QRhiTexture Class

Textur-Ressource. Mehr...

Kopfzeile: #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
Vererbt: QRhiResource

Öffentliche Typen

struct NativeTexture
(since 6.8) struct ViewFormat
enum Flag { RenderTarget, CubeMap, MipMapped, sRGB, UsedAsTransferSource, …, OneDimensional }
flags Flags
enum Format { UnknownFormat, RGBA8, BGRA8, R8, RG8, …, ASTC_12x12 }

Öffentliche Funktionen

int arrayRangeLength() const
int arrayRangeStart() const
int arraySize() const
virtual bool create() = 0
virtual bool createFrom(QRhiTexture::NativeTexture src)
int depth() const
QRhiTexture::Flags flags() const
QRhiTexture::Format format() const
virtual QRhiTexture::NativeTexture nativeTexture()
QSize pixelSize() const
(since 6.8) QRhiTexture::ViewFormat readViewFormat() const
int sampleCount() const
void setArrayRange(int startIndex, int count)
void setArraySize(int arraySize)
void setDepth(int depth)
void setFlags(QRhiTexture::Flags f)
void setFormat(QRhiTexture::Format fmt)
virtual void setNativeLayout(int layout)
void setPixelSize(const QSize &sz)
(since 6.8) void setReadViewFormat(const QRhiTexture::ViewFormat &fmt)
void setSampleCount(int s)
(since 6.8) void setWriteViewFormat(const QRhiTexture::ViewFormat &fmt)
(since 6.8) QRhiTexture::ViewFormat writeViewFormat() const

Reimplementierte öffentliche Funktionen

virtual QRhiResource::Type resourceType() const override

Detaillierte Beschreibung

Eine QRhiTexture kapselt ein natives Textur-Objekt, wie z.B. eine VkImage oder MTLTexture.

Eine QRhiTexture-Instanz wird immer durch den Aufruf von the QRhi's newTexture() function erzeugt. Dadurch werden keine nativen Grafikressourcen erzeugt. Um dies zu tun, rufen Sie create() auf, nachdem Sie die entsprechenden Optionen, wie Format und Größe, gesetzt haben, obwohl diese in den meisten Fällen bereits durch die an newTexture() übergebenen Argumente gesetzt sind.

Die korrekte Einstellung von flags ist von entscheidender Bedeutung, da andernfalls je nach dem zugrunde liegenden QRhi Backend und der Grafik-API verschiedene Fehler auftreten können. Wenn zum Beispiel eine Textur aus einem Renderpass über QRhiTextureRenderTarget gerendert wird, muss die Textur mit gesetztem RenderTarget Flag erstellt werden. Wenn die Textur über read back gerendert werden soll, muss das Flag UsedAsTransferSource im Voraus gesetzt werden. Bei Mipmapped-Texturen muss das MipMapped -Flag gesetzt sein. Und so weiter. Es ist nicht möglich, die Flags zu ändern, wenn create() erfolgreich war. Um die bestehenden Texturen freizugeben und ein neues natives Texturobjekt mit den geänderten Einstellungen zu erstellen, müssen die Setter aufgerufen und create() erneut aufgerufen werden. Dies könnte dann eine potenziell teure Operation sein.

Beispiel für die Verwendung

Um eine 2D-Textur mit einer Größe von 512x512 Pixeln zu erstellen und ihren Inhalt auf Grün zu setzen:

QRhiTexture *texture = rhi->newTexture(QRhiTexture::RGBA8, QSize(512, 512));
if (!texture->create()) { error(); }
QRhiResourceUpdateBatch *batch = rhi->nextResourceUpdateBatch();
QImage image(512, 512, QImage::Format_RGBA8888);
image.fill(Qt::green);
batch->uploadTexture(texture, image);
// ...
commandBuffer->resourceUpdate(batch); // or, alternatively, pass 'batch' to a beginPass() call

Allgemeine Muster

Ein Aufruf von create() zerstört alle vorhandenen nativen Ressourcen, wenn create() zuvor erfolgreich aufgerufen wurde. Wenn diese nativen Ressourcen noch von einem laufenden Frame verwendet werden (d. h., es besteht die Möglichkeit, dass sie noch von der GPU gelesen werden), wird die Zerstörung dieser Ressourcen automatisch aufgeschoben. Ein sehr gängiges und bequemes Muster, um die Größe einer bereits vorhandenen Textur sicher zu ändern, ist also das folgende. In der Praxis wird dabei eine ganz neue native Textur-Ressource darunter erzeugt, so dass es nicht unbedingt eine billige Operation ist, aber es ist bequemer und immer noch schneller als die Alternativen, weil dadurch, dass das texture -Objekt selbst nicht zerstört wird, alle Referenzen darauf in anderen Datenstrukturen gültig bleiben (z. B. in jeder QShaderResourceBinding, von der aus die QRhiTexture referenziert wird).

// determine newSize, e.g. based on the swapchain's output size or other factors
if (texture->pixelSize() != newSize) {
    texture->setPixelSize(newSize);
    if (!texture->create()) { error(); }
}
// continue using texture, fill it with new data

Hinweis: Dies ist eine RHI-API mit begrenzten Kompatibilitätsgarantien, siehe QRhi für Details.

Siehe auch QRhiResourceUpdateBatch, QRhi, und QRhiTextureRenderTarget.

Dokumentation der Mitgliedstypen

enum QRhiTexture::Flag
flags QRhiTexture::Flags

Flag-Werte, die angeben, wie die Textur verwendet werden soll. Die Nichtbeachtung der vor create() gesetzten Flags und der Versuch, die Textur auf eine Art und Weise zu verwenden, die nicht im Voraus deklariert wurde, kann je nach Backend und der zugrunde liegenden Grafik-API zu unspezifischem Verhalten oder verminderter Leistung führen.

KonstanteWertBeschreibung
QRhiTexture::RenderTarget1 << 0Die Textur, die in Kombination mit QRhiTextureRenderTarget verwendet werden soll.
QRhiTexture::CubeMap1 << 2Die Textur ist eine Cubemap. Solche Texturen haben 6 Ebenen, eine für jede Fläche in der Reihenfolge +X, -X, +Y, -Y, +Z, -Z. Cubemap-Texturen können nicht multisample sein.
QRhiTexture::MipMapped1 << 3Die Textur hat Mipmaps. Die entsprechende Mip-Anzahl wird automatisch berechnet und kann auch über QRhi::mipLevelsForSize() abgerufen werden. Die Bilder für die Mip-Ebenen müssen in der hochgeladenen Textur enthalten sein oder über QRhiResourceUpdateBatch::generateMips() erzeugt werden. Multisample-Texturen können keine Mipmaps haben.
QRhiTexture::sRGB1 << 4Verwenden Sie ein sRGB-Format.
QRhiTexture::UsedAsTransferSource1 << 5Die Textur wird als Quelle für eine Texturkopie oder ein Readback verwendet, d. h. die Textur wird als Quelle in QRhiResourceUpdateBatch::copyTexture() oder QRhiResourceUpdateBatch::readBackTexture() angegeben.
QRhiTexture::UsedWithGenerateMips1 << 6Die Textur soll mit QRhiResourceUpdateBatch::generateMips() verwendet werden.
QRhiTexture::UsedWithLoadStore1 << 7Die Textur wird mit Bildlade-/Speicheroperationen verwendet, zum Beispiel in einem Compute-Shader.
QRhiTexture::UsedAsCompressedAtlas1 << 8Die Textur hat ein komprimiertes Format und die Abmessungen der hochgeladenen Subressourcen stimmen möglicherweise nicht mit der Texturgröße überein.
QRhiTexture::ExternalOES1 << 9Die Textur sollte das GL_TEXTURE_EXTERNAL_OES-Ziel mit OpenGL verwenden. Dieses Flag wird bei anderen Grafik-APIs ignoriert.
QRhiTexture::ThreeDimensional1 << 10Die Textur ist eine 3D-Textur. Solche Texturen sollten mit der QRhi::newTexture() Überladung erstellt werden, die zusätzlich zu Breite und Höhe eine Tiefe annimmt. Eine 3D-Textur kann Mipmaps haben, aber nicht Multisample sein. Beim Rendern in eine 3D-Textur oder beim Hochladen von Daten in eine 3D-Textur bezieht sich die im Farbanhang des Render-Ziels oder in der Upload-Beschreibung angegebene layer auf ein einzelnes Slice im Bereich [0..depth-1]. Die zugrunde liegende Grafik-API unterstützt möglicherweise keine 3D-Texturen zur Laufzeit. Die Unterstützung wird durch das Merkmal QRhi::ThreeDimensionalTextures angezeigt.
QRhiTexture::TextureRectangleGL1 << 11Die Textur sollte bei OpenGL das Ziel GL_TEXTURE_RECTANGLE verwenden. Dieses Flag wird bei anderen Grafik-APIs ignoriert. Genau wie ExternalOES ist dieses Flag nützlich, wenn man mit Plattform-APIs arbeitet, bei denen native OpenGL-Texturobjekte, die von der Plattform empfangen werden, in ein QRhiTexture eingewickelt sind, und die Plattform nur Texturen für ein Nicht-2D-Texturziel bereitstellen kann.
QRhiTexture::TextureArray1 << 12Die Textur ist ein Textur-Array, d.h. ein einzelnes Textur-Objekt, das ein homogenes Array von 2D-Texturen ist. Textur-Arrays werden mit QRhi::newTextureArray() erstellt. Die zugrunde liegende Grafik-API unterstützt möglicherweise keine Textur-Array-Objekte zur Laufzeit. Die Unterstützung wird durch die Funktion QRhi::TextureArrays angezeigt. Beim Rendern in ein Textur-Array oder beim Hochladen von Daten in ein Textur-Array wählt die im Farbanhang des Render-Ziels oder in der Upload-Beschreibung angegebene layer ein einzelnes Element im Array aus.
QRhiTexture::OneDimensional1 << 13Die Textur ist eine 1D-Textur. Solche Texturen können durch Übergabe einer Höhe und Tiefe von 0 an QRhi::newTexture() erstellt werden. Beachten Sie, dass es je nach der zugrunde liegenden Grafik-API Einschränkungen für eindimensionale Texturen geben kann. Zum Beispiel kann das Rendern auf sie oder ihre Verwendung mit Mipmap-basierten Filtern nicht unterstützt werden. Dies wird durch die Merkmalsflags QRhi::OneDimensionalTextures und QRhi::OneDimensionalTextureMipmaps angezeigt.

Der Typ Flags ist ein Typedef für QFlags<Flag>. Er speichert eine OR-Kombination von Flag-Werten.

enum QRhiTexture::Format

Gibt das Texturformat an. Siehe auch QRhi::isTextureFormatSupported() und beachten Sie, dass flags() das Format ändern kann, wenn QRhiTexture::sRGB gesetzt ist.

KonstanteWertBeschreibung
QRhiTexture::UnknownFormat0Kein gültiges Format. Es kann nicht an setFormat() übergeben werden.
QRhiTexture::RGBA81Vier Komponenten, vorzeichenlos normalisiert 8 Bit pro Komponente. Wird immer unterstützt.
QRhiTexture::BGRA82Vier Komponenten, vorzeichenlos normalisiert, 8 Bit pro Komponente.
QRhiTexture::R83Eine Komponente, vorzeichenlos normalisiert 8 Bit.
QRhiTexture::RG84Zwei Komponenten, vorzeichenlos normalisiert 8 bit.
QRhiTexture::R165Eine Komponente, vorzeichenlos normalisiert 16 Bit.
QRhiTexture::RG166Zwei Komponenten, vorzeichenlos normalisiert 16 Bit.
QRhiTexture::RED_OR_ALPHA87Entweder dasselbe wie R8 oder ein ähnliches Format mit einer auf Alpha umgerechneten Komponente, abhängig von RedOrAlpha8IsRed.
QRhiTexture::RGBA16F8Vier Komponenten, 16-Bit-Float pro Komponente.
QRhiTexture::RGBA32F9Vier Komponenten, 32-Bit-Float pro Komponente.
QRhiTexture::R16F10Eine Komponente, 16-Bit-Fließkomma.
QRhiTexture::R32F11Eine Komponente, 32-Bit-Fließkomma.
QRhiTexture::RGB10A212Vier Komponenten, vorzeichenlos normalisiertes 10-Bit-R, -G und -B, 2-Bit-Alpha. Da es sich um ein gepacktes Format handelt, gilt die native Endianness. Beachten Sie, dass es kein BGR10A2 gibt. Das liegt daran, dass RGB10A2 bei D3D auf DXGI_FORMAT_R10G10B10A2_UNORM, bei Metal auf MTLPixelFormatRGB10A2Unorm, bei Vulkan auf VK_FORMAT_A2B10G10R10_UNORM_PACK32 und bei OpenGL (ES) auf GL_RGB10_A2/GL_RGB/GL_UNSIGNED_INT_2_10_10_10_REV abgebildet wird. Dies ist die einzige universell unterstützte RGB30-Option. Die entsprechenden QImage -Formate sind QImage::Format_BGR30 und QImage::Format_A2BGR30_Premultiplied.
QRhiTexture::D161316-Bit-Tiefe (normalisierte Ganzzahl ohne Vorzeichen)
QRhiTexture::D241424-Bit-Tiefe (normalisierte Ganzzahl ohne Vorzeichen)
QRhiTexture::D24S81524-Bit-Tiefe (normalisierte Ganzzahl ohne Vorzeichen), 8-Bit-Schablone
QRhiTexture::D32F1632-Bit-Tiefe (32-Bit-Float)
QRhiTexture::BC117
QRhiTexture::BC218
QRhiTexture::BC319
QRhiTexture::BC420
QRhiTexture::BC521
QRhiTexture::BC6H22
QRhiTexture::BC723
QRhiTexture::ETC2_RGB824
QRhiTexture::ETC2_RGB8A125
QRhiTexture::ETC2_RGBA826
QRhiTexture::ASTC_4x427
QRhiTexture::ASTC_5x428
QRhiTexture::ASTC_5x529
QRhiTexture::ASTC_6x530
QRhiTexture::ASTC_6x631
QRhiTexture::ASTC_8x532
QRhiTexture::ASTC_8x633
QRhiTexture::ASTC_8x834
QRhiTexture::ASTC_10x535
QRhiTexture::ASTC_10x636
QRhiTexture::ASTC_10x837
QRhiTexture::ASTC_10x1038
QRhiTexture::ASTC_12x1039
QRhiTexture::ASTC_12x1240

