| Index: src/gpu/batches/GrAADistanceFieldPathRenderer.cpp
|
| diff --git a/src/gpu/batches/GrAADistanceFieldPathRenderer.cpp b/src/gpu/batches/GrAADistanceFieldPathRenderer.cpp
|
| index 0b14e4df4ecfdc757c18732935ba18fdb593544a..a365474c38cc4d56f576cd767cafcaac3b56b289 100644
|
| --- a/src/gpu/batches/GrAADistanceFieldPathRenderer.cpp
|
| +++ b/src/gpu/batches/GrAADistanceFieldPathRenderer.cpp
|
| @@ -212,7 +212,7 @@ private:
|
|
|
| // allocate vertices
|
| size_t vertexStride = dfProcessor->getVertexStride();
|
| - SkASSERT(vertexStride == 2 * sizeof(SkPoint));
|
| + SkASSERT(vertexStride == 2 * sizeof(SkPoint) + sizeof(GrColor));
|
|
|
| const GrVertexBuffer* vertexBuffer;
|
| void* vertices = target->makeVertexSpace(vertexStride,
|
| @@ -278,12 +278,12 @@ private:
|
| // Now set vertices
|
| intptr_t offset = reinterpret_cast<intptr_t>(vertices);
|
| offset += i * kVerticesPerQuad * vertexStride;
|
| - SkPoint* positions = reinterpret_cast<SkPoint*>(offset);
|
| this->writePathVertices(target,
|
| atlas,
|
| this->pipeline(),
|
| dfProcessor,
|
| - positions,
|
| + offset,
|
| + this->color(),
|
| vertexStride,
|
| this->viewMatrix(),
|
| args.fPath,
|
| @@ -437,7 +437,8 @@ private:
|
| GrBatchAtlas* atlas,
|
| const GrPipeline* pipeline,
|
| const GrGeometryProcessor* gp,
|
| - SkPoint* positions,
|
| + intptr_t offset,
|
| + GrColor color,
|
| size_t vertexStride,
|
| const SkMatrix& viewMatrix,
|
| const SkPath& path,
|
| @@ -460,13 +461,21 @@ private:
|
| SkFixed tw = SkScalarToFixed(pathData->fBounds.width());
|
| SkFixed th = SkScalarToFixed(pathData->fBounds.height());
|
|
|
| + SkPoint* positions = reinterpret_cast<SkPoint*>(offset);
|
| +
|
| // vertex positions
|
| // TODO make the vertex attributes a struct
|
| SkRect r = SkRect::MakeXYWH(dx, dy, width, height);
|
| positions->setRectFan(r.left(), r.top(), r.right(), r.bottom(), vertexStride);
|
|
|
| + // colors
|
| + for (int i = 0; i < kVerticesPerQuad; i++) {
|
| + GrColor* colorPtr = (GrColor*)(offset + sizeof(SkPoint) + i * vertexStride);
|
| + *colorPtr = color;
|
| + }
|
| +
|
| // vertex texture coords
|
| - SkPoint* textureCoords = positions + 1;
|
| + SkPoint* textureCoords = (SkPoint*)(offset + sizeof(SkPoint) + sizeof(GrColor));
|
| textureCoords->setRectFan(SkFixedToFloat(texture->texturePriv().normalizeFixedX(tx)),
|
| SkFixedToFloat(texture->texturePriv().normalizeFixedY(ty)),
|
| SkFixedToFloat(texture->texturePriv().normalizeFixedX(tx + tw)),
|
|
|