diff --git a/dgl/src/NanoVG.cpp b/dgl/src/NanoVG.cpp index 2bccd8cf..4f0b46f7 100644 --- a/dgl/src/NanoVG.cpp +++ b/dgl/src/NanoVG.cpp @@ -212,9 +212,24 @@ void NanoVG::endFrame() { DISTRHO_SAFE_ASSERT_RETURN(fInFrame,); + // Save current blend state + GLboolean blendEnabled; + GLint blendSrc, blendDst; + glGetBooleanv(GL_BLEND, &blendEnabled); + glGetIntegerv(GL_BLEND_SRC_ALPHA, &blendSrc); + glGetIntegerv(GL_BLEND_DST_ALPHA, &blendDst); + if (fContext != nullptr) nvgEndFrame(fContext); + // Restore blend state + if (blendEnabled) + glEnable(GL_BLEND); + else + glDisable(GL_BLEND); + + glBlendFunc(blendSrc, blendDst); + fInFrame = false; } diff --git a/dgl/src/nanovg/nanovg_gl.h b/dgl/src/nanovg/nanovg_gl.h index 52357951..0b3c4c9a 100644 --- a/dgl/src/nanovg/nanovg_gl.h +++ b/dgl/src/nanovg/nanovg_gl.h @@ -1138,7 +1138,7 @@ static void glnvg__renderFlush(void* uptr) glBindVertexArray(0); #endif glDisable(GL_CULL_FACE); - glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindBuffer(GL_ARRAY_BUFFER, 0); glUseProgram(0); glnvg__bindTexture(gl, 0); }