diff --git a/src/client/clientenvironment.cpp b/src/client/clientenvironment.cpp index 66242aa4f..54baf30a1 100644 --- a/src/client/clientenvironment.cpp +++ b/src/client/clientenvironment.cpp @@ -47,10 +47,6 @@ with this program; if not, write to the Free Software Foundation, Inc., class CAOShaderConstantSetter : public IShaderConstantSetter { public: - CAOShaderConstantSetter(): - m_emissive_color_setting("emissiveColor") - {} - ~CAOShaderConstantSetter() override = default; void onSetConstants(video::IMaterialRendererServices *services) override @@ -74,7 +70,8 @@ public: private: video::SColor m_emissive_color; - CachedPixelShaderSetting m_emissive_color_setting; + CachedPixelShaderSetting + m_emissive_color_setting{"emissiveColor"}; }; class CAOShaderConstantSetterFactory : public IShaderConstantSetterFactory diff --git a/src/client/game.cpp b/src/client/game.cpp index e04ec1674..0e9516dcb 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -373,43 +373,55 @@ class GameGlobalShaderConstantSetter : public IShaderConstantSetter bool *m_force_fog_off; f32 *m_fog_range; bool m_fog_enabled; - CachedPixelShaderSetting m_sky_bg_color; - CachedPixelShaderSetting m_fog_distance; - CachedPixelShaderSetting m_fog_shading_parameter; - CachedVertexShaderSetting m_animation_timer_vertex; - CachedPixelShaderSetting m_animation_timer_pixel; - CachedVertexShaderSetting m_animation_timer_delta_vertex; - CachedPixelShaderSetting m_animation_timer_delta_pixel; - CachedPixelShaderSetting m_day_light; - CachedPixelShaderSetting m_star_color; - CachedPixelShaderSetting m_eye_position_pixel; - CachedVertexShaderSetting m_eye_position_vertex; - CachedPixelShaderSetting m_minimap_yaw; - CachedPixelShaderSetting m_camera_offset_pixel; - CachedPixelShaderSetting m_camera_offset_vertex; - CachedPixelShaderSetting m_texture0; - CachedPixelShaderSetting m_texture1; - CachedPixelShaderSetting m_texture2; - CachedPixelShaderSetting m_texture3; - CachedVertexShaderSetting m_texel_size0_vertex; - CachedPixelShaderSetting m_texel_size0_pixel; + CachedPixelShaderSetting m_sky_bg_color{"skyBgColor"}; + CachedPixelShaderSetting m_fog_distance{"fogDistance"}; + CachedPixelShaderSetting + m_fog_shading_parameter{"fogShadingParameter"}; + CachedVertexShaderSetting m_animation_timer_vertex{"animationTimer"}; + CachedPixelShaderSetting m_animation_timer_pixel{"animationTimer"}; + CachedVertexShaderSetting + m_animation_timer_delta_vertex{"animationTimerDelta"}; + CachedPixelShaderSetting + m_animation_timer_delta_pixel{"animationTimerDelta"}; + CachedPixelShaderSetting m_day_light{"dayLight"}; + CachedPixelShaderSetting m_star_color{"starColor"}; + CachedPixelShaderSetting m_eye_position_pixel{"eyePosition"}; + CachedVertexShaderSetting m_eye_position_vertex{"eyePosition"}; + CachedPixelShaderSetting m_minimap_yaw{"yawVec"}; + CachedPixelShaderSetting m_camera_offset_pixel{"cameraOffset"}; + CachedPixelShaderSetting m_camera_offset_vertex{"cameraOffset"}; + CachedPixelShaderSetting m_texture0{"texture0"}; + CachedPixelShaderSetting m_texture1{"texture1"}; + CachedPixelShaderSetting m_texture2{"texture2"}; + CachedPixelShaderSetting m_texture3{"texture3"}; + CachedVertexShaderSetting m_texel_size0_vertex{"texelSize0"}; + CachedPixelShaderSetting m_texel_size0_pixel{"texelSize0"}; std::array m_texel_size0_values; - CachedStructPixelShaderSetting m_exposure_params_pixel; + CachedStructPixelShaderSetting m_exposure_params_pixel{ + "exposureParams", + std::array { + "luminanceMin", "luminanceMax", "exposureCorrection", + "speedDarkBright", "speedBrightDark", "centerWeightPower", + "compensationFactor" + }}; float m_user_exposure_compensation; bool m_bloom_enabled; - CachedPixelShaderSetting m_bloom_intensity_pixel; + CachedPixelShaderSetting m_bloom_intensity_pixel{"bloomIntensity"}; float m_bloom_intensity; - CachedPixelShaderSetting m_bloom_strength_pixel; + CachedPixelShaderSetting m_bloom_strength_pixel{"bloomStrength"}; float m_bloom_strength; - CachedPixelShaderSetting m_bloom_radius_pixel; + CachedPixelShaderSetting m_bloom_radius_pixel{"bloomRadius"}; float m_bloom_radius; - CachedPixelShaderSetting m_saturation_pixel; + CachedPixelShaderSetting m_saturation_pixel{"saturation"}; bool m_volumetric_light_enabled; - CachedPixelShaderSetting m_sun_position_pixel; - CachedPixelShaderSetting m_sun_brightness_pixel; - CachedPixelShaderSetting m_moon_position_pixel; - CachedPixelShaderSetting m_moon_brightness_pixel; - CachedPixelShaderSetting m_volumetric_light_strength_pixel; + CachedPixelShaderSetting + m_sun_position_pixel{"sunPositionScreen"}; + CachedPixelShaderSetting m_sun_brightness_pixel{"sunBrightness"}; + CachedPixelShaderSetting + m_moon_position_pixel{"moonPositionScreen"}; + CachedPixelShaderSetting m_moon_brightness_pixel{"moonBrightness"}; + CachedPixelShaderSetting + m_volumetric_light_strength_pixel{"volumetricLightStrength"}; public: void onSettingsChange(const std::string &name) @@ -438,41 +450,7 @@ public: m_sky(sky), m_client(client), m_force_fog_off(force_fog_off), - m_fog_range(fog_range), - m_sky_bg_color("skyBgColor"), - m_fog_distance("fogDistance"), - m_fog_shading_parameter("fogShadingParameter"), - m_animation_timer_vertex("animationTimer"), - m_animation_timer_pixel("animationTimer"), - m_animation_timer_delta_vertex("animationTimerDelta"), - m_animation_timer_delta_pixel("animationTimerDelta"), - m_day_light("dayLight"), - m_star_color("starColor"), - m_eye_position_pixel("eyePosition"), - m_eye_position_vertex("eyePosition"), - m_minimap_yaw("yawVec"), - m_camera_offset_pixel("cameraOffset"), - m_camera_offset_vertex("cameraOffset"), - m_texture0("texture0"), - m_texture1("texture1"), - m_texture2("texture2"), - m_texture3("texture3"), - m_texel_size0_vertex("texelSize0"), - m_texel_size0_pixel("texelSize0"), - m_exposure_params_pixel("exposureParams", - std::array { - "luminanceMin", "luminanceMax", "exposureCorrection", - "speedDarkBright", "speedBrightDark", "centerWeightPower", "compensationFactor" - }), - m_bloom_intensity_pixel("bloomIntensity"), - m_bloom_strength_pixel("bloomStrength"), - m_bloom_radius_pixel("bloomRadius"), - m_saturation_pixel("saturation"), - m_sun_position_pixel("sunPositionScreen"), - m_sun_brightness_pixel("sunBrightness"), - m_moon_position_pixel("moonPositionScreen"), - m_moon_brightness_pixel("moonBrightness"), - m_volumetric_light_strength_pixel("volumetricLightStrength") + m_fog_range(fog_range) { g_settings->registerChangedCallback("enable_fog", settingsCallback, this); g_settings->registerChangedCallback("exposure_compensation", settingsCallback, this); diff --git a/src/client/shader.cpp b/src/client/shader.cpp index 9d074e886..ea13e9d6b 100644 --- a/src/client/shader.cpp +++ b/src/client/shader.cpp @@ -210,51 +210,36 @@ public: class MainShaderConstantSetter : public IShaderConstantSetter { - CachedVertexShaderSetting m_world_view_proj; - CachedVertexShaderSetting m_world; + CachedVertexShaderSetting m_world_view_proj{"mWorldViewProj"}; + CachedVertexShaderSetting m_world{"mWorld"}; // Shadow-related - CachedPixelShaderSetting m_shadow_view_proj; - CachedPixelShaderSetting m_light_direction; - CachedPixelShaderSetting m_texture_res; - CachedPixelShaderSetting m_shadow_strength; - CachedPixelShaderSetting m_time_of_day; - CachedPixelShaderSetting m_shadowfar; - CachedPixelShaderSetting m_camera_pos; - CachedPixelShaderSetting m_shadow_texture; - CachedVertexShaderSetting m_perspective_bias0_vertex; - CachedPixelShaderSetting m_perspective_bias0_pixel; - CachedVertexShaderSetting m_perspective_bias1_vertex; - CachedPixelShaderSetting m_perspective_bias1_pixel; - CachedVertexShaderSetting m_perspective_zbias_vertex; - CachedPixelShaderSetting m_perspective_zbias_pixel; + CachedPixelShaderSetting m_shadow_view_proj{"m_ShadowViewProj"}; + CachedPixelShaderSetting m_light_direction{"v_LightDirection"}; + CachedPixelShaderSetting m_texture_res{"f_textureresolution"}; + CachedPixelShaderSetting m_shadow_strength{"f_shadow_strength"}; + CachedPixelShaderSetting m_time_of_day{"f_timeofday"}; + CachedPixelShaderSetting m_shadowfar{"f_shadowfar"}; + CachedPixelShaderSetting m_camera_pos{"CameraPos"}; + CachedPixelShaderSetting m_shadow_texture{"ShadowMapSampler"}; + CachedVertexShaderSetting + m_perspective_bias0_vertex{"xyPerspectiveBias0"}; + CachedPixelShaderSetting + m_perspective_bias0_pixel{"xyPerspectiveBias0"}; + CachedVertexShaderSetting + m_perspective_bias1_vertex{"xyPerspectiveBias1"}; + CachedPixelShaderSetting + m_perspective_bias1_pixel{"xyPerspectiveBias1"}; + CachedVertexShaderSetting + m_perspective_zbias_vertex{"zPerspectiveBias"}; + CachedPixelShaderSetting m_perspective_zbias_pixel{"zPerspectiveBias"}; // Modelview matrix - CachedVertexShaderSetting m_world_view; + CachedVertexShaderSetting m_world_view{"mWorldView"}; // Texture matrix - CachedVertexShaderSetting m_texture; + CachedVertexShaderSetting m_texture{"mTexture"}; public: - MainShaderConstantSetter() : - m_world_view_proj("mWorldViewProj") - , m_world("mWorld") - , m_shadow_view_proj("m_ShadowViewProj") - , m_light_direction("v_LightDirection") - , m_texture_res("f_textureresolution") - , m_shadow_strength("f_shadow_strength") - , m_time_of_day("f_timeofday") - , m_shadowfar("f_shadowfar") - , m_camera_pos("CameraPos") - , m_shadow_texture("ShadowMapSampler") - , m_perspective_bias0_vertex("xyPerspectiveBias0") - , m_perspective_bias0_pixel("xyPerspectiveBias0") - , m_perspective_bias1_vertex("xyPerspectiveBias1") - , m_perspective_bias1_pixel("xyPerspectiveBias1") - , m_perspective_zbias_vertex("zPerspectiveBias") - , m_perspective_zbias_pixel("zPerspectiveBias") - , m_world_view("mWorldView") - , m_texture("mTexture") - {} ~MainShaderConstantSetter() = default; virtual void onSetConstants(video::IMaterialRendererServices *services) override diff --git a/src/client/shadows/shadowsScreenQuad.h b/src/client/shadows/shadowsScreenQuad.h index c18be9a2b..fe54b89c8 100644 --- a/src/client/shadows/shadowsScreenQuad.h +++ b/src/client/shadows/shadowsScreenQuad.h @@ -39,16 +39,12 @@ private: class shadowScreenQuadCB : public video::IShaderConstantSetCallBack { public: - shadowScreenQuadCB() : - m_sm_client_map_setting("ShadowMapClientMap"), - m_sm_client_map_trans_setting("ShadowMapClientMapTraslucent"), - m_sm_dynamic_sampler_setting("ShadowMapSamplerdynamic") - {} - virtual void OnSetConstants(video::IMaterialRendererServices *services, s32 userData); private: - CachedPixelShaderSetting m_sm_client_map_setting; - CachedPixelShaderSetting m_sm_client_map_trans_setting; - CachedPixelShaderSetting m_sm_dynamic_sampler_setting; + CachedPixelShaderSetting m_sm_client_map_setting{"ShadowMapClientMap"}; + CachedPixelShaderSetting + m_sm_client_map_trans_setting{"ShadowMapClientMapTraslucent"}; + CachedPixelShaderSetting + m_sm_dynamic_sampler_setting{"ShadowMapSamplerdynamic"}; }; diff --git a/src/client/shadows/shadowsshadercallbacks.h b/src/client/shadows/shadowsshadercallbacks.h index 87833c0ec..4d006fea6 100644 --- a/src/client/shadows/shadowsshadercallbacks.h +++ b/src/client/shadows/shadowsshadercallbacks.h @@ -26,17 +26,6 @@ with this program; if not, write to the Free Software Foundation, Inc., class ShadowDepthShaderCB : public video::IShaderConstantSetCallBack { public: - ShadowDepthShaderCB() : - m_light_mvp_setting("LightMVP"), - m_map_resolution_setting("MapResolution"), - m_max_far_setting("MaxFar"), - m_color_map_sampler_setting("ColorMapSampler"), - m_perspective_bias0("xyPerspectiveBias0"), - m_perspective_bias1("xyPerspectiveBias1"), - m_perspective_zbias("zPerspectiveBias"), - m_cam_pos_setting("CameraPos") - {} - void OnSetMaterial(const video::SMaterial &material) override {} void OnSetConstants(video::IMaterialRendererServices *services, @@ -47,12 +36,13 @@ public: v3f CameraPos; private: - CachedVertexShaderSetting m_light_mvp_setting; - CachedVertexShaderSetting m_map_resolution_setting; - CachedVertexShaderSetting m_max_far_setting; - CachedPixelShaderSetting m_color_map_sampler_setting; - CachedVertexShaderSetting m_perspective_bias0; - CachedVertexShaderSetting m_perspective_bias1; - CachedVertexShaderSetting m_perspective_zbias; - CachedVertexShaderSetting m_cam_pos_setting; + CachedVertexShaderSetting m_light_mvp_setting{"LightMVP"}; + CachedVertexShaderSetting m_map_resolution_setting{"MapResolution"}; + CachedVertexShaderSetting m_max_far_setting{"MaxFar"}; + CachedPixelShaderSetting + m_color_map_sampler_setting{"ColorMapSampler"}; + CachedVertexShaderSetting m_perspective_bias0{"xyPerspectiveBias0"}; + CachedVertexShaderSetting m_perspective_bias1{"xyPerspectiveBias1"}; + CachedVertexShaderSetting m_perspective_zbias{"zPerspectiveBias"}; + CachedVertexShaderSetting m_cam_pos_setting{"CameraPos"}; };