From d1ecc17a687cdade92954e548249a7f747aec392 Mon Sep 17 00:00:00 2001 From: falkTX Date: Mon, 27 Apr 2015 23:34:41 +0200 Subject: [PATCH] Save and restore blend state when using nanovg --- dgl/src/NanoVG.cpp | 15 +++++++++++++++ dgl/src/nanovg/nanovg_gl.h | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) 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); }