Remove getNativeTexture from TextureImpl.

We can stop exposing this method on the GL-side, now that we only
use it on the D3D back-end.

BUG=angle:781

Change-Id: I3a9ecc277dcd21147881b8780849782f68b3e62e
Reviewed-on: https://chromium-review.googlesource.com/222924
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
diff --git a/src/libGLESv2/Texture.cpp b/src/libGLESv2/Texture.cpp
index 404a23f..deeeeae 100644
--- a/src/libGLESv2/Texture.cpp
+++ b/src/libGLESv2/Texture.cpp
@@ -131,11 +131,6 @@
     return image->getActualFormat();
 }
 
-rx::TextureStorage *Texture::getNativeTexture()
-{
-    return getImplementation()->getNativeTexture();
-}
-
 void Texture::generateMipmaps()
 {
     getImplementation()->generateMipmaps();
diff --git a/src/libGLESv2/Texture.h b/src/libGLESv2/Texture.h
index f542a3d..a3c7c2c 100644
--- a/src/libGLESv2/Texture.h
+++ b/src/libGLESv2/Texture.h
@@ -68,8 +68,6 @@
 
     virtual bool isSamplerComplete(const SamplerState &samplerState, const TextureCapsMap &textureCaps, const Extensions &extensions, int clientVersion) const = 0;
 
-    rx::TextureStorage *getNativeTexture();
-
     virtual void generateMipmaps();
     virtual Error copySubImage(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height, Framebuffer *source);
 
diff --git a/src/libGLESv2/renderer/TextureImpl.h b/src/libGLESv2/renderer/TextureImpl.h
index e09a807..6a89d81 100644
--- a/src/libGLESv2/renderer/TextureImpl.h
+++ b/src/libGLESv2/renderer/TextureImpl.h
@@ -40,11 +40,6 @@
   public:
     virtual ~TextureImpl() {};
 
-    // TODO: If this methods could go away that would be ideal;
-    // TextureStorage should only be necessary for the D3D backend, and as such
-    // higher level code should not rely on it.
-    virtual TextureStorage *getNativeTexture() = 0;
-
     // Deprecated in favour of the ImageIndex method
     virtual Image *getImage(int level, int layer) const = 0;
     virtual Image *getImage(const gl::ImageIndex &index) const = 0;
diff --git a/src/libGLESv2/renderer/d3d/TextureD3D.h b/src/libGLESv2/renderer/d3d/TextureD3D.h
index 92ec478..19dba98 100644
--- a/src/libGLESv2/renderer/d3d/TextureD3D.h
+++ b/src/libGLESv2/renderer/d3d/TextureD3D.h
@@ -35,7 +35,7 @@
 
     static TextureD3D *makeTextureD3D(TextureImpl *texture);
 
-    virtual TextureStorage *getNativeTexture();
+    TextureStorage *getNativeTexture();
 
     virtual void setUsage(GLenum usage) { mUsage = usage; }
     bool hasDirtyImages() const { return mDirtyImages; }
diff --git a/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp b/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp
index caf45e8..b60c478 100644
--- a/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp
+++ b/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp
@@ -464,11 +464,13 @@
 {
     if (texture)
     {
-        TextureStorage *texStorage = texture->getNativeTexture();
+        TextureD3D *textureD3D = TextureD3D::makeTextureD3D(texture->getImplementation());
+        ASSERT(textureD3D);
+
+        TextureStorage *texStorage = textureD3D->getNativeTexture();
         if (texStorage)
         {
             TextureStorage11 *storage11 = TextureStorage11::makeTextureStorage11(texStorage);
-
             gl::Error error = storage11->generateSwizzles(texture->getSamplerState().swizzleRed,
                                                           texture->getSamplerState().swizzleGreen,
                                                           texture->getSamplerState().swizzleBlue,
@@ -3128,7 +3130,8 @@
     ASSERT(attachment->isTexture());
     gl::Texture *texture = attachment->getTexture();
 
-    TextureStorage *texStorage = texture->getNativeTexture();
+    TextureD3D *textureD3D = TextureD3D::makeTextureD3D(texture->getImplementation());
+    TextureStorage *texStorage = textureD3D->getNativeTexture();
     if (texStorage)
     {
         TextureStorage11 *texStorage11 = TextureStorage11::makeTextureStorage11(texStorage);