mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge branch 'fps_counter' into 'master'
Add debug window, window toggle, fps counter See merge request veloren/veloren!63 Former-commit-id: 38e5d85a0db9a01c877f975f91526cd2dbe1c1fb
This commit is contained in:
commit
f85e3546cf
@ -21,6 +21,13 @@ widget_ids! {
|
|||||||
bag_space_add,
|
bag_space_add,
|
||||||
inventorytest_button,
|
inventorytest_button,
|
||||||
inventorytest_button_label,
|
inventorytest_button_label,
|
||||||
|
|
||||||
|
// Debug
|
||||||
|
debug_bg,
|
||||||
|
debug_button,
|
||||||
|
debug_button_label,
|
||||||
|
fps_counter,
|
||||||
|
|
||||||
// Logo
|
// Logo
|
||||||
v_logo,
|
v_logo,
|
||||||
|
|
||||||
@ -325,7 +332,7 @@ impl Imgs {
|
|||||||
check_checked_mo: load("element/buttons/check/yes_mo.png", ui),
|
check_checked_mo: load("element/buttons/check/yes_mo.png", ui),
|
||||||
slider: load("element/slider/track.png", ui),
|
slider: load("element/slider/track.png", ui),
|
||||||
slider_indicator: load("element/slider/indicator.png", ui),
|
slider_indicator: load("element/slider/indicator.png", ui),
|
||||||
button_blank: ui.new_graphic(ui::Graphic::Blank),
|
button_blank: ui.new_graphic(ui::Graphic::Blank),
|
||||||
button_blue_mo: load("element/buttons/blue_mo.png", ui),
|
button_blue_mo: load("element/buttons/blue_mo.png", ui),
|
||||||
button_blue_press: load("element/buttons/blue_press.png", ui),
|
button_blue_press: load("element/buttons/blue_press.png", ui),
|
||||||
|
|
||||||
@ -410,6 +417,7 @@ pub struct Hud {
|
|||||||
font_metamorph: FontId,
|
font_metamorph: FontId,
|
||||||
font_opensans: FontId,
|
font_opensans: FontId,
|
||||||
show_help: bool,
|
show_help: bool,
|
||||||
|
show_debug: bool,
|
||||||
bag_open: bool,
|
bag_open: bool,
|
||||||
menu_open: bool,
|
menu_open: bool,
|
||||||
open_windows: Windows,
|
open_windows: Windows,
|
||||||
@ -440,10 +448,12 @@ impl Hud {
|
|||||||
// Load fonts
|
// Load fonts
|
||||||
let load_font = |filename, ui: &mut Ui| {
|
let load_font = |filename, ui: &mut Ui| {
|
||||||
let fullpath: String = ["/voxygen/font", filename].concat();
|
let fullpath: String = ["/voxygen/font", filename].concat();
|
||||||
ui.new_font(conrod_core::text::Font::from_bytes(
|
ui.new_font(
|
||||||
assets::load(fullpath.as_str())
|
conrod_core::text::Font::from_bytes(
|
||||||
.expect("Error loading file")
|
assets::load(fullpath.as_str()).expect("Error loading file"),
|
||||||
).unwrap())
|
)
|
||||||
|
.unwrap(),
|
||||||
|
)
|
||||||
};
|
};
|
||||||
let font_opensans = load_font("/OpenSans-Regular.ttf", &mut ui);
|
let font_opensans = load_font("/OpenSans-Regular.ttf", &mut ui);
|
||||||
let font_metamorph = load_font("/Metamorphous-Regular.ttf", &mut ui);
|
let font_metamorph = load_font("/Metamorphous-Regular.ttf", &mut ui);
|
||||||
@ -457,6 +467,7 @@ impl Hud {
|
|||||||
chat,
|
chat,
|
||||||
settings_tab: SettingsTab::Interface,
|
settings_tab: SettingsTab::Interface,
|
||||||
show_help: true,
|
show_help: true,
|
||||||
|
show_debug: false,
|
||||||
bag_open: false,
|
bag_open: false,
|
||||||
menu_open: false,
|
menu_open: false,
|
||||||
map_open: false,
|
map_open: false,
|
||||||
@ -472,7 +483,7 @@ impl Hud {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn update_layout(&mut self) -> Vec<Event> {
|
fn update_layout(&mut self, tps: f64) -> Vec<Event> {
|
||||||
let mut events = Vec::new();
|
let mut events = Vec::new();
|
||||||
let ref mut ui_widgets = self.ui.set_widgets();
|
let ref mut ui_widgets = self.ui.set_widgets();
|
||||||
let version = env!("CARGO_PKG_VERSION");
|
let version = env!("CARGO_PKG_VERSION");
|
||||||
@ -487,6 +498,20 @@ impl Hud {
|
|||||||
return events;
|
return events;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Display debug window
|
||||||
|
if self.show_debug {
|
||||||
|
Image::new(self.imgs.window_frame_2)
|
||||||
|
.down_from(self.ids.mmap_frame, 20.0)
|
||||||
|
.w_h(300.0, 350.0)
|
||||||
|
.set(self.ids.debug_bg, ui_widgets);
|
||||||
|
Text::new(&format!("FPS: {:.1}", tps))
|
||||||
|
.color(TEXT_COLOR)
|
||||||
|
.top_left_with_margins_on(self.ids.debug_bg, 20.0, 20.0)
|
||||||
|
.font_id(self.font_opensans)
|
||||||
|
.font_size(18)
|
||||||
|
.set(self.ids.fps_counter, ui_widgets);
|
||||||
|
}
|
||||||
|
|
||||||
// Add Bag-Space Button
|
// Add Bag-Space Button
|
||||||
if self.inventorytest_button {
|
if self.inventorytest_button {
|
||||||
if Button::image(self.imgs.mmap_button)
|
if Button::image(self.imgs.mmap_button)
|
||||||
@ -524,21 +549,21 @@ impl Hud {
|
|||||||
|
|
||||||
Text::new(
|
Text::new(
|
||||||
"Tab = Free Cursor \n\
|
"Tab = Free Cursor \n\
|
||||||
Esc = Open/Close Menus \n\
|
Esc = Open/Close Menus \n\
|
||||||
\n\
|
\n\
|
||||||
F1 = Toggle this Window \n\
|
F1 = Toggle this Window \n\
|
||||||
F2 = Toggle Interface \n\
|
F2 = Toggle Interface \n\
|
||||||
\n\
|
\n\
|
||||||
Enter = Open Chat \n\
|
Enter = Open Chat \n\
|
||||||
Mouse Wheel = Scroll Chat\n\
|
Mouse Wheel = Scroll Chat\n\
|
||||||
\n\
|
\n\
|
||||||
M = Map \n\
|
M = Map \n\
|
||||||
B = Bag \n\
|
B = Bag \n\
|
||||||
L = Quest-Log \n\
|
L = Quest-Log \n\
|
||||||
C = Character Window \n\
|
C = Character Window \n\
|
||||||
O = Social \n\
|
O = Social \n\
|
||||||
P = Spellbook \n\
|
P = Spellbook \n\
|
||||||
N = Settings",
|
N = Settings",
|
||||||
)
|
)
|
||||||
.color(TEXT_COLOR)
|
.color(TEXT_COLOR)
|
||||||
.top_left_with_margins_on(self.ids.help_bg, 20.0, 20.0)
|
.top_left_with_margins_on(self.ids.help_bg, 20.0, 20.0)
|
||||||
@ -968,6 +993,22 @@ impl Hud {
|
|||||||
.graphics_for(self.ids.inventorytest_button)
|
.graphics_for(self.ids.inventorytest_button)
|
||||||
.color(TEXT_COLOR)
|
.color(TEXT_COLOR)
|
||||||
.set(self.ids.inventorytest_button_label, ui_widgets);
|
.set(self.ids.inventorytest_button_label, ui_widgets);
|
||||||
|
|
||||||
|
self.show_debug =
|
||||||
|
ToggleButton::new(self.show_debug, self.imgs.check, self.imgs.check_checked)
|
||||||
|
.w_h(288.0 / 24.0, 288.0 / 24.0)
|
||||||
|
.top_left_with_margins_on(self.ids.rectangle, 65.0, 15.0)
|
||||||
|
.hover_images(self.imgs.check_checked_mo, self.imgs.check_mo)
|
||||||
|
.press_images(self.imgs.check_press, self.imgs.check_press)
|
||||||
|
.set(self.ids.debug_button, ui_widgets);
|
||||||
|
Text::new("Show Debug Window")
|
||||||
|
.right_from(self.ids.debug_button, 10.0)
|
||||||
|
.font_size(12)
|
||||||
|
.font_id(self.font_opensans)
|
||||||
|
.graphics_for(self.ids.debug_button)
|
||||||
|
.color(TEXT_COLOR)
|
||||||
|
.set(self.ids.debug_button_label, ui_widgets);
|
||||||
|
|
||||||
}
|
}
|
||||||
//2 Gameplay////////////////
|
//2 Gameplay////////////////
|
||||||
if Button::image(if let SettingsTab::Gameplay = self.settings_tab {
|
if Button::image(if let SettingsTab::Gameplay = self.settings_tab {
|
||||||
@ -1626,8 +1667,8 @@ impl Hud {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn maintain(&mut self, renderer: &mut Renderer) -> Vec<Event> {
|
pub fn maintain(&mut self, renderer: &mut Renderer, tps: f64) -> Vec<Event> {
|
||||||
let events = self.update_layout();
|
let events = self.update_layout(tps);
|
||||||
self.ui.maintain(renderer);
|
self.ui.maintain(renderer);
|
||||||
events
|
events
|
||||||
}
|
}
|
||||||
|
@ -163,7 +163,7 @@ impl PlayState for SessionState {
|
|||||||
// Maintain the scene
|
// Maintain the scene
|
||||||
self.scene.maintain(global_state.window.renderer_mut(), &mut self.client.borrow_mut());
|
self.scene.maintain(global_state.window.renderer_mut(), &mut self.client.borrow_mut());
|
||||||
// Maintain the UI
|
// Maintain the UI
|
||||||
for event in self.hud.maintain(global_state.window.renderer_mut()) {
|
for event in self.hud.maintain(global_state.window.renderer_mut(), clock.get_tps()) {
|
||||||
match event {
|
match event {
|
||||||
HudEvent::SendMessage(msg) => {
|
HudEvent::SendMessage(msg) => {
|
||||||
// TODO: Handle result
|
// TODO: Handle result
|
||||||
|
Loading…
Reference in New Issue
Block a user