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,
if (textureUnit != -1)
{
outTextures[i] = getSamplerTexture(textureUnit, outTextureTypes[i]);
outTextures[i]->getSamplerState(&outSamplers[i]);
outTextures[i]->getSamplerStateWithNativeOffset(&outSamplers[i]);
if (mState.samplers[textureUnit] != 0)
{
Sampler *samplerObject = getSampler(mState.samplers[textureUnit]);
......@@ -2459,7 +2459,7 @@ void Context::generateSwizzles(Texture *textures[], size_t count)
{
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]);
}
......
......@@ -53,22 +53,6 @@ Texture::Texture(rx::Renderer *renderer, GLuint id, GLenum target) : RefCountObj
{
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;
mDirtyImages = true;
......@@ -87,170 +71,12 @@ GLenum Texture::getTarget() const
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)
{
mUsage = usage;
}
GLenum Texture::getMinFilter() const
{
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)
void Texture::getSamplerStateWithNativeOffset(SamplerState *sampler)
{
*sampler = mSamplerState;
......
......@@ -65,40 +65,11 @@ class Texture : public RefCountObject
GLenum getTarget() const;
void setMinFilter(GLenum filter);
void setMagFilter(GLenum filter);
void setWrapS(GLenum wrap);
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);
const SamplerState &getSamplerState() const { return mSamplerState; }
SamplerState &getSamplerState() { return mSamplerState; }
void getSamplerStateWithNativeOffset(SamplerState *sampler);
GLenum getMinFilter() const;
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);
void setUsage(GLenum usage);
GLenum getUsage() const;
GLint getBaseLevelWidth() const;
......
......@@ -14,6 +14,25 @@
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
{
return swizzleRed != GL_RED || swizzleGreen != GL_GREEN ||
......
......@@ -147,6 +147,8 @@ struct DepthStencilState
struct SamplerState
{
SamplerState();
GLenum minFilter;
GLenum magFilter;
GLenum wrapS;
......
......@@ -417,8 +417,10 @@ void Renderer11::generateSwizzle(gl::Texture *texture)
{
TextureStorage11 *storage11 = TextureStorage11::makeTextureStorage11(texStorage->getStorageInstance());
storage11->generateSwizzles(texture->getSwizzleRed(), texture->getSwizzleGreen(), texture->getSwizzleBlue(),
texture->getSwizzleAlpha());
storage11->generateSwizzles(texture->getSamplerState().swizzleRed,
texture->getSamplerState().swizzleGreen,
texture->getSamplerState().swizzleBlue,
texture->getSamplerState().swizzleAlpha);
}
}
}
......@@ -490,7 +492,7 @@ void Renderer11::setTexture(gl::SamplerType type, int index, gl::Texture *textur
{
TextureStorage11 *storage11 = TextureStorage11::makeTextureStorage11(texStorage->getStorageInstance());
gl::SamplerState samplerState;
texture->getSamplerState(&samplerState);
texture->getSamplerStateWithNativeOffset(&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