Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QSSGProgramGenerator Class Reference

#include <qssgrendershadercodegenerator_p.h>

+ Collaboration diagram for QSSGProgramGenerator:

Public Member Functions

 QSSGProgramGenerator ()=default
 
void linkStages ()
 
void beginProgram (QSSGShaderGeneratorStageFlags inEnabledStages=defaultFlags())
 
QSSGShaderGeneratorStageFlags getEnabledStages () const
 
QSSGStageGeneratorBaseinternalGetStage (QSSGShaderGeneratorStage inStage)
 
QSSGStageGeneratorBasegetStage (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
 

Detailed Description

Definition at line 141 of file qssgrendershadercodegenerator_p.h.

Constructor & Destructor Documentation

◆ QSSGProgramGenerator()

QSSGProgramGenerator::QSSGProgramGenerator ( )
default

Member Function Documentation

◆ beginProgram()

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compileGeneratedRhiShader()

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ defaultFlags()

static constexpr QSSGShaderGeneratorStageFlags QSSGProgramGenerator::defaultFlags ( )
inlinestaticconstexpr

Definition at line 151 of file qssgrendershadercodegenerator_p.h.

References Fragment, and Vertex.

Referenced by QSSGMaterialVertexPipeline::beginVertexGeneration().

+ Here is the caller graph for this function:

◆ getEnabledStages()

QSSGShaderGeneratorStageFlags QSSGProgramGenerator::getEnabledStages ( ) const

Definition at line 379 of file qssgrendershadercodegenerator.cpp.

References m_enabledStages.

◆ getStage()

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ internalGetStage()

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

+ Here is the caller graph for this function:

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ registerShaderMetaDataFromSource()

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_enabledStages

QSSGShaderGeneratorStageFlags QSSGProgramGenerator::m_enabledStages

◆ m_fs

QSSGFragmentShaderGenerator QSSGProgramGenerator::m_fs

◆ m_vs

QSSGVertexShaderGenerator QSSGProgramGenerator::m_vs

The documentation for this class was generated from the following files: