QRhiTextureSubresourceUploadDescription Class
テクスチャのアップロード操作におけるレイヤーの1つのミップレベルのソースを記述します。詳細...
Header: | #include <rhi/qrhi.h> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate) |
qmake: | QT += gui-private |
Since: | 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 または raw blob として指定されます。前者は、QImage にマッピング可能なフォーマットを持つ非圧縮テクスチャに対してのみ許可され、後者は浮動小数点や圧縮を含むすべてのフォーマットに対してサポートされます。
destinationTopLeft() は、 タ ーゲ ッ ト 矩形の左上隅を指定 し ます。デフォルトは (0, 0) です。
空のsourceSize() (デフォルト) は、size がサブリソースのサイズであると仮定されることを示します。QImage-ベースのアップロードでは、これは、ソースimage() のサイズがサブリソースと一致しなければならないことを意味します。代わりに生データを提供する場合、data() で十分なバイト数を提供しなければならない。
sourceTopLeft() はQImage ベースのアップロードにのみ対応し、ソース矩形の左上隅を指定する。
注: sourceSize ()またはsourceTopLeft ()を設定すると、フォーマットやバックエンドによっては、内部的にQImage コピーがトリガーされることがある。
生データを提供し、setDataStride ()を介してストライドが指定されない場合、提供されるデータのストライド(行ピッチ、バイト単位での行の長さ)は、width * pixelSize
(pixelSize
は1ピクセルに使用されるバイト数)に等しくなければならず、行の間に追加のパディングがあってはならない。行頭のアライメントは要求されない。
入力生データの各行の末尾に未使用のデータがある場合は、行ごとの合計バイト数を指定してsetDataStride() を呼び出す。ストライドは、常に1ピクセルのバイト数の倍数でなければならない。行のストライドは、非圧縮形式のテクスチャの画像データにのみ適用できます。
注意: ソースデータのフォーマットはテクスチャのフォーマットと互換性がなければなりません。多くのグラフィックスAPIでは、データはそのままステージングバッファにコピーされ、QRhi によって提供される中間フォーマット変換はありません。これは浮動小数点フォーマットにも当てはまり、たとえばRGBA16Fではソースデータに半分の浮動小数点が必要です。
注: setDataStride ()によるストライドの設定は、QRhi::ImageDataStride がsupported として報告された場合にのみ機能する。実際には、これは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)
image で mip レベル記述を構築する。
image のsize は、mip レベルのサイズと一致しなければならない。レベル 0 の場合、これはtexture size となる。
image のビット深度はtexture format と互換性がなければならない。
部分的なアップロードを記述するには、その後にsetSourceSize()、setSourceTopLeft()、またはsetDestinationTopLeft() を呼び出す。
QRhiTextureSubresourceUploadDescription::QRhiTextureSubresourceUploadDescription(const void *data, quint32 size)
data およびsize で指定された画像データを用いて、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 を設定します。
data()も参照して ください。
void QRhiTextureSubresourceUploadDescription::setDataStride(quint32 stride)
stride データをバイト単位で設定します。デフォルトでは 0 であり、常に適切であるとは限らない。生のdata() を提供し、setDataStride() によってストライドが指定されていない場合、提供されるデータのストライド (行ピッチ、行の長さ (バイト単位)) はwidth * pixelSize
と等しくなければならない。pixelSize
は 1 ピクセルに使用されるバイト数であり、行の間に追加のパディングがあってはならない。そうでない場合、行間に追加のスペースがある場合は、ゼロでないstride を設定する。これはすべて、生の画像データが提供される場合にのみ適用され、QImage を処理する場合には必要ありません。stride には独自の値があるからです。
注意: setDataStride()によるストライドの設定は、QRhi::ImageDataStride がsupported として報告される場合にのみ機能する。
注意 :QImage が指定された場合、QImage::bytesPerLine() から返されるストライドが自動的に考慮されるため、手動でデータ・ストライドを設定する必要はない。
dataStride()も参照 。
void QRhiTextureSubresourceUploadDescription::setDestinationTopLeft(const QPoint &p)
出力先左上位置を設定するp 。
destinationTopLeft()も参照 。
void QRhiTextureSubresourceUploadDescription::setImage(const QImage &image)
image を設定します。テクスチャの読み込み時には、画像データはそのまま読み込まれ、フォーマットの変換は行われません。
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()も参照して ください。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。