godot/scene/3d
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
..
area.cpp
area.h
arvr_nodes.cpp
arvr_nodes.h
audio_stream_player_3d.cpp Ability to disable scale in nodes, closes #19927 2018-07-18 13:48:09 -03:00
audio_stream_player_3d.h Improved stream paused fade code 2018-07-09 21:58:33 -03:00
baked_lightmap.cpp Ability to disable scale in nodes, closes #19927 2018-07-18 13:48:09 -03:00
baked_lightmap.h
bone_attachment.cpp
bone_attachment.h
camera.cpp Ability to disable scale in nodes, closes #19927 2018-07-18 13:48:09 -03:00
camera.h
collision_object.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
collision_object.h Implemented Soft body 2018-07-23 20:50:23 +02:00
collision_polygon.cpp
collision_polygon.h
collision_shape.cpp
collision_shape.h Implemented Soft body 2018-07-23 20:50:23 +02:00
cpu_particles.cpp Fix issues with CPUParticles and related conversion from Particles. Closes #20126 2018-07-23 12:28:50 -03:00
cpu_particles.h
gi_probe.cpp Ability to disable scale in nodes, closes #19927 2018-07-18 13:48:09 -03:00
gi_probe.h
immediate_geometry.cpp
immediate_geometry.h
interpolated_camera.cpp
interpolated_camera.h
light.cpp Several improvements to editor inspector usability and style 2018-07-18 19:37:41 -03:00
light.h
listener.cpp
listener.h
mesh_instance.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
mesh_instance.h Implemented Soft body 2018-07-23 20:50:23 +02:00
multimesh_instance.cpp
multimesh_instance.h
navigation.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
navigation.h
navigation_mesh.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
navigation_mesh.h
particles.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
particles.h
path.cpp
path.h
physics_body.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
physics_body.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
physics_joint.cpp
physics_joint.h
portal.cpp
portal.h
position_3d.cpp
position_3d.h
proximity_group.cpp
proximity_group.h
ray_cast.cpp
ray_cast.h
reflection_probe.cpp Ability to disable scale in nodes, closes #19927 2018-07-18 13:48:09 -03:00
reflection_probe.h
remote_transform.cpp
remote_transform.h
room_instance.cpp
room_instance.h
scenario_fx.cpp
scenario_fx.h
SCsub
skeleton.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
skeleton.h
soft_body.cpp Implemented Soft body 2018-07-23 20:50:23 +02:00
soft_body.h Implemented Soft body 2018-07-23 20:50:23 +02:00
spatial.cpp Ability to disable scale in nodes, closes #19927 2018-07-18 13:48:09 -03:00
spatial.h Ability to disable scale in nodes, closes #19927 2018-07-18 13:48:09 -03:00
spatial_velocity_tracker.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
spatial_velocity_tracker.h
sprite_3d.cpp
sprite_3d.h
vehicle_body.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
vehicle_body.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
visibility_notifier.cpp
visibility_notifier.h
visual_instance.cpp
visual_instance.h
voxel_light_baker.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
voxel_light_baker.h