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

パブリックな型

(since 6.8) enum class Flag { MultisampleResolve }
flags Flags

パブリック関数

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::MultisampleResolve0x01sampleCount 引数が提供されたテクスチャのサンプル数ではなく(そしてテクスチャがまだ非マルチサンプルテクスチャであることを示します)、マルチサンプルアンチエイリアシングのための希望サンプル数であることを示します。トリガーは、アプリケーションに対して透過的に、中間的なマルチサンプルテクスチャ(またはテクスチャ配列)を自動的に作成し、カラーバッファとして管理します。サンプルは、レンダリングパスの最後に、提供されたテクスチャに自動的に解決されます。このフラグが設定されておらず、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 を返します。

この値は、setDepthTexture() が呼び出されたときのみ非 null になります。

この関数は 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 はテクスチャの DXGI_FORMAT を指定します。Qt のレンダリングインフラストラクチャでサポートされているテクスチャフォーマットのみを使用する必要があります。

pixelSize は画像のサイズをピクセル単位で指定します。現在のところ、2D テクスチャのみがサポートされています。

sampleCount はサンプル数を指定します。0 や 1 はマルチサンプリングしないことを意味し、4 や 8 のような値はネイティブオブジェクトがマルチサンプルテクスチャであることを示します。

このテクスチャは、Qt Quick scenegraph で使用されるレンダーターゲットの最初のカラーアタッチメントとして使用されます。適用可能な場合は、デプス-ステンシル-バッファが自動的に作成され、使用されます。

注意: 結果の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 scenegraph で使用されるレンダーターゲットの最初のカラーアタッチメントとして使用されます。適用可能な場合は、デプス-ステンシル-バッファが自動的に作成され、使用されます。

注意: 結果の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 はテクスチャの DXGI_FORMAT を指定します。Qt のレンダリングインフラストラクチャでサポートされているテクスチャフォーマットのみを使用する必要があります。

pixelSize は画像のサイズをピクセル単位で指定します。現在のところ、2D テクスチャのみがサポートされています。

sampleCount はサンプル数を指定します。0 や 1 はマルチサンプリングしないことを意味し、4 や 8 のような値は、 が を含む場合を除き、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。この場合、 は非マルチサンプルの 2D テクスチャと仮定され、 は希望するサンプル数を定義します。結果の は、自動的に作成された中間的なマルチサンプルテクスチャをカラーアタッチメントとして使用し、サンプルを に分解します。これは、ネイティブテクスチャがまだマルチサンプルでない場合にMSAAを実行するための推奨アプローチです。flags MultisampleResolve texture sampleCount QQuickRenderTarget texture

テクスチャは、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 は、リソースの現在の状態を指定する、D3D12_RESOURCE_STATESからのビットを持つ有効なビットマスクでなければなりません。

format はテクスチャのDXGI_FORMATを指定します。Qtのレンダリングインフラストラクチャでサポートされているテクスチャフォーマットのみを使用する必要があります。

pixelSize 画像のサイズをピクセル単位で指定します。現在は 2D テクスチャのみサポートしています。

sampleCount はサンプル数を指定します。0 や 1 はマルチサンプリングしないことを意味し、4 や 8 のような値はネイティブオブジェクトがマルチサンプルテクスチャであることを示します。

このテクスチャは、Qt Quick scenegraph で使用されるレンダーターゲットの最初のカラーアタッチメントとして使用されます。適用可能な場合は、デプス-ステンシル-バッファが自動的に作成され、使用されます。

注意: 結果の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 は、リソースの現在の状態を指定する、D3D12_RESOURCE_STATESからのビットを持つ有効なビットマスクでなければなりません。

format はテクスチャのDXGI_FORMATを指定します。Qtのレンダリングインフラストラクチャでサポートされているテクスチャフォーマットのみを使用する必要があります。

viewFormat は、レンダーターゲットビュー(RTV)に使用されるDXGI_FORMATです。多くの場合、 と同じです。この引数は、ドライバでformatリラックスフォーマットキャストがサポートされている場合にのみ機能し、そうでない場合は無視されます。実際には、Windows 10 1703以降では常にサポートされる予定です。

pixelSize は画像のサイズをピクセル単位で指定します。現在のところ、2Dテクスチャと2Dテクスチャ配列のみがサポートされています。

