| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 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 #include "GrInOrderDrawBuffer.h" | 8 #include "GrInOrderDrawBuffer.h" |
| 9 | 9 |
| 10 #include "GrBufferAllocPool.h" | 10 #include "GrBufferAllocPool.h" |
| (...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 881 void GrInOrderDrawBuffer::recordStateIfNecessary() { | 881 void GrInOrderDrawBuffer::recordStateIfNecessary() { |
| 882 if (fStates.empty()) { | 882 if (fStates.empty()) { |
| 883 fStates.push_back() = this->getDrawState(); | 883 fStates.push_back() = this->getDrawState(); |
| 884 this->addToCmdBuffer(kSetState_Cmd); | 884 this->addToCmdBuffer(kSetState_Cmd); |
| 885 return; | 885 return; |
| 886 } | 886 } |
| 887 const GrDrawState& curr = this->getDrawState(); | 887 const GrDrawState& curr = this->getDrawState(); |
| 888 GrDrawState& prev = fStates.back(); | 888 GrDrawState& prev = fStates.back(); |
| 889 switch (GrDrawState::CombineIfPossible(prev, curr, *this->caps())) { | 889 switch (GrDrawState::CombineIfPossible(prev, curr, *this->caps())) { |
| 890 case GrDrawState::kIncompatible_CombinedState: | 890 case GrDrawState::kIncompatible_CombinedState: |
| 891 fStates.push_back() = this->getDrawState(); | 891 this->convertDrawStateToPendingExec(&fStates.push_back(curr)); |
| 892 this->addToCmdBuffer(kSetState_Cmd); | 892 this->addToCmdBuffer(kSetState_Cmd); |
| 893 break; | 893 break; |
| 894 case GrDrawState::kA_CombinedState: | 894 case GrDrawState::kA_CombinedState: |
| 895 case GrDrawState::kAOrB_CombinedState: // Treat the same as kA. | 895 case GrDrawState::kAOrB_CombinedState: // Treat the same as kA. |
| 896 break; | 896 break; |
| 897 case GrDrawState::kB_CombinedState: | 897 case GrDrawState::kB_CombinedState: |
| 898 prev = curr; | 898 // prev has already been converted to pending execution. That is a o
ne-way ticket. |
| 899 // So here we just delete prev and push back a new copy of curr. Not
e that this |
| 900 // goes away when we move GrIODB over to taking optimized snapshots
of draw states. |
| 901 fStates.pop_back(); |
| 902 this->convertDrawStateToPendingExec(&fStates.push_back(curr)); |
| 899 break; | 903 break; |
| 900 } | 904 } |
| 901 } | 905 } |
| 902 | 906 |
| 903 bool GrInOrderDrawBuffer::needsNewClip() const { | 907 bool GrInOrderDrawBuffer::needsNewClip() const { |
| 904 if (this->getDrawState().isClipState()) { | 908 if (this->getDrawState().isClipState()) { |
| 905 if (fClipSet && | 909 if (fClipSet && |
| 906 (fClips.empty() || | 910 (fClips.empty() || |
| 907 fClips.back().fStack != *this->getClip()->fClipStack || | 911 fClips.back().fStack != *this->getClip()->fClipStack || |
| 908 fClips.back().fOrigin != this->getClip()->fOrigin)) { | 912 fClips.back().fOrigin != this->getClip()->fOrigin)) { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 958 GrInOrderDrawBuffer::CopySurface* GrInOrderDrawBuffer::recordCopySurface() { | 962 GrInOrderDrawBuffer::CopySurface* GrInOrderDrawBuffer::recordCopySurface() { |
| 959 this->addToCmdBuffer(kCopySurface_Cmd); | 963 this->addToCmdBuffer(kCopySurface_Cmd); |
| 960 return &fCopySurfaces.push_back(); | 964 return &fCopySurfaces.push_back(); |
| 961 } | 965 } |
| 962 | 966 |
| 963 void GrInOrderDrawBuffer::clipWillBeSet(const GrClipData* newClipData) { | 967 void GrInOrderDrawBuffer::clipWillBeSet(const GrClipData* newClipData) { |
| 964 INHERITED::clipWillBeSet(newClipData); | 968 INHERITED::clipWillBeSet(newClipData); |
| 965 fClipSet = true; | 969 fClipSet = true; |
| 966 fClipProxyState = kUnknown_ClipProxyState; | 970 fClipProxyState = kUnknown_ClipProxyState; |
| 967 } | 971 } |
| OLD | NEW |