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,
|
"undef": 4,
|
||||||
"strip": true,
|
"strip": true,
|
||||||
"out_header": "gl.hpp",
|
"out_header": "gl.hpp",
|
||||||
"out_source": "gl.cpp"
|
"out_source": "gl.cpp",
|
||||||
|
"include": "<psemek/gfx/gl.hpp>"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,32 @@
|
||||||
#pragma once
|
#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
|
// Undefine some macros that may interfere with OpenGL constants
|
||||||
|
|
||||||
#undef ZERO
|
#undef ZERO
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
#include <psemek/gfx/gl.hpp>
|
||||||
|
|
||||||
|
|
||||||
#include <unordered_set>
|
#include <unordered_set>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
@ -52,28 +54,28 @@ namespace gl
|
||||||
#pragma warning(disable: 4996)
|
#pragma warning(disable: 4996)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int test_pointer(const PROC pTest)
|
static int test_pointer(const PROC p)
|
||||||
{
|
{
|
||||||
ptrdiff_t iTest;
|
ptrdiff_t i;
|
||||||
if(!pTest) return 0;
|
if (!p) return 0;
|
||||||
iTest = (ptrdiff_t)pTest;
|
i = (ptrdiff_t)p;
|
||||||
|
|
||||||
if(iTest == 1 || iTest == 2 || iTest == 3 || iTest == -1) return 0;
|
if(i == 1 || i == 2 || i == 3 || i == -1) return 0;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void * get_proc_address(const char *name)
|
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));
|
PROC func = wglGetProcAddress(reinterpret_cast<LPCSTR>(name));
|
||||||
if(TestPointer(pFunc))
|
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
|
#else // GLX
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue