blob: 01cad6655cf338ea853dc10f6c1a55084f1d83b7 [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 "GrContext.h"
11#include "GrTextureProxy.h"
12
bsalomon4a339522015-10-06 08:40:50 -070013GrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
brianosman54f30c12016-07-18 10:53:52 -070014 sk_sp<GrColorSpaceXform> colorSpaceXform,
Brian Salomon587e08f2017-01-27 10:59:27 -050015 const SkMatrix& m, OptimizationFlags optFlags)
16 : INHERITED(optFlags)
17 , fCoordTransform(m, texture, GrSamplerParams::kNone_FilterMode)
18 , fTextureSampler(texture)
19 , fColorSpaceXform(std::move(colorSpaceXform)) {
Robert Phillips901f29a2017-01-24 16:24:41 -050020 this->addCoordTransform(&fCoordTransform);
21 this->addTextureSampler(&fTextureSampler);
22}
23
Ethan Nicholas052fd512017-01-27 15:34:34 +000024GrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
Robert Phillips901f29a2017-01-24 16:24:41 -050025 sk_sp<GrColorSpaceXform> colorSpaceXform,
26 const SkMatrix& m,
Brian Salomon587e08f2017-01-27 10:59:27 -050027 GrSamplerParams::FilterMode filterMode,
28 OptimizationFlags optFlags)
29 : INHERITED(optFlags)
30 , fCoordTransform(m, texture, filterMode)
31 , fTextureSampler(texture, filterMode)
32 , fColorSpaceXform(std::move(colorSpaceXform)) {
Robert Phillips901f29a2017-01-24 16:24:41 -050033 this->addCoordTransform(&fCoordTransform);
34 this->addTextureSampler(&fTextureSampler);
35}
36
Ethan Nicholas052fd512017-01-27 15:34:34 +000037GrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
Robert Phillips901f29a2017-01-24 16:24:41 -050038 sk_sp<GrColorSpaceXform> colorSpaceXform,
Brian Salomon587e08f2017-01-27 10:59:27 -050039 const SkMatrix& m, const GrSamplerParams& params,
40 OptimizationFlags optFlags)
41 : INHERITED(optFlags)
42 , fCoordTransform(m, texture, params.filterMode())
43 , fTextureSampler(texture, params)
44 , fColorSpaceXform(std::move(colorSpaceXform)) {
Robert Phillips901f29a2017-01-24 16:24:41 -050045 this->addCoordTransform(&fCoordTransform);
46 this->addTextureSampler(&fTextureSampler);
47}
Ethan Nicholas052fd512017-01-27 15:34:34 +000048
Brian Salomon587e08f2017-01-27 10:59:27 -050049GrSingleTextureEffect::GrSingleTextureEffect(GrContext* ctx, OptimizationFlags optFlags,
50 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)
54 , fCoordTransform(ctx, m, proxy.get(), GrSamplerParams::kNone_FilterMode)
Brian Osman32342f02017-03-04 08:12:46 -050055 , fTextureSampler(ctx->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
Brian Salomon587e08f2017-01-27 10:59:27 -050061GrSingleTextureEffect::GrSingleTextureEffect(GrContext* ctx, OptimizationFlags optFlags,
62 sk_sp<GrTextureProxy> proxy,
Ethan Nicholas052fd512017-01-27 15:34:34 +000063 sk_sp<GrColorSpaceXform> colorSpaceXform,
64 const SkMatrix& m,
65 GrSamplerParams::FilterMode filterMode)
Brian Salomon587e08f2017-01-27 10:59:27 -050066 : INHERITED(optFlags)
67 , fCoordTransform(ctx, m, proxy.get(), filterMode)
Brian Osman32342f02017-03-04 08:12:46 -050068 , fTextureSampler(ctx->resourceProvider(), std::move(proxy), filterMode)
Brian Salomon587e08f2017-01-27 10:59:27 -050069 , fColorSpaceXform(std::move(colorSpaceXform)) {
Ethan Nicholas052fd512017-01-27 15:34:34 +000070 this->addCoordTransform(&fCoordTransform);
71 this->addTextureSampler(&fTextureSampler);
72}
73
Brian Salomon587e08f2017-01-27 10:59:27 -050074GrSingleTextureEffect::GrSingleTextureEffect(GrContext* ctx, OptimizationFlags optFlags,
75 sk_sp<GrTextureProxy> proxy,
Ethan Nicholas052fd512017-01-27 15:34:34 +000076 sk_sp<GrColorSpaceXform> colorSpaceXform,
Brian Salomon587e08f2017-01-27 10:59:27 -050077 const SkMatrix& m, const GrSamplerParams& params)
78 : INHERITED(optFlags)
79 , fCoordTransform(ctx, m, proxy.get(), params.filterMode())
Brian Osman32342f02017-03-04 08:12:46 -050080 , fTextureSampler(ctx->resourceProvider(), std::move(proxy), params)
Brian Salomon587e08f2017-01-27 10:59:27 -050081 , fColorSpaceXform(std::move(colorSpaceXform)) {
Ethan Nicholas052fd512017-01-27 15:34:34 +000082 this->addCoordTransform(&fCoordTransform);
83 this->addTextureSampler(&fTextureSampler);
84}