QQuickRenderTarget Class

Die Klasse QQuickRenderTarget stellt einen undurchsichtigen Container für native Grafikressourcen zur Verfügung, der ein Renderziel und zugehörige Metadaten angibt. Mehr...

Kopfzeile: #include <QQuickRenderTarget>
CMake: find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake: QT += quick
Seit: Qt 6.0

Öffentliche Typen

(since 6.8) enum class Flag { MultisampleResolve }
flags Flags

Öffentliche Funktionen

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)

Statische öffentliche Mitglieder

(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)

Detaillierte Beschreibung

Siehe auch QQuickWindow::setRenderTarget() und QQuickGraphicsDevice.

Member-Typ-Dokumentation

[since 6.8] enum class QQuickRenderTarget::Flag
flags QQuickRenderTarget::Flags

Flags für die statischen QQuickRenderTarget Konstruktorfunktionen.

KonstanteWertBeschreibung
QQuickRenderTarget::Flag::MultisampleResolve0x01Zeigt an, dass das sampleCount Argument nicht die Anzahl der Samples für die angegebene Textur ist (und dass die Textur immer noch eine Nicht-Multisample-Textur ist), sondern die gewünschten Samples für Multisample-Antialiasing. Löst die automatische Erstellung und Verwaltung einer Multisample-Zwischentextur (oder eines Textur-Arrays) als Farbpuffer aus, ohne dass die Anwendung davon etwas mitbekommt. Die Samples werden am Ende des Rendervorgangs automatisch in die bereitgestellte Textur aufgelöst. Wenn dieses Flag nicht gesetzt ist und das Argument sampleCount größer als 1 ist, bedeutet dies, dass die bereitgestellte Textur ein Multisample ist. Das Flag hat keine Auswirkung, wenn sampleCount gleich 1 ist (was bedeutet, dass kein Multisampling verwendet wird).

Dieses Enum wurde in Qt 6.8 eingeführt.

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

Dokumentation der Mitgliedsfunktionen

QQuickRenderTarget::QQuickRenderTarget()

Konstruiert ein Standard QQuickRenderTarget, das keine nativen Objekte referenziert.

[noexcept] QQuickRenderTarget::~QQuickRenderTarget()

Zerstörer.

[since 6.8] QRhiTexture *QQuickRenderTarget::depthTexture() const

Liefert die aktuell eingestellte Tiefentextur oder, in den meisten Fällen, nullptr.

Der Wert ist nur dann nicht-null, wenn setDepthTexture() aufgerufen wurde.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch setDepthTexture().

[since 6.3] qreal QQuickRenderTarget::devicePixelRatio() const

Gibt das Gerätepixelverhältnis für das Rendering-Ziel zurück. Dies ist das Verhältnis zwischen Gerätepixeln und geräteunabhängigen Pixeln.

Der Standardwert für das Gerätepixelverhältnis ist 1.0.

Diese Funktion wurde in Qt 6.3 eingeführt.

Siehe auch setDevicePixelRatio().

