このページでは

QRhiGles2InitParams Struct

OpenGL固有の初期化パラメータ。詳細...

ヘッダー: #include <rhi/qrhi.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS GuiPrivate)
target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate)
qmake: QT += gui-private
以下のように: Qt 6.6
継承元: QRhiInitParams

パブリック関数

パブリック変数

QSurface *fallbackSurface
QSurfaceFormat format
QOpenGLContext *shareContext
QWindow *window

静的パブリックメンバー

QOffscreenSurface *newFallbackSurface(const QSurfaceFormat &format = QSurfaceFormat::defaultFormat())

詳細な説明

注:これは 互換性の保証が限定的な RHI API です。詳細については、QRhi を参照してください。

OpenGL ベースの `QRhi ` には、`QOpenGLContext` と組み合わせて使用できる、あらかじめ作成済みの `QSurface ` が必要です。実際には、ほとんどの場合、これは `QOffscreenSurface ` です。また、必須ではありませんが、最初の `QRhiSwapChain ` がターゲットとする `QWindow ` も併せて渡すことをお勧めします。

QOffscreenSurface *fallbackSurface = QRhiGles2InitParams::newFallbackSurface();
QRhiGles2InitParams params;
params.fallbackSurface = fallbackSurface;
params.window = window;
rhi = QRhi::create(QRhi::OpenGLES2, &params);

デフォルトでは、QRhi は独自にQOpenGLContext を作成します。このアプローチは、レンダリングスレッドごとに専用のQRhi が存在するスレッド化されたシナリオを含め、ほとんどの場合にうまく機能します。各QRhi に対してQOpenGLContext が存在するため、OpenGLコンテキストの要件(1つのコンテキストは1つのスレッドでのみアクティブにできる)が満たされます。暗黙的に作成されたコンテキストは、QRhi とともに自動的に破棄されます。

コンテキストのQSurfaceFormat は、format で指定されます。コンストラクタはこれをQSurfaceFormat::defaultFormat()に設定するため、コンストラクタが実行される前に適切な設定でQSurfaceFormat::setDefaultFormat()を呼び出すアプリケーションは、format の値を変更する必要がありません。

注: レンダラーが深度テストまたはステンシルテストに依存する場合は、深度およびステンシルバッファのサイズを 24 および 8 に設定することを忘れないでください 。これは、グローバルなデフォルトの `QSurfaceFormat` 内で設定するか、あるいは、関連するすべての `QSurfaceFormat ` インスタンスで個別に設定します。具体的には、`format` 内、`newFallbackSurface()` に渡される `format` 引数、および `QRhi` とともに使用される `QWindow ` すべてで設定します。

QSurface はfallbackSurface 内で指定する必要があります。スレッド環境でのミスを防ぐため、QRhi によってこれが自動的に作成されることはありません。これは、QWindow と同様に、QSurface のサブクラスのインスタンスが、多くの場合、GUI/メインスレッド上でのみ作成可能であるためです。

利便性のため、アプリケーションはnewFallbackSurface()を使用できます。これは、その後QRhi によって生成されるQOpenGLContext と互換性のあるQOffscreenSurface を生成して返します。返されたQOffscreenSurface の所有権は呼び出し元に譲渡され、QRhi はそれを破棄しないことに注意してください。

注: OpenGL バックエンドの場合 、QRhiSwapChain は、サーフェスタイプがQSurface::OpenGLSurface に設定されているQWindow インスタンスのみを対象とすることができます。

注: window は オプションです。マルチアダプタおよびマルチスクリーンシステムでの問題を回避するため、可能な限りこれを指定することを推奨します。window が設定されていない場合、最初のQOpenGLContext::makeCurrent()はfallbackSurface で行われます。これは一部のプラットフォーム(例:Windows)では非表示のウィンドウとなる可能性があり、場合によっては予期せぬ問題を引き起こす可能性があります。

既存のQOpenGLContext とのリソース共有を希望する場合は、shareContext を既存のQOpenGLContext に設定できます。あるいは、有効になっている場合、Qt::AA_ShareOpenGLContexts も同様に受け入れられます。

既存の OpenGL コンテキストとの連携

別のグラフィックスエンジンと相互運用する場合、同じ OpenGL コンテキストを使用する `QRhi ` インスタンスを取得する必要がある場合があります。これは、`QRhiGles2NativeHandles ` へのポインタを `QRhi::create()` に渡すことで実現できます。その際、`QRhiGles2NativeHandles::context ` は null 以外の値に設定されている必要があります。

別の方法として、他のエンジンのコンテキストをshares resources として使用するように設定されたQOpenGLContext を作成し、そのコンテキストをQRhiGles2NativeHandles に引数として渡す方法もあります。

QRhi は、QRhiGles2NativeHandles を通じて渡されたQOpenGLContext の所有権を取得しません。

メンバ関数のドキュメント

QRhiGles2InitParams::QRhiGles2InitParams()

新しい QRhiGles2InitParams を作成します。

format QSurfaceFormat::defaultFormat() に設定されます。

[static] QOffscreenSurface *QRhiGles2InitParams::newFallbackSurface(const QSurfaceFormat &format = QSurfaceFormat::defaultFormat())

QRhiGles2InitParams を介してQRhi に渡し、それとともに使用できる新しいQOffscreenSurface を返します。

format が指定されていない場合、そのデフォルト値はQSurfaceFormat::setDefaultFormat()で設定可能なグローバルなデフォルト形式となります。

format は、コンテキストとサーフェスの非互換性による後々の問題を回避するために、必要に応じて調整されます。

注:この関数は 、GUI/メインスレッド上、またはプラットフォームの統合がオフスクリーン・サーフェスをサポートしている場合にのみ呼び出す必要があります。

注: 関連付けられたQRhi が破棄された後、gui/メインスレッド上で返されたQOffscreenSurface を破棄するのは、アプリケーションの責任です 。QRhi はQOffscreenSurface を破棄しません。

メンバ変数のドキュメント

QSurface *QRhiGles2InitParams::fallbackSurface

format と互換性のあるQSurface です。通常はQOffscreenSurface となります。これを指定することは必須です。スレッドに関する注意点にご留意ください。QOffscreenSurface (例:QWindow )は、たとえQRhi が別のスレッドで作成・実行されている場合でも、必ずメイン(GUI)スレッド上でのみ作成および破棄されなければなりません。

QSurfaceFormat QRhiGles2InitParams::format

QSurfaceFormat 。デフォルトでは、QSurfaceFormat::defaultFormat() で初期化されます。

QOpenGLContext *QRhiGles2InitParams::shareContext

オプションで、リソースを共有するQOpenGLContext を指定できます。QRhi は独自のコンテキストを作成しますが、このメンバーに有効なQOpenGLContext を設定すると、そのコンテキストを使用してsetShareContext()が呼び出されます。

QWindow *QRhiGles2InitParams::window

オプションですが、QRhi を使用してQWindow をターゲットにする場合は、この設定を行うことをお勧めします。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.