44 Q_DISABLE_COPY(QSSGCustomMaterialSystem)
45 typedef QPair<QByteArray, QByteArray> TStrStrPair;
46 typedef QHash<QSSGShaderMapKey, QSSGRhiShaderPipelinePtr> TShaderMap;
48 QSSGRenderContextInterface *context =
nullptr;
51 void setShaderResources(
char *ubufData,
52 const QSSGRenderCustomMaterial &inMaterial,
53 const QByteArray &inPropertyName,
54 const QVariant &propertyValue,
55 QSSGRenderShaderValue::Type inPropertyType,
56 QSSGRhiShaderPipeline &shaderPipeline);
59 QSSGCustomMaterialSystem();
60 ~QSSGCustomMaterialSystem();
64 void releaseCachedResources();
70 QSSGRenderCustomMaterial &inMaterial);
73 const QSSGRenderCustomMaterial &material,
74 QSSGSubsetRenderable &renderable,
75 const QSSGShaderDefaultMaterialKeyProperties &defaultMaterialShaderKeyProperties,
76 const QSSGShaderFeatures &featureSet);
79 QSSGRhiContext *rhiCtx,
82 QSSGRhiGraphicsPipelineState *ps,
83 const QSSGRenderCustomMaterial &material,
84 QSSGSubsetRenderable &renderable,
85 const QSSGRenderCameraList &cameras,
86 const QVector2D *depthAdjust,
87 const QMatrix4x4 *alteredModelViewProjection);
91 QSSGSubsetRenderable &renderable,
92 const QSSGShaderFeatures &featureSet,
93 const QSSGRenderCustomMaterial &material,
95 QRhiRenderPassDescriptor *renderPassDescriptor,
98 QSSGRenderCamera *camera =
nullptr,
100 QMatrix4x4 *modelViewProjection =
nullptr,
103 const QSSGRenderCustomMaterial &inMaterial,
104 QSSGRhiShaderPipeline &shaderPipeline);
106 QSSGSubsetRenderable &renderable,
107 bool *needsSetViewport,
108 QSSGRenderTextureCubeFace cubeFace,
109 const QSSGRhiGraphicsPipelineState &state);
void updateUniformsForCustomMaterial(QSSGRhiShaderPipeline &shaderPipeline, QSSGRhiContext *rhiCtx, const QSSGLayerRenderData &inData, char *ubufData, QSSGRhiGraphicsPipelineState *ps, const QSSGRenderCustomMaterial &material, QSSGSubsetRenderable &renderable, const QSSGRenderCameraList &cameras, const QVector2D *depthAdjust, const QMatrix4x4 *alteredModelViewProjection)
void rhiPrepareRenderable(QSSGRhiGraphicsPipelineState *ps, QSSGPassKey passKey, QSSGSubsetRenderable &renderable, const QSSGShaderFeatures &featureSet, const QSSGRenderCustomMaterial &material, const QSSGLayerRenderData &layerData, QRhiRenderPassDescriptor *renderPassDescriptor, int samples, int viewCount, QSSGRenderCamera *camera=nullptr, QSSGRenderTextureCubeFace cubeFace=QSSGRenderTextureCubeFaceNone, QMatrix4x4 *modelViewProjection=nullptr, QSSGReflectionMapEntry *entry=nullptr)
friend class QSSGLayerRenderData