virtualx-engine/scene/resources
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
..
default_theme Improve VisualScript UX 2018-07-24 13:59:28 -07:00
animation.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
animation.h Entirely new (and much improved) animation editor. 2018-06-07 12:52:00 -03:00
audio_stream_sample.cpp Fully exposes data variable on AudioStreamSample/AudioStreamOGGVorbis... 2018-05-01 12:19:15 +02:00
audio_stream_sample.h Expose audio streams get_length() 2018-01-22 20:35:33 +01:00
bit_mask.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
bit_mask.h Fix typos with codespell 2018-02-21 19:46:06 +01:00
bounds.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
bounds.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
box_shape.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
box_shape.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
canvas.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
canvas.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
capsule_shape.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
capsule_shape.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
capsule_shape_2d.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
capsule_shape_2d.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
circle_shape_2d.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
circle_shape_2d.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
color_ramp.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
color_ramp.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
concave_polygon_shape.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
concave_polygon_shape.h Bind many more properties to scripts 2018-01-12 00:58:14 +02:00
concave_polygon_shape_2d.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
concave_polygon_shape_2d.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
convex_polygon_shape.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
convex_polygon_shape.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
convex_polygon_shape_2d.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
convex_polygon_shape_2d.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
curve.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
curve.h Support for CPU based particles, which aids compatibility with OpenGL ES 2.0 2018-07-06 20:21:42 -03:00
cylinder_shape.cpp added cylinder shape support 2018-07-01 11:16:54 +02:00
cylinder_shape.h added cylinder shape support 2018-07-01 11:16:54 +02:00
dynamic_font.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
dynamic_font.h Always emit dynamic font change in update_oversampling 2018-05-08 19:01:15 +07:00
dynamic_font_stb.cpp Perfect FreeType-based outlines for DynamicFonts 2018-05-08 13:45:24 +07:00
dynamic_font_stb.h Perfect FreeType-based outlines for DynamicFonts 2018-05-08 13:45:24 +07:00
environment.cpp Added ability for SSAO to affect AO textures too 2018-07-02 16:50:52 -03:00
environment.h Added ability for SSAO to affect AO textures too 2018-07-02 16:50:52 -03:00
font.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
font.h Perfect FreeType-based outlines for DynamicFonts 2018-05-08 13:45:24 +07:00
material.cpp Add disable ambient light flag to shaders and materials 2018-07-17 21:30:43 +02:00
material.h Add disable ambient light flag to shaders and materials 2018-07-17 21:30:43 +02:00
mesh.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
mesh.h Implemented Soft body 2018-07-23 20:50:23 +02:00
mesh_data_tool.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
mesh_data_tool.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
mesh_library.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
mesh_library.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
multimesh.cpp Bind many more properties to scripts 2018-01-12 00:58:14 +02:00
multimesh.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
packed_scene.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
packed_scene.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
physics_material.cpp Implemented physics material 2018-05-11 03:23:09 +02:00
physics_material.h Implemented physics material 2018-05-11 03:23:09 +02:00
plane_shape.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
plane_shape.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
polygon_path_finder.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
polygon_path_finder.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
primitive_meshes.cpp Merge pull request #19487 from JFonS/better_3d_select 2018-06-13 18:49:35 +02:00
primitive_meshes.h Added a simpler way to flip faces, closes #17373 and closes #17369 2018-05-07 18:55:05 -03:00
ray_shape.cpp Improved ray shape (2D and 3D) by addiing the possibility to act as regular shape 2018-02-19 20:59:57 +01:00
ray_shape.h Improved ray shape (2D and 3D) by addiing the possibility to act as regular shape 2018-02-19 20:59:57 +01:00
rectangle_shape_2d.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
rectangle_shape_2d.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
room.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
room.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
scene_format_text.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
scene_format_text.h Ability to import .escn files, which is just a .tscn but with forced import. 2018-01-30 11:04:22 -03:00
SCsub Move other lone thirdparty files to thirdparty/misc 2017-04-28 21:19:25 +02:00
segment_shape_2d.cpp Improved ray shape (2D and 3D) by addiing the possibility to act as regular shape 2018-02-19 20:59:57 +01:00
segment_shape_2d.h Improved ray shape (2D and 3D) by addiing the possibility to act as regular shape 2018-02-19 20:59:57 +01:00
shader.cpp Visual Shaders are back. 2018-07-14 18:16:18 -03:00
shader.h Visual Shaders are back. 2018-07-14 18:16:18 -03:00
shader_graph.cpp Bind many more properties to scripts 2018-01-12 00:58:14 +02:00
shader_graph.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
shape.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
shape.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
shape_2d.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
shape_2d.h Fixes collisions shape selection 2018-02-22 20:48:25 +01:00
shape_line_2d.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
shape_line_2d.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
sky_box.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
sky_box.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
space_2d.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
space_2d.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
sphere_shape.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
sphere_shape.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
style_box.cpp Visual Shaders are back. 2018-07-14 18:16:18 -03:00
style_box.h Visual Shaders are back. 2018-07-14 18:16:18 -03:00
surface_tool.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
surface_tool.h Added flip switch to generate_normals 2018-02-19 22:40:34 +03:00
text_file.cpp Allow opening and editing of any utf_8 file in script editor 2018-07-22 11:55:56 +01:00
text_file.h Allow opening and editing of any utf_8 file in script editor 2018-07-22 11:55:56 +01:00
texture.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
texture.h Finally figured out how to implement AnimatedTexture properly. 2018-07-16 11:43:49 -03:00
theme.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
theme.h -Fixes to how hashing happened, now StringName and NodePath use default hasher, this was leading to some severe slowdown in scenarios 2018-07-02 15:08:35 -03:00
tile_set.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
tile_set.h Restore support for minimal 3x3 autotile sets 2018-05-17 09:49:14 -04:00
video_stream.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
video_stream.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
visual_shader.cpp Visual Shaders are back. 2018-07-14 18:16:18 -03:00
visual_shader.h Visual Shaders are back. 2018-07-14 18:16:18 -03:00
visual_shader_nodes.cpp Fix some missing BIND_ENUM_CONSTANT for visual_shader_nodes.cpp 2018-07-17 18:31:22 -03:00
visual_shader_nodes.h Several name fixes for visual shader 2018-07-15 17:28:06 +03:00
world.cpp Bind many more properties to scripts 2018-01-12 00:58:14 +02:00
world.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
world_2d.cpp Bind many more properties to scripts 2018-01-12 00:58:14 +02:00
world_2d.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00