diff -r 46927d61fef3 -r 3ac8bf5c5014 uiacceltk/hitchcock/coretoolkit/rendervg10/src/huivg10canvasrenderbuffer.cpp --- a/uiacceltk/hitchcock/coretoolkit/rendervg10/src/huivg10canvasrenderbuffer.cpp Wed Apr 14 16:53:50 2010 +0300 +++ b/uiacceltk/hitchcock/coretoolkit/rendervg10/src/huivg10canvasrenderbuffer.cpp Tue Apr 27 17:34:42 2010 +0300 @@ -450,3 +450,39 @@ } } +void CHuiVg10CanvasRenderBuffer::InitializeL(const TSize& aSize, TBool aForceClear) + { + if (!IsInitialized()) + { + InitializeL(aSize); + } + else + { + if (aForceClear) + { + CHuiVg10RenderPlugin& renderer = CHuiStatic::Vg10Renderer(); + + // Reinitialize the context + PushEGLContext(); + + Bind(); + iGc->InitState(); + + VGfloat color[] = + { + 0.f, 0.f, 0.f, 0.f + }; + vgSetfv(VG_CLEAR_COLOR, sizeof(color) / sizeof(VGfloat), color); + vgClear(0, 0, iSize.iWidth, iSize.iHeight); + UnBind(); + + // Let renderer know that we have been fiddlling with OpenVg state directly + // "iGc->InitState" confuses scissoring setting, so lets notify it. + renderer.AddRestoreStateFlags(EHuiVg10GcStateFlagDirtyScissor); + renderer.AddRestoreStateFlags(EHuiVg10GcStateFlagDirtyBlendMode); + + PopEGLContext(); + } + } + } +