#pragma once #include #include #include "glext.h" void OpenGL_Init(); BOOL OpenGL_ExtExists(char *ext, HDC hdc); GLuint OpenGL_BuildProgram(const GLchar *vertSource, const GLchar *fragSource); GLuint OpenGL_BuildProgramFromFile(const char *filePath); typedef void (APIENTRYP PFNWGLSWAPINTERVALEXT) (int interval); typedef const char* (WINAPI *PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC hdc); extern PFNGLCREATEPROGRAMPROC glCreateProgram; extern PFNGLDELETEPROGRAMPROC glDeleteProgram; extern PFNGLUSEPROGRAMPROC glUseProgram; extern PFNGLATTACHSHADERPROC glAttachShader; extern PFNGLDETACHSHADERPROC glDetachShader; extern PFNGLLINKPROGRAMPROC glLinkProgram; extern PFNGLGETPROGRAMIVPROC glGetProgramiv; extern PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog; extern PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation; extern PFNGLUNIFORM1IPROC glUniform1i; extern PFNGLUNIFORM1IVPROC glUniform1iv; extern PFNGLUNIFORM2IVPROC glUniform2iv; extern PFNGLUNIFORM3IVPROC glUniform3iv; extern PFNGLUNIFORM4IVPROC glUniform4iv; extern PFNGLUNIFORM1FPROC glUniform1f; extern PFNGLUNIFORM1FVPROC glUniform1fv; extern PFNGLUNIFORM2FVPROC glUniform2fv; extern PFNGLUNIFORM3FVPROC glUniform3fv; extern PFNGLUNIFORM4FVPROC glUniform4fv; extern PFNGLUNIFORM4FPROC glUniform4f; extern PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv; extern PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation; extern PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f; extern PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv; extern PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv; extern PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv; extern PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv; extern PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray; extern PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray; extern PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation; extern PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform; extern PFNGLCREATESHADERPROC glCreateShader; extern PFNGLDELETESHADERPROC glDeleteShader; extern PFNGLSHADERSOURCEPROC glShaderSource; extern PFNGLCOMPILESHADERPROC glCompileShader; extern PFNGLGETSHADERIVPROC glGetShaderiv; extern PFNGLGENBUFFERSPROC glGenBuffers; extern PFNGLBINDBUFFERPROC glBindBuffer; extern PFNGLBUFFERDATAPROC glBufferData; extern PFNGLMAPBUFFERPROC glMapBuffer; extern PFNGLUNMAPBUFFERPROC glUnmapBuffer; extern PFNGLBUFFERSUBDATAPROC glBufferSubData; extern PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer; extern PFNGLDELETEBUFFERSPROC glDeleteBuffers; extern PFNGLGENVERTEXARRAYSPROC glGenVertexArrays; extern PFNGLBINDVERTEXARRAYPROC glBindVertexArray; extern PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays; extern PFNGLACTIVETEXTUREPROC glActiveTexture; extern PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers; extern PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer; extern PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D; extern PFNGLDRAWBUFFERSPROC glDrawBuffers; extern PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus; extern PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers; extern PFNWGLSWAPINTERVALEXT wglSwapIntervalEXT; extern PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB; extern PFNGLTEXBUFFERPROC glTexBuffer; extern BOOL OpenGL_GotVersion2; extern BOOL OpenGL_GotVersion3; extern char OpenGL_Version[];