Lines Matching refs:att
424 struct gl_renderbuffer_attachment *att) in remove_attachment() argument
426 struct gl_renderbuffer *rb = att->Renderbuffer; in remove_attachment()
432 if (att->Type == GL_TEXTURE) { in remove_attachment()
433 assert(att->Texture); in remove_attachment()
434 _mesa_reference_texobj(&att->Texture, NULL); /* unbind */ in remove_attachment()
435 assert(!att->Texture); in remove_attachment()
437 if (att->Type == GL_TEXTURE || att->Type == GL_RENDERBUFFER_EXT) { in remove_attachment()
438 assert(!att->Texture); in remove_attachment()
439 _mesa_reference_renderbuffer(&att->Renderbuffer, NULL); /* unbind */ in remove_attachment()
440 assert(!att->Renderbuffer); in remove_attachment()
442 att->Type = GL_NONE; in remove_attachment()
443 att->Complete = GL_TRUE; in remove_attachment()
451 driver_RenderTexture_is_safe(const struct gl_renderbuffer_attachment *att) in driver_RenderTexture_is_safe() argument
454 att->Texture->Image[att->CubeMapFace][att->TextureLevel]; in driver_RenderTexture_is_safe()
461 && att->Zoffset >= texImage->Height) in driver_RenderTexture_is_safe()
463 && att->Zoffset >= texImage->Depth)) in driver_RenderTexture_is_safe()
484 struct gl_renderbuffer_attachment *att) in _mesa_update_texture_renderbuffer() argument
489 texImage = att->Texture->Image[att->CubeMapFace][att->TextureLevel]; in _mesa_update_texture_renderbuffer()
491 rb = att->Renderbuffer; in _mesa_update_texture_renderbuffer()
498 att->Renderbuffer = rb; in _mesa_update_texture_renderbuffer()
521 if (driver_RenderTexture_is_safe(att)) in _mesa_update_texture_renderbuffer()
522 ctx->Driver.RenderTexture(ctx, fb, att); in _mesa_update_texture_renderbuffer()
532 struct gl_renderbuffer_attachment *att, in set_texture_attachment() argument
537 struct gl_renderbuffer *rb = att->Renderbuffer; in set_texture_attachment()
542 if (att->Texture == texObj) { in set_texture_attachment()
544 assert(att->Type == GL_TEXTURE); in set_texture_attachment()
548 remove_attachment(ctx, att); in set_texture_attachment()
549 att->Type = GL_TEXTURE; in set_texture_attachment()
550 assert(!att->Texture); in set_texture_attachment()
551 _mesa_reference_texobj(&att->Texture, texObj); in set_texture_attachment()
556 att->TextureLevel = level; in set_texture_attachment()
557 att->NumSamples = samples; in set_texture_attachment()
558 att->CubeMapFace = _mesa_tex_target_to_face(texTarget); in set_texture_attachment()
559 att->Zoffset = layer; in set_texture_attachment()
560 att->Layered = layered; in set_texture_attachment()
561 att->Complete = GL_FALSE; in set_texture_attachment()
563 _mesa_update_texture_renderbuffer(ctx, fb, att); in set_texture_attachment()
573 struct gl_renderbuffer_attachment *att, in set_renderbuffer_attachment() argument
577 remove_attachment(ctx, att); in set_renderbuffer_attachment()
578 att->Type = GL_RENDERBUFFER_EXT; in set_renderbuffer_attachment()
579 att->Texture = NULL; /* just to be safe */ in set_renderbuffer_attachment()
580 att->Layered = GL_FALSE; in set_renderbuffer_attachment()
581 att->Complete = GL_FALSE; in set_renderbuffer_attachment()
582 _mesa_reference_renderbuffer(&att->Renderbuffer, rb); in set_renderbuffer_attachment()
596 struct gl_renderbuffer_attachment *att; in _mesa_FramebufferRenderbuffer_sw() local
600 att = get_attachment(ctx, fb, attachment, NULL); in _mesa_FramebufferRenderbuffer_sw()
601 assert(att); in _mesa_FramebufferRenderbuffer_sw()
603 set_renderbuffer_attachment(ctx, att, rb); in _mesa_FramebufferRenderbuffer_sw()
606 att = get_attachment(ctx, fb, GL_STENCIL_ATTACHMENT_EXT, NULL); in _mesa_FramebufferRenderbuffer_sw()
607 assert(att); in _mesa_FramebufferRenderbuffer_sw()
608 set_renderbuffer_attachment(ctx, att, rb); in _mesa_FramebufferRenderbuffer_sw()
613 remove_attachment(ctx, att); in _mesa_FramebufferRenderbuffer_sw()
616 att = get_attachment(ctx, fb, GL_STENCIL_ATTACHMENT_EXT, NULL); in _mesa_FramebufferRenderbuffer_sw()
617 assert(att); in _mesa_FramebufferRenderbuffer_sw()
618 remove_attachment(ctx, att); in _mesa_FramebufferRenderbuffer_sw()
848 struct gl_renderbuffer_attachment *att) in gles_check_float_renderable() argument
851 if (!att->Texture || !is_float_format(att->Renderbuffer->InternalFormat)) in gles_check_float_renderable()
857 if (att->Texture->_IsFloat && att->Renderbuffer->_BaseFormat == GL_RGBA) in gles_check_float_renderable()
861 if (att->Texture->_IsHalfFloat && !_mesa_has_EXT_color_buffer_half_float(ctx)) in gles_check_float_renderable()
864 const struct gl_texture_object *texObj = att->Texture; in gles_check_float_renderable()
866 texObj->Image[att->CubeMapFace][att->TextureLevel]; in gles_check_float_renderable()
869 att->Renderbuffer->InternalFormat); in gles_check_float_renderable()
896 struct gl_renderbuffer_attachment *att) in test_attachment_completeness() argument
901 att->Complete = GL_TRUE; in test_attachment_completeness()
904 if (att->Type == GL_TEXTURE) { in test_attachment_completeness()
905 const struct gl_texture_object *texObj = att->Texture; in test_attachment_completeness()
911 att->Complete = GL_FALSE; in test_attachment_completeness()
915 texImage = texObj->Image[att->CubeMapFace][att->TextureLevel]; in test_attachment_completeness()
918 att->Complete = GL_FALSE; in test_attachment_completeness()
923 att->Complete = GL_FALSE; in test_attachment_completeness()
929 if (att->Zoffset >= texImage->Depth) { in test_attachment_completeness()
931 att->Complete = GL_FALSE; in test_attachment_completeness()
936 if (att->Zoffset >= texImage->Height) { in test_attachment_completeness()
938 att->Complete = GL_FALSE; in test_attachment_completeness()
943 if (att->Zoffset >= texImage->Depth) { in test_attachment_completeness()
945 att->Complete = GL_FALSE; in test_attachment_completeness()
950 if (att->Zoffset >= texImage->Depth) { in test_attachment_completeness()
952 att->Complete = GL_FALSE; in test_attachment_completeness()
963 att->Complete = GL_FALSE; in test_attachment_completeness()
968 att->Complete = GL_FALSE; in test_attachment_completeness()
977 if (_mesa_is_gles(ctx) && !gles_check_float_renderable(ctx, att)) { in test_attachment_completeness()
979 att->Complete = GL_FALSE; in test_attachment_completeness()
992 att->Complete = GL_FALSE; in test_attachment_completeness()
1008 att->Complete = GL_FALSE; in test_attachment_completeness()
1013 else if (att->Type == GL_RENDERBUFFER_EXT) { in test_attachment_completeness()
1014 const GLenum baseFormat = att->Renderbuffer->_BaseFormat; in test_attachment_completeness()
1016 assert(att->Renderbuffer); in test_attachment_completeness()
1017 if (!att->Renderbuffer->InternalFormat || in test_attachment_completeness()
1018 att->Renderbuffer->Width < 1 || in test_attachment_completeness()
1019 att->Renderbuffer->Height < 1) { in test_attachment_completeness()
1021 att->Complete = GL_FALSE; in test_attachment_completeness()
1027 att->Complete = GL_FALSE; in test_attachment_completeness()
1040 att->Complete = GL_FALSE; in test_attachment_completeness()
1051 att->Complete = GL_FALSE; in test_attachment_completeness()
1058 assert(att->Type == GL_NONE); in test_attachment_completeness()
1115 struct gl_renderbuffer_attachment *att; in _mesa_test_framebuffer_completeness() local
1129 att = &fb->Attachment[BUFFER_DEPTH]; in _mesa_test_framebuffer_completeness()
1130 test_attachment_completeness(ctx, GL_DEPTH, att); in _mesa_test_framebuffer_completeness()
1131 if (!att->Complete) { in _mesa_test_framebuffer_completeness()
1135 } else if (att->Type != GL_NONE) { in _mesa_test_framebuffer_completeness()
1140 att = &fb->Attachment[BUFFER_STENCIL]; in _mesa_test_framebuffer_completeness()
1141 test_attachment_completeness(ctx, GL_STENCIL, att); in _mesa_test_framebuffer_completeness()
1142 if (!att->Complete) { in _mesa_test_framebuffer_completeness()
1146 } else if (att->Type != GL_NONE) { in _mesa_test_framebuffer_completeness()
1151 att = &fb->Attachment[BUFFER_COLOR0 + i]; in _mesa_test_framebuffer_completeness()
1152 test_attachment_completeness(ctx, GL_COLOR, att); in _mesa_test_framebuffer_completeness()
1153 if (!att->Complete) { in _mesa_test_framebuffer_completeness()
1159 !gles_check_float_renderable(ctx, att)) { in _mesa_test_framebuffer_completeness()
1174 if (att->Type == GL_TEXTURE) { in _mesa_test_framebuffer_completeness()
1175 const struct gl_texture_image *texImg = att->Renderbuffer->TexImage; in _mesa_test_framebuffer_completeness()
1176 att_tex_target = att->Texture->Target; in _mesa_test_framebuffer_completeness()
1203 if (att->NumSamples > 0) in _mesa_test_framebuffer_completeness()
1204 attNumSamples = att->NumSamples; in _mesa_test_framebuffer_completeness()
1209 else if (att->Type == GL_RENDERBUFFER_EXT) { in _mesa_test_framebuffer_completeness()
1210 minWidth = MIN2(minWidth, att->Renderbuffer->Width); in _mesa_test_framebuffer_completeness()
1211 maxWidth = MAX2(minWidth, att->Renderbuffer->Width); in _mesa_test_framebuffer_completeness()
1212 minHeight = MIN2(minHeight, att->Renderbuffer->Height); in _mesa_test_framebuffer_completeness()
1213 maxHeight = MAX2(minHeight, att->Renderbuffer->Height); in _mesa_test_framebuffer_completeness()
1214 f = att->Renderbuffer->InternalFormat; in _mesa_test_framebuffer_completeness()
1215 baseFormat = att->Renderbuffer->_BaseFormat; in _mesa_test_framebuffer_completeness()
1216 attFormat = att->Renderbuffer->Format; in _mesa_test_framebuffer_completeness()
1228 attNumSamples = att->Renderbuffer->NumSamples; in _mesa_test_framebuffer_completeness()
1229 attNumStorageSamples = att->Renderbuffer->NumStorageSamples; in _mesa_test_framebuffer_completeness()
1232 assert(att->Type == GL_NONE); in _mesa_test_framebuffer_completeness()
1308 if (att->Type == GL_RENDERBUFFER && in _mesa_test_framebuffer_completeness()
1309 att->Renderbuffer->Format == MESA_FORMAT_NONE) { in _mesa_test_framebuffer_completeness()
1316 if (att->Layered) { in _mesa_test_framebuffer_completeness()
1320 att_layer_count = att->Renderbuffer->Height; in _mesa_test_framebuffer_completeness()
1322 att_layer_count = att->Renderbuffer->Depth; in _mesa_test_framebuffer_completeness()
1345 is_layered = att->Layered; in _mesa_test_framebuffer_completeness()
1353 } else if (is_layered != att->Layered) { in _mesa_test_framebuffer_completeness()
1455 const struct gl_renderbuffer_attachment *att in _mesa_test_framebuffer_completeness() local
1457 assert(att); in _mesa_test_framebuffer_completeness()
1458 if (att->Type == GL_NONE) { in _mesa_test_framebuffer_completeness()
1468 const struct gl_renderbuffer_attachment *att in _mesa_test_framebuffer_completeness() local
1470 assert(att); in _mesa_test_framebuffer_completeness()
1471 if (att->Type == GL_NONE) { in _mesa_test_framebuffer_completeness()
1946 const void *att) in _mesa_detach_renderbuffer() argument
1952 if (fb->Attachment[i].Texture == att in _mesa_detach_renderbuffer()
1953 || fb->Attachment[i].Renderbuffer == att) { in _mesa_detach_renderbuffer()
2463 struct gl_renderbuffer_attachment *att = fb->Attachment + i; in invalidate_rb() local
2464 if (att->Type == GL_RENDERBUFFER && in invalidate_rb()
2465 att->Renderbuffer == rb) { in invalidate_rb()
2998 struct gl_renderbuffer_attachment *att = fb->Attachment + i; in check_begin_texture_render() local
2999 if (att->Texture && att->Renderbuffer->TexImage in check_begin_texture_render()
3000 && driver_RenderTexture_is_safe(att)) { in check_begin_texture_render()
3001 ctx->Driver.RenderTexture(ctx, fb, att); in check_begin_texture_render()
3022 struct gl_renderbuffer_attachment *att = fb->Attachment + i; in check_end_texture_render() local
3023 struct gl_renderbuffer *rb = att->Renderbuffer; in check_end_texture_render()
3744 struct gl_renderbuffer_attachment *att = in _mesa_get_and_validate_attachment() local
3746 if (att == NULL) { in _mesa_get_and_validate_attachment()
3759 return att; in _mesa_get_and_validate_attachment()
3766 struct gl_renderbuffer_attachment *att, in _mesa_framebuffer_texture() argument
3800 set_texture_attachment(ctx, fb, att, texObj, textarget, in _mesa_framebuffer_texture()
3808 assert(att == &fb->Attachment[BUFFER_DEPTH]); in _mesa_framebuffer_texture()
3825 remove_attachment(ctx, att); in _mesa_framebuffer_texture()
3827 assert(att == &fb->Attachment[BUFFER_DEPTH]); in _mesa_framebuffer_texture()
3852 struct gl_renderbuffer_attachment *att = in framebuffer_texture_with_dims_no_error() local
3855 _mesa_framebuffer_texture(ctx, fb, attachment, att, texObj, textarget, in framebuffer_texture_with_dims_no_error()
3897 struct gl_renderbuffer_attachment *att = in framebuffer_texture_with_dims() local
3899 if (!att) in framebuffer_texture_with_dims()
3902 _mesa_framebuffer_texture(ctx, fb, attachment, att, texObj, textarget, in framebuffer_texture_with_dims()
4018 struct gl_renderbuffer_attachment *att; in frame_buffer_texture() local
4022 att = get_attachment(ctx, fb, attachment, NULL); in frame_buffer_texture()
4028 att = _mesa_get_and_validate_attachment(ctx, fb, attachment, func); in frame_buffer_texture()
4029 if (!att) in frame_buffer_texture()
4062 _mesa_framebuffer_texture(ctx, fb, attachment, att, texObj, textarget, in frame_buffer_texture()
4195 struct gl_renderbuffer_attachment *att; in framebuffer_renderbuffer() local
4226 att = get_attachment(ctx, fb, attachment, &is_color_attachment); in framebuffer_renderbuffer()
4227 if (att == NULL) { in framebuffer_renderbuffer()
4377 const struct gl_renderbuffer_attachment *att; in get_framebuffer_attachment_parameter() local
4442 att = get_fb0_attachment(ctx, buffer, attachment); in get_framebuffer_attachment_parameter()
4446 att = get_attachment(ctx, buffer, attachment, &is_color_attachment); in get_framebuffer_attachment_parameter()
4449 if (att == NULL) { in get_framebuffer_attachment_parameter()
4509 *params = (_mesa_is_winsys_fbo(buffer) && att->Type != GL_NONE) ? in get_framebuffer_attachment_parameter()
4510 GL_FRAMEBUFFER_DEFAULT : att->Type; in get_framebuffer_attachment_parameter()
4513 if (att->Type == GL_RENDERBUFFER_EXT) { in get_framebuffer_attachment_parameter()
4514 *params = att->Renderbuffer->Name; in get_framebuffer_attachment_parameter()
4516 else if (att->Type == GL_TEXTURE) { in get_framebuffer_attachment_parameter()
4517 *params = att->Texture->Name; in get_framebuffer_attachment_parameter()
4520 assert(att->Type == GL_NONE); in get_framebuffer_attachment_parameter()
4529 if (att->Type == GL_TEXTURE) { in get_framebuffer_attachment_parameter()
4530 *params = att->TextureLevel; in get_framebuffer_attachment_parameter()
4532 else if (att->Type == GL_NONE) { in get_framebuffer_attachment_parameter()
4541 if (att->Type == GL_TEXTURE) { in get_framebuffer_attachment_parameter()
4542 if (att->Texture && att->Texture->Target == GL_TEXTURE_CUBE_MAP) { in get_framebuffer_attachment_parameter()
4543 *params = GL_TEXTURE_CUBE_MAP_POSITIVE_X + att->CubeMapFace; in get_framebuffer_attachment_parameter()
4549 else if (att->Type == GL_NONE) { in get_framebuffer_attachment_parameter()
4560 } else if (att->Type == GL_NONE) { in get_framebuffer_attachment_parameter()
4563 } else if (att->Type == GL_TEXTURE) { in get_framebuffer_attachment_parameter()
4564 if (att->Texture && (att->Texture->Target == GL_TEXTURE_3D || in get_framebuffer_attachment_parameter()
4565 att->Texture->Target == GL_TEXTURE_2D_ARRAY)) { in get_framebuffer_attachment_parameter()
4566 *params = att->Zoffset; in get_framebuffer_attachment_parameter()
4582 else if (att->Type == GL_NONE) { in get_framebuffer_attachment_parameter()
4593 *params = (_mesa_is_format_srgb(att->Renderbuffer->Format) ? in get_framebuffer_attachment_parameter()
4610 else if (att->Type == GL_NONE) { in get_framebuffer_attachment_parameter()
4615 mesa_format format = att->Renderbuffer->Format; in get_framebuffer_attachment_parameter()
4662 else if (att->Texture) { in get_framebuffer_attachment_parameter()
4664 _mesa_select_tex_image(att->Texture, att->Texture->Target, in get_framebuffer_attachment_parameter()
4665 att->TextureLevel); in get_framebuffer_attachment_parameter()
4674 else if (att->Renderbuffer) { in get_framebuffer_attachment_parameter()
4675 *params = get_component_bits(pname, att->Renderbuffer->_BaseFormat, in get_framebuffer_attachment_parameter()
4676 att->Renderbuffer->Format); in get_framebuffer_attachment_parameter()
4679 assert(att->Type == GL_NONE); in get_framebuffer_attachment_parameter()
4687 } else if (att->Type == GL_TEXTURE) { in get_framebuffer_attachment_parameter()
4688 *params = att->Layered; in get_framebuffer_attachment_parameter()
4689 } else if (att->Type == GL_NONE) { in get_framebuffer_attachment_parameter()
4699 } else if (att->Type == GL_TEXTURE) { in get_framebuffer_attachment_parameter()
4700 *params = att->NumSamples; in get_framebuffer_attachment_parameter()
4701 } else if (att->Type == GL_NONE) { in get_framebuffer_attachment_parameter()
5153 struct gl_renderbuffer_attachment *att = in discard_framebuffer() local
5156 if (!att) in discard_framebuffer()
5166 (!att->Renderbuffer || in discard_framebuffer()
5167 att->Renderbuffer->_BaseFormat == GL_DEPTH_STENCIL)) { in discard_framebuffer()
5183 ctx->Driver.DiscardFramebuffer(ctx, fb, att); in discard_framebuffer()