📄 glut.h
字号:
#ifndef __glut_h__#define __glut_h__/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996. *//* This program is freely distributable without licensing fees and is provided without guarantee or warrantee expressed or implied. This program is -not- in the public domain. */#if defined(WIN32)#include <windows.h>#pragma warning (disable:4244) /* disable bogus conversion warnings */#endif#include <GL/gl.h>#include <GL/glu.h>/* define APIENTRY and CALLBACK to null string if we aren't on Win32 */#if !defined(WIN32)#define APIENTRY#define CALLBACK#endif#ifdef __cplusplusextern "C" {#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 (NOT FINALIZED!).**/#ifndef GLUT_API_VERSION /* allow this to be overriden */#define GLUT_API_VERSION 3#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.**/#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */#define GLUT_XLIB_IMPLEMENTATION 12#endif/* Display mode bit masks. */#define GLUT_RGB 0#define GLUT_RGBA GLUT_RGB#define GLUT_INDEX 1#define GLUT_SINGLE 0#define GLUT_DOUBLE 2#define GLUT_ACCUM 4#define GLUT_ALPHA 8#define GLUT_DEPTH 16#define GLUT_STENCIL 32#if (GLUT_API_VERSION >= 2)#define GLUT_MULTISAMPLE 128#define GLUT_STEREO 256#endif#if (GLUT_API_VERSION >= 3)#define GLUT_LUMINANCE 512#endif/* Mouse buttons. */#define GLUT_LEFT_BUTTON 0#define GLUT_MIDDLE_BUTTON 1#define GLUT_RIGHT_BUTTON 2/* Mouse button state. */#define GLUT_DOWN 0#define GLUT_UP 1#if (GLUT_API_VERSION >= 2)/* function keys */#define GLUT_KEY_F1 1#define GLUT_KEY_F2 2#define GLUT_KEY_F3 3#define GLUT_KEY_F4 4#define GLUT_KEY_F5 5#define GLUT_KEY_F6 6#define GLUT_KEY_F7 7#define GLUT_KEY_F8 8#define GLUT_KEY_F9 9#define GLUT_KEY_F10 10#define GLUT_KEY_F11 11#define GLUT_KEY_F12 12/* directional keys */#define GLUT_KEY_LEFT 100#define GLUT_KEY_UP 101#define GLUT_KEY_RIGHT 102#define GLUT_KEY_DOWN 103#define GLUT_KEY_PAGE_UP 104#define GLUT_KEY_PAGE_DOWN 105#define GLUT_KEY_HOME 106#define GLUT_KEY_END 107#define GLUT_KEY_INSERT 108#endif/* Entry/exit state. */#define GLUT_LEFT 0#define GLUT_ENTERED 1/* Menu usage state. */#define GLUT_MENU_NOT_IN_USE 0#define GLUT_MENU_IN_USE 1/* Visibility state. */#define GLUT_NOT_VISIBLE 0#define GLUT_VISIBLE 1/* Window status state. */#define GLUT_HIDDEN 0#define GLUT_FULLY_RETAINED 1#define GLUT_PARTIALLY_RETAINED 2#define GLUT_FULLY_COVERED 3/* Color index component selection values. */#define GLUT_RED 0#define GLUT_GREEN 1#define GLUT_BLUE 2/* Layers for use. */#define GLUT_NORMAL 0#define GLUT_OVERLAY 1#if defined(WIN32)/* Stroke font constants (use these in GLUT program). */#define GLUT_STROKE_ROMAN ((void*)0)#define GLUT_STROKE_MONO_ROMAN ((void*)1)/* Bitmap font constants (use these in GLUT program). */#define GLUT_BITMAP_9_BY_15 ((void*)2)#define GLUT_BITMAP_8_BY_13 ((void*)3)#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4)#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5)#if (GLUT_API_VERSION >= 3)#define GLUT_BITMAP_HELVETICA_10 ((void*)6)#define GLUT_BITMAP_HELVETICA_12 ((void*)7)#define GLUT_BITMAP_HELVETICA_18 ((void*)8)#endif#else/* Stroke font opaque addresses (use constants instead in source code). */extern void *glutStrokeRoman;extern void *glutStrokeMonoRoman;/* Stroke font constants (use these in GLUT program). */#define GLUT_STROKE_ROMAN (&glutStrokeRoman)#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman)/* Bitmap font opaque addresses (use constants instead in source code). */extern void *glutBitmap9By15;extern void *glutBitmap8By13;extern void *glutBitmapTimesRoman10;extern void *glutBitmapTimesRoman24;extern void *glutBitmapHelvetica10;extern void *glutBitmapHelvetica12;extern void *glutBitmapHelvetica18;/* Bitmap font constants (use these in GLUT program). */#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15)#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13)#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10)#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24)#if (GLUT_API_VERSION >= 3)#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10)#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12)#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18)#endif#endif/* glutGet parameters. */#define GLUT_WINDOW_X 100#define GLUT_WINDOW_Y 101#define GLUT_WINDOW_WIDTH 102#define GLUT_WINDOW_HEIGHT 103#define GLUT_WINDOW_BUFFER_SIZE 104#define GLUT_WINDOW_STENCIL_SIZE 105#define GLUT_WINDOW_DEPTH_SIZE 106#define GLUT_WINDOW_RED_SIZE 107#define GLUT_WINDOW_GREEN_SIZE 108#define GLUT_WINDOW_BLUE_SIZE 109#define GLUT_WINDOW_ALPHA_SIZE 110#define GLUT_WINDOW_ACCUM_RED_SIZE 111#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114#define GLUT_WINDOW_DOUBLEBUFFER 115#define GLUT_WINDOW_RGBA 116#define GLUT_WINDOW_PARENT 117#define GLUT_WINDOW_NUM_CHILDREN 118#define GLUT_WINDOW_COLORMAP_SIZE 119#if (GLUT_API_VERSION >= 2)#define GLUT_WINDOW_NUM_SAMPLES 120#define GLUT_WINDOW_STEREO 121#endif#if (GLUT_API_VERSION >= 3)#define GLUT_WINDOW_CURSOR 122#endif#define GLUT_SCREEN_WIDTH 200#define GLUT_SCREEN_HEIGHT 201#define GLUT_SCREEN_WIDTH_MM 202#define GLUT_SCREEN_HEIGHT_MM 203#define GLUT_MENU_NUM_ITEMS 300#define GLUT_DISPLAY_MODE_POSSIBLE 400#define GLUT_INIT_WINDOW_X 500#define GLUT_INIT_WINDOW_Y 501
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -