aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2017-07-13 11:25:18 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-07-13 15:51:07 +0000
commit89717fcbf10bdf7621795d7e5d32b034e1603a35 (patch)
treee2ab14cf217e811585a15e081aba4c5c260e6bdf /src
parent0596909b055eb9493ba429cc09eae4a2ec53f158 (diff)
Fix two issues in DashOp
1) Bitfield was too small on Windows for signed enum type 2) Check for unused stencil settings rather than null Also makes bool bitfields adjacent for better packing on Windows. Change-Id: I8115cc31c55e83aa7bd85d99c1fca72042617aa3 Reviewed-on: https://skia-review.googlesource.com/23120 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/gpu/ops/GrDashOp.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/gpu/ops/GrDashOp.cpp b/src/gpu/ops/GrDashOp.cpp
index 645477810e..fdc59a4d2d 100644
--- a/src/gpu/ops/GrDashOp.cpp
+++ b/src/gpu/ops/GrDashOp.cpp
@@ -285,7 +285,7 @@ public:
if (AAMode::kCoverageWithMSAA == fAAMode) {
flags |= FixedFunctionFlags::kUsesHWAA;
}
- if (fStencilSettings) {
+ if (fStencilSettings != &GrUserStencilSettings::kUnused) {
flags |= FixedFunctionFlags::kUsesStencil;
}
return flags;
@@ -313,8 +313,8 @@ private:
, fColor(paint.getColor())
, fAllowsSRGBInputs(paint.getAllowSRGBInputs())
, fDisableSRGBOutputConversion(paint.getDisableOutputConversionToSRGB())
- , fCap(cap)
, fFullDash(fullDash)
+ , fCap(cap)
, fAAMode(aaMode)
, fProcessorSet(std::move(paint))
, fStencilSettings(stencilSettings) {
@@ -717,8 +717,9 @@ private:
bool fDisableSRGBOutputConversion : 1;
bool fDisallowCombineOnTouchOrOverlap : 1;
bool fUsesLocalCoords : 1;
- SkPaint::Cap fCap : 2;
bool fFullDash : 1;
+ // We use 3 bits for this 3-value enum because MSVS makes the underlying types signed.
+ SkPaint::Cap fCap : 3;
AAMode fAAMode;
GrProcessorSet fProcessorSet;
const GrUserStencilSettings* fStencilSettings;