En esta página

QQuickRenderTarget Class

La clase QQuickRenderTarget proporciona un contenedor opaco para los recursos gráficos nativos que especifican un objetivo de renderizado y los metadatos asociados. Más...

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

Tipos Públicos

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

Funciones Públicas

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)

Miembros públicos estáticos

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

Descripción detallada

Véase también QQuickWindow::setRenderTarget() y QQuickGraphicsDevice.

Documentación de Tipos de Miembros

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

Flags para las funciones estáticas del constructor QQuickRenderTarget.

ConstanteValorDescripción
QQuickRenderTarget::Flag::MultisampleResolve0x01Indica que el argumento sampleCount no es el número de muestras para la textura proporcionada (y que la textura sigue siendo una textura no multimuestra), sino las muestras deseadas para el antialiasing multimuestra. Activa la creación y gestión automática de una textura multimuestra intermedia (o matriz de texturas) como búfer de color, de forma transparente para la aplicación. Las muestras se resuelven automáticamente en la textura proporcionada al final del pase de renderizado. Cuando esta bandera no está activada, y el argumento sampleCount es mayor que 1, implica que la textura proporcionada es multimuestra. La bandera no tiene efecto si sampleCount es 1 (indicando que no hay multimuestreo).

Este enum se introdujo en Qt 6.8.

El tipo Flags es un typedef para QFlags<Flag>. Almacena una combinación OR de valores Flag.

Documentación de las funciones miembro

QQuickRenderTarget::QQuickRenderTarget()

Construye un QQuickRenderTarget por defecto que no hace referencia a ningún objeto nativo.

[noexcept] QQuickRenderTarget::~QQuickRenderTarget()

Destructor.

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

Devuelve la textura de profundidad actualmente establecida o, en la mayoría de los casos, nullptr.

El valor sólo es no nulo cuando se ha llamado a setDepthTexture().

Esta función se introdujo en Qt 6.8.

Véase también setDepthTexture().

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

Devuelve la proporción de píxeles del dispositivo para el objetivo de renderizado. Es la relación entre los píxeles del dispositivo y los píxeles independientes del dispositivo.

El ratio de píxeles por defecto es 1.0.

Esta función se introdujo en Qt 6.3.

Véase también setDevicePixelRatio().

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

Devuelve un nuevo QQuickRenderTarget que hace referencia a un objeto de textura D3D11 especificado por texture.

format especifica el DXGI_FORMAT de la textura. Sólo deben utilizarse los formatos de textura soportados por la infraestructura de renderizado de Qt.

pixelSize especifica el tamaño de la imagen, en píxeles. Actualmente sólo se soportan texturas 2D.

sampleCount especifica el número de muestras. 0 o 1 significa que no hay multimuestreo, mientras que un valor como 4 u 8 indica que el objeto nativo es una textura multimuestreo.

La textura se utiliza como el primer color adjunto del objetivo de renderizado utilizado por el scenegraph Qt Quick. Si procede, se creará y utilizará automáticamente un búfer de plantilla de profundidad.

Nota: el QQuickRenderTarget resultante no posee ningún recurso nativo, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad de quien llama asegurarse de que el recurso nativo existe todo el tiempo que sea necesario.

Esta función se introdujo en Qt 6.4.

Véase también QQuickWindow::setRenderTarget() y QQuickRenderControl.

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

Devuelve un nuevo QQuickRenderTarget que hace referencia a un objeto de textura D3D11 especificado por texture. Se asume que la textura tiene un formato DXGI_FORMAT_R8G8B8A8_UNORM.

pixelSize especifica el tamaño de la imagen, en píxeles. Actualmente sólo se admiten texturas 2D.

sampleCount especifica el número de muestras. 0 o 1 significa que no hay multimuestreo, mientras que un valor como 4 u 8 indica que el objeto nativo es una textura multimuestreo.

La textura se utiliza como el primer color adjunto del objetivo de renderizado utilizado por el scenegraph Qt Quick. Si procede, se creará y utilizará automáticamente un búfer de plantilla de profundidad.

Nota: el QQuickRenderTarget resultante no posee ningún recurso nativo, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad de quien realiza la llamada asegurarse de que el recurso nativo existe todo el tiempo que sea necesario.

Se trata de una función sobrecargada.