sampleCount はサンプル数を指定します。0 または 1 はマルチサンプリングしないことを意味し、4 または 8 のような値は、 が を含む場合を除き、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。この場合、 は非マルチサンプルの2Dテクスチャまたは2Dテクスチャ配列であると仮定され、 は希望するサンプル数を定義します。結果の は、自動的に作成された中間的なマルチサンプルテクスチャ(またはテクスチャ配列)をカラーアタッチメントとして使用し、サンプルを に分解します。これは、ネイティブ D3D12 テクスチャがまだマルチサンプルでない場合に MSAA を実行するために推奨されるアプローチです。flags MultisampleResolve texture sampleCount QQuickRenderTarget texture

配列の要素数(レイヤー)はarraySize で与えられます。1より大きい場合、マルチビューレンダリング(ビューインスタン ス)を意味し、特にVR/ARに関連する可能性があります。arraySize はビュー数で、通常は2 です。Qt Quick シーングラフ内でマルチビューレンダリングを有効にする方法については、QSGMaterial::viewCount() を参照してください。

テクスチャは、Qt Quick scenegraphによって使用されるレンダーターゲットの最初のカラーアタッチメントとして使用されます。適用可能であれば、深度ステンシルバッファが自動的に作成され、使用されます。カラーバッファがマルチサンプルの場合、深度ステンシルバッファも自動的にマルチサンプルになります。マルチビューレンダリングの場合、深度ステンシルテクスチャは自動的に、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 texture オブジェクトを参照する新しいQQuickRenderTarget を返します。

format はテクスチャの MTLPixelFormat を指定します。Qt のレンダリングインフラストラクチャでサポートされているテクスチャフォーマットのみを使用する必要があります。

pixelSize は画像のサイズをピクセル単位で指定します。現在は 2D テクスチャのみがサポートされています。

sampleCount はサンプル数を指定します。0 や 1 はマルチサンプリングしないことを意味し、4 や 8 のような値はネイティブオブジェクトがマルチサンプルテクスチャであることを示します。

このテクスチャは、Qt Quick scenegraph で使用されるレンダーターゲットの最初のカラーアタッチメントとして使用されます。適用可能な場合は、デプス-ステンシル-バッファが自動的に作成され、使用されます。

注意: 結果のQQuickRenderTarget は、ネイティブリソースを所有しません。単に、サイズとサンプルカウントの参照と関連するメタデータを含んでいるだけです。ネイティブリソースが必要なだけ存在するようにするのは、呼び出し側の責任です。

この関数は Qt 6.4 で導入されました。

QQuickWindow::setRenderTarget() およびQQuickRenderControlも参照してください

[static] QQuickRenderTarget QQuickRenderTarget::fromMetalTexture(MTLTexture *texture, const QSize &pixelSize, int sampleCount = 1)

これはオーバーロードされた関数である。

texture で指定された金属テクスチャオブジェクトを参照する新しいQQuickRenderTarget を返します。テクスチャのフォーマットは MTLPixelFormatRGBA8Unorm とします。

pixelSize は画像のサイズをピクセル単位で指定します。現在のところ、2Dテクスチャのみがサポートされています。

sampleCount はサンプル数を指定します。0または1はマルチサンプリングしないことを意味し、4または8のような値はネイティブオブジェクトがマルチサンプルテクスチャであることを示します。

このテクスチャは、Qt Quick scenegraph で使用されるレンダーターゲットの最初のカラーアタッチメントとして使用されます。適用可能な場合は、デプス-ステンシル-バッファが自動的に作成され、使用されます。

注意: 結果の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 はテクスチャの MTLPixelFormat を指定します。Qt のレンダリングインフラストラクチャでサポートされているテクスチャフォーマットのみを使用する必要があります。

viewFormat は通常、 と同じ値に設定されます。 フォーマットのテクスチャにレンダリングし、シェーダ書き込み時の暗黙的な linear->sRGB 変換を望まない場合など、場合によっては、値を異なるものにすることができます。ただし、実行時に が の機能をサポートしていないと報告した場合、Qt はこの値を無視することがあります。format _SRGB QRhi QRhi::TextureViewFormat

pixelSize は画像のサイズをピクセル単位で指定します。現在のところ、2Dテクスチャと2Dテクスチャ配列のみがサポートされています。

