diff options
author | Brian Salomon <bsalomon@google.com> | 2017-07-13 11:25:18 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-07-13 15:51:07 +0000 |
commit | 89717fcbf10bdf7621795d7e5d32b034e1603a35 (patch) | |
tree | e2ab14cf217e811585a15e081aba4c5c260e6bdf /src | |
parent | 0596909b055eb9493ba429cc09eae4a2ec53f158 (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.cpp | 7 |
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; |