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 #include "GrAAStrokeRectBatch.h" | 8 #include "GrAAStrokeRectBatch.h" |
9 | 9 |
10 #include "GrBatchFlushState.h" | 10 #include "GrBatchFlushState.h" |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 | 185 |
186 SkAutoTUnref<const GrGeometryProcessor> gp(create_stroke_rect_gp(canTweakAlp
haForCoverage, | 186 SkAutoTUnref<const GrGeometryProcessor> gp(create_stroke_rect_gp(canTweakAlp
haForCoverage, |
187 this->viewM
atrix(), | 187 this->viewM
atrix(), |
188 this->usesL
ocalCoords(), | 188 this->usesL
ocalCoords(), |
189 this->cover
ageIgnored())); | 189 this->cover
ageIgnored())); |
190 if (!gp) { | 190 if (!gp) { |
191 SkDebugf("Couldn't create GrGeometryProcessor\n"); | 191 SkDebugf("Couldn't create GrGeometryProcessor\n"); |
192 return; | 192 return; |
193 } | 193 } |
194 | 194 |
195 target->initDraw(gp); | |
196 | |
197 size_t vertexStride = gp->getVertexStride(); | 195 size_t vertexStride = gp->getVertexStride(); |
198 | 196 |
199 SkASSERT(canTweakAlphaForCoverage ? | 197 SkASSERT(canTweakAlphaForCoverage ? |
200 vertexStride == sizeof(GrDefaultGeoProcFactory::PositionColorAttr)
: | 198 vertexStride == sizeof(GrDefaultGeoProcFactory::PositionColorAttr)
: |
201 vertexStride == sizeof(GrDefaultGeoProcFactory::PositionColorCovera
geAttr)); | 199 vertexStride == sizeof(GrDefaultGeoProcFactory::PositionColorCovera
geAttr)); |
202 int innerVertexNum = 4; | 200 int innerVertexNum = 4; |
203 int outerVertexNum = this->miterStroke() ? 4 : 8; | 201 int outerVertexNum = this->miterStroke() ? 4 : 8; |
204 int verticesPerInstance = (outerVertexNum + innerVertexNum) * 2; | 202 int verticesPerInstance = (outerVertexNum + innerVertexNum) * 2; |
205 int indicesPerInstance = this->miterStroke() ? kMiterIndexCnt : kBevelIndexC
nt; | 203 int indicesPerInstance = this->miterStroke() ? kMiterIndexCnt : kBevelIndexC
nt; |
206 int instanceCount = fGeoData.count(); | 204 int instanceCount = fGeoData.count(); |
(...skipping 17 matching lines...) Expand all Loading... |
224 outerVertexNum, | 222 outerVertexNum, |
225 innerVertexNum, | 223 innerVertexNum, |
226 args.fColor, | 224 args.fColor, |
227 args.fDevOutside, | 225 args.fDevOutside, |
228 args.fDevOutsideAssist, | 226 args.fDevOutsideAssist, |
229 args.fDevInside, | 227 args.fDevInside, |
230 fMiterStroke, | 228 fMiterStroke, |
231 args.fDegenerate, | 229 args.fDegenerate, |
232 canTweakAlphaForCoverage); | 230 canTweakAlphaForCoverage); |
233 } | 231 } |
234 helper.recordDraw(target); | 232 helper.recordDraw(target, gp); |
235 } | 233 } |
236 | 234 |
237 const GrBuffer* AAStrokeRectBatch::GetIndexBuffer(GrResourceProvider* resourcePr
ovider, | 235 const GrBuffer* AAStrokeRectBatch::GetIndexBuffer(GrResourceProvider* resourcePr
ovider, |
238 bool miterStroke) { | 236 bool miterStroke) { |
239 | 237 |
240 if (miterStroke) { | 238 if (miterStroke) { |
241 static const uint16_t gMiterIndices[] = { | 239 static const uint16_t gMiterIndices[] = { |
242 0 + 0, 1 + 0, 5 + 0, 5 + 0, 4 + 0, 0 + 0, | 240 0 + 0, 1 + 0, 5 + 0, 5 + 0, 4 + 0, 0 + 0, |
243 1 + 0, 2 + 0, 6 + 0, 6 + 0, 5 + 0, 1 + 0, | 241 1 + 0, 2 + 0, 6 + 0, 6 + 0, 5 + 0, 1 + 0, |
244 2 + 0, 3 + 0, 7 + 0, 7 + 0, 6 + 0, 2 + 0, | 242 2 + 0, 3 + 0, 7 + 0, 7 + 0, 6 + 0, 2 + 0, |
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
654 SkRect inside = outside; | 652 SkRect inside = outside; |
655 inside.inset(strokeWidth, strokeWidth); | 653 inside.inset(strokeWidth, strokeWidth); |
656 | 654 |
657 GrColor color = GrRandomColor(random); | 655 GrColor color = GrRandomColor(random); |
658 | 656 |
659 return GrAAStrokeRectBatch::Create(color, GrTest::TestMatrix(random), outsid
e, outsideAssist, | 657 return GrAAStrokeRectBatch::Create(color, GrTest::TestMatrix(random), outsid
e, outsideAssist, |
660 inside, miterStroke, inside.isFinite() &&
inside.isEmpty()); | 658 inside, miterStroke, inside.isFinite() &&
inside.isEmpty()); |
661 } | 659 } |
662 | 660 |
663 #endif | 661 #endif |
OLD | NEW |