0
votes

I was trying to render a 2D scene into a off-screen FrameBuffer Object and use glFrameBufferTexture2D function to use the frame as texture to texture a cube.

The 2D scene is rendered in one context and the texture is used in another one in the same thread.

The problem is when I textured the cube, alpha channel seemed to be incorrect. I used apitrace to check the texture, and the texture has correct alpha value, and the shader was merely out_color = texture(in_texture, uv_coords)

The problem was solved if I blit the off-screen framebuffer color attachment to anything, whether it be itself or framebuffer 0 (output window).

I was wondering why this is happening and how to solve it without needing to blit the framebuffer.

1

1 Answers

0
votes

Found out that I used single buffering for the static 2D scene and requires a glFlush to flush the pipeline.