diff options
Diffstat (limited to 'core')
37 files changed, 19 insertions, 155 deletions
diff --git a/core/class_db.h b/core/class_db.h index 3d9a695f02..3864522be4 100644 --- a/core/class_db.h +++ b/core/class_db.h @@ -35,10 +35,6 @@ #include "core/object.h" #include "core/print_string.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - /** To bind more then 6 parameters include this: * #include "core/method_bind_ext.gen.inc" */ diff --git a/core/color.h b/core/color.h index 77f95b5dc9..8fb78d1ced 100644 --- a/core/color.h +++ b/core/color.h @@ -33,9 +33,7 @@ #include "core/math/math_funcs.h" #include "core/ustring.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ + struct Color { union { diff --git a/core/command_queue_mt.h b/core/command_queue_mt.h index 3789eda5db..98f5bc56d7 100644 --- a/core/command_queue_mt.h +++ b/core/command_queue_mt.h @@ -37,10 +37,6 @@ #include "core/simple_type.h" #include "core/typedefs.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - #define COMMA(N) _COMMA_##N #define _COMMA_0 #define _COMMA_1 , diff --git a/core/image.cpp b/core/image.cpp index 5ce744f709..6211c06ebe 100644 --- a/core/image.cpp +++ b/core/image.cpp @@ -754,15 +754,14 @@ static void _scale_lanczos(const uint8_t *__restrict p_src, uint8_t *__restrict for (int32_t buffer_x = 0; buffer_x < dst_width; buffer_x++) { - float src_real_x = buffer_x * x_scale; - int32_t src_x = src_real_x; - - int32_t start_x = MAX(0, src_x - half_kernel + 1); - int32_t end_x = MIN(src_width - 1, src_x + half_kernel); + // The corresponding point on the source image + float src_x = (buffer_x + 0.5f) * x_scale; // Offset by 0.5 so it uses the pixel's center + int32_t start_x = MAX(0, int32_t(src_x) - half_kernel + 1); + int32_t end_x = MIN(src_width - 1, int32_t(src_x) + half_kernel); // Create the kernel used by all the pixels of the column for (int32_t target_x = start_x; target_x <= end_x; target_x++) - kernel[target_x - start_x] = _lanczos((src_real_x - target_x) / scale_factor); + kernel[target_x - start_x] = _lanczos((target_x + 0.5f - src_x) / scale_factor); for (int32_t buffer_y = 0; buffer_y < src_height; buffer_y++) { @@ -805,14 +804,12 @@ static void _scale_lanczos(const uint8_t *__restrict p_src, uint8_t *__restrict for (int32_t dst_y = 0; dst_y < dst_height; dst_y++) { - float buffer_real_y = dst_y * y_scale; - int32_t buffer_y = buffer_real_y; - - int32_t start_y = MAX(0, buffer_y - half_kernel + 1); - int32_t end_y = MIN(src_height - 1, buffer_y + half_kernel); + float buffer_y = (dst_y + 0.5f) * y_scale; + int32_t start_y = MAX(0, int32_t(buffer_y) - half_kernel + 1); + int32_t end_y = MIN(src_height - 1, int32_t(buffer_y) + half_kernel); for (int32_t target_y = start_y; target_y <= end_y; target_y++) - kernel[target_y - start_y] = _lanczos((buffer_real_y - target_y) / scale_factor); + kernel[target_y - start_y] = _lanczos((target_y + 0.5f - buffer_y) / scale_factor); for (int32_t dst_x = 0; dst_x < dst_width; dst_x++) { diff --git a/core/io/image_loader.h b/core/io/image_loader.h index f1fccc5230..af6b0551a3 100644 --- a/core/io/image_loader.h +++ b/core/io/image_loader.h @@ -37,10 +37,6 @@ #include "core/os/file_access.h" #include "core/ustring.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - class ImageLoader; class ImageFormatLoader { diff --git a/core/io/resource_loader.h b/core/io/resource_loader.h index 70e7bdc224..93df8cadb0 100644 --- a/core/io/resource_loader.h +++ b/core/io/resource_loader.h @@ -33,9 +33,6 @@ #include "core/os/thread.h" #include "core/resource.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ class ResourceInteractiveLoader : public Reference { diff --git a/core/io/resource_saver.h b/core/io/resource_saver.h index 0fba47a5e8..20e05d827a 100644 --- a/core/io/resource_saver.h +++ b/core/io/resource_saver.h @@ -33,10 +33,6 @@ #include "core/resource.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - class ResourceFormatSaver : public Reference { GDCLASS(ResourceFormatSaver, Reference); diff --git a/core/map.h b/core/map.h index c8197639f2..c87ee42e1b 100644 --- a/core/map.h +++ b/core/map.h @@ -33,10 +33,6 @@ #include "core/set.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - // based on the very nice implementation of rb-trees by: // https://web.archive.org/web/20120507164830/http://web.mit.edu/~emin/www/source_code/red_black_tree/index.html diff --git a/core/math/basis.h b/core/math/basis.h index d3adad3d90..053effda69 100644 --- a/core/math/basis.h +++ b/core/math/basis.h @@ -36,10 +36,6 @@ #include "core/math/quat.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - class Basis { public: Vector3 elements[3]; diff --git a/core/math/bsp_tree.h b/core/math/bsp_tree.h index a7a3697990..90b5e8322a 100644 --- a/core/math/bsp_tree.h +++ b/core/math/bsp_tree.h @@ -38,9 +38,7 @@ #include "core/pool_vector.h" #include "core/variant.h" #include "core/vector.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ + class BSP_Tree { public: enum { diff --git a/core/math/camera_matrix.h b/core/math/camera_matrix.h index 3bcf48f5da..63cc88553d 100644 --- a/core/math/camera_matrix.h +++ b/core/math/camera_matrix.h @@ -34,10 +34,6 @@ #include "core/math/rect2.h" #include "core/math/transform.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - struct CameraMatrix { enum Planes { diff --git a/core/math/geometry.h b/core/math/geometry.h index e4f3ff799e..a32ed2f56b 100644 --- a/core/math/geometry.h +++ b/core/math/geometry.h @@ -41,10 +41,6 @@ #include "core/print_string.h" #include "core/vector.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - class Geometry { Geometry(); diff --git a/core/math/octree.h b/core/math/octree.h index d6fc9776bc..e752e10abc 100644 --- a/core/math/octree.h +++ b/core/math/octree.h @@ -38,10 +38,6 @@ #include "core/print_string.h" #include "core/variant.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - typedef uint32_t OctreeElementID; #define OCTREE_ELEMENT_INVALID_ID 0 diff --git a/core/math/quat.h b/core/math/quat.h index 8ed2fa7cc2..3d6602e466 100644 --- a/core/math/quat.h +++ b/core/math/quat.h @@ -38,10 +38,6 @@ #include "core/math/math_funcs.h" #include "core/ustring.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - class Quat { public: real_t x, y, z, w; diff --git a/core/math/transform.h b/core/math/transform.h index df0a036218..4c8d915305 100644 --- a/core/math/transform.h +++ b/core/math/transform.h @@ -35,10 +35,6 @@ #include "core/math/basis.h" #include "core/math/plane.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - class Transform { public: Basis basis; diff --git a/core/method_bind.h b/core/method_bind.h index 1b0c3b27c0..7bb75e778f 100644 --- a/core/method_bind.h +++ b/core/method_bind.h @@ -38,10 +38,6 @@ #include <stdio.h> -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - #ifdef DEBUG_ENABLED #define DEBUG_METHODS_ENABLED #endif diff --git a/core/node_path.h b/core/node_path.h index 24725123d6..1b21c4ef1c 100644 --- a/core/node_path.h +++ b/core/node_path.h @@ -34,10 +34,6 @@ #include "core/string_name.h" #include "core/ustring.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - class NodePath { struct Data { diff --git a/core/os/dir_access.h b/core/os/dir_access.h index 3c0528112b..d3eb1e13f6 100644 --- a/core/os/dir_access.h +++ b/core/os/dir_access.h @@ -34,10 +34,6 @@ #include "core/typedefs.h" #include "core/ustring.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - //@ TODO, excellent candidate for THREAD_SAFE MACRO, should go through all these and add THREAD_SAFE where it applies class DirAccess { public: diff --git a/core/os/input_event.h b/core/os/input_event.h index 4f5762e756..28658e3865 100644 --- a/core/os/input_event.h +++ b/core/os/input_event.h @@ -38,10 +38,6 @@ #include "core/ustring.h" /** - @author Juan Linietsky <reduzio@gmail.com> -*/ - -/** * Input Event classes. These are used in the main loop. * The events are pretty obvious. */ diff --git a/core/os/keyboard.h b/core/os/keyboard.h index 58a0807579..5c8a2e90e9 100644 --- a/core/os/keyboard.h +++ b/core/os/keyboard.h @@ -33,10 +33,6 @@ #include "core/ustring.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - /* Special Key: diff --git a/core/os/main_loop.h b/core/os/main_loop.h index ad734d3fc8..6ddaf5bee7 100644 --- a/core/os/main_loop.h +++ b/core/os/main_loop.h @@ -35,10 +35,6 @@ #include "core/reference.h" #include "core/script_language.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - class MainLoop : public Object { GDCLASS(MainLoop, Object); diff --git a/core/os/memory.h b/core/os/memory.h index e073b11e76..8778cb63ad 100644 --- a/core/os/memory.h +++ b/core/os/memory.h @@ -35,10 +35,6 @@ #include <stddef.h> -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - #ifndef PAD_ALIGN #define PAD_ALIGN 16 //must always be greater than this at much #endif diff --git a/core/os/os.h b/core/os/os.h index 2224d3b006..c0c346e9aa 100644 --- a/core/os/os.h +++ b/core/os/os.h @@ -41,10 +41,6 @@ #include <stdarg.h> -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - class Mutex; class OS { diff --git a/core/os/semaphore.h b/core/os/semaphore.h index ccbba0dacd..a0862dce84 100644 --- a/core/os/semaphore.h +++ b/core/os/semaphore.h @@ -33,10 +33,6 @@ #include "core/error_list.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - class Semaphore { protected: static Semaphore *(*create_func)(); diff --git a/core/os/thread.h b/core/os/thread.h index e7a6e8cb1f..169280a208 100644 --- a/core/os/thread.h +++ b/core/os/thread.h @@ -34,10 +34,6 @@ #include "core/typedefs.h" #include "core/ustring.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - typedef void (*ThreadCreateCallback)(void *p_userdata); class Thread { diff --git a/core/pool_vector.h b/core/pool_vector.h index 3d28d86803..39a8eccc51 100644 --- a/core/pool_vector.h +++ b/core/pool_vector.h @@ -77,10 +77,6 @@ struct MemoryPool { static void cleanup(); }; -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - template <class T> class PoolVector { diff --git a/core/project_settings.h b/core/project_settings.h index d7651417d5..a8deab028c 100644 --- a/core/project_settings.h +++ b/core/project_settings.h @@ -35,10 +35,6 @@ #include "core/os/thread_safe.h" #include "core/set.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - class ProjectSettings : public Object { GDCLASS(ProjectSettings, Object); diff --git a/core/reference.h b/core/reference.h index 8a19f846c7..20ee22ddfc 100644 --- a/core/reference.h +++ b/core/reference.h @@ -36,9 +36,6 @@ #include "core/ref_ptr.h" #include "core/safe_refcount.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ class Reference : public Object { GDCLASS(Reference, Object); diff --git a/core/register_core_types.h b/core/register_core_types.h index b5a6aa985b..2d397b55f9 100644 --- a/core/register_core_types.h +++ b/core/register_core_types.h @@ -31,10 +31,6 @@ #ifndef REGISTER_CORE_TYPES_H #define REGISTER_CORE_TYPES_H -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - void register_core_types(); void register_core_settings(); void register_core_singletons(); diff --git a/core/resource.h b/core/resource.h index 853b2859c7..038b4f6278 100644 --- a/core/resource.h +++ b/core/resource.h @@ -38,10 +38,6 @@ #include "core/safe_refcount.h" #include "core/self_list.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - #define RES_BASE_EXTENSION(m_ext) \ public: \ static void register_custom_data_to_otdb() { ClassDB::add_resource_base_extension(m_ext, get_class_static()); } \ diff --git a/core/rid.h b/core/rid.h index c7a71a03a0..381eee645b 100644 --- a/core/rid.h +++ b/core/rid.h @@ -37,10 +37,6 @@ #include "core/set.h" #include "core/typedefs.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - class RID_OwnerBase; class RID_Data { diff --git a/core/safe_refcount.h b/core/safe_refcount.h index 54f540b0c7..0b65ffb9ca 100644 --- a/core/safe_refcount.h +++ b/core/safe_refcount.h @@ -97,8 +97,8 @@ static _ALWAYS_INLINE_ T atomic_exchange_if_greater(volatile T *pw, volatile V v /* Implementation for GCC & Clang */ -// GCC guarantees atomic intrinsics for sizes of 1, 2, 4 and 8 bytes. -// Clang states it supports GCC atomic builtins. +#include <stdbool.h> +#include <atomic> template <class T> static _ALWAYS_INLINE_ T atomic_conditional_increment(volatile T *pw) { @@ -107,7 +107,7 @@ static _ALWAYS_INLINE_ T atomic_conditional_increment(volatile T *pw) { T tmp = static_cast<T const volatile &>(*pw); if (tmp == 0) return 0; // if zero, can't add to it anymore - if (__sync_val_compare_and_swap(pw, tmp, tmp + 1) == tmp) + if (__atomic_compare_exchange_n(pw, &tmp, tmp + 1, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) == true) return tmp + 1; } } @@ -115,25 +115,25 @@ static _ALWAYS_INLINE_ T atomic_conditional_increment(volatile T *pw) { template <class T> static _ALWAYS_INLINE_ T atomic_decrement(volatile T *pw) { - return __sync_sub_and_fetch(pw, 1); + return __atomic_sub_fetch(pw, 1, __ATOMIC_SEQ_CST); } template <class T> static _ALWAYS_INLINE_ T atomic_increment(volatile T *pw) { - return __sync_add_and_fetch(pw, 1); + return __atomic_add_fetch(pw, 1, __ATOMIC_SEQ_CST); } template <class T, class V> static _ALWAYS_INLINE_ T atomic_sub(volatile T *pw, volatile V val) { - return __sync_sub_and_fetch(pw, val); + return __atomic_sub_fetch(pw, val, __ATOMIC_SEQ_CST); } template <class T, class V> static _ALWAYS_INLINE_ T atomic_add(volatile T *pw, volatile V val) { - return __sync_add_and_fetch(pw, val); + return __atomic_add_fetch(pw, val, __ATOMIC_SEQ_CST); } template <class T, class V> @@ -143,7 +143,7 @@ static _ALWAYS_INLINE_ T atomic_exchange_if_greater(volatile T *pw, volatile V v T tmp = static_cast<T const volatile &>(*pw); if (tmp >= val) return tmp; // already greater, or equal - if (__sync_val_compare_and_swap(pw, tmp, val) == tmp) + if (__atomic_compare_exchange_n(pw, &tmp, val, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) == true) return val; } } diff --git a/core/script_language.h b/core/script_language.h index 87f103bb33..dfb2e0ad31 100644 --- a/core/script_language.h +++ b/core/script_language.h @@ -36,10 +36,6 @@ #include "core/pair.h" #include "core/resource.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - class ScriptLanguage; typedef void (*ScriptEditRequestFunction)(const String &p_path); diff --git a/core/set.h b/core/set.h index b2c717880d..68431c294a 100644 --- a/core/set.h +++ b/core/set.h @@ -34,10 +34,6 @@ #include "core/os/memory.h" #include "core/typedefs.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - // based on the very nice implementation of rb-trees by: // https://web.archive.org/web/20120507164830/http://web.mit.edu/~emin/www/source_code/red_black_tree/index.html diff --git a/core/string_name.h b/core/string_name.h index 0984b0181f..6dd960abd5 100644 --- a/core/string_name.h +++ b/core/string_name.h @@ -34,9 +34,6 @@ #include "core/os/mutex.h" #include "core/safe_refcount.h" #include "core/ustring.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ struct StaticCString { diff --git a/core/ustring.h b/core/ustring.h index 3eb5c47b3a..bbd0bcceb5 100644 --- a/core/ustring.h +++ b/core/ustring.h @@ -36,10 +36,6 @@ #include "core/typedefs.h" #include "core/vector.h" -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - template <class T> class CharProxy { friend class CharString; diff --git a/core/variant.h b/core/variant.h index a8e99c13f1..c4f69c3e8d 100644 --- a/core/variant.h +++ b/core/variant.h @@ -31,10 +31,6 @@ #ifndef VARIANT_H #define VARIANT_H -/** - @author Juan Linietsky <reduzio@gmail.com> -*/ - #include "core/array.h" #include "core/color.h" #include "core/dictionary.h" |