Dokumentation der Mitgliedsfunktionen

int QRhiTexture::arrayRangeLength() const

Gibt die exponierte Array-Bereichsgröße zurück, wenn setArrayRange() aufgerufen wurde.

Siehe auch setArrayRange().

int QRhiTexture::arrayRangeStart() const

Gibt die erste Array-Ebene zurück, wenn setArrayRange() aufgerufen wurde.

Siehe auch setArrayRange().

int QRhiTexture::arraySize() const

Gibt die Größe des Textur-Arrays zurück.

Siehe auch setArraySize().

[pure virtual] bool QRhiTexture::create()

Erzeugt die entsprechenden nativen Grafikressourcen. Wenn aufgrund eines früheren create() ohne entsprechende destroy() bereits Ressourcen vorhanden sind, wird destroy() implizit zuerst aufgerufen.

Gibt bei Erfolg true zurück, bei einem fehlgeschlagenen Grafikvorgang false. Unabhängig vom Rückgabewert ist der Aufruf von destroy() immer sicher.

[virtual] bool QRhiTexture::createFrom(QRhiTexture::NativeTexture src)

Ähnlich wie create(), mit dem Unterschied, dass keine neuen nativen Texturen erstellt werden. Stattdessen werden die von src angegebenen nativen Texturressourcen verwendet.

Dies ermöglicht den Import eines vorhandenen nativen Texturobjekts (das je nach Grafik-API zum selben Gerät oder Freigabekontext gehören muss) von einer externen Grafikmaschine.

Gibt true zurück, wenn das angegebene vorhandene native Texturobjekt erfolgreich als nicht-eigenes QRhiTexture gewrappt wurde.

Hinweis: format(), pixelSize(), sampleCount() und flags() müssen noch korrekt gesetzt werden. Die Übergabe falscher Größen und anderer Werte an QRhi::newTexture() und ein anschließendes createFrom() in der Erwartung, dass das native Texturobjekt allein ausreicht, um solche Werte abzuleiten, ist falsch und führt zu Problemen.

Hinweis: QRhiTexture übernimmt nicht den Besitz des Texturobjekts. destroy() gibt weder das Objekt noch den zugehörigen Speicher frei.

Das Gegenteil dieses Vorgangs, die Freigabe eines QRhiTexture-erstellten nativen Texturobjekts für eine fremde Engine, ist über nativeTexture() möglich.

Hinweis: Beim Importieren einer 3D-Textur oder eines Textur-Array-Objekts oder, mit OpenGL ES, einer externen Textur, ist es besonders wichtig, die entsprechenden Flags (ThreeDimensional, TextureArray, ExternalOES) über setFlags() zu setzen, bevor diese Funktion aufgerufen wird.

int QRhiTexture::depth() const

Gibt die Tiefe für 3D-Texturen zurück.

