||:: init sdl :: create a window :window dimensions: #800 #600 :: sleep #5 :: quit | :SDL: Init | `@c` [ if(SDL_Init(SDL_INIT_EVERYTHING) < 0) { printf("Error initializing SDL: %s\\n", SDL_GetError()); exit(-1); } ] | :SDL: RenderClear :renderer: $0? | `@c` [ SDL_RenderClear((SDL_Renderer*)$(0)); ] | :SDL: RenderPresent :renderer: $0? | `@c` [ SDL_RenderPresent((SDL_Renderer*)$(0)); ] | :SDL: DestroyRenderer :renderer: $0 | `@c` [ SDL_DestroyRenderer((SDL_Renderer*)$(0)); ] | :SDL: DestroyWindow :window: $0 | `@c` [ SDL_DestroyWindow((SDL_Window*)$(0)); ] | :SDL: SetRenderDrawColor :renderer: $0? :color: # $r # $g # $b # $a | `@c` [ SDL_SetRenderDrawColor((SDL_Renderer*)$(0), $(1), $(2), $(3), $(4)); ] | :SDL: Quit | `@c` [ SDL_Quit(); ] |:: init sdl | :SDL: Init |:: create a window :window dimensions: # $0 # $1| `@c` [ SDL_Window *window = NULL; SDL_Renderer *renderer = NULL; if(SDL_CreateWindowAndRenderer($(0), $(1), 0, &window, &renderer) < 0) { printf("Error creating window: %s\\n", SDL_GetError()); exit(-1); } nv_push_fact(nvs__renderer, (unsigned int)(void*)renderer); nv_push_fact(nvs__window, (unsigned int)(void*)window); ] `SDL` (RenderClear RenderPresent SetRenderDrawColor) `color` #0 #0 #0 #255 |:: quit :renderer: $0? :window: $1? | :SDL: (DestroyRenderer DestroyWindow Quit) |:: sleep # $0 | `@c` [sleep($(0)); ] || `@c.include` (SDL2/SDL unistd)