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 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 const GrColorCubeEffect& colorCube = proc.cast<GrColorCubeEffect>(); | 296 const GrColorCubeEffect& colorCube = proc.cast<GrColorCubeEffect>(); |
297 SkScalar size = SkIntToScalar(colorCube.colorCubeSize()); | 297 SkScalar size = SkIntToScalar(colorCube.colorCubeSize()); |
298 pdman.set1f(fColorCubeSizeUni, SkScalarToFloat(size)); | 298 pdman.set1f(fColorCubeSizeUni, SkScalarToFloat(size)); |
299 pdman.set1f(fColorCubeInvSizeUni, SkScalarToFloat(SkScalarInvert(size))); | 299 pdman.set1f(fColorCubeInvSizeUni, SkScalarToFloat(SkScalarInvert(size))); |
300 } | 300 } |
301 | 301 |
302 void GrColorCubeEffect::GLProcessor::GenKey(const GrProcessor& proc, | 302 void GrColorCubeEffect::GLProcessor::GenKey(const GrProcessor& proc, |
303 const GrGLSLCaps&, GrProcessorKeyBui
lder* b) { | 303 const GrGLSLCaps&, GrProcessorKeyBui
lder* b) { |
304 } | 304 } |
305 | 305 |
306 const GrFragmentProcessor* SkColorCubeFilter::asFragmentProcessor(GrContext* con
text, | 306 const GrFragmentProcessor* SkColorCubeFilter::asFragmentProcessor(GrContext* con
text) const { |
307 GrProcessorDat
aManager*) const { | |
308 static const GrUniqueKey::Domain kDomain = GrUniqueKey::GenerateDomain(); | 307 static const GrUniqueKey::Domain kDomain = GrUniqueKey::GenerateDomain(); |
309 GrUniqueKey key; | 308 GrUniqueKey key; |
310 GrUniqueKey::Builder builder(&key, kDomain, 2); | 309 GrUniqueKey::Builder builder(&key, kDomain, 2); |
311 builder[0] = fUniqueID; | 310 builder[0] = fUniqueID; |
312 builder[1] = fCache.cubeDimension(); | 311 builder[1] = fCache.cubeDimension(); |
313 builder.finish(); | 312 builder.finish(); |
314 | 313 |
315 GrSurfaceDesc desc; | 314 GrSurfaceDesc desc; |
316 desc.fWidth = fCache.cubeDimension(); | 315 desc.fWidth = fCache.cubeDimension(); |
317 desc.fHeight = fCache.cubeDimension() * fCache.cubeDimension(); | 316 desc.fHeight = fCache.cubeDimension() * fCache.cubeDimension(); |
318 desc.fConfig = kRGBA_8888_GrPixelConfig; | 317 desc.fConfig = kRGBA_8888_GrPixelConfig; |
319 | 318 |
320 SkAutoTUnref<GrTexture> textureCube( | 319 SkAutoTUnref<GrTexture> textureCube( |
321 context->textureProvider()->findAndRefTextureByUniqueKey(key)); | 320 context->textureProvider()->findAndRefTextureByUniqueKey(key)); |
322 if (!textureCube) { | 321 if (!textureCube) { |
323 textureCube.reset(context->textureProvider()->createTexture( | 322 textureCube.reset(context->textureProvider()->createTexture( |
324 desc, true, fCubeData->data(), 0)); | 323 desc, true, fCubeData->data(), 0)); |
325 if (textureCube) { | 324 if (textureCube) { |
326 context->textureProvider()->assignUniqueKeyToTexture(key, textureCub
e); | 325 context->textureProvider()->assignUniqueKeyToTexture(key, textureCub
e); |
327 } else { | 326 } else { |
328 return nullptr; | 327 return nullptr; |
329 } | 328 } |
330 } | 329 } |
331 | 330 |
332 return GrColorCubeEffect::Create(textureCube); | 331 return GrColorCubeEffect::Create(textureCube); |
333 } | 332 } |
334 #endif | 333 #endif |
OLD | NEW |