Skip to content

Commit 57e3d27

Browse files
mbaetgen-wupkblaschke
authored andcommitted
Bugfix: Reset default framebuffer to back after rendering
1 parent 3649044 commit 57e3d27

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

src/libprojectM/ProjectM.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,18 @@ void ProjectM::RenderFrame(uint32_t targetFramebufferObject /*= 0*/)
190190
m_activePreset->RenderFrame(audioData, renderContext);
191191

192192
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, static_cast<GLuint>(targetFramebufferObject));
193+
glViewport(0, 0, renderContext.viewportSizeX, renderContext.viewportSizeY);
194+
195+
#ifdef USE_GLES
196+
// On WebGL2 / Chrome ANGLE, the default framebuffer's draw buffer must
197+
// be explicitly set to GL_BACK after preset rendering, which may leave
198+
// per-FBO draw buffer state that leaks into FBO 0 on some drivers.
199+
if (targetFramebufferObject == 0)
200+
{
201+
GLenum backBuf = GL_BACK;
202+
glDrawBuffers(1, &backBuf);
203+
}
204+
#endif
193205

194206
if (m_transition != nullptr && m_transitioningPreset != nullptr)
195207
{

0 commit comments

Comments
 (0)