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

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

Issue 778453002: Remove backend factories (Closed) Base URL: https://skia.googlesource.com/skia.git@unichoice
Patch Set: more clang warnings Created 6 years 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/effects/SkAlphaThresholdFilter.cpp ('k') | src/effects/SkBlurMaskFilter.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 "SkArithmeticMode.h" 8 #include "SkArithmeticMode.h"
9 #include "SkColorPriv.h" 9 #include "SkColorPriv.h"
10 #include "SkReadBuffer.h" 10 #include "SkReadBuffer.h"
11 #include "SkWriteBuffer.h" 11 #include "SkWriteBuffer.h"
12 #include "SkString.h" 12 #include "SkString.h"
13 #include "SkUnPreMultiply.h" 13 #include "SkUnPreMultiply.h"
14 #if SK_SUPPORT_GPU 14 #if SK_SUPPORT_GPU
15 #include "GrContext.h" 15 #include "GrContext.h"
16 #include "GrCoordTransform.h" 16 #include "GrCoordTransform.h"
17 #include "GrInvariantOutput.h" 17 #include "GrInvariantOutput.h"
18 #include "gl/GrGLProcessor.h" 18 #include "gl/GrGLProcessor.h"
19 #include "gl/builders/GrGLProgramBuilder.h" 19 #include "gl/builders/GrGLProgramBuilder.h"
20 #include "GrTBackendProcessorFactory.h"
21 #endif 20 #endif
22 21
23 static const bool gUseUnpremul = false; 22 static const bool gUseUnpremul = false;
24 23
25 class SkArithmeticMode_scalar : public SkXfermode { 24 class SkArithmeticMode_scalar : public SkXfermode {
26 public: 25 public:
27 static SkArithmeticMode_scalar* Create(SkScalar k1, SkScalar k2, SkScalar k3 , SkScalar k4, 26 static SkArithmeticMode_scalar* Create(SkScalar k1, SkScalar k2, SkScalar k3 , SkScalar k4,
28 bool enforcePMColor) { 27 bool enforcePMColor) {
29 return SkNEW_ARGS(SkArithmeticMode_scalar, (k1, k2, k3, k4, enforcePMCol or)); 28 return SkNEW_ARGS(SkArithmeticMode_scalar, (k1, k2, k3, k4, enforcePMCol or));
30 } 29 }
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 return SkArithmeticMode_scalar::Create(k1, k2, k3, k4, enforcePMColor); 233 return SkArithmeticMode_scalar::Create(k1, k2, k3, k4, enforcePMColor);
235 } 234 }
236 235
237 236
238 ////////////////////////////////////////////////////////////////////////////// 237 //////////////////////////////////////////////////////////////////////////////
239 238
240 #if SK_SUPPORT_GPU 239 #if SK_SUPPORT_GPU
241 240
242 class GrGLArithmeticEffect : public GrGLFragmentProcessor { 241 class GrGLArithmeticEffect : public GrGLFragmentProcessor {
243 public: 242 public:
244 GrGLArithmeticEffect(const GrBackendProcessorFactory&, const GrProcessor&); 243 GrGLArithmeticEffect(const GrProcessor&);
245 virtual ~GrGLArithmeticEffect(); 244 virtual ~GrGLArithmeticEffect();
246 245
247 virtual void emitCode(GrGLFPBuilder*, 246 virtual void emitCode(GrGLFPBuilder*,
248 const GrFragmentProcessor&, 247 const GrFragmentProcessor&,
249 const char* outputColor, 248 const char* outputColor,
250 const char* inputColor, 249 const char* inputColor,
251 const TransformedCoordsArray&, 250 const TransformedCoordsArray&,
252 const TextureSamplerArray&) SK_OVERRIDE; 251 const TextureSamplerArray&) SK_OVERRIDE;
253 252
254 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) SK_O VERRIDE; 253 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) SK_O VERRIDE;
(...skipping 11 matching lines...) Expand all
266 265
267 class GrArithmeticEffect : public GrFragmentProcessor { 266 class GrArithmeticEffect : public GrFragmentProcessor {
268 public: 267 public:
269 static GrFragmentProcessor* Create(float k1, float k2, float k3, float k4, b ool enforcePMColor, 268 static GrFragmentProcessor* Create(float k1, float k2, float k3, float k4, b ool enforcePMColor,
270 GrTexture* background) { 269 GrTexture* background) {
271 return SkNEW_ARGS(GrArithmeticEffect, (k1, k2, k3, k4, enforcePMColor, b ackground)); 270 return SkNEW_ARGS(GrArithmeticEffect, (k1, k2, k3, k4, enforcePMColor, b ackground));
272 } 271 }
273 272
274 virtual ~GrArithmeticEffect(); 273 virtual ~GrArithmeticEffect();
275 274
276 virtual const GrBackendFragmentProcessorFactory& getFactory() const SK_OVERR IDE; 275 virtual const char* name() const SK_OVERRIDE { return "Arithmetic"; }
277 276
278 typedef GrGLArithmeticEffect GLProcessor; 277 virtual void getGLProcessorKey(const GrGLCaps& caps,
279 static const char* Name() { return "Arithmetic"; } 278 GrProcessorKeyBuilder* b) const SK_OVERRIDE {
279 GrGLArithmeticEffect::GenKey(*this, caps, b);
280 }
281
282 virtual GrGLFragmentProcessor* createGLInstance() const SK_OVERRIDE {
283 return SkNEW_ARGS(GrGLArithmeticEffect, (*this));
284 }
285
280 GrTexture* backgroundTexture() const { return fBackgroundAccess.getTexture() ; } 286 GrTexture* backgroundTexture() const { return fBackgroundAccess.getTexture() ; }
281 287
282 float k1() const { return fK1; } 288 float k1() const { return fK1; }
283 float k2() const { return fK2; } 289 float k2() const { return fK2; }
284 float k3() const { return fK3; } 290 float k3() const { return fK3; }
285 float k4() const { return fK4; } 291 float k4() const { return fK4; }
286 bool enforcePMColor() const { return fEnforcePMColor; } 292 bool enforcePMColor() const { return fEnforcePMColor; }
287 293
288 private: 294 private:
289 virtual bool onIsEqual(const GrFragmentProcessor&) const SK_OVERRIDE; 295 virtual bool onIsEqual(const GrFragmentProcessor&) const SK_OVERRIDE;
(...skipping 10 matching lines...) Expand all
300 GR_DECLARE_FRAGMENT_PROCESSOR_TEST; 306 GR_DECLARE_FRAGMENT_PROCESSOR_TEST;
301 typedef GrFragmentProcessor INHERITED; 307 typedef GrFragmentProcessor INHERITED;
302 308
303 }; 309 };
304 310
305 /////////////////////////////////////////////////////////////////////////////// 311 ///////////////////////////////////////////////////////////////////////////////
306 312
307 GrArithmeticEffect::GrArithmeticEffect(float k1, float k2, float k3, float k4, 313 GrArithmeticEffect::GrArithmeticEffect(float k1, float k2, float k3, float k4,
308 bool enforcePMColor, GrTexture* backgroun d) 314 bool enforcePMColor, GrTexture* backgroun d)
309 : fK1(k1), fK2(k2), fK3(k3), fK4(k4), fEnforcePMColor(enforcePMColor) { 315 : fK1(k1), fK2(k2), fK3(k3), fK4(k4), fEnforcePMColor(enforcePMColor) {
316 this->initClassID<GrArithmeticEffect>();
310 if (background) { 317 if (background) {
311 fBackgroundTransform.reset(kLocal_GrCoordSet, background); 318 fBackgroundTransform.reset(kLocal_GrCoordSet, background);
312 this->addCoordTransform(&fBackgroundTransform); 319 this->addCoordTransform(&fBackgroundTransform);
313 fBackgroundAccess.reset(background); 320 fBackgroundAccess.reset(background);
314 this->addTextureAccess(&fBackgroundAccess); 321 this->addTextureAccess(&fBackgroundAccess);
315 } else { 322 } else {
316 this->setWillReadDstColor(); 323 this->setWillReadDstColor();
317 } 324 }
318 } 325 }
319 326
320 GrArithmeticEffect::~GrArithmeticEffect() { 327 GrArithmeticEffect::~GrArithmeticEffect() {
321 } 328 }
322 329
323 bool GrArithmeticEffect::onIsEqual(const GrFragmentProcessor& sBase) const { 330 bool GrArithmeticEffect::onIsEqual(const GrFragmentProcessor& sBase) const {
324 const GrArithmeticEffect& s = sBase.cast<GrArithmeticEffect>(); 331 const GrArithmeticEffect& s = sBase.cast<GrArithmeticEffect>();
325 return fK1 == s.fK1 && 332 return fK1 == s.fK1 &&
326 fK2 == s.fK2 && 333 fK2 == s.fK2 &&
327 fK3 == s.fK3 && 334 fK3 == s.fK3 &&
328 fK4 == s.fK4 && 335 fK4 == s.fK4 &&
329 fEnforcePMColor == s.fEnforcePMColor; 336 fEnforcePMColor == s.fEnforcePMColor;
330 } 337 }
331 338
332 const GrBackendFragmentProcessorFactory& GrArithmeticEffect::getFactory() const {
333 return GrTBackendFragmentProcessorFactory<GrArithmeticEffect>::getInstance() ;
334 }
335
336 void GrArithmeticEffect::onComputeInvariantOutput(GrInvariantOutput* inout) cons t { 339 void GrArithmeticEffect::onComputeInvariantOutput(GrInvariantOutput* inout) cons t {
337 // TODO: optimize this 340 // TODO: optimize this
338 inout->setToUnknown(GrInvariantOutput::kWill_ReadInput); 341 inout->setToUnknown(GrInvariantOutput::kWill_ReadInput);
339 } 342 }
340 343
341 /////////////////////////////////////////////////////////////////////////////// 344 ///////////////////////////////////////////////////////////////////////////////
342 345
343 GrGLArithmeticEffect::GrGLArithmeticEffect(const GrBackendProcessorFactory& fact ory, 346 GrGLArithmeticEffect::GrGLArithmeticEffect(const GrProcessor&)
344 const GrProcessor&) 347 : fEnforcePMColor(true) {
345 : INHERITED(factory),
346 fEnforcePMColor(true) {
347 } 348 }
348 349
349 GrGLArithmeticEffect::~GrGLArithmeticEffect() { 350 GrGLArithmeticEffect::~GrGLArithmeticEffect() {
350 } 351 }
351 352
352 void GrGLArithmeticEffect::emitCode(GrGLFPBuilder* builder, 353 void GrGLArithmeticEffect::emitCode(GrGLFPBuilder* builder,
353 const GrFragmentProcessor& fp, 354 const GrFragmentProcessor& fp,
354 const char* outputColor, 355 const char* outputColor,
355 const char* inputColor, 356 const char* inputColor,
356 const TransformedCoordsArray& coords, 357 const TransformedCoordsArray& coords,
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 background); 441 background);
441 } 442 }
442 return true; 443 return true;
443 } 444 }
444 445
445 #endif 446 #endif
446 447
447 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkArithmeticMode) 448 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkArithmeticMode)
448 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkArithmeticMode_scalar) 449 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkArithmeticMode_scalar)
449 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END 450 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
OLDNEW
« no previous file with comments | « src/effects/SkAlphaThresholdFilter.cpp ('k') | src/effects/SkBlurMaskFilter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698