unsigned Canvas2DLayerBridge::prepareTexture(WebTextureUpdater& updater) { m_context->makeContextCurrent(); if (m_canvas) { TRACE_EVENT0("cc", "Canvas2DLayerBridge::SkCanvas::flush"); m_canvas->flush(); } m_context->flush(); if (m_useDoubleBuffering) { updater.appendCopy(m_backBufferTexture, m_frontBufferTexture, m_size); return m_frontBufferTexture; } return m_backBufferTexture; }
unsigned Canvas2DLayerBridge::prepareTexture(WebTextureUpdater& updater) { m_context->makeContextCurrent(); if (m_canvas) { TRACE_EVENT0("cc", "Canvas2DLayerBridge::SkCanvas::flush"); m_canvas->flush(); } m_context->flush(); if (m_useDoubleBuffering) { updater.appendCopy(m_backBufferTexture, m_frontBufferTexture, m_size); return m_frontBufferTexture; } if (m_canvas) { // Notify skia that the state of the backing store texture object will be touched by the compositor GrRenderTarget* renderTarget = reinterpret_cast<GrRenderTarget*>(m_canvas->getDevice()->accessRenderTarget()); if (renderTarget) renderTarget->asTexture()->invalidateCachedState(); } return m_backBufferTexture; }