From 33689d7beb670301e1b5da8bfa21e4991263edbd Mon Sep 17 00:00:00 2001 From: Lukas Tenbrink Date: Wed, 8 Oct 2025 11:53:08 +0200 Subject: [PATCH] Remove transitive `mesh.h`, `rendering_server.h` and `shader.h` includes from `node.h`. --- editor/inspector/editor_resource_picker.h | 1 + editor/scene/2d/path_2d_editor_plugin.cpp | 1 + editor/scene/2d/sprite_2d_editor_plugin.cpp | 1 + editor/scene/3d/node_3d_editor_gizmos.h | 1 + modules/multiplayer/multiplayer_spawner.cpp | 1 + scene/2d/path_2d.cpp | 1 + scene/3d/cpu_particles_3d.cpp | 1 + scene/3d/gpu_particles_3d.cpp | 1 + scene/3d/label_3d.cpp | 1 + scene/3d/mesh_instance_3d.h | 1 + scene/3d/navigation/navigation_agent_3d.h | 1 + scene/3d/path_3d.cpp | 2 ++ scene/3d/physics/collision_object_3d.cpp | 1 + scene/3d/physics/collision_object_3d.h | 1 + scene/3d/physics/ray_cast_3d.cpp | 1 + scene/3d/physics/shape_cast_3d.cpp | 1 + scene/3d/physics/spring_arm_3d.h | 1 + scene/3d/sprite_3d.cpp | 1 + scene/3d/visual_instance_3d.h | 2 ++ scene/animation/animation_blend_tree.h | 1 + scene/animation/animation_node_state_machine.h | 1 + scene/gui/color_picker.h | 1 + scene/gui/color_picker_shape.cpp | 1 + scene/gui/graph_edit.cpp | 1 + scene/gui/graph_edit.h | 1 + scene/gui/rich_text_label.cpp | 1 + scene/main/node.cpp | 4 ++++ scene/main/scene_tree.h | 3 ++- scene/main/shader_globals_override.cpp | 1 + scene/property_utils.cpp | 1 + scene/resources/visual_shader_particle_nodes.cpp | 1 + 31 files changed, 37 insertions(+), 1 deletion(-) diff --git a/editor/inspector/editor_resource_picker.h b/editor/inspector/editor_resource_picker.h index a08a93d197f..0a1f34d8e52 100644 --- a/editor/inspector/editor_resource_picker.h +++ b/editor/inspector/editor_resource_picker.h @@ -31,6 +31,7 @@ #pragma once #include "scene/gui/box_container.h" +#include "scene/resources/material.h" class Button; class ConfirmationDialog; diff --git a/editor/scene/2d/path_2d_editor_plugin.cpp b/editor/scene/2d/path_2d_editor_plugin.cpp index 76063eaa03f..fd6c4ffe8a9 100644 --- a/editor/scene/2d/path_2d_editor_plugin.cpp +++ b/editor/scene/2d/path_2d_editor_plugin.cpp @@ -38,6 +38,7 @@ #include "editor/themes/editor_scale.h" #include "scene/gui/dialogs.h" #include "scene/gui/menu_button.h" +#include "scene/resources/mesh.h" void Path2DEditor::_notification(int p_what) { switch (p_what) { diff --git a/editor/scene/2d/sprite_2d_editor_plugin.cpp b/editor/scene/2d/sprite_2d_editor_plugin.cpp index fb529223e73..8a37d42175c 100644 --- a/editor/scene/2d/sprite_2d_editor_plugin.cpp +++ b/editor/scene/2d/sprite_2d_editor_plugin.cpp @@ -46,6 +46,7 @@ #include "scene/gui/menu_button.h" #include "scene/gui/panel.h" #include "scene/gui/view_panner.h" +#include "scene/resources/mesh.h" #include "thirdparty/clipper2/include/clipper2/clipper.h" #define PRECISION 1 diff --git a/editor/scene/3d/node_3d_editor_gizmos.h b/editor/scene/3d/node_3d_editor_gizmos.h index 149604c0eff..702257851d5 100644 --- a/editor/scene/3d/node_3d_editor_gizmos.h +++ b/editor/scene/3d/node_3d_editor_gizmos.h @@ -35,6 +35,7 @@ #include "scene/3d/camera_3d.h" #include "scene/3d/node_3d.h" #include "scene/3d/skeleton_3d.h" +#include "scene/resources/mesh.h" class Timer; class EditorNode3DGizmoPlugin; diff --git a/modules/multiplayer/multiplayer_spawner.cpp b/modules/multiplayer/multiplayer_spawner.cpp index 8e38d941b64..9b081b0fd42 100644 --- a/modules/multiplayer/multiplayer_spawner.cpp +++ b/modules/multiplayer/multiplayer_spawner.cpp @@ -30,6 +30,7 @@ #include "multiplayer_spawner.h" +#include "core/io/resource_loader.h" #include "scene/main/multiplayer_api.h" #ifdef TOOLS_ENABLED diff --git a/scene/2d/path_2d.cpp b/scene/2d/path_2d.cpp index f1775701525..e51be10496c 100644 --- a/scene/2d/path_2d.cpp +++ b/scene/2d/path_2d.cpp @@ -32,6 +32,7 @@ #include "core/math/geometry_2d.h" #include "scene/main/timer.h" +#include "scene/resources/mesh.h" #ifdef TOOLS_ENABLED #include "editor/themes/editor_scale.h" diff --git a/scene/3d/cpu_particles_3d.cpp b/scene/3d/cpu_particles_3d.cpp index 67abef739c3..64333e4ef38 100644 --- a/scene/3d/cpu_particles_3d.cpp +++ b/scene/3d/cpu_particles_3d.cpp @@ -37,6 +37,7 @@ #include "scene/main/viewport.h" #include "scene/resources/curve_texture.h" #include "scene/resources/gradient_texture.h" +#include "scene/resources/mesh.h" #include "scene/resources/particle_process_material.h" AABB CPUParticles3D::get_aabb() const { diff --git a/scene/3d/gpu_particles_3d.cpp b/scene/3d/gpu_particles_3d.cpp index 4f37b10481f..81de5180b1a 100644 --- a/scene/3d/gpu_particles_3d.cpp +++ b/scene/3d/gpu_particles_3d.cpp @@ -34,6 +34,7 @@ #include "scene/3d/cpu_particles_3d.h" #include "scene/resources/curve_texture.h" #include "scene/resources/gradient_texture.h" +#include "scene/resources/mesh.h" #include "scene/resources/particle_process_material.h" AABB GPUParticles3D::get_aabb() const { diff --git a/scene/3d/label_3d.cpp b/scene/3d/label_3d.cpp index 255b7137444..23e109fc956 100644 --- a/scene/3d/label_3d.cpp +++ b/scene/3d/label_3d.cpp @@ -31,6 +31,7 @@ #include "label_3d.h" #include "scene/main/window.h" +#include "scene/resources/mesh.h" #include "scene/resources/theme.h" #include "scene/theme/theme_db.h" diff --git a/scene/3d/mesh_instance_3d.h b/scene/3d/mesh_instance_3d.h index 2e89639693e..68c60b69b28 100644 --- a/scene/3d/mesh_instance_3d.h +++ b/scene/3d/mesh_instance_3d.h @@ -32,6 +32,7 @@ #include "core/templates/local_vector.h" #include "scene/3d/visual_instance_3d.h" +#include "scene/resources/mesh.h" #ifndef NAVIGATION_3D_DISABLED class NavigationMesh; diff --git a/scene/3d/navigation/navigation_agent_3d.h b/scene/3d/navigation/navigation_agent_3d.h index 9b747538a39..03a92b7bc73 100644 --- a/scene/3d/navigation/navigation_agent_3d.h +++ b/scene/3d/navigation/navigation_agent_3d.h @@ -36,6 +36,7 @@ #include "servers/navigation_3d/navigation_path_query_result_3d.h" class Node3D; +class StandardMaterial3D; class NavigationAgent3D : public Node { GDCLASS(NavigationAgent3D, Node); diff --git a/scene/3d/path_3d.cpp b/scene/3d/path_3d.cpp index e39976dfa8d..dcc54f71e12 100644 --- a/scene/3d/path_3d.cpp +++ b/scene/3d/path_3d.cpp @@ -30,6 +30,8 @@ #include "path_3d.h" +#include "scene/resources/mesh.h" + Path3D::Path3D() { SceneTree *st = SceneTree::get_singleton(); if (st && st->is_debugging_paths_hint()) { diff --git a/scene/3d/physics/collision_object_3d.cpp b/scene/3d/physics/collision_object_3d.cpp index aaa6d0e5545..90449aa7ebd 100644 --- a/scene/3d/physics/collision_object_3d.cpp +++ b/scene/3d/physics/collision_object_3d.cpp @@ -31,6 +31,7 @@ #include "collision_object_3d.h" #include "scene/resources/3d/shape_3d.h" +#include "scene/resources/mesh.h" void CollisionObject3D::_notification(int p_what) { switch (p_what) { diff --git a/scene/3d/physics/collision_object_3d.h b/scene/3d/physics/collision_object_3d.h index e40b949c877..6fa539b03f9 100644 --- a/scene/3d/physics/collision_object_3d.h +++ b/scene/3d/physics/collision_object_3d.h @@ -32,6 +32,7 @@ #include "scene/3d/camera_3d.h" #include "scene/3d/node_3d.h" +#include "scene/resources/3d/shape_3d.h" class CollisionObject3D : public Node3D { GDCLASS(CollisionObject3D, Node3D); diff --git a/scene/3d/physics/ray_cast_3d.cpp b/scene/3d/physics/ray_cast_3d.cpp index 9bf03654ab0..4b988f69984 100644 --- a/scene/3d/physics/ray_cast_3d.cpp +++ b/scene/3d/physics/ray_cast_3d.cpp @@ -31,6 +31,7 @@ #include "ray_cast_3d.h" #include "scene/3d/physics/collision_object_3d.h" +#include "scene/resources/mesh.h" void RayCast3D::set_target_position(const Vector3 &p_point) { target_position = p_point; diff --git a/scene/3d/physics/shape_cast_3d.cpp b/scene/3d/physics/shape_cast_3d.cpp index 2a07173375a..26b3ae4f9cc 100644 --- a/scene/3d/physics/shape_cast_3d.cpp +++ b/scene/3d/physics/shape_cast_3d.cpp @@ -32,6 +32,7 @@ #include "scene/3d/physics/collision_object_3d.h" #include "scene/resources/3d/concave_polygon_shape_3d.h" +#include "scene/resources/mesh.h" void ShapeCast3D::_notification(int p_what) { switch (p_what) { diff --git a/scene/3d/physics/spring_arm_3d.h b/scene/3d/physics/spring_arm_3d.h index d43acac274a..996496e8c28 100644 --- a/scene/3d/physics/spring_arm_3d.h +++ b/scene/3d/physics/spring_arm_3d.h @@ -31,6 +31,7 @@ #pragma once #include "scene/3d/node_3d.h" +#include "scene/resources/3d/shape_3d.h" class SpringArm3D : public Node3D { GDCLASS(SpringArm3D, Node3D); diff --git a/scene/3d/sprite_3d.cpp b/scene/3d/sprite_3d.cpp index 89af9de6b3f..cda1dacfeb4 100644 --- a/scene/3d/sprite_3d.cpp +++ b/scene/3d/sprite_3d.cpp @@ -31,6 +31,7 @@ #include "sprite_3d.h" #include "scene/resources/atlas_texture.h" +#include "scene/resources/mesh.h" Color SpriteBase3D::_get_color_accum() { if (!color_dirty) { diff --git a/scene/3d/visual_instance_3d.h b/scene/3d/visual_instance_3d.h index efa8600de85..25226553c07 100644 --- a/scene/3d/visual_instance_3d.h +++ b/scene/3d/visual_instance_3d.h @@ -32,6 +32,8 @@ #include "scene/3d/node_3d.h" +class TriangleMesh; + class VisualInstance3D : public Node3D { GDCLASS(VisualInstance3D, Node3D); diff --git a/scene/animation/animation_blend_tree.h b/scene/animation/animation_blend_tree.h index 27a09e3fa7b..59edf47657d 100644 --- a/scene/animation/animation_blend_tree.h +++ b/scene/animation/animation_blend_tree.h @@ -31,6 +31,7 @@ #pragma once #include "scene/animation/animation_tree.h" +#include "scene/resources/curve.h" class AnimationNodeAnimation : public AnimationRootNode { GDCLASS(AnimationNodeAnimation, AnimationRootNode); diff --git a/scene/animation/animation_node_state_machine.h b/scene/animation/animation_node_state_machine.h index b7eafafdc9c..2b883554cf8 100644 --- a/scene/animation/animation_node_state_machine.h +++ b/scene/animation/animation_node_state_machine.h @@ -32,6 +32,7 @@ #include "core/math/expression.h" #include "scene/animation/animation_tree.h" +#include "scene/resources/curve.h" class AnimationNodeStateMachineTransition : public Resource { GDCLASS(AnimationNodeStateMachineTransition, Resource); diff --git a/scene/gui/color_picker.h b/scene/gui/color_picker.h index 26045f73db8..5609f577343 100644 --- a/scene/gui/color_picker.h +++ b/scene/gui/color_picker.h @@ -33,6 +33,7 @@ #include "scene/gui/box_container.h" #include "scene/gui/button.h" #include "scene/gui/popup.h" +#include "scene/resources/shader.h" class AspectRatioContainer; class ColorMode; diff --git a/scene/gui/color_picker_shape.cpp b/scene/gui/color_picker_shape.cpp index 9def06ea43c..8ea0f347f73 100644 --- a/scene/gui/color_picker_shape.cpp +++ b/scene/gui/color_picker_shape.cpp @@ -31,6 +31,7 @@ #include "color_picker_shape.h" #include "scene/gui/margin_container.h" +#include "scene/resources/material.h" void ColorPickerShape::_emit_color_changed() { color_picker->emit_signal(SNAME("color_changed"), color_picker->color); diff --git a/scene/gui/graph_edit.cpp b/scene/gui/graph_edit.cpp index 66a517f8870..110dddb84a5 100644 --- a/scene/gui/graph_edit.cpp +++ b/scene/gui/graph_edit.cpp @@ -44,6 +44,7 @@ #include "scene/gui/scroll_bar.h" #include "scene/gui/spin_box.h" #include "scene/gui/view_panner.h" +#include "scene/resources/material.h" #include "scene/resources/style_box_flat.h" #include "scene/theme/theme_db.h" diff --git a/scene/gui/graph_edit.h b/scene/gui/graph_edit.h index 8f6bac526d4..d5f74690432 100644 --- a/scene/gui/graph_edit.h +++ b/scene/gui/graph_edit.h @@ -34,6 +34,7 @@ #include "scene/gui/box_container.h" #include "scene/gui/graph_frame.h" #include "scene/gui/graph_node.h" +#include "scene/resources/shader.h" class Button; class GraphEdit; diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index ecd315536bf..c1684f15563 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -32,6 +32,7 @@ #include "rich_text_label.compat.inc" #include "core/input/input_map.h" +#include "core/io/resource_loader.h" #include "core/math/math_defs.h" #include "core/os/keyboard.h" #include "core/os/os.h" diff --git a/scene/main/node.cpp b/scene/main/node.cpp index 3b514daad29..0037ce31eff 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -31,6 +31,10 @@ #include "node.h" #include "node.compat.inc" +STATIC_ASSERT_INCOMPLETE_TYPE(class, Mesh); +STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer); +STATIC_ASSERT_INCOMPLETE_TYPE(class, Shader); + #include "core/config/project_settings.h" #include "core/io/resource_loader.h" #include "core/object/message_queue.h" diff --git a/scene/main/scene_tree.h b/scene/main/scene_tree.h index 1b4ad6bd559..63c22f26aec 100644 --- a/scene/main/scene_tree.h +++ b/scene/main/scene_tree.h @@ -35,10 +35,11 @@ #include "core/templates/paged_allocator.h" #include "core/templates/self_list.h" #include "scene/main/scene_tree_fti.h" -#include "scene/resources/mesh.h" +#include "servers/display/display_server.h" #undef Window +class ArrayMesh; class PackedScene; class Node; #ifndef _3D_DISABLED diff --git a/scene/main/shader_globals_override.cpp b/scene/main/shader_globals_override.cpp index 9d0bfbc33a3..c5b683cfe92 100644 --- a/scene/main/shader_globals_override.cpp +++ b/scene/main/shader_globals_override.cpp @@ -31,6 +31,7 @@ #include "shader_globals_override.h" #include "scene/main/node.h" +#include "servers/rendering/rendering_server.h" StringName *ShaderGlobalsOverride::_remap(const StringName &p_name) const { StringName *r = param_remaps.getptr(p_name); diff --git a/scene/property_utils.cpp b/scene/property_utils.cpp index f6f715436c9..99d21ae931a 100644 --- a/scene/property_utils.cpp +++ b/scene/property_utils.cpp @@ -31,6 +31,7 @@ #include "property_utils.h" #include "core/config/engine.h" +#include "core/io/resource_loader.h" #include "core/object/script_language.h" #include "core/templates/local_vector.h" #include "scene/resources/packed_scene.h" diff --git a/scene/resources/visual_shader_particle_nodes.cpp b/scene/resources/visual_shader_particle_nodes.cpp index 64c87885ef0..a14c9a9ef7f 100644 --- a/scene/resources/visual_shader_particle_nodes.cpp +++ b/scene/resources/visual_shader_particle_nodes.cpp @@ -31,6 +31,7 @@ #include "visual_shader_particle_nodes.h" #include "scene/resources/image_texture.h" +#include "scene/resources/mesh.h" // VisualShaderNodeParticleEmitter