QQuickRenderTarget Class

QQuickRenderTargetクラスは、レンダーターゲットを指定するネイティブグラフィックスリソースと関連するメタデータのための不透明なコンテナを提供します。詳細...

Header: #include <QQuickRenderTarget>
CMake: find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake: QT += quick
Since: 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 scenegraph で使用されるレンダーターゲットの最初のカラーアタッチメントとして使用されます。適用可能な場合は、深度ステンシルバッファが自動的に作成され、使用されます。カラーバッファがマルチサンプルの場合、深度ステンシルバッファも自動的にマルチサンプルになります。

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

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

QQuickWindow::setRenderTarget()、QQuickRenderControlfromD3D11Texture()も参照してください

[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 scenegraph でマルチビューレンダリングを有効にする方法については、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 で指定された Metal 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 で指定されたメタル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 scenegraph でマルチビュー・レンダリングを有効にする方法については、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 scenegraphで使用されるレンダリングコンテキストで有効な名前でなければなりません。

注意: 結果の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 scenegraphで使用されるレンダリングコンテキストで有効な名前でなければなりません。

注意: 結果の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 scenegraph でマルチビューレンダリングを有効にする詳細については、QSGMaterial::viewCount() を参照してください。

該当する場合は、深度ステンシルバッファが自動的に作成され、使用されます。カラーバッファがマルチサンプルの場合、深度ステンシルバッファも自動的にマルチサンプルになります。マルチビューレンダリングの場合、深度ステンシルテクスチャは自動的に、arraySize に一致する配列になります。

OpenGL オブジェクト名textureId は、Qt Quick scenegraph で使用されるレンダリングコンテキストで有効な 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 Quick のsoftware バックエンドで実行する場合にのみ利用可能です。

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

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

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

[static, since 6.6] QQuickRenderTarget QQuickRenderTarget::fromRhiRenderTarget(QRhiRenderTarget *renderTarget)

既存のrenderTarget を参照する新しいQQuickRenderTarget を返します。

renderTarget ほとんどの場合、 になり、Qt Quick シーンのレンダリングを に向けることができます。QRhiTextureRenderTarget 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 scenegraph でマルチビュー・レンダリングを有効にする方法については、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 を深度バッファまたは深度ステンシルバッファとして使用するように要求します。texture の所有権は取得されません。

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

通常、デプス-ステンシルバッファは、QQuickRenderTarget のユーザに対して透過的に、自動的に作成されます。 したがって、QQuickRenderTarget を使用して作業する場合、ほとんどの場合、この関数を呼び出す必要はありません。 しかし、特殊な状況では、Qt Quick に独自の中間テクスチャやバッファを作成させる代わりに、デプス(またはデプスとステンシル)データをレンダリングするテクスチャを提供できることが重要になる場合があります。この例として、OpenXRと XR_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 を返します。

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