• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2012 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #include "effects/GrSingleTextureEffect.h"
9 
10 #include "GrTextureProxy.h"
11 
GrSingleTextureEffect(GrTexture * texture,sk_sp<GrColorSpaceXform> colorSpaceXform,const SkMatrix & m,OptimizationFlags optFlags)12 GrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
13                                              sk_sp<GrColorSpaceXform> colorSpaceXform,
14                                              const SkMatrix& m, OptimizationFlags optFlags)
15         : INHERITED(optFlags)
16         , fCoordTransform(m, texture, GrSamplerParams::kNone_FilterMode)
17         , fTextureSampler(texture)
18         , fColorSpaceXform(std::move(colorSpaceXform)) {
19     this->addCoordTransform(&fCoordTransform);
20     this->addTextureSampler(&fTextureSampler);
21 }
22 
GrSingleTextureEffect(GrTexture * texture,sk_sp<GrColorSpaceXform> colorSpaceXform,const SkMatrix & m,GrSamplerParams::FilterMode filterMode,OptimizationFlags optFlags)23 GrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
24                                              sk_sp<GrColorSpaceXform> colorSpaceXform,
25                                              const SkMatrix& m,
26                                              GrSamplerParams::FilterMode filterMode,
27                                              OptimizationFlags optFlags)
28         : INHERITED(optFlags)
29         , fCoordTransform(m, texture, filterMode)
30         , fTextureSampler(texture, filterMode)
31         , fColorSpaceXform(std::move(colorSpaceXform)) {
32     this->addCoordTransform(&fCoordTransform);
33     this->addTextureSampler(&fTextureSampler);
34 }
35 
GrSingleTextureEffect(GrTexture * texture,sk_sp<GrColorSpaceXform> colorSpaceXform,const SkMatrix & m,const GrSamplerParams & params,OptimizationFlags optFlags)36 GrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
37                                              sk_sp<GrColorSpaceXform> colorSpaceXform,
38                                              const SkMatrix& m, const GrSamplerParams& params,
39                                              OptimizationFlags optFlags)
40         : INHERITED(optFlags)
41         , fCoordTransform(m, texture, params.filterMode())
42         , fTextureSampler(texture, params)
43         , fColorSpaceXform(std::move(colorSpaceXform)) {
44     this->addCoordTransform(&fCoordTransform);
45     this->addTextureSampler(&fTextureSampler);
46 }
47 
GrSingleTextureEffect(GrResourceProvider * resourceProvider,OptimizationFlags optFlags,sk_sp<GrTextureProxy> proxy,sk_sp<GrColorSpaceXform> colorSpaceXform,const SkMatrix & m)48 GrSingleTextureEffect::GrSingleTextureEffect(GrResourceProvider* resourceProvider,
49                                              OptimizationFlags optFlags,
50                                              sk_sp<GrTextureProxy> proxy,
51                                              sk_sp<GrColorSpaceXform> colorSpaceXform,
52                                              const SkMatrix& m)
53         : INHERITED(optFlags)
54         , fCoordTransform(resourceProvider, m, proxy.get(), GrSamplerParams::kNone_FilterMode)
55         , fTextureSampler(resourceProvider, std::move(proxy))
56         , fColorSpaceXform(std::move(colorSpaceXform)) {
57     this->addCoordTransform(&fCoordTransform);
58     this->addTextureSampler(&fTextureSampler);
59 }
60 
GrSingleTextureEffect(GrResourceProvider * resourceProvider,OptimizationFlags optFlags,sk_sp<GrTextureProxy> proxy,sk_sp<GrColorSpaceXform> colorSpaceXform,const SkMatrix & m,GrSamplerParams::FilterMode filterMode)61 GrSingleTextureEffect::GrSingleTextureEffect(GrResourceProvider* resourceProvider,
62                                              OptimizationFlags optFlags,
63                                              sk_sp<GrTextureProxy> proxy,
64                                              sk_sp<GrColorSpaceXform> colorSpaceXform,
65                                              const SkMatrix& m,
66                                              GrSamplerParams::FilterMode filterMode)
67         : INHERITED(optFlags)
68         , fCoordTransform(resourceProvider, m, proxy.get(), filterMode)
69         , fTextureSampler(resourceProvider, std::move(proxy), filterMode)
70         , fColorSpaceXform(std::move(colorSpaceXform)) {
71     this->addCoordTransform(&fCoordTransform);
72     this->addTextureSampler(&fTextureSampler);
73 }
74 
GrSingleTextureEffect(GrResourceProvider * resourceProvider,OptimizationFlags optFlags,sk_sp<GrTextureProxy> proxy,sk_sp<GrColorSpaceXform> colorSpaceXform,const SkMatrix & m,const GrSamplerParams & params)75 GrSingleTextureEffect::GrSingleTextureEffect(GrResourceProvider* resourceProvider,
76                                              OptimizationFlags optFlags,
77                                              sk_sp<GrTextureProxy> proxy,
78                                              sk_sp<GrColorSpaceXform> colorSpaceXform,
79                                              const SkMatrix& m, const GrSamplerParams& params)
80         : INHERITED(optFlags)
81         , fCoordTransform(resourceProvider, m, proxy.get(), params.filterMode())
82         , fTextureSampler(resourceProvider, std::move(proxy), params)
83         , fColorSpaceXform(std::move(colorSpaceXform)) {
84     this->addCoordTransform(&fCoordTransform);
85     this->addTextureSampler(&fTextureSampler);
86 }
87