Commit a328d569 by Brandon Jones

Removed sampler state getters and setters from gl::Texture

BUG=angle:688 Change-Id: I3f203e4d10059c12a0c00e967ad6c7d3b3a18074 Reviewed-on: https://chromium-review.googlesource.com/206335Reviewed-by: 's avatarShannon Woods <shannonwoods@chromium.org> Tested-by: 's avatarBrandon Jones <bajones@chromium.org>
parent 787fc03f
...@@ -2439,7 +2439,7 @@ size_t Context::getCurrentTexturesAndSamplerStates(ProgramBinary *programBinary, ...@@ -2439,7 +2439,7 @@ size_t Context::getCurrentTexturesAndSamplerStates(ProgramBinary *programBinary,
if (textureUnit != -1) if (textureUnit != -1)
{ {
outTextures[i] = getSamplerTexture(textureUnit, outTextureTypes[i]); outTextures[i] = getSamplerTexture(textureUnit, outTextureTypes[i]);
outTextures[i]->getSamplerState(&outSamplers[i]); outTextures[i]->getSamplerStateWithNativeOffset(&outSamplers[i]);
if (mState.samplers[textureUnit] != 0) if (mState.samplers[textureUnit] != 0)
{ {
Sampler *samplerObject = getSampler(mState.samplers[textureUnit]); Sampler *samplerObject = getSampler(mState.samplers[textureUnit]);
...@@ -2459,7 +2459,7 @@ void Context::generateSwizzles(Texture *textures[], size_t count) ...@@ -2459,7 +2459,7 @@ void Context::generateSwizzles(Texture *textures[], size_t count)
{ {
for (size_t i = 0; i < count; i++) for (size_t i = 0; i < count; i++)
{ {
if (textures[i] && textures[i]->isSwizzled()) if (textures[i] && textures[i]->getSamplerState().swizzleRequired())
{ {
mRenderer->generateSwizzle(textures[i]); mRenderer->generateSwizzle(textures[i]);
} }
......
...@@ -53,22 +53,6 @@ Texture::Texture(rx::Renderer *renderer, GLuint id, GLenum target) : RefCountObj ...@@ -53,22 +53,6 @@ Texture::Texture(rx::Renderer *renderer, GLuint id, GLenum target) : RefCountObj
{ {
mRenderer = renderer; mRenderer = renderer;
mSamplerState.minFilter = GL_NEAREST_MIPMAP_LINEAR;
mSamplerState.magFilter = GL_LINEAR;
mSamplerState.wrapS = GL_REPEAT;
mSamplerState.wrapT = GL_REPEAT;
mSamplerState.wrapR = GL_REPEAT;
mSamplerState.maxAnisotropy = 1.0f;
mSamplerState.baseLevel = 0;
mSamplerState.maxLevel = 1000;
mSamplerState.minLod = -1000.0f;
mSamplerState.maxLod = 1000.0f;
mSamplerState.compareMode = GL_NONE;
mSamplerState.compareFunc = GL_LEQUAL;
mSamplerState.swizzleRed = GL_RED;
mSamplerState.swizzleGreen = GL_GREEN;
mSamplerState.swizzleBlue = GL_BLUE;
mSamplerState.swizzleAlpha = GL_ALPHA;
mUsage = GL_NONE; mUsage = GL_NONE;
mDirtyImages = true; mDirtyImages = true;
...@@ -87,170 +71,12 @@ GLenum Texture::getTarget() const ...@@ -87,170 +71,12 @@ GLenum Texture::getTarget() const
return mTarget; return mTarget;
} }
void Texture::setMinFilter(GLenum filter)
{
mSamplerState.minFilter = filter;
}
void Texture::setMagFilter(GLenum filter)
{
mSamplerState.magFilter = filter;
}
void Texture::setWrapS(GLenum wrap)
{
mSamplerState.wrapS = wrap;
}
void Texture::setWrapT(GLenum wrap)
{
mSamplerState.wrapT = wrap;
}
void Texture::setWrapR(GLenum wrap)
{
mSamplerState.wrapR = wrap;
}
void Texture::setMaxAnisotropy(float textureMaxAnisotropy, float contextMaxAnisotropy)
{
mSamplerState.maxAnisotropy = std::min(textureMaxAnisotropy, contextMaxAnisotropy);
}
void Texture::setCompareMode(GLenum mode)
{
mSamplerState.compareMode = mode;
}
void Texture::setCompareFunc(GLenum func)
{
mSamplerState.compareFunc = func;
}
void Texture::setSwizzleRed(GLenum swizzle)
{
mSamplerState.swizzleRed = swizzle;
}
void Texture::setSwizzleGreen(GLenum swizzle)
{
mSamplerState.swizzleGreen = swizzle;
}
void Texture::setSwizzleBlue(GLenum swizzle)
{
mSamplerState.swizzleBlue = swizzle;
}
void Texture::setSwizzleAlpha(GLenum swizzle)
{
mSamplerState.swizzleAlpha = swizzle;
}
void Texture::setBaseLevel(GLint baseLevel)
{
mSamplerState.baseLevel = baseLevel;
}
void Texture::setMaxLevel(GLint maxLevel)
{
mSamplerState.maxLevel = maxLevel;
}
void Texture::setMinLod(GLfloat minLod)
{
mSamplerState.minLod = minLod;
}
void Texture::setMaxLod(GLfloat maxLod)
{
mSamplerState.maxLod = maxLod;
}
void Texture::setUsage(GLenum usage) void Texture::setUsage(GLenum usage)
{ {
mUsage = usage; mUsage = usage;
} }
GLenum Texture::getMinFilter() const void Texture::getSamplerStateWithNativeOffset(SamplerState *sampler)
{
return mSamplerState.minFilter;
}
GLenum Texture::getMagFilter() const
{
return mSamplerState.magFilter;
}
GLenum Texture::getWrapS() const
{
return mSamplerState.wrapS;
}
GLenum Texture::getWrapT() const
{
return mSamplerState.wrapT;
}
GLenum Texture::getWrapR() const
{
return mSamplerState.wrapR;
}
float Texture::getMaxAnisotropy() const
{
return mSamplerState.maxAnisotropy;
}
GLenum Texture::getSwizzleRed() const
{
return mSamplerState.swizzleRed;
}
GLenum Texture::getSwizzleGreen() const
{
return mSamplerState.swizzleGreen;
}
GLenum Texture::getSwizzleBlue() const
{
return mSamplerState.swizzleBlue;
}
GLenum Texture::getSwizzleAlpha() const
{
return mSamplerState.swizzleAlpha;
}
GLint Texture::getBaseLevel() const
{
return mSamplerState.baseLevel;
}
GLint Texture::getMaxLevel() const
{
return mSamplerState.maxLevel;
}
GLfloat Texture::getMinLod() const
{
return mSamplerState.minLod;
}
GLfloat Texture::getMaxLod() const
{
return mSamplerState.maxLod;
}
bool Texture::isSwizzled() const
{
return mSamplerState.swizzleRed != GL_RED ||
mSamplerState.swizzleGreen != GL_GREEN ||
mSamplerState.swizzleBlue != GL_BLUE ||
mSamplerState.swizzleAlpha != GL_ALPHA;
}
void Texture::getSamplerState(SamplerState *sampler)
{ {
*sampler = mSamplerState; *sampler = mSamplerState;
......
...@@ -65,40 +65,11 @@ class Texture : public RefCountObject ...@@ -65,40 +65,11 @@ class Texture : public RefCountObject
GLenum getTarget() const; GLenum getTarget() const;
void setMinFilter(GLenum filter); const SamplerState &getSamplerState() const { return mSamplerState; }
void setMagFilter(GLenum filter); SamplerState &getSamplerState() { return mSamplerState; }
void setWrapS(GLenum wrap); void getSamplerStateWithNativeOffset(SamplerState *sampler);
void setWrapT(GLenum wrap);
void setWrapR(GLenum wrap);
void setMaxAnisotropy(float textureMaxAnisotropy, float contextMaxAnisotropy);
void setCompareMode(GLenum mode);
void setCompareFunc(GLenum func);
void setSwizzleRed(GLenum swizzle);
void setSwizzleGreen(GLenum swizzle);
void setSwizzleBlue(GLenum swizzle);
void setSwizzleAlpha(GLenum swizzle);
void setBaseLevel(GLint baseLevel);
void setMaxLevel(GLint maxLevel);
void setMinLod(GLfloat minLod);
void setMaxLod(GLfloat maxLod);
void setUsage(GLenum usage);
GLenum getMinFilter() const; void setUsage(GLenum usage);
GLenum getMagFilter() const;
GLenum getWrapS() const;
GLenum getWrapT() const;
GLenum getWrapR() const;
float getMaxAnisotropy() const;
GLenum getSwizzleRed() const;
GLenum getSwizzleGreen() const;
GLenum getSwizzleBlue() const;
GLenum getSwizzleAlpha() const;
GLint getBaseLevel() const;
GLint getMaxLevel() const;
GLfloat getMinLod() const;
GLfloat getMaxLod() const;
bool isSwizzled() const;
void getSamplerState(SamplerState *sampler);
GLenum getUsage() const; GLenum getUsage() const;
GLint getBaseLevelWidth() const; GLint getBaseLevelWidth() const;
......
...@@ -14,6 +14,25 @@ ...@@ -14,6 +14,25 @@
namespace gl namespace gl
{ {
SamplerState::SamplerState()
: minFilter(GL_NEAREST_MIPMAP_LINEAR),
magFilter(GL_LINEAR),
wrapS(GL_REPEAT),
wrapT(GL_REPEAT),
wrapR(GL_REPEAT),
maxAnisotropy(1.0f),
baseLevel(0),
maxLevel(1000),
minLod(-1000.0f),
maxLod(1000.0f),
compareMode(GL_NONE),
compareFunc(GL_LEQUAL),
swizzleRed(GL_RED),
swizzleGreen(GL_GREEN),
swizzleBlue(GL_BLUE),
swizzleAlpha(GL_ALPHA)
{}
bool SamplerState::swizzleRequired() const bool SamplerState::swizzleRequired() const
{ {
return swizzleRed != GL_RED || swizzleGreen != GL_GREEN || return swizzleRed != GL_RED || swizzleGreen != GL_GREEN ||
......
...@@ -147,6 +147,8 @@ struct DepthStencilState ...@@ -147,6 +147,8 @@ struct DepthStencilState
struct SamplerState struct SamplerState
{ {
SamplerState();
GLenum minFilter; GLenum minFilter;
GLenum magFilter; GLenum magFilter;
GLenum wrapS; GLenum wrapS;
......
...@@ -417,8 +417,10 @@ void Renderer11::generateSwizzle(gl::Texture *texture) ...@@ -417,8 +417,10 @@ void Renderer11::generateSwizzle(gl::Texture *texture)
{ {
TextureStorage11 *storage11 = TextureStorage11::makeTextureStorage11(texStorage->getStorageInstance()); TextureStorage11 *storage11 = TextureStorage11::makeTextureStorage11(texStorage->getStorageInstance());
storage11->generateSwizzles(texture->getSwizzleRed(), texture->getSwizzleGreen(), texture->getSwizzleBlue(), storage11->generateSwizzles(texture->getSamplerState().swizzleRed,
texture->getSwizzleAlpha()); texture->getSamplerState().swizzleGreen,
texture->getSamplerState().swizzleBlue,
texture->getSamplerState().swizzleAlpha);
} }
} }
} }
...@@ -490,7 +492,7 @@ void Renderer11::setTexture(gl::SamplerType type, int index, gl::Texture *textur ...@@ -490,7 +492,7 @@ void Renderer11::setTexture(gl::SamplerType type, int index, gl::Texture *textur
{ {
TextureStorage11 *storage11 = TextureStorage11::makeTextureStorage11(texStorage->getStorageInstance()); TextureStorage11 *storage11 = TextureStorage11::makeTextureStorage11(texStorage->getStorageInstance());
gl::SamplerState samplerState; gl::SamplerState samplerState;
texture->getSamplerState(&samplerState); texture->getSamplerStateWithNativeOffset(&samplerState);
textureSRV = storage11->getSRV(samplerState); textureSRV = storage11->getSRV(samplerState);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment