Skip to content
Snippets Groups Projects
sdl2.c 1.25 KiB
Newer Older
Arnaud Albiez's avatar
Arnaud Albiez committed
#include "sdl2.h"
Arnaud Albiez's avatar
Arnaud Albiez committed
void sdl_init() {
  int const width = 1280;
  int const height = 720;
  context = (SDLContext){NULL, NULL, .width = 0, .height = 0};
  if (SDL_Init(SDL_INIT_VIDEO)) {
    return;
  }

  SDL_Window *window =
      SDL_CreateWindow("Sokoban", SDL_WINDOWPOS_CENTERED,
                       SDL_WINDOWPOS_CENTERED, 1280, 720, SDL_WINDOW_SHOWN);
  if (!window) {
    return;
  }
  SDL_Renderer *renderer =
      SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
  context = (SDLContext){
      .window = window, .renderer = renderer, .width = width, .height = height};
}
void sdl_quit() {
  SDL_DestroyWindow(context.window);
  SDL_DestroyRenderer(context.renderer);
  context.window = NULL;
  context.renderer = NULL;
  SDL_Quit();
}

int size_block(struct Grid * grid)
{
  return context.width / grid->column_number;
}


void draw() 
{
  for(int x = 0; x< context.width; x+=49)
  {
    for(int y = 0; y < context.height; y +=49)
    {
      SDL_Rect rect = {    .x = x,
                  .y = y,
                  .w = 49,
                  .h = 49
              };
      SDL_SetRenderDrawColor(context.renderer, 255, y, x, 255); 
      SDL_RenderFillRect(context.renderer, &rect);
    }
  }
  SDL_RenderPresent(context.renderer);
}