Home | History | Annotate | Download | only in state_tracker

Lines Matching defs:stfb

183 st_framebuffer_validate(struct st_framebuffer *stfb,
193 if (!stfb->iface)
196 new_stamp = p_atomic_read(&stfb->iface->stamp);
197 if (stfb->iface_stamp == new_stamp)
202 if (!stfb->iface->validate(&st->iface, stfb->iface, stfb->statts,
203 stfb->num_statts, textures))
206 stfb->iface_stamp = new_stamp;
207 new_stamp = p_atomic_read(&stfb->iface->stamp);
208 } while(stfb->iface_stamp != new_stamp);
210 width = stfb->Base.Width;
211 height = stfb->Base.Height;
213 for (i = 0; i < stfb->num_statts; i++) {
221 idx = attachment_to_buffer_index(stfb->statts[i]);
227 strb = st_renderbuffer(stfb->Base.Attachment[idx].Renderbuffer);
255 ++stfb->stamp;
256 _mesa_resize_framebuffer(st->ctx, &stfb->Base, width, height);
264 st_framebuffer_update_attachments(struct st_framebuffer *stfb)
268 stfb->num_statts = 0;
273 strb = st_renderbuffer(stfb->Base.Attachment[idx].Renderbuffer);
279 st_visual_have_buffers(stfb->iface->visual, 1 << statt))
280 stfb->statts[stfb->num_statts++] = statt;
282 stfb->stamp++;
289 st_framebuffer_add_renderbuffer(struct st_framebuffer *stfb,
296 if (!stfb->iface)
305 format = stfb->iface->visual->depth_stencil_format;
309 format = stfb->iface->visual->accum_format;
313 format = stfb->iface->visual->color_format;
314 if (stfb->Base.Visual.sRGBCapable)
323 rb = st_new_renderbuffer_fb(format, stfb->iface->visual->samples, sw);
328 _mesa_add_renderbuffer(&stfb->Base, idx, rb);
332 _mesa_add_renderbuffer(&stfb->Base, BUFFER_DEPTH, rb);
334 _mesa_add_renderbuffer(&stfb->Base, BUFFER_STENCIL, rb);
418 struct st_framebuffer *stfb;
425 stfb = CALLOC_STRUCT(st_framebuffer);
426 if (!stfb)
463 _mesa_initialize_window_framebuffer(&stfb->Base, &mode);
465 stfb->iface = stfbi;
466 stfb->iface_stamp = p_atomic_read(&stfbi->stamp) - 1;
469 idx = stfb->Base._ColorDrawBufferIndexes[0];
470 if (!st_framebuffer_add_renderbuffer(stfb, idx)) {
471 free(stfb);
475 st_framebuffer_add_renderbuffer(stfb, BUFFER_DEPTH);
476 st_framebuffer_add_renderbuffer(stfb, BUFFER_ACCUM);
478 stfb->stamp = 0;
479 st_framebuffer_update_attachments(stfb);
481 return stfb;
489 struct st_framebuffer *stfb)
491 struct gl_framebuffer *fb = &stfb->Base;
741 struct st_framebuffer *cur = st_ws_framebuffer(fb), *stfb = NULL;
746 /* reuse the current stfb */
747 st_framebuffer_reference(&stfb, cur);
751 stfb = st_framebuffer_create(st, stfbi);
754 return stfb;
821 struct st_framebuffer *stfb = st_ws_framebuffer(st->ctx->DrawBuffer);
824 if (stfb)
825 strb = st_renderbuffer(stfb->Base.Attachment[BUFFER_FRONT_LEFT].Renderbuffer);
830 assert(&stfb->Base != _mesa_get_incomplete_framebuffer());
831 stfb->iface->flush_front(&st->iface, stfb->iface, ST_ATTACHMENT_FRONT_LEFT);
889 struct st_framebuffer *stfb = st_ws_framebuffer(fb);
892 if (!stfb)
895 if (stfb->Base.Attachment[idx].Renderbuffer)
908 if (!st_framebuffer_add_renderbuffer(stfb, idx))
911 st_framebuffer_update_attachments(stfb);
918 if(stfb->iface)
919 stfb->iface_stamp = p_atomic_read(&stfb->iface->stamp) - 1;