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