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

📄 oglfunc.hpp

📁 用于GPU通用计算的编程语言BrookGPU 0.4
💻 HPP
字号:
#ifndef OGLFUNC_HPP#define OGLFUNC_HPP// MCH: We are going to override Linux GLEXT prototypes to get around linux ABI issues#ifdef WIN32#include <windows.h>#define GL_GLEXT_PROTOTYPES 1#endif#include <GL/gl.h>#ifndef APIENTRY#define APIENTRY#endif#ifndef APIENTRYP#define APIENTRYP APIENTRY *#endif#ifndef GLAPI#define GLAPI extern#endif#ifndef GL_VERSION_1_1#error GL ERROR: The gl.h version on this computer is very old.#endif#ifndef GL_VERSION_1_2typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);#define RUNTIME_BONUS_GL_FNS_1 \   XXX(PFNGLMULTITEXCOORD2FVARBPROC,   glMultiTexCoord2fvARB) \   XXX(PFNGLMULTITEXCOORD4FVARBPROC,   glMultiTexCoord4fvARB)#else#define RUNTIME_BONUS_GL_FNS_1#endif#ifndef GL_ARB_multitexturetypedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture);#define GL_TEXTURE0_ARB                   0x84C0#define GL_MAX_TEXTURE_UNITS              0x84E2#define RUNTIME_BONUS_GL_FNS_2 \   XXX(PFNGLACTIVETEXTUREARBPROC,      glActiveTextureARB)#else#define RUNTIME_BONUS_GL_FNS_2#endif#ifndef GL_TEXTURE0#define GL_TEXTURE0 GL_TEXTURE0_ARB#endif#ifndef GL_NV_fragment_programtypedef void (APIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat* x);#define RUNTIME_BONUS_GL_FNS_NV \   XXX(PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC,        glProgramNamedParameter4fvNV)   #elif !GL_GLEXT_PROTOTYPES   typedef void (APIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat* x);#define RUNTIME_BONUS_GL_FNS_NV \   XXX(PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC,        glProgramNamedParameter4fvNV)            #else#define RUNTIME_BONUS_GL_FNS_NV#endif#ifndef GL_ARB_vertex_programtypedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs);typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program);typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string);typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);#define GL_VERTEX_PROGRAM_ARB             0x8620#define GL_PROGRAM_ERROR_POSITION_ARB     0x864B#define GL_PROGRAM_ERROR_STRING_ARB       0x8874#define GL_PROGRAM_FORMAT_ASCII_ARB       0x8875#define RUNTIME_BONUS_GL_FNS_3 \   XXX(PFNGLGENPROGRAMSARBPROC,        glGenProgramsARB)               \   XXX(PFNGLBINDPROGRAMARBPROC,        glBindProgramARB)               \   XXX(PFNGLPROGRAMSTRINGARBPROC,      glProgramStringARB)             \   XXX(PFNGLPROGRAMLOCALPARAMETER4FVARBPROC, glProgramLocalParameter4fvARB)#elif !GL_GLEXT_PROTOTYPEStypedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs);typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program);typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string);typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);#define RUNTIME_BONUS_GL_FNS_3 \   XXX(PFNGLGENPROGRAMSARBPROC,        glGenProgramsARB)               \   XXX(PFNGLBINDPROGRAMARBPROC,        glBindProgramARB)               \   XXX(PFNGLPROGRAMSTRINGARBPROC,      glProgramStringARB)             \   XXX(PFNGLPROGRAMLOCALPARAMETER4FVARBPROC, glProgramLocalParameter4fvARB)#else#define RUNTIME_BONUS_GL_FNS_3#endif#ifndef GL_ARB_fragment_program#define GL_FRAGMENT_PROGRAM_ARB           0x8804#define GL_MAX_TEXTURE_COORDS_ARB                  0x8871#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB             0x8872#endif#ifndef GL_NV_texture_rectangle#define GL_TEXTURE_RECTANGLE_NV           0x84F5#endif#ifndef GL_ARB_texture_rectangle#define GL_TEXTURE_RECTANGLE_ARB          0x84F5#endif#ifndef GL_ATI_draw_buffers#define GL_MAX_DRAW_BUFFERS_ATI              0x8824#define GL_DRAW_BUFFER0_ATI                  0x8825#define GL_DRAW_BUFFER1_ATI                  0x8826#define GL_DRAW_BUFFER2_ATI                  0x8827#define GL_DRAW_BUFFER3_ATI                  0x8828typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs);#endif#define RUNTIME_BONUS_GL_FNS_ATI \   XXX(PFNGLDRAWBUFFERSATIPROC,        glDrawBuffersATI)#define RUNTIME_BONUS_GL_FNS \   RUNTIME_BONUS_GL_FNS_1 RUNTIME_BONUS_GL_FNS_2 RUNTIME_BONUS_GL_FNS_3/***** WGL API *****/#ifdef WIN32#ifndef WGL_ARB_pbufferDECLARE_HANDLE(HPBUFFERARB);typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer);typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer);#endif#ifndef WGL_ARB_pixel_formattypedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);#endif#ifndef WGL_ARB_render_texturetypedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);#endif#define RUNTIME_BONUS_WGL_FNS \   XXX(PFNWGLCREATEPBUFFERARBPROC,     wglCreatePbufferARB)     \   XXX(PFNWGLGETPBUFFERDCARBPROC,      wglGetPbufferDCARB)      \   XXX(PFNWGLRELEASEPBUFFERDCARBPROC,  wglReleasePbufferDCARB)  \   XXX(PFNWGLDESTROYPBUFFERARBPROC,    wglDestroyPbufferARB)    \   XXX(PFNWGLCHOOSEPIXELFORMATARBPROC, wglChoosePixelFormatARB) \   XXX(PFNWGLBINDTEXIMAGEARBPROC,      wglBindTexImageARB)      \   XXX(PFNWGLRELEASETEXIMAGEARBPROC,   wglReleaseTexImageARB)#endif // WIN32  /* Declare undefined functions */#define XXX(type, fn) \   extern type fn;#ifdef WIN32RUNTIME_BONUS_WGL_FNS#endifRUNTIME_BONUS_GL_FNSRUNTIME_BONUS_GL_FNS_ATIRUNTIME_BONUS_GL_FNS_NV#undef XXXnamespace brook {  void initglfunc(void);}#endif

⌨️ 快捷键说明

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