Index: src/gpu/GrPipelineBuilder.cpp |
diff --git a/src/gpu/GrPipelineBuilder.cpp b/src/gpu/GrPipelineBuilder.cpp |
index 59d0556baef4732b6c5daa7e250525c6874fd1a2..0b2d99afc2f4c179206faa0f6f267601cf7abfb2 100644 |
--- a/src/gpu/GrPipelineBuilder.cpp |
+++ b/src/gpu/GrPipelineBuilder.cpp |
@@ -16,7 +16,8 @@ |
#include "effects/GrPorterDuffXferProcessor.h" |
robertphillips
2015/07/10 13:54:05
Do we still need this ctor? If we do, do we need t
|
GrPipelineBuilder::GrPipelineBuilder() |
- : fFlags(0x0) |
+ : fProcDataManager(SkNEW(GrProcessorDataManager)) |
+ , fFlags(0x0) |
, fDrawFace(kBoth_DrawFace) |
, fColorProcInfoValid(false) |
, fCoverageProcInfoValid(false) |
@@ -26,6 +27,7 @@ GrPipelineBuilder::GrPipelineBuilder() |
} |
GrPipelineBuilder& GrPipelineBuilder::operator=(const GrPipelineBuilder& that) { |
+ fProcDataManager.reset(SkNEW_ARGS(GrProcessorDataManager, (*that.processorDataManager()))); |
fRenderTarget.reset(SkSafeRef(that.fRenderTarget.get())); |
fFlags = that.fFlags; |
fStencilSettings = that.fStencilSettings; |
@@ -51,6 +53,10 @@ GrPipelineBuilder& GrPipelineBuilder::operator=(const GrPipelineBuilder& that) { |
GrPipelineBuilder::GrPipelineBuilder(const GrPaint& paint, GrRenderTarget* rt, const GrClip& clip) { |
SkDEBUGCODE(fBlockEffectRemovalCnt = 0;) |
+ // TODO keep this logically const using an AutoReset |
+ fProcDataManager.reset( |
+ const_cast<GrProcessorDataManager*>(SkRef(paint.processorDataManager()))); |
+ |
fColorStages.reset(); |
fCoverageStages.reset(); |