diff options
author | John Reck <jreck@google.com> | 2014-05-07 21:24:25 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-05-07 21:24:25 +0000 |
commit | b6d9211d31d29221501a8f2a33e6ba0fe18d6ef5 (patch) | |
tree | 1d432b5eded84cc9bfdb185979ef6ebb7b68bedd /libs | |
parent | 841057ffc0283f7e5d5fd750ee1519ee313ed869 (diff) | |
parent | 63a06673253914510bbeebd500655008682dade1 (diff) | |
download | frameworks_base-b6d9211d31d29221501a8f2a33e6ba0fe18d6ef5.zip frameworks_base-b6d9211d31d29221501a8f2a33e6ba0fe18d6ef5.tar.gz frameworks_base-b6d9211d31d29221501a8f2a33e6ba0fe18d6ef5.tar.bz2 |
Merge "Implement TODO(romainguy)"
Diffstat (limited to 'libs')
-rw-r--r-- | libs/hwui/renderthread/CanvasContext.cpp | 4 | ||||
-rw-r--r-- | libs/hwui/renderthread/CanvasContext.h | 1 | ||||
-rw-r--r-- | libs/hwui/renderthread/RenderProxy.cpp | 12 | ||||
-rw-r--r-- | libs/hwui/renderthread/RenderProxy.h | 1 |
4 files changed, 18 insertions, 0 deletions
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp index 97baba8..f0d190d 100644 --- a/libs/hwui/renderthread/CanvasContext.cpp +++ b/libs/hwui/renderthread/CanvasContext.cpp @@ -387,6 +387,10 @@ void CanvasContext::setup(int width, int height) { mCanvas->setViewport(width, height); } +void CanvasContext::setOpaque(bool opaque) { + mOpaque = opaque; +} + void CanvasContext::makeCurrent() { // TODO: Figure out why this workaround is needed, see b/13913604 // In the meantime this matches the behavior of GLRenderer, so it is not a regression diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h index a95e27a..dcb9858 100644 --- a/libs/hwui/renderthread/CanvasContext.h +++ b/libs/hwui/renderthread/CanvasContext.h @@ -52,6 +52,7 @@ public: void updateSurface(EGLNativeWindowType window); void pauseSurface(EGLNativeWindowType window); void setup(int width, int height); + void setOpaque(bool opaque); void makeCurrent(); void prepareDraw(const Vector<DeferredLayerUpdater*>* layerUpdaters, TreeInfo& info); void draw(Rect* dirty); diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp index c2806fa..82a2dbc 100644 --- a/libs/hwui/renderthread/RenderProxy.cpp +++ b/libs/hwui/renderthread/RenderProxy.cpp @@ -159,6 +159,18 @@ void RenderProxy::setup(int width, int height) { post(task); } +CREATE_BRIDGE2(setOpaque, CanvasContext* context, bool opaque) { + args->context->setOpaque(args->opaque); + return NULL; +} + +void RenderProxy::setOpaque(bool opaque) { + SETUP_TASK(setOpaque); + args->context = mContext; + args->opaque = opaque; + post(task); +} + int RenderProxy::syncAndDrawFrame(nsecs_t frameTimeNanos, int dirtyLeft, int dirtyTop, int dirtyRight, int dirtyBottom) { mDrawFrameTask.setDirty(dirtyLeft, dirtyTop, dirtyRight, dirtyBottom); diff --git a/libs/hwui/renderthread/RenderProxy.h b/libs/hwui/renderthread/RenderProxy.h index 013c3bd..4a7e70a 100644 --- a/libs/hwui/renderthread/RenderProxy.h +++ b/libs/hwui/renderthread/RenderProxy.h @@ -67,6 +67,7 @@ public: ANDROID_API void updateSurface(const sp<ANativeWindow>& window); ANDROID_API void pauseSurface(const sp<ANativeWindow>& window); ANDROID_API void setup(int width, int height); + ANDROID_API void setOpaque(bool opaque); ANDROID_API int syncAndDrawFrame(nsecs_t frameTimeNanos, int dirtyLeft, int dirtyTop, int dirtyRight, int dirtyBottom); ANDROID_API void destroyCanvasAndSurface(); |