diff options
| -rw-r--r-- | doc/classes/BoneMap.xml | 1 | ||||
| -rw-r--r-- | doc/classes/SkeletonProfile.xml | 1 | ||||
| -rw-r--r-- | doc/classes/SkeletonProfileHumanoid.xml | 1 | ||||
| -rw-r--r-- | doc/classes/TileMap.xml | 2 | ||||
| -rw-r--r-- | drivers/vulkan/vulkan_context.cpp | 26 | ||||
| -rw-r--r-- | editor/animation_track_editor.cpp | 2 | ||||
| -rw-r--r-- | editor/editor_resource_picker.cpp | 1 | ||||
| -rw-r--r-- | editor/plugins/texture_editor_plugin.cpp | 2 | ||||
| -rw-r--r-- | platform/linuxbsd/display_server_x11.cpp | 19 | ||||
| -rw-r--r-- | platform/macos/display_server_macos.mm | 21 | ||||
| -rw-r--r-- | platform/windows/display_server_windows.cpp | 18 | 
11 files changed, 72 insertions, 22 deletions
diff --git a/doc/classes/BoneMap.xml b/doc/classes/BoneMap.xml index f7a4845b7d..7135406d3c 100644 --- a/doc/classes/BoneMap.xml +++ b/doc/classes/BoneMap.xml @@ -8,6 +8,7 @@  		By assigning the actual [Skeleton3D] bone name as the key value, it maps the [Skeleton3D] to the [SkeletonProfile].  	</description>  	<tutorials> +		<link title="Retargeting 3D Skeletons">$DOCS_URL/tutorials/assets_pipeline/retargeting_3d_skeletons.html</link>  	</tutorials>  	<methods>  		<method name="find_profile_bone_name" qualifiers="const"> diff --git a/doc/classes/SkeletonProfile.xml b/doc/classes/SkeletonProfile.xml index 55d21f3224..57bdd52d9e 100644 --- a/doc/classes/SkeletonProfile.xml +++ b/doc/classes/SkeletonProfile.xml @@ -7,6 +7,7 @@  		This resource is used in [EditorScenePostImport]. Some parameters are referring to bones in [Skeleton3D], [Skin], [Animation], and some other nodes are rewritten based on the parameters of [SkeletonProfile].  	</description>  	<tutorials> +		<link title="Retargeting 3D Skeletons">$DOCS_URL/tutorials/assets_pipeline/retargeting_3d_skeletons.html</link>  	</tutorials>  	<methods>  		<method name="find_bone" qualifiers="const"> diff --git a/doc/classes/SkeletonProfileHumanoid.xml b/doc/classes/SkeletonProfileHumanoid.xml index 11f0521718..0dbd66d8d6 100644 --- a/doc/classes/SkeletonProfileHumanoid.xml +++ b/doc/classes/SkeletonProfileHumanoid.xml @@ -6,6 +6,7 @@  		A [SkeletonProfile] as a preset that is optimized for the human form. This exists for standardization, so all parameters are read-only.  	</description>  	<tutorials> +		<link title="Retargeting 3D Skeletons">$DOCS_URL/tutorials/assets_pipeline/retargeting_3d_skeletons.html</link>  	</tutorials>  	<members>  		<member name="bone_size" type="int" setter="set_bone_size" getter="get_bone_size" overrides="SkeletonProfile" default="56" /> diff --git a/doc/classes/TileMap.xml b/doc/classes/TileMap.xml index 348184a16a..01246f0c2e 100644 --- a/doc/classes/TileMap.xml +++ b/doc/classes/TileMap.xml @@ -365,7 +365,7 @@  			Show or hide the TileMap's collision shapes. If set to [constant VISIBILITY_MODE_DEFAULT], this depends on the show collision debug settings.  		</member>  		<member name="navigation_visibility_mode" type="int" setter="set_navigation_visibility_mode" getter="get_navigation_visibility_mode" enum="TileMap.VisibilityMode" default="0"> -			Show or hide the TileMap's collision shapes. If set to [constant VISIBILITY_MODE_DEFAULT], this depends on the show navigation debug settings. +			Show or hide the TileMap's navigation meshes. If set to [constant VISIBILITY_MODE_DEFAULT], this depends on the show navigation debug settings.  		</member>  		<member name="tile_set" type="TileSet" setter="set_tileset" getter="get_tileset">  			The assigned [TileSet]. diff --git a/drivers/vulkan/vulkan_context.cpp b/drivers/vulkan/vulkan_context.cpp index f51fd2a6cf..688efa42e1 100644 --- a/drivers/vulkan/vulkan_context.cpp +++ b/drivers/vulkan/vulkan_context.cpp @@ -1807,18 +1807,22 @@ Error VulkanContext::_update_swap_chain(Window *window) {  		preTransform = surfCapabilities.currentTransform;  	} -	// Find a supported composite alpha mode - one of these is guaranteed to be set.  	VkCompositeAlphaFlagBitsKHR compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; -	VkCompositeAlphaFlagBitsKHR compositeAlphaFlags[4] = { -		VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR, -		VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR, -		VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR, -		VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR, -	}; -	for (uint32_t i = 0; i < ARRAY_SIZE(compositeAlphaFlags); i++) { -		if (surfCapabilities.supportedCompositeAlpha & compositeAlphaFlags[i]) { -			compositeAlpha = compositeAlphaFlags[i]; -			break; + +	if (OS::get_singleton()->is_layered_allowed() || !(surfCapabilities.supportedCompositeAlpha & compositeAlpha)) { +		// Find a supported composite alpha mode - one of these is guaranteed to be set. +		VkCompositeAlphaFlagBitsKHR compositeAlphaFlags[4] = { +			VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR, +			VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR, +			VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR, +			VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR, +		}; + +		for (uint32_t i = 0; i < ARRAY_SIZE(compositeAlphaFlags); i++) { +			if (surfCapabilities.supportedCompositeAlpha & compositeAlphaFlags[i]) { +				compositeAlpha = compositeAlphaFlags[i]; +				break; +			}  		}  	} diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp index 5c4ef35f1c..8a2d23d32d 100644 --- a/editor/animation_track_editor.cpp +++ b/editor/animation_track_editor.cpp @@ -6204,7 +6204,7 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) {  				if (do_bake && !animation->track_is_compressed(i)) {  					Animation::InterpolationType it = animation->track_get_interpolation_type(i);  					if (it == Animation::INTERPOLATION_NEAREST) { -						continue; // Nearest and Angle interpolation cannot be baked. +						continue; // Nearest interpolation cannot be baked.  					}  					// Special case for angle interpolation. diff --git a/editor/editor_resource_picker.cpp b/editor/editor_resource_picker.cpp index 01816b7205..5545dc4ee2 100644 --- a/editor/editor_resource_picker.cpp +++ b/editor/editor_resource_picker.cpp @@ -958,6 +958,7 @@ EditorResourcePicker::EditorResourcePicker(bool p_hide_assign_button_controls) {  		preview_rect->set_offset(SIDE_TOP, 1);  		preview_rect->set_offset(SIDE_BOTTOM, -1);  		preview_rect->set_offset(SIDE_RIGHT, -1); +		preview_rect->set_texture_filter(TEXTURE_FILTER_NEAREST_WITH_MIPMAPS);  		assign_button->add_child(preview_rect);  	} diff --git a/editor/plugins/texture_editor_plugin.cpp b/editor/plugins/texture_editor_plugin.cpp index be382759f5..4aed7a92a2 100644 --- a/editor/plugins/texture_editor_plugin.cpp +++ b/editor/plugins/texture_editor_plugin.cpp @@ -29,7 +29,6 @@  /*************************************************************************/  #include "texture_editor_plugin.h" -  #include "editor/editor_scale.h"  TextureRect *TexturePreview::get_texture_display() { @@ -123,6 +122,7 @@ TexturePreview::TexturePreview(Ref<Texture2D> p_texture, bool p_show_metadata) {  	add_child(checkerboard);  	texture_display = memnew(TextureRect); +	texture_display->set_texture_filter(TEXTURE_FILTER_NEAREST_WITH_MIPMAPS);  	texture_display->set_texture(p_texture);  	texture_display->set_anchors_preset(TextureRect::PRESET_FULL_RECT);  	texture_display->set_stretch_mode(TextureRect::STRETCH_KEEP_ASPECT_CENTERED); diff --git a/platform/linuxbsd/display_server_x11.cpp b/platform/linuxbsd/display_server_x11.cpp index e78467beff..162db675b0 100644 --- a/platform/linuxbsd/display_server_x11.cpp +++ b/platform/linuxbsd/display_server_x11.cpp @@ -4435,10 +4435,21 @@ Vector<String> DisplayServerX11::get_rendering_drivers_func() {  DisplayServer *DisplayServerX11::create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i &p_resolution, Error &r_error) {  	DisplayServer *ds = memnew(DisplayServerX11(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_resolution, r_error));  	if (r_error != OK) { -		OS::get_singleton()->alert("Your video card driver does not support any of the supported Vulkan or OpenGL versions.\n" -								   "Please update your drivers or if you have a very old or integrated GPU, upgrade it.\n" -								   "If you have updated your graphics drivers recently, try rebooting.", -				"Unable to initialize Video driver"); +		if (p_rendering_driver == "vulkan") { +			String executable_name = OS::get_singleton()->get_executable_path().get_file(); +			OS::get_singleton()->alert("Your video card driver does not support the selected Vulkan version.\n" +									   "Please try updating your GPU driver or try using the OpenGL 3 driver.\n" +									   "You can enable the OpenGL 3 driver by starting the engine from the\n" +									   "command line with the command:\n'./" + +							executable_name + " --rendering-driver opengl3'.\n " +											  "If you have updated your graphics drivers recently, try rebooting.", +					"Unable to initialize Video driver"); +		} else { +			OS::get_singleton()->alert("Your video card driver does not support the selected OpenGL version.\n" +									   "Please try updating your GPU driver.\n" +									   "If you have updated your graphics drivers recently, try rebooting.", +					"Unable to initialize Video driver"); +		}  	}  	return ds;  } diff --git a/platform/macos/display_server_macos.mm b/platform/macos/display_server_macos.mm index f4692abc92..c7f49870f2 100644 --- a/platform/macos/display_server_macos.mm +++ b/platform/macos/display_server_macos.mm @@ -3408,7 +3408,26 @@ void DisplayServerMacOS::set_icon(const Ref<Image> &p_icon) {  DisplayServer *DisplayServerMacOS::create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i &p_resolution, Error &r_error) {  	DisplayServer *ds = memnew(DisplayServerMacOS(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_resolution, r_error));  	if (r_error != OK) { -		OS::get_singleton()->alert("Your video card driver does not support any of the supported Vulkan or OpenGL versions.", "Unable to initialize Video driver"); +		if (p_rendering_driver == "vulkan") { +			String executable_command; +			if (OS::get_singleton()->get_bundle_resource_dir() == OS::get_singleton()->get_executable_path().get_base_dir()) { +				executable_command = vformat("%s --rendering-driver opengl3", OS::get_singleton()->get_executable_path()); +			} else { +				executable_command = vformat("open %s --args --rendering-driver opengl3", OS::get_singleton()->get_bundle_resource_dir().path_join("../..").simplify_path()); +			} +			OS::get_singleton()->alert("Your video card driver does not support the selected Vulkan version.\n" +									   "Please try updating your GPU driver or try using the OpenGL 3 driver.\n" +									   "You can enable the OpenGL 3 driver by starting the engine from the\n" +									   "command line with the command: '" + +							executable_command + "'.\n" +												 "If you have updated your graphics drivers recently, try rebooting.", +					"Unable to initialize Video driver"); +		} else { +			OS::get_singleton()->alert("Your video card driver does not support the selected OpenGL version.\n" +									   "Please try updating your GPU driver.\n" +									   "If you have updated your graphics drivers recently, try rebooting.", +					"Unable to initialize Video driver"); +		}  	}  	return ds;  } diff --git a/platform/windows/display_server_windows.cpp b/platform/windows/display_server_windows.cpp index bc767a47e5..43d7208501 100644 --- a/platform/windows/display_server_windows.cpp +++ b/platform/windows/display_server_windows.cpp @@ -3922,9 +3922,21 @@ Vector<String> DisplayServerWindows::get_rendering_drivers_func() {  DisplayServer *DisplayServerWindows::create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Vector2i &p_resolution, Error &r_error) {  	DisplayServer *ds = memnew(DisplayServerWindows(p_rendering_driver, p_mode, p_vsync_mode, p_flags, p_resolution, r_error));  	if (r_error != OK) { -		OS::get_singleton()->alert("Your video card driver does not support any of the supported Vulkan or OpenGL versions.\n" -								   "Please update your drivers or if you have a very old or integrated GPU upgrade it.", -				"Unable to initialize Video driver"); +		if (p_rendering_driver == "vulkan") { +			String executable_name = OS::get_singleton()->get_executable_path().get_file(); +			OS::get_singleton()->alert("Your video card driver does not support the selected Vulkan version.\n" +									   "Please try updating your GPU driver or try using the OpenGL 3 driver.\n" +									   "You can enable the OpenGL 3 driver by starting the engine from the\n" +									   "command line with the command:\n'./" + +							executable_name + " --rendering-driver opengl3'.\n " +											  "If you have updated your graphics drivers recently, try rebooting.", +					"Unable to initialize Video driver"); +		} else { +			OS::get_singleton()->alert("Your video card driver does not support the selected OpenGL version.\n" +									   "Please try updating your GPU driver.\n" +									   "If you have updated your graphics drivers recently, try rebooting.", +					"Unable to initialize Video driver"); +		}  	}  	return ds;  }  |