blob: 4f624b3f28e7fafd9f0840cc07bb386199db42c6 [file] [log] [blame]
tomhudson@google.comd0c1a062012-07-12 17:23:52 +00001/*
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"
tomhudson@google.comaa72eab2012-07-19 18:01:07 +00009
Robert Phillips901f29a2017-01-24 16:24:41 -050010#include "GrTextureProxy.h"
11
bsalomon4a339522015-10-06 08:40:50 -070012GrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
brianosman54f30c12016-07-18 10:53:52 -070013 sk_sp<GrColorSpaceXform> colorSpaceXform,
Brian Salomon587e08f2017-01-27 10:59:27 -050014 const SkMatrix& m, OptimizationFlags optFlags)
15 : INHERITED(optFlags)
16 , fCoordTransform(m, texture, GrSamplerParams::kNone_FilterMode)
17 , fTextureSampler(texture)
18 , fColorSpaceXform(std::move(colorSpaceXform)) {
Robert Phillips901f29a2017-01-24 16:24:41 -050019 this->addCoordTransform(&fCoordTransform);
20 this->addTextureSampler(&fTextureSampler);
21}
22
Ethan Nicholas052fd512017-01-27 15:34:34 +000023GrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
Robert Phillips901f29a2017-01-24 16:24:41 -050024 sk_sp<GrColorSpaceXform> colorSpaceXform,
25 const SkMatrix& m,
Brian Salomon587e08f2017-01-27 10:59:27 -050026 GrSamplerParams::FilterMode filterMode,
27 OptimizationFlags optFlags)
28 : INHERITED(optFlags)
29 , fCoordTransform(m, texture, filterMode)
30 , fTextureSampler(texture, filterMode)
31 , fColorSpaceXform(std::move(colorSpaceXform)) {
Robert Phillips901f29a2017-01-24 16:24:41 -050032 this->addCoordTransform(&fCoordTransform);
33 this->addTextureSampler(&fTextureSampler);
34}
35
Ethan Nicholas052fd512017-01-27 15:34:34 +000036GrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
Robert Phillips901f29a2017-01-24 16:24:41 -050037 sk_sp<GrColorSpaceXform> colorSpaceXform,
Brian Salomon587e08f2017-01-27 10:59:27 -050038 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)) {
Robert Phillips901f29a2017-01-24 16:24:41 -050044 this->addCoordTransform(&fCoordTransform);
45 this->addTextureSampler(&fTextureSampler);
46}
Ethan Nicholas052fd512017-01-27 15:34:34 +000047
Robert Phillips296b1cc2017-03-15 10:42:12 -040048GrSingleTextureEffect::GrSingleTextureEffect(GrResourceProvider* resourceProvider,
49 OptimizationFlags optFlags,
Brian Salomon587e08f2017-01-27 10:59:27 -050050 sk_sp<GrTextureProxy> proxy,
Ethan Nicholas052fd512017-01-27 15:34:34 +000051 sk_sp<GrColorSpaceXform> colorSpaceXform,
52 const SkMatrix& m)
Brian Salomon587e08f2017-01-27 10:59:27 -050053 : INHERITED(optFlags)
Robert Phillips296b1cc2017-03-15 10:42:12 -040054 , fCoordTransform(resourceProvider, m, proxy.get(), GrSamplerParams::kNone_FilterMode)
55 , fTextureSampler(resourceProvider, std::move(proxy))
Brian Salomon587e08f2017-01-27 10:59:27 -050056 , fColorSpaceXform(std::move(colorSpaceXform)) {
Ethan Nicholas052fd512017-01-27 15:34:34 +000057 this->addCoordTransform(&fCoordTransform);
58 this->addTextureSampler(&fTextureSampler);
59}
60
Robert Phillips296b1cc2017-03-15 10:42:12 -040061GrSingleTextureEffect::GrSingleTextureEffect(GrResourceProvider* resourceProvider,
62 OptimizationFlags optFlags,
Brian Salomon587e08f2017-01-27 10:59:27 -050063 sk_sp<GrTextureProxy> proxy,
Ethan Nicholas052fd512017-01-27 15:34:34 +000064 sk_sp<GrColorSpaceXform> colorSpaceXform,
65 const SkMatrix& m,
66 GrSamplerParams::FilterMode filterMode)
Brian Salomon587e08f2017-01-27 10:59:27 -050067 : INHERITED(optFlags)
Robert Phillips296b1cc2017-03-15 10:42:12 -040068 , fCoordTransform(resourceProvider, m, proxy.get(), filterMode)
69 , fTextureSampler(resourceProvider, std::move(proxy), filterMode)
Brian Salomon587e08f2017-01-27 10:59:27 -050070 , fColorSpaceXform(std::move(colorSpaceXform)) {
Ethan Nicholas052fd512017-01-27 15:34:34 +000071 this->addCoordTransform(&fCoordTransform);
72 this->addTextureSampler(&fTextureSampler);
73}
74
Robert Phillips296b1cc2017-03-15 10:42:12 -040075GrSingleTextureEffect::GrSingleTextureEffect(GrResourceProvider* resourceProvider,
76 OptimizationFlags optFlags,
Brian Salomon587e08f2017-01-27 10:59:27 -050077 sk_sp<GrTextureProxy> proxy,
Ethan Nicholas052fd512017-01-27 15:34:34 +000078 sk_sp<GrColorSpaceXform> colorSpaceXform,
Brian Salomon587e08f2017-01-27 10:59:27 -050079 const SkMatrix& m, const GrSamplerParams& params)
80 : INHERITED(optFlags)
Robert Phillips296b1cc2017-03-15 10:42:12 -040081 , fCoordTransform(resourceProvider, m, proxy.get(), params.filterMode())
82 , fTextureSampler(resourceProvider, std::move(proxy), params)
Brian Salomon587e08f2017-01-27 10:59:27 -050083 , fColorSpaceXform(std::move(colorSpaceXform)) {
Ethan Nicholas052fd512017-01-27 15:34:34 +000084 this->addCoordTransform(&fCoordTransform);
85 this->addTextureSampler(&fTextureSampler);
86}