2014-01-26 68 views
-2

在C++中,我們習慣於看到OpenGL是安裝在主function.Such原樣如何在沒有主線路的情況下初始化過剩?

int main(int argv,char **argc){ 
     glutInit(&argv,argc); 
     glutInitDisplayMode(GLUT_DOUBLE| GLUT_RGB|GLUT_DEPTH); 

.............................. 
} 

但是,如果沒有這個主函數中,我們如何能夠在聲明其他子功能的OpenGL? 如 -

int main(){ 
...........} 

int installopengl(int argv,char **argc){ 
glutInit(&argv,argc); 


glutInitDisplayMode(GLUT_DOUBLE| GLUT_RGB|GLUT_DEPTH); 

.............................. 
} 
+0

呵呵...什麼...? – 2014-01-26 16:11:59

+0

如何調用該函數? – Vallentin

回答

1

雖然也在躍躍欲試地不推薦它,你總是可以做到這一點:

int i = 0; 
glutInit(&i, NULL); 

問題用這種方式做的是,你不能對任何信息的命令傳遞到glut庫線。

3

也許我誤解了 - 爲什麼不能直接調用像下面的功能?

int main(int argv,char **argc) { 
    installopengl(argv, argc); 

    ........... 
} 

int installopengl(int argv,char **argc) { 
    glutInit(&argv,argc); 
    glutInitDisplayMode(GLUT_DOUBLE| GLUT_RGB|GLUT_DEPTH); 

    .............................. 
} 
+1

可能是因爲他/她在嘗試開始學習OpenGL之前,他/她實際上已經知道該語言本身。 – Vallentin

+0

哦,是的,現在我明白了。看起來像我必須在我的主要功能中稱呼它。謝謝你,兄弟,@ Vallentin。我是一個noob,並開始學習opengl。再次感謝你的兄弟(Y) –

2

請把你的術語說得對。在程序中,OpenGL不是安裝。它得到了初始化

此外,您引用的模式是GLUT初始化。 GLUT不是OpenGL,而是一個簡單的窗口框架,它創建了一個OpenGL上下文供您用來繪製窗口。但還有其他幾個框架。

那麼你似乎完全誤解了主要功能的作用。 main是程序入口點,在運行環境已建立後,在進程中被調用的第一個函數。 main可以調用任何函數,並且你可以簡單地在那裏調用一個專門的框架初始化。如果它需要來自主體的參數,則只需傳遞它們即可。

+0

現在我明白了。感謝你的兄弟。 :) –

相關問題