QQuickRenderTarget Class
QQuickRenderTarget クラスは、レンダリングターゲットおよび関連するメタデータを指定する、ネイティブグラフィックスリソース用の不透明なコンテナを提供します。詳細...
| ヘッダー: | #include <QQuickRenderTarget> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Quick) target_link_libraries(mytarget PRIVATE Qt6::Quick) |
| qmake: | QT += quick |
| 以下のように: | Qt 6.0 |
パブリック型
パブリック関数
| QQuickRenderTarget() | |
| ~QQuickRenderTarget() | |
(since 6.8) QRhiTexture * | depthTexture() const |
(since 6.3) qreal | devicePixelRatio() const |
| bool | isNull() const |
(since 6.4) bool | mirrorVertically() const |
(since 6.8) void | setDepthTexture(QRhiTexture *texture) |
(since 6.3) void | setDevicePixelRatio(qreal ratio) |
(since 6.4) void | setMirrorVertically(bool enable) |
静的パブリックメンバ
(since 6.4) QQuickRenderTarget | fromD3D11Texture(void *texture, uint format, const QSize &pixelSize, int sampleCount = 1) |
| QQuickRenderTarget | fromD3D11Texture(void *texture, const QSize &pixelSize, int sampleCount = 1) |
(since 6.8) QQuickRenderTarget | fromD3D11Texture(void *texture, uint format, QSize pixelSize, int sampleCount, QQuickRenderTarget::Flags flags) |
(since 6.6) QQuickRenderTarget | fromD3D12Texture(void *texture, int resourceState, uint format, const QSize &pixelSize, int sampleCount = 1) |
(since 6.8) QQuickRenderTarget | fromD3D12Texture(void *texture, int resourceState, uint format, uint viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags) |
(since 6.4) QQuickRenderTarget | fromMetalTexture(MTLTexture *texture, uint format, const QSize &pixelSize, int sampleCount = 1) |
| QQuickRenderTarget | fromMetalTexture(MTLTexture *texture, const QSize &pixelSize, int sampleCount = 1) |
(since 6.8) QQuickRenderTarget | fromMetalTexture(MTLTexture *texture, uint format, uint viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags) |
(since 6.2) QQuickRenderTarget | fromOpenGLRenderBuffer(uint renderbufferId, const QSize &pixelSize, int sampleCount = 1) |
(since 6.4) QQuickRenderTarget | fromOpenGLTexture(uint textureId, uint format, const QSize &pixelSize, int sampleCount = 1) |
| QQuickRenderTarget | fromOpenGLTexture(uint textureId, const QSize &pixelSize, int sampleCount = 1) |
(since 6.8) QQuickRenderTarget | fromOpenGLTexture(uint textureId, uint format, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags) |
(since 6.4) QQuickRenderTarget | fromPaintDevice(QPaintDevice *device) |
(since 6.6) QQuickRenderTarget | fromRhiRenderTarget(QRhiRenderTarget *renderTarget) |
(since 6.4) QQuickRenderTarget | fromVulkanImage(VkImage image, VkImageLayout layout, VkFormat format, const QSize &pixelSize, int sampleCount = 1) |
| QQuickRenderTarget | fromVulkanImage(VkImage image, VkImageLayout layout, const QSize &pixelSize, int sampleCount = 1) |
(since 6.8) QQuickRenderTarget | fromVulkanImage(VkImage image, VkImageLayout layout, VkFormat format, VkFormat viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags) |
関連する非メンバー
| bool | operator!=(const QQuickRenderTarget &a, const QQuickRenderTarget &b) |
| bool | operator==(const QQuickRenderTarget &a, const QQuickRenderTarget &b) |
QQuickWindow::setRenderTarget() およびQQuickGraphicsDeviceも参照してください 。
メンバ型のドキュメント
[since 6.8] enum class QQuickRenderTarget::Flag
flags QQuickRenderTarget::Flags
静的QQuickRenderTarget コンストラクタ関数のフラグ。
| 定数 | 値 | 説明 |
|---|---|---|
QQuickRenderTarget::Flag::MultisampleResolve | 0x01 | sampleCount 引数が、指定されたテクスチャのサンプル数(つまり、そのテクスチャが依然として非マルチサンプルテクスチャである)ではなく、マルチサンプルアンチエイリアシングに使用するサンプル数を示していることを示します。これにより、アプリケーションに対して透過的に、中間的なマルチサンプルテクスチャ(またはテクスチャ配列)がカラーバッファとして自動的に作成・管理されます。 サンプルは、レンダリングパスの終了時に自動的に指定されたテクスチャに解決されます。このフラグが設定されておらず、かつsampleCount 引数が1より大きい場合、指定されたテクスチャはマルチサンプルであるとみなされます。sampleCount が1(マルチサンプリングが行われないことを示す)の場合、このフラグは効果を持ちません。 |
この列挙型は Qt 6.8 で導入されました。
Flags型は、QFlags<Flag>のtypedefです。Flag値の論理和(OR)を格納します。
メンバ関数のドキュメント
QQuickRenderTarget::QQuickRenderTarget()
ネイティブオブジェクトを一切参照しない、デフォルトの QQuickRenderTarget を作成します。
[noexcept] QQuickRenderTarget::~QQuickRenderTarget()
デストラクタ。
[since 6.8] QRhiTexture *QQuickRenderTarget::depthTexture() const
現在設定されている深度テクスチャ、あるいはほとんどの場合、nullptr を返します。
この値が null 以外になるのは、setDepthTexture() が呼び出された場合のみです。
この関数は Qt 6.8 で導入されました。
setDepthTexture()も参照してください 。
[since 6.3] qreal QQuickRenderTarget::devicePixelRatio() const
レンダリングターゲットのデバイスピクセル比を返します。これは、デバイスピクセルとデバイス非依存ピクセルの比率です。
デフォルトのデバイスピクセル比は 1.0 です。
この関数は Qt 6.3 で導入されました。
setDevicePixelRatio()も参照してください 。
[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromD3D11Texture(void *texture, uint format, const QSize &pixelSize, int sampleCount = 1)
texture で指定されたD3D11テクスチャオブジェクトを参照する新しいQQuickRenderTarget を返します。
format textureのDXGI_FORMATを指定します。Qtのレンダリングインフラストラクチャでサポートされているテクスチャ形式のみを使用してください。
pixelSize 画像のサイズをピクセル単位で指定します。現在、2Dテクスチャのみがサポートされています。
sampleCount サンプル数を指定します。0 または 1 はマルチサンプリングなしを意味し、4 や 8 などの値は、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。
このテクスチャは、Qt Quick のシーングラフで使用されるレンダリングターゲットの最初のカラーアタッチメントとして使用されます。必要に応じて、深度・ステンシルバッファが自動的に作成され、使用されます。
注: 結果として生成される QQuickRenderTarget は 、ネイティブリソースを所有するものではなく、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。ネイティブリソースが必要な期間存在し続けることを保証するのは、呼び出し側の責任です。
この関数は Qt 6.4 で導入されました。
関連項目: QQuickWindow::setRenderTarget() およびQQuickRenderControl 。
[static] QQuickRenderTarget QQuickRenderTarget::fromD3D11Texture(void *texture, const QSize &pixelSize, int sampleCount = 1)
texture で指定された D3D11 テクスチャオブジェクトを参照する新しい `QQuickRenderTarget ` を返します。このテクスチャのフォーマットは、DXGI_FORMAT_R8G8B8A8_UNORM であると想定されます。
pixelSize 画像のサイズをピクセル単位で指定します。現在、2Dテクスチャのみがサポートされています。
sampleCount サンプル数を指定します。0 または 1 はマルチサンプリングなしを意味し、4 や 8 などの値は、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。
このテクスチャは、Qt Quick のシーングラフで使用されるレンダリングターゲットの最初のカラーアタッチメントとして使用されます。該当する場合、深度・ステンシルバッファが自動的に作成され、使用されます。
注: 結果として生成される QQuickRenderTarget は 、ネイティブリソースを所有するものではなく、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。ネイティブリソースが必要な期間中存在し続けることを保証するのは、呼び出し側の責任です。
これはオーバーロードされた関数です。
QQuickWindow::setRenderTarget() およびQQuickRenderControlも参照してください 。
[static, since 6.8] QQuickRenderTarget QQuickRenderTarget::fromD3D11Texture(void *texture, uint format, QSize pixelSize, int sampleCount, QQuickRenderTarget::Flags flags)
texture で指定されたD3D11テクスチャオブジェクトを参照する新しいQQuickRenderTarget を返します。
format textureのDXGI_FORMATを指定します。Qtのレンダリングインフラストラクチャでサポートされているテクスチャ形式のみを使用してください。
pixelSize 画像のサイズをピクセル単位で指定します。現在、2Dテクスチャのみがサポートされています。
sampleCount サンプル数を指定します。0 または 1 はマルチサンプリングなしを意味し、4 や 8 などの値は、flags がMultisampleResolve を参照している場合を除き、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。その場合、texture はマルチサンプリングなしの 2D テクスチャであるとみなされ、sampleCount で希望するサンプル数が定義されます。 結果として生成されるQQuickRenderTarget は、自動的に作成された中間的なマルチサンプルテクスチャをカラーアタッチメントとして使用し、サンプルをtexture に解決します。これは、ネイティブテクスチャがまだマルチサンプルでない場合にMSAAを実行するための推奨されるアプローチです。
このテクスチャは、Qt Quick シーングラフで使用されるレンダリングターゲットの最初のカラーアタッチメントとして使用されます。該当する場合は、深度・ステンシルバッファが自動的に作成され、使用されます。カラーバッファがマルチサンプルである場合、深度・ステンシルバッファも自動的にマルチサンプルになります。
注: 結果として生成される QQuickRenderTarget は 、ネイティブリソースを所有するものではなく、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。ネイティブリソースが必要な期間中存在し続けることを保証するのは、呼び出し側の責任です。
これはオーバーロードされた関数です。
この関数は Qt 6.8 で導入されました。
QQuickWindow::setRenderTarget()、QQuickRenderControl 、およびfromD3D11Texture()も参照してください 。
[static, since 6.6] QQuickRenderTarget QQuickRenderTarget::fromD3D12Texture(void *texture, int resourceState, uint format, const QSize &pixelSize, int sampleCount = 1)
texture で指定された D3D12 テクスチャ オブジェクトを参照する新しい `QQuickRenderTarget ` を返します。
resourceState must は、D3D12_RESOURCE_STATES のビットを含む有効なビットマスクであり、リソースの現在の状態を指定します。
format texture_format: テクスチャの DXGI_FORMAT を指定します。Qt のレンダリングインフラストラクチャでサポートされているテクスチャ形式のみを使用してください。
pixelSize 画像のサイズをピクセル単位で指定します。現在、2D テクスチャのみがサポートされています。
sampleCount サンプル数を指定します。0 または 1 はマルチサンプリングなしを意味し、4 や 8 などの値は、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。
このテクスチャは、Qt Quick のシーングラフで使用されるレンダリングターゲットの最初のカラーアタッチメントとして使用されます。必要に応じて、深度・ステンシルバッファが自動的に作成・使用されます。
注: 結果として生成される QQuickRenderTarget は 、ネイティブリソースを所有するものではなく、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。必要な期間、ネイティブリソースが存在し続けることを保証するのは、呼び出し側の責任です。
この関数は Qt 6.6 で導入されました。
関連項目: QQuickWindow::setRenderTarget() およびQQuickRenderControl 。
[static, since 6.8] QQuickRenderTarget QQuickRenderTarget::fromD3D12Texture(void *texture, int resourceState, uint format, uint viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)
texture で指定された D3D12 2D テクスチャまたは 2D テクスチャ配列オブジェクトを参照する新しい `QQuickRenderTarget ` を返します。
resourceState xml-ph-0001@deepl.internalで指定されたD3D12 2Dテクスチャまたは2Dテクスチャ配列オブジェクトを参照する新しいxml-ph-0000@deepl.internalを返します。mustは、D3D12_RESOURCE_STATESに含まれるビットから構成される有効なビットマスクであり、リソースの現在の状態を指定します。
format texture_format は、テクスチャの DXGI_FORMAT を指定します。Qt のレンダリングインフラストラクチャでサポートされているテクスチャ形式のみを使用してください。
viewFormat は、レンダリングターゲットビュー(RTV)に使用される DXGI_FORMAT です。多くの場合、format と同じです。ドライバがリラックスされたフォーマットキャストをサポートしている場合にのみ機能し、そうでない場合はこの引数は無視されます。実際には、Windows 10 1703 以降では常にサポートされていると予想されます。
pixelSize 画像のサイズをピクセル単位で指定します。現在、2Dテクスチャおよび2Dテクスチャ配列のみがサポートされています。
sampleCount サンプル数を指定します。0 または 1 はマルチサンプリングなしを意味し、4 や 8 などの値は、flags にMultisampleResolve が含まれている場合を除き、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。 その場合、texture はマルチサンプリング非対応の2Dテクスチャまたは2Dテクスチャ配列であるとみなされ、sampleCount で希望するサンプル数が定義されます。 結果として生成されるQQuickRenderTarget は、自動的に作成された中間的なマルチサンプルテクスチャ(またはテクスチャ配列)をカラーアタッチメントとして使用し、サンプルをtexture に解決します。これは、ネイティブのD3D12テクスチャがまだマルチサンプルでない場合にMSAAを実行するための推奨されるアプローチです。
配列要素(レイヤー)の数はarraySize で指定されます。値が 1 より大きい場合、マルチビューレンダリング(ビューインスタンス化)を意味し、特に VR/AR に関連することがあります。arraySize はビューの数を表し、通常は2 です。Qt Quick シーングラフ内でのマルチビューレンダリングの有効化に関する詳細は、QSGMaterial::viewCount() を参照してください。
このテクスチャは、Qt Quick シーングラフで使用されるレンダリングターゲットの最初のカラーアタッチメントとして使用されます。必要に応じて、深度・ステンシルバッファが自動的に作成・使用されます。カラーバッファがマルチサンプルである場合、深度・ステンシルバッファも自動的にマルチサンプルになります。 マルチビューレンダリングの場合、深度・ステンシルテクスチャは、対応するarraySize を持つ配列として自動的に作成されます。
注: 結果として得られる QQuickRenderTarget は 、ネイティブリソースを所有するものではなく、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。ネイティブリソースが必要な期間存在し続けることを保証するのは、呼び出し側の責任です。
これはオーバーロードされた関数です。
この関数は Qt 6.8 で導入されました。
QQuickWindow::setRenderTarget() およびQQuickRenderControlも参照してください 。
[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromMetalTexture(MTLTexture *texture, uint format, const QSize &pixelSize, int sampleCount = 1)
texture で指定されたMetalテクスチャオブジェクトを参照する新しいQQuickRenderTarget を返します。
format textureのMTLPixelFormatを指定します。Qtのレンダリングインフラストラクチャでサポートされているテクスチャ形式のみを使用してください。
pixelSize 画像のサイズをピクセル単位で指定します。現在、2Dテクスチャのみがサポートされています。
sampleCount サンプル数を指定します。0 または 1 はマルチサンプリングを行わないことを意味し、4 や 8 などの値は、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。
このテクスチャは、Qt Quick のシーングラフで使用されるレンダリングターゲットの最初のカラーアタッチメントとして使用されます。必要に応じて、深度・ステンシルバッファが自動的に作成され、使用されます。
注: 結果として生成される QQuickRenderTarget は 、ネイティブリソースを所有するものではなく、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。ネイティブリソースが必要な期間存在し続けることを保証するのは、呼び出し側の責任です。
この関数は Qt 6.4 で導入されました。
関連項目: QQuickWindow::setRenderTarget() およびQQuickRenderControl 。
[static] QQuickRenderTarget QQuickRenderTarget::fromMetalTexture(MTLTexture *texture, const QSize &pixelSize, int sampleCount = 1)
texture で指定された Metal テクスチャオブジェクトを参照する新しい `QQuickRenderTarget ` を返します。このテクスチャのフォーマットは `MTLPixelFormatRGBA8Unorm` であるとみなされます。
pixelSize 画像のサイズをピクセル単位で指定します。現在、2Dテクスチャのみがサポートされています。
sampleCount サンプル数を指定します。0 または 1 はマルチサンプリングを行わないことを意味し、4 や 8 などの値は、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。
このテクスチャは、Qt Quick のシーングラフで使用されるレンダリングターゲットの最初のカラーアタッチメントとして使用されます。該当する場合、深度・ステンシルバッファが自動的に作成され、使用されます。
注: 結果として生成される QQuickRenderTarget は 、ネイティブリソースを所有するものではなく、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。ネイティブリソースが必要な期間中存在し続けることを保証するのは、呼び出し側の責任です。
これはオーバーロードされた関数です。
QQuickWindow::setRenderTarget() およびQQuickRenderControlも参照してください 。
[static, since 6.8] QQuickRenderTarget QQuickRenderTarget::fromMetalTexture(MTLTexture *texture, uint format, uint viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)
texture で指定されたMetal 2Dテクスチャまたは2Dテクスチャ配列を参照する新しいQQuickRenderTarget を返します。
format texture_texture_array_typeを指定します。Qtのレンダリングインフラストラクチャでサポートされているテクスチャ形式のみを使用してください。
viewFormat 通常はformat と同じ値に設定されます。ただし、_SRGB 形式のテクスチャにレンダリングする場合で、シェーダー書き込み時の暗黙的なlinear→sRGB変換を望まない場合など、異なる値を設定することも可能です。ただし、実行時にQRhi がQRhi::TextureViewFormat 機能がサポートされていないと報告した場合、この値はQtによって無視される可能性があることに注意してください。
pixelSize 画像のサイズをピクセル単位で指定します。現在、2Dテクスチャおよび2Dテクスチャ配列のみがサポートされています。
sampleCount サンプル数を指定します。0 または 1 はマルチサンプリングなしを意味し、4 や 8 などの値は、flags にMultisampleResolve が含まれている場合を除き、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。 その場合、texture はマルチサンプリング非対応の2Dテクスチャまたは2Dテクスチャ配列であるとみなされ、sampleCount が希望するサンプル数を定義します。 結果として生成されるQQuickRenderTarget は、自動的に作成された中間的なマルチサンプルテクスチャ(またはテクスチャ配列)をカラーアタッチメントとして使用し、サンプルをtexture に解決します。これは、ネイティブのMetalテクスチャがまだマルチサンプルではない場合にMSAAを実行するための推奨されるアプローチです。
配列要素(レイヤー)の数は、arraySize で指定されます。値が1より大きい場合、マルチビューレンダリングを意味し、これは特にVR/ARに関連することがあります。arraySize はビューの数を表し、通常は2 です。Qt Quick シーングラフ内でマルチビューレンダリングを有効にする詳細については、QSGMaterial::viewCount()を参照してください。
このテクスチャは、Qt Quick シーングラフで使用されるレンダリングターゲットの最初のカラーアタッチメントとして使用されます。必要に応じて、深度・ステンシルバッファが自動的に作成され、使用されます。カラーバッファがマルチサンプルである場合、深度・ステンシルバッファも自動的にマルチサンプルになります。 マルチビューレンダリングの場合、深度・ステンシルテクスチャは、対応するarraySize を持つ配列として自動的に作成されます。
注: 結果として生成される QQuickRenderTarget は 、ネイティブリソースを所有するものではなく、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。ネイティブリソースが必要な期間中存在し続けることを保証するのは、呼び出し側の責任です。
これはオーバーロードされた関数です。
この関数は Qt 6.8 で導入されました。
QQuickWindow::setRenderTarget() およびQQuickRenderControlも参照してください 。
[static, since 6.2] QQuickRenderTarget QQuickRenderTarget::fromOpenGLRenderBuffer(uint renderbufferId, const QSize &pixelSize, int sampleCount = 1)
renderbufferId で指定されたOpenGLレンダーバッファオブジェクトを参照する新しいQQuickRenderTarget を返します。
このレンダリングバッファは、内部フレームバッファオブジェクトのカラーアタッチメントとして使用されます。 この関数は、EGLImageKHR など、何らかの外部バッファを基盤としてアプリケーションによって作成されたレンダリングバッファをターゲットとして指定できるようにするために提供されています。アプリケーションがglEGLImageTargetRenderbufferStorageOES を呼び出した後、そのレンダリングバッファをこの関数に渡すことができます。
pixelSize は、画像のサイズをピクセル単位で指定します。
sampleCount は、画像のサイズをピクセル単位で指定します。は、サンプル数を指定します。0 または 1 はマルチサンプリングなしを意味し、4 や 8 などの値は、ネイティブオブジェクトがマルチサンプル・レンダリングバッファであることを示します。
注: 結果として得られる QQuickRenderTarget は 、ネイティブリソースを所有するものではなく、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。必要な期間、ネイティブリソースが存在し続けることを保証するのは、呼び出し側の責任です。
この関数は Qt 6.2 で導入されました。
QQuickWindow::setRenderTarget() およびQQuickRenderControlも参照してください 。
[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromOpenGLTexture(uint textureId, uint format, const QSize &pixelSize, int sampleCount = 1)
textureId で指定された OpenGL テクスチャオブジェクトを参照する新しい `QQuickRenderTarget ` を返します。
format textureのネイティブ内部フォーマットを指定します。Qtのレンダリングインフラストラクチャでサポートされているテクスチャフォーマットのみを使用してください。
pixelSize 画像のサイズをピクセル単位で指定します。現在、2Dテクスチャのみがサポートされています。
sampleCount サンプル数を指定します。0 または 1 はマルチサンプリングを行わないことを意味し、4 や 8 などの値は、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。
このテクスチャは、Qt Quick シーングラフで使用されるレンダリングターゲットの最初のカラーアタッチメントとして使用されます。該当する場合、深度・ステンシルバッファが自動的に作成され、使用されます。
OpenGL オブジェクト名「textureId 」は、Qt Quick シーングラフで使用されるレンダリングコンテキストにおいて有効な名前である必要があります。
注:生成される QQuickRenderTarget はネイティブリソース を所有せず、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。必要な期間、ネイティブリソースが存在し続けることを保証するのは、呼び出し側の責任です。
この関数は Qt 6.4 で導入されました。
関連項目: ` QQuickWindow::setRenderTarget()` および `QQuickRenderControl`。
[static] QQuickRenderTarget QQuickRenderTarget::fromOpenGLTexture(uint textureId, const QSize &pixelSize, int sampleCount = 1)
textureId で指定された OpenGL テクスチャオブジェクトを参照する新しい `QQuickRenderTarget ` を返します。テクスチャのフォーマットは GL_RGBA (GL_RGBA8) であるとみなされます。
pixelSize 画像のサイズをピクセル単位で指定します。現在、2Dテクスチャのみがサポートされています。
sampleCount サンプル数を指定します。0 または 1 はマルチサンプリングを行わないことを意味し、4 や 8 などの値は、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。
このテクスチャは、Qt Quick シーングラフで使用されるレンダリングターゲットの最初のカラーアタッチメントとして使用されます。該当する場合、深度・ステンシルバッファが自動的に作成され、使用されます。
OpenGLオブジェクト名「textureId 」は、Qt Quick シーングラフが使用するレンダリングコンテキストにおいて有効な名前でなければなりません。
注:生成される QQuickRenderTarget はネイティブリソースを 所有しておらず、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。ネイティブリソースが必要な期間中存在し続けることを保証するのは、呼び出し側の責任です。
これはオーバーロードされた関数です。
QQuickWindow::setRenderTarget() およびQQuickRenderControlも参照してください 。
[static, since 6.8] QQuickRenderTarget QQuickRenderTarget::fromOpenGLTexture(uint textureId, uint format, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)
textureId で指定された OpenGL 2D テクスチャまたはテクスチャ配列オブジェクトを参照する新しい `QQuickRenderTarget ` を返します。
format textureのネイティブ内部フォーマットを指定します。Qtのレンダリングインフラストラクチャでサポートされているテクスチャフォーマットのみを使用してください。
pixelSize 画像のサイズをピクセル単位で指定します。現在、2Dテクスチャおよび2Dテクスチャ配列のみがサポートされています。
sampleCount サンプル数を指定します。0 または 1 はマルチサンプリングなしを意味し、4 や 8 などの値は、flags にMultisampleResolve が含まれている場合を除き、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。 その場合、textureId はマルチサンプリングではない2Dテクスチャまたは2Dテクスチャ配列であるとみなされ、sampleCount が希望するサンプル数を定義します。 結果として生成されるQQuickRenderTarget は、自動的に作成された中間的なマルチサンプルテクスチャ(またはテクスチャ配列)をカラーアタッチメントとして使用し、サンプルをtextureId に解決します。これは、ネイティブのOpenGLテクスチャがまだマルチサンプルでない場合にMSAAを実行するための推奨されるアプローチです。
arraySize が1より大きい場合、マルチビューレンダリング(GL_OVR_multiview、QRhiColorAttachment::setMultiViewCount())が暗示され、これは特にVR/ARに関連する場合があります。この場合、arraySize はビューの数を表し、通常は2 となります。Qt Quick シーングラフ内でマルチビューレンダリングを有効にする詳細については、QSGMaterial::viewCount()を参照してください。
該当する場合、深度・ステンシルバッファが自動的に作成され、使用されます。カラーバッファがマルチサンプルである場合、深度・ステンシルバッファも自動的にマルチサンプルになります。マルチビューレンダリングでは、深度・ステンシルテクスチャは自動的に、対応するarraySize を持つ配列として作成されます。
OpenGLオブジェクト名textureId は、Qt Quick シーングラフが使用するレンダリングコンテキストにおいて有効な2Dテクスチャ名でなければなりません。arraySize が1より大きい場合、textureId は有効な2Dテクスチャ配列名でなければなりません。
注:結果として返される QQuickRenderTarget は 、ネイティブリソースを所有するものではなく、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。必要な期間、ネイティブリソースが存在し続けることを保証するのは、呼び出し側の責任です。
注: このオーバーロードの実装は 、OpenGL ES 2.0 または 3.0 とは互換性がなく、最低でも OpenGL ES 3.1 が必要です(デスクトップでは OpenGL 3.0 が必要です)。
これはオーバーロードされた関数です。
この関数は Qt 6.8 で導入されました。
関連項目: QQuickWindow::setRenderTarget()、QQuickRenderControl 、およびfromOpenGLTexture()。
[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromPaintDevice(QPaintDevice *device)
device で指定されたペイントデバイスオブジェクトを参照する新しい `QQuickRenderTarget ` を返します。
QPaintDevice へのレンダリングをリダイレクトするこのオプションは、Qt Quick のsoftware バックエンドで実行している場合にのみ利用可能です。
注: QQuickRenderTarget は device の所有権を取得しません。オブジェクトが必要な期間存在し続けることを保証するのは、呼び出し側の責任です。
この関数は Qt 6.4 で導入されました。
QQuickWindow::setRenderTarget() およびQQuickRenderControlも参照してください 。
[static, since 6.6] QQuickRenderTarget QQuickRenderTarget::fromRhiRenderTarget(QRhiRenderTarget *renderTarget)
既存のrenderTarget を参照する新しいQQuickRenderTarget を返します。
renderTarget ほとんどの場合、これはQRhiTextureRenderTarget となり、これによりQt Quick シーンのレンダリング結果をQRhiTexture に転送することが可能になります。
注:生成される QQuickRenderTarget は 、renderTarget やその基盤となるネイティブリソースを所有するものではなく、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。参照されるリソースが必要な期間中存在し続けることを保証するのは、呼び出し側の責任です。
この関数は Qt 6.6 で導入されました。
「 QQuickWindow::setRenderTarget()」および「QQuickRenderControl 」も参照してください 。
[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromVulkanImage(VkImage image, VkImageLayout layout, VkFormat format, const QSize &pixelSize, int sampleCount = 1)
image で指定された Vulkan 画像オブジェクトを参照する新しい `QQuickRenderTarget ` を返します。また、その画像の現在の `layout ` も指定する必要があります。
format は、画像の VkFormat を指定します。Qt のレンダリングインフラストラクチャでサポートされている画像フォーマットのみを使用してください。
pixelSize 画像のサイズをピクセル単位で指定します。現在、2Dテクスチャのみがサポートされています。
sampleCount サンプル数を指定します。0 または 1 はマルチサンプリングなしを意味し、4 や 8 などの値は、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。
この画像は、Qt Quick のシーングラフで使用されるレンダリングターゲットの最初のカラーアタッチメントとして使用されます。必要に応じて、深度・ステンシルバッファが自動的に作成・使用されます。
注: 結果として生成される QQuickRenderTarget は 、ネイティブリソースを所有するものではなく、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。必要な期間、ネイティブリソースが存在し続けることを保証するのは、呼び出し側の責任です。
この関数は Qt 6.4 で導入されました。
関連項目: QQuickWindow::setRenderTarget() およびQQuickRenderControl 。
[static] QQuickRenderTarget QQuickRenderTarget::fromVulkanImage(VkImage image, VkImageLayout layout, const QSize &pixelSize, int sampleCount = 1)
image で指定された Vulkan 画像オブジェクトを参照する新しい `QQuickRenderTarget ` を返します。この画像のフォーマットは `VK_FORMAT_R8G8B8A8_UNORM` であると想定されます。
pixelSize は、画像のサイズをピクセル単位で指定します。現在、2Dテクスチャのみがサポートされています。
sampleCount サンプル数を指定します。0 または 1 はマルチサンプリングなしを意味し、4 や 8 などの値は、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。
このテクスチャは、Qt Quick のシーングラフで使用されるレンダリングターゲットの最初のカラーアタッチメントとして使用されます。必要に応じて、深度・ステンシルバッファが自動的に作成され、使用されます。
注: 結果として生成される QQuickRenderTarget は 、ネイティブリソースを所有するものではなく、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。必要な期間、ネイティブリソースが存在し続けることを保証するのは、呼び出し側の責任です。
これはオーバーロードされた関数です。
QQuickWindow::setRenderTarget() およびQQuickRenderControlも参照してください 。
[static, since 6.8] QQuickRenderTarget QQuickRenderTarget::fromVulkanImage(VkImage image, VkImageLayout layout, VkFormat format, VkFormat viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)
image で指定されたVulkan画像オブジェクトを参照する新しいQQuickRenderTarget を返します。画像の現在のlayout も指定する必要があります。画像は、2Dテクスチャまたは2Dテクスチャ配列のいずれかでなければなりません。
format は、画像の VkFormat を指定します。Qt のレンダリングインフラストラクチャでサポートされている画像形式のみを使用してください。
viewFormat 通常、format と同じ値に設定されます。ただし、_SRGB 形式のテクスチャにレンダリングする場合で、シェーダー書き込み時の暗黙的なlinear→sRGB変換を望まない場合など、異なる値を設定することも可能です(例:format がVK_FORMAT_R8G8B8A8_SRGB で、viewFormat がVK_FORMAT_R8G8B8A8_UNORM の場合)。
pixelSize 画像のサイズをピクセル単位で指定します。現在、2Dテクスチャのみがサポートされています。
sampleCount サンプリング数を指定します。0 または 1 はマルチサンプリングなしを意味し、4 や 8 などの値は、flags にMultisampleResolve が含まれている場合を除き、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。 その場合、image はマルチサンプリング非対応の2Dテクスチャまたは2Dテクスチャ配列であるとみなされ、sampleCount で希望するサンプル数が定義されます。 結果として生成されるQQuickRenderTarget は、自動的に作成された中間的なマルチサンプルテクスチャ(またはテクスチャ配列)をカラーアタッチメントとして使用し、サンプルをimage に解決します。これは、ネイティブのVulkan画像がまだマルチサンプルではない場合にMSAAを実行するための推奨されるアプローチです。
配列要素(レイヤー)の数は、arraySize で指定されます。1より大きい場合、マルチビューレンダリング(VK_KHR_multiview)を意味し、特にVR/ARに関連することがあります。arraySize はビューの数を表し、通常は2 です。Qt Quick シーングラフ内でのマルチビューレンダリングの有効化に関する詳細は、QSGMaterial::viewCount()を参照してください。
このテクスチャは、Qt Quick シーングラフで使用されるレンダリングターゲットの最初のカラーアタッチメントとして使用されます。必要に応じて、深度・ステンシルバッファが自動的に作成され、使用されます。カラーバッファがマルチサンプルである場合、深度・ステンシルバッファも自動的にマルチサンプルになります。 マルチビューレンダリングの場合、深度・ステンシルテクスチャは、対応するarraySize を持つ配列として自動的に作成されます。
注: 結果として生成される QQuickRenderTarget は 、ネイティブリソースを所有するものではなく、単に参照と、サイズおよびサンプル数に関する関連メタデータを含むだけです。ネイティブリソースが必要とされる期間中、それが存在し続けることを保証するのは、呼び出し側の責任です。
これはオーバーロードされた関数です。
この関数は Qt 6.8 で導入されました。
QQuickWindow::setRenderTarget() およびQQuickRenderControlも参照してください 。
bool QQuickRenderTarget::isNull() const
このQQuickRenderTarget がデフォルト生成され、ネイティブオブジェクトを参照していない場合、trueを返します。
[since 6.4] bool QQuickRenderTarget::mirrorVertically() const
returns レンダリングターゲットが垂直方向に反転しているかどうかを返します。
デフォルト値はfalse です。
この関数は Qt 6.4 で導入されました。
setMirrorVertically()も参照してください 。
[since 6.8] void QQuickRenderTarget::setDepthTexture(QRhiTexture *texture)
指定されたtexture を深度バッファまたは深度・ステンシルバッファとして使用するリクエスト。texture の所有権は取得されません。
このリクエストは、該当する場合にのみ考慮されます。たとえば、fromRhiRenderTarget()、fromPaintDevice()、またはfromOpenGLRenderBuffer() では、この関数を呼び出しても何の効果もありません。
通常、QQuickRenderTarget のユーザーには透過的に、深度・ステンシルバッファが自動的に作成されます。 したがって、QQuickRenderTarget を使用する場合、ほとんどの場合、この関数を呼び出す必要はありません。ただし、特殊な状況では、Qt Quick に独自の中間テクスチャやバッファを作成させるのではなく、深度(または深度とステンシル)データをレンダリングするためのテクスチャを指定できることが不可欠になる場合があります。 その一例として、OpenXRおよびXR_KHR_composition_layer_depth などのその拡張機能があります。 XRコンポジターに「深度バッファを送信」するためには、実際には、OpenXR(XrSwapchain)から既に作成済みの深度(深度・ステンシル)テクスチャを取得し、そのテクスチャを深度データのレンダリングターゲットとして使用する必要があります。この関数がなければ、それは不可能です。
注: texture は 、常にマルチサンプルではない2Dテクスチャ、または(マルチビュー用の)テクスチャ配列であることが想定されています。MSAAが関与する場合、MultisampleResolve フラグが設定されているかどうかにかかわらず、サンプルはレンダリングパスの終了時にtexture に解決されます。 MSAAは、基となる3D APIがこれをサポートしている場合にのみ、深度(深度・ステンシル)テクスチャに対してサポートされますが、このサポートは普遍的に利用可能なわけではありません。詳細については、the relevant QRhi feature flag を参照してください。これがサポートされておらず、カスタム深度テクスチャと組み合わせてマルチサンプリングが要求された場合、texture はレンダリング中に変更されず、警告が出力されます。
注: OpenGL および OpenGL ESに関しては 、OpenGL ES 2.0 では深度テクスチャを使用できず、少なくとも OpenGL ES 3.0 が必要です。マルチサンプリング(MSAA)のサポートは、少なくとも OpenGL ES 3.1、またはデスクトップ環境では OpenGL 3.0 がないと利用できません。
この関数は Qt 6.8 で導入されました。
depthTexture()も参照してください 。
[since 6.3] void QQuickRenderTarget::setDevicePixelRatio(qreal ratio)
このレンダリングターゲットのデバイスピクセル比をratio に設定します。これは、デバイスピクセルとデバイス非依存ピクセルの比率です。
QQuickRenderControl::renderWindow() が、有効なQWindow を返すように再実装された場合、指定されたデバイスピクセル比の値は無視されることに注意してください。
この関数は Qt 6.3 で導入されました。
devicePixelRatio()も参照してください 。
[since 6.4] void QQuickRenderTarget::setMirrorVertically(bool enable)
描画時に、レンダリングターゲットの内容をenable に対して垂直方向にミラーリングするサイズを設定します。これにより、標準的な仕様に従わないサードパーティ製のレンダリングコードを容易に統合することができます。
注: software バックエンドを使用している場合は、この 関数を使用しないでください。
この関数は Qt 6.4 で導入されました。
関連項目 :mirrorVertically()
関連する非メンバー関数
[noexcept] bool operator!=(const QQuickRenderTarget &a, const QQuickRenderTarget &b)
a とb が異なるネイティブオブジェクトのセットを指している場合、または関連付けられたデータ(サイズ、サンプル数)が一致しない場合、true を返します。
[noexcept] bool operator==(const QQuickRenderTarget &a, const QQuickRenderTarget &b)
a とb が同じネイティブオブジェクトのセットを指し、関連データ(サイズ、サンプル数)が一致する場合、true を返します。
© 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.