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

📄 glcore.h

📁 mesa-6.5-minigui源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* $XFree86: xc/lib/GL/include/GL/internal/glcore.h,v 1.7 2001/03/25 05:32:00 tsi Exp $ */#ifndef __gl_core_h_#define __gl_core_h_/*** License Applicability. Except to the extent portions of this file are** made subject to an alternative license as permitted in the SGI Free** Software License B, Version 1.1 (the "License"), the contents of this** file are subject only to the provisions of the License. You may not use** this file except in compliance with the License. You may obtain a copy** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:** ** http://oss.sgi.com/projects/FreeB** ** Note that, as provided in the License, the Software is distributed on an** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.** ** Original Code. The Original Code is: OpenGL Sample Implementation,** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.** Copyright in any portions created by third parties is as indicated** elsewhere herein. All Rights Reserved.** ** Additional Notice Provisions: The application programming interfaces** established by SGI in conjunction with the Original Code are The** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X** Window System(R) (Version 1.3), released October 19, 1998. This software** was created using the OpenGL(R) version 1.2.1 Sample Implementation** published by SGI, but has not been independently verified as being** compliant with the OpenGL(R) version 1.2.1 Specification.***/#ifndef XFree86LOADER#include <sys/types.h>#endif#ifdef CAPI#undef CAPI#endif#define CAPI#define GL_CORE_SGI  1#define GL_CORE_MESA 2#define GL_CORE_APPLE 4typedef struct __GLcontextRec __GLcontext;typedef struct __GLinterfaceRec __GLinterface;/*** This file defines the interface between the GL core and the surrounding** "operating system" that supports it (currently the GLX or WGL extensions).**** Members (data and function pointers) are documented as imported or** exported according to how they are used by the core rendering functions.** Imported members are initialized by the "operating system" and used by** the core functions.  Exported members are initialized by the core functions** and used by the "operating system".*//*** Mode and limit information for a context.  This information is** kept around in the context so that values can be used during** command execution, and for returning information about the** context to the application.*/typedef struct __GLcontextModesRec {    struct __GLcontextModesRec * next;    GLboolean rgbMode;    GLboolean floatMode;    GLboolean colorIndexMode;    GLuint doubleBufferMode;    GLuint stereoMode;    GLboolean haveAccumBuffer;    GLboolean haveDepthBuffer;    GLboolean haveStencilBuffer;    GLint redBits, greenBits, blueBits, alphaBits;	/* bits per comp */    GLuint redMask, greenMask, blueMask, alphaMask;    GLint rgbBits;		/* total bits for rgb */    GLint indexBits;		/* total bits for colorindex */    GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits;    GLint depthBits;    GLint stencilBits;    GLint numAuxBuffers;    GLint level;    GLint pixmapMode;    /* GLX */    GLint visualID;    GLint visualType;     /**< One of the GLX X visual types. (i.e., 			   * \c GLX_TRUE_COLOR, etc.)			   */    /* EXT_visual_rating / GLX 1.2 */    GLint visualRating;    /* EXT_visual_info / GLX 1.2 */    GLint transparentPixel;				/*    colors are floats scaled to ints */    GLint transparentRed, transparentGreen, transparentBlue, transparentAlpha;    GLint transparentIndex;    /* ARB_multisample / SGIS_multisample */    GLint sampleBuffers;    GLint samples;    /* SGIX_fbconfig / GLX 1.3 */    GLint drawableType;    GLint renderType;    GLint xRenderable;    GLint fbconfigID;    /* SGIX_pbuffer / GLX 1.3 */    GLint maxPbufferWidth;    GLint maxPbufferHeight;    GLint maxPbufferPixels;    GLint optimalPbufferWidth;   /* Only for SGIX_pbuffer. */    GLint optimalPbufferHeight;  /* Only for SGIX_pbuffer. */    /* SGIX_visual_select_group */    GLint visualSelectGroup;    /* OML_swap_method */    GLint swapMethod;    GLint screen;} __GLcontextModes;/* Several fields of __GLcontextModes can take these as values.  Since * GLX header files may not be available everywhere they need to be used, * redefine them here. */#define GLX_NONE                           0x8000#define GLX_SLOW_CONFIG                    0x8001#define GLX_TRUE_COLOR                     0x8002#define GLX_DIRECT_COLOR                   0x8003#define GLX_PSEUDO_COLOR                   0x8004#define GLX_STATIC_COLOR                   0x8005#define GLX_GRAY_SCALE                     0x8006#define GLX_STATIC_GRAY                    0x8007#define GLX_TRANSPARENT_RGB                0x8008#define GLX_TRANSPARENT_INDEX              0x8009#define GLX_NON_CONFORMANT_CONFIG          0x800D#define GLX_SWAP_EXCHANGE_OML              0x8061#define GLX_SWAP_COPY_OML                  0x8062#define GLX_SWAP_UNDEFINED_OML             0x8063#define GLX_DONT_CARE                      0xFFFFFFFF#define GLX_RGBA_BIT                       0x00000001#define GLX_COLOR_INDEX_BIT                0x00000002#define GLX_WINDOW_BIT                     0x00000001#define GLX_PIXMAP_BIT                     0x00000002#define GLX_PBUFFER_BIT                    0x00000004/************************************************************************//*** Structure used for allocating and freeing drawable private memory.** (like software buffers, for example).**** The memory allocation routines are provided by the surrounding** "operating system" code, and they are to be used for allocating** software buffers and things which are associated with the drawable,** and used by any context which draws to that drawable.  There are** separate memory allocation functions for drawables and contexts** since drawables and contexts can be created and destroyed independently** of one another, and the "operating system" may want to use separate** allocation arenas for each.**** The freePrivate function is filled in by the core routines when they** allocates software buffers, and stick them in "private".  The freePrivate** function will destroy anything allocated to this drawable (to be called** when the drawable is destroyed).*/typedef struct __GLdrawableRegionRec __GLdrawableRegion;typedef struct __GLdrawableBufferRec __GLdrawableBuffer;typedef struct __GLdrawablePrivateRec __GLdrawablePrivate;typedef struct __GLregionRectRec {    /* lower left (inside the rectangle) */    GLint x0, y0;    /* upper right (outside the rectangle) */    GLint x1, y1;} __GLregionRect;struct __GLdrawableRegionRec {    GLint numRects;    __GLregionRect *rects;    __GLregionRect boundingRect;};/************************************************************************//* masks for the buffers */#define __GL_FRONT_BUFFER_MASK		0x00000001#define	__GL_FRONT_LEFT_BUFFER_MASK	0x00000001#define	__GL_FRONT_RIGHT_BUFFER_MASK	0x00000002#define	__GL_BACK_BUFFER_MASK		0x00000004#define __GL_BACK_LEFT_BUFFER_MASK	0x00000004#define __GL_BACK_RIGHT_BUFFER_MASK	0x00000008#define	__GL_ACCUM_BUFFER_MASK		0x00000010#define	__GL_DEPTH_BUFFER_MASK		0x00000020#define	__GL_STENCIL_BUFFER_MASK	0x00000040#define	__GL_AUX_BUFFER_MASK(i)		(0x0000080 << (i))#define __GL_ALL_BUFFER_MASK		0xffffffff/* what Resize routines return if resize resorted to fallback case */#define __GL_BUFFER_FALLBACK	0x10typedef void (*__GLbufFallbackInitFn)(__GLdrawableBuffer *buf, 				      __GLdrawablePrivate *glPriv, GLint bits);typedef void (*__GLbufMainInitFn)(__GLdrawableBuffer *buf, 				  __GLdrawablePrivate *glPriv, GLint bits,				  __GLbufFallbackInitFn back);/*** A drawable buffer**** This data structure describes the context side of a drawable.  **** According to the spec there could be multiple contexts bound to the same** drawable at the same time (from different threads).  In order to avoid** multiple-access conflicts, locks are used to serialize access.  When a** thread needs to access (read or write) a member of the drawable, it takes** a lock first.  Some of the entries in the drawable are treated "mostly** constant", so we take the freedom of allowing access to them without** taking a lock (for optimization reasons).**** For more details regarding locking, see buffers.h in the GL core*/struct __GLdrawableBufferRec {    /*    ** Buffer dimensions    */    GLint width, height, depth;

⌨️ 快捷键说明

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