mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-30 03:30:10 +01:00
mesa: validate size parameters for glTexStorage*Multisample
v2: code cleanup v3: check only dimensions, samples is checked separately later Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Timothy Arceri <t_arceri@yahoo.com.au>
This commit is contained in:
parent
a342becc49
commit
6a8e08cb89
1 changed files with 26 additions and 0 deletions
|
|
@ -5794,6 +5794,20 @@ _mesa_TexImage3DMultisample(GLenum target, GLsizei samples,
|
|||
"glTexImage3DMultisample");
|
||||
}
|
||||
|
||||
static bool
|
||||
valid_texstorage_ms_parameters(GLsizei width, GLsizei height, GLsizei depth,
|
||||
GLsizei samples, unsigned dims)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
if (!_mesa_valid_tex_storage_dim(width, height, depth)) {
|
||||
_mesa_error(ctx, GL_INVALID_VALUE,
|
||||
"glTexStorage%uDMultisample(width=%d,height=%d,depth=%d)",
|
||||
dims, width, height, depth);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_TexStorage2DMultisample(GLenum target, GLsizei samples,
|
||||
|
|
@ -5807,6 +5821,9 @@ _mesa_TexStorage2DMultisample(GLenum target, GLsizei samples,
|
|||
if (!texObj)
|
||||
return;
|
||||
|
||||
if (!valid_texstorage_ms_parameters(width, height, 1, samples, 2))
|
||||
return;
|
||||
|
||||
texture_image_multisample(ctx, 2, texObj, target, samples,
|
||||
internalformat, width, height, 1,
|
||||
fixedsamplelocations, GL_TRUE,
|
||||
|
|
@ -5826,6 +5843,9 @@ _mesa_TexStorage3DMultisample(GLenum target, GLsizei samples,
|
|||
if (!texObj)
|
||||
return;
|
||||
|
||||
if (!valid_texstorage_ms_parameters(width, height, depth, samples, 3))
|
||||
return;
|
||||
|
||||
texture_image_multisample(ctx, 3, texObj, target, samples,
|
||||
internalformat, width, height, depth,
|
||||
fixedsamplelocations, GL_TRUE,
|
||||
|
|
@ -5846,6 +5866,9 @@ _mesa_TextureStorage2DMultisample(GLuint texture, GLsizei samples,
|
|||
if (!texObj)
|
||||
return;
|
||||
|
||||
if (!valid_texstorage_ms_parameters(width, height, 1, samples, 2))
|
||||
return;
|
||||
|
||||
texture_image_multisample(ctx, 2, texObj, texObj->Target, samples,
|
||||
internalformat, width, height, 1,
|
||||
fixedsamplelocations, GL_TRUE,
|
||||
|
|
@ -5867,6 +5890,9 @@ _mesa_TextureStorage3DMultisample(GLuint texture, GLsizei samples,
|
|||
if (!texObj)
|
||||
return;
|
||||
|
||||
if (!valid_texstorage_ms_parameters(width, height, depth, samples, 3))
|
||||
return;
|
||||
|
||||
texture_image_multisample(ctx, 3, texObj, texObj->Target, samples,
|
||||
internalformat, width, height, depth,
|
||||
fixedsamplelocations, GL_TRUE,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue