1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +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().
assert(!g_menucloudsmgr && !g_menuclouds);
std::unique_ptr<IWritableShaderSource> ssrc(createShaderSource());
ssrc->addShaderConstantSetterFactory(new FogShaderConstantSetterFactory());
ssrc->addShaderUniformSetterFactory(new FogShaderUniformSetterFactory());
g_menucloudsmgr = m_rendering_engine->get_scene_manager()->createNewSceneManager();
g_menuclouds = new Clouds(g_menucloudsmgr, ssrc.get(), -1, rand());
g_menuclouds->setHeight(100.0f);

View file

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

View file

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

View file

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

View file

@ -159,7 +159,7 @@ private:
class ShaderCallback : public video::IShaderConstantSetCallBack
{
std::vector<std::unique_ptr<IShaderConstantSetter>> m_setters;
std::vector<std::unique_ptr<IShaderUniformSetter>> m_setters;
public:
template <typename Factories>
@ -175,7 +175,7 @@ public:
virtual void OnSetConstants(video::IMaterialRendererServices *services, s32 userData) override
{
for (auto &&setter : m_setters)
setter->onSetConstants(services);
setter->onSetUniforms(services);
}
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{"mWorld"};
@ -205,14 +205,14 @@ class MainShaderConstantSetter : public IShaderConstantSetter
CachedPixelShaderSetting<float, 4> m_material_color_setting{"materialColor"};
public:
~MainShaderConstantSetter() = default;
~MainShaderUniformSetter() = default;
virtual void onSetMaterial(const video::SMaterial& material) override
{
m_material_color = material.ColorParam;
}
virtual void onSetConstants(video::IMaterialRendererServices *services) override
virtual void onSetUniforms(video::IMaterialRendererServices *services) override
{
video::IVideoDriver *driver = services->getVideoDriver();
assert(driver);
@ -243,11 +243,11 @@ public:
};
class MainShaderConstantSetterFactory : public IShaderConstantSetterFactory
class MainShaderUniformSetterFactory : public IShaderUniformSetterFactory
{
public:
virtual IShaderConstantSetter* create()
{ return new MainShaderConstantSetter(); }
virtual IShaderUniformSetter* create()
{ return new MainShaderUniformSetter(); }
};
@ -306,9 +306,9 @@ public:
// Shall be called from the main thread.
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:
@ -331,8 +331,8 @@ private:
RequestQueue<std::string, u32, u8, u8> m_get_shader_queue;
#endif
// Global constant setter factories
std::vector<std::unique_ptr<IShaderConstantSetterFactory>> m_setter_factories;
// Global uniform setter factories
std::vector<std::unique_ptr<IShaderUniformSetterFactory>> m_uniform_factories;
// Generate shader given the shader name.
ShaderInfo generateShader(const std::string &name,
@ -352,7 +352,7 @@ ShaderSource::ShaderSource()
m_shaderinfo_cache.emplace_back();
// Add main global constant setter
addShaderConstantSetterFactory(new MainShaderConstantSetterFactory());
addShaderUniformSetterFactory(new MainShaderUniformSetterFactory());
}
ShaderSource::~ShaderSource()
@ -773,7 +773,7 @@ ShaderInfo ShaderSource::generateShader(const std::string &name,
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;
s32 shadermat = gpu->addHighLevelShaderMaterial(
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 {
@ -48,19 +48,19 @@ namespace irr::video {
}
class IShaderConstantSetter {
class IShaderUniformSetter {
public:
virtual ~IShaderConstantSetter() = default;
virtual void onSetConstants(video::IMaterialRendererServices *services) = 0;
virtual ~IShaderUniformSetter() = default;
virtual void onSetUniforms(video::IMaterialRendererServices *services) = 0;
virtual void onSetMaterial(const video::SMaterial& material)
{ }
};
class IShaderConstantSetterFactory {
class IShaderUniformSetterFactory {
public:
virtual ~IShaderConstantSetterFactory() = default;
virtual IShaderConstantSetter* create() = 0;
virtual ~IShaderUniformSetterFactory() = default;
virtual IShaderUniformSetter* create() = 0;
};
@ -236,7 +236,7 @@ public:
virtual void rebuildShaders()=0;
/// @note Takes ownership of @p setter.
virtual void addShaderConstantSetterFactory(IShaderConstantSetterFactory *setter) = 0;
virtual void addShaderUniformSetterFactory(IShaderUniformSetterFactory *setter) = 0;
};
IWritableShaderSource *createShaderSource();

View file

@ -107,7 +107,7 @@ void ShadowRenderer::disable()
void ShadowRenderer::preInit(IWritableShaderSource *shsrc)
{
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/renderingengine.h"
void ShadowConstantSetter::onSetConstants(video::IMaterialRendererServices *services)
void ShadowUniformSetter::onSetUniforms(video::IMaterialRendererServices *services)
{
auto *shadow = RenderingEngine::get_shadow_renderer();
if (!shadow)

View file

@ -9,7 +9,7 @@
// Used by main game rendering
class ShadowConstantSetter : public IShaderConstantSetter
class ShadowUniformSetter : public IShaderUniformSetter
{
CachedPixelShaderSetting<f32, 16> m_shadow_view_proj{"m_ShadowViewProj"};
CachedPixelShaderSetting<f32, 3> m_light_direction{"v_LightDirection"};
@ -33,17 +33,17 @@ class ShadowConstantSetter : public IShaderConstantSetter
CachedPixelShaderSetting<f32> m_perspective_zbias_pixel{"zPerspectiveBias"};
public:
ShadowConstantSetter() = default;
~ShadowConstantSetter() = default;
ShadowUniformSetter() = 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:
virtual IShaderConstantSetter *create() {
return new ShadowConstantSetter();
virtual IShaderUniformSetter *create() {
return new ShadowUniformSetter();
}
};