2010-03-31 71 views
1

我已經構建了一個OpenGL Viewer控件,可以簡單地將它拖放到窗體上(在設計時)並分配OpenGL顯示列表(在運行時)。OpenGL Viewer控制和渲染上下文

查看器控件處理導航,顯示選項(例如背景顏色)等。它還負責根據需要創建和銷燬渲染和設備上下文。

顯然,每個查看器控件實例都有自己的設備上下文,即繪製圖像的'窗口'。

問題:

  • 應該如何每個觀衆控件實例管理渲染上下文?
  • 是否每個實例都有自己的上下文或共享全局渲染上下文?

我特別關心如何影響WGL字體創建(wglUseFontBitmaps and wglUseFontOutlines),這需要一個渲染上下文(無論當前上下文)和設備上下文。

  • 是否需要爲每個渲染/設備上下文組合創建每個WGL字體?

也許我的做法有缺陷。

回答

1

我會去每個控制方法的上下文。你必須記住,擴展是基於上下文的,所以你必須爲每一個你綁定它們(我使用glew_MX來處理這個)。

此外,你可以在上下文中共享顯示列表(只要它們在同一個GPU上)並且wgl字體創建會創建顯示列表,所以你應該沒問題。