| 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" |
| 11 #include "SkReadBuffer.h" | 11 #include "SkReadBuffer.h" |
| 12 #include "SkUnPreMultiply.h" | 12 #include "SkUnPreMultiply.h" |
| 13 #include "SkWriteBuffer.h" | 13 #include "SkWriteBuffer.h" |
| 14 #if SK_SUPPORT_GPU | 14 #if SK_SUPPORT_GPU |
| 15 #include "GrContext.h" | 15 #include "GrContext.h" |
| 16 #include "GrCoordTransform.h" | 16 #include "GrCoordTransform.h" |
| 17 #include "GrInvariantOutput.h" |
| 17 #include "gl/GrGLProcessor.h" | 18 #include "gl/GrGLProcessor.h" |
| 18 #include "gl/builders/GrGLProgramBuilder.h" | 19 #include "gl/builders/GrGLProgramBuilder.h" |
| 19 #include "GrTBackendProcessorFactory.h" | 20 #include "GrTBackendProcessorFactory.h" |
| 20 #include "GrTexturePriv.h" | 21 #include "GrTexturePriv.h" |
| 21 #include "SkGr.h" | 22 #include "SkGr.h" |
| 22 #endif | 23 #endif |
| 23 | 24 |
| 24 /////////////////////////////////////////////////////////////////////////////// | 25 /////////////////////////////////////////////////////////////////////////////// |
| 25 namespace { | 26 namespace { |
| 26 | 27 |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 } | 186 } |
| 186 | 187 |
| 187 #ifndef SK_IGNORE_TO_STRING | 188 #ifndef SK_IGNORE_TO_STRING |
| 188 void SkColorCubeFilter::toString(SkString* str) const { | 189 void SkColorCubeFilter::toString(SkString* str) const { |
| 189 str->append("SkColorCubeFilter "); | 190 str->append("SkColorCubeFilter "); |
| 190 } | 191 } |
| 191 #endif | 192 #endif |
| 192 | 193 |
| 193 /////////////////////////////////////////////////////////////////////////////// | 194 /////////////////////////////////////////////////////////////////////////////// |
| 194 #if SK_SUPPORT_GPU | 195 #if SK_SUPPORT_GPU |
| 196 |
| 195 class GrColorCubeEffect : public GrFragmentProcessor { | 197 class GrColorCubeEffect : public GrFragmentProcessor { |
| 196 public: | 198 public: |
| 197 static GrFragmentProcessor* Create(GrTexture* colorCube) { | 199 static GrFragmentProcessor* Create(GrTexture* colorCube) { |
| 198 return (NULL != colorCube) ? SkNEW_ARGS(GrColorCubeEffect, (colorCube))
: NULL; | 200 return (NULL != colorCube) ? SkNEW_ARGS(GrColorCubeEffect, (colorCube))
: NULL; |
| 199 } | 201 } |
| 200 | 202 |
| 201 virtual ~GrColorCubeEffect(); | 203 virtual ~GrColorCubeEffect(); |
| 202 | 204 |
| 203 virtual const GrBackendFragmentProcessorFactory& getFactory() const SK_OVERR
IDE; | 205 virtual const GrBackendFragmentProcessorFactory& getFactory() const SK_OVERR
IDE; |
| 204 int colorCubeSize() const { return fColorCubeAccess.getTexture()->width(); } | 206 int colorCubeSize() const { return fColorCubeAccess.getTexture()->width(); } |
| 205 | 207 |
| 206 static const char* Name() { return "ColorCube"; } | 208 static const char* Name() { return "ColorCube"; } |
| 207 | 209 |
| 208 virtual void onComputeInvariantOutput(GrProcessor::InvariantOutput*) const S
K_OVERRIDE; | 210 virtual void onComputeInvariantOutput(GrInvariantOutput*) const SK_OVERRIDE; |
| 209 | 211 |
| 210 class GLProcessor : public GrGLFragmentProcessor { | 212 class GLProcessor : public GrGLFragmentProcessor { |
| 211 public: | 213 public: |
| 212 GLProcessor(const GrBackendProcessorFactory& factory, const GrProcessor&
); | 214 GLProcessor(const GrBackendProcessorFactory& factory, const GrProcessor&
); |
| 213 virtual ~GLProcessor(); | 215 virtual ~GLProcessor(); |
| 214 | 216 |
| 215 virtual void emitCode(GrGLFPBuilder*, | 217 virtual void emitCode(GrGLFPBuilder*, |
| 216 const GrFragmentProcessor&, | 218 const GrFragmentProcessor&, |
| 217 const GrProcessorKey&, | 219 const GrProcessorKey&, |
| 218 const char* outputColor, | 220 const char* outputColor, |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 this->addTextureAccess(&fColorCubeAccess); | 253 this->addTextureAccess(&fColorCubeAccess); |
| 252 } | 254 } |
| 253 | 255 |
| 254 GrColorCubeEffect::~GrColorCubeEffect() { | 256 GrColorCubeEffect::~GrColorCubeEffect() { |
| 255 } | 257 } |
| 256 | 258 |
| 257 const GrBackendFragmentProcessorFactory& GrColorCubeEffect::getFactory() const { | 259 const GrBackendFragmentProcessorFactory& GrColorCubeEffect::getFactory() const { |
| 258 return GrTBackendFragmentProcessorFactory<GrColorCubeEffect>::getInstance(); | 260 return GrTBackendFragmentProcessorFactory<GrColorCubeEffect>::getInstance(); |
| 259 } | 261 } |
| 260 | 262 |
| 261 void GrColorCubeEffect::onComputeInvariantOutput(InvariantOutput* inout) const { | 263 void GrColorCubeEffect::onComputeInvariantOutput(GrInvariantOutput* inout) const
{ |
| 262 inout->setToUnknown(InvariantOutput::kWill_ReadInput); | 264 inout->setToUnknown(GrInvariantOutput::kWill_ReadInput); |
| 263 } | 265 } |
| 264 | 266 |
| 265 /////////////////////////////////////////////////////////////////////////////// | 267 /////////////////////////////////////////////////////////////////////////////// |
| 266 | 268 |
| 267 GrColorCubeEffect::GLProcessor::GLProcessor(const GrBackendProcessorFactory& fac
tory, | 269 GrColorCubeEffect::GLProcessor::GLProcessor(const GrBackendProcessorFactory& fac
tory, |
| 268 const GrProcessor&) | 270 const GrProcessor&) |
| 269 : INHERITED(factory) { | 271 : INHERITED(factory) { |
| 270 } | 272 } |
| 271 | 273 |
| 272 GrColorCubeEffect::GLProcessor::~GLProcessor() { | 274 GrColorCubeEffect::GLProcessor::~GLProcessor() { |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 SkAutoTUnref<GrTexture> textureCube; | 363 SkAutoTUnref<GrTexture> textureCube; |
| 362 if (surface) { | 364 if (surface) { |
| 363 textureCube.reset(surface->asTexture()); | 365 textureCube.reset(surface->asTexture()); |
| 364 } else { | 366 } else { |
| 365 textureCube.reset(context->createTexture(NULL, desc, cacheID, fCubeData-
>data(), 0)); | 367 textureCube.reset(context->createTexture(NULL, desc, cacheID, fCubeData-
>data(), 0)); |
| 366 } | 368 } |
| 367 | 369 |
| 368 return textureCube ? GrColorCubeEffect::Create(textureCube) : NULL; | 370 return textureCube ? GrColorCubeEffect::Create(textureCube) : NULL; |
| 369 } | 371 } |
| 370 #endif | 372 #endif |
| OLD | NEW |