Merge pull request #80168 from akien-mga/extension-compat
Fix or workaround recent extension API compatibility issues
This commit is contained in:
commit
4c70849b3b
9 changed files with 158 additions and 14 deletions
|
@ -4,8 +4,21 @@ This file contains the expected output of --validate-extension-api when run agai
|
|||
Only lines that start with "Validate extension JSON:" matter, everything else is considered a comment and ignored. They
|
||||
should instead be used to justify these changes and describe how users should work around these changes.
|
||||
|
||||
Add new entries at the end of the file.
|
||||
|
||||
========================================================================================================================
|
||||
|
||||
Misc
|
||||
----
|
||||
Validate extension JSON: API was removed: classes/FramebufferCacheRD
|
||||
Validate extension JSON: API was removed: classes/UniformSetCacheRD
|
||||
|
||||
FIXME: These aren't written when dumping the interface with a headless build
|
||||
(since there's no RD backend in use). We need to fix this inconsistency somehow.
|
||||
|
||||
|
||||
## Changes between 4.0-stable and 4.1-stable
|
||||
|
||||
GH-78517
|
||||
--------
|
||||
Validate extension JSON: Error: Field 'classes/DisplayServer/methods/global_menu_add_check_item/arguments/2': default_value changed value in new API, from "" to "Callable()".
|
||||
|
@ -36,10 +49,12 @@ Validate extension JSON: Error: Field 'classes/RenderingServer/methods/instances
|
|||
|
||||
The previous argument was a serialization bug, there's no actual API change.
|
||||
|
||||
|
||||
GH-78237
|
||||
--------
|
||||
Validate extension JSON: Error: Field 'classes/WebRTCPeerConnectionExtension/methods/_create_data_channel/return_value': type changed value in new API, from "Object" to "WebRTCDataChannel".
|
||||
|
||||
|
||||
GH-77757
|
||||
--------
|
||||
Validate extension JSON: Error: Field 'classes/Viewport/methods/gui_get_focus_owner': is_const changed value in new API, from false to true.
|
||||
|
@ -136,13 +151,6 @@ Navigation avoidance was reworked entirely.
|
|||
Migration: TODO
|
||||
|
||||
|
||||
GH-?????
|
||||
--------
|
||||
Validate extension JSON: API was removed: classes/FramebufferCacheRD
|
||||
Validate extension JSON: API was removed: classes/UniformSetCacheRD
|
||||
|
||||
Unsure where these come from; when dumping the interface, these do actually still exist
|
||||
|
||||
GH-76176
|
||||
--------
|
||||
Validate extension JSON: Error: Hash changed for 'classes/EditorInterface/methods/get_base_control', from 31757941 to A5E188F5. This means that the function has changed and no compatibility function was provided.
|
||||
|
@ -260,7 +268,6 @@ Validate extension JSON: Error: Field 'classes/SyntaxHighlighter/methods/get_tex
|
|||
Function was made `const`. No adjustments should be necessary.
|
||||
|
||||
|
||||
|
||||
GH-75250 & GH-76401
|
||||
-------------------
|
||||
Validate extension JSON: Error: Hash changed for 'classes/RichTextLabel/methods/push_paragraph', from 3DD1D1C2 to BFDC71FE. This means that the function has changed and no compatibility function was provided.
|
||||
|
@ -359,6 +366,9 @@ Validate extension JSON: Error: Hash changed for 'classes/UndoRedo/methods/creat
|
|||
|
||||
Added a optional parameters with default values. No adjustments should be necessary.
|
||||
|
||||
|
||||
## Changes between 4.1-stable and 4.2-stable
|
||||
|
||||
GH-79911
|
||||
--------
|
||||
Validate extension JSON: Error: Field 'classes/RenderingDevice/enums/BarrierMask/values/BARRIER_MASK_RASTER': value changed value in new API, from 1.0 to 9.
|
||||
|
@ -379,3 +389,47 @@ Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/barrier/a
|
|||
Validate extension JSON: Error: Hash changed for 'classes/RenderingDevice/methods/barrier', from 0FE50041 to DD9E8DAB. This means that the function has changed and no compatibility function was provided.
|
||||
|
||||
Raster barrier was split into vertex and fragment barriers for use in mobile renderer.
|
||||
|
||||
|
||||
GH-79308
|
||||
--------
|
||||
Validate extension JSON: API was removed: classes/GraphEdit/methods/get_scroll_ofs
|
||||
Validate extension JSON: API was removed: classes/GraphEdit/methods/get_snap
|
||||
Validate extension JSON: API was removed: classes/GraphEdit/methods/get_zoom_hbox
|
||||
Validate extension JSON: API was removed: classes/GraphEdit/methods/is_using_snap
|
||||
Validate extension JSON: API was removed: classes/GraphEdit/methods/set_scroll_ofs
|
||||
Validate extension JSON: API was removed: classes/GraphEdit/methods/set_snap
|
||||
Validate extension JSON: API was removed: classes/GraphEdit/methods/set_use_snap
|
||||
Validate extension JSON: API was removed: classes/GraphEdit/properties/snap_distance
|
||||
Validate extension JSON: API was removed: classes/GraphEdit/properties/use_snap
|
||||
Validate extension JSON: API was removed: classes/GraphNode/methods/is_comment
|
||||
Validate extension JSON: API was removed: classes/GraphNode/methods/set_comment
|
||||
Validate extension JSON: API was removed: classes/GraphNode/properties/comment
|
||||
Validate extension JSON: Error: Field 'classes/GraphEdit/properties/scroll_offset': getter changed value in new API, from "get_scroll_ofs" to &"get_scroll_offset".
|
||||
Validate extension JSON: Error: Field 'classes/GraphEdit/properties/scroll_offset': setter changed value in new API, from "set_scroll_ofs" to &"set_scroll_offset".
|
||||
|
||||
Intentional compatibility breakage during refactoring of API marked as experimental.
|
||||
|
||||
FIXME: Still a WIP, review this list once the work is completed, especially if compatibility
|
||||
code is added.
|
||||
|
||||
|
||||
GH-73196
|
||||
--------
|
||||
Validate extension JSON: Error: Field 'classes/CodeEdit/methods/get_text_for_symbol_lookup': is_const changed value in new API, from false to true.
|
||||
|
||||
Function was made `const`. No adjustments should be necessary.
|
||||
|
||||
|
||||
GH-78328
|
||||
--------
|
||||
Validate extension JSON: Error: Field 'classes/TileMap/methods/get_used_rect': is_const changed value in new API, from false to true.
|
||||
|
||||
Function was made `const`. No adjustments should be necessary.
|
||||
|
||||
|
||||
GH-79606
|
||||
--------
|
||||
Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/shader_create_from_bytecode/arguments': size changed value in new API, from 1 to 2.
|
||||
|
||||
Added optional argument. Compatibility method registered.
|
||||
|
|
|
@ -21,7 +21,7 @@ fi
|
|||
|
||||
# Fix copyright headers, but not all files get them.
|
||||
for f in $files; do
|
||||
if [[ "$f" == *"inc" ]]; then
|
||||
if [[ "$f" == *"inc" && "$f" != *"compat.inc" ]]; then
|
||||
continue
|
||||
elif [[ "$f" == *"glsl" ]]; then
|
||||
continue
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/**************************************************************************/
|
||||
/* object.compat.inc */
|
||||
/* tile_map.compat.inc */
|
||||
/**************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
|
@ -30,10 +30,6 @@
|
|||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
|
||||
#include "core/object/object.h"
|
||||
|
||||
#include "core/object/class_db.h"
|
||||
|
||||
Rect2i TileMap::_get_used_rect_bind_compat_78328() {
|
||||
return get_used_rect();
|
||||
}
|
||||
|
|
41
scene/gui/code_edit.compat.inc
Normal file
41
scene/gui/code_edit.compat.inc
Normal file
|
@ -0,0 +1,41 @@
|
|||
/**************************************************************************/
|
||||
/* code_edit.compat.inc */
|
||||
/**************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/**************************************************************************/
|
||||
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/**************************************************************************/
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
|
||||
String CodeEdit::_get_text_for_symbol_lookup_bind_compat_73196() {
|
||||
return get_text_for_symbol_lookup();
|
||||
}
|
||||
|
||||
void CodeEdit::_bind_compatibility_methods() {
|
||||
ClassDB::bind_compatibility_method(D_METHOD("get_text_for_symbol_lookup"), &CodeEdit::_get_text_for_symbol_lookup_bind_compat_73196);
|
||||
}
|
||||
|
||||
#endif
|
|
@ -29,6 +29,7 @@
|
|||
/**************************************************************************/
|
||||
|
||||
#include "code_edit.h"
|
||||
#include "code_edit.compat.inc"
|
||||
|
||||
#include "core/os/keyboard.h"
|
||||
#include "core/string/string_builder.h"
|
||||
|
|
|
@ -287,6 +287,11 @@ protected:
|
|||
void _notification(int p_what);
|
||||
static void _bind_methods();
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
String _get_text_for_symbol_lookup_bind_compat_73196();
|
||||
static void _bind_compatibility_methods();
|
||||
#endif
|
||||
|
||||
virtual void _update_theme_item_cache() override;
|
||||
|
||||
/* Text manipulation */
|
||||
|
|
41
servers/rendering/rendering_device.compat.inc
Normal file
41
servers/rendering/rendering_device.compat.inc
Normal file
|
@ -0,0 +1,41 @@
|
|||
/**************************************************************************/
|
||||
/* rendering_device.compat.inc */
|
||||
/**************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/**************************************************************************/
|
||||
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/**************************************************************************/
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
|
||||
RID RenderingDevice::_shader_create_from_bytecode_bind_compat_79606(const Vector<uint8_t> &p_shader_binary) {
|
||||
return shader_create_from_bytecode(p_shader_binary, RID());
|
||||
}
|
||||
|
||||
void RenderingDevice::_bind_compatibility_methods() {
|
||||
ClassDB::bind_compatibility_method(D_METHOD("shader_create_from_bytecode", "binary_data"), &RenderingDevice::_shader_create_from_bytecode_bind_compat_79606);
|
||||
}
|
||||
|
||||
#endif
|
|
@ -29,6 +29,7 @@
|
|||
/**************************************************************************/
|
||||
|
||||
#include "rendering_device.h"
|
||||
#include "rendering_device.compat.inc"
|
||||
|
||||
#include "rendering_device_binds.h"
|
||||
|
||||
|
|
|
@ -141,6 +141,11 @@ private:
|
|||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
RID _shader_create_from_bytecode_bind_compat_79606(const Vector<uint8_t> &p_shader_binary);
|
||||
static void _bind_compatibility_methods();
|
||||
#endif
|
||||
|
||||
Capabilities device_capabilities;
|
||||
|
||||
public:
|
||||
|
|
Loading…
Reference in a new issue