的基本程序結(jié)構(gòu)
用Open GL編寫應(yīng)用程序,就相當(dāng)于在應(yīng)用程序中添加了一個(gè)三維函數(shù)庫(kù)。一般包括以下幾部分。①窗口的定義。規(guī)定了三維圖形在窗口坐標(biāo)系中的顯示位置,定義窗口的大小和性質(zhì);②初始化。包括清緩沖區(qū)、定義光照模型、定義紋理映射、安裝顯示列表、定義霧化、定義視口等;③繪制和顯示圖形。包括三維建模、設(shè)置物體在立體空間的運(yùn)動(dòng)軌跡、變換Open GL的狀態(tài)變量、協(xié)調(diào)合理地結(jié)合應(yīng)用Open GL的各種基本操作、實(shí)現(xiàn)完美的三維圖形顯示。為了說(shuō)明Open GL的主體結(jié)構(gòu),下面為用標(biāo)準(zhǔn)C調(diào)用Open GL函數(shù)編制的一段程序樣本。
#include<GL/gl.h>
#include<GL/glu.h>
#include<GL/glaux.h>
#include<stdio.h>
void my Init(void)
void CALLBACK display(void)
void CALLBACK ny Reshape(Glsizei w,Glsizei h)
//
//初始化工作,設(shè)定清屏顏色
void my Init(void){
gl Clear Color(0.0,0.0,0.0,0.0)
}
//繪制場(chǎng)景
void CALLBACK display(void){
gl Clear(GL_COLOR_BUFFER_BIT);
gl Color4f(0.2,0.6,1.0,1.0);
gl Rotatef(60.0,1.0,1.0,1.0);
aux Wire Cube(1.0);
gl Flush();
}
//
//定義視口的大小和三維場(chǎng)景的視景體
void CALLBACK my Reshape(Glsizei w,Glsizei h){
gl Viewport(0,0,w,h);
}
//調(diào)用5個(gè)aux為前綴的函數(shù),完成窗口和事件的管理
void main(void){
aux Init Display Mode(AUX SINGLE|AUX_RGBA);//定義窗口的顯示屬性
aux Init Position(0,0,400,400);//定義了程序執(zhí)行窗口的位置和大小
aux Init Window("sample.c");
my Init();
aux Reshape Fun(my Reshape);//當(dāng)圖形輸出窗口大小變化時(shí)主程序自動(dòng)調(diào)用這個(gè)函數(shù)
aux Main Loop(display);//每次窗口建立、移動(dòng)、改變形狀和其他事件發(fā)生時(shí)需重新//繪制場(chǎng)景
}
免責(zé)聲明:以上內(nèi)容源自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請(qǐng)告知,我們將盡快刪除相關(guān)內(nèi)容。