mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
wgl: Factor out some repetitive code into inline functions.
This commit is contained in:
parent
992000cce7
commit
d22828f716
1 changed files with 28 additions and 29 deletions
|
|
@ -47,6 +47,23 @@
|
|||
#include "stw_context.h"
|
||||
#include "stw_tls.h"
|
||||
|
||||
|
||||
static INLINE struct stw_context *
|
||||
stw_context(GLcontext *glctx)
|
||||
{
|
||||
if(!glctx)
|
||||
return NULL;
|
||||
assert(glctx->DriverCtx);
|
||||
return (struct stw_context *)glctx->DriverCtx;
|
||||
}
|
||||
|
||||
static INLINE struct stw_context *
|
||||
stw_current_context(void)
|
||||
{
|
||||
GET_CURRENT_CONTEXT( glctx );
|
||||
return stw_context(glctx);
|
||||
}
|
||||
|
||||
BOOL
|
||||
stw_copy_context(
|
||||
UINT_PTR hglrcSrc,
|
||||
|
|
@ -194,11 +211,10 @@ stw_delete_context(
|
|||
pipe_mutex_unlock( stw_dev->mutex );
|
||||
|
||||
if (ctx) {
|
||||
GLcontext *glctx = ctx->st->ctx;
|
||||
GET_CURRENT_CONTEXT( glcurctx );
|
||||
|
||||
struct stw_context *curctx = stw_current_context();
|
||||
|
||||
/* Unbind current if deleting current context. */
|
||||
if (glcurctx == glctx)
|
||||
if (curctx == ctx)
|
||||
st_make_current( NULL, NULL, NULL );
|
||||
|
||||
st_destroy_context(ctx->st);
|
||||
|
|
@ -230,13 +246,8 @@ stw_release_context(
|
|||
* current for this thread. We should check that and return False
|
||||
* if not the case.
|
||||
*/
|
||||
{
|
||||
GLcontext *glctx = ctx->st->ctx;
|
||||
GET_CURRENT_CONTEXT( glcurctx );
|
||||
|
||||
if (glcurctx != glctx)
|
||||
return FALSE;
|
||||
}
|
||||
if (ctx != stw_current_context())
|
||||
return FALSE;
|
||||
|
||||
if (stw_make_current( NULL, 0 ) == FALSE)
|
||||
return FALSE;
|
||||
|
|
@ -248,14 +259,9 @@ stw_release_context(
|
|||
UINT_PTR
|
||||
stw_get_current_context( void )
|
||||
{
|
||||
GET_CURRENT_CONTEXT( glcurctx );
|
||||
struct stw_context *ctx;
|
||||
|
||||
if(!glcurctx)
|
||||
return 0;
|
||||
|
||||
ctx = (struct stw_context *)glcurctx->DriverCtx;
|
||||
assert(ctx);
|
||||
ctx = stw_current_context();
|
||||
if(!ctx)
|
||||
return 0;
|
||||
|
||||
|
|
@ -265,14 +271,9 @@ stw_get_current_context( void )
|
|||
HDC
|
||||
stw_get_current_dc( void )
|
||||
{
|
||||
GET_CURRENT_CONTEXT( glcurctx );
|
||||
struct stw_context *ctx;
|
||||
|
||||
if(!glcurctx)
|
||||
return NULL;
|
||||
|
||||
ctx = (struct stw_context *)glcurctx->DriverCtx;
|
||||
assert(ctx);
|
||||
ctx = stw_current_context();
|
||||
if(!ctx)
|
||||
return NULL;
|
||||
|
||||
|
|
@ -284,19 +285,17 @@ stw_make_current(
|
|||
HDC hdc,
|
||||
UINT_PTR hglrc )
|
||||
{
|
||||
struct stw_context *curctx;
|
||||
struct stw_context *ctx;
|
||||
GET_CURRENT_CONTEXT( glcurctx );
|
||||
struct stw_framebuffer *fb;
|
||||
|
||||
if (!stw_dev)
|
||||
goto fail;
|
||||
|
||||
if (glcurctx != NULL) {
|
||||
struct stw_context *curctx;
|
||||
curctx = (struct stw_context *) glcurctx->DriverCtx;
|
||||
|
||||
curctx = stw_current_context();
|
||||
if (curctx != NULL) {
|
||||
if (curctx->hglrc != hglrc)
|
||||
st_flush(glcurctx->st, PIPE_FLUSH_RENDER_CACHE, NULL);
|
||||
st_flush(curctx->st, PIPE_FLUSH_RENDER_CACHE, NULL);
|
||||
|
||||
/* Return if already current. */
|
||||
if (curctx->hglrc == hglrc && curctx->hdc == hdc)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue