Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(146)

Side by Side Diff: src/effects/SkAlphaThresholdFilter.cpp

Issue 1388113002: Bye bye processor data manager (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: remove files Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/core/SkXfermode_proccoeff.h ('k') | src/effects/SkArithmeticMode.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "SkAlphaThresholdFilter.h" 8 #include "SkAlphaThresholdFilter.h"
9 #include "SkBitmap.h" 9 #include "SkBitmap.h"
10 #include "SkReadBuffer.h" 10 #include "SkReadBuffer.h"
(...skipping 10 matching lines...) Expand all
21 21
22 SK_TO_STRING_OVERRIDE() 22 SK_TO_STRING_OVERRIDE()
23 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkAlphaThresholdFilterIm pl) 23 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkAlphaThresholdFilterIm pl)
24 24
25 protected: 25 protected:
26 void flatten(SkWriteBuffer&) const override; 26 void flatten(SkWriteBuffer&) const override;
27 27
28 bool onFilterImage(Proxy*, const SkBitmap& src, const Context&, 28 bool onFilterImage(Proxy*, const SkBitmap& src, const Context&,
29 SkBitmap* result, SkIPoint* offset) const override; 29 SkBitmap* result, SkIPoint* offset) const override;
30 #if SK_SUPPORT_GPU 30 #if SK_SUPPORT_GPU
31 bool asFragmentProcessor(GrFragmentProcessor**, GrProcessorDataManager*, GrT exture*, 31 bool asFragmentProcessor(GrFragmentProcessor**, GrTexture*, const SkMatrix&,
32 const SkMatrix&, const SkIRect& bounds) const overr ide; 32 const SkIRect& bounds) const override;
33 #endif 33 #endif
34 34
35 private: 35 private:
36 SkRegion fRegion; 36 SkRegion fRegion;
37 SkScalar fInnerThreshold; 37 SkScalar fInnerThreshold;
38 SkScalar fOuterThreshold; 38 SkScalar fOuterThreshold;
39 typedef SkImageFilter INHERITED; 39 typedef SkImageFilter INHERITED;
40 }; 40 };
41 41
42 SkImageFilter* SkAlphaThresholdFilter::Create(const SkRegion& region, 42 SkImageFilter* SkAlphaThresholdFilter::Create(const SkRegion& region,
(...skipping 12 matching lines...) Expand all
55 #include "effects/GrPorterDuffXferProcessor.h" 55 #include "effects/GrPorterDuffXferProcessor.h"
56 56
57 #include "SkGr.h" 57 #include "SkGr.h"
58 58
59 #include "gl/GrGLFragmentProcessor.h" 59 #include "gl/GrGLFragmentProcessor.h"
60 #include "gl/builders/GrGLProgramBuilder.h" 60 #include "gl/builders/GrGLProgramBuilder.h"
61 61
62 class AlphaThresholdEffect : public GrFragmentProcessor { 62 class AlphaThresholdEffect : public GrFragmentProcessor {
63 63
64 public: 64 public:
65 static GrFragmentProcessor* Create(GrProcessorDataManager* procDataManager, 65 static GrFragmentProcessor* Create(GrTexture* texture,
66 GrTexture* texture,
67 GrTexture* maskTexture, 66 GrTexture* maskTexture,
68 float innerThreshold, 67 float innerThreshold,
69 float outerThreshold) { 68 float outerThreshold) {
70 return new AlphaThresholdEffect(procDataManager, texture, maskTexture, i nnerThreshold, 69 return new AlphaThresholdEffect(texture, maskTexture, innerThreshold, ou terThreshold);
71 outerThreshold);
72 } 70 }
73 71
74 virtual ~AlphaThresholdEffect() {}; 72 virtual ~AlphaThresholdEffect() {};
75 73
76 const char* name() const override { return "Alpha Threshold"; } 74 const char* name() const override { return "Alpha Threshold"; }
77 75
78 float innerThreshold() const { return fInnerThreshold; } 76 float innerThreshold() const { return fInnerThreshold; }
79 float outerThreshold() const { return fOuterThreshold; } 77 float outerThreshold() const { return fOuterThreshold; }
80 78
81 private: 79 private:
82 AlphaThresholdEffect(GrProcessorDataManager*, 80 AlphaThresholdEffect(GrTexture* texture,
83 GrTexture* texture,
84 GrTexture* maskTexture, 81 GrTexture* maskTexture,
85 float innerThreshold, 82 float innerThreshold,
86 float outerThreshold) 83 float outerThreshold)
87 : fInnerThreshold(innerThreshold) 84 : fInnerThreshold(innerThreshold)
88 , fOuterThreshold(outerThreshold) 85 , fOuterThreshold(outerThreshold)
89 , fImageCoordTransform(kLocal_GrCoordSet, 86 , fImageCoordTransform(kLocal_GrCoordSet,
90 GrCoordTransform::MakeDivByTextureWHMatrix(textur e), texture, 87 GrCoordTransform::MakeDivByTextureWHMatrix(textur e), texture,
91 GrTextureParams::kNone_FilterMode) 88 GrTextureParams::kNone_FilterMode)
92 , fImageTextureAccess(texture) 89 , fImageTextureAccess(texture)
93 , fMaskCoordTransform(kLocal_GrCoordSet, 90 , fMaskCoordTransform(kLocal_GrCoordSet,
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 190
194 ///////////////////////////////////////////////////////////////////// 191 /////////////////////////////////////////////////////////////////////
195 192
196 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(AlphaThresholdEffect); 193 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(AlphaThresholdEffect);
197 194
198 const GrFragmentProcessor* AlphaThresholdEffect::TestCreate(GrProcessorTestData* d) { 195 const GrFragmentProcessor* AlphaThresholdEffect::TestCreate(GrProcessorTestData* d) {
199 GrTexture* bmpTex = d->fTextures[GrProcessorUnitTest::kSkiaPMTextureIdx]; 196 GrTexture* bmpTex = d->fTextures[GrProcessorUnitTest::kSkiaPMTextureIdx];
200 GrTexture* maskTex = d->fTextures[GrProcessorUnitTest::kAlphaTextureIdx]; 197 GrTexture* maskTex = d->fTextures[GrProcessorUnitTest::kAlphaTextureIdx];
201 float innerThresh = d->fRandom->nextUScalar1(); 198 float innerThresh = d->fRandom->nextUScalar1();
202 float outerThresh = d->fRandom->nextUScalar1(); 199 float outerThresh = d->fRandom->nextUScalar1();
203 return AlphaThresholdEffect::Create(d->fProcDataManager, bmpTex, maskTex, in nerThresh, 200 return AlphaThresholdEffect::Create(bmpTex, maskTex, innerThresh, outerThres h);
204 outerThresh);
205 } 201 }
206 202
207 /////////////////////////////////////////////////////////////////////////////// 203 ///////////////////////////////////////////////////////////////////////////////
208 204
209 void AlphaThresholdEffect::onGetGLProcessorKey(const GrGLSLCaps& caps, 205 void AlphaThresholdEffect::onGetGLProcessorKey(const GrGLSLCaps& caps,
210 GrProcessorKeyBuilder* b) const { 206 GrProcessorKeyBuilder* b) const {
211 GrGLAlphaThresholdEffect::GenKey(*this, caps, b); 207 GrGLAlphaThresholdEffect::GenKey(*this, caps, b);
212 } 208 }
213 209
214 GrGLFragmentProcessor* AlphaThresholdEffect::onCreateGLInstance() const { 210 GrGLFragmentProcessor* AlphaThresholdEffect::onCreateGLInstance() const {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 SkScalar outerThreshold, 243 SkScalar outerThreshold,
248 SkImageFilter* input) 244 SkImageFilter* input)
249 : INHERITED(1, &input) 245 : INHERITED(1, &input)
250 , fRegion(region) 246 , fRegion(region)
251 , fInnerThreshold(innerThreshold) 247 , fInnerThreshold(innerThreshold)
252 , fOuterThreshold(outerThreshold) { 248 , fOuterThreshold(outerThreshold) {
253 } 249 }
254 250
255 #if SK_SUPPORT_GPU 251 #if SK_SUPPORT_GPU
256 bool SkAlphaThresholdFilterImpl::asFragmentProcessor(GrFragmentProcessor** fp, 252 bool SkAlphaThresholdFilterImpl::asFragmentProcessor(GrFragmentProcessor** fp,
257 GrProcessorDataManager* pro cDataManager,
258 GrTexture* texture, 253 GrTexture* texture,
259 const SkMatrix& in_matrix, 254 const SkMatrix& in_matrix,
260 const SkIRect&) const { 255 const SkIRect&) const {
261 if (fp) { 256 if (fp) {
262 GrContext* context = texture->getContext(); 257 GrContext* context = texture->getContext();
263 GrSurfaceDesc maskDesc; 258 GrSurfaceDesc maskDesc;
264 if (context->caps()->isConfigRenderable(kAlpha_8_GrPixelConfig, false)) { 259 if (context->caps()->isConfigRenderable(kAlpha_8_GrPixelConfig, false)) {
265 maskDesc.fConfig = kAlpha_8_GrPixelConfig; 260 maskDesc.fConfig = kAlpha_8_GrPixelConfig;
266 } else { 261 } else {
267 maskDesc.fConfig = kRGBA_8888_GrPixelConfig; 262 maskDesc.fConfig = kRGBA_8888_GrPixelConfig;
(...skipping 17 matching lines...) Expand all
285 drawContext->clear(maskTexture->asRenderTarget(), nullptr, 0x0, true ); 280 drawContext->clear(maskTexture->asRenderTarget(), nullptr, 0x0, true );
286 281
287 while (!iter.done()) { 282 while (!iter.done()) {
288 SkRect rect = SkRect::Make(iter.rect()); 283 SkRect rect = SkRect::Make(iter.rect());
289 drawContext->drawRect(maskTexture->asRenderTarget(), GrClip::Wid eOpen(), grPaint, 284 drawContext->drawRect(maskTexture->asRenderTarget(), GrClip::Wid eOpen(), grPaint,
290 in_matrix, rect); 285 in_matrix, rect);
291 iter.next(); 286 iter.next();
292 } 287 }
293 } 288 }
294 289
295 *fp = AlphaThresholdEffect::Create(procDataManager, 290 *fp = AlphaThresholdEffect::Create(texture,
296 texture,
297 maskTexture, 291 maskTexture,
298 fInnerThreshold, 292 fInnerThreshold,
299 fOuterThreshold); 293 fOuterThreshold);
300 } 294 }
301 return true; 295 return true;
302 } 296 }
303 #endif 297 #endif
304 298
305 void SkAlphaThresholdFilterImpl::flatten(SkWriteBuffer& buffer) const { 299 void SkAlphaThresholdFilterImpl::flatten(SkWriteBuffer& buffer) const {
306 this->INHERITED::flatten(buffer); 300 this->INHERITED::flatten(buffer);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 } 366 }
373 367
374 #ifndef SK_IGNORE_TO_STRING 368 #ifndef SK_IGNORE_TO_STRING
375 void SkAlphaThresholdFilterImpl::toString(SkString* str) const { 369 void SkAlphaThresholdFilterImpl::toString(SkString* str) const {
376 str->appendf("SkAlphaThresholdImageFilter: ("); 370 str->appendf("SkAlphaThresholdImageFilter: (");
377 str->appendf("inner: %f outer: %f", fInnerThreshold, fOuterThreshold); 371 str->appendf("inner: %f outer: %f", fInnerThreshold, fOuterThreshold);
378 str->append(")"); 372 str->append(")");
379 } 373 }
380 #endif 374 #endif
381 375
OLDNEW
« no previous file with comments | « src/core/SkXfermode_proccoeff.h ('k') | src/effects/SkArithmeticMode.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698