QSurfaceFormat Class
QSurfaceFormatクラスは、QSurface... 続きを読む
ヘッダー | #include <QSurfaceFormat> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
パブリックな型
enum | ColorSpace { DefaultColorSpace, sRGBColorSpace } |
enum | FormatOption { StereoBuffers, DebugContext, DeprecatedFunctions, ResetNotification, ProtectedContent } |
flags | FormatOptions |
enum | OpenGLContextProfile { NoProfile, CoreProfile, CompatibilityProfile } |
enum | RenderableType { DefaultRenderableType, OpenGL, OpenGLES, OpenVG } |
enum | SwapBehavior { DefaultSwapBehavior, SingleBuffer, DoubleBuffer, TripleBuffer } |
パブリック関数
QSurfaceFormat() | |
QSurfaceFormat(QSurfaceFormat::FormatOptions options) | |
QSurfaceFormat(const QSurfaceFormat &other) | |
~QSurfaceFormat() | |
int | alphaBufferSize() const |
int | blueBufferSize() const |
const QColorSpace & | colorSpace() const |
int | depthBufferSize() const |
int | greenBufferSize() const |
bool | hasAlpha() const |
int | majorVersion() const |
int | minorVersion() const |
QSurfaceFormat::FormatOptions | options() const |
QSurfaceFormat::OpenGLContextProfile | profile() const |
int | redBufferSize() const |
QSurfaceFormat::RenderableType | renderableType() const |
int | samples() const |
void | setAlphaBufferSize(int size) |
void | setBlueBufferSize(int size) |
(since 6.0) void | setColorSpace(const QColorSpace &colorSpace) |
void | setDepthBufferSize(int size) |
void | setGreenBufferSize(int size) |
void | setMajorVersion(int major) |
void | setMinorVersion(int minor) |
void | setOption(QSurfaceFormat::FormatOption option, bool on = true) |
void | setOptions(QSurfaceFormat::FormatOptions options) |
void | setProfile(QSurfaceFormat::OpenGLContextProfile profile) |
void | setRedBufferSize(int size) |
void | setRenderableType(QSurfaceFormat::RenderableType type) |
void | setSamples(int numSamples) |
void | setStencilBufferSize(int size) |
void | setStereo(bool enable) |
void | setSwapBehavior(QSurfaceFormat::SwapBehavior behavior) |
void | setSwapInterval(int interval) |
void | setVersion(int major, int minor) |
int | stencilBufferSize() const |
bool | stereo() const |
QSurfaceFormat::SwapBehavior | swapBehavior() const |
int | swapInterval() const |
bool | testOption(QSurfaceFormat::FormatOption option) const |
QPair<int, int> | version() const |
QSurfaceFormat & | operator=(const QSurfaceFormat &other) |
静的パブリックメンバ
QSurfaceFormat | defaultFormat() |
void | setDefaultFormat(const QSurfaceFormat &format) |
関連する非メンバー
bool | operator!=(const QSurfaceFormat &lhs, const QSurfaceFormat &rhs) |
bool | operator==(const QSurfaceFormat &lhs, const QSurfaceFormat &rhs) |
詳細説明
フォーマットには、赤、緑、青のカラーバッファのサイズ、アルファバッファのサイズ、深度バッファとステンシルバッファのサイズ、マルチサンプリングのためのピクセルあたりのサンプル数が含まれます。さらに、このフォーマットには、レンダリング用の OpenGL プロファイルやバージョン、ステレオバッファを有効にするかどうか、スワップ動作などのサーフェス設定パラメータが含まれています。
注: コンテキストやウィンドウ・フォーマットの問題をトラブルシューティングす るときは、ロギング・カテゴリqt.qpa.gl
を有効にすると便利です。プラットフォームによっては、OpenGL の初期化や、QSurfaceFormat がマッピングされるネイティブのビジュアルやフレームバッファの設定に関して、有用なデバッグ情報が表示されることがあります。
メンバ型ドキュメント
enum QSurfaceFormat::ColorSpace
この列挙型は優先色空間を指定するために使用され、ウィンドウに関連付けられたデフォルトのフレームバッファが、標準の線形操作の代わりに、指定されたエンコーディングで更新とブレンドを行うことができるかどうかを制御する。
定数 | 値 | 説明 |
---|---|---|
QSurfaceFormat::DefaultColorSpace | 0 | デフォルトの指定されていない色空間。 |
QSurfaceFormat::sRGBColorSpace | 1 | GL_ARB_framebuffer_sRGB またはGL_EXT_framebuffer_sRGB がプラットフォームでサポートされていて、この値が設定されている場合、ウィンドウは sRGB 対応のデフォルトフレームバッファで作成されます。プラットフォームによっては、明示的に要求されていなくても、sRGB 対応のデフォルトフレームバッファを持つウィンドウを返す場合があることに注意してください。 |
enum QSurfaceFormat::FormatOption
flags QSurfaceFormat::FormatOptions
この enum には、QSurfaceFormat で使用するためのフォーマットオプションが含まれています。
定数 | 値 | 説明 |
---|---|---|
QSurfaceFormat::StereoBuffers | 0x0001 | サーフェスフォーマットでステレオバッファを要求するために使用されます。 |
QSurfaceFormat::DebugContext | 0x0002 | デバッグ情報を追加したデバッグコンテキストを要求するために使用します。 |
QSurfaceFormat::DeprecatedFunctions | 0x0004 | 非推奨関数を OpenGL コンテキストプロファイルに含めるように要求するために使用します。指定しない場合は、非推奨とマークされた機能をサポートしない前方互換性のあるコンテキストを取得する必要があります。これにはOpenGLバージョン3.0以上が必要です。 |
QSurfaceFormat::ResetNotification | 0x0008 | OpenGLコンテキストのリセットに関する通知を有効にします。ステータスは、コンテキストのisValid() 関数で問い合わせ可能です。このフラグを設定しないからといって、コンテキストの状態が失われないという保証はないことに注意してください。さらに、実装によっては、このフラグに関係なく、コンテキストの消失を報告することもあります。WGLを使用するWindowsやGLXを使用するLinux/X11(xcb)など、コンテキストの喪失の監視を動的に有効にすることをサポートするプラットフォームでは、makeCurrent ()のすべての呼び出しで状態を監視します。これについては、isValid ()を参照のこと。 |
QSurfaceFormat::ProtectedContent | 0x0010 | 保護されたコンテンツへのアクセスを有効にします。これにより、GPUは保護されたリソース(サーフェス、バッファ、テクスチャ)、たとえばDRMで保護されたビデオコンテンツを操作できるようになります。現在は EGL に対してのみ実装されています。 |
FormatOptions 型はQFlags<FormatOption> の typedef です。これは、FormatOption 値の OR の組み合わせを格納します。
enum QSurfaceFormat::OpenGLContextProfile
この列挙型は、QSurfaceFormat::setMajorVersion() とQSurfaceFormat::setMinorVersion() とともに、OpenGLコンテキスト・プロファイルを指定するために使用される。
プロファイルはOpenGL 3.2以上で公開され、制限されたコアプロファイルと、非推奨のサポート機能を含むかもしれない互換性プロファイルのどちらかを選択するために使用されます。
コア・プロファイルには、非推奨で、より高いバージョンで削除される予定の機能がまだ含まれているかもしれないことに注意してください。設定されたOpenGLバージョンのコアプロファイルの非推奨機能にアクセスするには、QSurfaceFormat フォーマットオプションQSurfaceFormat::DeprecatedFunctions を使用できます。
定数 | 値 | 説明 |
---|---|---|
QSurfaceFormat::NoProfile | 0 | OpenGLのバージョンが3.2より低い。3.2以降ではCoreProfileと同じ。 |
QSurfaceFormat::CoreProfile | 1 | OpenGLバージョン3.0で廃止された機能は使用できません。 |
QSurfaceFormat::CompatibilityProfile | 2 | 以前のOpenGLバージョンの機能は利用可能です。 |
enum QSurfaceFormat::RenderableType
この列挙型は、サーフェスのレンダリングバックエンドを指定します。
定数 | 値 | 説明 |
---|---|---|
QSurfaceFormat::DefaultRenderableType | 0x0 | デフォルトのレンダリング方法 |
QSurfaceFormat::OpenGL | 0x1 | デスクトップOpenGLレンダリング |
QSurfaceFormat::OpenGLES | 0x2 | OpenGL ES 2.0レンダリング |
QSurfaceFormat::OpenVG | 0x4 | Open Vector Graphicsレンダリング |
enum QSurfaceFormat::SwapBehavior
この列挙型はQSurfaceFormat 、サーフェスのスワップ動作を指定するために使用される。スワップ動作はアプリケーションにはほとんど透過的ですが、レンダリングレイテンシやスループットなどの要素に影響します。
定数 | 値 | 説明 |
---|---|---|
QSurfaceFormat::DefaultSwapBehavior | 0 | プラットフォームのデフォルトのスワップ動作。 |
QSurfaceFormat::SingleBuffer | 1 | OpenGLレンダリングが中間オフスクリーンバッファなしでスクリーンに直接行われるとき、ちらつきを生じるかもしれないシングルバッファリングを要求するために使用される。 |
QSurfaceFormat::DoubleBuffer | 2 | これは通常、デスクトッププラットフォームのデフォルトのスワップ動作であり、1つのバックバッファと1つのフロントバッファで構成される。レンダリングはバックバッファに対して行われ、その後、バックバッファとフロントバッファがスワップされるか、バックバッファの内容がフロントバッファにコピーされます(実装によって異なります)。 |
QSurfaceFormat::TripleBuffer | 3 | このスワップ動作は、レンダリングレートが画面のリフレッシュレートにぎりぎり追いついているときにフレームをスキップするリスクを減らすために使われることがあります。プラットフォームによっては、パイプライン動作が改善されるため、GPU の使用効率がわずかに向上することもあります。トリプルバッファリングは、メモリ使用量とレイテンシの余分なフレームを犠牲にします。 |
メンバー関数ドキュメント
QSurfaceFormat::QSurfaceFormat()
デフォルトで初期化された QSurfaceFormat を構築します。
注: デフォルトでは、OpenGL 2.0が要求されます。これは、プラットフォームとOpenGL実装の間で最高の移植性を提供するためです。
QSurfaceFormat::QSurfaceFormat(QSurfaceFormat::FormatOptions options)
与えられたフォーマットoptions で QSurfaceFormat を構築します。
QSurfaceFormat::QSurfaceFormat(const QSurfaceFormat &other)
other のコピーを作成する。
[noexcept]
QSurfaceFormat::~QSurfaceFormat()
QSurfaceFormat を破壊する。
int QSurfaceFormat::alphaBufferSize() const
カラーバッファのアルファチャンネルのサイズをビット単位で取得します。
setAlphaBufferSize()も参照 。
int QSurfaceFormat::blueBufferSize() const
カラーバッファの青チャンネルのサイズをビット単位で取得します。
setBlueBufferSize()も参照 。
const QColorSpace &QSurfaceFormat::colorSpace() const
色空間を返します。
setColorSpace()も参照 。
[static]
QSurfaceFormat QSurfaceFormat::defaultFormat()
グローバルなデフォルトのサーフェスフォーマットを返す。
setDefaultFormat() が呼び出されない場合、これはデフォルトで構築されたQSurfaceFormat となる。
setDefaultFormat()も参照してください 。
int QSurfaceFormat::depthBufferSize() const
深度バッファのサイズを返します。
setDepthBufferSize()も参照 。
int QSurfaceFormat::greenBufferSize() const
カラーバッファの緑チャンネルのサイズをビット単位で取得します。
setGreenBufferSize()も参照 。
bool QSurfaceFormat::hasAlpha() const
アルファバッファサイズが0より大きい場合、true
を返す。
これは、サーフェスがピクセルごとの半透明効果で使用される可能性があることを意味します。
int QSurfaceFormat::majorVersion() const
OpenGLのメジャーバージョンを返す。
デフォルトのバージョンは2.0です。
setMajorVersion()も参照 。
int QSurfaceFormat::minorVersion() const
OpenGLのマイナーバージョンを返す。
setMinorVersion()も参照 。
QSurfaceFormat::FormatOptions QSurfaceFormat::options() const
現在設定されている書式オプションを返す。
setOption()、setOptions() およびtestOption()も参照 。
QSurfaceFormat::OpenGLContextProfile QSurfaceFormat::profile() const
設定されたOpenGLコンテキスト・プロファイルを取得する。
要求されたOpenGLのバージョンが3.2未満の場合、この設定は無視される。
setProfile()も参照 。
int QSurfaceFormat::redBufferSize() const
カラーバッファの赤チャンネルのビットサイズを取得します。
setRedBufferSize()も参照 。
QSurfaceFormat::RenderableType QSurfaceFormat::renderableType() const
レンダラブルタイプを取得します。
デスクトップOpenGL、OpenGL ES、OpenVG から選択します。
setRenderableType()も参照 。
int QSurfaceFormat::samples() const
マルチサンプリングが有効な場合はピクセルあたりのサンプル数を、マルチサンプリングが無効な場合は-1
を返します。デフォルトの戻り値は-1
。
setSamples()も参照 。
void QSurfaceFormat::setAlphaBufferSize(int size)
カラーバッファのアルファチャンネルの希望するsize をビット単位で設定する。
alphaBufferSize()も参照 。
void QSurfaceFormat::setBlueBufferSize(int size)
カラーバッファの青チャンネルの希望するsize をビット単位で設定する。
blueBufferSize()も参照 。
[since 6.0]
void QSurfaceFormat::setColorSpace(const QColorSpace &colorSpace)
優先colorSpace を設定する。
例えば、これはsRGBをサポートするプラットフォーム上で、sRGBに対応したデフォルトのフレームバッファを持つウィンドウを要求することを可能にする。
注意: 要求された色空間がプラットフォームによってサポートされていない場合、要求は無視される。ウィンドウ作成後にQSurfaceFormat に問い合わせて、色空間要求が受け入れられるかどうかを確認する。
注意: この設定は、ウィンドウのデフォルトのフレームバッファが、指定された色空間で更新およびブレンドできるかどうかを制御します。それ自体でアプリケーションの出力が変わることはありません。アプリケーションのレンダリングコードは、標準的な線形操作を使用する代わりに、指定された色空間で更新とブレンドを実行できるようにするために、適切なOpenGLコールを使用する必要があります。
この関数は Qt 6.0 で導入されました。
colorSpace()も参照してください 。
[static]
void QSurfaceFormat::setDefaultFormat(const QSurfaceFormat &format)
グローバル・デフォルト・サーフェスformat を設定します。
このフォーマットは、QOpenGLContext,QWindow,QOpenGLWidget および同様のクラスでデフォルトで使用されます。
この書式は、そのクラス独自のsetFormat()関数を使用することで、常にインスタンスごとにオーバーライドすることができます。しかし、アプリケーションの開始時にすべてのウィンドウのフォーマットを一度に設定する方が便利な場合がよくあります。この関数を使用してフォーマットを設定すると、Qtが内部的に作成したものであっても、すべてのコンテキストとサーフェスが同じフォーマットを使用することが保証されるためです。
注意: Qt::AA_ShareOpenGLContexts を設定する場合、この関数の呼び出しをQGuiApplication またはQApplication の構築の前に行うことを強く推奨します。そうしないと、format がグローバル共有コンテキストに適用されないため、その後のコンテキスト共有で問題が発生する可能性があります。
defaultFormat()も参照のこと 。
void QSurfaceFormat::setDepthBufferSize(int size)
デプスバッファの最小サイズをsize に設定する。
depthBufferSize()も参照のこと 。
void QSurfaceFormat::setGreenBufferSize(int size)
カラーバッファの緑チャンネルの希望するsize をビット単位で設定する。
greenBufferSize()も参照 。
void QSurfaceFormat::setMajorVersion(int major)
希望するmajor OpenGL バージョンを設定する。
majorVersion()も参照 。
void QSurfaceFormat::setMinorVersion(int minor)
希望のminor OpenGLバージョンを設定します。
デフォルトは2.0です。
minorVersion()も参照 。
void QSurfaceFormat::setOption(QSurfaceFormat::FormatOption option, bool on = true)
on が true ならばフォーマットオプションoption を設定し、そうでなければオプションをクリアする。
オプションが尊重されたことを確認するには、サーフェス/コンテキスト作成後に、実際の書式と要求された書式を比較する。
setOptions(),options(),testOption()も参照 。
void QSurfaceFormat::setOptions(QSurfaceFormat::FormatOptions options)
フォーマットオプションをoptions に設定する。
オプションが尊重されたことを確認するには、サーフェス/コンテキスト作成後に、実際の書式と要求された書式を比較する。
options() およびtestOption()も参照 。
void QSurfaceFormat::setProfile(QSurfaceFormat::OpenGLContextProfile profile)
希望するOpenGLコンテキストを設定するprofile 。
要求されたOpenGLバージョンが3.2未満の場合、この設定は無視される。
profile()も参照 。
void QSurfaceFormat::setRedBufferSize(int size)
カラーバッファの赤チャンネルの希望するsize をビット単位で設定する。
redBufferSize()も参照 。
void QSurfaceFormat::setRenderableType(QSurfaceFormat::RenderableType type)
希望するレンダラブルを設定するtype 。
デスクトップOpenGL、OpenGL ES、OpenVG から選択する。
renderableType()も参照 。
void QSurfaceFormat::setSamples(int numSamples)
マルチサンプリングが有効な場合に、ピクセルあたりの好ましいサンプル数をnumSamples に設定する。 デフォルトでは、マルチサンプリングは無効である。
samples()も参照 。
void QSurfaceFormat::setStencilBufferSize(int size)
優先ステンシル・バッファ・サイズをsize ビットに設定する。
stencilBufferSize()も参照のこと 。
void QSurfaceFormat::setStereo(bool enable)
enable がtrueの場合はステレオ・バッファリングを有効にし、それ以外の場合はステレオ・バッファリングを無効にする。
デフォルトではステレオバッファリングは無効です。
ステレオバッファリングは、左目用と右目用の画像を生成するための追加のカラーバッファを提供します。
stereo()も参照 。
void QSurfaceFormat::setSwapBehavior(QSurfaceFormat::SwapBehavior behavior)
サーフェスのスワップbehavior を設定します。
スワップ動作は、シングル、ダブル、トリプルのいずれのバッファリングを行うかを指定する。デフォルトのDefaultSwapBehavior は、プラットフォームのデフォルトのスワップ動作を与える。
swapBehavior()も参照 。
void QSurfaceFormat::setSwapInterval(int interval)
優先スワップ間隔を設定する。スワップ間隔は、バッファスワップが発生する前に表示されるビデオフレームの最小数を指定します。これは、ウィンドウへの GL 描画を画面の垂直リフレッシュに同期させるために使用できます。
interval の値を 0 に設定すると垂直リフレッシュ同期がオフになり、0 より大きい値を設定すると垂直同期がオンになる。interval を高い値、たとえば 10 に設定すると、バッファの入れ替えのたびに垂直方向のリトレースが 10 回発生します。
デフォルトの間隔は1です。
スワップ間隔の変更は、基礎となるプラットフォームによってサポートされていない場合があります。この場合、リクエストは静かに無視される。
swapInterval()も参照のこと 。
void QSurfaceFormat::setVersion(int major, int minor)
希望のmajor およびminor OpenGL バージョンを設定します。
デフォルトのバージョンは2.0です。
version()も参照 。
int QSurfaceFormat::stencilBufferSize() const
ステンシル・バッファのサイズをビット単位で返す。
setStencilBufferSize()も参照 。
bool QSurfaceFormat::stereo() const
ステレオバッファリングが有効な場合はtrue
を返し、そうでない場合は false を返す。デフォルトでは、ステレオバッファリングは無効です。
setStereo()も参照 。
QSurfaceFormat::SwapBehavior QSurfaceFormat::swapBehavior() const
設定されているスワップ動作を返します。
setSwapBehavior()も参照 。
int QSurfaceFormat::swapInterval() const
スワップ間隔を返す。
setSwapInterval()も参照 。
bool QSurfaceFormat::testOption(QSurfaceFormat::FormatOption option) const
フォーマット・オプションoption が設定されていれば真を返し、そうでなければ偽を返す。
options()も参照 。
QPair<int, int> QSurfaceFormat::version() const
OpenGLのバージョンを表すQPair<int, int>を返す。
例えば、format.version() >= qMakePair(3, 2)のようなバージョンチェックに便利です。
setVersion()も参照 。
QSurfaceFormat &QSurfaceFormat::operator=(const QSurfaceFormat &other)
このオブジェクトにother を割り当てる。
関連する非会員
[noexcept]
bool operator!=(const QSurfaceFormat &lhs, const QSurfaceFormat &rhs)
2つのQSurfaceFormat オブジェクトlhs とrhs のすべてのオプションが等しい場合はfalse
を返し、そうでない場合はtrue
を返す。
[noexcept]
bool operator==(const QSurfaceFormat &lhs, const QSurfaceFormat &rhs)
2つのQSurfaceFormat オブジェクトlhs とrhs のすべてのオプションが等しい場合、true
を返す。
© 2025 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.