Siehe auch setDepth().

QRhiTexture::Flags QRhiTexture::flags() const

Gibt die Textur-Flags zurück.

Siehe auch setFlags().

QRhiTexture::Format QRhiTexture::format() const

Gibt das Texturformat zurück.

Siehe auch setFormat().

[virtual] QRhiTexture::NativeTexture QRhiTexture::nativeTexture()

Gibt die zugrunde liegenden nativen Ressourcen für diese Textur zurück. Der zurückgegebene Wert ist leer, wenn die zugrundeliegenden nativen Ressourcen vom Backend nicht unterstützt werden.

Siehe auch createFrom().

QSize QRhiTexture::pixelSize() const

Gibt die Größe in Pixel zurück.

Siehe auch setPixelSize().

[since 6.8] QRhiTexture::ViewFormat QRhiTexture::readViewFormat() const

Gibt das beim Sampling der Textur verwendete Ansichtsformat zurück. Wenn sie nicht aufgerufen wird, wird angenommen, dass das Ansichtsformat das gleiche ist wie format().

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch setReadViewFormat().

[override virtual] QRhiResource::Type QRhiTexture::resourceType() const

Reimplements: QRhiResource::resourceType() const.

Gibt den Ressourcentyp zurück.

int QRhiTexture::sampleCount() const

Gibt die Anzahl der Samples zurück. 1 bedeutet kein Multisample-Antialiasing.

Siehe auch setSampleCount().

void QRhiTexture::setArrayRange(int startIndex, int count)

Normalerweise sind alle Array-Ebenen offengelegt, und es obliegt dem Shader, die Ebene über die dritte Koordinate auszuwählen, die beim Abtasten der sampler2DArray an die GLSL-Funktion texture() übergeben wird. Wenn QRhi::TextureArrayRange als unterstützt gemeldet wird, fordert der Aufruf von setArrayRange() vor create() oder createFrom() dazu auf, nur den angegebenen Bereich auszuwählen, also count Elemente ab startIndex. Die Shader-Logik kann dann unter Berücksichtigung dieses Aspekts geschrieben werden.

Siehe auch QRhi::TextureArrayRange.

void QRhiTexture::setArraySize(int arraySize)

Legt die Textur arraySize fest.

Siehe auch arraySize().

void QRhiTexture::setDepth(int depth)

Legt die depth für eine 3D-Textur fest.

Siehe auch depth().

void QRhiTexture::setFlags(QRhiTexture::Flags f)

Setzt die Textur-Flags auf f.

Siehe auch flags().

void QRhiTexture::setFormat(QRhiTexture::Format fmt)

Setzt das angeforderte Texturformat auf fmt.

Hinweis: Der gesetzte Wert wird erst beim nächsten Aufruf von create() berücksichtigt, d.h. wenn die zugrunde liegende Grafikressource (neu) erstellt wird. Das Setzen eines neuen Wertes ist ansonsten sinnlos und muss vermieden werden, da es zu einem inkonsistenten Zustand führen kann.

Siehe auch format().

[virtual] void QRhiTexture::setNativeLayout(int layout)

Bei einigen Grafik-APIs, wie z. B. Vulkan, ist bei der Integration von benutzerdefiniertem Rendering-Code, der die Grafik-API direkt verwendet, besondere Vorsicht geboten, wenn es um Bildlayouts geht. Diese Funktion ermöglicht es, das erwartete layout zu kommunizieren, in dem sich das Bild, das QRhiTexture unterstützt, nach den nativen Rendering-Befehlen befindet.

Denken Sie zum Beispiel an das Rendering in ein QRhiTexture's VkImage direkt mit Vulkan in einem Codeblock, der von QRhiCommandBuffer::beginExternal() und QRhiCommandBuffer::endExternal() eingeschlossen ist, gefolgt von der Verwendung des Bildes für Textur-Sampling in einem QRhi-basierten Rendering-Durchgang. Um potenziell falsche Bildlayout-Übergänge zu vermeiden, kann diese Funktion verwendet werden, um anzugeben, wie das Bildlayout aussehen wird, sobald die im besagten Codeblock aufgezeichneten Befehle abgeschlossen sind.

Der Aufruf dieser Funktion ist nur nach QRhiCommandBuffer::endExternal() und vor einem nachfolgenden QRhiCommandBuffer::beginPass() sinnvoll.