[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromD3D11Texture(void *texture, uint format, const QSize &pixelSize, int sampleCount = 1)

Gibt eine neue QQuickRenderTarget zurück, die auf ein durch texture angegebenes D3D11-Texturobjekt verweist.

format spezifiziert das DXGI_FORMAT der Textur. Es sollten nur Texturformate verwendet werden, die von der Rendering-Infrastruktur von Qt unterstützt werden.

pixelSize spezifiziert die Größe des Bildes in Pixeln. Derzeit werden nur 2D-Texturen unterstützt.

sampleCount spezifiziert die Anzahl der Samples. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass das native Objekt eine Multisample-Textur ist.

Die Textur wird als erstes Farbattachment des Rendering-Ziels verwendet, das vom Qt Quick scenegraph benutzt wird. Ein Tiefenschablonenpuffer, falls zutreffend, wird automatisch erstellt und verwendet.

Hinweis: Die resultierende QQuickRenderTarget besitzt keine nativen Ressourcen, sie enthält lediglich Verweise und die zugehörigen Metadaten der Größe und der Sampleanzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch QQuickWindow::setRenderTarget() und QQuickRenderControl.

[static] QQuickRenderTarget QQuickRenderTarget::fromD3D11Texture(void *texture, const QSize &pixelSize, int sampleCount = 1)

Dies ist eine überladene Funktion.

Gibt eine neue QQuickRenderTarget zurück, die auf ein D3D11-Texturobjekt verweist, das durch texture angegeben wird. Es wird angenommen, dass die Textur das Format DXGI_FORMAT_R8G8B8A8_UNORM hat.

pixelSize gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen unterstützt.

sampleCount spezifiziert die Anzahl der Samples. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass das native Objekt eine Multisample-Textur ist.

Die Textur wird als erstes Farbattachment des Rendering-Ziels verwendet, das vom Qt Quick scenegraph benutzt wird. Ein Tiefenschablonenpuffer, falls zutreffend, wird automatisch erstellt und verwendet.

Hinweis: Die resultierende QQuickRenderTarget besitzt keine nativen Ressourcen, sie enthält lediglich Verweise und die zugehörigen Metadaten der Größe und der Sampleanzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

Siehe auch QQuickWindow::setRenderTarget() und QQuickRenderControl.

[static, since 6.8] QQuickRenderTarget QQuickRenderTarget::fromD3D11Texture(void *texture, uint format, QSize pixelSize, int sampleCount, QQuickRenderTarget::Flags flags)

Dies ist eine überladene Funktion.

Gibt eine neue QQuickRenderTarget zurück, die auf ein D3D11-Texturobjekt verweist, das durch texture angegeben wird.

format spezifiziert das DXGI_FORMAT der Textur. Es sollten nur Texturformate verwendet werden, die von der Rendering-Infrastruktur von Qt unterstützt werden.

pixelSize spezifiziert die Größe des Bildes in Pixeln. Derzeit werden nur 2D-Texturen unterstützt.

sampleCount spezifiziert die Anzahl der Samples. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass das native Objekt eine Multisample-Textur ist, außer wenn flags MultisampleResolve enthält. In diesem Fall wird davon ausgegangen, dass texture eine 2D-Textur ohne Multisampling ist, und sampleCount definiert die gewünschte Anzahl von Samples. Die resultierende QQuickRenderTarget verwendet eine zwischengeschaltete, automatisch erstellte Multisample-Textur als Farbanhang und löst die Samples in texture auf. Dies ist der empfohlene Ansatz für die Durchführung von MSAA, wenn die native Textur nicht bereits mehrstufig ist.

Die Textur wird als erstes Farbattachment des Rendering-Ziels verwendet, das vom Qt Quick scenegraph verwendet wird. Ein Tiefenschablonenpuffer wird, falls zutreffend, automatisch erstellt und verwendet. Wenn der Farbpuffer Multisample ist, wird der Tiefenschablonenpuffer automatisch auch Multisample sein.

Hinweis: Die resultierende QQuickRenderTarget besitzt keine nativen Ressourcen, sondern enthält lediglich Verweise und die zugehörigen Metadaten zu Größe und Sampleanzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch QQuickWindow::setRenderTarget(), QQuickRenderControl, und fromD3D11Texture().

[static, since 6.6] QQuickRenderTarget QQuickRenderTarget::fromD3D12Texture(void *texture, int resourceState, uint format, const QSize &pixelSize, int sampleCount = 1)

Gibt eine neue QQuickRenderTarget zurück, die auf ein durch texture angegebenes D3D12-Texturobjekt verweist.

resourceState muss eine gültige Bitmaske mit Bits aus D3D12_RESOURCE_STATES sein, die den aktuellen Zustand der Ressource angibt.

format gibt das DXGI_FORMAT der Textur an. Es sollten nur Texturformate verwendet werden, die von der Rendering-Infrastruktur von Qt unterstützt werden.

pixelSize spezifiziert die Größe des Bildes in Pixeln. Derzeit werden nur 2D-Texturen unterstützt.

sampleCount spezifiziert die Anzahl der Samples. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass das native Objekt eine Multisample-Textur ist.

Die Textur wird als erstes Farbattachment des Rendering-Ziels verwendet, das vom Qt Quick scenegraph benutzt wird. Ein Tiefenschablonenpuffer, falls zutreffend, wird automatisch erstellt und verwendet.

Hinweis: Die resultierende QQuickRenderTarget besitzt keine nativen Ressourcen, sie enthält lediglich Verweise und die zugehörigen Metadaten der Größe und der Sampleanzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

Diese Funktion wurde in Qt 6.6 eingeführt.

Siehe auch QQuickWindow::setRenderTarget() und 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)

Dies ist eine überladene Funktion.

Gibt eine neue QQuickRenderTarget zurück, die eine D3D12 2D-Textur oder ein 2D-Textur-Array-Objekt referenziert, das durch texture angegeben wird.

