* integer format, the SAMPLE_ALPHA_TO_COVERAGE and SAMPLE_ALPHA_TO_ONE
* operations are skipped."
*/
- struct gl_renderbuffer *rb0 = ctx->DrawBuffer->_ColorDrawBuffers[0];
- GLenum rb_zero_type =
- rb0 ? _mesa_get_format_datatype(rb0->Format) : GL_UNSIGNED_NORMALIZED;
-
- if (rb_zero_type != GL_INT && rb_zero_type != GL_UNSIGNED_INT) {
+ if (!(ctx->DrawBuffer->_IntegerBuffers & 0x1)) {
/* _NEW_MULTISAMPLE */
if (_mesa_is_multisample_enabled(ctx)) {
if (ctx->Multisample.SampleAlphaToCoverage) {
for (int i = 0; i < nr_draw_buffers; i++) {
/* _NEW_BUFFERS */
struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[i];
- GLenum rb_type =
- rb ? _mesa_get_format_datatype(rb->Format) : GL_UNSIGNED_NORMALIZED;
/* Used for implementing the following bit of GL_EXT_texture_integer:
* "Per-fragment operations that require floating-point color
* blending, and dithering, have no effect when the corresponding
* colors are written to an integer color buffer."
*/
- bool integer = rb_type == GL_INT || rb_type == GL_UNSIGNED_INT;
+ bool integer = ctx->DrawBuffer->_IntegerBuffers & (0x1 << i);
/* _NEW_COLOR */
if (ctx->Color.ColorLogicOpEnabled) {