| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2014 Google Inc. | 3 * Copyright 2014 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 "GrAADistanceFieldPathRenderer.h" | 9 #include "GrAADistanceFieldPathRenderer.h" |
| 10 | 10 |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 286 pipeline, | 286 pipeline, |
| 287 dfProcessor, | 287 dfProcessor, |
| 288 positions, | 288 positions, |
| 289 vertexStride, | 289 vertexStride, |
| 290 this->viewMatrix(), | 290 this->viewMatrix(), |
| 291 args.fPath, | 291 args.fPath, |
| 292 args.fPathData); | 292 args.fPathData); |
| 293 instancesToFlush++; | 293 instancesToFlush++; |
| 294 } | 294 } |
| 295 | 295 |
| 296 this->flush(batchTarget, dfProcessor, pipeline, &drawInfo, instancesToFl
ush, | 296 this->flush(batchTarget, &drawInfo, instancesToFlush, maxInstancesPerDra
w); |
| 297 maxInstancesPerDraw); | |
| 298 } | 297 } |
| 299 | 298 |
| 300 SkSTArray<1, Geometry, true>* geoData() { return &fGeoData; } | 299 SkSTArray<1, Geometry, true>* geoData() { return &fGeoData; } |
| 301 | 300 |
| 302 private: | 301 private: |
| 303 AADistanceFieldPathBatch(const Geometry& geometry, GrColor color, const SkMa
trix& viewMatrix, | 302 AADistanceFieldPathBatch(const Geometry& geometry, GrColor color, const SkMa
trix& viewMatrix, |
| 304 GrBatchAtlas* atlas, | 303 GrBatchAtlas* atlas, |
| 305 PathCache* pathCache, PathDataList* pathList) { | 304 PathCache* pathCache, PathDataList* pathList) { |
| 306 this->initClassID<AADistanceFieldPathBatch>(); | 305 this->initClassID<AADistanceFieldPathBatch>(); |
| 307 fBatch.fColor = color; | 306 fBatch.fColor = color; |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 (const unsigned char*)bmp.getPixe
ls(), | 413 (const unsigned char*)bmp.getPixe
ls(), |
| 415 bmp.width(), bmp.height(), bmp.ro
wBytes()); | 414 bmp.width(), bmp.height(), bmp.ro
wBytes()); |
| 416 } | 415 } |
| 417 | 416 |
| 418 // add to atlas | 417 // add to atlas |
| 419 SkIPoint16 atlasLocation; | 418 SkIPoint16 atlasLocation; |
| 420 GrBatchAtlas::AtlasID id; | 419 GrBatchAtlas::AtlasID id; |
| 421 bool success = atlas->addToAtlas(&id, batchTarget, width, height, dfStor
age.get(), | 420 bool success = atlas->addToAtlas(&id, batchTarget, width, height, dfStor
age.get(), |
| 422 &atlasLocation); | 421 &atlasLocation); |
| 423 if (!success) { | 422 if (!success) { |
| 424 this->flush(batchTarget, dfProcessor, pipeline, drawInfo, *instances
ToFlush, | 423 this->flush(batchTarget, drawInfo, *instancesToFlush, maxInstancesPe
rDraw); |
| 425 maxInstancesPerDraw); | |
| 426 this->initDraw(batchTarget, dfProcessor, pipeline); | 424 this->initDraw(batchTarget, dfProcessor, pipeline); |
| 427 *instancesToFlush = 0; | 425 *instancesToFlush = 0; |
| 428 | 426 |
| 429 SkDEBUGCODE(success =) atlas->addToAtlas(&id, batchTarget, width, he
ight, | 427 SkDEBUGCODE(success =) atlas->addToAtlas(&id, batchTarget, width, he
ight, |
| 430 dfStorage.get(), &atlasLoca
tion); | 428 dfStorage.get(), &atlasLoca
tion); |
| 431 SkASSERT(success); | 429 SkASSERT(success); |
| 432 | 430 |
| 433 } | 431 } |
| 434 | 432 |
| 435 // add to cache | 433 // add to cache |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 509 // TODO remove this when batch is everywhere | 507 // TODO remove this when batch is everywhere |
| 510 GrPipelineInfo init; | 508 GrPipelineInfo init; |
| 511 init.fColorIgnored = fBatch.fColorIgnored; | 509 init.fColorIgnored = fBatch.fColorIgnored; |
| 512 init.fOverrideColor = GrColor_ILLEGAL; | 510 init.fOverrideColor = GrColor_ILLEGAL; |
| 513 init.fCoverageIgnored = fBatch.fCoverageIgnored; | 511 init.fCoverageIgnored = fBatch.fCoverageIgnored; |
| 514 init.fUsesLocalCoords = this->usesLocalCoords(); | 512 init.fUsesLocalCoords = this->usesLocalCoords(); |
| 515 dfProcessor->initBatchTracker(batchTarget->currentBatchTracker(), init); | 513 dfProcessor->initBatchTracker(batchTarget->currentBatchTracker(), init); |
| 516 } | 514 } |
| 517 | 515 |
| 518 void flush(GrBatchTarget* batchTarget, | 516 void flush(GrBatchTarget* batchTarget, |
| 519 const GrGeometryProcessor* dfProcessor, | |
| 520 const GrPipeline* pipeline, | |
| 521 GrDrawTarget::DrawInfo* drawInfo, | 517 GrDrawTarget::DrawInfo* drawInfo, |
| 522 int instanceCount, | 518 int instanceCount, |
| 523 int maxInstancesPerDraw) { | 519 int maxInstancesPerDraw) { |
| 524 while (instanceCount) { | 520 while (instanceCount) { |
| 525 drawInfo->setInstanceCount(SkTMin(instanceCount, maxInstancesPerDraw
)); | 521 drawInfo->setInstanceCount(SkTMin(instanceCount, maxInstancesPerDraw
)); |
| 526 drawInfo->setVertexCount(drawInfo->instanceCount() * drawInfo->verti
cesPerInstance()); | 522 drawInfo->setVertexCount(drawInfo->instanceCount() * drawInfo->verti
cesPerInstance()); |
| 527 drawInfo->setIndexCount(drawInfo->instanceCount() * drawInfo->indice
sPerInstance()); | 523 drawInfo->setIndexCount(drawInfo->instanceCount() * drawInfo->indice
sPerInstance()); |
| 528 | 524 |
| 529 batchTarget->draw(*drawInfo); | 525 batchTarget->draw(*drawInfo); |
| 530 | 526 |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 611 SkAutoTUnref<GrBatch> batch(AADistanceFieldPathBatch::Create(geometry, color
, viewMatrix, | 607 SkAutoTUnref<GrBatch> batch(AADistanceFieldPathBatch::Create(geometry, color
, viewMatrix, |
| 612 fAtlas, &fPathC
ache, &fPathList)); | 608 fAtlas, &fPathC
ache, &fPathList)); |
| 613 | 609 |
| 614 SkRect bounds = path.getBounds(); | 610 SkRect bounds = path.getBounds(); |
| 615 viewMatrix.mapRect(&bounds); | 611 viewMatrix.mapRect(&bounds); |
| 616 target->drawBatch(pipelineBuilder, batch, &bounds); | 612 target->drawBatch(pipelineBuilder, batch, &bounds); |
| 617 | 613 |
| 618 return true; | 614 return true; |
| 619 } | 615 } |
| 620 | 616 |
| OLD | NEW |