resourceState muss eine gültige Bitmaske mit Bits aus D3D12_RESOURCE_STATES sein, die den aktuellen Zustand der Ressource angibt.

format gibt das DXGI_FORMAT der Textur an. Es sollten nur Texturformate verwendet werden, die von der Rendering-Infrastruktur von Qt unterstützt werden.

viewFormat ist das DXGI_FORMAT, das für die Rendering Target View (RTV) verwendet wird. Oft das gleiche wie format. Funktioniert nur, wenn entspanntes Format-Casting vom Treiber unterstützt wird, ansonsten wird das Argument ignoriert. In der Praxis wird erwartet, dass die Unterstützung unter Windows 10 1703 und neuer immer verfügbar ist.

pixelSize gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen und 2D-Textur-Arrays unterstützt.

sampleCount spezifiziert die Anzahl der Samples. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass es sich bei dem nativen Objekt um eine Multisample-Textur handelt, außer wenn flags MultisampleResolve enthält. In diesem Fall wird davon ausgegangen, dass texture eine 2D-Textur oder ein 2D-Textur-Array ohne Multisampling ist, und sampleCount definiert die gewünschte Anzahl der Samples. Die resultierende QQuickRenderTarget verwendet eine zwischengeschaltete, automatisch erstellte Multisample-Textur (oder Textur-Array) als Farbanhang und löst die Samples in texture auf. Dies ist der empfohlene Ansatz zur Durchführung von MSAA, wenn die native D3D12-Textur nicht bereits Multisample ist.

Die Anzahl der Array-Elemente (Layer) ist in arraySize angegeben. Wenn sie größer als 1 ist, impliziert sie Multiview-Rendering(View Instancing), was insbesondere bei VR/AR relevant sein kann. arraySize ist die Anzahl der Views, typischerweise 2. Siehe QSGMaterial::viewCount() für Details zum Aktivieren von Multiview-Rendering innerhalb des Qt Quick scenegraph.

Die Textur wird als erstes Farbattachment des Rendertargets verwendet, das vom Qt Quick scenegraph benutzt wird. Ein Tiefenschablonenpuffer, falls zutreffend, wird automatisch erstellt und verwendet. Wenn der Farbpuffer Multisample ist, ist der Tiefenschablonenpuffer automatisch auch Multisample. Bei Multiview-Rendering wird die Tiefenschablonen-Textur automatisch zu einem Array mit einem passenden arraySize gemacht.

Hinweis: Die resultierende QQuickRenderTarget besitzt keine nativen Ressourcen, sondern enthält lediglich Verweise und die zugehörigen Metadaten über die Größe und die Anzahl der Samples. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch QQuickWindow::setRenderTarget() und QQuickRenderControl.

