Skip to content

Commit b38d60d

Browse files
committed
Bugfix: Reset default framebuffer to back after rendering
1 parent d3928a7 commit b38d60d

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

src/libprojectM/ProjectM.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,14 @@ void ProjectM::RenderFrame()
166166
// ToDo: Call the to-be-implemented render method in Renderer
167167
m_activePreset->RenderFrame(audioData, renderContext);
168168

169-
// ToDo: Allow external apps to provide a custom target framebuffer.
170169
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
170+
glViewport(0, 0, renderContext.viewportSizeX, renderContext.viewportSizeY);
171+
172+
// On WebGL2 / Chrome ANGLE, the default framebuffer's draw buffer must
173+
// be explicitly set to GL_BACK after preset rendering, which may leave
174+
// per-FBO draw buffer state that leaks into FBO 0 on some drivers.
175+
GLenum backBuf = GL_BACK;
176+
glDrawBuffers(1, &backBuf);
171177

172178
if (m_transition != nullptr && m_transitioningPreset != nullptr)
173179
{

0 commit comments

Comments
 (0)