| Index: src/gpu/GrTessellatingPathRenderer.cpp
|
| diff --git a/src/gpu/GrTessellatingPathRenderer.cpp b/src/gpu/GrTessellatingPathRenderer.cpp
|
| index 0fc2b9edbe545e2cd195b2b4ea8f04b13bc69acf..0fd8afd754652ab0c27d9dcefdcdbb77478a6302 100644
|
| --- a/src/gpu/GrTessellatingPathRenderer.cpp
|
| +++ b/src/gpu/GrTessellatingPathRenderer.cpp
|
| @@ -185,13 +185,12 @@ bool sweep_gt_vert(const SkPoint& a, const SkPoint& b) {
|
| return a.fY == b.fY ? a.fX > b.fX : a.fY > b.fY;
|
| }
|
|
|
| -inline void* emit_vertex(Vertex* v, void* data) {
|
| - SkPoint* d = static_cast<SkPoint*>(data);
|
| - *d++ = v->fPoint;
|
| - return d;
|
| +inline SkPoint* emit_vertex(Vertex* v, SkPoint* data) {
|
| + *data++ = v->fPoint;
|
| + return data;
|
| }
|
|
|
| -void* emit_triangle(Vertex* v0, Vertex* v1, Vertex* v2, void* data) {
|
| +SkPoint* emit_triangle(Vertex* v0, Vertex* v1, Vertex* v2, SkPoint* data) {
|
| #if WIREFRAME
|
| data = emit_vertex(v0, data);
|
| data = emit_vertex(v1, data);
|
| @@ -360,7 +359,7 @@ struct Poly {
|
| return done;
|
| }
|
|
|
| - void* emit(void* data) {
|
| + SkPoint* emit(SkPoint* data) {
|
| Vertex* first = fHead;
|
| Vertex* v = first->fNext;
|
| while (v != fTail) {
|
| @@ -428,7 +427,7 @@ struct Poly {
|
| }
|
| addVertex(v, fActive->fSide == kLeft_Side ? kRight_Side : kLeft_Side, alloc);
|
| }
|
| - void* emit(void *data) {
|
| + SkPoint* emit(SkPoint *data) {
|
| if (fCount < 3) {
|
| return data;
|
| }
|
| @@ -1277,7 +1276,7 @@ Poly* tessellate(Vertex* vertices, SkChunkAlloc& alloc) {
|
| }
|
| #if LOGGING_ENABLED
|
| LOG("\nactive edges:\n");
|
| - for (Edge* e = activeEdges->fHead; e != NULL; e = e->fRight) {
|
| + for (Edge* e = activeEdges.fHead; e != NULL; e = e->fRight) {
|
| LOG("%g -> %g, lpoly %d, rpoly %d\n", e->fTop->fID, e->fBottom->fID,
|
| e->fLeftPoly ? e->fLeftPoly->fID : -1, e->fRightPoly ? e->fRightPoly->fID : -1);
|
| }
|
| @@ -1320,8 +1319,8 @@ Poly* contours_to_polys(Vertex** contours, int contourCnt, Comparator& c, SkChun
|
|
|
| // Stage 6: Triangulate the monotone polygons into a vertex buffer.
|
|
|
| -void* polys_to_triangles(Poly* polys, SkPath::FillType fillType, void* data) {
|
| - void* d = data;
|
| +SkPoint* polys_to_triangles(Poly* polys, SkPath::FillType fillType, SkPoint* data) {
|
| + SkPoint* d = data;
|
| for (Poly* poly = polys; poly; poly = poly->fNext) {
|
| if (apply_fill_type(fillType, poly->fWinding)) {
|
| d = poly->emit(d);
|
| @@ -1438,18 +1437,19 @@ public:
|
| }
|
|
|
| size_t stride = gp->getVertexStride();
|
| + SkASSERT(stride == sizeof(SkPoint));
|
| const GrVertexBuffer* vertexBuffer;
|
| int firstVertex;
|
| - void* verts = batchTarget->makeVertSpace(stride, count, &vertexBuffer, &firstVertex);
|
| + SkPoint* verts = static_cast<SkPoint*>(
|
| + batchTarget->makeVertSpace(stride, count, &vertexBuffer, &firstVertex));
|
| if (!verts) {
|
| SkDebugf("Could not allocate vertices\n");
|
| return;
|
| }
|
|
|
| LOG("emitting %d verts\n", count);
|
| - void* end = polys_to_triangles(polys, fillType, verts);
|
| - int actualCount = static_cast<int>(
|
| - (static_cast<char*>(end) - static_cast<char*>(verts)) / stride);
|
| + SkPoint* end = polys_to_triangles(polys, fillType, verts);
|
| + int actualCount = static_cast<int>(end - verts);
|
| LOG("actual count: %d\n", actualCount);
|
| SkASSERT(actualCount <= count);
|
|
|
|
|