int up_arrow, down_arrow, left_arrow, right_arrow;
")
(defun fill-rect (r g b x y w h)
(ffi:c-inline (r g b x y w h) (:int :int :int :int :int :int :int) nil
"
SDL_SetRenderDrawColor(renderer,#0,#1,#2,255);
SDL_RenderFillRect(renderer,
&(struct SDL_Rect){.x = #3, .y = #4, .w = #5, .h = #6});
SDL_SetRenderDrawColor(renderer,0,0,0,255);
"))
(unwind-protect
(ffi:c-progn ()
"
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
\"Failed to init %s\",
SDL_GetError());
" (error "SDL init error") "
}
if (SDL_CreateWindowAndRenderer(640,480,SDL_WINDOW_RESIZABLE,
&window, &renderer)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
\"Failed to create w & r%s\",
SDL_GetError());
" (error "SDL create window error") "
}