Lines Matching refs:att
432 struct gl_renderbuffer_attachment *att)
435 struct gl_renderbuffer *rb = att->Renderbuffer;
438 pt = get_teximage_resource(att->Texture,
439 att->CubeMapFace,
440 att->TextureLevel);
445 rb->rtt_face = att->CubeMapFace;
446 rb->rtt_slice = att->Zoffset;
447 rb->rtt_layered = att->Layered;
448 rb->rtt_nr_samples = att->NumSamples;
482 struct gl_renderbuffer_attachment *att)
484 struct gl_renderbuffer *rb = att->Renderbuffer;
490 if (att->Type == GL_TEXTURE) {
491 assert(att->Texture);
492 _mesa_reference_texobj(&att->Texture, NULL); /* unbind */
493 assert(!att->Texture);
495 if (att->Type == GL_TEXTURE || att->Type == GL_RENDERBUFFER_EXT) {
496 assert(!att->Texture);
497 _mesa_reference_renderbuffer(&att->Renderbuffer, NULL); /* unbind */
498 assert(!att->Renderbuffer);
500 att->Type = GL_NONE;
501 att->Complete = GL_TRUE;
509 driver_RenderTexture_is_safe(const struct gl_renderbuffer_attachment *att)
512 att->Texture->Image[att->CubeMapFace][att->TextureLevel];
520 && att->Zoffset >= texImage->Height)
522 && att->Zoffset >= texImage->Depth))
555 struct gl_renderbuffer_attachment *att)
560 texImage = att->Texture->Image[att->CubeMapFace][att->TextureLevel];
562 rb = att->Renderbuffer;
569 att->Renderbuffer = rb;
590 if (driver_RenderTexture_is_safe(att))
591 render_texture(ctx, fb, att);
601 struct gl_renderbuffer_attachment *att,
606 struct gl_renderbuffer *rb = att->Renderbuffer;
611 if (att->Texture == texObj) {
613 assert(att->Type == GL_TEXTURE);
617 remove_attachment(ctx, att);
618 att->Type = GL_TEXTURE;
619 assert(!att->Texture);
620 _mesa_reference_texobj(&att->Texture, texObj);
625 att->TextureLevel = level;
626 att->NumSamples = samples;
627 att->CubeMapFace = _mesa_tex_target_to_face(texTarget);
628 att->Zoffset = layer;
629 att->Layered = layered;
630 att->Complete = GL_FALSE;
632 _mesa_update_texture_renderbuffer(ctx, fb, att);
642 struct gl_renderbuffer_attachment *att,
646 remove_attachment(ctx, att);
647 att->Type = GL_RENDERBUFFER_EXT;
648 att->Texture = NULL; /* just to be safe */
649 att->Layered = GL_FALSE;
650 att->Complete = GL_FALSE;
651 _mesa_reference_renderbuffer(&att->Renderbuffer, rb);
665 struct gl_renderbuffer_attachment *att;
669 att = get_attachment(ctx, fb, attachment, NULL);
670 assert(att);
672 set_renderbuffer_attachment(ctx, att, rb);
675 att = get_attachment(ctx, fb, GL_STENCIL_ATTACHMENT_EXT, NULL);
676 assert(att);
677 set_renderbuffer_attachment(ctx, att, rb);
682 remove_attachment(ctx, att);
685 att = get_attachment(ctx, fb, GL_STENCIL_ATTACHMENT_EXT, NULL);
686 assert(att);
687 remove_attachment(ctx, att);
884 struct gl_renderbuffer_attachment *att)
887 if (!att->Texture || !is_float_format(att->Renderbuffer->InternalFormat))
893 if (att->Texture->_IsFloat && att->Renderbuffer->_BaseFormat == GL_RGBA)
897 if (att->Texture->_IsHalfFloat && !_mesa_has_EXT_color_buffer_half_float(ctx))
900 const struct gl_texture_object *texObj = att->Texture;
902 texObj->Image[att->CubeMapFace][att->TextureLevel];
905 att->Renderbuffer->InternalFormat);
932 struct gl_renderbuffer_attachment *att)
937 att->Complete = GL_TRUE;
940 if (att->Type == GL_TEXTURE) {
941 const struct gl_texture_object *texObj = att->Texture;
947 att->Complete = GL_FALSE;
951 texImage = texObj->Image[att->CubeMapFace][att->TextureLevel];
954 att->Complete = GL_FALSE;
964 _mesa_test_texobj_completeness(ctx, att->Texture);
967 att->Complete = GL_FALSE;
974 att->Complete = GL_FALSE;
980 if (att->Zoffset >= texImage->Depth) {
982 att->Complete = GL_FALSE;
987 if (att->Zoffset >= texImage->Height) {
989 att->Complete = GL_FALSE;
994 if (att->Zoffset >= texImage->Depth) {
996 att->Complete = GL_FALSE;
1001 if (att->Zoffset >= texImage->Depth) {
1003 att->Complete = GL_FALSE;
1014 att->Complete = GL_FALSE;
1019 att->Complete = GL_FALSE;
1028 if (_mesa_is_gles(ctx) && !gles_check_float_renderable(ctx, att)) {
1030 att->Complete = GL_FALSE;
1037 att->Complete = GL_FALSE;
1052 att->Complete = GL_FALSE;
1057 else if (att->Type == GL_RENDERBUFFER_EXT) {
1058 const GLenum baseFormat = att->Renderbuffer->_BaseFormat;
1060 assert(att->Renderbuffer);
1061 if (!att->Renderbuffer->InternalFormat ||
1062 att->Renderbuffer->Width < 1 ||
1063 att->Renderbuffer->Height < 1) {
1065 att->Complete = GL_FALSE;
1071 att->Complete = GL_FALSE;
1084 att->Complete = GL_FALSE;
1095 att->Complete = GL_FALSE;
1102 assert(att->Type == GL_NONE);
1124 const struct gl_renderbuffer_attachment *att,
1127 const struct gl_texture_object *stObj = att->Texture;
1142 if (att->Type != GL_TEXTURE)
1149 texFormat = att->Renderbuffer->TexImage->TexFormat;
1222 struct gl_renderbuffer_attachment *att =
1226 if (!do_validate_attachment(ctx, screen, att, PIPE_BIND_RENDER_TARGET)) {
1234 if (att->Type != GL_NONE) {
1235 format = att->Renderbuffer->surface->format;
1302 struct gl_renderbuffer_attachment *att;
1316 att = &fb->Attachment[BUFFER_DEPTH];
1317 test_attachment_completeness(ctx, GL_DEPTH, att);
1318 if (!att->Complete) {
1322 } else if (att->Type != GL_NONE) {
1327 att = &fb->Attachment[BUFFER_STENCIL];
1328 test_attachment_completeness(ctx, GL_STENCIL, att);
1329 if (!att->Complete) {
1333 } else if (att->Type != GL_NONE) {
1338 att = &fb->Attachment[BUFFER_COLOR0 + i];
1339 test_attachment_completeness(ctx, GL_COLOR, att);
1340 if (!att->Complete) {
1346 !gles_check_float_renderable(ctx, att)) {
1361 if (att->Type == GL_TEXTURE) {
1362 const struct gl_texture_image *texImg = att->Renderbuffer->TexImage;
1363 att_tex_target = att->Texture->Target;
1390 if (att->NumSamples > 0)
1391 attNumSamples = att->NumSamples;
1396 else if (att->Type == GL_RENDERBUFFER_EXT) {
1397 minWidth = MIN2(minWidth, att->Renderbuffer->Width);
1398 maxWidth = MAX2(maxWidth, att->Renderbuffer->Width);
1399 minHeight = MIN2(minHeight, att->Renderbuffer->Height);
1400 maxHeight = MAX2(maxHeight, att->Renderbuffer->Height);
1401 f = att->Renderbuffer->InternalFormat;
1402 baseFormat = att->Renderbuffer->_BaseFormat;
1403 attFormat = att->Renderbuffer->Format;
1415 attNumSamples = att->Renderbuffer->NumSamples;
1416 attNumStorageSamples = att->Renderbuffer->NumStorageSamples;
1419 assert(att->Type == GL_NONE);
1498 if (att->Type == GL_RENDERBUFFER &&
1499 att->Renderbuffer->Format == MESA_FORMAT_NONE) {
1506 if (att->Layered) {
1509 if (!_mesa_cube_complete(att->Texture)) {
1516 att_layer_count = att->Renderbuffer->Height;
1518 att_layer_count = att->Renderbuffer->Depth;
1541 is_layered = att->Layered;
1549 } else if (is_layered != att->Layered) {
1651 const struct gl_renderbuffer_attachment *att
1653 assert(att);
1654 if (att->Type == GL_NONE) {
1664 const struct gl_renderbuffer_attachment *att
1666 assert(att);
1667 if (att->Type == GL_NONE) {
2140 const void *att)
2146 if (fb->Attachment[i].Texture == att
2147 || fb->Attachment[i].Renderbuffer == att) {
2675 struct gl_renderbuffer_attachment *att = fb->Attachment + i;
2676 if (att->Type == GL_RENDERBUFFER &&
2677 att->Renderbuffer == rb) {
3195 struct gl_renderbuffer_attachment *att = fb->Attachment + i;
3196 if (att->Texture && att->Renderbuffer->TexImage
3197 && driver_RenderTexture_is_safe(att)) {
3198 render_texture(ctx, fb, att);
3217 struct gl_renderbuffer_attachment *att = fb->Attachment + i;
3218 struct gl_renderbuffer *rb = att->Renderbuffer;
3928 struct gl_renderbuffer_attachment *att =
3930 if (att == NULL) {
3943 return att;
3950 struct gl_renderbuffer_attachment *att,
3984 set_texture_attachment(ctx, fb, att, texObj, textarget,
3992 assert(att == &fb->Attachment[BUFFER_DEPTH]);
4009 remove_attachment(ctx, att);
4011 assert(att == &fb->Attachment[BUFFER_DEPTH]);
4036 struct gl_renderbuffer_attachment *att =
4039 _mesa_framebuffer_texture(ctx, fb, attachment, att, texObj, textarget,
4081 struct gl_renderbuffer_attachment *att =
4083 if (!att)
4086 _mesa_framebuffer_texture(ctx, fb, attachment, att, texObj, textarget,
4202 struct gl_renderbuffer_attachment *att;
4206 att = get_attachment(ctx, fb, attachment, NULL);
4212 att = _mesa_get_and_validate_attachment(ctx, fb, attachment, func);
4213 if (!att)
4246 _mesa_framebuffer_texture(ctx, fb, attachment, att, texObj, textarget,
4378 struct gl_renderbuffer_attachment *att;
4409 att = get_attachment(ctx, fb, attachment, &is_color_attachment);
4410 if (att == NULL) {
4560 const struct gl_renderbuffer_attachment *att;
4625 att = get_fb0_attachment(ctx, buffer, attachment);
4629 att = get_attachment(ctx, buffer, attachment, &is_color_attachment);
4632 if (att == NULL) {
4689 * on the case the spec is pointing, att->Type is already NONE, so we
4690 * just need to check att->Type.
4692 *params = (_mesa_is_winsys_fbo(buffer) && att->Type != GL_NONE) ?
4693 GL_FRAMEBUFFER_DEFAULT : att->Type;
4696 if (att->Type == GL_RENDERBUFFER_EXT) {
4697 *params = att->Renderbuffer->Name;
4699 else if (att->Type == GL_TEXTURE) {
4700 *params = att->Texture->Name;
4703 assert(att->Type == GL_NONE);
4712 if (att->Type == GL_TEXTURE) {
4713 *params = att->TextureLevel;
4715 else if (att->Type == GL_NONE) {
4724 if (att->Type == GL_TEXTURE) {
4725 if (att->Texture && att->Texture->Target == GL_TEXTURE_CUBE_MAP) {
4726 *params = GL_TEXTURE_CUBE_MAP_POSITIVE_X + att->CubeMapFace;
4732 else if (att->Type == GL_NONE) {
4743 } else if (att->Type == GL_NONE) {
4746 } else if (att->Type == GL_TEXTURE) {
4747 if (att->Texture && (att->Texture->Target == GL_TEXTURE_3D ||
4748 att->Texture->Target == GL_TEXTURE_2D_ARRAY)) {
4749 *params = att->Zoffset;
4765 else if (att->Type == GL_NONE) {
4776 *params = (_mesa_is_format_srgb(att->Renderbuffer->Format) ?
4793 else if (att->Type == GL_NONE) {
4798 mesa_format format = att->Renderbuffer->Format;
4845 else if (att->Texture) {
4847 _mesa_select_tex_image(att->Texture, att->Texture->Target,
4848 att->TextureLevel);
4857 else if (att->Renderbuffer) {
4858 *params = get_component_bits(pname, att->Renderbuffer->_BaseFormat,
4859 att->Renderbuffer->Format);
4862 assert(att->Type == GL_NONE);
4870 } else if (att->Type == GL_TEXTURE) {
4871 *params = att->Layered;
4872 } else if (att->Type == GL_NONE) {
4882 } else if (att->Type == GL_TEXTURE) {
4883 *params = att->NumSamples;
4884 } else if (att->Type == GL_NONE) {
5330 struct gl_renderbuffer_attachment *att)
5334 if (!att->Renderbuffer || !att->Complete)
5337 prsc = att->Renderbuffer->surface->texture;
5362 struct gl_renderbuffer_attachment *att =
5365 if (!att)
5375 (!att->Renderbuffer ||
5376 att->Renderbuffer->_BaseFormat == GL_DEPTH_STENCIL)) {
5392 do_discard_framebuffer(ctx, fb, att);