| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2015 Google Inc. | 3 * Copyright 2015 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 #include "GrAARectRenderer.h" | 9 #include "GrAARectRenderer.h" |
| 10 #include "GrAtlasTextContext.h" | 10 #include "GrAtlasTextContext.h" |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 init.getOverrideColorIfSet(&fGeoData[0].fColor); | 281 init.getOverrideColorIfSet(&fGeoData[0].fColor); |
| 282 | 282 |
| 283 // setup batch properties | 283 // setup batch properties |
| 284 fBatch.fColorIgnored = !init.readsColor(); | 284 fBatch.fColorIgnored = !init.readsColor(); |
| 285 fBatch.fColor = fGeoData[0].fColor; | 285 fBatch.fColor = fGeoData[0].fColor; |
| 286 fBatch.fUsesLocalCoords = init.readsLocalCoords(); | 286 fBatch.fUsesLocalCoords = init.readsLocalCoords(); |
| 287 fBatch.fCoverageIgnored = !init.readsCoverage(); | 287 fBatch.fCoverageIgnored = !init.readsCoverage(); |
| 288 } | 288 } |
| 289 | 289 |
| 290 void generateGeometry(GrBatchTarget* batchTarget, const GrPipeline* pipeline
) override { | 290 void generateGeometry(GrBatchTarget* batchTarget, const GrPipeline* pipeline
) override { |
| 291 SkAutoTUnref<const GrGeometryProcessor> gp; | 291 SkAutoTUnref<const GrGeometryProcessor> gp( |
| 292 { | 292 GrDefaultGeoProcFactory::Create(GrDefaultGeoProcFactory::kPositi
on_GPType, |
| 293 using namespace GrDefaultGeoProcFactory; | 293 this->color(), |
| 294 Color color(this->color()); | 294 this->usesLocalCoords(), |
| 295 Coverage coverage(this->coverageIgnored() ? Coverage::kSolid_Type : | 295 this->coverageIgnored(), |
| 296 Coverage::kNone_Type); | 296 this->viewMatrix(), |
| 297 LocalCoords localCoords(this->usesLocalCoords() ? LocalCoords::kUseP
osition_Type : | 297 SkMatrix::I())); |
| 298 LocalCoords::kUnus
ed_Type); | |
| 299 gp.reset(GrDefaultGeoProcFactory::Create(color, coverage, localCoord
s, | |
| 300 this->viewMatrix())); | |
| 301 } | |
| 302 | 298 |
| 303 batchTarget->initDraw(gp, pipeline); | 299 batchTarget->initDraw(gp, pipeline); |
| 304 | 300 |
| 305 size_t vertexStride = gp->getVertexStride(); | 301 size_t vertexStride = gp->getVertexStride(); |
| 306 | 302 |
| 307 SkASSERT(vertexStride == sizeof(GrDefaultGeoProcFactory::PositionAttr)); | 303 SkASSERT(vertexStride == sizeof(GrDefaultGeoProcFactory::PositionAttr)); |
| 308 | 304 |
| 309 Geometry& args = fGeoData[0]; | 305 Geometry& args = fGeoData[0]; |
| 310 | 306 |
| 311 int vertexCount = kVertsPerHairlineRect; | 307 int vertexCount = kVertsPerHairlineRect; |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 557 localMatrix); | 553 localMatrix); |
| 558 } | 554 } |
| 559 | 555 |
| 560 static const GrGeometryProcessor* set_vertex_attributes(bool hasLocalCoords, | 556 static const GrGeometryProcessor* set_vertex_attributes(bool hasLocalCoords, |
| 561 bool hasColors, | 557 bool hasColors, |
| 562 int* colorOffset, | 558 int* colorOffset, |
| 563 int* texOffset, | 559 int* texOffset, |
| 564 GrColor color, | 560 GrColor color, |
| 565 const SkMatrix& viewMatr
ix, | 561 const SkMatrix& viewMatr
ix, |
| 566 bool coverageIgnored) { | 562 bool coverageIgnored) { |
| 567 using namespace GrDefaultGeoProcFactory; | |
| 568 *texOffset = -1; | 563 *texOffset = -1; |
| 569 *colorOffset = -1; | 564 *colorOffset = -1; |
| 570 Color gpColor(color); | 565 uint32_t flags = GrDefaultGeoProcFactory::kPosition_GPType; |
| 571 if (hasColors) { | |
| 572 gpColor.fType = Color::kAttribute_Type; | |
| 573 } | |
| 574 | |
| 575 Coverage coverage(coverageIgnored ? Coverage::kNone_Type : Coverage::kSolid_
Type); | |
| 576 LocalCoords localCoords(hasLocalCoords ? LocalCoords::kHasExplicit_Type : | |
| 577 LocalCoords::kUsePosition_Type); | |
| 578 if (hasLocalCoords && hasColors) { | 566 if (hasLocalCoords && hasColors) { |
| 579 *colorOffset = sizeof(SkPoint); | 567 *colorOffset = sizeof(SkPoint); |
| 580 *texOffset = sizeof(SkPoint) + sizeof(GrColor); | 568 *texOffset = sizeof(SkPoint) + sizeof(GrColor); |
| 569 flags |= GrDefaultGeoProcFactory::kColor_GPType | |
| 570 GrDefaultGeoProcFactory::kLocalCoord_GPType; |
| 581 } else if (hasLocalCoords) { | 571 } else if (hasLocalCoords) { |
| 582 *texOffset = sizeof(SkPoint); | 572 *texOffset = sizeof(SkPoint); |
| 573 flags |= GrDefaultGeoProcFactory::kLocalCoord_GPType; |
| 583 } else if (hasColors) { | 574 } else if (hasColors) { |
| 584 *colorOffset = sizeof(SkPoint); | 575 *colorOffset = sizeof(SkPoint); |
| 576 flags |= GrDefaultGeoProcFactory::kColor_GPType; |
| 585 } | 577 } |
| 586 return GrDefaultGeoProcFactory::Create(gpColor, coverage, localCoords, viewM
atrix); | 578 return GrDefaultGeoProcFactory::Create(flags, color, hasLocalCoords, coverag
eIgnored, |
| 579 viewMatrix, SkMatrix::I()); |
| 587 } | 580 } |
| 588 | 581 |
| 589 class DrawVerticesBatch : public GrBatch { | 582 class DrawVerticesBatch : public GrBatch { |
| 590 public: | 583 public: |
| 591 struct Geometry { | 584 struct Geometry { |
| 592 GrColor fColor; | 585 GrColor fColor; |
| 593 SkTDArray<SkPoint> fPositions; | 586 SkTDArray<SkPoint> fPositions; |
| 594 SkTDArray<uint16_t> fIndices; | 587 SkTDArray<uint16_t> fIndices; |
| 595 SkTDArray<GrColor> fColors; | 588 SkTDArray<GrColor> fColors; |
| 596 SkTDArray<SkPoint> fLocalCoords; | 589 SkTDArray<SkPoint> fLocalCoords; |
| (...skipping 737 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1334 return DrawVerticesBatch::Create(geometry, type, viewMatrix, | 1327 return DrawVerticesBatch::Create(geometry, type, viewMatrix, |
| 1335 positions.begin(), vertexCount, | 1328 positions.begin(), vertexCount, |
| 1336 indices.begin(), hasIndices ? vertexCount :
0, | 1329 indices.begin(), hasIndices ? vertexCount :
0, |
| 1337 colors.begin(), | 1330 colors.begin(), |
| 1338 texCoords.begin(), | 1331 texCoords.begin(), |
| 1339 bounds); | 1332 bounds); |
| 1340 } | 1333 } |
| 1341 | 1334 |
| 1342 #endif | 1335 #endif |
| 1343 | 1336 |
| OLD | NEW |