📄 egl_internal.h
字号:
/* -*- c-file-style: "img" -*-
<module>
* Name : egl_internal.h
* Title : Khronos EGL Internal Definitions.
* Author : Marcus Shawcroft
* Created : 4 Nov 2003
*
* Copyright : 2003 by Imagination Technologies Limited.
* All rights reserved. No part of this software, either
* material or conceptual may be copied or distributed,
* transmitted, transcribed, stored in a retrieval system
* or translated into any human or computer language in any
* form by any means, electronic, mechanical, manual or
* other-wise, or disclosed to third parties without the
* express written permission of Imagination Technologies
* Limited, Unit 8, HomePark Industrial Estate,
* King's Langley, Hertfordshire, WD4 8LZ, U.K.
*
* Description : Definitions internal to the EGL implementation.
*
* Platform : ALL
*
</module>
*/
#ifndef _EGL_INTERNAL_H_
#define _EGL_INTERNAL_H_
#include "cfg-core.h"
#include "drvegl.h"
#include "servicesglue.h"
#include "ws_internal.h"
#include "wsglue.h"
typedef struct _KEGL_DISPLAY_ KEGL_DISPLAY;
struct _KEGL_DISPLAY_
{
EGLBoolean isInitialised;
NativeDisplayType nativeDisplay;
/* head of the surface list for this display */
EGLSurface pHeadSurface;
/* window system specific stuff */
struct ws_native_dpy_tag ws;
};
typedef enum egl_surface_type_tag
{
EGL_SURFACE_WINDOW,
EGL_SURFACE_PIXMAP,
EGL_SURFACE_PBUFFER
} egl_surface_type;
typedef struct _KEGL_SURFACE_ KEGL_SURFACE;
struct _KEGL_SURFACE_
{
/* Next surface on this display */
KEGL_SURFACE *pNextSurface;
/* this surface is current */
EGLint currentCount;
/* In surfaces that are current, ie have a currentCount > 0,
boundThread contains the systems identity for the binding
thread. For non current surfaces, boundThread is not defined. */
EGLint boundThread;
/* this surface is marked for deletion as soon as it is no longer current */
EGLBoolean isDeleting;
/* enumerated type - window, pixmap, pbuffer */
egl_surface_type type;
union
{
struct
{
NativeWindowType native;
struct ws_native_window_tag ws;
} window;
struct
{
NativePixmapType native;
} pixmap;
struct
{
PVRSRV_MEM_INFO *memInfo;
} pbuffer;
} u;
/* configuration of this surface */
KEGL_CONFIG *pCfg;
/* display associated with this surface */
KEGL_DISPLAY *pDpy;
GLESSysContext *pvrsrv_context;
PVRSRV_QUEUE_INFO *psQueueInfo;
GLESRenderSurfaceHandle hRenderSurface;
PVRSRV_SURF sCurrentRenderSurface;
};
typedef struct _KEGL_CONTEXT_ KEGL_CONTEXT;
struct _KEGL_CONTEXT_
{
EGLBoolean isFirstMakeCurrent;
/* Indicates that the context is bound as the current context. Note in
a multi threaded environment there may be multiple current contexts. */
EGLBoolean isCurrent;
/* In contexts that are marked current, boundThread contains the
systems identitiy for the binding thread. For non current
contexts, boundThread is not defined. */
EGLint boundThread;
/* Indicates that this context is in the process of deleting
itself. Deletion will complete when the context becomes
un-bound. */
EGLBoolean isDeleting;
/* The display on which this context was created. */
EGLDisplay eglDpy;
KEGL_DISPLAY *pDpy;
/* The configuration with which this context was created. */
KEGL_CONFIG *pCfg;
/* The OpenGL context handled created for this context. */
GLESContextHandle hOGL;
GLEScontextMode contextMode;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -