| 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 | 10 |
| (...skipping 639 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 650 void GrDrawTarget::clipWillBeSet(const GrClipData* clipData) { | 650 void GrDrawTarget::clipWillBeSet(const GrClipData* clipData) { |
| 651 } | 651 } |
| 652 | 652 |
| 653 //////////////////////////////////////////////////////////////////////////////// | 653 //////////////////////////////////////////////////////////////////////////////// |
| 654 | 654 |
| 655 GrDrawTarget::AutoStateRestore::AutoStateRestore() { | 655 GrDrawTarget::AutoStateRestore::AutoStateRestore() { |
| 656 fDrawTarget = NULL; | 656 fDrawTarget = NULL; |
| 657 } | 657 } |
| 658 | 658 |
| 659 GrDrawTarget::AutoStateRestore::AutoStateRestore(GrDrawTarget* target, | 659 GrDrawTarget::AutoStateRestore::AutoStateRestore(GrDrawTarget* target, |
| 660 ASRInit init) { | 660 ASRInit init, |
| 661 const SkMatrix* vm) { |
| 661 fDrawTarget = NULL; | 662 fDrawTarget = NULL; |
| 662 this->set(target, init); | 663 this->set(target, init, vm); |
| 663 } | 664 } |
| 664 | 665 |
| 665 GrDrawTarget::AutoStateRestore::~AutoStateRestore() { | 666 GrDrawTarget::AutoStateRestore::~AutoStateRestore() { |
| 666 if (NULL != fDrawTarget) { | 667 if (NULL != fDrawTarget) { |
| 667 fDrawTarget->setDrawState(fSavedState); | 668 fDrawTarget->setDrawState(fSavedState); |
| 668 fSavedState->unref(); | 669 fSavedState->unref(); |
| 669 } | 670 } |
| 670 } | 671 } |
| 671 | 672 |
| 672 void GrDrawTarget::AutoStateRestore::set(GrDrawTarget* target, ASRInit init) { | 673 void GrDrawTarget::AutoStateRestore::set(GrDrawTarget* target, ASRInit init, con
st SkMatrix* vm) { |
| 673 GrAssert(NULL == fDrawTarget); | 674 GrAssert(NULL == fDrawTarget); |
| 674 fDrawTarget = target; | 675 fDrawTarget = target; |
| 675 fSavedState = target->drawState(); | 676 fSavedState = target->drawState(); |
| 677 GrAssert(fSavedState); |
| 678 fSavedState->ref(); |
| 679 if (kReset_ASRInit == init) { |
| 680 if (NULL == vm) { |
| 681 // calls the default cons |
| 682 fTempState.init(); |
| 683 } else { |
| 684 SkNEW_IN_TLAZY(&fTempState, GrDrawState, (*vm)); |
| 685 } |
| 686 } else { |
| 687 GrAssert(kPreserve_ASRInit == init); |
| 688 if (NULL == vm) { |
| 689 fTempState.set(*fSavedState); |
| 690 } else { |
| 691 SkNEW_IN_TLAZY(&fTempState, GrDrawState, (*fSavedState, *vm)); |
| 692 } |
| 693 } |
| 694 target->setDrawState(fTempState.get()); |
| 695 } |
| 696 |
| 697 bool GrDrawTarget::AutoStateRestore::setIdentity(GrDrawTarget* target, ASRInit i
nit) { |
| 698 GrAssert(NULL == fDrawTarget); |
| 699 fDrawTarget = target; |
| 700 fSavedState = target->drawState(); |
| 676 GrAssert(fSavedState); | 701 GrAssert(fSavedState); |
| 677 fSavedState->ref(); | 702 fSavedState->ref(); |
| 678 if (kReset_ASRInit == init) { | 703 if (kReset_ASRInit == init) { |
| 679 // calls the default cons | 704 // calls the default cons |
| 680 fTempState.init(); | 705 fTempState.init(); |
| 681 } else { | 706 } else { |
| 682 GrAssert(kPreserve_ASRInit == init); | 707 GrAssert(kPreserve_ASRInit == init); |
| 683 // calls the copy cons | 708 // calls the copy cons |
| 684 fTempState.set(*fSavedState); | 709 fTempState.set(*fSavedState); |
| 710 if (!fTempState.get()->setIdentityViewMatrix()) { |
| 711 // let go of any resources held by the temp |
| 712 fTempState.get()->reset(); |
| 713 fDrawTarget = NULL; |
| 714 fSavedState->unref(); |
| 715 fSavedState = NULL; |
| 716 return false; |
| 717 } |
| 685 } | 718 } |
| 686 target->setDrawState(fTempState.get()); | 719 target->setDrawState(fTempState.get()); |
| 720 return true; |
| 687 } | 721 } |
| 688 | 722 |
| 689 //////////////////////////////////////////////////////////////////////////////// | 723 //////////////////////////////////////////////////////////////////////////////// |
| 690 | 724 |
| 691 GrDrawTarget::AutoReleaseGeometry::AutoReleaseGeometry( | 725 GrDrawTarget::AutoReleaseGeometry::AutoReleaseGeometry( |
| 692 GrDrawTarget* target, | 726 GrDrawTarget* target, |
| 693 int vertexCount, | 727 int vertexCount, |
| 694 int indexCount) { | 728 int indexCount) { |
| 695 fTarget = NULL; | 729 fTarget = NULL; |
| 696 this->set(target, vertexCount, indexCount); | 730 this->set(target, vertexCount, indexCount); |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 944 GrPrintf("Shader Derivative Support : %s\n", gNY[fShaderDerivativeSupport]
); | 978 GrPrintf("Shader Derivative Support : %s\n", gNY[fShaderDerivativeSupport]
); |
| 945 GrPrintf("Geometry Shader Support : %s\n", gNY[fGeometryShaderSupport]); | 979 GrPrintf("Geometry Shader Support : %s\n", gNY[fGeometryShaderSupport]); |
| 946 GrPrintf("Dual Source Blending Support: %s\n", gNY[fDualSourceBlendingSuppor
t]); | 980 GrPrintf("Dual Source Blending Support: %s\n", gNY[fDualSourceBlendingSuppor
t]); |
| 947 GrPrintf("Buffer Lock Support : %s\n", gNY[fBufferLockSupport]); | 981 GrPrintf("Buffer Lock Support : %s\n", gNY[fBufferLockSupport]); |
| 948 GrPrintf("Path Stenciling Support : %s\n", gNY[fPathStencilingSupport]); | 982 GrPrintf("Path Stenciling Support : %s\n", gNY[fPathStencilingSupport]); |
| 949 GrPrintf("Dst Read In Shader Support : %s\n", gNY[fDstReadInShaderSupport])
; | 983 GrPrintf("Dst Read In Shader Support : %s\n", gNY[fDstReadInShaderSupport])
; |
| 950 GrPrintf("Max Texture Size : %d\n", fMaxTextureSize); | 984 GrPrintf("Max Texture Size : %d\n", fMaxTextureSize); |
| 951 GrPrintf("Max Render Target Size : %d\n", fMaxRenderTargetSize); | 985 GrPrintf("Max Render Target Size : %d\n", fMaxRenderTargetSize); |
| 952 GrPrintf("Max Sample Count : %d\n", fMaxSampleCount); | 986 GrPrintf("Max Sample Count : %d\n", fMaxSampleCount); |
| 953 } | 987 } |
| OLD | NEW |