static struct st_framebuffer * st_framebuffer_reuse_or_create(struct gl_framebuffer *fb, struct st_framebuffer_iface *stfbi) { struct st_framebuffer *cur = st_ws_framebuffer(fb), *stfb = NULL; if (cur && cur->iface == stfbi) { /* reuse the current stfb */ st_framebuffer_reference(&stfb, cur); } else { /* create a new one */ stfb = st_framebuffer_create(stfbi); } return stfb; }
static struct st_framebuffer * st_framebuffer_reuse_or_create(struct gl_framebuffer *fb, struct st_framebuffer_iface *stfbi) { struct st_framebuffer *cur = st_ws_framebuffer(fb), *stfb = NULL; /* dummy framebuffers cant be used as st_framebuffer */ if (cur && &cur->Base != _mesa_get_incomplete_framebuffer() && cur->iface == stfbi) { /* reuse the current stfb */ st_framebuffer_reference(&stfb, cur); } else { /* create a new one */ stfb = st_framebuffer_create(stfbi); } return stfb; }