Author: greatlrd
Date: Sat Nov 17 23:22:45 2007
New Revision: 30526
URL:
http://svn.reactos.org/svn/reactos?rev=30526&view=rev
Log:
Fix a WCHAR issue in opengl32 one char was not in wchar format. discover it by compiling
with VS
Use the C version of GLFUNCS_MACRO for VS and only use the inline assembler version if it
_MINGW32_ set
Fix few warnings for VS
Modified:
trunk/reactos/dll/win32/opengl32/gl.c
trunk/reactos/dll/win32/opengl32/opengl32.c
trunk/reactos/dll/win32/opengl32/opengl32.h
trunk/reactos/dll/win32/opengl32/wgl.c
Modified: trunk/reactos/dll/win32/opengl32/gl.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/opengl32/gl.c?re…
==============================================================================
--- trunk/reactos/dll/win32/opengl32/gl.c (original)
+++ trunk/reactos/dll/win32/opengl32/gl.c Sat Nov 17 23:22:45 2007
@@ -61,6 +61,8 @@
#if defined(_M_IX86)
# define FOO(x) #x
+
+#if __MINGW32__
# define X(func, ret, typeargs, args, icdidx, tebidx, stack) \
__asm__(".align 4" "\n\t"
\
".globl _"#func"@"#stack
"\n\t" \
@@ -68,6 +70,25 @@
" movl %fs:0x18, %eax" "\n\t"
\
" movl 0xbe8(%eax), %eax" "\n\t"
\
" jmp *"FOO((icdidx*4))"(%eax)"
"\n\t");
+#else
+# define X(func, ret, typeargs, args, icdidx, tebidx, stack) \
+ret STDCALL func typeargs \
+{ \
+ PROC *table; \
+ PROC fn; \
+ if (tebidx >= 0 && 0) \
+ { \
+ table = (PROC *)NtCurrentTeb()->glDispatchTable; \
+ fn = table[tebidx]; \
+ } \
+ else \
+ { \
+ table = (PROC *)NtCurrentTeb()->glTable; \
+ fn = table[icdidx]; \
+ } \
+ return (ret)((ret(*)typeargs)fn)args; \
+}
+#endif
GLFUNCS_MACRO
# undef FOO
Modified: trunk/reactos/dll/win32/opengl32/opengl32.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/opengl32/opengl3…
==============================================================================
--- trunk/reactos/dll/win32/opengl32/opengl32.c (original)
+++ trunk/reactos/dll/win32/opengl32/opengl32.c Sat Nov 17 23:22:45 2007
@@ -601,7 +601,7 @@
OPENGL32_RegGetDriverInfo( LPCWSTR driver, GLDRIVERDATA *icd )
{
HKEY hKey;
- WCHAR subKey[1024] = OPENGL_DRIVERS_SUBKEY"\\";
+ WCHAR subKey[1024] = OPENGL_DRIVERS_SUBKEY2;
LONG ret;
DWORD type, size;
Modified: trunk/reactos/dll/win32/opengl32/opengl32.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/opengl32/opengl3…
==============================================================================
--- trunk/reactos/dll/win32/opengl32/opengl32.h (original)
+++ trunk/reactos/dll/win32/opengl32/opengl32.h Sat Nov 17 23:22:45 2007
@@ -23,6 +23,7 @@
#endif
#define OPENGL_DRIVERS_SUBKEY L"SOFTWARE\\Microsoft\\Windows
NT\\CurrentVersion\\OpenGLDrivers"
+#define OPENGL_DRIVERS_SUBKEY2 L"SOFTWARE\\Microsoft\\Windows
NT\\CurrentVersion\\OpenGLDrivers\\"
/* gl function list */
#include "glfuncs.h"
@@ -42,16 +43,12 @@
#endif /* !NDEBUG */
/* debug macros */
-#ifdef _MSC_VER
-inline void DBGPRINT ( ... ) {}
-#else
# ifdef DEBUG_OPENGL32
ULONG DbgPrint(PCH Format,...);
# include <debug.h>
# define DBGPRINT( fmt, args... ) \
DPRINT( "OpenGL32.DLL: %s: "fmt"\n", __FUNCTION__, ##args
)
# endif
-#endif
#ifndef DBGPRINT
# define DBGPRINT( ... ) do {} while (0)
Modified: trunk/reactos/dll/win32/opengl32/wgl.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/opengl32/wgl.c?r…
==============================================================================
--- trunk/reactos/dll/win32/opengl32/wgl.c (original)
+++ trunk/reactos/dll/win32/opengl32/wgl.c Sat Nov 17 23:22:45 2007
@@ -1027,7 +1027,7 @@
DBGPRINT( "Info: Calling DrvSetContext!" );
SetLastError( ERROR_SUCCESS );
icdTable = glrc->icd->DrvSetContext( hdc, glrc->hglrc,
- ROSGL_SetContextCallBack );
+ (void *)ROSGL_SetContextCallBack );
if (icdTable == NULL)
{
DBGPRINT( "Error: DrvSetContext failed (%d)\n", GetLastError() );