diff --git a/src/renderer/gl_engine/tvgGlRenderTask.cpp b/src/renderer/gl_engine/tvgGlRenderTask.cpp index c978febf..9cd206e2 100644 --- a/src/renderer/gl_engine/tvgGlRenderTask.cpp +++ b/src/renderer/gl_engine/tvgGlRenderTask.cpp @@ -195,23 +195,20 @@ void GlComposeTask::run() { GL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, getSelfFbo())); - // clear this fbo - if (mClearBuffer) { - // we must clear all area of fbo - GL_CHECK(glViewport(0, 0, mFbo->getWidth(), mFbo->getHeight())); - GL_CHECK(glScissor(0, 0, mFbo->getWidth(), mFbo->getHeight())); - GL_CHECK(glClearColor(0, 0, 0, 0)); - GL_CHECK(glClearStencil(0)); - #ifdef THORVG_GL_TARGET_GLES - GL_CHECK(glClearDepthf(0.0)); - #else - GL_CHECK(glClearDepth(0.0)); - #endif - GL_CHECK(glDepthMask(1)); + // we must clear all area of fbo + GL_CHECK(glViewport(0, 0, mFbo->getWidth(), mFbo->getHeight())); + GL_CHECK(glScissor(0, 0, mFbo->getWidth(), mFbo->getHeight())); + GL_CHECK(glClearColor(0, 0, 0, 0)); + GL_CHECK(glClearStencil(0)); +#ifdef THORVG_GL_TARGET_GLES + GL_CHECK(glClearDepthf(0.0)); +#else + GL_CHECK(glClearDepth(0.0)); +#endif + GL_CHECK(glDepthMask(1)); - GL_CHECK(glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)); - GL_CHECK(glDepthMask(0)); - } + GL_CHECK(glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)); + GL_CHECK(glDepthMask(0)); GL_CHECK(glViewport(0, 0, mRenderWidth, mRenderHeight)); GL_CHECK(glScissor(0, 0, mRenderWidth, mRenderHeight)); diff --git a/src/renderer/gl_engine/tvgGlRenderer.cpp b/src/renderer/gl_engine/tvgGlRenderer.cpp index c9148145..8a2db298 100644 --- a/src/renderer/gl_engine/tvgGlRenderer.cpp +++ b/src/renderer/gl_engine/tvgGlRenderer.cpp @@ -853,6 +853,9 @@ bool GlRenderer::sync() clearDisposes(); + // Reset clear buffer flag to default (false) after use. + mClearBuffer = false; + delete task; return true; diff --git a/src/renderer/gl_engine/tvgGlRenderer.h b/src/renderer/gl_engine/tvgGlRenderer.h index 7ab1e901..1f29c5fa 100644 --- a/src/renderer/gl_engine/tvgGlRenderer.h +++ b/src/renderer/gl_engine/tvgGlRenderer.h @@ -153,7 +153,7 @@ private: } mDisposed; BlendMethod mBlendMethod = BlendMethod::Normal; - bool mClearBuffer = true; //FIXME: clear buffer should be optional (default is false) + bool mClearBuffer = false; }; #endif /* _TVG_GL_RENDERER_H_ */