From c57c2445d847ef7230ee7c0278e375b66c54dcb5 Mon Sep 17 00:00:00 2001 From: Zach Coleman Date: Tue, 18 Mar 2025 12:42:01 -0700 Subject: [PATCH] Update movie_writer.cpp --- servers/movie_writer/movie_writer.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/servers/movie_writer/movie_writer.cpp b/servers/movie_writer/movie_writer.cpp index 9f3a2804360..863eef71a50 100644 --- a/servers/movie_writer/movie_writer.cpp +++ b/servers/movie_writer/movie_writer.cpp @@ -99,6 +99,18 @@ void MovieWriter::begin(const Size2i &p_movie_size, uint32_t p_fps, const String print_line(vformat("Movie Maker mode enabled, recording movie at %d FPS...", p_fps)); + // When using Display/Window/Stretch/Mode = Viewport, use the project's + // configured viewport size instead of the size of the window in the OS + Size2i actual_movie_size = p_movie_size; + String stretch_mode = GLOBAL_GET("display/window/stretch/mode"); + if (stretch_mode == "viewport") { + actual_movie_size.width = GLOBAL_GET("display/window/size/viewport_width"); + actual_movie_size.height = GLOBAL_GET("display/window/size/viewport_height"); + + print_line(vformat("Movie Maker mode using project viewport size: %dx%d", + actual_movie_size.width, actual_movie_size.height)); + } + // Check for available disk space and warn the user if needed. Ref dir = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); String path = p_base_path.get_basename(); @@ -125,7 +137,7 @@ void MovieWriter::begin(const Size2i &p_movie_size, uint32_t p_fps, const String audio_channels = AudioDriverDummy::get_dummy_singleton()->get_channels(); audio_mix_buffer.resize(mix_rate * audio_channels / fps); - write_begin(p_movie_size, p_fps, p_base_path); + write_begin(actual_movie_size, p_fps, p_base_path); } void MovieWriter::_bind_methods() {