mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-09 18:10:29 +01:00
mesa/formatquery: Added mipmap related <pname> queries
Specifically MIPMAP, MANUAL_GENERATE_MIPMAP and AUTO_GENERATE_MIPMAP <pname>
queries.
From the ARB_internalformat_query2 specification:
"- MIPMAP: If the resource supports mipmaps, TRUE is returned in <params>.
If the resource is not supported, or if mipmaps are not supported for
this type of resource, FALSE is returned.
- MANUAL_GENERATE_MIPMAP: The support for manually generating mipmaps for
the resource is returned in <params>.
Possible values returned are FULL_SUPPORT, CAVEAT_SUPPORT, or NONE.
If the resource is not supported, or if the operation is not supported,
NONE is returned.
- AUTO_GENERATE_MIPMAP: The support for automatic generation of mipmaps
for the resource is returned in <params>.
Possible values returned are FULL_SUPPORT, CAVEAT_SUPPORT, or NONE.
If the resource is not supported, or if the operation is not supported,
NONE is returned."
Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
079d99b830
commit
87b2de3998
1 changed files with 33 additions and 7 deletions
|
|
@ -32,6 +32,7 @@
|
|||
#include "texparam.h"
|
||||
#include "texobj.h"
|
||||
#include "get.h"
|
||||
#include "genmipmap.h"
|
||||
|
||||
static bool
|
||||
_is_renderable(struct gl_context *ctx, GLenum internalformat)
|
||||
|
|
@ -595,6 +596,11 @@ _mesa_query_internal_format_default(struct gl_context *ctx, GLenum target,
|
|||
params[0] = internalFormat;
|
||||
break;
|
||||
|
||||
case GL_MANUAL_GENERATE_MIPMAP:
|
||||
case GL_AUTO_GENERATE_MIPMAP:
|
||||
params[0] = GL_FULL_SUPPORT;
|
||||
break;
|
||||
|
||||
default:
|
||||
_set_default_response(pname, params);
|
||||
break;
|
||||
|
|
@ -1061,15 +1067,35 @@ _mesa_GetInternalformativ(GLenum target, GLenum internalformat, GLenum pname,
|
|||
break;
|
||||
|
||||
case GL_MIPMAP:
|
||||
/* @TODO */
|
||||
break;
|
||||
|
||||
case GL_MANUAL_GENERATE_MIPMAP:
|
||||
/* @TODO */
|
||||
break;
|
||||
|
||||
case GL_AUTO_GENERATE_MIPMAP:
|
||||
/* @TODO */
|
||||
if (!_mesa_is_valid_generate_texture_mipmap_target(ctx, target) ||
|
||||
!_mesa_is_valid_generate_texture_mipmap_internalformat(ctx,
|
||||
internalformat)) {
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (pname == GL_MIPMAP) {
|
||||
buffer[0] = GL_TRUE;
|
||||
goto end;
|
||||
}
|
||||
else if (pname == GL_MANUAL_GENERATE_MIPMAP) {
|
||||
if (!_mesa_has_ARB_framebuffer_object(ctx))
|
||||
goto end;
|
||||
}
|
||||
else {
|
||||
/* From ARB_internalformat_query2:
|
||||
* "Dependencies on OpenGL 3.2 (Core Profile)
|
||||
* In core profiles for OpenGL 3.2 and later versions, queries
|
||||
* for the AUTO_GENERATE_MIPMAP <pname> return the appropriate
|
||||
* unsupported response."
|
||||
*/
|
||||
if (_mesa_is_desktop_gl(ctx) && ctx->Version >= 32)
|
||||
goto end;
|
||||
}
|
||||
|
||||
ctx->Driver.QueryInternalFormat(ctx, target, internalformat, pname,
|
||||
buffer);
|
||||
break;
|
||||
|
||||
case GL_COLOR_ENCODING:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue