Reland "Initial definition of fill rect op"
This reverts commit 1a2476d2945654e40861292f778090fa04b3c267.
Reason for revert: Fixes printf signatures and asserts.
Original change's description:
> Revert "Initial definition of fill rect op"
>
> This reverts commit d3c92d9a368be2d1f592bef4e65727721fc3ecf8.
>
> Reason for revert: printf build failure on gcc, assert failures on CQ
>
> Original change's description:
> > Initial definition of fill rect op
> >
> > Bug: skia:
> > Change-Id: Ie0c99eb5163501853d1adc885bd3841f90a71924
> > Reviewed-on: https://skia-review.googlesource.com/c/163486
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > Commit-Queue: Michael Ludwig <michaelludwig@google.com>
>
> TBR=bsalomon@google.com,csmartdalton@google.com,michaelludwig@google.com
>
> Change-Id: Ib32f91a39d91aeb87982a7b19719485e4a1bf8ae
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/c/173233
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
TBR=bsalomon@google.com,csmartdalton@google.com,michaelludwig@google.com
Change-Id: I415913a269ba5bcdebd169b5ebc3510673247bfd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/173234
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
diff --git a/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp b/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp
index 928c4ff..f8a7763 100644
--- a/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp
+++ b/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp
@@ -40,9 +40,14 @@
: GrDrawOp::FixedFunctionFlags::kNone;
}
+static bool none_as_coverage_aa_compatible(GrAAType aa1, GrAAType aa2) {
+ return (aa1 == GrAAType::kNone && aa2 == GrAAType::kCoverage) ||
+ (aa1 == GrAAType::kCoverage && aa2 == GrAAType::kNone);
+}
+
bool GrSimpleMeshDrawOpHelper::isCompatible(const GrSimpleMeshDrawOpHelper& that,
const GrCaps& caps, const SkRect& thisBounds,
- const SkRect& thatBounds) const {
+ const SkRect& thatBounds, bool noneAsCoverageAA) const {
if (SkToBool(fProcessors) != SkToBool(that.fProcessors)) {
return false;
}
@@ -57,7 +62,8 @@
}
}
}
- bool result = fPipelineFlags == that.fPipelineFlags && fAAType == that.fAAType;
+ bool result = fPipelineFlags == that.fPipelineFlags && (fAAType == that.fAAType ||
+ (noneAsCoverageAA && none_as_coverage_aa_compatible(this->aaType(), that.aaType())));
SkASSERT(!result || fCompatibleWithAlphaAsCoveage == that.fCompatibleWithAlphaAsCoveage);
SkASSERT(!result || fUsesLocalCoords == that.fUsesLocalCoords);
return result;
@@ -178,8 +184,8 @@
bool GrSimpleMeshDrawOpHelperWithStencil::isCompatible(
const GrSimpleMeshDrawOpHelperWithStencil& that, const GrCaps& caps,
- const SkRect& thisBounds, const SkRect& thatBounds) const {
- return INHERITED::isCompatible(that, caps, thisBounds, thatBounds) &&
+ const SkRect& thisBounds, const SkRect& thatBounds, bool noneAsCoverageAA) const {
+ return INHERITED::isCompatible(that, caps, thisBounds, thatBounds, noneAsCoverageAA) &&
fStencilSettings == that.fStencilSettings;
}