mirror of
https://github.com/reactos/wine.git
synced 2025-02-03 02:32:41 +00:00
wined3d: Dynamically load OpenGL.
This commit is contained in:
parent
261f02ca68
commit
4ad17c0c38
@ -5,8 +5,7 @@ VPATH = @srcdir@
|
||||
MODULE = wined3d.dll
|
||||
IMPORTLIB = libwined3d.$(IMPLIBEXT)
|
||||
IMPORTS = user32 gdi32 advapi32 kernel32
|
||||
EXTRAINCL = @X_CFLAGS@
|
||||
EXTRALIBS = -luuid @X_LIBS@ @X_PRE_LIBS@ @XLIB@ @X_EXTRA_LIBS@ @OPENGL_LIBS@
|
||||
EXTRALIBS = -luuid
|
||||
|
||||
C_SRCS = \
|
||||
arb_program_shader.c \
|
||||
|
@ -414,6 +414,24 @@ BOOL IWineD3DImpl_FillGLCaps(WineD3D_GL_Info *gl_info) {
|
||||
|
||||
TRACE_(d3d_caps)("(%p)\n", gl_info);
|
||||
|
||||
/* To bypass the opengl32 thunks load wglGetProcAddress from gdi32 (glXGetProcAddress wrapper) instead of opengl32's */
|
||||
mod_gl = LoadLibraryA("gdi32.dll");
|
||||
if(!mod_gl) {
|
||||
ERR("Can't load gdi32.dll!\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
p_wglGetProcAddress = (void*)GetProcAddress(mod_gl, "wglGetProcAddress");
|
||||
if(!p_wglGetProcAddress) {
|
||||
ERR("Unable to load wglGetProcAddress!\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Dynamicly load all GL core functions */
|
||||
#define USE_GL_FUNC(pfn) pfn = (void*)p_wglGetProcAddress( (const char *) #pfn);
|
||||
GL_FUNCS_GEN;
|
||||
#undef USE_GL_FUNC
|
||||
|
||||
gl_string = (const char *) glGetString(GL_RENDERER);
|
||||
if (NULL == gl_string)
|
||||
gl_string = "None";
|
||||
@ -579,20 +597,7 @@ BOOL IWineD3DImpl_FillGLCaps(WineD3D_GL_Info *gl_info) {
|
||||
gl_info->vs_arb_constantsF = 0;
|
||||
gl_info->ps_arb_constantsF = 0;
|
||||
|
||||
/* To bypass the opengl32 thunks load wglGetProcAddress from gdi32 (glXGetProcAddress wrapper) instead of opengl32's */
|
||||
mod_gl = LoadLibraryA("gdi32.dll");
|
||||
if(!mod_gl) {
|
||||
ERR("Can't load gdi32.dll!\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
p_wglGetProcAddress = (void*)GetProcAddress(mod_gl, "wglGetProcAddress");
|
||||
if(!p_wglGetProcAddress) {
|
||||
ERR("Unable to load wglGetProcAddress!\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Now work out what GL support this card really has */
|
||||
/* Now work out what GL support this card really has */
|
||||
#define USE_GL_FUNC(type, pfn) gl_info->pfn = (type) p_wglGetProcAddress( (const char *) #pfn);
|
||||
GL_EXT_FUNCS_GEN;
|
||||
WGL_EXT_FUNCS_GEN;
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user