このページでは

QRhiResource Class

ネイティブリソースオブジェクトをカプセル化するクラスの基底クラス。詳細...

ヘッダー: #include <rhi/qrhi.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS GuiPrivate)
target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate)
qmake: QT += gui-private
以下のように: Qt 6.6
継承元:
12 種類

QRhiBuffer、QRhiCommandBuffer 、QRhiComputePipeline 、QRhiGraphicsPipeline 、QRhiRenderBuffer 、QRhiRenderPassDescriptor 、QRhiRenderTarget 、QRhiSampler 、QRhiShaderResourceBindings 、QRhiShadingRateMap 、QRhiSwapChain 、およびQRhiTexture

パブリック型

enum Type { Buffer, Texture, Sampler, RenderBuffer, RenderPassDescriptor, …, ShadingRateMap }

パブリック関数

virtual ~QRhiResource()
void deleteLater()
virtual void destroy() = 0
quint64 globalResourceId() const
QByteArray name() const
virtual QRhiResource::Type resourceType() const = 0
QRhi *rhi() const
void setName(const QByteArray &name)

保護された関数

QRhiResource(const QRhiResource &)
QRhiResource &operator=(const QRhiResource &)

詳細な説明

注: これは 互換性の保証が限定的な RHI API です。詳細については、QRhi を参照してください。

メンバ型のドキュメント

enum QRhiResource::Type

リソースのタイプを指定します。

定数定数値
QRhiResource::Buffer0
QRhiResource::Texture1
QRhiResource::Sampler2
QRhiResource::RenderBuffer3
QRhiResource::RenderPassDescriptor4
QRhiResource::SwapChainRenderTarget5
QRhiResource::TextureRenderTarget6
QRhiResource::ShaderResourceBindings7
QRhiResource::GraphicsPipeline8
QRhiResource::SwapChain9
QRhiResource::ComputePipeline10
QRhiResource::CommandBuffer11
QRhiResource::ShadingRateMap12

メンバ関数のドキュメント

[protected delete] QRhiResource::QRhiResource(const QRhiResource &)

QRhiResource のインスタンスをコピーして生成します。この関数は削除されました。

[virtual noexcept] QRhiResource::~QRhiResource()

デストラクタ。

もし存在する場合、基になるネイティブのグラフィックスリソースを解放します(または、解放を遅延させるよう要求します)。

注: 現在のフレームに対するコマンドによって参照されているリソースは 、QRhi::endFrame() によってそのフレームが送信されるまで解放すべきではありません。

destroy()も参照してください 。

void QRhiResource::deleteLater()

フレームが記録されていない状態でこの関数が呼び出された場合、この関数はオブジェクトを削除することと同等です。ただし、QRhi::beginFrame() とQRhi::endFrame() の間では動作が異なります。QRhiResource は、QRhi::endFrame() を通じてフレームが送信されるまで破棄されないため、記録中のフレームによって参照されているQRhiResource オブジェクトを変更しないという「QRhi 」の要件を満たします。

このオブジェクトを作成したQRhi がすでに破棄されている場合、オブジェクトは直ちに削除されます。

deleteLater() の使用は多くの場合で便利な機能となり得ます。 また、C++オブジェクトのインスタンス(QRhiBuffer 、QRhiTexture 、 など)自体も、現在のフレームの終了まで有効であり続けることを保証する手段を提供することで、この低レベルの保証を補完するものです。

以下の例は、1 フレームでのみ使用され、endFrame() で自動的に解放される使い捨てバッファを作成する便利な方法を示しています。 (基盤となるネイティブバッファに関しては、通常の保証が適用されます。QRhi バックエンドは、GPU によってバッファにアクセスされたフレームが確実に完了するまで、それらの解放を先送りします)

rhi->beginFrame(swapchain);
QRhiBuffer *buf = rhi->newBuffer(QRhiBuffer::Immutable, QRhiBuffer::VertexBuffer, 256);
buf->deleteLater(); // !
u = rhi->nextResourceUpdateBatch();
u->uploadStaticBuffer(buf, data);
// ... draw with buf
rhi->endFrame();

destroy()も参照してください 。

[pure virtual] void QRhiResource::destroy()

基盤となるネイティブグラフィックスリソースを解放します(または、解放の延期を要求します)。何度呼び出しても安全であり、それ以降の呼び出しはノーオペレーションとなります。

destroy() が呼び出されると、create() を再度呼び出すことで、QRhiResource インスタンスを再利用できます。これにより、内部で新しいネイティブグラフィックスリソースが作成されます。

注: 現在のフレームに対するコマンドによって参照されているリソースは 、QRhi::endFrame() によってそのフレームが送信されるまでは解放しないでください。

QRhiResource のデストラクタも同様の処理を行うため、QRhiResource を削除する前にこの関数を呼び出す必要はありません。

deleteLater()も参照してください 。

quint64 QRhiResource::globalResourceId() const

このQRhiResource のグローバルで一意の識別子を返します。

ユーザーコードでこの値を直接扱う必要はほとんどありません。この値は、追跡や管理の目的で内部的に使用されます。

QByteArray QRhiResource::name() const

現在設定されているオブジェクト名を返します。デフォルトでは、名前は空です。

setName()も参照してください 。

[pure virtual] QRhiResource::Type QRhiResource::resourceType() const

リソースの型を返します。

QRhi *QRhiResource::rhi() const

このリソースを作成したQRhi を返します。

このオブジェクトを作成したQRhi がすでに破棄されている場合、結果はnullptr となります。

void QRhiResource::setName(const QByteArray &name)

オブジェクトのname を設定します。

これにより、RenderDocやXCode などのグラフィックスデバッグツールで表示されるネイティブグラフィックスリソースに、説明的な名前を付けることができます。

適切なグラフィックス API を介してネイティブオブジェクトに名前を付ける場合、QRhi::DebugMarkers がサポートされていないときはその名前は無視されることに注意してください。また、バックエンドによっては、QRhi::EnableDebugMarkers が設定されていない場合も無視されることがあります。

注: バックエンドによっては、バッファ、レンダリングバッファ、テクスチャ以外のオブジェクトの場合、この 名前が無視されることがあります。

注: 名前は 変更される場合があります。複数のネイティブバッファをバックエンドとするQRhiBuffer などのスロット付きリソースの場合、QRhi は、基になるネイティブバッファ同士を容易に区別できるように、接尾辞を追加します。

name()も参照してください 。

[protected delete] QRhiResource &QRhiResource::operator=(const QRhiResource &)

other をこのQRhiResource インスタンスにコピーして割り当てます。この関数は削除されます。

© 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.