summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKyle K <kylek389@gmail.com>2011-01-17 20:35:59 -0600
committerKamil Kaminski <kamilkss@gmail.com>2011-01-17 20:35:59 -0600
commit198feab3c8edd9bc6863cf7a8d7484331fcb3ec4 (patch)
treef39e9cc097c38d6879b418659a8f670eb7167e5e
parent663a667df86e36acaade5070305692f3c9199879 (diff)
downloadOBJLoader-198feab3c8edd9bc6863cf7a8d7484331fcb3ec4.tar.gz
OBJLoader-198feab3c8edd9bc6863cf7a8d7484331fcb3ec4.tar.bz2
OBJLoader-198feab3c8edd9bc6863cf7a8d7484331fcb3ec4.zip
add mingw32 target
-rw-r--r--mingw3227
-rw-r--r--objloader.c70
2 files changed, 78 insertions, 19 deletions
diff --git a/mingw32 b/mingw32
new file mode 100644
index 0000000..f5c86f2
--- /dev/null
+++ b/mingw32
@@ -0,0 +1,27 @@
+PROG = objloader
+OBJS = $(PROG).o obj.o math3d.o
+CC = gcc
+DBGFLAGS = -g -O0
+ifdef DEBUG
+ CFLAGS = $(DBGFLAGS) -Wall -std=c99
+else
+ CFLAGS = -Wall -std=c99 -O2 -march=native -mtune=native
+endif
+LDFLAGS = -lglew32 -lopengl32 -lglu32 -lm -lfreeglut -lmingw32 -lsdlmain -lsdl -lsdl_image -mwindows
+
+$(PROG): $(OBJS)
+ $(CC) -o $(PROG) $(OBJS) $(LDFLAGS)
+
+$(PROG).o: $(PROG).c math3d.h
+ $(CC) -c $(CFLAGS) $(PROG).c
+
+math3d.o: math3d.c math3d.h
+ $(CC) -c $(CFLAGS) math3d.c
+
+obj.o: obj.c obj.h
+ $(CC) -c $(CFLAGS) obj.c
+
+.PHONY: clean
+
+clean:
+ rm -f *.o ./$(PROG).exe
diff --git a/objloader.c b/objloader.c
index 1b2ba67..63cf273 100644
--- a/objloader.c
+++ b/objloader.c
@@ -18,6 +18,13 @@
#include "math3d.h"
#include "obj.h"
+/* function prototypes */
+static void resize(int, int);
+static void setup_opengl(ObjModel *);
+static void process_events(void);
+static void draw_ground(void);
+static void render(ObjModel *);
+
/* global */
int program_running = 1;
@@ -40,7 +47,7 @@ static void resize(int w, int h)
glLoadIdentity();
/* this needs to be ran again, glut does it for you I suppose */
- SDL_SetVideoMode(w, h, 32, SDL_OPENGL | SDL_GL_DOUBLEBUFFER | SDL_RESIZABLE);
+ SDL_SetVideoMode(w, h, 32, SDL_OPENGL | SDL_RESIZABLE);
}
static void setup_opengl(ObjModel *model)
@@ -106,7 +113,7 @@ static void setup_opengl(ObjModel *model)
}
/* process SDL events */
-void process_events()
+static void process_events(void)
{
SDL_Event event;
SDLKey sym;
@@ -146,7 +153,7 @@ static void draw_ground(void)
glEnd();
}
-void render(ObjModel *model)
+static void render(ObjModel *model)
{
/* clear the window with current clearing color */
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -159,22 +166,41 @@ void render(ObjModel *model)
int i;
for (i = 0; i < model->nFace; i++)
{
- glNormal3f(model->NormalArray[model->FaceArray[i].Normal[0] - 1].x, model->NormalArray[model->FaceArray[i].Normal[0] - 1].y, model->NormalArray[model->FaceArray[i].Normal[0] - 1].z );
- glTexCoord2f(model->TexCoordArray[model->FaceArray[i].TexCoord[0] - 1].u, model->TexCoordArray[model->FaceArray[i].TexCoord[0] - 1].v);
- glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[0] - 1].x, model->VertexArray[model->FaceArray[i].Vertex[0] - 1].y, model->VertexArray[model->FaceArray[i].Vertex[0] - 1].z );
-
- glNormal3f(model->NormalArray[model->FaceArray[i].Normal[1] - 1].x, model->NormalArray[model->FaceArray[i].Normal[1] - 1].y, model->NormalArray[model->FaceArray[i].Normal[1] - 1].z );
- glTexCoord2f(model->TexCoordArray[model->FaceArray[i].TexCoord[1] - 1].u, model->TexCoordArray[model->FaceArray[i].TexCoord[1] - 1].v);
- glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[1] - 1].x, model->VertexArray[model->FaceArray[i].Vertex[1] - 1].y, model->VertexArray[model->FaceArray[i].Vertex[1] - 1].z );
+ glNormal3f(model->NormalArray[model->FaceArray[i].Normal[0] - 1].x,
+ model->NormalArray[model->FaceArray[i].Normal[0] - 1].y,
+ model->NormalArray[model->FaceArray[i].Normal[0] - 1].z );
+ glTexCoord2f(model->TexCoordArray[model->FaceArray[i].TexCoord[0] - 1].u,
+ model->TexCoordArray[model->FaceArray[i].TexCoord[0] - 1].v);
+ glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[0] - 1].x,
+ model->VertexArray[model->FaceArray[i].Vertex[0] - 1].y,
+ model->VertexArray[model->FaceArray[i].Vertex[0] - 1].z );
- glNormal3f(model->NormalArray[model->FaceArray[i].Normal[2] - 1].x, model->NormalArray[model->FaceArray[i].Normal[2] - 1].y, model->NormalArray[model->FaceArray[i].Normal[2] - 1].z );
- glTexCoord2f(model->TexCoordArray[model->FaceArray[i].TexCoord[2] - 1].u, model->TexCoordArray[model->FaceArray[i].TexCoord[2] - 1].v);
- glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[2] - 1].x, model->VertexArray[model->FaceArray[i].Vertex[2] - 1].y, model->VertexArray[model->FaceArray[i].Vertex[2] - 1].z );
+ glNormal3f(model->NormalArray[model->FaceArray[i].Normal[1] - 1].x,
+ model->NormalArray[model->FaceArray[i].Normal[1] - 1].y,
+ model->NormalArray[model->FaceArray[i].Normal[1] - 1].z );
+ glTexCoord2f(model->TexCoordArray[model->FaceArray[i].TexCoord[1] - 1].u,
+ model->TexCoordArray[model->FaceArray[i].TexCoord[1] - 1].v);
+ glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[1] - 1].x,
+ model->VertexArray[model->FaceArray[i].Vertex[1] - 1].y,
+ model->VertexArray[model->FaceArray[i].Vertex[1] - 1].z );
- glNormal3f(model->NormalArray[model->FaceArray[i].Normal[3] - 1].x, model->NormalArray[model->FaceArray[i].Normal[3] - 1].y, model->NormalArray[model->FaceArray[i].Normal[3] - 1].z );
- glTexCoord2f(model->TexCoordArray[model->FaceArray[i].TexCoord[3] - 1].u, model->TexCoordArray[model->FaceArray[i].TexCoord[3] - 1].v);
- glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[3] - 1].x, model->VertexArray[model->FaceArray[i].Vertex[3] - 1].y, model->VertexArray[model->FaceArray[i].Vertex[3] - 1].z );
+ glNormal3f(model->NormalArray[model->FaceArray[i].Normal[2] - 1].x,
+ model->NormalArray[model->FaceArray[i].Normal[2] - 1].y,
+ model->NormalArray[model->FaceArray[i].Normal[2] - 1].z );
+ glTexCoord2f(model->TexCoordArray[model->FaceArray[i].TexCoord[2] - 1].u,
+ model->TexCoordArray[model->FaceArray[i].TexCoord[2] - 1].v);
+ glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[2] - 1].x,
+ model->VertexArray[model->FaceArray[i].Vertex[2] - 1].y,
+ model->VertexArray[model->FaceArray[i].Vertex[2] - 1].z );
+ glNormal3f(model->NormalArray[model->FaceArray[i].Normal[3] - 1].x,
+ model->NormalArray[model->FaceArray[i].Normal[3] - 1].y,
+ model->NormalArray[model->FaceArray[i].Normal[3] - 1].z );
+ glTexCoord2f(model->TexCoordArray[model->FaceArray[i].TexCoord[3] - 1].u,
+ model->TexCoordArray[model->FaceArray[i].TexCoord[3] - 1].v);
+ glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[3] - 1].x,
+ model->VertexArray[model->FaceArray[i].Vertex[3] - 1].y,
+ model->VertexArray[model->FaceArray[i].Vertex[3] - 1].z );
}
glEnd();
glPopMatrix();
@@ -183,7 +209,7 @@ void render(ObjModel *model)
SDL_GL_SwapBuffers();
}
-int main(void)
+int main(int argc, char **argv)
{
SDL_Surface *screen;
@@ -194,9 +220,15 @@ int main(void)
}
atexit(SDL_Quit);
SDL_WM_SetCaption("OBJ Loader", NULL);
+
+ SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
+ SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
+ SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
+ SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);
+ SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
+ SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
- if ((screen = SDL_SetVideoMode(640, 480, 32, SDL_OPENGL | SDL_GL_DOUBLEBUFFER
- | SDL_RESIZABLE)) == NULL)
+ if ((screen = SDL_SetVideoMode(640, 480, 32, SDL_OPENGL | SDL_RESIZABLE)) == NULL)
{
fprintf(stderr, "unable to set video mode: %s\n", SDL_GetError());
exit(-1);