sampleCount はサンプル数を指定します。0 または 1 はマルチサンプリングしないことを意味し、4 または 8 のような値は、 に が含まれている場合を除き、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。この場合、 は非マルチサンプルの2Dテクスチャまたは2Dテクスチャ配列であると仮定され、 は希望するサンプル数を定義します。結果の は、自動的に作成された中間的なマルチサンプルテクスチャ(またはテクスチャ配列)をカラーアタッチメントとして使用し、サンプルを に分解します。これは、ネイティブのMetalテクスチャがまだマルチサンプルでない場合に、MSAAを実行するために推奨される方法です。flags MultisampleResolve texture sampleCount QQuickRenderTarget texture

配列要素(レイヤー)の数はarraySize で指定します。1より大きい場合、マルチビューレンダリングを意味し、特にVR/ARに関連する可能性があります。arraySize はビュー数で、通常は2 です。Qt Quick シーングラフ内でマルチビューレンダリングを有効にする方法については、QSGMaterial::viewCount() を参照してください。

テクスチャは、Qt Quick scenegraphによって使用されるレンダーターゲットの最初のカラーアタッチメントとして使用されます。適用可能であれば、深度ステンシルバッファが自動的に作成され、使用されます。カラーバッファがマルチサンプルの場合、深度ステンシルバッファも自動的にマルチサンプルになります。マルチビューレンダリングの場合、深度ステンシルテクスチャは自動的に、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 はテクスチャのネイティブな内部フォーマットを指定します。Qt のレンダリングインフラストラクチャでサポートされているテクスチャフォーマットのみを使用する必要があります。

pixelSize は画像のサイズをピクセル単位で指定します。現在のところ、2D テクスチャのみがサポートされています。

sampleCount はサンプル数を指定します。0 や 1 はマルチサンプリングしないことを意味し、4 や 8 のような値はネイティブオブジェクトがマルチサンプルテクスチャであることを示します。

このテクスチャは、Qt Quick scenegraph で使用されるレンダーターゲットの最初のカラーアタッチメントとして使用されます。該当する場合は、デプス-ステンシル-バッファが自動的に作成され、使用されます。

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 scenegraph で使用されるレンダーターゲットの最初のカラーアタッチメントとして使用されます。該当する場合は、デプス-ステンシル-バッファが自動的に作成され、使用されます。

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 はテクスチャのネイティブ内部フォーマットを指定します。Qt のレンダリングインフラストラクチャでサポートされているテクスチャフォーマットのみを使用する必要があります。

pixelSize は画像のサイズをピクセル単位で指定します。現在のところ、2Dテクスチャと2Dテクスチャ配列のみがサポートされています。

sampleCount はサンプル数を指定します。0 または 1 はマルチサンプリングしないことを意味し、4 または 8 のような値は、 が を含む場合を除き、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。この場合、 は非マルチサンプルの2Dテクスチャまたは2Dテクスチャ配列であると仮定され、 は希望するサンプル数を定義します。結果の は、自動的に作成された中間的なマルチサンプルテクスチャ(またはテクスチャ配列)をカラーアタッチメントとして使用し、サンプルを に分解します。これは、ネイティブの OpenGL テクスチャがまだマルチサンプルでない場合に MSAA を実行するために推奨されるアプローチです。flags MultisampleResolve textureId sampleCount QQuickRenderTarget textureId

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()、QQuickRenderControlfromOpenGLTexture()も参照してください

[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromPaintDevice(QPaintDevice *device)

device で指定されたペイントデバイスオブジェクトを参照する新しいQQuickRenderTarget を返します。

レンダリングをQPaintDevice にリダイレクトするこのオプションは、Qt Quicksoftware バックエンドで実行されている場合にのみ利用可能です。

注意: QQuickRenderTargetdevice の所有権を持ちません。オブジェクトが必要なだけ存在するようにするのは呼び出し側の責任です。

この関数は 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 scenegraph で使用されるレンダーターゲットの最初のカラーアタッチメントとして使用されます。該当する場合は、深度ステンシルバッファが自動的に作成され、使用されます。

注意: 結果の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 scenegraph で使用されるレンダーターゲットの最初のカラーアタッチメントとして使用されます。適用可能な場合は、デプス-ステンシル-バッファが自動的に作成され、使用されます。

注意: 結果の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 は通常、 と同じ値に設定されます。 フォーマットのテクスチャにレンダリングする場合で、シェーダ書き込み時の暗黙的な linear->sRGB 変換を望まない場合など、場合によっては異なる値にすることができます。(たとえば、 の と の のように)。format _SRGB VK_FORMAT_R8G8B8A8_SRGB format VK_FORMAT_R8G8B8A8_UNORM viewFormat

pixelSize は画像のサイズをピクセル単位で指定します。現在、2D テクスチャのみがサポートされています。

sampleCount はサンプル数を指定します。0 または 1 はマルチサンプリングしないことを意味し、4 または 8 のような値は、 が を含む場合を除き、ネイティブオブジェクトがマルチサンプルテクスチャであることを示します。この場合、 は非マルチサンプルの2Dテクスチャまたは2Dテクスチャ配列であると仮定され、 は希望するサンプル数を定義します。結果の は、自動的に作成された中間的なマルチサンプルテクスチャ(またはテクスチャ配列)をカラーアタッチメントとして使用し、サンプルを に分解します。これは、ネイティブVulkanイメージがまだマルチサンプルでない場合にMSAAを実行するための推奨アプローチです。flags MultisampleResolve image sampleCount QQuickRenderTarget image

配列要素(レイヤー)の数はarraySize 。1より大きい場合、マルチビューレンダリング(VK_KHR_multiview)を意味し、特にVR/ARに関連する可能性があります。arraySize はビュー数で、通常は2 です。Qt Quick シーングラフ内でマルチビューレンダリングを有効にする方法については、QSGMaterial::viewCount() を参照してください。

テクスチャは、Qt Quick scenegraphによって使用されるレンダーターゲットの最初のカラーアタッチメントとして使用されます。適用可能であれば、深度ステンシルバッファが自動的に作成され、使用されます。カラーバッファがマルチサンプルの場合、深度ステンシルバッファも自動的にマルチサンプルになります。マルチビューレンダリングの場合、深度ステンシルテクスチャは自動的に、arraySize に一致する配列になります。

注意: 結果のQQuickRenderTarget は、ネイティブリソースを所有しません。単に、参照と、サイズとサンプルカウントの関連メタデータを含みます。ネイティブリソースが必要なだけ存在するようにするのは呼び出し側の責任です。

この関数は Qt 6.8 で導入されました。

QQuickWindow::setRenderTarget() およびQQuickRenderControlも参照してください

bool QQuickRenderTarget::isNull() const

このQQuickRenderTarget がデフォルトで構築されており、ネイティブオブジェクトを参照していない場合は true を返します。

[since 6.4] bool QQuickRenderTarget::mirrorVertically() const

戻り値 レンダーターゲットが垂直方向にミラーされているかどうかを返します。

デフォルト値はfalse です。

この関数は Qt 6.4 で導入されました。

setMirrorVertically()も参照してください

[since 6.8] void QQuickRenderTarget::setDepthTexture(QRhiTexture *texture)

与えられたtexture を depth または depth-stencil バッファとして使用することを要求する。texture の所有権は取得されない。

リクエストは、関連する場合にのみ考慮される。たとえば、この関数を呼び出しても、fromRhiRenderTarget()、fromPaintDevice()、fromOpenGLRenderBuffer() には影響しない。

通常、深度-ステンシルバッファは、QQuickRenderTarget のユーザーに対して透過的に、自動的に作成されます。 したがって、QQuickRenderTarget で作業する場合、ほとんどのケースでこの関数を呼び出す必要はありません。 しかし、特殊な状況では、Qt Quick に独自の中間テクスチャやバッファを作成させる代わりに、深度(または深度とステンシル)データをレンダリングするテクスチャを提供できることが重要になることがあります。この例として、OpenXRXR_KHR_composition_layer_depth のような拡張があります。XRコンポジターに「深度バッファを提出」するためには、実際には、OpenXRから(XrSwapchainから)すでに作成された深度(深度ステンシル)テクスチャを取得し、深度データのレンダーターゲットとしてそのテクスチャを使用する必要があります。これは、この関数なしでは不可能です。

Note: 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)

ab が異なるネイティブ・オブジェクトのセットを参照しているか、関連するデータ(サイズ、サンプル数)が一致していない場合、true を返す。

[noexcept] bool operator==(const QQuickRenderTarget &a, const QQuickRenderTarget &b)

ab が同じネイティブ・オブジェクトのセットを参照し、関連するデータ(サイズ、サンプル数)が一致する場合、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.