1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-08-16 18:01:40 +00:00

Factor shadow constants out of MainShaderConstantSetter

This commit is contained in:
sfan5 2024-02-20 10:38:29 +01:00
parent 5da18d34ba
commit e9ab5bc223
6 changed files with 118 additions and 81 deletions

View file

@ -118,14 +118,20 @@ void ShadowRenderer::disable()
});
}
void ShadowRenderer::preInit(IWritableShaderSource *shsrc)
{
if (g_settings->getBool("enable_shaders") &&
g_settings->getBool("enable_dynamic_shadows")) {
shsrc->addShaderConstantSetterFactory(new ShadowConstantSetterFactory());
}
}
void ShadowRenderer::initialize()
{
auto *gpu = m_driver->getGPUProgrammingServices();
// we need glsl
if (m_shadows_supported && gpu && m_driver->queryFeature(video::EVDF_ARB_GLSL)) {
createShaders();
} else {
if (!m_shadows_supported || !gpu || !m_driver->queryFeature(video::EVDF_ARB_GLSL)) {
m_shadows_supported = false;
warningstream << "Shadows: GLSL Shader not supported on this system."
@ -133,6 +139,9 @@ void ShadowRenderer::initialize()
return;
}
createShaders();
m_texture_format = m_shadow_map_texture_32bit
? video::ECOLOR_FORMAT::ECF_R32F
: video::ECOLOR_FORMAT::ECF_R16F;