Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QSSGShaderCustomMaterialAdapter Struct Referencefinal

#include <qssgshadermaterialadapter_p.h>

+ Inheritance diagram for QSSGShaderCustomMaterialAdapter:
+ Collaboration diagram for QSSGShaderCustomMaterialAdapter:

Public Types

using StringPair = QPair< QByteArray, QByteArray >
 
using StringPairList = QVarLengthArray< StringPair, 16 >
 
using ShaderCodeAndMetaData = QPair< QByteArray, QSSGCustomShaderMetaData >
 

Public Member Functions

 QSSGShaderCustomMaterialAdapter (const QSSGRenderCustomMaterial &material)
 
bool isPrincipled () override
 
bool isSpecularGlossy () override
 
bool isMetalnessEnabled () override
 
bool isSpecularEnabled () override
 
bool isVertexColorsEnabled () override
 
bool isClearcoatEnabled () override
 
bool isTransmissionEnabled () override
 
bool hasLighting () override
 
bool usesCustomSkinning () override
 
bool usesCustomMorphing () override
 
QSSGRenderDefaultMaterial::MaterialSpecularModel specularModel () override
 
QSSGRenderDefaultMaterial::MaterialAlphaMode alphaMode () override
 
QSSGRenderImageiblProbe () override
 
QVector3D emissiveColor () override
 
QVector4D color () override
 
QVector3D specularTint () override
 
float ior () override
 
float fresnelPower () override
 
float metalnessAmount () override
 
float specularAmount () override
 
float specularRoughness () override
 
float bumpAmount () override
 
float translucentFallOff () override
 
float diffuseLightWrap () override
 
float occlusionAmount () override
 
float alphaCutOff () override
 
float pointSize () override
 
float lineWidth () override
 
float heightAmount () override
 
float minHeightSamples () override
 
float maxHeightSamples () override
 
float clearcoatAmount () override
 
float clearcoatRoughnessAmount () override
 
float transmissionFactor () override
 
float thicknessFactor () override
 
float attenuationDistance () override
 
QVector3D attenuationColor () override
 
bool isUnshaded () override
 
bool hasCustomShaderSnippet (QSSGShaderCache::ShaderType type) override
 
QByteArray customShaderSnippet (QSSGShaderCache::ShaderType type, QSSGShaderLibraryManager &shaderLibraryManager) override
 
bool hasCustomShaderFunction (QSSGShaderCache::ShaderType shaderType, const QByteArray &funcName, QSSGShaderLibraryManager &shaderLibraryManager) override
 
void setCustomPropertyUniforms (char *ubufData, QSSGRhiShaderPipeline &shaderPipeline, const QSSGRenderContextInterface &context) override
 
bool usesSharedVariables () override
 
- Public Member Functions inherited from QSSGShaderMaterialAdapter
virtual ~QSSGShaderMaterialAdapter ()
 
virtual bool isPrincipled ()=0
 
virtual bool isSpecularGlossy ()=0
 
virtual bool isMetalnessEnabled ()=0
 
virtual bool isSpecularEnabled ()=0
 
virtual bool isVertexColorsEnabled ()=0
 
virtual bool isClearcoatEnabled ()=0
 
virtual bool isTransmissionEnabled ()=0
 
virtual bool hasLighting ()=0
 
virtual bool usesCustomSkinning ()=0
 
virtual bool usesCustomMorphing ()=0
 
virtual QSSGRenderDefaultMaterial::MaterialSpecularModel specularModel ()=0
 
virtual QSSGRenderDefaultMaterial::MaterialAlphaMode alphaMode ()=0
 
virtual QSSGRenderImageiblProbe ()=0
 
virtual QVector3D emissiveColor ()=0
 
virtual QVector4D color ()=0
 
virtual QVector3D specularTint ()=0
 
virtual float ior ()=0
 
virtual float fresnelPower ()=0
 
virtual float metalnessAmount ()=0
 
virtual float specularAmount ()=0
 
virtual float specularRoughness ()=0
 
virtual float bumpAmount ()=0
 
virtual float translucentFallOff ()=0
 
virtual float diffuseLightWrap ()=0
 
virtual float occlusionAmount ()=0
 
virtual float alphaCutOff ()=0
 
virtual float pointSize ()=0
 
virtual float lineWidth ()=0
 
virtual float heightAmount ()=0
 
virtual float minHeightSamples ()=0
 
virtual float maxHeightSamples ()=0
 
virtual float clearcoatAmount ()=0
 
virtual float clearcoatRoughnessAmount ()=0
 
virtual float transmissionFactor ()=0
 
virtual float thicknessFactor ()=0
 
virtual float attenuationDistance ()=0
 
virtual QVector3D attenuationColor ()=0
 
virtual bool isUnshaded ()
 
virtual bool hasCustomShaderSnippet (QSSGShaderCache::ShaderType type)
 
virtual QByteArray customShaderSnippet (QSSGShaderCache::ShaderType type, QSSGShaderLibraryManager &shaderLibraryManager)
 
virtual bool hasCustomShaderFunction (QSSGShaderCache::ShaderType shaderType, const QByteArray &funcName, QSSGShaderLibraryManager &shaderLibraryManager)
 
virtual void setCustomPropertyUniforms (char *ubufData, QSSGRhiShaderPipeline &shaderPipeline, const QSSGRenderContextInterface &context)
 
virtual bool usesSharedVariables ()
 

Static Public Member Functions

static ShaderCodeAndMetaData prepareCustomShader (QByteArray &dst, const QByteArray &shaderCode, QSSGShaderCache::ShaderType type, const StringPairList &baseUniforms, const StringPairList &baseInputs=StringPairList(), const StringPairList &baseOutputs=StringPairList())
 
- Static Public Member Functions inherited from QSSGShaderMaterialAdapter
static QSSGShaderMaterialAdaptercreate (const QSSGRenderGraphObject &materialNode)
 

Detailed Description

Definition at line 132 of file qssgshadermaterialadapter_p.h.

Member Typedef Documentation

◆ ShaderCodeAndMetaData

◆ StringPair

◆ StringPairList

Constructor & Destructor Documentation

◆ QSSGShaderCustomMaterialAdapter()

QSSGShaderCustomMaterialAdapter::QSSGShaderCustomMaterialAdapter ( const QSSGRenderCustomMaterial material)

Definition at line 258 of file qssgshadermaterialadapter.cpp.

Member Function Documentation

◆ alphaCutOff()

float QSSGShaderCustomMaterialAdapter::alphaCutOff ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 401 of file qssgshadermaterialadapter.cpp.

◆ alphaMode()

QSSGRenderDefaultMaterial::MaterialAlphaMode QSSGShaderCustomMaterialAdapter::alphaMode ( )
overridevirtual

◆ attenuationColor()

QVector3D QSSGShaderCustomMaterialAdapter::attenuationColor ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 456 of file qssgshadermaterialadapter.cpp.

◆ attenuationDistance()

float QSSGShaderCustomMaterialAdapter::attenuationDistance ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 451 of file qssgshadermaterialadapter.cpp.

◆ bumpAmount()

float QSSGShaderCustomMaterialAdapter::bumpAmount ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 381 of file qssgshadermaterialadapter.cpp.

◆ clearcoatAmount()

float QSSGShaderCustomMaterialAdapter::clearcoatAmount ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 431 of file qssgshadermaterialadapter.cpp.

◆ clearcoatRoughnessAmount()

float QSSGShaderCustomMaterialAdapter::clearcoatRoughnessAmount ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 436 of file qssgshadermaterialadapter.cpp.

◆ color()

QVector4D QSSGShaderCustomMaterialAdapter::color ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 346 of file qssgshadermaterialadapter.cpp.

◆ customShaderSnippet()

QByteArray QSSGShaderCustomMaterialAdapter::customShaderSnippet ( QSSGShaderCache::ShaderType  type,
QSSGShaderLibraryManager shaderLibraryManager 
)
overridevirtual

Reimplemented from QSSGShaderMaterialAdapter.

Definition at line 474 of file qssgshadermaterialadapter.cpp.

References QSSGShaderLibraryManager::getShaderSource(), hasCustomShaderSnippet(), and QSSGRenderCustomMaterial::m_shaderPathKey.

+ Here is the call graph for this function:

◆ diffuseLightWrap()

float QSSGShaderCustomMaterialAdapter::diffuseLightWrap ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 391 of file qssgshadermaterialadapter.cpp.

◆ emissiveColor()

QVector3D QSSGShaderCustomMaterialAdapter::emissiveColor ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 341 of file qssgshadermaterialadapter.cpp.

◆ fresnelPower()

float QSSGShaderCustomMaterialAdapter::fresnelPower ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 361 of file qssgshadermaterialadapter.cpp.

◆ hasCustomShaderFunction()

bool QSSGShaderCustomMaterialAdapter::hasCustomShaderFunction ( QSSGShaderCache::ShaderType  shaderType,
const QByteArray funcName,
QSSGShaderLibraryManager shaderLibraryManager 
)
overridevirtual

Reimplemented from QSSGShaderMaterialAdapter.

Definition at line 483 of file qssgshadermaterialadapter.cpp.

References QSet< T >::contains(), QSSGCustomShaderMetaData::customFunctions, QSSGShaderLibraryManager::getShaderMetaData(), hasCustomShaderSnippet(), and QSSGRenderCustomMaterial::m_shaderPathKey.

+ Here is the call graph for this function:

◆ hasCustomShaderSnippet()

bool QSSGShaderCustomMaterialAdapter::hasCustomShaderSnippet ( QSSGShaderCache::ShaderType  type)
overridevirtual

Reimplemented from QSSGShaderMaterialAdapter.

Definition at line 466 of file qssgshadermaterialadapter.cpp.

References QSSGRenderCustomMaterial::Fragment, QSSGRenderCustomMaterial::m_customShaderPresence, QSSGRenderCustomMaterial::Vertex, and QSSGShaderCache::Vertex.

Referenced by customShaderSnippet(), and hasCustomShaderFunction().

+ Here is the caller graph for this function:

◆ hasLighting()

bool QSSGShaderCustomMaterialAdapter::hasLighting ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 304 of file qssgshadermaterialadapter.cpp.

◆ heightAmount()

float QSSGShaderCustomMaterialAdapter::heightAmount ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 416 of file qssgshadermaterialadapter.cpp.

◆ iblProbe()

QSSGRenderImage * QSSGShaderCustomMaterialAdapter::iblProbe ( )
overridevirtual

◆ ior()

float QSSGShaderCustomMaterialAdapter::ior ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 356 of file qssgshadermaterialadapter.cpp.

◆ isClearcoatEnabled()

bool QSSGShaderCustomMaterialAdapter::isClearcoatEnabled ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 292 of file qssgshadermaterialadapter.cpp.

◆ isMetalnessEnabled()

bool QSSGShaderCustomMaterialAdapter::isMetalnessEnabled ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 277 of file qssgshadermaterialadapter.cpp.

◆ isPrincipled()

bool QSSGShaderCustomMaterialAdapter::isPrincipled ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 267 of file qssgshadermaterialadapter.cpp.

◆ isSpecularEnabled()

bool QSSGShaderCustomMaterialAdapter::isSpecularEnabled ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 282 of file qssgshadermaterialadapter.cpp.

◆ isSpecularGlossy()

bool QSSGShaderCustomMaterialAdapter::isSpecularGlossy ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 272 of file qssgshadermaterialadapter.cpp.

◆ isTransmissionEnabled()

bool QSSGShaderCustomMaterialAdapter::isTransmissionEnabled ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 298 of file qssgshadermaterialadapter.cpp.

◆ isUnshaded()

bool QSSGShaderCustomMaterialAdapter::isUnshaded ( )
overridevirtual

◆ isVertexColorsEnabled()

bool QSSGShaderCustomMaterialAdapter::isVertexColorsEnabled ( )
overridevirtual

◆ lineWidth()

float QSSGShaderCustomMaterialAdapter::lineWidth ( )
overridevirtual

◆ maxHeightSamples()

float QSSGShaderCustomMaterialAdapter::maxHeightSamples ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 426 of file qssgshadermaterialadapter.cpp.

◆ metalnessAmount()

float QSSGShaderCustomMaterialAdapter::metalnessAmount ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 366 of file qssgshadermaterialadapter.cpp.

◆ minHeightSamples()

float QSSGShaderCustomMaterialAdapter::minHeightSamples ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 421 of file qssgshadermaterialadapter.cpp.

◆ occlusionAmount()

float QSSGShaderCustomMaterialAdapter::occlusionAmount ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 396 of file qssgshadermaterialadapter.cpp.

◆ pointSize()

float QSSGShaderCustomMaterialAdapter::pointSize ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 406 of file qssgshadermaterialadapter.cpp.

◆ prepareCustomShader()

QSSGShaderCustomMaterialAdapter::ShaderCodeAndMetaData QSSGShaderCustomMaterialAdapter::prepareCustomShader ( QByteArray dst,
const QByteArray shaderCode,
QSSGShaderCache::ShaderType  type,
const StringPairList baseUniforms,
const StringPairList baseInputs = StringPairList(),
const StringPairList baseOutputs = StringPairList() 
)
static

◆ setCustomPropertyUniforms()

void QSSGShaderCustomMaterialAdapter::setCustomPropertyUniforms ( char *  ubufData,
QSSGRhiShaderPipeline shaderPipeline,
const QSSGRenderContextInterface context 
)
overridevirtual

Reimplemented from QSSGShaderMaterialAdapter.

Definition at line 493 of file qssgshadermaterialadapter.cpp.

References context.

◆ specularAmount()

float QSSGShaderCustomMaterialAdapter::specularAmount ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 371 of file qssgshadermaterialadapter.cpp.

◆ specularModel()

QSSGRenderDefaultMaterial::MaterialSpecularModel QSSGShaderCustomMaterialAdapter::specularModel ( )
overridevirtual

◆ specularRoughness()

float QSSGShaderCustomMaterialAdapter::specularRoughness ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 376 of file qssgshadermaterialadapter.cpp.

◆ specularTint()

QVector3D QSSGShaderCustomMaterialAdapter::specularTint ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 351 of file qssgshadermaterialadapter.cpp.

◆ thicknessFactor()

float QSSGShaderCustomMaterialAdapter::thicknessFactor ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 446 of file qssgshadermaterialadapter.cpp.

◆ translucentFallOff()

float QSSGShaderCustomMaterialAdapter::translucentFallOff ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 386 of file qssgshadermaterialadapter.cpp.

◆ transmissionFactor()

float QSSGShaderCustomMaterialAdapter::transmissionFactor ( )
overridevirtual

Implements QSSGShaderMaterialAdapter.

Definition at line 441 of file qssgshadermaterialadapter.cpp.

◆ usesCustomMorphing()

bool QSSGShaderCustomMaterialAdapter::usesCustomMorphing ( )
overridevirtual

◆ usesCustomSkinning()

bool QSSGShaderCustomMaterialAdapter::usesCustomSkinning ( )
overridevirtual

◆ usesSharedVariables()

bool QSSGShaderCustomMaterialAdapter::usesSharedVariables ( )
overridevirtual

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