Véase también QQuickWindow::setRenderTarget() y QQuickRenderControl.

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

Devuelve un nuevo QQuickRenderTarget que hace referencia a un objeto de textura D3D11 especificado por texture.

format especifica el DXGI_FORMAT de la textura. Sólo deben utilizarse los formatos de textura soportados por la infraestructura de renderizado de Qt.

pixelSize especifica el tamaño de la imagen, en píxeles. Actualmente sólo se soportan texturas 2D.

sampleCount especifica el número de muestras. 0 o 1 significa que no hay multimuestreo, mientras que un valor como 4 u 8 indica que el objeto nativo es una textura multimuestreo, excepto cuando flags contiene MultisampleResolve. En ese caso, se asume que texture es una textura 2D sin multimuestreo y sampleCount define el número de muestras deseado. El resultado QQuickRenderTarget utilizará una textura multimuestra intermedia creada automáticamente como su color adjunto, y resolverá las muestras en texture. Este es el método recomendado para realizar MSAA cuando la textura nativa no es ya multimuestra.

La textura se utiliza como primer color adjunto del objetivo de renderizado utilizado por el scenegraph Qt Quick. Si procede, se crea y utiliza automáticamente un búfer de profundidad. Si el búfer de color es multimuestra, el búfer de profundidad también será automáticamente multimuestra.

Nota: el QQuickRenderTarget resultante no posee ningún recurso nativo, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad del llamante asegurarse de que el recurso nativo existe todo el tiempo que sea necesario.

Se trata de una función sobrecargada.

Esta función se introdujo en Qt 6.8.

Véase también QQuickWindow::setRenderTarget(), QQuickRenderControl, y fromD3D11Texture().

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

Devuelve un nuevo QQuickRenderTarget que hace referencia a un objeto de textura D3D12 especificado por texture.

resourceState debe ser una máscara de bits válida con bits de D3D12_RESOURCE_STATES, especificando el estado actual del recurso.

format especifica el DXGI_FORMAT de la textura. Sólo deben usarse formatos de textura soportados por la infraestructura de renderizado de Qt.

pixelSize especifica el tamaño de la imagen, en píxeles. Actualmente sólo se soportan texturas 2D.

sampleCount especifica el número de muestras. 0 o 1 significa que no hay multimuestreo, mientras que un valor como 4 u 8 indica que el objeto nativo es una textura multimuestreo.

La textura se utiliza como el primer color adjunto del objetivo de renderizado utilizado por el scenegraph Qt Quick. Si procede, se creará y utilizará automáticamente un búfer de plantilla de profundidad.

Nota: el QQuickRenderTarget resultante no posee ningún recurso nativo, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad de quien llama asegurarse de que el recurso nativo existe todo el tiempo que sea necesario.

Esta función se introdujo en Qt 6.6.

Véase también QQuickWindow::setRenderTarget() y 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)

Devuelve un nuevo QQuickRenderTarget que hace referencia a una textura 2D D3D12 o a un objeto de matriz de texturas 2D especificado por texture.

resourceState debe ser una máscara de bits válida con bits de D3D12_RESOURCE_STATES, especificando el estado actual del recurso.

format especifica el DXGI_FORMAT de la textura. Sólo deben usarse formatos de textura soportados por la infraestructura de renderizado de Qt.

viewFormat es el DXGI_FORMAT utilizado para la vista de destino de renderizado (RTV). A menudo el mismo que format. Funcional sólo cuando el controlador soporta un formato relajado, el argumento se ignora en caso contrario. En la práctica, se espera que el soporte esté siempre disponible en Windows 10 1703 y versiones posteriores.

pixelSize especifica el tamaño de la imagen, en píxeles. Actualmente sólo se soportan texturas 2D y matrices de texturas 2D.

sampleCount especifica el número de muestras. 0 o 1 significa que no hay multimuestreo, mientras que un valor como 4 u 8 indica que el objeto nativo es una textura multimuestreo, excepto cuando flags contiene MultisampleResolve. En ese caso, se asume que texture es una textura 2D sin multimuestreo o una matriz de texturas 2D, y sampleCount define el número de muestras deseado. El resultado QQuickRenderTarget utilizará una textura multimuestra intermedia creada automáticamente (o matriz de texturas) como su color adjunto, y resolverá las muestras en texture. Este es el método recomendado para realizar MSAA cuando la textura nativa D3D12 no es ya multimuestra.

