LCOV - code coverage report
Current view: directory - gfx/skia/include/core - SkClipStack.h (source / functions) Found Hit Coverage
Test: app.info Lines: 7 0 0.0 %
Date: 2012-06-02 Functions: 4 0 0.0 %

       1                 : 
       2                 : /*
       3                 :  * Copyright 2011 Google Inc.
       4                 :  *
       5                 :  * Use of this source code is governed by a BSD-style license that can be
       6                 :  * found in the LICENSE file.
       7                 :  */
       8                 : #ifndef SkClipStack_DEFINED
       9                 : #define SkClipStack_DEFINED
      10                 : 
      11                 : #include "SkDeque.h"
      12                 : #include "SkRegion.h"
      13                 : 
      14                 : struct SkRect;
      15                 : class SkPath;
      16                 : 
      17                 : class SK_API SkClipStack {
      18                 : public:
      19                 :     SkClipStack();
      20                 :     SkClipStack(const SkClipStack& b);
      21               0 :     ~SkClipStack() {}
      22                 : 
      23                 :     SkClipStack& operator=(const SkClipStack& b);
      24                 :     bool operator==(const SkClipStack& b) const;
      25                 :     bool operator!=(const SkClipStack& b) const { return !(*this == b); }
      26                 : 
      27                 :     void reset();
      28                 : 
      29               0 :     int getSaveCount() const { return fSaveCount; }
      30                 :     void save();
      31                 :     void restore();
      32                 : 
      33               0 :     void clipDevRect(const SkIRect& ir,
      34                 :                      SkRegion::Op op = SkRegion::kIntersect_Op) {
      35                 :         SkRect r;
      36               0 :         r.set(ir);
      37               0 :         this->clipDevRect(r, op, false);
      38               0 :     }
      39                 :     void clipDevRect(const SkRect&, SkRegion::Op, bool doAA);
      40                 :     void clipDevPath(const SkPath&, SkRegion::Op, bool doAA);
      41                 : 
      42                 :     class B2FIter {
      43                 :     public:
      44                 :         /**
      45                 :          * Creates an uninitialized iterator. Must be reset()
      46                 :          */
      47                 :         B2FIter();
      48                 : 
      49                 :         B2FIter(const SkClipStack& stack);
      50                 : 
      51                 :         struct Clip {
      52               0 :             Clip() : fRect(NULL), fPath(NULL), fOp(SkRegion::kIntersect_Op) {}
      53                 :             friend bool operator==(const Clip& a, const Clip& b);
      54                 :             friend bool operator!=(const Clip& a, const Clip& b);
      55                 :             const SkRect*   fRect;  // if non-null, this is a rect clip
      56                 :             const SkPath*   fPath;  // if non-null, this is a path clip
      57                 :             SkRegion::Op    fOp;
      58                 :             bool            fDoAA;
      59                 :         };
      60                 : 
      61                 :         /**
      62                 :          *  Return the clip for this element in the iterator. If next() returns
      63                 :          *  NULL, then the iterator is done. The type of clip is determined by
      64                 :          *  the pointers fRect and fPath:
      65                 :          *
      66                 :          *  fRect==NULL  fPath!=NULL    path clip
      67                 :          *  fRect!=NULL  fPath==NULL    rect clip
      68                 :          *  fRect==NULL  fPath==NULL    empty clip
      69                 :          */
      70                 :         const Clip* next();
      71                 : 
      72                 :         /**
      73                 :          * Restarts the iterator on a clip stack.
      74                 :          */
      75                 :         void reset(const SkClipStack& stack);
      76                 : 
      77                 :     private:
      78                 :         Clip             fClip;
      79                 :         SkDeque::F2BIter fIter;
      80                 :     };
      81                 : 
      82                 : private:
      83                 :     friend class B2FIter;
      84                 :     struct Rec;
      85                 : 
      86                 :     SkDeque fDeque;
      87                 :     int     fSaveCount;
      88                 : };
      89                 : 
      90                 : #endif
      91                 : 

Generated by: LCOV version 1.7