19

オフスクリーン レンダリング用のウィンドウレス OpenGL プログラムを作成する最も簡単な方法を見つけようとしています。

現在、私はこれを使用していますが、これまでのところ正常に動作しています: (わかりやすくするために、ここではエラーチェックを削除しました)

BOOL create_opengl_context(){
    GLuint PixelFormat;
    static PIXELFORMATDESCRIPTOR pfd;
    hDC = GetDC(NULL);
    PixelFormat = ChoosePixelFormat(hDC, &pfd);
    SetPixelFormat(hDC, PixelFormat, &pfd);
    hRC = wglCreateContext(hDC);
    wglMakeCurrent(hDC, hRC);
}

これは安全に使用できますか? ウィンドウなしの OpenGL プログラムを作成する「標準的な」方法は何ですか?

編集:オフスクリーン レンダリングに FBO を使用しています。

4

1 に答える 1

14

純粋にウィンドウのない OpenGL の古い方法は、PBuffer を使用することです。Windows では、通常のウィンドウを使用して中間 OpenGL コンテキストを作成し、必要な拡張関数ポインターを取得する必要があります。X11/GLX では、苦労せずに動作します。

オフスクリーン レンダリングを実装する最新の方法は、通常の OpenGL コンテキストと FBO をレンダー ターゲットとして使用する通常の非表示ウィンドウを使用することです。

最前線であり、まだあまりサポートされていない方法 (特定の組み込みデバイスを除く) は、ドローアブルの作成に EGL を使用しています。

于 2012-09-18T17:45:26.963 に答える