예제 #1
0
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;
}
예제 #2
0
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;
}