| Index: src/gpu/GrClipMaskManager.cpp
|
| diff --git a/src/gpu/GrClipMaskManager.cpp b/src/gpu/GrClipMaskManager.cpp
|
| index f0d6faf1ff801de9c96a4ffd2e76115282d979db..3548963d4936aacb84c5d05c1c269ea877f090c0 100644
|
| --- a/src/gpu/GrClipMaskManager.cpp
|
| +++ b/src/gpu/GrClipMaskManager.cpp
|
| @@ -675,13 +675,13 @@ GrTexture* GrClipMaskManager::CreateAlphaClipMask(GrContext* context,
|
|
|
| // draw directly into the result with the stencil set to make the pixels affected
|
| // by the clip shape be non-zero.
|
| - GR_STATIC_CONST_SAME_STENCIL(kStencilInElement,
|
| - kReplace_StencilOp,
|
| - kReplace_StencilOp,
|
| - kAlways_StencilFunc,
|
| - 0xffff,
|
| - 0xffff,
|
| - 0xffff)
|
| + static constexpr GrStencilSettings kStencilInElement(
|
| + kReplace_StencilOp,
|
| + kReplace_StencilOp,
|
| + kAlways_StencilFunc,
|
| + 0xffff,
|
| + 0xffff,
|
| + 0xffff);
|
| if (!stencil_element(dc.get(), &maskSpaceIBounds, kStencilInElement,
|
| translate, element)) {
|
| texture->resourcePriv().removeUniqueKey();
|
| @@ -689,13 +689,13 @@ GrTexture* GrClipMaskManager::CreateAlphaClipMask(GrContext* context,
|
| }
|
|
|
| // Draw to the exterior pixels (those with a zero stencil value).
|
| - GR_STATIC_CONST_SAME_STENCIL(kDrawOutsideElement,
|
| - kZero_StencilOp,
|
| - kZero_StencilOp,
|
| - kEqual_StencilFunc,
|
| - 0xffff,
|
| - 0x0000,
|
| - 0xffff);
|
| + static constexpr GrStencilSettings kDrawOutsideElement(
|
| + kZero_StencilOp,
|
| + kZero_StencilOp,
|
| + kEqual_StencilFunc,
|
| + 0xffff,
|
| + 0x0000,
|
| + 0xffff);
|
| if (!dc->drawContextPriv().drawAndStencilRect(&maskSpaceIBounds, kDrawOutsideElement,
|
| op, !invert, false,
|
| translate,
|
| @@ -830,22 +830,22 @@ bool GrClipMaskManager::createStencilClipMask(GrRenderTarget* rt,
|
|
|
| // draw the element to the client stencil bits if necessary
|
| if (!canDrawDirectToClip) {
|
| - GR_STATIC_CONST_SAME_STENCIL(gDrawToStencil,
|
| - kIncClamp_StencilOp,
|
| - kIncClamp_StencilOp,
|
| - kAlways_StencilFunc,
|
| - 0xffff,
|
| - 0x0000,
|
| - 0xffff);
|
| + static constexpr GrStencilSettings kDrawToStencil(
|
| + kIncClamp_StencilOp,
|
| + kIncClamp_StencilOp,
|
| + kAlways_StencilFunc,
|
| + 0xffff,
|
| + 0x0000,
|
| + 0xffff);
|
| if (Element::kRect_Type == element->getType()) {
|
| - *pipelineBuilder.stencil() = gDrawToStencil;
|
| + *pipelineBuilder.stencil() = kDrawToStencil;
|
|
|
| draw_non_aa_rect(fDrawTarget, pipelineBuilder, GrColor_WHITE, viewMatrix,
|
| element->getRect());
|
| } else {
|
| if (!clipPath.isEmpty()) {
|
| if (canRenderDirectToStencil) {
|
| - *pipelineBuilder.stencil() = gDrawToStencil;
|
| + *pipelineBuilder.stencil() = kDrawToStencil;
|
|
|
| GrPathRenderer::DrawPathArgs args;
|
| args.fTarget = fDrawTarget;
|
| @@ -911,7 +911,7 @@ bool GrClipMaskManager::createStencilClipMask(GrRenderTarget* rt,
|
| // mapping of clip-respecting stencil funcs to normal stencil funcs
|
| // mapping depends on whether stencil-clipping is in effect.
|
| static const GrStencilFunc
|
| - gSpecialToBasicStencilFunc[2][kClipStencilFuncCount] = {
|
| + gSpecialToBasicStencilFunc[2][kClipStencilFuncCnt] = {
|
| {// Stencil-Clipping is DISABLED, we are effectively always inside the clip
|
| // In the Clip Funcs
|
| kAlways_StencilFunc, // kAlwaysIfInClip_StencilFunc
|
| @@ -944,22 +944,6 @@ static const GrStencilFunc
|
| }
|
| };
|
|
|
| -namespace {
|
| -// Sets the settings to clip against the stencil buffer clip while ignoring the
|
| -// client bits.
|
| -const GrStencilSettings& basic_apply_stencil_clip_settings() {
|
| - // stencil settings to use when clip is in stencil
|
| - GR_STATIC_CONST_SAME_STENCIL_STRUCT(gSettings,
|
| - kKeep_StencilOp,
|
| - kKeep_StencilOp,
|
| - kAlwaysIfInClip_StencilFunc,
|
| - 0x0000,
|
| - 0x0000,
|
| - 0x0000);
|
| - return *GR_CONST_STENCIL_SETTINGS_PTR_FROM_STRUCT_PTR(&gSettings);
|
| -}
|
| -}
|
| -
|
| void GrClipMaskManager::setPipelineBuilderStencil(const GrPipelineBuilder& pipelineBuilder,
|
| GrPipelineBuilder::AutoRestoreStencil* ars) {
|
| // We make two copies of the StencilSettings here (except in the early
|
| @@ -975,7 +959,14 @@ void GrClipMaskManager::setPipelineBuilderStencil(const GrPipelineBuilder& pipel
|
| // enable it in order to respect a stencil clip.
|
| if (pipelineBuilder.getStencil().isDisabled()) {
|
| if (GrClipMaskManager::kRespectClip_StencilClipMode == fClipMode) {
|
| - settings = basic_apply_stencil_clip_settings();
|
| + static constexpr GrStencilSettings kBasicApplyClipSettings(
|
| + kKeep_StencilOp,
|
| + kKeep_StencilOp,
|
| + kAlwaysIfInClip_StencilFunc,
|
| + 0x0000,
|
| + 0x0000,
|
| + 0x0000);
|
| + settings = kBasicApplyClipSettings;
|
| } else {
|
| return;
|
| }
|
| @@ -1021,11 +1012,11 @@ void GrClipMaskManager::adjustStencilParams(GrStencilSettings* settings,
|
| uint16_t funcMask = settings->funcMask(face);
|
| uint16_t funcRef = settings->funcRef(face);
|
|
|
| - SkASSERT((unsigned) func < kStencilFuncCount);
|
| + SkASSERT((unsigned) func < kStencilFuncCnt);
|
|
|
| writeMask &= userBits;
|
|
|
| - if (func >= kBasicStencilFuncCount) {
|
| + if (func >= kBasicStencilFuncCnt) {
|
| int respectClip = kRespectClip_StencilClipMode == mode;
|
| if (respectClip) {
|
| switch (func) {
|
| @@ -1052,8 +1043,8 @@ void GrClipMaskManager::adjustStencilParams(GrStencilSettings* settings,
|
| }
|
| const GrStencilFunc* table =
|
| gSpecialToBasicStencilFunc[respectClip];
|
| - func = table[func - kBasicStencilFuncCount];
|
| - SkASSERT(func >= 0 && func < kBasicStencilFuncCount);
|
| + func = table[func - kBasicStencilFuncCnt];
|
| + SkASSERT(func >= 0 && func < kBasicStencilFuncCnt);
|
| } else {
|
| funcMask &= userBits;
|
| funcRef &= userBits;
|
|
|