ソースを参照

egl: Move context functions in egldisplay.[ch] to eglcontext.[ch].

Move functions to where they should be.  There should be no real change
here.
tags/7.8-rc1
Chia-I Wu 15年前
コミット
5e66d18932
4個のファイルの変更132行の追加118行の削除
  1. 69
    0
      src/egl/main/eglcontext.c
  2. 63
    0
      src/egl/main/eglcontext.h
  3. 0
    63
      src/egl/main/egldisplay.c
  4. 0
    55
      src/egl/main/egldisplay.h

+ 69
- 0
src/egl/main/eglcontext.c ファイルの表示

@@ -251,3 +251,72 @@ _eglCopyContextMESA(_EGLDriver *drv, EGLDisplay dpy, EGLContext source,
*/
return EGL_FALSE;
}


/**
* Link a context to a display and return the handle of the link.
* The handle can be passed to client directly.
*/
EGLContext
_eglLinkContext(_EGLContext *ctx, _EGLDisplay *dpy)
{
ctx->Display = dpy;
ctx->Next = dpy->ContextList;
dpy->ContextList = ctx;
return (EGLContext) ctx;
}


/**
* Unlink a linked context from its display.
* Accessing an unlinked context should generate EGL_BAD_CONTEXT error.
*/
void
_eglUnlinkContext(_EGLContext *ctx)
{
_EGLContext *prev;

prev = ctx->Display->ContextList;
if (prev != ctx) {
while (prev) {
if (prev->Next == ctx)
break;
prev = prev->Next;
}
assert(prev);
prev->Next = ctx->Next;
}
else {
ctx->Display->ContextList = ctx->Next;
}

ctx->Next = NULL;
ctx->Display = NULL;
}


#ifndef _EGL_SKIP_HANDLE_CHECK


/**
* Return EGL_TRUE if the given handle is a valid handle to a context.
*/
EGLBoolean
_eglCheckContextHandle(EGLContext ctx, _EGLDisplay *dpy)
{
_EGLContext *cur = NULL;

if (dpy)
cur = dpy->ContextList;
while (cur) {
if (cur == (_EGLContext *) ctx) {
assert(cur->Display == dpy);
break;
}
cur = cur->Next;
}
return (cur != NULL);
}


#endif /* !_EGL_SKIP_HANDLE_CHECK */

+ 63
- 0
src/egl/main/eglcontext.h ファイルの表示

@@ -65,4 +65,67 @@ _eglIsContextBound(_EGLContext *ctx)
}


extern EGLContext
_eglLinkContext(_EGLContext *ctx, _EGLDisplay *dpy);


extern void
_eglUnlinkContext(_EGLContext *ctx);


#ifndef _EGL_SKIP_HANDLE_CHECK


extern EGLBoolean
_eglCheckContextHandle(EGLContext ctx, _EGLDisplay *dpy);


#else /* !_EGL_SKIP_HANDLE_CHECK */


static INLINE EGLBoolean
_eglCheckContextHandle(EGLContext ctx, _EGLDisplay *dpy)
{
_EGLContext *c = (_EGLContext *) ctx;
return (dpy && c && c->Display == dpy);
}


#endif /* _EGL_SKIP_HANDLE_CHECK */


/**
* Lookup a handle to find the linked context.
* Return NULL if the handle has no corresponding linked context.
*/
static INLINE _EGLContext *
_eglLookupContext(EGLContext context, _EGLDisplay *dpy)
{
_EGLContext *ctx = (_EGLContext *) context;
if (!_eglCheckContextHandle(context, dpy))
ctx = NULL;
return ctx;
}


/**
* Return the handle of a linked context, or EGL_NO_CONTEXT.
*/
static INLINE EGLContext
_eglGetContextHandle(_EGLContext *ctx)
{
return (EGLContext) ((ctx && ctx->Display) ? ctx : EGL_NO_CONTEXT);
}


/**
* Return true if the context is linked to a display.
*/
static INLINE EGLBoolean
_eglIsContextLinked(_EGLContext *ctx)
{
return (EGLBoolean) (_eglGetContextHandle(ctx) != EGL_NO_CONTEXT);
}


#endif /* EGLCONTEXT_INCLUDED */

+ 0
- 63
src/egl/main/egldisplay.c ファイルの表示

@@ -182,48 +182,6 @@ _eglCleanupDisplay(_EGLDisplay *disp)
}


/**
* Link a context to a display and return the handle of the link.
* The handle can be passed to client directly.
*/
EGLContext
_eglLinkContext(_EGLContext *ctx, _EGLDisplay *dpy)
{
ctx->Display = dpy;
ctx->Next = dpy->ContextList;
dpy->ContextList = ctx;
return (EGLContext) ctx;
}


/**
* Unlink a linked context from its display.
* Accessing an unlinked context should generate EGL_BAD_CONTEXT error.
*/
void
_eglUnlinkContext(_EGLContext *ctx)
{
_EGLContext *prev;

prev = ctx->Display->ContextList;
if (prev != ctx) {
while (prev) {
if (prev->Next == ctx)
break;
prev = prev->Next;
}
assert(prev);
prev->Next = ctx->Next;
}
else {
ctx->Display->ContextList = ctx->Next;
}

ctx->Next = NULL;
ctx->Display = NULL;
}


/**
* Link a surface to a display and return the handle of the link.
* The handle can be passed to client directly.
@@ -290,27 +248,6 @@ _eglCheckDisplayHandle(EGLDisplay dpy)
}


/**
* Return EGL_TRUE if the given handle is a valid handle to a context.
*/
EGLBoolean
_eglCheckContextHandle(EGLContext ctx, _EGLDisplay *dpy)
{
_EGLContext *cur = NULL;

if (dpy)
cur = dpy->ContextList;
while (cur) {
if (cur == (_EGLContext *) ctx) {
assert(cur->Display == dpy);
break;
}
cur = cur->Next;
}
return (cur != NULL);
}


/**
* Return EGL_TRUE if the given handle is a valid handle to a surface.
*/

+ 0
- 55
src/egl/main/egldisplay.h ファイルの表示

@@ -3,7 +3,6 @@

#include "egltypedefs.h"
#include "egldefines.h"
#include "eglcontext.h"
#include "eglsurface.h"


@@ -81,14 +80,6 @@ PUBLIC void
_eglCleanupDisplay(_EGLDisplay *disp);


extern EGLContext
_eglLinkContext(_EGLContext *ctx, _EGLDisplay *dpy);


extern void
_eglUnlinkContext(_EGLContext *ctx);


extern EGLSurface
_eglLinkSurface(_EGLSurface *surf, _EGLDisplay *dpy);

@@ -104,10 +95,6 @@ extern EGLBoolean
_eglCheckDisplayHandle(EGLDisplay dpy);


extern EGLBoolean
_eglCheckContextHandle(EGLContext ctx, _EGLDisplay *dpy);


extern EGLBoolean
_eglCheckSurfaceHandle(EGLSurface surf, _EGLDisplay *dpy);

@@ -123,14 +110,6 @@ _eglCheckDisplayHandle(EGLDisplay dpy)
}


static INLINE EGLBoolean
_eglCheckContextHandle(EGLContext ctx, _EGLDisplay *dpy)
{
_EGLContext *c = (_EGLContext *) ctx;
return (dpy && c && c->Display == dpy);
}


static INLINE EGLBoolean
_eglCheckSurfaceHandle(EGLSurface surf, _EGLDisplay *dpy)
{
@@ -176,40 +155,6 @@ _eglIsDisplayLinked(_EGLDisplay *dpy)
}


/**
* Lookup a handle to find the linked context.
* Return NULL if the handle has no corresponding linked context.
*/
static INLINE _EGLContext *
_eglLookupContext(EGLContext context, _EGLDisplay *dpy)
{
_EGLContext *ctx = (_EGLContext *) context;
if (!_eglCheckContextHandle(context, dpy))
ctx = NULL;
return ctx;
}


/**
* Return the handle of a linked context, or EGL_NO_CONTEXT.
*/
static INLINE EGLContext
_eglGetContextHandle(_EGLContext *ctx)
{
return (EGLContext) ((ctx && ctx->Display) ? ctx : EGL_NO_CONTEXT);
}


/**
* Return true if the context is linked to a display.
*/
static INLINE EGLBoolean
_eglIsContextLinked(_EGLContext *ctx)
{
return (EGLBoolean) (_eglGetContextHandle(ctx) != EGL_NO_CONTEXT);
}


/**
* Lookup a handle to find the linked surface.
* Return NULL if the handle has no corresponding linked surface.

読み込み中…
キャンセル
保存