Advertisement
Mohamed_AIT_RAMI

SDL example

Jan 20th, 2019
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.04 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <stdbool.h>
  5. #include <SDL2/SDL.h>
  6.  
  7. // Get a random number between 0 and 255
  8. int randCol()
  9. {
  10.     return rand() % 255 + 0;
  11. }
  12.  
  13. int main(int argc, char** argv)
  14. {
  15.     // Initialize the random number generator
  16.     srand (time(NULL));
  17.  
  18.     // Initialize SDL
  19.     SDL_Init(SDL_INIT_VIDEO);
  20.  
  21.     // Open a 800x600 window and define an accelerated renderer
  22.     SDL_Window* window = SDL_CreateWindow("SDL2 & Code::Blocks", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
  23.                                           800, 600, SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL);
  24.     SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
  25.  
  26.     // Initial renderer color
  27.     SDL_SetRenderDrawColor(renderer, randCol(), randCol(), randCol(), 255);
  28.  
  29.     bool running = true;
  30.     Uint32 old_time = 0, change_color_time = 1000, new_time;
  31.     SDL_Event event;
  32.     while (running)
  33.     {
  34.         // Check for various events (keyboard, mouse, touch, close)
  35.         while (SDL_PollEvent(&event))
  36.         {
  37.             if (event.type == SDL_KEYDOWN)
  38.             {
  39.                 const char* key = SDL_GetKeyName(event.key.keysym.sym);
  40.                 if (strcmp(key, "Q") == 0 || strcmp(key, "Escape") == 0)
  41.                 {
  42.                     running = false;
  43.                 }
  44.             }
  45.             else if (event.type == SDL_QUIT)
  46.             {
  47.                 running = false;
  48.             }
  49.         }
  50.  
  51.         // Clear buffer
  52.         SDL_RenderClear(renderer);
  53.  
  54.         // Draw here ...
  55.  
  56.         // Switch buffers
  57.         SDL_RenderPresent(renderer);
  58.  
  59.         new_time = SDL_GetTicks();
  60.         if(new_time - old_time > change_color_time)
  61.         {
  62.             SDL_SetRenderDrawColor(renderer, randCol(), randCol(), randCol(), 255);
  63.             old_time = new_time;
  64.         }
  65.     }
  66.  
  67.     // Release any of the allocated resources
  68.     SDL_DestroyRenderer(renderer);
  69.     SDL_DestroyWindow(window);
  70.     SDL_Quit();
  71.  
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement