Fix a number of MINGW32 issues
authorZhang <zxpmyth@yahoo.com.cn>
Sat, 21 Jul 2007 17:28:06 +0000 (11:28 -0600)
committerBrian <brian.paul@tungstengraphics.com>
Sat, 21 Jul 2007 17:28:06 +0000 (11:28 -0600)
25 files changed:
Makefile
Makefile.mgw
configs/config.mgw [new file with mode: 0644]
docs/README.MINGW32
include/GL/gl.h
include/GL/glut.h
include/GL/mesa_wgl.h
progs/samples/Makefile.mgw
src/glu/sgi/Makefile.mgw [new file with mode: 0644]
src/glu/sgi/libnurbs/interface/glcurveval.h
src/glu/sgi/libnurbs/interface/glsurfeval.cc
src/glu/sgi/libnurbs/interface/glsurfeval.h
src/glut/glx/Makefile.mgw [new file with mode: 0644]
src/glut/glx/glut_fbc.c
src/glut/glx/glutint.h
src/glut/glx/win32_winproc.c
src/mesa/Makefile.mgw
src/mesa/drivers/windows/gdi/wgl.c
src/mesa/drivers/windows/gdi/wmesa.c
src/mesa/drivers/windows/gdi/wmesadef.h
src/mesa/main/glheader.h
src/mesa/main/imports.c
src/mesa/main/imports.h
src/mesa/main/shaders.c
src/mesa/main/texcompress_fxt1.c

index 31acb630e254a04fd8468c76db34ac3db22702a9..9a6557571c5029cf477ad2e9d44b41ff46d1cabf 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -317,6 +317,7 @@ SGI_GLU_FILES = \
        $(DIRECTORY)/src/glu/Makefile                                   \
        $(DIRECTORY)/src/glu/descrip.mms                                \
        $(DIRECTORY)/src/glu/sgi/Makefile                               \
+       $(DIRECTORY)/src/glu/sgi/Makefile.mgw                           \
        $(DIRECTORY)/src/glu/sgi/Makefile.win                           \
        $(DIRECTORY)/src/glu/sgi/Makefile.DJ                            \
        $(DIRECTORY)/src/glu/sgi/glu.def                                \
index 948860890c05510d7b6bd1d6d72eeebc2858f46c..3dc9f626438cafa5e5a5c281942be2725762222c 100644 (file)
 
 # MinGW core makefile updated for Mesa 7.0
 #
-#  updated : by Heromyth, 2007-6-25
+#  Updated : by Heromyth, on 2007-7-21
 #  Email   : zxpmyth@yahoo.com.cn
-#  Bug     : All the default settings work fine. But the setting X86=1 can't work. 
+#  Bugs    : 1) All the default settings work fine. But the setting X86=1 can't work. 
 #            The others havn't been tested yet.
-
+#            2) The generated DLLs are *not* compatible with the ones built
+#            with the other compilers like VC8, especially for GLUT. 
+#            3) MAlthough more tests are needed, it can be used individually!
 
 
 .PHONY : all libgl clean realclean
@@ -73,13 +75,14 @@ CFLAGS += -O2 -ffast-math
 
 export CFLAGS
 
+
 ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
 UNLINK = del $(subst /,\,$(1))
 else
 UNLINK = $(RM) $(1)
 endif
 
-all: libgl libglu libglut
+all: libgl libglu libglut example
 
 libgl: lib
        $(MAKE) -f Makefile.mgw -C src/mesa
diff --git a/configs/config.mgw b/configs/config.mgw
new file mode 100644 (file)
index 0000000..b961eb9
--- /dev/null
@@ -0,0 +1,42 @@
+# MinGW config include file updated for Mesa 7.0\r
+#\r
+#  Updated : by Heromyth, on 2007-7-21\r
+#  Email   : zxpmyth@yahoo.com.cn\r
+#  Bugs    : 1) All the default settings work fine. But the setting X86=1 can't work. \r
+#            The others havn't been tested yet.\r
+#            2) The generated DLLs are *not* compatible with the ones built\r
+#            with the other compilers like VC8, especially for GLUT. \r
+#            3) Although more tests are needed, it can be used individually!\r
+\r
+# The generated DLLs by MingW with STDCALL are not totally compatible \r
+# with the ones linked by Microsoft's compilers.\r
+#\r
+# xxx_USING_STDCALL = 1          Compiling MESA with __stdcall. This is default!\r
+# \r
+# xxx_USING_STDCALL = 0          Compiling MESA without __stdcall. I like this:)\r
+#  \r
+\r
+# In fact, GL_USING_STDCALL and GLUT_USING_STDCALL can be\r
+# different. For example:\r
+#\r
+#   GL_USING_STDCALL = 0\r
+#   GLUT_USING_STDCALL = 1\r
+# \r
+# Suggested setting:\r
+#\r
+#     ALL_USING_STDCALL = 1\r
+#\r
+# That's default!\r
+#\r
+\r
+\r
+ALL_USING_STDCALL = 1\r
+\r
+\r
+ifeq ($(ALL_USING_STDCALL),1)\r
+  GL_USING_STDCALL = 1\r
+  GLUT_USING_STDCALL = 1\r
+else\r
+  GL_USING_STDCALL = 0\r
+  GLUT_USING_STDCALL = 0\r
+endif\r
index 2b39f120908a0a040386b2d88acc6a11f491bd59..138dd43eaccfe0d3b3ddc6f308ae800f0ee3624d 100644 (file)
@@ -88,3 +88,52 @@ Running the Build:
 
                Paul G. <pgarceau@users.sourceforge.net>
                Daniel Borca <dborca@users.sourceforge.net>
