DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

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:
Mdgl/src/NanoVG.cpp | 15+++++++++++++++
Mdgl/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 @@ -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); }