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:
parent
5da18d34ba
commit
e9ab5bc223
6 changed files with 118 additions and 81 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue