gl-decs.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. #pragma once
  2. typedef unsigned int GLenum;
  3. typedef unsigned int GLbitfield;
  4. typedef unsigned int GLuint;
  5. typedef int GLint;
  6. typedef int GLsizei;
  7. typedef unsigned char GLboolean;
  8. typedef signed char GLbyte;
  9. typedef short GLshort;
  10. typedef unsigned char GLubyte;
  11. typedef unsigned short GLushort;
  12. typedef unsigned long GLulong;
  13. typedef float GLfloat;
  14. typedef float GLclampf;
  15. typedef double GLdouble;
  16. typedef double GLclampd;
  17. typedef void GLvoid;
  18. typedef ptrdiff_t GLintptrARB;
  19. typedef ptrdiff_t GLsizeiptrARB;
  20. #define GL_FRONT 0x0404
  21. #define GL_BACK 0x0405
  22. #define GL_INVALID_OPERATION 0x0502
  23. #define GL_UNSIGNED_BYTE 0x1401
  24. #define GL_RGB 0x1907
  25. #define GL_RGBA 0x1908
  26. #define GL_BGR 0x80E0
  27. #define GL_BGRA 0x80E1
  28. #define GL_NEAREST 0x2600
  29. #define GL_LINEAR 0x2601
  30. #define GL_READ_ONLY 0x88B8
  31. #define GL_WRITE_ONLY 0x88B9
  32. #define GL_READ_WRITE 0x88BA
  33. #define GL_BUFFER_ACCESS 0x88BB
  34. #define GL_BUFFER_MAPPED 0x88BC
  35. #define GL_BUFFER_MAP_POINTER 0x88BD
  36. #define GL_STREAM_DRAW 0x88E0
  37. #define GL_STREAM_READ 0x88E1
  38. #define GL_STREAM_COPY 0x88E2
  39. #define GL_STATIC_DRAW 0x88E4
  40. #define GL_STATIC_READ 0x88E5
  41. #define GL_STATIC_COPY 0x88E6
  42. #define GL_DYNAMIC_DRAW 0x88E8
  43. #define GL_DYNAMIC_READ 0x88E9
  44. #define GL_DYNAMIC_COPY 0x88EA
  45. #define GL_PIXEL_PACK_BUFFER 0x88EB
  46. #define GL_PIXEL_UNPACK_BUFFER 0x88EC
  47. #define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
  48. #define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
  49. #define GL_TEXTURE_2D 0x0DE1
  50. #define GL_TEXTURE_BINDING_2D 0x8069
  51. #define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
  52. #define WGL_ACCESS_READ_ONLY_NV 0x0000
  53. #define WGL_ACCESS_READ_WRITE_NV 0x0001
  54. #define WGL_ACCESS_WRITE_DISCARD_NV 0x0002
  55. #define GL_READ_FRAMEBUFFER 0x8CA8
  56. #define GL_DRAW_FRAMEBUFFER 0x8CA9
  57. #define GL_COLOR_BUFFER_BIT 0x00004000
  58. #define GL_COLOR_ATTACHMENT0 0x8CE0
  59. #define GL_COLOR_ATTACHMENT1 0x8CE1
  60. typedef void (WINAPI *GLTEXIMAGE2DPROC)(GLenum target, GLint level,
  61. GLint internal_format, GLsizei width, GLsizei height,
  62. GLint border, GLenum format, GLenum type, const GLvoid *data);
  63. typedef void (WINAPI *GLGETTEXIMAGEPROC)(GLenum target, GLint level,
  64. GLenum format, GLenum type, GLvoid *img);
  65. typedef void (WINAPI *GLREADBUFFERPROC)(GLenum);
  66. typedef void (WINAPI *GLDRAWBUFFERPROC)(GLenum mode);
  67. typedef void (WINAPI *GLGETINTEGERVPROC)(GLenum pname, GLint *params);
  68. typedef GLenum (WINAPI *GLGETERRORPROC)();
  69. typedef BOOL (WINAPI *WGLSWAPLAYERBUFFERSPROC)(HDC, UINT);
  70. typedef BOOL (WINAPI *WGLSWAPBUFFERSPROC)(HDC);
  71. typedef BOOL (WINAPI *WGLDELETECONTEXTPROC)(HGLRC);
  72. typedef PROC (WINAPI *WGLGETPROCADDRESSPROC)(LPCSTR);
  73. typedef BOOL (WINAPI *WGLMAKECURRENTPROC)(HDC, HGLRC);
  74. typedef HDC (WINAPI *WGLGETCURRENTDCPROC)();
  75. typedef HGLRC (WINAPI *WGLGETCURRENTCONTEXTPROC)();
  76. typedef HGLRC (WINAPI *WGLCREATECONTEXTPROC)(HDC);
  77. typedef void (WINAPI *GLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size,
  78. const GLvoid* data, GLenum usage);
  79. typedef void (WINAPI *GLDELETEBUFFERSARBPROC)(GLsizei n, const GLuint* buffers);
  80. typedef void (WINAPI *GLDELETETEXTURESPROC)(GLsizei n, const GLuint* buffers);
  81. typedef void (WINAPI *GLGENBUFFERSARBPROC)(GLsizei n, GLuint* buffers);
  82. typedef void (WINAPI *GLGENTEXTURESPROC)(GLsizei n, GLuint* textures);
  83. typedef GLvoid* (WINAPI *GLMAPBUFFERPROC)(GLenum target, GLenum access);
  84. typedef GLboolean (WINAPI *GLUNMAPBUFFERPROC)(GLenum target);
  85. typedef void (WINAPI *GLBINDBUFFERPROC)(GLenum target, GLuint buffer);
  86. typedef void (WINAPI *GLBINDTEXTUREPROC)(GLenum target, GLuint texture);
  87. typedef void (WINAPI *GLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint* buffers);
  88. typedef void (WINAPI *GLDELETEFRAMEBUFFERSPROC)(GLsizei n,
  89. GLuint *framebuffers);
  90. typedef void (WINAPI *GLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer);
  91. typedef void (WINAPI *GLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0,
  92. GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0,
  93. GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
  94. typedef void (WINAPI *GLFRAMEBUFFERTEXTURE2DPROC)(GLenum target,
  95. GLenum attachment, GLenum textarget, GLuint texture,
  96. GLint level);
  97. typedef BOOL (WINAPI *WGLSETRESOURCESHAREHANDLENVPROC)(void*, HANDLE);
  98. typedef HANDLE (WINAPI *WGLDXOPENDEVICENVPROC)(void*);
  99. typedef BOOL (WINAPI *WGLDXCLOSEDEVICENVPROC)(HANDLE);
  100. typedef HANDLE (WINAPI *WGLDXREGISTEROBJECTNVPROC)(HANDLE, void *, GLuint, GLenum, GLenum);
  101. typedef BOOL (WINAPI *WGLDXUNREGISTEROBJECTNVPROC)(HANDLE, HANDLE);
  102. typedef BOOL (WINAPI *WGLDXOBJECTACCESSNVPROC)(HANDLE, GLenum);
  103. typedef BOOL (WINAPI *WGLDXLOCKOBJECTSNVPROC)(HANDLE, GLint, HANDLE *);
  104. typedef BOOL (WINAPI *WGLDXUNLOCKOBJECTSNVPROC)(HANDLE, GLint, HANDLE *);
  105. static GLTEXIMAGE2DPROC glTexImage2D = NULL;
  106. static GLGETTEXIMAGEPROC glGetTexImage = NULL;
  107. static GLREADBUFFERPROC glReadBuffer = NULL;
  108. static GLDRAWBUFFERPROC glDrawBuffer = NULL;
  109. static GLGETINTEGERVPROC glGetIntegerv = NULL;
  110. static GLGETERRORPROC glGetError = NULL;
  111. static WGLGETPROCADDRESSPROC jimglGetProcAddress = NULL;
  112. static WGLMAKECURRENTPROC jimglMakeCurrent = NULL;
  113. static WGLGETCURRENTDCPROC jimglGetCurrentDC = NULL;
  114. static WGLGETCURRENTCONTEXTPROC jimglGetCurrentContext = NULL;
  115. static GLBUFFERDATAARBPROC glBufferData = NULL;
  116. static GLDELETEBUFFERSARBPROC glDeleteBuffers = NULL;
  117. static GLDELETETEXTURESPROC glDeleteTextures = NULL;
  118. static GLGENBUFFERSARBPROC glGenBuffers = NULL;
  119. static GLGENTEXTURESPROC glGenTextures = NULL;
  120. static GLMAPBUFFERPROC glMapBuffer = NULL;
  121. static GLUNMAPBUFFERPROC glUnmapBuffer = NULL;
  122. static GLBINDBUFFERPROC glBindBuffer = NULL;
  123. static GLBINDTEXTUREPROC glBindTexture = NULL;
  124. static GLGENFRAMEBUFFERSPROC glGenFramebuffers = NULL;
  125. static GLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers = NULL;
  126. static GLBINDFRAMEBUFFERPROC glBindFramebuffer = NULL;
  127. static GLBLITFRAMEBUFFERPROC glBlitFramebuffer = NULL;
  128. static GLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D = NULL;
  129. static WGLSETRESOURCESHAREHANDLENVPROC jimglDXSetResourceShareHandleNV = NULL;
  130. static WGLDXOPENDEVICENVPROC jimglDXOpenDeviceNV = NULL;
  131. static WGLDXCLOSEDEVICENVPROC jimglDXCloseDeviceNV = NULL;
  132. static WGLDXREGISTEROBJECTNVPROC jimglDXRegisterObjectNV = NULL;
  133. static WGLDXUNREGISTEROBJECTNVPROC jimglDXUnregisterObjectNV = NULL;
  134. static WGLDXOBJECTACCESSNVPROC jimglDXObjectAccessNV = NULL;
  135. static WGLDXLOCKOBJECTSNVPROC jimglDXLockObjectsNV = NULL;
  136. static WGLDXUNLOCKOBJECTSNVPROC jimglDXUnlockObjectsNV = NULL;