Fixed problems with fbo's depth texture not rendering because of texture unit

dev
Shariq Shah 9 years ago
parent f815dafd82
commit b58fa413bc
  1. 2
      orgfile.org
  2. 4
      src/framebuffer.c
  3. 6
      src/renderer.c

@ -69,6 +69,8 @@ All the code in this repository is under GPLv3, see LICENSE for more information
** DONE Heirarchical Transforms ** DONE Heirarchical Transforms
** DONE Materials with textures ** DONE Materials with textures
- State "DONE" from "TODO" [2015-10-15 Thu 21:21] - State "DONE" from "TODO" [2015-10-15 Thu 21:21]
** TODO Lights!
** TODO Fix problems with texture units
** TODO Fix problems with frustrum culling ** TODO Fix problems with frustrum culling
** TODO 2d drawing routines ** TODO 2d drawing routines
** TODO Gui ** TODO Gui

@ -47,12 +47,12 @@ int framebuffer_create(int width, int height, int has_depth, int has_color)
glGenRenderbuffers(1, &renderbuffer); glGenRenderbuffers(1, &renderbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer); glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer);
glRenderbufferStorage(GL_RENDERBUFFER, glRenderbufferStorage(GL_RENDERBUFFER,
GL_DEPTH24_STENCIL8, GL_DEPTH_COMPONENT,
width, width,
height); height);
renderer_check_glerror("framebuffer:create"); renderer_check_glerror("framebuffer:create");
glFramebufferRenderbuffer(GL_FRAMEBUFFER, glFramebufferRenderbuffer(GL_FRAMEBUFFER,
GL_DEPTH_STENCIL_ATTACHMENT, GL_DEPTH_ATTACHMENT,
GL_RENDERBUFFER, GL_RENDERBUFFER,
renderbuffer); renderbuffer);
renderer_check_glerror("framebuffer:create"); renderer_check_glerror("framebuffer:create");

@ -115,7 +115,7 @@ void renderer_init(GLFWwindow* window)
texture_set_param(def_uv_tex, GL_TEXTURE_MAG_FILTER, GL_LINEAR); texture_set_param(def_uv_tex, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
def_depth_tex = texture_create("def_depth_texture", def_depth_tex = texture_create("def_depth_texture",
TU_SHADOWMAP1, TU_DIFFUSE,
width, height, width, height,
GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT,
GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT32F,
@ -197,9 +197,9 @@ void renderer_draw(void)
texture_unbind(def_normal_tex); texture_unbind(def_normal_tex);
glViewport(width / 2, 0, width / 2, height / 2); glViewport(width / 2, 0, width / 2, height / 2);
texture_bind(def_uv_tex); texture_bind(def_depth_tex);
geom_render(quad_geo); geom_render(quad_geo);
texture_unbind(def_uv_tex); texture_unbind(def_depth_tex);
shader_unbind(); shader_unbind();
} }

Loading…
Cancel
Save