(void) ctx;
(void) target;
(void) internalFormat;
- (void) pname;
- (void) params;
- /* @TODO */
+ switch (pname) {
+ case GL_SAMPLES:
+ case GL_NUM_SAMPLE_COUNTS:
+ params[0] = 1;
+ break;
+ default:
+ /* @TODO: handle default values for all the different pnames. */
+ break;
+ }
}
void GLAPIENTRY
return;
}
- assert(ctx->Driver.QuerySamplesForFormat != NULL);
+ assert(ctx->Driver.QueryInternalFormat != NULL);
/* The ARB_internalformat_query spec says:
*
switch (pname) {
case GL_SAMPLES:
- ctx->Driver.QuerySamplesForFormat(ctx, target, internalformat, buffer);
+ ctx->Driver.QueryInternalFormat(ctx, target, internalformat, pname,
+ buffer);
break;
case GL_NUM_SAMPLE_COUNTS: {
if ((ctx->API == API_OPENGLES2 && ctx->Version == 30) &&
*/
buffer[0] = 0;
} else {
- size_t num_samples;
-
- /* The driver can return 0, and we should pass that along to the
- * application. The ARB decided that ARB_internalformat_query should
- * behave as ARB_internalformat_query2 in this situation.
- *
- * The ARB_internalformat_query2 spec says:
- *
- * "- NUM_SAMPLE_COUNTS: The number of sample counts that would be
- * returned by querying SAMPLES is returned in <params>.
- * * If <internalformat> is not color-renderable,
- * depth-renderable, or stencil-renderable (as defined in
- * section 4.4.4), or if <target> does not support multiple
- * samples (ie other than TEXTURE_2D_MULTISAMPLE,
- * TEXTURE_2D_MULTISAMPLE_ARRAY, or RENDERBUFFER), 0 is
- * returned."
- */
- num_samples = ctx->Driver.QuerySamplesForFormat(ctx, target, internalformat, buffer);
-
- /* QuerySamplesForFormat writes some stuff to buffer, so we have to
- * separately over-write it with the requested value.
- */
- buffer[0] = (GLint) num_samples;
+ ctx->Driver.QueryInternalFormat(ctx, target, internalformat, pname,
+ buffer);
}
break;
}