From 54411a2b5d6d209663084bedceeff67307c5b7d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Wed, 24 May 2017 08:55:45 -0700 Subject: [PATCH] Fixed issue #1136 cont. --- examples/common/nanovg/nanovg_bgfx.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/examples/common/nanovg/nanovg_bgfx.cpp b/examples/common/nanovg/nanovg_bgfx.cpp index 2d35ed75d..3e5053d6d 100644 --- a/examples/common/nanovg/nanovg_bgfx.cpp +++ b/examples/common/nanovg/nanovg_bgfx.cpp @@ -1205,10 +1205,25 @@ NVGLUframebuffer* nvgluCreateFramebuffer(NVGcontext* _ctx, int _width, int _heig struct NVGparams* params = nvgInternalParams(_ctx); struct GLNVGcontext* gl = (struct GLNVGcontext*)params->userPtr; + struct GLNVGtexture* tex = glnvg__allocTexture(gl); + + if (NULL == tex) + { + bgfx::destroyFrameBuffer(fbh); + return NULL; + } + + tex->width = _width; + tex->height = _height; + tex->type = NVG_TEXTURE_RGBA; + tex->flags = _imageFlags; + tex->id = bgfx::getTexture(fbh); + NVGLUframebuffer* framebuffer = BX_NEW(gl->m_allocator, NVGLUframebuffer); framebuffer->ctx = _ctx; - framebuffer->image = bgfx::getTexture(fbh).idx; + framebuffer->image = tex->id.idx; framebuffer->handle = fbh; + return framebuffer; } @@ -1218,7 +1233,7 @@ void nvgluBindFramebuffer(NVGLUframebuffer* framebuffer) static uint8_t s_prevViewId; if (framebuffer != NULL) { - s_prevCtx = framebuffer->ctx; + s_prevCtx = framebuffer->ctx; s_prevViewId = nvgViewId(framebuffer->ctx); nvgViewId(framebuffer->ctx, framebuffer->viewId); } @@ -1242,6 +1257,7 @@ void nvgluDeleteFramebuffer(NVGLUframebuffer* framebuffer) struct NVGparams* params = nvgInternalParams(framebuffer->ctx); struct GLNVGcontext* gl = (struct GLNVGcontext*)params->userPtr; + glnvg__deleteTexture(gl, framebuffer->image); BX_DELETE(gl->m_allocator, framebuffer); }