詳解 Qt 寫 OpenGL 入門示例
Qt 寫 OpenGL 入門示例是本文所介紹的內容。其實我個人是很喜歡玩游戲的,為什么呢?只是因為我還無法制作游戲.所以,以前就看過一些...東西. 比如directx/opengl. 可惜無法入門,而當年拼命的記憶那個windows api版的hello world(vc++自動生成)...在一個星期后便忘記了.使得我對windows上的編程充滿了陰影(在若干年后,我終于明白你不需要去記憶具體api, 因為環境會給你提示) - windows都沒入門, 怎么開始directx哦?(不過無數次的hello world,也有好處,就是讓我明白了windows平臺的消息循環機制...這讓我在若干年后在看到qt的app.exec()時,心有靈犀的想, 哦,進入了消息循環了...)
后來自然就看看qt,看看c++、PHP就不說了,一直搞這個的)等. 還有有比如SDL一類的搞搞,但始終不得其門而入,qt有自帶的提供給opengl的窗口類的. 在我以前, 反正也試過,這樣那樣的錯誤就放棄了...
不過不知道為什么, 現在卻很簡單,(可能做任何事情都有簡單和難的時候,只是未到時間吧).,假如你也想玩玩qt opengl的話, 那么先具體下面一些東西:
(1)OpenGL編程指南 (書, 里面有代碼的,咋們參考一些)
(2)裝了qt庫和環境(windows下qt里應該有自帶opengl, 所以opengl的庫就不提了)
(3)編譯器
那么我們就開始了...反正是很簡單的入門...寫個main.cpp, 如下
- yarco@coto ~/Documents/test/1 $ cat main.cpp
- #include <QApplication>
- #include "MyWidget.h"
- int main(int argc, char* argv[]) // 感慨一下: 萬年不變的argc, argv阿,讓每個程序員都感到親切
- {
- QApplication app(argc, argv);
- MyWidget w;
- w.show();
- return app.exec();
- }
然后就是我們自己定義的類MyWidget:
- yarco@coto ~/Documents/test/1 $ cat MyWidget.h
- #include <QGLWidget>
- class MyWidget : public QGLWidget
- {
- public:
- MyWidget(QWidget* parent = 0) : QGLWidget(parent) {}
- protected:
- void initializeGL();
- void resizeGL(int w, int h);
- void paintGL();
- };
- // qt文檔里的哦
- // 三個xxxGL必須實現
- // 也就是在這里,我們就可以使用opengl的指令了哦...
- yarco@coto ~/Documents/test/1 $ cat MyWidget.cpp
- #include "MyWidget.h"
- void MyWidget::initializeGL()
- {
- }
- void MyWidget::resizeGL(int w, int h)
- {
- }
- void MyWidget::paintGL()
- {
- renderText(20, 100, "Hello, My first OpenGL app.");
- }
- // 啥都沒有,只有調用qt提供的renderText來輸出文字
然后就是qt的編譯步驟了...(不詳細描述)
結果的效果圖如下:
小結:詳解 Qt 寫 OpenGL 入門示例的內容介紹完了,希望本文對你有所幫助!