Freeglut windows 64 version supported

This commit is contained in:
Junggon Kim 2013-11-28 15:56:51 -08:00
parent d7d030a863
commit 0967f32369
10 changed files with 926 additions and 913 deletions

View File

@ -1,7 +1,8 @@
freeglut 2.6.0-3.mp for MSVC freeglut 2.8.0-1.mp for MSVC
This package contains a freeglut import library, headers, and a Windows DLL, This package contains freeglut import libraries, headers, and Windows DLLs.
allowing GLUT applications to be compiled on Windows using Microsoft Visual C++. These allow 32 and 64 bit GLUT applications to be compiled on Windows using
Microsoft Visual C++.
For more information on freeglut, visit http://freeglut.sourceforge.net/. For more information on freeglut, visit http://freeglut.sourceforge.net/.
@ -12,17 +13,16 @@ Create a folder on your PC which is readable by all users, for example
“C:\Program Files\Common Files\MSVC\freeglut\” on a typical Windows system. Copy “C:\Program Files\Common Files\MSVC\freeglut\” on a typical Windows system. Copy
the “lib\” and “include\” folders from this zip archive to that location. the “lib\” and “include\” folders from this zip archive to that location.
The freeglut DLL should either be placed in the same folder as your application, The appropriate freeglut DLL can either be placed in the same folder as your
or can be installed in a system-wide folder which appears in your %PATH% application, or can be installed in a system-wide folder which appears in your
environment variable. On a 32 bit Windows system this is typically %PATH% environment variable. Be careful not to mix the 32 bit DLL up with the 64
“C:\Windows\System32\”, and on a 64 bit Windows system this is typically bit DLL, as they are not interchangeable.
“C:\Windows\SysWOW64\”.
Compiling Applications Compiling 32 bit Applications
To create a freeglut application, create a new Win32 C++ project in MSVC. From To create a 32 bit freeglut application, create a new Win32 C++ project in MSVC.
the “Win32 Application Wizard”, choose a “Windows application”, check the From the “Win32 Application Wizard”, choose a “Windows application”, check the
“Empty project” box, and submit. “Empty project” box, and submit.
Youll now need to configure the compiler and linker settings. Open up the Youll now need to configure the compiler and linker settings. Open up the
@ -36,7 +36,7 @@ freeglut include folder appears above all other GLUT include folders.
Now open up the “general” section under “Linker”, and configure the “lib\” Now open up the “general” section under “Linker”, and configure the “lib\”
folder you created above as an “Additional Library Directory”. A freeglut folder you created above as an “Additional Library Directory”. A freeglut
application depends on the import libraries “freeglut.lib” and “opengl32.lib”, application depends on the import libraries “freeglut.lib” and “opengl32.lib”,
which can be configured under the “Input” section, however it shouldnt be which can be configured under the “Input” section. However, it shouldnt be
necessary to explicitly state these dependencies, since the freeglut headers necessary to explicitly state these dependencies, since the freeglut headers
handle this for you. Now open the “Advanced” section, and enter “mainCRTStartup” handle this for you. Now open the “Advanced” section, and enter “mainCRTStartup”
as the “Entry Point” for your application. This is necessary because GLUT as the “Entry Point” for your application. This is necessary because GLUT
@ -53,6 +53,16 @@ or provide your users with some method of obtaining it if they don
have it! have it!
Compiling 64 bit Applications
Building 64 bit applications is almost identical to building 32 bit
applications. When you use the configuration manager to add the x64 platform,
its easiest to copy the settings from the Win32 platform. If you do so, its
then only necessary to change the “Additional Include Directory” configuration
so that it references the directory containing the 64 bit import library rather
than the 32 bit one.
Problems? Problems?
If you have problems using these packages (runtime errors etc.), please contact If you have problems using these packages (runtime errors etc.), please contact
@ -65,32 +75,15 @@ bug report or a patch.
Changelog Changelog
20100122: Release 2.6.0-3.mp 20120115: Release 2.8.0-1.mp
• Rebuilt the DLL with a minimum OS version of 4.00, so it can work under • First 2.8.0 MSVC release. Ive built the package using Visual Studio 2010,
Windows NT 4 and Windows 98. Previously it required at least Windows 2000.
2009-12-22: Release 2.6.0-2.mp
• Updated documentation to take into account the fact that 32 bit DLLs should
be placed in the “SysWOW64” folder on 64 bit Windows versions, rather than
“System32”.
• Some parts of the documentation rewritten to (hopefully) be easier to
follow.
• Updated the “freeglut_std.h” file to stay aligned with my MinGW package.
There were some MinGW cross-compilation issues under Linux related with the
fact that the #include of “Windows.h” didnt match the case of the header
file “windows.h”.
2009-11-29: Release 2.6.0-1.mp
• First 2.6.0 MSVC release. Ive built the package using Visual Studio 2008,
and the only change Ive made is to the DLL version resource—Ive changed and the only change Ive made is to the DLL version resource—Ive changed
the description so that my MinGW and MSVC builds are distinguishable from the description so that my MinGW and MSVC builds are distinguishable from
each other (and other builds) using Windows Explorer. each other (and other builds) using Windows Explorer.
Martin Payne Martin Payne
20100122 20120115
http://www.transmissionzero.co.uk/ http://www.transmissionzero.co.uk/

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -38,6 +38,12 @@
#define GLUT_KEY_NUM_LOCK 0x006D #define GLUT_KEY_NUM_LOCK 0x006D
#define GLUT_KEY_BEGIN 0x006E #define GLUT_KEY_BEGIN 0x006E
#define GLUT_KEY_DELETE 0x006F #define GLUT_KEY_DELETE 0x006F
#define GLUT_KEY_SHIFT_L 0x0070
#define GLUT_KEY_SHIFT_R 0x0071
#define GLUT_KEY_CTRL_L 0x0072
#define GLUT_KEY_CTRL_R 0x0073
#define GLUT_KEY_ALT_L 0x0074
#define GLUT_KEY_ALT_R 0x0075
/* /*
* GLUT API Extension macro definitions -- behaviour when the user clicks on an "x" to close a window * GLUT API Extension macro definitions -- behaviour when the user clicks on an "x" to close a window
@ -121,6 +127,7 @@ FGAPI void FGAPIENTRY glutExit ( void );
* Window management functions, see freeglut_window.c * Window management functions, see freeglut_window.c
*/ */
FGAPI void FGAPIENTRY glutFullScreenToggle( void ); FGAPI void FGAPIENTRY glutFullScreenToggle( void );
FGAPI void FGAPIENTRY glutLeaveFullScreen( void );
/* /*
* Window-specific callback functions, see freeglut_callbacks.c * Window-specific callback functions, see freeglut_callbacks.c
@ -166,6 +173,17 @@ FGAPI void FGAPIENTRY glutSolidCylinder( GLdouble radius, GLdouble height, GL
typedef void (*GLUTproc)(); typedef void (*GLUTproc)();
FGAPI GLUTproc FGAPIENTRY glutGetProcAddress( const char *procName ); FGAPI GLUTproc FGAPIENTRY glutGetProcAddress( const char *procName );
/*
* Multi-touch/multi-pointer extensions
*/
#define GLUT_HAS_MULTI 1
FGAPI void FGAPIENTRY glutMultiEntryFunc( void (* callback)( int, int ) );
FGAPI void FGAPIENTRY glutMultiButtonFunc( void (* callback)( int, int, int, int, int ) );
FGAPI void FGAPIENTRY glutMultiMotionFunc( void (* callback)( int, int, int ) );
FGAPI void FGAPIENTRY glutMultiPassiveFunc( void (* callback)( int, int, int ) );
/* /*
* Joystick functions, see freeglut_joystick.c * Joystick functions, see freeglut_joystick.c
*/ */
@ -196,6 +214,12 @@ FGAPI void FGAPIENTRY glutInitContextVersion( int majorVersion, int minorVers
FGAPI void FGAPIENTRY glutInitContextFlags( int flags ); FGAPI void FGAPIENTRY glutInitContextFlags( int flags );
FGAPI void FGAPIENTRY glutInitContextProfile( int profile ); FGAPI void FGAPIENTRY glutInitContextProfile( int profile );
/* to get the typedef for va_list */
#include <stdarg.h>
FGAPI void FGAPIENTRY glutInitErrorFunc( void (* vError)( const char *fmt, va_list ap ) );
FGAPI void FGAPIENTRY glutInitWarningFunc( void (* vWarning)( const char *fmt, va_list ap ) );
/* /*
* GLUT API macro definitions -- the display mode definitions * GLUT API macro definitions -- the display mode definitions
*/ */

View File

@ -43,7 +43,7 @@
*/ */
/* Define FREEGLUT_LIB_PRAGMAS to 1 to include library /* Define FREEGLUT_LIB_PRAGMAS to 1 to include library
* pragmas or to 1 to exclude library pragmas. * pragmas or to 0 to exclude library pragmas.
* The default behavior depends on the compiler/platform. * The default behavior depends on the compiler/platform.
*/ */
# ifndef FREEGLUT_LIB_PRAGMAS # ifndef FREEGLUT_LIB_PRAGMAS
@ -57,19 +57,15 @@
# ifndef WIN32_LEAN_AND_MEAN # ifndef WIN32_LEAN_AND_MEAN
# define WIN32_LEAN_AND_MEAN 1 # define WIN32_LEAN_AND_MEAN 1
# endif # endif
# define NOMINMAX # ifndef NOMINMAX
# define NOMINMAX
# endif
# include <windows.h> # include <windows.h>
/* Windows static library */ /* Windows static library */
# ifdef FREEGLUT_STATIC # ifdef FREEGLUT_STATIC
# define FGAPI #error Static linking is not supported with this build. Please remove the FREEGLUT_STATIC preprocessor directive, or download the source code from http://freeglut.sf.net/ and build against that.
# define FGAPIENTRY
/* Link with Win32 static freeglut lib */
# if FREEGLUT_LIB_PRAGMAS
# pragma comment (lib, "freeglut_static.lib")
# endif
/* Windows shared library (DLL) */ /* Windows shared library (DLL) */
# else # else

Binary file not shown.

Binary file not shown.