| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 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 GrPipelineBuilder_DEFINED | 8 #ifndef GrPipelineBuilder_DEFINED |
| 9 #define GrPipelineBuilder_DEFINED | 9 #define GrPipelineBuilder_DEFINED |
| 10 | 10 |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 /** | 107 /** |
| 108 * When this object is destroyed it will remove any color/coverage FPs from
the pipeline builder | 108 * When this object is destroyed it will remove any color/coverage FPs from
the pipeline builder |
| 109 * and also remove any additions to the GrProcessorDataManager that were add
ed after its | 109 * and also remove any additions to the GrProcessorDataManager that were add
ed after its |
| 110 * constructor. | 110 * constructor. |
| 111 * This class can transiently modify its "const" GrPipelineBuilder object bu
t will restore it | 111 * This class can transiently modify its "const" GrPipelineBuilder object bu
t will restore it |
| 112 * when done - so it is notionally "const" correct. | 112 * when done - so it is notionally "const" correct. |
| 113 */ | 113 */ |
| 114 class AutoRestoreFragmentProcessorState : public ::SkNoncopyable { | 114 class AutoRestoreFragmentProcessorState : public ::SkNoncopyable { |
| 115 public: | 115 public: |
| 116 AutoRestoreFragmentProcessorState() | 116 AutoRestoreFragmentProcessorState() |
| 117 : fPipelineBuilder(NULL) | 117 : fPipelineBuilder(nullptr) |
| 118 , fColorEffectCnt(0) | 118 , fColorEffectCnt(0) |
| 119 , fCoverageEffectCnt(0) | 119 , fCoverageEffectCnt(0) |
| 120 , fSaveMarker(0) {} | 120 , fSaveMarker(0) {} |
| 121 | 121 |
| 122 AutoRestoreFragmentProcessorState(const GrPipelineBuilder& ds) | 122 AutoRestoreFragmentProcessorState(const GrPipelineBuilder& ds) |
| 123 : fPipelineBuilder(NULL) | 123 : fPipelineBuilder(nullptr) |
| 124 , fColorEffectCnt(0) | 124 , fColorEffectCnt(0) |
| 125 , fCoverageEffectCnt(0) | 125 , fCoverageEffectCnt(0) |
| 126 , fSaveMarker(0) { | 126 , fSaveMarker(0) { |
| 127 this->set(&ds); | 127 this->set(&ds); |
| 128 } | 128 } |
| 129 | 129 |
| 130 ~AutoRestoreFragmentProcessorState() { this->set(NULL); } | 130 ~AutoRestoreFragmentProcessorState() { this->set(nullptr); } |
| 131 | 131 |
| 132 void set(const GrPipelineBuilder* ds); | 132 void set(const GrPipelineBuilder* ds); |
| 133 | 133 |
| 134 bool isSet() const { return SkToBool(fPipelineBuilder); } | 134 bool isSet() const { return SkToBool(fPipelineBuilder); } |
| 135 | 135 |
| 136 GrProcessorDataManager* getProcessorDataManager() { | 136 GrProcessorDataManager* getProcessorDataManager() { |
| 137 SkASSERT(this->isSet()); | 137 SkASSERT(this->isSet()); |
| 138 return fPipelineBuilder->getProcessorDataManager(); | 138 return fPipelineBuilder->getProcessorDataManager(); |
| 139 } | 139 } |
| 140 | 140 |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 250 | 250 |
| 251 /** | 251 /** |
| 252 * AutoRestoreStencil | 252 * AutoRestoreStencil |
| 253 * | 253 * |
| 254 * This simple struct saves and restores the stencil settings | 254 * This simple struct saves and restores the stencil settings |
| 255 * This class can transiently modify its "const" GrPipelineBuilder object bu
t will restore it | 255 * This class can transiently modify its "const" GrPipelineBuilder object bu
t will restore it |
| 256 * when done - so it is notionally "const" correct. | 256 * when done - so it is notionally "const" correct. |
| 257 */ | 257 */ |
| 258 class AutoRestoreStencil : public ::SkNoncopyable { | 258 class AutoRestoreStencil : public ::SkNoncopyable { |
| 259 public: | 259 public: |
| 260 AutoRestoreStencil() : fPipelineBuilder(NULL) {} | 260 AutoRestoreStencil() : fPipelineBuilder(nullptr) {} |
| 261 | 261 |
| 262 AutoRestoreStencil(const GrPipelineBuilder& ds) : fPipelineBuilder(NULL)
{ this->set(&ds); } | 262 AutoRestoreStencil(const GrPipelineBuilder& ds) : fPipelineBuilder(nullp
tr) { this->set(&ds); } |
| 263 | 263 |
| 264 ~AutoRestoreStencil() { this->set(NULL); } | 264 ~AutoRestoreStencil() { this->set(nullptr); } |
| 265 | 265 |
| 266 void set(const GrPipelineBuilder* ds) { | 266 void set(const GrPipelineBuilder* ds) { |
| 267 if (fPipelineBuilder) { | 267 if (fPipelineBuilder) { |
| 268 fPipelineBuilder->setStencil(fStencilSettings); | 268 fPipelineBuilder->setStencil(fStencilSettings); |
| 269 } | 269 } |
| 270 fPipelineBuilder = const_cast<GrPipelineBuilder*>(ds); | 270 fPipelineBuilder = const_cast<GrPipelineBuilder*>(ds); |
| 271 if (ds) { | 271 if (ds) { |
| 272 fStencilSettings = ds->getStencil(); | 272 fStencilSettings = ds->getStencil(); |
| 273 } | 273 } |
| 274 } | 274 } |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 FragmentProcessorArray fCoverageFragmentProcessors; | 448 FragmentProcessorArray fCoverageFragmentProcessors; |
| 449 GrClip fClip; | 449 GrClip fClip; |
| 450 | 450 |
| 451 mutable GrProcOptInfo fColorProcInfo; | 451 mutable GrProcOptInfo fColorProcInfo; |
| 452 mutable GrProcOptInfo fCoverageProcInfo; | 452 mutable GrProcOptInfo fCoverageProcInfo; |
| 453 | 453 |
| 454 friend class GrPipeline; | 454 friend class GrPipeline; |
| 455 }; | 455 }; |
| 456 | 456 |
| 457 #endif | 457 #endif |
| OLD | NEW |