1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-08-06 17:41:04 +00:00

Rename IShaderConstantSetter

This commit is contained in:
sfan5 2025-04-17 22:15:14 +02:00
parent 4c4e296274
commit b2c2a6ff47
9 changed files with 55 additions and 55 deletions

View file

@ -126,7 +126,7 @@ bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args)
// This is only global so it can be used by RenderingEngine::draw_load_screen(). // This is only global so it can be used by RenderingEngine::draw_load_screen().
assert(!g_menucloudsmgr && !g_menuclouds); assert(!g_menucloudsmgr && !g_menuclouds);
std::unique_ptr<IWritableShaderSource> ssrc(createShaderSource()); std::unique_ptr<IWritableShaderSource> ssrc(createShaderSource());
ssrc->addShaderConstantSetterFactory(new FogShaderConstantSetterFactory()); ssrc->addShaderUniformSetterFactory(new FogShaderUniformSetterFactory());
g_menucloudsmgr = m_rendering_engine->get_scene_manager()->createNewSceneManager(); g_menucloudsmgr = m_rendering_engine->get_scene_manager()->createNewSceneManager();
g_menuclouds = new Clouds(g_menucloudsmgr, ssrc.get(), -1, rand()); g_menuclouds = new Clouds(g_menucloudsmgr, ssrc.get(), -1, rand());
g_menuclouds->setHeight(100.0f); g_menuclouds->setHeight(100.0f);

View file

@ -188,7 +188,7 @@ public:
typedef s32 SamplerLayer_t; typedef s32 SamplerLayer_t;
class GameGlobalShaderConstantSetter : public IShaderConstantSetter class GameGlobalShaderUniformSetter : public IShaderUniformSetter
{ {
Sky *m_sky; Sky *m_sky;
Client *m_client; Client *m_client;
@ -247,12 +247,12 @@ public:
static void settingsCallback(const std::string &name, void *userdata) static void settingsCallback(const std::string &name, void *userdata)
{ {
reinterpret_cast<GameGlobalShaderConstantSetter*>(userdata)->onSettingsChange(name); reinterpret_cast<GameGlobalShaderUniformSetter*>(userdata)->onSettingsChange(name);
} }
void setSky(Sky *sky) { m_sky = sky; } void setSky(Sky *sky) { m_sky = sky; }
GameGlobalShaderConstantSetter(Sky *sky, Client *client) : GameGlobalShaderUniformSetter(Sky *sky, Client *client) :
m_sky(sky), m_sky(sky),
m_client(client) m_client(client)
{ {
@ -264,12 +264,12 @@ public:
m_volumetric_light_enabled = g_settings->getBool("enable_volumetric_lighting") && m_bloom_enabled; m_volumetric_light_enabled = g_settings->getBool("enable_volumetric_lighting") && m_bloom_enabled;
} }
~GameGlobalShaderConstantSetter() ~GameGlobalShaderUniformSetter()
{ {
g_settings->deregisterAllChangedCallbacks(this); g_settings->deregisterAllChangedCallbacks(this);
} }
void onSetConstants(video::IMaterialRendererServices *services) override void onSetUniforms(video::IMaterialRendererServices *services) override
{ {
u32 daynight_ratio = (float)m_client->getEnv().getDayNightRatio(); u32 daynight_ratio = (float)m_client->getEnv().getDayNightRatio();
video::SColorf sunlight; video::SColorf sunlight;
@ -395,28 +395,28 @@ public:
}; };
class GameGlobalShaderConstantSetterFactory : public IShaderConstantSetterFactory class GameGlobalShaderUniformSetterFactory : public IShaderUniformSetterFactory
{ {
Sky *m_sky = nullptr; Sky *m_sky = nullptr;
Client *m_client; Client *m_client;
std::vector<GameGlobalShaderConstantSetter *> created_nosky; std::vector<GameGlobalShaderUniformSetter *> created_nosky;
public: public:
GameGlobalShaderConstantSetterFactory(Client *client) : GameGlobalShaderUniformSetterFactory(Client *client) :
m_client(client) m_client(client)
{} {}
void setSky(Sky *sky) void setSky(Sky *sky)
{ {
m_sky = sky; m_sky = sky;
for (GameGlobalShaderConstantSetter *ggscs : created_nosky) { for (GameGlobalShaderUniformSetter *ggscs : created_nosky) {
ggscs->setSky(m_sky); ggscs->setSky(m_sky);
} }
created_nosky.clear(); created_nosky.clear();
} }
virtual IShaderConstantSetter* create() virtual IShaderUniformSetter* create()
{ {
auto *scs = new GameGlobalShaderConstantSetter(m_sky, m_client); auto *scs = new GameGlobalShaderUniformSetter(m_sky, m_client);
if (!m_sky) if (!m_sky)
created_nosky.push_back(scs); created_nosky.push_back(scs);
return scs; return scs;
@ -1289,11 +1289,11 @@ bool Game::createClient(const GameStartData &start_data)
return false; return false;
} }
auto *scsf = new GameGlobalShaderConstantSetterFactory(client); auto *scsf = new GameGlobalShaderUniformSetterFactory(client);
shader_src->addShaderConstantSetterFactory(scsf); shader_src->addShaderUniformSetterFactory(scsf);
shader_src->addShaderConstantSetterFactory( shader_src->addShaderUniformSetterFactory(
new FogShaderConstantSetterFactory()); new FogShaderUniformSetterFactory());
ShadowRenderer::preInit(shader_src); ShadowRenderer::preInit(shader_src);

View file

@ -67,14 +67,14 @@ void FpsControl::limit(IrrlichtDevice *device, f32 *dtime)
last_time = time; last_time = time;
} }
class FogShaderConstantSetter : public IShaderConstantSetter class FogShaderUniformSetter : public IShaderUniformSetter
{ {
CachedPixelShaderSetting<float, 4> m_fog_color{"fogColor"}; CachedPixelShaderSetting<float, 4> m_fog_color{"fogColor"};
CachedPixelShaderSetting<float> m_fog_distance{"fogDistance"}; CachedPixelShaderSetting<float> m_fog_distance{"fogDistance"};
CachedPixelShaderSetting<float> m_fog_shading_parameter{"fogShadingParameter"}; CachedPixelShaderSetting<float> m_fog_shading_parameter{"fogShadingParameter"};
public: public:
void onSetConstants(video::IMaterialRendererServices *services) override void onSetUniforms(video::IMaterialRendererServices *services) override
{ {
auto *driver = services->getVideoDriver(); auto *driver = services->getVideoDriver();
assert(driver); assert(driver);
@ -101,9 +101,9 @@ public:
} }
}; };
IShaderConstantSetter *FogShaderConstantSetterFactory::create() IShaderUniformSetter *FogShaderUniformSetterFactory::create()
{ {
return new FogShaderConstantSetter(); return new FogShaderUniformSetter();
} }
/* Other helpers */ /* Other helpers */

View file

@ -54,11 +54,11 @@ struct FpsControl {
}; };
// Populates fogColor, fogDistance, fogShadingParameter with values from Irrlicht // Populates fogColor, fogDistance, fogShadingParameter with values from Irrlicht
class FogShaderConstantSetterFactory : public IShaderConstantSetterFactory class FogShaderUniformSetterFactory : public IShaderUniformSetterFactory
{ {
public: public:
FogShaderConstantSetterFactory() {}; FogShaderUniformSetterFactory() {};
virtual IShaderConstantSetter *create(); virtual IShaderUniformSetter *create();
}; };
/* Rendering engine class */ /* Rendering engine class */

View file

@ -159,7 +159,7 @@ private:
class ShaderCallback : public video::IShaderConstantSetCallBack class ShaderCallback : public video::IShaderConstantSetCallBack
{ {
std::vector<std::unique_ptr<IShaderConstantSetter>> m_setters; std::vector<std::unique_ptr<IShaderUniformSetter>> m_setters;
public: public:
template <typename Factories> template <typename Factories>
@ -175,7 +175,7 @@ public:
virtual void OnSetConstants(video::IMaterialRendererServices *services, s32 userData) override virtual void OnSetConstants(video::IMaterialRendererServices *services, s32 userData) override
{ {
for (auto &&setter : m_setters) for (auto &&setter : m_setters)
setter->onSetConstants(services); setter->onSetUniforms(services);
} }
virtual void OnSetMaterial(const video::SMaterial& material) override virtual void OnSetMaterial(const video::SMaterial& material) override
@ -187,10 +187,10 @@ public:
/* /*
MainShaderConstantSetter: Set basic constants required for almost everything MainShaderUniformSetter: Set basic uniforms required for almost everything
*/ */
class MainShaderConstantSetter : public IShaderConstantSetter class MainShaderUniformSetter : public IShaderUniformSetter
{ {
CachedVertexShaderSetting<f32, 16> m_world_view_proj{"mWorldViewProj"}; CachedVertexShaderSetting<f32, 16> m_world_view_proj{"mWorldViewProj"};
CachedVertexShaderSetting<f32, 16> m_world{"mWorld"}; CachedVertexShaderSetting<f32, 16> m_world{"mWorld"};
@ -205,14 +205,14 @@ class MainShaderConstantSetter : public IShaderConstantSetter
CachedPixelShaderSetting<float, 4> m_material_color_setting{"materialColor"}; CachedPixelShaderSetting<float, 4> m_material_color_setting{"materialColor"};
public: public:
~MainShaderConstantSetter() = default; ~MainShaderUniformSetter() = default;
virtual void onSetMaterial(const video::SMaterial& material) override virtual void onSetMaterial(const video::SMaterial& material) override
{ {
m_material_color = material.ColorParam; m_material_color = material.ColorParam;
} }
virtual void onSetConstants(video::IMaterialRendererServices *services) override virtual void onSetUniforms(video::IMaterialRendererServices *services) override
{ {
video::IVideoDriver *driver = services->getVideoDriver(); video::IVideoDriver *driver = services->getVideoDriver();
assert(driver); assert(driver);
@ -243,11 +243,11 @@ public:
}; };
class MainShaderConstantSetterFactory : public IShaderConstantSetterFactory class MainShaderUniformSetterFactory : public IShaderUniformSetterFactory
{ {
public: public:
virtual IShaderConstantSetter* create() virtual IShaderUniformSetter* create()
{ return new MainShaderConstantSetter(); } { return new MainShaderUniformSetter(); }
}; };
@ -306,9 +306,9 @@ public:
// Shall be called from the main thread. // Shall be called from the main thread.
void rebuildShaders() override; void rebuildShaders() override;
void addShaderConstantSetterFactory(IShaderConstantSetterFactory *setter) override void addShaderUniformSetterFactory(IShaderUniformSetterFactory *setter) override
{ {
m_setter_factories.emplace_back(setter); m_uniform_factories.emplace_back(setter);
} }
private: private:
@ -331,8 +331,8 @@ private:
RequestQueue<std::string, u32, u8, u8> m_get_shader_queue; RequestQueue<std::string, u32, u8, u8> m_get_shader_queue;
#endif #endif
// Global constant setter factories // Global uniform setter factories
std::vector<std::unique_ptr<IShaderConstantSetterFactory>> m_setter_factories; std::vector<std::unique_ptr<IShaderUniformSetterFactory>> m_uniform_factories;
// Generate shader given the shader name. // Generate shader given the shader name.
ShaderInfo generateShader(const std::string &name, ShaderInfo generateShader(const std::string &name,
@ -352,7 +352,7 @@ ShaderSource::ShaderSource()
m_shaderinfo_cache.emplace_back(); m_shaderinfo_cache.emplace_back();
// Add main global constant setter // Add main global constant setter
addShaderConstantSetterFactory(new MainShaderConstantSetterFactory()); addShaderUniformSetterFactory(new MainShaderUniformSetterFactory());
} }
ShaderSource::~ShaderSource() ShaderSource::~ShaderSource()
@ -773,7 +773,7 @@ ShaderInfo ShaderSource::generateShader(const std::string &name,
geometry_shader_ptr = geometry_shader.c_str(); geometry_shader_ptr = geometry_shader.c_str();
} }
auto cb = make_irr<ShaderCallback>(m_setter_factories); auto cb = make_irr<ShaderCallback>(m_uniform_factories);
infostream << "Compiling high level shaders for " << log_name << std::endl; infostream << "Compiling high level shaders for " << log_name << std::endl;
s32 shadermat = gpu->addHighLevelShaderMaterial( s32 shadermat = gpu->addHighLevelShaderMaterial(
vertex_shader.c_str(), fragment_shader.c_str(), geometry_shader_ptr, vertex_shader.c_str(), fragment_shader.c_str(), geometry_shader_ptr,

View file

@ -40,7 +40,7 @@ struct ShaderInfo {
}; };
/* /*
Setter of constants for shaders Abstraction for updating uniforms used by shaders
*/ */
namespace irr::video { namespace irr::video {
@ -48,19 +48,19 @@ namespace irr::video {
} }
class IShaderConstantSetter { class IShaderUniformSetter {
public: public:
virtual ~IShaderConstantSetter() = default; virtual ~IShaderUniformSetter() = default;
virtual void onSetConstants(video::IMaterialRendererServices *services) = 0; virtual void onSetUniforms(video::IMaterialRendererServices *services) = 0;
virtual void onSetMaterial(const video::SMaterial& material) virtual void onSetMaterial(const video::SMaterial& material)
{ } { }
}; };
class IShaderConstantSetterFactory { class IShaderUniformSetterFactory {
public: public:
virtual ~IShaderConstantSetterFactory() = default; virtual ~IShaderUniformSetterFactory() = default;
virtual IShaderConstantSetter* create() = 0; virtual IShaderUniformSetter* create() = 0;
}; };
@ -236,7 +236,7 @@ public:
virtual void rebuildShaders()=0; virtual void rebuildShaders()=0;
/// @note Takes ownership of @p setter. /// @note Takes ownership of @p setter.
virtual void addShaderConstantSetterFactory(IShaderConstantSetterFactory *setter) = 0; virtual void addShaderUniformSetterFactory(IShaderUniformSetterFactory *setter) = 0;
}; };
IWritableShaderSource *createShaderSource(); IWritableShaderSource *createShaderSource();

View file

@ -107,7 +107,7 @@ void ShadowRenderer::disable()
void ShadowRenderer::preInit(IWritableShaderSource *shsrc) void ShadowRenderer::preInit(IWritableShaderSource *shsrc)
{ {
if (g_settings->getBool("enable_dynamic_shadows")) { if (g_settings->getBool("enable_dynamic_shadows")) {
shsrc->addShaderConstantSetterFactory(new ShadowConstantSetterFactory()); shsrc->addShaderUniformSetterFactory(new ShadowUniformSetterFactory());
} }
} }

View file

@ -5,7 +5,7 @@
#include "client/shadows/shadowsshadercallbacks.h" #include "client/shadows/shadowsshadercallbacks.h"
#include "client/renderingengine.h" #include "client/renderingengine.h"
void ShadowConstantSetter::onSetConstants(video::IMaterialRendererServices *services) void ShadowUniformSetter::onSetUniforms(video::IMaterialRendererServices *services)
{ {
auto *shadow = RenderingEngine::get_shadow_renderer(); auto *shadow = RenderingEngine::get_shadow_renderer();
if (!shadow) if (!shadow)

View file

@ -9,7 +9,7 @@
// Used by main game rendering // Used by main game rendering
class ShadowConstantSetter : public IShaderConstantSetter class ShadowUniformSetter : public IShaderUniformSetter
{ {
CachedPixelShaderSetting<f32, 16> m_shadow_view_proj{"m_ShadowViewProj"}; CachedPixelShaderSetting<f32, 16> m_shadow_view_proj{"m_ShadowViewProj"};
CachedPixelShaderSetting<f32, 3> m_light_direction{"v_LightDirection"}; CachedPixelShaderSetting<f32, 3> m_light_direction{"v_LightDirection"};
@ -33,17 +33,17 @@ class ShadowConstantSetter : public IShaderConstantSetter
CachedPixelShaderSetting<f32> m_perspective_zbias_pixel{"zPerspectiveBias"}; CachedPixelShaderSetting<f32> m_perspective_zbias_pixel{"zPerspectiveBias"};
public: public:
ShadowConstantSetter() = default; ShadowUniformSetter() = default;
~ShadowConstantSetter() = default; ~ShadowUniformSetter() = default;
virtual void onSetConstants(video::IMaterialRendererServices *services) override; virtual void onSetUniforms(video::IMaterialRendererServices *services) override;
}; };
class ShadowConstantSetterFactory : public IShaderConstantSetterFactory class ShadowUniformSetterFactory : public IShaderUniformSetterFactory
{ {
public: public:
virtual IShaderConstantSetter *create() { virtual IShaderUniformSetter *create() {
return new ShadowConstantSetter(); return new ShadowUniformSetter();
} }
}; };