Give every validation error a constant.
Makes the code more consistent and organized.
Also reduces binary size by about 4k.
Also refactors validation for GetBufferPointerv.
Bug: angleproject:2957
Change-Id: Ib076ce936193e9840eef2499bf815489cdb48479
Reviewed-on: https://chromium-review.googlesource.com/c/1350489
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
diff --git a/src/libANGLE/validationES.cpp b/src/libANGLE/validationES.cpp
index cddee6c..ed21c72 100644
--- a/src/libANGLE/validationES.cpp
+++ b/src/libANGLE/validationES.cpp
@@ -952,14 +952,13 @@
ASSERT(imageSize >= 0);
if (pixels == nullptr && imageSize != 0)
{
- context->validationError(GL_INVALID_OPERATION,
- "imageSize must be 0 if no texture data is provided.");
+ context->validationError(GL_INVALID_OPERATION, kImageSizeMustBeZero);
return false;
}
if (pixels != nullptr && endByte > static_cast<GLuint>(imageSize))
{
- context->validationError(GL_INVALID_OPERATION, "imageSize is too small");
+ context->validationError(GL_INVALID_OPERATION, kImageSizeTooSmall);
return false;
}
}
@@ -1003,8 +1002,7 @@
constexpr GLsizei kMaxWebGLStride = 255;
if (stride > kMaxWebGLStride)
{
- context->validationError(GL_INVALID_VALUE,
- "Stride is over the maximum stride allowed by WebGL.");
+ context->validationError(GL_INVALID_VALUE, kStrideExceedsWebGLLimit);
return false;
}
@@ -1619,7 +1617,7 @@
if (id == 0)
{
- context->validationError(GL_INVALID_OPERATION, "Query id is 0");
+ context->validationError(GL_INVALID_OPERATION, kInvalidQueryId);
return false;
}
@@ -1641,7 +1639,7 @@
if (context->getGLState().isQueryActive(target))
{
- context->validationError(GL_INVALID_OPERATION, "Other query is active");
+ context->validationError(GL_INVALID_OPERATION, kOtherQueryActive);
return false;
}
@@ -1657,7 +1655,7 @@
// check for type mismatch
if (queryObject->getType() != target)
{
- context->validationError(GL_INVALID_OPERATION, "Query type does not match target");
+ context->validationError(GL_INVALID_OPERATION, kQueryTargetMismatch);
return false;
}
@@ -1688,7 +1686,7 @@
if (queryObject == nullptr)
{
- context->validationError(GL_INVALID_OPERATION, "Query target not active");
+ context->validationError(GL_INVALID_OPERATION, kQueryInactive);
return false;
}
@@ -1711,7 +1709,7 @@
{
if (!context->getExtensions().disjointTimerQuery)
{
- context->validationError(GL_INVALID_OPERATION, "Disjoint timer query not enabled");
+ context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled);
return false;
}
@@ -1755,7 +1753,7 @@
case GL_CURRENT_QUERY_EXT:
if (target == QueryType::Timestamp)
{
- context->validationError(GL_INVALID_ENUM, "Cannot use current query for timestamp");
+ context->validationError(GL_INVALID_ENUM, kInvalidQueryTarget);
return false;
}
break;
@@ -1866,7 +1864,7 @@
{
if (!context->getExtensions().disjointTimerQuery)
{
- context->validationError(GL_INVALID_OPERATION, "Timer query extension not enabled");
+ context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled);
return false;
}
return ValidateGetQueryObjectValueBase(context, id, pname, nullptr);
@@ -1881,7 +1879,7 @@
{
if (!context->getExtensions().disjointTimerQuery)
{
- context->validationError(GL_INVALID_OPERATION, "Timer query extension not enabled");
+ context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled);
return false;
}
@@ -2130,14 +2128,14 @@
{
if (value[i] < 0 || value[i] >= max)
{
- context->validationError(GL_INVALID_VALUE, "sampler uniform value out of range");
+ context->validationError(GL_INVALID_VALUE, kSamplerUniformValueOutOfRange);
return false;
}
}
return true;
}
- context->validationError(GL_INVALID_OPERATION, "wrong type of value for uniform");
+ context->validationError(GL_INVALID_OPERATION, kUniformTypeMismatch);
return false;
}
@@ -2149,7 +2147,7 @@
return true;
}
- context->validationError(GL_INVALID_OPERATION, "wrong type of value for uniform");
+ context->validationError(GL_INVALID_OPERATION, kUniformTypeMismatch);
return false;
}
@@ -2226,8 +2224,7 @@
case GL_TEXTURE_BINDING_RECTANGLE_ANGLE:
if (!context->getExtensions().textureRectangle)
{
- context->validationError(GL_INVALID_ENUM,
- "ANGLE_texture_rectangle extension not present");
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false;
}
break;
@@ -2235,10 +2232,7 @@
if (!context->getExtensions().eglStreamConsumerExternal &&
!context->getExtensions().eglImageExternal)
{
- context->validationError(GL_INVALID_ENUM,
- "Neither NV_EGL_stream_consumer_external "
- "nor GL_OES_EGL_image_external "
- "extensions enabled");
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false;
}
break;
@@ -2471,8 +2465,7 @@
// framebuffer is more than one.
if (readFramebuffer->readDisallowedByMultiview())
{
- context->validationError(GL_INVALID_FRAMEBUFFER_OPERATION,
- "The active read framebuffer object has multiview attachments.");
+ context->validationError(GL_INVALID_FRAMEBUFFER_OPERATION, kMultiviewReadFramebuffer);
return false;
}
@@ -3073,7 +3066,7 @@
// WebGL buffers cannot be mapped/unmapped because the MapBufferRange,
// FlushMappedBufferRange, and UnmapBuffer entry points are removed from the
// WebGL 2.0 API. https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.14
- context->validationError(GL_INVALID_OPERATION, "Index buffer is mapped.");
+ context->validationError(GL_INVALID_OPERATION, kBufferMapped);
return false;
}
}
@@ -3092,8 +3085,7 @@
{
// This is an application error that would normally result in a crash, but we catch
// it and return an error
- context->validationError(GL_INVALID_OPERATION,
- "No element array buffer and no pointer.");
+ context->validationError(GL_INVALID_OPERATION, kElementArrayNoBufferOrPointer);
return false;
}
}
@@ -3462,10 +3454,7 @@
if (attachments[i] >= GL_COLOR_ATTACHMENT0 + context->getCaps().maxColorAttachments)
{
- context->validationError(GL_INVALID_OPERATION,
- "Requested color attachment is "
- "greater than the maximum supported "
- "color attachments");
+ context->validationError(GL_INVALID_OPERATION, kExceedsMaxColorAttachments);
return false;
}
}
@@ -3564,17 +3553,14 @@
case TextureType::_2D:
if (!context->getExtensions().eglImage)
{
- context->validationError(GL_INVALID_ENUM,
- "GL_TEXTURE_2D texture target requires GL_OES_EGL_image.");
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
}
break;
case TextureType::External:
if (!context->getExtensions().eglImageExternal)
{
- context->validationError(GL_INVALID_ENUM,
- "GL_TEXTURE_EXTERNAL_OES texture target "
- "requires GL_OES_EGL_image_external.");
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
}
break;
@@ -3588,21 +3574,19 @@
ASSERT(context->getCurrentDisplay());
if (!context->getCurrentDisplay()->isValidImage(imageObject))
{
- context->validationError(GL_INVALID_VALUE, "EGL image is not valid.");
+ context->validationError(GL_INVALID_VALUE, kInvalidEGLImage);
return false;
}
if (imageObject->getSamples() > 0)
{
- context->validationError(GL_INVALID_OPERATION,
- "cannot create a 2D texture from a multisampled EGL image.");
+ context->validationError(GL_INVALID_OPERATION, kEGLImageCannotCreate2DMultisampled);
return false;
}
if (!imageObject->isTexturable(context))
{
- context->validationError(GL_INVALID_OPERATION,
- "EGL image internal format is not supported as a texture.");
+ context->validationError(GL_INVALID_OPERATION, kEGLImageTextureFormatNotSupported);
return false;
}
@@ -3634,14 +3618,13 @@
ASSERT(context->getCurrentDisplay());
if (!context->getCurrentDisplay()->isValidImage(imageObject))
{
- context->validationError(GL_INVALID_VALUE, "EGL image is not valid.");
+ context->validationError(GL_INVALID_VALUE, kInvalidEGLImage);
return false;
}
if (!imageObject->isRenderable(context))
{
- context->validationError(GL_INVALID_OPERATION,
- "EGL image internal format is not supported as a renderbuffer.");
+ context->validationError(GL_INVALID_OPERATION, kEGLImageRenderbufferFormatNotSupported);
return false;
}
@@ -3677,17 +3660,14 @@
if (std::find(programBinaryFormats.begin(), programBinaryFormats.end(), binaryFormat) ==
programBinaryFormats.end())
{
- context->validationError(GL_INVALID_ENUM, "Program binary format is not valid.");
+ context->validationError(GL_INVALID_ENUM, kInvalidProgramBinaryFormat);
return false;
}
if (context->hasActiveTransformFeedback(program))
{
// ES 3.0.4 section 2.15 page 91
- context->validationError(GL_INVALID_OPERATION,
- "Cannot change program binary while program "
- "is associated with an active transform "
- "feedback object.");
+ context->validationError(GL_INVALID_OPERATION, kTransformFeedbackProgramBinary);
return false;
}
@@ -3715,7 +3695,7 @@
if (context->getCaps().programBinaryFormats.empty())
{
- context->validationError(GL_INVALID_OPERATION, "No program binary formats supported.");
+ context->validationError(GL_INVALID_OPERATION, kNoProgramBinaryFormats);
return false;
}
@@ -3756,13 +3736,12 @@
// was changed to GL_INVALID_ENUM in 3.1, which dEQP also expects.
// 3.1 is still a bit ambiguous about the error, but future specs are
// expected to clarify that GL_INVALID_ENUM is the correct error.
- context->validationError(GL_INVALID_ENUM, "Invalid buffer value");
+ context->validationError(GL_INVALID_ENUM, kInvalidDrawBuffer);
return false;
}
else if (bufs[colorAttachment] >= maxColorAttachment)
{
- context->validationError(GL_INVALID_OPERATION,
- "Buffer value is greater than MAX_DRAW_BUFFERS");
+ context->validationError(GL_INVALID_OPERATION, kExceedsMaxColorAttachments);
return false;
}
else if (bufs[colorAttachment] != GL_NONE && bufs[colorAttachment] != attachment &&
@@ -3770,8 +3749,7 @@
{
// INVALID_OPERATION-GL is bound to buffer and ith argument
// is not COLOR_ATTACHMENTi or NONE
- context->validationError(GL_INVALID_OPERATION,
- "Ith value does not match COLOR_ATTACHMENTi or NONE");
+ context->validationError(GL_INVALID_OPERATION, kInvalidDrawBufferValue);
return false;
}
}
@@ -3782,16 +3760,13 @@
{
if (n != 1)
{
- context->validationError(GL_INVALID_OPERATION,
- "n must be 1 when GL is bound to the default framebuffer");
+ context->validationError(GL_INVALID_OPERATION, kInvalidDrawBufferCountForDefault);
return false;
}
if (bufs[0] != GL_NONE && bufs[0] != GL_BACK)
{
- context->validationError(
- GL_INVALID_OPERATION,
- "Only NONE or BACK are valid values when drawing to the default framebuffer");
+ context->validationError(GL_INVALID_OPERATION, kDefaultFramebufferInvalidDrawBuffer);
return false;
}
}
@@ -3810,17 +3785,9 @@
*length = 0;
}
- if (context->getClientMajorVersion() < 3 && !context->getExtensions().mapBuffer)
- {
- context->validationError(
- GL_INVALID_OPERATION,
- "Context does not support OpenGL ES 3.0 or GL_OES_mapbuffer is not enabled.");
- return false;
- }
-
if (!context->isValidBufferBinding(target))
{
- context->validationError(GL_INVALID_ENUM, "Buffer target not valid");
+ context->validationError(GL_INVALID_ENUM, kInvalidBufferTypes);
return false;
}
@@ -3839,8 +3806,7 @@
// GLES 3.1 section 6.6 explicitly specifies this error.
if (context->getGLState().getTargetBuffer(target) == nullptr)
{
- context->validationError(GL_INVALID_OPERATION,
- "Can not get pointer for reserved buffer name zero.");
+ context->validationError(GL_INVALID_OPERATION, kBufferPointerNotAvailable);
return false;
}
@@ -3864,7 +3830,7 @@
if (buffer == nullptr || !buffer->isMapped())
{
- context->validationError(GL_INVALID_OPERATION, "Buffer not mapped.");
+ context->validationError(GL_INVALID_OPERATION, kBufferNotMapped);
return false;
}
@@ -3899,7 +3865,7 @@
if (!buffer)
{
- context->validationError(GL_INVALID_OPERATION, "Attempted to map buffer object zero.");
+ context->validationError(GL_INVALID_OPERATION, kBufferNotMappable);
return false;
}
@@ -3909,8 +3875,7 @@
if (!checkedSize.IsValid() || checkedSize.ValueOrDie() > static_cast<size_t>(buffer->getSize()))
{
- context->validationError(GL_INVALID_VALUE,
- "Mapped range does not fit into buffer dimensions.");
+ context->validationError(GL_INVALID_VALUE, kMapOutOfRange);
return false;
}
@@ -3921,27 +3886,26 @@
if (access & ~(allAccessBits))
{
- context->validationError(GL_INVALID_VALUE, "Invalid access bits");
+ context->validationError(GL_INVALID_VALUE, kInvalidAccessBits);
return false;
}
if (length == 0)
{
- context->validationError(GL_INVALID_OPERATION, "Buffer mapping length is zero.");
+ context->validationError(GL_INVALID_OPERATION, kLengthZero);
return false;
}
if (buffer->isMapped())
{
- context->validationError(GL_INVALID_OPERATION, "Buffer is already mapped.");
+ context->validationError(GL_INVALID_OPERATION, kBufferAlreadyMapped);
return false;
}
// Check for invalid bit combinations
if ((access & (GL_MAP_READ_BIT | GL_MAP_WRITE_BIT)) == 0)
{
- context->validationError(GL_INVALID_OPERATION,
- "Need to map buffer for either reading or writing.");
+ context->validationError(GL_INVALID_OPERATION, kInvalidAccessBitsReadWrite);
return false;
}
@@ -3950,16 +3914,13 @@
if ((access & GL_MAP_READ_BIT) != 0 && (access & writeOnlyBits) != 0)
{
- context->validationError(GL_INVALID_OPERATION,
- "Invalid access bits when mapping buffer for reading");
+ context->validationError(GL_INVALID_OPERATION, kInvalidAccessBitsRead);
return false;
}
if ((access & GL_MAP_WRITE_BIT) == 0 && (access & GL_MAP_FLUSH_EXPLICIT_BIT) != 0)
{
- context->validationError(
- GL_INVALID_OPERATION,
- "The explicit flushing bit may only be set if the buffer is mapped for writing.");
+ context->validationError(GL_INVALID_OPERATION, kInvalidAccessBitsFlush);
return false;
}
@@ -3993,14 +3954,13 @@
if (buffer == nullptr)
{
- context->validationError(GL_INVALID_OPERATION, "Attempted to flush buffer object zero.");
+ context->validationError(GL_INVALID_OPERATION, kInvalidFlushZero);
return false;
}
if (!buffer->isMapped() || (buffer->getAccessFlags() & GL_MAP_FLUSH_EXPLICIT_BIT) == 0)
{
- context->validationError(GL_INVALID_OPERATION,
- "Attempted to flush a buffer not mapped for explicit flushing.");
+ context->validationError(GL_INVALID_OPERATION, kInvalidFlushTarget);
return false;
}
@@ -4011,8 +3971,7 @@
if (!checkedSize.IsValid() ||
checkedSize.ValueOrDie() > static_cast<size_t>(buffer->getMapLength()))
{
- context->validationError(GL_INVALID_VALUE,
- "Flushed range does not fit into buffer mapping dimensions.");
+ context->validationError(GL_INVALID_VALUE, kInvalidFlushOutOfRange);
return false;
}
@@ -4033,8 +3992,7 @@
{
if (!context->getExtensions().robustClientMemory)
{
- context->validationError(GL_INVALID_OPERATION,
- "GL_ANGLE_robust_client_memory is not available.");
+ context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled);
return false;
}
@@ -4051,8 +4009,7 @@
{
if (bufSize < numParams)
{
- context->validationError(GL_INVALID_OPERATION,
- "More parameters are required than were provided.");
+ context->validationError(GL_INVALID_OPERATION, kInsufficientParams);
return false;
}
@@ -4449,10 +4406,7 @@
case GL_PROGRAM_BINARY_LENGTH:
if (context->getClientMajorVersion() < 3 && !context->getExtensions().getProgramBinary)
{
- context->validationError(GL_INVALID_ENUM,
- "Querying GL_PROGRAM_BINARY_LENGTH "
- "requires GL_OES_get_program_binary or "
- "ES 3.0.");
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false;
}
break;
@@ -4465,7 +4419,7 @@
case GL_PROGRAM_BINARY_RETRIEVABLE_HINT:
if (context->getClientMajorVersion() < 3)
{
- context->validationError(GL_INVALID_ENUM, kES3Required);
+ context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES30);
return false;
}
break;
@@ -4474,7 +4428,7 @@
case GL_ACTIVE_ATOMIC_COUNTER_BUFFERS:
if (context->getClientVersion() < Version(3, 1))
{
- context->validationError(GL_INVALID_ENUM, kES31Required);
+ context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES31);
return false;
}
break;
@@ -4482,7 +4436,7 @@
case GL_COMPUTE_WORK_GROUP_SIZE:
if (context->getClientVersion() < Version(3, 1))
{
- context->validationError(GL_INVALID_ENUM, kES31Required);
+ context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES31);
return false;
}
@@ -5121,8 +5075,7 @@
case GL_UNSIGNED_INT:
if (context->getClientMajorVersion() < 3)
{
- context->validationError(GL_INVALID_ENUM,
- "Vertex type not supported before OpenGL ES 3.0.");
+ context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES30);
return false;
}
break;
@@ -5139,8 +5092,7 @@
case GL_HALF_FLOAT:
if (context->getClientMajorVersion() < 3)
{
- context->validationError(GL_INVALID_ENUM,
- "Vertex type not supported before OpenGL ES 3.0.");
+ context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES30);
return false;
}
if (pureInteger)
@@ -5154,8 +5106,7 @@
case GL_UNSIGNED_INT_2_10_10_10_REV:
if (context->getClientMajorVersion() < 3)
{
- context->validationError(GL_INVALID_ENUM,
- "Vertex type not supported before OpenGL ES 3.0.");
+ context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES30);
return false;
}
if (pureInteger)
@@ -5165,10 +5116,7 @@
}
if (size != 4)
{
- context->validationError(GL_INVALID_OPERATION,
- "Type is INT_2_10_10_10_REV or "
- "UNSIGNED_INT_2_10_10_10_REV and "
- "size is not 4.");
+ context->validationError(GL_INVALID_OPERATION, kInvalidVertexAttribSize2101010);
return false;
}
break;
@@ -5198,9 +5146,7 @@
const GLenum *end = validComponentTypes + validComponentTypeCount;
if (std::find(validComponentTypes, end, componentType) == end)
{
- context->validationError(
- GL_INVALID_OPERATION,
- "No defined conversion between clear value and attachment format.");
+ context->validationError(GL_INVALID_OPERATION, kNoDefinedClearConversion);
return false;
}
}
@@ -5220,7 +5166,7 @@
{
if (dataSize < imageSize)
{
- context->validationError(GL_INVALID_OPERATION, "dataSize is too small");
+ context->validationError(GL_INVALID_OPERATION, kCompressedDataSizeTooSmall);
}
}
return true;
@@ -5262,8 +5208,7 @@
case GL_BUFFER_ACCESS_OES:
if (!extensions.mapBuffer)
{
- context->validationError(GL_INVALID_ENUM,
- "pname requires OpenGL ES 3.0 or GL_OES_mapbuffer.");
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false;
}
break;
@@ -5273,10 +5218,7 @@
if (context->getClientMajorVersion() < 3 && !extensions.mapBuffer &&
!extensions.mapBufferRange)
{
- context->validationError(GL_INVALID_ENUM,
- "pname requires OpenGL ES 3.0, "
- "GL_OES_mapbuffer or "
- "GL_EXT_map_buffer_range.");
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false;
}
break;
@@ -5284,9 +5226,7 @@
case GL_BUFFER_MAP_POINTER:
if (!pointerVersion)
{
- context->validationError(
- GL_INVALID_ENUM,
- "GL_BUFFER_MAP_POINTER can only be queried with GetBufferPointerv.");
+ context->validationError(GL_INVALID_ENUM, kInvalidMapPointerQuery);
return false;
}
break;
@@ -5296,8 +5236,7 @@
case GL_BUFFER_MAP_LENGTH:
if (context->getClientMajorVersion() < 3 && !extensions.mapBufferRange)
{
- context->validationError(
- GL_INVALID_ENUM, "pname requires OpenGL ES 3.0 or GL_EXT_map_buffer_range.");
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false;
}
break;
@@ -5477,7 +5416,7 @@
case GL_TEXTURE_USAGE_ANGLE:
if (!context->getExtensions().textureUsage)
{
- context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled);
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false;
}
break;
@@ -5492,7 +5431,7 @@
case GL_TEXTURE_IMMUTABLE_FORMAT:
if (context->getClientMajorVersion() < 3 && !context->getExtensions().textureStorage)
{
- context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled);
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false;
}
break;
@@ -5511,7 +5450,7 @@
case GL_TEXTURE_COMPARE_FUNC:
if (context->getClientMajorVersion() < 3)
{
- context->validationError(GL_INVALID_ENUM, "pname requires OpenGL ES 3.0.");
+ context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES30);
return false;
}
break;
@@ -5519,8 +5458,7 @@
case GL_TEXTURE_SRGB_DECODE_EXT:
if (!context->getExtensions().textureSRGBDecode)
{
- context->validationError(GL_INVALID_ENUM,
- "GL_EXT_texture_sRGB_decode is not enabled.");
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false;
}
break;
@@ -5547,7 +5485,7 @@
case GL_MEMORY_SIZE_ANGLE:
if (!context->getExtensions().memorySize)
{
- context->validationError(GL_INVALID_ENUM, kExtensionNotEnabled);
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false;
}
break;
@@ -5586,7 +5524,7 @@
if (pureIntegerEntryPoint && context->getClientMajorVersion() < 3)
{
- context->validationError(GL_INVALID_OPERATION, "Context does not support OpenGL ES 3.0.");
+ context->validationError(GL_INVALID_OPERATION, kES3Required);
return false;
}
@@ -5624,10 +5562,7 @@
if (context->getClientMajorVersion() < 3 &&
!context->getExtensions().instancedArrays)
{
- context->validationError(GL_INVALID_ENUM,
- "GL_VERTEX_ATTRIB_ARRAY_DIVISOR "
- "requires OpenGL ES 3.0 or "
- "GL_ANGLE_instanced_arrays.");
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false;
}
break;
@@ -5635,8 +5570,7 @@
case GL_VERTEX_ATTRIB_ARRAY_INTEGER:
if (context->getClientMajorVersion() < 3)
{
- context->validationError(
- GL_INVALID_ENUM, "GL_VERTEX_ATTRIB_ARRAY_INTEGER requires OpenGL ES 3.0.");
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false;
}
break;
@@ -5645,8 +5579,7 @@
case GL_VERTEX_ATTRIB_RELATIVE_OFFSET:
if (context->getClientVersion() < ES_3_1)
{
- context->validationError(GL_INVALID_ENUM,
- "Vertex Attrib Bindings require OpenGL ES 3.1.");
+ context->validationError(GL_INVALID_ENUM, kEnumRequiresGLES31);
return false;
}
break;
@@ -5742,8 +5675,7 @@
// in the current read framebuffer is more than one.
if (framebuffer->readDisallowedByMultiview())
{
- context->validationError(GL_INVALID_FRAMEBUFFER_OPERATION,
- "Attempting to read from a multi-view framebuffer.");
+ context->validationError(GL_INVALID_FRAMEBUFFER_OPERATION, kMultiviewReadFramebuffer);
return false;
}
@@ -5791,7 +5723,7 @@
if (pixelPackBuffer != nullptr && pixelPackBuffer->isMapped())
{
// ...the buffer object's data store is currently mapped.
- context->validationError(GL_INVALID_OPERATION, "Pixel pack buffer is mapped.");
+ context->validationError(GL_INVALID_OPERATION, kBufferMapped);
return false;
}
if (context->getExtensions().webglCompatibility && pixelPackBuffer != nullptr &&
@@ -5959,10 +5891,7 @@
}
if (target == TextureType::External && !context->getExtensions().eglImageExternalEssl3)
{
- context->validationError(GL_INVALID_ENUM,
- "ES3 texture parameters are not "
- "available without "
- "GL_OES_EGL_image_external_essl3.");
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false;
}
break;
@@ -5993,8 +5922,7 @@
case GL_TEXTURE_COMPARE_MODE:
case GL_TEXTURE_COMPARE_FUNC:
case GL_TEXTURE_BORDER_COLOR:
- context->validationError(GL_INVALID_ENUM,
- "Invalid parameter for 2D multisampled textures.");
+ context->validationError(GL_INVALID_ENUM, kInvalidPname);
return false;
}
}
@@ -6104,27 +6032,24 @@
case GL_TEXTURE_BASE_LEVEL:
if (ConvertToGLint(params[0]) < 0)
{
- context->validationError(GL_INVALID_VALUE, "Base level must be at least 0.");
+ context->validationError(GL_INVALID_VALUE, kBaseLevelNegative);
return false;
}
if (target == TextureType::External && static_cast<GLuint>(params[0]) != 0)
{
- context->validationError(GL_INVALID_OPERATION,
- "Base level must be 0 for external textures.");
+ context->validationError(GL_INVALID_OPERATION, kBaseLevelNonZero);
return false;
}
if ((target == TextureType::_2DMultisample ||
target == TextureType::_2DMultisampleArray) &&
static_cast<GLuint>(params[0]) != 0)
{
- context->validationError(GL_INVALID_OPERATION,
- "Base level must be 0 for multisampled textures.");
+ context->validationError(GL_INVALID_OPERATION, kBaseLevelNonZero);
return false;
}
if (target == TextureType::Rectangle && static_cast<GLuint>(params[0]) != 0)
{
- context->validationError(GL_INVALID_OPERATION,
- "Base level must be 0 for rectangle textures.");
+ context->validationError(GL_INVALID_OPERATION, kBaseLevelNonZero);
return false;
}
break;
@@ -6259,8 +6184,7 @@
if (uniformBlockIndex >= programObject->getActiveUniformBlockCount())
{
- context->validationError(GL_INVALID_VALUE,
- "uniformBlockIndex exceeds active uniform block count.");
+ context->validationError(GL_INVALID_VALUE, kIndexExceedsActiveUniformBlockCount);
return false;
}
@@ -6460,8 +6384,7 @@
case GL_TEXTURE_SRGB_DECODE_EXT:
if (!context->getExtensions().textureSRGBDecode)
{
- context->validationError(GL_INVALID_ENUM,
- "GL_EXT_texture_sRGB_decode is not enabled.");
+ context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false;
}
break;
@@ -6507,7 +6430,7 @@
const TextureCaps &formatCaps = context->getTextureCaps().get(internalformat);
if (!formatCaps.renderbuffer)
{
- context->validationError(GL_INVALID_ENUM, "Internal format is not renderable.");
+ context->validationError(GL_INVALID_ENUM, kFormatNotRenderable);
return false;
}
@@ -6690,7 +6613,7 @@
if (context->getTargetTexture(type) == nullptr)
{
- context->validationError(GL_INVALID_ENUM, "No texture bound.");
+ context->validationError(GL_INVALID_ENUM, kTextureNotBound);
return false;
}