commit d1ecc17a687cdade92954e548249a7f747aec392
parent fa5e1faa10e2cff02f79c6d137409b0305e54cd9
Author: falkTX <falktx@gmail.com>
Date: Mon, 27 Apr 2015 23:34:16 +0200
Save and restore blend state when using nanovg
Diffstat:
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git 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
@@ -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);
}