aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2016-11-17 11:38:22 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-11-17 17:18:53 +0000
commit0bbecb21ab82b3d742c491780bcc2e74be03efed (patch)
tree0355eca170a7cb268b27049dd158886d7f62cb87 /src/gpu
parent9de097639f04e5a18da2d2b123dace9d24ab50e4 (diff)
Rename GrTextureAccess to GrProcessor::TextureSampler.
Renames vars and methods that used the work "access" to refer to this type. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4931 Change-Id: Ibcf488fbd445c5119fc13d190544cd98981bdbee Reviewed-on: https://skia-review.googlesource.com/4931 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'src/gpu')
-rw-r--r--src/gpu/GrPipeline.cpp8
-rw-r--r--src/gpu/GrProcessor.cpp49
-rw-r--r--src/gpu/GrProgramDesc.cpp14
-rw-r--r--src/gpu/GrTextureAccess.cpp45
-rw-r--r--src/gpu/GrTexturePriv.h2
-rw-r--r--src/gpu/GrXferProcessor.cpp2
-rw-r--r--src/gpu/effects/GrBicubicEffect.cpp8
-rw-r--r--src/gpu/effects/GrBitmapTextGeoProc.cpp12
-rw-r--r--src/gpu/effects/GrBitmapTextGeoProc.h2
-rw-r--r--src/gpu/effects/GrConvolutionEffect.cpp2
-rw-r--r--src/gpu/effects/GrCustomXfermode.cpp1
-rw-r--r--src/gpu/effects/GrDistanceFieldGeoProc.cpp30
-rw-r--r--src/gpu/effects/GrDistanceFieldGeoProc.h6
-rw-r--r--src/gpu/effects/GrMatrixConvolutionEffect.cpp10
-rw-r--r--src/gpu/effects/GrSingleTextureEffect.cpp12
-rw-r--r--src/gpu/effects/GrSingleTextureEffect.h9
-rw-r--r--src/gpu/effects/GrTextureDomain.cpp26
-rw-r--r--src/gpu/effects/GrTextureDomain.h2
-rw-r--r--src/gpu/effects/GrYUVEffect.cpp20
-rw-r--r--src/gpu/gl/GrGLProgram.cpp16
-rw-r--r--src/gpu/glsl/GrGLSLFragmentProcessor.h4
-rw-r--r--src/gpu/glsl/GrGLSLProgramBuilder.cpp20
-rw-r--r--src/gpu/glsl/GrGLSLShaderBuilder.h3
-rw-r--r--src/gpu/vk/GrVkGpuCommandBuffer.cpp9
-rw-r--r--src/gpu/vk/GrVkPipelineState.cpp20
-rw-r--r--src/gpu/vk/GrVkPipelineState.h3
-rw-r--r--src/gpu/vk/GrVkSampler.cpp1
-rw-r--r--src/gpu/vk/GrVkSampler.h1
28 files changed, 166 insertions, 171 deletions
diff --git a/src/gpu/GrPipeline.cpp b/src/gpu/GrPipeline.cpp
index 875c50e88c..872a7f544e 100644
--- a/src/gpu/GrPipeline.cpp
+++ b/src/gpu/GrPipeline.cpp
@@ -176,9 +176,9 @@ GrPipeline* GrPipeline::CreateAt(void* memory, const CreateArgs& args,
static void add_dependencies_for_processor(const GrFragmentProcessor* proc, GrRenderTarget* rt) {
GrFragmentProcessor::TextureAccessIter iter(proc);
- while (const GrTextureAccess* access = iter.next()) {
+ while (const GrProcessor::TextureSampler* sampler = iter.next()) {
SkASSERT(rt->getLastOpList());
- rt->getLastOpList()->addDependency(access->getTexture());
+ rt->getLastOpList()->addDependency(sampler->getTexture());
}
}
@@ -189,8 +189,8 @@ void GrPipeline::addDependenciesTo(GrRenderTarget* rt) const {
const GrXferProcessor& xfer = this->getXferProcessor();
- for (int i = 0; i < xfer.numTextures(); ++i) {
- GrTexture* texture = xfer.textureAccess(i).getTexture();
+ for (int i = 0; i < xfer.numTextureSamplers(); ++i) {
+ GrTexture* texture = xfer.textureSampler(i).getTexture();
SkASSERT(rt->getLastOpList());
rt->getLastOpList()->addDependency(texture);
}
diff --git a/src/gpu/GrProcessor.cpp b/src/gpu/GrProcessor.cpp
index 7d7ce9b461..f2b49988a7 100644
--- a/src/gpu/GrProcessor.cpp
+++ b/src/gpu/GrProcessor.cpp
@@ -10,6 +10,8 @@
#include "GrGeometryProcessor.h"
#include "GrInvariantOutput.h"
#include "GrMemoryPool.h"
+#include "GrTextureParams.h"
+#include "GrTexturePriv.h"
#include "GrXferProcessor.h"
#include "SkSpinlock.h"
@@ -113,8 +115,8 @@ int32_t GrProcessor::gCurrProcessorClassID = GrProcessor::kIllegalProcessorClass
GrProcessor::~GrProcessor() {}
-void GrProcessor::addTextureAccess(const GrTextureAccess* access) {
- fTextureAccesses.push_back(access);
+void GrProcessor::addTextureSampler(const TextureSampler* access) {
+ fTextureSamplers.push_back(access);
this->addGpuResource(access->getProgramTexture());
}
@@ -132,11 +134,12 @@ void GrProcessor::operator delete(void* target) {
}
bool GrProcessor::hasSameSamplers(const GrProcessor& that) const {
- if (this->numTextures() != that.numTextures() || this->numBuffers() != that.numBuffers()) {
+ if (this->numTextureSamplers() != that.numTextureSamplers() ||
+ this->numBuffers() != that.numBuffers()) {
return false;
}
- for (int i = 0; i < this->numTextures(); ++i) {
- if (this->textureAccess(i) != that.textureAccess(i)) {
+ for (int i = 0; i < this->numTextureSamplers(); ++i) {
+ if (this->textureSampler(i) != that.textureSampler(i)) {
return false;
}
}
@@ -150,6 +153,42 @@ bool GrProcessor::hasSameSamplers(const GrProcessor& that) const {
///////////////////////////////////////////////////////////////////////////////////////////////////
+GrProcessor::TextureSampler::TextureSampler() {}
+
+GrProcessor::TextureSampler::TextureSampler(GrTexture* texture, const GrTextureParams& params) {
+ this->reset(texture, params);
+}
+
+GrProcessor::TextureSampler::TextureSampler(GrTexture* texture,
+ GrTextureParams::FilterMode filterMode,
+ SkShader::TileMode tileXAndY,
+ GrShaderFlags visibility) {
+ this->reset(texture, filterMode, tileXAndY, visibility);
+}
+
+void GrProcessor::TextureSampler::reset(GrTexture* texture,
+ const GrTextureParams& params,
+ GrShaderFlags visibility) {
+ SkASSERT(texture);
+ fTexture.set(SkRef(texture), kRead_GrIOType);
+ fParams = params;
+ fParams.setFilterMode(SkTMin(params.filterMode(), texture->texturePriv().highestFilterMode()));
+ fVisibility = visibility;
+}
+
+void GrProcessor::TextureSampler::reset(GrTexture* texture,
+ GrTextureParams::FilterMode filterMode,
+ SkShader::TileMode tileXAndY,
+ GrShaderFlags visibility) {
+ SkASSERT(texture);
+ fTexture.set(SkRef(texture), kRead_GrIOType);
+ filterMode = SkTMin(filterMode, texture->texturePriv().highestFilterMode());
+ fParams.reset(tileXAndY, filterMode);
+ fVisibility = visibility;
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
// Initial static variable from GrXPFactory
int32_t GrXPFactory::gCurrXPFClassID =
GrXPFactory::kIllegalXPFClassID;
diff --git a/src/gpu/GrProgramDesc.cpp b/src/gpu/GrProgramDesc.cpp
index ea2a528319..d9afbac85b 100644
--- a/src/gpu/GrProgramDesc.cpp
+++ b/src/gpu/GrProgramDesc.cpp
@@ -34,8 +34,8 @@ static uint16_t sampler_key(GrSLType samplerType, GrPixelConfig config, GrShader
static void add_sampler_keys(GrProcessorKeyBuilder* b, const GrProcessor& proc,
const GrGLSLCaps& caps) {
- int numTextures = proc.numTextures();
- int numSamplers = numTextures + proc.numBuffers();
+ int numTextureSamplers = proc.numTextureSamplers();
+ int numSamplers = numTextureSamplers + proc.numBuffers();
// Need two bytes per key (swizzle, sampler type, and precision).
int word32Count = (numSamplers + 1) / 2;
if (0 == word32Count) {
@@ -43,14 +43,14 @@ static void add_sampler_keys(GrProcessorKeyBuilder* b, const GrProcessor& proc,
}
uint16_t* k16 = SkTCast<uint16_t*>(b->add32n(word32Count));
int i = 0;
- for (; i < numTextures; ++i) {
- const GrTextureAccess& access = proc.textureAccess(i);
- const GrTexture* tex = access.getTexture();
+ for (; i < numTextureSamplers; ++i) {
+ const GrProcessor::TextureSampler& textureSampler = proc.textureSampler(i);
+ const GrTexture* tex = textureSampler.getTexture();
k16[i] = sampler_key(tex->texturePriv().samplerType(), tex->config(),
- access.getVisibility(), caps);
+ textureSampler.getVisibility(), caps);
}
for (; i < numSamplers; ++i) {
- const GrBufferAccess& access = proc.bufferAccess(i - numTextures);
+ const GrBufferAccess& access = proc.bufferAccess(i - numTextureSamplers);
k16[i] = sampler_key(kBufferSampler_GrSLType, access.texelConfig(),
access.visibility(), caps);
}
diff --git a/src/gpu/GrTextureAccess.cpp b/src/gpu/GrTextureAccess.cpp
deleted file mode 100644
index bddbd5a2d7..0000000000
--- a/src/gpu/GrTextureAccess.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright 2012 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "GrTextureAccess.h"
-#include "GrColor.h"
-#include "GrTexture.h"
-#include "GrTexturePriv.h"
-
-GrTextureAccess::GrTextureAccess() {}
-
-GrTextureAccess::GrTextureAccess(GrTexture* texture, const GrTextureParams& params) {
- this->reset(texture, params);
-}
-
-GrTextureAccess::GrTextureAccess(GrTexture* texture,
- GrTextureParams::FilterMode filterMode,
- SkShader::TileMode tileXAndY,
- GrShaderFlags visibility) {
- this->reset(texture, filterMode, tileXAndY, visibility);
-}
-
-void GrTextureAccess::reset(GrTexture* texture,
- const GrTextureParams& params,
- GrShaderFlags visibility) {
- SkASSERT(texture);
- fTexture.set(SkRef(texture), kRead_GrIOType);
- fParams = params;
- fParams.setFilterMode(SkTMin(params.filterMode(), texture->texturePriv().highestFilterMode()));
- fVisibility = visibility;
-}
-
-void GrTextureAccess::reset(GrTexture* texture,
- GrTextureParams::FilterMode filterMode,
- SkShader::TileMode tileXAndY,
- GrShaderFlags visibility) {
- SkASSERT(texture);
- fTexture.set(SkRef(texture), kRead_GrIOType);
- filterMode = SkTMin(filterMode, texture->texturePriv().highestFilterMode());
- fParams.reset(tileXAndY, filterMode);
- fVisibility = visibility;
-}
diff --git a/src/gpu/GrTexturePriv.h b/src/gpu/GrTexturePriv.h
index e8721bc62c..8d6057ec3d 100644
--- a/src/gpu/GrTexturePriv.h
+++ b/src/gpu/GrTexturePriv.h
@@ -51,7 +51,7 @@ public:
GrSLType samplerType() const { return fTexture->fSamplerType; }
- /** The filter used is clamped to this value in GrTextureAccess. */
+ /** The filter used is clamped to this value in GrProcessor::TextureSampler. */
GrTextureParams::FilterMode highestFilterMode() const { return fTexture->fHighestFilterMode; }
void setMipColorMode(SkDestinationSurfaceColorMode colorMode) const {
diff --git a/src/gpu/GrXferProcessor.cpp b/src/gpu/GrXferProcessor.cpp
index 76e0ba0fc4..2769c1810e 100644
--- a/src/gpu/GrXferProcessor.cpp
+++ b/src/gpu/GrXferProcessor.cpp
@@ -26,7 +26,7 @@ GrXferProcessor::GrXferProcessor(const DstTexture* dstTexture,
SkASSERT(willReadDstColor);
fDstTexture.reset(dstTexture->texture());
fDstTextureOffset = dstTexture->offset();
- this->addTextureAccess(&fDstTexture);
+ this->addTextureSampler(&fDstTexture);
this->setWillReadFragmentPosition();
}
}
diff --git a/src/gpu/effects/GrBicubicEffect.cpp b/src/gpu/effects/GrBicubicEffect.cpp
index 737625ffed..17a492fa09 100644
--- a/src/gpu/effects/GrBicubicEffect.cpp
+++ b/src/gpu/effects/GrBicubicEffect.cpp
@@ -126,13 +126,13 @@ void GrGLBicubicEffect::emitCode(EmitArgs& args) {
void GrGLBicubicEffect::onSetData(const GrGLSLProgramDataManager& pdman,
const GrProcessor& processor) {
const GrBicubicEffect& bicubicEffect = processor.cast<GrBicubicEffect>();
- const GrTexture& texture = *processor.texture(0);
+ GrTexture* texture = processor.textureSampler(0).getTexture();
float imageIncrement[2];
- imageIncrement[0] = 1.0f / texture.width();
- imageIncrement[1] = 1.0f / texture.height();
+ imageIncrement[0] = 1.0f / texture->width();
+ imageIncrement[1] = 1.0f / texture->height();
pdman.set2fv(fImageIncrementUni, 1, imageIncrement);
pdman.setMatrix4f(fCoefficientsUni, bicubicEffect.coefficients());
- fDomain.setData(pdman, bicubicEffect.domain(), texture.origin());
+ fDomain.setData(pdman, bicubicEffect.domain(), texture->origin());
if (SkToBool(bicubicEffect.colorSpaceXform())) {
pdman.setSkMatrix44(fColorSpaceXformUni, bicubicEffect.colorSpaceXform()->srcToDst());
}
diff --git a/src/gpu/effects/GrBitmapTextGeoProc.cpp b/src/gpu/effects/GrBitmapTextGeoProc.cpp
index 197ac730b2..889a085d82 100644
--- a/src/gpu/effects/GrBitmapTextGeoProc.cpp
+++ b/src/gpu/effects/GrBitmapTextGeoProc.cpp
@@ -30,8 +30,8 @@ public:
varyingHandler->emitAttributes(cte);
// compute numbers to be hardcoded to convert texture coordinates from int to float
- SkASSERT(cte.numTextures() == 1);
- SkDEBUGCODE(GrTexture* atlas = cte.textureAccess(0).getTexture());
+ SkASSERT(cte.numTextureSamplers() == 1);
+ SkDEBUGCODE(GrTexture* atlas = cte.textureSampler(0).getTexture());
SkASSERT(atlas && SkIsPow2(atlas->width()) && SkIsPow2(atlas->height()));
GrGLSLVertToFrag v(kVec2f_GrSLType);
@@ -108,8 +108,8 @@ public:
b->add32(key);
// Currently we hardcode numbers to convert atlas coordinates to normalized floating point
- SkASSERT(gp.numTextures() == 1);
- GrTexture* atlas = gp.textureAccess(0).getTexture();
+ SkASSERT(gp.numTextureSamplers() == 1);
+ GrTexture* atlas = gp.textureSampler(0).getTexture();
SkASSERT(atlas);
b->add32(atlas->width());
b->add32(atlas->height());
@@ -130,7 +130,7 @@ GrBitmapTextGeoProc::GrBitmapTextGeoProc(GrColor color, GrTexture* texture,
: fColor(color)
, fLocalMatrix(localMatrix)
, fUsesLocalCoords(usesLocalCoords)
- , fTextureAccess(texture, params)
+ , fTextureSampler(texture, params)
, fInColor(nullptr)
, fMaskFormat(format) {
this->initClassID<GrBitmapTextGeoProc>();
@@ -143,7 +143,7 @@ GrBitmapTextGeoProc::GrBitmapTextGeoProc(GrColor color, GrTexture* texture,
}
fInTextureCoords = &this->addVertexAttrib("inTextureCoords", kVec2us_GrVertexAttribType,
kHigh_GrSLPrecision);
- this->addTextureAccess(&fTextureAccess);
+ this->addTextureSampler(&fTextureSampler);
}
void GrBitmapTextGeoProc::getGLSLProcessorKey(const GrGLSLCaps& caps,
diff --git a/src/gpu/effects/GrBitmapTextGeoProc.h b/src/gpu/effects/GrBitmapTextGeoProc.h
index 226ae770e7..7e2df0a6e7 100644
--- a/src/gpu/effects/GrBitmapTextGeoProc.h
+++ b/src/gpu/effects/GrBitmapTextGeoProc.h
@@ -53,7 +53,7 @@ private:
GrColor fColor;
SkMatrix fLocalMatrix;
bool fUsesLocalCoords;
- GrTextureAccess fTextureAccess;
+ TextureSampler fTextureSampler;
const Attribute* fInPosition;
const Attribute* fInColor;
const Attribute* fInTextureCoords;
diff --git a/src/gpu/effects/GrConvolutionEffect.cpp b/src/gpu/effects/GrConvolutionEffect.cpp
index 59f7ab19e3..d8a79d0f17 100644
--- a/src/gpu/effects/GrConvolutionEffect.cpp
+++ b/src/gpu/effects/GrConvolutionEffect.cpp
@@ -98,7 +98,7 @@ void GrGLConvolutionEffect::emitCode(EmitArgs& args) {
void GrGLConvolutionEffect::onSetData(const GrGLSLProgramDataManager& pdman,
const GrProcessor& processor) {
const GrConvolutionEffect& conv = processor.cast<GrConvolutionEffect>();
- GrTexture& texture = *conv.texture(0);
+ GrTexture& texture = *conv.textureSampler(0).getTexture();
float imageIncrement[2] = { 0 };
float ySign = texture.origin() != kTopLeft_GrSurfaceOrigin ? 1.0f : -1.0f;
diff --git a/src/gpu/effects/GrCustomXfermode.cpp b/src/gpu/effects/GrCustomXfermode.cpp
index 8a54d4457a..8d5c5008d2 100644
--- a/src/gpu/effects/GrCustomXfermode.cpp
+++ b/src/gpu/effects/GrCustomXfermode.cpp
@@ -14,7 +14,6 @@
#include "GrPipeline.h"
#include "GrProcessor.h"
#include "GrTexture.h"
-#include "GrTextureAccess.h"
#include "SkXfermode.h"
#include "glsl/GrGLSLBlend.h"
#include "glsl/GrGLSLCaps.h"
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.cpp b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
index 7f9fd85e6b..a99e2af018 100644
--- a/src/gpu/effects/GrDistanceFieldGeoProc.cpp
+++ b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
@@ -85,8 +85,8 @@ public:
vertBuilder->codeAppendf("%s = %s;", uv.vsOut(), dfTexEffect.inTextureCoords()->fName);
// compute numbers to be hardcoded to convert texture coordinates from float to int
- SkASSERT(dfTexEffect.numTextures() == 1);
- GrTexture* atlas = dfTexEffect.textureAccess(0).getTexture();
+ SkASSERT(dfTexEffect.numTextureSamplers() == 1);
+ GrTexture* atlas = dfTexEffect.textureSampler(0).getTexture();
SkASSERT(atlas && SkIsPow2(atlas->width()) && SkIsPow2(atlas->height()));
GrGLSLVertToFrag st(kVec2f_GrSLType);
@@ -207,8 +207,8 @@ public:
b->add32(key);
// Currently we hardcode numbers to convert atlas coordinates to normalized floating point
- SkASSERT(gp.numTextures() == 1);
- GrTexture* atlas = gp.textureAccess(0).getTexture();
+ SkASSERT(gp.numTextureSamplers() == 1);
+ GrTexture* atlas = gp.textureSampler(0).getTexture();
SkASSERT(atlas);
b->add32(atlas->width());
b->add32(atlas->height());
@@ -238,7 +238,7 @@ GrDistanceFieldA8TextGeoProc::GrDistanceFieldA8TextGeoProc(GrColor color,
bool usesLocalCoords)
: fColor(color)
, fViewMatrix(viewMatrix)
- , fTextureAccess(texture, params)
+ , fTextureSampler(texture, params)
#ifdef SK_GAMMA_APPLY_TO_A8
, fDistanceAdjust(distanceAdjust)
#endif
@@ -252,7 +252,7 @@ GrDistanceFieldA8TextGeoProc::GrDistanceFieldA8TextGeoProc(GrColor color,
fInColor = &this->addVertexAttrib("inColor", kVec4ub_GrVertexAttribType);
fInTextureCoords = &this->addVertexAttrib("inTextureCoords", kVec2us_GrVertexAttribType,
kHigh_GrSLPrecision);
- this->addTextureAccess(&fTextureAccess);
+ this->addTextureSampler(&fTextureSampler);
}
void GrDistanceFieldA8TextGeoProc::getGLSLProcessorKey(const GrGLSLCaps& caps,
@@ -433,7 +433,7 @@ public:
FPCoordTransformIter&& transformIter) override {
SkASSERT(fTextureSizeUni.isValid());
- GrTexture* texture = proc.texture(0);
+ GrTexture* texture = proc.textureSampler(0).getTexture();
if (texture->width() != fTextureSize.width() ||
texture->height() != fTextureSize.height()) {
fTextureSize = SkISize::Make(texture->width(), texture->height());
@@ -484,7 +484,7 @@ GrDistanceFieldPathGeoProc::GrDistanceFieldPathGeoProc(
bool usesLocalCoords)
: fColor(color)
, fViewMatrix(viewMatrix)
- , fTextureAccess(texture, params)
+ , fTextureSampler(texture, params)
, fFlags(flags & kNonLCD_DistanceFieldEffectMask)
, fInColor(nullptr)
, fUsesLocalCoords(usesLocalCoords) {
@@ -494,7 +494,7 @@ GrDistanceFieldPathGeoProc::GrDistanceFieldPathGeoProc(
kHigh_GrSLPrecision);
fInColor = &this->addVertexAttrib("inColor", kVec4ub_GrVertexAttribType);
fInTextureCoords = &this->addVertexAttrib("inTextureCoords", kVec2f_GrVertexAttribType);
- this->addTextureAccess(&fTextureAccess);
+ this->addTextureSampler(&fTextureSampler);
}
void GrDistanceFieldPathGeoProc::getGLSLProcessorKey(const GrGLSLCaps& caps,
@@ -594,8 +594,8 @@ public:
vertBuilder->codeAppendf("%s = %s;", uv.vsOut(), dfTexEffect.inTextureCoords()->fName);
// compute numbers to be hardcoded to convert texture coordinates from float to int
- SkASSERT(dfTexEffect.numTextures() == 1);
- GrTexture* atlas = dfTexEffect.textureAccess(0).getTexture();
+ SkASSERT(dfTexEffect.numTextureSamplers() == 1);
+ GrTexture* atlas = dfTexEffect.textureSampler(0).getTexture();
SkASSERT(atlas && SkIsPow2(atlas->width()) && SkIsPow2(atlas->height()));
GrGLSLVertToFrag st(kVec2f_GrSLType);
@@ -760,8 +760,8 @@ public:
b->add32(key);
// Currently we hardcode numbers to convert atlas coordinates to normalized floating point
- SkASSERT(gp.numTextures() == 1);
- GrTexture* atlas = gp.textureAccess(0).getTexture();
+ SkASSERT(gp.numTextureSamplers() == 1);
+ GrTexture* atlas = gp.textureSampler(0).getTexture();
SkASSERT(atlas);
b->add32(atlas->width());
b->add32(atlas->height());
@@ -786,7 +786,7 @@ GrDistanceFieldLCDTextGeoProc::GrDistanceFieldLCDTextGeoProc(
uint32_t flags, bool usesLocalCoords)
: fColor(color)
, fViewMatrix(viewMatrix)
- , fTextureAccess(texture, params)
+ , fTextureSampler(texture, params)
, fDistanceAdjust(distanceAdjust)
, fFlags(flags & kLCD_DistanceFieldEffectMask)
, fUsesLocalCoords(usesLocalCoords) {
@@ -797,7 +797,7 @@ GrDistanceFieldLCDTextGeoProc::GrDistanceFieldLCDTextGeoProc(
fInColor = &this->addVertexAttrib("inColor", kVec4ub_GrVertexAttribType);
fInTextureCoords = &this->addVertexAttrib("inTextureCoords", kVec2us_GrVertexAttribType,
kHigh_GrSLPrecision);
- this->addTextureAccess(&fTextureAccess);
+ this->addTextureSampler(&fTextureSampler);
}
void GrDistanceFieldLCDTextGeoProc::getGLSLProcessorKey(const GrGLSLCaps& caps,
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.h b/src/gpu/effects/GrDistanceFieldGeoProc.h
index 339c063b30..68e0a24911 100644
--- a/src/gpu/effects/GrDistanceFieldGeoProc.h
+++ b/src/gpu/effects/GrDistanceFieldGeoProc.h
@@ -96,7 +96,7 @@ private:
GrColor fColor;
SkMatrix fViewMatrix;
- GrTextureAccess fTextureAccess;
+ TextureSampler fTextureSampler;
#ifdef SK_GAMMA_APPLY_TO_A8
float fDistanceAdjust;
#endif
@@ -151,7 +151,7 @@ private:
GrColor fColor;
SkMatrix fViewMatrix;
- GrTextureAccess fTextureAccess;
+ TextureSampler fTextureSampler;
uint32_t fFlags;
const Attribute* fInPosition;
const Attribute* fInColor;
@@ -221,7 +221,7 @@ private:
GrColor fColor;
SkMatrix fViewMatrix;
- GrTextureAccess fTextureAccess;
+ TextureSampler fTextureSampler;
DistanceAdjust fDistanceAdjust;
uint32_t fFlags;
const Attribute* fInPosition;
diff --git a/src/gpu/effects/GrMatrixConvolutionEffect.cpp b/src/gpu/effects/GrMatrixConvolutionEffect.cpp
index 56174973e1..8c67882a1a 100644
--- a/src/gpu/effects/GrMatrixConvolutionEffect.cpp
+++ b/src/gpu/effects/GrMatrixConvolutionEffect.cpp
@@ -129,12 +129,12 @@ void GrGLMatrixConvolutionEffect::GenKey(const GrProcessor& processor,
void GrGLMatrixConvolutionEffect::onSetData(const GrGLSLProgramDataManager& pdman,
const GrProcessor& processor) {
const GrMatrixConvolutionEffect& conv = processor.cast<GrMatrixConvolutionEffect>();
- GrTexture& texture = *conv.texture(0);
+ GrTexture* texture = conv.textureSampler(0).getTexture();
float imageIncrement[2];
- float ySign = texture.origin() == kTopLeft_GrSurfaceOrigin ? 1.0f : -1.0f;
- imageIncrement[0] = 1.0f / texture.width();
- imageIncrement[1] = ySign / texture.height();
+ float ySign = texture->origin() == kTopLeft_GrSurfaceOrigin ? 1.0f : -1.0f;
+ imageIncrement[0] = 1.0f / texture->width();
+ imageIncrement[1] = ySign / texture->height();
pdman.set2fv(fImageIncrementUni, 1, imageIncrement);
pdman.set2fv(fKernelOffsetUni, 1, conv.kernelOffset());
int kernelCount = conv.kernelSize().width() * conv.kernelSize().height();
@@ -143,7 +143,7 @@ void GrGLMatrixConvolutionEffect::onSetData(const GrGLSLProgramDataManager& pdma
pdman.set4fv(fKernelUni, arrayCount, conv.kernel());
pdman.set1f(fGainUni, conv.gain());
pdman.set1f(fBiasUni, conv.bias());
- fDomain.setData(pdman, conv.domain(), texture.origin());
+ fDomain.setData(pdman, conv.domain(), texture->origin());
}
GrMatrixConvolutionEffect::GrMatrixConvolutionEffect(GrTexture* texture,
diff --git a/src/gpu/effects/GrSingleTextureEffect.cpp b/src/gpu/effects/GrSingleTextureEffect.cpp
index 2683789431..929275e3ad 100644
--- a/src/gpu/effects/GrSingleTextureEffect.cpp
+++ b/src/gpu/effects/GrSingleTextureEffect.cpp
@@ -11,10 +11,10 @@ GrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
sk_sp<GrColorSpaceXform> colorSpaceXform,
const SkMatrix& m)
: fCoordTransform(m, texture, GrTextureParams::kNone_FilterMode)
- , fTextureAccess(texture)
+ , fTextureSampler(texture)
, fColorSpaceXform(std::move(colorSpaceXform)) {
this->addCoordTransform(&fCoordTransform);
- this->addTextureAccess(&fTextureAccess);
+ this->addTextureSampler(&fTextureSampler);
}
GrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
@@ -22,10 +22,10 @@ GrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
const SkMatrix& m,
GrTextureParams::FilterMode filterMode)
: fCoordTransform(m, texture, filterMode)
- , fTextureAccess(texture, filterMode)
+ , fTextureSampler(texture, filterMode)
, fColorSpaceXform(std::move(colorSpaceXform)) {
this->addCoordTransform(&fCoordTransform);
- this->addTextureAccess(&fTextureAccess);
+ this->addTextureSampler(&fTextureSampler);
}
GrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
@@ -33,10 +33,10 @@ GrSingleTextureEffect::GrSingleTextureEffect(GrTexture* texture,
const SkMatrix& m,
const GrTextureParams& params)
: fCoordTransform(m, texture, params.filterMode())
- , fTextureAccess(texture, params)
+ , fTextureSampler(texture, params)
, fColorSpaceXform(std::move(colorSpaceXform)) {
this->addCoordTransform(&fCoordTransform);
- this->addTextureAccess(&fTextureAccess);
+ this->addTextureSampler(&fTextureSampler);
}
GrSingleTextureEffect::~GrSingleTextureEffect() {
diff --git a/src/gpu/effects/GrSingleTextureEffect.h b/src/gpu/effects/GrSingleTextureEffect.h
index 12b3a8f791..1d34944c90 100644
--- a/src/gpu/effects/GrSingleTextureEffect.h
+++ b/src/gpu/effects/GrSingleTextureEffect.h
@@ -26,7 +26,7 @@ public:
SkString dumpInfo() const override {
SkString str;
- str.appendf("Texture: %d", fTextureAccess.getTexture()->uniqueID().asUInt());
+ str.appendf("Texture: %d", fTextureSampler.getTexture()->uniqueID().asUInt());
return str;
}
@@ -49,9 +49,10 @@ protected:
* texture.
*/
void updateInvariantOutputForModulation(GrInvariantOutput* inout) const {
- if (GrPixelConfigIsAlphaOnly(this->texture(0)->config())) {
+ GrPixelConfig config = this->textureSampler(0).getTexture()->config();
+ if (GrPixelConfigIsAlphaOnly(config)) {
inout->mulByUnknownSingleComponent();
- } else if (GrPixelConfigIsOpaque(this->texture(0)->config())) {
+ } else if (GrPixelConfigIsOpaque(config)) {
inout->mulByUnknownOpaqueFourComponents();
} else {
inout->mulByUnknownFourComponents();
@@ -60,7 +61,7 @@ protected:
private:
GrCoordTransform fCoordTransform;
- GrTextureAccess fTextureAccess;
+ TextureSampler fTextureSampler;
sk_sp<GrColorSpaceXform> fColorSpaceXform;
typedef GrFragmentProcessor INHERITED;
diff --git a/src/gpu/effects/GrTextureDomain.cpp b/src/gpu/effects/GrTextureDomain.cpp
index 55d69bf5cc..4418730961 100644
--- a/src/gpu/effects/GrTextureDomain.cpp
+++ b/src/gpu/effects/GrTextureDomain.cpp
@@ -229,7 +229,7 @@ GrGLSLFragmentProcessor* GrTextureDomainEffect::onCreateGLSLInstance() const {
void onSetData(const GrGLSLProgramDataManager& pdman, const GrProcessor& fp) override {
const GrTextureDomainEffect& tde = fp.cast<GrTextureDomainEffect>();
const GrTextureDomain& domain = tde.fTextureDomain;
- fGLDomain.setData(pdman, domain, tde.texture(0)->origin());
+ fGLDomain.setData(pdman, domain, tde.textureSampler(0).getTexture()->origin());
}
private:
@@ -242,14 +242,13 @@ GrGLSLFragmentProcessor* GrTextureDomainEffect::onCreateGLSLInstance() const {
bool GrTextureDomainEffect::onIsEqual(const GrFragmentProcessor& sBase) const {
const GrTextureDomainEffect& s = sBase.cast<GrTextureDomainEffect>();
- return this->fTextureDomain == s.fTextureDomain && s.texture(0) == this->texture(0) &&
- s.textureAccess(0).getParams().filterMode() ==
- this->textureAccess(0).getParams().filterMode();
+ return this->fTextureDomain == s.fTextureDomain &&
+ s.textureSampler(0) == this->textureSampler(0);
}
void GrTextureDomainEffect::onComputeInvariantOutput(GrInvariantOutput* inout) const {
if (GrTextureDomain::kDecal_Mode == fTextureDomain.mode()) {
- if (GrPixelConfigIsAlphaOnly(this->texture(0)->config())) {
+ if (GrPixelConfigIsAlphaOnly(this->textureSampler(0).getTexture()->config())) {
inout->mulByUnknownSingleComponent();
} else {
inout->mulByUnknownFourComponents();
@@ -295,10 +294,10 @@ sk_sp<GrFragmentProcessor> GrDeviceSpaceTextureDecalFragmentProcessor::Make(GrTe
GrDeviceSpaceTextureDecalFragmentProcessor::GrDeviceSpaceTextureDecalFragmentProcessor(
GrTexture* texture, const SkIRect& subset, const SkIPoint& deviceSpaceOffset)
- : fTextureAccess(texture, GrTextureParams::ClampNoFilter())
+ : fTextureSampler(texture, GrTextureParams::ClampNoFilter())
, fTextureDomain(GrTextureDomain::MakeTexelDomain(texture, subset),
GrTextureDomain::kDecal_Mode) {
- this->addTextureAccess(&fTextureAccess);
+ this->addTextureSampler(&fTextureSampler);
fDeviceSpaceOffset.fX = deviceSpaceOffset.fX - subset.fLeft;
fDeviceSpaceOffset.fY = deviceSpaceOffset.fY - subset.fTop;
this->initClassID<GrDeviceSpaceTextureDecalFragmentProcessor>();
@@ -334,14 +333,15 @@ GrGLSLFragmentProcessor* GrDeviceSpaceTextureDecalFragmentProcessor::onCreateGLS
void onSetData(const GrGLSLProgramDataManager& pdman, const GrProcessor& fp) override {
const GrDeviceSpaceTextureDecalFragmentProcessor& dstdfp =
fp.cast<GrDeviceSpaceTextureDecalFragmentProcessor>();
- fGLDomain.setData(pdman, dstdfp.fTextureDomain, dstdfp.texture(0)->origin());
- float iw = 1.f / dstdfp.texture(0)->width();
- float ih = 1.f / dstdfp.texture(0)->height();
+ GrTexture* texture = dstdfp.textureSampler(0).getTexture();
+ fGLDomain.setData(pdman, dstdfp.fTextureDomain, texture->origin());
+ float iw = 1.f / texture->width();
+ float ih = 1.f / texture->height();
float scaleAndTransData[4] = {
iw, ih,
-dstdfp.fDeviceSpaceOffset.fX * iw, -dstdfp.fDeviceSpaceOffset.fY * ih
};
- if (dstdfp.texture(0)->origin() == kBottomLeft_GrSurfaceOrigin) {
+ if (texture->origin() == kBottomLeft_GrSurfaceOrigin) {
scaleAndTransData[1] = -scaleAndTransData[1];
scaleAndTransData[3] = 1 - scaleAndTransData[3];
}
@@ -359,14 +359,14 @@ GrGLSLFragmentProcessor* GrDeviceSpaceTextureDecalFragmentProcessor::onCreateGLS
bool GrDeviceSpaceTextureDecalFragmentProcessor::onIsEqual(const GrFragmentProcessor& fp) const {
const GrDeviceSpaceTextureDecalFragmentProcessor& dstdfp =
fp.cast<GrDeviceSpaceTextureDecalFragmentProcessor>();
- return dstdfp.fTextureAccess.getTexture() == fTextureAccess.getTexture() &&
+ return dstdfp.fTextureSampler.getTexture() == fTextureSampler.getTexture() &&
dstdfp.fDeviceSpaceOffset == fDeviceSpaceOffset &&
dstdfp.fTextureDomain == fTextureDomain;
}
void GrDeviceSpaceTextureDecalFragmentProcessor::onComputeInvariantOutput(
GrInvariantOutput* inout) const {
- if (GrPixelConfigIsAlphaOnly(this->texture(0)->config())) {
+ if (GrPixelConfigIsAlphaOnly(this->textureSampler(0).getTexture()->config())) {
inout->mulByUnknownSingleComponent();
} else {
inout->mulByUnknownFourComponents();
diff --git a/src/gpu/effects/GrTextureDomain.h b/src/gpu/effects/GrTextureDomain.h
index 82ff73c066..d557d178f9 100644
--- a/src/gpu/effects/GrTextureDomain.h
+++ b/src/gpu/effects/GrTextureDomain.h
@@ -225,7 +225,7 @@ public:
}
private:
- GrTextureAccess fTextureAccess;
+ TextureSampler fTextureSampler;
GrTextureDomain fTextureDomain;
SkIPoint fDeviceSpaceOffset;
diff --git a/src/gpu/effects/GrYUVEffect.cpp b/src/gpu/effects/GrYUVEffect.cpp
index cbe25e82f8..2fd35138fe 100644
--- a/src/gpu/effects/GrYUVEffect.cpp
+++ b/src/gpu/effects/GrYUVEffect.cpp
@@ -155,21 +155,21 @@ private:
const SkMatrix yuvMatrix[3], GrTextureParams::FilterMode uvFilterMode,
SkYUVColorSpace colorSpace, bool nv12)
: fYTransform(yuvMatrix[0], yTexture, GrTextureParams::kNone_FilterMode)
- , fYAccess(yTexture)
+ , fYSampler(yTexture)
, fUTransform(yuvMatrix[1], uTexture, uvFilterMode)
- , fUAccess(uTexture, uvFilterMode)
- , fVAccess(vTexture, uvFilterMode)
+ , fUSampler(uTexture, uvFilterMode)
+ , fVSampler(vTexture, uvFilterMode)
, fColorSpace(colorSpace)
, fNV12(nv12) {
this->initClassID<YUVtoRGBEffect>();
this->addCoordTransform(&fYTransform);
- this->addTextureAccess(&fYAccess);
+ this->addTextureSampler(&fYSampler);
this->addCoordTransform(&fUTransform);
- this->addTextureAccess(&fUAccess);
+ this->addTextureSampler(&fUSampler);
if (!fNV12) {
fVTransform = GrCoordTransform(yuvMatrix[2], vTexture, uvFilterMode);
this->addCoordTransform(&fVTransform);
- this->addTextureAccess(&fVAccess);
+ this->addTextureSampler(&fVSampler);
}
}
@@ -193,11 +193,11 @@ private:
}
GrCoordTransform fYTransform;
- GrTextureAccess fYAccess;
+ TextureSampler fYSampler;
GrCoordTransform fUTransform;
- GrTextureAccess fUAccess;
+ TextureSampler fUSampler;
GrCoordTransform fVTransform;
- GrTextureAccess fVAccess;
+ TextureSampler fVSampler;
SkYUVColorSpace fColorSpace;
bool fNV12;
@@ -353,7 +353,7 @@ private:
}
GrCoordTransform fTransform;
- GrTextureAccess fAccess;
+ TextureSampler fTextureSampler;
SkYUVColorSpace fColorSpace;
OutputChannels fOutputChannels;
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp
index 86b237266b..006077bb29 100644
--- a/src/gpu/gl/GrGLProgram.cpp
+++ b/src/gpu/gl/GrGLProgram.cpp
@@ -152,10 +152,10 @@ void GrGLProgram::setRenderTargetState(const GrPrimitiveProcessor& primProc,
void GrGLProgram::bindTextures(const GrProcessor& processor,
bool allowSRGBInputs,
int* nextSamplerIdx) {
- for (int i = 0; i < processor.numTextures(); ++i) {
- const GrTextureAccess& access = processor.textureAccess(i);
- fGpu->bindTexture((*nextSamplerIdx)++, access.getParams(),
- allowSRGBInputs, static_cast<GrGLTexture*>(access.getTexture()));
+ for (int i = 0; i < processor.numTextureSamplers(); ++i) {
+ const GrProcessor::TextureSampler& sampler = processor.textureSampler(i);
+ fGpu->bindTexture((*nextSamplerIdx)++, sampler.getParams(),
+ allowSRGBInputs, static_cast<GrGLTexture*>(sampler.getTexture()));
}
for (int i = 0; i < processor.numBuffers(); ++i) {
const GrBufferAccess& access = processor.bufferAccess(i);
@@ -166,9 +166,9 @@ void GrGLProgram::bindTextures(const GrProcessor& processor,
void GrGLProgram::generateMipmaps(const GrProcessor& processor,
bool allowSRGBInputs) {
- for (int i = 0; i < processor.numTextures(); ++i) {
- const GrTextureAccess& access = processor.textureAccess(i);
- fGpu->generateMipmaps(access.getParams(), allowSRGBInputs,
- static_cast<GrGLTexture*>(access.getTexture()));
+ for (int i = 0; i < processor.numTextureSamplers(); ++i) {
+ const GrProcessor::TextureSampler& sampler = processor.textureSampler(i);
+ fGpu->generateMipmaps(sampler.getParams(), allowSRGBInputs,
+ static_cast<GrGLTexture*>(sampler.getTexture()));
}
}
diff --git a/src/gpu/glsl/GrGLSLFragmentProcessor.h b/src/gpu/glsl/GrGLSLFragmentProcessor.h
index d2f00f8b33..7add1ebdbe 100644
--- a/src/gpu/glsl/GrGLSLFragmentProcessor.h
+++ b/src/gpu/glsl/GrGLSLFragmentProcessor.h
@@ -72,7 +72,7 @@ public:
using TransformedCoordVars = BuilderInputProvider<GrShaderVar, GrFragmentProcessor,
&GrFragmentProcessor::numCoordTransforms>;
using TextureSamplers = BuilderInputProvider<SamplerHandle, GrProcessor,
- &GrProcessor::numTextures>;
+ &GrProcessor::numTextureSamplers>;
using BufferSamplers = BuilderInputProvider<SamplerHandle, GrProcessor,
&GrProcessor::numBuffers>;
@@ -94,7 +94,7 @@ public:
info about its output.
@param transformedCoords Fragment shader variables containing the coords computed using
each of the GrFragmentProcessor's GrCoordTransforms.
- @param texSamplers Contains one entry for each GrTextureAccess of the GrProcessor.
+ @param texSamplers Contains one entry for each TextureSampler of the GrProcessor.
These can be passed to the builder to emit texture reads in the
generated code.
@param bufferSamplers Contains one entry for each GrBufferAccess of the GrProcessor.
diff --git a/src/gpu/glsl/GrGLSLProgramBuilder.cpp b/src/gpu/glsl/GrGLSLProgramBuilder.cpp
index 0862bc4ffa..fc50fa0c4e 100644
--- a/src/gpu/glsl/GrGLSLProgramBuilder.cpp
+++ b/src/gpu/glsl/GrGLSLProgramBuilder.cpp
@@ -96,7 +96,7 @@ void GrGLSLProgramBuilder::emitAndInstallPrimProc(const GrPrimitiveProcessor& pr
SkASSERT(!fGeometryProcessor);
fGeometryProcessor = proc.createGLSLInstance(*this->glslCaps());
- SkSTArray<4, SamplerHandle> texSamplers(proc.numTextures());
+ SkSTArray<4, SamplerHandle> texSamplers(proc.numTextureSamplers());
SkSTArray<2, SamplerHandle> bufferSamplers(proc.numBuffers());
this->emitSamplers(proc, &texSamplers, &bufferSamplers);
@@ -159,7 +159,7 @@ void GrGLSLProgramBuilder::emitAndInstallFragProc(const GrFragmentProcessor& fp,
GrGLSLFragmentProcessor* fragProc = fp.createGLSLInstance();
- SkSTArray<4, SamplerHandle> textureSamplerArray(fp.numTextures());
+ SkSTArray<4, SamplerHandle> textureSamplerArray(fp.numTextureSamplers());
SkSTArray<2, SamplerHandle> bufferSamplerArray(fp.numBuffers());
GrFragmentProcessor::Iter iter(&fp);
while (const GrFragmentProcessor* subFP = iter.next()) {
@@ -215,7 +215,7 @@ void GrGLSLProgramBuilder::emitAndInstallXferProc(const GrXferProcessor& xp,
openBrace.printf("{ // Xfer Processor: %s\n", xp.name());
fFS.codeAppend(openBrace.c_str());
- SkSTArray<4, SamplerHandle> texSamplers(xp.numTextures());
+ SkSTArray<4, SamplerHandle> texSamplers(xp.numTextureSamplers());
SkSTArray<2, SamplerHandle> bufferSamplers(xp.numBuffers());
this->emitSamplers(xp, &texSamplers, &bufferSamplers);
@@ -242,21 +242,21 @@ void GrGLSLProgramBuilder::emitSamplers(const GrProcessor& processor,
SkTArray<SamplerHandle>* outTexSamplers,
SkTArray<SamplerHandle>* outBufferSamplers) {
SkString name;
- int numTextures = processor.numTextures();
- for (int t = 0; t < numTextures; ++t) {
- const GrTextureAccess& access = processor.textureAccess(t);
- GrSLType samplerType = access.getTexture()->texturePriv().samplerType();
+ int numTextureSamplers = processor.numTextureSamplers();
+ for (int t = 0; t < numTextureSamplers; ++t) {
+ const GrProcessor::TextureSampler& sampler = processor.textureSampler(t);
+ GrSLType samplerType = sampler.getTexture()->texturePriv().samplerType();
if (kTextureExternalSampler_GrSLType == samplerType) {
const char* externalFeatureString = this->glslCaps()->externalTextureExtensionString();
// We shouldn't ever create a GrGLTexture that requires external sampler type
SkASSERT(externalFeatureString);
- this->addFeature(access.getVisibility(),
+ this->addFeature(sampler.getVisibility(),
1 << GrGLSLShaderBuilder::kExternalTexture_GLSLPrivateFeature,
externalFeatureString);
}
name.printf("TextureSampler_%d", outTexSamplers->count());
- this->emitSampler(samplerType, access.getTexture()->config(),
- name.c_str(), access.getVisibility(), outTexSamplers);
+ this->emitSampler(samplerType, sampler.getTexture()->config(),
+ name.c_str(), sampler.getVisibility(), outTexSamplers);
}
if (int numBuffers = processor.numBuffers()) {
diff --git a/src/gpu/glsl/GrGLSLShaderBuilder.h b/src/gpu/glsl/GrGLSLShaderBuilder.h
index f59edb4553..378f523de9 100644
--- a/src/gpu/glsl/GrGLSLShaderBuilder.h
+++ b/src/gpu/glsl/GrGLSLShaderBuilder.h
@@ -29,7 +29,8 @@ public:
/** Appends a 2D texture sample with projection if necessary. coordType must either be Vec2f or
Vec3f. The latter is interpreted as projective texture coords. The vec length and swizzle
- order of the result depends on the GrTextureAccess associated with the GrGLSLSampler.
+ order of the result depends on the GrProcessor::TextureSampelr associated with the
+ GrGLSLSampler.
*/
void appendTextureLookup(SkString* out,
SamplerHandle,
diff --git a/src/gpu/vk/GrVkGpuCommandBuffer.cpp b/src/gpu/vk/GrVkGpuCommandBuffer.cpp
index 4cbefa659d..3f0bd39d48 100644
--- a/src/gpu/vk/GrVkGpuCommandBuffer.cpp
+++ b/src/gpu/vk/GrVkGpuCommandBuffer.cpp
@@ -12,7 +12,6 @@
#include "GrMesh.h"
#include "GrPipeline.h"
#include "GrRenderTargetPriv.h"
-#include "GrTextureAccess.h"
#include "GrTexturePriv.h"
#include "GrVkCommandBuffer.h"
#include "GrVkGpu.h"
@@ -427,9 +426,9 @@ sk_sp<GrVkPipelineState> GrVkGpuCommandBuffer::prepareDrawState(
}
static void prepare_sampled_images(const GrProcessor& processor, GrVkGpu* gpu) {
- for (int i = 0; i < processor.numTextures(); ++i) {
- const GrTextureAccess& texAccess = processor.textureAccess(i);
- GrVkTexture* vkTexture = static_cast<GrVkTexture*>(processor.texture(i));
+ for (int i = 0; i < processor.numTextureSamplers(); ++i) {
+ const GrProcessor::TextureSampler& sampler = processor.textureSampler(i);
+ GrVkTexture* vkTexture = static_cast<GrVkTexture*>(sampler.getTexture());
SkASSERT(vkTexture);
// We may need to resolve the texture first if it is also a render target
@@ -438,7 +437,7 @@ static void prepare_sampled_images(const GrProcessor& processor, GrVkGpu* gpu) {
gpu->onResolveRenderTarget(texRT);
}
- const GrTextureParams& params = texAccess.getParams();
+ const GrTextureParams& params = sampler.getParams();
// Check if we need to regenerate any mip maps
if (GrTextureParams::kMipMap_FilterMode == params.filterMode()) {
if (vkTexture->texturePriv().mipMapsAreDirty()) {
diff --git a/src/gpu/vk/GrVkPipelineState.cpp b/src/gpu/vk/GrVkPipelineState.cpp
index ba4f95f3e3..2ca1aafdd4 100644
--- a/src/gpu/vk/GrVkPipelineState.cpp
+++ b/src/gpu/vk/GrVkPipelineState.cpp
@@ -173,13 +173,14 @@ void GrVkPipelineState::abandonGPUResources() {
}
static void append_texture_bindings(const GrProcessor& processor,
- SkTArray<const GrTextureAccess*>* textureBindings) {
- if (int numTextures = processor.numTextures()) {
- const GrTextureAccess** bindings = textureBindings->push_back_n(numTextures);
+ SkTArray<const GrProcessor::TextureSampler*>* textureBindings) {
+ if (int numTextureSamplers = processor.numTextureSamplers()) {
+ const GrProcessor::TextureSampler** bindings =
+ textureBindings->push_back_n(numTextureSamplers);
int i = 0;
do {
- bindings[i] = &processor.textureAccess(i);
- } while (++i < numTextures);
+ bindings[i] = &processor.textureSampler(i);
+ } while (++i < numTextureSamplers);
}
}
@@ -192,7 +193,7 @@ void GrVkPipelineState::setData(GrVkGpu* gpu,
this->setRenderTargetState(pipeline);
- SkSTArray<8, const GrTextureAccess*> textureBindings;
+ SkSTArray<8, const GrProcessor::TextureSampler*> textureBindings;
fGeometryProcessor->setData(fDataManager, primProc,
GrFragmentProcessor::CoordTransformIter(pipeline));
@@ -302,9 +303,10 @@ void GrVkPipelineState::writeUniformBuffers(const GrVkGpu* gpu) {
}
}
-void GrVkPipelineState::writeSamplers(GrVkGpu* gpu,
- const SkTArray<const GrTextureAccess*>& textureBindings,
- bool allowSRGBInputs) {
+void GrVkPipelineState::writeSamplers(
+ GrVkGpu* gpu,
+ const SkTArray<const GrProcessor::TextureSampler*>& textureBindings,
+ bool allowSRGBInputs) {
SkASSERT(fNumSamplers == textureBindings.count());
for (int i = 0; i < textureBindings.count(); ++i) {
diff --git a/src/gpu/vk/GrVkPipelineState.h b/src/gpu/vk/GrVkPipelineState.h
index 63277c084f..3b0a6afddd 100644
--- a/src/gpu/vk/GrVkPipelineState.h
+++ b/src/gpu/vk/GrVkPipelineState.h
@@ -141,7 +141,8 @@ private:
void writeUniformBuffers(const GrVkGpu* gpu);
- void writeSamplers(GrVkGpu* gpu, const SkTArray<const GrTextureAccess*>& textureBindings,
+ void writeSamplers(GrVkGpu* gpu,
+ const SkTArray<const GrProcessor::TextureSampler*>& textureBindings,
bool allowSRGBInputs);
/**
diff --git a/src/gpu/vk/GrVkSampler.cpp b/src/gpu/vk/GrVkSampler.cpp
index 1d4e7066a6..799adc9b33 100644
--- a/src/gpu/vk/GrVkSampler.cpp
+++ b/src/gpu/vk/GrVkSampler.cpp
@@ -7,7 +7,6 @@
#include "GrVkSampler.h"
-#include "GrTextureAccess.h"
#include "GrVkGpu.h"
static inline VkSamplerAddressMode tile_to_vk_sampler_address(SkShader::TileMode tm) {
diff --git a/src/gpu/vk/GrVkSampler.h b/src/gpu/vk/GrVkSampler.h
index c0f60e4217..369b1627b3 100644
--- a/src/gpu/vk/GrVkSampler.h
+++ b/src/gpu/vk/GrVkSampler.h
@@ -12,7 +12,6 @@
#include "vk/GrVkDefines.h"
-class GrTextureAccess;
class GrTextureParams;
class GrVkGpu;