Index: src/gpu/effects/GrGammaEffect.h |
diff --git a/src/gpu/effects/GrGammaEffect.h b/src/gpu/effects/GrGammaEffect.h |
index 44d6d6707cb1f14a862764b59845b00b416e7200..af6782af12c015e73c1d275606701ef83da9e14d 100644 |
--- a/src/gpu/effects/GrGammaEffect.h |
+++ b/src/gpu/effects/GrGammaEffect.h |
@@ -8,35 +8,40 @@ |
#ifndef GrGammaEffect_DEFINED |
#define GrGammaEffect_DEFINED |
-#include "GrSingleTextureEffect.h" |
+#include "GrFragmentProcessor.h" |
-class GrGammaEffect : public GrSingleTextureEffect { |
+class GrGammaEffect : public GrFragmentProcessor { |
public: |
+ enum Mode { |
bsalomon
2016/05/11 02:15:01
I hear enum class is all the rage.
|
+ kLinearToSRGB_Mode, |
+ kSRGBToLinear_Mode, |
+ kExponential_Mode, |
+ }; |
+ |
/** |
- * Creates an effect that applies a gamma curve. The source texture is always |
- * sampled unfiltered and with clamping. |
- */ |
- static const GrFragmentProcessor* Create(GrTexture*, SkScalar gamma); |
+ * Creates an effect that applies a gamma curve. |
+ */ |
+ static const GrFragmentProcessor* Create(SkScalar gamma); |
const char* name() const override { return "Gamma"; } |
- bool gammaIsSRGB() const { return fGammaIsSRGB; } |
+ Mode mode() const { return fMode; } |
SkScalar gamma() const { return fGamma; } |
private: |
- GrGammaEffect(GrTexture*, SkScalar gamma); |
+ GrGammaEffect(Mode mode, SkScalar gamma); |
GrGLSLFragmentProcessor* onCreateGLSLInstance() const override; |
void onGetGLSLProcessorKey(const GrGLSLCaps&, GrProcessorKeyBuilder*) const override; |
bool onIsEqual(const GrFragmentProcessor&) const override; |
void onComputeInvariantOutput(GrInvariantOutput* inout) const override; |
- bool fGammaIsSRGB; |
+ Mode fMode; |
SkScalar fGamma; |
GR_DECLARE_FRAGMENT_PROCESSOR_TEST; |
- typedef GrSingleTextureEffect INHERITED; |
+ typedef GrFragmentProcessor INHERITED; |
}; |
#endif |