Mercurial > sdl-ios-xcode
annotate XCodeiPhoneOS/Template/SDL Application/main.c @ 2417:ac26bd83db1f gsoc2008_iphone
Cleaned up code, added comments, added randomized colors, added check for extension GL_POINT_SIZE_ARRAY_OES, which not all OpenGL ES systems have.
author | Holmes Futrell <hfutrell@umail.ucsb.edu> |
---|---|
date | Wed, 13 Aug 2008 23:10:51 +0000 |
parents | 71edb7a747d7 |
children |
rev | line source |
---|---|
2396
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
1 /* |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
2 * rectangles.c |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
3 * written by Holmes Futrell |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
4 * use however you want |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
5 */ |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
6 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
7 #include "SDL.h" |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
8 #include <time.h> |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
9 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
10 #define SCREEN_WIDTH 320 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
11 #define SCREEN_HEIGHT 480 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
12 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
13 int randomInt(int min, int max) { |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
14 return min + rand() % (max - min + 1); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
15 } |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
16 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
17 void render(void) { |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
18 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
19 Uint8 r, g, b; |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
20 /* Come up with a random rectangle */ |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
21 SDL_Rect rect; |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
22 rect.w = randomInt(64, 128); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
23 rect.h = randomInt(64, 128); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
24 rect.x = randomInt(0, SCREEN_WIDTH); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
25 rect.y = randomInt(0, SCREEN_HEIGHT); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
26 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
27 /* Come up with a random color */ |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
28 r = randomInt(50, 255); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
29 g = randomInt(50, 255); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
30 b = randomInt(50, 255); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
31 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
32 /* Fill the rectangle in the color */ |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
33 SDL_RenderFill(r, g, b, 255, &rect); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
34 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
35 /* update screen */ |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
36 SDL_RenderPresent(); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
37 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
38 } |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
39 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
40 int main(int argc, char *argv[]) { |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
41 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
42 SDL_WindowID windowID; |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
43 int done; |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
44 SDL_Event event; |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
45 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
46 /* initialize SDL */ |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
47 if (SDL_Init(SDL_INIT_VIDEO) < 0) { |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
48 printf("Could not initialize SDL\n"); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
49 } |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
50 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
51 /* seed random number generator */ |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
52 srand(time(NULL)); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
53 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
54 /* create window and renderer */ |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
55 windowID = SDL_CreateWindow(NULL, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_OPENGL|SDL_WINDOW_SHOWN); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
56 if (windowID == 0) { |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
57 printf("Could not initialize Window\n"); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
58 } |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
59 if (SDL_CreateRenderer(windowID, -1, 0) != 0) { |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
60 printf("Could not create renderer\n"); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
61 } |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
62 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
63 /* Fill screen with black */ |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
64 SDL_RenderFill(0,0,0,0, NULL); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
65 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
66 /* Enter render loop, waiting for user to quit */ |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
67 done = 0; |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
68 while(!done) { |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
69 while (SDL_PollEvent(&event)) { |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
70 if (event.type == SDL_QUIT) { |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
71 done = 1; |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
72 } |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
73 } |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
74 render(); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
75 SDL_Delay(1); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
76 } |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
77 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
78 /* shutdown SDL */ |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
79 SDL_Quit(); |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
80 |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
81 return 0; |
71edb7a747d7
XCode template for iPhone SDL projects
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff
changeset
|
82 } |