gallium: Do not mix winsys-drawable-handle and context-private.

update_buffer should be called with context-private, not
winsys-drawable-handle.
This commit is contained in:
Chia-I Wu 2010-03-10 22:20:15 +08:00
parent 9b348d0ed1
commit e4848d21e8
5 changed files with 8 additions and 12 deletions

View file

@ -265,6 +265,7 @@ struct pipe_screen {
/**
* 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 );
@ -272,10 +273,12 @@ struct pipe_screen {
/**
* 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 );

View file

@ -380,16 +380,8 @@ boolean st_make_current(struct vg_context *st,
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;
}

View file

@ -79,7 +79,7 @@ display_front_buffer(struct st_context *st)
/* 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;

View file

@ -287,7 +287,7 @@ st_make_current(struct st_context *st,
}
_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;
}

View file

@ -185,6 +185,7 @@ struct st_context
struct cso_context *cso_context;
int force_msaa;
void *winsys_drawable_handle;
};