OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 The Android Open Source Project | 2 * Copyright 2012 The Android Open Source Project |
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 "SkBitmap.h" | 8 #include "SkBitmap.h" |
9 #include "SkMagnifierImageFilter.h" | 9 #include "SkMagnifierImageFilter.h" |
10 #include "SkColorPriv.h" | 10 #include "SkColorPriv.h" |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 float fYInvInset; | 93 float fYInvInset; |
94 | 94 |
95 typedef GrSingleTextureEffect INHERITED; | 95 typedef GrSingleTextureEffect INHERITED; |
96 }; | 96 }; |
97 | 97 |
98 // For brevity | 98 // For brevity |
99 typedef GrGLSLProgramDataManager::UniformHandle UniformHandle; | 99 typedef GrGLSLProgramDataManager::UniformHandle UniformHandle; |
100 | 100 |
101 class GrGLMagnifierEffect : public GrGLSLFragmentProcessor { | 101 class GrGLMagnifierEffect : public GrGLSLFragmentProcessor { |
102 public: | 102 public: |
103 GrGLMagnifierEffect(const GrProcessor&); | 103 void emitCode(EmitArgs&) override; |
104 | |
105 virtual void emitCode(EmitArgs&) override; | |
106 | 104 |
107 protected: | 105 protected: |
108 void onSetData(const GrGLSLProgramDataManager&, const GrProcessor&) override
; | 106 void onSetData(const GrGLSLProgramDataManager&, const GrProcessor&) override
; |
109 | 107 |
110 private: | 108 private: |
111 UniformHandle fOffsetVar; | 109 UniformHandle fOffsetVar; |
112 UniformHandle fInvZoomVar; | 110 UniformHandle fInvZoomVar; |
113 UniformHandle fInvInsetVar; | 111 UniformHandle fInvInsetVar; |
114 UniformHandle fBoundsVar; | 112 UniformHandle fBoundsVar; |
115 | 113 |
116 typedef GrGLSLFragmentProcessor INHERITED; | 114 typedef GrGLSLFragmentProcessor INHERITED; |
117 }; | 115 }; |
118 | 116 |
119 GrGLMagnifierEffect::GrGLMagnifierEffect(const GrProcessor&) { | |
120 } | |
121 | |
122 void GrGLMagnifierEffect::emitCode(EmitArgs& args) { | 117 void GrGLMagnifierEffect::emitCode(EmitArgs& args) { |
123 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; | 118 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; |
124 fOffsetVar = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visi
bility, | 119 fOffsetVar = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visi
bility, |
125 kVec2f_GrSLType, kDefault_GrSLPrecis
ion, | 120 kVec2f_GrSLType, kDefault_GrSLPrecis
ion, |
126 "Offset"); | 121 "Offset"); |
127 fInvZoomVar = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Vis
ibility, | 122 fInvZoomVar = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Vis
ibility, |
128 kVec2f_GrSLType, kDefault_GrSLPreci
sion, | 123 kVec2f_GrSLType, kDefault_GrSLPreci
sion, |
129 "InvZoom"); | 124 "InvZoom"); |
130 fInvInsetVar = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Vi
sibility, | 125 fInvInsetVar = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Vi
sibility, |
131 kVec2f_GrSLType, kDefault_GrSLPrec
ision, | 126 kVec2f_GrSLType, kDefault_GrSLPrec
ision, |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 } | 175 } |
181 | 176 |
182 ///////////////////////////////////////////////////////////////////// | 177 ///////////////////////////////////////////////////////////////////// |
183 | 178 |
184 void GrMagnifierEffect::onGetGLSLProcessorKey(const GrGLSLCaps& caps, | 179 void GrMagnifierEffect::onGetGLSLProcessorKey(const GrGLSLCaps& caps, |
185 GrProcessorKeyBuilder* b) const { | 180 GrProcessorKeyBuilder* b) const { |
186 GrGLMagnifierEffect::GenKey(*this, caps, b); | 181 GrGLMagnifierEffect::GenKey(*this, caps, b); |
187 } | 182 } |
188 | 183 |
189 GrGLSLFragmentProcessor* GrMagnifierEffect::onCreateGLSLInstance() const { | 184 GrGLSLFragmentProcessor* GrMagnifierEffect::onCreateGLSLInstance() const { |
190 return new GrGLMagnifierEffect(*this); | 185 return new GrGLMagnifierEffect; |
191 } | 186 } |
192 | 187 |
193 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrMagnifierEffect); | 188 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrMagnifierEffect); |
194 | 189 |
195 const GrFragmentProcessor* GrMagnifierEffect::TestCreate(GrProcessorTestData* d)
{ | 190 const GrFragmentProcessor* GrMagnifierEffect::TestCreate(GrProcessorTestData* d)
{ |
196 GrTexture* texture = d->fTextures[0]; | 191 GrTexture* texture = d->fTextures[0]; |
197 const int kMaxWidth = 200; | 192 const int kMaxWidth = 200; |
198 const int kMaxHeight = 200; | 193 const int kMaxHeight = 200; |
199 const int kMaxInset = 20; | 194 const int kMaxInset = 20; |
200 uint32_t width = d->fRandom->nextULessThan(kMaxWidth); | 195 uint32_t width = d->fRandom->nextULessThan(kMaxWidth); |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 | 365 |
371 #ifndef SK_IGNORE_TO_STRING | 366 #ifndef SK_IGNORE_TO_STRING |
372 void SkMagnifierImageFilter::toString(SkString* str) const { | 367 void SkMagnifierImageFilter::toString(SkString* str) const { |
373 str->appendf("SkMagnifierImageFilter: ("); | 368 str->appendf("SkMagnifierImageFilter: ("); |
374 str->appendf("src: (%f,%f,%f,%f) ", | 369 str->appendf("src: (%f,%f,%f,%f) ", |
375 fSrcRect.fLeft, fSrcRect.fTop, fSrcRect.fRight, fSrcRect.fBotto
m); | 370 fSrcRect.fLeft, fSrcRect.fTop, fSrcRect.fRight, fSrcRect.fBotto
m); |
376 str->appendf("inset: %f", fInset); | 371 str->appendf("inset: %f", fInset); |
377 str->append(")"); | 372 str->append(")"); |
378 } | 373 } |
379 #endif | 374 #endif |
OLD | NEW |