1d0c1a06cb98dd4a009dfa79e37ba6ca23a8c180btomhudson@google.com/*
2d0c1a06cb98dd4a009dfa79e37ba6ca23a8c180btomhudson@google.com * Copyright 2012 Google Inc.
3d0c1a06cb98dd4a009dfa79e37ba6ca23a8c180btomhudson@google.com *
4d0c1a06cb98dd4a009dfa79e37ba6ca23a8c180btomhudson@google.com * Use of this source code is governed by a BSD-style license that can be
5d0c1a06cb98dd4a009dfa79e37ba6ca23a8c180btomhudson@google.com * found in the LICENSE file.
6d0c1a06cb98dd4a009dfa79e37ba6ca23a8c180btomhudson@google.com */
7d0c1a06cb98dd4a009dfa79e37ba6ca23a8c180btomhudson@google.com
8d0c1a06cb98dd4a009dfa79e37ba6ca23a8c180btomhudson@google.com#include "effects/GrSingleTextureEffect.h"
9aa72eab5d82d4c2aa9f6f41755a001282443b042tomhudson@google.com
10901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips#include "GrTextureProxy.h"
11901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips
124a339529612a43871d021877e58698e067d6c4cdbsalomonGrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
1354f30c13fc0a5d89797fc9be5f0fb1050d96b6f4brianosman                                             sk_sp<GrColorSpaceXform> colorSpaceXform,
14587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon                                             const SkMatrix& m, OptimizationFlags optFlags)
15587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        : INHERITED(optFlags)
16587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        , fCoordTransform(m, texture, GrSamplerParams::kNone_FilterMode)
17587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        , fTextureSampler(texture)
18587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        , fColorSpaceXform(std::move(colorSpaceXform)) {
1977af6805e5faea1e2a5c0220098aec9082f3a6e5bsalomon@google.com    this->addCoordTransform(&fCoordTransform);
200bbecb21ab82b3d742c491780bcc2e74be03efedBrian Salomon    this->addTextureSampler(&fTextureSampler);
21d8b5faca043100d7a1e4594b4d10e462532af390bsalomon@google.com}
22d8b5faca043100d7a1e4594b4d10e462532af390bsalomon@google.com
234a339529612a43871d021877e58698e067d6c4cdbsalomonGrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
2454f30c13fc0a5d89797fc9be5f0fb1050d96b6f4brianosman                                             sk_sp<GrColorSpaceXform> colorSpaceXform,
25c78188896e28a4ae49e406a7422b345ae177dafebsalomon@google.com                                             const SkMatrix& m,
26587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon                                             GrSamplerParams::FilterMode filterMode,
27587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon                                             OptimizationFlags optFlags)
28587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        : INHERITED(optFlags)
29587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        , fCoordTransform(m, texture, filterMode)
30587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        , fTextureSampler(texture, filterMode)
31587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        , fColorSpaceXform(std::move(colorSpaceXform)) {
3277af6805e5faea1e2a5c0220098aec9082f3a6e5bsalomon@google.com    this->addCoordTransform(&fCoordTransform);
330bbecb21ab82b3d742c491780bcc2e74be03efedBrian Salomon    this->addTextureSampler(&fTextureSampler);
34d8b5faca043100d7a1e4594b4d10e462532af390bsalomon@google.com}
35d8b5faca043100d7a1e4594b4d10e462532af390bsalomon@google.com
364a339529612a43871d021877e58698e067d6c4cdbsalomonGrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
3754f30c13fc0a5d89797fc9be5f0fb1050d96b6f4brianosman                                             sk_sp<GrColorSpaceXform> colorSpaceXform,
38587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon                                             const SkMatrix& m, const GrSamplerParams& params,
39587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon                                             OptimizationFlags optFlags)
40587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        : INHERITED(optFlags)
41587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        , fCoordTransform(m, texture, params.filterMode())
42587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        , fTextureSampler(texture, params)
43587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        , fColorSpaceXform(std::move(colorSpaceXform)) {
4477af6805e5faea1e2a5c0220098aec9082f3a6e5bsalomon@google.com    this->addCoordTransform(&fCoordTransform);
450bbecb21ab82b3d742c491780bcc2e74be03efedBrian Salomon    this->addTextureSampler(&fTextureSampler);
461ce49fc91714ce8974d11246d29ebe7b97b5fe98bsalomon@google.com}
471ce49fc91714ce8974d11246d29ebe7b97b5fe98bsalomon@google.com
48296b1ccf9b8e9c8b945645efcbaa9c71c7135f58Robert PhillipsGrSingleTextureEffect::GrSingleTextureEffect(GrResourceProvider* resourceProvider,
49296b1ccf9b8e9c8b945645efcbaa9c71c7135f58Robert Phillips                                             OptimizationFlags optFlags,
50587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon                                             sk_sp<GrTextureProxy> proxy,
51901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips                                             sk_sp<GrColorSpaceXform> colorSpaceXform,
52901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips                                             const SkMatrix& m)
53587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        : INHERITED(optFlags)
54296b1ccf9b8e9c8b945645efcbaa9c71c7135f58Robert Phillips        , fCoordTransform(resourceProvider, m, proxy.get(), GrSamplerParams::kNone_FilterMode)
55296b1ccf9b8e9c8b945645efcbaa9c71c7135f58Robert Phillips        , fTextureSampler(resourceProvider, std::move(proxy))
56587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        , fColorSpaceXform(std::move(colorSpaceXform)) {
57901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips    this->addCoordTransform(&fCoordTransform);
58901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips    this->addTextureSampler(&fTextureSampler);
59901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips}
60901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips
61296b1ccf9b8e9c8b945645efcbaa9c71c7135f58Robert PhillipsGrSingleTextureEffect::GrSingleTextureEffect(GrResourceProvider* resourceProvider,
62296b1ccf9b8e9c8b945645efcbaa9c71c7135f58Robert Phillips                                             OptimizationFlags optFlags,
63587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon                                             sk_sp<GrTextureProxy> proxy,
64901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips                                             sk_sp<GrColorSpaceXform> colorSpaceXform,
65901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips                                             const SkMatrix& m,
66901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips                                             GrSamplerParams::FilterMode filterMode)
67587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        : INHERITED(optFlags)
68296b1ccf9b8e9c8b945645efcbaa9c71c7135f58Robert Phillips        , fCoordTransform(resourceProvider, m, proxy.get(), filterMode)
69296b1ccf9b8e9c8b945645efcbaa9c71c7135f58Robert Phillips        , fTextureSampler(resourceProvider, std::move(proxy), filterMode)
70587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        , fColorSpaceXform(std::move(colorSpaceXform)) {
71901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips    this->addCoordTransform(&fCoordTransform);
72901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips    this->addTextureSampler(&fTextureSampler);
73901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips}
74901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips
75296b1ccf9b8e9c8b945645efcbaa9c71c7135f58Robert PhillipsGrSingleTextureEffect::GrSingleTextureEffect(GrResourceProvider* resourceProvider,
76296b1ccf9b8e9c8b945645efcbaa9c71c7135f58Robert Phillips                                             OptimizationFlags optFlags,
77587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon                                             sk_sp<GrTextureProxy> proxy,
78901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips                                             sk_sp<GrColorSpaceXform> colorSpaceXform,
79587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon                                             const SkMatrix& m, const GrSamplerParams& params)
80587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        : INHERITED(optFlags)
81296b1ccf9b8e9c8b945645efcbaa9c71c7135f58Robert Phillips        , fCoordTransform(resourceProvider, m, proxy.get(), params.filterMode())
82296b1ccf9b8e9c8b945645efcbaa9c71c7135f58Robert Phillips        , fTextureSampler(resourceProvider, std::move(proxy), params)
83587e08f361ee3e775a6bbc6dca761dbba82e422cBrian Salomon        , fColorSpaceXform(std::move(colorSpaceXform)) {
84901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips    this->addCoordTransform(&fCoordTransform);
85901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips    this->addTextureSampler(&fTextureSampler);
86901f29ad3e38b7072a2abef5ff1665cd755d21a2Robert Phillips}
87