diff --git a/src/Layers/xrRenderPC_R4/r4_shaders.cpp b/src/Layers/xrRenderPC_R4/r4_shaders.cpp index 0992f275bf2..ef72d9a4cac 100644 --- a/src/Layers/xrRenderPC_R4/r4_shaders.cpp +++ b/src/Layers/xrRenderPC_R4/r4_shaders.cpp @@ -181,6 +181,15 @@ class shader_options_holder D3D_SHADER_MACRO m_options[128]; public: + void add(const xr_vector& macros) + { + for (auto macro : macros) + { + m_options[pos] = std::move(macro); + ++pos; + } + } + void add(cpcstr name, cpcstr value) { m_options[pos] = { name, value }; @@ -222,6 +231,9 @@ HRESULT CRender::shader_compile(pcstr name, IReader* fs, pcstr pFunctionName, sh_name.append(option); }; + // External defines + options.add(m_ShaderOptions); + // Shadow map size { xr_itoa(o.smapsize, c_smap, 10);