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
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 addFlatParameter (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
 
QList< QByteArraym_addedFunctions
 
int m_viewCount = 1
 
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 522 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 348 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 353 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 358 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:

◆ addFlatParameter()

void QSSGMaterialVertexPipeline::addFlatParameter ( const QByteArray & inParamName,
const QByteArray & inParamType )

Definition at line 516 of file qssgvertexpipelineimpl.cpp.

References QSSGStageGeneratorBase::addFlatIncoming(), QSSGStageGeneratorBase::addFlatOutgoing(), fragment(), and vertex().

Referenced by beginVertexGeneration().

+ 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 339 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 337 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 329 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 510 of file qssgvertexpipelineimpl.cpp.

References QSSGStageGeneratorBase::addIncoming(), QSSGStageGeneratorBase::addOutgoing(), fragment(), 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 331 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 333 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 335 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 369 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 420 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 addFlatParameter(), QSSGStageGeneratorBase::addInclude(), QSSGStageGeneratorBase::addIncoming(), QSSGStageGeneratorBase::addUniform(), QSSGStageGeneratorBase::addUniformArray(), QSSGStageGeneratorBase::append(), QSSGProgramGenerator::beginProgram(), QSSGShaderKeyVertexAttribute::Binormal, QSSGShaderKeyVertexAttribute::Color, customMainCallWithArguments(), QSSGShaderMaterialAdapter::customShaderSnippet(), QSSGProgramGenerator::defaultFlags(), defaultMaterialShaderKeyProperties, QSSGShaderFeatures::DepthPass, QSSGShaderFeatures::DisableMultiView, QSSGShaderCache::Fragment, QSSGShaderKeyVertexAttribute::getBitValue(), QSSGShaderKeyBoolean::getValue(), QSSGShaderKeyUnsigned< TBitWidth >::getValue(), hasCustomShadedMain, QSSGShaderMaterialAdapter::hasCustomShaderFunction(), QSSGShaderMaterialAdapter::hasCustomShaderSnippet(), insertVertexInstancedMainArgs(), insertVertexMainArgs(), QSSGShaderMaterialAdapter::isUnshaded(), 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_usesViewIndex, QSSGShaderDefaultMaterialKeyProperties::m_vertexAttributes, QSSGShaderDefaultMaterialKeyProperties::m_viewCount, m_viewCount, 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().

+ Here is the call graph for this function:

◆ doGenerateVarBinormal()

void QSSGMaterialVertexPipeline::doGenerateVarBinormal ( const QSSGShaderDefaultMaterialKey & inKey)

Definition at line 470 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 450 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 425 of file qssgvertexpipelineimpl.cpp.

References 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 502 of file qssgvertexpipelineimpl.cpp.

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

+ Here is the call graph for this function:

◆ endVertexGeneration()

void QSSGMaterialVertexPipeline::endVertexGeneration ( )

Definition at line 495 of file qssgvertexpipelineimpl.cpp.

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

+ Here is the call 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 addFlatParameter(), addInterpolationParameter(), beginFragmentGeneration(), endFragmentGeneration(), generateEnvMapReflection(), generateLightmapUVCoords(), 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 238 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(), addInterpolationParameter(), QSSGStageGeneratorBase::append(), EnvMapReflection, fragment(), generateWorldNormal(), generateWorldPosition(), m_viewCount, 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 208 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 247 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(), and generateImageUVCoordinates().

+ 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 267 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

◆ generateViewVector()

void QSSGMaterialVertexPipeline::generateViewVector ( const QSSGShaderDefaultMaterialKey & inKey)
inline

Definition at line 170 of file qssgvertexpipelineimpl_p.h.

References activeStage(), QSSGStageGeneratorBase::addUniform(), QSSGStageGeneratorBase::addUniformArray(), fragment(), generateWorldPosition(), m_viewCount, 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 190 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 218 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 489 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 363 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(), 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 371 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(), addFlatParameter(), 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 53 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_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.

◆ m_viewCount

int QSSGMaterialVertexPipeline::m_viewCount = 1

◆ 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: