Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(229)

Unified Diff: src/gpu/GrPipeline.cpp

Issue 1306803003: Revert of Remove GrStagedProcessor, remove the word Stage as it applies to FPs (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/GrPipeline.h ('k') | src/gpu/GrPipelineBuilder.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/GrPipeline.cpp
diff --git a/src/gpu/GrPipeline.cpp b/src/gpu/GrPipeline.cpp
index 5e057b089f05ed550e2bc950bb39499a615b1a6f..8f149f5c4b7ebd236c9732944a5b71ed3fae8a17 100644
--- a/src/gpu/GrPipeline.cpp
+++ b/src/gpu/GrPipeline.cpp
@@ -29,8 +29,8 @@
}
GrColor overrideColor = GrColor_ILLEGAL;
- if (args.fColorPOI.firstEffectiveProcessorIndex() != 0) {
- overrideColor = args.fColorPOI.inputColorToFirstEffectiveProccesor();
+ if (args.fColorPOI.firstEffectiveStageIndex() != 0) {
+ overrideColor = args.fColorPOI.inputColorToEffectiveStage();
}
GrXferProcessor::OptFlags optFlags = GrXferProcessor::kNone_OptFlags;
@@ -73,36 +73,31 @@
pipeline->fFlags |= kSnapVertices_Flag;
}
- int firstColorProcessorIdx = args.fColorPOI.firstEffectiveProcessorIndex();
+ int firstColorStageIdx = args.fColorPOI.firstEffectiveStageIndex();
- // TODO: Once we can handle single or four channel input into coverage GrFragmentProcessors
- // then we can use GrPipelineBuilder's coverageProcInfo (like color above) to set this initial
- // information.
- int firstCoverageProcessorIdx = 0;
+ // TODO: Once we can handle single or four channel input into coverage stages then we can use
+ // GrPipelineBuilder's coverageProcInfo (like color above) to set this initial information.
+ int firstCoverageStageIdx = 0;
pipeline->adjustProgramFromOptimizations(builder, optFlags, args.fColorPOI, args.fCoveragePOI,
- &firstColorProcessorIdx, &firstCoverageProcessorIdx);
+ &firstColorStageIdx, &firstCoverageStageIdx);
bool usesLocalCoords = false;
- // Copy GrFragmentProcessors from GrPipelineBuilder to Pipeline
- pipeline->fNumColorProcessors = builder.numColorFragmentProcessors() - firstColorProcessorIdx;
- int numTotalProcessors = pipeline->fNumColorProcessors +
- builder.numCoverageFragmentProcessors() - firstCoverageProcessorIdx;
- pipeline->fFragmentProcessors.reset(numTotalProcessors);
- int currFPIdx = 0;
- for (int i = firstColorProcessorIdx; i < builder.numColorFragmentProcessors();
- ++i, ++currFPIdx) {
- const GrFragmentProcessor* fp = builder.getColorFragmentProcessor(i);
- pipeline->fFragmentProcessors[currFPIdx].reset(fp);
+ // Copy Stages from PipelineBuilder to Pipeline
+ for (int i = firstColorStageIdx; i < builder.numColorFragmentStages(); ++i) {
+ const GrFragmentStage& fps = builder.fColorStages[i];
+ const GrFragmentProcessor* fp = fps.processor();
+ SkNEW_APPEND_TO_TARRAY(&pipeline->fFragmentStages, GrPendingFragmentStage, (fps));
usesLocalCoords = usesLocalCoords || fp->usesLocalCoords();
fp->gatherCoordTransforms(&pipeline->fCoordTransforms);
}
- for (int i = firstCoverageProcessorIdx; i < builder.numCoverageFragmentProcessors();
- ++i, ++currFPIdx) {
- const GrFragmentProcessor* fp = builder.getCoverageFragmentProcessor(i);
- pipeline->fFragmentProcessors[currFPIdx].reset(fp);
+ pipeline->fNumColorStages = pipeline->fFragmentStages.count();
+ for (int i = firstCoverageStageIdx; i < builder.numCoverageFragmentStages(); ++i) {
+ const GrFragmentStage& fps = builder.fCoverageStages[i];
+ const GrFragmentProcessor* fp = fps.processor();
+ SkNEW_APPEND_TO_TARRAY(&pipeline->fFragmentStages, GrPendingFragmentStage, (fps));
usesLocalCoords = usesLocalCoords || fp->usesLocalCoords();
fp->gatherCoordTransforms(&pipeline->fCoordTransforms);
}
@@ -139,13 +134,13 @@
GrXferProcessor::OptFlags flags,
const GrProcOptInfo& colorPOI,
const GrProcOptInfo& coveragePOI,
- int* firstColorProcessorIdx,
- int* firstCoverageProcessorIdx) {
+ int* firstColorStageIdx,
+ int* firstCoverageStageIdx) {
fReadsFragPosition = fXferProcessor->willReadFragmentPosition();
if ((flags & GrXferProcessor::kIgnoreColor_OptFlag) ||
(flags & GrXferProcessor::kOverrideColor_OptFlag)) {
- *firstColorProcessorIdx = pipelineBuilder.numColorFragmentProcessors();
+ *firstColorStageIdx = pipelineBuilder.numColorFragmentStages();
} else {
if (coveragePOI.readsFragPosition()) {
fReadsFragPosition = true;
@@ -153,7 +148,7 @@
}
if (flags & GrXferProcessor::kIgnoreCoverage_OptFlag) {
- *firstCoverageProcessorIdx = pipelineBuilder.numCoverageFragmentProcessors();
+ *firstCoverageStageIdx = pipelineBuilder.numCoverageFragmentStages();
} else {
if (coveragePOI.readsFragPosition()) {
fReadsFragPosition = true;
@@ -168,8 +163,8 @@
SkASSERT(&a != &b);
if (a.getRenderTarget() != b.getRenderTarget() ||
- a.fFragmentProcessors.count() != b.fFragmentProcessors.count() ||
- a.fNumColorProcessors != b.fNumColorProcessors ||
+ a.fFragmentStages.count() != b.fFragmentStages.count() ||
+ a.fNumColorStages != b.fNumColorStages ||
a.fScissorState != b.fScissorState ||
a.fFlags != b.fFlags ||
a.fStencilSettings != b.fStencilSettings ||
@@ -181,8 +176,9 @@
return false;
}
- for (int i = 0; i < a.numFragmentProcessors(); i++) {
- if (!a.getFragmentProcessor(i).isEqual(b.getFragmentProcessor(i), ignoreCoordTransforms)) {
+ for (int i = 0; i < a.numFragmentStages(); i++) {
+ if (!a.getFragmentStage(i).processor()->isEqual(*b.getFragmentStage(i).processor(),
+ ignoreCoordTransforms)) {
return false;
}
}
« no previous file with comments | « src/gpu/GrPipeline.h ('k') | src/gpu/GrPipelineBuilder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698