Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
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, QSSGRenderLayer::OITMethod oitMethod)
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_needsSkinning
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 20 of file qssgvertexpipelineimpl.cpp.

◆ ~QSSGMaterialVertexPipeline()

QSSGMaterialVertexPipeline::~QSSGMaterialVertexPipeline ( )
default

Member Function Documentation

◆ activeStage()

QSSGStageGeneratorBase & QSSGMaterialVertexPipeline::activeStage ( )

Definition at line 577 of file qssgvertexpipelineimpl.cpp.

◆ addConstantBuffer()

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

Definition at line 349 of file qssgvertexpipelineimpl_p.h.

◆ addConstantBufferParam()

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

Definition at line 354 of file qssgvertexpipelineimpl_p.h.

◆ addDefinition()

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

Definition at line 359 of file qssgvertexpipelineimpl_p.h.

◆ addFlatParameter()

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

Definition at line 571 of file qssgvertexpipelineimpl.cpp.

◆ addFunction()

void QSSGMaterialVertexPipeline::addFunction ( const QByteArray & functionName)
inline

Definition at line 340 of file qssgvertexpipelineimpl_p.h.

◆ addInclude()

void QSSGMaterialVertexPipeline::addInclude ( const QByteArray & name)
inline

Definition at line 338 of file qssgvertexpipelineimpl_p.h.

◆ addIncoming()

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

Definition at line 330 of file qssgvertexpipelineimpl_p.h.

◆ addInterpolationParameter()

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

Definition at line 565 of file qssgvertexpipelineimpl.cpp.

◆ addOutgoing()

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

Definition at line 332 of file qssgvertexpipelineimpl_p.h.

◆ addUniform()

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

Definition at line 334 of file qssgvertexpipelineimpl_p.h.

◆ addUniformArray()

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

Definition at line 336 of file qssgvertexpipelineimpl_p.h.

◆ append()

void QSSGMaterialVertexPipeline::append ( const QByteArray & data)
inline

Definition at line 370 of file qssgvertexpipelineimpl_p.h.

◆ assignOutput()

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

Definition at line 475 of file qssgvertexpipelineimpl.cpp.

◆ beginFragmentGeneration()

void QSSGMaterialVertexPipeline::beginFragmentGeneration ( QSSGShaderLibraryManager & shaderLibraryManager,
QSSGRenderLayer::OITMethod oitMethod )

Definition at line 431 of file qssgvertexpipelineimpl.cpp.

◆ beginVertexGeneration()

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

Definition at line 144 of file qssgvertexpipelineimpl.cpp.

References customMainCallWithArguments().

Here is the call graph for this function:

◆ doGenerateVarBinormal()

void QSSGMaterialVertexPipeline::doGenerateVarBinormal ( const QSSGShaderDefaultMaterialKey & inKey)

Definition at line 525 of file qssgvertexpipelineimpl.cpp.

◆ doGenerateVarTangent()

void QSSGMaterialVertexPipeline::doGenerateVarTangent ( const QSSGShaderDefaultMaterialKey & inKey)

Definition at line 505 of file qssgvertexpipelineimpl.cpp.

◆ doGenerateWorldNormal()

void QSSGMaterialVertexPipeline::doGenerateWorldNormal ( const QSSGShaderDefaultMaterialKey & inKey)

Definition at line 480 of file qssgvertexpipelineimpl.cpp.

◆ endFragmentGeneration()

void QSSGMaterialVertexPipeline::endFragmentGeneration ( )

Definition at line 557 of file qssgvertexpipelineimpl.cpp.

◆ endVertexGeneration()

void QSSGMaterialVertexPipeline::endVertexGeneration ( )

Definition at line 550 of file qssgvertexpipelineimpl.cpp.

◆ fragment()

QSSGStageGeneratorBase & QSSGMaterialVertexPipeline::fragment ( )
inline

Definition at line 85 of file qssgvertexpipelineimpl_p.h.

◆ generateDepth()

void QSSGMaterialVertexPipeline::generateDepth ( )
inline

Definition at line 239 of file qssgvertexpipelineimpl_p.h.

◆ generateEnvMapReflection()

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

Definition at line 146 of file qssgvertexpipelineimpl_p.h.

◆ generateLightmapUVCoords()

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

Definition at line 134 of file qssgvertexpipelineimpl_p.h.

◆ generateObjectNormal()

void QSSGMaterialVertexPipeline::generateObjectNormal ( )
inline

Definition at line 209 of file qssgvertexpipelineimpl_p.h.

◆ generateShadowWorldPosition()

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

Definition at line 248 of file qssgvertexpipelineimpl_p.h.

◆ 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 97 of file qssgvertexpipelineimpl_p.h.

◆ generateVarTangentAndBinormal()

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

Definition at line 268 of file qssgvertexpipelineimpl_p.h.

◆ generateVertexColor()

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

Definition at line 297 of file qssgvertexpipelineimpl_p.h.

◆ generateViewVector()

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

Definition at line 171 of file qssgvertexpipelineimpl_p.h.

◆ generateWorldNormal()

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

Definition at line 191 of file qssgvertexpipelineimpl_p.h.

◆ generateWorldPosition()

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

Definition at line 219 of file qssgvertexpipelineimpl_p.h.

◆ hasAttributeInKey()

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

Definition at line 544 of file qssgvertexpipelineimpl.cpp.

◆ hasCode()

bool QSSGMaterialVertexPipeline::hasCode ( GenerationFlag inCode)
inline

Definition at line 78 of file qssgvertexpipelineimpl_p.h.

◆ operator<<()

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

Definition at line 364 of file qssgvertexpipelineimpl_p.h.

◆ programGenerator()

QSSGProgramGenerator * QSSGMaterialVertexPipeline::programGenerator ( ) const
inline

Definition at line 79 of file qssgvertexpipelineimpl_p.h.

◆ setCode()

bool QSSGMaterialVertexPipeline::setCode ( GenerationFlag inCode)
inline

Definition at line 71 of file qssgvertexpipelineimpl_p.h.

◆ stage()

QSSGShaderGeneratorStage QSSGMaterialVertexPipeline::stage ( ) const
inline

Definition at line 372 of file qssgvertexpipelineimpl_p.h.

◆ vertex()

QSSGStageGeneratorBase & QSSGMaterialVertexPipeline::vertex ( )
inline

Definition at line 81 of file qssgvertexpipelineimpl_p.h.

Member Data Documentation

◆ defaultMaterialShaderKeyProperties

const QSSGShaderDefaultMaterialKeyProperties& QSSGMaterialVertexPipeline::defaultMaterialShaderKeyProperties

Definition at line 57 of file qssgvertexpipelineimpl_p.h.

◆ hasCustomShadedMain

bool QSSGMaterialVertexPipeline::hasCustomShadedMain

Definition at line 60 of file qssgvertexpipelineimpl_p.h.

◆ m_addedFunctions

QList<QByteArray> QSSGMaterialVertexPipeline::m_addedFunctions

Definition at line 54 of file qssgvertexpipelineimpl_p.h.

◆ m_generationFlags

GenerationFlags QSSGMaterialVertexPipeline::m_generationFlags

Definition at line 50 of file qssgvertexpipelineimpl_p.h.

◆ m_hasMorphing

bool QSSGMaterialVertexPipeline::m_hasMorphing

Definition at line 53 of file qssgvertexpipelineimpl_p.h.

◆ m_hasSkinning

bool QSSGMaterialVertexPipeline::m_hasSkinning

Definition at line 51 of file qssgvertexpipelineimpl_p.h.

◆ m_needsSkinning

bool QSSGMaterialVertexPipeline::m_needsSkinning

Definition at line 52 of file qssgvertexpipelineimpl_p.h.

◆ m_programGenerator

QSSGProgramGenerator* QSSGMaterialVertexPipeline::m_programGenerator = nullptr

Definition at line 47 of file qssgvertexpipelineimpl_p.h.

◆ m_tempString

QString QSSGMaterialVertexPipeline::m_tempString

Definition at line 48 of file qssgvertexpipelineimpl_p.h.

◆ m_viewCount

int QSSGMaterialVertexPipeline::m_viewCount = 1

Definition at line 55 of file qssgvertexpipelineimpl_p.h.

◆ materialAdapter

QSSGShaderMaterialAdapter* QSSGMaterialVertexPipeline::materialAdapter

Definition at line 58 of file qssgvertexpipelineimpl_p.h.

◆ skipCustomFragmentSnippet

bool QSSGMaterialVertexPipeline::skipCustomFragmentSnippet

Definition at line 62 of file qssgvertexpipelineimpl_p.h.

◆ useFloatJointIndices

bool QSSGMaterialVertexPipeline::useFloatJointIndices

Definition at line 59 of file qssgvertexpipelineimpl_p.h.

◆ usesInstancing

bool QSSGMaterialVertexPipeline::usesInstancing

Definition at line 61 of file qssgvertexpipelineimpl_p.h.


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