![]() |
Qt 6.x
The Qt SDK
|
#include <qquickshapegenericrenderer_p.h>
Public Member Functions | |
QQuickShapeRadialGradientRhiShader () | |
bool | updateUniformData (RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) override |
This function is called by the scene graph to get the contents of the shader program's uniform buffer updated. | |
void | updateSampledImage (RenderState &state, int binding, QSGTexture **texture, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) override |
This function is called by the scene graph to prepare use of sampled images in the shader, typically in the form of combined image samplers. | |
![]() | |
QSGMaterialShader () | |
Constructs a new QSGMaterialShader. | |
virtual | ~QSGMaterialShader () |
virtual bool | updateUniformData (RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) |
This function is called by the scene graph to get the contents of the shader program's uniform buffer updated. | |
virtual void | updateSampledImage (RenderState &state, int binding, QSGTexture **texture, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) |
This function is called by the scene graph to prepare use of sampled images in the shader, typically in the form of combined image samplers. | |
virtual bool | updateGraphicsPipelineState (RenderState &state, GraphicsPipelineState *ps, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) |
This function is called by the scene graph to enable the material to provide a custom set of graphics state. | |
Flags | flags () const |
void | setFlag (Flags flags, bool on=true) |
Sets the flags on this material shader if on is true; otherwise clears the specified flags. | |
void | setFlags (Flags flags) |
Sets the flags for this material shader. | |
int | combinedImageSamplerCount (int binding) const |
Returns the number of elements in the combined image sampler variable at binding. | |
Additional Inherited Members | |
![]() | |
enum | Flag { UpdatesGraphicsPipelineState = 0x0001 } |
Flag values to indicate special material properties. More... | |
enum | Stage { VertexStage , FragmentStage } |
![]() | |
QSGMaterialShader (QSGMaterialShaderPrivate &dd) | |
void | setShaderFileName (Stage stage, const QString &filename) |
Sets the filename for the shader for the specified stage. | |
void | setShader (Stage stage, const QShader &shader) |
Sets the shader for the specified stage. | |
Definition at line 255 of file qquickshapegenericrenderer_p.h.
QQuickShapeRadialGradientRhiShader::QQuickShapeRadialGradientRhiShader | ( | ) |
Definition at line 814 of file qquickshapegenericrenderer.cpp.
References QSGMaterialShader::FragmentStage, QStringLiteral, QSGMaterialShader::setShaderFileName(), and QSGMaterialShader::VertexStage.
|
overridevirtual |
This function is called by the scene graph to prepare use of sampled images in the shader, typically in the form of combined image samplers.
binding is the binding number of the sampler. The function is called for each combined image sampler variable in the shader code associated with the QSGMaterialShader.
{texture} is an array of QSGTexture pointers. The number of elements in the array matches the number of elements in the image sampler variable specified in the shader code. This variable may be an array, and may have more than one dimension. The number of elements in the array may be found via \l{QSGMaterialShader::combinedImageSamplerCount}
When an element in {texture} is null, it must be set to a valid QSGTexture pointer before returning. When non-null, it is up to the material to decide if a new {QSGTexture *} is stored to it, or if it updates some parameters on the already known QSGTexture. The ownership of the QSGTexture is not transferred.
The current rendering state is passed from the scene graph. Where relevant, it is up to the material to trigger enqueuing texture data uploads via QSGTexture::commitTextureOperations().
The subclass specific state can be extracted from newMaterial.
oldMaterial can be used to minimize changes. When oldMaterial is null, this shader was just activated.
Reimplemented from QSGMaterialShader.
Definition at line 878 of file qquickshapegenericrenderer.cpp.
References QQuickShapeGradientCache::cacheForRhi(), QSGTexture::commitTextureOperations(), QQuickShapeGradientCache::get(), QQuickShapeGenericStrokeFillNode::m_fillGradient, QQuickAbstractPathRenderer::GradientDesc::spread, state, and QQuickAbstractPathRenderer::GradientDesc::stops.
|
overridevirtual |
This function is called by the scene graph to get the contents of the shader program's uniform buffer updated.
The implementation is not expected to perform any real graphics operations, it is merely responsible for copying data to the QByteArray returned from RenderState::uniformData(). The scene graph takes care of making that buffer visible in the shaders.
The current rendering state is passed from the scene graph. If the state indicates that any relevant state is dirty, the implementation must update the appropriate region in the buffer data that is accessible via RenderState::uniformData(). When a state, such as, matrix or opacity, is not dirty, there is no need to touch the corresponding region since the data is persistent.
The return value must be true
whenever any change was made to the uniform data.
The subclass specific state, such as the color of a flat color material, should be extracted from newMaterial to update the relevant regions in the buffer accordingly.
oldMaterial can be used to minimize buffer changes (which are typically memcpy calls) when updating material states. When oldMaterial is null, this shader was just activated.
Reimplemented from QSGMaterialShader.
Definition at line 820 of file qquickshapegenericrenderer.cpp.
References QQuickAbstractPathRenderer::GradientDesc::a, QQuickAbstractPathRenderer::GradientDesc::b, QQuickShapeGenericStrokeFillNode::m_fillGradient, Q_ASSERT, state, QSGMaterial::type(), QQuickAbstractPathRenderer::GradientDesc::v0, QQuickAbstractPathRenderer::GradientDesc::v1, QPointF::x(), QVector2D::x(), QPointF::y(), and QVector2D::y().