Implement ANGLE_copy_texture_3d Extension
Adds copyTexture3DANGLE and copySubTexture3DANGLE that adds copy
operations on volumetric textures.
Bug: angleproject:2762
Test: angle_end2end_tests
Change-Id: I0076989c2b7ed69abfc73143c325065bdb06a360
Reviewed-on: https://chromium-review.googlesource.com/c/1207216
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 0e138f6..7eb99bb 100644
--- a/src/libANGLE/validationES2.cpp
+++ b/src/libANGLE/validationES2.cpp
@@ -288,19 +288,20 @@
{
if (!IsValidCopyTextureDestinationInternalFormatEnum(internalFormat))
{
+ ANGLE_VALIDATION_ERR(context, InvalidOperation(), InvalidInternalFormat);
return false;
}
if (!ValidES3FormatCombination(GetUnsizedFormat(internalFormat), type, internalFormat))
{
- context->handleError(InvalidOperation()
- << "Invalid combination of type and internalFormat.");
+ ANGLE_VALIDATION_ERR(context, InvalidOperation(), MismatchedTypeAndFormat);
return false;
}
const InternalFormat &internalFormatInfo = GetInternalFormatInfo(internalFormat, type);
if (!internalFormatInfo.textureSupport(context->getClientVersion(), context->getExtensions()))
{
+ ANGLE_VALIDATION_ERR(context, InvalidOperation(), InvalidInternalFormat);
return false;
}
@@ -3994,7 +3995,7 @@
if (!IsValidCopyTextureSourceTarget(context, source->getType()))
{
- context->handleError(InvalidValue() << "Source texture a valid texture type.");
+ ANGLE_VALIDATION_ERR(context, InvalidOperation(), InvalidInternalFormat);
return false;
}
@@ -4052,7 +4053,6 @@
if (!IsValidCopyTextureDestinationFormatType(context, internalFormat, destType))
{
- ANGLE_VALIDATION_ERR(context, InvalidOperation(), MismatchedTypeAndFormat);
return false;
}