mirror of
https://github.com/luanti-org/luanti.git
synced 2025-10-13 00:25:19 +02:00
@@ -107,25 +107,13 @@ void ShadowRenderer::disable()
|
||||
|
||||
void ShadowRenderer::preInit(IWritableShaderSource *shsrc)
|
||||
{
|
||||
if (g_settings->getBool("enable_shaders") &&
|
||||
g_settings->getBool("enable_dynamic_shadows")) {
|
||||
if (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)) {
|
||||
m_shadows_supported = false;
|
||||
|
||||
warningstream << "Shadows: GLSL Shader not supported on this system."
|
||||
<< std::endl;
|
||||
return;
|
||||
}
|
||||
|
||||
createShaders();
|
||||
|
||||
|
||||
@@ -533,7 +521,7 @@ void ShadowRenderer::mixShadowsQuad()
|
||||
|
||||
void ShadowRenderer::createShaders()
|
||||
{
|
||||
video::IGPUProgrammingServices *gpu = m_driver->getGPUProgrammingServices();
|
||||
auto *gpu = m_driver->getGPUProgrammingServices();
|
||||
|
||||
if (depth_shader == -1) {
|
||||
std::string depth_shader_vs = getShaderPath("shadow_shaders", "pass1_vertex.glsl");
|
||||
@@ -706,14 +694,12 @@ std::string ShadowRenderer::readShaderFile(const std::string &path)
|
||||
ShadowRenderer *createShadowRenderer(IrrlichtDevice *device, Client *client)
|
||||
{
|
||||
// disable if unsupported
|
||||
if (g_settings->getBool("enable_dynamic_shadows") && (
|
||||
device->getVideoDriver()->getDriverType() != video::EDT_OPENGL ||
|
||||
!g_settings->getBool("enable_shaders"))) {
|
||||
if (g_settings->getBool("enable_dynamic_shadows") &&
|
||||
device->getVideoDriver()->getDriverType() != video::EDT_OPENGL) {
|
||||
g_settings->setBool("enable_dynamic_shadows", false);
|
||||
}
|
||||
|
||||
if (g_settings->getBool("enable_shaders") &&
|
||||
g_settings->getBool("enable_dynamic_shadows")) {
|
||||
if (g_settings->getBool("enable_dynamic_shadows")) {
|
||||
ShadowRenderer *shadow_renderer = new ShadowRenderer(device, client);
|
||||
shadow_renderer->initialize();
|
||||
return shadow_renderer;
|
||||
|
Reference in New Issue
Block a user