El número de elementos de la matriz (capas) se indica en arraySize. Cuando es mayor que 1, implica renderizado multivista(view instancing), que puede ser relevante especialmente con VR/AR. arraySize es el número de vistas, típicamente 2. Ver QSGMaterial::viewCount() para más detalles sobre cómo habilitar el renderizado multivista dentro del Qt Quick scenegraph.

La textura es usada como el primer color adjunto del objetivo de render usado por el Qt Quick scenegraph. Si procede, se crea y utiliza automáticamente un búfer de profundidad. Si el búfer de color es multimuestra, el búfer de profundidad también será automáticamente multimuestra. Para el renderizado multivista, la textura del patrón de profundidad se convertirá automáticamente en una matriz con una coincidencia arraySize.

Nota: el QQuickRenderTarget resultante no posee ningún recurso nativo, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad del llamante asegurarse de que el recurso nativo existe todo el tiempo que sea necesario.

Se trata de una función sobrecargada.

Esta función se introdujo en Qt 6.8.

Véase también QQuickWindow::setRenderTarget() y QQuickRenderControl.

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

Devuelve un nuevo QQuickRenderTarget que hace referencia a un objeto de textura Metal especificado por texture.

format especifica el MTLPixelFormat de la textura. Sólo deben utilizarse los formatos de textura soportados por la infraestructura de renderizado de Qt.

pixelSize especifica el tamaño de la imagen, en píxeles. Actualmente sólo se soportan texturas 2D.

sampleCount especifica el número de muestras. 0 o 1 significa que no hay multimuestreo, mientras que un valor como 4 u 8 indica que el objeto nativo es una textura multimuestreo.

La textura se utiliza como el primer color adjunto del objetivo de renderizado utilizado por el scenegraph Qt Quick. Si procede, se creará y utilizará automáticamente un búfer de plantilla de profundidad.

Nota: el QQuickRenderTarget resultante no posee ningún recurso nativo, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad de quien llama asegurarse de que el recurso nativo existe todo el tiempo que sea necesario.

Esta función se introdujo en Qt 6.4.

Véase también QQuickWindow::setRenderTarget() y QQuickRenderControl.

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

Devuelve un nuevo QQuickRenderTarget que hace referencia a un objeto de textura Metal especificado por texture. Se asume que la textura tiene un formato MTLPixelFormatRGBA8Unorm.

pixelSize especifica el tamaño de la imagen, en píxeles. Actualmente sólo se soportan texturas 2D.

sampleCount especifica el número de muestras. 0 o 1 significa que no hay multimuestreo, mientras que un valor como 4 u 8 indica que el objeto nativo es una textura multimuestreo.

La textura se utiliza como el primer color adjunto del objetivo de renderizado utilizado por el scenegraph Qt Quick. Si procede, se creará y utilizará automáticamente un búfer de plantilla de profundidad.

Nota: el QQuickRenderTarget resultante no posee ningún recurso nativo, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad de quien realiza la llamada asegurarse de que el recurso nativo existe todo el tiempo que sea necesario.

Se trata de una función sobrecargada.

Véase también QQuickWindow::setRenderTarget() y QQuickRenderControl.

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

Devuelve un nuevo QQuickRenderTarget que hace referencia a una textura Metal 2D o matriz de texturas 2D dada en texture.

format especifica el MTLPixelFormat de la textura. Sólo deben utilizarse los formatos de textura soportados por la infraestructura de renderizado de Qt.

viewFormat suele tener el mismo valor que format. En algunos casos, como cuando se renderiza en una textura con un formato _SRGB y no se desea la conversión implícita lineal->sRGB en las escrituras del shader, el valor puede ser diferente. Tenga en cuenta, sin embargo, que el valor puede ser ignorado por Qt, cuando en tiempo de ejecución QRhi informa que la característica QRhi::TextureViewFormat no está soportada.

pixelSize especifica el tamaño de la imagen, en píxeles. Actualmente sólo se soportan texturas 2D y matrices de texturas 2D.

