mirror of
https://github.com/godotengine/godot.git
synced 2026-01-05 06:11:29 +03:00
Improve error message when the requested V-Sync mode cannot be used
This commit is contained in:
@@ -1666,7 +1666,22 @@ Error VulkanContext::_update_swap_chain(Window *window) {
|
||||
if (present_mode_available) {
|
||||
window->presentMode = requested_present_mode;
|
||||
} else {
|
||||
WARN_PRINT("Requested VSync mode is not available!");
|
||||
String present_mode_string;
|
||||
switch (window->vsync_mode) {
|
||||
case DisplayServer::VSYNC_MAILBOX:
|
||||
present_mode_string = "Mailbox";
|
||||
break;
|
||||
case DisplayServer::VSYNC_ADAPTIVE:
|
||||
present_mode_string = "Adaptive";
|
||||
break;
|
||||
case DisplayServer::VSYNC_ENABLED:
|
||||
present_mode_string = "Enabled";
|
||||
break;
|
||||
case DisplayServer::VSYNC_DISABLED:
|
||||
present_mode_string = "Disabled";
|
||||
break;
|
||||
}
|
||||
WARN_PRINT(vformat("The requested V-Sync mode %s is not available. Falling back to V-Sync mode Enabled.", present_mode_string));
|
||||
window->vsync_mode = DisplayServer::VSYNC_ENABLED; // Set to default.
|
||||
}
|
||||
|
||||
@@ -2471,12 +2486,12 @@ String VulkanContext::get_device_pipeline_cache_uuid() const {
|
||||
}
|
||||
|
||||
DisplayServer::VSyncMode VulkanContext::get_vsync_mode(DisplayServer::WindowID p_window) const {
|
||||
ERR_FAIL_COND_V_MSG(!windows.has(p_window), DisplayServer::VSYNC_ENABLED, "Could not get VSync mode for window with WindowID " + itos(p_window) + " because it does not exist.");
|
||||
ERR_FAIL_COND_V_MSG(!windows.has(p_window), DisplayServer::VSYNC_ENABLED, "Could not get V-Sync mode for window with WindowID " + itos(p_window) + " because it does not exist.");
|
||||
return windows[p_window].vsync_mode;
|
||||
}
|
||||
|
||||
void VulkanContext::set_vsync_mode(DisplayServer::WindowID p_window, DisplayServer::VSyncMode p_mode) {
|
||||
ERR_FAIL_COND_MSG(!windows.has(p_window), "Could not set VSync mode for window with WindowID " + itos(p_window) + " because it does not exist.");
|
||||
ERR_FAIL_COND_MSG(!windows.has(p_window), "Could not set V-Sync mode for window with WindowID " + itos(p_window) + " because it does not exist.");
|
||||
windows[p_window].vsync_mode = p_mode;
|
||||
_update_swap_chain(&windows[p_window]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user