私はOpenGLとGLFWは、同じレベルの機能を公開していないことを知っているが、ウィジェットの少数の種類が
を必要としている場合、それは、OpenGLになると、任意の制限はありませんそれ自体。あなたはどこでも何でも好きなものを描くことができます。あなたが描くことができる領域は、オペレーティングシステムの側面からの制限要因です。
テキストボックスのような「シンプル」な機能は、すでに複雑なものです。レンダリングを処理するだけでなく、スケーラブルなテキストが常に楽しいとは限りませんが、キーボードイベントも処理する必要があります。カーソルやテキストの選択などを描く。
たとえば、私はウィンドウ領域の外にあるメニューを描画することに心配しています(この場合は、非装飾の補助ウィンドウが使用できると思います)。
ウィンドウ領域外に描画する場合、これはOpenGLに直接関係しません。 OSによってはもっと問題になります。
WinAPIのを使用してたとえば、あなたは、単に行うことによって、画面上の任意の場所に描くことができます:画面がその領域を再描画するとき矩形がすぐに消えてしまうこと
#include <Windows.h>
int main(int argc, char **argv)
{
HWND desktop = GetDesktopWindow();
HDC dc = GetDC(desktop);
RECT rect = { 20, 20, 200, 200 };
HBRUSH brush = CreateSolidBrush(RGB(0, 0, 255));
FillRect(dc, &rect, brush);
return 0;
}
注意を。
すでにウィンドウがある場合、SetWindowRgn()
を使用して、アプリケーションで描画できる領域を変更できます。このエリアを変更することはできません。すべてがうまくいくでしょう。
QtやGTKとは対照的に、GLFW/OpenGLの上に実装できない機能がありますか?
ボトムラインではありません。 QtやGTKにあるOpenGLで実装できない機能はありません。要点は、OpenGLだけではなく、オペレーティングシステムに依存することが多いため、OS固有のコードが必要です。
私はOpenGLですべてをレンダリングできることを知っていますが、OSが物事を制限する可能性があることを指摘しています。 WinAPIについて言及しました。私の質問は、Qt/GtkよりもGLFW(OS固有のコードを使用しない)を選択することによってどのようなOS関連の制限事項がありますか? – dv1729
@ dv1729それは最終目標が何であるかによって大きく左右されます。ウィンドウ領域外の描画が重要な要素である場合、OSライブラリを使用しないと(これは他のクロスプラットフォームライブラリを使用しない限り)可能性が高いです。しかしそれ以外には、それ自体に制限はありません。 – Vallentin