godot/scene/2d
Hein-Pieter van Braam 0e29f7974b Reduce unnecessary COW on Vector by make writing explicit
This commit makes operator[] on Vector const and adds a write proxy to it.  From
now on writes to Vectors need to happen through the .write proxy. So for
instance:

Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;

Failing to use the .write proxy will cause a compilation error.

In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.

_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
2018-07-26 00:54:16 +02:00
..
animated_sprite.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
animated_sprite.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
area_2d.cpp
area_2d.h
audio_stream_player_2d.cpp Fix possible bug with AudioStreamPlayer2D audio position 2018-07-10 22:57:50 -03:00
audio_stream_player_2d.h Improved stream paused fade code 2018-07-09 21:58:33 -03:00
back_buffer_copy.cpp Fixes the bad calculation of margin & anchors when child of Node2D 2018-06-07 21:25:15 +02:00
back_buffer_copy.h Fixes the bad calculation of margin & anchors when child of Node2D 2018-06-07 21:25:15 +02:00
camera_2d.cpp
camera_2d.h
canvas_item.cpp Fix CanvasItem search for a CanvasLayer 2018-07-18 20:34:21 +02:00
canvas_item.h Fixes the bad calculation of margin & anchors when child of Node2D 2018-06-07 21:25:15 +02:00
canvas_modulate.cpp
canvas_modulate.h
collision_object_2d.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
collision_object_2d.h Further fixes to KinematicBody2D API, support for sync motion in moving objects 2018-07-17 08:58:04 -03:00
collision_polygon_2d.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
collision_polygon_2d.h
collision_shape_2d.cpp
collision_shape_2d.h
joints_2d.cpp Changes to how node paths are selected from property, allowing setting a hint. 2018-06-27 20:50:25 -03:00
joints_2d.h
light_2d.cpp Fixes the bad calculation of margin & anchors when child of Node2D 2018-06-07 21:25:15 +02:00
light_2d.h Fixes the bad calculation of margin & anchors when child of Node2D 2018-06-07 21:25:15 +02:00
light_occluder_2d.cpp
light_occluder_2d.h
line_2d.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
line_2d.h Line2D texture stretch mode 2018-07-16 23:16:58 +02:00
line_builder.cpp Removed unnecessary assignments 2018-07-24 09:51:03 +02:00
line_builder.h
mesh_instance_2d.cpp
mesh_instance_2d.h
navigation2d.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
navigation2d.h
navigation_polygon.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
navigation_polygon.h
node_2d.cpp Further fixes to KinematicBody2D API, support for sync motion in moving objects 2018-07-17 08:58:04 -03:00
node_2d.h
parallax_background.cpp
parallax_background.h
parallax_layer.cpp
parallax_layer.h
particles_2d.cpp
particles_2d.h
path_2d.cpp
path_2d.h
path_texture.cpp
path_texture.h
physics_body_2d.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
physics_body_2d.h Modified RigidBody, PhysicsDirectBodyState, PhysicsServer, and their respective 2D counterparts to be more consistent and to include more useful methods. 2018-07-24 05:00:56 -04:00
polygon_2d.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
polygon_2d.h
position_2d.cpp
position_2d.h
ray_cast_2d.cpp
ray_cast_2d.h
remote_transform_2d.cpp Changes to how node paths are selected from property, allowing setting a hint. 2018-06-27 20:50:25 -03:00
remote_transform_2d.h
screen_button.cpp Fixes the bad calculation of margin & anchors when child of Node2D 2018-06-07 21:25:15 +02:00
screen_button.h Fixes the bad calculation of margin & anchors when child of Node2D 2018-06-07 21:25:15 +02:00
SCsub
skeleton_2d.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
skeleton_2d.h
sprite.cpp Fixes the bad calculation of margin & anchors when child of Node2D 2018-06-07 21:25:15 +02:00
sprite.h Fixes the bad calculation of margin & anchors when child of Node2D 2018-06-07 21:25:15 +02:00
tile_map.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
tile_map.h Defer TileMap::update_dirty_quadrants once again. 2018-07-22 15:26:14 +02:00
visibility_notifier_2d.cpp
visibility_notifier_2d.h
y_sort.cpp
y_sort.h