| 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 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 | 186 |
| 187 SkAutoTUnref<const GrGeometryProcessor> gp(create_stroke_rect_gp(canTweakAlp
haForCoverage, | 187 SkAutoTUnref<const GrGeometryProcessor> gp(create_stroke_rect_gp(canTweakAlp
haForCoverage, |
| 188 this->viewM
atrix(), | 188 this->viewM
atrix(), |
| 189 this->usesL
ocalCoords(), | 189 this->usesL
ocalCoords(), |
| 190 this->cover
ageIgnored())); | 190 this->cover
ageIgnored())); |
| 191 if (!gp) { | 191 if (!gp) { |
| 192 SkDebugf("Couldn't create GrGeometryProcessor\n"); | 192 SkDebugf("Couldn't create GrGeometryProcessor\n"); |
| 193 return; | 193 return; |
| 194 } | 194 } |
| 195 | 195 |
| 196 target->initDraw(gp, this->pipeline()); | 196 target->initDraw(gp); |
| 197 | 197 |
| 198 size_t vertexStride = gp->getVertexStride(); | 198 size_t vertexStride = gp->getVertexStride(); |
| 199 | 199 |
| 200 SkASSERT(canTweakAlphaForCoverage ? | 200 SkASSERT(canTweakAlphaForCoverage ? |
| 201 vertexStride == sizeof(GrDefaultGeoProcFactory::PositionColorAttr)
: | 201 vertexStride == sizeof(GrDefaultGeoProcFactory::PositionColorAttr)
: |
| 202 vertexStride == sizeof(GrDefaultGeoProcFactory::PositionColorCovera
geAttr)); | 202 vertexStride == sizeof(GrDefaultGeoProcFactory::PositionColorCovera
geAttr)); |
| 203 int innerVertexNum = 4; | 203 int innerVertexNum = 4; |
| 204 int outerVertexNum = this->miterStroke() ? 4 : 8; | 204 int outerVertexNum = this->miterStroke() ? 4 : 8; |
| 205 int verticesPerInstance = (outerVertexNum + innerVertexNum) * 2; | 205 int verticesPerInstance = (outerVertexNum + innerVertexNum) * 2; |
| 206 int indicesPerInstance = this->miterStroke() ? kMiterIndexCnt : kBevelIndexC
nt; | 206 int indicesPerInstance = this->miterStroke() ? kMiterIndexCnt : kBevelIndexC
nt; |
| 207 int instanceCount = fGeoData.count(); | 207 int instanceCount = fGeoData.count(); |
| 208 | 208 |
| 209 const SkAutoTUnref<const GrIndexBuffer> indexBuffer( | 209 const SkAutoTUnref<const GrIndexBuffer> indexBuffer( |
| 210 GetIndexBuffer(target->resourceProvider(), this->miterStroke())); | 210 GetIndexBuffer(target->resourceProvider(), this->miterStroke())); |
| 211 InstancedHelper helper; | 211 InstancedHelper helper; |
| 212 void* vertices = helper.init(target, kTriangles_GrPrimitiveType, vertexStrid
e, | 212 void* vertices = helper.init(target, kTriangles_GrPrimitiveType, vertexStrid
e, |
| 213 indexBuffer, verticesPerInstance, indicesPerIn
stance, | 213 indexBuffer, verticesPerInstance, indicesPerIns
tance, |
| 214 instanceCount); | 214 instanceCount); |
| 215 if (!vertices || !indexBuffer) { | 215 if (!vertices || !indexBuffer) { |
| 216 SkDebugf("Could not allocate vertices\n"); | 216 SkDebugf("Could not allocate vertices\n"); |
| 217 return; | 217 return; |
| 218 } | 218 } |
| 219 | 219 |
| 220 for (int i = 0; i < instanceCount; i++) { | 220 for (int i = 0; i < instanceCount; i++) { |
| 221 const Geometry& args = fGeoData[i]; | 221 const Geometry& args = fGeoData[i]; |
| 222 this->generateAAStrokeRectGeometry(vertices, | 222 this->generateAAStrokeRectGeometry(vertices, |
| 223 i * verticesPerInstance * vertexStrid
e, | 223 i * verticesPerInstance * vertexStrid
e, |
| (...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 655 SkRect inside = outside; | 655 SkRect inside = outside; |
| 656 inside.inset(strokeWidth, strokeWidth); | 656 inside.inset(strokeWidth, strokeWidth); |
| 657 | 657 |
| 658 GrColor color = GrRandomColor(random); | 658 GrColor color = GrRandomColor(random); |
| 659 | 659 |
| 660 return GrAAStrokeRectBatch::Create(color, GrTest::TestMatrix(random), outsid
e, outsideAssist, | 660 return GrAAStrokeRectBatch::Create(color, GrTest::TestMatrix(random), outsid
e, outsideAssist, |
| 661 inside, miterStroke, inside.isFinite() &&
inside.isEmpty()); | 661 inside, miterStroke, inside.isFinite() &&
inside.isEmpty()); |
| 662 } | 662 } |
| 663 | 663 |
| 664 #endif | 664 #endif |
| OLD | NEW |