/**
* Do any special operations to ensure buffer size is correct
+ * \param context_private the private data of the calling context
*/
void (*update_buffer)( struct pipe_screen *ws,
void *context_private );
/**
* Do any special operations to ensure frontbuffer contents are
* displayed, eg copy fake frontbuffer.
+ * \param winsys_drawable_handle an opaque handle that the calling context
+ * gets out-of-band
*/
void (*flush_frontbuffer)( struct pipe_screen *screen,
struct pipe_surface *surf,
- void *context_private );
+ void *winsys_drawable_handle );
void *winsys_drawable_handle)
{
vg_set_current_context(st);
- if (st) {
+ if (st)
st->draw_buffer = draw;
-
- /* VG state tracker doesn't seem to do front-buffer rendering
- * (no calls to flush_frontbuffer). If it ever did start doing
- * that, it would need to pass this value down in the
- * flush_frontbuffer call:
- */
- st->pipe->priv = winsys_drawable_handle;
- }
return VG_TRUE;
}
/* Hook for copying "fake" frontbuffer if necessary:
*/
st->pipe->screen->flush_frontbuffer( st->pipe->screen, front_surf,
- st->pipe->priv );
+ st->winsys_drawable_handle );
/*
st->frontbuffer_status = FRONT_STATUS_UNDEFINED;
}
_mesa_check_init_viewport(st->ctx, draw->InitWidth, draw->InitHeight);
- st->pipe->priv = winsys_drawable_handle;
+ st->winsys_drawable_handle = winsys_drawable_handle;
return GL_TRUE;
}
struct cso_context *cso_context;
int force_msaa;
+ void *winsys_drawable_handle;
};