glut32bit和64bit版
资源内容介绍
glut的32位和64位版,找了好久才找到的。这里面放了debug和release两种格式,请选择使用。 #ifndef __glut_h__#define __glut_h__#if defined(_WIN32)# if 0 # define WIN32_LEAN_AND_MEAN# include <windows.h># else # ifndef APIENTRY# define GLUT_APIENTRY_DEFINED# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) || defined(__LCC__)# define APIENTRY __stdcall# else# define APIENTRY# endif# endif # ifndef CALLBACK# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) || defined(__LCC__)# define CALLBACK __stdcall# else# define CALLBACK# endif# endif # if defined( __LCC__ )# undef WINGDIAPI# define WINGDIAPI __stdcall# else # ifndef WINGDIAPI# define GLUT_WINGDIAPI_DEFINED# define WINGDIAPI __declspec(dllimport)# endif# endif # ifndef _WCHAR_T_DEFINEDtypedef unsigned short wchar_t;# define _WCHAR_T_DEFINED# endif# endif# if !defined(GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA)# pragma comment (lib, "winmm.lib") # ifdef GLUT_USE_SGI_OPENGL# pragma comment (lib, "opengl.lib") # pragma comment (lib, "glu.lib") # pragma comment (lib, "glut.lib") # else# pragma comment (lib, "opengl32.lib") # pragma comment (lib, "glu32.lib") # pragma comment (lib, "glut32.lib") # endif# endif# ifndef GLUT_NO_WARNING_DISABLE# pragma warning (disable:4244) # pragma warning (disable:4305) # endif/* Win32 has an annoying issue where there are multiple C run-time libraries (CRTs). If the executable is linked with a different CRT from the GLUT DLL, the GLUT DLL will not share the same CRT static data seen by the executable. In particular, atexit callbacks registered in the executable will not be called if GLUT calls its (different) exit routine). GLUT is typically built with the "/MD" option (the CRT with multithreading DLL support), but the Visual C++ linker default is "/ML" (the single threaded CRT). One workaround to this issue is requiring users to always link with the same CRT as GLUT is compiled with. That requires users supply a non-standard option. GLUT 3.7 has its own built-in workaround where the executable's "exit" function pointer is covertly passed to GLUT. GLUT then calls the executable's exit function pointer to ensure that any "atexit" calls registered by the application are called if GLUT needs to exit. Note that the __glut*WithExit routines should NEVER be called directly. To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */# if !defined(_MSC_VER) && !defined(__cdecl) # define __cdecl# define GLUT_DEFINED___CDECL# endif# ifndef _CRTIMP# ifdef _NTSDK # define _CRTIMP# else # ifdef _DLL# define _CRTIMP __declspec(dllimport)# else# define _CRTIMP# endif# endif# define GLUT_DEFINED__CRTIMP# endif# ifdef GLUT_BUILDING_LIB# define GLUTAPI __declspec(dllexport)# else# ifdef _DLL# define GLUTAPI __declspec(dllimport)# else# define GLUTAPI extern# endif# endif# define GLUTCALLBACK __cdecl#endif #include <GL/gl.h>#include <GL/glu.h>#ifdef __cplusplusextern "C" {#endif#if defined(_WIN32)# ifndef GLUT_BUILDING_LIBextern _CRTIMP void __cdecl exit(int);# endif#else# define APIENTRY# define GLUT_APIENTRY_DEFINED# define CALLBACK# define GLUTAPI extern# define GLUTCALLBACKextern void exit(int);#endif/** GLUT API revision history: GLUT_API_VERSION is updated to reflect incompatible GLUT API changes (interface changes, semantic changes, deletions, or additions). GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, extension. Supports new input devices like tablet, dial and button box, and Spaceball. Easy to query OpenGL extensions. GLUT_API_VERSION=3 glutMenuStatus added. GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!).**/#ifndef GLUT_API_VERSION #define GLUT_API_VERSION3#endif/** GLUT implementation revision history: GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT API revisions and implementation revisions (ie, bug fixes). GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of GLUT Xlib-based implementation. 11/29/94 GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of GLUT Xlib-based implementation providing GLUT version 2 interfaces. GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner and video resize. 1/3/97 GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa <GL/glut.h>**/#ifndef GLUT_XLIB_IMPLEMENTATION #define GLUT_XLIB_IMPLEMENTATION15#endif#define GLUT_RGB0#define GLUT_RGBAGL