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

Member Typedef Documentation

◆ GenerationFlags

◆ TParamIter

typedef TStrTableStrMap::const_iterator QSSGMaterialVertexPipeline::TParamIter

Definition at line 46 of file qssgvertexpipelineimpl_p.h.

◆ TStrTableStrMap

Member Enumeration Documentation

◆ GenerationFlag

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

Definition at line 30 of file qssgvertexpipelineimpl_p.h.

Constructor & Destructor Documentation

◆ QSSGMaterialVertexPipeline()

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

Definition at line 22 of file qssgvertexpipelineimpl.cpp.

◆ ~QSSGMaterialVertexPipeline()

QSSGMaterialVertexPipeline::~QSSGMaterialVertexPipeline ( )
default

Member Function Documentation

◆ activeStage()

QSSGStageGeneratorBase & QSSGMaterialVertexPipeline::activeStage ( )

Definition at line 589 of file qssgvertexpipelineimpl.cpp.

◆ addConstantBuffer()

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

Definition at line 351 of file qssgvertexpipelineimpl_p.h.

◆ addConstantBufferParam()

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

Definition at line 356 of file qssgvertexpipelineimpl_p.h.

◆ addDefinition()

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

Definition at line 361 of file qssgvertexpipelineimpl_p.h.

◆ addFlatParameter()

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

Definition at line 583 of file qssgvertexpipelineimpl.cpp.

◆ addFunction()

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

Definition at line 342 of file qssgvertexpipelineimpl_p.h.

◆ addInclude()

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

Definition at line 340 of file qssgvertexpipelineimpl_p.h.

◆ addIncoming()

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

Definition at line 332 of file qssgvertexpipelineimpl_p.h.

◆ addInterpolationParameter()

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

Definition at line 577 of file qssgvertexpipelineimpl.cpp.

◆ addOutgoing()

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

Definition at line 334 of file qssgvertexpipelineimpl_p.h.

◆ addUniform()

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

Definition at line 336 of file qssgvertexpipelineimpl_p.h.

◆ addUniformArray()

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

Definition at line 338 of file qssgvertexpipelineimpl_p.h.

◆ append()

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

Definition at line 372 of file qssgvertexpipelineimpl_p.h.

◆ assignOutput()

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

Definition at line 487 of file qssgvertexpipelineimpl.cpp.

◆ beginFragmentGeneration()

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

Definition at line 433 of file qssgvertexpipelineimpl.cpp.

◆ beginVertexGeneration()

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

Definition at line 146 of file qssgvertexpipelineimpl.cpp.

References customMainCallWithArguments().

Here is the call graph for this function:

◆ doGenerateVarBinormal()

void QSSGMaterialVertexPipeline::doGenerateVarBinormal ( const QSSGShaderDefaultMaterialKey & inKey)

Definition at line 537 of file qssgvertexpipelineimpl.cpp.

◆ doGenerateVarTangent()

void QSSGMaterialVertexPipeline::doGenerateVarTangent ( const QSSGShaderDefaultMaterialKey & inKey)

Definition at line 517 of file qssgvertexpipelineimpl.cpp.

◆ doGenerateWorldNormal()

void QSSGMaterialVertexPipeline::doGenerateWorldNormal ( const QSSGShaderDefaultMaterialKey & inKey)

Definition at line 492 of file qssgvertexpipelineimpl.cpp.

◆ endFragmentGeneration()

void QSSGMaterialVertexPipeline::endFragmentGeneration ( )

Definition at line 569 of file qssgvertexpipelineimpl.cpp.

◆ endVertexGeneration()

void QSSGMaterialVertexPipeline::endVertexGeneration ( )

Definition at line 562 of file qssgvertexpipelineimpl.cpp.

◆ fragment()

QSSGStageGeneratorBase & QSSGMaterialVertexPipeline::fragment ( )
inline

Definition at line 87 of file qssgvertexpipelineimpl_p.h.

◆ generateDepth()

void QSSGMaterialVertexPipeline::generateDepth ( )
inline

Definition at line 241 of file qssgvertexpipelineimpl_p.h.

◆ generateEnvMapReflection()

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

Definition at line 148 of file qssgvertexpipelineimpl_p.h.

◆ generateLightmapUVCoords()

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

Definition at line 136 of file qssgvertexpipelineimpl_p.h.

◆ generateObjectNormal()

void QSSGMaterialVertexPipeline::generateObjectNormal ( )
inline

Definition at line 211 of file qssgvertexpipelineimpl_p.h.

◆ generateShadowWorldPosition()

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

Definition at line 250 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 99 of file qssgvertexpipelineimpl_p.h.

◆ generateVarTangentAndBinormal()

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

Definition at line 270 of file qssgvertexpipelineimpl_p.h.

◆ generateVertexColor()

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

Definition at line 299 of file qssgvertexpipelineimpl_p.h.

◆ generateViewVector()

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

Definition at line 173 of file qssgvertexpipelineimpl_p.h.

◆ generateWorldNormal()

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

Definition at line 193 of file qssgvertexpipelineimpl_p.h.

◆ generateWorldPosition()

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

Definition at line 221 of file qssgvertexpipelineimpl_p.h.

◆ hasAttributeInKey()

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

Definition at line 556 of file qssgvertexpipelineimpl.cpp.

◆ hasCode()

bool QSSGMaterialVertexPipeline::hasCode ( GenerationFlag inCode)
inline

Definition at line 80 of file qssgvertexpipelineimpl_p.h.

◆ operator<<()

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

Definition at line 366 of file qssgvertexpipelineimpl_p.h.

◆ programGenerator()

QSSGProgramGenerator * QSSGMaterialVertexPipeline::programGenerator ( ) const
inline

Definition at line 81 of file qssgvertexpipelineimpl_p.h.

◆ setCode()

bool QSSGMaterialVertexPipeline::setCode ( GenerationFlag inCode)
inline

Definition at line 73 of file qssgvertexpipelineimpl_p.h.

◆ stage()

QSSGShaderGeneratorStage QSSGMaterialVertexPipeline::stage ( ) const
inline

Definition at line 374 of file qssgvertexpipelineimpl_p.h.

◆ vertex()

QSSGStageGeneratorBase & QSSGMaterialVertexPipeline::vertex ( )
inline

Definition at line 83 of file qssgvertexpipelineimpl_p.h.

Member Data Documentation

◆ defaultMaterialShaderKeyProperties

const QSSGShaderDefaultMaterialKeyProperties& QSSGMaterialVertexPipeline::defaultMaterialShaderKeyProperties

Definition at line 59 of file qssgvertexpipelineimpl_p.h.

◆ hasCustomShadedMain

bool QSSGMaterialVertexPipeline::hasCustomShadedMain

Definition at line 62 of file qssgvertexpipelineimpl_p.h.

◆ m_addedFunctions

QList<QByteArray> QSSGMaterialVertexPipeline::m_addedFunctions

Definition at line 56 of file qssgvertexpipelineimpl_p.h.

◆ m_generationFlags

GenerationFlags QSSGMaterialVertexPipeline::m_generationFlags

Definition at line 52 of file qssgvertexpipelineimpl_p.h.

◆ m_hasMorphing

bool QSSGMaterialVertexPipeline::m_hasMorphing

Definition at line 55 of file qssgvertexpipelineimpl_p.h.

◆ m_hasSkinning

bool QSSGMaterialVertexPipeline::m_hasSkinning

Definition at line 53 of file qssgvertexpipelineimpl_p.h.

◆ m_needsSkinning

bool QSSGMaterialVertexPipeline::m_needsSkinning

Definition at line 54 of file qssgvertexpipelineimpl_p.h.

◆ m_programGenerator

QSSGProgramGenerator* QSSGMaterialVertexPipeline::m_programGenerator = nullptr

Definition at line 49 of file qssgvertexpipelineimpl_p.h.

◆ m_tempString

QString QSSGMaterialVertexPipeline::m_tempString

Definition at line 50 of file qssgvertexpipelineimpl_p.h.

◆ m_viewCount

int QSSGMaterialVertexPipeline::m_viewCount = 1

Definition at line 57 of file qssgvertexpipelineimpl_p.h.

◆ materialAdapter

QSSGShaderMaterialAdapter* QSSGMaterialVertexPipeline::materialAdapter

Definition at line 60 of file qssgvertexpipelineimpl_p.h.

◆ skipCustomFragmentSnippet

bool QSSGMaterialVertexPipeline::skipCustomFragmentSnippet

Definition at line 64 of file qssgvertexpipelineimpl_p.h.

◆ useFloatJointIndices

bool QSSGMaterialVertexPipeline::useFloatJointIndices

Definition at line 61 of file qssgvertexpipelineimpl_p.h.

◆ usesInstancing

bool QSSGMaterialVertexPipeline::usesInstancing

Definition at line 63 of file qssgvertexpipelineimpl_p.h.


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