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);
         }