godot/scene/2d
Tom Coxon a2f3decb88
Prevent shaders from generating code before the constructor finishes.
Fixes #43733: "creating SpatialMaterial in a separate thread creates invalid
shaders (temporarily)."

The bug occurred because various setters called in materials' constructors add
materials to queues that are processed on the main thread. This means that
when the materials are created in another thread, they can be processed on the
main thread before the constructor has finished.

The fix adds a flag to affected materials that prevents them from being added
to the queue until their constructors have finished initialising all the
members.

(cherry picked from commit 9e9bac1549)
2021-09-21 13:53:31 +02:00
..
animated_sprite.cpp Re-allow playing AnimatedSprite2D without frames 2021-04-05 15:01:01 +02:00
animated_sprite.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
area_2d.cpp Uncap the range for gravity and change the slider hints 2021-06-03 12:42:30 +02:00
area_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
audio_stream_player_2d.cpp Modernize atomics 2021-02-18 12:23:25 +01:00
audio_stream_player_2d.h Modernize atomics 2021-02-18 12:23:25 +01:00
back_buffer_copy.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
back_buffer_copy.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
camera_2d.cpp Camera2D: Update scrolls when the Viewport is resized 2021-03-09 17:17:51 +01:00
camera_2d.h Camera2D: Update scrolls when the Viewport is resized 2021-03-09 17:17:51 +01:00
canvas_item.cpp Prevent shaders from generating code before the constructor finishes. 2021-09-21 13:53:31 +02:00
canvas_item.h Prevent shaders from generating code before the constructor finishes. 2021-09-21 13:53:31 +02:00
canvas_modulate.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
canvas_modulate.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
collision_object_2d.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
collision_object_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
collision_polygon_2d.cpp Fix errors with invalid CollisionPolygon2D 2021-03-05 22:45:29 +01:00
collision_polygon_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
collision_shape_2d.cpp Collision Shape 2D 'Disabled' Visualization Correction 2021-02-19 15:51:43 +01:00
collision_shape_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
cpu_particles_2d.cpp Modernize Mutex 2021-02-18 11:58:08 +01:00
cpu_particles_2d.h Modernize Mutex 2021-02-18 11:58:08 +01:00
joints_2d.cpp Fix Joint2D/Joint node path reset on scene switch 2021-03-02 08:32:00 -07:00
joints_2d.h Fix Joint2D/Joint node path reset on scene switch 2021-03-02 08:32:00 -07:00
light_2d.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
light_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
light_occluder_2d.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
light_occluder_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
line_2d.cpp Line2D::set_point_position Fail if passed index is out of bounds 2021-02-22 10:16:22 +01:00
line_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
line_builder.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
line_builder.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
mesh_instance_2d.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
mesh_instance_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
multimesh_instance_2d.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
multimesh_instance_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
navigation_2d.cpp Validate argument in Navigation2D::navpoly_add 2021-03-31 20:10:51 +02:00
navigation_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
navigation_polygon.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
navigation_polygon.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
node_2d.cpp Added minimum scale for node 2D 2021-08-13 12:17:15 +02:00
node_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
parallax_background.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
parallax_background.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
parallax_layer.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
parallax_layer.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
particles_2d.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
particles_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
path_2d.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
path_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
physics_body_2d.cpp Expose collider RID in 2D/3D kinematic collision 2021-06-29 13:48:37 +02:00
physics_body_2d.h Expose collider RID in 2D/3D kinematic collision 2021-06-29 13:48:37 +02:00
polygon_2d.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
polygon_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
position_2d.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
position_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
ray_cast_2d.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
ray_cast_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
remote_transform_2d.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
remote_transform_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
SCsub SCons: Format buildsystem files with psf/black 2020-06-10 15:30:52 +02:00
skeleton_2d.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
skeleton_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
sprite.cpp Revert backport of 2D transform and camera snapping options 2021-03-05 14:20:31 +00:00
sprite.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
tile_map.cpp TileMap Fix trying to get data for tile not existing in attached TileSet 2021-08-13 10:36:57 +02:00
tile_map.h TileMap: Make collision visibility opt-in 2021-03-30 23:39:37 +02:00
touch_screen_button.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
touch_screen_button.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
visibility_notifier_2d.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
visibility_notifier_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
y_sort.cpp Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
y_sort.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00