toggle vulkan log output
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
vulkan_validation_layers = true
|
||||
mesh_load_info = true
|
||||
debug_errors = true
|
||||
debug_warnings = true
|
||||
debug_info = true
|
||||
debug_verbose = true
|
||||
|
||||
[input]
|
||||
mouse_motion = false
|
||||
|
||||
@@ -15,7 +15,11 @@ pub struct LogConfigInput {
|
||||
pub struct LogConfig {
|
||||
pub vulkan_validation_layers: bool,
|
||||
pub mesh_load_info: bool,
|
||||
pub input: LogConfigInput
|
||||
pub input: LogConfigInput,
|
||||
pub debug_errors: bool,
|
||||
pub debug_warnings: bool,
|
||||
pub debug_info: bool,
|
||||
pub debug_verbose: bool
|
||||
}
|
||||
|
||||
impl LogConfig {
|
||||
|
||||
@@ -29,7 +29,8 @@ fn main() {
|
||||
let (mut renderer, event_loop) = VulkanRenderer::init(
|
||||
line_vertices,
|
||||
log_config.vulkan_validation_layers,
|
||||
RenderConfig::from_file("config/graphics.toml")
|
||||
RenderConfig::from_file("config/graphics.toml"),
|
||||
log_config.clone()
|
||||
);
|
||||
|
||||
game.game_start(&mut renderer);
|
||||
|
||||
@@ -28,6 +28,7 @@ use pipelines::line_vs::ty::LinePushConstants;
|
||||
use pipelines::DefaultShader;
|
||||
use pipelines::vs;
|
||||
|
||||
use crate::config::LogConfig;
|
||||
use crate::{config::RenderConfig};
|
||||
use crate::vulkan::gameobject::{GameObject, GameObjectHandle};
|
||||
|
||||
@@ -120,7 +121,7 @@ pub struct VulkanRenderer {
|
||||
}
|
||||
|
||||
impl VulkanRenderer {
|
||||
pub fn init(line_vertices: Vec<LinePoint>, enable_validation_layers: bool, render_config: RenderConfig) -> (VulkanRenderer, EventLoop<()>) {
|
||||
pub fn init(line_vertices: Vec<LinePoint>, enable_validation_layers: bool, render_config: RenderConfig, log_config: LogConfig) -> (VulkanRenderer, EventLoop<()>) {
|
||||
// Create empty game data struct to be filled
|
||||
let mut data = GameData {
|
||||
line_push_constants: LinePushConstants {
|
||||
@@ -188,17 +189,17 @@ impl VulkanRenderer {
|
||||
validation: true
|
||||
};
|
||||
|
||||
debug_callback = DebugCallback::new(&instance, msg_severity, msg_types, |msg| {
|
||||
let type_str = match (msg.severity.error, msg.severity.warning, msg.severity.information, msg.severity.verbose) {
|
||||
(true, _, _, _) => "!!",
|
||||
(_, true, _, _) => "!",
|
||||
(_, _, _, true) => "i",
|
||||
_ => " "
|
||||
debug_callback = DebugCallback::new(&instance, msg_severity, msg_types, move |msg| {
|
||||
let (type_str, will_log) = match (msg.severity.error, msg.severity.warning, msg.severity.information, msg.severity.verbose) {
|
||||
(true, _, _, _) => ("!!", log_config.debug_errors),
|
||||
(_, true, _, _) => ("!", log_config.debug_warnings),
|
||||
(_, _, _, true) => ("i", log_config.debug_info),
|
||||
_ => (" ", log_config.debug_verbose)
|
||||
};
|
||||
|
||||
let layer_str = msg.layer_prefix;
|
||||
|
||||
println!("[{}][{:?}]: {}", type_str, layer_str, msg.description);
|
||||
if will_log { println!("[{}][{:?}]: {}", type_str, layer_str, msg.description); }
|
||||
}).ok();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user