mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Added gamma setting, not hooked up yet
This commit is contained in:
@ -45,7 +45,9 @@ void main() {
|
|||||||
//hsva_color.z = 1.0 - 1.0 / (1.0 * hsva_color.z + 1.0);
|
//hsva_color.z = 1.0 - 1.0 / (1.0 * hsva_color.z + 1.0);
|
||||||
//vec4 final_color = vec4(hsv2rgb(hsva_color.rgb), hsva_color.a);
|
//vec4 final_color = vec4(hsv2rgb(hsva_color.rgb), hsva_color.a);
|
||||||
|
|
||||||
vec4 final_color = aa_color;
|
vec4 gamma = vec4(1.0);
|
||||||
|
|
||||||
|
vec4 final_color = pow(aa_color, gamma);
|
||||||
|
|
||||||
if (medium.x == 1u) {
|
if (medium.x == 1u) {
|
||||||
final_color *= vec4(0.2, 0.2, 0.8, 1.0);
|
final_color *= vec4(0.2, 0.2, 0.8, 1.0);
|
||||||
|
@ -201,6 +201,7 @@ pub enum Event {
|
|||||||
ChangeAudioDevice(String),
|
ChangeAudioDevice(String),
|
||||||
ChangeMaxFPS(u32),
|
ChangeMaxFPS(u32),
|
||||||
ChangeFOV(u16),
|
ChangeFOV(u16),
|
||||||
|
ChangeGamma(f32),
|
||||||
AdjustWindowSize([u16; 2]),
|
AdjustWindowSize([u16; 2]),
|
||||||
ToggleFullscreen,
|
ToggleFullscreen,
|
||||||
ChangeAaMode(AaMode),
|
ChangeAaMode(AaMode),
|
||||||
@ -1762,6 +1763,9 @@ impl Hud {
|
|||||||
settings_window::Event::AdjustFOV(new_fov) => {
|
settings_window::Event::AdjustFOV(new_fov) => {
|
||||||
events.push(Event::ChangeFOV(new_fov));
|
events.push(Event::ChangeFOV(new_fov));
|
||||||
},
|
},
|
||||||
|
settings_window::Event::AdjustGamma(new_gamma) => {
|
||||||
|
events.push(Event::ChangeGamma(new_gamma));
|
||||||
|
},
|
||||||
settings_window::Event::ChangeAaMode(new_aa_mode) => {
|
settings_window::Event::ChangeAaMode(new_aa_mode) => {
|
||||||
events.push(Event::ChangeAaMode(new_aa_mode));
|
events.push(Event::ChangeAaMode(new_aa_mode));
|
||||||
},
|
},
|
||||||
|
@ -89,6 +89,9 @@ widget_ids! {
|
|||||||
fov_slider,
|
fov_slider,
|
||||||
fov_text,
|
fov_text,
|
||||||
fov_value,
|
fov_value,
|
||||||
|
gamma_slider,
|
||||||
|
gamma_text,
|
||||||
|
gamma_value,
|
||||||
aa_mode_text,
|
aa_mode_text,
|
||||||
aa_mode_list,
|
aa_mode_list,
|
||||||
cloud_mode_text,
|
cloud_mode_text,
|
||||||
@ -199,6 +202,7 @@ pub enum Event {
|
|||||||
ToggleMouseYInvert(bool),
|
ToggleMouseYInvert(bool),
|
||||||
AdjustViewDistance(u32),
|
AdjustViewDistance(u32),
|
||||||
AdjustFOV(u16),
|
AdjustFOV(u16),
|
||||||
|
AdjustGamma(f32),
|
||||||
AdjustWindowSize([u16; 2]),
|
AdjustWindowSize([u16; 2]),
|
||||||
ToggleFullscreen,
|
ToggleFullscreen,
|
||||||
ChangeAaMode(AaMode),
|
ChangeAaMode(AaMode),
|
||||||
@ -1554,9 +1558,41 @@ impl<'a> Widget for SettingsWindow<'a> {
|
|||||||
.color(TEXT_COLOR)
|
.color(TEXT_COLOR)
|
||||||
.set(state.ids.fov_value, ui);
|
.set(state.ids.fov_value, ui);
|
||||||
|
|
||||||
|
// Gamma
|
||||||
|
Text::new(&self.localized_strings.get("hud.settings.gamma"))
|
||||||
|
.down_from(state.ids.fov_slider, 10.0)
|
||||||
|
.font_size(self.fonts.cyri.scale(14))
|
||||||
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
|
.color(TEXT_COLOR)
|
||||||
|
.set(state.ids.gamma_text, ui);
|
||||||
|
|
||||||
|
if let Some(new_val) = ImageSlider::continuous(
|
||||||
|
self.global_state.settings.graphics.gamma,
|
||||||
|
0.5,
|
||||||
|
2.0,
|
||||||
|
self.imgs.slider_indicator,
|
||||||
|
self.imgs.slider,
|
||||||
|
)
|
||||||
|
.w_h(104.0, 22.0)
|
||||||
|
.down_from(state.ids.gamma_text, 8.0)
|
||||||
|
.track_breadth(12.0)
|
||||||
|
.slider_length(10.0)
|
||||||
|
.pad_track((5.0, 5.0))
|
||||||
|
.set(state.ids.gamma_slider, ui)
|
||||||
|
{
|
||||||
|
events.push(Event::AdjustGamma(new_val));
|
||||||
|
}
|
||||||
|
|
||||||
|
Text::new(&format!("{}", self.global_state.settings.graphics.gamma))
|
||||||
|
.right_from(state.ids.gamma_slider, 8.0)
|
||||||
|
.font_size(self.fonts.cyri.scale(14))
|
||||||
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
|
.color(TEXT_COLOR)
|
||||||
|
.set(state.ids.gamma_value, ui);
|
||||||
|
|
||||||
// AaMode
|
// AaMode
|
||||||
Text::new(&self.localized_strings.get("hud.settings.antialiasing_mode"))
|
Text::new(&self.localized_strings.get("hud.settings.antialiasing_mode"))
|
||||||
.down_from(state.ids.fov_slider, 8.0)
|
.down_from(state.ids.gamma_slider, 8.0)
|
||||||
.font_size(self.fonts.cyri.scale(14))
|
.font_size(self.fonts.cyri.scale(14))
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
.color(TEXT_COLOR)
|
.color(TEXT_COLOR)
|
||||||
|
@ -551,6 +551,10 @@ impl PlayState for SessionState {
|
|||||||
global_state.settings.save_to_file_warn();
|
global_state.settings.save_to_file_warn();
|
||||||
self.scene.camera_mut().set_fov_deg(new_fov);
|
self.scene.camera_mut().set_fov_deg(new_fov);
|
||||||
},
|
},
|
||||||
|
HudEvent::ChangeGamma(new_gamma) => {
|
||||||
|
global_state.settings.graphics.gamma = new_gamma;
|
||||||
|
global_state.settings.save_to_file_warn();
|
||||||
|
},
|
||||||
HudEvent::ChangeAaMode(new_aa_mode) => {
|
HudEvent::ChangeAaMode(new_aa_mode) => {
|
||||||
// Do this first so if it crashes the setting isn't saved :)
|
// Do this first so if it crashes the setting isn't saved :)
|
||||||
global_state
|
global_state
|
||||||
|
@ -191,6 +191,7 @@ pub struct GraphicsSettings {
|
|||||||
pub view_distance: u32,
|
pub view_distance: u32,
|
||||||
pub max_fps: u32,
|
pub max_fps: u32,
|
||||||
pub fov: u16,
|
pub fov: u16,
|
||||||
|
pub gamma: f32,
|
||||||
pub aa_mode: AaMode,
|
pub aa_mode: AaMode,
|
||||||
pub cloud_mode: CloudMode,
|
pub cloud_mode: CloudMode,
|
||||||
pub fluid_mode: FluidMode,
|
pub fluid_mode: FluidMode,
|
||||||
@ -204,6 +205,7 @@ impl Default for GraphicsSettings {
|
|||||||
view_distance: 10,
|
view_distance: 10,
|
||||||
max_fps: 60,
|
max_fps: 60,
|
||||||
fov: 50,
|
fov: 50,
|
||||||
|
gamma: 1.0,
|
||||||
aa_mode: AaMode::Fxaa,
|
aa_mode: AaMode::Fxaa,
|
||||||
cloud_mode: CloudMode::Regular,
|
cloud_mode: CloudMode::Regular,
|
||||||
fluid_mode: FluidMode::Shiny,
|
fluid_mode: FluidMode::Shiny,
|
||||||
|
Reference in New Issue
Block a user