void GraphicsLayerChromium::updateLayerPreserves3D() { if (m_preserves3D && m_transformLayer.isNull()) { // Create the transform layer. m_transformLayer = WebLayer::create(); m_transformLayer.setPreserves3D(true); m_transformLayer.setAnimationDelegate(this); m_layer.transferAnimationsTo(&m_transformLayer); // Copy the position from this layer. updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); m_layer.setPosition(FloatPoint::zero()); m_layer.setAnchorPoint(FloatPoint(0.5f, 0.5f)); m_layer.setTransform(SkMatrix44()); // Set the old layer to opacity of 1. Further down we will set the opacity on the transform layer. m_layer.setOpacity(1); m_layer.setContentsScale(contentsScale()); // Move this layer to be a child of the transform layer. if (!m_layer.parent().isNull()) m_layer.parent().replaceChild(m_layer, m_transformLayer); m_transformLayer.addChild(m_layer); updateChildList(); } else if (!m_preserves3D && !m_transformLayer.isNull()) { // Relace the transformLayer in the parent with this layer. m_layer.removeFromParent(); if (!m_transformLayer.parent().isNull()) m_transformLayer.parent().replaceChild(m_transformLayer, m_layer); m_layer.setAnimationDelegate(this); m_transformLayer.transferAnimationsTo(&m_layer); // Release the transform layer. m_transformLayer.setAnimationDelegate(0); m_transformLayer.reset(); updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); updateChildList(); } m_layer.setPreserves3D(m_preserves3D); primaryLayer().setOpacity(m_opacity); updateNames(); }
void GraphicsLayerChromium::updateLayerPreserves3D() { if (m_preserves3D && !m_transformLayer) { // Create the transform layer. m_transformLayer = LayerChromium::create(); m_transformLayer->setPreserves3D(true); m_transformLayer->setLayerAnimationDelegate(this); // Copy the position from this layer. updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); m_layer->setPosition(FloatPoint(m_size.width() / 2.0f, m_size.height() / 2.0f)); m_layer->setAnchorPoint(FloatPoint(0.5f, 0.5f)); TransformationMatrix identity; m_layer->setTransform(identity); // Set the old layer to opacity of 1. Further down we will set the opacity on the transform layer. m_layer->setOpacity(1); m_layer->setContentsScale(contentsScale()); // Move this layer to be a child of the transform layer. if (m_layer->parent()) m_layer->parent()->replaceChild(m_layer.get(), m_transformLayer.get()); m_transformLayer->addChild(m_layer.get()); updateChildList(); } else if (!m_preserves3D && m_transformLayer) { // Relace the transformLayer in the parent with this layer. m_layer->removeFromParent(); if (m_transformLayer->parent()) m_transformLayer->parent()->replaceChild(m_transformLayer.get(), m_layer.get()); // Release the transform layer. m_transformLayer->setLayerAnimationDelegate(0); m_transformLayer = 0; updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); updateChildList(); } m_layer->setPreserves3D(m_preserves3D); primaryLayer()->setOpacity(m_opacity); updateNames(); }
void GraphicsLayerBlackBerry::updateLayerPreserves3D() { if (m_preserves3D && !m_transformLayer) { // Create the transform layer. m_transformLayer = LayerWebKitThread::create(LayerData::TransformLayer, this); // Copy the position from this layer. updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); updateAnimations(); m_layer->setPosition(FloatPoint(m_size.width() / 2.0f, m_size.height() / 2.0f)); m_layer->setAnchorPoint(FloatPoint(0.5f, 0.5f)); TransformationMatrix identity; m_layer->setTransform(identity); // Set the old layer to opacity of 1. Further down we will set the opacity on the transform layer. m_layer->setOpacity(1); // Move this layer to be a child of the transform layer. if (m_layer->superlayer()) m_layer->superlayer()->replaceSublayer(m_layer.get(), m_transformLayer.get()); m_transformLayer->addSublayer(m_layer.get()); m_transformLayer->setPreserves3D(true); m_layer->setPreserves3D(true); updateSublayerList(); } else if (!m_preserves3D && m_transformLayer) { // Relace the transformLayer in the parent with this layer. m_layer->removeFromSuperlayer(); if (m_transformLayer->superlayer()) m_transformLayer->superlayer()->replaceSublayer(m_transformLayer.get(), m_layer.get()); // Release the transform layer. m_transformLayer = 0; updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); updateAnimations(); m_layer->setPreserves3D(false); updateSublayerList(); } updateOpacityOnLayer(); }
void GraphicsLayerChromium::updateLayerPreserves3D() { if (m_preserves3D && !m_transformLayer) { m_transformLayer = adoptPtr(Platform::current()->compositorSupport()->createLayer()); m_transformLayer->setPreserves3D(true); m_transformLayer->setAnimationDelegate(this); m_layer->layer()->transferAnimationsTo(m_transformLayer.get()); // Copy the position from this layer. updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); m_layer->layer()->setPosition(FloatPoint::zero()); m_layer->layer()->setAnchorPoint(FloatPoint(0.5f, 0.5f)); m_layer->layer()->setTransform(SkMatrix44()); // Set the old layer to opacity of 1. Further down we will set the opacity on the transform layer. m_layer->layer()->setOpacity(1); // Move this layer to be a child of the transform layer. if (parent()) parent()->platformLayer()->replaceChild(m_layer->layer(), m_transformLayer.get()); m_transformLayer->addChild(m_layer->layer()); updateChildList(); } else if (!m_preserves3D && m_transformLayer) { // Replace the transformLayer in the parent with this layer. m_layer->layer()->removeFromParent(); if (parent()) parent()->platformLayer()->replaceChild(m_transformLayer.get(), m_layer->layer()); m_layer->layer()->setAnimationDelegate(this); m_transformLayer->transferAnimationsTo(m_layer->layer()); // Release the transform layer. m_transformLayer->setAnimationDelegate(0); m_transformLayer.clear(); updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); updateChildList(); } m_layer->layer()->setPreserves3D(m_preserves3D); platformLayer()->setOpacity(m_opacity); updateNames(); }
void GraphicsLayerCACF::updateLayerPreserves3D() { if (m_preserves3D && !m_transformLayer) { // Create the transform layer. m_transformLayer = WebLayer::create(WKCACFLayer::TransformLayer, this); #ifndef NDEBUG m_transformLayer->setName(String().format("Transform Layer CATransformLayer(%p) GraphicsLayer(%p)", m_transformLayer.get(), this)); #endif // Copy the position from this layer. updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); CGPoint point = CGPointMake(m_size.width() / 2.0f, m_size.height() / 2.0f); m_layer->setPosition(point); m_layer->setAnchorPoint(CGPointMake(0.5f, 0.5f)); m_layer->setTransform(wkqcCATransform3DIdentity()); // Set the old layer to opacity of 1. Further down we will set the opacity on the transform layer. m_layer->setOpacity(1); // Move this layer to be a child of the transform layer. if (m_layer->superlayer()) m_layer->superlayer()->replaceSublayer(m_layer.get(), m_transformLayer.get()); m_transformLayer->addSublayer(m_layer.get()); updateSublayerList(); } else if (!m_preserves3D && m_transformLayer) { // Relace the transformLayer in the parent with this layer. m_layer->removeFromSuperlayer(); m_transformLayer->superlayer()->replaceSublayer(m_transformLayer.get(), m_layer.get()); // Release the transform layer. m_transformLayer = 0; updateLayerPosition(); updateLayerSize(); updateAnchorPoint(); updateTransform(); updateChildrenTransform(); updateSublayerList(); } updateOpacityOnLayer(); }
void wySpriteBatchNode::draw() { // if no draw flag is set, call wyNode::draw and it // will decide forward drawing to java layer or not if(m_noDraw) { wyNode::draw(); return; } // if no texture attached, draw nothing if(m_atlas->getTexture() == NULL) return; // update its children updateChildrenTransform(); // check dither if(m_dither) glEnable(GL_DITHER); glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnable(GL_TEXTURE_2D); // check alpha if(m_alphaTest) { glEnable(GL_ALPHA_TEST); glAlphaFunc(m_alphaFunc, m_alphaRef); } // check blend if(!m_blend) glDisable(GL_BLEND); bool newBlend = false; if(m_blendFunc.src != DEFAULT_BLEND_SRC || m_blendFunc.dst != DEFAULT_BLEND_DST) { newBlend = true; glBlendFunc(m_blendFunc.src, m_blendFunc.dst); } m_atlas->drawAll(); if(newBlend) glBlendFunc(DEFAULT_BLEND_SRC, DEFAULT_BLEND_DST); // check blend if(!m_blend) glEnable(GL_BLEND); // check alpha if(m_alphaTest) glDisable(GL_ALPHA_TEST); glDisable(GL_TEXTURE_2D); glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY); // check dither if(m_dither) glDisable(GL_DITHER); }
void GraphicsLayerChromium::setChildrenTransform(const TransformationMatrix& transform) { if (transform == m_childrenTransform) return; GraphicsLayer::setChildrenTransform(transform); updateChildrenTransform(); }
void GraphicsLayerCACF::setChildrenTransform(const TransformationMatrix& t) { if (t == m_childrenTransform) return; GraphicsLayer::setChildrenTransform(t); updateChildrenTransform(); }
bool wySpriteBatchNode::drawRange(int start, int count) { // if texture is not attached, return true directly if(m_atlas->getTexture() == NULL) return true; // update its children updateChildrenTransform(); // check dither if(m_dither) glEnable(GL_DITHER); glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnable(GL_TEXTURE_2D); bool newBlend = false; if(m_blendFunc.src != DEFAULT_BLEND_SRC || m_blendFunc.dst != DEFAULT_BLEND_DST) { newBlend = true; glBlendFunc(m_blendFunc.src, m_blendFunc.dst); } bool ret = m_atlas->drawRange(start, count); if(newBlend) glBlendFunc(DEFAULT_BLEND_SRC, DEFAULT_BLEND_DST); glDisable(GL_TEXTURE_2D); glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY); // check dither if(m_dither) glDisable(GL_DITHER); return ret; }
void GraphicsLayerChromium::setChildrenTransform(const TransformationMatrix& transform) { GraphicsLayer::setChildrenTransform(transform); updateChildrenTransform(); }