egl.h
上传用户:fjqzjn
上传日期:2008-01-21
资源大小:2764k
文件大小:9k
源码类别:

Windows CE

开发平台:

Visual C++

  1. #ifndef __egl_h_
  2. #define __egl_h_
  3. /*
  4. ** License Applicability. Except to the extent portions of this file are
  5. ** made subject to an alternative license as permitted in the SGI Free
  6. ** Software License B, Version 1.0 (the "License"), the contents of this
  7. ** file are subject only to the provisions of the License. You may not use
  8. ** this file except in compliance with the License. You may obtain a copy
  9. ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
  10. ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
  11. **
  12. ** http://oss.sgi.com/projects/FreeB
  13. **
  14. ** Note that, as provided in the License, the Software is distributed on an
  15. ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
  16. ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
  17. ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
  18. ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
  19. **
  20. ** Original Code. The Original Code is: OpenGL Sample Implementation,
  21. ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
  22. ** Inc. The Original Code is Copyright (c) 1991-2004 Silicon Graphics, Inc.
  23. ** Copyright in any portions created by third parties is as indicated
  24. ** elsewhere herein. All Rights Reserved.
  25. **
  26. ** Additional Notice Provisions: The application programming interfaces
  27. ** established by SGI in conjunction with the Original Code are The
  28. ** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
  29. ** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
  30. ** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
  31. ** Window System(R) (Version 1.3), released October 19, 1998. This software
  32. ** was created using the OpenGL(R) version 1.2.1 Sample Implementation
  33. ** published by SGI, but has not been independently verified as being
  34. ** compliant with the OpenGL(R) version 1.2.1 Specification.
  35. */
  36. #include <GLES/gl.h>
  37. #include <GLES/egltypes.h>
  38. /*
  39. ** egltypes.h is platform dependent. It defines:
  40. **
  41. **     - EGL types and resources
  42. **     - Native types
  43. **     - EGL and native handle values
  44. **
  45. ** EGL types and resources are to be typedef'ed with appropriate platform
  46. ** dependent resource handle types. EGLint must be an integer of at least
  47. ** 32-bit.
  48. **
  49. ** NativeDisplayType, NativeWindowType and NativePixmapType are to be
  50. ** replaced with corresponding types of the native window system in egl.h.
  51. **
  52. ** EGL and native handle values must match their types.
  53. **
  54. ** Example egltypes.h:
  55. */
  56. #if 0
  57. #include <sys/types.h>
  58. #include <native_window_system.h>
  59. /*
  60. ** Types and resources
  61. */
  62. typedef int EGLBoolean;
  63. typedef int32_t EGLint;
  64. typedef void *EGLDisplay;
  65. typedef void *EGLConfig;
  66. typedef void *EGLSurface;
  67. typedef void *EGLContext;
  68. /*
  69. ** EGL and native handle values
  70. */
  71. #define EGL_DEFAULT_DISPLAY ((NativeDisplayType)0)
  72. #define EGL_NO_CONTEXT ((EGLContext)0)
  73. #define EGL_NO_DISPLAY ((EGLDisplay)0)
  74. #define EGL_NO_SURFACE ((EGLSurface)0)
  75. #endif
  76. /*
  77. ** Versioning and extensions
  78. */
  79. #define EGL_VERSION_1_0        1
  80. #define EGL_VERSION_1_1        1
  81. /*
  82. ** Boolean
  83. */
  84. #define EGL_FALSE        0
  85. #define EGL_TRUE        1
  86. /*
  87. ** Errors
  88. */
  89. #define EGL_SUCCESS        0x3000
  90. #define EGL_NOT_INITIALIZED        0x3001
  91. #define EGL_BAD_ACCESS        0x3002
  92. #define EGL_BAD_ALLOC        0x3003
  93. #define EGL_BAD_ATTRIBUTE        0x3004
  94. #define EGL_BAD_CONFIG        0x3005
  95. #define EGL_BAD_CONTEXT        0x3006
  96. #define EGL_BAD_CURRENT_SURFACE        0x3007
  97. #define EGL_BAD_DISPLAY        0x3008
  98. #define EGL_BAD_MATCH        0x3009
  99. #define EGL_BAD_NATIVE_PIXMAP        0x300A
  100. #define EGL_BAD_NATIVE_WINDOW        0x300B
  101. #define EGL_BAD_PARAMETER        0x300C
  102. #define EGL_BAD_SURFACE        0x300D
  103. #define EGL_CONTEXT_LOST        0x300E
  104. /* 0x300F - 0x301F reserved for additional errors. */
  105. /*
  106. ** Config attributes
  107. */
  108. #define EGL_BUFFER_SIZE        0x3020
  109. #define EGL_ALPHA_SIZE        0x3021
  110. #define EGL_BLUE_SIZE        0x3022
  111. #define EGL_GREEN_SIZE        0x3023
  112. #define EGL_RED_SIZE        0x3024
  113. #define EGL_DEPTH_SIZE        0x3025
  114. #define EGL_STENCIL_SIZE        0x3026
  115. #define EGL_CONFIG_CAVEAT        0x3027
  116. #define EGL_CONFIG_ID        0x3028
  117. #define EGL_LEVEL        0x3029
  118. #define EGL_MAX_PBUFFER_HEIGHT        0x302A
  119. #define EGL_MAX_PBUFFER_PIXELS        0x302B
  120. #define EGL_MAX_PBUFFER_WIDTH        0x302C
  121. #define EGL_NATIVE_RENDERABLE        0x302D
  122. #define EGL_NATIVE_VISUAL_ID        0x302E
  123. #define EGL_NATIVE_VISUAL_TYPE        0x302F
  124. /*#define EGL_PRESERVED_RESOURCES  0x3030*/
  125. #define EGL_SAMPLES        0x3031
  126. #define EGL_SAMPLE_BUFFERS        0x3032
  127. #define EGL_SURFACE_TYPE        0x3033
  128. #define EGL_TRANSPARENT_TYPE        0x3034
  129. #define EGL_TRANSPARENT_BLUE_VALUE     0x3035
  130. #define EGL_TRANSPARENT_GREEN_VALUE    0x3036
  131. #define EGL_TRANSPARENT_RED_VALUE      0x3037
  132. #define EGL_NONE        0x3038 /* Also a config value */
  133. #define EGL_BIND_TO_TEXTURE_RGB        0x3039
  134. #define EGL_BIND_TO_TEXTURE_RGBA       0x303A
  135. #define EGL_MIN_SWAP_INTERVAL        0x303B
  136. #define EGL_MAX_SWAP_INTERVAL        0x303C
  137. /*
  138. ** Config values
  139. */
  140. #define EGL_DONT_CARE        ((EGLint) -1)
  141. #define EGL_SLOW_CONFIG        0x3050 /* EGL_CONFIG_CAVEAT value */
  142. #define EGL_NON_CONFORMANT_CONFIG      0x3051 /* " */
  143. #define EGL_TRANSPARENT_RGB        0x3052 /* EGL_TRANSPARENT_TYPE value */
  144. #define EGL_NO_TEXTURE        0x305C /* EGL_TEXTURE_FORMAT/TARGET value */
  145. #define EGL_TEXTURE_RGB        0x305D /* EGL_TEXTURE_FORMAT value */
  146. #define EGL_TEXTURE_RGBA        0x305E /* " */
  147. #define EGL_TEXTURE_2D        0x305F /* EGL_TEXTURE_TARGET value */
  148. /*
  149. ** Config attribute mask bits
  150. */
  151. #define EGL_PBUFFER_BIT        0x01 /* EGL_SURFACE_TYPE mask bit */
  152. #define EGL_PIXMAP_BIT        0x02 /* " */
  153. #define EGL_WINDOW_BIT        0x04 /* " */
  154. /*
  155. ** String names
  156. */
  157. #define EGL_VENDOR        0x3053 /* eglQueryString target */
  158. #define EGL_VERSION        0x3054 /* " */
  159. #define EGL_EXTENSIONS        0x3055 /* " */
  160. /*
  161. ** Surface attributes
  162. */
  163. #define EGL_HEIGHT        0x3056
  164. #define EGL_WIDTH        0x3057
  165. #define EGL_LARGEST_PBUFFER        0x3058
  166. #define EGL_TEXTURE_FORMAT        0x3080 /* For pbuffers bound as textures */
  167. #define EGL_TEXTURE_TARGET        0x3081 /* " */
  168. #define EGL_MIPMAP_TEXTURE        0x3082 /* " */
  169. #define EGL_MIPMAP_LEVEL        0x3083 /* " */
  170. /*
  171. ** BindTexImage / ReleaseTexImage buffer target
  172. */
  173. #define EGL_BACK_BUFFER        0x3084
  174. /*
  175. ** Current surfaces
  176. */
  177. #define EGL_DRAW        0x3059
  178. #define EGL_READ        0x305A
  179. /*
  180. ** Engines
  181. */
  182. #define EGL_CORE_NATIVE_ENGINE        0x305B
  183. /* 0x305C-0x3FFFF reserved for future use */
  184. /*
  185. ** Functions
  186. */
  187. #ifdef __cplusplus
  188. extern "C" {
  189. #endif
  190. GLAPI EGLint APIENTRY eglGetError (void);
  191. GLAPI EGLDisplay APIENTRY eglGetDisplay (NativeDisplayType display);
  192. GLAPI EGLBoolean APIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor);
  193. GLAPI EGLBoolean APIENTRY eglTerminate (EGLDisplay dpy);
  194. GLAPI const char * APIENTRY eglQueryString (EGLDisplay dpy, EGLint name);
  195. GLAPI void (* APIENTRY eglGetProcAddress (const char *procname))();
  196. GLAPI EGLBoolean APIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
  197. GLAPI EGLBoolean APIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
  198. GLAPI EGLBoolean APIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
  199. GLAPI EGLSurface APIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, NativeWindowType window, const EGLint *attrib_list);
  200. GLAPI EGLSurface APIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, NativePixmapType pixmap, const EGLint *attrib_list);
  201. GLAPI EGLSurface APIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
  202. GLAPI EGLBoolean APIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface);
  203. GLAPI EGLBoolean APIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value);
  204. /* EGL 1.1 render-to-texture APIs */
  205. GLAPI EGLBoolean APIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
  206. GLAPI EGLBoolean APIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
  207. GLAPI EGLBoolean APIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
  208. /* EGL 1.1 swap control API */
  209. GLAPI EGLBoolean APIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
  210. GLAPI EGLContext APIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_list, const EGLint *attrib_list);
  211. GLAPI EGLBoolean APIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx);
  212. GLAPI EGLBoolean APIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
  213. GLAPI EGLContext APIENTRY eglGetCurrentContext (void);
  214. GLAPI EGLSurface APIENTRY eglGetCurrentSurface (EGLint readdraw);
  215. GLAPI EGLDisplay APIENTRY eglGetCurrentDisplay (void);
  216. GLAPI EGLBoolean APIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value);
  217. GLAPI EGLBoolean APIENTRY eglWaitGL (void);
  218. GLAPI EGLBoolean APIENTRY eglWaitNative (EGLint engine);
  219. GLAPI EGLBoolean APIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface draw);
  220. GLAPI EGLBoolean APIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, NativePixmapType target);
  221. #ifdef __cplusplus
  222. }
  223. #endif
  224. #endif /* ___egl_h_ */