OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 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 #ifndef SkGradientShaderPriv_DEFINED | 8 #ifndef SkGradientShaderPriv_DEFINED |
9 #define SkGradientShaderPriv_DEFINED | 9 #define SkGradientShaderPriv_DEFINED |
10 | 10 |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 return toggle ^ SkGradientShaderBase::kDitherStride16; | 290 return toggle ^ SkGradientShaderBase::kDitherStride16; |
291 } | 291 } |
292 | 292 |
293 /////////////////////////////////////////////////////////////////////////////// | 293 /////////////////////////////////////////////////////////////////////////////// |
294 | 294 |
295 #if SK_SUPPORT_GPU | 295 #if SK_SUPPORT_GPU |
296 | 296 |
297 #include "GrCoordTransform.h" | 297 #include "GrCoordTransform.h" |
298 #include "GrFragmentProcessor.h" | 298 #include "GrFragmentProcessor.h" |
299 #include "gl/GrGLFragmentProcessor.h" | 299 #include "gl/GrGLFragmentProcessor.h" |
| 300 #include "glsl/GrGLSLProgramDataManager.h" |
300 | 301 |
301 class GrInvariantOutput; | 302 class GrInvariantOutput; |
302 | 303 |
303 /* | 304 /* |
304 * The interpretation of the texture matrix depends on the sample mode. The | 305 * The interpretation of the texture matrix depends on the sample mode. The |
305 * texture matrix is applied both when the texture coordinates are explicit | 306 * texture matrix is applied both when the texture coordinates are explicit |
306 * and when vertex positions are used as texture coordinates. In the latter | 307 * and when vertex positions are used as texture coordinates. In the latter |
307 * case the texture matrix is applied to the pre-view-matrix position | 308 * case the texture matrix is applied to the pre-view-matrix position |
308 * values. | 309 * values. |
309 * | 310 * |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 | 395 |
395 /////////////////////////////////////////////////////////////////////////////// | 396 /////////////////////////////////////////////////////////////////////////////// |
396 | 397 |
397 // Base class for GL gradient effects | 398 // Base class for GL gradient effects |
398 class GrGLGradientEffect : public GrGLFragmentProcessor { | 399 class GrGLGradientEffect : public GrGLFragmentProcessor { |
399 public: | 400 public: |
400 GrGLGradientEffect(); | 401 GrGLGradientEffect(); |
401 virtual ~GrGLGradientEffect(); | 402 virtual ~GrGLGradientEffect(); |
402 | 403 |
403 protected: | 404 protected: |
404 void onSetData(const GrGLProgramDataManager&, const GrProcessor&) override; | 405 void onSetData(const GrGLSLProgramDataManager&, const GrProcessor&) override
; |
405 | 406 |
406 protected: | 407 protected: |
407 /** | 408 /** |
408 * Subclasses must call this. It will return a key for the part of the shade
r code controlled | 409 * Subclasses must call this. It will return a key for the part of the shade
r code controlled |
409 * by the base class. The subclasses must stick it in their key and then pas
s it to the below | 410 * by the base class. The subclasses must stick it in their key and then pas
s it to the below |
410 * emit* functions from their emitCode function. | 411 * emit* functions from their emitCode function. |
411 */ | 412 */ |
412 static uint32_t GenBaseGradientKey(const GrProcessor&); | 413 static uint32_t GenBaseGradientKey(const GrProcessor&); |
413 | 414 |
414 // Emits the uniform used as the y-coord to texture samples in derived class
es. Subclasses | 415 // Emits the uniform used as the y-coord to texture samples in derived class
es. Subclasses |
(...skipping 22 matching lines...) Expand all Loading... |
437 kColorKeyMask = kTwoColorKey | kThreeColorKey, | 438 kColorKeyMask = kTwoColorKey | kThreeColorKey, |
438 kColorKeyBitCnt = 2, | 439 kColorKeyBitCnt = 2, |
439 | 440 |
440 // Subclasses must shift any key bits they produce up by this amount | 441 // Subclasses must shift any key bits they produce up by this amount |
441 // and combine with the result of GenBaseGradientKey. | 442 // and combine with the result of GenBaseGradientKey. |
442 kBaseKeyBitCnt = (kPremulTypeKeyBitCnt + kColorKeyBitCnt) | 443 kBaseKeyBitCnt = (kPremulTypeKeyBitCnt + kColorKeyBitCnt) |
443 }; | 444 }; |
444 GR_STATIC_ASSERT(kBaseKeyBitCnt <= 32); | 445 GR_STATIC_ASSERT(kBaseKeyBitCnt <= 32); |
445 | 446 |
446 SkScalar fCachedYCoord; | 447 SkScalar fCachedYCoord; |
447 GrGLProgramDataManager::UniformHandle fFSYUni; | 448 GrGLSLProgramDataManager::UniformHandle fFSYUni; |
448 GrGLProgramDataManager::UniformHandle fColorStartUni; | 449 GrGLSLProgramDataManager::UniformHandle fColorStartUni; |
449 GrGLProgramDataManager::UniformHandle fColorMidUni; | 450 GrGLSLProgramDataManager::UniformHandle fColorMidUni; |
450 GrGLProgramDataManager::UniformHandle fColorEndUni; | 451 GrGLSLProgramDataManager::UniformHandle fColorEndUni; |
451 | 452 |
452 typedef GrGLFragmentProcessor INHERITED; | 453 typedef GrGLFragmentProcessor INHERITED; |
453 }; | 454 }; |
454 | 455 |
455 #endif | 456 #endif |
456 | 457 |
457 #endif | 458 #endif |
OLD | NEW |