diff options
Diffstat (limited to 'prge_draw.c')
-rw-r--r-- | prge_draw.c | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/prge_draw.c b/prge_draw.c deleted file mode 100644 index 4228d68..0000000 --- a/prge_draw.c +++ /dev/null @@ -1,78 +0,0 @@ -void clear_window(PRGEWindow wnd, V3 clear_color) -{ - glClearColor(clear_color.x, clear_color.y, clear_color.z, 1.0f); - glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); -} - -void begin3d(PRGEWindow wnd, Shader shader, Camera camera) -{ - F32 ar; - MAT4 proj, view; - - ar = (F32)wnd.w/(F32)wnd.h; - proj = camera_persp(camera, ar); - view = getfpviewmat(&camera); - - glUseProgram(shader.id); - - setmat4fv(shader.id, PRGE_SHADER_PROJ_MAT, proj); - setmat4fv(shader.id, PRGE_SHADER_VIEW_MAT, view); -} - -void end3d(void) -{ - glUseProgram(0); -} - -void begin3d_alpha(PRGEWindow wnd, Shader shader, Camera camera) -{ - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - begin3d(wnd, shader, camera); -} - -void end3d_alpha(void) -{ - end3d(); - glDisable(GL_BLEND); -} - -void draw_mesh(Mesh mesh) -{ - S32 i; - - ASSERT(mesh.vao); - - glBindVertexArray(mesh.vao); - - for (i = 0; i < mesh.ntextures; i++) { - glActiveTexture(GL_TEXTURE0+i); - glBindTexture(GL_TEXTURE_2D, mesh.textures[i].id); - } - - if (mesh.ebo) - glDrawElements(GL_TRIANGLES, mesh.nindices, GL_UNSIGNED_INT, 0); - else - glDrawArrays(GL_TRIANGLES, 0, mesh.nverts); - - glBindVertexArray(0); -} - -void draw_model(Shader shader, Model model) -{ - MAT4 modelm, - meshm, - resm; - S32 i; - - modelm = rotatemat4(MAT4_IDENTITY, model.rotate); - modelm = translmat4(modelm, model.origin); - for (i = 0; i < model.nmeshes; i++) { - meshm = rotatemat4(MAT4_IDENTITY, model.meshes[i].rotate); - meshm = translmat4(meshm, model.meshes[i].origin); - resm = mulmat4(modelm, meshm); - - setmat4fv(shader.id, PRGE_SHADER_MODEL_MAT, resm); - draw_mesh(model.meshes[i]); - } -} |