![]() |
Qt 6.x
The Qt SDK
|
#include <qsgmaterialshader_p.h>
Classes | |
struct | ShaderStageData |
Public Member Functions | |
QSGMaterialShaderPrivate (QSGMaterialShader *q) | |
void | clearCachedRendererData () |
void | prepare (QShader::Variant vertexShaderVariant) |
QShader | shader (QShader::Stage stage) const |
Static Public Member Functions | |
static QSGMaterialShaderPrivate * | get (QSGMaterialShader *s) |
static const QSGMaterialShaderPrivate * | get (const QSGMaterialShader *s) |
static QShader | loadShader (const QString &filename) |
Public Attributes | |
QSGMaterialShader * | q_ptr |
QHash< QShader::Stage, QString > | shaderFileNames |
QSGMaterialShader::Flags | flags |
QHash< QShader::Stage, ShaderStageData > | shaders |
int | ubufBinding = -1 |
int | ubufSize = 0 |
QRhiShaderResourceBinding::StageFlags | ubufStages |
QRhiShaderResourceBinding::StageFlags | combinedImageSamplerBindings [MAX_SHADER_RESOURCE_BINDINGS] |
int | combinedImageSamplerCount [MAX_SHADER_RESOURCE_BINDINGS] |
ShaderStageData * | vertexShader = nullptr |
ShaderStageData * | fragmentShader = nullptr |
QByteArray | masterUniformData |
QVarLengthArray< QSGTexture *, 4 > | textureBindingTable [MAX_SHADER_RESOURCE_BINDINGS] |
QVarLengthArray< QRhiSampler *, 4 > | samplerBindingTable [MAX_SHADER_RESOURCE_BINDINGS] |
Static Public Attributes | |
static const int | MAX_SHADER_RESOURCE_BINDINGS = 32 |
Definition at line 28 of file qsgmaterialshader_p.h.
|
inline |
Definition at line 33 of file qsgmaterialshader_p.h.
void QSGMaterialShaderPrivate::clearCachedRendererData | ( | ) |
Definition at line 176 of file qsgmaterialshader.cpp.
References clear(), i, MAX_SHADER_RESOURCE_BINDINGS, samplerBindingTable, and textureBindingTable.
Referenced by QSGBatchRenderer::ShaderManager::clearCachedRendererData(), and prepare().
|
inlinestatic |
Definition at line 35 of file qsgmaterialshader_p.h.
|
inlinestatic |
Definition at line 34 of file qsgmaterialshader_p.h.
Referenced by QSGBatchRenderer::calculateVertexInputLayout(), QSGBatchRenderer::ShaderManager::clearCachedRendererData(), QSGDefaultRenderContext::initializeRhiShader(), QSGBatchRenderer::ShaderManager::prepareMaterial(), and QSGBatchRenderer::ShaderManager::prepareMaterialNoRewrite().
Definition at line 166 of file qsgmaterialshader.cpp.
References QShader::fromSerialized(), qWarning, and QIODeviceBase::ReadOnly.
Referenced by prepare(), and QSGBatchRenderer::RhiVisualizer::prepareVisualize().
void QSGMaterialShaderPrivate::prepare | ( | QShader::Variant | vertexShaderVariant | ) |
Definition at line 198 of file qsgmaterialshader.cpp.
References QShader::BatchableVertexShader, QSet< T >::begin(), QShaderDescription::UniformBlock::binding, QShaderDescription::UniformBlock::blockName, QByteArray::clear(), clearCachedRendererData(), combinedImageSamplerBindings, combinedImageSamplerCount, QVariant::constData(), QByteArray::constData(), desc, QSet< T >::end(), QHash< Key, T >::end(), QHash< Key, T >::erase(), QByteArray::fill(), QHash< Key, T >::find(), fragmentShader, QShader::FragmentStage, i, it, loadShader(), masterUniformData, MAX_SHADER_RESOURCE_BINDINGS, QByteArrayLiteral, QSGMaterialShaderPrivate::ShaderStageData::qt_order_attrib_location, qWarning, shaderFileNames, QList< T >::size(), QShaderDescription::UniformBlock::size, toSrbStage(), ubufBinding, ubufSize, ubufStages, var, vertexShader, and QShader::VertexStage.
Referenced by QSGDefaultRenderContext::initializeRhiShader().
|
inline |
Definition at line 40 of file qsgmaterialshader_p.h.
References QShader::shader().
Referenced by QSGBatchRenderer::ShaderManager::prepareMaterial(), and QSGBatchRenderer::ShaderManager::prepareMaterialNoRewrite().
QRhiShaderResourceBinding::StageFlags QSGMaterialShaderPrivate::combinedImageSamplerBindings[MAX_SHADER_RESOURCE_BINDINGS] |
Definition at line 63 of file qsgmaterialshader_p.h.
Referenced by prepare().
int QSGMaterialShaderPrivate::combinedImageSamplerCount[MAX_SHADER_RESOURCE_BINDINGS] |
Definition at line 64 of file qsgmaterialshader_p.h.
Referenced by prepare().
QSGMaterialShader::Flags QSGMaterialShaderPrivate::flags |
Definition at line 46 of file qsgmaterialshader_p.h.
ShaderStageData* QSGMaterialShaderPrivate::fragmentShader = nullptr |
Definition at line 67 of file qsgmaterialshader_p.h.
Referenced by prepare().
QByteArray QSGMaterialShaderPrivate::masterUniformData |
Definition at line 69 of file qsgmaterialshader_p.h.
Referenced by prepare().
|
static |
Definition at line 58 of file qsgmaterialshader_p.h.
Referenced by clearCachedRendererData(), and prepare().
QSGMaterialShader* QSGMaterialShaderPrivate::q_ptr |
Definition at line 44 of file qsgmaterialshader_p.h.
QVarLengthArray<QRhiSampler *, 4> QSGMaterialShaderPrivate::samplerBindingTable[MAX_SHADER_RESOURCE_BINDINGS] |
Definition at line 72 of file qsgmaterialshader_p.h.
Referenced by clearCachedRendererData().
QHash<QShader::Stage, QString> QSGMaterialShaderPrivate::shaderFileNames |
Definition at line 45 of file qsgmaterialshader_p.h.
Referenced by prepare().
QHash<QShader::Stage, ShaderStageData> QSGMaterialShaderPrivate::shaders |
Definition at line 56 of file qsgmaterialshader_p.h.
QVarLengthArray<QSGTexture *, 4> QSGMaterialShaderPrivate::textureBindingTable[MAX_SHADER_RESOURCE_BINDINGS] |
Definition at line 71 of file qsgmaterialshader_p.h.
Referenced by clearCachedRendererData().
int QSGMaterialShaderPrivate::ubufBinding = -1 |
Definition at line 60 of file qsgmaterialshader_p.h.
Referenced by prepare().
int QSGMaterialShaderPrivate::ubufSize = 0 |
Definition at line 61 of file qsgmaterialshader_p.h.
Referenced by prepare().
QRhiShaderResourceBinding::StageFlags QSGMaterialShaderPrivate::ubufStages |
Definition at line 62 of file qsgmaterialshader_p.h.
Referenced by prepare().
ShaderStageData* QSGMaterialShaderPrivate::vertexShader = nullptr |
Definition at line 66 of file qsgmaterialshader_p.h.
Referenced by QSGBatchRenderer::calculateVertexInputLayout(), and prepare().