diff options
Diffstat (limited to 'libs/hwui/StatefulBaseRenderer.h')
| -rw-r--r-- | libs/hwui/StatefulBaseRenderer.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/libs/hwui/StatefulBaseRenderer.h b/libs/hwui/StatefulBaseRenderer.h index 64354ac..2e7f279 100644 --- a/libs/hwui/StatefulBaseRenderer.h +++ b/libs/hwui/StatefulBaseRenderer.h @@ -46,6 +46,11 @@ public: virtual status_t prepare(bool opaque) { return prepareDirty(0.0f, 0.0f, mWidth, mHeight, opaque); } + + /** + * Initialize the first snapshot, computing the projection matrix, + * and stores the dimensions of the render target. + */ void initializeViewport(int width, int height); void initializeSaveStack(float clipLeft, float clipTop, float clipRight, float clipBottom); @@ -83,6 +88,14 @@ public: virtual bool clipPath(const SkPath* path, SkRegion::Op op); virtual bool clipRegion(const SkRegion* region, SkRegion::Op op); + /** + * Does not support different clipping Ops (that is, every call to setClippingOutline is + * effectively using SkRegion::kReplaceOp) + * + * The clipping outline is independent from the regular clip. + */ + void setClippingOutline(LinearAllocator& allocator, const Outline* outline); + protected: const Rect& getRenderTargetClipBounds() const { return mSnapshot->getRenderTargetClip(); } @@ -101,7 +114,7 @@ protected: // Clip bool calculateQuickRejectForScissor(float left, float top, float right, float bottom, - bool* clipRequired, bool snapOut) const; + bool* clipRequired, bool* roundRectClipRequired, bool snapOut) const; /** * Called just after a restore has occurred. The 'removed' snapshot popped from the stack, |
