| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "SkColorCubeFilter.h" | 8 #include "SkColorCubeFilter.h" |
| 9 #include "SkColorPriv.h" | 9 #include "SkColorPriv.h" |
| 10 #include "SkOnce.h" | 10 #include "SkOnce.h" |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 class GrColorCubeEffect : public GrFragmentProcessor { | 187 class GrColorCubeEffect : public GrFragmentProcessor { |
| 188 public: | 188 public: |
| 189 static GrFragmentProcessor* Create(GrTexture* colorCube) { | 189 static GrFragmentProcessor* Create(GrTexture* colorCube) { |
| 190 return (NULL != colorCube) ? SkNEW_ARGS(GrColorCubeEffect, (colorCube))
: NULL; | 190 return (NULL != colorCube) ? SkNEW_ARGS(GrColorCubeEffect, (colorCube))
: NULL; |
| 191 } | 191 } |
| 192 | 192 |
| 193 virtual ~GrColorCubeEffect(); | 193 virtual ~GrColorCubeEffect(); |
| 194 | 194 |
| 195 const char* name() const override { return "ColorCube"; } | 195 const char* name() const override { return "ColorCube"; } |
| 196 | 196 |
| 197 virtual void getGLProcessorKey(const GrGLSLCaps& caps, | |
| 198 GrProcessorKeyBuilder* b) const override; | |
| 199 | |
| 200 GrGLFragmentProcessor* createGLInstance() const override; | 197 GrGLFragmentProcessor* createGLInstance() const override; |
| 201 int colorCubeSize() const { return fColorCubeAccess.getTexture()->width(); } | 198 int colorCubeSize() const { return fColorCubeAccess.getTexture()->width(); } |
| 202 | 199 |
| 203 | 200 |
| 204 void onComputeInvariantOutput(GrInvariantOutput*) const override; | 201 void onComputeInvariantOutput(GrInvariantOutput*) const override; |
| 205 | 202 |
| 206 class GLProcessor : public GrGLFragmentProcessor { | 203 class GLProcessor : public GrGLFragmentProcessor { |
| 207 public: | 204 public: |
| 208 GLProcessor(const GrProcessor&); | 205 GLProcessor(const GrProcessor&); |
| 209 virtual ~GLProcessor(); | 206 virtual ~GLProcessor(); |
| 210 | 207 |
| 211 virtual void emitCode(EmitArgs&) override; | 208 virtual void emitCode(EmitArgs&) override; |
| 212 | 209 |
| 213 static inline void GenKey(const GrProcessor&, const GrGLSLCaps&, GrProce
ssorKeyBuilder*); | 210 static inline void GenKey(const GrProcessor&, const GrGLSLCaps&, GrProce
ssorKeyBuilder*); |
| 214 | 211 |
| 215 void setData(const GrGLProgramDataManager&, const GrProcessor&) override
; | 212 void setData(const GrGLProgramDataManager&, const GrProcessor&) override
; |
| 216 | 213 |
| 217 private: | 214 private: |
| 218 GrGLProgramDataManager::UniformHandle fColorCubeSizeUni; | 215 GrGLProgramDataManager::UniformHandle fColorCubeSizeUni; |
| 219 GrGLProgramDataManager::UniformHandle fColorCubeInvSizeUni; | 216 GrGLProgramDataManager::UniformHandle fColorCubeInvSizeUni; |
| 220 | 217 |
| 221 typedef GrGLFragmentProcessor INHERITED; | 218 typedef GrGLFragmentProcessor INHERITED; |
| 222 }; | 219 }; |
| 223 | 220 |
| 224 private: | 221 private: |
| 222 virtual void onGetGLProcessorKey(const GrGLSLCaps& caps, |
| 223 GrProcessorKeyBuilder* b) const override; |
| 224 |
| 225 bool onIsEqual(const GrFragmentProcessor&) const override { return true; } | 225 bool onIsEqual(const GrFragmentProcessor&) const override { return true; } |
| 226 | 226 |
| 227 GrColorCubeEffect(GrTexture* colorCube); | 227 GrColorCubeEffect(GrTexture* colorCube); |
| 228 | 228 |
| 229 GrTextureAccess fColorCubeAccess; | 229 GrTextureAccess fColorCubeAccess; |
| 230 | 230 |
| 231 typedef GrFragmentProcessor INHERITED; | 231 typedef GrFragmentProcessor INHERITED; |
| 232 }; | 232 }; |
| 233 | 233 |
| 234 /////////////////////////////////////////////////////////////////////////////// | 234 /////////////////////////////////////////////////////////////////////////////// |
| 235 | 235 |
| 236 GrColorCubeEffect::GrColorCubeEffect(GrTexture* colorCube) | 236 GrColorCubeEffect::GrColorCubeEffect(GrTexture* colorCube) |
| 237 : fColorCubeAccess(colorCube, "bgra", GrTextureParams::kBilerp_FilterMode) { | 237 : fColorCubeAccess(colorCube, "bgra", GrTextureParams::kBilerp_FilterMode) { |
| 238 this->initClassID<GrColorCubeEffect>(); | 238 this->initClassID<GrColorCubeEffect>(); |
| 239 this->addTextureAccess(&fColorCubeAccess); | 239 this->addTextureAccess(&fColorCubeAccess); |
| 240 } | 240 } |
| 241 | 241 |
| 242 GrColorCubeEffect::~GrColorCubeEffect() { | 242 GrColorCubeEffect::~GrColorCubeEffect() { |
| 243 } | 243 } |
| 244 | 244 |
| 245 void GrColorCubeEffect::getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKey
Builder* b) const { | 245 void GrColorCubeEffect::onGetGLProcessorKey(const GrGLSLCaps& caps, GrProcessorK
eyBuilder* b) const { |
| 246 GLProcessor::GenKey(*this, caps, b); | 246 GLProcessor::GenKey(*this, caps, b); |
| 247 } | 247 } |
| 248 | 248 |
| 249 GrGLFragmentProcessor* GrColorCubeEffect::createGLInstance() const { | 249 GrGLFragmentProcessor* GrColorCubeEffect::createGLInstance() const { |
| 250 return SkNEW_ARGS(GLProcessor, (*this)); | 250 return SkNEW_ARGS(GLProcessor, (*this)); |
| 251 } | 251 } |
| 252 | 252 |
| 253 void GrColorCubeEffect::onComputeInvariantOutput(GrInvariantOutput* inout) const
{ | 253 void GrColorCubeEffect::onComputeInvariantOutput(GrInvariantOutput* inout) const
{ |
| 254 inout->setToUnknown(GrInvariantOutput::kWill_ReadInput); | 254 inout->setToUnknown(GrInvariantOutput::kWill_ReadInput); |
| 255 } | 255 } |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 357 *array->append() = frag; | 357 *array->append() = frag; |
| 358 } else { | 358 } else { |
| 359 frag->unref(); | 359 frag->unref(); |
| 360 SkDEBUGCODE(frag = NULL;) | 360 SkDEBUGCODE(frag = NULL;) |
| 361 } | 361 } |
| 362 return true; | 362 return true; |
| 363 } | 363 } |
| 364 return false; | 364 return false; |
| 365 } | 365 } |
| 366 #endif | 366 #endif |
| OLD | NEW |