![]() |
Qt 6.x
The Qt SDK
|
#include <qssgrendershadercodegenerator_p.h>
Public Member Functions | |
QSSGProgramGenerator ()=default | |
void | linkStages () |
void | beginProgram (QSSGShaderGeneratorStageFlags inEnabledStages=defaultFlags()) |
QSSGShaderGeneratorStageFlags | getEnabledStages () const |
QSSGStageGeneratorBase & | internalGetStage (QSSGShaderGeneratorStage inStage) |
QSSGStageGeneratorBase * | getStage (QSSGShaderGeneratorStage inStage) |
void | registerShaderMetaDataFromSource (QSSGShaderResourceMergeContext *mergeContext, const QByteArray &contents, QSSGShaderGeneratorStage stage) |
QSSGRhiShaderPipelinePtr | compileGeneratedRhiShader (const QByteArray &inMaterialInfoString, const QSSGShaderFeatures &inFeatureSet, QSSGShaderLibraryManager &shaderLibraryManager, QSSGShaderCache &theCache, QSSGRhiShaderPipeline::StageFlags stageFlags) |
Static Public Member Functions | |
static constexpr QSSGShaderGeneratorStageFlags | defaultFlags () |
Public Attributes | |
QSSGVertexShaderGenerator | m_vs |
QSSGFragmentShaderGenerator | m_fs |
QSSGShaderGeneratorStageFlags | m_enabledStages |
Definition at line 141 of file qssgrendershadercodegenerator_p.h.
|
default |
void QSSGProgramGenerator::beginProgram | ( | QSSGShaderGeneratorStageFlags | inEnabledStages = defaultFlags() | ) |
Definition at line 371 of file qssgrendershadercodegenerator.cpp.
References QSSGStageGeneratorBase::begin(), linkStages(), m_enabledStages, m_fs, and m_vs.
Referenced by QSSGMaterialVertexPipeline::beginVertexGeneration().
QSSGRhiShaderPipelinePtr QSSGProgramGenerator::compileGeneratedRhiShader | ( | const QByteArray & | inMaterialInfoString, |
const QSSGShaderFeatures & | inFeatureSet, | ||
QSSGShaderLibraryManager & | shaderLibraryManager, | ||
QSSGShaderCache & | theCache, | ||
QSSGRhiShaderPipeline::StageFlags | stageFlags | ||
) |
Definition at line 429 of file qssgrendershadercodegenerator.cpp.
References QSSGStageGeneratorBase::buildShaderSourcePass1(), QSSGStageGeneratorBase::buildShaderSourcePass2(), QSSGShaderCache::compileForRhi(), internalGetStage(), m_enabledStages, QSSGStageGeneratorBase::m_finalBuilder, m_fs, m_vs, Q_ASSERT, registerShaderMetaDataFromSource(), QSSGShaderLibraryManager::resolveIncludeFiles(), and StageCount.
Referenced by QSSGMaterialShaderGenerator::generateMaterialRhiShader().
|
inlinestaticconstexpr |
Definition at line 151 of file qssgrendershadercodegenerator_p.h.
References Fragment, and Vertex.
Referenced by QSSGMaterialVertexPipeline::beginVertexGeneration().
QSSGShaderGeneratorStageFlags QSSGProgramGenerator::getEnabledStages | ( | ) | const |
Definition at line 379 of file qssgrendershadercodegenerator.cpp.
References m_enabledStages.
QSSGStageGeneratorBase * QSSGProgramGenerator::getStage | ( | QSSGShaderGeneratorStage | inStage | ) |
Definition at line 395 of file qssgrendershadercodegenerator.cpp.
References internalGetStage(), and m_enabledStages.
Referenced by QSSGMaterialVertexPipeline::fragment(), and QSSGMaterialVertexPipeline::vertex().
QSSGStageGeneratorBase & QSSGProgramGenerator::internalGetStage | ( | QSSGShaderGeneratorStage | inStage | ) |
Definition at line 381 of file qssgrendershadercodegenerator.cpp.
References Fragment, m_fs, m_vs, Q_ASSERT, and Vertex.
Referenced by compileGeneratedRhiShader(), getStage(), and linkStages().
void QSSGProgramGenerator::linkStages | ( | ) |
Definition at line 354 of file qssgrendershadercodegenerator.cpp.
References internalGetStage(), m_enabledStages, QSSGStageGeneratorBase::m_incoming, QSSGStageGeneratorBase::m_outgoing, and StageCount.
Referenced by beginProgram().
void QSSGProgramGenerator::registerShaderMetaDataFromSource | ( | QSSGShaderResourceMergeContext * | mergeContext, |
const QByteArray & | contents, | ||
QSSGShaderGeneratorStage | stage | ||
) |
Definition at line 402 of file qssgrendershadercodegenerator.cpp.
References contents, Fragment, QSSGRenderShaderMetadata::getShaderMetaData(), QSSGRenderShaderMetadata::ShaderMetaData::inputs, it, QSSGShaderResourceMergeContext::m_inOutVars, QSSGRenderShaderMetadata::ShaderMetaData::outputs, QByteArrayLiteral, qWarning, QSSGShaderResourceMergeContext::registerInput(), QSSGShaderResourceMergeContext::registerOutput(), QSSGShaderResourceMergeContext::registerSampler(), QSSGShaderResourceMergeContext::registerUniformMember(), and QSSGRenderShaderMetadata::ShaderMetaData::uniforms.
Referenced by compileGeneratedRhiShader().
QSSGShaderGeneratorStageFlags QSSGProgramGenerator::m_enabledStages |
Definition at line 149 of file qssgrendershadercodegenerator_p.h.
Referenced by beginProgram(), compileGeneratedRhiShader(), getEnabledStages(), getStage(), and linkStages().
QSSGFragmentShaderGenerator QSSGProgramGenerator::m_fs |
Definition at line 147 of file qssgrendershadercodegenerator_p.h.
Referenced by beginProgram(), compileGeneratedRhiShader(), and internalGetStage().
QSSGVertexShaderGenerator QSSGProgramGenerator::m_vs |
Definition at line 146 of file qssgrendershadercodegenerator_p.h.
Referenced by beginProgram(), compileGeneratedRhiShader(), and internalGetStage().