Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
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, int viewCount, bool perTargetCompilation)
 

Static Public Member Functions

static constexpr QSSGShaderGeneratorStageFlags defaultFlags ()
 

Public Attributes

QSSGVertexShaderGenerator m_vs
 
QSSGFragmentShaderGenerator m_fs
 
QSSGShaderGeneratorStageFlags m_enabledStages
 

Detailed Description

Definition at line 147 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 397 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,
int viewCount,
bool perTargetCompilation )

Definition at line 466 of file qssgrendershadercodegenerator.cpp.

References internalGetStage(), m_enabledStages, QSSGStageGeneratorBase::m_finalBuilder, m_fs, m_vs, Q_ASSERT, registerShaderMetaDataFromSource(), QSSGShaderLibraryManager::resolveIncludeFiles(), StageCount, and QSSGShaderResourceMergeContext::viewCount.

+ Here is the call graph for this function:

◆ defaultFlags()

static constexpr QSSGShaderGeneratorStageFlags QSSGProgramGenerator::defaultFlags ( )
inlinestaticconstexpr

Definition at line 157 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 405 of file qssgrendershadercodegenerator.cpp.

References m_enabledStages.

◆ getStage()

QSSGStageGeneratorBase * QSSGProgramGenerator::getStage ( QSSGShaderGeneratorStage inStage)

Definition at line 421 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 407 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 378 of file qssgrendershadercodegenerator.cpp.

References internalGetStage(), m_enabledStages, QSSGStageGeneratorBase::m_flatOutgoing, 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 428 of file qssgrendershadercodegenerator.cpp.

References QSet< T >::cbegin(), contents, Fragment, QSSGRenderShaderMetadata::getShaderMetaData(), QSSGRenderShaderMetadata::ShaderMetaData::inputs, it, QByteArray::number(), QSSGRenderShaderMetadata::ShaderMetaData::outputs, QByteArrayLiteral, qWarning, 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: