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

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -