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

📄 glcore.h

📁 mesa-6.5-minigui源码
💻 H
📖 第 1 页 / 共 2 页
字号:
    /*    ** Framebuffer base address    */    void *base;    /*    ** Framebuffer size (in bytes)    */    GLuint size;    /*    ** Size (in bytes) of each element in the framebuffer    */    GLuint elementSize;    GLuint elementSizeLog2;    /*    ** Element skip from one scanline to the next.    ** If the buffer is part of another buffer (for example, fullscreen    ** front buffer), outerWidth is the width of that buffer.    */    GLint outerWidth;    /*    ** outerWidth * elementSize    */    GLint byteWidth;    /*    ** Allocation/deallocation is done based on this handle.  A handle    ** is conceptually different from the framebuffer 'base'.    */    void *handle;    /* imported */    GLboolean (*resize)(__GLdrawableBuffer *buf,			GLint x, GLint y, GLuint width, GLuint height, 			__GLdrawablePrivate *glPriv, GLuint bufferMask);    void (*lock)(__GLdrawableBuffer *buf, __GLdrawablePrivate *glPriv);    void (*unlock)(__GLdrawableBuffer *buf, __GLdrawablePrivate *glPriv);    void (*fill)(__GLdrawableBuffer *buf, __GLdrawablePrivate *glPriv,    		GLuint val, GLint x, GLint y, GLint w, GLint h);    void (*free)(__GLdrawableBuffer *buf, __GLdrawablePrivate *glPriv);    /* exported */    void (*freePrivate)(__GLdrawableBuffer *buf, __GLdrawablePrivate *glPriv);#ifdef __cplusplus    void *privatePtr;#else    void *private;#endif    /* private */    void *other;	/* implementation private data */    __GLbufMainInitFn mainInit;    __GLbufFallbackInitFn fallbackInit;};/*** The context side of the drawable private*/struct __GLdrawablePrivateRec {    /*    ** Drawable Modes    */    __GLcontextModes *modes;    /*    ** Drawable size    */    GLuint width, height;    /*    ** Origin in screen coordinates of the drawable    */    GLint xOrigin, yOrigin;#ifdef __GL_ALIGNED_BUFFERS    /*    ** Drawable offset from screen origin    */    GLint xOffset, yOffset;    /*    ** Alignment restriction    */    GLint xAlignment, yAlignment;#endif    /*    ** Should we invert the y axis?    */    GLint yInverted;    /*    ** Mask specifying which buffers are renderable by the hw    */    GLuint accelBufferMask;    /*    ** the buffers themselves    */    __GLdrawableBuffer frontBuffer;    __GLdrawableBuffer backBuffer;    __GLdrawableBuffer accumBuffer;    __GLdrawableBuffer depthBuffer;    __GLdrawableBuffer stencilBuffer;#if defined(__GL_NUMBER_OF_AUX_BUFFERS) && (__GL_NUMBER_OF_AUX_BUFFERS > 0)    __GLdrawableBuffer *auxBuffer;#endif    __GLdrawableRegion ownershipRegion;    /*    ** Lock for the drawable private structure    */    void *lock;#ifdef DEBUG    /* lock debugging info */    int lockRefCount;    int lockLine[10];    char *lockFile[10];#endif    /* imported */    void *(*malloc)(size_t size);    void *(*calloc)(size_t numElem, size_t elemSize);    void *(*realloc)(void *oldAddr, size_t newSize);    void (*free)(void *addr);    GLboolean (*addSwapRect)(__GLdrawablePrivate *glPriv, 			     GLint x, GLint y, GLsizei width, GLsizei height);    void (*setClipRect)(__GLdrawablePrivate *glPriv, 			GLint x, GLint y, GLsizei width, GLsizei height);    void (*updateClipRegion)(__GLdrawablePrivate *glPriv);    GLboolean (*resize)(__GLdrawablePrivate *glPriv);    void (*getDrawableSize)(__GLdrawablePrivate *glPriv, 			    GLint *x, GLint *y, GLuint *width, GLuint *height);    void (*lockDP)(__GLdrawablePrivate *glPriv, __GLcontext *gc);    void (*unlockDP)(__GLdrawablePrivate *glPriv);    /* exported */#ifdef __cplusplus    void *privatePtr;#else    void *private;#endif    void (*freePrivate)(__GLdrawablePrivate *);    /* client data */    void *other;};/*** Macros to lock/unlock the drawable private*/#if defined(DEBUG)#define __GL_LOCK_DP(glPriv,gc) \    (*(glPriv)->lockDP)(glPriv,gc); \    (glPriv)->lockLine[(glPriv)->lockRefCount] = __LINE__; \    (glPriv)->lockFile[(glPriv)->lockRefCount] = __FILE__; \    (glPriv)->lockRefCount++#define __GL_UNLOCK_DP(glPriv) \    (glPriv)->lockRefCount--; \    (glPriv)->lockLine[(glPriv)->lockRefCount] = 0; \    (glPriv)->lockFile[(glPriv)->lockRefCount] = NULL; \    (*(glPriv)->unlockDP)(glPriv)#else /* DEBUG */#define __GL_LOCK_DP(glPriv,gc)		(*(glPriv)->lockDP)(glPriv,gc)#define	__GL_UNLOCK_DP(glPriv)		(*(glPriv)->unlockDP)(glPriv)#endif /* DEBUG *//*** Procedures which are imported by the GL from the surrounding** "operating system".  Math functions are not considered part of the** "operating system".*/typedef struct __GLimportsRec {    /* Memory management */    void * (*malloc)(__GLcontext *gc, size_t size);    void *(*calloc)(__GLcontext *gc, size_t numElem, size_t elemSize);    void *(*realloc)(__GLcontext *gc, void *oldAddr, size_t newSize);    void (*free)(__GLcontext *gc, void *addr);    /* Error handling */    void (*warning)(__GLcontext *gc, char *fmt);    void (*fatal)(__GLcontext *gc, char *fmt);    /* other system calls */    char *(CAPI *getenv)(__GLcontext *gc, const char *var);    int (CAPI *atoi)(__GLcontext *gc, const char *str);    int (CAPI *sprintf)(__GLcontext *gc, char *str, const char *fmt, ...);    void *(CAPI *fopen)(__GLcontext *gc, const char *path, const char *mode);    int (CAPI *fclose)(__GLcontext *gc, void *stream);    int (CAPI *fprintf)(__GLcontext *gc, void *stream, const char *fmt, ...);    /* Drawing surface management */    __GLdrawablePrivate *(*getDrawablePrivate)(__GLcontext *gc);    __GLdrawablePrivate *(*getReadablePrivate)(__GLcontext *gc);    /* Operating system dependent data goes here */    void *other;} __GLimports;/************************************************************************//*** Procedures which are exported by the GL to the surrounding "operating** system" so that it can manage multiple GL context's.*/typedef struct __GLexportsRec {    /* Context management (return GL_FALSE on failure) */    GLboolean (*destroyContext)(__GLcontext *gc);    GLboolean (*loseCurrent)(__GLcontext *gc);    /* oldglPriv isn't used anymore, kept for backwards compatibility */    GLboolean (*makeCurrent)(__GLcontext *gc);    GLboolean (*shareContext)(__GLcontext *gc, __GLcontext *gcShare);    GLboolean (*copyContext)(__GLcontext *dst, const __GLcontext *src, GLuint mask);    GLboolean (*forceCurrent)(__GLcontext *gc);    /* Drawing surface notification callbacks */    GLboolean (*notifyResize)(__GLcontext *gc);    void (*notifyDestroy)(__GLcontext *gc);    void (*notifySwapBuffers)(__GLcontext *gc);    /* Dispatch table override control for external agents like libGLS */    struct __GLdispatchStateRec* (*dispatchExec)(__GLcontext *gc);    void (*beginDispatchOverride)(__GLcontext *gc);    void (*endDispatchOverride)(__GLcontext *gc);} __GLexports;/************************************************************************//*** This must be the first member of a __GLcontext structure.  This is the** only part of a context that is exposed to the outside world; everything** else is opaque.*/struct __GLinterfaceRec {    __GLimports imports;    __GLexports exports;};extern __GLcontext *__glCoreCreateContext(__GLimports *, __GLcontextModes *);extern void __glCoreNopDispatch(void);#endif /* __gl_core_h_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -