Skip to content

Commit fca6c8a

Browse files
Generate fallback shader fragment name arrays after maya intialization
1 parent 790f752 commit fca6c8a

File tree

1 file changed

+30
-21
lines changed

1 file changed

+30
-21
lines changed

lib/mayaUsd/render/vp2RenderDelegate/renderDelegate.cpp

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@
3838

3939
#include <maya/MGlobal.h>
4040
#include <maya/MProfiler.h>
41+
#include <maya/MString.h>
42+
#include <maya/MStringArray.h>
4143

4244
#include <tbb/spin_rw_mutex.h>
4345

@@ -103,9 +105,6 @@ bool WantStandardSurfaceFallback()
103105
return useStandardSurface;
104106
}
105107

106-
//! Boolean of whether or not to use shader fragments using the default standardSurface material
107-
const bool _useStandardSurface = WantStandardSurfaceFallback();
108-
109108
//! Enum class for fallback shader types
110109
enum class FallbackShaderType
111110
{
@@ -121,24 +120,6 @@ enum class FallbackShaderType
121120
//! Total number of fallback shader types
122121
constexpr size_t FallbackShaderTypeCount = static_cast<size_t>(FallbackShaderType::kCount);
123122

124-
//! Array of constant-color shader fragment names indexed by FallbackShaderType
125-
const MString _fallbackShaderNames[]
126-
= { _useStandardSurface ? "FallbackShaderStandardSurface" : "FallbackShader",
127-
"BasisCurvesLinearFallbackShader",
128-
"BasisCurvesCubicFallbackShader",
129-
"BasisCurvesCubicFallbackShader",
130-
"BasisCurvesCubicFallbackShader",
131-
"PointsFallbackShader" };
132-
133-
//! Array of varying-color shader fragment names indexed by FallbackShaderType
134-
const MString _cpvFallbackShaderNames[]
135-
= { _useStandardSurface ? "FallbackCPVShaderStandardSurface" : "FallbackCPVShader",
136-
"BasisCurvesLinearCPVShader",
137-
"BasisCurvesCubicCPVShader",
138-
"BasisCurvesCubicCPVShader",
139-
"BasisCurvesCubicCPVShader",
140-
"PointsFallbackCPVShader" };
141-
142123
//! "curveBasis" parameter values for three different cubic curves
143124
const std::unordered_map<FallbackShaderType, int> _curveBasisParameterValueMapping
144125
= { { FallbackShaderType::kBasisCurvesCubicBezier, 0 },
@@ -203,6 +184,24 @@ class MShaderCache final
203184
if (_isInitialized)
204185
return;
205186

187+
_useStandardSurface = WantStandardSurfaceFallback();
188+
189+
_fallbackShaderNames.append(
190+
_useStandardSurface ? "FallbackShaderStandardSurface" : "FallbackShader");
191+
_fallbackShaderNames.append("BasisCurvesLinearFallbackShader");
192+
_fallbackShaderNames.append("BasisCurvesCubicFallbackShader");
193+
_fallbackShaderNames.append("BasisCurvesCubicFallbackShader");
194+
_fallbackShaderNames.append("BasisCurvesCubicFallbackShader");
195+
_fallbackShaderNames.append("PointsFallbackShader");
196+
197+
_cpvFallbackShaderNames.append(
198+
_useStandardSurface ? "FallbackCPVShaderStandardSurface" : "FallbackCPVShader");
199+
_cpvFallbackShaderNames.append("BasisCurvesLinearCPVShader");
200+
_cpvFallbackShaderNames.append("BasisCurvesCubicCPVShader");
201+
_cpvFallbackShaderNames.append("BasisCurvesCubicCPVShader");
202+
_cpvFallbackShaderNames.append("BasisCurvesCubicCPVShader");
203+
_cpvFallbackShaderNames.append("PointsFallbackCPVShader");
204+
206205
MHWRender::MRenderer* renderer = MHWRender::MRenderer::theRenderer();
207206
const MHWRender::MShaderManager* shaderMgr
208207
= renderer ? renderer->getShaderManager() : nullptr;
@@ -545,6 +544,16 @@ class MShaderCache final
545544
private:
546545
bool _isInitialized { false }; //!< Whether the shader cache is initialized
547546

547+
//! Boolean of whether or not to use shader fragments using the default
548+
//! standardSurface material.
549+
bool _useStandardSurface { false };
550+
551+
//! Array of constant-color shader fragment names indexed by FallbackShaderType
552+
MStringArray _fallbackShaderNames;
553+
554+
//! Array of varying-color shader fragment names indexed by FallbackShaderType
555+
MStringArray _cpvFallbackShaderNames;
556+
548557
//! Shader registry used by fallback shaders
549558
MShaderMap _fallbackShaders[FallbackShaderTypeCount];
550559
MShaderMap _3dSolidShaders;

0 commit comments

Comments
 (0)