SDL  2.0
main.c
Go to the documentation of this file.
1 /*
2  * rectangles.c
3  * written by Holmes Futrell
4  * use however you want
5  */
6 
7 #include "SDL.h"
8 #include <stdio.h>
9 #include <stdlib.h>
10 #include <time.h>
11 
12 #define SCREEN_WIDTH 320
13 #define SCREEN_HEIGHT 480
14 
15 int
16 randomInt(int min, int max)
17 {
18  return min + rand() % (max - min + 1);
19 }
20 
21 void
23 {
24 
25  SDL_Rect rect;
26  Uint8 r, g, b;
27 
28  /* Clear the screen */
29  SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
30  SDL_RenderClear(renderer);
31 
32  /* Come up with a random rectangle */
33  rect.w = randomInt(64, 128);
34  rect.h = randomInt(64, 128);
35  rect.x = randomInt(0, SCREEN_WIDTH);
36  rect.y = randomInt(0, SCREEN_HEIGHT);
37 
38  /* Come up with a random color */
39  r = randomInt(50, 255);
40  g = randomInt(50, 255);
41  b = randomInt(50, 255);
42  SDL_SetRenderDrawColor(renderer, r, g, b, 255);
43 
44  /* Fill the rectangle in the color */
45  SDL_RenderFillRect(renderer, &rect);
46 
47  /* update screen */
48  SDL_RenderPresent(renderer);
49 }
50 
51 int
52 main(int argc, char *argv[])
53 {
54 
57  int done;
59 
60  /* initialize SDL */
61  if (SDL_Init(SDL_INIT_VIDEO) < 0) {
62  printf("Could not initialize SDL\n");
63  return 1;
64  }
65 
66  /* seed random number generator */
67  srand(time(NULL));
68 
69  /* create window and renderer */
70  window =
73  if (!window) {
74  printf("Could not initialize Window\n");
75  return 1;
76  }
77 
78  renderer = SDL_CreateRenderer(window, -1, 0);
79  if (!renderer) {
80  printf("Could not create renderer\n");
81  return 1;
82  }
83 
84  /* Enter render loop, waiting for user to quit */
85  done = 0;
86  while (!done) {
87  while (SDL_PollEvent(&event)) {
88  if (event.type == SDL_QUIT) {
89  done = 1;
90  }
91  }
92  render(renderer);
93  SDL_Delay(1);
94  }
95 
96  /* shutdown SDL */
97  SDL_Quit();
98 
99  return 0;
100 }
int main(int argc, char *argv[])
Definition: main.c:52
GLdouble GLdouble GLdouble r
Definition: SDL_opengl.h:2079
#define SDL_PollEvent
EGLSurface EGLnsecsANDROID time
Definition: eglext.h:518
int randomInt(int min, int max)
Definition: main.c:16
SDL_Rect rect
Definition: testrelative.c:27
#define SDL_RenderFillRect
#define SDL_CreateWindow
void render(SDL_Renderer *renderer)
Definition: main.c:22
static SDL_Renderer * renderer
uint8_t Uint8
Definition: SDL_stdinc.h:179
struct _cl_event * event
#define SDL_Quit
int done
Definition: checkkeys.c:28
int x
Definition: SDL_rect.h:66
int w
Definition: SDL_rect.h:67
#define SCREEN_WIDTH
Definition: main.c:12
#define SDL_Delay
#define NULL
Definition: begin_code.h:164
#define SDL_RenderClear
EGLSurface EGLNativeWindowType * window
Definition: eglext.h:1025
int h
Definition: SDL_rect.h:67
The type used to identify a window.
Definition: SDL_sysvideo.h:73
#define SDL_Init
General event structure.
Definition: SDL_events.h:557
#define SDL_SetRenderDrawColor
#define SCREEN_HEIGHT
Definition: main.c:13
GLboolean GLboolean g
GLboolean GLboolean GLboolean b
int y
Definition: SDL_rect.h:66
#define SDL_INIT_VIDEO
Definition: SDL.h:79
#define SDL_CreateRenderer
A rectangle, with the origin at the upper left.
Definition: SDL_rect.h:64
#define SDL_RenderPresent
Uint32 type
Definition: SDL_events.h:559