Index: src/gpu/GrOvalRenderer.cpp |
diff --git a/src/gpu/GrOvalRenderer.cpp b/src/gpu/GrOvalRenderer.cpp |
index 22a18d2d10489814079f4d929a4add781aa9e072..eac6fb4a3af5b2b3a3cb1ffba7659548ed4d7be4 100644 |
--- a/src/gpu/GrOvalRenderer.cpp |
+++ b/src/gpu/GrOvalRenderer.cpp |
@@ -144,8 +144,8 @@ |
return cee.fStroke == fStroke; |
} |
- virtual void onGetInvariantOutputCoverage(GrInitInvariantOutput* out) const SK_OVERRIDE { |
- out->setUnknownSingleComponent(); |
+ virtual void onComputeInvariantOutput(GrInvariantOutput* inout) const SK_OVERRIDE { |
+ inout->mulByUnknownAlpha(); |
} |
const GrAttribute* fInPosition; |
@@ -290,8 +290,8 @@ |
return eee.fStroke == fStroke; |
} |
- virtual void onGetInvariantOutputCoverage(GrInitInvariantOutput* out) const SK_OVERRIDE { |
- out->setUnknownSingleComponent(); |
+ virtual void onComputeInvariantOutput(GrInvariantOutput* inout) const SK_OVERRIDE { |
+ inout->mulByUnknownAlpha(); |
} |
const GrAttribute* fInPosition; |
@@ -455,8 +455,8 @@ |
return eee.fMode == fMode; |
} |
- virtual void onGetInvariantOutputCoverage(GrInitInvariantOutput* out) const SK_OVERRIDE { |
- out->setUnknownSingleComponent(); |
+ virtual void onComputeInvariantOutput(GrInvariantOutput* inout) const SK_OVERRIDE { |
+ inout->mulByUnknownAlpha(); |
} |
const GrAttribute* fInPosition; |
@@ -562,8 +562,8 @@ |
} |
} |
- SkAutoTUnref<GrGeometryProcessor> gp( |
- CircleEdgeEffect::Create(color, isStrokeOnly && innerRadius > 0)); |
+ GrGeometryProcessor* gp = CircleEdgeEffect::Create(color, isStrokeOnly && innerRadius > 0); |
+ drawState->setGeometryProcessor(gp)->unref(); |
GrDrawTarget::AutoReleaseGeometry geo(target, 4, gp->getVertexStride(), 0); |
SkASSERT(gp->getVertexStride() == sizeof(CircleVertex)); |
@@ -609,7 +609,7 @@ |
verts[3].fInnerRadius = innerRadius; |
target->setIndexSourceToBuffer(context->getGpu()->getQuadIndexBuffer()); |
- target->drawIndexedInstances(drawState, gp, kTriangles_GrPrimitiveType, 1, 4, 6, &bounds); |
+ target->drawIndexedInstances(drawState, kTriangles_GrPrimitiveType, 1, 4, 6, &bounds); |
target->resetIndexSource(); |
} |
@@ -689,8 +689,11 @@ |
return false; |
} |
- SkAutoTUnref<GrGeometryProcessor> gp( |
- EllipseEdgeEffect::Create(color, isStrokeOnly && innerXRadius > 0 && innerYRadius > 0)); |
+ GrGeometryProcessor* gp = EllipseEdgeEffect::Create(color, |
+ isStrokeOnly && |
+ innerXRadius > 0 && innerYRadius > 0); |
+ |
+ drawState->setGeometryProcessor(gp)->unref(); |
GrDrawTarget::AutoReleaseGeometry geo(target, 4, gp->getVertexStride(), 0); |
SkASSERT(gp->getVertexStride() == sizeof(EllipseVertex)); |
@@ -741,7 +744,7 @@ |
verts[3].fInnerRadii = SkPoint::Make(xInnerRadRecip, yInnerRadRecip); |
target->setIndexSourceToBuffer(context->getGpu()->getQuadIndexBuffer()); |
- target->drawIndexedInstances(drawState, gp, kTriangles_GrPrimitiveType, 1, 4, 6, &bounds); |
+ target->drawIndexedInstances(drawState, kTriangles_GrPrimitiveType, 1, 4, 6, &bounds); |
target->resetIndexSource(); |
return true; |
@@ -806,7 +809,9 @@ |
SkScalar innerRatioX = SkScalarDiv(xRadius, innerXRadius); |
SkScalar innerRatioY = SkScalarDiv(yRadius, innerYRadius); |
- SkAutoTUnref<GrGeometryProcessor> gp(DIEllipseEdgeEffect::Create(color, mode)); |
+ GrGeometryProcessor* gp = DIEllipseEdgeEffect::Create(color, mode); |
+ |
+ drawState->setGeometryProcessor(gp)->unref(); |
GrDrawTarget::AutoReleaseGeometry geo(target, 4, gp->getVertexStride(), 0); |
SkASSERT(gp->getVertexStride() == sizeof(DIEllipseVertex)); |
@@ -852,7 +857,7 @@ |
verts[3].fInnerOffset = SkPoint::Make(innerRatioX + offsetDx, -innerRatioY - offsetDy); |
target->setIndexSourceToBuffer(context->getGpu()->getQuadIndexBuffer()); |
- target->drawIndexedInstances(drawState, gp, kTriangles_GrPrimitiveType, 1, 4, 6, &bounds); |
+ target->drawIndexedInstances(drawState, kTriangles_GrPrimitiveType, 1, 4, 6, &bounds); |
target->resetIndexSource(); |
return true; |
@@ -1072,7 +1077,8 @@ |
isStrokeOnly = (isStrokeOnly && innerRadius >= 0); |
- SkAutoTUnref<GrGeometryProcessor> effect(CircleEdgeEffect::Create(color, isStrokeOnly)); |
+ GrGeometryProcessor* effect = CircleEdgeEffect::Create(color, isStrokeOnly); |
+ drawState->setGeometryProcessor(effect)->unref(); |
GrDrawTarget::AutoReleaseGeometry geo(target, 16, effect->getVertexStride(), 0); |
SkASSERT(effect->getVertexStride() == sizeof(CircleVertex)); |
@@ -1134,7 +1140,7 @@ |
int indexCnt = isStrokeOnly ? SK_ARRAY_COUNT(gRRectIndices) - 6 : |
SK_ARRAY_COUNT(gRRectIndices); |
target->setIndexSourceToBuffer(indexBuffer); |
- target->drawIndexedInstances(drawState, effect, kTriangles_GrPrimitiveType, 1, 16, indexCnt, |
+ target->drawIndexedInstances(drawState, kTriangles_GrPrimitiveType, 1, 16, indexCnt, |
&bounds); |
// otherwise we use the ellipse renderer |
@@ -1173,7 +1179,8 @@ |
isStrokeOnly = (isStrokeOnly && innerXRadius >= 0 && innerYRadius >= 0); |
- SkAutoTUnref<GrGeometryProcessor> effect(EllipseEdgeEffect::Create(color, isStrokeOnly)); |
+ GrGeometryProcessor* effect = EllipseEdgeEffect::Create(color, isStrokeOnly); |
+ drawState->setGeometryProcessor(effect)->unref(); |
GrDrawTarget::AutoReleaseGeometry geo(target, 16, effect->getVertexStride(), 0); |
SkASSERT(effect->getVertexStride() == sizeof(EllipseVertex)); |
@@ -1240,7 +1247,7 @@ |
int indexCnt = isStrokeOnly ? SK_ARRAY_COUNT(gRRectIndices) - 6 : |
SK_ARRAY_COUNT(gRRectIndices); |
target->setIndexSourceToBuffer(indexBuffer); |
- target->drawIndexedInstances(drawState, effect, kTriangles_GrPrimitiveType, 1, 16, indexCnt, |
+ target->drawIndexedInstances(drawState, kTriangles_GrPrimitiveType, 1, 16, indexCnt, |
&bounds); |
} |