gfx/skia/trunk/src/gpu/effects/GrSimpleTextureEffect.h

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 /*
     2  * Copyright 2013 Google Inc.
     3  *
     4  * Use of this source code is governed by a BSD-style license that can be
     5  * found in the LICENSE file.
     6  */
     8 #ifndef GrSimpleTextureEffect_DEFINED
     9 #define GrSimpleTextureEffect_DEFINED
    11 #include "GrSingleTextureEffect.h"
    13 class GrGLSimpleTextureEffect;
    15 /**
    16  * The output color of this effect is a modulation of the input color and a sample from a texture.
    17  * It allows explicit specification of the filtering and wrap modes (GrTextureParams). It can use
    18  * local coords, positions, or a custom vertex attribute as input texture coords. The input coords
    19  * can have a matrix applied in the VS in both the local and position cases but not with a custom
    20  * attribute coords at this time. It will add a varying to input interpolate texture coords to the
    21  * FS.
    22  */
    23 class GrSimpleTextureEffect : public GrSingleTextureEffect {
    24 public:
    25     /* unfiltered, clamp mode */
    26     static GrEffectRef* Create(GrTexture* tex,
    27                                const SkMatrix& matrix,
    28                                GrCoordSet coordSet = kLocal_GrCoordSet) {
    29         AutoEffectUnref effect(SkNEW_ARGS(GrSimpleTextureEffect, (tex, matrix, GrTextureParams::kNone_FilterMode, coordSet)));
    30         return CreateEffectRef(effect);
    31     }
    33     /* clamp mode */
    34     static GrEffectRef* Create(GrTexture* tex,
    35                                const SkMatrix& matrix,
    36                                GrTextureParams::FilterMode filterMode,
    37                                GrCoordSet coordSet = kLocal_GrCoordSet) {
    38         AutoEffectUnref effect(
    39             SkNEW_ARGS(GrSimpleTextureEffect, (tex, matrix, filterMode, coordSet)));
    40         return CreateEffectRef(effect);
    41     }
    43     static GrEffectRef* Create(GrTexture* tex,
    44                                const SkMatrix& matrix,
    45                                const GrTextureParams& p,
    46                                GrCoordSet coordSet = kLocal_GrCoordSet) {
    47         AutoEffectUnref effect(SkNEW_ARGS(GrSimpleTextureEffect, (tex, matrix, p, coordSet)));
    48         return CreateEffectRef(effect);
    49     }
    51     virtual ~GrSimpleTextureEffect() {}
    53     static const char* Name() { return "Texture"; }
    55     virtual void getConstantColorComponents(GrColor* color, uint32_t* validFlags) const SK_OVERRIDE;
    57     typedef GrGLSimpleTextureEffect GLEffect;
    59     virtual const GrBackendEffectFactory& getFactory() const SK_OVERRIDE;
    61 private:
    62     GrSimpleTextureEffect(GrTexture* texture,
    63                           const SkMatrix& matrix,
    64                           GrTextureParams::FilterMode filterMode,
    65                           GrCoordSet coordSet)
    66         : GrSingleTextureEffect(texture, matrix, filterMode, coordSet) {
    67     }
    69     GrSimpleTextureEffect(GrTexture* texture,
    70                           const SkMatrix& matrix,
    71                           const GrTextureParams& params,
    72                           GrCoordSet coordSet)
    73         : GrSingleTextureEffect(texture, matrix, params, coordSet) {
    74     }
    76     virtual bool onIsEqual(const GrEffect& other) const SK_OVERRIDE {
    77         const GrSimpleTextureEffect& ste = CastEffect<GrSimpleTextureEffect>(other);
    78         return this->hasSameTextureParamsMatrixAndSourceCoords(ste);
    79     }
    81     GR_DECLARE_EFFECT_TEST;
    83     typedef GrSingleTextureEffect INHERITED;
    84 };
    86 #endif

mercurial