Lines Matching refs:att

419                   struct gl_renderbuffer_attachment *att)
421 struct gl_renderbuffer *rb = att->Renderbuffer;
427 if (att->Type == GL_TEXTURE) {
428 assert(att->Texture);
429 _mesa_reference_texobj(&att->Texture, NULL); /* unbind */
430 assert(!att->Texture);
432 if (att->Type == GL_TEXTURE || att->Type == GL_RENDERBUFFER_EXT) {
433 assert(!att->Texture);
434 _mesa_reference_renderbuffer(&att->Renderbuffer, NULL); /* unbind */
435 assert(!att->Renderbuffer);
437 att->Type = GL_NONE;
438 att->Complete = GL_TRUE;
446 driver_RenderTexture_is_safe(const struct gl_renderbuffer_attachment *att)
449 att->Texture->Image[att->CubeMapFace][att->TextureLevel];
456 && att->Zoffset >= texImage->Height)
458 && att->Zoffset >= texImage->Depth))
479 struct gl_renderbuffer_attachment *att)
484 texImage = att->Texture->Image[att->CubeMapFace][att->TextureLevel];
486 rb = att->Renderbuffer;
493 att->Renderbuffer = rb;
516 if (driver_RenderTexture_is_safe(att))
517 ctx->Driver.RenderTexture(ctx, fb, att);
527 struct gl_renderbuffer_attachment *att,
532 struct gl_renderbuffer *rb = att->Renderbuffer;
537 if (att->Texture == texObj) {
539 assert(att->Type == GL_TEXTURE);
543 remove_attachment(ctx, att);
544 att->Type = GL_TEXTURE;
545 assert(!att->Texture);
546 _mesa_reference_texobj(&att->Texture, texObj);
551 att->TextureLevel = level;
552 att->NumSamples = samples;
553 att->CubeMapFace = _mesa_tex_target_to_face(texTarget);
554 att->Zoffset = layer;
555 att->Layered = layered;
556 att->Complete = GL_FALSE;
558 _mesa_update_texture_renderbuffer(ctx, fb, att);
568 struct gl_renderbuffer_attachment *att,
572 remove_attachment(ctx, att);
573 att->Type = GL_RENDERBUFFER_EXT;
574 att->Texture = NULL; /* just to be safe */
575 att->Layered = GL_FALSE;
576 att->Complete = GL_FALSE;
577 _mesa_reference_renderbuffer(&att->Renderbuffer, rb);
591 struct gl_renderbuffer_attachment *att;
595 att = get_attachment(ctx, fb, attachment, NULL);
596 assert(att);
598 set_renderbuffer_attachment(ctx, att, rb);
601 att = get_attachment(ctx, fb, GL_STENCIL_ATTACHMENT_EXT, NULL);
602 assert(att);
603 set_renderbuffer_attachment(ctx, att, rb);
608 remove_attachment(ctx, att);
611 att = get_attachment(ctx, fb, GL_STENCIL_ATTACHMENT_EXT, NULL);
612 assert(att);
613 remove_attachment(ctx, att);
849 struct gl_renderbuffer_attachment *att)
852 if (!att->Texture || !is_float_format(att->Renderbuffer->InternalFormat))
858 if (att->Texture->_IsFloat && att->Renderbuffer->_BaseFormat == GL_RGBA)
862 if (att->Texture->_IsHalfFloat && !_mesa_has_EXT_color_buffer_half_float(ctx))
865 const struct gl_texture_object *texObj = att->Texture;
867 texObj->Image[att->CubeMapFace][att->TextureLevel];
870 att->Renderbuffer->InternalFormat);
897 struct gl_renderbuffer_attachment *att)
902 att->Complete = GL_TRUE;
905 if (att->Type == GL_TEXTURE) {
906 const struct gl_texture_object *texObj = att->Texture;
912 att->Complete = GL_FALSE;
916 texImage = texObj->Image[att->CubeMapFace][att->TextureLevel];
919 att->Complete = GL_FALSE;
929 _mesa_test_texobj_completeness(ctx, att->Texture);
932 att->Complete = GL_FALSE;
939 att->Complete = GL_FALSE;
945 if (att->Zoffset >= texImage->Depth) {
947 att->Complete = GL_FALSE;
952 if (att->Zoffset >= texImage->Height) {
954 att->Complete = GL_FALSE;
959 if (att->Zoffset >= texImage->Depth) {
961 att->Complete = GL_FALSE;
966 if (att->Zoffset >= texImage->Depth) {
968 att->Complete = GL_FALSE;
979 att->Complete = GL_FALSE;
984 att->Complete = GL_FALSE;
993 if (_mesa_is_gles(ctx) && !gles_check_float_renderable(ctx, att)) {
995 att->Complete = GL_FALSE;
1008 att->Complete = GL_FALSE;
1024 att->Complete = GL_FALSE;
1029 else if (att->Type == GL_RENDERBUFFER_EXT) {
1030 const GLenum baseFormat = att->Renderbuffer->_BaseFormat;
1032 assert(att->Renderbuffer);
1033 if (!att->Renderbuffer->InternalFormat ||
1034 att->Renderbuffer->Width < 1 ||
1035 att->Renderbuffer->Height < 1) {
1037 att->Complete = GL_FALSE;
1043 att->Complete = GL_FALSE;
1056 att->Complete = GL_FALSE;
1067 att->Complete = GL_FALSE;
1074 assert(att->Type == GL_NONE);
1131 struct gl_renderbuffer_attachment *att;
1145 att = &fb->Attachment[BUFFER_DEPTH];
1146 test_attachment_completeness(ctx, GL_DEPTH, att);
1147 if (!att->Complete) {
1151 } else if (att->Type != GL_NONE) {
1156 att = &fb->Attachment[BUFFER_STENCIL];
1157 test_attachment_completeness(ctx, GL_STENCIL, att);
1158 if (!att->Complete) {
1162 } else if (att->Type != GL_NONE) {
1167 att = &fb->Attachment[BUFFER_COLOR0 + i];
1168 test_attachment_completeness(ctx, GL_COLOR, att);
1169 if (!att->Complete) {
1175 !gles_check_float_renderable(ctx, att)) {
1190 if (att->Type == GL_TEXTURE) {
1191 const struct gl_texture_image *texImg = att->Renderbuffer->TexImage;
1192 att_tex_target = att->Texture->Target;
1219 if (att->NumSamples > 0)
1220 attNumSamples = att->NumSamples;
1225 else if (att->Type == GL_RENDERBUFFER_EXT) {
1226 minWidth = MIN2(minWidth, att->Renderbuffer->Width);
1227 maxWidth = MAX2(maxWidth, att->Renderbuffer->Width);
1228 minHeight = MIN2(minHeight, att->Renderbuffer->Height);
1229 maxHeight = MAX2(maxHeight, att->Renderbuffer->Height);
1230 f = att->Renderbuffer->InternalFormat;
1231 baseFormat = att->Renderbuffer->_BaseFormat;
1232 attFormat = att->Renderbuffer->Format;
1244 attNumSamples = att->Renderbuffer->NumSamples;
1245 attNumStorageSamples = att->Renderbuffer->NumStorageSamples;
1248 assert(att->Type == GL_NONE);
1325 if (att->Type == GL_RENDERBUFFER &&
1326 att->Renderbuffer->Format == MESA_FORMAT_NONE) {
1333 if (att->Layered) {
1336 if (!_mesa_cube_complete(att->Texture)) {
1343 att_layer_count = att->Renderbuffer->Height;
1345 att_layer_count = att->Renderbuffer->Depth;
1368 is_layered = att->Layered;
1376 } else if (is_layered != att->Layered) {
1478 const struct gl_renderbuffer_attachment *att
1480 assert(att);
1481 if (att->Type == GL_NONE) {
1491 const struct gl_renderbuffer_attachment *att
1493 assert(att);
1494 if (att->Type == GL_NONE) {
1969 const void *att)
1975 if (fb->Attachment[i].Texture == att
1976 || fb->Attachment[i].Renderbuffer == att) {
2504 struct gl_renderbuffer_attachment *att = fb->Attachment + i;
2505 if (att->Type == GL_RENDERBUFFER &&
2506 att->Renderbuffer == rb) {
3046 struct gl_renderbuffer_attachment *att = fb->Attachment + i;
3047 if (att->Texture && att->Renderbuffer->TexImage
3048 && driver_RenderTexture_is_safe(att)) {
3049 ctx->Driver.RenderTexture(ctx, fb, att);
3070 struct gl_renderbuffer_attachment *att = fb->Attachment + i;
3071 struct gl_renderbuffer *rb = att->Renderbuffer;
3790 struct gl_renderbuffer_attachment *att =
3792 if (att == NULL) {
3805 return att;
3812 struct gl_renderbuffer_attachment *att,
3846 set_texture_attachment(ctx, fb, att, texObj, textarget,
3854 assert(att == &fb->Attachment[BUFFER_DEPTH]);
3871 remove_attachment(ctx, att);
3873 assert(att == &fb->Attachment[BUFFER_DEPTH]);
3898 struct gl_renderbuffer_attachment *att =
3901 _mesa_framebuffer_texture(ctx, fb, attachment, att, texObj, textarget,
3943 struct gl_renderbuffer_attachment *att =
3945 if (!att)
3948 _mesa_framebuffer_texture(ctx, fb, attachment, att, texObj, textarget,
4064 struct gl_renderbuffer_attachment *att;
4068 att = get_attachment(ctx, fb, attachment, NULL);
4074 att = _mesa_get_and_validate_attachment(ctx, fb, attachment, func);
4075 if (!att)
4108 _mesa_framebuffer_texture(ctx, fb, attachment, att, texObj, textarget,
4241 struct gl_renderbuffer_attachment *att;
4272 att = get_attachment(ctx, fb, attachment, &is_color_attachment);
4273 if (att == NULL) {
4423 const struct gl_renderbuffer_attachment *att;
4488 att = get_fb0_attachment(ctx, buffer, attachment);
4492 att = get_attachment(ctx, buffer, attachment, &is_color_attachment);
4495 if (att == NULL) {
4552 * on the case the spec is pointing, att->Type is already NONE, so we
4553 * just need to check att->Type.
4555 *params = (_mesa_is_winsys_fbo(buffer) && att->Type != GL_NONE) ?
4556 GL_FRAMEBUFFER_DEFAULT : att->Type;
4559 if (att->Type == GL_RENDERBUFFER_EXT) {
4560 *params = att->Renderbuffer->Name;
4562 else if (att->Type == GL_TEXTURE) {
4563 *params = att->Texture->Name;
4566 assert(att->Type == GL_NONE);
4575 if (att->Type == GL_TEXTURE) {
4576 *params = att->TextureLevel;
4578 else if (att->Type == GL_NONE) {
4587 if (att->Type == GL_TEXTURE) {
4588 if (att->Texture && att->Texture->Target == GL_TEXTURE_CUBE_MAP) {
4589 *params = GL_TEXTURE_CUBE_MAP_POSITIVE_X + att->CubeMapFace;
4595 else if (att->Type == GL_NONE) {
4606 } else if (att->Type == GL_NONE) {
4609 } else if (att->Type == GL_TEXTURE) {
4610 if (att->Texture && (att->Texture->Target == GL_TEXTURE_3D ||
4611 att->Texture->Target == GL_TEXTURE_2D_ARRAY)) {
4612 *params = att->Zoffset;
4628 else if (att->Type == GL_NONE) {
4639 *params = (_mesa_is_format_srgb(att->Renderbuffer->Format) ?
4656 else if (att->Type == GL_NONE) {
4661 mesa_format format = att->Renderbuffer->Format;
4708 else if (att->Texture) {
4710 _mesa_select_tex_image(att->Texture, att->Texture->Target,
4711 att->TextureLevel);
4720 else if (att->Renderbuffer) {
4721 *params = get_component_bits(pname, att->Renderbuffer->_BaseFormat,
4722 att->Renderbuffer->Format);
4725 assert(att->Type == GL_NONE);
4733 } else if (att->Type == GL_TEXTURE) {
4734 *params = att->Layered;
4735 } else if (att->Type == GL_NONE) {
4745 } else if (att->Type == GL_TEXTURE) {
4746 *params = att->NumSamples;
4747 } else if (att->Type == GL_NONE) {
5199 struct gl_renderbuffer_attachment *att =
5202 if (!att)
5212 (!att->Renderbuffer ||
5213 att->Renderbuffer->_BaseFormat == GL_DEPTH_STENCIL)) {
5229 ctx->Driver.DiscardFramebuffer(ctx, fb, att);