Combine GrPerspQuad and GrQuad
Also moves GrQuadType to an inner enum of GrQuad as GrQuad::Type.
Renames some of the types for improved clarity (IMO)
Change-Id: I2c91d60374d2b7c414034e9fe0b0113a794bd610
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/216604
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/ops/GrQuadPerEdgeAA.cpp b/src/gpu/ops/GrQuadPerEdgeAA.cpp
index 1d3c602..9bb9a85 100644
--- a/src/gpu/ops/GrQuadPerEdgeAA.cpp
+++ b/src/gpu/ops/GrQuadPerEdgeAA.cpp
@@ -671,7 +671,7 @@
// save position, this is a float2 or float3 or float4 depending on the combination of
// perspective and coverage mode.
vb->write(quad.fX[i], quad.fY[i],
- If(spec.deviceQuadType() == GrQuadType::kPerspective, quad.fW[i]),
+ If(spec.deviceQuadType() == GrQuad::Type::kPerspective, quad.fW[i]),
If(mode == CoverageMode::kWithPosition, coverage[i]));
// save color
@@ -684,7 +684,7 @@
// save local position
if (spec.hasLocalCoords()) {
vb->write(quad.fU[i], quad.fV[i],
- If(spec.localQuadType() == GrQuadType::kPerspective, quad.fR[i]));
+ If(spec.localQuadType() == GrQuad::Type::kPerspective, quad.fR[i]));
}
// save the geometry domain
@@ -739,8 +739,8 @@
////////////////// Tessellate Implementation
-void* Tessellate(void* vertices, const VertexSpec& spec, const GrPerspQuad& deviceQuad,
- const SkPMColor4f& color4f, const GrPerspQuad& localQuad, const SkRect& domain,
+void* Tessellate(void* vertices, const VertexSpec& spec, const GrQuad& deviceQuad,
+ const SkPMColor4f& color4f, const GrQuad& localQuad, const SkRect& domain,
GrQuadAAFlags aaFlags) {
SkASSERT(deviceQuad.quadType() <= spec.deviceQuadType());
SkASSERT(!spec.hasLocalCoords() || localQuad.quadType() <= spec.localQuadType());
@@ -770,7 +770,7 @@
SkRect geomDomain;
V4f maxCoverage = 1.f;
- if (spec.deviceQuadType() == GrQuadType::kPerspective) {
+ if (spec.deviceQuadType() == GrQuad::Type::kPerspective) {
// For perspective, send quads with all edges non-AA through the tessellation to ensure
// their corners are processed the same as adjacent quads. This approach relies on
// solving edge equations to reconstruct corners, which can create seams if an inner
@@ -780,7 +780,7 @@
// In 2D, the simpler corner math does not cause issues with seaming against non-AA
// inner quads.
maxCoverage = compute_nested_quad_vertices(
- aaFlags, spec.deviceQuadType() <= GrQuadType::kRectilinear, &inner, &outer,
+ aaFlags, spec.deviceQuadType() <= GrQuad::Type::kRectilinear, &inner, &outer,
&geomDomain);
} else if (spec.requiresGeometryDomain()) {
// The quad itself wouldn't need a geometric domain, but the batch does, so set the
@@ -839,11 +839,11 @@
////////////////// VertexSpec Implementation
int VertexSpec::deviceDimensionality() const {
- return this->deviceQuadType() == GrQuadType::kPerspective ? 3 : 2;
+ return this->deviceQuadType() == GrQuad::Type::kPerspective ? 3 : 2;
}
int VertexSpec::localDimensionality() const {
- return fHasLocalCoords ? (this->localQuadType() == GrQuadType::kPerspective ? 3 : 2) : 0;
+ return fHasLocalCoords ? (this->localQuadType() == GrQuad::Type::kPerspective ? 3 : 2) : 0;
}
////////////////// Geometry Processor Implementation