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

Side by Side Diff: src/gpu/GrOptDrawState.cpp

Issue 822423004: Move most of the transform logic into the primitive processors (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: cleanup Created 5 years, 11 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 unified diff | Download patch
« no previous file with comments | « src/gpu/GrGeometryProcessor.cpp ('k') | src/gpu/GrOvalRenderer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2014 Google Inc. 2 * Copyright 2014 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 "GrOptDrawState.h" 8 #include "GrOptDrawState.h"
9 9
10 #include "GrDrawState.h" 10 #include "GrDrawState.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 } 80 }
81 81
82 fFlags = 0; 82 fFlags = 0;
83 if (drawState.isHWAntialias()) { 83 if (drawState.isHWAntialias()) {
84 fFlags |= kHWAA_Flag; 84 fFlags |= kHWAA_Flag;
85 } 85 }
86 if (drawState.isDither()) { 86 if (drawState.isDither()) {
87 fFlags |= kDither_Flag; 87 fFlags |= kDither_Flag;
88 } 88 }
89 89
90 // TODO move local coords completely into GP
91 bool hasLocalCoords = gp && gp->hasLocalCoords();
92
93 int firstColorStageIdx = colorPOI.firstEffectiveStageIndex(); 90 int firstColorStageIdx = colorPOI.firstEffectiveStageIndex();
94 91
95 // TODO: Once we can handle single or four channel input into coverage stage s then we can use 92 // TODO: Once we can handle single or four channel input into coverage stage s then we can use
96 // drawState's coverageProcInfo (like color above) to set this initial infor mation. 93 // drawState's coverageProcInfo (like color above) to set this initial infor mation.
97 int firstCoverageStageIdx = 0; 94 int firstCoverageStageIdx = 0;
98 95
99 GrXferProcessor::BlendInfo blendInfo; 96 GrXferProcessor::BlendInfo blendInfo;
100 fXferProcessor->getBlendInfo(&blendInfo); 97 fXferProcessor->getBlendInfo(&blendInfo);
101 98
102 this->adjustProgramFromOptimizations(drawState, optFlags, colorPOI, coverage POI, 99 this->adjustProgramFromOptimizations(drawState, optFlags, colorPOI, coverage POI,
103 &firstColorStageIdx, &firstCoverageStag eIdx); 100 &firstColorStageIdx, &firstCoverageStag eIdx);
104 101
105 fDescInfo.fRequiresLocalCoordAttrib = hasLocalCoords;
106
107 bool usesLocalCoords = false; 102 bool usesLocalCoords = false;
108 103
109 // Copy Stages from DS to ODS 104 // Copy Stages from DS to ODS
110 for (int i = firstColorStageIdx; i < drawState.numColorStages(); ++i) { 105 for (int i = firstColorStageIdx; i < drawState.numColorStages(); ++i) {
111 SkNEW_APPEND_TO_TARRAY(&fFragmentStages, 106 SkNEW_APPEND_TO_TARRAY(&fFragmentStages,
112 GrPendingFragmentStage, 107 GrPendingFragmentStage,
113 (drawState.fColorStages[i])); 108 (drawState.fColorStages[i]));
114 usesLocalCoords = usesLocalCoords || 109 usesLocalCoords = usesLocalCoords ||
115 drawState.fColorStages[i].processor()->usesLocalCoords (); 110 drawState.fColorStages[i].processor()->usesLocalCoords ();
116 } 111 }
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 if (this->getFragmentStage(i) != that.getFragmentStage(i)) { 198 if (this->getFragmentStage(i) != that.getFragmentStage(i)) {
204 return false; 199 return false;
205 } 200 }
206 } 201 }
207 202
208 // Now update the GrPrimitiveProcessor's batch tracker 203 // Now update the GrPrimitiveProcessor's batch tracker
209 fPrimitiveProcessor->makeEqual(&fBatchTracker, that.getBatchTracker()); 204 fPrimitiveProcessor->makeEqual(&fBatchTracker, that.getBatchTracker());
210 return true; 205 return true;
211 } 206 }
212 207
OLDNEW
« no previous file with comments | « src/gpu/GrGeometryProcessor.cpp ('k') | src/gpu/GrOvalRenderer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698