sampleCount especifica el número de muestras. 0 o 1 significa que no hay multimuestreo, mientras que un valor como 4 u 8 indica que el objeto nativo es una textura multimuestreo, excepto cuando flags contiene MultisampleResolve. En ese caso, se asume que texture es una textura 2D sin multimuestreo o una matriz de texturas 2D, y sampleCount define el número de muestras deseado. El resultado QQuickRenderTarget utilizará una textura multimuestra intermedia creada automáticamente (o matriz de texturas) como su color adjunto, y resolverá las muestras en texture. Este es el método recomendado para realizar MSAA cuando la textura Metal nativa no es ya multimuestra.

El número de elementos de la matriz (capas) se indica en arraySize. Cuando es mayor que 1, implica renderizado multivista, que puede ser relevante especialmente con VR/AR. arraySize es el número de vistas, típicamente 2. Ver QSGMaterial::viewCount() para más detalles sobre cómo habilitar el renderizado multivista dentro del Qt Quick scenegraph.

La textura es usada como el primer color adjunto del objetivo de render usado por el Qt Quick scenegraph. Si procede, se crea y utiliza automáticamente un búfer de profundidad. Si el búfer de color es multimuestra, el búfer de profundidad también será automáticamente multimuestra. Para el renderizado multivista, la textura del patrón de profundidad se convertirá automáticamente en una matriz con una coincidencia arraySize.

Nota: el QQuickRenderTarget resultante no posee ningún recurso nativo, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad del llamante asegurarse de que el recurso nativo existe tanto como sea necesario.

Se trata de una función sobrecargada.

Esta función se introdujo en Qt 6.8.

Véase también QQuickWindow::setRenderTarget() y QQuickRenderControl.

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

Devuelve un nuevo QQuickRenderTarget que hace referencia a un objeto renderbuffer OpenGL especificado por renderbufferId.

El renderbuffer se utilizará como color adjunto para el objeto framebuffer interno. Esta función se proporciona para permitir apuntar a renderbuffers que son creados por la aplicación con algún buffer externo por debajo, como un EGLImageKHR. Una vez que la aplicación ha llamado a glEGLImageTargetRenderbufferStorageOES, el renderbuffer puede ser pasado a esta función.

pixelSize especifica el tamaño de la imagen, en píxeles.

sampleCount especifica el número de muestras. 0 o 1 significa que no hay multimuestreo, mientras que un valor como 4 u 8 indica que el objeto nativo es un renderbuffer multimuestreo.

Nota: el QQuickRenderTarget resultante no posee ningún recurso nativo, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad de quien llama asegurarse de que el recurso nativo existe tanto como sea necesario.

Esta función se introdujo en Qt 6.2.

Véase también QQuickWindow::setRenderTarget() y QQuickRenderControl.

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

Devuelve un nuevo QQuickRenderTarget que hace referencia a un objeto de textura OpenGL especificado por textureId.

format especifica el formato interno nativo de la textura. Sólo deben utilizarse los formatos de textura soportados por la infraestructura de renderizado de Qt.

pixelSize especifica el tamaño de la imagen, en píxeles. Actualmente sólo se soportan texturas 2D.

sampleCount especifica el número de muestras. 0 o 1 significa que no hay multimuestreo, mientras que un valor como 4 u 8 indica que el objeto nativo es una textura multimuestreo.

La textura se utiliza como el primer color adjunto del objetivo de renderizado utilizado por el scenegraph Qt Quick. Si procede, se creará y utilizará automáticamente un búfer de profundidad.

El nombre del objeto OpenGL textureId debe ser un nombre válido en el contexto de renderizado utilizado por el scenegraph Qt Quick.

Nota: el QQuickRenderTarget resultante no posee ningún recurso nativo, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad de quien llama asegurarse de que el recurso nativo existe tanto tiempo como sea necesario.

Esta función se introdujo en Qt 6.4.

Véase también QQuickWindow::setRenderTarget() y QQuickRenderControl.

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

Devuelve un nuevo QQuickRenderTarget que hace referencia a un objeto de textura OpenGL especificado por textureId. Se asume que la textura tiene un formato GL_RGBA (GL_RGBA8).

pixelSize especifica el tamaño de la imagen, en píxeles. Actualmente sólo se soportan texturas 2D.

sampleCount especifica el número de muestras. 0 o 1 significa que no hay multimuestreo, mientras que un valor como 4 u 8 indica que el objeto nativo es una textura multimuestreo.

La textura se utiliza como el primer color adjunto del objetivo de renderizado utilizado por el scenegraph Qt Quick. Si procede, se creará y utilizará automáticamente un búfer de profundidad.

El nombre del objeto OpenGL textureId debe ser un nombre válido en el contexto de renderizado utilizado por el scenegraph Qt Quick.

Nota: el QQuickRenderTarget resultante no posee ningún recurso nativo, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad del llamante asegurarse de que el recurso nativo existe todo el tiempo que sea necesario.

Se trata de una función sobrecargada.

Véase también QQuickWindow::setRenderTarget() y QQuickRenderControl.

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

Devuelve un nuevo QQuickRenderTarget que hace referencia a una textura OpenGL 2D o a un objeto de matriz de texturas especificado por textureId.

format especifica el formato interno nativo de la textura. Sólo deben utilizarse los formatos de textura soportados por la infraestructura de renderizado de Qt.

pixelSize especifica el tamaño de la imagen, en píxeles. Actualmente sólo se soportan texturas 2D y matrices de texturas 2D.

sampleCount especifica el número de muestras. 0 o 1 significa que no hay multimuestreo, mientras que un valor como 4 u 8 indica que el objeto nativo es una textura multimuestreo, excepto cuando flags contiene MultisampleResolve. En ese caso, se asume que textureId es una textura 2D sin multimuestreo o una matriz de texturas 2D, y sampleCount define el número de muestras deseado. El resultado QQuickRenderTarget utilizará una textura multimuestra intermedia creada automáticamente (o matriz de texturas) como su color adjunto, y resolverá las muestras en textureId. Este es el método recomendado para realizar MSAA cuando la textura OpenGL nativa no es ya multimuestra.

Cuando arraySize es mayor que 1, implica renderizado multivista(GL_OVR_multiview, QRhiColorAttachment::setMultiViewCount()), que puede ser relevante con VR/AR especialmente. En este caso arraySize es el número de vistas, típicamente 2. Ver QSGMaterial::viewCount() para más detalles sobre cómo habilitar el renderizado multivista dentro del Qt Quick scenegraph.

Un búfer de profundidad-esténcil, si procede, se crea y se utiliza automáticamente. Cuando el búfer de color es multimuestra, el búfer de profundidad también será automáticamente multimuestra. Para el renderizado multivista, la textura depth-stencil se convertirá automáticamente en un array con una coincidencia arraySize.

El nombre del objeto OpenGL textureId debe ser un nombre de textura 2D válido en el contexto de renderizado utilizado por el scenegraph Qt Quick. Cuando arraySize es mayor que 1, textureId debe ser un nombre de matriz de textura 2D válido.

Nota: el QQuickRenderTarget resultante no posee ningún recurso nativo, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad de quien realiza la llamada asegurarse de que el recurso nativo existe todo el tiempo que sea necesario.

Nota: La implementación de esta sobrecarga no es compatible con OpenGL ES 2.0 o 3.0, y requiere OpenGL ES 3.1 como mínimo. (u OpenGL 3.0 en escritorio)

Esta es una función sobrecargada.

Esta función se introdujo en Qt 6.8.

Véase también QQuickWindow::setRenderTarget(), QQuickRenderControl, y fromOpenGLTexture().

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

Devuelve un nuevo QQuickRenderTarget que hace referencia a un objeto de dispositivo de pintura especificado por device.

Esta opción de redirigir la renderización a un QPaintDevice sólo está disponible cuando se ejecuta con el backend software de Qt Quick.

Nota: QQuickRenderTarget no se apropia de device, es responsabilidad de quien llama asegurarse de que el objeto existe tanto como sea necesario.

Esta función se introdujo en Qt 6.4.

Véase también QQuickWindow::setRenderTarget() y QQuickRenderControl.

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

Devuelve un nuevo QQuickRenderTarget que hace referencia a un renderTarget existente.

renderTarget será en la mayoría de los casos un QRhiTextureRenderTarget, lo que permite dirigir el renderizado de la escena Qt Quick a un QRhiTexture.

Nota: el QQuickRenderTarget resultante no posee renderTarget ni ningún recurso nativo subyacente, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad de quien lo llama asegurarse de que los recursos referenciados existen todo el tiempo que sea necesario.

Esta función se introdujo en Qt 6.6.

Véase también QQuickWindow::setRenderTarget() y QQuickRenderControl.

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

