Qt 6.x
The Qt SDK
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
QSSGMaterialVertexPipeline Struct Reference

#include <qssgvertexpipelineimpl_p.h>

+ Collaboration diagram for QSSGMaterialVertexPipeline:

Public Types

enum class  GenerationFlag {
  UVCoords = 1 , EnvMapReflection = 1 << 1 , ViewVector = 1 << 2 , WorldNormal = 1 << 3 ,
  ObjectNormal = 1 << 4 , WorldPosition = 1 << 5 , TangentBinormal = 1 << 6 , UVCoords1 = 1 << 7 ,
  VertexColor = 1 << 8 , PerspDivDepth = 1 << 9 , PerspDivWorldPos = 1 << 10
}
 
typedef QHash< QByteArray, QByteArrayTStrTableStrMap
 
typedef TStrTableStrMap::const_iterator TParamIter
 
typedef QFlags< GenerationFlagGenerationFlags
 

Public Member Functions

 QSSGMaterialVertexPipeline (QSSGProgramGenerator &inProgram, const QSSGShaderDefaultMaterialKeyProperties &materialProperties, QSSGShaderMaterialAdapter *materialAdapter)
 
 ~QSSGMaterialVertexPipeline ()=default
 
bool setCode (GenerationFlag inCode)
 
bool hasCode (GenerationFlag inCode)
 
QSSGProgramGeneratorprogramGenerator () const
 
QSSGStageGeneratorBasevertex ()
 
QSSGStageGeneratorBasefragment ()
 
void generateUVCoords (quint32 inUVSet, const QSSGShaderDefaultMaterialKey &inKey)
 Generates UV coordinates in shader code.
 
void generateLightmapUVCoords (const QSSGShaderDefaultMaterialKey &inKey)
 
void generateEnvMapReflection (const QSSGShaderDefaultMaterialKey &inKey)
 
void generateViewVector (const QSSGShaderDefaultMaterialKey &inKey)
 
void generateWorldNormal (const QSSGShaderDefaultMaterialKey &inKey)
 
void generateObjectNormal ()
 
void generateWorldPosition (const QSSGShaderDefaultMaterialKey &inKey)
 
void generateDepth ()
 
void generateShadowWorldPosition (const QSSGShaderDefaultMaterialKey &inKey)
 
void generateVarTangentAndBinormal (const QSSGShaderDefaultMaterialKey &inKey, bool &genTangent, bool &genBinormal)
 
void generateVertexColor (const QSSGShaderDefaultMaterialKey &inKey)
 
void addIncoming (const QByteArray &name, const QByteArray &type)
 
void addOutgoing (const QByteArray &name, const QByteArray &type)
 
void addUniform (const QByteArray &name, const QByteArray &type)
 
void addUniformArray (const QByteArray &name, const QByteArray &type, quint32 size)
 
void addInclude (const QByteArray &name)
 
void addFunction (const QByteArray &functionName)
 
void addConstantBuffer (const QByteArray &name, const QByteArray &layout)
 
void addConstantBufferParam (const QByteArray &cbName, const QByteArray &paramName, const QByteArray &type)
 
void addDefinition (const QByteArray &name, const QByteArray &value=QByteArray())
 
QSSGStageGeneratorBaseoperator<< (const QByteArray &data)
 
void append (const QByteArray &data)
 
QSSGShaderGeneratorStage stage () const
 
void beginVertexGeneration (const QSSGShaderDefaultMaterialKey &inKey, const QSSGShaderFeatures &inFeatureSet, QSSGShaderLibraryManager &shaderLibraryManager)
 
void beginFragmentGeneration (QSSGShaderLibraryManager &shaderLibraryManager)
 
void assignOutput (const QByteArray &inVarName, const QByteArray &inVarValueExpr)
 
void endVertexGeneration ()
 
void endFragmentGeneration ()
 
QSSGStageGeneratorBaseactiveStage ()
 
void addInterpolationParameter (const QByteArray &inParamName, const QByteArray &inParamType)
 
void doGenerateWorldNormal (const QSSGShaderDefaultMaterialKey &inKey)
 
void doGenerateVarTangent (const QSSGShaderDefaultMaterialKey &inKey)
 
void doGenerateVarBinormal (const QSSGShaderDefaultMaterialKey &inKey)
 
bool hasAttributeInKey (QSSGShaderKeyVertexAttribute::VertexAttributeBits inAttr, const QSSGShaderDefaultMaterialKey &inKey)
 

Public Attributes

QSSGProgramGeneratorm_programGenerator = nullptr
 
QString m_tempString
 
GenerationFlags m_generationFlags
 
bool m_hasSkinning
 
bool m_hasMorphing
 
TStrTableStrMap m_interpolationParameters
 
QList< QByteArraym_addedFunctions
 
const QSSGShaderDefaultMaterialKeyPropertiesdefaultMaterialShaderKeyProperties
 
QSSGShaderMaterialAdaptermaterialAdapter
 
bool useFloatJointIndices
 
bool hasCustomShadedMain
 
bool usesInstancing
 
bool skipCustomFragmentSnippet
 

Detailed Description

Definition at line 26 of file qssgvertexpipelineimpl_p.h.

Member Typedef Documentation

◆ GenerationFlags

◆ TParamIter

◆ TStrTableStrMap

Member Enumeration Documentation

◆ GenerationFlag

Enumerator
UVCoords 
EnvMapReflection 
ViewVector 
WorldNormal 
ObjectNormal 
WorldPosition 
TangentBinormal 
UVCoords1 
VertexColor 
PerspDivDepth 
PerspDivWorldPos 

Definition at line 28 of file qssgvertexpipelineimpl_p.h.

Constructor & Destructor Documentation

◆ QSSGMaterialVertexPipeline()

QT_BEGIN_NAMESPACE QSSGMaterialVertexPipeline::QSSGMaterialVertexPipeline ( QSSGProgramGenerator inProgram,
const QSSGShaderDefaultMaterialKeyProperties materialProperties,
QSSGShaderMaterialAdapter materialAdapter 
)

Definition at line 18 of file qssgvertexpipelineimpl.cpp.

◆ ~QSSGMaterialVertexPipeline()

QSSGMaterialVertexPipeline::~QSSGMaterialVertexPipeline ( )
default

Member Function Documentation

◆ activeStage()

QSSGStageGeneratorBase & QSSGMaterialVertexPipeline::activeStage ( )

Definition at line 477 of file qssgvertexpipelineimpl.cpp.

References vertex().

Referenced by addConstantBuffer(), addConstantBufferParam(), addDefinition(), addInclude(), addIncoming(), addUniform(), addUniformArray(), append(), generateEnvMapReflection(), generateShadowWorldPosition(), generateViewVector(), generateWorldPosition(), operator<<(), and stage().

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

◆ addConstantBuffer()

void QSSGMaterialVertexPipeline::addConstantBuffer ( const QByteArray name,
const QByteArray layout 
)
inline

Definition at line 326 of file qssgvertexpipelineimpl_p.h.

References activeStage(), QSSGStageGeneratorBase::addConstantBuffer(), and layout.

+ Here is the call graph for this function:

◆ addConstantBufferParam()

void QSSGMaterialVertexPipeline::addConstantBufferParam ( const QByteArray cbName,
const QByteArray paramName,
const QByteArray type 
)
inline

Definition at line 331 of file qssgvertexpipelineimpl_p.h.

References activeStage(), and QSSGStageGeneratorBase::addConstantBufferParam().

+ Here is the call graph for this function:

◆ addDefinition()

void QSSGMaterialVertexPipeline::addDefinition ( const QByteArray name,
const QByteArray value = QByteArray() 
)
inline

Definition at line 336 of file qssgvertexpipelineimpl_p.h.

References activeStage(), and QSSGStageGeneratorBase::addDefinition().

Referenced by generateFragmentShader().

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

◆ addFunction()

void QSSGMaterialVertexPipeline::addFunction ( const QByteArray functionName)
inline

Definition at line 317 of file qssgvertexpipelineimpl_p.h.

References addInclude(), QListSpecialMethodsBase< T >::contains(), m_addedFunctions, and QList< T >::push_back().

Referenced by generateImageUVCoordinates().

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

◆ addInclude()

void QSSGMaterialVertexPipeline::addInclude ( const QByteArray name)
inline

Definition at line 315 of file qssgvertexpipelineimpl_p.h.

References activeStage(), and QSSGStageGeneratorBase::addInclude().

Referenced by addFunction().

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

◆ addIncoming()

void QSSGMaterialVertexPipeline::addIncoming ( const QByteArray name,
const QByteArray type 
)
inline

Definition at line 307 of file qssgvertexpipelineimpl_p.h.

References activeStage(), and QSSGStageGeneratorBase::addIncoming().

+ Here is the call graph for this function:

◆ addInterpolationParameter()

void QSSGMaterialVertexPipeline::addInterpolationParameter ( const QByteArray inParamName,
const QByteArray inParamType 
)

Definition at line 470 of file qssgvertexpipelineimpl.cpp.

References QSSGStageGeneratorBase::addIncoming(), QSSGStageGeneratorBase::addOutgoing(), fragment(), QHash< Key, T >::insert(), m_interpolationParameters, and vertex().

Referenced by addOutgoing(), generateDepth(), generateEnvMapReflection(), generateLightmapUVCoords(), generateObjectNormal(), generateShadowWorldPosition(), generateUVCoords(), generateVarTangentAndBinormal(), generateVertexColor(), generateWorldNormal(), and generateWorldPosition().

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

◆ addOutgoing()

void QSSGMaterialVertexPipeline::addOutgoing ( const QByteArray name,
const QByteArray type 
)
inline

Definition at line 309 of file qssgvertexpipelineimpl_p.h.

References addInterpolationParameter().

Referenced by generateImageUVCoordinates().

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

◆ addUniform()

void QSSGMaterialVertexPipeline::addUniform ( const QByteArray name,
const QByteArray type 
)
inline

Definition at line 311 of file qssgvertexpipelineimpl_p.h.

References activeStage(), and QSSGStageGeneratorBase::addUniform().

Referenced by generateImageUVCoordinates().

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

◆ addUniformArray()

void QSSGMaterialVertexPipeline::addUniformArray ( const QByteArray name,
const QByteArray type,
quint32  size 
)
inline

Definition at line 313 of file qssgvertexpipelineimpl_p.h.

References activeStage(), and QSSGStageGeneratorBase::addUniformArray().

+ Here is the call graph for this function:

◆ append()

void QSSGMaterialVertexPipeline::append ( const QByteArray data)
inline

Definition at line 347 of file qssgvertexpipelineimpl_p.h.

References activeStage(), and QSSGStageGeneratorBase::append().

+ Here is the call graph for this function:

◆ assignOutput()

void QSSGMaterialVertexPipeline::assignOutput ( const QByteArray inVarName,
const QByteArray inVarValueExpr 
)

Definition at line 380 of file qssgvertexpipelineimpl.cpp.

References vertex().

Referenced by generateImageUVCoordinates(), and generateWorldPosition().

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

◆ beginFragmentGeneration()

void QSSGMaterialVertexPipeline::beginFragmentGeneration ( QSSGShaderLibraryManager shaderLibraryManager)

◆ beginVertexGeneration()

void QSSGMaterialVertexPipeline::beginVertexGeneration ( const QSSGShaderDefaultMaterialKey inKey,
const QSSGShaderFeatures inFeatureSet,
QSSGShaderLibraryManager shaderLibraryManager 
)

Definition at line 101 of file qssgvertexpipelineimpl.cpp.

References QSSGStageGeneratorBase::addInclude(), QSSGStageGeneratorBase::addIncoming(), QSSGStageGeneratorBase::addUniform(), QSSGStageGeneratorBase::addUniformArray(), QSSGStageGeneratorBase::append(), QSSGProgramGenerator::beginProgram(), QSSGShaderKeyVertexAttribute::Binormal, QSSGShaderKeyVertexAttribute::Color, customMainCallWithArguments(), QSSGShaderMaterialAdapter::customShaderSnippet(), QSSGProgramGenerator::defaultFlags(), defaultMaterialShaderKeyProperties, QSSGShaderFeatures::DepthPass, QSSGShaderCache::Fragment, QSSGShaderKeyVertexAttribute::getBitValue(), QSSGShaderKeyBoolean::getValue(), QSSGShaderKeyUnsigned< TBitWidth >::getValue(), hasCustomShadedMain, QSSGShaderMaterialAdapter::hasCustomShaderFunction(), QSSGShaderMaterialAdapter::hasCustomShaderSnippet(), insertVertexInstancedMainArgs(), insertVertexMainArgs(), QSSGShaderFeatures::isSet(), QSSGShaderMaterialAdapter::isUnshaded(), QSSGShaderMaterialAdapter::isVertexColorsEnabled(), QSSGShaderKeyVertexAttribute::JointAndWeight, QSSGShaderDefaultMaterialKeyProperties::m_blendParticles, QSSGShaderDefaultMaterialKeyProperties::m_boneCount, m_hasMorphing, m_hasSkinning, QSSGShaderDefaultMaterialKeyProperties::m_overridesPosition, QSSGShaderDefaultMaterialKeyProperties::m_targetCount, QSSGShaderDefaultMaterialKeyProperties::m_usesFloatJointIndices, QSSGShaderDefaultMaterialKeyProperties::m_usesInstancing, QSSGShaderDefaultMaterialKeyProperties::m_usesInverseProjectionMatrix, QSSGShaderDefaultMaterialKeyProperties::m_usesPointsTopology, QSSGShaderDefaultMaterialKeyProperties::m_usesProjectionMatrix, QSSGShaderDefaultMaterialKeyProperties::m_vertexAttributes, materialAdapter, QSSGShaderKeyVertexAttribute::Normal, QSSGShaderFeatures::OpaqueDepthPrePass, programGenerator(), QByteArrayLiteral, skipCustomFragmentSnippet, QSSGShaderKeyVertexAttribute::Tangent, QSSGShaderKeyVertexAttribute::TexCoord0, QSSGShaderKeyVertexAttribute::TexCoord1, QSSGShaderKeyVertexAttribute::TexCoordLightmap, QSSGShaderMaterialAdapter::usesCustomMorphing(), QSSGShaderMaterialAdapter::usesCustomSkinning(), usesInstancing, QSSGShaderCache::Vertex, and vertex().

Referenced by QSSGMaterialShaderGenerator::generateMaterialRhiShader().

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

◆ doGenerateVarBinormal()

void QSSGMaterialVertexPipeline::doGenerateVarBinormal ( const QSSGShaderDefaultMaterialKey inKey)

Definition at line 430 of file qssgvertexpipelineimpl.cpp.

References defaultMaterialShaderKeyProperties, QSSGShaderKeyBoolean::getValue(), m_hasMorphing, m_hasSkinning, QSSGShaderDefaultMaterialKeyProperties::m_usesInstancing, usesInstancing, and vertex().

Referenced by generateVarTangentAndBinormal().

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

◆ doGenerateVarTangent()

void QSSGMaterialVertexPipeline::doGenerateVarTangent ( const QSSGShaderDefaultMaterialKey inKey)

Definition at line 410 of file qssgvertexpipelineimpl.cpp.

References defaultMaterialShaderKeyProperties, QSSGShaderKeyBoolean::getValue(), m_hasMorphing, m_hasSkinning, QSSGShaderDefaultMaterialKeyProperties::m_usesInstancing, usesInstancing, and vertex().

Referenced by generateVarTangentAndBinormal().

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

◆ doGenerateWorldNormal()

void QSSGMaterialVertexPipeline::doGenerateWorldNormal ( const QSSGShaderDefaultMaterialKey inKey)

Definition at line 385 of file qssgvertexpipelineimpl.cpp.

References QSSGStageGeneratorBase::addUniform(), QSSGStageGeneratorBase::append(), defaultMaterialShaderKeyProperties, QSSGShaderKeyBoolean::getValue(), m_hasMorphing, m_hasSkinning, QSSGShaderDefaultMaterialKeyProperties::m_usesInstancing, usesInstancing, and vertex().

Referenced by generateWorldNormal().

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

◆ endFragmentGeneration()

void QSSGMaterialVertexPipeline::endFragmentGeneration ( )

Definition at line 462 of file qssgvertexpipelineimpl.cpp.

References QSSGStageGeneratorBase::append(), QSSGShaderCache::Fragment, fragment(), QSSGShaderMaterialAdapter::hasCustomShaderSnippet(), QSSGShaderMaterialAdapter::isUnshaded(), materialAdapter, and skipCustomFragmentSnippet.

Referenced by QSSGMaterialShaderGenerator::generateMaterialRhiShader().

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

◆ endVertexGeneration()

void QSSGMaterialVertexPipeline::endVertexGeneration ( )

Definition at line 455 of file qssgvertexpipelineimpl.cpp.

References QSSGStageGeneratorBase::append(), customMainCallWithArguments(), QSSGShaderMaterialAdapter::hasCustomShaderSnippet(), QSSGShaderMaterialAdapter::isUnshaded(), materialAdapter, usesInstancing, QSSGShaderCache::Vertex, and vertex().

Referenced by QSSGMaterialShaderGenerator::generateMaterialRhiShader().

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

◆ fragment()

QSSGStageGeneratorBase & QSSGMaterialVertexPipeline::fragment ( )
inline

Definition at line 84 of file qssgvertexpipelineimpl_p.h.

References Fragment, QSSGProgramGenerator::getStage(), and programGenerator().

Referenced by addInterpolationParameter(), beginFragmentGeneration(), endFragmentGeneration(), generateEnvMapReflection(), generateLightmapUVCoords(), QSSGMaterialShaderGenerator::generateMaterialRhiShader(), generateObjectNormal(), generateUVCoords(), generateVarTangentAndBinormal(), generateVertexColor(), generateViewVector(), and generateWorldNormal().

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

◆ generateDepth()

void QSSGMaterialVertexPipeline::generateDepth ( )
inline

Definition at line 227 of file qssgvertexpipelineimpl_p.h.

References addInterpolationParameter(), QSSGStageGeneratorBase::append(), PerspDivDepth, setCode(), and vertex().

Referenced by generateFragmentShader().

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

◆ generateEnvMapReflection()

void QSSGMaterialVertexPipeline::generateEnvMapReflection ( const QSSGShaderDefaultMaterialKey inKey)
inline

Definition at line 145 of file qssgvertexpipelineimpl_p.h.

References activeStage(), QSSGStageGeneratorBase::addInclude(), addInterpolationParameter(), QSSGStageGeneratorBase::append(), EnvMapReflection, fragment(), generateWorldNormal(), generateWorldPosition(), and setCode().

Referenced by generateImageUVCoordinates().

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

◆ generateLightmapUVCoords()

void QSSGMaterialVertexPipeline::generateLightmapUVCoords ( const QSSGShaderDefaultMaterialKey inKey)
inline

Definition at line 133 of file qssgvertexpipelineimpl_p.h.

References addInterpolationParameter(), fragment(), hasAttributeInKey(), QSSGShaderKeyVertexAttribute::TexCoordLightmap, and vertex().

Referenced by generateFragmentShader().

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

◆ generateObjectNormal()

void QSSGMaterialVertexPipeline::generateObjectNormal ( )
inline

Definition at line 197 of file qssgvertexpipelineimpl_p.h.

References addInterpolationParameter(), QSSGStageGeneratorBase::append(), fragment(), ObjectNormal, setCode(), and vertex().

+ Here is the call graph for this function:

◆ generateShadowWorldPosition()

void QSSGMaterialVertexPipeline::generateShadowWorldPosition ( const QSSGShaderDefaultMaterialKey inKey)
inline

Definition at line 236 of file qssgvertexpipelineimpl_p.h.

References activeStage(), addInterpolationParameter(), QSSGStageGeneratorBase::addUniform(), QSSGStageGeneratorBase::append(), defaultMaterialShaderKeyProperties, QSSGShaderKeyBoolean::getValue(), m_hasSkinning, QSSGShaderDefaultMaterialKeyProperties::m_usesInstancing, PerspDivWorldPos, setCode(), usesInstancing, and vertex().

Referenced by generateFragmentShader().

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

◆ generateUVCoords()

void QSSGMaterialVertexPipeline::generateUVCoords ( quint32  inUVSet,
const QSSGShaderDefaultMaterialKey inKey 
)
inline

Generates UV coordinates in shader code.

Parameters
[in]inUVSetindex of UV data set
Returns
no return

Definition at line 96 of file qssgvertexpipelineimpl_p.h.

References addInterpolationParameter(), QSSGStageGeneratorBase::append(), fragment(), hasAttributeInKey(), hasCustomShadedMain, m_hasMorphing, Q_ASSERT, setCode(), QSSGShaderKeyVertexAttribute::TexCoord0, QSSGShaderKeyVertexAttribute::TexCoord1, UVCoords, UVCoords1, and vertex().

