⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 egl_internal.h

📁 Lido PXA270平台开发板的最新BSP,包括源代码
💻 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 + -