diff options
author | John Reck <jreck@google.com> | 2014-06-23 13:13:08 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2014-06-23 15:26:49 -0700 |
commit | 3b20251a355c88193c439f928a84ae69483fb488 (patch) | |
tree | 33c878ebacf17cf03d089404474fa66ca041ffb9 /libs/hwui/OpenGLRenderer.h | |
parent | 97a6c20a6a52c9429ed2c8837086f3003e5da274 (diff) | |
download | frameworks_base-3b20251a355c88193c439f928a84ae69483fb488.zip frameworks_base-3b20251a355c88193c439f928a84ae69483fb488.tar.gz frameworks_base-3b20251a355c88193c439f928a84ae69483fb488.tar.bz2 |
No-fail invokeFunctor
Bug: 15513308
Bug: 15449247
Change-Id: I13a29f9c8d4975cdda6dcb33b6332c2555ff0f7c
Diffstat (limited to 'libs/hwui/OpenGLRenderer.h')
-rw-r--r-- | libs/hwui/OpenGLRenderer.h | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h index 066b267..4ff5780 100644 --- a/libs/hwui/OpenGLRenderer.h +++ b/libs/hwui/OpenGLRenderer.h @@ -57,6 +57,7 @@ namespace android { namespace uirenderer { class DeferredDisplayState; +class RenderState; class RenderNode; class TextSetupFunctor; class VertexBuffer; @@ -119,33 +120,31 @@ enum ModelViewMode { */ class OpenGLRenderer : public StatefulBaseRenderer { public: - ANDROID_API OpenGLRenderer(); + OpenGLRenderer(RenderState& renderState); virtual ~OpenGLRenderer(); - ANDROID_API void initProperties(); + void initProperties(); virtual void onViewportInitialized(); virtual status_t prepareDirty(float left, float top, float right, float bottom, bool opaque); virtual void finish(); - virtual void interrupt(); - virtual void resume(); - ANDROID_API void setCountOverdrawEnabled(bool enabled) { + void setCountOverdrawEnabled(bool enabled) { mCountOverdraw = enabled; } - ANDROID_API float getOverdraw() { + float getOverdraw() { return mCountOverdraw ? mOverdraw : 0.0f; } virtual status_t callDrawGLFunction(Functor* functor, Rect& dirty); - ANDROID_API void pushLayerUpdate(Layer* layer); - ANDROID_API void cancelLayerUpdate(Layer* layer); - ANDROID_API void clearLayerUpdates(); - ANDROID_API void flushLayerUpdates(); + void pushLayerUpdate(Layer* layer); + void cancelLayerUpdate(Layer* layer); + void clearLayerUpdates(); + void flushLayerUpdates(); - ANDROID_API virtual int saveLayer(float left, float top, float right, float bottom, + virtual int saveLayer(float left, float top, float right, float bottom, const SkPaint* paint, int flags) { return saveLayer(left, top, right, bottom, paint, flags, NULL); } @@ -231,7 +230,7 @@ public: const DrawModifiers& getDrawModifiers() { return mDrawModifiers; } void setDrawModifiers(const DrawModifiers& drawModifiers) { mDrawModifiers = drawModifiers; } - ANDROID_API bool isCurrentTransformSimple() { + bool isCurrentTransformSimple() { return currentTransform()->isSimple(); } @@ -474,6 +473,8 @@ protected: return false; } + inline RenderState& renderState() { return mRenderState; } + private: /** * Discards the content of the framebuffer if supported by the driver. @@ -977,6 +978,7 @@ private: // Various caches Caches& mCaches; Extensions& mExtensions; + RenderState& mRenderState; // List of rectangles to clear after saveLayer() is invoked Vector<Rect*> mLayers; @@ -1012,7 +1014,6 @@ private: bool mSkipOutlineClip; - friend class DisplayListRenderer; friend class Layer; friend class TextSetupFunctor; friend class DrawBitmapOp; |