Removed sampler state getters and setters from gl::Texture
BUG=angle:688
Change-Id: I3f203e4d10059c12a0c00e967ad6c7d3b3a18074
Reviewed-on: https://chromium-review.googlesource.com/206335
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Brandon Jones <bajones@chromium.org>
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index 26451fa..2ea3c7f 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -2439,7 +2439,7 @@
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 @@
{
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]);
}
diff --git a/src/libGLESv2/Texture.cpp b/src/libGLESv2/Texture.cpp
index bac5217..7520575 100644
--- a/src/libGLESv2/Texture.cpp
+++ b/src/libGLESv2/Texture.cpp
@@ -53,22 +53,6 @@
{
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 @@
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;
diff --git a/src/libGLESv2/Texture.h b/src/libGLESv2/Texture.h
index 8efa7b2..323c7ed 100644
--- a/src/libGLESv2/Texture.h
+++ b/src/libGLESv2/Texture.h
@@ -65,40 +65,11 @@
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;
diff --git a/src/libGLESv2/angletypes.cpp b/src/libGLESv2/angletypes.cpp
index d86f19a..ec5521e 100644
--- a/src/libGLESv2/angletypes.cpp
+++ b/src/libGLESv2/angletypes.cpp
@@ -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 ||
diff --git a/src/libGLESv2/angletypes.h b/src/libGLESv2/angletypes.h
index 314472a..79ad810 100644
--- a/src/libGLESv2/angletypes.h
+++ b/src/libGLESv2/angletypes.h
@@ -147,6 +147,8 @@
struct SamplerState
{
+ SamplerState();
+
GLenum minFilter;
GLenum magFilter;
GLenum wrapS;
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index d58d171..eca7d71 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -3397,23 +3397,23 @@
switch (pname)
{
case GL_TEXTURE_MAG_FILTER:
- *params = (GLfloat)texture->getMagFilter();
+ *params = (GLfloat)texture->getSamplerState().magFilter;
break;
case GL_TEXTURE_MIN_FILTER:
- *params = (GLfloat)texture->getMinFilter();
+ *params = (GLfloat)texture->getSamplerState().minFilter;
break;
case GL_TEXTURE_WRAP_S:
- *params = (GLfloat)texture->getWrapS();
+ *params = (GLfloat)texture->getSamplerState().wrapS;
break;
case GL_TEXTURE_WRAP_T:
- *params = (GLfloat)texture->getWrapT();
+ *params = (GLfloat)texture->getSamplerState().wrapT;
break;
case GL_TEXTURE_WRAP_R:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = (GLfloat)texture->getWrapR();
+ *params = (GLfloat)texture->getSamplerState().wrapR;
break;
case GL_TEXTURE_IMMUTABLE_FORMAT:
// Exposed to ES2.0 through EXT_texture_storage, no client version validation.
@@ -3434,63 +3434,63 @@
{
return gl::error(GL_INVALID_ENUM);
}
- *params = (GLfloat)texture->getMaxAnisotropy();
+ *params = (GLfloat)texture->getSamplerState().maxAnisotropy;
break;
case GL_TEXTURE_SWIZZLE_R:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = (GLfloat)texture->getSwizzleRed();
+ *params = (GLfloat)texture->getSamplerState().swizzleRed;
break;
case GL_TEXTURE_SWIZZLE_G:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = (GLfloat)texture->getSwizzleGreen();
+ *params = (GLfloat)texture->getSamplerState().swizzleGreen;
break;
case GL_TEXTURE_SWIZZLE_B:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = (GLfloat)texture->getSwizzleBlue();
+ *params = (GLfloat)texture->getSamplerState().swizzleBlue;
break;
case GL_TEXTURE_SWIZZLE_A:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = (GLfloat)texture->getSwizzleAlpha();
+ *params = (GLfloat)texture->getSamplerState().swizzleAlpha;
break;
case GL_TEXTURE_BASE_LEVEL:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = (GLfloat)texture->getBaseLevel();
+ *params = (GLfloat)texture->getSamplerState().baseLevel;
break;
case GL_TEXTURE_MAX_LEVEL:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = (GLfloat)texture->getMaxLevel();
+ *params = (GLfloat)texture->getSamplerState().maxLevel;
break;
case GL_TEXTURE_MIN_LOD:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = texture->getMinLod();
+ *params = texture->getSamplerState().minLod;
break;
case GL_TEXTURE_MAX_LOD:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = texture->getMaxLod();
+ *params = texture->getSamplerState().maxLod;
break;
default:
return gl::error(GL_INVALID_ENUM);
@@ -3523,23 +3523,23 @@
switch (pname)
{
case GL_TEXTURE_MAG_FILTER:
- *params = texture->getMagFilter();
+ *params = texture->getSamplerState().magFilter;
break;
case GL_TEXTURE_MIN_FILTER:
- *params = texture->getMinFilter();
+ *params = texture->getSamplerState().minFilter;
break;
case GL_TEXTURE_WRAP_S:
- *params = texture->getWrapS();
+ *params = texture->getSamplerState().wrapS;
break;
case GL_TEXTURE_WRAP_T:
- *params = texture->getWrapT();
+ *params = texture->getSamplerState().wrapT;
break;
case GL_TEXTURE_WRAP_R:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = texture->getWrapR();
+ *params = texture->getSamplerState().wrapR;
break;
case GL_TEXTURE_IMMUTABLE_FORMAT:
// Exposed to ES2.0 through EXT_texture_storage, no client version validation.
@@ -3560,63 +3560,63 @@
{
return gl::error(GL_INVALID_ENUM);
}
- *params = (GLint)texture->getMaxAnisotropy();
+ *params = (GLint)texture->getSamplerState().maxAnisotropy;
break;
case GL_TEXTURE_SWIZZLE_R:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = texture->getSwizzleRed();
+ *params = texture->getSamplerState().swizzleRed;
break;
case GL_TEXTURE_SWIZZLE_G:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = texture->getSwizzleGreen();
+ *params = texture->getSamplerState().swizzleGreen;
break;
case GL_TEXTURE_SWIZZLE_B:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = texture->getSwizzleBlue();
+ *params = texture->getSamplerState().swizzleBlue;
break;
case GL_TEXTURE_SWIZZLE_A:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = texture->getSwizzleAlpha();
+ *params = texture->getSamplerState().swizzleAlpha;
break;
case GL_TEXTURE_BASE_LEVEL:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = texture->getBaseLevel();
+ *params = texture->getSamplerState().baseLevel;
break;
case GL_TEXTURE_MAX_LEVEL:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = texture->getMaxLevel();
+ *params = texture->getSamplerState().maxLevel;
break;
case GL_TEXTURE_MIN_LOD:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = (GLint)texture->getMinLod();
+ *params = (GLint)texture->getSamplerState().minLod;
break;
case GL_TEXTURE_MAX_LOD:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
- *params = (GLint)texture->getMaxLod();
+ *params = (GLint)texture->getSamplerState().maxLod;
break;
default:
return gl::error(GL_INVALID_ENUM);
@@ -4930,23 +4930,23 @@
switch (pname)
{
- case GL_TEXTURE_WRAP_S: texture->setWrapS(gl::uiround<GLenum>(param)); break;
- case GL_TEXTURE_WRAP_T: texture->setWrapT(gl::uiround<GLenum>(param)); break;
- case GL_TEXTURE_WRAP_R: texture->setWrapR(gl::uiround<GLenum>(param)); break;
- case GL_TEXTURE_MIN_FILTER: texture->setMinFilter(gl::uiround<GLenum>(param)); break;
- case GL_TEXTURE_MAG_FILTER: texture->setMagFilter(gl::uiround<GLenum>(param)); break;
- case GL_TEXTURE_USAGE_ANGLE: texture->setUsage(gl::uiround<GLenum>(param)); break;
- case GL_TEXTURE_MAX_ANISOTROPY_EXT: texture->setMaxAnisotropy(param, context->getCaps().extensions.maxTextureAnisotropy); break;
- case GL_TEXTURE_COMPARE_MODE: texture->setCompareMode(gl::uiround<GLenum>(param)); break;
- case GL_TEXTURE_COMPARE_FUNC: texture->setCompareFunc(gl::uiround<GLenum>(param)); break;
- case GL_TEXTURE_SWIZZLE_R: texture->setSwizzleRed(gl::uiround<GLenum>(param)); break;
- case GL_TEXTURE_SWIZZLE_G: texture->setSwizzleGreen(gl::uiround<GLenum>(param)); break;
- case GL_TEXTURE_SWIZZLE_B: texture->setSwizzleBlue(gl::uiround<GLenum>(param)); break;
- case GL_TEXTURE_SWIZZLE_A: texture->setSwizzleAlpha(gl::uiround<GLenum>(param)); break;
- case GL_TEXTURE_BASE_LEVEL: texture->setBaseLevel(gl::iround<GLint>(param)); break;
- case GL_TEXTURE_MAX_LEVEL: texture->setMaxLevel(gl::iround<GLint>(param)); break;
- case GL_TEXTURE_MIN_LOD: texture->setMinLod(param); break;
- case GL_TEXTURE_MAX_LOD: texture->setMaxLod(param); break;
+ case GL_TEXTURE_WRAP_S: texture->getSamplerState().wrapS = gl::uiround<GLenum>(param); break;
+ case GL_TEXTURE_WRAP_T: texture->getSamplerState().wrapT = gl::uiround<GLenum>(param); break;
+ case GL_TEXTURE_WRAP_R: texture->getSamplerState().wrapR = gl::uiround<GLenum>(param); break;
+ case GL_TEXTURE_MIN_FILTER: texture->getSamplerState().minFilter = gl::uiround<GLenum>(param); break;
+ case GL_TEXTURE_MAG_FILTER: texture->getSamplerState().magFilter = gl::uiround<GLenum>(param); break;
+ case GL_TEXTURE_USAGE_ANGLE: texture->setUsage(gl::uiround<GLenum>(param)); break;
+ case GL_TEXTURE_MAX_ANISOTROPY_EXT: texture->getSamplerState().maxAnisotropy = std::min(param, context->getCaps().extensions.maxTextureAnisotropy); break;
+ case GL_TEXTURE_COMPARE_MODE: texture->getSamplerState().compareMode = gl::uiround<GLenum>(param); break;
+ case GL_TEXTURE_COMPARE_FUNC: texture->getSamplerState().compareFunc = gl::uiround<GLenum>(param); break;
+ case GL_TEXTURE_SWIZZLE_R: texture->getSamplerState().swizzleRed = gl::uiround<GLenum>(param); break;
+ case GL_TEXTURE_SWIZZLE_G: texture->getSamplerState().swizzleGreen = gl::uiround<GLenum>(param); break;
+ case GL_TEXTURE_SWIZZLE_B: texture->getSamplerState().swizzleBlue = gl::uiround<GLenum>(param); break;
+ case GL_TEXTURE_SWIZZLE_A: texture->getSamplerState().swizzleAlpha = gl::uiround<GLenum>(param); break;
+ case GL_TEXTURE_BASE_LEVEL: texture->getSamplerState().baseLevel = gl::iround<GLint>(param); break;
+ case GL_TEXTURE_MAX_LEVEL: texture->getSamplerState().maxLevel = gl::iround<GLint>(param); break;
+ case GL_TEXTURE_MIN_LOD: texture->getSamplerState().minLod = param; break;
+ case GL_TEXTURE_MAX_LOD: texture->getSamplerState().maxLod = param; break;
default: UNREACHABLE(); break;
}
}
@@ -4986,23 +4986,23 @@
switch (pname)
{
- case GL_TEXTURE_WRAP_S: texture->setWrapS((GLenum)param); break;
- case GL_TEXTURE_WRAP_T: texture->setWrapT((GLenum)param); break;
- case GL_TEXTURE_WRAP_R: texture->setWrapR((GLenum)param); break;
- case GL_TEXTURE_MIN_FILTER: texture->setMinFilter((GLenum)param); break;
- case GL_TEXTURE_MAG_FILTER: texture->setMagFilter((GLenum)param); break;
- case GL_TEXTURE_USAGE_ANGLE: texture->setUsage((GLenum)param); break;
- case GL_TEXTURE_MAX_ANISOTROPY_EXT: texture->setMaxAnisotropy((float)param, context->getCaps().extensions.maxTextureAnisotropy); break;
- case GL_TEXTURE_COMPARE_MODE: texture->setCompareMode((GLenum)param); break;
- case GL_TEXTURE_COMPARE_FUNC: texture->setCompareFunc((GLenum)param); break;
- case GL_TEXTURE_SWIZZLE_R: texture->setSwizzleRed((GLenum)param); break;
- case GL_TEXTURE_SWIZZLE_G: texture->setSwizzleGreen((GLenum)param); break;
- case GL_TEXTURE_SWIZZLE_B: texture->setSwizzleBlue((GLenum)param); break;
- case GL_TEXTURE_SWIZZLE_A: texture->setSwizzleAlpha((GLenum)param); break;
- case GL_TEXTURE_BASE_LEVEL: texture->setBaseLevel(param); break;
- case GL_TEXTURE_MAX_LEVEL: texture->setMaxLevel(param); break;
- case GL_TEXTURE_MIN_LOD: texture->setMinLod((GLfloat)param); break;
- case GL_TEXTURE_MAX_LOD: texture->setMaxLod((GLfloat)param); break;
+ case GL_TEXTURE_WRAP_S: texture->getSamplerState().wrapS = (GLenum)param; break;
+ case GL_TEXTURE_WRAP_T: texture->getSamplerState().wrapT = (GLenum)param; break;
+ case GL_TEXTURE_WRAP_R: texture->getSamplerState().wrapR = (GLenum)param; break;
+ case GL_TEXTURE_MIN_FILTER: texture->getSamplerState().minFilter = (GLenum)param; break;
+ case GL_TEXTURE_MAG_FILTER: texture->getSamplerState().magFilter = (GLenum)param; break;
+ case GL_TEXTURE_USAGE_ANGLE: texture->setUsage((GLenum)param); break;
+ case GL_TEXTURE_MAX_ANISOTROPY_EXT: texture->getSamplerState().maxAnisotropy = std::min((float)param, context->getCaps().extensions.maxTextureAnisotropy); break;
+ case GL_TEXTURE_COMPARE_MODE: texture->getSamplerState().compareMode = (GLenum)param; break;
+ case GL_TEXTURE_COMPARE_FUNC: texture->getSamplerState().compareFunc = (GLenum)param; break;
+ case GL_TEXTURE_SWIZZLE_R: texture->getSamplerState().swizzleRed = (GLenum)param; break;
+ case GL_TEXTURE_SWIZZLE_G: texture->getSamplerState().swizzleGreen = (GLenum)param; break;
+ case GL_TEXTURE_SWIZZLE_B: texture->getSamplerState().swizzleBlue = (GLenum)param; break;
+ case GL_TEXTURE_SWIZZLE_A: texture->getSamplerState().swizzleAlpha = (GLenum)param; break;
+ case GL_TEXTURE_BASE_LEVEL: texture->getSamplerState().baseLevel = param; break;
+ case GL_TEXTURE_MAX_LEVEL: texture->getSamplerState().maxLevel = param; break;
+ case GL_TEXTURE_MIN_LOD: texture->getSamplerState().minLod = (GLfloat)param; break;
+ case GL_TEXTURE_MAX_LOD: texture->getSamplerState().maxLod = (GLfloat)param; break;
default: UNREACHABLE(); break;
}
}
diff --git a/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp b/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp
index ddb6236..351ca6e 100644
--- a/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp
+++ b/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp
@@ -417,8 +417,10 @@
{
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 @@
{
TextureStorage11 *storage11 = TextureStorage11::makeTextureStorage11(texStorage->getStorageInstance());
gl::SamplerState samplerState;
- texture->getSamplerState(&samplerState);
+ texture->getSamplerStateWithNativeOffset(&samplerState);
textureSRV = storage11->getSRV(samplerState);
}