diff options
author | John Reck <jreck@google.com> | 2014-04-08 15:18:56 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2014-04-08 15:18:56 -0700 |
commit | 1949e7928eeec22cd3f74b5f763a4eb433238453 (patch) | |
tree | 9989642b268277a76657fcdbab75cd478d770d2f /libs/hwui/renderthread/RenderProxy.cpp | |
parent | 1f3f55b434ce324c5fdbe74db1982fea4812a2e9 (diff) |
Ensure there's a GL context before creating a Layer
Bug: 13745587
Change-Id: Ib0ec059d9a5974a48734daeec9d83580cada94a3
Diffstat (limited to 'libs/hwui/renderthread/RenderProxy.cpp')
-rw-r--r-- | libs/hwui/renderthread/RenderProxy.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp index 489dc9026af6..e817e616f016 100644 --- a/libs/hwui/renderthread/RenderProxy.cpp +++ b/libs/hwui/renderthread/RenderProxy.cpp @@ -202,10 +202,9 @@ void RenderProxy::runWithGlContext(RenderTask* gltask) { postAndWait(task); } -CREATE_BRIDGE2(createDisplayListLayer, int width, int height) { - Layer* layer = LayerRenderer::createRenderLayer(args->width, args->height); +CREATE_BRIDGE3(createDisplayListLayer, CanvasContext* context, int width, int height) { + Layer* layer = args->context->createRenderLayer(args->width, args->height); if (!layer) return 0; - return new DeferredLayerUpdater(layer); } @@ -213,20 +212,22 @@ DeferredLayerUpdater* RenderProxy::createDisplayListLayer(int width, int height) SETUP_TASK(createDisplayListLayer); args->width = width; args->height = height; + args->context = mContext; void* retval = postAndWait(task); DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(retval); mDrawFrameTask.addLayer(layer); return layer; } -CREATE_BRIDGE0(createTextureLayer) { - Layer* layer = LayerRenderer::createTextureLayer(); +CREATE_BRIDGE1(createTextureLayer, CanvasContext* context) { + Layer* layer = args->context->createTextureLayer(); if (!layer) return 0; return new DeferredLayerUpdater(layer); } DeferredLayerUpdater* RenderProxy::createTextureLayer() { SETUP_TASK(createTextureLayer); + args->context = mContext; void* retval = postAndWait(task); DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(retval); mDrawFrameTask.addLayer(layer); |