1 | 1 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,49 @@ |
1 |
+ifeq ($(OS),Windows_NT) |
|
2 |
+ OS = Windows |
|
3 |
+ MICROGLUT = MicroGlut.c |
|
4 |
+else ifeq ($(shell uname),Linux) |
|
5 |
+ OS = Linux |
|
6 |
+ MICROGLUT = MicroGlut.c |
|
7 |
+else ifeq ($(shell uname),Darwin) |
|
8 |
+ OS = Mac |
|
9 |
+ MICROGLUT = MicroGlut.m |
|
10 |
+endif |
|
11 |
+ |
|
12 |
+PROG = tsbk07 |
|
13 |
+COMMON = \ |
|
14 |
+ common/GL_utilities.c \ |
|
15 |
+ common/LoadTGA.c \ |
|
16 |
+ common/$(OS)/$(MICROGLUT) |
|
17 |
+CPPFLAGS += \ |
|
18 |
+ -Icommon \ |
|
19 |
+ -Icommon/$(OS) \ |
|
20 |
+ -DGL_GLEXT_PROTOTYPES |
|
21 |
+CXXFLAGS += \ |
|
22 |
+ -g \ |
|
23 |
+ -Wall \ |
|
24 |
+ -Wextra \ |
|
25 |
+ -Wpedantic \ |
|
26 |
+ -Wshadow |
|
27 |
+LDLIBS_Windows += \ |
|
28 |
+ -lopengl32 |
|
29 |
+LDLIBS_Linux += \ |
|
30 |
+ -lX11 \ |
|
31 |
+ -lGL |
|
32 |
+LDLIBS_Mac += \ |
|
33 |
+ -framework Cocoa \ |
|
34 |
+ -framework OpenGL |
|
35 |
+LDLIBS += \ |
|
36 |
+ $(LDLIBS_$(OS)) |
|
37 |
+ |
|
38 |
+# The below is equivalent to the GNU Make implicit rule for |
|
39 |
+# $(PROG): $(COMMON) |
|
40 |
+$(PROG): $(PROG).cpp $(COMMON) |
|
41 |
+ g++ $(CXXFLAGS) $(CPPFLAGS) $(PROG).cpp $(COMMON) $(LDLIBS) -o $(PROG) |
|
42 |
+ |
|
43 |
+.PHONY: clean |
|
44 |
+clean: |
|
45 |
+ rm $(PROG) |
|
46 |
+ |
|
47 |
+.PHONY: run |
|
48 |
+run: $(PROG) |
|
49 |
+ ./$(PROG) |
... | ... |
@@ -83,6 +83,8 @@ static char gRunning = 1; |
83 | 83 |
|
84 | 84 |
void glutInit(int *argc, char *argv[]) |
85 | 85 |
{ |
86 |
+ (void)argc; |
|
87 |
+ (void)argv; |
|
86 | 88 |
gettimeofday(&timeStart, NULL); |
87 | 89 |
memset(gKeymap, 0, sizeof(gKeymap)); |
88 | 90 |
} |
... | ... |
@@ -110,16 +112,13 @@ static void checktimers(); |
110 | 112 |
*/ |
111 | 113 |
|
112 | 114 |
static void |
113 |
-make_window( Display *dpy, const char *name, |
|
114 |
- int x, int y, int width, int height, |
|
115 |
- Window *winRet, GLXContext *ctxRet) |
|
115 |
+make_window( const char *name, |
|
116 |
+ int x, int y, int width, int height) |
|
116 | 117 |
{ |
117 | 118 |
int scrnum; |
118 | 119 |
XSetWindowAttributes attr; |
119 | 120 |
unsigned long mask; |
120 | 121 |
Window root; |
121 |
- Window win; |
|
122 |
- GLXContext ctx; |
|
123 | 122 |
XVisualInfo *visinfo; |
124 | 123 |
|
125 | 124 |
scrnum = DefaultScreen( dpy ); |
... | ... |
@@ -305,9 +304,6 @@ make_window( Display *dpy, const char *name, |
305 | 304 |
} |
306 | 305 |
|
307 | 306 |
XFree(visinfo); |
308 |
- |
|
309 |
- *winRet = win; |
|
310 |
- *ctxRet = ctx; |
|
311 | 307 |
} |
312 | 308 |
|
313 | 309 |
void glutCreateWindow(const char *windowTitle) |
... | ... |
@@ -319,7 +315,7 @@ void glutCreateWindow(const char *windowTitle) |
319 | 315 |
windowTitle ? windowTitle : getenv("DISPLAY")); |
320 | 316 |
} |
321 | 317 |
|
322 |
- make_window(dpy, windowTitle, winPosX, winPosY, winWidth, winHeight, &win, &ctx); |
|
318 |
+ make_window(windowTitle, winPosX, winPosY, winWidth, winHeight); |
|
323 | 319 |
|
324 | 320 |
XMapWindow(dpy, win); |
325 | 321 |
glXMakeCurrent(dpy, win, ctx); |
... | ... |
@@ -455,6 +451,7 @@ void doKeyboardEvent(XEvent event, void (*keyProc)(unsigned char key, int x, int |
455 | 451 |
|
456 | 452 |
void internaltimer(int x) |
457 | 453 |
{ |
454 |
+ (void)x; |
|
458 | 455 |
glutPostRedisplay(); |
459 | 456 |
} |
460 | 457 |
|
... | ... |
@@ -479,7 +476,7 @@ void glutMainLoop() |
479 | 476 |
switch (event.type) |
480 | 477 |
{ |
481 | 478 |
case ClientMessage: |
482 |
- if (event.xclient.data.l[0] == wmDeleteMessage) // quit! |
|
479 |
+ if ((Atom)event.xclient.data.l[0] == wmDeleteMessage) // quit! |
|
483 | 480 |
gRunning = 0; |
484 | 481 |
break; |
485 | 482 |
case Expose: |
... | ... |
@@ -49,7 +49,7 @@ bool LoadTGATextureData(const char *filename, TextureData *texture) // Loads A T |
49 | 49 |
GLubyte *rowP; |
50 | 50 |
int err; |
51 | 51 |
GLubyte rle; |
52 |
- int b; |
|
52 |
+ GLuint b; |
|
53 | 53 |
long row, rowLimit; |
54 | 54 |
GLubyte pixelData[4]; |
55 | 55 |
|
... | ... |
@@ -199,7 +199,7 @@ bool LoadTGATextureData(const char *filename, TextureData *texture) // Loads A T |
199 | 199 |
} |
200 | 200 |
|
201 | 201 |
if (bytesPerPixel >= 3) // if not monochrome |
202 |
- for (i = 0; i < (int)(imageSize); i += bytesPerPixel) // Loop Through The Image Data |
|
202 |
+ for (i = 0; i < imageSize; i += bytesPerPixel) // Loop Through The Image Data |
|
203 | 203 |
{ // Swaps The 1st And 3rd Bytes ('R'ed and 'B'lue) |
204 | 204 |
temp = texture->imageData[i]; // Temporarily Store The Value At Image Data 'i' |
205 | 205 |
texture->imageData[i] = texture->imageData[i + 2]; // Set The 1st Byte To The Value Of The 3rd Byte |
206 | 206 |
deleted file mode 100644 |
... | ... |
@@ -1,11 +0,0 @@ |
1 |
-# set this variable to the director in which you saved the common files |
|
2 |
-commondir = common/ |
|
3 |
- |
|
4 |
-all : tsbk07 |
|
5 |
- |
|
6 |
-tsbk07 : tsbk07.cpp $(commondir)GL_utilities.c $(commondir)LoadTGA.c $(commondir)Linux/MicroGlut.c |
|
7 |
- gcc -Wall -o tsbk07 -I$(commondir) -Icommon/Linux -DGL_GLEXT_PROTOTYPES tsbk07.cpp $(commondir)GL_utilities.c $(commondir)LoadTGA.c $(commondir)Linux/MicroGlut.c -lXt -lX11 -lGL -lm -lstdc++ |
|
8 |
- |
|
9 |
-clean : |
|
10 |
- rm tsbk07 |
|
11 |
- |