| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2010 Google Inc. | 3 * Copyright 2010 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 | 9 |
| 10 #ifndef GrDrawTarget_DEFINED | 10 #ifndef GrDrawTarget_DEFINED |
| (...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 532 public: | 532 public: |
| 533 AutoReleaseGeometry(GrDrawTarget* target, | 533 AutoReleaseGeometry(GrDrawTarget* target, |
| 534 int vertexCount, | 534 int vertexCount, |
| 535 int indexCount); | 535 int indexCount); |
| 536 AutoReleaseGeometry(); | 536 AutoReleaseGeometry(); |
| 537 ~AutoReleaseGeometry(); | 537 ~AutoReleaseGeometry(); |
| 538 bool set(GrDrawTarget* target, | 538 bool set(GrDrawTarget* target, |
| 539 int vertexCount, | 539 int vertexCount, |
| 540 int indexCount); | 540 int indexCount); |
| 541 bool succeeded() const { return NULL != fTarget; } | 541 bool succeeded() const { return NULL != fTarget; } |
| 542 void* vertices() const { GrAssert(this->succeeded()); return fVertices;
} | 542 void* vertices() const { SkASSERT(this->succeeded()); return fVertices;
} |
| 543 void* indices() const { GrAssert(this->succeeded()); return fIndices; } | 543 void* indices() const { SkASSERT(this->succeeded()); return fIndices; } |
| 544 GrPoint* positions() const { | 544 GrPoint* positions() const { |
| 545 return static_cast<GrPoint*>(this->vertices()); | 545 return static_cast<GrPoint*>(this->vertices()); |
| 546 } | 546 } |
| 547 | 547 |
| 548 private: | 548 private: |
| 549 void reset(); | 549 void reset(); |
| 550 | 550 |
| 551 GrDrawTarget* fTarget; | 551 GrDrawTarget* fTarget; |
| 552 void* fVertices; | 552 void* fVertices; |
| 553 void* fIndices; | 553 void* fIndices; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 577 //////////////////////////////////////////////////////////////////////////// | 577 //////////////////////////////////////////////////////////////////////////// |
| 578 | 578 |
| 579 /** | 579 /** |
| 580 * Saves the geometry src state at construction and restores in the destruct
or. It also saves | 580 * Saves the geometry src state at construction and restores in the destruct
or. It also saves |
| 581 * and then restores the vertex attrib state. | 581 * and then restores the vertex attrib state. |
| 582 */ | 582 */ |
| 583 class AutoGeometryPush : ::GrNoncopyable { | 583 class AutoGeometryPush : ::GrNoncopyable { |
| 584 public: | 584 public: |
| 585 AutoGeometryPush(GrDrawTarget* target) | 585 AutoGeometryPush(GrDrawTarget* target) |
| 586 : fAttribRestore(target->drawState()) { | 586 : fAttribRestore(target->drawState()) { |
| 587 GrAssert(NULL != target); | 587 SkASSERT(NULL != target); |
| 588 fTarget = target; | 588 fTarget = target; |
| 589 target->pushGeometrySource(); | 589 target->pushGeometrySource(); |
| 590 } | 590 } |
| 591 | 591 |
| 592 ~AutoGeometryPush() { fTarget->popGeometrySource(); } | 592 ~AutoGeometryPush() { fTarget->popGeometrySource(); } |
| 593 | 593 |
| 594 private: | 594 private: |
| 595 GrDrawTarget* fTarget; | 595 GrDrawTarget* fTarget; |
| 596 GrDrawState::AutoVertexAttribRestore fAttribRestore; | 596 GrDrawState::AutoVertexAttribRestore fAttribRestore; |
| 597 }; | 597 }; |
| 598 | 598 |
| 599 /** | 599 /** |
| 600 * Combination of AutoGeometryPush and AutoStateRestore. The vertex attribs
will be in default | 600 * Combination of AutoGeometryPush and AutoStateRestore. The vertex attribs
will be in default |
| 601 * state regardless of ASRInit value. | 601 * state regardless of ASRInit value. |
| 602 */ | 602 */ |
| 603 class AutoGeometryAndStatePush : ::GrNoncopyable { | 603 class AutoGeometryAndStatePush : ::GrNoncopyable { |
| 604 public: | 604 public: |
| 605 AutoGeometryAndStatePush(GrDrawTarget* target, | 605 AutoGeometryAndStatePush(GrDrawTarget* target, |
| 606 ASRInit init, | 606 ASRInit init, |
| 607 const SkMatrix* viewMatrix = NULL) | 607 const SkMatrix* viewMatrix = NULL) |
| 608 : fState(target, init, viewMatrix) { | 608 : fState(target, init, viewMatrix) { |
| 609 GrAssert(NULL != target); | 609 SkASSERT(NULL != target); |
| 610 fTarget = target; | 610 fTarget = target; |
| 611 target->pushGeometrySource(); | 611 target->pushGeometrySource(); |
| 612 if (kPreserve_ASRInit == init) { | 612 if (kPreserve_ASRInit == init) { |
| 613 target->drawState()->setDefaultVertexAttribs(); | 613 target->drawState()->setDefaultVertexAttribs(); |
| 614 } | 614 } |
| 615 } | 615 } |
| 616 | 616 |
| 617 ~AutoGeometryAndStatePush() { fTarget->popGeometrySource(); } | 617 ~AutoGeometryAndStatePush() { fTarget->popGeometrySource(); } |
| 618 | 618 |
| 619 private: | 619 private: |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 712 // subclasses must call this in their destructors to ensure all vertex | 712 // subclasses must call this in their destructors to ensure all vertex |
| 713 // and index sources have been released (including those held by | 713 // and index sources have been released (including those held by |
| 714 // pushGeometrySource()) | 714 // pushGeometrySource()) |
| 715 void releaseGeometry(); | 715 void releaseGeometry(); |
| 716 | 716 |
| 717 // accessors for derived classes | 717 // accessors for derived classes |
| 718 const GeometrySrcState& getGeomSrc() const { return fGeoSrcStateStack.back()
; } | 718 const GeometrySrcState& getGeomSrc() const { return fGeoSrcStateStack.back()
; } |
| 719 // it is preferable to call this rather than getGeomSrc()->fVertexSize becau
se of the assert. | 719 // it is preferable to call this rather than getGeomSrc()->fVertexSize becau
se of the assert. |
| 720 size_t getVertexSize() const { | 720 size_t getVertexSize() const { |
| 721 // the vertex layout is only valid if a vertex source has been specified
. | 721 // the vertex layout is only valid if a vertex source has been specified
. |
| 722 GrAssert(this->getGeomSrc().fVertexSrc != kNone_GeometrySrcType); | 722 SkASSERT(this->getGeomSrc().fVertexSrc != kNone_GeometrySrcType); |
| 723 return this->getGeomSrc().fVertexSize; | 723 return this->getGeomSrc().fVertexSize; |
| 724 } | 724 } |
| 725 | 725 |
| 726 // Subclass must initialize this in its constructor. | 726 // Subclass must initialize this in its constructor. |
| 727 SkAutoTUnref<const GrDrawTargetCaps> fCaps; | 727 SkAutoTUnref<const GrDrawTargetCaps> fCaps; |
| 728 | 728 |
| 729 /** | 729 /** |
| 730 * Used to communicate draws to subclass's onDraw function. | 730 * Used to communicate draws to subclass's onDraw function. |
| 731 */ | 731 */ |
| 732 class DrawInfo { | 732 class DrawInfo { |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 866 const GrClipData* fClip; | 866 const GrClipData* fClip; |
| 867 GrDrawState* fDrawState; | 867 GrDrawState* fDrawState; |
| 868 GrDrawState fDefaultDraw
State; | 868 GrDrawState fDefaultDraw
State; |
| 869 // The context owns us, not vice-versa, so this ptr is not ref'ed by DrawTar
get. | 869 // The context owns us, not vice-versa, so this ptr is not ref'ed by DrawTar
get. |
| 870 GrContext* fContext; | 870 GrContext* fContext; |
| 871 | 871 |
| 872 typedef GrRefCnt INHERITED; | 872 typedef GrRefCnt INHERITED; |
| 873 }; | 873 }; |
| 874 | 874 |
| 875 #endif | 875 #endif |
| OLD | NEW |