在網路上搜尋了一下關於複數視窗繪圖的資訊
發現使用Direct 3D就只能用一個視窗繪圖
有人建議一個視窗用Direct 3D而另一個視窗用OpenGL就可以了
實作上也確實可行
而且作法直覺簡單所以不說明了
我這篇要介紹的是如何使用兩個OpenGL視窗來描繪畫面
這在遊戲程式上大概沒什麼用途
不過工具程式的話倒不是沒用處
要使用兩個OpenGL視窗只要解決以下幾點
- 開啟兩個視窗
- 使用wglShareLists()將兩個HGLRC連起來
- 大部分gl開頭的函式在使用前要用wglMakeCurrent()將描繪對象切換到指定視窗
就這樣並不難
但若你不懂如何使用WindowsAPI的話
在第一點就卡住了
想開兩個視窗肯定是包裝成兩個物件最好管理
但是Windows體系的訊息幫浦偏偏要你餵它一個函式
而且不能放成員函式
你要另外想辦法處理
在我寫的Toy引擎裡面也有實作這功能
想看code示範的就去看看吧
就在右上的連結
Toy現在可以開兩個OpenGL視窗外加一個Direct 3D視窗
對WindowsAPI跟OpenGL不熟的可以去NeHe逛逛