Devuelve un nuevo QQuickRenderTarget que hace referencia a un objeto de imagen Vulkan especificado por image. También se debe proporcionar el layout actual de la imagen.

format especifica el VkFormat de la imagen. Sólo deben usarse formatos de imagen soportados por la infraestructura de renderizado de Qt.

pixelSize especifica el tamaño de la imagen, en píxeles. Actualmente sólo se soportan texturas 2D.

sampleCount especifica el número de muestras. 0 o 1 significa que no hay multimuestreo, mientras que un valor como 4 u 8 indica que el objeto nativo es una textura multimuestreo.

La imagen se utiliza como primer adjunto de color del objetivo de renderizado utilizado por el scenegraph Qt Quick. Si procede, se crea y utiliza automáticamente un búfer de plantilla de profundidad.

Nota: el QQuickRenderTarget resultante no posee ningún recurso nativo, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad de quien llama asegurarse de que el recurso nativo existe todo el tiempo que sea necesario.

Esta función se introdujo en Qt 6.4.

Véase también QQuickWindow::setRenderTarget() y QQuickRenderControl.

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

Devuelve un nuevo QQuickRenderTarget que hace referencia a un objeto de imagen Vulkan especificado por image. Se asume que la imagen tiene un formato VK_FORMAT_R8G8B8A8_UNORM.

pixelSize especifica el tamaño de la imagen, en píxeles. Actualmente sólo se soportan texturas 2D.

sampleCount especifica el número de muestras. 0 o 1 significa que no hay multimuestreo, mientras que un valor como 4 u 8 indica que el objeto nativo es una textura multimuestreo.

La textura se utiliza como el primer color adjunto del objetivo de renderizado utilizado por el scenegraph Qt Quick. Si procede, se creará y utilizará automáticamente un búfer de plantilla de profundidad.

Nota: el QQuickRenderTarget resultante no posee ningún recurso nativo, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad de quien realiza la llamada asegurarse de que el recurso nativo existe todo el tiempo que sea necesario.

Se trata de una función sobrecargada.

Véase también QQuickWindow::setRenderTarget() y 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)

Devuelve un nuevo QQuickRenderTarget que hace referencia a un objeto de imagen Vulkan especificado por image. También se debe proporcionar el layout actual de la imagen. La imagen debe ser una textura 2D o un array de texturas 2D.

format especifica el VkFormat de la imagen. Sólo deben utilizarse los formatos de imagen soportados por la infraestructura de renderizado de Qt.

viewFormat suele tener el mismo valor que format. En algunos casos, como cuando se renderiza en una textura con un formato _SRGB y no se desea la conversión implícita lineal->sRGB en las escrituras del shader, el valor puede ser diferente. (por ejemplo, un format de VK_FORMAT_R8G8B8A8_SRGB y un viewFormat de VK_FORMAT_R8G8B8A8_UNORM).

pixelSize especifica el tamaño de la imagen, en píxeles. Actualmente sólo se soportan texturas 2D.

sampleCount especifica el número de muestras. 0 o 1 significa que no hay multimuestreo, mientras que un valor como 4 u 8 indica que el objeto nativo es una textura multimuestreo, excepto cuando flags contiene MultisampleResolve. En ese caso, se asume que image es una textura 2D sin multimuestreo o una matriz de texturas 2D, y sampleCount define el número de muestras deseado. El resultado QQuickRenderTarget utilizará una textura multimuestra intermedia creada automáticamente (o matriz de texturas) como su color adjunto, y resolverá las muestras en image. Este es el método recomendado para realizar MSAA cuando la imagen nativa de Vulkan no es ya multimuestra.

El número de elementos de la matriz (capas) se indica en arraySize. Cuando es mayor que 1, implica renderizado multivista(VK_KHR_multiview), que puede ser relevante con VR/AR especialmente. arraySize es el número de vistas, típicamente 2. Ver QSGMaterial::viewCount() para más detalles sobre cómo habilitar el renderizado multivista dentro del Qt Quick scenegraph.

La textura es usada como el primer color adjunto del objetivo de render usado por el Qt Quick scenegraph. Si procede, se crea y utiliza automáticamente un búfer de profundidad. Si el búfer de color es multimuestra, el búfer de profundidad también será automáticamente multimuestra. Para el renderizado multivista, la textura del patrón de profundidad se convertirá automáticamente en una matriz con una coincidencia arraySize.

