aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrOvalRenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/GrOvalRenderer.cpp')
-rw-r--r--src/gpu/GrOvalRenderer.cpp54
1 files changed, 24 insertions, 30 deletions
diff --git a/src/gpu/GrOvalRenderer.cpp b/src/gpu/GrOvalRenderer.cpp
index 659857a9b2..4e0fed96a1 100644
--- a/src/gpu/GrOvalRenderer.cpp
+++ b/src/gpu/GrOvalRenderer.cpp
@@ -597,7 +597,6 @@ void GrOvalRenderer::reset() {
bool GrOvalRenderer::drawOval(GrDrawTarget* target,
GrDrawState* drawState,
GrColor color,
- const GrContext* context,
bool useAA,
const SkRect& oval,
const SkStrokeRec& stroke)
@@ -610,18 +609,18 @@ bool GrOvalRenderer::drawOval(GrDrawTarget* target,
return false;
}
- const SkMatrix& vm = context->getMatrix();
+ const SkMatrix& vm = drawState->getViewMatrix();
// we can draw circles
if (SkScalarNearlyEqual(oval.width(), oval.height())
&& circle_stays_circle(vm)) {
- this->drawCircle(target, drawState, color, context, useCoverageAA, oval, stroke);
+ this->drawCircle(target, drawState, color, useCoverageAA, oval, stroke);
// if we have shader derivative support, render as device-independent
} else if (target->caps()->shaderDerivativeSupport()) {
- return this->drawDIEllipse(target, drawState, color, context, useCoverageAA, oval, stroke);
+ return this->drawDIEllipse(target, drawState, color, useCoverageAA, oval, stroke);
// otherwise axis-aligned ellipses only
} else if (vm.rectStaysRect()) {
- return this->drawEllipse(target, drawState, color, context, useCoverageAA, oval, stroke);
+ return this->drawEllipse(target, drawState, color, useCoverageAA, oval, stroke);
} else {
return false;
}
@@ -634,7 +633,6 @@ bool GrOvalRenderer::drawOval(GrDrawTarget* target,
void GrOvalRenderer::drawCircle(GrDrawTarget* target,
GrDrawState* drawState,
GrColor color,
- const GrContext* context,
bool useCoverageAA,
const SkRect& circle,
const SkStrokeRec& stroke)
@@ -719,7 +717,7 @@ void GrOvalRenderer::drawCircle(GrDrawTarget* target,
verts[3].fOuterRadius = outerRadius;
verts[3].fInnerRadius = innerRadius;
- target->setIndexSourceToBuffer(context->getGpu()->getQuadIndexBuffer());
+ target->setIndexSourceToBuffer(fGpu->getQuadIndexBuffer());
target->drawIndexedInstances(drawState, gp, kTriangles_GrPrimitiveType, 1, 4, 6, &bounds);
target->resetIndexSource();
}
@@ -729,7 +727,6 @@ void GrOvalRenderer::drawCircle(GrDrawTarget* target,
bool GrOvalRenderer::drawEllipse(GrDrawTarget* target,
GrDrawState* drawState,
GrColor color,
- const GrContext* context,
bool useCoverageAA,
const SkRect& ellipse,
const SkStrokeRec& stroke)
@@ -851,7 +848,7 @@ bool GrOvalRenderer::drawEllipse(GrDrawTarget* target,
verts[3].fOuterRadii = SkPoint::Make(xRadRecip, yRadRecip);
verts[3].fInnerRadii = SkPoint::Make(xInnerRadRecip, yInnerRadRecip);
- target->setIndexSourceToBuffer(context->getGpu()->getQuadIndexBuffer());
+ target->setIndexSourceToBuffer(fGpu->getQuadIndexBuffer());
target->drawIndexedInstances(drawState, gp, kTriangles_GrPrimitiveType, 1, 4, 6, &bounds);
target->resetIndexSource();
@@ -861,7 +858,6 @@ bool GrOvalRenderer::drawEllipse(GrDrawTarget* target,
bool GrOvalRenderer::drawDIEllipse(GrDrawTarget* target,
GrDrawState* drawState,
GrColor color,
- const GrContext* context,
bool useCoverageAA,
const SkRect& ellipse,
const SkStrokeRec& stroke)
@@ -962,7 +958,7 @@ bool GrOvalRenderer::drawDIEllipse(GrDrawTarget* target,
verts[3].fOuterOffset = SkPoint::Make(1.0f + offsetDx, -1.0f - offsetDy);
verts[3].fInnerOffset = SkPoint::Make(innerRatioX + offsetDx, -innerRatioY - offsetDy);
- target->setIndexSourceToBuffer(context->getGpu()->getQuadIndexBuffer());
+ target->setIndexSourceToBuffer(fGpu->getQuadIndexBuffer());
target->drawIndexedInstances(drawState, gp, kTriangles_GrPrimitiveType, 1, 4, 6, &bounds);
target->resetIndexSource();
@@ -994,21 +990,21 @@ static const int kIndicesPerRRect = SK_ARRAY_COUNT(gRRectIndices);
static const int kVertsPerRRect = 16;
static const int kNumRRectsInIndexBuffer = 256;
-GrIndexBuffer* GrOvalRenderer::rRectIndexBuffer(bool isStrokeOnly, GrGpu* gpu) {
+GrIndexBuffer* GrOvalRenderer::rRectIndexBuffer(bool isStrokeOnly) {
if (isStrokeOnly) {
if (NULL == fStrokeRRectIndexBuffer) {
- fStrokeRRectIndexBuffer = gpu->createInstancedIndexBuffer(gRRectIndices,
- kIndicesPerStrokeRRect,
- kNumRRectsInIndexBuffer,
- kVertsPerRRect);
+ fStrokeRRectIndexBuffer = fGpu->createInstancedIndexBuffer(gRRectIndices,
+ kIndicesPerStrokeRRect,
+ kNumRRectsInIndexBuffer,
+ kVertsPerRRect);
}
return fStrokeRRectIndexBuffer;
} else {
if (NULL == fRRectIndexBuffer) {
- fRRectIndexBuffer = gpu->createInstancedIndexBuffer(gRRectIndices,
- kIndicesPerRRect,
- kNumRRectsInIndexBuffer,
- kVertsPerRRect);
+ fRRectIndexBuffer = fGpu->createInstancedIndexBuffer(gRRectIndices,
+ kIndicesPerRRect,
+ kNumRRectsInIndexBuffer,
+ kVertsPerRRect);
}
return fRRectIndexBuffer;
}
@@ -1017,7 +1013,6 @@ GrIndexBuffer* GrOvalRenderer::rRectIndexBuffer(bool isStrokeOnly, GrGpu* gpu) {
bool GrOvalRenderer::drawDRRect(GrDrawTarget* target,
GrDrawState* drawState,
GrColor color,
- GrContext* context,
bool useAA,
const SkRRect& origOuter,
const SkRRect& origInner) {
@@ -1027,8 +1022,8 @@ bool GrOvalRenderer::drawDRRect(GrDrawTarget* target,
GrDrawState::AutoRestoreEffects are;
if (!origInner.isEmpty()) {
SkTCopyOnFirstWrite<SkRRect> inner(origInner);
- if (!context->getMatrix().isIdentity()) {
- if (!origInner.transform(context->getMatrix(), inner.writable())) {
+ if (!drawState->getViewMatrix().isIdentity()) {
+ if (!origInner.transform(drawState->getViewMatrix(), inner.writable())) {
return false;
}
}
@@ -1045,14 +1040,14 @@ bool GrOvalRenderer::drawDRRect(GrDrawTarget* target,
}
SkStrokeRec fillRec(SkStrokeRec::kFill_InitStyle);
- if (this->drawRRect(target, drawState, color, context, useAA, origOuter, fillRec)) {
+ if (this->drawRRect(target, drawState, color, useAA, origOuter, fillRec)) {
return true;
}
SkASSERT(!origOuter.isEmpty());
SkTCopyOnFirstWrite<SkRRect> outer(origOuter);
- if (!context->getMatrix().isIdentity()) {
- if (!origOuter.transform(context->getMatrix(), outer.writable())) {
+ if (!drawState->getViewMatrix().isIdentity()) {
+ if (!origOuter.transform(drawState->getViewMatrix(), outer.writable())) {
return false;
}
}
@@ -1081,12 +1076,11 @@ bool GrOvalRenderer::drawDRRect(GrDrawTarget* target,
bool GrOvalRenderer::drawRRect(GrDrawTarget* target,
GrDrawState* drawState,
GrColor color,
- GrContext* context,
bool useAA,
const SkRRect& rrect,
const SkStrokeRec& stroke) {
if (rrect.isOval()) {
- return this->drawOval(target, drawState, color, context, useAA, rrect.getBounds(), stroke);
+ return this->drawOval(target, drawState, color, useAA, rrect.getBounds(), stroke);
}
bool useCoverageAA = useAA &&
@@ -1098,7 +1092,7 @@ bool GrOvalRenderer::drawRRect(GrDrawTarget* target,
return false;
}
- const SkMatrix& vm = context->getMatrix();
+ const SkMatrix& vm = drawState->getViewMatrix();
if (!vm.rectStaysRect() || !rrect.isSimple()) {
return false;
@@ -1156,7 +1150,7 @@ bool GrOvalRenderer::drawRRect(GrDrawTarget* target,
return false;
}
- GrIndexBuffer* indexBuffer = this->rRectIndexBuffer(isStrokeOnly, context->getGpu());
+ GrIndexBuffer* indexBuffer = this->rRectIndexBuffer(isStrokeOnly);
if (NULL == indexBuffer) {
SkDebugf("Failed to create index buffer!\n");
return false;