mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1240662 - Add max level check for framebufferTextureLayer. r=jgilbert
This commit is contained in:
parent
590c676956
commit
e7647a066a
@ -258,7 +258,7 @@ WebGL2Context::BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY
|
||||
static bool
|
||||
ValidateTextureLayerAttachment(GLenum attachment)
|
||||
{
|
||||
if (LOCAL_GL_COLOR_ATTACHMENT0 < attachment &&
|
||||
if (LOCAL_GL_COLOR_ATTACHMENT0 <= attachment &&
|
||||
attachment <= LOCAL_GL_COLOR_ATTACHMENT15)
|
||||
{
|
||||
return true;
|
||||
@ -293,15 +293,23 @@ WebGL2Context::FramebufferTextureLayer(GLenum target, GLenum attachment,
|
||||
"texture object.");
|
||||
}
|
||||
|
||||
if (level < 0)
|
||||
if (layer < 0)
|
||||
return ErrorInvalidValue("framebufferTextureLayer: layer must be >= 0.");
|
||||
|
||||
if (level < 0)
|
||||
return ErrorInvalidValue("framebufferTextureLayer: level must be >= 0.");
|
||||
|
||||
switch (texture->Target().get()) {
|
||||
case LOCAL_GL_TEXTURE_3D:
|
||||
if (uint32_t(layer) >= mImplMax3DTextureSize) {
|
||||
return ErrorInvalidValue("framebufferTextureLayer: layer must be < "
|
||||
"MAX_3D_TEXTURE_SIZE");
|
||||
}
|
||||
|
||||
if (uint32_t(level) > FloorLog2(mImplMax3DTextureSize)) {
|
||||
return ErrorInvalidValue("framebufferTextureLayer: layer mube be <= "
|
||||
"log2(MAX_3D_TEXTURE_SIZE");
|
||||
}
|
||||
break;
|
||||
|
||||
case LOCAL_GL_TEXTURE_2D_ARRAY:
|
||||
@ -309,6 +317,11 @@ WebGL2Context::FramebufferTextureLayer(GLenum target, GLenum attachment,
|
||||
return ErrorInvalidValue("framebufferTextureLayer: layer must be < "
|
||||
"MAX_ARRAY_TEXTURE_LAYERS");
|
||||
}
|
||||
|
||||
if (uint32_t(level) > FloorLog2(mImplMaxTextureSize)) {
|
||||
return ErrorInvalidValue("framebufferTextureLayer: layer mube be <= "
|
||||
"log2(MAX_TEXTURE_SIZE");
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user