aboutsummaryrefslogtreecommitdiffstats
path: root/faqe.c
diff options
context:
space:
mode:
Diffstat (limited to 'faqe.c')
-rw-r--r--faqe.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/faqe.c b/faqe.c
index e51aaf0..d1f6402 100644
--- a/faqe.c
+++ b/faqe.c
@@ -30,6 +30,20 @@ void viewport(GLuint proj, int width, int height)
gl_uni_setm4fv(proj, 1, GL_FALSE, pers[0]);
}
+void loadmodel(struct model *mdl, char *name)
+{
+ FILE *f;
+ struct fmd fmd;
+
+ f = fopen(name, "rb");
+ if (f == NULL)
+ eprintf("Could not open '%s':", name);
+ fmd_load(&fmd, f);
+ fclose(f);
+ model_load(mdl, &fmd);
+ fmd_free(&fmd);
+}
+
int main(int argc, char **argv)
{
bool running = true;
@@ -39,9 +53,7 @@ int main(int argc, char **argv)
struct {
GLint model, view, proj, tex, light;
} uni;
- FILE *cube_file;
- struct fmd cube_fmd;
- struct model cube_model;
+ struct model mdl;
struct camera cam = { .pos = { 0.0, 0.0, 3.0 }, .yaw = -PI/2 };
struct {
bool w, a, s, d, spc, lct;
@@ -74,13 +86,7 @@ int main(int argc, char **argv)
gl_load((gl_loadfunc *)SDL_GL_GetProcAddress);
- cube_file = fopen("cube.fmd", "rb");
- if (cube_file == NULL)
- eprintf("Could not open 'cube.fmd':");
- fmd_load(&cube_fmd, cube_file);
- model_load(&cube_model, &cube_fmd);
- fmd_free(&cube_fmd);
- fclose(cube_file);
+ loadmodel(&mdl, "assets/utah.fmd");
prog = glprog_load((struct shdrdat []){
{ GL_VERTEX_SHADER, vert_glsl.data, vert_glsl.size },
@@ -178,7 +184,7 @@ int main(int argc, char **argv)
gl_uni_setm4fv(uni.view, 1, GL_FALSE, view[0]);
gl_uni_setm4fv(uni.model, 1, GL_FALSE, model[0]);
gl_uni_set3fv(uni.light, 1, lipos);
- model_render(&cube_model);
+ model_render(&mdl);
gl_va_bind(0);
SDL_GL_SwapWindow(win);