2011-01-10 5 views
2

glutCreateWindowメソッドを使用する代わりに、GLUTのカスタムウィンドウを作成/指定する方法はありますか?ボーダーを削除する、角を丸めるなどの、ウィンドウの特定の要素を変更したいと思います。HWNDハンドルをターゲットとして設定する組み込み関数はないようですGLUTウィンドウ(Windowsの場合)。GLUT用のカスタムウィンドウを作成していますか?

アイデア?
Jengerer

答えて

2

GlutとGlutが構築されているOpenGLは、クロスプラットフォームを意図しています。すべてのプラットフォームには、ウィンドウを作ることについての独自のアイデアがあります。このOpenGLを回避するには、それ自体のウィンドウの概念、またはレンダリングのコンテキストがあります。レンダリングコンテキストは、DIB(Device Independent Bitmap)がレンダリングされるメモリの塊であり、一般にウィンドウ装飾(境界線、X、ウィンドウアイコンなど)は含まれません。私が気づいていないプラットフォーム固有の拡張がない限り、GlutにHWNDを渡す方法はありません。これはWindows固有のものです。

独自のコードや別のライブラリなど、どこか別のレンダリングコンテキストを作成することができます。作成されると、このコンテキストまたはコンテキストへのポインタをGlutに渡す方法があります。 OpenGLはこれをサポートしており、その上に構築された多くのライブラリもそうです。

Glutをソリューションにリギングするのではなく、これをネイティブにサポートするライブラリを使用する方が簡単な場合は、ウィンドウ装飾を変更する理由がわかりません。私はSDLを知っています、Ogre3dはウィンドウの装飾を制御する能力が限られていますが(私はどちらもコーナーを丸めることはできません)、本当にGlutで作業したいのであれば、彼らが使用するOpenGLレンダリングコンテキストに変換します。私はQTを使用していませんが、あなたが望むコントロールに簡単にアクセスでき、OpenGLコンテキストを作成できるようになります。

しかしGlutのドキュメントhttp://www.opengl.org/documentation/specs/glut/spec3/spec3.htmlを参照した後、 "context"という単語は使用されません。これは、Glutを使用する場合、Glutが提供するウィンドウ装飾ツールに限定されることを意味します。これは、あなたがglutを落として、OSが提供するウィンドウの装飾をより多くするライブラリを使用しなければならないことを意味するかもしれません。

関連する問題