diff options
author | Antia Puentes <[email protected]> | 2015-12-19 18:35:57 +0100 |
---|---|---|
committer | Eduardo Lima Mitev <[email protected]> | 2016-03-03 15:14:06 +0100 |
commit | df3a37311d2cb1bf83e6803a8c974b7269d4c3c9 (patch) | |
tree | 882e6650ff6c97d3b890166baf3f99e40576d2a3 /src/mesa/main/formatquery.c | |
parent | c22ceb08bb4340b8f6e13e5b94fb288ce1bfeefa (diff) |
mesa/formatquery: Added {COLOR,DEPTH,STENCIL}_RENDERABLE <pname> queries
Reviewed-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/mesa/main/formatquery.c')
-rw-r--r-- | src/mesa/main/formatquery.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/mesa/main/formatquery.c b/src/mesa/main/formatquery.c index 5d7df15fd0d..339bee0d454 100644 --- a/src/mesa/main/formatquery.c +++ b/src/mesa/main/formatquery.c @@ -1001,15 +1001,23 @@ _mesa_GetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, break; case GL_COLOR_RENDERABLE: - /* @TODO */ - break; - case GL_DEPTH_RENDERABLE: - /* @TODO */ - break; - case GL_STENCIL_RENDERABLE: - /* @TODO */ + if (!_is_renderable(ctx, internalformat)) + goto end; + + if (pname == GL_COLOR_RENDERABLE) { + if (!_mesa_is_color_format(internalformat)) + goto end; + } else { + GLenum baseFormat = _mesa_base_fbo_format(ctx, internalformat); + if (baseFormat != GL_DEPTH_STENCIL && + ((pname == GL_DEPTH_RENDERABLE && baseFormat != GL_DEPTH_COMPONENT) || + (pname == GL_STENCIL_RENDERABLE && baseFormat != GL_STENCIL_INDEX))) + goto end; + } + + buffer[0] = GL_TRUE; break; case GL_FRAMEBUFFER_RENDERABLE: |