mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-20 04:42:18 +02:00
Move from glLoadGen to GLAD
This commit is contained in:
parent
334792a62c
commit
e50201cad1
@ -8,8 +8,6 @@ include_directories(${OPENGL_INCLUDE_DIR})
|
||||
add_definitions(-DLIBOBS_EXPORTS)
|
||||
|
||||
if(WIN32)
|
||||
set(obs-opengl_PLATFORM_SOURCES
|
||||
GL/wgl_obs.c)
|
||||
set(libobs-opengl_PLATFORM_SOURCES
|
||||
gl-windows.c)
|
||||
elseif(APPLE)
|
||||
@ -34,13 +32,8 @@ elseif(APPLE)
|
||||
else()
|
||||
set(libobs-opengl_PLATFORM_SOURCES
|
||||
gl-x11.c)
|
||||
set(obs-opengl_PLATFORM_SOURCES
|
||||
GL/glx_obs.c)
|
||||
endif()
|
||||
|
||||
set(obs-opengl_SOURCES
|
||||
GL/gl_obs.c)
|
||||
|
||||
set(libobs-opengl_SOURCES
|
||||
${libobs-opengl_PLATFORM_SOURCES}
|
||||
gl-helpers.c
|
||||
@ -59,16 +52,6 @@ set(libobs-opengl_HEADERS
|
||||
gl-shaderparser.h
|
||||
gl-subsystem.h)
|
||||
|
||||
add_library(obs-opengl STATIC
|
||||
${obs-opengl_SOURCES}
|
||||
${obs-opengl_PLATFORM_SOURCES})
|
||||
if(NOT WIN32)
|
||||
set_property(TARGET obs-opengl APPEND_STRING
|
||||
PROPERTY COMPILE_FLAGS " -fPIC")
|
||||
endif()
|
||||
target_link_libraries(obs-opengl
|
||||
${OPENGL_gl_LIBRARY})
|
||||
|
||||
add_library(libobs-opengl MODULE
|
||||
${libobs-opengl_SOURCES}
|
||||
${libobs-opengl_HEADERS})
|
||||
@ -78,7 +61,7 @@ set_target_properties(libobs-opengl
|
||||
PREFIX "")
|
||||
target_link_libraries(libobs-opengl
|
||||
libobs
|
||||
obs-opengl
|
||||
glad
|
||||
${libobs-opengl_PLATFORM_DEPS})
|
||||
|
||||
install_obs_core(libobs-opengl)
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,470 +0,0 @@
|
||||
/* AUTOGENERATED BY glLoadGen, DO NOT EDIT */
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stddef.h>
|
||||
#include "glx_obs.h"
|
||||
|
||||
#if defined(__APPLE__)
|
||||
#include <dlfcn.h>
|
||||
|
||||
static void* AppleGLGetProcAddress (const char *name)
|
||||
{
|
||||
static void* image = NULL;
|
||||
|
||||
if (NULL == image)
|
||||
image = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", RTLD_LAZY);
|
||||
|
||||
return (image ? dlsym(image, name) : NULL);
|
||||
}
|
||||
#define IntGetProcAddress(name) AppleGLGetProcAddress(name)
|
||||
#endif /* __APPLE__ */
|
||||
|
||||
#if defined(_WIN32)
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(disable: 4055)
|
||||
#pragma warning(disable: 4054)
|
||||
#pragma warning(disable: 4996)
|
||||
#endif
|
||||
|
||||
static PROC WinGetProcAddress(const char *name)
|
||||
{
|
||||
static HMODULE glMod = NULL;
|
||||
PROC pFunc = wglGetProcAddress((LPCSTR)name);
|
||||
|
||||
if (pFunc) return pFunc;
|
||||
|
||||
if (NULL == glMod)
|
||||
glMod = GetModuleHandleA("OpenGL32.dll");
|
||||
|
||||
return (PROC)GetProcAddress(glMod, (LPCSTR)name);
|
||||
}
|
||||
|
||||
#define IntGetProcAddress(name) WinGetProcAddress(name)
|
||||
#endif
|
||||
|
||||
/* Linux, FreeBSD, other */
|
||||
#ifndef IntGetProcAddress
|
||||
extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void);
|
||||
|
||||
#define IntGetProcAddress(name) (*glXGetProcAddressARB)((const GLubyte*)name)
|
||||
#endif
|
||||
|
||||
/* TODO: Need to eventually use eglGetProcAddress */
|
||||
|
||||
int glx_ext_AMD_gpu_association = glx_LOAD_FAILED;
|
||||
int glx_ext_ARB_create_context = glx_LOAD_FAILED;
|
||||
int glx_ext_ARB_create_context_profile = glx_LOAD_FAILED;
|
||||
int glx_ext_ARB_create_context_robustness = glx_LOAD_FAILED;
|
||||
int glx_ext_ARB_fbconfig_float = glx_LOAD_FAILED;
|
||||
int glx_ext_ARB_framebuffer_sRGB = glx_LOAD_FAILED;
|
||||
int glx_ext_ARB_get_proc_address = glx_LOAD_FAILED;
|
||||
int glx_ext_ARB_multisample = glx_LOAD_FAILED;
|
||||
int glx_ext_ARB_robustness_application_isolation = glx_LOAD_FAILED;
|
||||
int glx_ext_ARB_robustness_share_group_isolation = glx_LOAD_FAILED;
|
||||
int glx_ext_ARB_vertex_buffer_object = glx_LOAD_FAILED;
|
||||
int glx_ext_EXT_buffer_age = glx_LOAD_FAILED;
|
||||
int glx_ext_EXT_create_context_es2_profile = glx_LOAD_FAILED;
|
||||
int glx_ext_EXT_create_context_es_profile = glx_LOAD_FAILED;
|
||||
int glx_ext_EXT_fbconfig_packed_float = glx_LOAD_FAILED;
|
||||
int glx_ext_EXT_framebuffer_sRGB = glx_LOAD_FAILED;
|
||||
int glx_ext_EXT_import_context = glx_LOAD_FAILED;
|
||||
int glx_ext_EXT_swap_control = glx_LOAD_FAILED;
|
||||
int glx_ext_EXT_swap_control_tear = glx_LOAD_FAILED;
|
||||
int glx_ext_EXT_texture_from_pixmap = glx_LOAD_FAILED;
|
||||
int glx_ext_EXT_visual_info = glx_LOAD_FAILED;
|
||||
int glx_ext_EXT_visual_rating = glx_LOAD_FAILED;
|
||||
int glx_ext_INTEL_swap_event = glx_LOAD_FAILED;
|
||||
int glx_ext_MESA_agp_offset = glx_LOAD_FAILED;
|
||||
int glx_ext_MESA_copy_sub_buffer = glx_LOAD_FAILED;
|
||||
int glx_ext_MESA_pixmap_colormap = glx_LOAD_FAILED;
|
||||
int glx_ext_MESA_release_buffers = glx_LOAD_FAILED;
|
||||
int glx_ext_MESA_set_3dfx_mode = glx_LOAD_FAILED;
|
||||
int glx_ext_NV_copy_image = glx_LOAD_FAILED;
|
||||
int glx_ext_NV_float_buffer = glx_LOAD_FAILED;
|
||||
int glx_ext_NV_multisample_coverage = glx_LOAD_FAILED;
|
||||
int glx_ext_NV_present_video = glx_LOAD_FAILED;
|
||||
int glx_ext_NV_swap_group = glx_LOAD_FAILED;
|
||||
int glx_ext_NV_video_capture = glx_LOAD_FAILED;
|
||||
int glx_ext_NV_video_output = glx_LOAD_FAILED;
|
||||
|
||||
GLXContext (CODEGEN_FUNCPTR *_ptrc_glXCreateContextAttribsARB)(Display *, GLXFBConfig, GLXContext, Bool, const int *) = NULL;
|
||||
|
||||
static int Load_ARB_create_context(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_glXCreateContextAttribsARB = (GLXContext (CODEGEN_FUNCPTR *)(Display *, GLXFBConfig, GLXContext, Bool, const int *))IntGetProcAddress("glXCreateContextAttribsARB");
|
||||
if(!_ptrc_glXCreateContextAttribsARB) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
__GLXextFuncPtr (CODEGEN_FUNCPTR *_ptrc_glXGetProcAddressARB)(const GLubyte *) = NULL;
|
||||
|
||||
static int Load_ARB_get_proc_address(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_glXGetProcAddressARB = (__GLXextFuncPtr (CODEGEN_FUNCPTR *)(const GLubyte *))IntGetProcAddress("glXGetProcAddressARB");
|
||||
if(!_ptrc_glXGetProcAddressARB) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
void (CODEGEN_FUNCPTR *_ptrc_glXFreeContextEXT)(Display *, GLXContext) = NULL;
|
||||
GLXContextID (CODEGEN_FUNCPTR *_ptrc_glXGetContextIDEXT)(const GLXContext) = NULL;
|
||||
Display * (CODEGEN_FUNCPTR *_ptrc_glXGetCurrentDisplayEXT)(void) = NULL;
|
||||
GLXContext (CODEGEN_FUNCPTR *_ptrc_glXImportContextEXT)(Display *, GLXContextID) = NULL;
|
||||
int (CODEGEN_FUNCPTR *_ptrc_glXQueryContextInfoEXT)(Display *, GLXContext, int, int *) = NULL;
|
||||
|
||||
static int Load_EXT_import_context(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_glXFreeContextEXT = (void (CODEGEN_FUNCPTR *)(Display *, GLXContext))IntGetProcAddress("glXFreeContextEXT");
|
||||
if(!_ptrc_glXFreeContextEXT) numFailed++;
|
||||
_ptrc_glXGetContextIDEXT = (GLXContextID (CODEGEN_FUNCPTR *)(const GLXContext))IntGetProcAddress("glXGetContextIDEXT");
|
||||
if(!_ptrc_glXGetContextIDEXT) numFailed++;
|
||||
_ptrc_glXGetCurrentDisplayEXT = (Display * (CODEGEN_FUNCPTR *)(void))IntGetProcAddress("glXGetCurrentDisplayEXT");
|
||||
if(!_ptrc_glXGetCurrentDisplayEXT) numFailed++;
|
||||
_ptrc_glXImportContextEXT = (GLXContext (CODEGEN_FUNCPTR *)(Display *, GLXContextID))IntGetProcAddress("glXImportContextEXT");
|
||||
if(!_ptrc_glXImportContextEXT) numFailed++;
|
||||
_ptrc_glXQueryContextInfoEXT = (int (CODEGEN_FUNCPTR *)(Display *, GLXContext, int, int *))IntGetProcAddress("glXQueryContextInfoEXT");
|
||||
if(!_ptrc_glXQueryContextInfoEXT) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
void (CODEGEN_FUNCPTR *_ptrc_glXSwapIntervalEXT)(Display *, GLXDrawable, int) = NULL;
|
||||
|
||||
static int Load_EXT_swap_control(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_glXSwapIntervalEXT = (void (CODEGEN_FUNCPTR *)(Display *, GLXDrawable, int))IntGetProcAddress("glXSwapIntervalEXT");
|
||||
if(!_ptrc_glXSwapIntervalEXT) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
void (CODEGEN_FUNCPTR *_ptrc_glXBindTexImageEXT)(Display *, GLXDrawable, int, const int *) = NULL;
|
||||
void (CODEGEN_FUNCPTR *_ptrc_glXReleaseTexImageEXT)(Display *, GLXDrawable, int) = NULL;
|
||||
|
||||
static int Load_EXT_texture_from_pixmap(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_glXBindTexImageEXT = (void (CODEGEN_FUNCPTR *)(Display *, GLXDrawable, int, const int *))IntGetProcAddress("glXBindTexImageEXT");
|
||||
if(!_ptrc_glXBindTexImageEXT) numFailed++;
|
||||
_ptrc_glXReleaseTexImageEXT = (void (CODEGEN_FUNCPTR *)(Display *, GLXDrawable, int))IntGetProcAddress("glXReleaseTexImageEXT");
|
||||
if(!_ptrc_glXReleaseTexImageEXT) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
unsigned int (CODEGEN_FUNCPTR *_ptrc_glXGetAGPOffsetMESA)(const void *) = NULL;
|
||||
|
||||
static int Load_MESA_agp_offset(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_glXGetAGPOffsetMESA = (unsigned int (CODEGEN_FUNCPTR *)(const void *))IntGetProcAddress("glXGetAGPOffsetMESA");
|
||||
if(!_ptrc_glXGetAGPOffsetMESA) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
void (CODEGEN_FUNCPTR *_ptrc_glXCopySubBufferMESA)(Display *, GLXDrawable, int, int, int, int) = NULL;
|
||||
|
||||
static int Load_MESA_copy_sub_buffer(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_glXCopySubBufferMESA = (void (CODEGEN_FUNCPTR *)(Display *, GLXDrawable, int, int, int, int))IntGetProcAddress("glXCopySubBufferMESA");
|
||||
if(!_ptrc_glXCopySubBufferMESA) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
GLXPixmap (CODEGEN_FUNCPTR *_ptrc_glXCreateGLXPixmapMESA)(Display *, XVisualInfo *, Pixmap, Colormap) = NULL;
|
||||
|
||||
static int Load_MESA_pixmap_colormap(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_glXCreateGLXPixmapMESA = (GLXPixmap (CODEGEN_FUNCPTR *)(Display *, XVisualInfo *, Pixmap, Colormap))IntGetProcAddress("glXCreateGLXPixmapMESA");
|
||||
if(!_ptrc_glXCreateGLXPixmapMESA) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
Bool (CODEGEN_FUNCPTR *_ptrc_glXReleaseBuffersMESA)(Display *, GLXDrawable) = NULL;
|
||||
|
||||
static int Load_MESA_release_buffers(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_glXReleaseBuffersMESA = (Bool (CODEGEN_FUNCPTR *)(Display *, GLXDrawable))IntGetProcAddress("glXReleaseBuffersMESA");
|
||||
if(!_ptrc_glXReleaseBuffersMESA) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
Bool (CODEGEN_FUNCPTR *_ptrc_glXSet3DfxModeMESA)(int) = NULL;
|
||||
|
||||
static int Load_MESA_set_3dfx_mode(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_glXSet3DfxModeMESA = (Bool (CODEGEN_FUNCPTR *)(int))IntGetProcAddress("glXSet3DfxModeMESA");
|
||||
if(!_ptrc_glXSet3DfxModeMESA) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
void (CODEGEN_FUNCPTR *_ptrc_glXCopyImageSubDataNV)(Display *, GLXContext, GLuint, GLenum, GLint, GLint, GLint, GLint, GLXContext, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei) = NULL;
|
||||
|
||||
static int Load_NV_copy_image(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_glXCopyImageSubDataNV = (void (CODEGEN_FUNCPTR *)(Display *, GLXContext, GLuint, GLenum, GLint, GLint, GLint, GLint, GLXContext, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei))IntGetProcAddress("glXCopyImageSubDataNV");
|
||||
if(!_ptrc_glXCopyImageSubDataNV) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
int (CODEGEN_FUNCPTR *_ptrc_glXBindVideoDeviceNV)(Display *, unsigned int, unsigned int, const int *) = NULL;
|
||||
unsigned int * (CODEGEN_FUNCPTR *_ptrc_glXEnumerateVideoDevicesNV)(Display *, int, int *) = NULL;
|
||||
|
||||
static int Load_NV_present_video(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_glXBindVideoDeviceNV = (int (CODEGEN_FUNCPTR *)(Display *, unsigned int, unsigned int, const int *))IntGetProcAddress("glXBindVideoDeviceNV");
|
||||
if(!_ptrc_glXBindVideoDeviceNV) numFailed++;
|
||||
_ptrc_glXEnumerateVideoDevicesNV = (unsigned int * (CODEGEN_FUNCPTR *)(Display *, int, int *))IntGetProcAddress("glXEnumerateVideoDevicesNV");
|
||||
if(!_ptrc_glXEnumerateVideoDevicesNV) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
Bool (CODEGEN_FUNCPTR *_ptrc_glXBindSwapBarrierNV)(Display *, GLuint, GLuint) = NULL;
|
||||
Bool (CODEGEN_FUNCPTR *_ptrc_glXJoinSwapGroupNV)(Display *, GLXDrawable, GLuint) = NULL;
|
||||
Bool (CODEGEN_FUNCPTR *_ptrc_glXQueryFrameCountNV)(Display *, int, GLuint *) = NULL;
|
||||
Bool (CODEGEN_FUNCPTR *_ptrc_glXQueryMaxSwapGroupsNV)(Display *, int, GLuint *, GLuint *) = NULL;
|
||||
Bool (CODEGEN_FUNCPTR *_ptrc_glXQuerySwapGroupNV)(Display *, GLXDrawable, GLuint *, GLuint *) = NULL;
|
||||
Bool (CODEGEN_FUNCPTR *_ptrc_glXResetFrameCountNV)(Display *, int) = NULL;
|
||||
|
||||
static int Load_NV_swap_group(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_glXBindSwapBarrierNV = (Bool (CODEGEN_FUNCPTR *)(Display *, GLuint, GLuint))IntGetProcAddress("glXBindSwapBarrierNV");
|
||||
if(!_ptrc_glXBindSwapBarrierNV) numFailed++;
|
||||
_ptrc_glXJoinSwapGroupNV = (Bool (CODEGEN_FUNCPTR *)(Display *, GLXDrawable, GLuint))IntGetProcAddress("glXJoinSwapGroupNV");
|
||||
if(!_ptrc_glXJoinSwapGroupNV) numFailed++;
|
||||
_ptrc_glXQueryFrameCountNV = (Bool (CODEGEN_FUNCPTR *)(Display *, int, GLuint *))IntGetProcAddress("glXQueryFrameCountNV");
|
||||
if(!_ptrc_glXQueryFrameCountNV) numFailed++;
|
||||
_ptrc_glXQueryMaxSwapGroupsNV = (Bool (CODEGEN_FUNCPTR *)(Display *, int, GLuint *, GLuint *))IntGetProcAddress("glXQueryMaxSwapGroupsNV");
|
||||
if(!_ptrc_glXQueryMaxSwapGroupsNV) numFailed++;
|
||||
_ptrc_glXQuerySwapGroupNV = (Bool (CODEGEN_FUNCPTR *)(Display *, GLXDrawable, GLuint *, GLuint *))IntGetProcAddress("glXQuerySwapGroupNV");
|
||||
if(!_ptrc_glXQuerySwapGroupNV) numFailed++;
|
||||
_ptrc_glXResetFrameCountNV = (Bool (CODEGEN_FUNCPTR *)(Display *, int))IntGetProcAddress("glXResetFrameCountNV");
|
||||
if(!_ptrc_glXResetFrameCountNV) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
int (CODEGEN_FUNCPTR *_ptrc_glXBindVideoCaptureDeviceNV)(Display *, unsigned int, GLXVideoCaptureDeviceNV) = NULL;
|
||||
GLXVideoCaptureDeviceNV * (CODEGEN_FUNCPTR *_ptrc_glXEnumerateVideoCaptureDevicesNV)(Display *, int, int *) = NULL;
|
||||
void (CODEGEN_FUNCPTR *_ptrc_glXLockVideoCaptureDeviceNV)(Display *, GLXVideoCaptureDeviceNV) = NULL;
|
||||
int (CODEGEN_FUNCPTR *_ptrc_glXQueryVideoCaptureDeviceNV)(Display *, GLXVideoCaptureDeviceNV, int, int *) = NULL;
|
||||
void (CODEGEN_FUNCPTR *_ptrc_glXReleaseVideoCaptureDeviceNV)(Display *, GLXVideoCaptureDeviceNV) = NULL;
|
||||
|
||||
static int Load_NV_video_capture(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_glXBindVideoCaptureDeviceNV = (int (CODEGEN_FUNCPTR *)(Display *, unsigned int, GLXVideoCaptureDeviceNV))IntGetProcAddress("glXBindVideoCaptureDeviceNV");
|
||||
if(!_ptrc_glXBindVideoCaptureDeviceNV) numFailed++;
|
||||
_ptrc_glXEnumerateVideoCaptureDevicesNV = (GLXVideoCaptureDeviceNV * (CODEGEN_FUNCPTR *)(Display *, int, int *))IntGetProcAddress("glXEnumerateVideoCaptureDevicesNV");
|
||||
if(!_ptrc_glXEnumerateVideoCaptureDevicesNV) numFailed++;
|
||||
_ptrc_glXLockVideoCaptureDeviceNV = (void (CODEGEN_FUNCPTR *)(Display *, GLXVideoCaptureDeviceNV))IntGetProcAddress("glXLockVideoCaptureDeviceNV");
|
||||
if(!_ptrc_glXLockVideoCaptureDeviceNV) numFailed++;
|
||||
_ptrc_glXQueryVideoCaptureDeviceNV = (int (CODEGEN_FUNCPTR *)(Display *, GLXVideoCaptureDeviceNV, int, int *))IntGetProcAddress("glXQueryVideoCaptureDeviceNV");
|
||||
if(!_ptrc_glXQueryVideoCaptureDeviceNV) numFailed++;
|
||||
_ptrc_glXReleaseVideoCaptureDeviceNV = (void (CODEGEN_FUNCPTR *)(Display *, GLXVideoCaptureDeviceNV))IntGetProcAddress("glXReleaseVideoCaptureDeviceNV");
|
||||
if(!_ptrc_glXReleaseVideoCaptureDeviceNV) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
int (CODEGEN_FUNCPTR *_ptrc_glXBindVideoImageNV)(Display *, GLXVideoDeviceNV, GLXPbuffer, int) = NULL;
|
||||
int (CODEGEN_FUNCPTR *_ptrc_glXGetVideoDeviceNV)(Display *, int, int, GLXVideoDeviceNV *) = NULL;
|
||||
int (CODEGEN_FUNCPTR *_ptrc_glXGetVideoInfoNV)(Display *, int, GLXVideoDeviceNV, unsigned long *, unsigned long *) = NULL;
|
||||
int (CODEGEN_FUNCPTR *_ptrc_glXReleaseVideoDeviceNV)(Display *, int, GLXVideoDeviceNV) = NULL;
|
||||
int (CODEGEN_FUNCPTR *_ptrc_glXReleaseVideoImageNV)(Display *, GLXPbuffer) = NULL;
|
||||
int (CODEGEN_FUNCPTR *_ptrc_glXSendPbufferToVideoNV)(Display *, GLXPbuffer, int, unsigned long *, GLboolean) = NULL;
|
||||
|
||||
static int Load_NV_video_output(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_glXBindVideoImageNV = (int (CODEGEN_FUNCPTR *)(Display *, GLXVideoDeviceNV, GLXPbuffer, int))IntGetProcAddress("glXBindVideoImageNV");
|
||||
if(!_ptrc_glXBindVideoImageNV) numFailed++;
|
||||
_ptrc_glXGetVideoDeviceNV = (int (CODEGEN_FUNCPTR *)(Display *, int, int, GLXVideoDeviceNV *))IntGetProcAddress("glXGetVideoDeviceNV");
|
||||
if(!_ptrc_glXGetVideoDeviceNV) numFailed++;
|
||||
_ptrc_glXGetVideoInfoNV = (int (CODEGEN_FUNCPTR *)(Display *, int, GLXVideoDeviceNV, unsigned long *, unsigned long *))IntGetProcAddress("glXGetVideoInfoNV");
|
||||
if(!_ptrc_glXGetVideoInfoNV) numFailed++;
|
||||
_ptrc_glXReleaseVideoDeviceNV = (int (CODEGEN_FUNCPTR *)(Display *, int, GLXVideoDeviceNV))IntGetProcAddress("glXReleaseVideoDeviceNV");
|
||||
if(!_ptrc_glXReleaseVideoDeviceNV) numFailed++;
|
||||
_ptrc_glXReleaseVideoImageNV = (int (CODEGEN_FUNCPTR *)(Display *, GLXPbuffer))IntGetProcAddress("glXReleaseVideoImageNV");
|
||||
if(!_ptrc_glXReleaseVideoImageNV) numFailed++;
|
||||
_ptrc_glXSendPbufferToVideoNV = (int (CODEGEN_FUNCPTR *)(Display *, GLXPbuffer, int, unsigned long *, GLboolean))IntGetProcAddress("glXSendPbufferToVideoNV");
|
||||
if(!_ptrc_glXSendPbufferToVideoNV) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
typedef int (*PFN_LOADFUNCPOINTERS)(void);
|
||||
typedef struct glx_StrToExtMap_s
|
||||
{
|
||||
const char *extensionName;
|
||||
int *extensionVariable;
|
||||
PFN_LOADFUNCPOINTERS LoadExtension;
|
||||
} glx_StrToExtMap;
|
||||
|
||||
static glx_StrToExtMap ExtensionMap[35] = {
|
||||
{"GLX_AMD_gpu_association", &glx_ext_AMD_gpu_association, NULL},
|
||||
{"GLX_ARB_create_context", &glx_ext_ARB_create_context, Load_ARB_create_context},
|
||||
{"GLX_ARB_create_context_profile", &glx_ext_ARB_create_context_profile, NULL},
|
||||
{"GLX_ARB_create_context_robustness", &glx_ext_ARB_create_context_robustness, NULL},
|
||||
{"GLX_ARB_fbconfig_float", &glx_ext_ARB_fbconfig_float, NULL},
|
||||
{"GLX_ARB_framebuffer_sRGB", &glx_ext_ARB_framebuffer_sRGB, NULL},
|
||||
{"GLX_ARB_get_proc_address", &glx_ext_ARB_get_proc_address, Load_ARB_get_proc_address},
|
||||
{"GLX_ARB_multisample", &glx_ext_ARB_multisample, NULL},
|
||||
{"GLX_ARB_robustness_application_isolation", &glx_ext_ARB_robustness_application_isolation, NULL},
|
||||
{"GLX_ARB_robustness_share_group_isolation", &glx_ext_ARB_robustness_share_group_isolation, NULL},
|
||||
{"GLX_ARB_vertex_buffer_object", &glx_ext_ARB_vertex_buffer_object, NULL},
|
||||
{"GLX_EXT_buffer_age", &glx_ext_EXT_buffer_age, NULL},
|
||||
{"GLX_EXT_create_context_es2_profile", &glx_ext_EXT_create_context_es2_profile, NULL},
|
||||
{"GLX_EXT_create_context_es_profile", &glx_ext_EXT_create_context_es_profile, NULL},
|
||||
{"GLX_EXT_fbconfig_packed_float", &glx_ext_EXT_fbconfig_packed_float, NULL},
|
||||
{"GLX_EXT_framebuffer_sRGB", &glx_ext_EXT_framebuffer_sRGB, NULL},
|
||||
{"GLX_EXT_import_context", &glx_ext_EXT_import_context, Load_EXT_import_context},
|
||||
{"GLX_EXT_swap_control", &glx_ext_EXT_swap_control, Load_EXT_swap_control},
|
||||
{"GLX_EXT_swap_control_tear", &glx_ext_EXT_swap_control_tear, NULL},
|
||||
{"GLX_EXT_texture_from_pixmap", &glx_ext_EXT_texture_from_pixmap, Load_EXT_texture_from_pixmap},
|
||||
{"GLX_EXT_visual_info", &glx_ext_EXT_visual_info, NULL},
|
||||
{"GLX_EXT_visual_rating", &glx_ext_EXT_visual_rating, NULL},
|
||||
{"GLX_INTEL_swap_event", &glx_ext_INTEL_swap_event, NULL},
|
||||
{"GLX_MESA_agp_offset", &glx_ext_MESA_agp_offset, Load_MESA_agp_offset},
|
||||
{"GLX_MESA_copy_sub_buffer", &glx_ext_MESA_copy_sub_buffer, Load_MESA_copy_sub_buffer},
|
||||
{"GLX_MESA_pixmap_colormap", &glx_ext_MESA_pixmap_colormap, Load_MESA_pixmap_colormap},
|
||||
{"GLX_MESA_release_buffers", &glx_ext_MESA_release_buffers, Load_MESA_release_buffers},
|
||||
{"GLX_MESA_set_3dfx_mode", &glx_ext_MESA_set_3dfx_mode, Load_MESA_set_3dfx_mode},
|
||||
{"GLX_NV_copy_image", &glx_ext_NV_copy_image, Load_NV_copy_image},
|
||||
{"GLX_NV_float_buffer", &glx_ext_NV_float_buffer, NULL},
|
||||
{"GLX_NV_multisample_coverage", &glx_ext_NV_multisample_coverage, NULL},
|
||||
{"GLX_NV_present_video", &glx_ext_NV_present_video, Load_NV_present_video},
|
||||
{"GLX_NV_swap_group", &glx_ext_NV_swap_group, Load_NV_swap_group},
|
||||
{"GLX_NV_video_capture", &glx_ext_NV_video_capture, Load_NV_video_capture},
|
||||
{"GLX_NV_video_output", &glx_ext_NV_video_output, Load_NV_video_output},
|
||||
};
|
||||
|
||||
static int g_extensionMapSize = 35;
|
||||
|
||||
static glx_StrToExtMap *FindExtEntry(const char *extensionName)
|
||||
{
|
||||
int loop;
|
||||
glx_StrToExtMap *currLoc = ExtensionMap;
|
||||
for(loop = 0; loop < g_extensionMapSize; ++loop, ++currLoc)
|
||||
{
|
||||
if(strcmp(extensionName, currLoc->extensionName) == 0)
|
||||
return currLoc;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void ClearExtensionVars(void)
|
||||
{
|
||||
glx_ext_AMD_gpu_association = glx_LOAD_FAILED;
|
||||
glx_ext_ARB_create_context = glx_LOAD_FAILED;
|
||||
glx_ext_ARB_create_context_profile = glx_LOAD_FAILED;
|
||||
glx_ext_ARB_create_context_robustness = glx_LOAD_FAILED;
|
||||
glx_ext_ARB_fbconfig_float = glx_LOAD_FAILED;
|
||||
glx_ext_ARB_framebuffer_sRGB = glx_LOAD_FAILED;
|
||||
glx_ext_ARB_get_proc_address = glx_LOAD_FAILED;
|
||||
glx_ext_ARB_multisample = glx_LOAD_FAILED;
|
||||
glx_ext_ARB_robustness_application_isolation = glx_LOAD_FAILED;
|
||||
glx_ext_ARB_robustness_share_group_isolation = glx_LOAD_FAILED;
|
||||
glx_ext_ARB_vertex_buffer_object = glx_LOAD_FAILED;
|
||||
glx_ext_EXT_buffer_age = glx_LOAD_FAILED;
|
||||
glx_ext_EXT_create_context_es2_profile = glx_LOAD_FAILED;
|
||||
glx_ext_EXT_create_context_es_profile = glx_LOAD_FAILED;
|
||||
glx_ext_EXT_fbconfig_packed_float = glx_LOAD_FAILED;
|
||||
glx_ext_EXT_framebuffer_sRGB = glx_LOAD_FAILED;
|
||||
glx_ext_EXT_import_context = glx_LOAD_FAILED;
|
||||
glx_ext_EXT_swap_control = glx_LOAD_FAILED;
|
||||
glx_ext_EXT_swap_control_tear = glx_LOAD_FAILED;
|
||||
glx_ext_EXT_texture_from_pixmap = glx_LOAD_FAILED;
|
||||
glx_ext_EXT_visual_info = glx_LOAD_FAILED;
|
||||
glx_ext_EXT_visual_rating = glx_LOAD_FAILED;
|
||||
glx_ext_INTEL_swap_event = glx_LOAD_FAILED;
|
||||
glx_ext_MESA_agp_offset = glx_LOAD_FAILED;
|
||||
glx_ext_MESA_copy_sub_buffer = glx_LOAD_FAILED;
|
||||
glx_ext_MESA_pixmap_colormap = glx_LOAD_FAILED;
|
||||
glx_ext_MESA_release_buffers = glx_LOAD_FAILED;
|
||||
glx_ext_MESA_set_3dfx_mode = glx_LOAD_FAILED;
|
||||
glx_ext_NV_copy_image = glx_LOAD_FAILED;
|
||||
glx_ext_NV_float_buffer = glx_LOAD_FAILED;
|
||||
glx_ext_NV_multisample_coverage = glx_LOAD_FAILED;
|
||||
glx_ext_NV_present_video = glx_LOAD_FAILED;
|
||||
glx_ext_NV_swap_group = glx_LOAD_FAILED;
|
||||
glx_ext_NV_video_capture = glx_LOAD_FAILED;
|
||||
glx_ext_NV_video_output = glx_LOAD_FAILED;
|
||||
}
|
||||
|
||||
|
||||
static void LoadExtByName(const char *extensionName)
|
||||
{
|
||||
glx_StrToExtMap *entry = NULL;
|
||||
entry = FindExtEntry(extensionName);
|
||||
if(entry)
|
||||
{
|
||||
if(entry->LoadExtension)
|
||||
{
|
||||
int numFailed = entry->LoadExtension();
|
||||
if(numFailed == 0)
|
||||
{
|
||||
*(entry->extensionVariable) = glx_LOAD_SUCCEEDED;
|
||||
}
|
||||
else
|
||||
{
|
||||
*(entry->extensionVariable) = glx_LOAD_SUCCEEDED + numFailed;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
*(entry->extensionVariable) = glx_LOAD_SUCCEEDED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void ProcExtsFromExtString(const char *strExtList)
|
||||
{
|
||||
size_t iExtListLen = strlen(strExtList);
|
||||
const char *strExtListEnd = strExtList + iExtListLen;
|
||||
const char *strCurrPos = strExtList;
|
||||
char strWorkBuff[256];
|
||||
|
||||
while(*strCurrPos)
|
||||
{
|
||||
/*Get the extension at our position.*/
|
||||
int iStrLen = 0;
|
||||
const char *strEndStr = strchr(strCurrPos, ' ');
|
||||
int iStop = 0;
|
||||
if(strEndStr == NULL)
|
||||
{
|
||||
strEndStr = strExtListEnd;
|
||||
iStop = 1;
|
||||
}
|
||||
|
||||
iStrLen = (int)((ptrdiff_t)strEndStr - (ptrdiff_t)strCurrPos);
|
||||
|
||||
if(iStrLen > 255)
|
||||
return;
|
||||
|
||||
strncpy(strWorkBuff, strCurrPos, iStrLen);
|
||||
strWorkBuff[iStrLen] = '\0';
|
||||
|
||||
LoadExtByName(strWorkBuff);
|
||||
|
||||
strCurrPos = strEndStr + 1;
|
||||
if(iStop) break;
|
||||
}
|
||||
}
|
||||
|
||||
int glx_LoadFunctions(Display *display, int screen)
|
||||
{
|
||||
ClearExtensionVars();
|
||||
|
||||
|
||||
ProcExtsFromExtString((const char *)glXQueryExtensionsString(display, screen));
|
||||
return glx_LOAD_SUCCEEDED;
|
||||
}
|
||||
|
@ -1,467 +0,0 @@
|
||||
/* AUTOGENERATED BY glLoadGen, DO NOT EDIT */
|
||||
#ifndef POINTER_C_GENERATED_HEADER_GLXWIN_H
|
||||
#define POINTER_C_GENERATED_HEADER_GLXWIN_H
|
||||
|
||||
#ifdef __glxext_h_
|
||||
#error Attempt to include glx_exts after including glxext.h
|
||||
#endif
|
||||
|
||||
#define __glxext_h_
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <GL/glx.h>
|
||||
#ifdef CODEGEN_FUNCPTR
|
||||
#undef CODEGEN_FUNCPTR
|
||||
#endif /*CODEGEN_FUNCPTR*/
|
||||
#define CODEGEN_FUNCPTR
|
||||
|
||||
#ifndef GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
|
||||
#define GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
|
||||
|
||||
typedef unsigned int GLenum;
|
||||
typedef unsigned char GLboolean;
|
||||
typedef unsigned int GLbitfield;
|
||||
typedef signed char GLbyte;
|
||||
typedef short GLshort;
|
||||
typedef int GLint;
|
||||
typedef int GLsizei;
|
||||
typedef unsigned char GLubyte;
|
||||
typedef unsigned short GLushort;
|
||||
typedef unsigned int GLuint;
|
||||
typedef float GLfloat;
|
||||
typedef float GLclampf;
|
||||
typedef double GLdouble;
|
||||
typedef double GLclampd;
|
||||
#define GLvoid void
|
||||
|
||||
#endif /*GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS*/
|
||||
|
||||
|
||||
|
||||
#ifndef GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
|
||||
#define GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
|
||||
|
||||
|
||||
#endif /*GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS*/
|
||||
|
||||
|
||||
#ifndef GLEXT_64_TYPES_DEFINED
|
||||
/* This code block is duplicated in glext.h, so must be protected */
|
||||
#define GLEXT_64_TYPES_DEFINED
|
||||
/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
|
||||
/* (as used in the GLX_OML_sync_control extension). */
|
||||
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
||||
#include <inttypes.h>
|
||||
#elif defined(__sun__) || defined(__digital__)
|
||||
#include <inttypes.h>
|
||||
#if defined(__STDC__)
|
||||
#if defined(__arch64__) || defined(_LP64)
|
||||
typedef long int int64_t;
|
||||
typedef unsigned long int uint64_t;
|
||||
#else
|
||||
typedef long long int int64_t;
|
||||
typedef unsigned long long int uint64_t;
|
||||
#endif /* __arch64__ */
|
||||
#endif /* __STDC__ */
|
||||
#elif defined( __VMS ) || defined(__sgi)
|
||||
#include <inttypes.h>
|
||||
#elif defined(__SCO__) || defined(__USLC__)
|
||||
#include <stdint.h>
|
||||
#elif defined(__UNIXOS2__) || defined(__SOL64__)
|
||||
typedef long int int32_t;
|
||||
typedef long long int int64_t;
|
||||
typedef unsigned long long int uint64_t;
|
||||
#elif defined(_WIN32) && defined(__GNUC__)
|
||||
#include <stdint.h>
|
||||
#elif defined(_WIN32)
|
||||
typedef __int32 int32_t;
|
||||
typedef __int64 int64_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
#else
|
||||
/* Fallback if nothing above works */
|
||||
#include <inttypes.h>
|
||||
#endif
|
||||
#endif
|
||||
typedef struct __GLXFBConfigRec *GLXFBConfig;
|
||||
typedef XID GLXContextID;
|
||||
typedef struct __GLXcontextRec *GLXContext;
|
||||
typedef XID GLXPixmap;
|
||||
typedef XID GLXDrawable;
|
||||
typedef XID GLXPbuffer;
|
||||
typedef void (APIENTRY *__GLXextFuncPtr)(void);
|
||||
typedef XID GLXVideoCaptureDeviceNV;
|
||||
typedef unsigned int GLXVideoDeviceNV;
|
||||
typedef XID GLXVideoSourceSGIX;
|
||||
typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
|
||||
typedef XID GLXPbufferSGIX;
|
||||
typedef struct {
|
||||
char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
|
||||
int networkId;
|
||||
} GLXHyperpipeNetworkSGIX;
|
||||
typedef struct {
|
||||
char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
|
||||
int channel;
|
||||
unsigned int participationType;
|
||||
int timeSlice;
|
||||
} GLXHyperpipeConfigSGIX;
|
||||
typedef struct {
|
||||
char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
|
||||
int srcXOrigin, srcYOrigin, srcWidth, srcHeight;
|
||||
int destXOrigin, destYOrigin, destWidth, destHeight;
|
||||
} GLXPipeRect;
|
||||
typedef struct {
|
||||
char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
|
||||
int XOrigin, YOrigin, maxHeight, maxWidth;
|
||||
} GLXPipeRectLimits;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /*__cplusplus*/
|
||||
|
||||
extern int glx_ext_AMD_gpu_association;
|
||||
extern int glx_ext_ARB_create_context;
|
||||
extern int glx_ext_ARB_create_context_profile;
|
||||
extern int glx_ext_ARB_create_context_robustness;
|
||||
extern int glx_ext_ARB_fbconfig_float;
|
||||
extern int glx_ext_ARB_framebuffer_sRGB;
|
||||
extern int glx_ext_ARB_get_proc_address;
|
||||
extern int glx_ext_ARB_multisample;
|
||||
extern int glx_ext_ARB_robustness_application_isolation;
|
||||
extern int glx_ext_ARB_robustness_share_group_isolation;
|
||||
extern int glx_ext_ARB_vertex_buffer_object;
|
||||
extern int glx_ext_EXT_buffer_age;
|
||||
extern int glx_ext_EXT_create_context_es2_profile;
|
||||
extern int glx_ext_EXT_create_context_es_profile;
|
||||
extern int glx_ext_EXT_fbconfig_packed_float;
|
||||
extern int glx_ext_EXT_framebuffer_sRGB;
|
||||
extern int glx_ext_EXT_import_context;
|
||||
extern int glx_ext_EXT_swap_control;
|
||||
extern int glx_ext_EXT_swap_control_tear;
|
||||
extern int glx_ext_EXT_texture_from_pixmap;
|
||||
extern int glx_ext_EXT_visual_info;
|
||||
extern int glx_ext_EXT_visual_rating;
|
||||
extern int glx_ext_INTEL_swap_event;
|
||||
extern int glx_ext_MESA_agp_offset;
|
||||
extern int glx_ext_MESA_copy_sub_buffer;
|
||||
extern int glx_ext_MESA_pixmap_colormap;
|
||||
extern int glx_ext_MESA_release_buffers;
|
||||
extern int glx_ext_MESA_set_3dfx_mode;
|
||||
extern int glx_ext_NV_copy_image;
|
||||
extern int glx_ext_NV_float_buffer;
|
||||
extern int glx_ext_NV_multisample_coverage;
|
||||
extern int glx_ext_NV_present_video;
|
||||
extern int glx_ext_NV_swap_group;
|
||||
extern int glx_ext_NV_video_capture;
|
||||
extern int glx_ext_NV_video_output;
|
||||
|
||||
#define GLX_GPU_CLOCK_AMD 0x21A4
|
||||
#define GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
|
||||
#define GLX_GPU_NUM_PIPES_AMD 0x21A5
|
||||
#define GLX_GPU_NUM_RB_AMD 0x21A7
|
||||
#define GLX_GPU_NUM_SIMD_AMD 0x21A6
|
||||
#define GLX_GPU_NUM_SPI_AMD 0x21A8
|
||||
#define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
|
||||
#define GLX_GPU_RAM_AMD 0x21A3
|
||||
#define GLX_GPU_RENDERER_STRING_AMD 0x1F01
|
||||
#define GLX_GPU_VENDOR_AMD 0x1F00
|
||||
|
||||
#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001
|
||||
#define GLX_CONTEXT_FLAGS_ARB 0x2094
|
||||
#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
|
||||
#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
|
||||
#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
|
||||
|
||||
#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
|
||||
#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
|
||||
#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
|
||||
|
||||
#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
|
||||
#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
|
||||
#define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252
|
||||
#define GLX_NO_RESET_NOTIFICATION_ARB 0x8261
|
||||
|
||||
#define GLX_RGBA_FLOAT_BIT_ARB 0x00000004
|
||||
#define GLX_RGBA_FLOAT_TYPE_ARB 0x20B9
|
||||
|
||||
#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2
|
||||
|
||||
#define GLX_SAMPLES_ARB 100001
|
||||
#define GLX_SAMPLE_BUFFERS_ARB 100000
|
||||
|
||||
#define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
|
||||
|
||||
/*Copied GLX_CONTEXT_RESET_ISOLATION_BIT_ARB From: ARB_robustness_application_isolation*/
|
||||
|
||||
#define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095
|
||||
|
||||
#define GLX_BACK_BUFFER_AGE_EXT 0x20F4
|
||||
|
||||
#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
|
||||
|
||||
#define GLX_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004
|
||||
|
||||
#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
|
||||
#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
|
||||
|
||||
#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
|
||||
|
||||
#define GLX_SCREEN_EXT 0x800C
|
||||
#define GLX_SHARE_CONTEXT_EXT 0x800A
|
||||
#define GLX_VISUAL_ID_EXT 0x800B
|
||||
|
||||
#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2
|
||||
#define GLX_SWAP_INTERVAL_EXT 0x20F1
|
||||
|
||||
#define GLX_LATE_SWAPS_TEAR_EXT 0x20F3
|
||||
|
||||
#define GLX_AUX0_EXT 0x20E2
|
||||
#define GLX_AUX1_EXT 0x20E3
|
||||
#define GLX_AUX2_EXT 0x20E4
|
||||
#define GLX_AUX3_EXT 0x20E5
|
||||
#define GLX_AUX4_EXT 0x20E6
|
||||
#define GLX_AUX5_EXT 0x20E7
|
||||
#define GLX_AUX6_EXT 0x20E8
|
||||
#define GLX_AUX7_EXT 0x20E9
|
||||
#define GLX_AUX8_EXT 0x20EA
|
||||
#define GLX_AUX9_EXT 0x20EB
|
||||
#define GLX_BACK_EXT 0x20E0
|
||||
#define GLX_BACK_LEFT_EXT 0x20E0
|
||||
#define GLX_BACK_RIGHT_EXT 0x20E1
|
||||
#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
|
||||
#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
|
||||
#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
|
||||
#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
|
||||
#define GLX_FRONT_EXT 0x20DE
|
||||
#define GLX_FRONT_LEFT_EXT 0x20DE
|
||||
#define GLX_FRONT_RIGHT_EXT 0x20DF
|
||||
#define GLX_MIPMAP_TEXTURE_EXT 0x20D7
|
||||
#define GLX_TEXTURE_1D_BIT_EXT 0x00000001
|
||||
#define GLX_TEXTURE_1D_EXT 0x20DB
|
||||
#define GLX_TEXTURE_2D_BIT_EXT 0x00000002
|
||||
#define GLX_TEXTURE_2D_EXT 0x20DC
|
||||
#define GLX_TEXTURE_FORMAT_EXT 0x20D5
|
||||
#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
|
||||
#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
|
||||
#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
|
||||
#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
|
||||
#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
|
||||
#define GLX_TEXTURE_TARGET_EXT 0x20D6
|
||||
#define GLX_Y_INVERTED_EXT 0x20D4
|
||||
|
||||
#define GLX_DIRECT_COLOR_EXT 0x8003
|
||||
#define GLX_GRAY_SCALE_EXT 0x8006
|
||||
#define GLX_NONE_EXT 0x8000
|
||||
#define GLX_PSEUDO_COLOR_EXT 0x8004
|
||||
#define GLX_STATIC_COLOR_EXT 0x8005
|
||||
#define GLX_STATIC_GRAY_EXT 0x8007
|
||||
#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28
|
||||
#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27
|
||||
#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26
|
||||
#define GLX_TRANSPARENT_INDEX_EXT 0x8009
|
||||
#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24
|
||||
#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25
|
||||
#define GLX_TRANSPARENT_RGB_EXT 0x8008
|
||||
#define GLX_TRANSPARENT_TYPE_EXT 0x23
|
||||
#define GLX_TRUE_COLOR_EXT 0x8002
|
||||
#define GLX_X_VISUAL_TYPE_EXT 0x22
|
||||
|
||||
/*Copied GLX_NONE_EXT From: EXT_visual_info*/
|
||||
#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
|
||||
#define GLX_SLOW_VISUAL_EXT 0x8001
|
||||
#define GLX_VISUAL_CAVEAT_EXT 0x20
|
||||
|
||||
#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000
|
||||
#define GLX_COPY_COMPLETE_INTEL 0x8181
|
||||
#define GLX_EXCHANGE_COMPLETE_INTEL 0x8180
|
||||
#define GLX_FLIP_COMPLETE_INTEL 0x8182
|
||||
|
||||
#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
|
||||
#define GLX_3DFX_WINDOW_MODE_MESA 0x1
|
||||
|
||||
#define GLX_FLOAT_COMPONENTS_NV 0x20B0
|
||||
|
||||
#define GLX_COLOR_SAMPLES_NV 0x20B3
|
||||
#define GLX_COVERAGE_SAMPLES_NV 100001
|
||||
|
||||
#define GLX_NUM_VIDEO_SLOTS_NV 0x20F0
|
||||
|
||||
#define GLX_DEVICE_ID_NV 0x20CD
|
||||
#define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
|
||||
#define GLX_UNIQUE_ID_NV 0x20CE
|
||||
|
||||
#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4
|
||||
#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
|
||||
#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
|
||||
#define GLX_VIDEO_OUT_COLOR_NV 0x20C3
|
||||
#define GLX_VIDEO_OUT_DEPTH_NV 0x20C5
|
||||
#define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9
|
||||
#define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA
|
||||
#define GLX_VIDEO_OUT_FRAME_NV 0x20C8
|
||||
#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB
|
||||
#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC
|
||||
|
||||
|
||||
#ifndef GLX_ARB_create_context
|
||||
#define GLX_ARB_create_context 1
|
||||
extern GLXContext (CODEGEN_FUNCPTR *_ptrc_glXCreateContextAttribsARB)(Display *, GLXFBConfig, GLXContext, Bool, const int *);
|
||||
#define glXCreateContextAttribsARB _ptrc_glXCreateContextAttribsARB
|
||||
#endif /*GLX_ARB_create_context*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef GLX_ARB_get_proc_address
|
||||
#define GLX_ARB_get_proc_address 1
|
||||
extern __GLXextFuncPtr (CODEGEN_FUNCPTR *_ptrc_glXGetProcAddressARB)(const GLubyte *);
|
||||
#define glXGetProcAddressARB _ptrc_glXGetProcAddressARB
|
||||
#endif /*GLX_ARB_get_proc_address*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef GLX_EXT_import_context
|
||||
#define GLX_EXT_import_context 1
|
||||
extern void (CODEGEN_FUNCPTR *_ptrc_glXFreeContextEXT)(Display *, GLXContext);
|
||||
#define glXFreeContextEXT _ptrc_glXFreeContextEXT
|
||||
extern GLXContextID (CODEGEN_FUNCPTR *_ptrc_glXGetContextIDEXT)(const GLXContext);
|
||||
#define glXGetContextIDEXT _ptrc_glXGetContextIDEXT
|
||||
extern Display * (CODEGEN_FUNCPTR *_ptrc_glXGetCurrentDisplayEXT)(void);
|
||||
#define glXGetCurrentDisplayEXT _ptrc_glXGetCurrentDisplayEXT
|
||||
extern GLXContext (CODEGEN_FUNCPTR *_ptrc_glXImportContextEXT)(Display *, GLXContextID);
|
||||
#define glXImportContextEXT _ptrc_glXImportContextEXT
|
||||
extern int (CODEGEN_FUNCPTR *_ptrc_glXQueryContextInfoEXT)(Display *, GLXContext, int, int *);
|
||||
#define glXQueryContextInfoEXT _ptrc_glXQueryContextInfoEXT
|
||||
#endif /*GLX_EXT_import_context*/
|
||||
|
||||
#ifndef GLX_EXT_swap_control
|
||||
#define GLX_EXT_swap_control 1
|
||||
extern void (CODEGEN_FUNCPTR *_ptrc_glXSwapIntervalEXT)(Display *, GLXDrawable, int);
|
||||
#define glXSwapIntervalEXT _ptrc_glXSwapIntervalEXT
|
||||
#endif /*GLX_EXT_swap_control*/
|
||||
|
||||
|
||||
#ifndef GLX_EXT_texture_from_pixmap
|
||||
#define GLX_EXT_texture_from_pixmap 1
|
||||
extern void (CODEGEN_FUNCPTR *_ptrc_glXBindTexImageEXT)(Display *, GLXDrawable, int, const int *);
|
||||
#define glXBindTexImageEXT _ptrc_glXBindTexImageEXT
|
||||
extern void (CODEGEN_FUNCPTR *_ptrc_glXReleaseTexImageEXT)(Display *, GLXDrawable, int);
|
||||
#define glXReleaseTexImageEXT _ptrc_glXReleaseTexImageEXT
|
||||
#endif /*GLX_EXT_texture_from_pixmap*/
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef GLX_MESA_agp_offset
|
||||
#define GLX_MESA_agp_offset 1
|
||||
extern unsigned int (CODEGEN_FUNCPTR *_ptrc_glXGetAGPOffsetMESA)(const void *);
|
||||
#define glXGetAGPOffsetMESA _ptrc_glXGetAGPOffsetMESA
|
||||
#endif /*GLX_MESA_agp_offset*/
|
||||
|
||||
#ifndef GLX_MESA_copy_sub_buffer
|
||||
#define GLX_MESA_copy_sub_buffer 1
|
||||
extern void (CODEGEN_FUNCPTR *_ptrc_glXCopySubBufferMESA)(Display *, GLXDrawable, int, int, int, int);
|
||||
#define glXCopySubBufferMESA _ptrc_glXCopySubBufferMESA
|
||||
#endif /*GLX_MESA_copy_sub_buffer*/
|
||||
|
||||
#ifndef GLX_MESA_pixmap_colormap
|
||||
#define GLX_MESA_pixmap_colormap 1
|
||||
extern GLXPixmap (CODEGEN_FUNCPTR *_ptrc_glXCreateGLXPixmapMESA)(Display *, XVisualInfo *, Pixmap, Colormap);
|
||||
#define glXCreateGLXPixmapMESA _ptrc_glXCreateGLXPixmapMESA
|
||||
#endif /*GLX_MESA_pixmap_colormap*/
|
||||
|
||||
#ifndef GLX_MESA_release_buffers
|
||||
#define GLX_MESA_release_buffers 1
|
||||
extern Bool (CODEGEN_FUNCPTR *_ptrc_glXReleaseBuffersMESA)(Display *, GLXDrawable);
|
||||
#define glXReleaseBuffersMESA _ptrc_glXReleaseBuffersMESA
|
||||
#endif /*GLX_MESA_release_buffers*/
|
||||
|
||||
#ifndef GLX_MESA_set_3dfx_mode
|
||||
#define GLX_MESA_set_3dfx_mode 1
|
||||
extern Bool (CODEGEN_FUNCPTR *_ptrc_glXSet3DfxModeMESA)(int);
|
||||
#define glXSet3DfxModeMESA _ptrc_glXSet3DfxModeMESA
|
||||
#endif /*GLX_MESA_set_3dfx_mode*/
|
||||
|
||||
#ifndef GLX_NV_copy_image
|
||||
#define GLX_NV_copy_image 1
|
||||
extern void (CODEGEN_FUNCPTR *_ptrc_glXCopyImageSubDataNV)(Display *, GLXContext, GLuint, GLenum, GLint, GLint, GLint, GLint, GLXContext, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei);
|
||||
#define glXCopyImageSubDataNV _ptrc_glXCopyImageSubDataNV
|
||||
#endif /*GLX_NV_copy_image*/
|
||||
|
||||
|
||||
|
||||
#ifndef GLX_NV_present_video
|
||||
#define GLX_NV_present_video 1
|
||||
extern int (CODEGEN_FUNCPTR *_ptrc_glXBindVideoDeviceNV)(Display *, unsigned int, unsigned int, const int *);
|
||||
#define glXBindVideoDeviceNV _ptrc_glXBindVideoDeviceNV
|
||||
extern unsigned int * (CODEGEN_FUNCPTR *_ptrc_glXEnumerateVideoDevicesNV)(Display *, int, int *);
|
||||
#define glXEnumerateVideoDevicesNV _ptrc_glXEnumerateVideoDevicesNV
|
||||
#endif /*GLX_NV_present_video*/
|
||||
|
||||
#ifndef GLX_NV_swap_group
|
||||
#define GLX_NV_swap_group 1
|
||||
extern Bool (CODEGEN_FUNCPTR *_ptrc_glXBindSwapBarrierNV)(Display *, GLuint, GLuint);
|
||||
#define glXBindSwapBarrierNV _ptrc_glXBindSwapBarrierNV
|
||||
extern Bool (CODEGEN_FUNCPTR *_ptrc_glXJoinSwapGroupNV)(Display *, GLXDrawable, GLuint);
|
||||
#define glXJoinSwapGroupNV _ptrc_glXJoinSwapGroupNV
|
||||
extern Bool (CODEGEN_FUNCPTR *_ptrc_glXQueryFrameCountNV)(Display *, int, GLuint *);
|
||||
#define glXQueryFrameCountNV _ptrc_glXQueryFrameCountNV
|
||||
extern Bool (CODEGEN_FUNCPTR *_ptrc_glXQueryMaxSwapGroupsNV)(Display *, int, GLuint *, GLuint *);
|
||||
#define glXQueryMaxSwapGroupsNV _ptrc_glXQueryMaxSwapGroupsNV
|
||||
extern Bool (CODEGEN_FUNCPTR *_ptrc_glXQuerySwapGroupNV)(Display *, GLXDrawable, GLuint *, GLuint *);
|
||||
#define glXQuerySwapGroupNV _ptrc_glXQuerySwapGroupNV
|
||||
extern Bool (CODEGEN_FUNCPTR *_ptrc_glXResetFrameCountNV)(Display *, int);
|
||||
#define glXResetFrameCountNV _ptrc_glXResetFrameCountNV
|
||||
#endif /*GLX_NV_swap_group*/
|
||||
|
||||
#ifndef GLX_NV_video_capture
|
||||
#define GLX_NV_video_capture 1
|
||||
extern int (CODEGEN_FUNCPTR *_ptrc_glXBindVideoCaptureDeviceNV)(Display *, unsigned int, GLXVideoCaptureDeviceNV);
|
||||
#define glXBindVideoCaptureDeviceNV _ptrc_glXBindVideoCaptureDeviceNV
|
||||
extern GLXVideoCaptureDeviceNV * (CODEGEN_FUNCPTR *_ptrc_glXEnumerateVideoCaptureDevicesNV)(Display *, int, int *);
|
||||
#define glXEnumerateVideoCaptureDevicesNV _ptrc_glXEnumerateVideoCaptureDevicesNV
|
||||
extern void (CODEGEN_FUNCPTR *_ptrc_glXLockVideoCaptureDeviceNV)(Display *, GLXVideoCaptureDeviceNV);
|
||||
#define glXLockVideoCaptureDeviceNV _ptrc_glXLockVideoCaptureDeviceNV
|
||||
extern int (CODEGEN_FUNCPTR *_ptrc_glXQueryVideoCaptureDeviceNV)(Display *, GLXVideoCaptureDeviceNV, int, int *);
|
||||
#define glXQueryVideoCaptureDeviceNV _ptrc_glXQueryVideoCaptureDeviceNV
|
||||
extern void (CODEGEN_FUNCPTR *_ptrc_glXReleaseVideoCaptureDeviceNV)(Display *, GLXVideoCaptureDeviceNV);
|
||||
#define glXReleaseVideoCaptureDeviceNV _ptrc_glXReleaseVideoCaptureDeviceNV
|
||||
#endif /*GLX_NV_video_capture*/
|
||||
|
||||
#ifndef GLX_NV_video_output
|
||||
#define GLX_NV_video_output 1
|
||||
extern int (CODEGEN_FUNCPTR *_ptrc_glXBindVideoImageNV)(Display *, GLXVideoDeviceNV, GLXPbuffer, int);
|
||||
#define glXBindVideoImageNV _ptrc_glXBindVideoImageNV
|
||||
extern int (CODEGEN_FUNCPTR *_ptrc_glXGetVideoDeviceNV)(Display *, int, int, GLXVideoDeviceNV *);
|
||||
#define glXGetVideoDeviceNV _ptrc_glXGetVideoDeviceNV
|
||||
extern int (CODEGEN_FUNCPTR *_ptrc_glXGetVideoInfoNV)(Display *, int, GLXVideoDeviceNV, unsigned long *, unsigned long *);
|
||||
#define glXGetVideoInfoNV _ptrc_glXGetVideoInfoNV
|
||||
extern int (CODEGEN_FUNCPTR *_ptrc_glXReleaseVideoDeviceNV)(Display *, int, GLXVideoDeviceNV);
|
||||
#define glXReleaseVideoDeviceNV _ptrc_glXReleaseVideoDeviceNV
|
||||
extern int (CODEGEN_FUNCPTR *_ptrc_glXReleaseVideoImageNV)(Display *, GLXPbuffer);
|
||||
#define glXReleaseVideoImageNV _ptrc_glXReleaseVideoImageNV
|
||||
extern int (CODEGEN_FUNCPTR *_ptrc_glXSendPbufferToVideoNV)(Display *, GLXPbuffer, int, unsigned long *, GLboolean);
|
||||
#define glXSendPbufferToVideoNV _ptrc_glXSendPbufferToVideoNV
|
||||
#endif /*GLX_NV_video_output*/
|
||||
|
||||
enum glx_LoadStatus
|
||||
{
|
||||
glx_LOAD_FAILED = 0,
|
||||
glx_LOAD_SUCCEEDED = 1
|
||||
};
|
||||
|
||||
int glx_LoadFunctions(Display *display, int screen);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /*__cplusplus*/
|
||||
|
||||
#endif /* POINTER_C_GENERATED_HEADER_GLXWIN_H */
|
@ -1,270 +0,0 @@
|
||||
/* AUTOGENERATED BY glLoadGen, DO NOT EDIT */
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stddef.h>
|
||||
#include "wgl_obs.h"
|
||||
|
||||
#if defined(__APPLE__)
|
||||
#include <dlfcn.h>
|
||||
|
||||
static void* AppleGLGetProcAddress (const char *name)
|
||||
{
|
||||
static void* image = NULL;
|
||||
|
||||
if (NULL == image)
|
||||
image = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", RTLD_LAZY);
|
||||
|
||||
return (image ? dlsym(image, name) : NULL);
|
||||
}
|
||||
#define IntGetProcAddress(name) AppleGLGetProcAddress(name)
|
||||
#endif /* __APPLE__ */
|
||||
|
||||
#if defined(_WIN32)
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(disable: 4055)
|
||||
#pragma warning(disable: 4054)
|
||||
#pragma warning(disable: 4996)
|
||||
#endif
|
||||
|
||||
static PROC WinGetProcAddress(const char *name)
|
||||
{
|
||||
static HMODULE glMod = NULL;
|
||||
PROC pFunc = wglGetProcAddress((LPCSTR)name);
|
||||
|
||||
if (pFunc) return pFunc;
|
||||
|
||||
if (NULL == glMod)
|
||||
glMod = GetModuleHandleA("OpenGL32.dll");
|
||||
|
||||
return (PROC)GetProcAddress(glMod, (LPCSTR)name);
|
||||
}
|
||||
|
||||
#define IntGetProcAddress(name) WinGetProcAddress(name)
|
||||
#endif
|
||||
|
||||
/* Linux, FreeBSD, other */
|
||||
#ifndef IntGetProcAddress
|
||||
extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void);
|
||||
|
||||
#define IntGetProcAddress(name) (*glXGetProcAddressARB)((const GLubyte*)name)
|
||||
#endif
|
||||
|
||||
/* TODO: Need to eventually use eglGetProcAddress */
|
||||
|
||||
int wgl_ext_ARB_multisample = wgl_LOAD_FAILED;
|
||||
int wgl_ext_ARB_extensions_string = wgl_LOAD_FAILED;
|
||||
int wgl_ext_ARB_pixel_format = wgl_LOAD_FAILED;
|
||||
int wgl_ext_ARB_pixel_format_float = wgl_LOAD_FAILED;
|
||||
int wgl_ext_ARB_framebuffer_sRGB = wgl_LOAD_FAILED;
|
||||
int wgl_ext_ARB_create_context = wgl_LOAD_FAILED;
|
||||
int wgl_ext_ARB_create_context_profile = wgl_LOAD_FAILED;
|
||||
int wgl_ext_ARB_create_context_robustness = wgl_LOAD_FAILED;
|
||||
int wgl_ext_EXT_swap_control = wgl_LOAD_FAILED;
|
||||
int wgl_ext_EXT_pixel_format_packed_float = wgl_LOAD_FAILED;
|
||||
int wgl_ext_EXT_create_context_es2_profile = wgl_LOAD_FAILED;
|
||||
int wgl_ext_EXT_swap_control_tear = wgl_LOAD_FAILED;
|
||||
int wgl_ext_NV_swap_group = wgl_LOAD_FAILED;
|
||||
|
||||
const char * (CODEGEN_FUNCPTR *_ptrc_wglGetExtensionsStringARB)(HDC) = NULL;
|
||||
|
||||
static int Load_ARB_extensions_string(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_wglGetExtensionsStringARB = (const char * (CODEGEN_FUNCPTR *)(HDC))IntGetProcAddress("wglGetExtensionsStringARB");
|
||||
if(!_ptrc_wglGetExtensionsStringARB) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
BOOL (CODEGEN_FUNCPTR *_ptrc_wglChoosePixelFormatARB)(HDC, const int *, const FLOAT *, UINT, int *, UINT *) = NULL;
|
||||
BOOL (CODEGEN_FUNCPTR *_ptrc_wglGetPixelFormatAttribfvARB)(HDC, int, int, UINT, const int *, FLOAT *) = NULL;
|
||||
BOOL (CODEGEN_FUNCPTR *_ptrc_wglGetPixelFormatAttribivARB)(HDC, int, int, UINT, const int *, int *) = NULL;
|
||||
|
||||
static int Load_ARB_pixel_format(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_wglChoosePixelFormatARB = (BOOL (CODEGEN_FUNCPTR *)(HDC, const int *, const FLOAT *, UINT, int *, UINT *))IntGetProcAddress("wglChoosePixelFormatARB");
|
||||
if(!_ptrc_wglChoosePixelFormatARB) numFailed++;
|
||||
_ptrc_wglGetPixelFormatAttribfvARB = (BOOL (CODEGEN_FUNCPTR *)(HDC, int, int, UINT, const int *, FLOAT *))IntGetProcAddress("wglGetPixelFormatAttribfvARB");
|
||||
if(!_ptrc_wglGetPixelFormatAttribfvARB) numFailed++;
|
||||
_ptrc_wglGetPixelFormatAttribivARB = (BOOL (CODEGEN_FUNCPTR *)(HDC, int, int, UINT, const int *, int *))IntGetProcAddress("wglGetPixelFormatAttribivARB");
|
||||
if(!_ptrc_wglGetPixelFormatAttribivARB) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
HGLRC (CODEGEN_FUNCPTR *_ptrc_wglCreateContextAttribsARB)(HDC, HGLRC, const int *) = NULL;
|
||||
|
||||
static int Load_ARB_create_context(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_wglCreateContextAttribsARB = (HGLRC (CODEGEN_FUNCPTR *)(HDC, HGLRC, const int *))IntGetProcAddress("wglCreateContextAttribsARB");
|
||||
if(!_ptrc_wglCreateContextAttribsARB) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
int (CODEGEN_FUNCPTR *_ptrc_wglGetSwapIntervalEXT)(void) = NULL;
|
||||
BOOL (CODEGEN_FUNCPTR *_ptrc_wglSwapIntervalEXT)(int) = NULL;
|
||||
|
||||
static int Load_EXT_swap_control(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_wglGetSwapIntervalEXT = (int (CODEGEN_FUNCPTR *)(void))IntGetProcAddress("wglGetSwapIntervalEXT");
|
||||
if(!_ptrc_wglGetSwapIntervalEXT) numFailed++;
|
||||
_ptrc_wglSwapIntervalEXT = (BOOL (CODEGEN_FUNCPTR *)(int))IntGetProcAddress("wglSwapIntervalEXT");
|
||||
if(!_ptrc_wglSwapIntervalEXT) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
BOOL (CODEGEN_FUNCPTR *_ptrc_wglBindSwapBarrierNV)(GLuint, GLuint) = NULL;
|
||||
BOOL (CODEGEN_FUNCPTR *_ptrc_wglJoinSwapGroupNV)(HDC, GLuint) = NULL;
|
||||
BOOL (CODEGEN_FUNCPTR *_ptrc_wglQueryFrameCountNV)(HDC, GLuint *) = NULL;
|
||||
BOOL (CODEGEN_FUNCPTR *_ptrc_wglQueryMaxSwapGroupsNV)(HDC, GLuint *, GLuint *) = NULL;
|
||||
BOOL (CODEGEN_FUNCPTR *_ptrc_wglQuerySwapGroupNV)(HDC, GLuint *, GLuint *) = NULL;
|
||||
BOOL (CODEGEN_FUNCPTR *_ptrc_wglResetFrameCountNV)(HDC) = NULL;
|
||||
|
||||
static int Load_NV_swap_group(void)
|
||||
{
|
||||
int numFailed = 0;
|
||||
_ptrc_wglBindSwapBarrierNV = (BOOL (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("wglBindSwapBarrierNV");
|
||||
if(!_ptrc_wglBindSwapBarrierNV) numFailed++;
|
||||
_ptrc_wglJoinSwapGroupNV = (BOOL (CODEGEN_FUNCPTR *)(HDC, GLuint))IntGetProcAddress("wglJoinSwapGroupNV");
|
||||
if(!_ptrc_wglJoinSwapGroupNV) numFailed++;
|
||||
_ptrc_wglQueryFrameCountNV = (BOOL (CODEGEN_FUNCPTR *)(HDC, GLuint *))IntGetProcAddress("wglQueryFrameCountNV");
|
||||
if(!_ptrc_wglQueryFrameCountNV) numFailed++;
|
||||
_ptrc_wglQueryMaxSwapGroupsNV = (BOOL (CODEGEN_FUNCPTR *)(HDC, GLuint *, GLuint *))IntGetProcAddress("wglQueryMaxSwapGroupsNV");
|
||||
if(!_ptrc_wglQueryMaxSwapGroupsNV) numFailed++;
|
||||
_ptrc_wglQuerySwapGroupNV = (BOOL (CODEGEN_FUNCPTR *)(HDC, GLuint *, GLuint *))IntGetProcAddress("wglQuerySwapGroupNV");
|
||||
if(!_ptrc_wglQuerySwapGroupNV) numFailed++;
|
||||
_ptrc_wglResetFrameCountNV = (BOOL (CODEGEN_FUNCPTR *)(HDC))IntGetProcAddress("wglResetFrameCountNV");
|
||||
if(!_ptrc_wglResetFrameCountNV) numFailed++;
|
||||
return numFailed;
|
||||
}
|
||||
|
||||
typedef int (*PFN_LOADFUNCPOINTERS)(void);
|
||||
typedef struct wgl_StrToExtMap_s
|
||||
{
|
||||
const char *extensionName;
|
||||
int *extensionVariable;
|
||||
PFN_LOADFUNCPOINTERS LoadExtension;
|
||||
} wgl_StrToExtMap;
|
||||
|
||||
static wgl_StrToExtMap ExtensionMap[13] = {
|
||||
{"WGL_ARB_multisample", &wgl_ext_ARB_multisample, NULL},
|
||||
{"WGL_ARB_extensions_string", &wgl_ext_ARB_extensions_string, Load_ARB_extensions_string},
|
||||
{"WGL_ARB_pixel_format", &wgl_ext_ARB_pixel_format, Load_ARB_pixel_format},
|
||||
{"WGL_ARB_pixel_format_float", &wgl_ext_ARB_pixel_format_float, NULL},
|
||||
{"WGL_ARB_framebuffer_sRGB", &wgl_ext_ARB_framebuffer_sRGB, NULL},
|
||||
{"WGL_ARB_create_context", &wgl_ext_ARB_create_context, Load_ARB_create_context},
|
||||
{"WGL_ARB_create_context_profile", &wgl_ext_ARB_create_context_profile, NULL},
|
||||
{"WGL_ARB_create_context_robustness", &wgl_ext_ARB_create_context_robustness, NULL},
|
||||
{"WGL_EXT_swap_control", &wgl_ext_EXT_swap_control, Load_EXT_swap_control},
|
||||
{"WGL_EXT_pixel_format_packed_float", &wgl_ext_EXT_pixel_format_packed_float, NULL},
|
||||
{"WGL_EXT_create_context_es2_profile", &wgl_ext_EXT_create_context_es2_profile, NULL},
|
||||
{"WGL_EXT_swap_control_tear", &wgl_ext_EXT_swap_control_tear, NULL},
|
||||
{"WGL_NV_swap_group", &wgl_ext_NV_swap_group, Load_NV_swap_group},
|
||||
};
|
||||
|
||||
static int g_extensionMapSize = 13;
|
||||
|
||||
static wgl_StrToExtMap *FindExtEntry(const char *extensionName)
|
||||
{
|
||||
int loop;
|
||||
wgl_StrToExtMap *currLoc = ExtensionMap;
|
||||
for(loop = 0; loop < g_extensionMapSize; ++loop, ++currLoc)
|
||||
{
|
||||
if(strcmp(extensionName, currLoc->extensionName) == 0)
|
||||
return currLoc;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void ClearExtensionVars(void)
|
||||
{
|
||||
wgl_ext_ARB_multisample = wgl_LOAD_FAILED;
|
||||
wgl_ext_ARB_extensions_string = wgl_LOAD_FAILED;
|
||||
wgl_ext_ARB_pixel_format = wgl_LOAD_FAILED;
|
||||
wgl_ext_ARB_pixel_format_float = wgl_LOAD_FAILED;
|
||||
wgl_ext_ARB_framebuffer_sRGB = wgl_LOAD_FAILED;
|
||||
wgl_ext_ARB_create_context = wgl_LOAD_FAILED;
|
||||
wgl_ext_ARB_create_context_profile = wgl_LOAD_FAILED;
|
||||
wgl_ext_ARB_create_context_robustness = wgl_LOAD_FAILED;
|
||||
wgl_ext_EXT_swap_control = wgl_LOAD_FAILED;
|
||||
wgl_ext_EXT_pixel_format_packed_float = wgl_LOAD_FAILED;
|
||||
wgl_ext_EXT_create_context_es2_profile = wgl_LOAD_FAILED;
|
||||
wgl_ext_EXT_swap_control_tear = wgl_LOAD_FAILED;
|
||||
wgl_ext_NV_swap_group = wgl_LOAD_FAILED;
|
||||
}
|
||||
|
||||
|
||||
static void LoadExtByName(const char *extensionName)
|
||||
{
|
||||
wgl_StrToExtMap *entry = NULL;
|
||||
entry = FindExtEntry(extensionName);
|
||||
if(entry)
|
||||
{
|
||||
if(entry->LoadExtension)
|
||||
{
|
||||
int numFailed = entry->LoadExtension();
|
||||
if(numFailed == 0)
|
||||
{
|
||||
*(entry->extensionVariable) = wgl_LOAD_SUCCEEDED;
|
||||
}
|
||||
else
|
||||
{
|
||||
*(entry->extensionVariable) = wgl_LOAD_SUCCEEDED + numFailed;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
*(entry->extensionVariable) = wgl_LOAD_SUCCEEDED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void ProcExtsFromExtString(const char *strExtList)
|
||||
{
|
||||
size_t iExtListLen = strlen(strExtList);
|
||||
const char *strExtListEnd = strExtList + iExtListLen;
|
||||
const char *strCurrPos = strExtList;
|
||||
char strWorkBuff[256];
|
||||
|
||||
while(*strCurrPos)
|
||||
{
|
||||
/*Get the extension at our position.*/
|
||||
int iStrLen = 0;
|
||||
const char *strEndStr = strchr(strCurrPos, ' ');
|
||||
int iStop = 0;
|
||||
if(strEndStr == NULL)
|
||||
{
|
||||
strEndStr = strExtListEnd;
|
||||
iStop = 1;
|
||||
}
|
||||
|
||||
iStrLen = (int)((ptrdiff_t)strEndStr - (ptrdiff_t)strCurrPos);
|
||||
|
||||
if(iStrLen > 255)
|
||||
return;
|
||||
|
||||
strncpy(strWorkBuff, strCurrPos, iStrLen);
|
||||
strWorkBuff[iStrLen] = '\0';
|
||||
|
||||
LoadExtByName(strWorkBuff);
|
||||
|
||||
strCurrPos = strEndStr + 1;
|
||||
if(iStop) break;
|
||||
}
|
||||
}
|
||||
|
||||
int wgl_LoadFunctions(HDC hdc)
|
||||
{
|
||||
ClearExtensionVars();
|
||||
|
||||
_ptrc_wglGetExtensionsStringARB = (const char * (CODEGEN_FUNCPTR *)(HDC))IntGetProcAddress("wglGetExtensionsStringARB");
|
||||
if(!_ptrc_wglGetExtensionsStringARB) return wgl_LOAD_FAILED;
|
||||
|
||||
ProcExtsFromExtString((const char *)_ptrc_wglGetExtensionsStringARB(hdc));
|
||||
return wgl_LOAD_SUCCEEDED;
|
||||
}
|
||||
|
@ -1,233 +0,0 @@
|
||||
/* AUTOGENERATED BY glLoadGen, DO NOT EDIT */
|
||||
#ifndef POINTER_C_GENERATED_HEADER_WINDOWSGL_H
|
||||
#define POINTER_C_GENERATED_HEADER_WINDOWSGL_H
|
||||
|
||||
#ifdef __wglext_h_
|
||||
#error Attempt to include auto-generated WGL header after wglext.h
|
||||
#endif
|
||||
|
||||
#define __wglext_h_
|
||||
|
||||
#ifndef WIN32_LEAN_AND_MEAN
|
||||
#define WIN32_LEAN_AND_MEAN 1
|
||||
#endif
|
||||
#ifndef NOMINMAX
|
||||
#define NOMINMAX
|
||||
#endif
|
||||
#include <windows.h>
|
||||
|
||||
#ifdef CODEGEN_FUNCPTR
|
||||
#undef CODEGEN_FUNCPTR
|
||||
#endif /*CODEGEN_FUNCPTR*/
|
||||
#define CODEGEN_FUNCPTR WINAPI
|
||||
|
||||
#ifndef GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
|
||||
#define GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
|
||||
|
||||
typedef unsigned int GLenum;
|
||||
typedef unsigned char GLboolean;
|
||||
typedef unsigned int GLbitfield;
|
||||
typedef signed char GLbyte;
|
||||
typedef short GLshort;
|
||||
typedef int GLint;
|
||||
typedef int GLsizei;
|
||||
typedef unsigned char GLubyte;
|
||||
typedef unsigned short GLushort;
|
||||
typedef unsigned int GLuint;
|
||||
typedef float GLfloat;
|
||||
typedef float GLclampf;
|
||||
typedef double GLdouble;
|
||||
typedef double GLclampd;
|
||||
#define GLvoid void
|
||||
|
||||
#endif /*GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS*/
|
||||
|
||||
|
||||
|
||||
#ifndef GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
|
||||
#define GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
|
||||
|
||||
|
||||
#endif /*GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS*/
|
||||
|
||||
|
||||
struct _GPU_DEVICE {
|
||||
DWORD cb;
|
||||
CHAR DeviceName[32];
|
||||
CHAR DeviceString[128];
|
||||
DWORD Flags;
|
||||
RECT rcVirtualScreen;
|
||||
};
|
||||
DECLARE_HANDLE(HPBUFFERARB);
|
||||
DECLARE_HANDLE(HPBUFFEREXT);
|
||||
DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
|
||||
DECLARE_HANDLE(HPVIDEODEV);
|
||||
DECLARE_HANDLE(HGPUNV);
|
||||
DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
|
||||
typedef struct _GPU_DEVICE *PGPU_DEVICE;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /*__cplusplus*/
|
||||
|
||||
extern int wgl_ext_ARB_multisample;
|
||||
extern int wgl_ext_ARB_extensions_string;
|
||||
extern int wgl_ext_ARB_pixel_format;
|
||||
extern int wgl_ext_ARB_pixel_format_float;
|
||||
extern int wgl_ext_ARB_framebuffer_sRGB;
|
||||
extern int wgl_ext_ARB_create_context;
|
||||
extern int wgl_ext_ARB_create_context_profile;
|
||||
extern int wgl_ext_ARB_create_context_robustness;
|
||||
extern int wgl_ext_EXT_swap_control;
|
||||
extern int wgl_ext_EXT_pixel_format_packed_float;
|
||||
extern int wgl_ext_EXT_create_context_es2_profile;
|
||||
extern int wgl_ext_EXT_swap_control_tear;
|
||||
extern int wgl_ext_NV_swap_group;
|
||||
|
||||
#define WGL_SAMPLES_ARB 0x2042
|
||||
#define WGL_SAMPLE_BUFFERS_ARB 0x2041
|
||||
|
||||
#define WGL_ACCELERATION_ARB 0x2003
|
||||
#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
|
||||
#define WGL_ACCUM_BITS_ARB 0x201D
|
||||
#define WGL_ACCUM_BLUE_BITS_ARB 0x2020
|
||||
#define WGL_ACCUM_GREEN_BITS_ARB 0x201F
|
||||
#define WGL_ACCUM_RED_BITS_ARB 0x201E
|
||||
#define WGL_ALPHA_BITS_ARB 0x201B
|
||||
#define WGL_ALPHA_SHIFT_ARB 0x201C
|
||||
#define WGL_AUX_BUFFERS_ARB 0x2024
|
||||
#define WGL_BLUE_BITS_ARB 0x2019
|
||||
#define WGL_BLUE_SHIFT_ARB 0x201A
|
||||
#define WGL_COLOR_BITS_ARB 0x2014
|
||||
#define WGL_DEPTH_BITS_ARB 0x2022
|
||||
#define WGL_DOUBLE_BUFFER_ARB 0x2011
|
||||
#define WGL_DRAW_TO_BITMAP_ARB 0x2002
|
||||
#define WGL_DRAW_TO_WINDOW_ARB 0x2001
|
||||
#define WGL_FULL_ACCELERATION_ARB 0x2027
|
||||
#define WGL_GENERIC_ACCELERATION_ARB 0x2026
|
||||
#define WGL_GREEN_BITS_ARB 0x2017
|
||||
#define WGL_GREEN_SHIFT_ARB 0x2018
|
||||
#define WGL_NEED_PALETTE_ARB 0x2004
|
||||
#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
|
||||
#define WGL_NO_ACCELERATION_ARB 0x2025
|
||||
#define WGL_NUMBER_OVERLAYS_ARB 0x2008
|
||||
#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
|
||||
#define WGL_NUMBER_UNDERLAYS_ARB 0x2009
|
||||
#define WGL_PIXEL_TYPE_ARB 0x2013
|
||||
#define WGL_RED_BITS_ARB 0x2015
|
||||
#define WGL_RED_SHIFT_ARB 0x2016
|
||||
#define WGL_SHARE_ACCUM_ARB 0x200E
|
||||
#define WGL_SHARE_DEPTH_ARB 0x200C
|
||||
#define WGL_SHARE_STENCIL_ARB 0x200D
|
||||
#define WGL_STENCIL_BITS_ARB 0x2023
|
||||
#define WGL_STEREO_ARB 0x2012
|
||||
#define WGL_SUPPORT_GDI_ARB 0x200F
|
||||
#define WGL_SUPPORT_OPENGL_ARB 0x2010
|
||||
#define WGL_SWAP_COPY_ARB 0x2029
|
||||
#define WGL_SWAP_EXCHANGE_ARB 0x2028
|
||||
#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
|
||||
#define WGL_SWAP_METHOD_ARB 0x2007
|
||||
#define WGL_SWAP_UNDEFINED_ARB 0x202A
|
||||
#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
|
||||
#define WGL_TRANSPARENT_ARB 0x200A
|
||||
#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
|
||||
#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
|
||||
#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
|
||||
#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
|
||||
#define WGL_TYPE_COLORINDEX_ARB 0x202C
|
||||
#define WGL_TYPE_RGBA_ARB 0x202B
|
||||
|
||||
#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
|
||||
|
||||
#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
|
||||
|
||||
#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
|
||||
#define WGL_CONTEXT_FLAGS_ARB 0x2094
|
||||
#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
|
||||
#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
|
||||
#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
|
||||
#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
|
||||
#define WGL_ERROR_INVALID_VERSION_ARB 0x2095
|
||||
|
||||
#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
|
||||
#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
|
||||
#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
|
||||
#define WGL_ERROR_INVALID_PROFILE_ARB 0x2096
|
||||
|
||||
#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
|
||||
#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
|
||||
#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
|
||||
#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261
|
||||
|
||||
#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
|
||||
|
||||
#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
|
||||
|
||||
|
||||
#ifndef WGL_ARB_extensions_string
|
||||
#define WGL_ARB_extensions_string 1
|
||||
extern const char * (CODEGEN_FUNCPTR *_ptrc_wglGetExtensionsStringARB)(HDC);
|
||||
#define wglGetExtensionsStringARB _ptrc_wglGetExtensionsStringARB
|
||||
#endif /*WGL_ARB_extensions_string*/
|
||||
|
||||
#ifndef WGL_ARB_pixel_format
|
||||
#define WGL_ARB_pixel_format 1
|
||||
extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglChoosePixelFormatARB)(HDC, const int *, const FLOAT *, UINT, int *, UINT *);
|
||||
#define wglChoosePixelFormatARB _ptrc_wglChoosePixelFormatARB
|
||||
extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglGetPixelFormatAttribfvARB)(HDC, int, int, UINT, const int *, FLOAT *);
|
||||
#define wglGetPixelFormatAttribfvARB _ptrc_wglGetPixelFormatAttribfvARB
|
||||
extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglGetPixelFormatAttribivARB)(HDC, int, int, UINT, const int *, int *);
|
||||
#define wglGetPixelFormatAttribivARB _ptrc_wglGetPixelFormatAttribivARB
|
||||
#endif /*WGL_ARB_pixel_format*/
|
||||
|
||||
|
||||
|
||||
#ifndef WGL_ARB_create_context
|
||||
#define WGL_ARB_create_context 1
|
||||
extern HGLRC (CODEGEN_FUNCPTR *_ptrc_wglCreateContextAttribsARB)(HDC, HGLRC, const int *);
|
||||
#define wglCreateContextAttribsARB _ptrc_wglCreateContextAttribsARB
|
||||
#endif /*WGL_ARB_create_context*/
|
||||
|
||||
|
||||
|
||||
#ifndef WGL_EXT_swap_control
|
||||
#define WGL_EXT_swap_control 1
|
||||
extern int (CODEGEN_FUNCPTR *_ptrc_wglGetSwapIntervalEXT)(void);
|
||||
#define wglGetSwapIntervalEXT _ptrc_wglGetSwapIntervalEXT
|
||||
extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglSwapIntervalEXT)(int);
|
||||
#define wglSwapIntervalEXT _ptrc_wglSwapIntervalEXT
|
||||
#endif /*WGL_EXT_swap_control*/
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef WGL_NV_swap_group
|
||||
#define WGL_NV_swap_group 1
|
||||
extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglBindSwapBarrierNV)(GLuint, GLuint);
|
||||
#define wglBindSwapBarrierNV _ptrc_wglBindSwapBarrierNV
|
||||
extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglJoinSwapGroupNV)(HDC, GLuint);
|
||||
#define wglJoinSwapGroupNV _ptrc_wglJoinSwapGroupNV
|
||||
extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglQueryFrameCountNV)(HDC, GLuint *);
|
||||
#define wglQueryFrameCountNV _ptrc_wglQueryFrameCountNV
|
||||
extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglQueryMaxSwapGroupsNV)(HDC, GLuint *, GLuint *);
|
||||
#define wglQueryMaxSwapGroupsNV _ptrc_wglQueryMaxSwapGroupsNV
|
||||
extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglQuerySwapGroupNV)(HDC, GLuint *, GLuint *);
|
||||
#define wglQuerySwapGroupNV _ptrc_wglQuerySwapGroupNV
|
||||
extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglResetFrameCountNV)(HDC);
|
||||
#define wglResetFrameCountNV _ptrc_wglResetFrameCountNV
|
||||
#endif /*WGL_NV_swap_group*/
|
||||
|
||||
enum wgl_LoadStatus
|
||||
{
|
||||
wgl_LOAD_FAILED = 0,
|
||||
wgl_LOAD_SUCCEEDED = 1
|
||||
};
|
||||
|
||||
int wgl_LoadFunctions(HDC hdc);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /*__cplusplus*/
|
||||
|
||||
#endif /* POINTER_C_GENERATED_HEADER_WINDOWSGL_H */
|
@ -119,7 +119,7 @@ struct gl_platform *gl_platform_create(device_t device,
|
||||
|
||||
[plat->context makeCurrentContext];
|
||||
|
||||
if (!ogl_LoadFunctions())
|
||||
if (!gladLoadGL())
|
||||
goto fail;
|
||||
|
||||
return plat;
|
||||
|
@ -73,11 +73,10 @@ static void APIENTRY gl_debug_proc(
|
||||
|
||||
static void gl_enable_debug()
|
||||
{
|
||||
/* Perhaps we should create GLEW contexts? */
|
||||
if (ogl_IsVersionGEQ(4, 3)) {
|
||||
if (GLAD_GL_VERSION_4_3) {
|
||||
glDebugMessageCallback(gl_debug_proc, NULL);
|
||||
gl_enable(GL_DEBUG_OUTPUT);
|
||||
} else if (ogl_ext_ARB_debug_output) {
|
||||
} else if (GLAD_GL_ARB_debug_output) {
|
||||
glDebugMessageCallbackARB(gl_debug_proc, NULL);
|
||||
} else {
|
||||
blog(LOG_DEBUG, "Failed to set GL debug callback as it is "
|
||||
@ -90,7 +89,7 @@ static void gl_enable_debug() {}
|
||||
|
||||
static bool gl_init_extensions(struct gs_device* device)
|
||||
{
|
||||
if (!ogl_IsVersionGEQ(2, 1)) {
|
||||
if (!GLAD_GL_VERSION_2_1) {
|
||||
blog(LOG_ERROR, "obs-studio requires OpenGL version 2.1 or "
|
||||
"higher.");
|
||||
return false;
|
||||
@ -98,25 +97,25 @@ static bool gl_init_extensions(struct gs_device* device)
|
||||
|
||||
gl_enable_debug();
|
||||
|
||||
if (!ogl_IsVersionGEQ(3, 0) && !ogl_ext_ARB_framebuffer_object) {
|
||||
if (!GLAD_GL_VERSION_3_0 && !GLAD_GL_ARB_framebuffer_object) {
|
||||
blog(LOG_ERROR, "OpenGL extension ARB_framebuffer_object "
|
||||
"is required.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (ogl_IsVersionGEQ(3, 2) || ogl_ext_ARB_seamless_cube_map) {
|
||||
if (GLAD_GL_VERSION_3_2 || GLAD_GL_ARB_seamless_cube_map) {
|
||||
gl_enable(GL_TEXTURE_CUBE_MAP_SEAMLESS);
|
||||
}
|
||||
|
||||
if (!ogl_IsVersionGEQ(4, 1) && !ogl_ext_ARB_separate_shader_objects) {
|
||||
if (!GLAD_GL_VERSION_4_1 && !GLAD_GL_ARB_separate_shader_objects) {
|
||||
blog(LOG_ERROR, "OpenGL extension ARB_separate_shader_objects "
|
||||
"is required.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (ogl_IsVersionGEQ(4, 3) || ogl_ext_ARB_copy_image)
|
||||
if (GLAD_GL_VERSION_4_3 || GLAD_GL_ARB_copy_image)
|
||||
device->copy_type = COPY_TYPE_ARB;
|
||||
else if (ogl_ext_NV_copy_image)
|
||||
else if (GLAD_GL_NV_copy_image)
|
||||
device->copy_type = COPY_TYPE_NV;
|
||||
else
|
||||
device->copy_type = COPY_TYPE_FBO_BLIT;
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include <graphics/device-exports.h>
|
||||
#include <graphics/matrix4.h>
|
||||
|
||||
#include "GL/gl_obs.h"
|
||||
#include <glad/glad.h>
|
||||
|
||||
#include "gl-helpers.h"
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
#include <util/darray.h>
|
||||
#include "gl-subsystem.h"
|
||||
#include "GL/wgl_obs.h"
|
||||
#include <glad/glad_wgl.h>
|
||||
|
||||
/* Basically swapchain-specific information. Fortunately for windows this is
|
||||
* super basic stuff */
|
||||
@ -165,7 +165,7 @@ static const int attribs[] =
|
||||
static inline HGLRC gl_init_context(HDC hdc)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
if (wgl_ext_ARB_create_context) {
|
||||
if (GLAD_WGL_ARB_create_context) {
|
||||
HGLRC hglrc = wglCreateContextAttribsARB(hdc, 0, attribs);
|
||||
if (!hglrc) {
|
||||
blog(LOG_ERROR, "wglCreateContextAttribsARB failed, %u",
|
||||
@ -237,22 +237,22 @@ static inline void required_extension_error(const char *extension)
|
||||
|
||||
static bool gl_init_extensions(HDC hdc)
|
||||
{
|
||||
if (!wgl_LoadFunctions(hdc)) {
|
||||
if (!gladLoadWGL(hdc)) {
|
||||
blog(LOG_ERROR, "Failed to load WGL entry functions.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!wgl_ext_ARB_pixel_format) {
|
||||
if (!GLAD_WGL_ARB_pixel_format) {
|
||||
required_extension_error("ARB_pixel_format");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!wgl_ext_ARB_create_context) {
|
||||
if (!GLAD_WGL_ARB_create_context) {
|
||||
required_extension_error("ARB_create_context");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!wgl_ext_ARB_create_context_profile) {
|
||||
if (!GLAD_WGL_ARB_create_context_profile) {
|
||||
required_extension_error("ARB_create_context_profile");
|
||||
return false;
|
||||
}
|
||||
@ -400,7 +400,7 @@ struct gl_platform *gl_platform_create(device_t device,
|
||||
if (!plat->hrc)
|
||||
goto fail;
|
||||
|
||||
if (!ogl_LoadFunctions()) {
|
||||
if (!gladLoadGL()) {
|
||||
blog(LOG_ERROR, "Failed to initialize OpenGL entry functions.");
|
||||
goto fail;
|
||||
}
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
#include "gl-subsystem.h"
|
||||
|
||||
#include "GL/glx_obs.h"
|
||||
#include <glad/glad_glx.h>
|
||||
|
||||
static const int fb_attribs[] = {
|
||||
/* Hardcoded for now... */
|
||||
@ -161,7 +161,7 @@ struct gl_platform *gl_platform_create(device_t device,
|
||||
|
||||
screen = XScreenNumberOfScreen(attrs.screen);
|
||||
|
||||
if (!glx_LoadFunctions(display, screen)) {
|
||||
if (!gladLoadGLX(display, screen)) {
|
||||
blog(LOG_ERROR, "Unable to load GLX entry functions.");
|
||||
goto fail0;
|
||||
}
|
||||
@ -180,7 +180,7 @@ struct gl_platform *gl_platform_create(device_t device,
|
||||
goto fail0;
|
||||
}
|
||||
|
||||
if (!glx_ext_ARB_create_context) {
|
||||
if (!GLAD_GLX_ARB_create_context) {
|
||||
blog(LOG_ERROR, "ARB_GLX_create_context not supported!");
|
||||
goto fail0;
|
||||
}
|
||||
@ -238,7 +238,7 @@ struct gl_platform *gl_platform_create(device_t device,
|
||||
goto fail2;
|
||||
}
|
||||
|
||||
if (!ogl_LoadFunctions()) {
|
||||
if (!gladLoadGL()) {
|
||||
blog(LOG_ERROR, "Failed to load OpenGL entry functions.");
|
||||
goto fail2;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user