app_server/Interface Kit: add new clipping API

* Add new clipping API for rectangles (ClipToRect, ClipToInverseRect)
  and shapes (ClipToShape, ClipToInverseShape)

* Works with affine transforms and automatically switches from fast
  region-based clipping to alpha-mask based clipping as necessary.

* Always self-intersecting, i.e. no state push required to further
  narrow down the clipping region. All of the 4 new methods can be
  mixed in any order.
This commit is contained in:
Julian Harnath
2015-11-10 23:33:54 +01:00
parent 23af4ff6ac
commit 4bd6f322bb
15 changed files with 404 additions and 6 deletions
@@ -96,6 +96,11 @@ public:
const int32& token);
status_t WriteBlendLayer(Layer* layer);
status_t WriteClipToRect(const BRect& rect,
bool inverse);
status_t WriteClipToShape(int32 opCount,
const void* opList, int32 ptCount,
const void* ptList, bool inverse);
protected:
// throw a status_t on error