Nota: el QQuickRenderTarget resultante no posee ningún recurso nativo, simplemente contiene referencias y los metadatos asociados del tamaño y el recuento de muestras. Es responsabilidad del llamante asegurarse de que el recurso nativo existe todo el tiempo que sea necesario.

Se trata de una función sobrecargada.

Esta función se introdujo en Qt 6.8.

Véase también QQuickWindow::setRenderTarget() y QQuickRenderControl.

bool QQuickRenderTarget::isNull() const

Devuelve true si este QQuickRenderTarget está construido por defecto, sin hacer referencia a ningún objeto nativo.

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

Devuelve si el objetivo de renderizado se refleja verticalmente.

El valor por defecto es false.

Esta función se introdujo en Qt 6.4.

Véase también setMirrorVertically().

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

Solicita utilizar el texture dado como búfer de profundidad o de profundidad-esténcil. No se toma posesión de texture.

La petición sólo se tiene en cuenta cuando es relevante. Por ejemplo, llamar a esta función no tiene ningún efecto con fromRhiRenderTarget(), fromPaintDevice(), o fromOpenGLRenderBuffer().

Normalmente, un búfer de profundidad-esténcil se crea automáticamente, de forma transparente para el usuario de QQuickRenderTarget. Por lo tanto, no hay necesidad de llamar a esta función en la mayoría de los casos cuando se trabaja con QQuickRenderTarget. En circunstancias especiales, sin embargo, puede llegar a ser esencial poder proporcionar una textura para renderizar los datos de profundidad (o profundidad y esténcil), en lugar de dejar que Qt Quick cree sus propias texturas o búferes intermedios. Un ejemplo de esto es OpenXR y sus extensiones como XR_KHR_composition_layer_depth. Para "enviar el buffer de profundidad" al compositor XR, uno tiene que, en la práctica, recuperar una textura de profundidad (depth-stencil) ya creada desde OpenXR (desde el XrSwapchain) y usar esa textura como objetivo de renderizado para los datos de profundidad. Esto no sería posible sin esta función.

Nota: Se espera que texture sea siempre una textura 2D no multimuestra o un array de texturas (para multivista). Si MSAA está involucrado, las muestras se resuelven en texture al final de la pasada de renderizado, independientemente de tener la bandera MultisampleResolve activada o no. MSAA sólo se admite para texturas de profundidad (depth-stencil) cuando la API 3D subyacente lo admite, y este soporte no está disponible universalmente. Consulte the relevant QRhi feature flag para obtener más información. Cuando esto no está soportado y se solicita multisampling en combinación con una textura de profundidad personalizada, texture no se va a tocar durante el renderizado y se imprime una advertencia.

Nota: Cuando se trata de OpenGL y OpenGL ES, el uso de texturas de profundidad no es funcional en OpenGL ES 2.0 y requiere al menos OpenGL ES 3.0. El soporte multimuestra (MSAA) no está disponible sin al menos OpenGL ES 3.1, u OpenGL 3.0 en escritorio.

Esta función se introdujo en Qt 6.8.

Véase también depthTexture().

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

Establece la relación de píxeles del dispositivo para este objetivo de renderizado en ratio. Esta es la relación entre los píxeles del dispositivo y los píxeles independientes del dispositivo.

Tenga en cuenta que el valor especificado de la relación de píxeles de dispositivo se ignorará si QQuickRenderControl::renderWindow() se reimplementa para devolver un QWindow válido.

Esta función se introdujo en Qt 6.3.

Véase también devicePixelRatio().

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

Establece el tamaño del contenido del objetivo de renderizado que debe reflejarse verticalmente en enable al dibujar. Esto permite una fácil integración de código de renderizado de terceros que no sigue las expectativas estándar.

Nota: Esta función no debe usarse cuando se utiliza el backend software.

Esta función se introdujo en Qt 6.4.

Véase también mirrorVertically().

No miembros relacionados

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

Devuelve verdadero si a y b se refieren a un conjunto diferente de objetos nativos, o los datos asociados (tamaño, recuento de muestras) no coinciden.

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

Devuelve verdadero si a y b se refieren al mismo conjunto de objetos nativos y tienen datos asociados coincidentes (tamaño, recuento de muestras).

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