godot/scene/2d
Tom Coxon 9e9bac1549 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.
2021-09-21 11:47:51 +01:00
..
animated_sprite.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
animated_sprite.h Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
area_2d.cpp Uncap the range for gravity and change the slider hints 2021-06-03 02:08:57 +02:00
area_2d.h Return RID instead of Object id in area-body_shape_entered-exited signals. 2021-05-19 10:51:59 +01:00
audio_stream_player_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
audio_stream_player_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
back_buffer_copy.cpp Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
back_buffer_copy.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
camera_2d.cpp Fixed Camera2D's reset_smoothing() does not work as described 2021-08-03 09:15:33 +02:00
camera_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
canvas_item.cpp Prevent shaders from generating code before the constructor finishes. 2021-09-21 11:47:51 +01:00
canvas_item.h Prevent shaders from generating code before the constructor finishes. 2021-09-21 11:47:51 +01:00
canvas_modulate.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
canvas_modulate.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
collision_object_2d.cpp Prevent setting too big or too small Collision Mask and Layer 2021-06-27 17:40:07 +02:00
collision_object_2d.h Move collision layer and mask into CollisionObject. 2021-05-08 11:40:57 +01:00
collision_polygon_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
collision_polygon_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
collision_shape_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
collision_shape_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
cpu_particles_2d.cpp Fix color properties of particle nodes/material 2021-07-15 10:25:35 +02:00
cpu_particles_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
joints_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
joints_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
light_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
light_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
light_occluder_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
light_occluder_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
line_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
line_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
line_builder.cpp Remove unused swap template. 2021-08-12 16:46:02 +02:00
line_builder.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
mesh_instance_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
mesh_instance_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
multimesh_instance_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
multimesh_instance_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
navigation_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
navigation_2d.h Style: Replaces uses of 0/NULL by nullptr (C++11) 2021-05-04 16:30:23 +02:00
navigation_polygon.cpp Remove duplicate ERR_PRINTS macro 2021-06-16 11:56:25 +01:00
navigation_polygon.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
node_2d.cpp Added minimum scale for node 2D 2021-07-12 12:15:33 +02:00
node_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
parallax_background.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
parallax_background.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
parallax_layer.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
parallax_layer.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
particles_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
particles_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
path_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
path_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
physics_body_2d.cpp Backport new methods for KinematicBody and KinematicCollision 2021-08-26 12:16:40 +08:00
physics_body_2d.h Backport new methods for KinematicBody and KinematicCollision 2021-08-26 12:16:40 +08:00
polygon_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
polygon_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
position_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
position_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
ray_cast_2d.cpp Prevent setting too big or too small Collision Mask and Layer 2021-06-27 17:40:07 +02:00
ray_cast_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
remote_transform_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
remote_transform_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
SCsub SCons: Format buildsystem files with psf/black 2020-06-10 15:30:52 +02:00
skeleton_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
skeleton_2d.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00
sprite.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
sprite.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
tile_map.cpp TileMap Fix trying to get data for tile not existing in attached TileSet 2021-08-06 18:52:04 +02:00
tile_map.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
touch_screen_button.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
touch_screen_button.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
visibility_notifier_2d.cpp Style: Enforce braces around if blocks and loops 2021-05-05 15:02:01 +02:00
visibility_notifier_2d.h Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
y_sort.cpp Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
y_sort.h Update copyright statements to 2021 2021-01-13 16:17:06 +01:00