Commit fb8a830e by Jamie Madill Committed by Shannon Woods

Add a helper method to return the selected texture for the TexParameter* and…

Add a helper method to return the selected texture for the TexParameter* and GetTexParameter* family of functions. TRAC #23454 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods Authored-by: Jamie Madill
parent 478fdb2b
...@@ -2087,6 +2087,25 @@ bool validateTexParamParameters(gl::Context *context, GLenum pname, GLint param) ...@@ -2087,6 +2087,25 @@ bool validateTexParamParameters(gl::Context *context, GLenum pname, GLint param)
} }
gl::Texture *getTargetTexture(gl::Context *context, GLenum target)
{
if (context->getClientVersion() < 3)
{
if (target == GL_TEXTURE_3D || target == GL_TEXTURE_2D_ARRAY)
{
return NULL;
}
}
switch (target)
{
case GL_TEXTURE_2D: return context->getTexture2D();
case GL_TEXTURE_CUBE_MAP: return context->getTextureCubeMap();
case GL_TEXTURE_3D: return context->getTexture3D();
case GL_TEXTURE_2D_ARRAY: return context->getTexture2DArray();
default: return NULL;
}
}
extern "C" extern "C"
{ {
...@@ -5666,33 +5685,12 @@ void __stdcall glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params) ...@@ -5666,33 +5685,12 @@ void __stdcall glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params)
if (context) if (context)
{ {
gl::Texture *texture; gl::Texture *texture = getTargetTexture(context, target);
switch (target) if (!texture)
{
case GL_TEXTURE_2D:
texture = context->getTexture2D();
break;
case GL_TEXTURE_CUBE_MAP:
texture = context->getTextureCubeMap();
break;
case GL_TEXTURE_3D:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
texture = context->getTexture3D();
break;
case GL_TEXTURE_2D_ARRAY:
if (context->getClientVersion() < 3)
{ {
return gl::error(GL_INVALID_ENUM); return gl::error(GL_INVALID_ENUM);
} }
texture = context->getTexture2DArray();
break;
default:
return gl::error(GL_INVALID_ENUM);
}
switch (pname) switch (pname)
{ {
...@@ -5757,33 +5755,12 @@ void __stdcall glGetTexParameteriv(GLenum target, GLenum pname, GLint* params) ...@@ -5757,33 +5755,12 @@ void __stdcall glGetTexParameteriv(GLenum target, GLenum pname, GLint* params)
if (context) if (context)
{ {
gl::Texture *texture; gl::Texture *texture = getTargetTexture(context, target);
switch (target) if (!texture)
{
case GL_TEXTURE_2D:
texture = context->getTexture2D();
break;
case GL_TEXTURE_CUBE_MAP:
texture = context->getTextureCubeMap();
break;
case GL_TEXTURE_3D:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
texture = context->getTexture3D();
break;
case GL_TEXTURE_2D_ARRAY:
if (context->getClientVersion() < 3)
{ {
return gl::error(GL_INVALID_ENUM); return gl::error(GL_INVALID_ENUM);
} }
texture = context->getTexture2DArray();
break;
default:
return gl::error(GL_INVALID_ENUM);
}
switch (pname) switch (pname)
{ {
...@@ -7166,32 +7143,12 @@ void __stdcall glTexParameterf(GLenum target, GLenum pname, GLfloat param) ...@@ -7166,32 +7143,12 @@ void __stdcall glTexParameterf(GLenum target, GLenum pname, GLfloat param)
return; return;
} }
gl::Texture *texture; gl::Texture *texture = getTargetTexture(context, target);
switch (target) if (!texture)
{
case GL_TEXTURE_2D:
texture = context->getTexture2D();
break;
case GL_TEXTURE_CUBE_MAP:
texture = context->getTextureCubeMap();
break;
case GL_TEXTURE_3D:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
texture = context->getTexture3D();
case GL_TEXTURE_2D_ARRAY:
if (context->getClientVersion() < 3)
{ {
return gl::error(GL_INVALID_ENUM); return gl::error(GL_INVALID_ENUM);
} }
texture = context->getTexture2DArray();
break;
default:
return gl::error(GL_INVALID_ENUM);
}
switch (pname) switch (pname)
{ {
...@@ -7246,33 +7203,12 @@ void __stdcall glTexParameteri(GLenum target, GLenum pname, GLint param) ...@@ -7246,33 +7203,12 @@ void __stdcall glTexParameteri(GLenum target, GLenum pname, GLint param)
return; return;
} }
gl::Texture *texture; gl::Texture *texture = getTargetTexture(context, target);
switch (target) if (!texture)
{
case GL_TEXTURE_2D:
texture = context->getTexture2D();
break;
case GL_TEXTURE_CUBE_MAP:
texture = context->getTextureCubeMap();
break;
case GL_TEXTURE_3D:
if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_ENUM);
}
texture = context->getTexture3D();
break;
case GL_TEXTURE_2D_ARRAY:
if (context->getClientVersion() < 3)
{ {
return gl::error(GL_INVALID_ENUM); return gl::error(GL_INVALID_ENUM);
} }
texture = context->getTexture2DArray();
break;
default:
return gl::error(GL_INVALID_ENUM);
}
switch (pname) switch (pname)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment