Implemented GL_TEXTURE_2D_ARRAY targets for glTex* functions.
TRAC #22705
Signed-off-by: Jamie Madill
Signed-off-by: Shannon Woods
Author: Geoff Lang
git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2180 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index c9b61c8..abf93b1 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -338,6 +338,28 @@
}
break;
+ case GL_TEXTURE_2D_ARRAY:
+ {
+ if (width > (context->getMaximum2DTextureDimension() >> level) ||
+ height > (context->getMaximum2DTextureDimension() >> level) ||
+ depth > (context->getMaximum2DArrayTextureLayers() >> level))
+ {
+ return gl::error(GL_INVALID_VALUE, false);
+ }
+
+ gl::Texture2DArray *texture2darray = context->getTexture2DArray();
+ if (texture2darray)
+ {
+ textureCompressed = texture2darray->isCompressed(level);
+ textureInternalFormat = texture2darray->getInternalFormat(level);
+ textureLevelWidth = texture2darray->getWidth(level);
+ textureLevelHeight = texture2darray->getHeight(level);
+ textureLevelDepth = texture2darray->getDepth(level);
+ texture = texture2darray;
+ }
+ }
+ break;
+
default:
return gl::error(GL_INVALID_ENUM, false);
}
@@ -7533,7 +7555,10 @@
break;
case GL_TEXTURE_2D_ARRAY:
- UNIMPLEMENTED();
+ {
+ gl::Texture2DArray *texture = context->getTexture2DArray();
+ texture->setImage(level, width, height, depth, format, type, context->getUnpackAlignment(), pixels);
+ }
break;
default:
@@ -7588,7 +7613,10 @@
break;
case GL_TEXTURE_2D_ARRAY:
- UNIMPLEMENTED();
+ {
+ gl::Texture2DArray *texture = context->getTexture2DArray();
+ texture->subImage(level, xoffset, yoffset, zoffset, width, height, depth, format, type, context->getUnpackAlignment(), pixels);
+ }
break;
default:
@@ -7634,7 +7662,7 @@
break;
case GL_TEXTURE_2D_ARRAY:
- UNIMPLEMENTED();
+ texture = context->getTexture2DArray();
break;
default:
@@ -7690,7 +7718,10 @@
break;
case GL_TEXTURE_2D_ARRAY:
- UNIMPLEMENTED();
+ {
+ gl::Texture2DArray *texture = context->getTexture2DArray();
+ texture->setCompressedImage(level, internalformat, width, height, depth, imageSize, data);
+ }
break;
default:
@@ -7750,7 +7781,11 @@
break;
case GL_TEXTURE_2D_ARRAY:
- UNIMPLEMENTED();
+ {
+ gl::Texture2DArray *texture = context->getTexture2DArray();
+ texture->subImageCompressed(level, xoffset, yoffset, zoffset, width, height, depth,
+ format, imageSize, data);
+ }
break;
default: