summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Piñeiro <[email protected]>2017-01-13 16:23:05 -0200
committerAlejandro Piñeiro <[email protected]>2017-02-06 08:50:21 +0100
commit0fb0c57b15aa6b5f48ab3f8596241248e02d55e5 (patch)
treeed156f5488ef3da319c548eb3a5b99c681a01045
parent0cd2a4737eb189fb37ff53c7583c8e4aa2d5a630 (diff)
main/fbobject: implement new 4.5 pnames for GetFramebufferParameter
4.5 added new pnames allowed for GetFramebufferParameter, and GetNamedFramebufferParameter. From OpenGL 4.5 spec, section 9.2.3 "Framebuffer Object Queries" (quoting the paragraph with only the new pnames, not all the supported): "pname may also be one of DOUBLEBUFFER, IMPLEMENTATION_COLOR_READ_FORMAT, IMPLEMENTATION_COLOR_READ_TYPE, SAMPLES, SAMPLE_BUFFERS, or STEREO, indicating the corresponding framebuffer-dependent state from table 23.73. Values of framebuffer-dependent state are identical to those that would be obtained were the framebuffer object bound and queried using the simple state queries in that table. These values may be queried from either a framebuffer object or a default framebuffer." Fixes: GL45-CTS.direct_state_access.framebuffers_get_parameters Reviewed-by: Anuj Phogat <[email protected]>
-rw-r--r--src/mesa/main/fbobject.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index f32f9316751..bed5b2573e4 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -1505,6 +1505,24 @@ get_framebuffer_parameteriv(struct gl_context *ctx, struct gl_framebuffer *fb,
case GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS:
*params = fb->DefaultGeometry.FixedSampleLocations;
break;
+ case GL_DOUBLEBUFFER:
+ *params = fb->Visual.doubleBufferMode;
+ break;
+ case GL_IMPLEMENTATION_COLOR_READ_FORMAT:
+ *params = _mesa_get_color_read_format(ctx, fb, func);
+ break;
+ case GL_IMPLEMENTATION_COLOR_READ_TYPE:
+ *params = _mesa_get_color_read_type(ctx, fb, func);
+ break;
+ case GL_SAMPLES:
+ *params = _mesa_geometric_samples(fb);
+ break;
+ case GL_SAMPLE_BUFFERS:
+ *params = _mesa_geometric_samples(fb) > 0;
+ break;
+ case GL_STEREO:
+ *params = fb->Visual.stereoMode;
+ break;
default:
_mesa_error(ctx, GL_INVALID_ENUM,
"%s(pname=0x%x)", func, pname);