OpenGL學習之顯示表

2021-06-25 14:47:35 字數 1429 閱讀 3039

顯示表這個概念,我剛開始接觸的時候,我以為是個類似於下拉列表之類的東西,誰知道,我完全就理解錯了,顯示表相當於函式的概念,但還是不太一樣,opengl中顯示表中只能包含opengl的函式,不能包含類似於判定迴圈等語句

先看**,在螢幕中畫6根線

其他部分基本上和之前的程式我認為沒有太大的區別

opengl提供類似於繪圖的結構,glbegin()和glend(),其相應的格式如下

void glnewlist(gluint list,glenum mode);

void glendlist(void);

glnewlist()函式說明乙個顯示列表的開始,其後的opengl函式存入顯示列表中,直至呼叫結束表的函式glendlist(void)。glnewlist()函式中的引數list是乙個正整數,它標誌唯一的顯示列表;引數mode的可能值有gl_compile和gl_compile_and_execute;若要使列表中函式語句只存入而不執行,則用gl_compile;若要使列表中的函式語句存入表中且按瞬時方式執行一次,則用gl_compile_and_execute。

注意:並不是所有的opengl函式都可以在顯示列表中儲存且通過顯示列表執行。一般來說,用於傳遞引數或返回數值的函式語句不能存入顯示列表,因為這張表有可能在引數的作用域之外被呼叫;如果在定義顯示列表時呼叫了這樣的函式,則它們將按瞬時方式執行並且不儲存在顯示列表中,有時在呼叫執行顯示列表函式時會產生錯誤。以下列出的是不能存入顯示列表的opengl函式:

gldeletelists()    glisenable()

glfeedbackbuffer()   glislist()

glfinish()       glpixelstore()

glgenlists()      glrendermode()

glget*()        glselectbuffer()

在建立顯示列表以後就可以呼叫執行顯示列表的函式來執行它,並且允許在程式中多次執行同一顯示列表,同時也可以與其它函式的瞬時方式混合使用。顯示列表執行的函式形式如下:

void glcalllist(gluint list);

引數list指定被執行的顯示列表。顯示列表中的函式語句按它們被存放的順序依次執行;若list沒有定義,則不會產生任何事情。

OpenGL學習筆記之了解OpenGL

opengl 全寫open graphicslibrary 是個定義了乙個跨程式語言 跨平台的程式設計介面規格的專業的圖形程式介面。它用於三維影象 二維的亦可 是乙個功能強大,呼叫方便的底層圖形庫。說白了,就是opengl是乙個開放的三維圖形軟體包,它獨立於視窗系統和作業系統,以它為基礎開發的應用程...

opengl顯示文字

wglusefontbitmaps 函式顯示文字 使用wglusefontbitmaps 將ascii字元裝入顯示列表,然後使用glcalllists 函式利用顯示列表序列顯示文字。wglusefontbitmaps有四個引數,分別是當前使用的dc 從第幾個ascii字元起始裝入列表 裝入列表的as...

OpenGL 顯示列表

原 文 lesson 12 display lists 譯 者 marhoo 這次我將教你如何使用顯示列表,顯示列表將加快程式的速度,而且可以減少 的長度。當你在製作遊戲裡的小行星場景時,每一層上至少需要兩個行星,你可以用opengl中的多邊形來構造每乙個行星。聰明點的做法是做乙個迴圈,每個迴圈畫出...