opengl - how glBlitFramebuffer works -
gluint32 fbo[2]; gluint32 rbo[2]; gluint32 texture[2]; glgenframebuffers (2, fbo); glgentextures (2, texture); glgenrenderbuffers (2, rbo); glbindtexture (gl_texture_2d, texture[0]); glbindrenderbuffer (gl_renderbuffer, rbo[0]); glbindframebuffer (gl_read_framebuffer, fbo[0]); glteximage2d (gl_texture_2d, 0, gl_rgba8, 32, 32, 0, gl_rgba, gl_unsigned_byte, null); glrenderbufferstorage (gl_renderbuffer, gl_depth24_stencil8, 32, 32); glframebuffertexture2d (gl_read_framebuffer, gl_color_attachment0, gl_texture_2d, texture[0], 0); glframebufferrenderbuffer(gl_read_framebuffer, gl_depth_stencil_attachment, gl_renderbuffer, rbo[0]); glcheckframebufferstatus(gl_read_framebuffer); glbindtexture (gl_texture_2d, texture[1]); glbindrenderbuffer (gl_renderbuffer, rbo[1]); glbindframebuffer (gl_draw_framebuffer, fbo[1]); glteximage2d (gl_texture_2d, 0, gl_rgba8, 32, 32, 0, gl_rgba, gl_unsigned_byte, null); glrenderbufferstorage (gl_renderbuffer, gl_depth24_stencil8, 32, 32); glframebuffertexture2d (gl_draw_framebuffer, gl_color_attachment0, gl_texture_2d, texture[1], 0); glframebufferrenderbuffer(gl_draw_framebuffer, gl_depth_stencil_attachment, gl_renderbuffer, rbo[1]); glcheckframebufferstatus(gl_draw_framebuffer);
later in code when do,
glbindtexture (gl_texture_2d, texture[0]); glteximage2d (gl_texture_2d, 0, gl_rgba32ui, 32, 32, 0, gl_rgba_integer, gl_unsigned_int, null); glframebuffertexture2d (gl_read_framebuffer, gl_color_attachment0, gl_texture_2d, texture[0], 0);
the read buffer format , write buffer format same, expected is: read buffer: gl_rgba32ui, draw buffer: gl_rgba
however when (remove glbindtexture)
glteximage2d (gl_texture_2d, 0, gl_rgba32ui, 32, 32, 0, gl_rgba_integer, gl_unsigned_int, null); glframebuffertexture2d (gl_read_framebuffer, gl_color_attachment0, gl_texture_2d, texture[0], 0); glblitframebuffer (0, 0, 16, 16, 0, 0, 16, 16, gl_color_buffer_bit, gl_nearest);
i expected results. missing here? can me understand how works.
Comments
Post a Comment