Diese Funktion hat keine Auswirkung auf QRhi Backends, bei denen die zugrundeliegende Grafik-API kein Konzept für Bildlayouts bereitstellt.

Hinweis: Bei Vulkan ist layout ein VkImageLayout. Bei Direct 3D 12 ist layout ein Wert, der sich aus den Bits von D3D12_RESOURCE_STATES zusammensetzt.

void QRhiTexture::setPixelSize(const QSize &sz)

Setzt die in Pixeln angegebene Texturgröße auf sz.

Hinweis: Der gesetzte Wert wird erst beim nächsten Aufruf von create() berücksichtigt, d.h. wenn die zugrundeliegenden Grafikressourcen (neu) erstellt werden. Das Setzen eines neuen Wertes ist ansonsten sinnlos und muss vermieden werden, da es zu einem inkonsistenten Zustand führen kann. Das Gleiche gilt auch für alle anderen Setter.

Siehe auch pixelSize().

[since 6.8] void QRhiTexture::setReadViewFormat(const QRhiTexture::ViewFormat &fmt)

Setzt das Format der Shader-Ressourcenansicht (oder das Format der Ansicht, die für das Sampling der Textur verwendet wird) auf fmt. Standardmäßig wird dasselbe Format (und dieselbe sRGB-Eigenschaft) wie für die Textur selbst verwendet, und in den meisten Fällen muss diese Funktion nicht aufgerufen werden.

Diese Einstellung wird nur berücksichtigt, wenn die Funktion TextureViewFormat als unterstützt gemeldet wird.

Hinweis: Diese Funktionalität wird zur Verfügung gestellt, um das "Casting" zwischen non-sRGB und sRGB zu ermöglichen, damit der Shader die impliziten sRGB-Konvertierungen durchführen oder nicht durchführen kann. Andere Arten des Castings können funktionieren oder auch nicht.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch readViewFormat().

void QRhiTexture::setSampleCount(int s)

Setzt die Anzahl der Proben auf s.

Siehe auch sampleCount().

[since 6.8] void QRhiTexture::setWriteViewFormat(const QRhiTexture::ViewFormat &fmt)

Setzt das Rendering-Ziel-Ansichtsformat auf fmt. Standardmäßig wird das gleiche Format (und die sRGB-Eigenschaft) wie die Textur selbst verwendet, und in den meisten Fällen muss diese Funktion nicht aufgerufen werden.

Ein häufiger Anwendungsfall für die Bereitstellung eines Schreib-Ansichtsformats ist die Arbeit mit extern bereitgestellten Texturen, die außerhalb unserer Kontrolle ein sRGB-Format mit 3D-APIs wie Vulkan oder Direct 3D verwenden, aber die Rendering-Engine ist bereits darauf vorbereitet, die Linearisierung und Konvertierung in sRGB am Ende ihrer Shading-Pipeline zu handhaben. In diesem Fall wird beim Rendern in eine solche Textur eine Rendering-Zielansicht (z. B. VkImageView) benötigt, die das gleiche, aber nicht das RGB-Format hat. (wenn man z.B. von einer OpenXR-Implementierung eine VK_FORMAT_R8G8B8A8_SRGB-Textur erhält, ist es wahrscheinlich, dass das Rendern in diese Textur mit einer VK_FORMAT_R8G8B8A8_UNORM-Ansicht erfolgen sollte, wenn die Pipeline der Rendering-Engine dies erfordert; in diesem Beispiel würde man diese Funktion mit einer ViewFormat aufrufen, die ein Format von QRhiTexture::RGBA8 hat und srgb auf false gesetzt ist).

Diese Einstellung wird nur berücksichtigt, wenn die Funktion TextureViewFormat als unterstützt gemeldet wird.

Hinweis: Diese Funktionalität wird zur Verfügung gestellt, um das "Casting" zwischen non-sRGB und sRGB zu ermöglichen, damit der Shader write die impliziten sRGB-Konvertierungen nicht oder nicht vollständig durchführt. Andere Arten des Castings können funktionieren, müssen aber nicht.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch writeViewFormat().

[since 6.8] QRhiTexture::ViewFormat QRhiTexture::writeViewFormat() const

Gibt das Ansichtsformat zurück, das beim Schreiben in die Textur und bei der Verwendung mit image load/store verwendet wird. Wenn sie nicht aufgerufen wird, wird angenommen, dass das Ansichtsformat dasselbe wie format() ist.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch setWriteViewFormat().

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