| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 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 "SkDither.h" | 8 #include "SkDither.h" |
| 9 #include "SkPerlinNoiseShader.h" | 9 #include "SkPerlinNoiseShader.h" |
| 10 #include "SkColorFilter.h" | 10 #include "SkColorFilter.h" |
| (...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 virtual ~GrGLPerlinNoise() {} | 498 virtual ~GrGLPerlinNoise() {} |
| 499 | 499 |
| 500 virtual void emitCode(GrGLShaderBuilder*, | 500 virtual void emitCode(GrGLShaderBuilder*, |
| 501 const GrDrawEffect&, | 501 const GrDrawEffect&, |
| 502 const GrEffectKey&, | 502 const GrEffectKey&, |
| 503 const char* outputColor, | 503 const char* outputColor, |
| 504 const char* inputColor, | 504 const char* inputColor, |
| 505 const TransformedCoordsArray&, | 505 const TransformedCoordsArray&, |
| 506 const TextureSamplerArray&) SK_OVERRIDE; | 506 const TextureSamplerArray&) SK_OVERRIDE; |
| 507 | 507 |
| 508 virtual void setData(const GrGLUniformManager&, const GrDrawEffect&) SK_OVER
RIDE; | 508 virtual void setData(const GrGLProgramDataManager&, const GrDrawEffect&) SK_
OVERRIDE; |
| 509 | 509 |
| 510 static inline void GenKey(const GrDrawEffect&, const GrGLCaps&, GrEffectKeyB
uilder* b); | 510 static inline void GenKey(const GrDrawEffect&, const GrGLCaps&, GrEffectKeyB
uilder* b); |
| 511 | 511 |
| 512 private: | 512 private: |
| 513 | 513 |
| 514 GrGLUniformManager::UniformHandle fStitchDataUni; | 514 GrGLProgramDataManager::UniformHandle fStitchDataUni; |
| 515 SkPerlinNoiseShader::Type fType; | 515 SkPerlinNoiseShader::Type fType; |
| 516 bool fStitchTiles; | 516 bool fStitchTiles; |
| 517 int fNumOctaves; | 517 int fNumOctaves; |
| 518 GrGLUniformManager::UniformHandle fBaseFrequencyUni; | 518 GrGLProgramDataManager::UniformHandle fBaseFrequencyUni; |
| 519 GrGLUniformManager::UniformHandle fAlphaUni; | 519 GrGLProgramDataManager::UniformHandle fAlphaUni; |
| 520 | 520 |
| 521 private: | 521 private: |
| 522 typedef GrGLEffect INHERITED; | 522 typedef GrGLEffect INHERITED; |
| 523 }; | 523 }; |
| 524 | 524 |
| 525 ///////////////////////////////////////////////////////////////////// | 525 ///////////////////////////////////////////////////////////////////// |
| 526 | 526 |
| 527 class GrPerlinNoiseEffect : public GrEffect { | 527 class GrPerlinNoiseEffect : public GrEffect { |
| 528 public: | 528 public: |
| 529 static GrEffect* Create(SkPerlinNoiseShader::Type type, | 529 static GrEffect* Create(SkPerlinNoiseShader::Type type, |
| (...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 919 break; | 919 break; |
| 920 } | 920 } |
| 921 | 921 |
| 922 if (turbulence.stitchTiles()) { | 922 if (turbulence.stitchTiles()) { |
| 923 key |= 0x4; // Flip the 3rd bit if tile stitching is on | 923 key |= 0x4; // Flip the 3rd bit if tile stitching is on |
| 924 } | 924 } |
| 925 | 925 |
| 926 b->add32(key); | 926 b->add32(key); |
| 927 } | 927 } |
| 928 | 928 |
| 929 void GrGLPerlinNoise::setData(const GrGLUniformManager& uman, const GrDrawEffect
& drawEffect) { | 929 void GrGLPerlinNoise::setData(const GrGLProgramDataManager& pdman, const GrDrawE
ffect& drawEffect) { |
| 930 INHERITED::setData(uman, drawEffect); | 930 INHERITED::setData(pdman, drawEffect); |
| 931 | 931 |
| 932 const GrPerlinNoiseEffect& turbulence = drawEffect.castEffect<GrPerlinNoiseE
ffect>(); | 932 const GrPerlinNoiseEffect& turbulence = drawEffect.castEffect<GrPerlinNoiseE
ffect>(); |
| 933 | 933 |
| 934 const SkVector& baseFrequency = turbulence.baseFrequency(); | 934 const SkVector& baseFrequency = turbulence.baseFrequency(); |
| 935 uman.set2f(fBaseFrequencyUni, baseFrequency.fX, baseFrequency.fY); | 935 pdman.set2f(fBaseFrequencyUni, baseFrequency.fX, baseFrequency.fY); |
| 936 uman.set1f(fAlphaUni, SkScalarDiv(SkIntToScalar(turbulence.alpha()), SkIntTo
Scalar(255))); | 936 pdman.set1f(fAlphaUni, SkScalarDiv(SkIntToScalar(turbulence.alpha()), SkIntT
oScalar(255))); |
| 937 | 937 |
| 938 if (turbulence.stitchTiles()) { | 938 if (turbulence.stitchTiles()) { |
| 939 const SkPerlinNoiseShader::StitchData& stitchData = turbulence.stitchDat
a(); | 939 const SkPerlinNoiseShader::StitchData& stitchData = turbulence.stitchDat
a(); |
| 940 uman.set2f(fStitchDataUni, SkIntToScalar(stitchData.fWidth), | 940 pdman.set2f(fStitchDataUni, SkIntToScalar(stitchData.fWidth), |
| 941 SkIntToScalar(stitchData.fHeight)); | 941 SkIntToScalar(stitchData.fHeight)); |
| 942 } | 942 } |
| 943 } | 943 } |
| 944 | 944 |
| 945 ///////////////////////////////////////////////////////////////////// | 945 ///////////////////////////////////////////////////////////////////// |
| 946 | 946 |
| 947 bool SkPerlinNoiseShader::asNewEffect(GrContext* context, const SkPaint& paint, | 947 bool SkPerlinNoiseShader::asNewEffect(GrContext* context, const SkPaint& paint, |
| 948 const SkMatrix* externalLocalMatrix, GrCol
or* paintColor, | 948 const SkMatrix* externalLocalMatrix, GrCol
or* paintColor, |
| 949 GrEffect** effect) const { | 949 GrEffect** effect) const { |
| 950 SkASSERT(NULL != context); | 950 SkASSERT(NULL != context); |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1043 str->append(" seed: "); | 1043 str->append(" seed: "); |
| 1044 str->appendScalar(fSeed); | 1044 str->appendScalar(fSeed); |
| 1045 str->append(" stitch tiles: "); | 1045 str->append(" stitch tiles: "); |
| 1046 str->append(fStitchTiles ? "true " : "false "); | 1046 str->append(fStitchTiles ? "true " : "false "); |
| 1047 | 1047 |
| 1048 this->INHERITED::toString(str); | 1048 this->INHERITED::toString(str); |
| 1049 | 1049 |
| 1050 str->append(")"); | 1050 str->append(")"); |
| 1051 } | 1051 } |
| 1052 #endif | 1052 #endif |
| OLD | NEW |