#include #include #include int main(int argc, char *argv[]) { /* *************************************************************** * * GAME Struct * * ***************************************************************/ bool gameover = false; const int screen_width = 1280; const int screen_height = 720; uint8_t r = 0; uint8_t g = 0; uint8_t b = 0; uint32_t argb = 0; SDL_Window * window = NULL; SDL_Renderer * renderer = NULL; SDL_Surface * screen = NULL; SDL_Event * event = NULL;; /* *************************************************************** * * GAME INIT * * ***************************************************************/ int retval; retval = SDL_Init(SDL_INIT_EVERYTHING); if(retval < 0) { SDL_LogError (SDL_LOG_CATEGORY_APPLICATION, "SDL_Init: %s\n", SDL_GetError()); exit(EXIT_FAILURE); } atexit(SDL_Quit); window = SDL_CreateWindow("Game: Init", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, screen_width, screen_height, 0); if(!window) { SDL_LogError (SDL_LOG_CATEGORY_APPLICATION, "SDL_CreateWindow: %s\n", SDL_GetError()); exit(EXIT_FAILURE); } renderer = SDL_CreateRenderer(window, -1, 0); if(!renderer) { SDL_LogError (SDL_LOG_CATEGORY_APPLICATION, "SDL_CreateRenderer: %s\n", SDL_GetError()); exit(EXIT_FAILURE); } SDL_RendererInfo info; SDL_GetRendererInfo(renderer, &info ); SDL_Log("Renderer Name: %s\n", info.name); SDL_Log("Texture formats: \n"); for (size_t i = 0; i < info.num_texture_formats; i++) { SDL_Log("%s\n", SDL_GetPixelFormatName(info.texture_formats[i])); } // Do not work with Renderer.. at docs // screen = SDL_GetWindowSurface(window); // if(!screen) // { // SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_GetWindowSurface: %s\n", SDL_GetError ()); // exit(EXIT_FAILURE); // } event = malloc(sizeof (*event)); /* *************************************************************** * * Main Loop * * ***************************************************************/ while(!gameover) { /* *************************************************************** * * Handle Input * * ***************************************************************/ while(SDL_PollEvent(event)) { switch(event->type) { case SDL_QUIT: gameover = true; break; case SDL_KEYDOWN: switch(event->key.keysym.sym) { case SDLK_ESCAPE: gameover = true; break; } } } /* *************************************************************** * * Game Update * * ***************************************************************/ r = (argb) & 0xff; g = (argb >> 8) & 0xff; b = (argb >> 16) & 0xff; argb++; /* *************************************************************** * * Game Render * * ***************************************************************/ retval = SDL_SetRenderDrawColor (renderer, r, g, b, 255); if(retval < 0) { SDL_Log("SDL_SetRenderDrawColor: %s\n", SDL_GetError()); exit(EXIT_FAILURE); } retval = SDL_RenderClear(renderer); if(retval < 0) { SDL_Log("SDL_RenderClear: %s\n", SDL_GetError()); exit(EXIT_FAILURE); } SDL_RenderPresent(renderer); } if(renderer) { SDL_Log("Destroying renderer()\n"); SDL_DestroyRenderer(renderer); renderer = NULL; } if(window != NULL) { SDL_Log("Destroying main window()\n"); SDL_DestroyWindow (window); window = NULL; screen = NULL; } SDL_Log("Exiting\n"); return 0; }