[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromMetalTexture(MTLTexture *texture, uint format, const QSize &pixelSize, int sampleCount = 1)

Gibt eine neue QQuickRenderTarget zurück, die auf ein durch texture angegebenes Metal-Texturobjekt verweist.

format spezifiziert das MTLPixelFormat der Textur. Es sollten nur Texturformate verwendet werden, die von der Rendering-Infrastruktur von Qt unterstützt werden.

pixelSize spezifiziert die Größe des Bildes in Pixeln. Derzeit werden nur 2D-Texturen unterstützt.

sampleCount spezifiziert die Anzahl der Samples. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass das native Objekt eine Multisample-Textur ist.

Die Textur wird als erstes Farbattachment des Rendering-Ziels verwendet, das vom Qt Quick scenegraph benutzt wird. Ein Tiefenschablonenpuffer, falls zutreffend, wird automatisch erstellt und verwendet.

Hinweis: Die resultierende QQuickRenderTarget besitzt keine nativen Ressourcen, sie enthält lediglich Verweise und die zugehörigen Metadaten der Größe und der Sampleanzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch QQuickWindow::setRenderTarget() und QQuickRenderControl.

[static] QQuickRenderTarget QQuickRenderTarget::fromMetalTexture(MTLTexture *texture, const QSize &pixelSize, int sampleCount = 1)

Dies ist eine überladene Funktion.

Gibt eine neue QQuickRenderTarget zurück, die auf ein durch texture angegebenes Metal-Texturobjekt verweist. Es wird angenommen, dass die Textur ein Format von MTLPixelFormatRGBA8Unorm hat.

pixelSize gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen unterstützt.

sampleCount spezifiziert die Anzahl der Samples. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass das native Objekt eine Multisample-Textur ist.

Die Textur wird als erstes Farbattachment des Rendering-Ziels verwendet, das vom Qt Quick scenegraph benutzt wird. Ein Tiefenschablonenpuffer, falls zutreffend, wird automatisch erstellt und verwendet.

Hinweis: Die resultierende QQuickRenderTarget besitzt keine nativen Ressourcen, sie enthält lediglich Verweise und die zugehörigen Metadaten der Größe und der Sampleanzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

Siehe auch QQuickWindow::setRenderTarget() und QQuickRenderControl.

[static, since 6.8] QQuickRenderTarget QQuickRenderTarget::fromMetalTexture(MTLTexture *texture, uint format, uint viewFormat, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)

Dies ist eine überladene Funktion.

Gibt eine neue QQuickRenderTarget zurück, die auf eine 2D-Textur aus Metall oder ein 2D-Textur-Array verweist, das in texture angegeben ist.

format spezifiziert das MTLPixelFormat der Textur. Es sollten nur Texturformate verwendet werden, die von der Rendering-Infrastruktur von Qt unterstützt werden.

viewFormat wird normalerweise auf den gleichen Wert wie format gesetzt. In einigen Fällen, z.B. wenn in eine Textur mit einem _SRGB Format gerendert wird und die implizite linear->sRGB Konvertierung bei Shader-Schreibvorgängen nicht erwünscht ist, kann der Wert anders sein. Beachten Sie jedoch, dass der Wert von Qt ignoriert werden kann, wenn zur Laufzeit QRhi meldet, dass das QRhi::TextureViewFormat Feature nicht unterstützt wird.

pixelSize gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen und 2D-Textur-Arrays unterstützt.

sampleCount spezifiziert die Anzahl der Samples. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass es sich bei dem nativen Objekt um eine Multisample-Textur handelt, außer wenn flags MultisampleResolve enthält. In diesem Fall wird davon ausgegangen, dass texture eine 2D-Textur oder ein 2D-Textur-Array ohne Multisampling ist, und sampleCount definiert die gewünschte Anzahl der Samples. Die resultierende QQuickRenderTarget verwendet eine zwischengeschaltete, automatisch erstellte Multisample-Textur (oder Textur-Array) als Farbanhang und löst die Samples in texture auf. Dies ist der empfohlene Ansatz zur Durchführung von MSAA, wenn die native Metalltextur nicht bereits mehrstufig ist.

Die Anzahl der Array-Elemente (Schichten) ist in arraySize angegeben. Wenn sie größer als 1 ist, impliziert sie Multiview-Rendering, was insbesondere bei VR/AR relevant sein kann. arraySize ist die Anzahl der Ansichten, typischerweise 2. Siehe QSGMaterial::viewCount() für Details zum Aktivieren von Multiview-Rendering innerhalb des Qt Quick scenegraph.

Die Textur wird als erstes Farbattachment des Rendertargets verwendet, das vom Qt Quick scenegraph benutzt wird. Ein Tiefenschablonenpuffer, falls zutreffend, wird automatisch erstellt und verwendet. Wenn der Farbpuffer Multisample ist, ist der Tiefenschablonenpuffer automatisch auch Multisample. Beim Multiview-Rendering wird die Tiefenschablonen-Textur automatisch zu einem Array mit einem passenden arraySize gemacht.

Hinweis: Die resultierende QQuickRenderTarget besitzt keine nativen Ressourcen, sondern enthält lediglich Verweise und die zugehörigen Metadaten über die Größe und die Anzahl der Samples. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch QQuickWindow::setRenderTarget() und QQuickRenderControl.

[static, since 6.2] QQuickRenderTarget QQuickRenderTarget::fromOpenGLRenderBuffer(uint renderbufferId, const QSize &pixelSize, int sampleCount = 1)

Gibt eine neue QQuickRenderTarget zurück, die auf ein OpenGL-Renderbuffer-Objekt verweist, das durch renderbufferId angegeben wird.

Der Renderbuffer wird als Farbanhang für das interne Framebuffer-Objekt verwendet. Diese Funktion wird zur Verfügung gestellt, um Renderbuffer anzusprechen, die von der Anwendung mit einem darunter liegenden externen Puffer, wie z.B. einem EGLImageKHR, erstellt werden. Sobald die Anwendung glEGLImageTargetRenderbufferStorageOES aufgerufen hat, kann der Renderbuffer an diese Funktion übergeben werden.

pixelSize gibt die Größe des Bildes in Pixeln an.

sampleCount spezifiziert die Anzahl der Samples. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass das native Objekt ein Multisample-Renderbuffer ist.

Hinweis: Die resultierende QQuickRenderTarget besitzt keine nativen Ressourcen, sie enthält lediglich Verweise und die zugehörigen Metadaten über die Größe und die Anzahl der Samples. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

Diese Funktion wurde in Qt 6.2 eingeführt.

Siehe auch QQuickWindow::setRenderTarget() und QQuickRenderControl.

[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromOpenGLTexture(uint textureId, uint format, const QSize &pixelSize, int sampleCount = 1)

Gibt eine neue QQuickRenderTarget zurück, die auf ein durch textureId angegebenes OpenGL-Texturobjekt verweist.

format gibt das native interne Format der Textur an. Es sollten nur Texturformate verwendet werden, die von der Rendering-Infrastruktur von Qt unterstützt werden.

pixelSize spezifiziert die Größe des Bildes in Pixeln. Derzeit werden nur 2D-Texturen unterstützt.

sampleCount spezifiziert die Anzahl der Samples. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass das native Objekt eine Multisample-Textur ist.

Die Textur wird als erstes Farbattachment des Rendering-Ziels verwendet, das vom Qt Quick scenegraph benutzt wird. Ein Tiefenschablonenpuffer, falls zutreffend, wird automatisch erstellt und verwendet.

Der OpenGL-Objektname textureId muss ein gültiger Name in dem Rendering-Kontext sein, der vom Qt Quick -Szenegraph verwendet wird.

Hinweis: Die resultierende QQuickRenderTarget besitzt keine nativen Ressourcen, sie enthält lediglich Verweise und die zugehörigen Metadaten der Größe und der Anzahl der Samples. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch QQuickWindow::setRenderTarget() und QQuickRenderControl.

[static] QQuickRenderTarget QQuickRenderTarget::fromOpenGLTexture(uint textureId, const QSize &pixelSize, int sampleCount = 1)

Dies ist eine überladene Funktion.

Gibt eine neue QQuickRenderTarget zurück, die auf ein OpenGL-Texturobjekt verweist, das durch textureId angegeben wird. Es wird angenommen, dass die Textur ein Format von GL_RGBA (GL_RGBA8) hat.

pixelSize gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen unterstützt.

sampleCount spezifiziert die Anzahl der Samples. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass das native Objekt eine Multisample-Textur ist.

Die Textur wird als erstes Farbattachment des Rendering-Ziels verwendet, das vom Qt Quick scenegraph benutzt wird. Ein Tiefenschablonenpuffer, falls zutreffend, wird automatisch erstellt und verwendet.

Der OpenGL-Objektname textureId muss ein gültiger Name in dem Rendering-Kontext sein, der vom Qt Quick -Szenegraph verwendet wird.

Hinweis: Die resultierende QQuickRenderTarget besitzt keine nativen Ressourcen, sie enthält lediglich Verweise und die zugehörigen Metadaten der Größe und der Anzahl der Samples. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

Siehe auch QQuickWindow::setRenderTarget() und QQuickRenderControl.

[static, since 6.8] QQuickRenderTarget QQuickRenderTarget::fromOpenGLTexture(uint textureId, uint format, QSize pixelSize, int sampleCount, int arraySize, QQuickRenderTarget::Flags flags)

Dies ist eine überladene Funktion.

Gibt eine neue QQuickRenderTarget zurück, die auf eine OpenGL 2D-Textur oder ein Textur-Array-Objekt verweist, das durch textureId angegeben wird.

format spezifiziert das native interne Format der Textur. Es sollten nur Texturformate verwendet werden, die von der Rendering-Infrastruktur von Qt unterstützt werden.

pixelSize spezifiziert die Größe des Bildes in Pixeln. Derzeit werden nur 2D-Texturen und 2D-Textur-Arrays unterstützt.

sampleCount spezifiziert die Anzahl der Samples. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass das native Objekt eine Multisample-Textur ist, außer wenn flags MultisampleResolve enthält. In diesem Fall wird davon ausgegangen, dass textureId eine 2D-Textur oder ein 2D-Textur-Array ohne Multisampling ist, und sampleCount definiert die gewünschte Anzahl der Samples. Die resultierende QQuickRenderTarget verwendet eine zwischengeschaltete, automatisch erstellte Multisample-Textur (oder Textur-Array) als Farbanhang und löst die Samples in textureId auf. Dies ist der empfohlene Ansatz zur Durchführung von MSAA, wenn die native OpenGL-Textur nicht bereits Multisample ist.

Wenn arraySize größer als 1 ist, impliziert dies Multiview-Rendering(GL_OVR_multiview, QRhiColorAttachment::setMultiViewCount()), was insbesondere bei VR/AR relevant sein kann. In diesem Fall ist arraySize die Anzahl der Ansichten, typischerweise 2. Siehe QSGMaterial::viewCount() für Details zum Aktivieren von Multiview-Rendering innerhalb des Qt Quick Szenegraphen.

Ein Tiefenschablonenpuffer, falls zutreffend, wird automatisch erstellt und verwendet. Wenn der Farbpuffer Multisample ist, wird der Tiefenschablonenpuffer automatisch auch Multisample sein. Bei Multiview-Rendering wird die Tiefenschablonen-Textur automatisch zu einem Array mit einem passenden arraySize gemacht.

Der OpenGL-Objektname textureId muss ein gültiger 2D-Texturname in dem Rendering-Kontext sein, der vom Qt Quick scenegraph verwendet wird. Wenn arraySize größer als 1 ist, muss textureId ein gültiger 2D-Textur-Array-Name sein.

Hinweis: Die resultierende QQuickRenderTarget besitzt keine nativen Ressourcen, sie enthält lediglich Verweise und die zugehörigen Metadaten der Größe und der Sampleanzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

Hinweis: Die Implementierung dieser Überladung ist nicht kompatibel mit OpenGL ES 2.0 oder 3.0 und erfordert mindestens OpenGL ES 3.1. (oder OpenGL 3.0 auf dem Desktop)

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch QQuickWindow::setRenderTarget(), QQuickRenderControl, und fromOpenGLTexture().

[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromPaintDevice(QPaintDevice *device)

Gibt ein neues QQuickRenderTarget zurück, das auf ein durch device angegebenes Malgeräteobjekt verweist.

Diese Option, das Rendering auf ein QPaintDevice umzuleiten, ist nur verfügbar, wenn sie mit dem software Backend von Qt Quick ausgeführt wird.

Hinweis: QQuickRenderTarget ist nicht Eigentümer von device, es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass das Objekt so lange wie nötig existiert.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch QQuickWindow::setRenderTarget() und QQuickRenderControl.

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

Gibt eine neue QQuickRenderTarget zurück, die auf eine bestehende renderTarget verweist.

renderTarget wird in den meisten Fällen eine QRhiTextureRenderTarget sein, die es ermöglicht, das Rendering der Qt Quick Szene in eine QRhiTexture zu leiten.

Hinweis: Das resultierende QQuickRenderTarget ist nicht Eigentümer von renderTarget und den zugrundeliegenden nativen Ressourcen, es enthält lediglich Verweise und die zugehörigen Metadaten der Größe und Anzahl der Samples. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die referenzierten Ressourcen so lange wie nötig existieren.

Diese Funktion wurde in Qt 6.6 eingeführt.

Siehe auch QQuickWindow::setRenderTarget() und QQuickRenderControl.

[static, since 6.4] QQuickRenderTarget QQuickRenderTarget::fromVulkanImage(VkImage image, VkImageLayout layout, VkFormat format, const QSize &pixelSize, int sampleCount = 1)

Gibt ein neues QQuickRenderTarget zurück, das ein durch image angegebenes Vulkan-Bildobjekt referenziert. Die aktuelle layout des Bildes muss ebenfalls angegeben werden.

format spezifiziert das VkFormat des Bildes. Es sollten nur Bildformate verwendet werden, die von der Rendering-Infrastruktur von Qt unterstützt werden.

pixelSize spezifiziert die Größe des Bildes in Pixeln. Derzeit werden nur 2D-Texturen unterstützt.

sampleCount spezifiziert die Anzahl der Samples. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass das native Objekt eine Multisample-Textur ist.

Das Bild wird als erstes Farbattachment des Rendering-Targets verwendet, das vom Qt Quick scenegraph benutzt wird. Ein Tiefenschablonenpuffer, falls zutreffend, wird automatisch erstellt und verwendet.

Hinweis: Die resultierende QQuickRenderTarget besitzt keine nativen Ressourcen, sondern enthält lediglich Verweise und die zugehörigen Metadaten zur Größe und Sampleanzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch QQuickWindow::setRenderTarget() und QQuickRenderControl.

[static] QQuickRenderTarget QQuickRenderTarget::fromVulkanImage(VkImage image, VkImageLayout layout, const QSize &pixelSize, int sampleCount = 1)

Dies ist eine überladene Funktion.

Gibt ein neues QQuickRenderTarget zurück, das ein durch image angegebenes Vulkan-Bildobjekt referenziert. Es wird angenommen, dass das Bild ein Format von VK_FORMAT_R8G8B8A8_UNORM hat.

pixelSize gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen unterstützt.

sampleCount spezifiziert die Anzahl der Samples. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass das native Objekt eine Multisample-Textur ist.

Die Textur wird als erstes Farbattachment des Rendering-Ziels verwendet, das vom Qt Quick scenegraph benutzt wird. Ein Tiefenschablonenpuffer, falls zutreffend, wird automatisch erstellt und verwendet.

Hinweis: Die resultierende QQuickRenderTarget besitzt keine nativen Ressourcen, sie enthält lediglich Verweise und die zugehörigen Metadaten der Größe und der Sampleanzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

Siehe auch QQuickWindow::setRenderTarget() und 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)

Dies ist eine überladene Funktion.

Gibt ein neues QQuickRenderTarget zurück, das ein durch image angegebenes Vulkan-Bildobjekt referenziert. Die aktuelle layout des Bildes muss ebenfalls angegeben werden. Das Bild muss entweder eine 2D-Textur oder ein 2D-Textur-Array sein.

format spezifiziert das VkFormat des Bildes. Es sollten nur Bildformate verwendet werden, die von der Rendering-Infrastruktur von Qt unterstützt werden.

viewFormat wird normalerweise auf den gleichen Wert wie format gesetzt. In einigen Fällen, z.B. wenn in eine Textur mit einem _SRGB Format gerendert wird und die implizite linear->sRGB Konvertierung bei Shader-Schreibvorgängen nicht erwünscht ist, kann der Wert anders sein. (z.B. ein format von VK_FORMAT_R8G8B8A8_SRGB und viewFormat von VK_FORMAT_R8G8B8A8_UNORM).

pixelSize gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen unterstützt.

sampleCount spezifiziert die Anzahl der Samples. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass es sich bei dem nativen Objekt um eine Multisample-Textur handelt, außer wenn flags MultisampleResolve enthält. In diesem Fall wird davon ausgegangen, dass image eine 2D-Textur oder ein 2D-Textur-Array ohne Multisampling ist, und sampleCount definiert die gewünschte Anzahl der Samples. Die resultierende QQuickRenderTarget verwendet eine zwischengeschaltete, automatisch erstellte Multisample-Textur (oder Textur-Array) als Farbanhang und löst die Samples in image auf. Dies ist der empfohlene Ansatz zur Durchführung von MSAA, wenn das native Vulkan-Bild nicht bereits Multisample ist.

Die Anzahl der Array-Elemente (Schichten) ist in arraySize angegeben. Wenn sie größer als 1 ist, impliziert sie Multiview-Rendering(VK_KHR_multiview), was insbesondere bei VR/AR relevant sein kann. arraySize ist die Anzahl der Ansichten, typischerweise 2. Siehe QSGMaterial::viewCount() für Details zum Aktivieren von Multiview-Rendering innerhalb des Qt Quick scenegraph.

Die Textur wird als erstes Farbattachment des Rendertargets verwendet, das vom Qt Quick scenegraph benutzt wird. Ein Tiefenschablonenpuffer, falls zutreffend, wird automatisch erstellt und verwendet. Wenn der Farbpuffer Multisample ist, ist der Tiefenschablonenpuffer automatisch auch Multisample. Beim Multiview-Rendering wird die Tiefenschablonen-Textur automatisch zu einem Array mit einem passenden arraySize gemacht.

Hinweis: Die resultierende QQuickRenderTarget besitzt keine nativen Ressourcen, sondern enthält lediglich Verweise und die zugehörigen Metadaten über die Größe und die Anzahl der Samples. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch QQuickWindow::setRenderTarget() und QQuickRenderControl.

bool QQuickRenderTarget::isNull() const

Gibt true zurück, wenn diese QQuickRenderTarget standardmäßig konstruiert ist und keine eigenen Objekte referenziert.

[since 6.4] bool QQuickRenderTarget::mirrorVertically() const

Rückgabe Gibt zurück, ob das Rendering-Ziel vertikal gespiegelt ist.

Der Standardwert ist false.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch setMirrorVertically().

[since 6.8] void QQuickRenderTarget::setDepthTexture(QRhiTexture *texture)

Fordert die Verwendung des angegebenen texture als Tiefen- oder Tiefenschablonenpuffer an. Das Eigentum an texture wird nicht übernommen.

Die Anforderung wird nur berücksichtigt, wenn sie relevant ist. Der Aufruf dieser Funktion hat zum Beispiel keine Auswirkungen auf fromRhiRenderTarget(), fromPaintDevice() oder fromOpenGLRenderBuffer().

Normalerweise wird ein Tiefenschablonenpuffer automatisch erstellt, transparent für den Benutzer von QQuickRenderTarget. Daher ist es in den meisten Fällen nicht nötig, diese Funktion aufzurufen, wenn man mit QQuickRenderTarget arbeitet. Unter besonderen Umständen kann es jedoch wichtig sein, eine Textur bereitzustellen, in die Tiefen- (oder Tiefen- und Schablonen-) Daten gerendert werden, anstatt Qt Quick seine eigenen Zwischentexturen oder -puffer erstellen zu lassen. Ein Beispiel hierfür ist OpenXR und seine Erweiterungen wie XR_KHR_composition_layer_depth. Um den Tiefenpuffer an den XR-Compositor zu übergeben, muss man in der Praxis eine bereits erstellte Tiefentextur (Tiefenschablone) von OpenXR (aus der XrSwapchain) abrufen und diese Textur als Renderziel für die Tiefendaten verwenden. Das wäre ohne diese Funktion nicht möglich.

Hinweis: Die texture wird immer als nicht-multisample 2D-Textur oder Textur-Array (für Multiview) erwartet. Wenn MSAA im Spiel ist, werden die Samples am Ende des Rendering-Durchgangs in texture aufgelöst, unabhängig davon, ob das MultisampleResolve Flag gesetzt ist oder nicht. MSAA wird nur für Tiefen-Texturen (depth-stencil) unterstützt, wenn die zugrunde liegende 3D-API dies unterstützt, und diese Unterstützung ist nicht allgemein verfügbar. Siehe the relevant QRhi feature flag für Details. Wenn dies nicht unterstützt wird und Multisampling in Kombination mit einer benutzerdefinierten Tiefentextur angefordert wird, wird texture während des Renderings nicht berührt und es wird eine Warnung ausgegeben.

Hinweis: Wenn es um OpenGL und OpenGL ES geht, ist die Verwendung von Tiefentexturen bei OpenGL ES 2.0 nicht möglich und erfordert mindestens OpenGL ES 3.0. Multisample (MSAA) Unterstützung ist nicht verfügbar ohne mindestens OpenGL ES 3.1 oder OpenGL 3.0 auf dem Desktop.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch depthTexture().

[since 6.3] void QQuickRenderTarget::setDevicePixelRatio(qreal ratio)

Setzt das Gerätepixelverhältnis für dieses Rendering-Ziel auf ratio. Dies ist das Verhältnis zwischen Gerätepixeln und geräteunabhängigen Pixeln.

Beachten Sie, dass der angegebene Wert für das Gerätepixelverhältnis ignoriert wird, wenn QQuickRenderControl::renderWindow() neu implementiert wird, um einen gültigen QWindow zurückzugeben.

Diese Funktion wurde in Qt 6.3 eingeführt.

Siehe auch devicePixelRatio().

[since 6.4] void QQuickRenderTarget::setMirrorVertically(bool enable)

Legt die Größe des Rendering-Zielinhalts fest, der beim Zeichnen vertikal an enable gespiegelt werden soll. Dies ermöglicht die einfache Integration von Rendering-Code von Drittanbietern, der nicht den Standarderwartungen entspricht.

Hinweis: Diese Funktion sollte nicht verwendet werden, wenn das software Backend verwendet wird.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch mirrorVertically().

Verwandte Nicht-Mitglieder

[noexcept] bool operator!=(const QQuickRenderTarget &a, const QQuickRenderTarget &b)

Gibt "true" zurück, wenn a und b sich auf eine unterschiedliche Gruppe von nativen Objekten beziehen oder die zugehörigen Daten (Größe, Stichprobenzahl) nicht übereinstimmen.

[noexcept] bool operator==(const QQuickRenderTarget &a, const QQuickRenderTarget &b)

Gibt "true" zurück, wenn a und b auf dieselbe Gruppe von nativen Objekten verweisen und übereinstimmende zugehörige Daten (Größe, Anzahl der Proben) haben.

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