| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2010 Google Inc. | 2 * Copyright 2010 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #ifndef GrDrawTarget_DEFINED | 8 #ifndef GrDrawTarget_DEFINED |
| 9 #define GrDrawTarget_DEFINED | 9 #define GrDrawTarget_DEFINED |
| 10 | 10 |
| (...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 /** | 498 /** |
| 499 * For subclass internal use to invoke a call to onDrawPaths(). | 499 * For subclass internal use to invoke a call to onDrawPaths(). |
| 500 */ | 500 */ |
| 501 void executeDrawPaths(const GrPathRange* pathRange, | 501 void executeDrawPaths(const GrPathRange* pathRange, |
| 502 const uint32_t indices[], int count, | 502 const uint32_t indices[], int count, |
| 503 const float transforms[], PathTransformType transforms
Type, | 503 const float transforms[], PathTransformType transforms
Type, |
| 504 SkPath::FillType fill, | 504 SkPath::FillType fill, |
| 505 const GrDeviceCoordTexture* dstCopy) { | 505 const GrDeviceCoordTexture* dstCopy) { |
| 506 this->onDrawPaths(pathRange, indices, count, transforms, transformsType,
fill, dstCopy); | 506 this->onDrawPaths(pathRange, indices, count, transforms, transformsType,
fill, dstCopy); |
| 507 } | 507 } |
| 508 |
| 509 void getPathStencilSettingsForFillType(SkPath::FillType, GrStencilSettings*)
; |
| 510 |
| 508 //////////////////////////////////////////////////////////////////////////// | 511 //////////////////////////////////////////////////////////////////////////// |
| 509 | 512 |
| 510 /** | 513 /** |
| 511 * See AutoStateRestore below. | 514 * See AutoStateRestore below. |
| 512 */ | 515 */ |
| 513 enum ASRInit { | 516 enum ASRInit { |
| 514 kPreserve_ASRInit, | 517 kPreserve_ASRInit, |
| 515 kReset_ASRInit | 518 kReset_ASRInit |
| 516 }; | 519 }; |
| 517 | 520 |
| (...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 916 // indicate non-indexed drawing. | 919 // indicate non-indexed drawing. |
| 917 bool checkDraw(GrPrimitiveType type, int startVertex, | 920 bool checkDraw(GrPrimitiveType type, int startVertex, |
| 918 int startIndex, int vertexCount, | 921 int startIndex, int vertexCount, |
| 919 int indexCount) const; | 922 int indexCount) const; |
| 920 // called when setting a new vert/idx source to unref prev vb/ib | 923 // called when setting a new vert/idx source to unref prev vb/ib |
| 921 void releasePreviousVertexSource(); | 924 void releasePreviousVertexSource(); |
| 922 void releasePreviousIndexSource(); | 925 void releasePreviousIndexSource(); |
| 923 | 926 |
| 924 // Check to see if this set of draw commands has been sent out | 927 // Check to see if this set of draw commands has been sent out |
| 925 virtual bool isIssued(uint32_t drawID) { return true; } | 928 virtual bool isIssued(uint32_t drawID) { return true; } |
| 929 virtual GrClipMaskManager* getClipMaskManager() = 0; |
| 926 | 930 |
| 927 enum { | 931 enum { |
| 928 kPreallocGeoSrcStateStackCnt = 4, | 932 kPreallocGeoSrcStateStackCnt = 4, |
| 929 }; | 933 }; |
| 930 SkSTArray<kPreallocGeoSrcStateStackCnt, GeometrySrcState, true> fGeoSrcState
Stack; | 934 SkSTArray<kPreallocGeoSrcStateStackCnt, GeometrySrcState, true> fGeoSrcState
Stack; |
| 931 const GrClipData* fClip; | 935 const GrClipData* fClip; |
| 932 GrDrawState* fDrawState; | 936 GrDrawState* fDrawState; |
| 933 GrDrawState fDefaultDraw
State; | 937 GrDrawState fDefaultDraw
State; |
| 934 // The context owns us, not vice-versa, so this ptr is not ref'ed by DrawTar
get. | 938 // The context owns us, not vice-versa, so this ptr is not ref'ed by DrawTar
get. |
| 935 GrContext* fContext; | 939 GrContext* fContext; |
| 936 // To keep track that we always have at least as many debug marker adds as r
emoves | 940 // To keep track that we always have at least as many debug marker adds as r
emoves |
| 937 int fGpuTraceMar
kerCount; | 941 int fGpuTraceMar
kerCount; |
| 938 GrTraceMarkerSet fActiveTrace
Markers; | 942 GrTraceMarkerSet fActiveTrace
Markers; |
| 939 GrTraceMarkerSet fStoredTrace
Markers; | 943 GrTraceMarkerSet fStoredTrace
Markers; |
| 940 | 944 |
| 941 typedef SkRefCnt INHERITED; | 945 typedef SkRefCnt INHERITED; |
| 942 }; | 946 }; |
| 943 | 947 |
| 948 /* |
| 949 * This class is JUST for clip mask manager. Everyone else should just use draw
target above. |
| 950 */ |
| 944 class GrClipTarget : public GrDrawTarget { | 951 class GrClipTarget : public GrDrawTarget { |
| 945 public: | 952 public: |
| 946 GrClipTarget(GrContext* context) : INHERITED(context) {} | 953 GrClipTarget(GrContext* context) : INHERITED(context) { |
| 954 fClipMaskManager.setClipTarget(this); |
| 955 } |
| 956 |
| 957 /* Clip mask manager needs access to the context. |
| 958 * TODO we only need a very small subset of context in the CMM. |
| 959 */ |
| 960 GrContext* getContext() { return INHERITED::getContext(); } |
| 961 const GrContext* getContext() const { return INHERITED::getContext(); } |
| 962 |
| 947 /** | 963 /** |
| 948 * Clip Mask Manager(and no one else) needs to clear private stencil bits. | 964 * Clip Mask Manager(and no one else) needs to clear private stencil bits. |
| 949 * ClipTarget subclass sets clip bit in the stencil buffer. The subclass | 965 * ClipTarget subclass sets clip bit in the stencil buffer. The subclass |
| 950 * is free to clear the remaining bits to zero if masked clears are more | 966 * is free to clear the remaining bits to zero if masked clears are more |
| 951 * expensive than clearing all bits. | 967 * expensive than clearing all bits. |
| 952 */ | 968 */ |
| 953 virtual void clearStencilClip(const SkIRect& rect, bool insideClip, GrRender
Target* = NULL) = 0; | 969 virtual void clearStencilClip(const SkIRect& rect, bool insideClip, GrRender
Target* = NULL) = 0; |
| 954 | 970 |
| 971 protected: |
| 972 GrClipMaskManager fClipMaskManager; |
| 973 |
| 955 private: | 974 private: |
| 975 GrClipMaskManager* getClipMaskManager() { return &fClipMaskManager; } |
| 976 |
| 956 typedef GrDrawTarget INHERITED; | 977 typedef GrDrawTarget INHERITED; |
| 957 }; | 978 }; |
| 958 | 979 |
| 959 #endif | 980 #endif |
| OLD | NEW |