锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
int glutVideoResizeGet(GLenum param);
榪斿洖glut瑙嗛澶у皬璋冩暣鐨勪俊鎭?
鍙傛暟:
param:
GLUT_VIDEO_RESIZE_POSSIBLE:濡傛灉搴曞眰鏀寔瑙嗛澶у皬璋冩暣,鍒欒繑鍥為潪0鍊?鍚﹀垯榪斿洖0.濡傛灉榪斿洖0,鍒欏叾浠栬棰戝ぇ灝忚皟鏁村嚱鏁扮殑璋冪敤灝嗕笉璧蜂綔鐢?
GLUT_VIDEO_RESIZE_IN_USE
GLUT_VIDEO_RESIZE_X_DELTA
GLUT_VIDEO_RESIZE_Y_DELTA
GLUT_VIDEO_RESIZE_WIDTH_DELTA
GLUT_VIDEO_RESIZE_HEIGHT_DELTA
GLUT_VIDEO_RESIZE_X
GLUT_VIDEO_RESIZE_Y
GLUT_VIDEO_RESIZE_WIDTH
GLUT_VIDEO_RESIZE_HEIGHT
鍚庨潰鍑犱釜甯擱噺鍊煎湪緗戜笂娌℃湁鎼滃埌瑙i噴.
//*******************************************************************************************
void glutSetupVideoResizing(void);
void glutStopVideoResizing(void);
void glutVideoResize(int x, int y, int width, int height);
void glutVideoPan(int x, int y, int width, int height);
鎴戞妸glut鐨勫ご鏂囦歡涓殑鎵鏈夊嚱鏁伴兘鏁寸悊浜嗕竴閬?鍙彲鎯?video resize sub-API涓殑鍑犱釜鍑芥暟緗戜笂閮芥病鏈夊叿浣撶殑浠嬬粛,鏈彍楦熶篃鏃犺兘涓哄姏,騫稿ソ榪欎簺鍑芥暟閮戒笉鏄父鐢ㄧ殑,鎴戞兂涓鑸敤涓嶇潃.闄や簡鍜岃棰戞湁鍏崇殑API,鍓嶉潰鍑犱釜甯栧瓙鐨勫唴瀹瑰凡緇忓熀鏈妸glut鐨勬墍鏈夊嚱鏁伴兘榪囦簡涓閬?鏈笓棰樹篃灝辯畻鏄畬鎴愪簡,浠ュ悗濡傛灉鎵懼埌鐩稿叧璧勬枡,浼氭妸榪欓噷鐨勮ˉ涓?涔熷笇鏈涜揪浜鴻兘澶熸寚鐐逛竴浜?
]]>
//*******************************************************************************************
void glutGameModeString(const char *string);
閫氳繃涓涓瓧絎︿覆瀵筭ame mode(娓告垙妯″紡,涔熷嵆鍏ㄥ睆妯″紡)榪涜璁劇疆,鍗沖灞忓箷榪涜璁劇疆.
鍙傛暟:
string:涓涓寚鍚戝瓧絎︿覆鐨勬寚閽?瀛楃涓茬殑鍐呭鍗蟲槸瀵瑰睆騫曠殑璁劇疆.瀛楃涓茬殑鏍煎紡濡備笅鎵紺?
"W*H"
"W*H:Bpp"
"W*H@Rr"
"W*H:Bpp@Rr"
"@Rr"
":Bpp"
"Bpp:@Rr"
(娉?W:灞忓箷瀹藉害,浠ュ儚绱犲崟浣?H:灞忓箷楂樺害,浠ュ儚绱犱負鍗曚綅;Bpp:姣忎釜鍍忕礌鐨勫唴瀛樺ぇ灝?浣嶆暟);Rr:灞忓箷鐨勫埛鏂扮巼.)
渚嬪瓙:
1.濡傛灉鎴戜滑鍙叧蹇冨睆騫曞ぇ灝?800*600)鑰屼笉鍏沖績姣忎釜鍍忕礌鐨勫唴瀛樺崰鐢ㄥ拰鍒鋒柊棰戠巼,鍙互鍐欐垚:
glutGameModeString("800*600");
2.濡傛灉鍙兂鎶婃瘡涓儚绱犵殑鍐呭瓨鍗犵敤璁劇疆鎴?2浣?鍙互鍐欐垚:
glutGameModeString(":32");
3.濡傛灉鍙兂鎶婂埛鏂扮巼璁劇疆鎴?5璧吂,鍙互鍐欐垚:
glutGameModeString("@75");
4.濡傛灉鍓嶄笁縐嶆儏鍐甸兘鑰冭檻,鍙互鍐欐垚:
glutGameModeString("800*600:32@75");
鍏朵粬鎯呭喌鎸夌収涓婇潰緇欏嚭鐨勫瓧絎︿覆鏍煎紡鍐欏嚭鍗沖彲.
娉?
1.榪欎釜鍑芥暟鍙槸瀵圭‖浠剁殑璇鋒眰,濡傛灉璁劇疆涓嶅悎娉?鍒欏皢琚拷鐣?
2.榪欎釜鍑芥暟騫朵笉榪斿洖閿欒鍊?濡傛灉瑕佽幏寰楅敊璇俊鎭?鍒欒鐢╣lutGameModeGet()鍑芥暟.
//*******************************************************************************************
int glutEnterGameMode(void);
榪涘叆鐩稿簲鐨刧ame mode,鍗寵glutGameModeString()鐨勮緗敓鏁?
//*******************************************************************************************
void glutLeaveGameMode(void);
紱誨紑glutGameModeString()璁劇疆鐨刧ame mode.
//*******************************************************************************************
int glutGameModeGet(GLenum mode);
媯嫻嬭緗殑妯″紡鏄惁鏈夋晥
鍙傛暟:
mode:
GLUT_GAME_MODE_ACTIVE:濡傛灉紼嬪簭榪愯鍦╣ame mode,鍒欒繑鍥為潪0鍊?濡傛灉榪愯鍦ㄧ獥鍙fā寮?鍒欒繑鍥?.
GLUT_GAME_MODE_POSSIBLE:鍒ゆ柇glutAameModeString()鐨勮緗槸鍚︽湁鏁?濡傛灉鏈夋晥鍒欒繑鍥為潪0鍊?鍚﹀垯榪斿洖0.浣嗘槸glut鎵嬪唽涓湁涓涓鍛?鍗充嬌榪欎釜璁劇疆鏄湁鏁堢殑,涔熶笉鑳戒繚璇佸睆騫曡緗彲浠ヤ竴瀹氭垚鍔熺敓鏁?
GLUT_GAME_MODE_WIDTH:榪斿洖灞忓箷鐨勫搴?
GLUT_GAME_MODE_HEIGHT:榪斿洖灞忓箷鐨勯珮搴?
GLUT_GAME_MODE_PIXEL_DEPTH:榪斿洖褰撳墠妯″紡涓嬫瘡涓儚绱犳墍鍗犵敤鐨勫唴瀛樼┖闂?浣嶆暟).
GLUT_GAME_MODE_REFRESH_RATE:榪斿洖瀹為檯鐨勫埛鏂扮巼(鍗曚綅璧吂).
GLUT_GAME_MODE_DISPLAY_CHANGED:姝e鍓嶉潰鎵璇?涓嶈兘淇濊瘉灞忓箷鏄劇ず妯″紡涓瀹氭牴鎹緗彂鐢熸敼鍙?榪欎釜甯擱噺鍙互鐢ㄦ潵嫻嬭瘯鏄惁鐪熺殑榪涘叆浜唃ame mode(鍏堝墠鏄獥鍙fā寮忎笅鐨勬儏鍐典笅),濡傛灉鍏堝墠宸茬粡鏄痝ame mode,鍒欏彲浠ョ敤鏉ユ祴璇曡緗槸鍚﹀彂鐢熸敼鍙?榪斿洖闈?鍊艱〃紺鴻繘鍏ヤ簡game mode鎴栬緗凡緇忓彂鐢熸敼鍙?鍚﹀垯榪斿洖0.
]]>
紜鏄惁蹇界暐鑷姩鐨勮繛緇嚮閿?鍗沖綋涓涓敭琚暱鏃墮棿鎸変笅涓嶆澗寮鏃?鍒ゆ柇鍏朵負涓嬈″嚮閿垨鏄嬈″嚮閿?.鍙褰撳墠紿楀彛鏈夋晥.瀵筭lutKeyboardFunc()鍜実lutSpecialFunc()涓や釜鍥炶皟鍑芥暟璧蜂綔鐢?
鍙傛暟:
ignore:(鐩稿綋浜庡竷灝斿?
0 :涓嶅拷鐣?鍗寵涓烘槸榪炵畫鍑婚敭
闈?:蹇界暐,鍗寵涓烘槸涓嬈″嚮閿?br>
//*******************************************************************************************
void glutSetKeyRepeat(int repeatMode);
璁劇疆鑷姩榪炵畫鍑婚敭妯″紡鐨勭姸鎬?br>
鍙傛暟:repeatMode:
GLUT_KEY_REPEAT_OFF :鍏抽棴鑷姩榪炵畫鍑婚敭
GLUT_KEY_REPEAT_ON :鎵撳紑鑷姩榪炵畫鍑婚敭
GLUT_KEY_REPEAT_DEFAULT:灝嗚嚜鍔ㄨ繛緇嚮閿ā寮忛噸緗負榛樿鐘舵?br>娉ㄦ剰:榪欎釜鍑芥暟宸ヤ綔鍦ㄥ叏灞鑼冨洿鍐?鍗沖畠浼氬獎鍝嶆墍鏈夌獥鍙h屼笉浠呬粎鏄綋鍓嶇獥鍙?鎵浠ュ綋鍏抽棴浜嗚嚜鍔ㄨ繛緇嚮閿ā寮忓悗,紜繚鍦ㄥ叧闂綋鍓嶇▼搴忛攢姣佸墠,灝嗚嚜鍔ㄨ繛緇嚮閿ā寮忛噸緗負榛樿鐘舵?
榪欎釜鍑芥暟鐨勫畨鍏ㄦт笉濂?鏈濂戒嬌鐢ㄥ畨鍏ㄦч珮鐨刧lutIgnoreKeyRepeat(),灝介噺灝嗘搷浣滈檺鍒跺湪褰撳墠紿楀彛,鑰屼笉瑕佽交鏄撲嬌鐢ㄥ伐浣滃湪鍏ㄥ眬鐘舵佷笅鐨勫嚱鏁?
//*******************************************************************************************
void glutForceJoystickFunc(void);
寮哄埗璋冪敤褰撳墠紿楀彛娉ㄥ唽鐨勬搷綰墊潌鍥炶皟鍑芥暟glutJoystickFunc()涓嬈?
]]>
媯绱㈡寚瀹氱殑GLUT鐘舵?br>
鍙傛暟:
state:鎸囧畾瑕佹绱㈢殑鐘舵佺被鍨?涓轟互涓嬪父閲?
GLUT_WINDOW_X:褰撳墠紿楀彛鐨剎鍧愭爣,浠ュ儚绱犱負鍗曚綅.
GLUT_WINDOW_Y:褰撳墠紿楀彛鐨剏鍧愭爣,浠ュ儚绱犱負鍗曚綅.
GLUT_WINDOW_WIDTH:褰撳叾紿楀彛鐨勫搴?浠ュ儚绱犱負鍗曚綅.
GLUT_WINDOW_HEIGHT:褰撳墠紿楀彛鐨勯珮搴?浠ュ儚绱犱負鍗曚綅.
GLUT_WINDOW_BUFFER_SIZE:褰撳墠紿楀彛涓?棰滆壊鍒嗛噺鍗犵敤鐨勪綅鏁?鍗崇敤澶氬皯bit琛ㄧず棰滆壊鍒嗛噺.
GLUT_WINDOW_STENCIL_SIZE:褰撳墠紿楀彛涓?钂欐澘鍒嗛噺鍗犵敤鐨勪綅鏁?鍗崇敤澶氬皯bit琛ㄧず钂欐澘鍒嗛噺.
GLUT_WINDOW_DEPTH_SIZE:褰撳墠紿楀彛涓?娣卞害鍒嗛噺鍗犵敤鐨勪綅鏁?鍗崇敤澶氬皯bit琛ㄧず娣卞害鍒嗛噺.
GLUT_WINDOW_RED_SIZE:褰撳墠紿楀彛涓?綰㈣壊鍒嗛噺鍗犵敤鐨勪綅鏁?鍗崇敤澶氬皯bit琛ㄧず綰㈣壊鍒嗛噺.
GLUT_WINDOW_GREEN_SIZE:褰撳墠紿楀彛涓?緇胯壊鍒嗛噺鍗犵敤鐨勪綅鏁?鍗崇敤澶氬皯bit琛ㄧず緇胯壊鍒嗛噺.
GLUT_WINDOW_BLUE_SIZE:褰撳墠紿楀彛涓?钃濊壊鍒嗛噺鍗犵敤鐨勪綅鏁?鍗崇敤澶氬皯bit琛ㄧず钃濊壊鍒嗛噺.
GLUT_WINDOW_ALPHA_SIZE:褰撳墠紿楀彛涓?alpha鑹插垎閲忓崰鐢ㄧ殑浣嶆暟,鍗崇敤澶氬皯bit琛ㄧずalpha鑹插垎閲?
GLUT_WINDOW_ACCUM_RED_SIZE:褰撳墠紿楀彛绱Н緙撳瓨涓?綰㈣壊鍒嗛噺鍗犵敤鐨勪綅鏁?鍗崇敤澶氬皯bit琛ㄧず綰㈣壊鍒嗛噺.
GLUT_WINDOW_ACCUM_GREEN_SIZE:褰撳墠紿楀彛绱Н緙撳瓨涓?緇胯壊鍒嗛噺鍗犵敤鐨勪綅鏁?鍗崇敤澶氬皯bit琛ㄧず緇胯壊鍒嗛噺.
GLUT_WINDOW_ACCUM_BLUE_SIZE:褰撳墠紿楀彛绱Н緙撳瓨涓?钃濊壊鍒嗛噺鍗犵敤鐨勪綅鏁?鍗崇敤澶氬皯bit琛ㄧず钃濊壊鍒嗛噺.
GLUT_WINDOW_ACCUM_ALPHA_SIZE:褰撳墠紿楀彛绱Н緙撳瓨涓?alpha鑹插垎閲忓崰鐢ㄧ殑浣嶆暟,鍗崇敤澶氬皯bit琛ㄧずalpha鑹插垎閲?
GLUT_WINDOW_DOUBLEBUFFER:濡傛灉紿楀彛寮忓弻緙撳瓨妯″紡,榪斿洖1,鍚﹀垯榪斿洖0.
GLUT_WINDOW_RGBA:濡傛灉紿楀彛鏄疪GBA妯″紡,榪斿洖1,鍚﹀垯榪斿洖0.
GLUT_WINDOW_PARENT:鏌ヨ褰撳墠紿楀彛鐨勭埗紿楀彛涓暟,濡傛灉涓洪《灞傜獥鍙h繑鍥?.
GLUT_WINDOW_NUM_CHILDREN:鏌ヨ褰撳墠紿楀彛鐨勫瓙紿楀彛涓暟.
GLUT_WINDOW_NUM_SAMPLES:鏌ヨ澶氶噸閲囨牱鐨勯噰鏍風偣涓暟.
GLUT_WINDOW_STEREO:鏌ヨ鏄惁浣跨敤绔嬩綋妯″紡,鏄垯榪斿洖1,鍚﹀垯榪斿洖0.
GLUT_WINDOW_CURSOR:榪斿洖鍏夋爣鐨勬暣鏁版爣紺?
GLUT_SCREEN_HEIGHT:灞忓箷鐨勯珮搴?浠ュ儚绱犱負鍗曚綅.
GLUT_SCREEN_WIDTH:灞忓箷鐨勫搴?浠ュ儚绱犱負鍗曚綅.
GLUT_SCREEN_WIDTH_MM:灞忓箷鐨勫搴?浠ユ綾充負鍗曚綅.
GLUT_SCREEN_HEIGHT_MM:灞忓箷鐨勯珮搴?浠ユ綾充負鍗曚綅.
GLUT_MENU_NUM_ITEMS:鏌ヨ褰撳墠鑿滃崟鍖呭惈鐨勮彍鍗曢」鐨勪釜鏁?
GLUT_DISPLAY_MODE_POSSIBLE:鏌ヨ紿楀彛緋葷粺鏄惁鏀寔褰撳墠鐨勬樉紺烘ā寮?1琛ㄧず鏀寔,0琛ㄧず涓嶆敮鎸?
GLUT_INIT_DISPLAY_MODE:鍒濆紿楀彛鐨勬樉紺烘ā寮?
GLUT_INIT_WINDOW_X:鍒濆紿楀彛鐨剎鍧愭爣.
GLUT_INIT_WINDOW_Y:鍒濆紿楀彛鐨剏鍧愭爣.
GLUT_INIT_WINDOW_WIDTH:鍒濆紿楀彛鐨勫搴?
GLUT_INIT_WINDOW_HEIGHT:鍒濆紿楀彛鐨勯珮搴?
GLUT_ELAPSED_TIME:榪斿洖涓ゆ璋冪敤glutGet(GLUT_ELAPSED_TIME)鐨勬椂闂撮棿闅?鍗曚綅涓烘縐?榪斿洖鍊兼牴鎹煡璇㈢殑鍐呭榪斿洖鐩稿簲鐨勫?鏃犳晥鐨勭姸鎬佸悕榪斿洖-1.
GLUT_WINDOW_COLORMAP_SIZE:榪斿洖棰滆壊绱㈠紩琛ㄧ殑澶у皬.
//*******************************************************************************************
int glutDeviceGet(GLenum type);
媯绱㈣澶囦俊鎭?br>
鍙傛暟:
type:瑕佹绱㈢殑璁懼淇℃伅鐨勫悕瀛?涓轟互涓嬪父閲?
GLUT_HAS_KEYBOARD 濡傛灉閿洏鍙敤,榪斿洖闈?鍊?鍚﹀垯,榪斿洖0.
GLUT_HAS_MOUSE 濡傛灉榧犳爣鍙敤,榪斿洖闈?鍊?鍚﹀垯,榪斿洖0.
GLUT_NUM_MOUSE_BUTTONS 榪斿洖榧犳爣鏀寔鐨勬寜閿暟,濡傛灉榧犳爣涓嶅彲鐢?榪斿洖0,榪斿洖鍊?,琛ㄧず媯绱㈢殑璁懼涓嶅瓨鍦?闈?琛ㄧず璁懼鍙敤.
GLUT_HAS_SPACEBALL:濡傛灉spaceball鍙敤,榪斿洖闈?鍊?鍚﹀垯,榪斿洖0.
GLUT_HAS_DIAL_AND_BUTTON_BOX:濡傛灉鎷ㄥ彿鎸夐敭鐩掑彲鐢?榪斿洖闈?鍊?鍚﹀垯,榪斿洖0.
GLUT_HAS_TABLET:濡傛灉鍥懼艦鏉垮彲鐢?榪斿洖闈?鍊?鍚﹀垯,榪斿洖0.
GLUT_NUM_SPACEBALL_BUTTONS:榪斿洖spaceball鏀寔鐨勬寜閿暟,濡傛灉spaceball涓嶅瓨鍦?榪斿洖0.
GLUT_NUM_BUTTON_BOX_BUTTONS:榪斿洖鎷ㄥ彿鎸夐敭鐩掓敮鎸佺殑鎸夐敭鏁?濡傛灉鎷ㄥ彿鎸夐敭鐩掍笉瀛樺湪,榪斿洖0.
GLUT_NUM_DIALS:榪斿洖鎷ㄥ彿鎸夐敭鐩掓敮鎸佺殑鎷ㄥ彿鏁?濡傛灉鎷ㄥ彿鎸夐敭鐩掍笉瀛樺湪,榪斿洖0.
GLUT_NUM_TABLET_BUTTONS:榪斿洖鍥懼艦鏉挎敮鎸佺殑鎸夐敭鏁?濡傛灉鍥懼艦鏉夸笉瀛樺湪,榪斿洖0.
GLUT_DEVICE_IGNORE_KEY_REPEAT:濡傛灉褰撳墠紿楀彛琚緗垚鍏抽棴鑷姩閲嶅鎸夐敭,鍒欒繑鍥為潪0鍊?
GLUT_DEVICE_KEY_REPEAT:榪斿洖鑷姩閲嶅鎸夐敭鐨勮緗姸鎬?(璇存槑鏂囦歡涓婅鏄繑鍥炶繛緇嚮閿殑閫熺巼,鍏跺疄姝よ娉曟湁璇?)
GLUT_HAS_JOYSTICK:濡傛灉鎿嶇旱鏉嗗彲鐢?榪斿洖闈?鍊?鍚﹀垯,榪斿洖0.
GLUT_OWNS_JOYSTICK:濡傛灉glut璁や負宸茬粡鎴愬姛鑾峰緱鎿嶇旱鏉嗙殑浣跨敤鏉?鍒欒繑鍥為潪0鍊?鍚﹀垯,榪斿洖0.
GLUT_JOYSTICK_BUTTONS:榪斿洖鎿嶇旱鏉嗘敮鎸佺殑鎸夐敭鏁?濡傛灉鎿嶇旱鏉嗕笉瀛樺湪,榪斿洖0.
GLUT_JOYSTICK_AXES:榪斿洖鎿嶇旱鏉嗘敮鎸佺殑鎿嶇旱杞存暟,濡傛灉鎿嶇旱鏉嗕笉瀛樺湪,榪斿洖0.
GLUT_JOYSTICK_POLL_RATE:榪斿洖褰撳墠紿楀彛鎿嶇旱鏉嗚鎷夊姩鐨勯熺巼.
(娉?瀵規搷綰墊潌鐨勬煡璇㈤檺鍒跺湪鎿嶇旱鏉嗙殑鏁伴噺涓?;榧犳爣琚粯璁や負瀛樺湪,騫朵笖鍏舵寜閿暟榛樿鏄?.)
//******************************************************************************************
int glutExtensionSupported(const char *name);
鍒ゅ畾鏄惁鏀寔鐗瑰畾鐨凮penGL鎵╁睍
鍙傛暟:
extension:鎸囧畾瑕佹祴璇曠殑OpenGL鎵╁睍鐨勫悕縐?濡傛灉緇欏畾鎵╁睍鑾峰緱鏀寔,鍑芥暟榪斿洖闈?,鍚﹀垯榪斿洖0.
蹇呴』瑕佹湁涓涓湁鏁堢殑褰撳墠紿楀彛鏉ヨ皟鐢╣lutExtensionSupported().瀹冨彧榪斿洖OpenGL鎵╁睍淇℃伅,榪欐剰鍛崇潃紿楀彛緋葷粺渚濊禆鐨勬墿灞曚笉琚玤lutExtensionSupported()鍙嶆槧.
渚嬪瓙:
if(!glutExtensionSupported("GL_EXT_texture"))
{
fprintf(stderr, "Missing the texture extension!");
exit(1);
}
//******************************************************************************************
int glutGetModifiers(void);
榪斿洖緇勫悎鍔熻兘閿殑鐘舵?br>
榪斿洖鍊間負浠ヤ笅瀹氫箟鐨勫父閲?br> GLUT_ACTIVE_SHIFT:褰撴寜涓媠hift閿椂
GLUT_ACTIVE_CTRL:褰撴寜涓媍trl閿椂
GLUT_ACTIVE_ALT:褰撴寜涓媋lt閿椂
//******************************************************************************************
int glutLayerGet(GLenum type);
鏌ヨ灞炰簬褰撳墠紿楀彛鐨勯噸鍙犲眰鐨勭姸鎬?br>
鍙傛暟:
type:鏌ヨ鐨勯噸鍙犲眰鐘舵佸父閲?
GLUT_OVERLAY_POSSIBLE:鍦ㄧ粰瀹氱殑鍒濆鏄劇ず妯″紡涓?鑳藉惁涓哄綋鍓嶇獥鍙e垱寤洪噸鍙犲眰.濡傛灉鑳?榪斿洖1;濡傛灉涓嶈兘,榪斿洖0.
GLUT_LAYER_IN_USE:榪斿洖褰撳墠鐨勪嬌鐢ㄥ眰,涓篏LUT_NORMAL(浣跨敤姝e父鐨勯鑹插眰)鎴朑LUT_OVERLAY(浣跨敤閲嶅彔灞?.
GLUT_HAS_OVERLAY:鍒ゆ柇褰撳墠紿楀彛鏄惁鍒涘緩浜嗛噸鍙犲眰.
GLUT_NORMAL_DAMAGED:濡傛灉褰撳墠紿楀彛鐨勫浘鍍忓眰鍦ㄤ笂涓嬈℃樉紺哄洖璋冨嚱鏁拌皟鐢ㄥ悗宸茬粡鐮村潖,鍒欒繑鍥濼RUE.
GLUT_OVERLAY_DAMAGED:濡傛灉褰撳墠紿楀彛鐨勯噸鍙犲眰鍦ㄤ笂涓嬈℃樉紺哄洖璋冨嚱鏁拌皟鐢ㄥ悗宸茬粡鐮村潖,鍒欒繑鍥濼RUE.
GLUT_TRANSPARENT_INDEX:榪斿洖褰撳墠紿楀彛瑕嗙洊灞傜殑閫忔槑棰滆壊绱㈠紩鍊?濡傛灉娌℃湁瑕嗙洊灞傚垯榪斿洖-1.
]]>
娉ㄥ唽褰撳墠紿楀彛鐨勬樉紺哄洖璋冨嚱鏁?br>
鍙傛暟:
func:褰負void func()鐨勫嚱鏁?瀹屾垚鍏蜂綋鐨勭粯鍒舵搷浣?br>
榪欎釜鍑芥暟鍛婅瘔GLUT褰撶獥鍙e唴瀹瑰繀欏昏緇樺埗鏃?閭d釜鍑芥暟灝嗚璋冪敤.褰撶獥鍙f敼鍙樺ぇ灝忔垨鑰呬粠琚鐩栫殑鐘舵佷腑鎭㈠,鎴栬呯敱浜庤皟鐢╣lutPostRedisplay()鍑芥暟瑕佹眰GLUT鏇存柊鏃?鎵цfunc鍙傛暟鎸囧畾鐨勫嚱鏁?
//*******************************************************************************************
void glutReshapeFunc(void (*func)(int width, int height));
鎸囧畾褰撶獥鍙g殑澶у皬鏀瑰彉鏃惰皟鐢ㄧ殑鍑芥暟
鍙傛暟:
func:褰㈠void func(int width, int height)
澶勭悊紿楀彛澶у皬鏀瑰彉鐨勫嚱鏁?
width,height:涓虹獥鍙f敼鍙樺悗闀垮.
榪欎釜鍑芥暟紜畾涓涓洖璋冨嚱鏁?姣忓綋紿楀彛鐨勫ぇ灝忔垨褰㈢姸鏀瑰彉鏃?鍖呮嫭紿楀彛絎竴嬈″垱寤?,GLUT灝嗕細璋冪敤榪欎釜鍑芥暟,榪欎釜鍥炶皟鍑芥暟鎺ュ彈榪欎釜紿楀彛鏂扮殑闀垮浣滀負杈撳叆鍙傛暟.
//*******************************************************************************************
void glutKeyboardFunc(void (*func)(unsigned char key, int x, int y));
娉ㄥ唽褰撳墠紿楀彛鐨勯敭鐩樺洖璋冨嚱鏁?br>
鍙傛暟:
func:褰㈠void func(unsigned char key, int x, int y)
key:鎸夐敭鐨凙SCII鐮?br>x,y:褰撴寜涓嬮敭鏃墮紶鏍囩殑鍧愭爣,鐩稿浜庣獥鍙e乏涓婅,浠ュ儚绱犱負鍗曚綅
褰撴暡鍑婚敭鐩樻寜閿?闄や簡鐗規畩鎸夐敭,鍗砱lutSpecialFunc()涓鐞嗙殑鎸夐敭,璇﹁glutSpecialFunc())鏃惰皟鐢?
//******************************************************************************************
void glutMouseFunc(void (*func)(int button, int state, int x, int y));
娉ㄥ唽褰撳墠紿楀彛鐨勯紶鏍囧洖璋冨嚱鏁?br>
鍙傛暟:
func:褰㈠void func(int button, int state, int x, int y);
button:榧犳爣鐨勬寜閿?涓轟互涓嬪畾涔夌殑甯擱噺
GLUT_LEFT_BUTTON:榧犳爣宸﹂敭
GLUT_MIDDLE_BUTTON:榧犳爣涓敭
GLUT_RIGHT_BUTTON:榧犳爣鍙抽敭
state:榧犳爣鎸夐敭鐨勫姩浣?涓轟互涓嬪畾涔夌殑甯擱噺
GLUT_UP:榧犳爣閲婃斁
GLUT_DOWN:榧犳爣鎸変笅
x,y:榧犳爣鎸変笅寮?鍏夋爣鐩稿浜庣獥鍙e乏涓婅鐨勪綅緗?br>
褰撶偣鍑婚紶鏍囨椂璋冪敤.
//******************************************************************************************
void glutMotionFunc(void (*func)(int x, int y));
褰撻紶鏍囧湪紿楀彛涓寜涓嬪茍縐誨姩鏃惰皟鐢╣lutMotionFunc娉ㄥ唽鐨勫洖璋冨嚱鏁?br>
void glutPassiveMotionFunc(void (*func)(int x, int y));
褰撻紶鏍囧湪紿楀彛涓Щ鍔ㄦ椂璋冪敤glutPassiveMotionFunc娉ㄥ唽鐨勫洖璋冨嚱鏁?br>
鍙傛暟:
func:褰㈠void func(int x, int y);
x,y:榧犳爣鎸変笅寮?鍏夋爣鐩稿浜庣獥鍙e乏涓婅鐨勪綅緗?浠ュ儚绱犱負鍗曚綅
//*******************************************************************************************
void glutEntryFunc(void (*func)(int state));
璁劇疆榧犳爣鐨勮繘鍑虹獥鍙g殑鍥炶皟鍑芥暟
鍙傛暟:
func:褰㈠void func(int state);娉ㄥ唽鐨勯紶鏍囪繘鍑哄洖璋冨嚱鏁?br>state:榧犳爣鐨勮繘鍑虹姸鎬?涓轟互涓嬪父閲忎箣涓
GLUT_LEFT 榧犳爣紱誨紑紿楀彛
GLUT_RIGHT 榧犳爣榪涘叆紿楀彛
褰撶獥鍙e彇寰楃劍鐐規垨澶卞幓鐒︾偣鏃惰皟鐢ㄨ繖涓嚱鏁?褰撻紶鏍囪繘鍏ョ獥鍙e尯鍩熷茍鐐瑰嚮鏃?state涓篏LUT_RIGHT,褰撻紶鏍囩寮紿楀彛鍖哄煙鐐瑰嚮鍏朵粬紿楀彛鏃?state涓篏LUT_LEFT.
//******************************************************************************************
void glutVisibilityFunc(void (*func)(int state));
璁劇疆褰撳墠紿楀彛鐨勫彲瑙嗗洖璋冨嚱鏁?br>
鍙傛暟:
func:褰㈠void func(int state);鎸囧畾鐨勫彲瑙嗗洖璋冨嚱鏁?br>state:紿楀彛鐨勫彲瑙嗘?涓轟互涓嬪父閲?br> GLUT_NOT_VISIBLE 紿楀彛瀹屽叏涓嶅彲瑙?br> GLUT_VISIBLE 紿楀彛鍙鎴栭儴鍒嗗彲瑙?br>
榪欎釜鍑芥暟璁劇疆褰撳墠紿楀彛鐨勫彲瑙嗗洖璋冨嚱鏁?褰撶獥鍙g殑鍙鎬ф敼鍙樻椂,璇ョ獥鍙g殑鍙鍥炶皟鍑芥暟琚皟鐢?鍙紿楀彛涓殑浠諱綍涓涓儚绱犳槸鍙鐨?鎴栬呬粬鐨勪換鎰忎竴涓瓙紿楀彛涓換鎰忎竴涓儚绱犳槸鍙鐨?GLUT鍒欒涓虹獥鍙f槸鍙鐨?
//*******************************************************************************************
void glutIdleFunc(void (*func)(void));
璁劇疆絀洪棽鍥炶皟鍑芥暟
鍙傛暟:
func:褰㈠void func(void);
褰撶郴緇熺┖闂叉椂璋冪敤.
//*******************************************************************************************
void glutTimerFunc(unsigned int millis, void (*func)(int value), int value);
娉ㄥ唽涓涓洖璋冨嚱鏁?褰撴寚瀹氭椂闂村煎埌杈懼悗,鐢盙LUT璋冪敤娉ㄥ唽鐨勫嚱鏁頒竴嬈?br>
鍙傛暟:
millis:絳夊緟鐨勬椂闂?浠ユ縐掍負鍗曚綅
unc:褰㈠void func(int value)
value:鎸囧畾鐨勪竴涓暟鍊?鐢ㄦ潵浼犻掑埌鍥炶皟鍑芥暟func涓?br>
榪欎釜鍑芥暟娉ㄥ唽浜嗕竴涓洖璋冨嚱鏁?褰撴寚瀹氱殑姣鏁板埌杈懼悗,榪欎釜鍑芥暟灝辮皟鐢ㄦ敞鍐岀殑鍑芥暟,value鍙傛暟鐢ㄦ潵鍚戣繖涓敞鍐岀殑鍑芥暟涓紶閫掑弬鏁? 浣嗗彧鑳借Е鍙戜竴嬈?鑻ヨ榪炵畫瑙﹀彂,鍒欓渶鍦╢unc涓噸鏂拌緗鏃跺嚱鏁癵lutTimerFunc();
//*******************************************************************************************
void glutMenuStateFunc(void (*func)(int state));
娉ㄥ唽鑿滃崟鐘舵佸洖璋冨嚱鏁?br>
鍙傛暟:
func:褰㈠void func(int state);
state:
GLUT_MENU_IN_USE:鑿滃崟琚嬌鐢?
GLUT_MENU_NOT_IN_USE:鑿滃崟涓嶅啀琚嬌鐢?鍗寵彍鍗曡鍏抽棴.
濡傛灉state浠e叆GLUT_MENU_IN_USE,鍒欏綋鑿滃崟琚嬌鐢ㄦ椂璋冪敤璇ュ嚱鏁?
濡傛灉state浠e叆GLUT_MENU_NOT_IN_USE,鍒欏綋鑿滃崟琚叧闂椂璋冪敤璇ュ嚱鏁?
//*******************************************************************************************
void glutMenuStatusFunc(void (*func)(int status, int x, int y));
璁劇疆鑿滃崟鐘舵佸洖璋冨嚱鏁?br>鍙傛暟:
func:褰㈠void func(int status, int x, int y);
status:褰撳墠鏄惁浣跨敤鑿滃崟,涓轟互涓嬪畾涔夌殑甯擱噺
GLUT_MENU_IN_USE:鑿滃崟姝e湪浣跨敤
GLUT_MENU_NOT_IN_USE:鑿滃崟鏈浣跨敤
x,y:榧犳爣鎸変笅鏃?鍏夋爣鐩稿浜庣獥鍙e乏涓婅鐨勪綅緗?br>榪欎釜鍑芥暟璋冪敤鏃秅lut紼嬪簭鍒ゅ畾鏄惁姝e湪浣跨敤鑿滃崟,褰撳脊鍑鴻彍鍗曟椂,璋冪敤娉ㄥ唽鐨勮彍鍗曠姸鎬佸洖璋冨嚱鏁?鍚屾椂status璁劇疆涓哄父閲廏LUT_MENU_IN_USE,褰撹彍鍗曚嬌鐢ㄥ畬姣曟椂,涔熻皟鐢ㄨ彍鍗曠姸鎬佸洖璋冨嚱鏁?姝ゆ椂status鍙橀噺鍙樹負GLUT_MENU_NOT_IN_USE.浠庡凡寮瑰嚭鐨勮彍鍗曚腑鍐嶅脊鍑虹殑鑿滃崟涓嶄駭鐢熻彍鍗曠姸鎬佸洖璋冭繃紼?姣忎釜glut紼嬪簭鍙湁涓涓彍鍗曠姸鎬佸洖璋冨嚱鏁? 姝ゅ嚱鏁頒笌涓婇潰涓涓嚱鏁扮浉姣?鍙槸澶氫紶浜嗕竴涓厜鏍囦綅緗?鍏朵粬鐩稿悓.
//*******************************************************************************************
void glutSpecialFunc(void (*func)(int key, int x, int y));
璁劇疆褰撳墠紿楀彛鐨勭壒瀹氶敭鐨勫洖璋冨嚱鏁?br>
鍙傛暟:
Func:褰㈠void func(int key, int x, int y);
key:鎸変笅鐨勭壒瀹氶敭,涓轟互涓嬪畾涔夌殑甯擱噺
GLUT_KEY_F1:F1鍔熻兘閿?br> GLUT_KEY_F2:F2鍔熻兘閿?br> GLUT_KEY_F3:F3鍔熻兘閿?br> GLUT_KEY_F4:F4鍔熻兘閿?br> GLUT_KEY_F5:F5鍔熻兘閿?br> GLUT_KEY_F6:F6鍔熻兘閿?br> GLUT_KEY_F7:F7鍔熻兘閿?br> GLUT_KEY_F8:F8鍔熻兘閿?br> GLUT_KEY_F9:F9鍔熻兘閿?br> GLUT_KEY_F10:F10鍔熻兘閿?br> GLUT_KEY_F11:F11鍔熻兘閿?br> GLUT_KEY_F12:F12鍔熻兘閿?br> GLUT_KEY_LEFT:宸︽柟鍚戦敭
GLUT_KEY_UP:涓婃柟鍚戦敭
GLUT_KEY_RIGHT:鍙蟲柟鍚戦敭
GLUT_KEY_DOWN:涓嬫柟鍚戦敭
GLUT_KEY_PAGE_UP:PageUp閿?br> GLUT_KEY_PAGE_DOWN:PageDown閿?br> GLUT_KEY_HOME:Home閿?br> GLUT_KEY_END:End閿?br> GLUT_KEY_INSERT:Insert閿?br>x,y:褰撴寜涓嬮敭鏃墮紶鏍囩殑鍧愭爣,鐩稿浜庣獥鍙e乏涓婅,浠ュ儚绱犱負鍗曚綅
娉ㄦ剰:ESC,鍥炶濺鍜宒elete閿敱ASCII鐮佷駭鐢?鍗沖彲浠ョ敤glutKeyboardFunc()澶勭悊. 褰撳湪閿洏涓婃暡鍑諱笂榪版寜閿椂璋冪敤璇ュ嚱鏁?娉ㄦ剰涓巊lutKeyboardFunc()鐨勫尯鍒?
//*******************************************************************************************
void glutSpaceballMotionFunc(void (*func)(int x, int y, int z));
娉ㄥ唽涓涓綋鍓嶇獥鍙g殑spaceball騫崇Щ鐨勫洖璋冨嚱鏁?br>
鍙傛暟:
func:褰㈠void func(int x, int y, int z);
x,y,z:spaceball鐨勪笁緇寸┖闂村潗鏍?
paceball鍗充竴縐嶇壒孌婄殑甯?D婊氳疆鐨勯紶鏍?涓嶄粎鍙互鍓嶅悗杞姩,鏇村彲浠ュ湪涓夌淮絀洪棿閲屾粴鍔?鍏蜂綋鍥劇墖,鍙互鍦ㄧ櫨搴﹂噷鎼滅儲.
褰搒paceball鍦ㄥ綋鍓嶆敞鍐岀殑紿楀彛鍐呭鉤縐繪椂,璋冪敤璇ュ嚱鏁?
//*******************************************************************************************
void glutSpaceballRotateFunc(void (*func)(int x, int y, int z));
娉ㄥ唽涓涓綋鍓嶇獥鍙g殑spaceball杞姩鐨勫洖璋冨嚱鏁?br>
鍙傛暟:
func:褰㈠void func(int x, int y, int z);
褰搒paceball鍦ㄥ綋鍓嶆敞鍐岀殑紿楀彛鍐呮粴鍔ㄦ椂璋冪敤.
//*******************************************************************************************
void glutSpaceballButtonFunc(void (*func)(int button, int state));
娉ㄥ唽褰撳墠紿楀彛鐨剆paceball鐨勬寜閿洖璋冨嚱鏁?
鍙傛暟:
func:褰㈠void func(int button, int state);
button:鎸夐敭緙栧彿,浠?寮濮?鍙敤鐨勬寜閿紪鍙峰彲浠ラ氳繃glutDeviceGet(GLUT_NUM_SPACEBALL_BUTTONS)鏌ヨ.
state:鎸夐敭鐘舵?br> GLUT_UP:鎸夐敭閲婃斁
GLUT_DOWN:鎸夐敭鎸変笅
褰搒paceball鍦ㄥ綋鍓嶇獥鍙d腑鏁插嚮鐩稿簲鐨勬寜閿椂璋冪敤.
//*******************************************************************************************
void glutButtonBoxFunc(void (*func)(int button, int state));
娉ㄥ唽褰撳墠紿楀彛鐨勬嫧鍙鋒寜閿洅鎸夐敭鍥炶皟鍑芥暟
鍙傛暟:
func:褰㈠void func(int button, int state);
button:鎸夐敭緙栧彿,浠?寮濮?鍙敤鐨勬寜閿彿鍙氳繃glutDeviceGet(GLUT_NUM_BUTTON_BOX_BUTTONS)鏌ヨ
state:鎸夐敭鐘舵?br> GLUT_UP:鎸夐敭閲婃斁
GLUT_DOWN:鎸夐敭鎸変笅
褰撴嫧鍙鋒寜閿洅鎸夐敭琚寜涓嬫椂璋冪敤.
//*******************************************************************************************
void glutDialsFunc(void (*func)(int dial, int value));
娉ㄥ唽褰撳墠紿楀彛鐨勬嫧鍙鋒寜閿洅鎷ㄥ彿鍥炶皟鍑芥暟.
鍙傛暟:
func:褰㈠void func(int dial, value);
dial:dial鐨勭紪鍙?浠?寮濮?鍙氳繃glutDeviceGet(GLUT_NUM_DIALS)鏌ヨ鍙敤緙栧彿.
value:dial鎵鎷ㄧ殑鍊?value鏄瘡嬈℃墍鎷ㄧ殑鍊肩殑绱姞,鐩村埌婧㈠嚭.
褰撴嫧鍙鋒寜閿洅鎷ㄥ彿鏃惰璋冪敤.
//*******************************************************************************************
void glutTabletMotionFunc(void (*func)(int x, int y));
娉ㄥ唽鍥懼艦鏉跨Щ鍔ㄥ洖璋冨嚱鏁?br>
鍙傛暟:
func:褰㈠void func(int x, int y);
x,y:鍥懼艦鏉跨Щ鍔ㄧ殑鍧愭爣.
褰撳浘褰㈡澘縐誨姩鏃惰皟鐢?
//******************************************************************************************
void glutTabletButtonFunc(void (*func)(int button, int state, int x, int y));
娉ㄥ唽褰撳墠紿楀彛鐨勫浘褰㈡澘鎸夐敭鍥炶皟鍑芥暟
鍙傛暟:
func:褰㈠void func(int button, int state, int x, int y);
button:鎸夐敭鍙?閫氳繃glutDeviceGet(GLUT_NUM_TABLET_BUTTONS)鏌ヨ鍙敤閿彿.
state:鎸夐敭鐘舵?
GLUT_UP:鎸夐敭琚寜涓?br> GLUT_DOWN:鎸夐敭琚噴鏀?br>
x,y:褰撴寜閿姸鎬佹敼鍙樻椂,鐩稿浜庣獥鍙g殑鍧愭爣.
//******************************************************************************************
void glutOverlayDisplayFunc(void (*func)(void));
娉ㄥ唽褰撳墠紿楀彛鐨勯噸鍙犲眰鐨勬樉紺哄洖璋冨嚱鏁?br>
鍙傛暟:
func:褰㈠void func(void);鎸囧悜閲嶅彔灞傜殑鏄劇ず鍥炶皟鍑芥暟.
榪欎釜鍑芥暟鍛婅瘔GLUT褰撶獥鍙e唴瀹瑰繀欏昏緇樺埗鏃?閭d釜鍑芥暟灝嗚璋冪敤.褰撶獥鍙f敼鍙樺ぇ灝忔垨鑰呬粠琚鐩栫殑鐘舵佷腑鎭㈠,鎴栬呯敱浜庤皟鐢╣lutPostOverlayRedisplay()鍑芥暟瑕佹眰GLUT鏇存柊鏃?鎵цfunc鍙傛暟鎸囧畾鐨勫嚱鏁?
//*******************************************************************************************
void glutWindowStatusFunc(void (*func)(int state));
娉ㄥ唽褰撳墠紿楀彛鐘舵佺殑鍥炶皟鍑芥暟.
鍙傛暟:
func:褰㈠void func(int state);
state:紿楀彛鐘舵?
GLUT_HIDDEN:紿楀彛涓嶅彲瑙?br> GLUT_FULLY_RETAINED:紿楀彛瀹屽叏鏈閬尅
GLUT_PARTIALLY_RETAINED:紿楀彛閮ㄥ垎閬尅
GLUT_FULLY_COVERED:紿楀彛琚叏閮ㄩ伄鎸?br>
褰撶獥鍙g姸鎬佸彂鐢熺浉搴旀敼鍙樻椂璋冪敤.
//*******************************************************************************************
void glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y));
娉ㄥ唽閲婃斁鏅氭寜閿殑鍥炶皟鍑芥暟
鍙傛暟:
func:褰㈠void func(unsigned char key, int x, int y);
key:鎸夐敭鐨凙SCII鐮?
x,y:閲婃斁鎸夐敭鏃墮紶鏍囩浉瀵逛簬紿楀彛鐨勪綅緗?浠ュ儚绱犱負鍗曚綅.
褰撴櫘閫氭寜閿閲婃斁鏃惰皟鐢?
//*******************************************************************************************
void glutSpecialUpFunc(void (*func)(int key, int x, int y));
娉ㄥ唽閲婃斁鐗規畩鎸夐敭鐨勫洖璋冨嚱鏁?br>
鍙傛暟:
func:褰㈠void func(int key, int x, int y);
key:鐗規畩鎸夐敭鐨勬爣璇?br> GLUT_KEY_F1:F1鍔熻兘閿?br> GLUT_KEY_F2:F2鍔熻兘閿?br> GLUT_KEY_F3:F3鍔熻兘閿?br> GLUT_KEY_F4:F4鍔熻兘閿?br> GLUT_KEY_F5:F5鍔熻兘閿?br> GLUT_KEY_F6:F6鍔熻兘閿?br> GLUT_KEY_F7:F7鍔熻兘閿?br> GLUT_KEY_F8:F8鍔熻兘閿?br> GLUT_KEY_F9:F9鍔熻兘閿?br> GLUT_KEY_F10:F10鍔熻兘閿?br> GLUT_KEY_F11:F11鍔熻兘閿?br> GLUT_KEY_F12:F12鍔熻兘閿?br> GLUT_KEY_LEFT:宸︽柟鍚戦敭
GLUT_KEY_UP:涓婃柟鍚戦敭
GLUT_KEY_RIGHT:鍙蟲柟鍚戦敭
GLUT_KEY_DOWN:涓嬫柟鍚戦敭
GLUT_KEY_PAGE_UP:PageUp閿?br> GLUT_KEY_PAGE_DOWN:PageDown閿?br> GLUT_KEY_HOME:Home閿?br> GLUT_KEY_END:End閿?br> GLUT_KEY_INSERT:Insert閿?br>x,y:閲婃斁鐗規畩鎸夐敭鏃墮紶鏍囩浉瀵逛簬紿楀彛鐨勪綅緗?浠ュ儚绱犱負鍗曚綅.
褰撶壒孌婃寜閿閲婃斁鏃惰皟鐢?
//******************************************************************************************
void glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval);
娉ㄥ唽鎿嶇旱鏉嗙殑鍥炶皟鍑芥暟
鍙傛暟:
buttonMask:鎿嶇旱鏉嗘寜閿?br>GLUT_JOYSTICK_BUTTON_A
GLUT_JOYSTICK_BUTTON_B
GLUT_JOYSTICK_BUTTON_C
GLUT_JOYSTICK_BUTTON_D
x,y,z:鎿嶇旱鏉嗗湪涓夌淮絀洪棿鍐呯Щ鍔ㄧ殑浣嶇Щ閲?br>pollInterval:紜畾媯嫻嬫搷綰墊潌鐨勯棿闅旀椂闂?鍏跺崟浣嶄負姣.
璇ュ嚱鏁板湪涓ょ鎯呭喌涓嬭璋冪敤:
1.鍦╬ollInterval鎵瑙勫畾鐨勬椂闂撮棿闅斿唴璋冪敤.
2.鍦ㄨ皟鐢╣lutForceJoystickFunc()鍑芥暟鏃惰皟鐢ㄤ竴嬈lutJoystickFunc();
]]>
榪欎釜鍑芥暟鎵撳嵃鍑篛penGL鐨勮繍琛屾椂閿欒,瀹冨簲璇ュ彧琚敤鍦╠ebug涓?鍥犱負瀹冪殑璋冪敤浼氶檷浣嶰penGL鐨勯熷害,瀹冩墍鍋氱殑浠呬粎鏄笉鏂皟鐢╣lGetError()鐩村埌娌℃湁閿欒浜х敓.姣忎竴涓敊璇兘浠LUT warning褰㈠紡鎶ュ憡,騫剁敱gluErrorString()浜х敓鐩稿簲鐨勯敊璇俊鎭?
]]>
緇樺埗涓涓浘鍍忓瓧絎?br>
int glutBitmapWidth(void *font, int character);
榪斿洖涓涓浘鍍忓瓧絎︾殑瀹藉害
鍙傛暟:
font:瑕佷嬌鐢ㄧ殑鍥懼儚瀛椾綋,濡備笅琛ㄦ墍紺?
GLUT_BITMAP_8_BY_13:涓縐嶅浐瀹氬搴﹀瓧浣?姣忎釜瀛楃閮芥斁鍦ㄤ竴涓?x13鍍忕礌鐨勭煩褰㈡鍐?br> GLUT_BITMAP_9_BY_15:涓縐嶅浐瀹氬搴﹀瓧浣?姣忎釜瀛楃閮芥斁鍦ㄤ竴涓?x15鍍忕礌鐨勭煩褰㈡鍐?br> GLUT_BITMAP_TIMES_ROMAN_10:涓縐?0鐐瑰潎鍖闂磋窛鐨凾imes Roman瀛椾綋
GLUT_BITMAP_TIMES_ROMAN_24:涓縐?4鐐瑰潎鍖闂磋窛鐨凾imes Roman瀛椾綋
GLUT_BITMAP_HELVETICA_10:涓縐?0鐐瑰潎鍖闂磋窛鐨凥elvetica瀛椾綋
GLUT_BITMAP_HELVETICA_12:涓縐?2鐐瑰潎鍖闂磋窛鐨凥elvetica瀛椾綋
GLUT_BITMAP_HELVETICA_18:涓縐?8鐐瑰潎鍖闂磋窛鐨凥elvetica瀛椾綋 character:緇樺埗鐨勫瓧絎︾殑ASCII鐮?
int glutBitmapLength(void *font, const unsigned char *string);
鑾峰彇涓涓浘鍍忓瓧絎︿覆鐨勫搴?
鍙傛暟:
font:鍚屼笂.
string:鎯寵嫻嬮噺瀹藉害鐨勫瓧絎︿覆.
//*******************************************************************************************
void glutStrokeCharacter(void *font, int character);
緇樺埗涓涓浘褰㈠瓧絎?br>
int glutStrokeWidth(void *font, int character);
榪斿洖涓涓浘褰㈠瓧浣撶殑瀹藉害
鍙傛暟:
font:瑕佷嬌鐢ㄧ殑鍥懼艦瀛椾綋,濡備笅琛ㄦ墍紺?
GLUT_STROKE_ROMAN 涓縐嶇瓑闂磋窛鐨凴oman Simplex瀛椾綋,浠呭寘鎷?2鍒?27鐨凙SCII瀛楃
GLUT_STROKE_MONO_ROMAN 涓縐嶅崟涓闂磋窛鐨凴oman Simplex瀛椾綋,浠呭寘鎷?2鍒?27鐨凙SCII瀛楃
Character:緇樺埗鐨勫瓧絎︾殑ASCII鐮?
int glutStrokeLength(void *font, const unsigned char *string);
鑾峰彇涓涓浘褰㈠瓧絎︿覆鐨勫搴?br>
鍙傛暟:
font:鍚屼笂.
string:鎯寵嫻嬮噺瀹藉害鐨勫瓧絎︿覆.
]]>
璁劇疆褰撳墠紿楀彛褰撳墠灞備竴涓鑹茶〃鍗曞厓鐨勯鑹?br>鍙傛暟:
cell:绱㈠紩鍊?鏍囪鍦ㄩ鑹茶〃涓殑浣嶇疆,鍏跺間粠0寮濮?騫朵笖蹇呴』灝忎簬棰滆壊琛ㄧ殑鏈澶у崟鍏冩暟.
褰撳墠棰滆壊琛ㄧ殑澶у皬鍙氳繃璋冪敤glutGet(GLUT_WINDOW_COLORMAP_SIZE)鑾峰緱.
red:綰㈣壊鎴愬垎
green:緇胯壊鎴愬垎
blue:钃濊壊鎴愬垎
//*******************************************************************************************
GLfloat glutGetColor(int cell, int component);
鑾峰彇鎸囧畾鐨勯鑹茬儲寮曠殑棰滆壊鍊?
鍙傛暟:
cell:绱㈠紩鍊?鏍囪鍦ㄩ鑹茶〃涓殑浣嶇疆,鍏跺間粠0寮濮?騫朵笖蹇呴』灝忎簬棰滆壊琛ㄧ殑鏈澶у崟鍏冩暟.
褰撳墠棰滆壊琛ㄧ殑澶у皬鍙氳繃璋冪敤glutGet(GLUT_WINDOW_COLORMAP_SIZE)鑾峰緱.
component:閫夋嫨涓嬪垪鐨勫?
GLUT_RED:璁╁嚱鏁拌繑鍥炶绱㈠紩鐨勭孩鑹叉垚鍒?
GLUT_GREEN:璁╁嚱鏁拌繑鍥炶绱㈠紩鐨勭豢鑹叉垚鍒?
GLUT_BLUE:璁╁嚱鏁拌繑鍥炶绱㈠紩鐨勮摑鑹叉垚鍒?
//*******************************************************************************************
void glutCopyColormap(int win);
灝嗛昏緫棰滆壊琛ㄤ粠鎸囧畾鐨勭獥鍙f嫹璐濆埌褰撳墠紿楀彛
鍙傛暟:win:紿楀彛鏍囪瘑絎?閫昏緫棰滆壊琛ㄤ粠璇ョ獥鍙f嫹璐濆埌褰撳墠鐨勭獥鍙?
]]>
緇樺埗綰挎鐞冧綋
void glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);
緇樺埗瀹炲績鐞冧綋
鍙傛暟:
radius:鐞冧綋鐨勫崐寰?br>slices:鐞冧綋鍥寸粫z杞村垎鍓茬殑鏁扮洰
stacks:鐞冧綋娌跨潃z杞村垎鍓茬殑鏁扮洰
緇樺埗涓績鍦ㄦā鍨嬪潗鏍囧師鐐?鍗婂緞涓簉adius鐨勭悆浣?鐞冧綋鍥寸粫z杞村垎鍓瞫lices嬈?鐞冧綋娌跨潃z杞村垎鍓瞫tacks嬈?br>
//*******************************************************************************************
void glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
緇樺埗綰挎鍦嗛敟浣?br>
void glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
緇樺埗瀹炲績鍦嗛敟浣?br>
鍙傛暟:
radius:鍦嗛敟浣撶殑鍗婂緞
height:鍦嗛敟浣撶殑楂?br>slices:鍦嗛敟浣撳洿緇晍杞村垎鍓茬殑鏁扮洰
stacks:鍦嗛敟浣撴部鐫z杞村垎鍓茬殑鏁扮洰
鍦嗛敟浣撶殑杞翠負z杞存柟鍚?瀹冪殑鍩哄簳浣嶄簬z=0鐨勫鉤闈㈠唴,欏剁偣z=height,鍦嗛敟浣撳洿緇晍杞村垎鍓瞫lices涓暟鐩?娌跨潃z杞村垎鍓瞫tacks涓暟鐩?
//*******************************************************************************************
void glutWireCube(GLdouble size);
緇樺埗綰挎绔嬫柟浣?br>
void glutSolidCube(GLdouble size);
緇樺埗瀹炲績绔嬫柟浣?br>
鍙傛暟:size:绔嬫柟浣撶殑杈歸暱
//*******************************************************************************************
void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
緇樺埗綰挎鍦嗙幆
void glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
緇樺埗瀹炲績鍦嗙幆
鍙傛暟:
innerRadius:鍦嗙幆鐨勫唴鍗婂緞
outerRadius:鍦嗙幆鐨勫鍗婂緞
nsides:鍦嗙幆鑵旂殑鍒嗗壊鏁?br>rings:鍦嗙幆鐨勭幆綰挎暟
//*******************************************************************************************
void glutWireDodecahedron(void);
緇樺埗綰挎鍗佷簩闈綋
void glutSolidDodecahedron(void);
緇樺埗瀹炲績鍗佷簩闈綋
//*******************************************************************************************
void glutWireTeapot(GLdouble size);
緇樺埗綰挎鑼跺6
void glutSolidTeapot(GLdouble size);
緇樺埗瀹炲績鑼跺6
鍙傛暟:size:鑼跺6鐨勭浉瀵瑰ぇ灝?br>
//*******************************************************************************************
void glutWireOctahedron(void);
緇樺埗綰挎鍏潰浣?br>
void glutSolidOctahedron(void);
緇樺埗瀹炲績鍏潰浣?br>
//*******************************************************************************************
void glutWireTetrahedron(void);
緇樺埗綰挎鍥涢潰浣?br>
void glutSolidTetrahedron(void);
緇樺埗瀹炲績鍥涢潰浣?br>
//*******************************************************************************************
void glutWireIcosahedron(void);
緇樺埗綰挎浜屽崄闈綋
void glutSolidIcosahedron(void);
緇樺埗瀹炲績浜屽崄闈綋
]]>
鍒涘緩涓涓柊鐨勫脊鍑虹ず鑿滃崟
鍙傛暟:
func:褰㈠void func(int a);褰撶偣鍑昏彍鍗曟椂,璋冪敤榪欎釜鍥炶皟鍑芥暟
value:浼犻掔粰鍥炶皟鍑芥暟鐨勬暟鍊?瀹冪敱鎵閫夋嫨鐨勮彍鍗曟潯鐩搴旂殑鏁存暟鍊兼墍鍐沖畾
榪欎釜鍑芥暟鍒涘緩涓涓柊鐨勫脊鍑哄紡鑿滃崟,騫惰繑鍥炰竴涓敮涓鐨勬爣璇嗘鑿滃崟鐨勬暣鍨嬫爣璇嗙,騫跺皢鏂板緩鐨勫脊鍑鴻彍鍗曚笌func鍑芥暟鍏寵仈鍦ㄤ竴璧?榪欐牱,褰撻夋嫨姝よ彍鍗曚腑鐨勪竴涓彍鍗曟潯鐩椂,璋冪敤鍥炶皟鍑芥暟func.
//******************************************************************************************
void glutDestroyMenu(int menu);
鍒犻櫎鎸囧畾鐨勮彍鍗?br>menu:琚垹闄ょ殑鑿滃崟鐨勬爣璇嗙
//******************************************************************************************
int glutGetMenu(void);
鑾峰彇褰撳墠鑿滃崟鐨勬爣璇嗙
//******************************************************************************************
void glutSetMenu(int menu);
璁劇疆涓哄綋鍓嶈彍鍗?br>menu:琚緗負褰撳墠鑿滃崟鐨勬爣璇嗙
//******************************************************************************************
void glutAddMenuEntry(const char *label, int value);
娣誨姞涓涓彍鍗曟潯鐩?br>鍙傛暟:
label:鑿滃崟鏉$洰鐨勫悕縐?br>value:浼犻掑埌鑿滃崟澶勭悊鍑芥暟鐨勫?鍗沖湪glutCreateMenu涓敞鍐岀殑鍥炶皟鍑芥暟
濡傛灉鐢ㄦ埛閫夋嫨浜嗚繖涓彍鍗曟潯鐩?瀵瑰簲鐨勮彍鍗曞洖璋冨嚱鏁板氨琚皟鐢?騫朵互value鍊間綔涓轟紶閫掔粰姝ゅ洖璋冨嚱鏁扮殑鍙傛暟:
//*****************************************************************************************
void glutAddSubMenu(const char *label, int submenu);
鍦ㄥ綋鍓嶈彍鍗曠殑搴曢儴澧炲姞涓涓瓙鑿滃崟鐨勮Е鍙戞潯鐩?br>鍙傛暟:
label:瀛愯彍鍗曡Е鍙戞潯鐩殑鍚嶇О
submenu:瀛愯彍鍗曠殑鏍囪瘑絎?br>
//*****************************************************************************************
void glutChangeToMenuEntry(int item, const char *label, int value);
鏇存敼褰撳墠鑿滃崟涓寚瀹氳彍鍗曢」
鍙傛暟:
item:鏇存敼鑿滃崟欏圭殑绱㈠紩(鏈欏跺眰鐨勮彍鍗曢」鐨勭儲寮曚負1)
label:鑿滃崟鏉$洰鐨勫悕縐?br>value:浼犻掑埌鑿滃崟澶勭悊鍑芥暟鐨勫?鍗沖湪glutCreateMenu涓敞鍐岀殑鍥炶皟鍑芥暟
//*****************************************************************************************
void glutChangeToSubMenu(int item, const char *label, int submenu);
灝嗘寚瀹氱殑褰撳墠鑿滃崟涓彍鍗曢」鍙樹負瀛愯彍鍗曡Е鍙戞潯鐩?br>鍙傛暟:
item:鏇存敼鑿滃崟欏圭殑绱㈠紩(鏈欏跺眰鐨勮彍鍗曢」鐨勭儲寮曚負1)
label:瀛愯彍鍗曡Е鍙戞潯鐩殑鍚嶇О
submenu:瀛愯彍鍗曠殑鏍囪瘑絎?br>
//*****************************************************************************************
void glutRemoveMenuItem(int item);
鍒犻櫎鎸囧畾鐨勮彍鍗曢」
鍙傛暟:
item:褰撳墠鑿滃崟涓鍒犻櫎鐨勮彍鍗曢」鐨勭儲寮?鏈欏跺眰鐨勮彍鍗曢」鐨勭儲寮曚負1)
//*****************************************************************************************
void glutAttachMenu(int button);
鎶婂綋鍓嶇獥鍙g殑涓涓紶鏍囨寜閿笌褰撳墠鑿滃崟鍏寵仈璧鋒潵
void glutDetachMenu(int button);
瑙i櫎榧犳爣鎸夐敭涓庡脊鍑哄紡鑿滃崟鐨勫叧鑱斿叧緋?br>
鍙傛暟:
button:鎸囨槑浣曠榧犳爣鎸夐敭,鍙敤鐨勭鍙蜂負浠ヤ笅涓夌:
GLUT_LEFT_BUTTON 榧犳爣宸﹂敭
GLUT_RIGHT_BUTTON 榧犳爣鍙抽敭
GLUT_MIDDLE_BUTTON 榧犳爣涓敭
]]>
鍒涘緩褰撳墠紿楀彛鐨勯噸鍙犲眰,璇ラ噸鍙犲眰鐨勬樉紺烘ā寮忕敱鍒濆鏄劇ず妯″紡鍐沖畾,搴斿湪璋冪敤glutEstablishOverlay涔嬪墠璋冪敤,glutInitDisplayMode鍑芥暟鏉ヨ緗垵濮嬬殑鏄劇ず妯″紡. 瀹炵幇閲嶅彔灞傞渶瑕佺‖浠剁殑鏀寔,騫朵笉鏄墍鏈夌殑緋葷粺閮芥彁渚涜鏀寔,濡傛灉緋葷粺涓嶆敮鎸侀噸鍙犲眰,閭d箞瀵筭lutEstablishOverlay鍑芥暟鐨勮皟鐢ㄥ氨浼氬紩璧瘋繍琛岄敊璇?GLUT灝嗙粓姝㈢▼搴忕殑榪愯.鍙互璋冪敤glutLayerGet(GLUT_OVERPLAY_POSSIBLE)鏉ュ垽鏂郴緇熸槸鍚︽敮鎸佸湪褰撳墠紿楀彛涓綋鍓嶇殑鏄劇ず妯″紡涓嬪垱寤洪噸鍙犲眰.
//*****************************************************************************************
void glutRemoveOverlay(void);
鍒犻櫎褰撳墠灞傜殑閲嶅彔灞?br>
//*****************************************************************************************
void glutUseLayer(GLenum layer);
鏀瑰彉褰撳墠紿楀彛鐨勪嬌鐢ㄥ眰
鍙傛暟:layer:鎸囧畾紿楀彛鐨勪嬌鐢ㄥ眰,涓?br>GLUT_NORMAL:浣跨敤姝e父鐨勯鑹插眰
GLUT_OVERLAY:浣跨敤閲嶅彔灞?br>
//****************************************************************************************
void glutPostOverlayRedisplay(void);
鏍囪褰撳墠紿楀彛鐨勯噸鍙犲眰闇瑕侀噸緇?br>
//****************************************************************************************
void glutPostWindowOverlayRedisplay(int win);
鏍囪鎸囧畾紿楀彛鐨勯噸鍙犲眰闇瑕侀噸緇?br>鍙傛暟:win:闇瑕侀噸緇樼殑紿楀彛鐨勯噸鍙犲眰鐨勬爣璇嗙
//***************************************************************************************
void glutShowOverlay(void);
鏄劇ず褰撳墠紿楀彛鐨勯噸鍙犲眰
void glutHideOverlay(void);
闅愯棌褰撳墠紿楀彛鐨勯噸鍙犲眰
榪欎袱鏉¤鍙ュ嵆鏃舵墽琛?娉ㄦ剰涓涓?鍙湁紿楀彛鍙鏃?浣跨敤glutShowOverlay鎵嶈兘浣垮叾瑕嗙洊鍥懼眰鍙.褰撶獥鍙h鍏朵粬紿楀彛閬尅鏃?鍏惰鐩栧浘灞備篃琚伄鎸′粠鑰屼笉鍙.
]]>
浜х敓涓涓《灞傜殑紿楀彛.title浣滀負紿楀彛鐨勫悕瀛?涔熷氨鏄獥鍙f爣棰樻爮鏄劇ず鐨勫唴瀹?
榪斿洖鍊兼槸鐢熸垚紿楀彛鐨勬爣璁扮,鍙敤鍑芥暟glutGetWindow()鍔犱互寮曠敤.
//******************************************************************************************
int glutCreateSubWindow(int win, int x, int y, int width, int height);
鍒涘緩涓涓瓙紿楀彛.win鏄叾鐖剁獥鍙g殑鏍囪絎?x,y鏄瓙紿楀彛宸︿笂瑙掔浉瀵圭埗紿楀彛鐨勪綅縐?浠ュ儚绱犺〃紺?width,height鏄瓙紿楀彛鐨勫鍜岄珮.
//*****************************************************************************************
void glutDestroyWindow(int win);
閿姣佺獥鍙?win鏄墍瑕侀攢姣佺殑紿楀彛鐨勬爣璇嗙.榪欎釜鍑芥暟閿姣佹寚瀹氱殑紿楀彛浠ュ強涓庣獥鍙e叧鑱旂殑OpenGL涓婁笅鏂?閲嶅彔灞?瀛愮獥鍙g瓑涓鍒囦笌姝ょ獥鍙g浉鍏崇殑鍐呭.
//*****************************************************************************************
void glutPostRedisplay(void);
鏍囪褰撳墠紿楀彛鐨勫浘鍍忓眰闇瑕侀噸鏂扮粯鍒?鍦╣lutMainLoop鍑芥暟鐨勪簨浠跺鐞嗗驚鐜殑涓嬩竴涓驚鐜腑,灝嗚皟鐢ㄨ紿楀彛鐨勬樉紺哄洖璋冨嚱鏁伴噸緇樿紿楀彛鐨勫浘鍍忓眰.
//******************************************************************************************
void glutPostWindowRedisplay(int win);
鏍囪鎸囧畾鐨勭獥鍙i渶閲嶇粯,鍦╣lutMainLoop鍑芥暟鐨勪簨浠跺鐞嗗驚鐜殑涓嬩竴涓驚鐜腑,灝嗚皟鐢ㄨ紿楀彛鐨勬樉紺哄洖璋冨嚱鏁伴噸緇樿紿楀彛鐨勫浘鍍忓眰.
鍙傛暟:win:闇鍒鋒柊鐨勭獥鍙f爣璇嗙
//******************************************************************************************
void glutSwapBuffers(void);
褰撶獥鍙fā寮忎負鍙岀紦瀛樻椂,姝ゅ嚱鏁扮殑鍔熻兘灝辨槸鎶婂悗鍙扮紦瀛樼殑鍐呭浜ゆ崲鍒板墠鍙版樉紺?褰撶劧,鍙湁鍗曠紦瀛樻椂,浣跨敤瀹冪殑鍔熻兘璺熺敤glFlush()涓鏍?鑰屼嬌鐢ㄥ弻緙撳瓨鏄負浜嗘妸瀹屾暣鍥劇敾涓嬈℃ф樉紺哄湪紿楀彛涓?鎴栬呮槸涓轟簡瀹炵幇鍔ㄧ敾.
//******************************************************************************************
int glutGetWindow(void);
榪斿洖褰撳墠紿楀彛鐨勬爣璇嗙
//*****************************************************************************************
void glutSetWindow(int win);
璁劇疆鏍囪絎︿負win鐨勭獥鍙d負褰撳墠紿楀彛
//****************************************************************************************
void glutSetWindowTitle(const char *title);
璁劇疆褰撳墠紿楀彛錛堝繀欏繪槸欏跺眰紿楀彛錛夌殑鏍囬,紿楀彛涓鏃﹀緩绔嬪悗,紿楀彛鏍囬灝卞彲浠ョ敱榪欎釜鍑芥暟鏉ユ敼鍙?br>
//****************************************************************************************
void glutSetIconTitle(const char *title);
璁劇疆褰撳墠紿楀彛錛堝繀欏繪槸欏跺眰紿楀彛錛夊浘鏍囧寲鏃剁殑鏍囬.
//***************************************************************************************
void glutPositionWindow(int x, int y);
鏀瑰彉褰撳墠紿楀彛鐨勪綅緗細褰撳墠紿楀彛鏄《灞傜獥鍙f椂,x,y鏄浉瀵逛簬灞忓箷鐨勭殑浣嶇Щ;褰撳墠紿楀彛鑻ユ槸瀛愮獥鍙f椂,x,y鏄浉瀵瑰叾鐖剁獥鍙e師鐐圭殑浣嶇Щ.
//***************************************************************************************
void glutReshapeWindow(int width, int height);
鏀瑰彉褰撳墠紿楀彛鐨勫ぇ灝?width,height鏄綋鍓嶇獥鍙f柊鐨勫搴﹀拰楂樺害鍊?褰撶劧鍙兘鏄鍊?
//***************************************************************************************
void glutPopWindow(void);
鍦ㄥ悓涓涓埗紿楀彛鐨勫瓙紿楀彛涓?浣垮綋鍓嶇殑瀛愮獥鍙d笌鎺掑垪鍦ㄥ畠鍓嶄竴涓綅緗殑瀛愮獥***鎹綅緗?br>
void glutPushWindow(void);
鍦ㄥ悓涓涓埗紿楀彛鐨勫瓙紿楀彛涓?浣垮綋鍓嶇殑瀛愮獥鍙d笌鎺掑垪鍦ㄥ畠鍚庝竴涓綅緗殑瀛愮獥***鎹綅緗?br>
榪欎袱涓嚱鏁板欏跺眰紿楀彛鍜屽瓙紿楀彛閮借搗浣滅敤,浣嗗嚱鏁扮殑緇撴灉騫朵笉绔嬪嵆鍙戠敓,鐩村埌涓嬩竴涓簨浠跺驚鐜?
//****************************************************************************************
void glutIconifyWindow(void);
璁╁綋鍓嶇獥鍙f垚涓轟竴涓浘鏍?涔熷嵆鏄渶灝忓寲,浣垮綋鍓嶇獥鍙e浘鏍囧寲鏄劇ず.
//****************************************************************************************
void glutShowWindow(void);
鏄劇ず褰撳墠紿楀彛錛堣繖鏃跺畠榪樻槸鍙兘琚叾瀹冪獥鍙f尅浣忥級.
//*****************************************************************************************
void glutHideWindow(void);
闅愯棌褰撳墠紿楀彛
//****************************************************************************************
void glutFullScreen(void);
鎶婂綋鍓嶇獥鍙g敤鍏ㄥ睆鏄劇ず,褰撳墠紿楀彛鏄《灞傜獥鍙f椂鎵嶆湁鏁?
//****************************************************************************************
void glutSetCursor(int cursor);
璁劇疆褰撳墠紿楀彛鐨勫厜鏍囨牱寮?
鍙傛暟:
cursor:鎸囧畾榧犳爣鐨勫艦鐘?涓轟笅闈㈢殑涓縐嶅煎厜鏍囩殑褰㈢姸
/* Basic arrows. */
GLUT_CURSOR_RIGHT_ARROW
GLUT_CURSOR_LEFT_ARROW
/* Symbolic cursor shapes. */
GLUT_CURSOR_INFO
GLUT_CURSOR_DESTROY
GLUT_CURSOR_HELP
GLUT_CURSOR_CYCLE
GLUT_CURSOR_SPRAY
GLUT_CURSOR_WAIT
GLUT_CURSOR_TEXT
GLUT_CURSOR_CROSSHAIR
/* Directional cursors. */
GLUT_CURSOR_UP_DOWN
GLUT_CURSOR_LEFT_RIGHT
/* Sizing cursors. */
GLUT_CURSOR_TOP_SIDE
GLUT_CURSOR_BOTTOM_SIDE
GLUT_CURSOR_LEFT_SIDE
GLUT_CURSOR_RIGHT_SIDE
GLUT_CURSOR_TOP_LEFT_CORNER
GLUT_CURSOR_TOP_RIGHT_CORNER
GLUT_CURSOR_BOTTOM_RIGHT_CORNER
GLUT_CURSOR_BOTTOM_LEFT_CORNER
/* Fullscreen crosshair (if available). */
GLUT_CURSOR_FULL_CROSSHAIR:
(鍦ㄥ叏灞忔ā寮忎笅浣跨敤,絳夊悓浜嶨LUT_CURSOR_CROSSHAIR)
/* Blank cursor. */
GLUT_CURSOR_NONE:涓嶆樉紺洪紶鏍?br>/* Inherit from parent window. */
GLUT_CURSOR_INHERIT:浣跨敤鐖剁獥鍙g殑榧犳爣
//****************************************************************************************
void glutWarpPointer(int x, int y);
榪欎釜鍑芥暟灝嗛紶鏍囨寚閽堢Щ鍔ㄥ埌涓涓浉瀵逛簬褰撳墠紿楀彛宸︿笂瑙掔殑鏂扮殑浣嶇疆,浠ョ獥鍙e乏涓婅涓哄師鐐?鍙充負X杞存鏂瑰悜,涓嬩負Y杞存鏂瑰悜,鍙傛暟x,y鏄湪榪欎釜鍧愭爣緋諱腑鐨勭偣,鍙互涓鴻礋鍊?濡傛灉鍧愭爣鍊艱秴鍑哄睆騫曞彲瑙佽寖鍥?鍒欏皢璇ュ煎己琛屾帶鍒跺湪灞忓箷鍙鑼冨洿浠ュ唴.涓鑸儏鍐典笅榪欎釜鍑芥暟鏈濂戒笉瑕佷嬌鐢? 鍥犱負榧犳爣鍔ㄤ綔榪樻槸鐣欑粰鐢ㄦ埛鎺у埗姣旇緝浜烘у寲.
]]>
(1) void glutInit(int *argc, char **argv);
榪欎釜鍑芥暟鐢ㄦ潵鍒濆鍖朑LUT搴?榪欎釜鍑芥暟浠巑ain鍑芥暟鑾峰彇鍏朵袱涓弬鏁?瀵瑰簲main鍑芥暟鐨勫艦寮忓簲鏄細int main(int argc,char* argv[]);
//*******************************************************************************************
(2) void glutInitDisplayMode(unsigned int mode);
璁劇疆鍥懼艦鏄劇ず妯″紡.鍙傛暟mode鐨勫彲閫夊間負:
GLUT_RGBA:褰撴湭鎸囨槑GLUT鈥擱GBA鎴朑LUT鈥擨NDEX鏃?鏄粯璁や嬌鐢ㄧ殑妯″紡.琛ㄦ槑嬈插緩绔婻GBA妯″紡鐨勭獥鍙?
GLUT_RGB:涓嶨LUT鈥擱GBA浣滅敤鐩稿悓.
GLUT_INDEX:鎸囨槑涓洪鑹茬儲寮曟ā寮?
GLUT_SINGLE:鍙嬌鐢ㄥ崟緙撳瓨
GLUT_DOUBLE:浣跨敤鍙岀紦瀛?浠ラ伩鍏嶆妸璁$畻鏈轟綔鍥劇殑榪囩▼閮借〃鐜板嚭鏉?鎴栬呬負浜嗗鉤婊戝湴瀹炵幇鍔ㄧ敾.
GLUT_ACCUM:璁╃獥鍙d嬌鐢ㄧ瘡鍔犵殑緙撳瓨.
GLUT_ALPHA:璁╅鑹茬紦鍐插尯浣跨敤alpha緇勪歡.
GLUT_DEPTH:浣跨敤娣卞害緙撳瓨.
GLUT_STENCIL:浣跨敤妯℃澘緙撳瓨.
GLUT_MULTISAMPLE:璁╃獥鍙f敮鎸佸渚嬬▼.
GLUT_STEREO:浣跨獥鍙f敮鎸佺珛浣?
GLUT_LUMINACE:luminance鏄寒搴︾殑鎰忔?浣嗘槸寰堥仐鎲?鍦ㄥ鏁癘penGL騫沖彴涓?涓嶈鏀寔.
//******************************************************************************************
(3) void glutInitWindowPosition(int x, int y);
璁劇疆鍒濆紿楀彛鐨勪綅緗?紿楀彛宸︿笂瑙掔浉瀵逛簬妗岄潰鍧愭爣(x,y))
//******************************************************************************************
(4) void glutInitWindowSize(int width, int height);
璁劇疆鍒濆紿楀彛鐨勫ぇ灝?br>//******************************************************************************************
(5) void glutMainLoop(void);
璁ゞlut紼嬪簭榪涘叆浜嬩歡寰幆.鍦ㄤ竴涓猤lut紼嬪簭涓渶澶氬彧鑳借皟鐢ㄤ竴嬈?涓斿繀欏昏皟鐢?涓鏃﹁皟鐢?浼氱洿鍒扮▼搴忕粨鏉熸墠榪斿洖.
//******************************************************************************************
(6) void glutInitDisplayString(const char *string);
閫氳繃涓涓瓧絎︿覆鍒濆鍖杁isplay mode
鍙傛暟:string:display mode鐨勬弿榪板瓧絎︿覆
榪欎釜鎻忚堪瀛楃涓茬敤鍦ㄥ垱寤洪《綰х獥鍙?瀛愮獥鍙e拰閲嶅彔灞傛椂,緇欏皢瑕佽鍒涘緩鐨勭獥鍙f垨閲嶅彔灞傝緗甦isplay mode.
榪欎釜瀛楃涓叉槸鐢?涓垨澶氫釜鍔熻兘鎻忚堪鍙傛暟緇勬垚,姣忎釜鍔熻兘鎻忚堪鍙傛暟鐢ㄧ┖鏍兼垨tab閿殧寮.(鑻ユ湭緇欏弬鏁伴檺鍒剁紦瀛樼簿搴﹀ぇ灝?鍒欓噰鐢ㄩ粯璁ゅ?
渚嬪:
glutInitDisplayString("stencil~2 rgb double depth>=16 samples");
涓婁緥灝嗙獥鍙e垵濮嬪寲涓鴻嚦灝?浣嶇殑妯℃澘緙撳瓨,RGB妯″紡alpha鍗犵敤浣嶆暟涓?,娣卞害緙撳瓨鑷沖皯涓?6浣?濡傛灉騫沖彴鏀寔鐨勮瘽浣跨敤mutlisampling鎶鏈?
鍙互浣跨敤鐨勭鍙鋒湁:
= 絳夊彿
!= 涓嶇瓑鍙?br>< 灝忎簬鍙?瓚婂皬瓚婂ソ)
> 澶т簬鍙?瓚婂ぇ瓚婂ソ)
<= 灝忎簬絳変簬(瓚婂皬瓚婂ソ)
>= 澶т簬絳変簬(灝藉彲鑳介夋嫨澶х殑鏁板?涓昏鐢ㄤ簬棰滆壊緙撳瓨鎴栨繁搴︾紦瀛樼瓑瀵逛綅鏁拌姹傞珮鐨勫弬鏁拌緗?
~ 澶т簬絳変簬(浣嗗敖鍙兘閫夋嫨灝忕殑鏁板?鏈夋晥鍒╃敤璧勬簮,涓昏鐢ㄤ簬妯℃澘緙撳瓨絳?
涓昏鍙傛暟:
alpha : alpaha緙撳瓨綺懼害, 榛樿鍊?gt;=1,鍗沖ぇ浜庣瓑浜?浣?
acca : red, green, blue, 鍜宎lpha绱Н緙撳瓨綺懼害, 榛樿鍊?gt;=1
acc : red, green, blue绱Н緙撳瓨綺懼害, 榛樿鍊?gt;=1,alpha绱Н緙撳瓨綺懼害涓?;
blue : blue棰滆壊緙撳瓨綺懼害, 榛樿鍊?gt;=1;
buffer: 棰滆壊绱㈠紩緙撳瓨綺懼害, 榛樿鍊?gt;=1;
conformant :甯冨皵鍊?鎸囩ず甯х紦瀛橀厤緗槸鍚︿竴鑷?璇ュ煎熀浜嶨LX鐨凟XT_visual_rationg鎵╁睍鐨勬敮鎸?鑻ヤ笉鏀寔,鍒欓粯璁や負涓鑷? 榛樿鍊?1;
depth : 娣卞害緙撳瓨綺懼害, 榛樿鍊?gt;=12;
double: 甯冨皵鍊?鎸囩ず棰滆壊緙撳瓨鏄惁鏄弻鍊嶇紦瀛? 榛樿鍊?1;
green : green棰滆壊緙撳瓨綺懼害,榛樿鍊?gt;=1;
index : 甯冨皵鍊?鎸囩ず鏄惁涓洪鑹茬儲寮?true琛ㄧず鏄鑹茬儲寮? 榛樿鍊?gt;=1;
num : 涓撶敤鍚嶈瘝,鎸囩ず鏁板艱〃紺虹殑絎琻涓撫緙撳瓨閰嶇疆涓庤繖涓弿榪板瓧絎︿覆鐩哥鍚堢殑鍦版柟,褰撴病鏈夋寚瀹?鍒檊lutInitDisplayString涔熻繑鍥炲垵濮?鏈浣崇鍚?閰嶇疆.
red : red棰滆壊緙撳瓨綺懼害, 榛樿鍊?gt;=1;
rgba : rgba妯″紡,棰滆壊緙撳瓨綺懼害榛樿鍊?gt;=1;
rgb : rgb妯″紡,棰滆壊緙撳瓨綺懼害榛樿鍊?gt;=1,alpha綺懼害=0;
luminance: 璁劇疆red棰滆壊緙撳瓨綺懼害,榛樿鍊?gt;=1,鍏朵粬棰滆壊緙撳瓨綺懼害=0(alpha娌℃湁鎸囧畾);
stencil: 妯℃澘緙撳瓨綺懼害
single: 甯冨皵鍊?鎸囩ず棰滆壊緙撳瓨鏄惁涓哄崟緙撳瓨, 榛樿鍊?1;
stereo :甯冨皵鍊?鏍囩ず棰滆壊緙撳瓨鏀寔OpenGL鐨勪笁緇寸郴緇?榛樿鍊?1;
samples: 鏍囩ずmultisamples鐨勫?榪欎釜鍊兼槸鍩轟簬GLX鐨凷GIS_multisample鐨勬墿灞?榛樿鍊?lt;=4.榪欎釜榛樿鍊艱〃紺哄鏋滄敮鎸佺殑璇濆彲浠ュ湪glutInitDisplayString涓坊鍔犳弿榪板弬鏁拌glut璇鋒眰multipsampling;
slow : 甯冨皵鍊?鏍囩ず甯х紦瀛橀厤緗槸鍚︽槸slow鐨?瀵逛簬X11瀵筭lut鐨勬墽琛?slow淇℃伅鏄熀浜嶨LX鐨凟XT_visual_rating鎵╁睍鐨勬敮鎸?濡傛灉涓嶆敮鎸?灝辮涓烘槸fast;瀵逛簬win32瀵筭lut鐨勬墽琛?slow鏄熀浜庡儚绱犳牸寮忔弿榪?pixel format Descriptor鍗砅FD)琚爣璁頒負"generic"騫朵笖鏈鏍囪涓?accelerated",榪欒鏄嶮icrosoft鍏充簬slow鐨凮penGL鎵ц鍙敤鍦≒FD涓?榪欎釜鍙傛暟鐨勪綔鐢ㄦ槸甯姪紼嬪簭閬垮厤瀵逛簬褰撳墠鏈哄櫒鐨勫撫緙撳瓨閰嶇疆瓚婃潵瓚婃參.榛樿鍊?gt;=0,琛ㄧずslow visuals浼樺厛浜巉ast visuals,浣唂ast visuals浠嶇劧琚厑璁?
win32pdf : 鍙湪win32緋葷粺涓瘑鍒玤lut鐨勮姹?榪欎釜鍙傛暟涓巜in32涓殑鍍忕礌鏍煎紡(pixel format)鐩稿尮閰?瀹冪殑鍊兼槸涓暟瀛?br>xvisual: 鍙湪X Window緋葷粺涓瘑鍒玤lut鐨勮姹?榪欎釜鍙傛暟涓嶺 visual ID鐩稿尮閰?瀹冪殑鍊兼槸涓暟瀛?br>xstaticgray: 鍙湪X Window緋葷粺涓瘑鍒玤lut璇鋒眰,鏄釜甯冨皵鍊?鏍囩ず甯х紦瀛橀厤緗殑X visual鏄惁鏄疭taticGray. 榛樿鍊?1
xgrayscale : 鍙湪X Window緋葷粺涓瘑鍒玤lut鐨勮姹?鏄釜甯冨皵鍊?鏍囩ず甯х紦瀛橀厤緗殑X visual鏄惁鏄疓rayScale. 榛樿鍊?1;
xstaticcolor: 鍙湪X Window緋葷粺涓瘑鍒玤lut鐨勮姹?鏄釜甯冨皵鍊?鏍囩ず甯х紦瀛橀厤緗殑X visual鏄惁鏄疭taticColor. 榛樿鍊?1;
xpseudocolor : 鍙湪X Window緋葷粺涓瘑鍒玤lut鐨勮姹?鏄釜甯冨皵鍊?鏍囩ず甯х紦瀛橀厤緗殑X visual鏄惁鏄疨suedoColor. 榛樿鍊?1;
xtruecolor : 鍙湪X Window緋葷粺涓瘑鍒玤lut鐨勮姹?鏄釜甯冨皵鍊?鏍囩ず甯х紦瀛橀厤緗殑X visual鏄惁鏄疶rueColor. 榛樿鍊?1;
xdirectcolor : 鍙湪X Window緋葷粺涓瘑鍒玤lut鐨勮姹?鏄釜甯冨皵鍊?鏍囩ず甯х紦瀛橀厤緗殑X visual鏄惁鏄疍irectColor. 榛樿鍊?1;
//*******************************************************************************************
緗戜笂娌℃湁鎼滃埌鍏充簬glut鐨勫畬鏁磋祫鏂?浜庢槸涓嬬嫚蹇冭嚜宸辮姳鏃墮棿鏁寸悊浜嗕竴涓?榪欓噷鍙槸glut鍒濆鍖栫殑API,鍏朵腑void glutInitDisplayString(const char *string);鍦ㄥ浗鍐呯綉绔欎笂娌℃悳鍒板叿浣撹В閲?鏄粠鍥藉緗戠珯涓婄炕璇戣繃鏉ョ殑,鏈漢鑻辨枃姘村鉤鏈夐檺,鍙兘鏈夐敊璇?涓嬮潰璐翠笂鑻辨枃鍘熸枃,鏈涜揪浜烘寚鐐?(鍏朵粬API 浼氬湪浠ュ悗鍒嗙被鍚庨檰緇粰鍑?.
void glutInitDisplayString(const char *string) - sets the initial display mode via a string.
string:Display mode description string, see below.
Description:
The initial display mode description string is
used when creating top-level windows,subwindows,
and overlays to determine the OpenGL display mode
for the to-be-created window or overlay.
The string is a list of zero or more capability
descriptions separated by spaces and tabs.Each
capability description is a capability name that
is optionally followed by a comparator and a
numeric value.For example,"double" and "depth>=12"
are both valid criteria.
The capability descriptions are translated into
a set of criteria used to select the appropriate
frame buffer configuration.
The criteria are matched in strict left to right
order of precdence.That is,the first specified
criteria(leftmost) takes precedence over the later
criteria for nonexact criteria (greater than,less
than,etc.comparators).Exact criteria (equal, not
equal compartors) must match exactly so precedence
is not relevant.
The numeric value is an integer that is parsed
according to ANSI C's strtol(str,strptr,0) behavior.
This means that decimal,octal(leading 0),and
hexidecimal values(leading 0x) are accepeted.
The valid compartors are:
= Equal.
!= Not equal.
< Less than and preferring larger difference
(theleast is best).
> Greater than and preferring larger differences
(the most is best).
<= Less than or equal and preferring larger
difference(the least is best).
>= Greater than or equal and preferring more
instead of less. This comparator is useful for
allocating resources like color precsion or
depth buffer precision where the maximum
precison is generally preferred.Contrast with
the tilde (~) comprator.
~ Greater than or equal but preferring less
instead of more.This compartor is useful for
allocating resources such as stencil bits or
auxillary color buffers where you would rather
not over allocate.
When the compartor and numeric value are not
specified,each capability name has a different
default(one default is to require a compartor
and numeric value).
The valid capability names are:
alpha:Alpha color buffer precision in bits.Default
is ">=1".
acca:Red,green,blue,and alpha accumulation buffer
precision in bits.Default is ">=1" for red,
green,blue,and alpha capabilities.
acc:Red,green,and green accumulation buffer
precision in bits and zero bits of alpha
accumulation buffer precision.Default is ">=1"
for red,green,and blue capabilities,and "~0"
for the alpha capability.
blue:Blue color buffer precision in bits.Default
is ">=1".
buffer:Number of bits in the color index color
buffer.Default is ">=1".
conformant:
Boolean indicating if the frame buffer
configuration is conformant or not.
Conformance information is based on GLX's
EXT_visual_rating extension if supported.
If the extension is not supported,all
visuals are assumed conformat.Default is
"=1".
depth:Number of bits of precsion in the depth
buffer.Default is ">=12".
double:Boolean indicating if the color buffer is
double buffered.Default is "=1".
green:Green color buffer precision in bits.Default
is ">=1".
index:Boolean if the color model is color index or
not.True is color index.Default is ">=1".
num:A special capability name indicating where the
value represents the Nth frame buffer
configuration matching the description string.
When not specified,glutInitDisplayString also
returns the first(best matching) configuration.
num requires a compartor and numeric value.
red;Red color buffer precision in bits.Default is
">=1".
rgba:Number of bits of red,green,blue,and alpha
in the RGBA color buffer.Default is ">=1"
for red,green,blue,and alpha capabilities,
and "=1" for the RGBA color model capability.
rgb:Number of bits of red,green,and blue in the
RGBA color buffer and zero bits of alpha color
buffer precision.Default is ">=1" for the red,
green,and blue capabilities,and "~0" for alpha
capability,and "=1" for the RGBA color model
capability.
luminance:
Number of bits of red in the RGBA and zero
bits of green,blue(alpha not specified) of
color buffer precision.Default is ">=1"
for the red capabilitis,and "=0" for the green
and blue capabilities,and "=1" for the RGBA
color model capability,and,for X11,"=1" for the
StaticGray ("xstaticgray")capability.SGI
InfiniteReality(and other future machines)
support a 16-bit luminance (single channel)
display mode(an additional 16-bit alpha channel
can also be requested).The red channel maps to
gray scale and green and blue channels are not
available.A 16-bit precision luminance display
mode is often appropriate for medical imaging
applications.Do not expect many machines to
support extended precision luminance display
modes.
stencil:Number of bits in the stencil buffer.
single:Boolean indicate the color buffer is single
buffered.Double buffer capability "=1".
stereo:Boolean indicating the color buffer is
supports OpenGL-style stereo.Default is "=1".
samples:Indicates the number of multisamples to use
based on GLX's SGIS_multisample extension(for
antialiasing).Default is "<=4". This default
means that a GLUT application can request
multipsampling if available by simply
specifying "samples".
slow:Boolean indicating if the frame buffer
configuration is slow or not.For the X11
implementation of GLUT,slowness information is
based on GLX's EXT_visual_rating extension if
supported.If the EXT_visual_rating extension is
not supported,all visuals are assumed fast.For
the Win32 implementation of GLUT,slowness is
based on if the underlying Pixel Format Descriptor
(PFD)is marked "generic" and not "accelerated".
This implies that Microsoft's relatively slow
software OpenGL implementation is used by this
PFD.Note that slowness is a relative designation
relative to other frame buffer configurations
available.The intent of the slow capability is to
help programs avoid frame buffer configurations
that are slower(but perhaps higher precision) for
the current machine.Default is ">=0" if not
comparator and numeric value are provided.This
default means that slow visuals are used in
preference to fast visuals,but fast visuals will
still be allowed.
win32pfd:
Only recognized on GLUT implementations for Win32,
this capability name matches the Win32 Pixel For-
mat Descriptor by numer. win32pfd requires a com-
partor and numeric value.
xvisual:Only recongized on GLUT implementations for the
X Window System,this capability name matches
the X visual ID by number.xvisual requires a
compartor and numeric value.
xstaticgray:
Only recongized on GLUT implementations for the
X Window System,boolean indicating if the frame
buffer configuration's X visual is of type Stat-
icGray.Default is "=1".
xgrayscale:
Only recongized on GLUT implementations for the
X Window System,boolean indicating if the frame
buffer configuration's X visual is of type
GrayScale.Default is "=1".
xstaticcolor:
Only recongized on GLUT implementations for the
X Window System,boolean indicating if the frame
buffer configuration's X visual is of type
StaticColor.Default is "=1".
xpseudocolor:
Only recongized on GLUT implementations for the
X Window System,boolean indicating if the frame
buffer configuration's X visual is of type
PsuedoColor.Default is "=1".
xtruecolor:
Only recongized on GLUT implementations for the
X Window System,boolean indicating if the frame
buffer configuration's X visual is of type
TrueColor.Default is "=1".
xdirectcolor:
Only recongized on GLUT implementations for the
X Window System,boolean indicating if the frame
buffer configuration's X visual is of type
DirectColor.Default is "=1".
Unspecifed capability descriptions will result in
unspecified criteria being generated.These unspecified
criteria help glutInitDisplayString behave sensibly
with terse display mode description strings.For
example,if no "slow" capability description is provided,
fast frame buffer configurations will be choosen in
preference to slow frame buffer configurations,but slow
frame buffer configurations will still be choosen if
no better fast frame buffer configuration is available.
Example:
Here is an examples using glutInitDisplayString:
glutInitDisplayString("stencil~2 rgb double depth>=16 samples");
The above call requests a window with an RGBA color
model(but requesting no bits of alpha),a depth buffer
with at least 16 bits of precsion but preferring more,
mutlisampling if available,and at least 2 bits of
stencil(favoring less stencil to more as long as 2 bits
are available).
]]>
glut鏄疧penGL搴旂敤宸ュ叿鍖?OpenGL Utility Toolkit),瀹冧負OpenGL鎻愪緵浜嗕竴涓畝鏄撶殑紿楀彛騫沖彴,浣跨▼搴忓憳涓嶇敤榪囧鐨勫叧蹇冧笌騫沖彴鐩稿叧鐨勭獥鍙g郴緇?
寤虹珛宸ョ▼鏃?鎴戜滑涓鑸兘寤虹珛鎺у埗鍙扮▼搴?鍦╲c6涓嵆console win32 application)鏉ヤ嬌鐢╣lut搴?浣嗘槸鍦ㄦ帶鍒跺彴紼嬪簭涓?榪愯鏃墮兘浼氳煩鍑烘帶鍒跺彴紿楀彛,寰堜笉緹庤,鎴戜滑鍙互鐢ㄤ笅闈㈢殑鏂規硶灝嗘帶鍒跺彴紿楀彛鍘繪帀:
#pragma comment( linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
鍦ㄤ富鍑芥暟鎵鍦ㄧ殑.cpp鏂囦歡鐨勯《閮ㄥ姞涓婁笂闈㈢殑瀹?灝卞彲浠ヨ交鏉懼皢鎺у埗鍙扮獥鍙e幓鎺?榪欐牱灝卞彧鍓╀笅glut紿楀彛浜?
]]>
]]>
涓嬮潰鎴戝皢瀵筗indows涓嬬殑OpenGL緙栫▼榪涜綆鍗曚粙緇嶃?
絎竴姝ワ細閫夋嫨涓涓紪璇戠幆澧?nbsp;
鐜板湪Windows緋葷粺鐨勪富嫻佺紪璇戠幆澧冩湁Visual Studio錛孊roland C++ Builder錛孌ev-C++絳夛紝瀹冧滑閮芥槸鏀寔OpenGL鐨勩備絾榪欓噷鎴戜滑閫夋嫨VC++ 6.0浣滀負瀛︿範OpenGL鐨勭幆澧冦?nbsp;
絎簩姝ワ細瀹夎GLUT宸ュ叿鍖?nbsp;
GLUT涓嶆槸OpenGL鎵蹇呴』鐨勶紝浣嗗畠浼氱粰鎴戜滑鐨勫涔犲甫鏉ヤ竴瀹氱殑鏂逛究錛屾帹鑽愬畨瑁呫?nbsp;
Windows鐜涓嬬殑GLUT涓嬭澆鍦板潃錛氾紙澶у皬綰︿負150k錛?nbsp;
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
鏃犳硶浠庝互涓婂湴鍧涓嬭澆鐨勮瘽璇蜂嬌鐢ㄤ笅闈㈢殑榪炴帴:
http://upload.programfan.com/upfile/200607311626279.zip
Windows鐜涓嬪畨瑁匞LUT鐨勬楠わ細
1銆佸皢涓嬭澆鐨勫帇緙╁寘瑙e紑錛屽皢寰楀埌5涓枃浠?
2銆佷互鎴戠殑瀹夎鐩綍涓轟緥錛?nbsp;
錛?錛?#8220;d:\Program Files\Microsoft Visual Studio\VC98\include\GL鏂囦歡澶?#8221;銆傛妸瑙e帇寰楀埌鐨刧lut.h鏀懼埌榪欎釜GL鏂囦歡澶歸噷銆傛病鏈塆L鏂囦歡澶瑰彲浠ヨ嚜宸卞緩涓涓紝涓鑸兘鏈夌殑銆?br>錛?錛?#8220;d:\Program Files\Microsoft Visual Studio\VC98\lib鏂囦歡澶?#8221;銆傛妸瑙e帇寰楀埌鐨刧lut.lib鍜実lut32.lib鏀懼埌闈欐佸嚱鏁板簱鎵鍦ㄦ枃浠跺す錛屽嵆lib鏂囦歡澶廣?br>錛?錛夋妸瑙e帇寰楀埌鐨刧lut.dll鍜実lut32.dll鏀懼埌鎿嶄綔緋葷粺鐩綍涓嬮潰鐨剆ystem32鏂囦歡澶瑰唴銆傦紙鍏稿瀷鐨勪綅緗負錛欳:\Windows\System32錛夎繖鏄潪甯擱噸瑕佺殑鍔ㄦ侀摼鎺ュ簱璁劇疆錛?nbsp;
絎笁姝ワ紝鍒涘緩宸ョ▼錛屽叾姝ラ濡備笅錛?/span>
錛?錛夊垱寤轟竴涓猈in32 Console Application銆傦紙浠ユ垜鍒涘緩鐨勪負渚嬶紝宸ョ▼鍚嶄負simpleGL錛?nbsp;
錛?錛夐摼鎺penGL libraries:鍦╒isual C++涓厛鍗曞嚮Project錛屽啀鍗曞嚮Settings錛屽啀鎵懼埌Link鍗曞嚮錛屾渶鍚庡湪Object/library modules 鐨勬渶鍓嶉潰鍔犱笂opengl32.lib Glut32.lib Glaux.lib glu32.lib 銆?nbsp;
錛?錛夊崟鍑籔roject Settings涓殑C/C++鏍囩錛屽皢Preprocessor definitions 涓殑_CONSOLE鏀逛負__WINDOWS銆傛渶鍚庡崟鍑籓K銆?nbsp;
鐜板湪錛屽噯澶囧伐浣滃熀鏈笂瀹屾垚浜嗭紝鍙笉瑕佽交瑙嗚繖涓姝ワ紝濡傛灉浣犳病鏈夎緗ソ鍦ㄧ紪璇戝強榪愯榪囩▼涓諱細鍑洪敊鐨勩?
瀵逛簬VS2005鍙互濡備笅璁劇疆錛?br>1銆佹妸 glut.h 澶嶅埗鍒?VC 瀹夎璺緞涓嬬殑 PlatFormSDK\include\gl 鏂囦歡澶?br>2銆佹妸 glut32.lib 澶嶅埗鍒?VC 瀹夎璺緞涓嬬殑 PlatFormSDK\lib 鏂囦歡澶?br>3銆佹妸 glut32.dll 澶嶅埗鍒?Windows\System32 鏂囦歡澶?br>4銆佸湪 VC 涓垱寤烘帶鍒跺彴搴旂敤紼嬪簭錛屽湪閫夐」涓竻闄?#8220;浣跨敤棰勭紪璇戝ご”錛堜互鍏嶅獎鍝嶅彲縐繪鎬э級
5銆佸湪 VC 涓墦寮欏圭洰->灞炴у璇濇榪涜濡備笅璁劇疆錛?br> 灝?#8220;閰嶇疆”涓嬫媺妗嗛夊垯涓?#8220;鎵鏈夐厤緗?#8221;
鎵撳紑 “閾炬帴鍣?-杈撳叆”欏?br> 鍦?#8220;闄勫姞渚濊禆欏?#8221;涓鍔狅細
OpenGL32.lib
glu32.lib
glut32.lib
絎洓姝ワ紝鍒涘緩涓涓渶綆鍗曠殑opengl紼嬪簭
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
glFlush();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("絎竴涓狾penGL紼嬪簭");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}
璇ョ▼搴忕殑浣滅敤鏄湪涓涓粦鑹茬殑紿楀彛涓ぎ鐢諱竴涓櫧鑹茬殑鐭╁艦銆備笅闈㈠鍚勮璇彞榪涜璇存槑銆?
棣栧厛錛岄渶瑕佸寘鍚ご鏂囦歡#include<GL/glut.h>錛岃繖鏄疓LUT鐨勫ご鏂囦歡銆?br>鏈潵OpenGL紼嬪簭涓鑸繕瑕佸寘鍚?lt;GL/gl.h>鍜?lt;GL/glu.h>錛屼絾GLUT鐨勫ご鏂囦歡涓凡緇忚嚜鍔ㄥ皢榪欎袱涓枃浠跺寘鍚簡錛屼笉蹇呭啀嬈″寘鍚?br>
鐒跺悗鐪媘ain鍑芥暟銆?br>int main(int argc, char *argv[])錛岃繖涓槸甯﹀懡浠よ鍙傛暟鐨刴ain鍑芥暟錛屽悇浣嶅簲璇ヨ榪囧惂錛熸病瑙佽繃鐨勫悓蹇椾滑璇峰緲葷炕涔︼紝絳夊紕鏄庣櫧浜嗗啀寰涓嬬湅銆?br>娉ㄦ剰main鍑芥暟涓殑鍚勮鍙ワ紝闄や簡鏈鍚庣殑return涔嬪錛屽叾浣欏叏閮ㄤ互glut寮澶淬傝繖縐嶄互glut寮澶寸殑鍑芥暟閮芥槸GLUT宸ュ叿鍖呮墍鎻愪緵鐨勫嚱鏁幫紝涓嬮潰瀵圭敤鍒扮殑鍑犱釜鍑芥暟榪涜浠嬬粛銆?br>1銆乬lutInit錛屽GLUT榪涜鍒濆鍖栵紝榪欎釜鍑芥暟蹇呴』鍦ㄥ叾瀹冪殑GLUT浣跨敤涔嬪墠璋冪敤涓嬈°傚叾鏍煎紡姣旇緝姝繪澘錛屼竴鑸収鎶勮繖鍙lutInit(&argc, argv)灝卞彲浠ヤ簡銆?br>2銆乬lutInitDisplayMode錛岃緗樉紺烘柟寮忥紝鍏朵腑GLUT_RGB琛ㄧず浣跨敤RGB棰滆壊錛屼笌涔嬪搴旂殑榪樻湁GLUT_INDEX錛堣〃紺轟嬌鐢ㄧ儲寮曢鑹詫級銆侴LUT_SINGLE琛ㄧず浣跨敤鍗曠紦鍐詫紝涓庝箣瀵瑰簲鐨勮繕鏈塆LUT_DOUBLE錛堜嬌鐢ㄥ弻緙撳啿錛夈傛洿澶氫俊鎭紝璇瘋嚜宸盙oogle銆傚綋鐒朵互鍚庣殑鏁欑▼涔熶細鏈変竴浜涜瑙c?br>3銆乬lutInitWindowPosition錛岃繖涓畝鍗曪紝璁劇疆紿楀彛鍦ㄥ睆騫曚腑鐨勪綅緗?br>4銆乬lutInitWindowSize錛岃繖涓篃綆鍗曪紝璁劇疆紿楀彛鐨勫ぇ灝忋?br>5銆乬lutCreateWindow錛屾牴鎹墠闈㈣緗殑淇℃伅鍒涘緩紿楀彛銆傚弬鏁板皢琚綔涓虹獥鍙g殑鏍囬銆傛敞鎰忥細紿楀彛琚垱寤哄悗錛屽茍涓嶇珛鍗蟲樉紺哄埌灞忓箷涓娿傞渶瑕佽皟鐢╣lutMainLoop鎵嶈兘鐪嬪埌紿楀彛銆?br>6銆乬lutDisplayFunc錛岃緗竴涓嚱鏁幫紝褰撻渶瑕佽繘琛岀敾鍥炬椂錛岃繖涓嚱鏁板氨浼氳璋冪敤銆傦紙榪欎釜璇存硶涓嶅鍑嗙‘錛屼絾鍑嗙‘鐨勮娉曞彲鑳藉垵瀛﹁呬笉澶ソ鐞嗚В錛屾殏鏃惰繖鏍瘋鍚э級銆?br>7銆乬lutMainLoop錛岃繘琛屼竴涓秷鎭驚鐜傦紙榪欎釜鍙兘鍒濆鑰呬篃涓嶅お鏄庣櫧錛岀幇鍦ㄥ彧闇瑕佺煡閬撹繖涓嚱鏁板彲浠ユ樉紺虹獥鍙o紝騫朵笖絳夊緟紿楀彛鍏抽棴鍚庢墠浼氳繑鍥烇紝榪欏氨瓚沖浜嗐傦級
鍦╣lutDisplayFunc鍑芥暟涓紝鎴戜滑璁劇疆浜?#8220;褰撻渶瑕佺敾鍥炬椂錛岃璋冪敤myDisplay鍑芥暟”銆備簬鏄痬yDisplay鍑芥暟灝辯敤鏉ョ敾鍥俱傝瀵?myDisplay涓殑涓変釜鍑芥暟璋冪敤錛屽彂鐜板畠浠兘浠l寮澶淬傝繖縐嶄互gl寮澶寸殑鍑芥暟閮芥槸OpenGL鐨勬爣鍑嗗嚱鏁幫紝涓嬮潰瀵圭敤鍒扮殑鍑芥暟榪涜浠嬬粛銆?br>1銆乬lClear錛屾竻闄ゃ侴L_COLOR_BUFFER_BIT琛ㄧず娓呴櫎棰滆壊錛実lClear鍑芥暟榪樺彲浠ユ竻闄ゅ叾瀹冪殑涓滆タ錛屼絾榪欓噷涓嶄綔浠嬬粛銆?br>2銆乬lRectf錛岀敾涓涓煩褰€傚洓涓弬鏁板垎鍒〃紺轟簡浣嶄簬瀵硅綰夸笂鐨勪袱涓偣鐨勬í銆佺旱鍧愭爣銆?br>3銆乬lFlush錛屼繚璇佸墠闈㈢殑OpenGL鍛戒護绔嬪嵆鎵ц錛堣屼笉鏄瀹冧滑鍦ㄧ紦鍐插尯涓瓑寰咃級銆傚叾浣滅敤璺焒flush(stdout)綾諱技銆?
]]>