@@ -182,6 +182,10 @@ void NVGSurface::detachContext()
182182 nvgDeleteFramebuffer (quickCanvasBlurFBO);
183183 quickCanvasBlurFBO = nullptr ;
184184 }
185+ if (quickCanvasBlurProcessFBO) {
186+ nvgDeleteFramebuffer (quickCanvasBlurProcessFBO);
187+ quickCanvasBlurProcessFBO = nullptr ;
188+ }
185189 if (nvg) {
186190 nvgDeleteContext (nvg);
187191 nvg = nullptr ;
@@ -218,6 +222,10 @@ void NVGSurface::updateBufferSize()
218222 nvgDeleteFramebuffer (quickCanvasBlurFBO);
219223 quickCanvasBlurFBO = nvgCreateFramebuffer (nvg, scaledWidth, scaledHeight, NVG_IMAGE_PREMULTIPLIED);
220224
225+ if (quickCanvasBlurProcessFBO)
226+ nvgDeleteFramebuffer (quickCanvasBlurProcessFBO);
227+ quickCanvasBlurProcessFBO = nvgCreateFramebuffer (nvg, scaledWidth, scaledHeight, NVG_IMAGE_PREMULTIPLIED);
228+
221229 fbWidth = scaledWidth;
222230 fbHeight = scaledHeight;
223231 invalidArea = getLocalBounds ();
@@ -416,9 +424,11 @@ void NVGSurface::render()
416424 nvgBlitFramebuffer (nvg, invalidFBO, 0 , 0 , fbWidth, fbHeight);
417425
418426 if (!approximatelyEqual (0 .0f , cnv->quickCanvasAlpha )) {
419- nvgBlurFramebuffer (nvg, quickCanvasBlurFBO, fbWidth, fbHeight, cnv->quickCanvasAlpha * 15 , 1 . 0f );
427+ nvgBlurFramebuffer (nvg, quickCanvasBlurFBO, quickCanvasBlurProcessFBO, fbWidth, fbHeight, cnv->quickCanvasAlpha * getValue< float >(cnv-> zoomScale ) );
420428 }
421429
430+ nvgBindFramebuffer (quickCanvasBlurFBO);
431+
422432 nvgViewport (0 , 0 , fbWidth, fbHeight);
423433 nvgBeginFrame (nvg, fbWidth, fbHeight, 1 );
424434 nvgGlobalScissor (nvg, 0 , 0 , fbWidth, fbHeight);
0 commit comments