mesa/genmipmap: Added a function to check if the target is valid

It will be used by the ARB_internalformat_query2 implementation to
implement mipmap related queries.

Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Antia Puentes
2015-11-26 15:08:47 +01:00
committed by Eduardo Lima Mitev
parent df3a37311d
commit 06852f4b7a
2 changed files with 24 additions and 13 deletions

View File

@@ -38,20 +38,11 @@
#include "texobj.h"
#include "hash.h"
/**
* Implements glGenerateMipmap and glGenerateTextureMipmap.
* Generates all the mipmap levels below the base level.
*/
void
_mesa_generate_texture_mipmap(struct gl_context *ctx,
struct gl_texture_object *texObj, GLenum target,
bool dsa)
bool
_mesa_is_valid_generate_texture_mipmap_target(struct gl_context *ctx,
GLenum target)
{
struct gl_texture_image *srcImage;
GLboolean error;
const char *suffix = dsa ? "Texture" : "";
FLUSH_VERTICES(ctx, 0);
switch (target) {
case GL_TEXTURE_1D:
@@ -81,7 +72,24 @@ _mesa_generate_texture_mipmap(struct gl_context *ctx,
error = GL_TRUE;
}
if (error) {
return (error != GL_TRUE);
}
/**
* Implements glGenerateMipmap and glGenerateTextureMipmap.
* Generates all the mipmap levels below the base level.
*/
void
_mesa_generate_texture_mipmap(struct gl_context *ctx,
struct gl_texture_object *texObj, GLenum target,
bool dsa)
{
struct gl_texture_image *srcImage;
const char *suffix = dsa ? "Texture" : "";
FLUSH_VERTICES(ctx, 0);
if (!_mesa_is_valid_generate_texture_mipmap_target(ctx, target)) {
_mesa_error(ctx, GL_INVALID_ENUM, "glGenerate%sMipmap(target=%s)",
suffix, _mesa_enum_to_string(target));
return;

View File

@@ -32,6 +32,9 @@ extern void
_mesa_generate_texture_mipmap(struct gl_context *ctx,
struct gl_texture_object *texObj, GLenum target,
bool dsa);
bool
_mesa_is_valid_generate_texture_mipmap_target(struct gl_context *ctx,
GLenum target);
extern void GLAPIENTRY
_mesa_GenerateMipmap(GLenum target);