diff options
Diffstat (limited to 'libs/hwui/renderthread/OpenGLPipeline.cpp')
-rw-r--r-- | libs/hwui/renderthread/OpenGLPipeline.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/libs/hwui/renderthread/OpenGLPipeline.cpp b/libs/hwui/renderthread/OpenGLPipeline.cpp index df40a44a16cb..8a5d9ccf759c 100644 --- a/libs/hwui/renderthread/OpenGLPipeline.cpp +++ b/libs/hwui/renderthread/OpenGLPipeline.cpp @@ -125,13 +125,18 @@ bool OpenGLPipeline::copyLayerInto(DeferredLayerUpdater* layer, SkBitmap* bitmap static_cast<GlLayer&>(*layer->backingLayer()), bitmap); } -DeferredLayerUpdater* OpenGLPipeline::createTextureLayer() { - mEglManager.initialize(); - GlLayer* layer = new GlLayer(mRenderThread.renderState(), 0, 0); +static Layer* createLayer(RenderState& renderState, uint32_t layerWidth, uint32_t layerHeight, + SkColorFilter* colorFilter, int alpha, SkBlendMode mode, bool blend) { + GlLayer* layer = new GlLayer(renderState, layerWidth, layerHeight, colorFilter, alpha, + mode, blend); Caches::getInstance().textureState().activateTexture(0); layer->generateTexture(); + return layer; +} - return new DeferredLayerUpdater(layer); +DeferredLayerUpdater* OpenGLPipeline::createTextureLayer() { + mEglManager.initialize(); + return new DeferredLayerUpdater(mRenderThread.renderState(), createLayer, Layer::Api::OpenGL); } void OpenGLPipeline::onStop() { |