texture3D: Codegen changes towards OES_texture_3D

Also accompanying hand edits to validationES2.cpp and
Context.cpp to allow linking.

Bug: angleproject:3188
Change-Id: I89832265092fabc71bade464f0171d65038d8b0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1648454
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/validationES2.cpp b/src/libANGLE/validationES2.cpp
index 8e10477..eaa7f81 100644
--- a/src/libANGLE/validationES2.cpp
+++ b/src/libANGLE/validationES2.cpp
@@ -2918,6 +2918,23 @@
                                            pixels);
 }
 
+bool ValidateTexSubImage3DOES(Context *context,
+                              TextureTarget target,
+                              GLint level,
+                              GLint xoffset,
+                              GLint yoffset,
+                              GLint zoffset,
+                              GLsizei width,
+                              GLsizei height,
+                              GLsizei depth,
+                              GLenum format,
+                              GLenum type,
+                              const void *pixels)
+{
+    return ValidateTexSubImage3D(context, target, level, xoffset, yoffset, zoffset, width, height,
+                                 depth, format, type, pixels);
+}
+
 bool ValidateCompressedTexImage2D(Context *context,
                                   TextureTarget target,
                                   GLint level,
@@ -2991,6 +3008,21 @@
                                         border, imageSize, data);
 }
 
+bool ValidateCompressedTexImage3DOES(Context *context,
+                                     TextureTarget target,
+                                     GLint level,
+                                     GLenum internalformat,
+                                     GLsizei width,
+                                     GLsizei height,
+                                     GLsizei depth,
+                                     GLint border,
+                                     GLsizei imageSize,
+                                     const void *data)
+{
+    return ValidateCompressedTexImage3D(context, target, level, internalformat, width, height,
+                                        depth, border, imageSize, data);
+}
+
 bool ValidateCompressedTexSubImage2DRobustANGLE(Context *context,
                                                 TextureTarget target,
                                                 GLint level,
@@ -3059,6 +3091,23 @@
     return true;
 }
 
+bool ValidateCompressedTexSubImage3DOES(Context *context,
+                                        TextureTarget target,
+                                        GLint level,
+                                        GLint xoffset,
+                                        GLint yoffset,
+                                        GLint zoffset,
+                                        GLsizei width,
+                                        GLsizei height,
+                                        GLsizei depth,
+                                        GLenum format,
+                                        GLsizei imageSize,
+                                        const void *data)
+{
+    return ValidateCompressedTexSubImage3D(context, target, level, xoffset, yoffset, zoffset, width,
+                                           height, depth, format, imageSize, data);
+}
+
 bool ValidateGetBufferPointervOES(Context *context,
                                   BufferBinding target,
                                   GLenum pname,
@@ -6149,6 +6198,21 @@
                                                yoffset, 0, x, y, width, height, 0);
 }
 
+bool ValidateCopyTexSubImage3DOES(Context *context,
+                                  TextureTarget target,
+                                  GLint level,
+                                  GLint xoffset,
+                                  GLint yoffset,
+                                  GLint zoffset,
+                                  GLint x,
+                                  GLint y,
+                                  GLsizei width,
+                                  GLsizei height)
+{
+    return ValidateCopyTexSubImage3D(context, target, level, xoffset, yoffset, zoffset, x, y, width,
+                                     height);
+}
+
 bool ValidateDeleteBuffers(Context *context, GLint n, const GLuint *)
 {
     return ValidateGenOrDelete(context, n);
@@ -6336,6 +6400,18 @@
     return true;
 }
 
+bool ValidateFramebufferTexture3DOES(Context *context,
+                                     GLenum target,
+                                     GLenum attachment,
+                                     TextureTarget textargetPacked,
+                                     GLuint texture,
+                                     GLint level,
+                                     GLint zoffset)
+{
+    UNIMPLEMENTED();
+    return false;
+}
+
 bool ValidateGenBuffers(Context *context, GLint n, GLuint *)
 {
     return ValidateGenOrDelete(context, n);
@@ -6925,7 +7001,7 @@
 }
 
 bool ValidateTexImage3DOES(Context *context,
-                           GLenum target,
+                           TextureTarget target,
                            GLint level,
                            GLenum internalformat,
                            GLsizei width,
@@ -6936,8 +7012,8 @@
                            GLenum type,
                            const void *pixels)
 {
-    UNIMPLEMENTED();  // FIXME
-    return false;
+    return ValidateTexImage3D(context, target, level, internalformat, width, height, depth, border,
+                              format, type, pixels);
 }
 
 bool ValidatePopGroupMarkerEXT(Context *context)