void LegacyCACFLayerTreeHost::destroyRenderer() { wkCACFContextSetLayer(m_context, 0); wkCACFContextSetD3DDevice(m_context, 0); m_d3dDevice = 0; if (s_d3d) s_d3d->Release(); s_d3d = 0; m_mightBeAbleToCreateDeviceLater = true; CACFLayerTreeHost::destroyRenderer(); }
void WKCACFLayerRenderer::destroyRenderer() { wkCACFContextSetLayer(m_context, m_rootLayer->platformLayer()); m_d3dDevice = 0; if (s_d3d) s_d3d->Release(); s_d3d = 0; m_rootLayer = 0; m_rootChildLayer = 0; m_mightBeAbleToCreateDeviceLater = true; }
WKCACFLayerRenderer::WKCACFLayerRenderer(WKCACFLayerRendererClient* client) : m_client(client) , m_mightBeAbleToCreateDeviceLater(true) , m_rootLayer(PlatformCALayer::create(PlatformCALayer::LayerTypeRootLayer, 0)) , m_context(wkCACFContextCreate()) , m_hostWindow(0) , m_renderTimer(this, &WKCACFLayerRenderer::renderTimerFired) , m_backingStoreDirty(false) , m_mustResetLostDeviceBeforeRendering(false) , m_syncLayerChanges(false) { // Point the CACFContext to this wkCACFContextSetUserData(m_context, this); // Under the root layer, we have a clipping layer to clip the content, // that contains a scroll layer that we use for scrolling the content. // The root layer is the size of the client area of the window. // The clipping layer is the size of the WebView client area (window less the scrollbars). // The scroll layer is the size of the root child layer. // Resizing the window will change the bounds of the rootLayer and the clip layer and will not // cause any repositioning. // Scrolling will affect only the position of the scroll layer without affecting the bounds. m_rootLayer->setName("WKCACFLayerRenderer rootLayer"); m_rootLayer->setAnchorPoint(FloatPoint3D(0, 0, 0)); m_rootLayer->setGeometryFlipped(true); #ifndef NDEBUG CGColorRef debugColor = CGColorCreateGenericRGB(1, 0, 0, 0.8); m_rootLayer->setBackgroundColor(debugColor); CGColorRelease(debugColor); #endif if (m_context) wkCACFContextSetLayer(m_context, m_rootLayer->platformLayer()); #ifndef NDEBUG char* printTreeFlag = getenv("CA_PRINT_TREE"); m_printTree = printTreeFlag && atoi(printTreeFlag); #endif }
void LegacyCACFLayerTreeHost::initializeContext(void* userData, PlatformCALayer* layer) { wkCACFContextSetUserData(m_context, userData); wkCACFContextSetLayer(m_context, layer->platformLayer()); }