Update gl generator config (windows fixes)
This commit is contained in:
parent
fe5cd6510c
commit
149555889e
3 changed files with 43 additions and 13 deletions
|
|
@ -14,5 +14,6 @@
|
|||
"undef": 4,
|
||||
"strip": true,
|
||||
"out_header": "gl.hpp",
|
||||
"out_source": "gl.cpp"
|
||||
"out_source": "gl.cpp",
|
||||
"include": "<psemek/gfx/gl.hpp>"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,32 @@
|
|||
#pragma once
|
||||
|
||||
// Prevent inclusion of other OpenGL-related headers
|
||||
|
||||
#if defined(__glew_h__) || defined(__GLEW_H__)
|
||||
#error Attempt to include auto-generated header after including glew.h
|
||||
#endif
|
||||
#if defined(__gl_h_) || defined(__GL_H__)
|
||||
#error Attempt to include auto-generated header after including gl.h
|
||||
#endif
|
||||
#if defined(__glext_h_) || defined(__GLEXT_H_)
|
||||
#error Attempt to include auto-generated header after including glext.h
|
||||
#endif
|
||||
#if defined(__gltypes_h_)
|
||||
#error Attempt to include auto-generated header after gltypes.h
|
||||
#endif
|
||||
#if defined(__gl_ATI_h_)
|
||||
#error Attempt to include auto-generated header after including glATI.h
|
||||
#endif
|
||||
|
||||
#define __glew_h__
|
||||
#define __GLEW_H__
|
||||
#define __gl_h_
|
||||
#define __GL_H__
|
||||
#define __glext_h_
|
||||
#define __GLEXT_H_
|
||||
#define __gltypes_h_
|
||||
#define __gl_ATI_h_
|
||||
|
||||
// Undefine some macros that may interfere with OpenGL constants
|
||||
|
||||
#undef ZERO
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
#include <psemek/gfx/gl.hpp>
|
||||
|
||||
|
||||
#include <unordered_set>
|
||||
#include <string>
|
||||
|
|
@ -52,28 +54,28 @@ namespace gl
|
|||
#pragma warning(disable: 4996)
|
||||
#endif
|
||||
|
||||
static int test_pointer(const PROC pTest)
|
||||
static int test_pointer(const PROC p)
|
||||
{
|
||||
ptrdiff_t iTest;
|
||||
if(!pTest) return 0;
|
||||
iTest = (ptrdiff_t)pTest;
|
||||
|
||||
if(iTest == 1 || iTest == 2 || iTest == 3 || iTest == -1) return 0;
|
||||
|
||||
ptrdiff_t i;
|
||||
if (!p) return 0;
|
||||
i = (ptrdiff_t)p;
|
||||
|
||||
if(i == 1 || i == 2 || i == 3 || i == -1) return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void * get_proc_address(const char *name)
|
||||
{
|
||||
static HMODULE glMod = GetModuleHandleA("opengl32.dll");
|
||||
static HMODULE image = GetModuleHandleA("opengl32.dll");
|
||||
|
||||
PROC pFunc = wglGetProcAddress(reinterpret_cast<LPCSTR>(name));
|
||||
if(TestPointer(pFunc))
|
||||
PROC func = wglGetProcAddress(reinterpret_cast<LPCSTR>(name));
|
||||
if (test_pointer(func))
|
||||
{
|
||||
return reinterpret_cast<void*>(pFunc);
|
||||
return reinterpret_cast<void*>(func);
|
||||
}
|
||||
|
||||
return reinterpret_cast<void*>GetProcAddress(glMod, reinterpret_cast<LPCSTR>(name));
|
||||
return reinterpret_cast<void*>(GetProcAddress(image, reinterpret_cast<LPCSTR>(name)));
|
||||
}
|
||||
|
||||
#else // GLX
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue