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

Side by Side Diff: src/core/SkXfermode.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 | « include/gpu/GrTBackendProcessorFactory.h ('k') | src/effects/SkAlphaThresholdFilter.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 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "SkXfermode.h" 9 #include "SkXfermode.h"
10 #include "SkXfermode_opts_SSE2.h" 10 #include "SkXfermode_opts_SSE2.h"
(...skipping 792 matching lines...) Expand 10 before | Expand all | Expand 10 after
803 } 803 }
804 804
805 ////////////////////////////////////////////////////////////////////////////// 805 //////////////////////////////////////////////////////////////////////////////
806 806
807 #if SK_SUPPORT_GPU 807 #if SK_SUPPORT_GPU
808 808
809 #include "GrFragmentProcessor.h" 809 #include "GrFragmentProcessor.h"
810 #include "GrCoordTransform.h" 810 #include "GrCoordTransform.h"
811 #include "GrInvariantOutput.h" 811 #include "GrInvariantOutput.h"
812 #include "GrProcessorUnitTest.h" 812 #include "GrProcessorUnitTest.h"
813 #include "GrTBackendProcessorFactory.h"
814 #include "gl/GrGLProcessor.h" 813 #include "gl/GrGLProcessor.h"
815 #include "gl/builders/GrGLProgramBuilder.h" 814 #include "gl/builders/GrGLProgramBuilder.h"
816 815
817 /** 816 /**
818 * GrProcessor that implements the all the separable xfer modes that cannot be e xpressed as Coeffs. 817 * GrProcessor that implements the all the separable xfer modes that cannot be e xpressed as Coeffs.
819 */ 818 */
820 class XferEffect : public GrFragmentProcessor { 819 class XferEffect : public GrFragmentProcessor {
821 public: 820 public:
822 static bool IsSupportedMode(SkXfermode::Mode mode) { 821 static bool IsSupportedMode(SkXfermode::Mode mode) {
823 return mode > SkXfermode::kLastCoeffMode && mode <= SkXfermode::kLastMod e; 822 return mode > SkXfermode::kLastCoeffMode && mode <= SkXfermode::kLastMod e;
824 } 823 }
825 824
826 static GrFragmentProcessor* Create(SkXfermode::Mode mode, GrTexture* backgro und) { 825 static GrFragmentProcessor* Create(SkXfermode::Mode mode, GrTexture* backgro und) {
827 if (!IsSupportedMode(mode)) { 826 if (!IsSupportedMode(mode)) {
828 return NULL; 827 return NULL;
829 } else { 828 } else {
830 return SkNEW_ARGS(XferEffect, (mode, background)); 829 return SkNEW_ARGS(XferEffect, (mode, background));
831 } 830 }
832 } 831 }
833 832
834 virtual const GrBackendFragmentProcessorFactory& getFactory() const SK_OVERR IDE { 833 virtual void getGLProcessorKey(const GrGLCaps& caps,
835 return GrTBackendFragmentProcessorFactory<XferEffect>::getInstance(); 834 GrProcessorKeyBuilder* b) const SK_OVERRIDE {
835 GLProcessor::GenKey(*this, caps, b);
836 } 836 }
837 837
838 static const char* Name() { return "XferEffect"; } 838 virtual GrGLFragmentProcessor* createGLInstance() const SK_OVERRIDE {
839 return SkNEW_ARGS(GLProcessor, (*this));
840 }
841
842 virtual const char* name() const SK_OVERRIDE { return "XferEffect"; }
839 843
840 SkXfermode::Mode mode() const { return fMode; } 844 SkXfermode::Mode mode() const { return fMode; }
841 const GrTextureAccess& backgroundAccess() const { return fBackgroundAccess; } 845 const GrTextureAccess& backgroundAccess() const { return fBackgroundAccess; }
842 846
843 class GLProcessor : public GrGLFragmentProcessor { 847 class GLProcessor : public GrGLFragmentProcessor {
844 public: 848 public:
845 GLProcessor(const GrBackendProcessorFactory& factory, const GrProcessor& ) 849 GLProcessor(const GrFragmentProcessor&) {}
846 : INHERITED(factory) { 850
847 }
848 virtual void emitCode(GrGLFPBuilder* builder, 851 virtual void emitCode(GrGLFPBuilder* builder,
849 const GrFragmentProcessor& fp, 852 const GrFragmentProcessor& fp,
850 const char* outputColor, 853 const char* outputColor,
851 const char* inputColor, 854 const char* inputColor,
852 const TransformedCoordsArray& coords, 855 const TransformedCoordsArray& coords,
853 const TextureSamplerArray& samplers) SK_OVERRIDE { 856 const TextureSamplerArray& samplers) SK_OVERRIDE {
854 SkXfermode::Mode mode = fp.cast<XferEffect>().mode(); 857 SkXfermode::Mode mode = fp.cast<XferEffect>().mode();
855 const GrTexture* backgroundTex = 858 const GrTexture* backgroundTex =
856 fp.cast<XferEffect>().backgroundAccess().getTexture(); 859 fp.cast<XferEffect>().backgroundAccess().getTexture();
857 GrGLFPFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder (); 860 GrGLFPFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder ();
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
1221 } 1224 }
1222 1225
1223 typedef GrGLFragmentProcessor INHERITED; 1226 typedef GrGLFragmentProcessor INHERITED;
1224 }; 1227 };
1225 1228
1226 GR_DECLARE_FRAGMENT_PROCESSOR_TEST; 1229 GR_DECLARE_FRAGMENT_PROCESSOR_TEST;
1227 1230
1228 private: 1231 private:
1229 XferEffect(SkXfermode::Mode mode, GrTexture* background) 1232 XferEffect(SkXfermode::Mode mode, GrTexture* background)
1230 : fMode(mode) { 1233 : fMode(mode) {
1234 this->initClassID<XferEffect>();
1231 if (background) { 1235 if (background) {
1232 fBackgroundTransform.reset(kLocal_GrCoordSet, background); 1236 fBackgroundTransform.reset(kLocal_GrCoordSet, background);
1233 this->addCoordTransform(&fBackgroundTransform); 1237 this->addCoordTransform(&fBackgroundTransform);
1234 fBackgroundAccess.reset(background); 1238 fBackgroundAccess.reset(background);
1235 this->addTextureAccess(&fBackgroundAccess); 1239 this->addTextureAccess(&fBackgroundAccess);
1236 } else { 1240 } else {
1237 this->setWillReadDstColor(); 1241 this->setWillReadDstColor();
1238 } 1242 }
1239 } 1243 }
1240 virtual bool onIsEqual(const GrFragmentProcessor& other) const SK_OVERRIDE { 1244 virtual bool onIsEqual(const GrFragmentProcessor& other) const SK_OVERRIDE {
(...skipping 714 matching lines...) Expand 10 before | Expand all | Expand 10 after
1955 } else { 1959 } else {
1956 proc16 = rec.fProc16_General; 1960 proc16 = rec.fProc16_General;
1957 } 1961 }
1958 } 1962 }
1959 return proc16; 1963 return proc16;
1960 } 1964 }
1961 1965
1962 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) 1966 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode)
1963 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode) 1967 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode)
1964 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END 1968 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
OLDNEW
« no previous file with comments | « include/gpu/GrTBackendProcessorFactory.h ('k') | src/effects/SkAlphaThresholdFilter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698