2011-01-10 81 views
2

有沒有一種方法可以爲GLUT創建/指定自定義窗口而不是使用glutCreateWindow方法?我想修改窗口的某些元素,例如刪除邊框,可能四捨五入等。爲GLUT創建自定義窗口?

似乎沒有任何內置函數來設置某個HWND句柄作爲目標GLUT窗口(在Windows上)。

任何想法?
Jengerer

回答

2

Glut構建於其上的OpenGL旨在成爲跨平臺。每個平臺都有自己的想法,關於什麼是窗戶。要解決這個OpenGL有它自己的窗口或渲染上下文的概念。渲染上下文是呈現DIB(設備無關位圖)的一塊內存,它通常不包括窗口裝飾(邊框,X,窗口圖標等)。除非有我沒有意識到的特定於平臺的擴展,否則無法將Glut傳遞給HWND,這是Windows特有的。

您可能能夠在別處創建渲染上下文,例如在您自己的代碼或另一個庫中。一旦創建,可能有辦法將此上下文或指向上下文的指針傳遞給Glut。 OpenGL支持,而且它支持許多庫。

你爲什麼要改變窗口的裝飾,如果情況允許,可能會更易於使用支持該本身,而不是索具轉運蛋白進入溶液中的圖書館我不知道。我知道SDL,Ogre3d控制窗口裝飾的能力有限(我不認爲可以繞過角落),如果你真的想與Glut一起工作,可以讓這兩個庫中的任何一個給你一個指針到他們使用的OpenGL渲染環境。我沒有使用QT,但我知道它提供了更容易訪問您想要的控件類型,並且能夠爲您創建一個OpenGL上下文。

然而,在http://www.opengl.org/documentation/specs/glut/spec3/spec3.html看的轉運蛋白的文檔後,它不使用單詞「背景」。這可能意味着如果你使用Glut,你只能使用它提供的窗口裝飾工具。這可能意味着你必須放棄過剩,並使用更多的庫,或者解決OS提供的窗口裝飾。