+
+
+
+*******************This section is added by Heromyth*****************************
+Updated on 2007-7-21, by Heromyth <zxpmyth@yahoo.com.cn>
+
+
+Notice:
+       1) The generated DLLs are *not* compatible with the ones built
+with the other compilers like VC8, especially for GLUT. 
+
+       2) Although more tests are needed, it can be used individually!
+
+       3) You can set the options about whether using STDCALL to build MESA. The 
+config file is <Mesa3D-root>\configs\config.mgw. The default setting is that:
+               ALL_USING_STDCALL = 1
+, which means using STDCALL to build MESA. 
+
+       4) Of course, you can MESA without using STDCALL,I like this:) 
+The setting is :
+               ALL_USING_STDCALL = 0
+To do this, however, you must modify wingdi.h which is in MingW's include dir. 
+For example, run:
+       notepad C:\MingW\include\wingdi.h
+, and delete all the lines where all the wgl*() functions are. Because they would 
+be conflicted with the ones in <Mesa3D-root>\include\GL\mesa_wgl.h.
+
+======= Conflicted Functions List ======
+WINGDIAPI BOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT);
+WINGDIAPI HGLRC WINAPI wglCreateContext(HDC);
+WINGDIAPI HGLRC WINAPI wglCreateLayerContext(HDC,int);
+WINGDIAPI BOOL WINAPI wglDeleteContext(HGLRC);
+WINGDIAPI BOOL WINAPI wglDescribeLayerPlane(HDC,int,int,UINT,LPLAYERPLANEDESCRIPTOR);
+WINGDIAPI HGLRC WINAPI wglGetCurrentContext(void);
+WINGDIAPI HDC WINAPI wglGetCurrentDC(void);
+WINGDIAPI int WINAPI wglGetLayerPaletteEntries(HDC,int,int,int,COLORREF*);
+WINGDIAPI PROC WINAPI wglGetProcAddress(LPCSTR);
+WINGDIAPI BOOL WINAPI wglMakeCurrent(HDC,HGLRC);
+WINGDIAPI BOOL WINAPI wglRealizeLayerPalette(HDC,int,BOOL);
+WINGDIAPI int WINAPI wglSetLayerPaletteEntries(HDC,int,int,int,const COLORREF*);
+WINGDIAPI BOOL WINAPI wglShareLists(HGLRC,HGLRC);
+WINGDIAPI BOOL WINAPI wglSwapLayerBuffers(HDC,UINT);
+WINGDIAPI BOOL WINAPI wglUseFontBitmapsA(HDC,DWORD,DWORD,DWORD);
+WINGDIAPI BOOL WINAPI wglUseFontBitmapsW(HDC,DWORD,DWORD,DWORD);
+WINGDIAPI BOOL WINAPI wglUseFontOutlinesA(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
+WINGDIAPI BOOL WINAPI wglUseFontOutlinesW(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
+===================
+
+*********************************************************************************
\ No newline at end of file
index a388de36e4995ed1fa8839d277a50483401f68c7..09195aa136108ca1859a3aa3e30ab26af64127bf 100644 (file)
 #  else /* for use with static link lib build of Win32 edition only */
 #    define GLAPI extern
 #  endif /* _STATIC_MESA support */
-#  define GLAPIENTRY __stdcall
+#  if defined(__MINGW32__) && defined(GL_NO_STDCALL)  /* The generated DLLs by MingW with STDCALL are not compatible with the ones done by Microsoft's compilers */
+#    define GLAPIENTRY 
+#  else
+#    define GLAPIENTRY __stdcall
+#  endif
 #elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */
 #  define GLAPI extern
 #  define GLAPIENTRY __stdcall
@@ -84,7 +88,8 @@
 #include <windows.h>
 #endif
 
-#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP) && !defined(__CYGWIN__)
+#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) \
+     && !defined(OPENSTEP) && !defined(__CYGWIN__) || defined(__MINGW32__)
 #include <GL/mesa_wgl.h>
 #endif
 
@@ -2161,11 +2166,11 @@ typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLsh
 #define GL_DEBUG_PRINT_MESA               0x875A
 #define GL_DEBUG_ASSERT_MESA              0x875B
 
-GLAPI GLhandleARB APIENTRY glCreateDebugObjectMESA (void);
-GLAPI void APIENTRY glClearDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
-GLAPI void APIENTRY glGetDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType, GLsizei maxLength,
+GLAPI GLhandleARB GLAPIENTRY glCreateDebugObjectMESA (void);
+GLAPI void GLAPIENTRY glClearDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
+GLAPI void GLAPIENTRY glGetDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType, GLsizei maxLength,
                                          GLsizei *length, GLcharARB *debugLog);
-GLAPI GLsizei APIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
+GLAPI GLsizei GLAPIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
 
 #endif /* GL_MESA_shader_debug */
 
index e0fad6e5cb08b039520f06b1d094e7746765566d..e286349f9b01c3903b4f9104c9aaf36ba1531661 100644 (file)
 #include <GL/gl.h>
 #include <GL/glu.h>
 
+#if defined(__MINGW32__)
+#include <GL/mesa_wgl.h>
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -108,7 +112,7 @@ extern _CRTIMP void __cdecl exit(int);
    and redifinition of Windows system defs, also removes requirement of
    pretty much any standard windows header from this file */
 
-#if (_MSC_VER >= 800) || defined(__MINGW32__) || defined(_STDCALL_SUPPORTED) || defined(__CYGWIN32__)
+#if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__CYGWIN32__)
 #      define GLUTAPIENTRY __stdcall
 #else
 #      define GLUTAPIENTRY
@@ -130,8 +134,9 @@ extern _CRTIMP void __cdecl exit(int);
 #              pragma message( "----: being multiply defined you should include WINDOWS.H priot to gl/glut.h" )
 #      endif
 #      define CALLBACK __stdcall
-typedef int (GLUTAPIENTRY *PROC)();
+
 #if !defined(__MINGW32__)
+       typedef int (GLUTAPIENTRY *PROC)();
        typedef void *HGLRC;
        typedef void *HDC;
 #endif
index acc7eac2a718a41f23bd392514597d5e89ab0f01..1d774571d94db40dfb08160961a83df01a9d5795 100644 (file)
 /* prototypes for the Mesa WGL functions */
 /* relocated here so that I could make GLUT get them properly */
 
-#define _mesa_wgl_h_
-
 #ifndef _mesa_wgl_h_
 #define _mesa_wgl_h_
 
+#if defined(__MINGW32__)
+#  define __W32API_USE_DLLIMPORT__
+#endif
 
 #include <GL/gl.h>
 
@@ -39,23 +40,16 @@ extern "C" {
 #endif
 
 
-#if !defined(OPENSTEP) && (defined(__WIN32__) || defined(__CYGWIN32__))
-#  if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */
-#    define GLAPI __declspec(dllexport)
-#    define WGLAPI __declspec(dllexport)
-#  elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */
-#    define GLAPI __declspec(dllimport)
-#    define WGLAPI __declspec(dllimport)
-#  else /* for use with static link lib build of Win32 edition only */
-#    define GLAPI extern
-#    define WGLAPI __declspec(dllimport)
-#  endif /* _STATIC_MESA support */
-#  define GLAPIENTRY __stdcall
-#else
-/* non-Windows compilation */
-#  define GLAPI extern
-#  define GLAPIENTRY
-#endif /* WIN32 / CYGWIN32 bracket */
+#ifndef WGLAPI
+#define WGLAPI GLAPI
+#endif
+
+#if defined(__MINGW32__)
+#  ifndef WIN32_LEAN_AND_MEAN
+#    define WIN32_LEAN_AND_MEAN 1
+#  endif
+#  include <windows.h>
+#endif
 
 
 #if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP)
@@ -80,23 +74,25 @@ typedef struct tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESC
 #  pragma warning( disable : 4273 ) /* 'function' : inconsistent DLL linkage. dllexport assumed. */
 #endif
 
-WGLAPI int   GLAPIENTRY wglDeleteContext(HGLRC);
-WGLAPI int   GLAPIENTRY wglMakeCurrent(HDC,HGLRC);
+
 WGLAPI int   GLAPIENTRY wglSetPixelFormat(HDC, int, const PIXELFORMATDESCRIPTOR *);
 WGLAPI int   GLAPIENTRY wglSwapBuffers(HDC hdc);
-WGLAPI HDC   GLAPIENTRY wglGetCurrentDC(void);
-WGLAPI HGLRC GLAPIENTRY wglCreateContext(HDC);
-WGLAPI HGLRC GLAPIENTRY wglCreateLayerContext(HDC,int);
-WGLAPI HGLRC GLAPIENTRY wglGetCurrentContext(void);
-WGLAPI PROC  GLAPIENTRY wglGetProcAddress(const char*);
 WGLAPI int   GLAPIENTRY wglChoosePixelFormat(HDC, const PIXELFORMATDESCRIPTOR *);
+WGLAPI int   GLAPIENTRY wglDescribePixelFormat(HDC,int, unsigned int, LPPIXELFORMATDESCRIPTOR);
+WGLAPI int   GLAPIENTRY wglGetPixelFormat(HDC hdc);
+
+
+#if defined(GL_NO_STDCALL) || !defined(__MINGW32__)
 WGLAPI int   GLAPIENTRY wglCopyContext(HGLRC, HGLRC, unsigned int);
+WGLAPI HGLRC GLAPIENTRY wglCreateContext(HDC);
+WGLAPI HGLRC GLAPIENTRY wglCreateLayerContext(HDC,int);
 WGLAPI int   GLAPIENTRY wglDeleteContext(HGLRC);
 WGLAPI int   GLAPIENTRY wglDescribeLayerPlane(HDC, int, int, unsigned int,LPLAYERPLANEDESCRIPTOR);
-WGLAPI int   GLAPIENTRY wglDescribePixelFormat(HDC,int, unsigned int, LPPIXELFORMATDESCRIPTOR);
+WGLAPI HGLRC GLAPIENTRY wglGetCurrentContext(void);
+WGLAPI HDC   GLAPIENTRY wglGetCurrentDC(void);
 WGLAPI int   GLAPIENTRY wglGetLayerPaletteEntries(HDC, int, int, int,COLORREF *);
-WGLAPI int   GLAPIENTRY wglGetPixelFormat(HDC hdc);
-WGLAPI int   GLAPIENTRY wglMakeCurrent(HDC, HGLRC);
+WGLAPI PROC  GLAPIENTRY wglGetProcAddress(const char*);
+WGLAPI int   GLAPIENTRY wglMakeCurrent(HDC,HGLRC);
 WGLAPI int   GLAPIENTRY wglRealizeLayerPalette(HDC, int, int);
 WGLAPI int   GLAPIENTRY wglSetLayerPaletteEntries(HDC, int, int, int,const COLORREF *);
 WGLAPI int   GLAPIENTRY wglShareLists(HGLRC, HGLRC);
@@ -105,12 +101,15 @@ WGLAPI int   GLAPIENTRY wglUseFontBitmapsA(HDC, unsigned long, unsigned long, un
 WGLAPI int   GLAPIENTRY wglUseFontBitmapsW(HDC, unsigned long, unsigned long, unsigned long);
 WGLAPI int   GLAPIENTRY wglUseFontOutlinesA(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT);
 WGLAPI int   GLAPIENTRY wglUseFontOutlinesW(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT);
+#endif
+
+#ifndef __MINGW32__
 WGLAPI int   GLAPIENTRY SwapBuffers(HDC);
 WGLAPI int   GLAPIENTRY ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR *);
 WGLAPI int   GLAPIENTRY DescribePixelFormat(HDC,int,unsigned int,LPPIXELFORMATDESCRIPTOR);
 WGLAPI int   GLAPIENTRY GetPixelFormat(HDC);
 WGLAPI int   GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *);
-
+#endif
 
 #ifndef WGL_ARB_extensions_string
 #define WGL_ARB_extensions_string 1
index 11935405783d9798a76045d1631fd23904ba0da3..3b2fd785def74956a484574461fe66b6ffaf1fa2 100644 (file)
 #  Email : dborca@users.sourceforge.net
 #  Web   : http://www.geocities.com/dborca
 
+# MinGW samples makefile updated for Mesa 7.0
+#
+#  Updated : by Heromyth, on 2007-7-21
+#  Email   : zxpmyth@yahoo.com.cn
+#  Bugs    : 1) All the default settings work fine. But the setting X86=1 can't work. 
+#            The others havn't been tested yet.
+#            2) The generated DLLs are *not* compatible with the ones built
+#            with the other compilers like VC8, especially for GLUT. 
+#            3) Although more tests are needed, it can be used individually!
 
 #
 #  Available options:
 
 TOP = ../..
 
+include $(TOP)/configs/config.mgw
+ALL_USING_STDCALL ?= 1
+GL_USING_STDCALL ?= 1
+GLUT_USING_STDCALL ?= 1
+
 CC = mingw32-gcc
-CFLAGS = -Wall -W -pedantic
+CFLAGS = -Wall -pedantic
 CFLAGS += -O2 -ffast-math
 CFLAGS += -I$(TOP)/include -I../util
 ifeq ($(FX),1)
-CFLAGS += -DFX
+  CFLAGS += -DFX
+endif
+
+CFLAGS += -DGLUT_DISABLE_ATEXIT_HACK
+
+ifeq ($(GL_USING_STDCALL),0)
+  CFLAGS += -DGL_NO_STDCALL
+endif
+
+ifeq ($(GLUT_USING_STDCALL),1)
+  CFLAGS += -D_STDCALL_SUPPORTED
+else
+  CFLAGS += -DGLUT_NO_STDCALL
 endif
-CFLAGS += -DGLUT_DISABLE_ATEXIT_HACK -D_STDCALL_SUPPORTED
-CFLAGS += -D_WINDEF_ -D_WINGDI_
+
 
 LD = mingw32-g++
 LDFLAGS = -s -L$(TOP)/lib
diff --git a/src/glu/sgi/Makefile.mgw b/src/glu/sgi/Makefile.mgw
new file mode 100644 (file)
index 0000000..43b421e
--- /dev/null
@@ -0,0 +1,229 @@
+# Mesa 3-D graphics library
+# Version:  5.1
+# 
+# Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+# 
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+# MinGW core makefile v1.4 for Mesa
+#
+#  Copyright (C) 2002 - Daniel Borca
+#  Email : dborca@users.sourceforge.net
+#  Web   : http://www.geocities.com/dborca
+
+# MinGW core-glu makefile updated for Mesa 7.0
+#
+#  Updated : by Heromyth, on 2007-7-21
+#  Email   : zxpmyth@yahoo.com.cn
+#  Bugs    : 1) All the default settings work fine. But the setting X86=1 can't work. 
+#            The others havn't been tested yet.
+#            2) The generated DLLs are *not* compatible with the ones built
+#            with the other compilers like VC8, especially for GLUT. 
+#            3) Although more tests are needed, it can be used individually!
+
+#
+#  Available options:
+#
+#    Environment variables:
+#      CFLAGS
+#
+#      GLIDE           path to Glide3 SDK; used with FX.
+#                      default = $(TOP)/glide3
+#      FX=1            build for 3dfx Glide3. Note that this disables
+#                      compilation of most WMesa code and requires fxMesa.
+#                      As a consequence, you'll need the Win32 Glide3
+#                      library to build any application.
+#                      default = no
+#      ICD=1           build the installable client driver interface
+#                      (windows opengl driver interface)
+#                      default = no
+#      X86=1           optimize for x86 (if possible, use MMX, SSE, 3DNow).
+#                      default = no
+#
+#    Targets:
+#      all:            build GL
+#      clean:          remove object files
+#
+
+
+
+.PHONY: all clean
+.INTERMEDIATE: x86/gen_matypes.exe
+.SUFFIXES: .rc .res
+
+# Set this to the prefix of your build tools, i.e. mingw32-
+TOOLS_PREFIX = mingw32-
+
+TOP = ../../..
+
+LIBDIR = $(TOP)/lib
+
+GLU_DLL = glu32.dll
+GLU_IMP = libglu32.a
+GLU_DEF = glu.def
+
+include $(TOP)/configs/config.mgw
+GL_USING_STDCALL ?= 1
+
+LDLIBS = -L$(LIBDIR) -lopengl32
+LDFLAGS = -Wl,--out-implib=$(LIBDIR)/$(GLU_IMP) -Wl,--output-def=$(LIBDIR)/$(GLU_DEF)
+
+CFLAGS += -DBUILD_GLU32 -D_DLL
+
+ifeq ($(GL_USING_STDCALL),1)
+  LDFLAGS += -Wl,--add-stdcall-alias
+else
+  CFLAGS += -DGL_NO_STDCALL
+endif
+
+CC = gcc
+CFLAGS += -DNDEBUG -DLIBRARYBUILD -I$(TOP)/include -Iinclude
+CXX = g++
+CXXFLAGS = $(CFLAGS) -Ilibnurbs/internals -Ilibnurbs/interface -Ilibnurbs/nurbtess
+
+AR = ar
+ARFLAGS = crus
+
+UNLINK = del $(subst /,\,$(1))
+ifneq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
+UNLINK = $(RM) $(1)
+endif
+ifneq ($(wildcard $(addsuffix /rm,$(subst :, ,$(PATH)))),)
+UNLINK = $(RM) $(1)
+endif
+
+C_SOURCES = \
+       libutil/error.c \
+       libutil/glue.c \
+       libutil/mipmap.c \
+       libutil/project.c \
+       libutil/quad.c \
+       libutil/registry.c \
+       libtess/dict.c \
+       libtess/geom.c \
+       libtess/memalloc.c \
+       libtess/mesh.c \
+       libtess/normal.c \
+       libtess/priorityq.c \
+       libtess/render.c \
+       libtess/sweep.c \
+       libtess/tess.c \
+       libtess/tessmono.c
+
+CC_SOURCES = \
+       libnurbs/interface/bezierEval.cc \
+       libnurbs/interface/bezierPatch.cc \
+       libnurbs/interface/bezierPatchMesh.cc \
+       libnurbs/interface/glcurveval.cc \
+       libnurbs/interface/glinterface.cc \
+       libnurbs/interface/glrenderer.cc \
+       libnurbs/interface/glsurfeval.cc \
+       libnurbs/interface/incurveeval.cc \
+       libnurbs/interface/insurfeval.cc \
+       libnurbs/internals/arc.cc \
+       libnurbs/internals/arcsorter.cc \
+       libnurbs/internals/arctess.cc \
+       libnurbs/internals/backend.cc \
+       libnurbs/internals/basiccrveval.cc \
+       libnurbs/internals/basicsurfeval.cc \
+       libnurbs/internals/bin.cc \
+       libnurbs/internals/bufpool.cc \
+       libnurbs/internals/cachingeval.cc \
+       libnurbs/internals/ccw.cc \
+       libnurbs/internals/coveandtiler.cc \
+       libnurbs/internals/curve.cc \
+       libnurbs/internals/curvelist.cc \
+       libnurbs/internals/curvesub.cc \
+       libnurbs/internals/dataTransform.cc \
+       libnurbs/internals/displaylist.cc \
+       libnurbs/internals/flist.cc \
+       libnurbs/internals/flistsorter.cc \
+       libnurbs/internals/hull.cc \
+       libnurbs/internals/intersect.cc \
+       libnurbs/internals/knotvector.cc \
+       libnurbs/internals/mapdesc.cc \
+       libnurbs/internals/mapdescv.cc \
+       libnurbs/internals/maplist.cc \
+       libnurbs/internals/mesher.cc \
+       libnurbs/internals/monoTriangulationBackend.cc \
+       libnurbs/internals/monotonizer.cc \
+       libnurbs/internals/mycode.cc \
+       libnurbs/internals/nurbsinterfac.cc \
+       libnurbs/internals/nurbstess.cc \
+       libnurbs/internals/patch.cc \
+       libnurbs/internals/patchlist.cc \
+       libnurbs/internals/quilt.cc \
+       libnurbs/internals/reader.cc \
+       libnurbs/internals/renderhints.cc \
+       libnurbs/internals/slicer.cc \
+       libnurbs/internals/sorter.cc \
+       libnurbs/internals/splitarcs.cc \
+       libnurbs/internals/subdivider.cc \
+       libnurbs/internals/tobezier.cc \
+       libnurbs/internals/trimline.cc \
+       libnurbs/internals/trimregion.cc \
+       libnurbs/internals/trimvertpool.cc \
+       libnurbs/internals/uarray.cc \
+       libnurbs/internals/varray.cc \
+       libnurbs/nurbtess/directedLine.cc \
+       libnurbs/nurbtess/gridWrap.cc \
+       libnurbs/nurbtess/monoChain.cc \
+       libnurbs/nurbtess/monoPolyPart.cc \
+       libnurbs/nurbtess/monoTriangulation.cc \
+       libnurbs/nurbtess/partitionX.cc \
+       libnurbs/nurbtess/partitionY.cc \
+       libnurbs/nurbtess/polyDBG.cc \
+       libnurbs/nurbtess/polyUtil.cc \
+       libnurbs/nurbtess/primitiveStream.cc \
+       libnurbs/nurbtess/quicksort.cc \
+       libnurbs/nurbtess/rectBlock.cc \
+       libnurbs/nurbtess/sampleComp.cc \
+       libnurbs/nurbtess/sampleCompBot.cc \
+       libnurbs/nurbtess/sampleCompRight.cc \
+       libnurbs/nurbtess/sampleCompTop.cc \
+       libnurbs/nurbtess/sampleMonoPoly.cc \
+       libnurbs/nurbtess/sampledLine.cc \
+       libnurbs/nurbtess/searchTree.cc
+
+SOURCES = $(C_SOURCES) $(CC_SOURCES)
+
+OBJECTS = $(addsuffix .o,$(basename $(SOURCES)))
+
+.c.o:
+       $(CC) -o $@ $(CFLAGS) -c $<
+.cc.o:
+       $(CXX) -o $@ $(CXXFLAGS) -c $<
+
+
+all: $(LIBDIR) $(LIBDIR)/$(GLU_DLL) $(LIBDIR)/$(GLU_IMP)
+
+$(LIBDIR):
+       mkdir -p $(LIBDIR)
+
+$(LIBDIR)/$(GLU_DLL) $(LIBDIR)/$(GLU_IMP): $(OBJECTS)
+       g++ -shared -fPIC -o $(LIBDIR)/$(GLU_DLL) $(LDFLAGS) \
+    $^ $(LDLIBS)
+
+
+
+clean:
+       -$(call UNLINK,libutil/*.o)
+       -$(call UNLINK,libtess/*.o)
+       -$(call UNLINK,libnurbs/interface/*.o)
+       -$(call UNLINK,libnurbs/internals/*.o)
+       -$(call UNLINK,libnurbs/nurbtess/*.o)
index 4b44f6e847e242666174fe8cae06cf1964332661..a09a74d04c3de6d9b870959f0540f2f5b0eb204c 100644 (file)
@@ -93,7 +93,7 @@ public:
        output_triangles = flag;
       }
 #ifdef _WIN32
-    void               putCallBack(GLenum which, void (APIENTRY *fn)() );
+    void               putCallBack(GLenum which, void (GLAPIENTRY *fn)() );
 #else
     void               putCallBack(GLenum which, _GLUfuncptr fn );
 #endif
index a36b304508c456bc08c8ea3eafb10832bd836672..b5bfab1e2811a449d12ea664dba66dda0c83b737 100644 (file)
@@ -1184,8 +1184,11 @@ return;
 
 }
 
-void
-OpenGLSurfaceEvaluator::putCallBack(GLenum which, _GLUfuncptr fn )
+#ifdef _WIN32
+void OpenGLSurfaceEvaluator::putCallBack(GLenum which, void (GLAPIENTRY *fn)() )
+#else
+void OpenGLSurfaceEvaluator::putCallBack(GLenum which, _GLUfuncptr fn )
+#endif
 {
   switch(which)
     {
index c34a58cb9b91df86be77f8f13b07cdd8dabb723e..b7a88069f5ad9038e6e3eed6cd26b24860fab4b7 100644 (file)
@@ -145,7 +145,7 @@ public:
     void               newtmeshvert( long, long );
 
 #ifdef _WIN32
-    void               putCallBack(GLenum which, void (APIENTRY *fn)() );
+    void               putCallBack(GLenum which, void (GLAPIENTRY *fn)() );
 #else
     void               putCallBack(GLenum which, _GLUfuncptr fn );
 #endif
diff --git a/src/glut/glx/Makefile.mgw b/src/glut/glx/Makefile.mgw
new file mode 100644 (file)
index 0000000..ae4eb6a
--- /dev/null
@@ -0,0 +1,198 @@
+# Mesa 3-D graphics library
+# Version:  5.1
+# 
+# Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+# 
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+# MinGW core makefile v1.4 for Mesa
+#
+#  Copyright (C) 2002 - Daniel Borca
+#  Email : dborca@users.sourceforge.net
+#  Web   : http://www.geocities.com/dborca
+
+# MinGW core-glut makefile updated for Mesa 7.0
+#
+#  Updated : by Heromyth, on 2007-7-21
+#  Email   : zxpmyth@yahoo.com.cn
+#  Bugs    : 1) All the default settings work fine. But the setting X86=1 can't work. 
+#            The others havn't been tested yet.
+#            2) The generated DLLs are *not* compatible with the ones built
+#            with the other compilers like VC8, especially for GLUT. 
+#            3) Although more tests are needed, it can be used individually!
+
+
+#
+#  Available options:
+#
+#    Environment variables:
+#      CFLAGS
+#
+#      GLIDE           path to Glide3 SDK; used with FX.
+#                      default = $(TOP)/glide3
+#      FX=1            build for 3dfx Glide3. Note that this disables
+#                      compilation of most WMesa code and requires fxMesa.
+#                      As a consequence, you'll need the Win32 Glide3
+#                      library to build any application.
+#                      default = no
+#      ICD=1           build the installable client driver interface
+#                      (windows opengl driver interface)
+#                      default = no
+#      X86=1           optimize for x86 (if possible, use MMX, SSE, 3DNow).
+#                      default = no
+#
+#    Targets:
+#      all:            build GL
+#      clean:          remove object files
+#
+
+
+
+.PHONY: all clean
+.INTERMEDIATE: x86/gen_matypes.exe
+.SUFFIXES: .rc .res
+
+# Set this to the prefix of your build tools, i.e. mingw32-
+TOOLS_PREFIX = mingw32-
+
+TOP = ../../..
+
+LIBDIR = $(TOP)/lib
+
+GLUT_DLL = glut32.dll
+GLUT_IMP = libglut32.a
+GLUT_DEF = glut.def
+
+include $(TOP)/configs/config.mgw
+GLUT_USING_STDCALL ?= 1
+
+
+
+LDLIBS = -L$(LIBDIR) -lwinmm -lgdi32 -luser32 -lopengl32 -lglu32 
+LDFLAGS = -Wl,--out-implib=$(LIBDIR)/$(GLUT_IMP) -Wl,--output-def=$(LIBDIR)/$(GLUT_DEF) 
+
+CFLAGS += -DBUILD_GLUT32 -DGLUT_BUILDING_LIB -DMESA -D_DLL
+
+ifeq ($(GL_USING_STDCALL),0)
+  CFLAGS += -DGL_NO_STDCALL
+endif
+
+ifeq ($(GLUT_USING_STDCALL),1)
+  CFLAGS += -D_STDCALL_SUPPORTED
+  LDFLAGS += -Wl,--add-stdcall-alias
+else
+  CFLAGS += -DGLUT_NO_STDCALL
+endif
+
+CFLAGS += -DNDEBUG -DLIBRARYBUILD -I$(TOP)/include 
+
+CC = gcc
+CXX = g++
+CXXFLAGS = $(CFLAGS)
+
+AR = ar
+ARFLAGS = crus
+
+UNLINK = del $(subst /,\,$(1))
+ifneq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
+UNLINK = $(RM) $(1)
+endif
+ifneq ($(wildcard $(addsuffix /rm,$(subst :, ,$(PATH)))),)
+UNLINK = $(RM) $(1)
+endif
+
+HDRS = glutint.h glutstroke.h glutbitmap.h glutwin32.h stroke.h win32_glx.h win32_x11.h
+
+SRCS = \
+       glut_bitmap.c \
+       glut_bwidth.c \
+       glut_cindex.c \
+       glut_cmap.c \
+       glut_cursor.c \
+       glut_dials.c \
+       glut_dstr.c \
+       glut_event.c \
+       glut_ext.c \
+       glut_fbc.c \
+       glut_fullscrn.c \
+       glut_gamemode.c \
+       glut_get.c \
+       glut_init.c \
+       glut_input.c \
+       glut_joy.c \
+       glut_key.c \
+       glut_keyctrl.c \
+       glut_keyup.c \
+       glut_mesa.c \
+       glut_modifier.c \
+       glut_overlay.c \
+       glut_shapes.c \
+       glut_space.c \
+       glut_stroke.c \
+       glut_swap.c \
+       glut_swidth.c \
+       glut_tablet.c \
+       glut_teapot.c \
+       glut_util.c \
+       glut_vidresize.c \
+       glut_warp.c \
+       glut_win.c \
+       glut_winmisc.c \
+       win32_glx.c \
+       win32_menu.c \
+       win32_util.c \
+       win32_winproc.c \
+       win32_x11.c
+       
+
+SRCSSEMIGENS = \
+       glut_8x13.c \
+       glut_9x15.c \
+       glut_hel10.c \
+       glut_hel12.c \
+       glut_hel18.c \
+       glut_mroman.c \
+       glut_roman.c \
+       glut_tr10.c \
+       glut_tr24.c
+
+
+
+SOURCES = $(SRCS) $(SRCSSEMIGENS)
+
+OBJECTS = $(addsuffix .o,$(basename $(SOURCES)))
+
+.c.o:
+       $(CC) -o $@ $(CFLAGS) -c $<
+.cc.o:
+       $(CXX) -o $@ $(CXXFLAGS) -c $<
+
+
+all: $(LIBDIR) $(LIBDIR)/$(GLUT_DLL) $(LIBDIR)/$(GLUT_IMP)
+
+$(LIBDIR):
+       mkdir -p $(LIBDIR)
+
+$(LIBDIR)/$(GLUT_DLL) $(LIBDIR)/$(GLUT_IMP): $(OBJECTS)
+       $(CXX) -shared -fPIC -o $(LIBDIR)/$(GLUT_DLL) $(LDFLAGS) \
+       $^ $(LDLIBS)
+
+
+
+clean:
+       -$(call UNLINK,*.o)
\ No newline at end of file
index deb46c3d8db28fdcc40e60decbe7b3ee0c1b4eef..e93188b86221e6882cf9cb4fdb94ca179d330333 100644 (file)
@@ -18,7 +18,7 @@
 
 /* Set a Fortran callback function. */
 
-void GLUTAPIENTRY
+void APIENTRY
 __glutSetFCB(int which, void *func)
 {
 #ifdef SUPPORT_FORTRAN
@@ -100,7 +100,7 @@ __glutSetFCB(int which, void *func)
 
 /* Get a Fortran callback function. */
 
-void* GLUTAPIENTRY
+void* APIENTRY
 __glutGetFCB(int which)
 {
 #ifdef SUPPORT_FORTRAN
index 6fe09ffe7e708e914b23a38345111c830797966f..a962c780238d17171bac4001bd0a68e2fa50e14d 100644 (file)
 #include <GL/glx.h>
 #endif
 
+#ifndef GLUT_BUILDING_LIB
 #define GLUT_BUILDING_LIB  /* Building the GLUT library itself. */
+#endif
+
 #include <GL/glut.h>
 
 #if defined(MESA) && defined(_WIN32) && !defined(__CYGWIN32__)
index a54bac75fa0af63e7188e757e168cca595599a04..e1fc785ebb7fff95053eb179cab5b12965031014 100644 (file)
@@ -9,6 +9,9 @@
 
 #include "glutint.h"
 #include <sys/timeb.h>
+#ifdef __MINGW32__
+#include <ctype.h>
+#endif
 
 #if defined(_WIN32) && !defined(__CYGWIN32__)
 #include <mmsystem.h>  /* Win32 Multimedia API header. */
index ebec5c055a87cc757efd3750fc1c8a518fb7051e..3b52834bd1c327fe429e8acf5197dc3c741fca4a 100644 (file)
@@ -1,5 +1,5 @@
 # Mesa 3-D graphics library
-# Version:  5.1
+# Version:  7.0
 # 
 # Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
 # 
 #  Email : dborca@users.sourceforge.net
 #  Web   : http://www.geocities.com/dborca
 
+# MinGW core-gl makefile updated for Mesa 7.0
+#
+#  updated : by Heromyth, on 2007-7-21
+#  Email   : zxpmyth@yahoo.com.cn
+#  Bugs    : 1) All the default settings work fine. But the setting X86=1 can't work. 
+#            The others havn't been tested yet.
+#            2) The generated DLLs are *not* compatible with the ones built
+#            with the other compilers like VC8, especially for GLUT. 
+#            3) Although more tests are needed, it can be used individually!
+
 
 #
 #  Available options:
@@ -52,7 +62,6 @@
 #
 
 
-
 .PHONY: all clean
 .INTERMEDIATE: x86/gen_matypes.exe
 .SUFFIXES: .rc .res
@@ -60,6 +69,8 @@
 # Set this to the prefix of your build tools, i.e. mingw32-
 TOOLS_PREFIX = mingw32-
 
+
+
 TOP = ../..
 GLIDE ?= $(TOP)/glide3
 LIBDIR = $(TOP)/lib
@@ -71,11 +82,25 @@ else
   GL_IMP = libopengl32.a
 endif
 
-LDLIBS = -lgdi32
+GL_DEF = gl.def
+
+include $(TOP)/configs/config.mgw
+GL_USING_STDCALL ?= 1
+
+MESA_LIB = libmesa.a
+
+LDLIBS = -lgdi32 -luser32 -liberty
+LDFLAGS = -Wl,--out-implib=$(LIBDIR)/$(GL_IMP) -Wl,--output-def=$(LIBDIR)/gl.def
 
 CC = $(TOOLS_PREFIX)gcc
-CFLAGS += -DBUILD_GL32 -D_OPENGL32_
-CFLAGS += $(INCLUDE_DIRS)
+CFLAGS += -DBUILD_GL32 -D_OPENGL32_ -D_DLL -DMESA_MINWARN -DNDEBUG -D_USRDLL -DGDI_EXPORTS
+
+ifeq ($(GL_USING_STDCALL),1)
+  LDFLAGS += -Wl,--add-stdcall-alias
+else
+  CFLAGS += -DGL_NO_STDCALL
+endif
+
 CFLAGS += -DUSE_EXTERNAL_DXTN_LIB=1
 ifeq ($(FX),1)
   CFLAGS += -I$(GLIDE)/include -DFX
@@ -104,6 +129,8 @@ endif
 
 include sources
 
+CFLAGS += $(INCLUDE_DIRS) 
+
 ifeq ($(X86),1)
 CFLAGS += -DUSE_X86_ASM
 CFLAGS += -DUSE_MMX_ASM
@@ -140,10 +167,9 @@ RESOURCE = $(GL_RES:.rc=.res)
 
 .c.o:
        $(CC) -o $@ $(CFLAGS) -c $<
-.S.o:
-       $(CC) -o $@ $(CFLAGS) -c $<
 .s.o:
        $(CC) -o $@ $(CFLAGS) -x assembler-with-cpp -c $<
+
 .rc.res:
        windres -o $@ -Irc -Ocoff $<
 
@@ -153,9 +179,8 @@ $(LIBDIR):
        mkdir -p $(LIBDIR)
 
 $(LIBDIR)/$(GL_DLL) $(LIBDIR)/$(GL_IMP): $(OBJECTS) $(RESOURCE)
-       $(TOOLS_PREFIX)dllwrap -o $(LIBDIR)/$(GL_DLL) --output-lib $(LIBDIR)/$(GL_IMP) \
-                              --target i386-mingw32 --def $(GL_DEF) -Wl,-enable-stdcall-fixup \
-                              $^ $(LDLIBS)
+       $(CC) -shared -fPIC -o $(LIBDIR)/$(GL_DLL) $(LDFLAGS) \
+       $^ $(LDLIBS)
 
 $(X86_OBJECTS): x86/matypes.h
 
@@ -187,17 +212,21 @@ tnl/t_vtx_x86_gcc.o: tnl/t_vtx_x86_gcc.S
        $(CC) -o $@ $(CFLAGS) -DSTDCALL_API -c $<
 
 clean:
-       -$(call UNLINK,array_cache/*.o)
        -$(call UNLINK,glapi/*.o)
        -$(call UNLINK,main/*.o)
        -$(call UNLINK,math/*.o)
+       -$(call UNLINK,vbo/*.o)
        -$(call UNLINK,shader/*.o)
+       -$(call UNLINK,shader/slang/*.o)
+       -$(call UNLINK,shader/grammar/*.o)
        -$(call UNLINK,sparc/*.o)
        -$(call UNLINK,ppc/*.o)
        -$(call UNLINK,swrast/*.o)
        -$(call UNLINK,swrast_setup/*.o)
        -$(call UNLINK,tnl/*.o)
        -$(call UNLINK,x86/*.o)
+       -$(call UNLINK,x86/rtasm/*.o)
+       -$(call UNLINK,x86-64/*.o)
        -$(call UNLINK,drivers/common/*.o)
        -$(call UNLINK,drivers/glide/*.o)
        -$(call UNLINK,drivers/windows/fx/*.o)
index fb23d210db7bc60de11f86349f355c143b219323..dad3dc116043c5bbc752e3bb1bdfd41233069a29 100644 (file)
 /* We're essentially building part of GDI here, so define this so that
  * we get the right export linkage. */
 #ifdef __MINGW32__
-#include <GL/gl.h>
+
+#include <stdarg.h>
+#include <windef.h>
+#include <wincon.h>
+#include <winbase.h>
+
+#  if defined(BUILD_GL32)
+#    define WINGDIAPI __declspec(dllexport)    
+#  else
+#    define __W32API_USE_DLLIMPORT__
+#  endif
+
+#include <wingdi.h>
+#include "GL/mesa_wgl.h"
 #include <stdlib.h>
+
 #else
+
 #define _GDI32_
-#endif
 #include <windows.h>
 
-#include "glapi.h"
+#endif
 
+#include "glapi.h"
 #include "GL/wmesa.h"   /* protos for wmesa* functions */
 
 /*
@@ -339,7 +354,7 @@ WINGDIAPI int GLAPIENTRY wglGetPixelFormat(HDC hdc)
 }
 
 WINGDIAPI BOOL GLAPIENTRY wglSetPixelFormat(HDC hdc,int iPixelFormat,
-                                           const PIXELFORMATDESCRIPTOR *ppfd)
+                                       const PIXELFORMATDESCRIPTOR *ppfd)
 {
     (void) hdc;
     
@@ -392,12 +407,12 @@ static BOOL wglUseFontBitmaps_FX(HDC fontDevice, DWORD firstChar,
     
     bitDevice = CreateCompatibleDC(fontDevice);
     
-    // Swap fore and back colors so the bitmap has the right polarity
+    /* Swap fore and back colors so the bitmap has the right polarity */
     tempColor = GetBkColor(bitDevice);
     SetBkColor(bitDevice, GetTextColor(bitDevice));
     SetTextColor(bitDevice, tempColor);
     
-    // Place chars based on base line
+    /* Place chars based on base line */
     VERIFY(SetTextAlign(bitDevice, TA_BASELINE) != GDI_ERROR ? 1 : 0);
     
     for(i = 0; i < (int)numChars; i++) {
@@ -410,36 +425,36 @@ static BOOL wglUseFontBitmaps_FX(HDC fontDevice, DWORD firstChar,
        
        curChar = (char)(i + firstChar);
        
-       // Find how high/wide this character is
+       /* Find how high/wide this character is */
        VERIFY(GetTextExtentPoint32(bitDevice, &curChar, 1, &size));
        
-       // Create the output bitmap
+       /* Create the output bitmap */
        charWidth = size.cx;
        charHeight = size.cy;
-       // Round up to the next multiple of 32 bits
+       /* Round up to the next multiple of 32 bits */
        bmapWidth = ((charWidth + 31) / 32) * 32;   
        bmapHeight = charHeight;
        bitObject = CreateCompatibleBitmap(bitDevice,
                                           bmapWidth,
                                           bmapHeight);
-       //VERIFY(bitObject);
+       /* VERIFY(bitObject); */
        
-       // Assign the output bitmap to the device
+       /* Assign the output bitmap to the device */
        origBmap = SelectObject(bitDevice, bitObject);
        (void) VERIFY(origBmap);
        
        VERIFY( PatBlt( bitDevice, 0, 0, bmapWidth, bmapHeight,BLACKNESS ) );
        
-       // Use our source font on the device
+       /* Use our source font on the device */
        VERIFY(SelectObject(bitDevice, GetCurrentObject(fontDevice,OBJ_FONT)));
        
-       // Draw the character
+       /* Draw the character */
        VERIFY(TextOut(bitDevice, 0, metric.tmAscent, &curChar, 1));
        
-       // Unselect our bmap object
+       /* Unselect our bmap object */
        VERIFY(SelectObject(bitDevice, origBmap));
        
-       // Convert the display dependant representation to a 1 bit deep DIB
+       /* Convert the display dependant representation to a 1 bit deep DIB */
        numBytes = (bmapWidth * bmapHeight) / 8;
        bmap = malloc(numBytes);
        dibInfo->bmiHeader.biWidth = bmapWidth;
@@ -447,24 +462,24 @@ static BOOL wglUseFontBitmaps_FX(HDC fontDevice, DWORD firstChar,
        res = GetDIBits(bitDevice, bitObject, 0, bmapHeight, bmap,
                        dibInfo,
                        DIB_RGB_COLORS);
-       //VERIFY(res);
+       /* VERIFY(res); */
        
-       // Create the GL object
+       /* Create the GL object */
        glNewList(i + listBase, GL_COMPILE);
        glBitmap(bmapWidth, bmapHeight, 0.0, (GLfloat)metric.tmDescent,
                 (GLfloat)charWidth, 0.0,
                 bmap);
        glEndList();
-       // CheckGL();
+       /* CheckGL(); */
        
-       // Destroy the bmap object
+       /* Destroy the bmap object */
        DeleteObject(bitObject);
        
-       // Deallocate the bitmap data
+       /* Deallocate the bitmap data */
        free(bmap);
     }
     
-    // Destroy the DC
+    /* Destroy the DC */
     VERIFY(DeleteDC(bitDevice));
     
     free(dibInfo);
index 2eec188912e28a425c77bf5212d97f4458aa192e..5b67439f0f2577f106e63491b698ff7b804132e0 100644 (file)
@@ -6,6 +6,7 @@
 #include "wmesadef.h"
 #include "colors.h"
 #include <GL/wmesa.h>
+#include <winuser.h>
 #include "context.h"
 #include "extensions.h"
 #include "framebuffer.h"
@@ -114,7 +115,7 @@ static void wmSetPixelFormat(WMesaFramebuffer pwfb, HDC hDC)
 {
     pwfb->cColorBits = GetDeviceCaps(hDC, BITSPIXEL);
 
-    // Only 16 and 32 bit targets are supported now
+    /* Only 16 and 32 bit targets are supported now */
     assert(pwfb->cColorBits == 0 ||
           pwfb->cColorBits == 16 || 
           pwfb->cColorBits == 32);
@@ -1171,7 +1172,7 @@ WMesaContext WMesaCreateContext(HDC hDC,
     /* I do not understand this contributed code */
     /* Support memory and device contexts */
     if(WindowFromDC(hDC) != NULL) {
-       c->hDC = GetDC(WindowFromDC(hDC)); // huh ????
+       c->hDC = GetDC(WindowFromDC(hDC)); /* huh ???? */
     }
     else {
        c->hDC = hDC;
@@ -1404,6 +1405,7 @@ void WMesaSwapBuffers( HDC hdc )
  * table entries.  Hopefully, I'll find a better solution.  The
  * dispatch table generation scripts ought to be making these dummy
  * stubs as well. */
+#if !defined(__MINGW32__) || !defined(GL_NO_STDCALL)
 void gl_dispatch_stub_543(void){}
 void gl_dispatch_stub_544(void){}
 void gl_dispatch_stub_545(void){}
@@ -1471,3 +1473,4 @@ void gl_dispatch_stub_769(void){}
 void gl_dispatch_stub_770(void){}
 void gl_dispatch_stub_771(void){}
 
+#endif
index 97b063a8babbf2bc3d80e5c375e0c30eac49afd6..83a42e608241d2ddf0913278d08e0ab2039d11a4 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef WMESADEF_H
 #define WMESADEF_H
-
+#ifdef __MINGW32__
+#include <windows.h>
+#endif
 #include "context.h"
 
 
index 63dd002a41264bbc095b07a73415e7bba08fec9b..fd4127558a839e4d53bd550e971decc0a994798e 100644 (file)
@@ -92,7 +92,7 @@
 #endif
 
 #ifdef WGLAPI
-#undef WGLAPI
+#      undef WGLAPI
 #endif
 
 #if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__)) && !defined(BUILD_FOR_SNAP)
index 8a5dfdb4b80e3ccffd9ad89f49e69aec0a61690f..3ae56c8b0b64ba66c70ec00833945f398228b43f 100644 (file)
@@ -575,7 +575,11 @@ _mesa_ffs(int i)
  *          if no bits set.
  */
 int
+#ifdef __MINGW32__
+_mesa_ffsll(long val)
+#else
 _mesa_ffsll(long long val)
+#endif
 {
 #ifdef ffsll
    return ffsll(val);
index 9be8014a131388aa70f81c8b79f15d8d9dca6b65..ebdfc452a7aa838ef845126c6094584dda7260d5 100644 (file)
@@ -700,7 +700,11 @@ extern int
 _mesa_ffs(int i);
 
 extern int
+#ifdef __MINGW32__
+_mesa_ffsll(long i);
+#else
 _mesa_ffsll(long long i);
+#endif
 
 extern unsigned int
 _mesa_bitcount(unsigned int n);
index 58be1f46e570513a23febfce0bb531ce8f31cca2..7bf8808767002b6d40aca00d3a931c2c24b1376d 100644 (file)
@@ -83,7 +83,7 @@ _mesa_CreateShader(GLenum type)
 }
 
 
-GLhandleARB APIENTRY
+GLhandleARB GLAPIENTRY
 _mesa_CreateShaderObjectARB(GLenum type)
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -99,7 +99,7 @@ _mesa_CreateProgram(void)
 }
 
 
-GLhandleARB APIENTRY
+GLhandleARB GLAPIENTRY
 _mesa_CreateProgramObjectARB(void)
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -319,7 +319,7 @@ _mesa_GetUniformivARB(GLhandleARB program, GLint location, GLint * params)
 
 
 #if 0
-GLint APIENTRY
+GLint GLAPIENTRY
 _mesa_GetUniformLocation(GLuint program, const GLcharARB *name)
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -336,7 +336,7 @@ _mesa_GetHandleARB(GLenum pname)
 }
 
 
-GLint APIENTRY
+GLint GLAPIENTRY
 _mesa_GetUniformLocationARB(GLhandleARB programObj, const GLcharARB *name)
 {
    GET_CURRENT_CONTEXT(ctx);
index 411d51cfcc60c066b92b02fdaf9d97b0ff81b96a..b6991f45ed85c416128b2640cd97c059f4767b8d 100644 (file)
@@ -302,7 +302,12 @@ const struct gl_texture_format _mesa_texformat_rgba_fxt1 = {
 
 #define FX64_NATIVE 1
 
+#ifdef __MINGW32__
+typedef unsigned long Fx64;
+#else
 typedef unsigned long long Fx64;
+#endif
+
 
 #define FX64_MOV32(a, b) a = b
 #define FX64_OR32(a, b)  a |= b