QSurfaceFormat Class

QSurfaceFormatクラスは、QSurface... 続きを読む

Header: #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::DefaultColorSpace0デフォルトの指定されていない色空間。
QSurfaceFormat::sRGBColorSpace1GL_ARB_framebuffer_sRGB またはGL_EXT_framebuffer_sRGB がプラットフォームでサポートされていて、この値が設定されている場合、ウィンドウは sRGB 対応のデフォルトフレームバッファで作成されます。プラットフォームによっては、明示的に要求されていなくても、sRGB 対応のデフォルトフレームバッファを持つウィンドウを返す場合があることに注意してください。

enum QSurfaceFormat::FormatOption
flags QSurfaceFormat::FormatOptions

この enum には、QSurfaceFormat で使用するためのフォーマットオプションが含まれています。

定数説明
QSurfaceFormat::StereoBuffers0x0001サーフェスフォーマットでステレオバッファを要求するために使用されます。
QSurfaceFormat::DebugContext0x0002デバッグ情報を追加したデバッグコンテキストを要求するために使用します。
QSurfaceFormat::DeprecatedFunctions0x0004非推奨関数を OpenGL コンテキストプロファイルに含めるように要求するために使用します。指定しない場合は、非推奨とマークされた機能をサポートしない前方互換性のあるコンテキストを取得する必要があります。これにはOpenGLバージョン3.0以上が必要です。
QSurfaceFormat::ResetNotification0x0008OpenGLコンテキストのリセットに関する通知を有効にします。ステータスは、コンテキストのisValid() 関数で問い合わせ可能です。このフラグを設定しないからといって、コンテキストの状態が失われないという保証はないことに注意してください。さらに、実装によっては、このフラグに関係なく、コンテキストの消失を報告することもあります。WGLを使用するWindowsやGLXを使用するLinux/X11(xcb)など、コンテキストの喪失の監視を動的に有効にすることをサポートするプラットフォームでは、makeCurrent ()のすべての呼び出しで状態を監視します。これについては、isValid ()を参照のこと。
QSurfaceFormat::ProtectedContent0x0010保護されたコンテンツへのアクセスを有効にします。これにより、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::NoProfile0OpenGLのバージョンが3.2より低い。3.2以降ではCoreProfileと同じ。
QSurfaceFormat::CoreProfile1OpenGLバージョン3.0で廃止された機能は使用できません。
QSurfaceFormat::CompatibilityProfile2それ以前のOpenGLバージョンの機能は利用可能です。

enum QSurfaceFormat::RenderableType

この列挙型は、サーフェスのレンダリングバックエンドを指定します。

定数説明
QSurfaceFormat::DefaultRenderableType0x0デフォルトのレンダリング方法
QSurfaceFormat::OpenGL0x1デスクトップOpenGLレンダリング
QSurfaceFormat::OpenGLES0x2OpenGL ES 2.0レンダリング
QSurfaceFormat::OpenVG0x4Open Vector Graphicsレンダリング

enum QSurfaceFormat::SwapBehavior

この列挙型は、QSurfaceFormat 、サーフェスのスワップ動作を指定するために使用されます。スワップ動作はアプリケーションにはほとんど透過的ですが、レンダリングの待ち時間やスループットなどの要素に影響します。

定数説明
QSurfaceFormat::DefaultSwapBehavior0プラットフォームのデフォルトのスワップ動作。
QSurfaceFormat::SingleBuffer1OpenGLレンダリングが中間オフスクリーンバッファなしでスクリーンに直接行われる場合、ちらつきを生じるかもしれないシングルバッファリングを要求するために使用される。
QSurfaceFormat::DoubleBuffer2これは通常、デスクトッププラットフォームのデフォルトのスワップ動作であり、1つのバックバッファと1つのフロントバッファで構成される。レンダリングはバックバッファに対して行われ、その後、バックバッファとフロントバッファがスワップされるか、バックバッファの内容がフロントバッファにコピーされます(実装によって異なります)。
QSurfaceFormat::TripleBuffer3このスワップ動作は、レンダリングレートが画面のリフレッシュレートにぎりぎり追いついているときにフレームをスキップするリスクを減らすために使われることがあります。プラットフォームによっては、パイプライン動作が改善されるため、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 が真の場合、フォーマット・オプション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

format オプションoption が設定されている場合は true を返し、設定されていない場合は false を返します。

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 オブジェクトlhsrhs のオプションがすべて等しい場合はfalse を返し、そうでない場合はtrue を返します。

[noexcept] bool operator==(const QSurfaceFormat &lhs, const QSurfaceFormat &rhs)

つのQSurfaceFormat オブジェクトlhsrhs のすべてのオプションが等しい場合、true を返します。

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。