QQuickRenderTarget Class
Die Klasse „QQuickRenderTarget“ stellt einen undurchsichtigen Container für native Grafikressourcen bereit, der ein Renderziel sowie zugehörige Metadaten angibt. Mehr...
| Header: | #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
Ö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) |
Verwandte Nicht-Mitglieder
| bool | operator!=(const QQuickRenderTarget &a, const QQuickRenderTarget &b) |
| bool | operator==(const QQuickRenderTarget &a, const QQuickRenderTarget &b) |
Siehe auch „ QQuickWindow::setRenderTarget()“ und „ QQuickGraphicsDevice “.
Dokumentation zum Mitgliedstyp
[since 6.8] enum class QQuickRenderTarget::Flag
flags QQuickRenderTarget::Flags
Flags für die statischen Konstruktorfunktionen von „ QQuickRenderTarget “.
| Konstante | Wert | Beschreibung |
|---|---|---|
QQuickRenderTarget::Flag::MultisampleResolve | 0x01 | Gibt an, dass das Argument ` sampleCount ` nicht die Anzahl der Samples für die bereitgestellte Textur ist (und dass die Textur weiterhin eine Nicht-Multisample-Textur ist), sondern vielmehr die gewünschten Samples für Multisample-Antialiasing. Löst die automatische Erstellung und Verwaltung einer zwischengeschalteten Multisample-Textur (oder eines Textur-Arrays) als Farbpuffer aus, transparent für die Anwendung. Die Samples werden am Ende des Render-Durchgangs automatisch in die bereitgestellte Textur aufgelöst. Ist dieses Flag nicht gesetzt und ist das Argument „ sampleCount “ größer als 1, bedeutet dies, dass es sich bei der bereitgestellten Textur um eine Multisample-Textur handelt. Das Flag hat keine Auswirkung, wenn „ sampleCount “ den Wert 1 hat (was darauf hinweist, dass kein Multisampling stattfindet). |
Diese Enumeration 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()
Erstellt ein Standard-QQuickRenderTarget, das auf keine nativen Objekte verweist.
[noexcept] QQuickRenderTarget::~QQuickRenderTarget()
Destruktor.
[since 6.8] QRhiTexture *QQuickRenderTarget::depthTexture() const
Gibt die aktuell eingestellte Tiefentextur zurück oder, in den meisten Fällen, ` nullptr`.
Der Wert ist nur dann ungleich 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 Renderziel zurück. Dabei handelt es sich um das Verhältnis zwischen Gerätepixeln und geräteunabhängigen Pixeln.
Das Standard-Gerätepixelverhältnis beträgt 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 ein neues ` QQuickRenderTarget ` zurück, das auf ein D3D11-Texturobjekt verweist, das durch ` texture` angegeben wird.
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 Gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen unterstützt.
sampleCount Legt die Anzahl der Samples fest. 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.
Die Textur wird als erster Farb-Attachment des vom Qt Quick -Szenengraphen verwendeten Renderziels verwendet. Ein Tiefen-Stencil-Puffer wird, falls zutreffend, automatisch erstellt und verwendet.
Hinweis: Das resultierende „ QQuickRenderTarget “ besitzt keine nativen Ressourcen, sondern enthält lediglich Verweise und die zugehörigen Metadaten zu Größe und Sample-Anzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig vorhanden ist.
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)
Gibt ein neues ` QQuickRenderTarget ` zurück, das auf ein D3D11-Texturobjekt verweist, das durch ` texture` angegeben wird. Es wird davon ausgegangen, 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 Gibt die Anzahl der Samples an. 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.
Die Textur wird als erster Farb-Attachment des Renderziels verwendet, das vom „ Qt Quick “-Szenengraphen genutzt wird. Ein Tiefen-Stencil-Puffer wird, falls zutreffend, automatisch erstellt und verwendet.
Hinweis: Das resultierende „ QQuickRenderTarget “ besitzt keine nativen Ressourcen, es enthält lediglich Verweise und die zugehörigen Metadaten zu Größe und Sample-Anzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig vorhanden ist.
Dies ist eine überladene Funktion.
Siehe auch „ QQuickWindow::setRenderTarget()“ und „ QQuickRenderControl “.
[static, since 6.8] QQuickRenderTarget QQuickRenderTarget::fromD3D11Texture(void *texture, uint format, QSize pixelSize, int sampleCount, QQuickRenderTarget::Flags flags)
Gibt ein neues ` QQuickRenderTarget ` zurück, das auf ein D3D11-Texturobjekt verweist, das durch ` texture` angegeben wird.
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 Gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen unterstützt.
sampleCount Legt die Anzahl der Samples fest. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass das native Objekt eine Multisample-Textur ist, es sei denn, flags enthält MultisampleResolve. In diesem Fall wird davon ausgegangen, dass texture eine 2D-Textur ohne Multisampling ist, und sampleCount definiert die gewünschte Anzahl an Samples. Das resultierende „ QQuickRenderTarget “ verwendet eine automatisch erstellte Multisample-Zwischentextur als Farb-Attachment und löst die Samples in „ texture “ auf. Dies ist der empfohlene Ansatz zur Durchführung von MSAA, wenn die native Textur nicht bereits Multisample ist.
Die Textur wird als erster Farb-Anhang des Renderziels verwendet, das vom „ Qt Quick “-Szenengraphen genutzt wird. Ein Tiefen-Stencil-Puffer wird, falls zutreffend, automatisch erstellt und verwendet. Wenn der Farbpuffer Multisample ist, ist auch der Tiefen-Stencil-Puffer automatisch Multisample.
Hinweis: Das resultierende „ QQuickRenderTarget “ besitzt keine nativen Ressourcen, sondern enthält lediglich Verweise und die zugehörigen Metadaten zu Größe und Sample-Anzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig vorhanden ist.
Dies ist eine überladene Funktion.
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 ein neues ` QQuickRenderTarget ` zurück, das auf ein D3D12-Texturobjekt verweist, 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.
pixelSize Gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen unterstützt.
sampleCount Gibt die Anzahl der Samples an. 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.
Die Textur wird als erster Farb-Attachment des vom Qt Quick -Szenengraphen verwendeten Renderziels verwendet. Ein Tiefen-Stencil-Puffer wird, falls zutreffend, automatisch erstellt und verwendet.
Hinweis: Das resultierende „ QQuickRenderTarget “ besitzt keine nativen Ressourcen, sondern enthält lediglich Verweise und die zugehörigen Metadaten zur Größe und zur Anzahl der Samples. Es liegt in der Verantwortung des Aufrufenden, sicherzustellen, dass die native Ressource so lange wie nötig vorhanden ist.
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)
Gibt ein neues ` QQuickRenderTarget ` zurück, das auf ein D3D12-2D-Textur- oder 2D-Textur-Array-Objekt verweist, 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 für die Render-Target-Ansicht (RTV) verwendete DXGI_FORMAT. Entspricht häufig format. Funktioniert nur, wenn der Treiber „Relaxed Format Casting“ unterstützt; andernfalls wird das Argument ignoriert. In der Praxis wird davon ausgegangen, dass diese 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 Gibt die Anzahl der Samples an. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass das native Objekt eine Multisample-Textur ist, es sei denn, „ flags “ enthält „ MultisampleResolve “. 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 an Samples. Das resultierende ` QQuickRenderTarget ` verwendet eine automatisch erstellte Multisample-Textur (oder ein Textur-Array) als Farbzuordnung 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 (Ebenen) wird in arraySize angegeben. Ist dieser Wert größer als 1, bedeutet dies Multiview-Rendering (View-Instancing), was insbesondere bei VR/AR relevant sein kann. arraySize ist die Anzahl der Ansichten, typischerweise 2. Weitere Informationen zur Aktivierung des Multiview-Renderings innerhalb des Qt Quick -Szenengraphen finden Sie unter QSGMaterial::viewCount().
Die Textur wird als erster Farb-Attachment des vom Qt Quick -Szenengraphen verwendeten Renderziels verwendet. Ein Tiefen-Stencil-Puffer wird, falls zutreffend, automatisch erstellt und verwendet. Wenn der Farbpuffer Multisample ist, ist auch der Tiefen-Stencil-Puffer automatisch Multisample. Für das Multiview-Rendering wird die Tiefen-Stencil-Textur automatisch zu einem Array mit einem passenden „ arraySize “ umgewandelt.
Hinweis: Das resultierende „ QQuickRenderTarget “ besitzt keine nativen Ressourcen, sondern enthält lediglich Verweise und die zugehörigen Metadaten zu Größe und Sample-Anzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig vorhanden ist.
Dies ist eine überladene Funktion.
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 ein neues ` QQuickRenderTarget ` zurück, das auf ein Metal-Texturobjekt verweist, das durch ` texture` angegeben wird.
format Gibt das MTLPixelFormat der Textur an. Es sollten nur Texturformate verwendet werden, die von der Rendering-Infrastruktur von Qt unterstützt werden.
pixelSize Gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen unterstützt.
sampleCount Legt die Anzahl der Samples fest. 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.
Die Textur wird als erster Farb-Attachment des Render-Targets verwendet, das vom „ Qt Quick “-Szenengraphen genutzt wird. Ein Tiefen-Stencil-Puffer wird, falls erforderlich, automatisch erstellt und verwendet.
Hinweis: Das resultierende „ QQuickRenderTarget “ besitzt keine nativen Ressourcen, sondern enthält lediglich Verweise und die zugehörigen Metadaten zu Größe und Sample-Anzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig vorhanden ist.
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)
Gibt ein neues ` QQuickRenderTarget ` zurück, das auf ein Metal-Texturobjekt verweist, das durch ` texture` angegeben wird. Es wird davon ausgegangen, dass die Textur das Format `MTLPixelFormatRGBA8Unorm` hat.
pixelSize Gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen unterstützt.
sampleCount Gibt die Anzahl der Samples an. 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.
Die Textur wird als erster Farb-Attachment des Render-Targets verwendet, das vom Qt Quick -Szenengraphen genutzt wird. Ein Tiefen-Stencil-Puffer wird, falls zutreffend, automatisch erstellt und verwendet.
Hinweis: Das resultierende „ QQuickRenderTarget “ besitzt keine nativen Ressourcen, sondern enthält lediglich Verweise und die zugehörigen Metadaten zur Größe und zur Anzahl der Samples. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig vorhanden ist.
Dies ist eine überladene Funktion.
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)
Gibt ein neues ` QQuickRenderTarget ` zurück, das auf eine Metal-2D-Textur oder ein 2D-Textur-Array verweist, das in ` texture` angegeben ist.
format Legt das MTLPixelFormat der Textur fest. Es sollten nur Texturformate verwendet werden, die von der Rendering-Infrastruktur von Qt unterstützt werden.
viewFormat wird üblicherweise auf denselben Wert wie ` format` gesetzt. In einigen Fällen, beispielsweise beim Rendern in eine Textur mit einem ` _SRGB `-Format, bei der die implizite Konvertierung von linear nach sRGB bei Shader-Schreibvorgängen unerwünscht ist, kann der Wert abweichen. Beachten Sie jedoch, dass der Wert von Qt möglicherweise ignoriert wird, wenn ` QRhi ` zur Laufzeit meldet, dass die Funktion ` QRhi::TextureViewFormat ` 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 Legt die Anzahl der Samples fest. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass das native Objekt eine Multisample-Textur ist, es sei denn, „ flags “ enthält „ MultisampleResolve “. 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 an Samples. Das resultierende ` QQuickRenderTarget ` verwendet eine automatisch erstellte Multisample-Textur (oder ein Textur-Array) als Farbzuordnung und löst die Samples in ` texture` auf. Dies ist der empfohlene Ansatz zur Durchführung von MSAA, wenn die native Metal-Textur nicht bereits Multisample ist.
Die Anzahl der Array-Elemente (Ebenen) wird in „ arraySize “ angegeben. Ist dieser Wert größer als 1, bedeutet dies Multiview-Rendering, was insbesondere bei VR/AR relevant sein kann. „ arraySize “ ist die Anzahl der Ansichten, typischerweise „ 2 “. Siehe „ QSGMaterial::viewCount()“ für Details zur Aktivierung des Multiview-Renderings innerhalb des „ Qt Quick “-Szenengraphen.
Die Textur wird als erster Farb-Attachment des vom Qt Quick -Szenengraphen verwendeten Renderziels verwendet. Ein Tiefen-Stencil-Puffer wird, falls zutreffend, automatisch erstellt und verwendet. Wenn der Farbpuffer Multisample ist, ist der Tiefen-Stencil-Puffer automatisch ebenfalls Multisample. Für das Multiview-Rendering wird die Depth-Stencil-Textur automatisch in ein Array mit einem passenden „ arraySize “ umgewandelt.
Hinweis: Das resultierende „ QQuickRenderTarget “ besitzt keine nativen Ressourcen, sondern enthält lediglich Verweise und die zugehörigen Metadaten zu Größe und Sample-Anzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig vorhanden ist.
Dies ist eine überladene Funktion.
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 ein neues „ QQuickRenderTarget “ zurück, das auf ein OpenGL-Renderbuffer-Objekt verweist, das durch „ renderbufferId “ angegeben wird.
Der Renderbuffer wird als Farb-Attachment für das interne Framebuffer-Objekt verwendet. Diese Funktion wird bereitgestellt, um die Verwendung von Renderbuffern zu ermöglichen, die von der Anwendung mit einem zugrunde liegenden externen Puffer, wie beispielsweise einem EGLImageKHR, erstellt wurden. 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 Gibt die Anzahl der Samples an. 0 oder 1 bedeutet kein Multisampling, während ein Wert wie 4 oder 8 angibt, dass es sich bei dem nativen Objekt um einen Multisample-Renderbuffer handelt.
Hinweis: Das resultierende ` QQuickRenderTarget ` besitzt keine nativen Ressourcen, sondern enthält lediglich Verweise und die zugehörigen Metadaten zu Größe und Anzahl der Samples. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig vorhanden ist.
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 ein neues ` QQuickRenderTarget ` zurück, das auf ein OpenGL-Texturobjekt verweist, das durch ` textureId` angegeben wird.
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 Gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen unterstützt.
sampleCount Gibt die Anzahl der Samples an. 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.
Die Textur wird als erster Farb-Attachment des Render-Targets verwendet, das vom „ Qt Quick “-Szenengraphen genutzt wird. Ein Tiefen-Stencil-Puffer wird, falls zutreffend, automatisch erstellt und verwendet.
Der OpenGL-Objektname „ textureId “ muss ein gültiger Name im Rendering-Kontext sein, der vom „ Qt Quick “-Szenengraphen verwendet wird.
Hinweis: Das resultierende „ QQuickRenderTarget “ besitzt keine nativen Ressourcen, es enthält lediglich Verweise und die zugehörigen Metadaten zu Größe und Sample-Anzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig vorhanden ist.
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)
Gibt ein neues ` QQuickRenderTarget ` zurück, das auf ein OpenGL-Texturobjekt verweist, das durch ` textureId` angegeben wird. Es wird davon ausgegangen, dass die Textur das Format `GL_RGBA` (GL_RGBA8) hat.
pixelSize Gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen unterstützt.
sampleCount Gibt die Anzahl der Samples an. 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.
Die Textur wird als erster Farb-Attachment des Render-Targets verwendet, das vom Qt Quick -Szenengraphen genutzt wird. Ein Tiefen-Stencil-Puffer wird, falls zutreffend, automatisch erstellt und verwendet.
Der OpenGL-Objektname „ textureId “ muss ein gültiger Name im Rendering-Kontext sein, der vom „ Qt Quick “-Scenegraph verwendet wird.
Hinweis: Das resultierende ` QQuickRenderTarget ` besitzt keine nativen Ressourcen, es enthält lediglich Verweise und die zugehörigen Metadaten zu Größe und Sample-Anzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig vorhanden ist.
Dies ist eine überladene Funktion.
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)
Gibt ein neues ` QQuickRenderTarget ` zurück, das auf ein OpenGL-2D-Textur- oder Texturarray-Objekt verweist, das durch ` textureId` angegeben wird.
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 Gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen und 2D-Textur-Arrays unterstützt.
sampleCount Gibt die Anzahl der Samples an. 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, es sei denn, flags enthält MultisampleResolve. 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 an Samples. Das resultierende „ QQuickRenderTarget “ verwendet eine automatisch erstellte Multisample-Textur (oder ein Textur-Array) als Farbzuordnung und löst die Samples in „ textureId “ auf. Dies ist der empfohlene Ansatz zur Durchführung von MSAA, wenn die native OpenGL-Textur noch nicht multisample-fähig ist.
Ist „ arraySize “ größer als 1, bedeutet 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 zur Aktivierung des Multiview-Renderings innerhalb des Qt Quick -Szenengraphen.
Ein Tiefen-Stencil-Puffer wird, falls zutreffend, automatisch erstellt und verwendet. Wenn der Farbpuffer Multisample ist, ist der Tiefen-Stencil-Puffer automatisch ebenfalls Multisample. Für das Multiview-Rendering wird die Tiefen-Stencil-Textur automatisch zu einem Array mit einem passenden arraySize umgewandelt.
Der OpenGL-Objektname „ textureId “ muss ein gültiger 2D-Texturname im vom „ Qt Quick “-Szenengraphen verwendeten Rendering-Kontext sein. Wenn „ arraySize “ größer als 1 ist, muss „ textureId “ ein gültiger Name für ein 2D-Textur-Array sein.
Hinweis: Das resultierende ` QQuickRenderTarget ` besitzt keine nativen Ressourcen, es enthält lediglich Verweise und die zugehörigen Metadaten zu Größe und Sample-Anzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig vorhanden ist.
Hinweis: Die Implementierung dieser Überladung ist nicht kompatibel mit OpenGL ES 2.0 oder 3.0 und erfordert mindestens OpenGL ES 3.1. (bzw. OpenGL 3.0 auf dem Desktop)
Dies ist eine überladene Funktion.
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 Paint-Device-Objekt verweist.
Diese Option zur Umleitung der Darstellung an ein ` QPaintDevice ` ist nur verfügbar, wenn das Programm mit dem Backend ` software ` von ` Qt Quick` ausgeführt wird.
Hinweis: Das „ QQuickRenderTarget “ übernimmt keine Verantwortung für „ 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 ein neues ` QQuickRenderTarget ` zurück, das auf ein bestehendes ` renderTarget` verweist.
renderTarget In den meisten Fällen handelt es sich dabei um ein ` QRhiTextureRenderTarget`, das es ermöglicht, das Rendering der ` Qt Quick `-Szene in ein ` QRhiTexture` umzuleiten.
Hinweis: Das resultierende ` QQuickRenderTarget ` besitzt weder die ` renderTarget ` noch die zugrunde liegenden nativen Ressourcen; es enthält lediglich Verweise sowie die zugehörigen Metadaten zu Größe und Abtastanzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die referenzierten Ressourcen so lange wie nötig vorhanden sind.
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 auf ein durch ` image` angegebenes Vulkan-Bildobjekt verweist. Der aktuelle ` layout ` des Bildes muss ebenfalls angegeben werden.
format Gibt das `VkFormat` des Bildes an. Es sollten nur Bildformate verwendet werden, die von der Rendering-Infrastruktur von Qt unterstützt werden.
pixelSize Gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen unterstützt.
sampleCount Legt die Anzahl der Samples fest. 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.
Das Bild wird als erster Farb-Anhang des Renderziels verwendet, das vom Qt Quick -Szenengraphen genutzt wird. Ein Tiefen-Stencil-Puffer wird, falls zutreffend, automatisch erstellt und verwendet.
Hinweis: Das resultierende „ QQuickRenderTarget “ besitzt keine nativen Ressourcen, es enthält lediglich Verweise und die zugehörigen Metadaten zur Größe und zur Anzahl der Samples. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig vorhanden ist.
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)
Gibt ein neues ` QQuickRenderTarget ` zurück, das auf ein durch ` image` angegebenes Vulkan-Bildobjekt verweist. Es wird davon ausgegangen, dass das Bild das Format `VK_FORMAT_R8G8B8A8_UNORM` hat.
pixelSize Gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen unterstützt.
sampleCount Gibt die Anzahl der Samples an. 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.
Die Textur wird als erster Farb-Attachment des Render-Targets verwendet, das vom „ Qt Quick “-Szenengraphen genutzt wird. Ein Tiefen-Stencil-Puffer wird, falls zutreffend, automatisch erstellt und verwendet.
Hinweis: Das resultierende „ QQuickRenderTarget “ besitzt keine nativen Ressourcen, sondern enthält lediglich Verweise und die zugehörigen Metadaten zur Größe und zur Anzahl der Samples. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig vorhanden ist.
Dies ist eine überladene Funktion.
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)
Gibt ein neues ` QQuickRenderTarget ` zurück, das auf ein durch ` image` angegebenes Vulkan-Bildobjekt verweist. Der aktuelle ` layout ` des Bildes muss ebenfalls angegeben werden. Das Bild muss entweder eine 2D-Textur oder ein 2D-Textur-Array sein.
format Gibt das `VkFormat` des Bildes an. Es sollten nur Bildformate verwendet werden, die von der Rendering-Infrastruktur von Qt unterstützt werden.
viewFormat wird normalerweise auf denselben Wert wie „ format “ gesetzt. In einigen Fällen, beispielsweise beim Rendern in eine Textur mit einem „ _SRGB “-Format, bei der die implizite Konvertierung von „linear“ nach „sRGB“ bei Shader-Schreibvorgängen nicht gewünscht ist, kann der Wert abweichen. (Beispielsweise ein „ format “ von „ VK_FORMAT_R8G8B8A8_SRGB “ und ein „ viewFormat “ von „ VK_FORMAT_R8G8B8A8_UNORM “.)
pixelSize Gibt die Größe des Bildes in Pixeln an. Derzeit werden nur 2D-Texturen unterstützt.
sampleCount Legt die Anzahl der Samples fest. 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, es sei denn, flags enthält MultisampleResolve. 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 an Samples. Das resultierende „ QQuickRenderTarget “ verwendet eine automatisch erstellte Multisample-Textur (oder ein Textur-Array) als Farb-Attachment und löst die Samples in „ image “ auf. Dies ist der empfohlene Ansatz zur Durchführung von MSAA, wenn das native Vulkan-Bild noch nicht Multisample ist.
Die Anzahl der Array-Elemente (Ebenen) wird in ` arraySize` angegeben. Ist dieser Wert größer als 1, bedeutet dies 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 zur Aktivierung des Multiview-Renderings innerhalb des Qt Quick -Szenengraphen.
Die Textur wird als erster Farb-Attachment des vom Qt Quick -Szenengraphen verwendeten Renderziels verwendet. Ein Tiefen-Stencil-Puffer wird, falls zutreffend, automatisch erstellt und verwendet. Wenn der Farbpuffer Multisample ist, ist der Tiefen-Stencil-Puffer automatisch ebenfalls Multisample. Für das Multiview-Rendering wird die Depth-Stencil-Textur automatisch zu einem Array mit einer passenden „ arraySize “ umgewandelt.
Hinweis: Das resultierende „ QQuickRenderTarget “ besitzt keine nativen Ressourcen, sondern enthält lediglich Verweise und die zugehörigen Metadaten zu Größe und Sample-Anzahl. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig vorhanden ist.
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch ` QQuickWindow::setRenderTarget()` und ` QQuickRenderControl`.
bool QQuickRenderTarget::isNull() const
Gibt „true“ zurück, wenn dieses „ QQuickRenderTarget “ mit der Standardkonstruktion initialisiert wurde und auf keine nativen Objekte verweist.
[since 6.4] bool QQuickRenderTarget::mirrorVertically() const
Gibt zurück, ob das Renderziel 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)
Anfragen, die den angegebenen ` texture ` als Tiefen- oder Tiefen-Stencil-Puffer verwenden. Die Eigentumsrechte an ` texture ` werden nicht übernommen.
Die Anforderung wird nur berücksichtigt, wenn sie relevant ist. So hat der Aufruf dieser Funktion beispielsweise keine Auswirkung bei fromRhiRenderTarget(), fromPaintDevice() oder fromOpenGLRenderBuffer().
Normalerweise wird ein Depth-Stencil-Puffer automatisch und für den Benutzer von ` QQuickRenderTarget` transparent erstellt. Daher ist es in den meisten Fällen bei der Arbeit mit ` QQuickRenderTarget` nicht erforderlich, diese Funktion aufzurufen. Unter besonderen Umständen kann es jedoch unerlässlich sein, eine Textur bereitzustellen, in die Tiefen- (oder Tiefen- und Stencil-)Daten gerendert werden können, anstatt ` Qt Quick ` eigene Zwischen-Texturen oder -Puffer erstellen zu lassen. Ein Beispiel hierfür ist OpenXR und dessen Erweiterungen wie XR_KHR_composition_layer_depth. Um den „Tiefepuffer“ an den XR-Compositor zu übergeben, muss man in der Praxis eine bereits erstellte Tiefen- (Tiefen-Stencil-)Textur aus OpenXR (aus der XrSwapchain) abrufen und diese Textur als Renderziel für Tiefendaten verwenden. Ohne diese Funktion wäre dies nicht möglich.
Hinweis: Es wird immer erwartet, dass„ texture “ eine 2D-Textur oder ein Textur-Array (für Multiview) ohne Multisampling ist. Wenn MSAA zum Einsatz kommt, werden die Samples am Ende des Render-Durchgangs in „ texture “ aufgelöst, unabhängig davon, ob das Flag „ MultisampleResolve “ gesetzt ist oder nicht. MSAA wird für Tiefen- (Depth-Stencil-)Texturen nur unterstützt, wenn die zugrunde liegende 3D-API dies unterstützt; diese Unterstützung ist jedoch nicht überall verfügbar. Weitere Informationen finden Sie unter the relevant QRhi feature flag. 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: Bei OpenGL und OpenGL ES funktioniert die Verwendung von Tiefentexturen unter OpenGL ES 2.0 nicht und erfordert mindestens OpenGL ES 3.0. Die Unterstützung für Multisampling (MSAA) ist erst ab OpenGL ES 3.1 bzw. OpenGL 3.0 auf Desktop-Systemen verfügbar.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch ` depthTexture()`.
[since 6.3] void QQuickRenderTarget::setDevicePixelRatio(qreal ratio)
Legt das Gerätepixelverhältnis für dieses Renderziel auf „ ratio “ fest. 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`-Wert 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 Renderziels fest, dessen Inhalt beim Zeichnen vertikal auf enable gespiegelt werden soll. Dies ermöglicht die einfache Integration von Rendering-Code von Drittanbietern, der nicht den Standarderwartungen entspricht.
Hinweis: Diese Funktion sollte bei Verwendung des „ software “-Backends nicht verwendet werden.
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 “ auf unterschiedliche Sätze nativer Objekte verweisen oder die zugehörigen Daten (Größe, Anzahl der Samples) nicht übereinstimmen.
[noexcept] bool operator==(const QQuickRenderTarget &a, const QQuickRenderTarget &b)
Gibt „true“ zurück, wenn „ a “ und „ b “ auf denselben Satz nativer Objekte verweisen und übereinstimmende zugehörige Daten (Größe, Anzahl der Samples) aufweisen.
© 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.