Referenced by generateFragmentShader(), generateImageUVCoordinates(), and generateImageUVSampler().

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

◆ generateVarTangentAndBinormal()

void QSSGMaterialVertexPipeline::generateVarTangentAndBinormal ( const QSSGShaderDefaultMaterialKey inKey,
bool &  genTangent,
bool &  genBinormal 
)
inline

Definition at line 256 of file qssgvertexpipelineimpl_p.h.

References addInterpolationParameter(), QSSGShaderKeyVertexAttribute::Binormal, doGenerateVarBinormal(), doGenerateVarTangent(), fragment(), hasAttributeInKey(), hasCustomShadedMain, setCode(), QSSGShaderKeyVertexAttribute::Tangent, and TangentBinormal.

Referenced by generateFragmentShader().

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

◆ generateVertexColor()

void QSSGMaterialVertexPipeline::generateVertexColor ( const QSSGShaderDefaultMaterialKey inKey)
inline

Definition at line 285 of file qssgvertexpipelineimpl_p.h.

References addInterpolationParameter(), QSSGStageGeneratorBase::append(), QSSGShaderKeyVertexAttribute::Color, defaultMaterialShaderKeyProperties, fragment(), QSSGShaderKeyBoolean::getValue(), hasAttributeInKey(), QSSGShaderDefaultMaterialKeyProperties::m_blendParticles, m_hasMorphing, QSSGShaderDefaultMaterialKeyProperties::m_usesInstancing, QSSGShaderDefaultMaterialKeyProperties::m_usesVarColor, QSSGShaderDefaultMaterialKeyProperties::m_vertexColorsEnabled, setCode(), usesInstancing, vertex(), and VertexColor.

Referenced by generateFragmentShader().

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

◆ generateViewVector()

void QSSGMaterialVertexPipeline::generateViewVector ( const QSSGShaderDefaultMaterialKey inKey)
inline

Definition at line 164 of file qssgvertexpipelineimpl_p.h.

References activeStage(), QSSGStageGeneratorBase::addUniform(), fragment(), generateWorldPosition(), setCode(), and ViewVector.

Referenced by generateFragmentShader().

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

◆ generateWorldNormal()

void QSSGMaterialVertexPipeline::generateWorldNormal ( const QSSGShaderDefaultMaterialKey inKey)
inline

Definition at line 180 of file qssgvertexpipelineimpl_p.h.

References addInterpolationParameter(), QSSGStageGeneratorBase::append(), doGenerateWorldNormal(), fragment(), generateWorldPosition(), hasAttributeInKey(), hasCustomShadedMain, QSSGShaderKeyVertexAttribute::Normal, setCode(), and WorldNormal.

Referenced by generateEnvMapReflection(), and generateFragmentShader().

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

◆ generateWorldPosition()

void QSSGMaterialVertexPipeline::generateWorldPosition ( const QSSGShaderDefaultMaterialKey inKey)
inline

Definition at line 207 of file qssgvertexpipelineimpl_p.h.

References activeStage(), addInterpolationParameter(), QSSGStageGeneratorBase::addUniform(), QSSGStageGeneratorBase::append(), assignOutput(), defaultMaterialShaderKeyProperties, QSSGShaderKeyBoolean::getValue(), m_hasSkinning, QSSGShaderDefaultMaterialKeyProperties::m_usesInstancing, setCode(), usesInstancing, vertex(), and WorldPosition.

Referenced by generateDirections(), generateEnvMapReflection(), generateFragmentShader(), generateShadowMapOcclusion(), generateViewVector(), and generateWorldNormal().

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

◆ hasAttributeInKey()

bool QSSGMaterialVertexPipeline::hasAttributeInKey ( QSSGShaderKeyVertexAttribute::VertexAttributeBits  inAttr,
const QSSGShaderDefaultMaterialKey inKey 
)

Definition at line 449 of file qssgvertexpipelineimpl.cpp.

References defaultMaterialShaderKeyProperties, QSSGShaderKeyVertexAttribute::getBitValue(), and QSSGShaderDefaultMaterialKeyProperties::m_vertexAttributes.

Referenced by generateLightmapUVCoords(), generateUVCoords(), generateVarTangentAndBinormal(), generateVertexColor(), and generateWorldNormal().

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

◆ hasCode()

bool QSSGMaterialVertexPipeline::hasCode ( GenerationFlag  inCode)
inline

Definition at line 77 of file qssgvertexpipelineimpl_p.h.

References m_generationFlags.

◆ operator<<()

QSSGStageGeneratorBase & QSSGMaterialVertexPipeline::operator<< ( const QByteArray data)
inline

Definition at line 341 of file qssgvertexpipelineimpl_p.h.

References activeStage().

+ Here is the call graph for this function:

◆ programGenerator()

QSSGProgramGenerator * QSSGMaterialVertexPipeline::programGenerator ( ) const
inline

Definition at line 78 of file qssgvertexpipelineimpl_p.h.

References m_programGenerator.

Referenced by beginVertexGeneration(), fragment(), QSSGMaterialShaderGenerator::generateMaterialRhiShader(), and vertex().

+ Here is the caller graph for this function:

◆ setCode()

bool QSSGMaterialVertexPipeline::setCode ( GenerationFlag  inCode)
inline

Definition at line 70 of file qssgvertexpipelineimpl_p.h.

References m_generationFlags.

Referenced by generateDepth(), generateEnvMapReflection(), generateObjectNormal(), generateShadowWorldPosition(), generateUVCoords(), generateVarTangentAndBinormal(), generateVertexColor(), generateViewVector(), generateWorldNormal(), and generateWorldPosition().

+ Here is the caller graph for this function:

◆ stage()

QSSGShaderGeneratorStage QSSGMaterialVertexPipeline::stage ( ) const
inline

Definition at line 349 of file qssgvertexpipelineimpl_p.h.

References activeStage(), and QSSGStageGeneratorBase::stage().

+ Here is the call graph for this function:

◆ vertex()

QSSGStageGeneratorBase & QSSGMaterialVertexPipeline::vertex ( )
inline

Definition at line 80 of file qssgvertexpipelineimpl_p.h.

References QSSGProgramGenerator::getStage(), programGenerator(), and Vertex.

Referenced by activeStage(), addInterpolationParameter(), assignOutput(), beginVertexGeneration(), doGenerateVarBinormal(), doGenerateVarTangent(), doGenerateWorldNormal(), endVertexGeneration(), generateDepth(), generateLightmapUVCoords(), generateObjectNormal(), generateShadowWorldPosition(), generateUVCoords(), generateVertexColor(), and generateWorldPosition().

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

Member Data Documentation

◆ defaultMaterialShaderKeyProperties

◆ hasCustomShadedMain

bool QSSGMaterialVertexPipeline::hasCustomShadedMain

◆ m_addedFunctions

QList<QByteArray> QSSGMaterialVertexPipeline::m_addedFunctions

Definition at line 54 of file qssgvertexpipelineimpl_p.h.

Referenced by addFunction().

◆ m_generationFlags

GenerationFlags QSSGMaterialVertexPipeline::m_generationFlags

Definition at line 50 of file qssgvertexpipelineimpl_p.h.

Referenced by hasCode(), and setCode().

◆ m_hasMorphing

bool QSSGMaterialVertexPipeline::m_hasMorphing

◆ m_hasSkinning

◆ m_interpolationParameters

TStrTableStrMap QSSGMaterialVertexPipeline::m_interpolationParameters

Definition at line 53 of file qssgvertexpipelineimpl_p.h.

Referenced by addInterpolationParameter().

◆ m_programGenerator

QSSGProgramGenerator* QSSGMaterialVertexPipeline::m_programGenerator = nullptr

Definition at line 47 of file qssgvertexpipelineimpl_p.h.

Referenced by programGenerator().

◆ m_tempString

QString QSSGMaterialVertexPipeline::m_tempString

Definition at line 48 of file qssgvertexpipelineimpl_p.h.

◆ materialAdapter

QSSGShaderMaterialAdapter* QSSGMaterialVertexPipeline::materialAdapter

◆ skipCustomFragmentSnippet

bool QSSGMaterialVertexPipeline::skipCustomFragmentSnippet

◆ useFloatJointIndices

bool QSSGMaterialVertexPipeline::useFloatJointIndices

Definition at line 58 of file qssgvertexpipelineimpl_p.h.

◆ usesInstancing


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