QRhiTextureSubresourceUploadDescription Class

テクスチャのアップロード操作におけるレイヤーの1つのミップレベルのソースを記述します。詳細...

ヘッダー #include <rhi/qrhi.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate)
qmake: QT += gui-private
以来:Qt 6.6

パブリック関数

QRhiTextureSubresourceUploadDescription()
QRhiTextureSubresourceUploadDescription(const QByteArray &data)
QRhiTextureSubresourceUploadDescription(const QImage &image)
QRhiTextureSubresourceUploadDescription(const void *data, quint32 size)
QByteArray data() const
quint32 dataStride() const
QPoint destinationTopLeft() const
QImage image() const
void setData(const QByteArray &data)
void setDataStride(quint32 stride)
void setDestinationTopLeft(const QPoint &p)
void setImage(const QImage &image)
void setSourceSize(const QSize &size)
void setSourceTopLeft(const QPoint &p)
QSize sourceSize() const
QPoint sourceTopLeft() const

詳細説明

ソースコンテンツは、QImage または生の blob として指定されます。前者は、QImage にマッピング可能なフォーマットを持つ非圧縮テクスチャにのみ許可され、後者は浮動小数点や圧縮を含むすべてのフォーマットでサポートされています。

注: image() とdata() の両方を同時に設定することはできません。

destinationTopLeft() は、 タ ーゲ ッ ト 矩形の左上隅を指定 し ます。デフォルトは (0, 0) です。

空のsourceSize() (デフォルト) は、size がサブリソースのサイズであると仮定されることを示します。QImage-ベースのアップロードでは、これは、ソースimage() のサイズがサブリソースと一致しなければならないことを意味します。代わりに生データを提供する場合、data() で十分なバイト数を提供しなければならない。

sourceTopLeft() はQImage ベースのアップロードにのみ対応し、ソース矩形の左上隅を指定する。

注: sourceSize ()またはsourceTopLeft ()を設定すると、フォーマットやバックエンドによっては、内部的にQImage コピーがトリガーされることがある。

生データを提供し、setDataStride ()を介してストライドが指定されない場合、提供されるデータのストライド(行ピッチ、バイト単位での行の長さ)は、width * pixelSizepixelSize は1ピクセルに使用されるバイト数)に等しくなければならず、行の間に追加のパディングがあってはならない。行頭のアライメントは要求されない。

入力生データの各行の末尾に未使用のデータがある場合は、行ごとの合計バイト数を指定してsetDataStride() を呼び出す。ストライドは、常に1ピクセルのバイト数の倍数でなければならない。行のストライドは、非圧縮形式のテクスチャの画像データにのみ適用できます。

注意: ソースデータのフォーマットはテクスチャのフォーマットと互換性がなければなりません。多くのグラフィックスAPIでは、データはそのままステージングバッファにコピーされ、QRhi によって提供される中間フォーマット変換はありません。これは浮動小数点フォーマットにも当てはまり、たとえばRGBA16Fではソースデータに半分の浮動小数点が必要です。

注: setDataStride ()によるストライドの設定は、QRhi::ImageDataStridesupported として報告された場合にのみ機能する。実際には、これはOpenGL ES 2.0を除くすべての場所でサポートされると予想されます。

注意 :QImage が与えられると、QImage::bytesPerLine() から返されるストライドが自動的に考慮される。

警告: QImage が与えられ、QImage が基礎となるピクセルデータを所有していない場合、関連するデータがフレームの終わりまで有効であることを保証するのは呼び出し側次第です。(リソースの更新バッチを送信するだけでは十分ではありません。すべてのバックエンドでポータブルであるためには、データはQRhi::endFrame() が呼び出されるまで有効でなければなりません。) これを確実にできない場合、呼び出し元は、uploadTexture() に渡す前に、画像に対して QImage::detach() を呼び出すことを強く推奨します。

注意: これは互換性保証に制限のある RHI API です。詳細はQRhi を参照してください。

QRhiTextureUploadDescriptionも参照して ください。

メンバ関数ドキュメント

[noexcept] QRhiTextureSubresourceUploadDescription::QRhiTextureSubresourceUploadDescription()

空のサブリソース記述を構築します。

注意: 空の QRhiTextureSubresourceUploadDescription は、それだけでは役に立たず、QRhiTextureUploadEntry に送信すべきではありません。 少なくとも、画像またはデータが最初に設定されている必要があります。

[explicit] QRhiTextureSubresourceUploadDescription::QRhiTextureSubresourceUploadDescription(const QByteArray &data)

data で指定された画像データで mip レベル記述を構築します。これは浮動小数点形式や圧縮形式にも適しています。

[explicit] QRhiTextureSubresourceUploadDescription::QRhiTextureSubresourceUploadDescription(const QImage &image)

mip レベル記述をimage で構築します。

imagesize は、mip レベルのサイズと一致する必要があります。レベル0の場合、これはtexture size となる。

image のビット深度はtexture format と互換性がなければならない。

部分的なアップロードを記述するには、その後にsetSourceSize()、setSourceTopLeft()、またはsetDestinationTopLeft() を呼び出す。

QRhiTextureSubresourceUploadDescription::QRhiTextureSubresourceUploadDescription(const void *data, quint32 size)

画像データをdatasize で指定された mip レベル記述で構築します。これは浮動小数点形式や圧縮形式にも適しています。

data この関数が返ると、安全に破棄または変更することができます。

QByteArray QRhiTextureSubresourceUploadDescription::data() const

現在設定されている生のピクセルデータを返します。

setData()も参照

quint32 QRhiTextureSubresourceUploadDescription::dataStride() const

現在設定されているデータ・ストライドを返す。

setDataStride()も参照

QPoint QRhiTextureSubresourceUploadDescription::destinationTopLeft() const

現在設定されている目的地の左上の位置を返します。デフォルトは (0, 0) です。

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

QImage QRhiTextureSubresourceUploadDescription::image() const

現在設定されているQImage を返す。

setImage()も参照

void QRhiTextureSubresourceUploadDescription::setData(const QByteArray &data)

data を設定する。

注: image() とdata() を同時に設定することはできない。

data()も参照

void QRhiTextureSubresourceUploadDescription::setDataStride(quint32 stride)

データstride をバイト数で設定する。デフォルトでは0であり、常に関係するわけではない。生のdata() を提供し、かつ setDataStride() によってストライドが指定されていない場合、提供されるデータのストライド (行ピッチ、行の長さ (バイト単位)) はwidth * pixelSize と等しくなければならない。ここでpixelSize は 1 ピクセルに使用されるバイト数であり、行間に追加のパディングがあってはならない。そうでない場合、行間に追加のスペースがある場合は、ゼロでないstride を設定する。これはすべて、生の画像データが提供される場合にのみ適用され、QImage を処理する場合には必要ありません。stride には独自の値があるからです。

注意: setDataStride()によるストライドの設定は、QRhi::ImageDataStridesupported として報告される場合にのみ機能する。

注意 :QImage が指定された場合、QImage::bytesPerLine() から返されるストライドが自動的に考慮されるため、手動でデータ・ストライドを設定する必要はない。

dataStride()も参照

void QRhiTextureSubresourceUploadDescription::setDestinationTopLeft(const QPoint &p)

デスティネーションの左上位置を設定するp

destinationTopLeft()も参照

void QRhiTextureSubresourceUploadDescription::setImage(const QImage &image)

image を設定します。テクスチャの読み込み時に、画像データはそのまま読み込まれ、フォーマットの変換は行われません。

注意: image() とdata() を同時に設定することはできません。

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

void QRhiTextureSubresourceUploadDescription::setSourceSize(const QSize &size)

ソースsize をピクセル単位で設定する。

注意: sourceSize() やsourceTopLeft() を設定すると、フォーマットやバックエンドによっては、 内部的にQImage のコピーが発生する可能性があります。

sourceSize()も参照

void QRhiTextureSubresourceUploadDescription::setSourceTopLeft(const QPoint &p)

ソースの左上位置を設定するp

注意: sourceSize() やsourceTopLeft() を設定すると、フォーマットやバックエンドによっては、内部的にQImage のコピーがトリガされることがあります。

sourceTopLeft()も参照

QSize QRhiTextureSubresourceUploadDescription::sourceSize() const

ソースのサイズをピクセル単位で返します。デフォルトは、サブリソース全体を示すデフォルト構成のQSize です。

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

QPoint QRhiTextureSubresourceUploadDescription::sourceTopLeft() const

現在設定されているソースの左上の位置を返します。デフォルトは (0, 0) です。

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

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