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

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: cleanup 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
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 uint32_t classID() const {
843 static uint32_t id = GenClassID();
844 return id;
845 }
846
847 virtual const char* name() const SK_OVERRIDE { return "XferEffect"; }
839 848
840 SkXfermode::Mode mode() const { return fMode; } 849 SkXfermode::Mode mode() const { return fMode; }
841 const GrTextureAccess& backgroundAccess() const { return fBackgroundAccess; } 850 const GrTextureAccess& backgroundAccess() const { return fBackgroundAccess; }
842 851
843 class GLProcessor : public GrGLFragmentProcessor { 852 class GLProcessor : public GrGLFragmentProcessor {
844 public: 853 public:
845 GLProcessor(const GrBackendProcessorFactory& factory, const GrProcessor& ) 854 GLProcessor(const GrFragmentProcessor&) {}
846 : INHERITED(factory) { 855
847 }
848 virtual void emitCode(GrGLFPBuilder* builder, 856 virtual void emitCode(GrGLFPBuilder* builder,
849 const GrFragmentProcessor& fp, 857 const GrFragmentProcessor& fp,
850 const char* outputColor, 858 const char* outputColor,
851 const char* inputColor, 859 const char* inputColor,
852 const TransformedCoordsArray& coords, 860 const TransformedCoordsArray& coords,
853 const TextureSamplerArray& samplers) SK_OVERRIDE { 861 const TextureSamplerArray& samplers) SK_OVERRIDE {
854 SkXfermode::Mode mode = fp.cast<XferEffect>().mode(); 862 SkXfermode::Mode mode = fp.cast<XferEffect>().mode();
855 const GrTexture* backgroundTex = 863 const GrTexture* backgroundTex =
856 fp.cast<XferEffect>().backgroundAccess().getTexture(); 864 fp.cast<XferEffect>().backgroundAccess().getTexture();
857 GrGLFPFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder (); 865 GrGLFPFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder ();
(...skipping 1097 matching lines...) Expand 10 before | Expand all | Expand 10 after
1955 } else { 1963 } else {
1956 proc16 = rec.fProc16_General; 1964 proc16 = rec.fProc16_General;
1957 } 1965 }
1958 } 1966 }
1959 return proc16; 1967 return proc16;
1960 } 1968 }
1961 1969
1962 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) 1970 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode)
1963 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode) 1971 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkProcCoeffXfermode)
1964 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END 1972 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698