From 16f5289f42b82f3314342cbd65f391c6df6a2390 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Wed, 18 Feb 2026 15:35:20 +0100 Subject: [PATCH 01/13] ClassDB: Allow binding bitfield enums and constants from separate namespaces --- core/object/class_db.h | 4 ++-- core/variant/binder_common.h | 3 ++- core/variant/type_info.h | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/object/class_db.h b/core/object/class_db.h index 2bb6b83548..5eaaa826ac 100644 --- a/core/object/class_db.h +++ b/core/object/class_db.h @@ -558,10 +558,10 @@ public: ::ClassDB::bind_integer_constant(get_class_static(), __constant_get_enum_name(m_constant), __constant_get_enum_value_name(#m_constant), m_constant); #define BIND_BITFIELD_FLAG(m_constant) \ - ::ClassDB::bind_integer_constant(get_class_static(), __constant_get_bitfield_name(m_constant), #m_constant, m_constant, true); + ::ClassDB::bind_integer_constant(get_class_static(), __constant_get_bitfield_name(m_constant), __constant_get_enum_value_name(#m_constant), m_constant, true); #define BIND_CONSTANT(m_constant) \ - ::ClassDB::bind_integer_constant(get_class_static(), StringName(), #m_constant, m_constant); + ::ClassDB::bind_integer_constant(get_class_static(), StringName(), __constant_get_enum_value_name(#m_constant), m_constant); #ifdef DEBUG_ENABLED diff --git a/core/variant/binder_common.h b/core/variant/binder_common.h index ba3c99766b..17cb5e8c6d 100644 --- a/core/variant/binder_common.h +++ b/core/variant/binder_common.h @@ -93,10 +93,11 @@ struct VariantCaster { }; #define VARIANT_ENUM_CAST(m_enum) MAKE_ENUM_TYPE_INFO(m_enum, m_enum) -#define VARIANT_BITFIELD_CAST(m_enum) MAKE_BITFIELD_TYPE_INFO(m_enum) +#define VARIANT_BITFIELD_CAST(m_enum) MAKE_BITFIELD_TYPE_INFO(m_enum, m_enum) // Use only for backwards compatibility when the location of an enum changes. #define VARIANT_ENUM_CAST_EXT(m_enum, m_bound_name) MAKE_ENUM_TYPE_INFO(m_enum, m_bound_name) +#define VARIANT_BITFIELD_CAST_EXT(m_enum, m_bound_name) MAKE_BITFIELD_TYPE_INFO(m_enum, m_bound_name) // Object enum casts must go here VARIANT_ENUM_CAST(Object::ConnectFlags); diff --git a/core/variant/type_info.h b/core/variant/type_info.h index 717f1b097d..b3594d5b27 100644 --- a/core/variant/type_info.h +++ b/core/variant/type_info.h @@ -254,14 +254,14 @@ inline StringName __constant_get_enum_value_name(const char *p_name) { return String(p_name).get_slice("::", 1); } -#define MAKE_BITFIELD_TYPE_INFO(m_enum) \ +#define MAKE_BITFIELD_TYPE_INFO(m_enum, m_bound_name) \ template <> \ struct GetTypeInfo { \ static const Variant::Type VARIANT_TYPE = Variant::INT; \ static const GodotTypeInfo::Metadata METADATA = GodotTypeInfo::METADATA_NONE; \ static inline PropertyInfo get_class_info() { \ return PropertyInfo(Variant::INT, String(), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_CLASS_IS_BITFIELD, \ - GodotTypeInfo::Internal::enum_qualified_name_to_class_info_name(String(#m_enum))); \ + GodotTypeInfo::Internal::enum_qualified_name_to_class_info_name(String(#m_bound_name))); \ } \ }; \ template <> \ @@ -270,7 +270,7 @@ inline StringName __constant_get_enum_value_name(const char *p_name) { static const GodotTypeInfo::Metadata METADATA = GodotTypeInfo::METADATA_NONE; \ static inline PropertyInfo get_class_info() { \ return PropertyInfo(Variant::INT, String(), PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_CLASS_IS_BITFIELD, \ - GodotTypeInfo::Internal::enum_qualified_name_to_class_info_name(String(#m_enum))); \ + GodotTypeInfo::Internal::enum_qualified_name_to_class_info_name(String(#m_bound_name))); \ } \ }; From f5a290ac462765afca34e64dd39f883511510147 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Tue, 17 Feb 2026 18:36:21 +0100 Subject: [PATCH 02/13] Move RenderingServer enums to a dedicated RenderingServerEnums (`RSE`) namespace A number of headers in the codebase included `rendering_server.h` just for some enum definitions. This means that any change to `rendering_server.h` or one of its dependencies would trigger a massive incremental rebuild. With this change, we decouple a number of classes from `rendering_server.h`, greatly speeding up incremental rebuilds for that area. On my machine, this reduces incremental compilation time after an edit of `rendering_server.h` by 60s (from 2m57s). --- drivers/gles3/effects/copy_effects.cpp | 8 +- drivers/gles3/effects/cubemap_filter.cpp | 4 +- drivers/gles3/effects/feed_effects.cpp | 4 +- drivers/gles3/effects/glow.cpp | 4 +- drivers/gles3/effects/post_effects.cpp | 12 +- drivers/gles3/environment/fog.cpp | 6 +- drivers/gles3/environment/fog.h | 4 +- drivers/gles3/rasterizer_canvas_gles3.cpp | 144 +- drivers/gles3/rasterizer_canvas_gles3.h | 27 +- drivers/gles3/rasterizer_gles3.cpp | 5 +- drivers/gles3/rasterizer_gles3.h | 2 +- drivers/gles3/rasterizer_scene_gles3.cpp | 378 ++-- drivers/gles3/rasterizer_scene_gles3.h | 60 +- drivers/gles3/storage/light_storage.cpp | 144 +- drivers/gles3/storage/light_storage.h | 66 +- drivers/gles3/storage/material_storage.cpp | 249 +-- drivers/gles3/storage/material_storage.h | 24 +- drivers/gles3/storage/mesh_storage.cpp | 288 ++-- drivers/gles3/storage/mesh_storage.h | 22 +- drivers/gles3/storage/particles_storage.cpp | 66 +- drivers/gles3/storage/particles_storage.h | 28 +- .../storage/render_scene_buffers_gles3.cpp | 40 +- .../storage/render_scene_buffers_gles3.h | 14 +- drivers/gles3/storage/texture_storage.cpp | 120 +- drivers/gles3/storage/texture_storage.h | 74 +- drivers/gles3/storage/utilities.cpp | 28 +- drivers/gles3/storage/utilities.h | 5 +- .../animation_player_editor_plugin.cpp | 6 +- .../animation_track_editor_plugins.cpp | 1 + editor/audio/audio_stream_editor_plugin.cpp | 1 + editor/editor_interface.cpp | 3 +- editor/editor_node.cpp | 26 +- editor/gui/progress_dialog.cpp | 3 +- editor/import/3d/editor_import_collada.cpp | 16 +- editor/import/3d/resource_importer_obj.cpp | 6 +- .../import/audio_stream_import_settings.cpp | 1 + editor/import/resource_importer_texture.cpp | 2 +- editor/import/resource_importer_texture.h | 6 +- editor/inspector/editor_inspector.cpp | 1 + editor/inspector/editor_preview_plugins.cpp | 21 +- editor/inspector/editor_resource_picker.cpp | 1 + editor/inspector/editor_resource_preview.cpp | 5 +- editor/project_manager/project_dialog.cpp | 1 + editor/register_editor_types.cpp | 2 + editor/scene/2d/path_2d_editor_plugin.cpp | 19 +- editor/scene/2d/polygon_2d_editor_plugin.cpp | 1 + editor/scene/2d/tiles/tile_atlas_view.cpp | 4 +- editor/scene/2d/tiles/tile_data_editors.cpp | 1 + editor/scene/2d/tiles/tiles_editor_plugin.cpp | 3 +- editor/scene/3d/camera_3d_editor_plugin.cpp | 1 + .../3d/gizmos/fog_volume_gizmo_plugin.cpp | 2 +- .../3d/gizmos/lightmap_gi_gizmo_plugin.cpp | 8 +- .../3d/gizmos/marker_3d_gizmo_plugin.cpp | 2 +- .../collision_polygon_3d_gizmo_plugin.cpp | 6 +- editor/scene/3d/lightmap_gi_editor_plugin.cpp | 1 + .../3d/material_3d_conversion_plugins.cpp | 1 + .../scene/3d/mesh_library_editor_plugin.cpp | 10 +- editor/scene/3d/node_3d_editor_gizmos.cpp | 19 +- editor/scene/3d/node_3d_editor_plugin.cpp | 97 +- editor/scene/canvas_item_editor_plugin.cpp | 5 +- editor/scene/material_editor_plugin.cpp | 1 + .../texture/texture_region_editor_plugin.cpp | 1 + editor/script/script_text_editor.cpp | 1 + ...editor_native_shader_source_visualizer.cpp | 1 + editor/shader/shader_globals_editor.cpp | 131 +- editor/shader/text_shader_editor.cpp | 29 +- editor/shader/visual_shader_editor_plugin.cpp | 9 +- main/main.cpp | 5 +- main/performance.cpp | 22 +- modules/betsy/image_compress_betsy.cpp | 1 + modules/csg/csg_shape.cpp | 1 + modules/gltf/gltf_document.cpp | 10 +- modules/gltf/structures/gltf_mesh.h | 1 + .../godot_physics_3d/godot_soft_body_3d.cpp | 4 +- .../gridmap/editor/grid_map_editor_plugin.cpp | 41 +- modules/gridmap/grid_map.cpp | 20 +- modules/gridmap/grid_map.h | 4 +- .../objects/jolt_soft_body_3d.cpp | 4 +- modules/lightmapper_rd/lightmapper_rd.cpp | 3 +- .../navigation_obstacle_3d_editor_plugin.cpp | 5 +- .../openxr_composition_layer_extension.cpp | 7 +- .../openxr_visibility_mask_extension.cpp | 8 +- .../platform/openxr_opengl_extension.cpp | 3 +- .../openxr_spatial_plane_tracking.cpp | 6 +- .../openxr/scene/openxr_visibility_mask.cpp | 3 +- modules/raycast/raycast_occlusion_cull.cpp | 4 +- modules/raycast/raycast_occlusion_cull.h | 4 +- modules/webxr/webxr_interface_js.cpp | 2 +- platform/ios/export/export_plugin.cpp | 14 +- .../wayland/display_server_wayland.cpp | 1 + platform/web/export/export_plugin.cpp | 4 +- platform/windows/display_server_windows.h | 1 - platform/windows/os_windows.cpp | 1 + scene/2d/back_buffer_copy.cpp | 2 + scene/2d/canvas_group.cpp | 10 +- scene/2d/canvas_modulate.cpp | 2 + scene/2d/cpu_particles_2d.cpp | 15 +- scene/2d/gpu_particles_2d.cpp | 31 +- scene/2d/gpu_particles_2d.h | 10 +- scene/2d/light_2d.cpp | 18 +- scene/2d/light_occluder_2d.cpp | 3 +- scene/2d/line_2d.cpp | 1 + scene/2d/marker_2d.cpp | 2 + scene/2d/navigation/navigation_agent_2d.cpp | 3 +- .../2d/navigation/navigation_obstacle_2d.cpp | 3 +- scene/2d/navigation/navigation_region_2d.cpp | 7 +- scene/2d/node_2d.cpp | 1 + scene/2d/parallax_2d.cpp | 1 + scene/2d/parallax_layer.cpp | 1 + scene/2d/path_2d.cpp | 7 +- scene/2d/polygon_2d.cpp | 17 +- scene/2d/skeleton_2d.cpp | 1 + scene/2d/tile_map_layer.cpp | 33 +- scene/2d/tile_map_layer.h | 5 +- scene/2d/visible_on_screen_notifier_2d.cpp | 2 + scene/3d/camera_3d.cpp | 1 + scene/3d/cpu_particles_3d.cpp | 7 +- scene/3d/decal.cpp | 3 +- scene/3d/fog_volume.cpp | 13 +- scene/3d/fog_volume.h | 6 +- scene/3d/gpu_particles_3d.cpp | 7 +- scene/3d/gpu_particles_3d.h | 10 +- scene/3d/gpu_particles_collision_3d.cpp | 21 +- scene/3d/gpu_particles_collision_3d.h | 4 +- scene/3d/label_3d.cpp | 25 +- scene/3d/light_3d.cpp | 36 +- scene/3d/light_3d.h | 50 +- scene/3d/lightmap_gi.cpp | 9 +- scene/3d/mesh_instance_3d.cpp | 5 +- scene/3d/navigation/navigation_agent_3d.cpp | 1 + scene/3d/navigation/navigation_link_3d.cpp | 1 + .../3d/navigation/navigation_obstacle_3d.cpp | 5 +- scene/3d/navigation/navigation_region_3d.cpp | 1 + scene/3d/node_3d.cpp | 1 + scene/3d/occluder_instance_3d.cpp | 1 + scene/3d/path_3d.cpp | 1 + scene/3d/physics/animatable_body_3d.cpp | 2 + scene/3d/physics/character_body_3d.cpp | 2 + scene/3d/physics/collision_object_3d.cpp | 1 + scene/3d/physics/collision_shape_3d.cpp | 3 +- scene/3d/physics/physical_bone_3d.cpp | 2 + .../3d/physics/physical_bone_simulator_3d.cpp | 1 + scene/3d/physics/ray_cast_3d.cpp | 1 + scene/3d/physics/rigid_body_3d.cpp | 2 + scene/3d/physics/shape_cast_3d.cpp | 1 + scene/3d/physics/soft_body_3d.cpp | 7 +- scene/3d/physics/spring_arm_3d.cpp | 1 + scene/3d/physics/static_body_3d.cpp | 8 +- scene/3d/reflection_probe.cpp | 5 +- scene/3d/sprite_3d.cpp | 31 +- scene/3d/sprite_3d.h | 2 +- scene/3d/visible_on_screen_notifier_3d.cpp | 3 + scene/3d/visual_instance_3d.cpp | 29 +- scene/3d/visual_instance_3d.h | 16 +- scene/3d/voxel_gi.cpp | 1 + scene/debugger/runtime_node_select.cpp | 25 +- scene/debugger/scene_debugger.cpp | 1 + scene/gui/code_edit.cpp | 1 + scene/gui/color_picker_shape.cpp | 2 + scene/gui/control.cpp | 2 + scene/gui/control.h | 1 + scene/gui/item_list.cpp | 1 + scene/gui/label.cpp | 1 + scene/gui/line_edit.cpp | 1 + scene/gui/menu_button.cpp | 1 + scene/gui/nine_patch_rect.cpp | 2 +- scene/gui/rich_text_label.cpp | 1 + scene/gui/text_edit.cpp | 4 +- scene/gui/texture_progress_bar.cpp | 4 +- scene/gui/texture_rect.cpp | 3 +- scene/gui/tree.cpp | 1 + scene/main/canvas_item.cpp | 33 +- scene/main/canvas_item.h | 10 +- scene/main/canvas_layer.cpp | 3 +- scene/main/scene_tree.cpp | 3 + scene/main/shader_globals_override.cpp | 58 +- scene/main/viewport.cpp | 57 +- scene/main/window.cpp | 22 +- scene/register_scene_types.cpp | 2 + .../2d/skeleton/skeleton_modification_2d.cpp | 2 + .../skeleton_modification_2d_ccdik.cpp | 2 + .../skeleton_modification_2d_lookat.cpp | 2 + .../skeleton_modification_2d_stackholder.cpp | 2 + .../skeleton_modification_2d_twoboneik.cpp | 2 + scene/resources/2d/tile_set.cpp | 1 + scene/resources/3d/box_shape_3d.cpp | 6 +- scene/resources/3d/capsule_shape_3d.cpp | 6 +- .../resources/3d/concave_polygon_shape_3d.cpp | 4 +- .../resources/3d/convex_polygon_shape_3d.cpp | 6 +- scene/resources/3d/cylinder_shape_3d.cpp | 6 +- scene/resources/3d/fog_material.cpp | 1 + scene/resources/3d/height_map_shape_3d.cpp | 6 +- scene/resources/3d/importer_mesh.cpp | 56 +- scene/resources/3d/importer_mesh.h | 3 +- scene/resources/3d/mesh_library.cpp | 16 +- scene/resources/3d/mesh_library.h | 8 +- scene/resources/3d/primitive_meshes.cpp | 150 +- scene/resources/3d/sky_material.cpp | 1 + scene/resources/3d/sphere_shape_3d.cpp | 6 +- scene/resources/3d/world_3d.cpp | 2 + .../resources/3d/world_boundary_shape_3d.cpp | 6 +- scene/resources/blit_material.cpp | 1 + scene/resources/canvas_item_material.cpp | 1 + scene/resources/compositor.cpp | 14 +- scene/resources/compressed_texture.cpp | 9 +- scene/resources/compressed_texture.h | 6 +- scene/resources/dpi_texture.cpp | 1 + scene/resources/drawable_texture_2d.cpp | 6 +- scene/resources/environment.cpp | 18 +- scene/resources/image_texture.cpp | 6 +- scene/resources/immediate_mesh.cpp | 4 +- scene/resources/material.cpp | 1 + scene/resources/material.h | 6 +- scene/resources/mesh.cpp | 24 +- scene/resources/mesh.h | 138 +- scene/resources/mesh_texture.cpp | 1 + scene/resources/multimesh.cpp | 4 +- scene/resources/multimesh.h | 6 +- scene/resources/particle_process_material.cpp | 1 + scene/resources/placeholder_textures.cpp | 2 +- scene/resources/sky.cpp | 4 +- scene/resources/style_box_texture.cpp | 2 +- scene/resources/surface_tool.cpp | 128 +- scene/resources/surface_tool.h | 29 +- scene/resources/texture_rd.cpp | 8 +- scene/resources/visual_shader.cpp | 49 +- scene/resources/visual_shader.h | 2 +- scene/resources/visual_shader_nodes.cpp | 2 + scene/theme/theme_db.cpp | 1 + servers/debugger/servers_debugger.cpp | 6 +- servers/rendering/dummy/environment/fog.h | 4 +- .../rendering/dummy/rasterizer_canvas_dummy.h | 6 +- servers/rendering/dummy/rasterizer_dummy.h | 2 +- .../rendering/dummy/rasterizer_scene_dummy.h | 36 +- .../rendering/dummy/storage/light_storage.h | 32 +- .../dummy/storage/material_storage.cpp | 34 +- .../dummy/storage/material_storage.h | 8 +- .../rendering/dummy/storage/mesh_storage.h | 10 +- .../dummy/storage/particles_storage.h | 10 +- .../rendering/dummy/storage/texture_storage.h | 32 +- servers/rendering/dummy/storage/utilities.cpp | 10 +- servers/rendering/dummy/storage/utilities.h | 4 +- servers/rendering/environment/renderer_fog.h | 4 +- servers/rendering/renderer_canvas_cull.cpp | 64 +- servers/rendering/renderer_canvas_cull.h | 34 +- servers/rendering/renderer_canvas_render.h | 39 +- servers/rendering/renderer_compositor.cpp | 2 +- servers/rendering/renderer_compositor.h | 2 +- .../rendering/renderer_geometry_instance.h | 5 +- .../renderer_rd/effects/bokeh_dof.cpp | 30 +- .../renderer_rd/effects/copy_effects.cpp | 46 +- .../renderer_rd/effects/debug_effects.cpp | 14 +- servers/rendering/renderer_rd/effects/fsr.cpp | 2 +- .../renderer_rd/effects/luminance.cpp | 2 +- .../effects/motion_vectors_store.cpp | 2 +- .../rendering/renderer_rd/effects/resolve.cpp | 6 +- .../renderer_rd/effects/roughness_limiter.cpp | 2 +- .../rendering/renderer_rd/effects/smaa.cpp | 2 +- .../renderer_rd/effects/ss_effects.cpp | 84 +- .../renderer_rd/effects/ss_effects.h | 14 +- servers/rendering/renderer_rd/effects/taa.cpp | 2 +- .../renderer_rd/effects/tone_mapper.cpp | 52 +- .../renderer_rd/effects/tone_mapper.h | 4 +- servers/rendering/renderer_rd/effects/vrs.cpp | 19 +- .../rendering/renderer_rd/environment/fog.cpp | 25 +- .../rendering/renderer_rd/environment/fog.h | 6 +- .../rendering/renderer_rd/environment/gi.cpp | 108 +- .../rendering/renderer_rd/environment/gi.h | 10 +- .../rendering/renderer_rd/environment/sky.cpp | 59 +- .../rendering/renderer_rd/environment/sky.h | 6 +- .../render_forward_clustered.cpp | 360 ++-- .../render_forward_clustered.h | 20 +- .../scene_shader_forward_clustered.cpp | 19 +- .../scene_shader_forward_clustered.h | 10 +- .../forward_mobile/render_forward_mobile.cpp | 238 +-- .../forward_mobile/render_forward_mobile.h | 18 +- .../scene_shader_forward_mobile.cpp | 17 +- .../scene_shader_forward_mobile.h | 10 +- .../renderer_rd/pipeline_hash_map_rd.h | 14 +- .../renderer_rd/renderer_canvas_render_rd.cpp | 111 +- .../renderer_rd/renderer_canvas_render_rd.h | 28 +- .../renderer_rd/renderer_compositor_rd.cpp | 2 +- .../renderer_rd/renderer_compositor_rd.h | 2 +- .../renderer_rd/renderer_scene_render_rd.cpp | 201 +-- .../renderer_rd/renderer_scene_render_rd.h | 50 +- .../renderer_rd/storage_rd/light_storage.cpp | 246 +-- .../renderer_rd/storage_rd/light_storage.h | 68 +- .../storage_rd/material_storage.cpp | 153 +- .../renderer_rd/storage_rd/material_storage.h | 20 +- .../renderer_rd/storage_rd/mesh_storage.cpp | 228 +-- .../renderer_rd/storage_rd/mesh_storage.h | 18 +- .../storage_rd/particles_storage.cpp | 67 +- .../storage_rd/particles_storage.h | 24 +- .../render_scene_buffers_rd.compat.inc | 12 +- .../storage_rd/render_scene_buffers_rd.cpp | 23 +- .../storage_rd/render_scene_buffers_rd.h | 30 +- .../storage_rd/render_scene_data_rd.cpp | 20 +- .../storage_rd/render_scene_data_rd.h | 2 +- .../storage_rd/texture_storage.cpp | 134 +- .../renderer_rd/storage_rd/texture_storage.h | 56 +- .../renderer_rd/storage_rd/utilities.cpp | 34 +- .../renderer_rd/storage_rd/utilities.h | 4 +- servers/rendering/renderer_scene_cull.cpp | 517 +++--- servers/rendering/renderer_scene_cull.h | 88 +- .../rendering/renderer_scene_occlusion_cull.h | 2 +- servers/rendering/renderer_scene_render.cpp | 30 +- servers/rendering/renderer_scene_render.h | 60 +- servers/rendering/renderer_viewport.cpp | 162 +- servers/rendering/renderer_viewport.h | 65 +- servers/rendering/rendering_light_culler.cpp | 26 +- servers/rendering/rendering_method.h | 69 +- servers/rendering/rendering_server.compat.inc | 4 +- servers/rendering/rendering_server.cpp | 1529 +++++++++-------- servers/rendering/rendering_server.h | 1224 +++---------- .../rendering/rendering_server_constants.h | 45 - .../rendering/rendering_server_default.cpp | 30 +- servers/rendering/rendering_server_default.h | 169 +- servers/rendering/rendering_server_enums.h | 912 ++++++++++ servers/rendering/shader_compiler.cpp | 4 +- servers/rendering/shader_compiler.h | 4 +- servers/rendering/shader_language.cpp | 20 +- servers/rendering/shader_types.cpp | 768 ++++----- servers/rendering/shader_types.h | 10 +- .../storage/camera_attributes_storage.cpp | 8 +- .../storage/camera_attributes_storage.h | 14 +- .../rendering/storage/compositor_storage.cpp | 24 +- .../rendering/storage/compositor_storage.h | 16 +- .../rendering/storage/environment_storage.cpp | 60 +- .../rendering/storage/environment_storage.h | 42 +- servers/rendering/storage/light_storage.h | 34 +- servers/rendering/storage/material_storage.h | 7 +- servers/rendering/storage/mesh_storage.cpp | 11 +- servers/rendering/storage/mesh_storage.h | 13 +- servers/rendering/storage/particles_storage.h | 12 +- .../storage/render_scene_buffers.cpp | 4 +- .../rendering/storage/render_scene_buffers.h | 31 +- servers/rendering/storage/texture_storage.h | 33 +- servers/rendering/storage/utilities.h | 16 +- servers/xr/xr_vrs.cpp | 2 +- tests/scene/test_arraymesh.cpp | 10 +- tests/scene/test_primitives.cpp | 38 +- tests/servers/test_navigation_server_3d.cpp | 4 +- tests/test_main.cpp | 1 + 343 files changed, 6732 insertions(+), 6432 deletions(-) delete mode 100644 servers/rendering/rendering_server_constants.h create mode 100644 servers/rendering/rendering_server_enums.h diff --git a/drivers/gles3/effects/copy_effects.cpp b/drivers/gles3/effects/copy_effects.cpp index d26b2d3969..ba8ad1c44d 100644 --- a/drivers/gles3/effects/copy_effects.cpp +++ b/drivers/gles3/effects/copy_effects.cpp @@ -68,8 +68,8 @@ CopyEffects::CopyEffects() { glGenVertexArrays(1, &screen_triangle_array); glBindVertexArray(screen_triangle_array); glBindBuffer(GL_ARRAY_BUFFER, screen_triangle); - glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); - glEnableVertexAttribArray(RS::ARRAY_VERTEX); + glVertexAttribPointer(RSE::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); + glEnableVertexAttribArray(RSE::ARRAY_VERTEX); glBindVertexArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); //unbind } @@ -100,8 +100,8 @@ CopyEffects::CopyEffects() { glGenVertexArrays(1, &quad_array); glBindVertexArray(quad_array); glBindBuffer(GL_ARRAY_BUFFER, quad); - glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); - glEnableVertexAttribArray(RS::ARRAY_VERTEX); + glVertexAttribPointer(RSE::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); + glEnableVertexAttribArray(RSE::ARRAY_VERTEX); glBindVertexArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); //unbind } diff --git a/drivers/gles3/effects/cubemap_filter.cpp b/drivers/gles3/effects/cubemap_filter.cpp index 433b2c6e82..801cda8626 100644 --- a/drivers/gles3/effects/cubemap_filter.cpp +++ b/drivers/gles3/effects/cubemap_filter.cpp @@ -72,8 +72,8 @@ CubemapFilter::CubemapFilter() { glGenVertexArrays(1, &screen_triangle_array); glBindVertexArray(screen_triangle_array); glBindBuffer(GL_ARRAY_BUFFER, screen_triangle); - glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); - glEnableVertexAttribArray(RS::ARRAY_VERTEX); + glVertexAttribPointer(RSE::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); + glEnableVertexAttribArray(RSE::ARRAY_VERTEX); glBindVertexArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); //unbind } diff --git a/drivers/gles3/effects/feed_effects.cpp b/drivers/gles3/effects/feed_effects.cpp index b89f7cff4f..376e1f4bea 100644 --- a/drivers/gles3/effects/feed_effects.cpp +++ b/drivers/gles3/effects/feed_effects.cpp @@ -66,8 +66,8 @@ FeedEffects::FeedEffects() { glGenVertexArrays(1, &screen_triangle_array); glBindVertexArray(screen_triangle_array); glBindBuffer(GL_ARRAY_BUFFER, screen_triangle); - glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); - glEnableVertexAttribArray(RS::ARRAY_VERTEX); + glVertexAttribPointer(RSE::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); + glEnableVertexAttribArray(RSE::ARRAY_VERTEX); glBindVertexArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); //unbind } diff --git a/drivers/gles3/effects/glow.cpp b/drivers/gles3/effects/glow.cpp index 022fab27ac..ff805784d2 100644 --- a/drivers/gles3/effects/glow.cpp +++ b/drivers/gles3/effects/glow.cpp @@ -67,8 +67,8 @@ Glow::Glow() { glGenVertexArrays(1, &screen_triangle_array); glBindVertexArray(screen_triangle_array); glBindBuffer(GL_ARRAY_BUFFER, screen_triangle); - glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); - glEnableVertexAttribArray(RS::ARRAY_VERTEX); + glVertexAttribPointer(RSE::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); + glEnableVertexAttribArray(RSE::ARRAY_VERTEX); glBindVertexArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); //unbind } diff --git a/drivers/gles3/effects/post_effects.cpp b/drivers/gles3/effects/post_effects.cpp index 62b1897d8a..8190e8db71 100644 --- a/drivers/gles3/effects/post_effects.cpp +++ b/drivers/gles3/effects/post_effects.cpp @@ -68,8 +68,8 @@ PostEffects::PostEffects() { glGenVertexArrays(1, &screen_triangle_array); glBindVertexArray(screen_triangle_array); glBindBuffer(GL_ARRAY_BUFFER, screen_triangle); - glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); - glEnableVertexAttribArray(RS::ARRAY_VERTEX); + glVertexAttribPointer(RSE::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); + glEnableVertexAttribArray(RSE::ARRAY_VERTEX); glBindVertexArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); //unbind } @@ -109,13 +109,13 @@ void PostEffects::post_copy( flags |= PostShaderGLES3::USE_GLOW; } if (p_ssao_enabled) { - if (p_ssao_quality_level == RS::ENV_SSAO_QUALITY_VERY_LOW) { + if (p_ssao_quality_level == RSE::ENV_SSAO_QUALITY_VERY_LOW) { flags |= PostShaderGLES3::USE_SSAO_ABYSS; - } else if (p_ssao_quality_level == RS::ENV_SSAO_QUALITY_LOW) { + } else if (p_ssao_quality_level == RSE::ENV_SSAO_QUALITY_LOW) { flags |= PostShaderGLES3::USE_SSAO_LOW; - } else if (p_ssao_quality_level == RS::ENV_SSAO_QUALITY_HIGH) { + } else if (p_ssao_quality_level == RSE::ENV_SSAO_QUALITY_HIGH) { flags |= PostShaderGLES3::USE_SSAO_HIGH; - } else if (p_ssao_quality_level == RS::ENV_SSAO_QUALITY_ULTRA) { + } else if (p_ssao_quality_level == RSE::ENV_SSAO_QUALITY_ULTRA) { flags |= PostShaderGLES3::USE_SSAO_MEGA; } else { flags |= PostShaderGLES3::USE_SSAO_MED; diff --git a/drivers/gles3/environment/fog.cpp b/drivers/gles3/environment/fog.cpp index 84e257f670..40152c0f18 100644 --- a/drivers/gles3/environment/fog.cpp +++ b/drivers/gles3/environment/fog.cpp @@ -46,7 +46,7 @@ void Fog::fog_volume_initialize(RID p_rid) { void Fog::fog_volume_free(RID p_rid) { } -void Fog::fog_volume_set_shape(RID p_fog_volume, RS::FogVolumeShape p_shape) { +void Fog::fog_volume_set_shape(RID p_fog_volume, RSE::FogVolumeShape p_shape) { } void Fog::fog_volume_set_size(RID p_fog_volume, const Vector3 &p_size) { @@ -59,8 +59,8 @@ AABB Fog::fog_volume_get_aabb(RID p_fog_volume) const { return AABB(); } -RS::FogVolumeShape Fog::fog_volume_get_shape(RID p_fog_volume) const { - return RS::FOG_VOLUME_SHAPE_BOX; +RSE::FogVolumeShape Fog::fog_volume_get_shape(RID p_fog_volume) const { + return RSE::FOG_VOLUME_SHAPE_BOX; } #endif // GLES3_ENABLED diff --git a/drivers/gles3/environment/fog.h b/drivers/gles3/environment/fog.h index 9db34eae5d..f55a6e33b2 100644 --- a/drivers/gles3/environment/fog.h +++ b/drivers/gles3/environment/fog.h @@ -44,11 +44,11 @@ public: virtual void fog_volume_initialize(RID p_rid) override; virtual void fog_volume_free(RID p_rid) override; - virtual void fog_volume_set_shape(RID p_fog_volume, RS::FogVolumeShape p_shape) override; + virtual void fog_volume_set_shape(RID p_fog_volume, RSE::FogVolumeShape p_shape) override; virtual void fog_volume_set_size(RID p_fog_volume, const Vector3 &p_size) override; virtual void fog_volume_set_material(RID p_fog_volume, RID p_material) override; virtual AABB fog_volume_get_aabb(RID p_fog_volume) const override; - virtual RS::FogVolumeShape fog_volume_get_shape(RID p_fog_volume) const override; + virtual RSE::FogVolumeShape fog_volume_get_shape(RID p_fog_volume) const override; }; } // namespace GLES3 diff --git a/drivers/gles3/rasterizer_canvas_gles3.cpp b/drivers/gles3/rasterizer_canvas_gles3.cpp index 344a1ec232..f88f7cddd0 100644 --- a/drivers/gles3/rasterizer_canvas_gles3.cpp +++ b/drivers/gles3/rasterizer_canvas_gles3.cpp @@ -103,7 +103,7 @@ void RasterizerCanvasGLES3::_update_transform_to_mat4(const Transform3D &p_trans p_mat4[15] = 1; } -void RasterizerCanvasGLES3::canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_light_list, const Transform2D &p_canvas_transform, RS::CanvasItemTextureFilter p_default_filter, RS::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info) { +void RasterizerCanvasGLES3::canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_light_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info) { GLES3::TextureStorage *texture_storage = GLES3::TextureStorage::get_singleton(); GLES3::MaterialStorage *material_storage = GLES3::MaterialStorage::get_singleton(); GLES3::MeshStorage *mesh_storage = GLES3::MeshStorage::get_singleton(); @@ -422,7 +422,7 @@ void RasterizerCanvasGLES3::canvas_render_items(RID p_to_render_target, Item *p_ // Check material for something that may change flow of rendering, but do not bind for now. RID material = ci->material_owner == nullptr ? ci->material : ci->material_owner->material; if (material.is_valid()) { - GLES3::CanvasMaterialData *md = static_cast(material_storage->material_get_data(material, RS::SHADER_CANVAS_ITEM)); + GLES3::CanvasMaterialData *md = static_cast(material_storage->material_get_data(material, RSE::SHADER_CANVAS_ITEM)); if (md && md->shader_data->valid) { if (md->shader_data->uses_screen_texture && canvas_group_owner == nullptr) { if (!material_screen_texture_cached) { @@ -469,10 +469,10 @@ void RasterizerCanvasGLES3::canvas_render_items(RID p_to_render_target, Item *p_ _render_items(p_to_render_target, item_count, canvas_transform_inverse, p_light_list, r_sdf_used, false, r_render_info, material_screen_texture_mipmaps_cached); item_count = 0; - if (ci->canvas_group_owner->canvas_group->mode != RS::CANVAS_GROUP_MODE_TRANSPARENT) { + if (ci->canvas_group_owner->canvas_group->mode != RSE::CANVAS_GROUP_MODE_TRANSPARENT) { Rect2i group_rect = ci->canvas_group_owner->global_rect_cache; texture_storage->render_target_copy_to_back_buffer(p_to_render_target, group_rect, false); - if (ci->canvas_group_owner->canvas_group->mode == RS::CANVAS_GROUP_MODE_CLIP_AND_DRAW) { + if (ci->canvas_group_owner->canvas_group->mode == RSE::CANVAS_GROUP_MODE_CLIP_AND_DRAW) { ci->canvas_group_owner->use_canvas_group = false; items[item_count++] = ci->canvas_group_owner; } @@ -488,7 +488,7 @@ void RasterizerCanvasGLES3::canvas_render_items(RID p_to_render_target, Item *p_ ci->canvas_group_owner = nullptr; //must be cleared } - if (canvas_group_owner == nullptr && ci->canvas_group != nullptr && ci->canvas_group->mode != RS::CANVAS_GROUP_MODE_CLIP_AND_DRAW) { + if (canvas_group_owner == nullptr && ci->canvas_group != nullptr && ci->canvas_group->mode != RSE::CANVAS_GROUP_MODE_CLIP_AND_DRAW) { skip_item = true; } @@ -605,11 +605,11 @@ void RasterizerCanvasGLES3::_render_items(RID p_to_render_target, int p_item_cou RID material = ci->material_owner == nullptr ? ci->material : ci->material_owner->material; if (ci->use_canvas_group) { - if (ci->canvas_group->mode == RS::CANVAS_GROUP_MODE_CLIP_AND_DRAW) { + if (ci->canvas_group->mode == RSE::CANVAS_GROUP_MODE_CLIP_AND_DRAW) { material = default_clip_children_material; } else { if (material.is_null()) { - if (ci->canvas_group->mode == RS::CANVAS_GROUP_MODE_CLIP_ONLY) { + if (ci->canvas_group->mode == RSE::CANVAS_GROUP_MODE_CLIP_ONLY) { material = default_clip_children_material; } else { material = default_canvas_group_material; @@ -623,7 +623,7 @@ void RasterizerCanvasGLES3::_render_items(RID p_to_render_target, int p_item_cou GLES3::CanvasMaterialData *material_data = nullptr; if (material.is_valid()) { - material_data = static_cast(material_storage->material_get_data(material, RS::SHADER_CANVAS_ITEM)); + material_data = static_cast(material_storage->material_get_data(material, RSE::SHADER_CANVAS_ITEM)); } shader_data_cache = nullptr; if (material_data) { @@ -810,7 +810,7 @@ void RasterizerCanvasGLES3::_render_items(RID p_to_render_target, int p_item_cou } void RasterizerCanvasGLES3::_record_item_commands(const Item *p_item, RID p_render_target, const Transform2D &p_canvas_transform_inverse, Item *¤t_clip, GLES3::CanvasShaderData::BlendMode p_blend_mode, Light *p_lights, uint32_t &r_index, bool &r_batch_broken, bool &r_sdf_used, const Point2 &p_repeat_offset) { - RenderingServer::CanvasItemTextureFilter texture_filter = p_item->texture_filter == RS::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ? state.default_filter : p_item->texture_filter; + RSE::CanvasItemTextureFilter texture_filter = p_item->texture_filter == RSE::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ? state.default_filter : p_item->texture_filter; const uint64_t specialization_command_mask = ~(CanvasShaderGLES3::USE_NINEPATCH | CanvasShaderGLES3::USE_PRIMITIVE | CanvasShaderGLES3::USE_ATTRIBUTES | CanvasShaderGLES3::USE_INSTANCING); if (texture_filter != state.canvas_instance_batches[state.current_batch_index].filter) { @@ -819,7 +819,7 @@ void RasterizerCanvasGLES3::_record_item_commands(const Item *p_item, RID p_rend state.canvas_instance_batches[state.current_batch_index].filter = texture_filter; } - RenderingServer::CanvasItemTextureRepeat texture_repeat = p_item->texture_repeat == RS::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT ? state.default_repeat : p_item->texture_repeat; + RSE::CanvasItemTextureRepeat texture_repeat = p_item->texture_repeat == RSE::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT ? state.default_repeat : p_item->texture_repeat; if (texture_repeat != state.canvas_instance_batches[state.current_batch_index].repeat) { _new_batch(r_batch_broken); @@ -932,9 +932,9 @@ void RasterizerCanvasGLES3::_record_item_commands(const Item *p_item, RID p_rend case Item::Command::TYPE_RECT: { const Item::CommandRect *rect = static_cast(c); - if (rect->flags & CANVAS_RECT_TILE && state.canvas_instance_batches[state.current_batch_index].repeat != RenderingServer::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED) { + if (rect->flags & CANVAS_RECT_TILE && state.canvas_instance_batches[state.current_batch_index].repeat != RSE::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED) { _new_batch(r_batch_broken); - state.canvas_instance_batches[state.current_batch_index].repeat = RenderingServer::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED; + state.canvas_instance_batches[state.current_batch_index].repeat = RSE::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED; } if (rect->texture != state.canvas_instance_batches[state.current_batch_index].tex || state.canvas_instance_batches[state.current_batch_index].command_type != Item::Command::TYPE_RECT) { @@ -1292,9 +1292,9 @@ void RasterizerCanvasGLES3::_record_item_commands(const Item *p_item, RID p_rend } } -_FORCE_INLINE_ static uint32_t _indices_to_primitives(RS::PrimitiveType p_primitive, uint32_t p_indices) { - static const uint32_t divisor[RS::PRIMITIVE_MAX] = { 1, 2, 1, 3, 1 }; - static const uint32_t subtractor[RS::PRIMITIVE_MAX] = { 0, 0, 1, 0, 2 }; +_FORCE_INLINE_ static uint32_t _indices_to_primitives(RSE::PrimitiveType p_primitive, uint32_t p_indices) { + static const uint32_t divisor[RSE::PRIMITIVE_MAX] = { 1, 2, 1, 3, 1 }; + static const uint32_t subtractor[RSE::PRIMITIVE_MAX] = { 0, 0, 1, 0, 2 }; return (p_indices - subtractor[p_primitive]) / divisor[p_primitive]; } @@ -1318,9 +1318,9 @@ void RasterizerCanvasGLES3::_render_batch(Light *p_lights, uint32_t p_index, Ren glBindVertexArray(0); if (r_render_info) { - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] += state.canvas_instance_batches[p_index].instance_count; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += 2 * state.canvas_instance_batches[p_index].instance_count; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] += state.canvas_instance_batches[p_index].instance_count; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += 2 * state.canvas_instance_batches[p_index].instance_count; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; } } break; @@ -1338,7 +1338,7 @@ void RasterizerCanvasGLES3::_render_batch(Light *p_lights, uint32_t p_index, Ren _enable_attributes(range_start, false); if (pb->color_disabled && pb->color != Color(1.0, 1.0, 1.0, 1.0)) { - glVertexAttrib4f(RS::ARRAY_COLOR, pb->color.r, pb->color.g, pb->color.b, pb->color.a); + glVertexAttrib4f(RSE::ARRAY_COLOR, pb->color.r, pb->color.g, pb->color.b, pb->color.a); } if (pb->index_buffer != 0) { @@ -1350,13 +1350,13 @@ void RasterizerCanvasGLES3::_render_batch(Light *p_lights, uint32_t p_index, Ren if (pb->color_disabled && pb->color != Color(1.0, 1.0, 1.0, 1.0)) { // Reset so this doesn't pollute other draw calls. - glVertexAttrib4f(RS::ARRAY_COLOR, 1.0, 1.0, 1.0, 1.0); + glVertexAttrib4f(RSE::ARRAY_COLOR, 1.0, 1.0, 1.0, 1.0); } if (r_render_info) { - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME]++; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += _indices_to_primitives(polygon->primitive, pb->count); - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME]++; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += _indices_to_primitives(polygon->primitive, pb->count); + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; } } break; @@ -1373,10 +1373,10 @@ void RasterizerCanvasGLES3::_render_batch(Light *p_lights, uint32_t p_index, Ren glDrawArraysInstanced(primitive[state.canvas_instance_batches[p_index].primitive_points], 0, state.canvas_instance_batches[p_index].primitive_points, instance_count); } if (r_render_info) { - const RenderingServer::PrimitiveType rs_primitive[5] = { RS::PRIMITIVE_POINTS, RS::PRIMITIVE_POINTS, RS::PRIMITIVE_LINES, RS::PRIMITIVE_TRIANGLES, RS::PRIMITIVE_TRIANGLES }; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] += instance_count; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += _indices_to_primitives(rs_primitive[state.canvas_instance_batches[p_index].primitive_points], state.canvas_instance_batches[p_index].primitive_points) * instance_count; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; + const RSE::PrimitiveType rs_primitive[5] = { RSE::PRIMITIVE_POINTS, RSE::PRIMITIVE_POINTS, RSE::PRIMITIVE_LINES, RSE::PRIMITIVE_TRIANGLES, RSE::PRIMITIVE_TRIANGLES }; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] += instance_count; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += _indices_to_primitives(rs_primitive[state.canvas_instance_batches[p_index].primitive_points], state.canvas_instance_batches[p_index].primitive_points) * instance_count; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; } } break; @@ -1406,7 +1406,7 @@ void RasterizerCanvasGLES3::_render_batch(Light *p_lights, uint32_t p_index, Ren RID multimesh = mm->multimesh; mesh = mesh_storage->multimesh_get_mesh(multimesh); - if (mesh_storage->multimesh_get_transform_format(multimesh) != RS::MULTIMESH_TRANSFORM_2D) { + if (mesh_storage->multimesh_get_transform_format(multimesh) != RSE::MULTIMESH_TRANSFORM_2D) { break; } @@ -1428,7 +1428,7 @@ void RasterizerCanvasGLES3::_render_batch(Light *p_lights, uint32_t p_index, Ren RID particles = pt->particles; mesh = particles_storage->particles_get_draw_pass_mesh(particles, 0); - ERR_BREAK(particles_storage->particles_get_mode(particles) != RS::PARTICLES_MODE_2D); + ERR_BREAK(particles_storage->particles_get_mode(particles) != RSE::PARTICLES_MODE_2D); particles_storage->particles_request_process(particles); if (particles_storage->particles_is_inactive(particles)) { @@ -1458,8 +1458,8 @@ void RasterizerCanvasGLES3::_render_batch(Light *p_lights, uint32_t p_index, Ren for (uint32_t j = 0; j < surf_count; j++) { void *surface = mesh_storage->mesh_get_surface(mesh, j); - RS::PrimitiveType primitive = mesh_storage->mesh_surface_get_primitive(surface); - ERR_CONTINUE(primitive < 0 || primitive >= RS::PRIMITIVE_MAX); + RSE::PrimitiveType primitive = mesh_storage->mesh_surface_get_primitive(surface); + ERR_CONTINUE(primitive < 0 || primitive >= RSE::PRIMITIVE_MAX); GLuint vertex_array_gl = 0; GLuint index_array_gl = 0; @@ -1531,9 +1531,9 @@ void RasterizerCanvasGLES3::_render_batch(Light *p_lights, uint32_t p_index, Ren } if (r_render_info) { // Meshes, Particles, and MultiMesh are always just one object with one draw call. - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME]++; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += _indices_to_primitives(primitive, vertex_count) * instance_count; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME]++; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += _indices_to_primitives(primitive, vertex_count) * instance_count; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; } } @@ -1667,7 +1667,7 @@ void RasterizerCanvasGLES3::light_update_shadow(RID p_rid, int p_shadow_index, c glCullFace(GL_BACK); glDisable(GL_CULL_FACE); - RS::CanvasOccluderPolygonCullMode cull_mode = RS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED; + RSE::CanvasOccluderPolygonCullMode cull_mode = RSE::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED; CanvasOcclusionShaderGLES3::ShaderVariant variant = config->float_texture_supported ? CanvasOcclusionShaderGLES3::MODE_SHADOW : CanvasOcclusionShaderGLES3::MODE_SHADOW_RGBA; bool success = shadow_render.shader.version_bind_shader(shadow_render.shader_version, variant); @@ -1728,14 +1728,14 @@ void RasterizerCanvasGLES3::light_update_shadow(RID p_rid, int p_shadow_index, c shadow_render.shader.version_set_uniform(CanvasOcclusionShaderGLES3::MODELVIEW2, modelview.columns[0][1], modelview.columns[1][1], 0, modelview.columns[2][1], shadow_render.shader_version, variant); if (co->cull_mode != cull_mode) { - if (co->cull_mode == RS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED) { + if (co->cull_mode == RSE::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED) { glDisable(GL_CULL_FACE); } else { - if (cull_mode == RS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED) { + if (cull_mode == RSE::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED) { // Last time was disabled, so enable and set proper face. glEnable(GL_CULL_FACE); } - glCullFace(co->cull_mode == RS::CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE ? GL_FRONT : GL_BACK); + glCullFace(co->cull_mode == RSE::CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE ? GL_FRONT : GL_BACK); } cull_mode = co->cull_mode; } @@ -1800,7 +1800,7 @@ void RasterizerCanvasGLES3::light_update_directional_shadow(RID p_rid, int p_sha glCullFace(GL_BACK); glDisable(GL_CULL_FACE); - RS::CanvasOccluderPolygonCullMode cull_mode = RS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED; + RSE::CanvasOccluderPolygonCullMode cull_mode = RSE::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED; CanvasOcclusionShaderGLES3::ShaderVariant variant = config->float_texture_supported ? CanvasOcclusionShaderGLES3::MODE_SHADOW : CanvasOcclusionShaderGLES3::MODE_SHADOW_RGBA; bool success = shadow_render.shader.version_bind_shader(shadow_render.shader_version, variant); @@ -1831,14 +1831,14 @@ void RasterizerCanvasGLES3::light_update_directional_shadow(RID p_rid, int p_sha shadow_render.shader.version_set_uniform(CanvasOcclusionShaderGLES3::MODELVIEW2, modelview.columns[0][1], modelview.columns[1][1], 0, modelview.columns[2][1], shadow_render.shader_version, variant); if (co->cull_mode != cull_mode) { - if (co->cull_mode == RS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED) { + if (co->cull_mode == RSE::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED) { glDisable(GL_CULL_FACE); } else { - if (cull_mode == RS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED) { + if (cull_mode == RSE::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED) { // Last time was disabled, so enable and set proper face. glEnable(GL_CULL_FACE); } - glCullFace(co->cull_mode == RS::CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE ? GL_FRONT : GL_BACK); + glCullFace(co->cull_mode == RSE::CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE ? GL_FRONT : GL_BACK); } cull_mode = co->cull_mode; } @@ -2070,8 +2070,8 @@ void RasterizerCanvasGLES3::occluder_polygon_set_shape(RID p_occluder, const Vec GLES3::Utilities::get_singleton()->buffer_allocate_data(GL_ARRAY_BUFFER, oc->vertex_buffer, lc * 6 * sizeof(float), geometry.ptr(), GL_STATIC_DRAW, "Occluder polygon vertex buffer"); - glEnableVertexAttribArray(RS::ARRAY_VERTEX); - glVertexAttribPointer(RS::ARRAY_VERTEX, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), nullptr); + glEnableVertexAttribArray(RSE::ARRAY_VERTEX); + glVertexAttribPointer(RSE::ARRAY_VERTEX, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), nullptr); glGenBuffers(1, &oc->index_buffer); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, oc->index_buffer); @@ -2133,8 +2133,8 @@ void RasterizerCanvasGLES3::occluder_polygon_set_shape(RID p_occluder, const Vec GLES3::Utilities::get_singleton()->buffer_allocate_data(GL_ARRAY_BUFFER, oc->sdf_vertex_buffer, oc->sdf_point_count * 2 * sizeof(float), p_points.ptr(), GL_STATIC_DRAW, "Occluder polygon SDF vertex buffer"); - glEnableVertexAttribArray(RS::ARRAY_VERTEX); - glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(float), nullptr); + glEnableVertexAttribArray(RSE::ARRAY_VERTEX); + glVertexAttribPointer(RSE::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(float), nullptr); glGenBuffers(1, &oc->sdf_index_buffer); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, oc->sdf_index_buffer); @@ -2152,7 +2152,7 @@ void RasterizerCanvasGLES3::occluder_polygon_set_shape(RID p_occluder, const Vec } } -void RasterizerCanvasGLES3::occluder_polygon_set_cull_mode(RID p_occluder, RS::CanvasOccluderPolygonCullMode p_mode) { +void RasterizerCanvasGLES3::occluder_polygon_set_cull_mode(RID p_occluder, RSE::CanvasOccluderPolygonCullMode p_mode) { OccluderPolygon *oc = occluder_polygon_owner.get_or_null(p_occluder); ERR_FAIL_NULL(oc); oc->cull_mode = p_mode; @@ -2242,7 +2242,7 @@ void RasterizerCanvasGLES3::canvas_begin(RID p_to_render_target, bool p_to_backb glBindTexture(GL_TEXTURE_2D, tex->tex_id); } -void RasterizerCanvasGLES3::_bind_canvas_texture(RID p_texture, RS::CanvasItemTextureFilter p_base_filter, RS::CanvasItemTextureRepeat p_base_repeat) { +void RasterizerCanvasGLES3::_bind_canvas_texture(RID p_texture, RSE::CanvasItemTextureFilter p_base_filter, RSE::CanvasItemTextureRepeat p_base_repeat) { GLES3::TextureStorage *texture_storage = GLES3::TextureStorage::get_singleton(); GLES3::Config *config = GLES3::Config::get_singleton(); @@ -2278,11 +2278,11 @@ void RasterizerCanvasGLES3::_bind_canvas_texture(RID p_texture, RS::CanvasItemTe return; } - RS::CanvasItemTextureFilter filter = ct->texture_filter != RS::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ? ct->texture_filter : p_base_filter; - ERR_FAIL_COND(filter == RS::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT); + RSE::CanvasItemTextureFilter filter = ct->texture_filter != RSE::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ? ct->texture_filter : p_base_filter; + ERR_FAIL_COND(filter == RSE::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT); - RS::CanvasItemTextureRepeat repeat = ct->texture_repeat != RS::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT ? ct->texture_repeat : p_base_repeat; - ERR_FAIL_COND(repeat == RS::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT); + RSE::CanvasItemTextureRepeat repeat = ct->texture_repeat != RSE::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT ? ct->texture_repeat : p_base_repeat; + ERR_FAIL_COND(repeat == RSE::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT); GLES3::Texture *texture = texture_storage->get_texture(ct->diffuse); @@ -2333,7 +2333,7 @@ void RasterizerCanvasGLES3::_bind_canvas_texture(RID p_texture, RS::CanvasItemTe } } -void RasterizerCanvasGLES3::_prepare_canvas_texture(RID p_texture, RS::CanvasItemTextureFilter p_base_filter, RS::CanvasItemTextureRepeat p_base_repeat, uint32_t &r_index, Size2 &r_texpixel_size) { +void RasterizerCanvasGLES3::_prepare_canvas_texture(RID p_texture, RSE::CanvasItemTextureFilter p_base_filter, RSE::CanvasItemTextureRepeat p_base_repeat, uint32_t &r_index, Size2 &r_texpixel_size) { GLES3::TextureStorage *texture_storage = GLES3::TextureStorage::get_singleton(); if (p_texture == RID()) { @@ -2456,8 +2456,8 @@ RendererCanvasRender::PolygonID RasterizerCanvasGLES3::request_polygon(const Vec uint32_t base_offset = 0; { // Always uses vertex positions - glEnableVertexAttribArray(RS::ARRAY_VERTEX); - glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, stride * sizeof(float), nullptr); + glEnableVertexAttribArray(RSE::ARRAY_VERTEX); + glVertexAttribPointer(RSE::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, stride * sizeof(float), nullptr); const Vector2 *points_ptr = p_points.ptr(); for (uint32_t i = 0; i < vertex_count; i++) { @@ -2470,8 +2470,8 @@ RendererCanvasRender::PolygonID RasterizerCanvasGLES3::request_polygon(const Vec // Next add colors if ((uint32_t)p_colors.size() == vertex_count) { - glEnableVertexAttribArray(RS::ARRAY_COLOR); - glVertexAttribPointer(RS::ARRAY_COLOR, 4, GL_FLOAT, GL_FALSE, stride * sizeof(float), CAST_INT_TO_UCHAR_PTR(base_offset * sizeof(float))); + glEnableVertexAttribArray(RSE::ARRAY_COLOR); + glVertexAttribPointer(RSE::ARRAY_COLOR, 4, GL_FLOAT, GL_FALSE, stride * sizeof(float), CAST_INT_TO_UCHAR_PTR(base_offset * sizeof(float))); const Color *color_ptr = p_colors.ptr(); @@ -2483,14 +2483,14 @@ RendererCanvasRender::PolygonID RasterizerCanvasGLES3::request_polygon(const Vec } base_offset += 4; } else { - glDisableVertexAttribArray(RS::ARRAY_COLOR); + glDisableVertexAttribArray(RSE::ARRAY_COLOR); pb.color_disabled = true; pb.color = p_colors.size() == 1 ? p_colors[0] : Color(1.0, 1.0, 1.0, 1.0); } if ((uint32_t)p_uvs.size() == vertex_count) { - glEnableVertexAttribArray(RS::ARRAY_TEX_UV); - glVertexAttribPointer(RS::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, stride * sizeof(float), CAST_INT_TO_UCHAR_PTR(base_offset * sizeof(float))); + glEnableVertexAttribArray(RSE::ARRAY_TEX_UV); + glVertexAttribPointer(RSE::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, stride * sizeof(float), CAST_INT_TO_UCHAR_PTR(base_offset * sizeof(float))); const Vector2 *uv_ptr = p_uvs.ptr(); @@ -2501,12 +2501,12 @@ RendererCanvasRender::PolygonID RasterizerCanvasGLES3::request_polygon(const Vec base_offset += 2; } else { - glDisableVertexAttribArray(RS::ARRAY_TEX_UV); + glDisableVertexAttribArray(RSE::ARRAY_TEX_UV); } if ((uint32_t)p_indices.size() == vertex_count * 4 && (uint32_t)p_weights.size() == vertex_count * 4) { - glEnableVertexAttribArray(RS::ARRAY_BONES); - glVertexAttribPointer(RS::ARRAY_BONES, 4, GL_UNSIGNED_INT, GL_FALSE, stride * sizeof(float), CAST_INT_TO_UCHAR_PTR(base_offset * sizeof(float))); + glEnableVertexAttribArray(RSE::ARRAY_BONES); + glVertexAttribPointer(RSE::ARRAY_BONES, 4, GL_UNSIGNED_INT, GL_FALSE, stride * sizeof(float), CAST_INT_TO_UCHAR_PTR(base_offset * sizeof(float))); const int *bone_ptr = p_bones.ptr(); @@ -2521,12 +2521,12 @@ RendererCanvasRender::PolygonID RasterizerCanvasGLES3::request_polygon(const Vec base_offset += 2; } else { - glDisableVertexAttribArray(RS::ARRAY_BONES); + glDisableVertexAttribArray(RSE::ARRAY_BONES); } if ((uint32_t)p_weights.size() == vertex_count * 4) { - glEnableVertexAttribArray(RS::ARRAY_WEIGHTS); - glVertexAttribPointer(RS::ARRAY_WEIGHTS, 4, GL_FLOAT, GL_FALSE, stride * sizeof(float), CAST_INT_TO_UCHAR_PTR(base_offset * sizeof(float))); + glEnableVertexAttribArray(RSE::ARRAY_WEIGHTS); + glVertexAttribPointer(RSE::ARRAY_WEIGHTS, 4, GL_FLOAT, GL_FALSE, stride * sizeof(float), CAST_INT_TO_UCHAR_PTR(base_offset * sizeof(float))); const float *weight_ptr = p_weights.ptr(); @@ -2541,7 +2541,7 @@ RendererCanvasRender::PolygonID RasterizerCanvasGLES3::request_polygon(const Vec base_offset += 2; } else { - glDisableVertexAttribArray(RS::ARRAY_WEIGHTS); + glDisableVertexAttribArray(RSE::ARRAY_WEIGHTS); } ERR_FAIL_COND_V(base_offset != stride, 0); @@ -2652,7 +2652,7 @@ RasterizerCanvasGLES3::RasterizerCanvasGLES3() { GLES3::MaterialStorage *material_storage = GLES3::MaterialStorage::get_singleton(); GLES3::Config *config = GLES3::Config::get_singleton(); - glVertexAttrib4f(RS::ARRAY_COLOR, 1.0, 1.0, 1.0, 1.0); + glVertexAttrib4f(RSE::ARRAY_COLOR, 1.0, 1.0, 1.0, 1.0); polygon_buffers.last_id = 1; // quad buffer @@ -2706,10 +2706,10 @@ RasterizerCanvasGLES3::RasterizerCanvasGLES3() { glGenVertexArrays(1, &data.particle_quad_array); glBindVertexArray(data.particle_quad_array); glBindBuffer(GL_ARRAY_BUFFER, data.particle_quad_vertices); - glEnableVertexAttribArray(RS::ARRAY_VERTEX); - glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 4, nullptr); - glEnableVertexAttribArray(RS::ARRAY_TEX_UV); - glVertexAttribPointer(RS::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 4, CAST_INT_TO_UCHAR_PTR(8)); + glEnableVertexAttribArray(RSE::ARRAY_VERTEX); + glVertexAttribPointer(RSE::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 4, nullptr); + glEnableVertexAttribArray(RSE::ARRAY_TEX_UV); + glVertexAttribPointer(RSE::ARRAY_TEX_UV, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 4, CAST_INT_TO_UCHAR_PTR(8)); glBindVertexArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); //unbind } diff --git a/drivers/gles3/rasterizer_canvas_gles3.h b/drivers/gles3/rasterizer_canvas_gles3.h index 3c0184d6a8..4f697e4a5e 100644 --- a/drivers/gles3/rasterizer_canvas_gles3.h +++ b/drivers/gles3/rasterizer_canvas_gles3.h @@ -36,6 +36,7 @@ #include "drivers/gles3/shaders/canvas_occlusion.glsl.gen.h" #include "drivers/gles3/storage/material_storage.h" #include "servers/rendering/renderer_canvas_render.h" +#include "servers/rendering/rendering_server_enums.h" class RasterizerCanvasGLES3 : public RendererCanvasRender { static RasterizerCanvasGLES3 *singleton; @@ -107,7 +108,7 @@ class RasterizerCanvasGLES3 : public RendererCanvasRender { RID_Owner canvas_light_owner; struct OccluderPolygon { - RS::CanvasOccluderPolygonCullMode cull_mode = RS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED; + RSE::CanvasOccluderPolygonCullMode cull_mode = RSE::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED; int line_point_count = 0; GLuint vertex_buffer = 0; GLuint vertex_array = 0; @@ -254,8 +255,8 @@ public: uint32_t instance_buffer_index = 0; RID tex; - RS::CanvasItemTextureFilter filter = RS::CANVAS_ITEM_TEXTURE_FILTER_MAX; - RS::CanvasItemTextureRepeat repeat = RS::CANVAS_ITEM_TEXTURE_REPEAT_MAX; + RSE::CanvasItemTextureFilter filter = RSE::CANVAS_ITEM_TEXTURE_FILTER_MAX; + RSE::CanvasItemTextureRepeat repeat = RSE::CANVAS_ITEM_TEXTURE_REPEAT_MAX; GLES3::CanvasShaderData::BlendMode blend_mode = GLES3::CanvasShaderData::BLEND_MODE_MIX; Color blend_color = Color(1.0, 1.0, 1.0, 1.0); @@ -264,7 +265,7 @@ public: RID material; GLES3::CanvasMaterialData *material_data = nullptr; - uint64_t vertex_input_mask = RS::ARRAY_FORMAT_VERTEX | RS::ARRAY_FORMAT_COLOR | RS::ARRAY_FORMAT_TEX_UV; + uint64_t vertex_input_mask = RSE::ARRAY_FORMAT_VERTEX | RSE::ARRAY_FORMAT_COLOR | RSE::ARRAY_FORMAT_TEX_UV; uint64_t specialization = 0; const Item::Command *command = nullptr; @@ -308,15 +309,15 @@ public: bool using_directional_lights = false; RID current_tex; - RS::CanvasItemTextureFilter current_filter_mode = RS::CANVAS_ITEM_TEXTURE_FILTER_MAX; - RS::CanvasItemTextureRepeat current_repeat_mode = RS::CANVAS_ITEM_TEXTURE_REPEAT_MAX; + RSE::CanvasItemTextureFilter current_filter_mode = RSE::CANVAS_ITEM_TEXTURE_FILTER_MAX; + RSE::CanvasItemTextureRepeat current_repeat_mode = RSE::CANVAS_ITEM_TEXTURE_REPEAT_MAX; bool transparent_render_target = false; double time = 0.0; - RS::CanvasItemTextureFilter default_filter = RS::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT; - RS::CanvasItemTextureRepeat default_repeat = RS::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT; + RSE::CanvasItemTextureFilter default_filter = RSE::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT; + RSE::CanvasItemTextureRepeat default_repeat = RSE::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT; } state; Item *items[MAX_RENDER_ITEMS]; @@ -345,16 +346,16 @@ public: void render_sdf(RID p_render_target, LightOccluderInstance *p_occluders) override; RID occluder_polygon_create() override; void occluder_polygon_set_shape(RID p_occluder, const Vector &p_points, bool p_closed) override; - void occluder_polygon_set_cull_mode(RID p_occluder, RS::CanvasOccluderPolygonCullMode p_mode) override; + void occluder_polygon_set_cull_mode(RID p_occluder, RSE::CanvasOccluderPolygonCullMode p_mode) override; void set_shadow_texture_size(int p_size) override; bool free(RID p_rid) override; void update() override; - void _bind_canvas_texture(RID p_texture, RS::CanvasItemTextureFilter p_base_filter, RS::CanvasItemTextureRepeat p_base_repeat); - void _prepare_canvas_texture(RID p_texture, RS::CanvasItemTextureFilter p_base_filter, RS::CanvasItemTextureRepeat p_base_repeat, uint32_t &r_index, Size2 &r_texpixel_size); + void _bind_canvas_texture(RID p_texture, RSE::CanvasItemTextureFilter p_base_filter, RSE::CanvasItemTextureRepeat p_base_repeat); + void _prepare_canvas_texture(RID p_texture, RSE::CanvasItemTextureFilter p_base_filter, RSE::CanvasItemTextureRepeat p_base_repeat, uint32_t &r_index, Size2 &r_texpixel_size); - void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_list, const Transform2D &p_canvas_transform, RS::CanvasItemTextureFilter p_default_filter, RS::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info = nullptr) override; + void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info = nullptr) override; void _render_items(RID p_to_render_target, int p_item_count, const Transform2D &p_canvas_transform_inverse, Light *p_lights, bool &r_sdf_used, bool p_to_backbuffer = false, RenderingMethod::RenderInfo *r_render_info = nullptr, bool p_backbuffer_has_mipmaps = false); void _record_item_commands(const Item *p_item, RID p_render_target, const Transform2D &p_canvas_transform_inverse, Item *¤t_clip, GLES3::CanvasShaderData::BlendMode p_blend_mode, Light *p_lights, uint32_t &r_index, bool &r_break_batch, bool &r_sdf_used, const Point2 &p_repeat_offset); void _render_batch(Light *p_lights, uint32_t p_index, RenderingMethod::RenderInfo *r_render_info = nullptr); @@ -373,7 +374,7 @@ public: } } - virtual uint32_t get_pipeline_compilations(RS::PipelineSource p_source) override { return 0; } + virtual uint32_t get_pipeline_compilations(RSE::PipelineSource p_source) override { return 0; } static RasterizerCanvasGLES3 *get_singleton(); RasterizerCanvasGLES3(); diff --git a/drivers/gles3/rasterizer_gles3.cpp b/drivers/gles3/rasterizer_gles3.cpp index 4f5e9deb83..7b52e22de4 100644 --- a/drivers/gles3/rasterizer_gles3.cpp +++ b/drivers/gles3/rasterizer_gles3.cpp @@ -36,6 +36,7 @@ #include "core/io/dir_access.h" #include "core/io/image.h" #include "core/os/os.h" +#include "servers/rendering/rendering_server.h" #define _EXT_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 #define _EXT_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 @@ -446,7 +447,7 @@ void RasterizerGLES3::blit_render_targets_to_screen(DisplayServer::WindowID p_sc } } -void RasterizerGLES3::set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RenderingServer::SplashStretchMode p_stretch_mode, bool p_use_filter) { +void RasterizerGLES3::set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RSE::SplashStretchMode p_stretch_mode, bool p_use_filter) { if (p_image.is_null() || p_image->is_empty()) { return; } @@ -480,7 +481,7 @@ void RasterizerGLES3::set_boot_image_with_stretch(const Ref &p_image, con screenrect.size /= win_size; GLES3::Texture *t = texture_storage->get_texture(texture); - t->gl_set_filter(p_use_filter ? RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR : RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST); + t->gl_set_filter(p_use_filter ? RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR : RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, t->tex_id); copy_effects->copy_to_rect(screenrect); diff --git a/drivers/gles3/rasterizer_gles3.h b/drivers/gles3/rasterizer_gles3.h index c7339c1f6a..475844d519 100644 --- a/drivers/gles3/rasterizer_gles3.h +++ b/drivers/gles3/rasterizer_gles3.h @@ -95,7 +95,7 @@ public: RendererCanvasRender *get_canvas() { return canvas; } RendererSceneRender *get_scene() { return scene; } - void set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RenderingServer::SplashStretchMode p_stretch_mode, bool p_use_filter = true); + void set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RSE::SplashStretchMode p_stretch_mode, bool p_use_filter = true); void initialize(); void begin_frame(double frame_step); diff --git a/drivers/gles3/rasterizer_scene_gles3.cpp b/drivers/gles3/rasterizer_scene_gles3.cpp index 0208ddab47..c31bc590d0 100644 --- a/drivers/gles3/rasterizer_scene_gles3.cpp +++ b/drivers/gles3/rasterizer_scene_gles3.cpp @@ -53,8 +53,8 @@ RasterizerSceneGLES3 *RasterizerSceneGLES3::singleton = nullptr; RenderGeometryInstance *RasterizerSceneGLES3::geometry_instance_create(RID p_base) { - RS::InstanceType type = RSG::utilities->get_base_type(p_base); - ERR_FAIL_COND_V(!((1 << type) & RS::INSTANCE_GEOMETRY_MASK), nullptr); + RSE::InstanceType type = RSG::utilities->get_base_type(p_base); + ERR_FAIL_COND_V(!((1 << type) & RSE::INSTANCE_GEOMETRY_MASK), nullptr); GeometryInstanceGLES3 *ginstance = geometry_instance_alloc.alloc(); ginstance->data = memnew(GeometryInstanceGLES3::Data); @@ -71,7 +71,7 @@ RenderGeometryInstance *RasterizerSceneGLES3::geometry_instance_create(RID p_bas } uint32_t RasterizerSceneGLES3::geometry_instance_get_pair_mask() { - return ((1 << RS::INSTANCE_LIGHT) | (1 << RS::INSTANCE_REFLECTION_PROBE)); + return ((1 << RSE::INSTANCE_LIGHT) | (1 << RSE::INSTANCE_REFLECTION_PROBE)); } uint32_t RasterizerSceneGLES3::get_max_lights_total() { @@ -90,10 +90,10 @@ void RasterizerSceneGLES3::GeometryInstanceGLES3::clear_light_instances() { } void RasterizerSceneGLES3::GeometryInstanceGLES3::pair_light_instance( - const RID p_light_instance, RS::LightType light_type, uint32_t placement_idx) { + const RID p_light_instance, RSE::LightType light_type, uint32_t placement_idx) { if (placement_idx < GLES3::Config::get_singleton()->max_lights_per_object) { switch (light_type) { - case RS::LIGHT_OMNI: { + case RSE::LIGHT_OMNI: { if (placement_idx >= paired_omni_light_count) { paired_omni_lights.push_back(p_light_instance); ++paired_omni_light_count; @@ -101,7 +101,7 @@ void RasterizerSceneGLES3::GeometryInstanceGLES3::pair_light_instance( paired_omni_lights[placement_idx] = p_light_instance; } } break; - case RS::LIGHT_SPOT: { + case RSE::LIGHT_SPOT: { if (placement_idx >= paired_spot_light_count) { paired_spot_lights.push_back(p_light_instance); ++paired_spot_light_count; @@ -197,7 +197,7 @@ void RasterizerSceneGLES3::_geometry_instance_dependency_changed(Dependency::Dep } break; case Dependency::DEPENDENCY_CHANGED_MULTIMESH_VISIBLE_INSTANCES: { GeometryInstanceGLES3 *ginstance = static_cast(p_tracker->userdata); - if (ginstance->data->base_type == RS::INSTANCE_MULTIMESH) { + if (ginstance->data->base_type == RSE::INSTANCE_MULTIMESH) { ginstance->instance_count = GLES3::MeshStorage::get_singleton()->multimesh_get_instances_to_draw(ginstance->data->base); } } break; @@ -270,7 +270,7 @@ void RasterizerSceneGLES3::_geometry_instance_add_surface_with_material(Geometry void *surface_shadow = nullptr; if (!p_material->shader_data->uses_particle_trails && !p_material->shader_data->writes_modelview_or_projection && !p_material->shader_data->uses_vertex && !p_material->shader_data->uses_discard && !p_material->shader_data->uses_depth_prepass_alpha && !p_material->shader_data->uses_alpha_clip && !p_material->shader_data->uses_world_coordinates && !p_material->shader_data->wireframe) { flags |= GeometryInstanceSurface::FLAG_USES_SHARED_SHADOW_MATERIAL; - material_shadow = static_cast(GLES3::MaterialStorage::get_singleton()->material_get_data(scene_globals.default_material, RS::SHADER_SPATIAL)); + material_shadow = static_cast(GLES3::MaterialStorage::get_singleton()->material_get_data(scene_globals.default_material, RSE::SHADER_SPATIAL)); RID shadow_mesh = mesh_storage->mesh_get_shadow_mesh(p_mesh); @@ -320,7 +320,7 @@ void RasterizerSceneGLES3::_geometry_instance_add_surface_with_material(Geometry sdcache->sort.priority = p_material->priority; GLES3::Mesh::Surface *s = reinterpret_cast(sdcache->surface); - if (p_material->shader_data->uses_tangent && !(s->format & RS::ARRAY_FORMAT_TANGENT)) { + if (p_material->shader_data->uses_tangent && !(s->format & RSE::ARRAY_FORMAT_TANGENT)) { String shader_path = p_material->shader_data->path.is_empty() ? "" : "(" + p_material->shader_data->path + ")"; String mesh_path = mesh_storage->mesh_get_path(p_mesh).is_empty() ? "" : "(" + mesh_storage->mesh_get_path(p_mesh) + ")"; WARN_PRINT_ED(vformat("Attempting to use a shader %s that requires tangents with a mesh %s that doesn't contain tangents. Ensure that meshes are imported with the 'ensure_tangents' option. If creating your own meshes, add an `ARRAY_TANGENT` array (when using ArrayMesh) or call `generate_tangents()` (when using SurfaceTool).", shader_path, mesh_path)); @@ -335,7 +335,7 @@ void RasterizerSceneGLES3::_geometry_instance_add_surface_with_material_chain(Ge while (material_data->next_pass.is_valid()) { RID next_pass = material_data->next_pass; - material_data = static_cast(material_storage->material_get_data(next_pass, RS::SHADER_SPATIAL)); + material_data = static_cast(material_storage->material_get_data(next_pass, RSE::SHADER_SPATIAL)); if (!material_data || !material_data->shader_data->valid) { break; } @@ -355,7 +355,7 @@ void RasterizerSceneGLES3::_geometry_instance_add_surface(GeometryInstanceGLES3 GLES3::SceneMaterialData *material_data = nullptr; if (m_src.is_valid()) { - material_data = static_cast(material_storage->material_get_data(m_src, RS::SHADER_SPATIAL)); + material_data = static_cast(material_storage->material_get_data(m_src, RSE::SHADER_SPATIAL)); if (!material_data || !material_data->shader_data->valid) { material_data = nullptr; } @@ -366,7 +366,7 @@ void RasterizerSceneGLES3::_geometry_instance_add_surface(GeometryInstanceGLES3 material_storage->material_update_dependency(m_src, &ginstance->data->dependency_tracker); } } else { - material_data = static_cast(material_storage->material_get_data(scene_globals.default_material, RS::SHADER_SPATIAL)); + material_data = static_cast(material_storage->material_get_data(scene_globals.default_material, RSE::SHADER_SPATIAL)); m_src = scene_globals.default_material; } @@ -377,7 +377,7 @@ void RasterizerSceneGLES3::_geometry_instance_add_surface(GeometryInstanceGLES3 if (ginstance->data->material_overlay.is_valid()) { m_src = ginstance->data->material_overlay; - material_data = static_cast(material_storage->material_get_data(m_src, RS::SHADER_SPATIAL)); + material_data = static_cast(material_storage->material_get_data(m_src, RSE::SHADER_SPATIAL)); if (material_data && material_data->shader_data->valid) { if (ginstance->data->dirty_dependencies) { material_storage->material_update_dependency(m_src, &ginstance->data->dependency_tracker); @@ -400,7 +400,7 @@ void RasterizerSceneGLES3::_geometry_instance_update(RenderGeometryInstance *p_g //add geometry for drawing switch (ginstance->data->base_type) { - case RS::INSTANCE_MESH: { + case RSE::INSTANCE_MESH: { const RID *materials = nullptr; uint32_t surface_count; RID mesh = ginstance->data->base; @@ -421,7 +421,7 @@ void RasterizerSceneGLES3::_geometry_instance_update(RenderGeometryInstance *p_g } break; - case RS::INSTANCE_MULTIMESH: { + case RSE::INSTANCE_MULTIMESH: { RID mesh = mesh_storage->multimesh_get_mesh(ginstance->data->base); if (mesh.is_valid()) { const RID *materials = nullptr; @@ -438,7 +438,7 @@ void RasterizerSceneGLES3::_geometry_instance_update(RenderGeometryInstance *p_g } } break; - case RS::INSTANCE_PARTICLES: { + case RSE::INSTANCE_PARTICLES: { int draw_passes = particles_storage->particles_get_draw_passes(ginstance->data->base); for (int j = 0; j < draw_passes; j++) { @@ -468,9 +468,9 @@ void RasterizerSceneGLES3::_geometry_instance_update(RenderGeometryInstance *p_g bool store_transform = true; ginstance->base_flags = 0; - if (ginstance->data->base_type == RS::INSTANCE_MULTIMESH) { + if (ginstance->data->base_type == RSE::INSTANCE_MULTIMESH) { ginstance->base_flags |= INSTANCE_DATA_FLAG_MULTIMESH; - if (mesh_storage->multimesh_get_transform_format(ginstance->data->base) == RS::MULTIMESH_TRANSFORM_2D) { + if (mesh_storage->multimesh_get_transform_format(ginstance->data->base) == RSE::MULTIMESH_TRANSFORM_2D) { ginstance->base_flags |= INSTANCE_DATA_FLAG_MULTIMESH_FORMAT_2D; } if (mesh_storage->multimesh_uses_colors(ginstance->data->base)) { @@ -480,7 +480,7 @@ void RasterizerSceneGLES3::_geometry_instance_update(RenderGeometryInstance *p_g ginstance->base_flags |= INSTANCE_DATA_FLAG_MULTIMESH_HAS_CUSTOM_DATA; } - } else if (ginstance->data->base_type == RS::INSTANCE_PARTICLES) { + } else if (ginstance->data->base_type == RSE::INSTANCE_PARTICLES) { ginstance->base_flags |= INSTANCE_DATA_FLAG_PARTICLES; ginstance->base_flags |= INSTANCE_DATA_FLAG_MULTIMESH; @@ -491,7 +491,7 @@ void RasterizerSceneGLES3::_geometry_instance_update(RenderGeometryInstance *p_g store_transform = false; } - } else if (ginstance->data->base_type == RS::INSTANCE_MESH) { + } else if (ginstance->data->base_type == RSE::INSTANCE_MESH) { if (mesh_storage->skeleton_is_valid(ginstance->data->skeleton)) { if (ginstance->data->dirty_dependencies) { mesh_storage->skeleton_update_dependency(ginstance->data->skeleton, &ginstance->data->dependency_tracker); @@ -545,7 +545,7 @@ void RasterizerSceneGLES3::sky_set_radiance_size(RID p_sky, int p_radiance_size) _invalidate_sky(sky); } -void RasterizerSceneGLES3::sky_set_mode(RID p_sky, RS::SkyMode p_mode) { +void RasterizerSceneGLES3::sky_set_mode(RID p_sky, RSE::SkyMode p_mode) { Sky *sky = sky_owner.get_or_null(p_sky); ERR_FAIL_NULL(sky); @@ -656,7 +656,7 @@ void RasterizerSceneGLES3::_setup_sky(const RenderDataGLES3 *p_render_data, cons sky_material = sky->material; if (sky_material.is_valid()) { - material = static_cast(material_storage->material_get_data(sky_material, RS::SHADER_SKY)); + material = static_cast(material_storage->material_get_data(sky_material, RSE::SHADER_SKY)); if (!material || !material->shader_data->valid) { material = nullptr; } @@ -665,7 +665,7 @@ void RasterizerSceneGLES3::_setup_sky(const RenderDataGLES3 *p_render_data, cons if (!material) { sky_material = sky_globals.default_material; - material = static_cast(material_storage->material_get_data(sky_material, RS::SHADER_SKY)); + material = static_cast(material_storage->material_get_data(sky_material, RSE::SHADER_SKY)); } ERR_FAIL_NULL(material); @@ -710,8 +710,8 @@ void RasterizerSceneGLES3::_setup_sky(const RenderDataGLES3 *p_render_data, cons ERR_CONTINUE(base.is_null()); - RS::LightType type = light_storage->light_get_type(base); - if (type == RS::LIGHT_DIRECTIONAL && light_storage->light_directional_get_sky_mode(base) != RS::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_ONLY) { + RSE::LightType type = light_storage->light_get_type(base); + if (type == RSE::LIGHT_DIRECTIONAL && light_storage->light_directional_get_sky_mode(base) != RSE::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_ONLY) { DirectionalLightData &sky_light_data = sky_globals.directional_lights[sky_globals.directional_light_count]; Transform3D light_transform = li->transform; Vector3 world_direction = light_transform.basis.xform(Vector3(0, 0, 1)).normalized(); @@ -721,10 +721,10 @@ void RasterizerSceneGLES3::_setup_sky(const RenderDataGLES3 *p_render_data, cons sky_light_data.direction[2] = world_direction.z; float sign = light_storage->light_is_negative(base) ? -1 : 1; - sky_light_data.energy = sign * light_storage->light_get_param(base, RS::LIGHT_PARAM_ENERGY); + sky_light_data.energy = sign * light_storage->light_get_param(base, RSE::LIGHT_PARAM_ENERGY); if (is_using_physical_light_units()) { - sky_light_data.energy *= light_storage->light_get_param(base, RS::LIGHT_PARAM_INTENSITY); + sky_light_data.energy *= light_storage->light_get_param(base, RSE::LIGHT_PARAM_INTENSITY); } if (p_render_data->camera_attributes.is_valid()) { @@ -738,7 +738,7 @@ void RasterizerSceneGLES3::_setup_sky(const RenderDataGLES3 *p_render_data, cons sky_light_data.enabled = true; - float angular_diameter = light_storage->light_get_param(base, RS::LIGHT_PARAM_SIZE); + float angular_diameter = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SIZE); sky_light_data.size = Math::deg_to_rad(angular_diameter); sky_globals.directional_light_count++; if (sky_globals.directional_light_count >= sky_globals.max_directional_lights) { @@ -818,13 +818,13 @@ void RasterizerSceneGLES3::_draw_sky(RID p_env, const Projection &p_projection, spec_constants |= SkyShaderGLES3::APPLY_TONEMAPPING; } - RS::EnvironmentBG background = environment_get_background(p_env); + RSE::EnvironmentBG background = environment_get_background(p_env); if (sky) { sky_material = sky->material; if (sky_material.is_valid()) { - material_data = static_cast(material_storage->material_get_data(sky_material, RS::SHADER_SKY)); + material_data = static_cast(material_storage->material_get_data(sky_material, RSE::SHADER_SKY)); if (!material_data || !material_data->shader_data->valid) { material_data = nullptr; } @@ -832,11 +832,11 @@ void RasterizerSceneGLES3::_draw_sky(RID p_env, const Projection &p_projection, if (!material_data) { sky_material = sky_globals.default_material; - material_data = static_cast(material_storage->material_get_data(sky_material, RS::SHADER_SKY)); + material_data = static_cast(material_storage->material_get_data(sky_material, RSE::SHADER_SKY)); } - } else if (background == RS::ENV_BG_CLEAR_COLOR || background == RS::ENV_BG_COLOR) { + } else if (background == RSE::ENV_BG_CLEAR_COLOR || background == RSE::ENV_BG_COLOR) { sky_material = sky_globals.fog_material; - material_data = static_cast(material_storage->material_get_data(sky_material, RS::SHADER_SKY)); + material_data = static_cast(material_storage->material_get_data(sky_material, RSE::SHADER_SKY)); } ERR_FAIL_NULL(material_data); @@ -908,14 +908,14 @@ void RasterizerSceneGLES3::_update_sky_radiance(RID p_env, const Projection &p_p GLES3::SkyMaterialData *material_data = nullptr; RID sky_material; - RS::EnvironmentBG background = environment_get_background(p_env); + RSE::EnvironmentBG background = environment_get_background(p_env); if (sky) { ERR_FAIL_NULL(sky); sky_material = sky->material; if (sky_material.is_valid()) { - material_data = static_cast(material_storage->material_get_data(sky_material, RS::SHADER_SKY)); + material_data = static_cast(material_storage->material_get_data(sky_material, RSE::SHADER_SKY)); if (!material_data || !material_data->shader_data->valid) { material_data = nullptr; } @@ -923,11 +923,11 @@ void RasterizerSceneGLES3::_update_sky_radiance(RID p_env, const Projection &p_p if (!material_data) { sky_material = sky_globals.default_material; - material_data = static_cast(material_storage->material_get_data(sky_material, RS::SHADER_SKY)); + material_data = static_cast(material_storage->material_get_data(sky_material, RSE::SHADER_SKY)); } - } else if (background == RS::ENV_BG_CLEAR_COLOR || background == RS::ENV_BG_COLOR) { + } else if (background == RSE::ENV_BG_CLEAR_COLOR || background == RSE::ENV_BG_COLOR) { sky_material = sky_globals.fog_material; - material_data = static_cast(material_storage->material_get_data(sky_material, RS::SHADER_SKY)); + material_data = static_cast(material_storage->material_get_data(sky_material, RSE::SHADER_SKY)); } ERR_FAIL_NULL(material_data); @@ -937,28 +937,28 @@ void RasterizerSceneGLES3::_update_sky_radiance(RID p_env, const Projection &p_p ERR_FAIL_NULL(shader_data); - bool update_single_frame = sky->mode == RS::SKY_MODE_REALTIME || sky->mode == RS::SKY_MODE_QUALITY; - RS::SkyMode sky_mode = sky->mode; + bool update_single_frame = sky->mode == RSE::SKY_MODE_REALTIME || sky->mode == RSE::SKY_MODE_QUALITY; + RSE::SkyMode sky_mode = sky->mode; - if (sky_mode == RS::SKY_MODE_AUTOMATIC) { + if (sky_mode == RSE::SKY_MODE_AUTOMATIC) { bool sun_scatter_enabled = environment_get_fog_enabled(p_env) && environment_get_fog_sun_scatter(p_env) > 0.001; if ((shader_data->uses_time || shader_data->uses_position) && sky->radiance_size == 256) { update_single_frame = true; - sky_mode = RS::SKY_MODE_REALTIME; + sky_mode = RSE::SKY_MODE_REALTIME; } else if (shader_data->uses_light || sun_scatter_enabled || shader_data->ubo_size > 0) { update_single_frame = false; - sky_mode = RS::SKY_MODE_INCREMENTAL; + sky_mode = RSE::SKY_MODE_INCREMENTAL; } else { update_single_frame = true; - sky_mode = RS::SKY_MODE_QUALITY; + sky_mode = RSE::SKY_MODE_QUALITY; } } - if (sky->processing_layer == 0 && sky_mode == RS::SKY_MODE_INCREMENTAL) { + if (sky->processing_layer == 0 && sky_mode == RSE::SKY_MODE_INCREMENTAL) { // On the first frame after creating sky, rebuild in single frame update_single_frame = true; - sky_mode = RS::SKY_MODE_QUALITY; + sky_mode = RSE::SKY_MODE_QUALITY; } int max_processing_layer = sky->mipmap_count; @@ -1005,7 +1005,7 @@ void RasterizerSceneGLES3::_update_sky_radiance(RID p_env, const Projection &p_p glBindFramebuffer(GL_FRAMEBUFFER, sky->radiance_framebuffer); scene_state.reset_gl_state(); - scene_state.set_gl_cull_mode(RS::CULL_MODE_DISABLED); + scene_state.set_gl_cull_mode(RSE::CULL_MODE_DISABLED); scene_state.enable_gl_blend(false); for (int i = 0; i < 6; i++) { @@ -1026,9 +1026,9 @@ void RasterizerSceneGLES3::_update_sky_radiance(RID p_env, const Projection &p_p sky->baked_exposure = p_sky_energy_multiplier; sky->reflection_dirty = false; } else { - if (sky_mode == RS::SKY_MODE_INCREMENTAL && sky->processing_layer < max_processing_layer) { + if (sky_mode == RSE::SKY_MODE_INCREMENTAL && sky->processing_layer < max_processing_layer) { scene_state.reset_gl_state(); - scene_state.set_gl_cull_mode(RS::CULL_MODE_DISABLED); + scene_state.set_gl_cull_mode(RSE::CULL_MODE_DISABLED); scene_state.enable_gl_blend(false); cubemap_filter->filter_radiance(sky->raw_radiance, sky->radiance, sky->radiance_framebuffer, sky->radiance_size, sky->mipmap_count, sky->processing_layer); @@ -1127,23 +1127,23 @@ void RasterizerSceneGLES3::environment_glow_set_use_bicubic_upscale(bool p_enabl void RasterizerSceneGLES3::environment_set_ssr_half_size(bool p_half_size) { } -void RasterizerSceneGLES3::environment_set_ssr_roughness_quality(RS::EnvironmentSSRRoughnessQuality p_quality) { +void RasterizerSceneGLES3::environment_set_ssr_roughness_quality(RSE::EnvironmentSSRRoughnessQuality p_quality) { } -void RasterizerSceneGLES3::environment_set_ssao_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) { +void RasterizerSceneGLES3::environment_set_ssao_quality(RSE::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) { ssao_quality = p_quality; } -void RasterizerSceneGLES3::environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) { +void RasterizerSceneGLES3::environment_set_ssil_quality(RSE::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) { } -void RasterizerSceneGLES3::environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) { +void RasterizerSceneGLES3::environment_set_sdfgi_ray_count(RSE::EnvironmentSDFGIRayCount p_ray_count) { } -void RasterizerSceneGLES3::environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) { +void RasterizerSceneGLES3::environment_set_sdfgi_frames_to_converge(RSE::EnvironmentSDFGIFramesToConverge p_frames) { } -void RasterizerSceneGLES3::environment_set_sdfgi_frames_to_update_light(RS::EnvironmentSDFGIFramesToUpdateLight p_update) { +void RasterizerSceneGLES3::environment_set_sdfgi_frames_to_update_light(RSE::EnvironmentSDFGIFramesToUpdateLight p_update) { } void RasterizerSceneGLES3::environment_set_volumetric_fog_volume_size(int p_size, int p_depth) { @@ -1155,24 +1155,24 @@ void RasterizerSceneGLES3::environment_set_volumetric_fog_filter_active(bool p_e Ref RasterizerSceneGLES3::environment_bake_panorama(RID p_env, bool p_bake_irradiance, const Size2i &p_size) { ERR_FAIL_COND_V(p_env.is_null(), Ref()); - RS::EnvironmentBG environment_background = environment_get_background(p_env); + RSE::EnvironmentBG environment_background = environment_get_background(p_env); - if (environment_background == RS::ENV_BG_CAMERA_FEED || environment_background == RS::ENV_BG_CANVAS || environment_background == RS::ENV_BG_KEEP) { + if (environment_background == RSE::ENV_BG_CAMERA_FEED || environment_background == RSE::ENV_BG_CANVAS || environment_background == RSE::ENV_BG_KEEP) { return Ref(); // Nothing to bake. } - RS::EnvironmentAmbientSource ambient_source = environment_get_ambient_source(p_env); + RSE::EnvironmentAmbientSource ambient_source = environment_get_ambient_source(p_env); bool use_ambient_light = false; bool use_cube_map = false; - if (ambient_source == RS::ENV_AMBIENT_SOURCE_BG && (environment_background == RS::ENV_BG_CLEAR_COLOR || environment_background == RS::ENV_BG_COLOR)) { + if (ambient_source == RSE::ENV_AMBIENT_SOURCE_BG && (environment_background == RSE::ENV_BG_CLEAR_COLOR || environment_background == RSE::ENV_BG_COLOR)) { use_ambient_light = true; } else { - use_cube_map = (ambient_source == RS::ENV_AMBIENT_SOURCE_BG && environment_background == RS::ENV_BG_SKY) || ambient_source == RS::ENV_AMBIENT_SOURCE_SKY; - use_ambient_light = use_cube_map || ambient_source == RS::ENV_AMBIENT_SOURCE_COLOR; + use_cube_map = (ambient_source == RSE::ENV_AMBIENT_SOURCE_BG && environment_background == RSE::ENV_BG_SKY) || ambient_source == RSE::ENV_AMBIENT_SOURCE_SKY; + use_ambient_light = use_cube_map || ambient_source == RSE::ENV_AMBIENT_SOURCE_COLOR; } - use_cube_map = use_cube_map || (environment_background == RS::ENV_BG_SKY && environment_get_sky(p_env).is_valid()); + use_cube_map = use_cube_map || (environment_background == RSE::ENV_BG_SKY && environment_get_sky(p_env).is_valid()); Color ambient_color; float ambient_color_sky_mix = 0.0; @@ -1198,7 +1198,7 @@ Ref RasterizerSceneGLES3::environment_bake_panorama(RID p_env, bool p_bak return panorama; } else { const float bg_energy_multiplier = environment_get_bg_energy_multiplier(p_env); - Color panorama_color = ((environment_background == RS::ENV_BG_CLEAR_COLOR) ? RSG::texture_storage->get_default_clear_color() : environment_get_bg_color(p_env)); + Color panorama_color = ((environment_background == RSE::ENV_BG_CLEAR_COLOR) ? RSG::texture_storage->get_default_clear_color() : environment_get_bg_color(p_env)); panorama_color = panorama_color.srgb_to_linear(); panorama_color.r *= bg_energy_multiplier; panorama_color.g *= bg_energy_multiplier; @@ -1214,11 +1214,11 @@ Ref RasterizerSceneGLES3::environment_bake_panorama(RID p_env, bool p_bak } } -void RasterizerSceneGLES3::positional_soft_shadow_filter_set_quality(RS::ShadowQuality p_quality) { +void RasterizerSceneGLES3::positional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) { scene_state.positional_shadow_quality = p_quality; } -void RasterizerSceneGLES3::directional_soft_shadow_filter_set_quality(RS::ShadowQuality p_quality) { +void RasterizerSceneGLES3::directional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) { scene_state.directional_shadow_quality = p_quality; } @@ -1254,12 +1254,12 @@ bool RasterizerSceneGLES3::voxel_gi_needs_update(RID p_probe) const { void RasterizerSceneGLES3::voxel_gi_update(RID p_probe, bool p_update_light_instances, const Vector &p_light_instances, const PagedArray &p_dynamic_objects) { } -void RasterizerSceneGLES3::voxel_gi_set_quality(RS::VoxelGIQuality) { +void RasterizerSceneGLES3::voxel_gi_set_quality(RSE::VoxelGIQuality) { } -_FORCE_INLINE_ static uint32_t _indices_to_primitives(RS::PrimitiveType p_primitive, uint32_t p_indices) { - static const uint32_t divisor[RS::PRIMITIVE_MAX] = { 1, 2, 1, 3, 1 }; - static const uint32_t subtractor[RS::PRIMITIVE_MAX] = { 0, 0, 1, 0, 2 }; +_FORCE_INLINE_ static uint32_t _indices_to_primitives(RSE::PrimitiveType p_primitive, uint32_t p_indices) { + static const uint32_t divisor[RSE::PRIMITIVE_MAX] = { 1, 2, 1, 3, 1 }; + static const uint32_t subtractor[RSE::PRIMITIVE_MAX] = { 0, 0, 1, 0, 2 }; return (p_indices - subtractor[p_primitive]) / divisor[p_primitive]; } void RasterizerSceneGLES3::_fill_render_list(RenderListType p_render_list, const RenderDataGLES3 *p_render_data, PassMode p_pass_mode, bool p_append) { @@ -1420,9 +1420,9 @@ void RasterizerSceneGLES3::_fill_render_list(RenderListType p_render_list, const if (p_render_data->render_info) { indices = _indices_to_primitives(surf->primitive, indices); if (p_render_list == RENDER_LIST_OPAQUE) { //opaque - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += indices; + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += indices; } else if (p_render_list == RENDER_LIST_SECONDARY) { //shadow - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += indices; + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += indices; } } @@ -1434,9 +1434,9 @@ void RasterizerSceneGLES3::_fill_render_list(RenderListType p_render_list, const to_draw = _indices_to_primitives(surf->primitive, to_draw); to_draw *= inst->instance_count > 0 ? inst->instance_count : 1; if (p_render_list == RENDER_LIST_OPAQUE) { //opaque - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += to_draw; + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += to_draw; } else if (p_render_list == RENDER_LIST_SECONDARY) { //shadow - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += to_draw; + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += to_draw; } } } @@ -1444,7 +1444,7 @@ void RasterizerSceneGLES3::_fill_render_list(RenderListType p_render_list, const // ADD Element if (p_pass_mode == PASS_MODE_COLOR) { #ifdef DEBUG_ENABLED - bool force_alpha = unlikely(get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_OVERDRAW); + bool force_alpha = unlikely(get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_OVERDRAW); #else bool force_alpha = false; #endif @@ -1554,7 +1554,7 @@ void RasterizerSceneGLES3::_setup_environment(const RenderDataGLES3 *p_render_da //time global variables scene_state.data.time = time; - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_UNSHADED) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_UNSHADED) { scene_state.data.use_ambient_light = true; scene_state.data.ambient_light_color_energy[0] = 1; scene_state.data.ambient_light_color_energy[1] = 1; @@ -1563,8 +1563,8 @@ void RasterizerSceneGLES3::_setup_environment(const RenderDataGLES3 *p_render_da scene_state.data.use_ambient_cubemap = false; scene_state.data.use_reflection_cubemap = false; } else if (is_environment(p_render_data->environment)) { - RS::EnvironmentBG env_bg = environment_get_background(p_render_data->environment); - RS::EnvironmentAmbientSource ambient_src = environment_get_ambient_source(p_render_data->environment); + RSE::EnvironmentBG env_bg = environment_get_background(p_render_data->environment); + RSE::EnvironmentAmbientSource ambient_src = environment_get_ambient_source(p_render_data->environment); float bg_energy_multiplier = environment_get_bg_energy_multiplier(p_render_data->environment); @@ -1573,8 +1573,8 @@ void RasterizerSceneGLES3::_setup_environment(const RenderDataGLES3 *p_render_da scene_state.data.ambient_color_sky_mix = environment_get_ambient_sky_contribution(p_render_data->environment); //ambient - if (ambient_src == RS::ENV_AMBIENT_SOURCE_BG && (env_bg == RS::ENV_BG_CLEAR_COLOR || env_bg == RS::ENV_BG_COLOR)) { - Color color = env_bg == RS::ENV_BG_CLEAR_COLOR ? p_default_bg_color : environment_get_bg_color(p_render_data->environment); + if (ambient_src == RSE::ENV_AMBIENT_SOURCE_BG && (env_bg == RSE::ENV_BG_CLEAR_COLOR || env_bg == RSE::ENV_BG_COLOR)) { + Color color = env_bg == RSE::ENV_BG_CLEAR_COLOR ? p_default_bg_color : environment_get_bg_color(p_render_data->environment); color = color.srgb_to_linear(); scene_state.data.ambient_light_color_energy[0] = color.r * bg_energy_multiplier; @@ -1593,13 +1593,13 @@ void RasterizerSceneGLES3::_setup_environment(const RenderDataGLES3 *p_render_da Basis sky_transform = environment_get_sky_orientation(p_render_data->environment); sky_transform = sky_transform.inverse() * p_render_data->cam_transform.basis; GLES3::MaterialStorage::store_transform_3x3(sky_transform, scene_state.data.radiance_inverse_xform); - scene_state.data.use_ambient_cubemap = (ambient_src == RS::ENV_AMBIENT_SOURCE_BG && env_bg == RS::ENV_BG_SKY) || ambient_src == RS::ENV_AMBIENT_SOURCE_SKY; - scene_state.data.use_ambient_light = scene_state.data.use_ambient_cubemap || ambient_src == RS::ENV_AMBIENT_SOURCE_COLOR; + scene_state.data.use_ambient_cubemap = (ambient_src == RSE::ENV_AMBIENT_SOURCE_BG && env_bg == RSE::ENV_BG_SKY) || ambient_src == RSE::ENV_AMBIENT_SOURCE_SKY; + scene_state.data.use_ambient_light = scene_state.data.use_ambient_cubemap || ambient_src == RSE::ENV_AMBIENT_SOURCE_COLOR; } //specular - RS::EnvironmentReflectionSource ref_src = environment_get_reflection_source(p_render_data->environment); - if ((ref_src == RS::ENV_REFLECTION_SOURCE_BG && env_bg == RS::ENV_BG_SKY) || ref_src == RS::ENV_REFLECTION_SOURCE_SKY) { + RSE::EnvironmentReflectionSource ref_src = environment_get_reflection_source(p_render_data->environment); + if ((ref_src == RSE::ENV_REFLECTION_SOURCE_BG && env_bg == RSE::ENV_BG_SKY) || ref_src == RSE::ENV_REFLECTION_SOURCE_SKY) { scene_state.data.use_reflection_cubemap = true; } else { scene_state.data.use_reflection_cubemap = false; @@ -1687,10 +1687,10 @@ void RasterizerSceneGLES3::_setup_lights(const RenderDataGLES3 *p_render_data, b ERR_CONTINUE(base.is_null()); - RS::LightType type = light_storage->light_get_type(base); + RSE::LightType type = light_storage->light_get_type(base); switch (type) { - case RS::LIGHT_DIRECTIONAL: { - if (r_directional_light_count >= RendererSceneRender::MAX_DIRECTIONAL_LIGHTS || light_storage->light_directional_get_sky_mode(base) == RS::LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY) { + case RSE::LIGHT_DIRECTIONAL: { + if (r_directional_light_count >= RendererSceneRender::MAX_DIRECTIONAL_LIGHTS || light_storage->light_directional_get_sky_mode(base) == RSE::LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY) { continue; } @@ -1717,10 +1717,10 @@ void RasterizerSceneGLES3::_setup_lights(const RenderDataGLES3 *p_render_data, b float sign = light_storage->light_is_negative(base) ? -1 : 1; - light_data.energy = sign * light_storage->light_get_param(base, RS::LIGHT_PARAM_ENERGY); + light_data.energy = sign * light_storage->light_get_param(base, RSE::LIGHT_PARAM_ENERGY); if (is_using_physical_light_units()) { - light_data.energy *= light_storage->light_get_param(base, RS::LIGHT_PARAM_INTENSITY); + light_data.energy *= light_storage->light_get_param(base, RSE::LIGHT_PARAM_INTENSITY); } else { light_data.energy *= Math::PI; } @@ -1734,27 +1734,27 @@ void RasterizerSceneGLES3::_setup_lights(const RenderDataGLES3 *p_render_data, b light_data.color[1] = linear_col.g; light_data.color[2] = linear_col.b; - float size = light_storage->light_get_param(base, RS::LIGHT_PARAM_SIZE); + float size = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SIZE); light_data.size = 1.0 - Math::cos(Math::deg_to_rad(size)); //angle to cosine offset - light_data.specular = light_storage->light_get_param(base, RS::LIGHT_PARAM_SPECULAR); + light_data.specular = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SPECULAR); light_data.mask = light_storage->light_get_cull_mask(base); light_data.shadow_opacity = (p_using_shadows && light_storage->light_has_shadow(base)) - ? light_storage->light_get_param(base, RS::LIGHT_PARAM_SHADOW_OPACITY) + ? light_storage->light_get_param(base, RSE::LIGHT_PARAM_SHADOW_OPACITY) : 0.0; if (has_shadow) { DirectionalShadowData &shadow_data = scene_state.directional_shadows[MAX_DIRECTIONAL_LIGHTS - 1 - r_directional_shadow_count]; - RS::LightDirectionalShadowMode shadow_mode = light_storage->light_directional_get_shadow_mode(base); + RSE::LightDirectionalShadowMode shadow_mode = light_storage->light_directional_get_shadow_mode(base); - int limit = shadow_mode == RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL ? 0 : (shadow_mode == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS ? 1 : 3); + int limit = shadow_mode == RSE::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL ? 0 : (shadow_mode == RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS ? 1 : 3); shadow_data.shadow_atlas_pixel_size = 1.0 / light_storage->directional_shadow_get_size(); - shadow_data.blend_splits = uint32_t((shadow_mode != RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL) && light_storage->light_directional_get_blend_splits(base)); + shadow_data.blend_splits = uint32_t((shadow_mode != RSE::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL) && light_storage->light_directional_get_blend_splits(base)); for (int j = 0; j < 4; j++) { Rect2 atlas_rect = li->shadow_transform[j].atlas_rect; Projection correction; @@ -1775,10 +1775,10 @@ void RasterizerSceneGLES3::_setup_lights(const RenderDataGLES3 *p_render_data, b Projection shadow_mtx = rectm * bias * matrix * modelview; shadow_data.shadow_split_offsets[j] = split; - shadow_data.shadow_normal_bias[j] = light_storage->light_get_param(base, RS::LIGHT_PARAM_SHADOW_NORMAL_BIAS) * li->shadow_transform[j].shadow_texel_size; + shadow_data.shadow_normal_bias[j] = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SHADOW_NORMAL_BIAS) * li->shadow_transform[j].shadow_texel_size; GLES3::MaterialStorage::store_camera(shadow_mtx, shadow_data.shadow_matrices[j]); } - float fade_start = light_storage->light_get_param(base, RS::LIGHT_PARAM_SHADOW_FADE_START); + float fade_start = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SHADOW_FADE_START); shadow_data.fade_from = -shadow_data.shadow_split_offsets[3] * MIN(fade_start, 0.999); shadow_data.fade_to = -shadow_data.shadow_split_offsets[3]; @@ -1787,7 +1787,7 @@ void RasterizerSceneGLES3::_setup_lights(const RenderDataGLES3 *p_render_data, b r_directional_light_count++; } break; - case RS::LIGHT_OMNI: { + case RSE::LIGHT_OMNI: { if (r_omni_light_count >= (uint32_t)config->max_renderable_lights) { continue; } @@ -1810,7 +1810,7 @@ void RasterizerSceneGLES3::_setup_lights(const RenderDataGLES3 *p_render_data, b scene_state.omni_light_sort[r_omni_light_count].depth = distance; r_omni_light_count++; } break; - case RS::LIGHT_SPOT: { + case RSE::LIGHT_SPOT: { if (r_spot_light_count >= (uint32_t)config->max_renderable_lights) { continue; } @@ -1853,7 +1853,7 @@ void RasterizerSceneGLES3::_setup_lights(const RenderDataGLES3 *p_render_data, b for (uint32_t i = 0; i < (r_omni_light_count + r_spot_light_count); i++) { uint32_t index = (i < r_omni_light_count) ? i : i - (r_omni_light_count); LightData &light_data = (i < r_omni_light_count) ? scene_state.omni_lights[index] : scene_state.spot_lights[index]; - RS::LightType type = (i < r_omni_light_count) ? RS::LIGHT_OMNI : RS::LIGHT_SPOT; + RSE::LightType type = (i < r_omni_light_count) ? RSE::LIGHT_OMNI : RSE::LIGHT_SPOT; GLES3::LightInstance *li = (i < r_omni_light_count) ? scene_state.omni_light_sort[index].instance : scene_state.spot_light_sort[index].instance; real_t distance = (i < r_omni_light_count) ? scene_state.omni_light_sort[index].depth : scene_state.spot_light_sort[index].depth; RID base = li->light; @@ -1869,7 +1869,7 @@ void RasterizerSceneGLES3::_setup_lights(const RenderDataGLES3 *p_render_data, b light_data.bake_mode = light_storage->light_get_bake_mode(base); - float radius = MAX(0.001, light_storage->light_get_param(base, RS::LIGHT_PARAM_RANGE)); + float radius = MAX(0.001, light_storage->light_get_param(base, RSE::LIGHT_PARAM_RANGE)); light_data.inv_radius = 1.0 / radius; Vector3 direction = inverse_transform.basis.xform(light_transform.basis.xform(Vector3(0, 0, -1))).normalized(); @@ -1878,7 +1878,7 @@ void RasterizerSceneGLES3::_setup_lights(const RenderDataGLES3 *p_render_data, b light_data.direction[1] = direction.y; light_data.direction[2] = direction.z; - float size = light_storage->light_get_param(base, RS::LIGHT_PARAM_SIZE); + float size = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SIZE); light_data.size = size; @@ -1907,13 +1907,13 @@ void RasterizerSceneGLES3::_setup_lights(const RenderDataGLES3 *p_render_data, b } } - float energy = sign * light_storage->light_get_param(base, RS::LIGHT_PARAM_ENERGY) * fade; + float energy = sign * light_storage->light_get_param(base, RSE::LIGHT_PARAM_ENERGY) * fade; if (is_using_physical_light_units()) { - energy *= light_storage->light_get_param(base, RS::LIGHT_PARAM_INTENSITY); + energy *= light_storage->light_get_param(base, RSE::LIGHT_PARAM_INTENSITY); // Convert from Luminous Power to Luminous Intensity - if (type == RS::LIGHT_OMNI) { + if (type == RSE::LIGHT_OMNI) { energy *= 1.0 / (Math::PI * 4.0); } else { // Spot Lights are not physically accurate, Luminous Intensity should change in relation to the cone angle. @@ -1932,14 +1932,14 @@ void RasterizerSceneGLES3::_setup_lights(const RenderDataGLES3 *p_render_data, b light_data.color[1] = linear_col.g * energy; light_data.color[2] = linear_col.b * energy; - light_data.attenuation = light_storage->light_get_param(base, RS::LIGHT_PARAM_ATTENUATION); + light_data.attenuation = light_storage->light_get_param(base, RSE::LIGHT_PARAM_ATTENUATION); - light_data.inv_spot_attenuation = 1.0f / light_storage->light_get_param(base, RS::LIGHT_PARAM_SPOT_ATTENUATION); + light_data.inv_spot_attenuation = 1.0f / light_storage->light_get_param(base, RSE::LIGHT_PARAM_SPOT_ATTENUATION); - float spot_angle = light_storage->light_get_param(base, RS::LIGHT_PARAM_SPOT_ANGLE); + float spot_angle = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SPOT_ANGLE); light_data.cos_spot_angle = Math::cos(Math::deg_to_rad(spot_angle)); - light_data.specular_amount = light_storage->light_get_param(base, RS::LIGHT_PARAM_SPECULAR) * 2.0; + light_data.specular_amount = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SPECULAR) * 2.0; // Setup shadows const bool needs_shadow = @@ -1965,22 +1965,22 @@ void RasterizerSceneGLES3::_setup_lights(const RenderDataGLES3 *p_render_data, b li->shadow_id = num_positional_shadows; num_positional_shadows++; - light_data.shadow_opacity = light_storage->light_get_param(base, RS::LIGHT_PARAM_SHADOW_OPACITY) * shadow_opacity_fade; + light_data.shadow_opacity = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SHADOW_OPACITY) * shadow_opacity_fade; float shadow_texel_size = light_storage->light_instance_get_shadow_texel_size(li->self, p_render_data->shadow_atlas); shadow_data.shadow_atlas_pixel_size = shadow_texel_size; - shadow_data.shadow_normal_bias = light_storage->light_get_param(base, RS::LIGHT_PARAM_SHADOW_NORMAL_BIAS) * shadow_texel_size * 10.0; + shadow_data.shadow_normal_bias = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SHADOW_NORMAL_BIAS) * shadow_texel_size * 10.0; shadow_data.light_position[0] = light_data.position[0]; shadow_data.light_position[1] = light_data.position[1]; shadow_data.light_position[2] = light_data.position[2]; - if (type == RS::LIGHT_OMNI) { + if (type == RSE::LIGHT_OMNI) { Transform3D proj = (inverse_transform * light_transform).inverse(); GLES3::MaterialStorage::store_transform(proj, shadow_data.shadow_matrix); - } else if (type == RS::LIGHT_SPOT) { + } else if (type == RSE::LIGHT_SPOT) { Transform3D modelview = (inverse_transform * light_transform).inverse(); Projection bias; bias.set_light_bias(); @@ -2039,9 +2039,9 @@ void RasterizerSceneGLES3::_render_shadows(const RenderDataGLES3 *p_render_data, RID li = p_render_data->render_shadows[i].light; RID base = light_storage->light_instance_get_base_light(li); - if (light_storage->light_get_type(base) == RS::LIGHT_DIRECTIONAL) { + if (light_storage->light_get_type(base) == RSE::LIGHT_DIRECTIONAL) { directional_shadows.push_back(i); - } else if (light_storage->light_get_type(base) == RS::LIGHT_OMNI && light_storage->light_omni_get_shadow_mode(base) == RS::LIGHT_OMNI_SHADOW_CUBE) { + } else if (light_storage->light_get_type(base) == RSE::LIGHT_OMNI && light_storage->light_omni_get_shadow_mode(base) == RSE::LIGHT_OMNI_SHADOW_CUBE) { cube_shadows.push_back(i); } else { shadows.push_back(i); @@ -2090,7 +2090,7 @@ void RasterizerSceneGLES3::_render_shadow_pass(RID p_light, RID p_shadow_atlas, GLuint shadow_fb = 0; Rect2i atlas_rect; - if (light_storage->light_get_type(base) == RS::LIGHT_DIRECTIONAL) { + if (light_storage->light_get_type(base) == RSE::LIGHT_DIRECTIONAL) { // Set pssm stuff. uint64_t last_scene_shadow_pass = light_storage->light_instance_get_shadow_pass(p_light); if (last_scene_shadow_pass != get_scene_pass()) { @@ -2101,7 +2101,7 @@ void RasterizerSceneGLES3::_render_shadow_pass(RID p_light, RID p_shadow_atlas, atlas_rect = light_storage->light_instance_get_directional_rect(p_light); - if (light_storage->light_directional_get_shadow_mode(base) == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS) { + if (light_storage->light_directional_get_shadow_mode(base) == RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS) { atlas_rect.size.width /= 2; atlas_rect.size.height /= 2; @@ -2112,7 +2112,7 @@ void RasterizerSceneGLES3::_render_shadow_pass(RID p_light, RID p_shadow_atlas, } else if (p_pass == 3) { atlas_rect.position += atlas_rect.size; } - } else if (light_storage->light_directional_get_shadow_mode(base) == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS) { + } else if (light_storage->light_directional_get_shadow_mode(base) == RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS) { atlas_rect.size.height /= 2; if (p_pass == 0) { @@ -2121,7 +2121,7 @@ void RasterizerSceneGLES3::_render_shadow_pass(RID p_light, RID p_shadow_atlas, } } - use_pancake = light_storage->light_get_param(base, RS::LIGHT_PARAM_SHADOW_PANCAKE_SIZE) > 0; + use_pancake = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SHADOW_PANCAKE_SIZE) > 0; light_projection = light_storage->light_instance_get_shadow_camera(p_light, p_pass); light_transform = light_storage->light_instance_get_shadow_transform(p_light, p_pass); @@ -2131,12 +2131,12 @@ void RasterizerSceneGLES3::_render_shadow_pass(RID p_light, RID p_shadow_atlas, atlas_rect_norm.size /= directional_shadow_size; light_storage->light_instance_set_directional_shadow_atlas_rect(p_light, p_pass, atlas_rect_norm); - zfar = RSG::light_storage->light_get_param(base, RS::LIGHT_PARAM_RANGE); + zfar = RSG::light_storage->light_get_param(base, RSE::LIGHT_PARAM_RANGE); shadow_fb = light_storage->direction_shadow_get_fb(); reverse_cull = !light_storage->light_get_reverse_cull_face_mode(base); float bias_scale = light_storage->light_instance_get_shadow_bias_scale(p_light, p_pass); - shadow_bias = light_storage->light_get_param(base, RS::LIGHT_PARAM_SHADOW_BIAS) / 100.0 * bias_scale; + shadow_bias = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SHADOW_BIAS) / 100.0 * bias_scale; } else { // Set from shadow atlas. @@ -2155,11 +2155,11 @@ void RasterizerSceneGLES3::_render_shadow_pass(RID p_light, RID p_shadow_atlas, shadow_fb = light_storage->shadow_atlas_get_quadrant_shadow_fb(p_shadow_atlas, quadrant, shadow); - zfar = light_storage->light_get_param(base, RS::LIGHT_PARAM_RANGE); + zfar = light_storage->light_get_param(base, RSE::LIGHT_PARAM_RANGE); reverse_cull = !light_storage->light_get_reverse_cull_face_mode(base); - if (light_storage->light_get_type(base) == RS::LIGHT_OMNI) { - if (light_storage->light_omni_get_shadow_mode(base) == RS::LIGHT_OMNI_SHADOW_CUBE) { + if (light_storage->light_get_type(base) == RSE::LIGHT_OMNI) { + if (light_storage->light_omni_get_shadow_mode(base) == RSE::LIGHT_OMNI_SHADOW_CUBE) { GLuint shadow_texture = light_storage->shadow_atlas_get_quadrant_shadow_texture(p_shadow_atlas, quadrant, shadow); glBindFramebuffer(GL_FRAMEBUFFER, shadow_fb); @@ -2183,15 +2183,15 @@ void RasterizerSceneGLES3::_render_shadow_pass(RID p_light, RID p_shadow_atlas, ERR_FAIL_MSG("Dual paraboloid shadow mode not supported in the Compatibility renderer. Please use CubeMap shadow mode instead."); } - shadow_bias = light_storage->light_get_param(base, RS::LIGHT_PARAM_SHADOW_BIAS); + shadow_bias = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SHADOW_BIAS); - } else if (light_storage->light_get_type(base) == RS::LIGHT_SPOT) { + } else if (light_storage->light_get_type(base) == RSE::LIGHT_SPOT) { light_projection = light_storage->light_instance_get_shadow_camera(p_light, 0); light_transform = light_storage->light_instance_get_shadow_transform(p_light, 0); - shadow_bias = light_storage->light_get_param(base, RS::LIGHT_PARAM_SHADOW_BIAS) / 10.0; + shadow_bias = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SHADOW_BIAS) / 10.0; // Prebake range into bias so we can scale based on distance easily. - shadow_bias *= light_storage->light_get_param(base, RS::LIGHT_PARAM_RANGE); + shadow_bias *= light_storage->light_get_param(base, RSE::LIGHT_PARAM_RANGE); } atlas_rect.size.x = shadow_size; atlas_rect.size.y = shadow_size; @@ -2213,7 +2213,7 @@ void RasterizerSceneGLES3::_render_shadow_pass(RID p_light, RID p_shadow_atlas, _setup_environment(&render_data, true, p_viewport_size, false, Color(), use_pancake, shadow_bias); - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_DISABLE_LOD) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_DISABLE_LOD) { render_data.screen_mesh_lod_threshold = 0.0; } else { render_data.screen_mesh_lod_threshold = p_screen_mesh_lod_threshold; @@ -2249,7 +2249,7 @@ void RasterizerSceneGLES3::_render_shadow_pass(RID p_light, RID p_shadow_atlas, SceneShaderGLES3::DISABLE_FOG | SceneShaderGLES3::RENDER_SHADOWS; - if (light_storage->light_get_type(base) == RS::LIGHT_OMNI) { + if (light_storage->light_get_type(base) == RSE::LIGHT_OMNI) { spec_constant_base_flags |= SceneShaderGLES3::RENDER_SHADOWS_LINEAR; } @@ -2261,7 +2261,7 @@ void RasterizerSceneGLES3::_render_shadow_pass(RID p_light, RID p_shadow_atlas, scene_state.enable_gl_depth_test(false); scene_state.enable_gl_depth_draw(true); glDisable(GL_CULL_FACE); - scene_state.cull_mode = RS::CULL_MODE_DISABLED; + scene_state.cull_mode = RSE::CULL_MODE_DISABLED; glBindFramebuffer(GL_FRAMEBUFFER, GLES3::TextureStorage::system_fbo); } @@ -2276,7 +2276,7 @@ void RasterizerSceneGLES3::render_scene(const Ref &p_render_ Ref rb = p_render_buffers; ERR_FAIL_COND(rb.is_null()); - if (rb->get_scaling_3d_mode() != RS::VIEWPORT_SCALING_3D_MODE_OFF) { + if (rb->get_scaling_3d_mode() != RSE::VIEWPORT_SCALING_3D_MODE_OFF) { // If we're scaling, we apply tonemapping etc. in post, so disable it during rendering apply_color_adjustments_in_post = true; } @@ -2353,7 +2353,7 @@ void RasterizerSceneGLES3::render_scene(const Ref &p_render_ render_data.luminance_multiplier = 1.0; } - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_DISABLE_LOD) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_DISABLE_LOD) { render_data.screen_mesh_lod_threshold = 0.0; } else { render_data.screen_mesh_lod_threshold = p_screen_mesh_lod_threshold; @@ -2365,7 +2365,7 @@ void RasterizerSceneGLES3::render_scene(const Ref &p_render_ PagedArray empty; - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_UNSHADED) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_UNSHADED) { render_data.lights = ∅ render_data.reflection_probes = ∅ } @@ -2390,7 +2390,7 @@ void RasterizerSceneGLES3::render_scene(const Ref &p_render_ Size2i screen_size = rb->internal_size; - bool use_wireframe = get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME; + bool use_wireframe = get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_WIREFRAME; SceneState::TonemapUBO tonemap_ubo; if (render_data.environment.is_valid()) { @@ -2464,21 +2464,21 @@ void RasterizerSceneGLES3::render_scene(const Ref &p_render_ float sky_energy_multiplier = 1.0; int camera_feed_id = -1; - if (unlikely(get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_OVERDRAW)) { + if (unlikely(get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_OVERDRAW)) { clear_color = Color(0, 0, 0, 1); //in overdraw mode, BG should always be black } else if (render_data.environment.is_valid()) { - RS::EnvironmentBG bg_mode = environment_get_background(render_data.environment); + RSE::EnvironmentBG bg_mode = environment_get_background(render_data.environment); float bg_energy_multiplier = environment_get_bg_energy_multiplier(render_data.environment); bg_energy_multiplier *= environment_get_bg_intensity(render_data.environment); - RS::EnvironmentReflectionSource reflection_source = environment_get_reflection_source(render_data.environment); - RS::EnvironmentAmbientSource ambient_source = environment_get_ambient_source(render_data.environment); + RSE::EnvironmentReflectionSource reflection_source = environment_get_reflection_source(render_data.environment); + RSE::EnvironmentAmbientSource ambient_source = environment_get_ambient_source(render_data.environment); if (render_data.camera_attributes.is_valid()) { bg_energy_multiplier *= RSG::camera_attributes->camera_attributes_get_exposure_normalization_factor(render_data.camera_attributes); } switch (bg_mode) { - case RS::ENV_BG_CLEAR_COLOR: { + case RSE::ENV_BG_CLEAR_COLOR: { clear_color.r *= bg_energy_multiplier; clear_color.g *= bg_energy_multiplier; clear_color.b *= bg_energy_multiplier; @@ -2487,7 +2487,7 @@ void RasterizerSceneGLES3::render_scene(const Ref &p_render_ GLES3::MaterialStorage::get_singleton()->material_set_param(sky_globals.fog_material, "clear_color", Variant(clear_color)); } } break; - case RS::ENV_BG_COLOR: { + case RSE::ENV_BG_COLOR: { clear_color = environment_get_bg_color(render_data.environment); clear_color.r *= bg_energy_multiplier; clear_color.g *= bg_energy_multiplier; @@ -2497,16 +2497,16 @@ void RasterizerSceneGLES3::render_scene(const Ref &p_render_ GLES3::MaterialStorage::get_singleton()->material_set_param(sky_globals.fog_material, "clear_color", Variant(clear_color)); } } break; - case RS::ENV_BG_SKY: { + case RSE::ENV_BG_SKY: { draw_sky = !render_data.transparent_bg; } break; - case RS::ENV_BG_CANVAS: { + case RSE::ENV_BG_CANVAS: { draw_canvas = true; } break; - case RS::ENV_BG_KEEP: { + case RSE::ENV_BG_KEEP: { keep_color = true; } break; - case RS::ENV_BG_CAMERA_FEED: { + case RSE::ENV_BG_CAMERA_FEED: { camera_feed_id = environment_get_camera_feed_id(render_data.environment); draw_feed = true; keep_color = true; @@ -2515,10 +2515,10 @@ void RasterizerSceneGLES3::render_scene(const Ref &p_render_ } } - bool sky_reflections = reflection_source == RS::ENV_REFLECTION_SOURCE_SKY; - sky_reflections |= reflection_source == RS::ENV_REFLECTION_SOURCE_BG && bg_mode == RS::ENV_BG_SKY; - bool sky_ambient = ambient_source == RS::ENV_AMBIENT_SOURCE_SKY; - sky_ambient |= ambient_source == RS::ENV_AMBIENT_SOURCE_BG && bg_mode == RS::ENV_BG_SKY; + bool sky_reflections = reflection_source == RSE::ENV_REFLECTION_SOURCE_SKY; + sky_reflections |= reflection_source == RSE::ENV_REFLECTION_SOURCE_BG && bg_mode == RSE::ENV_BG_SKY; + bool sky_ambient = ambient_source == RSE::ENV_AMBIENT_SOURCE_SKY; + sky_ambient |= ambient_source == RSE::ENV_AMBIENT_SOURCE_BG && bg_mode == RSE::ENV_BG_SKY; // setup sky if used for ambient, reflections, or background if (draw_sky || draw_sky_fog_only || sky_reflections || sky_ambient) { @@ -2604,7 +2604,7 @@ void RasterizerSceneGLES3::render_scene(const Ref &p_render_ use_depth_prepass = use_depth_prepass || scene_state.used_opaque_stencil; // Don't do depth prepass we are rendering overdraw - use_depth_prepass = use_depth_prepass && get_debug_draw_mode() != RS::VIEWPORT_DEBUG_DRAW_OVERDRAW; + use_depth_prepass = use_depth_prepass && get_debug_draw_mode() != RSE::VIEWPORT_DEBUG_DRAW_OVERDRAW; if (use_depth_prepass) { RENDER_TIMESTAMP("Depth Prepass"); @@ -2712,7 +2712,7 @@ void RasterizerSceneGLES3::render_scene(const Ref &p_render_ spec_constant_base_flags |= SceneShaderGLES3::DISABLE_FOG; } - if (render_data.environment.is_valid() && environment_get_fog_mode(render_data.environment) == RS::EnvironmentFogMode::ENV_FOG_MODE_DEPTH) { + if (render_data.environment.is_valid() && environment_get_fog_mode(render_data.environment) == RSE::EnvironmentFogMode::ENV_FOG_MODE_DEPTH) { spec_constant_base_flags |= SceneShaderGLES3::USE_DEPTH_FOG; } @@ -2727,7 +2727,7 @@ void RasterizerSceneGLES3::render_scene(const Ref &p_render_ scene_state.enable_gl_depth_draw(false); scene_state.enable_gl_depth_test(false); scene_state.enable_gl_blend(false); - scene_state.set_gl_cull_mode(RS::CULL_MODE_BACK); + scene_state.set_gl_cull_mode(RSE::CULL_MODE_BACK); Ref feed = CameraServer::get_singleton()->get_feed_by_id(camera_feed_id); @@ -2757,7 +2757,7 @@ void RasterizerSceneGLES3::render_scene(const Ref &p_render_ scene_state.enable_gl_depth_test(true); scene_state.set_gl_depth_func(GL_GEQUAL); scene_state.enable_gl_blend(false); - scene_state.set_gl_cull_mode(RS::CULL_MODE_BACK); + scene_state.set_gl_cull_mode(RSE::CULL_MODE_BACK); Transform3D transform = render_data.cam_transform; Projection projection = render_data.cam_projection; @@ -2849,7 +2849,7 @@ void RasterizerSceneGLES3::_render_post_processing(const RenderDataGLES3 *p_rend Size2i target_size = rb->get_target_size(); uint32_t view_count = rb->get_view_count(); - // bool msaa2d_needs_resolve = texture_storage->render_target_get_msaa(render_target) != RS::VIEWPORT_MSAA_DISABLED && !GLES3::Config::get_singleton()->rt_msaa_supported; + // bool msaa2d_needs_resolve = texture_storage->render_target_get_msaa(render_target) != RSE::VIEWPORT_MSAA_DISABLED && !GLES3::Config::get_singleton()->rt_msaa_supported; bool msaa3d_needs_resolve = rb->get_msaa_needs_resolve(); GLuint fbo_msaa_3d = rb->get_msaa3d_fbo(); GLuint fbo_int = rb->get_internal_fbo(); @@ -3108,7 +3108,7 @@ void RasterizerSceneGLES3::_render_list_template(RenderListParameters *p_params, if constexpr (p_pass_mode != PASS_MODE_DEPTH && p_pass_mode != PASS_MODE_MOTION_VECTORS) { // Don't count elements during depth pre-pass or motion vector pass to match the RD renderers. if (p_render_data->render_info) { - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] += p_to_element - p_from_element; + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] += p_to_element - p_from_element; } } @@ -3133,10 +3133,10 @@ void RasterizerSceneGLES3::_render_list_template(RenderListParameters *p_params, material_data = surf->material_shadow; mesh_surface = surf->surface_shadow; } else { - if (unlikely(get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_OVERDRAW)) { + if (unlikely(get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_OVERDRAW)) { material_data = overdraw_material_data_ptr; shader = material_data->shader_data; - } else if (unlikely(get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_LIGHTING)) { + } else if (unlikely(get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_LIGHTING)) { material_data = default_material_data_ptr; shader = material_data->shader_data; } else { @@ -3247,7 +3247,7 @@ void RasterizerSceneGLES3::_render_list_template(RenderListParameters *p_params, } } else if (pass > 0) { uint32_t shadow_id = MAX_DIRECTIONAL_LIGHTS - 1 - (pass - int32_t(inst->light_passes.size())); - if (inst->lightmap_instance.is_valid() && scene_state.directional_lights[shadow_id].bake_mode == RenderingServer::LIGHT_BAKE_STATIC) { + if (inst->lightmap_instance.is_valid() && scene_state.directional_lights[shadow_id].bake_mode == RSE::LIGHT_BAKE_STATIC) { // Skip shadows for static lights on meshes with a lightmap. continue; } @@ -3306,27 +3306,27 @@ void RasterizerSceneGLES3::_render_list_template(RenderListParameters *p_params, } // Find cull variant. - RS::CullMode cull_mode = shader->cull_mode; + RSE::CullMode cull_mode = shader->cull_mode; if (p_pass_mode == PASS_MODE_MATERIAL || (p_pass_mode == PASS_MODE_SHADOW && (surf->flags & GeometryInstanceSurface::FLAG_USES_DOUBLE_SIDED_SHADOWS))) { - cull_mode = RS::CULL_MODE_DISABLED; + cull_mode = RSE::CULL_MODE_DISABLED; } else { bool mirror = inst->mirror; if (p_params->reverse_cull) { mirror = !mirror; } - if (cull_mode == RS::CULL_MODE_FRONT && mirror) { - cull_mode = RS::CULL_MODE_BACK; - } else if (cull_mode == RS::CULL_MODE_BACK && mirror) { - cull_mode = RS::CULL_MODE_FRONT; + if (cull_mode == RSE::CULL_MODE_FRONT && mirror) { + cull_mode = RSE::CULL_MODE_BACK; + } else if (cull_mode == RSE::CULL_MODE_BACK && mirror) { + cull_mode = RSE::CULL_MODE_FRONT; } } scene_state.set_gl_cull_mode(cull_mode); - RS::PrimitiveType primitive = surf->primitive; + RSE::PrimitiveType primitive = surf->primitive; if (shader->uses_point_size) { - primitive = RS::PRIMITIVE_POINTS; + primitive = RSE::PRIMITIVE_POINTS; } static const GLenum prim[5] = { GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_TRIANGLES, GL_TRIANGLE_STRIP }; GLenum primitive_gl = prim[int(primitive)]; @@ -3335,7 +3335,7 @@ void RasterizerSceneGLES3::_render_list_template(RenderListParameters *p_params, GLuint index_array_gl = 0; uint64_t vertex_input_mask = shader->vertex_input_mask; if (inst->lightmap_instance.is_valid() || p_pass_mode == PASS_MODE_MATERIAL) { - vertex_input_mask |= 1 << RS::ARRAY_TEX_UV2; + vertex_input_mask |= 1 << RSE::ARRAY_TEX_UV2; } // Skeleton and blend shapes. @@ -3401,7 +3401,7 @@ void RasterizerSceneGLES3::_render_list_template(RenderListParameters *p_params, if (pass == 0) { spec_constants |= SceneShaderGLES3::BASE_PASS; - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_UNSHADED) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_UNSHADED) { spec_constants |= SceneShaderGLES3::DISABLE_LIGHT_OMNI; spec_constants |= SceneShaderGLES3::DISABLE_LIGHT_SPOT; spec_constants |= SceneShaderGLES3::DISABLE_LIGHT_DIRECTIONAL; @@ -3465,7 +3465,7 @@ void RasterizerSceneGLES3::_render_list_template(RenderListParameters *p_params, GLES3::LightmapInstance *li = GLES3::LightStorage::get_singleton()->get_lightmap_instance(inst->lightmap_instance); GLES3::Lightmap *lm = GLES3::LightStorage::get_singleton()->get_lightmap(li->lightmap); - if (lm->shadowmask_mode != RS::SHADOWMASK_MODE_NONE) { + if (lm->shadowmask_mode != RSE::SHADOWMASK_MODE_NONE) { spec_constants |= SceneShaderGLES3::USE_LIGHTMAP; disable_lightmaps = false; @@ -3491,9 +3491,9 @@ void RasterizerSceneGLES3::_render_list_template(RenderListParameters *p_params, spec_constants |= SceneShaderGLES3::ADDITIVE_SPOT; } - if (scene_state.positional_shadow_quality >= RS::SHADOW_QUALITY_SOFT_HIGH) { + if (scene_state.positional_shadow_quality >= RSE::SHADOW_QUALITY_SOFT_HIGH) { spec_constants |= SceneShaderGLES3::SHADOW_MODE_PCF_13; - } else if (scene_state.positional_shadow_quality >= RS::SHADOW_QUALITY_SOFT_LOW) { + } else if (scene_state.positional_shadow_quality >= RSE::SHADOW_QUALITY_SOFT_LOW) { spec_constants |= SceneShaderGLES3::SHADOW_MODE_PCF_5; } } else { @@ -3504,7 +3504,7 @@ void RasterizerSceneGLES3::_render_list_template(RenderListParameters *p_params, // Disable additive lighting when masks are not overlapping. spec_constants &= ~SceneShaderGLES3::USE_ADDITIVE_LIGHTING; } - if (pass == 0 && inst->lightmap_instance.is_valid() && scene_state.directional_lights[shadow_id].bake_mode == RenderingServer::LIGHT_BAKE_STATIC) { + if (pass == 0 && inst->lightmap_instance.is_valid() && scene_state.directional_lights[shadow_id].bake_mode == RSE::LIGHT_BAKE_STATIC) { // Disable additive lighting with a static light and a lightmap. spec_constants &= ~SceneShaderGLES3::USE_ADDITIVE_LIGHTING; } @@ -3520,9 +3520,9 @@ void RasterizerSceneGLES3::_render_list_template(RenderListParameters *p_params, spec_constants |= SceneShaderGLES3::LIGHT_USE_PSSM_BLEND; } - if (scene_state.directional_shadow_quality >= RS::SHADOW_QUALITY_SOFT_HIGH) { + if (scene_state.directional_shadow_quality >= RSE::SHADOW_QUALITY_SOFT_HIGH) { spec_constants |= SceneShaderGLES3::SHADOW_MODE_PCF_13; - } else if (scene_state.directional_shadow_quality >= RS::SHADOW_QUALITY_SOFT_LOW) { + } else if (scene_state.directional_shadow_quality >= RSE::SHADOW_QUALITY_SOFT_LOW) { spec_constants |= SceneShaderGLES3::SHADOW_MODE_PCF_5; } } @@ -3734,7 +3734,7 @@ void RasterizerSceneGLES3::_render_list_template(RenderListParameters *p_params, material_storage->shaders.scene_shader.version_set_uniform(SceneShaderGLES3::WORLD_TRANSFORM, world_transform, shader->version, instance_variant, spec_constants); { GLES3::Mesh::Surface *s = reinterpret_cast(surf->surface); - if (s->format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + if (s->format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { material_storage->shaders.scene_shader.version_set_uniform(SceneShaderGLES3::COMPRESSED_AABB_POSITION, s->aabb.position, shader->version, instance_variant, spec_constants); material_storage->shaders.scene_shader.version_set_uniform(SceneShaderGLES3::COMPRESSED_AABB_SIZE, s->aabb.size, shader->version, instance_variant, spec_constants); material_storage->shaders.scene_shader.version_set_uniform(SceneShaderGLES3::UV_SCALE, s->uv_scale, shader->version, instance_variant, spec_constants); @@ -3770,7 +3770,7 @@ void RasterizerSceneGLES3::_render_list_template(RenderListParameters *p_params, if constexpr (p_pass_mode != PASS_MODE_DEPTH && p_pass_mode != PASS_MODE_MOTION_VECTORS) { // Don't count draw calls during depth pre-pass or motion vector pass to match the RD renderers. if (p_render_data->render_info) { - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; } } @@ -4033,7 +4033,7 @@ void RasterizerSceneGLES3::set_time(double p_time, double p_step) { time_step = p_step; } -void RasterizerSceneGLES3::set_debug_draw_mode(RS::ViewportDebugDraw p_debug_draw) { +void RasterizerSceneGLES3::set_debug_draw_mode(RSE::ViewportDebugDraw p_debug_draw) { debug_draw = p_debug_draw; } @@ -4054,7 +4054,7 @@ void RasterizerSceneGLES3::_render_buffers_debug_draw(Refget_render_target(render_target); ERR_FAIL_NULL(rt); - if (debug_draw == RS::VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS) { + if (debug_draw == RSE::VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS) { if (p_shadow_atlas.is_valid()) { // Get or create debug textures to display shadow maps as an atlas. GLuint shadow_atlas_texture = light_storage->shadow_atlas_get_debug_texture(p_shadow_atlas); @@ -4068,7 +4068,7 @@ void RasterizerSceneGLES3::_render_buffers_debug_draw(Refdirectional_shadow_get_texture() != 0) { GLuint shadow_atlas_texture = light_storage->directional_shadow_get_texture(); glActiveTexture(GL_TEXTURE0); @@ -4167,7 +4167,7 @@ bool RasterizerSceneGLES3::screen_space_roughness_limiter_is_active() const { return false; } -void RasterizerSceneGLES3::sub_surface_scattering_set_quality(RS::SubSurfaceScatteringQuality p_quality) { +void RasterizerSceneGLES3::sub_surface_scattering_set_quality(RSE::SubSurfaceScatteringQuality p_quality) { } void RasterizerSceneGLES3::sub_surface_scattering_set_scale(float p_scale, float p_depth_scale) { @@ -4355,10 +4355,10 @@ void RasterizerSceneGLES3::update() { void RasterizerSceneGLES3::sdfgi_set_debug_probe_select(const Vector3 &p_position, const Vector3 &p_dir) { } -void RasterizerSceneGLES3::decals_set_filter(RS::DecalFilter p_filter) { +void RasterizerSceneGLES3::decals_set_filter(RSE::DecalFilter p_filter) { } -void RasterizerSceneGLES3::light_projectors_set_filter(RS::LightProjectorFilter p_filter) { +void RasterizerSceneGLES3::light_projectors_set_filter(RSE::LightProjectorFilter p_filter) { } void RasterizerSceneGLES3::lightmaps_set_bicubic_filter(bool p_enable) { @@ -4380,8 +4380,8 @@ RasterizerSceneGLES3::RasterizerSceneGLES3() { // Quality settings. use_physical_light_units = GLOBAL_GET("rendering/lights_and_shadows/use_physical_light_units"); - positional_soft_shadow_filter_set_quality((RS::ShadowQuality)(int)GLOBAL_GET("rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality")); - directional_soft_shadow_filter_set_quality((RS::ShadowQuality)(int)GLOBAL_GET("rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality")); + positional_soft_shadow_filter_set_quality((RSE::ShadowQuality)(int)GLOBAL_GET("rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality")); + directional_soft_shadow_filter_set_quality((RSE::ShadowQuality)(int)GLOBAL_GET("rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality")); lightmaps_set_bicubic_filter(GLOBAL_GET("rendering/lightmapping/lightmap_gi/use_bicubic_filter")); { @@ -4477,7 +4477,7 @@ void fragment() { scene_globals.default_material = material_storage->material_allocate(); material_storage->material_initialize(scene_globals.default_material); material_storage->material_set_shader(scene_globals.default_material, scene_globals.default_shader); - default_material_data_ptr = static_cast(GLES3::MaterialStorage::get_singleton()->material_get_data(scene_globals.default_material, RS::SHADER_SPATIAL)); + default_material_data_ptr = static_cast(GLES3::MaterialStorage::get_singleton()->material_get_data(scene_globals.default_material, RSE::SHADER_SPATIAL)); } { @@ -4499,7 +4499,7 @@ void fragment() { scene_globals.overdraw_material = material_storage->material_allocate(); material_storage->material_initialize(scene_globals.overdraw_material); material_storage->material_set_shader(scene_globals.overdraw_material, scene_globals.overdraw_shader); - overdraw_material_data_ptr = static_cast(GLES3::MaterialStorage::get_singleton()->material_get_data(scene_globals.overdraw_material, RS::SHADER_SPATIAL)); + overdraw_material_data_ptr = static_cast(GLES3::MaterialStorage::get_singleton()->material_get_data(scene_globals.overdraw_material, RSE::SHADER_SPATIAL)); } { @@ -4570,8 +4570,8 @@ void sky() { GLES3::Utilities::get_singleton()->buffer_allocate_data(GL_ARRAY_BUFFER, sky_globals.screen_triangle, sizeof(float) * 6, qv, GL_STATIC_DRAW, "Screen triangle vertex buffer"); - glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); - glEnableVertexAttribArray(RS::ARRAY_VERTEX); + glVertexAttribPointer(RSE::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); + glEnableVertexAttribArray(RSE::ARRAY_VERTEX); glBindVertexArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); //unbind } @@ -4583,7 +4583,7 @@ void sky() { #endif // GL_API_ENABLED // MultiMesh may read from color when color is disabled, so make sure that the color defaults to white instead of black; - glVertexAttrib4f(RS::ARRAY_COLOR, 1.0, 1.0, 1.0, 1.0); + glVertexAttrib4f(RSE::ARRAY_COLOR, 1.0, 1.0, 1.0, 1.0); } RasterizerSceneGLES3::~RasterizerSceneGLES3() { diff --git a/drivers/gles3/rasterizer_scene_gles3.h b/drivers/gles3/rasterizer_scene_gles3.h index 06daba39ac..c83db9e8c4 100644 --- a/drivers/gles3/rasterizer_scene_gles3.h +++ b/drivers/gles3/rasterizer_scene_gles3.h @@ -39,7 +39,7 @@ #include "drivers/gles3/storage/light_storage.h" #include "drivers/gles3/storage/material_storage.h" #include "servers/rendering/renderer_scene_render.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class RenderSceneBuffersGLES3; @@ -149,7 +149,7 @@ class RasterizerCanvasGLES3; class RasterizerSceneGLES3 : public RendererSceneRender { private: static RasterizerSceneGLES3 *singleton; - RS::ViewportDebugDraw debug_draw = RS::VIEWPORT_DEBUG_DRAW_DISABLED; + RSE::ViewportDebugDraw debug_draw = RSE::VIEWPORT_DEBUG_DRAW_DISABLED; uint64_t scene_pass = 0; template @@ -272,7 +272,7 @@ private: }; } sort; - RS::PrimitiveType primitive = RS::PRIMITIVE_MAX; + RSE::PrimitiveType primitive = RSE::PRIMITIVE_MAX; uint32_t flags = 0; uint32_t surface_index = 0; uint32_t lod_index = 0; @@ -348,7 +348,7 @@ private: virtual void set_lightmap_capture(const Color *p_sh9) override; virtual void clear_light_instances() override; - virtual void pair_light_instance(const RID p_light_instance, RS::LightType light_type, uint32_t placement_idx) override; + virtual void pair_light_instance(const RID p_light_instance, RSE::LightType light_type, uint32_t placement_idx) override; virtual void pair_reflection_probe_instances(const RID *p_reflection_probe_instances, uint32_t p_reflection_probe_instance_count) override; virtual void pair_decal_instances(const RID *p_decal_instances, uint32_t p_decal_instance_count) override {} virtual void pair_voxel_gi_instances(const RID *p_voxel_gi_instances, uint32_t p_voxel_gi_instance_count) override {} @@ -477,7 +477,7 @@ private: bool used_depth_prepass = false; GLES3::SceneShaderData::BlendMode current_blend_mode = GLES3::SceneShaderData::BLEND_MODE_MIX; - RS::CullMode cull_mode = RS::CULL_MODE_BACK; + RSE::CullMode cull_mode = RSE::CULL_MODE_BACK; GLenum current_depth_function = GL_GEQUAL; bool current_blend_enabled = false; @@ -494,7 +494,7 @@ private: glCullFace(GL_BACK); glEnable(GL_CULL_FACE); - cull_mode = RS::CULL_MODE_BACK; + cull_mode = RSE::CULL_MODE_BACK; glDepthMask(GL_FALSE); current_depth_draw_enabled = false; @@ -514,16 +514,16 @@ private: current_stencil_compare_mask = 255; } - void set_gl_cull_mode(RS::CullMode p_mode) { + void set_gl_cull_mode(RSE::CullMode p_mode) { if (cull_mode != p_mode) { - if (p_mode == RS::CULL_MODE_DISABLED) { + if (p_mode == RSE::CULL_MODE_DISABLED) { glDisable(GL_CULL_FACE); } else { - if (cull_mode == RS::CULL_MODE_DISABLED) { + if (cull_mode == RSE::CULL_MODE_DISABLED) { // Last time was disabled, so enable and set proper face. glEnable(GL_CULL_FACE); } - glCullFace(p_mode == RS::CULL_MODE_FRONT ? GL_FRONT : GL_BACK); + glCullFace(p_mode == RSE::CULL_MODE_FRONT ? GL_FRONT : GL_BACK); } cull_mode = p_mode; } @@ -638,13 +638,13 @@ private: GLuint positional_shadow_buffer = 0; uint32_t omni_light_count = 0; uint32_t spot_light_count = 0; - RS::ShadowQuality positional_shadow_quality = RS::ShadowQuality::SHADOW_QUALITY_SOFT_LOW; + RSE::ShadowQuality positional_shadow_quality = RSE::ShadowQuality::SHADOW_QUALITY_SOFT_LOW; DirectionalLightData *directional_lights = nullptr; GLuint directional_light_buffer = 0; DirectionalShadowData *directional_shadows = nullptr; GLuint directional_shadow_buffer = 0; - RS::ShadowQuality directional_shadow_quality = RS::ShadowQuality::SHADOW_QUALITY_SOFT_LOW; + RSE::ShadowQuality directional_shadow_quality = RSE::ShadowQuality::SHADOW_QUALITY_SOFT_LOW; } scene_state; struct RenderListParameters { @@ -755,7 +755,7 @@ protected: /* Environment */ - RS::EnvironmentSSAOQuality ssao_quality = RS::ENV_SSAO_QUALITY_MEDIUM; + RSE::EnvironmentSSAOQuality ssao_quality = RSE::ENV_SSAO_QUALITY_MEDIUM; bool ssao_half_size = false; float ssao_adaptive_target = 0.5; int ssao_blur_passes = 2; @@ -812,7 +812,7 @@ protected: int radiance_size = 256; int mipmap_count = 1; - RS::SkyMode mode = RS::SKY_MODE_AUTOMATIC; + RSE::SkyMode mode = RSE::SKY_MODE_AUTOMATIC; //ReflectionData reflection; bool reflection_dirty = false; @@ -854,7 +854,7 @@ public: /* PIPELINES */ virtual void mesh_generate_pipelines(RID p_mesh, bool p_background_compilation) override {} - virtual uint32_t get_pipeline_compilations(RS::PipelineSource p_source) override { return 0; } + virtual uint32_t get_pipeline_compilations(RSE::PipelineSource p_source) override { return 0; } /* SDFGI UPDATE */ @@ -874,7 +874,7 @@ public: RID sky_allocate() override; void sky_initialize(RID p_rid) override; void sky_set_radiance_size(RID p_sky, int p_radiance_size) override; - void sky_set_mode(RID p_sky, RS::SkyMode p_mode) override; + void sky_set_mode(RID p_sky, RSE::SkyMode p_mode) override; void sky_set_material(RID p_sky, RID p_material) override; Ref sky_bake_panorama(RID p_sky, float p_energy, bool p_bake_irradiance, const Size2i &p_size) override; float sky_get_baked_exposure(RID p_sky) const; @@ -884,15 +884,15 @@ public: void environment_glow_set_use_bicubic_upscale(bool p_enable) override; void environment_set_ssr_half_size(bool p_half_size) override; - void environment_set_ssr_roughness_quality(RS::EnvironmentSSRRoughnessQuality p_quality) override; + void environment_set_ssr_roughness_quality(RSE::EnvironmentSSRRoughnessQuality p_quality) override; - void environment_set_ssao_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override; + void environment_set_ssao_quality(RSE::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override; - void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override; + void environment_set_ssil_quality(RSE::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override; - void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) override; - void environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) override; - void environment_set_sdfgi_frames_to_update_light(RS::EnvironmentSDFGIFramesToUpdateLight p_update) override; + void environment_set_sdfgi_ray_count(RSE::EnvironmentSDFGIRayCount p_ray_count) override; + void environment_set_sdfgi_frames_to_converge(RSE::EnvironmentSDFGIFramesToConverge p_frames) override; + void environment_set_sdfgi_frames_to_update_light(RSE::EnvironmentSDFGIFramesToUpdateLight p_update) override; void environment_set_volumetric_fog_volume_size(int p_size, int p_depth) override; void environment_set_volumetric_fog_filter_active(bool p_enable) override; @@ -903,8 +903,8 @@ public: return use_physical_light_units; } - void positional_soft_shadow_filter_set_quality(RS::ShadowQuality p_quality) override; - void directional_soft_shadow_filter_set_quality(RS::ShadowQuality p_quality) override; + void positional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) override; + void directional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) override; RID fog_volume_instance_create(RID p_fog_volume) override; void fog_volume_instance_set_transform(RID p_fog_volume_instance, const Transform3D &p_transform) override; @@ -917,7 +917,7 @@ public: bool voxel_gi_needs_update(RID p_probe) const override; void voxel_gi_update(RID p_probe, bool p_update_light_instances, const Vector &p_light_instances, const PagedArray &p_dynamic_objects) override; - void voxel_gi_set_quality(RS::VoxelGIQuality) override; + void voxel_gi_set_quality(RSE::VoxelGIQuality) override; void render_scene(const Ref &p_render_buffers, const CameraData *p_camera_data, const CameraData *p_prev_camera_data, const PagedArray &p_instances, const PagedArray &p_lights, const PagedArray &p_reflection_probes, const PagedArray &p_voxel_gi_instances, const PagedArray &p_decals, const PagedArray &p_lightmaps, const PagedArray &p_fog_volumes, RID p_environment, RID p_camera_attributes, RID p_compositor, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, float p_window_output_max_value, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RenderingMethod::RenderInfo *r_render_info = nullptr) override; void render_material(const Transform3D &p_cam_transform, const Projection &p_cam_projection, bool p_cam_orthogonal, const PagedArray &p_instances, RID p_framebuffer, const Rect2i &p_region) override; @@ -932,8 +932,8 @@ public: } void set_time(double p_time, double p_step) override; - void set_debug_draw_mode(RS::ViewportDebugDraw p_debug_draw) override; - _FORCE_INLINE_ RS::ViewportDebugDraw get_debug_draw_mode() const { + void set_debug_draw_mode(RSE::ViewportDebugDraw p_debug_draw) override; + _FORCE_INLINE_ RSE::ViewportDebugDraw get_debug_draw_mode() const { return debug_draw; } @@ -943,7 +943,7 @@ public: void screen_space_roughness_limiter_set_active(bool p_enable, float p_amount, float p_curve) override; bool screen_space_roughness_limiter_is_active() const override; - void sub_surface_scattering_set_quality(RS::SubSurfaceScatteringQuality p_quality) override; + void sub_surface_scattering_set_quality(RSE::SubSurfaceScatteringQuality p_quality) override; void sub_surface_scattering_set_scale(float p_scale, float p_depth_scale) override; TypedArray bake_render_uv2(RID p_base, const TypedArray &p_material_overrides, const Size2i &p_image_size) override; @@ -953,8 +953,8 @@ public: void update() override; void sdfgi_set_debug_probe_select(const Vector3 &p_position, const Vector3 &p_dir) override; - void decals_set_filter(RS::DecalFilter p_filter) override; - void light_projectors_set_filter(RS::LightProjectorFilter p_filter) override; + void decals_set_filter(RSE::DecalFilter p_filter) override; + void light_projectors_set_filter(RSE::LightProjectorFilter p_filter) override; virtual void lightmaps_set_bicubic_filter(bool p_enable) override; virtual void material_set_use_debanding(bool p_enable) override; diff --git a/drivers/gles3/storage/light_storage.cpp b/drivers/gles3/storage/light_storage.cpp index 6acbda053f..635b9d4c77 100644 --- a/drivers/gles3/storage/light_storage.cpp +++ b/drivers/gles3/storage/light_storage.cpp @@ -63,31 +63,31 @@ LightStorage::~LightStorage() { /* Light API */ -void LightStorage::_light_initialize(RID p_light, RS::LightType p_type) { +void LightStorage::_light_initialize(RID p_light, RSE::LightType p_type) { Light light; light.type = p_type; - light.param[RS::LIGHT_PARAM_ENERGY] = 1.0; - light.param[RS::LIGHT_PARAM_INDIRECT_ENERGY] = 1.0; - light.param[RS::LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY] = 1.0; - light.param[RS::LIGHT_PARAM_SPECULAR] = 0.5; - light.param[RS::LIGHT_PARAM_RANGE] = 1.0; - light.param[RS::LIGHT_PARAM_SIZE] = 0.0; - light.param[RS::LIGHT_PARAM_ATTENUATION] = 1.0; - light.param[RS::LIGHT_PARAM_SPOT_ANGLE] = 45; - light.param[RS::LIGHT_PARAM_SPOT_ATTENUATION] = 1.0; - light.param[RS::LIGHT_PARAM_SHADOW_MAX_DISTANCE] = 0; - light.param[RS::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET] = 0.1; - light.param[RS::LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET] = 0.3; - light.param[RS::LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET] = 0.6; - light.param[RS::LIGHT_PARAM_SHADOW_FADE_START] = 0.8; - light.param[RS::LIGHT_PARAM_SHADOW_NORMAL_BIAS] = 1.0; - light.param[RS::LIGHT_PARAM_SHADOW_OPACITY] = 1.0; - light.param[RS::LIGHT_PARAM_SHADOW_BIAS] = 0.02; - light.param[RS::LIGHT_PARAM_SHADOW_BLUR] = 0; - light.param[RS::LIGHT_PARAM_SHADOW_PANCAKE_SIZE] = 20.0; - light.param[RS::LIGHT_PARAM_TRANSMITTANCE_BIAS] = 0.05; - light.param[RS::LIGHT_PARAM_INTENSITY] = p_type == RS::LIGHT_DIRECTIONAL ? 100000.0 : 1000.0; + light.param[RSE::LIGHT_PARAM_ENERGY] = 1.0; + light.param[RSE::LIGHT_PARAM_INDIRECT_ENERGY] = 1.0; + light.param[RSE::LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY] = 1.0; + light.param[RSE::LIGHT_PARAM_SPECULAR] = 0.5; + light.param[RSE::LIGHT_PARAM_RANGE] = 1.0; + light.param[RSE::LIGHT_PARAM_SIZE] = 0.0; + light.param[RSE::LIGHT_PARAM_ATTENUATION] = 1.0; + light.param[RSE::LIGHT_PARAM_SPOT_ANGLE] = 45; + light.param[RSE::LIGHT_PARAM_SPOT_ATTENUATION] = 1.0; + light.param[RSE::LIGHT_PARAM_SHADOW_MAX_DISTANCE] = 0; + light.param[RSE::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET] = 0.1; + light.param[RSE::LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET] = 0.3; + light.param[RSE::LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET] = 0.6; + light.param[RSE::LIGHT_PARAM_SHADOW_FADE_START] = 0.8; + light.param[RSE::LIGHT_PARAM_SHADOW_NORMAL_BIAS] = 1.0; + light.param[RSE::LIGHT_PARAM_SHADOW_OPACITY] = 1.0; + light.param[RSE::LIGHT_PARAM_SHADOW_BIAS] = 0.02; + light.param[RSE::LIGHT_PARAM_SHADOW_BLUR] = 0; + light.param[RSE::LIGHT_PARAM_SHADOW_PANCAKE_SIZE] = 20.0; + light.param[RSE::LIGHT_PARAM_TRANSMITTANCE_BIAS] = 0.05; + light.param[RSE::LIGHT_PARAM_INTENSITY] = p_type == RSE::LIGHT_DIRECTIONAL ? 100000.0 : 1000.0; light_owner.initialize_rid(p_light, light); } @@ -97,7 +97,7 @@ RID LightStorage::directional_light_allocate() { } void LightStorage::directional_light_initialize(RID p_rid) { - _light_initialize(p_rid, RS::LIGHT_DIRECTIONAL); + _light_initialize(p_rid, RSE::LIGHT_DIRECTIONAL); } RID LightStorage::omni_light_allocate() { @@ -105,7 +105,7 @@ RID LightStorage::omni_light_allocate() { } void LightStorage::omni_light_initialize(RID p_rid) { - _light_initialize(p_rid, RS::LIGHT_OMNI); + _light_initialize(p_rid, RSE::LIGHT_OMNI); } RID LightStorage::spot_light_allocate() { @@ -113,7 +113,7 @@ RID LightStorage::spot_light_allocate() { } void LightStorage::spot_light_initialize(RID p_rid) { - _light_initialize(p_rid, RS::LIGHT_SPOT); + _light_initialize(p_rid, RSE::LIGHT_SPOT); } void LightStorage::light_free(RID p_rid) { @@ -132,29 +132,29 @@ void LightStorage::light_set_color(RID p_light, const Color &p_color) { light->color = p_color; } -void LightStorage::light_set_param(RID p_light, RS::LightParam p_param, float p_value) { +void LightStorage::light_set_param(RID p_light, RSE::LightParam p_param, float p_value) { Light *light = light_owner.get_or_null(p_light); ERR_FAIL_NULL(light); - ERR_FAIL_INDEX(p_param, RS::LIGHT_PARAM_MAX); + ERR_FAIL_INDEX(p_param, RSE::LIGHT_PARAM_MAX); if (light->param[p_param] == p_value) { return; } switch (p_param) { - case RS::LIGHT_PARAM_RANGE: - case RS::LIGHT_PARAM_SPOT_ANGLE: - case RS::LIGHT_PARAM_SHADOW_MAX_DISTANCE: - case RS::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET: - case RS::LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET: - case RS::LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET: - case RS::LIGHT_PARAM_SHADOW_NORMAL_BIAS: - case RS::LIGHT_PARAM_SHADOW_PANCAKE_SIZE: - case RS::LIGHT_PARAM_SHADOW_BIAS: { + case RSE::LIGHT_PARAM_RANGE: + case RSE::LIGHT_PARAM_SPOT_ANGLE: + case RSE::LIGHT_PARAM_SHADOW_MAX_DISTANCE: + case RSE::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET: + case RSE::LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET: + case RSE::LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET: + case RSE::LIGHT_PARAM_SHADOW_NORMAL_BIAS: + case RSE::LIGHT_PARAM_SHADOW_PANCAKE_SIZE: + case RSE::LIGHT_PARAM_SHADOW_BIAS: { light->version++; light->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_LIGHT); } break; - case RS::LIGHT_PARAM_SIZE: { + case RSE::LIGHT_PARAM_SIZE: { if ((light->param[p_param] > CMP_EPSILON) != (p_value > CMP_EPSILON)) { //changing from no size to size and the opposite light->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_LIGHT_SOFT_SHADOW_AND_PROJECTOR); @@ -185,15 +185,15 @@ void LightStorage::light_set_projector(RID p_light, RID p_texture) { return; } - if (light->type != RS::LIGHT_DIRECTIONAL && light->projector.is_valid()) { - texture_storage->texture_remove_from_decal_atlas(light->projector, light->type == RS::LIGHT_OMNI); + if (light->type != RSE::LIGHT_DIRECTIONAL && light->projector.is_valid()) { + texture_storage->texture_remove_from_decal_atlas(light->projector, light->type == RSE::LIGHT_OMNI); } light->projector = p_texture; - if (light->type != RS::LIGHT_DIRECTIONAL) { + if (light->type != RSE::LIGHT_DIRECTIONAL) { if (light->projector.is_valid()) { - texture_storage->texture_add_to_decal_atlas(light->projector, light->type == RS::LIGHT_OMNI); + texture_storage->texture_add_to_decal_atlas(light->projector, light->type == RSE::LIGHT_OMNI); } light->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_LIGHT_SOFT_SHADOW_AND_PROJECTOR); } @@ -253,7 +253,7 @@ void LightStorage::light_set_reverse_cull_face_mode(RID p_light, bool p_enabled) light->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_LIGHT); } -void LightStorage::light_set_bake_mode(RID p_light, RS::LightBakeMode p_bake_mode) { +void LightStorage::light_set_bake_mode(RID p_light, RSE::LightBakeMode p_bake_mode) { Light *light = light_owner.get_or_null(p_light); ERR_FAIL_NULL(light); @@ -263,7 +263,7 @@ void LightStorage::light_set_bake_mode(RID p_light, RS::LightBakeMode p_bake_mod light->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_LIGHT); } -void LightStorage::light_omni_set_shadow_mode(RID p_light, RS::LightOmniShadowMode p_mode) { +void LightStorage::light_omni_set_shadow_mode(RID p_light, RSE::LightOmniShadowMode p_mode) { Light *light = light_owner.get_or_null(p_light); ERR_FAIL_NULL(light); @@ -273,14 +273,14 @@ void LightStorage::light_omni_set_shadow_mode(RID p_light, RS::LightOmniShadowMo light->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_LIGHT); } -RS::LightOmniShadowMode LightStorage::light_omni_get_shadow_mode(RID p_light) { +RSE::LightOmniShadowMode LightStorage::light_omni_get_shadow_mode(RID p_light) { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_OMNI_SHADOW_CUBE); + ERR_FAIL_NULL_V(light, RSE::LIGHT_OMNI_SHADOW_CUBE); return light->omni_shadow_mode; } -void LightStorage::light_directional_set_shadow_mode(RID p_light, RS::LightDirectionalShadowMode p_mode) { +void LightStorage::light_directional_set_shadow_mode(RID p_light, RSE::LightDirectionalShadowMode p_mode) { Light *light = light_owner.get_or_null(p_light); ERR_FAIL_NULL(light); @@ -305,30 +305,30 @@ bool LightStorage::light_directional_get_blend_splits(RID p_light) const { return light->directional_blend_splits; } -void LightStorage::light_directional_set_sky_mode(RID p_light, RS::LightDirectionalSkyMode p_mode) { +void LightStorage::light_directional_set_sky_mode(RID p_light, RSE::LightDirectionalSkyMode p_mode) { Light *light = light_owner.get_or_null(p_light); ERR_FAIL_NULL(light); light->directional_sky_mode = p_mode; } -RS::LightDirectionalSkyMode LightStorage::light_directional_get_sky_mode(RID p_light) const { +RSE::LightDirectionalSkyMode LightStorage::light_directional_get_sky_mode(RID p_light) const { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY); + ERR_FAIL_NULL_V(light, RSE::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY); return light->directional_sky_mode; } -RS::LightDirectionalShadowMode LightStorage::light_directional_get_shadow_mode(RID p_light) { +RSE::LightDirectionalShadowMode LightStorage::light_directional_get_shadow_mode(RID p_light) { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL); + ERR_FAIL_NULL_V(light, RSE::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL); return light->directional_shadow_mode; } -RS::LightBakeMode LightStorage::light_get_bake_mode(RID p_light) { +RSE::LightBakeMode LightStorage::light_get_bake_mode(RID p_light) { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_BAKE_DISABLED); + ERR_FAIL_NULL_V(light, RSE::LIGHT_BAKE_DISABLED); return light->bake_mode; } @@ -352,9 +352,9 @@ AABB LightStorage::light_get_aabb(RID p_light) const { ERR_FAIL_NULL_V(light, AABB()); switch (light->type) { - case RS::LIGHT_SPOT: { - float len = light->param[RS::LIGHT_PARAM_RANGE]; - float angle = Math::deg_to_rad(light->param[RS::LIGHT_PARAM_SPOT_ANGLE]); + case RSE::LIGHT_SPOT: { + float len = light->param[RSE::LIGHT_PARAM_RANGE]; + float angle = Math::deg_to_rad(light->param[RSE::LIGHT_PARAM_SPOT_ANGLE]); if (angle > Math::PI * 0.5) { // Light casts backwards as well. @@ -364,11 +364,11 @@ AABB LightStorage::light_get_aabb(RID p_light) const { float size = Math::sin(angle) * len; return AABB(Vector3(-size, -size, -len), Vector3(size * 2, size * 2, len)); }; - case RS::LIGHT_OMNI: { - float r = light->param[RS::LIGHT_PARAM_RANGE]; + case RSE::LIGHT_OMNI: { + float r = light->param[RSE::LIGHT_PARAM_RANGE]; return AABB(-Vector3(r, r, r), Vector3(r, r, r) * 2); }; - case RS::LIGHT_DIRECTIONAL: { + case RSE::LIGHT_DIRECTIONAL: { return AABB(); }; } @@ -466,7 +466,7 @@ void LightStorage::reflection_probe_free(RID p_rid) { reflection_probe_owner.free(p_rid); } -void LightStorage::reflection_probe_set_update_mode(RID p_probe, RS::ReflectionProbeUpdateMode p_mode) { +void LightStorage::reflection_probe_set_update_mode(RID p_probe, RSE::ReflectionProbeUpdateMode p_mode) { ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe); ERR_FAIL_NULL(reflection_probe); @@ -488,7 +488,7 @@ void LightStorage::reflection_probe_set_blend_distance(RID p_probe, float p_blen reflection_probe->blend_distance = p_blend_distance; } -void LightStorage::reflection_probe_set_ambient_mode(RID p_probe, RS::ReflectionProbeAmbientMode p_mode) { +void LightStorage::reflection_probe_set_ambient_mode(RID p_probe, RSE::ReflectionProbeAmbientMode p_mode) { ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe); ERR_FAIL_NULL(reflection_probe); @@ -587,9 +587,9 @@ AABB LightStorage::reflection_probe_get_aabb(RID p_probe) const { return aabb; } -RS::ReflectionProbeUpdateMode LightStorage::reflection_probe_get_update_mode(RID p_probe) const { +RSE::ReflectionProbeUpdateMode LightStorage::reflection_probe_get_update_mode(RID p_probe) const { const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe); - ERR_FAIL_NULL_V(reflection_probe, RenderingServer::REFLECTION_PROBE_UPDATE_ONCE); + ERR_FAIL_NULL_V(reflection_probe, RSE::REFLECTION_PROBE_UPDATE_ONCE); return reflection_probe->update_mode; } @@ -795,7 +795,7 @@ bool LightStorage::reflection_probe_instance_needs_redraw(RID p_instance) { return true; } - if (reflection_probe_get_update_mode(rpi->probe) == RS::REFLECTION_PROBE_UPDATE_ALWAYS) { + if (reflection_probe_get_update_mode(rpi->probe) == RSE::REFLECTION_PROBE_UPDATE_ALWAYS) { return true; } @@ -1016,7 +1016,7 @@ bool LightStorage::reflection_probe_instance_postprocess_step(RID p_instance) { return false; } - if (LightStorage::get_singleton()->reflection_probe_get_update_mode(rpi->probe) == RS::REFLECTION_PROBE_UPDATE_ALWAYS) { + if (LightStorage::get_singleton()->reflection_probe_get_update_mode(rpi->probe) == RSE::REFLECTION_PROBE_UPDATE_ALWAYS) { // Using real time reflections, all roughness is done in one step for (int m = 0; m < atlas->mipmap_count; m++) { const GLES3::ReflectionAtlas::Reflection &reflection = atlas->reflections[rpi->atlas_index]; @@ -1242,14 +1242,14 @@ void LightStorage::lightmap_set_shadowmask_textures(RID p_lightmap, RID p_shadow glBindTexture(GL_TEXTURE_2D_ARRAY, 0); } -RS::ShadowmaskMode LightStorage::lightmap_get_shadowmask_mode(RID p_lightmap) { +RSE::ShadowmaskMode LightStorage::lightmap_get_shadowmask_mode(RID p_lightmap) { Lightmap *lightmap = lightmap_owner.get_or_null(p_lightmap); - ERR_FAIL_NULL_V(lightmap, RS::SHADOWMASK_MODE_NONE); + ERR_FAIL_NULL_V(lightmap, RSE::SHADOWMASK_MODE_NONE); return lightmap->shadowmask_mode; } -void LightStorage::lightmap_set_shadowmask_mode(RID p_lightmap, RS::ShadowmaskMode p_mode) { +void LightStorage::lightmap_set_shadowmask_mode(RID p_lightmap, RSE::ShadowmaskMode p_mode) { Lightmap *lightmap = lightmap_owner.get_or_null(p_lightmap); ERR_FAIL_NULL(lightmap); lightmap->shadowmask_mode = p_mode; @@ -1468,7 +1468,7 @@ bool LightStorage::shadow_atlas_update_light(RID p_atlas, RID p_light_instance, old_subdivision = shadow_atlas->quadrants[old_quadrant].subdivision; } - bool is_omni = li->light_type == RS::LIGHT_OMNI; + bool is_omni = li->light_type == RSE::LIGHT_OMNI; bool found_shadow = false; int new_quadrant = -1; int new_shadow = -1; @@ -1735,12 +1735,12 @@ int LightStorage::get_directional_light_shadow_size(RID p_light_instance) { ERR_FAIL_NULL_V(light_instance, 0); switch (light_directional_get_shadow_mode(light_instance->light)) { - case RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL: + case RSE::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL: break; //none - case RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS: + case RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS: r.size.height /= 2; break; - case RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS: + case RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS: r.size /= 2; break; } diff --git a/drivers/gles3/storage/light_storage.h b/drivers/gles3/storage/light_storage.h index b9dd5d6969..2321e93b01 100644 --- a/drivers/gles3/storage/light_storage.h +++ b/drivers/gles3/storage/light_storage.h @@ -47,14 +47,14 @@ namespace GLES3 { /* LIGHT */ struct Light { - RS::LightType type; - float param[RS::LIGHT_PARAM_MAX]; + RSE::LightType type; + float param[RSE::LIGHT_PARAM_MAX]; Color color = Color(1, 1, 1, 1); RID projector; bool shadow = false; bool negative = false; bool reverse_cull = false; - RS::LightBakeMode bake_mode = RS::LIGHT_BAKE_DYNAMIC; + RSE::LightBakeMode bake_mode = RSE::LIGHT_BAKE_DYNAMIC; uint32_t max_sdfgi_cascade = 2; uint32_t cull_mask = 0xFFFFFFFF; uint32_t shadow_caster_mask = 0xFFFFFFFF; @@ -62,10 +62,10 @@ struct Light { real_t distance_fade_begin = 40.0; real_t distance_fade_shadow = 50.0; real_t distance_fade_length = 10.0; - RS::LightOmniShadowMode omni_shadow_mode = RS::LIGHT_OMNI_SHADOW_DUAL_PARABOLOID; - RS::LightDirectionalShadowMode directional_shadow_mode = RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL; + RSE::LightOmniShadowMode omni_shadow_mode = RSE::LIGHT_OMNI_SHADOW_DUAL_PARABOLOID; + RSE::LightDirectionalShadowMode directional_shadow_mode = RSE::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL; bool directional_blend_splits = false; - RS::LightDirectionalSkyMode directional_sky_mode = RS::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY; + RSE::LightDirectionalSkyMode directional_sky_mode = RSE::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY; uint64_t version = 0; Dependency dependency; @@ -86,7 +86,7 @@ struct LightInstance { }; ShadowTransform shadow_transform[6]; - RS::LightType light_type = RS::LIGHT_DIRECTIONAL; + RSE::LightType light_type = RSE::LIGHT_DIRECTIONAL; AABB aabb; RID self; @@ -113,10 +113,10 @@ struct LightInstance { /* REFLECTION PROBE */ struct ReflectionProbe { - RS::ReflectionProbeUpdateMode update_mode = RS::REFLECTION_PROBE_UPDATE_ONCE; + RSE::ReflectionProbeUpdateMode update_mode = RSE::REFLECTION_PROBE_UPDATE_ONCE; float intensity = 1.0; float blend_distance = 1.0; - RS::ReflectionProbeAmbientMode ambient_mode = RS::REFLECTION_PROBE_AMBIENT_ENVIRONMENT; + RSE::ReflectionProbeAmbientMode ambient_mode = RSE::REFLECTION_PROBE_AMBIENT_ENVIRONMENT; Color ambient_color; float ambient_color_energy = 1.0; float max_distance = 0; @@ -182,7 +182,7 @@ struct Lightmap { float baked_exposure = 1.0; Vector2i light_texture_size; int32_t array_index = -1; //unassigned - RS::ShadowmaskMode shadowmask_mode = RS::SHADOWMASK_MODE_NONE; + RSE::ShadowmaskMode shadowmask_mode = RSE::SHADOWMASK_MODE_NONE; PackedVector3Array points; PackedColorArray point_sh; PackedInt32Array tetrahedra; @@ -307,7 +307,7 @@ public: Light *get_light(RID p_rid) { return light_owner.get_or_null(p_rid); } bool owns_light(RID p_rid) { return light_owner.owns(p_rid); } - void _light_initialize(RID p_rid, RS::LightType p_type); + void _light_initialize(RID p_rid, RSE::LightType p_type); virtual RID directional_light_allocate() override; virtual void directional_light_initialize(RID p_rid) override; @@ -319,7 +319,7 @@ public: virtual void light_free(RID p_rid) override; virtual void light_set_color(RID p_light, const Color &p_color) override; - virtual void light_set_param(RID p_light, RS::LightParam p_param, float p_value) override; + virtual void light_set_param(RID p_light, RSE::LightParam p_param, float p_value) override; virtual void light_set_shadow(RID p_light, bool p_enabled) override; virtual void light_set_projector(RID p_light, RID p_texture) override; virtual void light_set_negative(RID p_light, bool p_enable) override; @@ -328,28 +328,28 @@ public: virtual void light_set_reverse_cull_face_mode(RID p_light, bool p_enabled) override; virtual void light_set_shadow_caster_mask(RID p_light, uint32_t p_caster_mask) override; virtual uint32_t light_get_shadow_caster_mask(RID p_light) const override; - virtual void light_set_bake_mode(RID p_light, RS::LightBakeMode p_bake_mode) override; + virtual void light_set_bake_mode(RID p_light, RSE::LightBakeMode p_bake_mode) override; virtual void light_set_max_sdfgi_cascade(RID p_light, uint32_t p_cascade) override {} - virtual void light_omni_set_shadow_mode(RID p_light, RS::LightOmniShadowMode p_mode) override; + virtual void light_omni_set_shadow_mode(RID p_light, RSE::LightOmniShadowMode p_mode) override; - virtual void light_directional_set_shadow_mode(RID p_light, RS::LightDirectionalShadowMode p_mode) override; + virtual void light_directional_set_shadow_mode(RID p_light, RSE::LightDirectionalShadowMode p_mode) override; virtual void light_directional_set_blend_splits(RID p_light, bool p_enable) override; virtual bool light_directional_get_blend_splits(RID p_light) const override; - virtual void light_directional_set_sky_mode(RID p_light, RS::LightDirectionalSkyMode p_mode) override; - virtual RS::LightDirectionalSkyMode light_directional_get_sky_mode(RID p_light) const override; + virtual void light_directional_set_sky_mode(RID p_light, RSE::LightDirectionalSkyMode p_mode) override; + virtual RSE::LightDirectionalSkyMode light_directional_get_sky_mode(RID p_light) const override; - virtual RS::LightDirectionalShadowMode light_directional_get_shadow_mode(RID p_light) override; - virtual RS::LightOmniShadowMode light_omni_get_shadow_mode(RID p_light) override; - virtual RS::LightType light_get_type(RID p_light) const override { + virtual RSE::LightDirectionalShadowMode light_directional_get_shadow_mode(RID p_light) override; + virtual RSE::LightOmniShadowMode light_omni_get_shadow_mode(RID p_light) override; + virtual RSE::LightType light_get_type(RID p_light) const override { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_DIRECTIONAL); + ERR_FAIL_NULL_V(light, RSE::LIGHT_DIRECTIONAL); return light->type; } virtual AABB light_get_aabb(RID p_light) const override; - virtual float light_get_param(RID p_light, RS::LightParam p_param) override { + virtual float light_get_param(RID p_light, RSE::LightParam p_param) override { const Light *light = light_owner.get_or_null(p_light); ERR_FAIL_NULL_V(light, 0); @@ -392,21 +392,21 @@ public: virtual bool light_has_shadow(RID p_light) const override { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_DIRECTIONAL); + ERR_FAIL_NULL_V(light, RSE::LIGHT_DIRECTIONAL); return light->shadow; } virtual bool light_has_projector(RID p_light) const override { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_DIRECTIONAL); + ERR_FAIL_NULL_V(light, RSE::LIGHT_DIRECTIONAL); return TextureStorage::get_singleton()->owns_texture(light->projector); } _FORCE_INLINE_ bool light_is_negative(RID p_light) const { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_DIRECTIONAL); + ERR_FAIL_NULL_V(light, RSE::LIGHT_DIRECTIONAL); return light->negative; } @@ -415,7 +415,7 @@ public: const Light *light = light_owner.get_or_null(p_light); ERR_FAIL_NULL_V(light, 0.0); - return light->param[RS::LIGHT_PARAM_TRANSMITTANCE_BIAS]; + return light->param[RSE::LIGHT_PARAM_TRANSMITTANCE_BIAS]; } virtual bool light_get_reverse_cull_face_mode(RID p_light) const override { @@ -425,7 +425,7 @@ public: return light->reverse_cull; } - virtual RS::LightBakeMode light_get_bake_mode(RID p_light) override; + virtual RSE::LightBakeMode light_get_bake_mode(RID p_light) override; virtual uint32_t light_get_max_sdfgi_cascade(RID p_light) override { return 0; } virtual uint64_t light_get_version(RID p_light) const override; virtual uint32_t light_get_cull_mask(RID p_light) const override; @@ -614,7 +614,7 @@ public: return li->directional_rect; } - _FORCE_INLINE_ RS::LightType light_instance_get_type(RID p_light_instance) { + _FORCE_INLINE_ RSE::LightType light_instance_get_type(RID p_light_instance) { LightInstance *li = light_instance_owner.get_or_null(p_light_instance); return li->light_type; } @@ -638,10 +638,10 @@ public: virtual void reflection_probe_initialize(RID p_rid) override; virtual void reflection_probe_free(RID p_rid) override; - virtual void reflection_probe_set_update_mode(RID p_probe, RS::ReflectionProbeUpdateMode p_mode) override; + virtual void reflection_probe_set_update_mode(RID p_probe, RSE::ReflectionProbeUpdateMode p_mode) override; virtual void reflection_probe_set_intensity(RID p_probe, float p_intensity) override; virtual void reflection_probe_set_blend_distance(RID p_probe, float p_blend_distance) override; - virtual void reflection_probe_set_ambient_mode(RID p_probe, RS::ReflectionProbeAmbientMode p_mode) override; + virtual void reflection_probe_set_ambient_mode(RID p_probe, RSE::ReflectionProbeAmbientMode p_mode) override; virtual void reflection_probe_set_ambient_color(RID p_probe, const Color &p_color) override; virtual void reflection_probe_set_ambient_energy(RID p_probe, float p_energy) override; virtual void reflection_probe_set_max_distance(RID p_probe, float p_distance) override; @@ -657,7 +657,7 @@ public: virtual float reflection_probe_get_mesh_lod_threshold(RID p_probe) const override; virtual AABB reflection_probe_get_aabb(RID p_probe) const override; - virtual RS::ReflectionProbeUpdateMode reflection_probe_get_update_mode(RID p_probe) const override; + virtual RSE::ReflectionProbeUpdateMode reflection_probe_get_update_mode(RID p_probe) const override; virtual uint32_t reflection_probe_get_cull_mask(RID p_probe) const override; virtual uint32_t reflection_probe_get_reflection_mask(RID p_probe) const override; virtual Vector3 reflection_probe_get_size(RID p_probe) const override; @@ -738,8 +738,8 @@ public: virtual float lightmap_get_probe_capture_update_speed() const override; virtual void lightmap_set_shadowmask_textures(RID p_lightmap, RID p_shadow) override; - virtual RS::ShadowmaskMode lightmap_get_shadowmask_mode(RID p_lightmap) override; - virtual void lightmap_set_shadowmask_mode(RID p_lightmap, RS::ShadowmaskMode p_mode) override; + virtual RSE::ShadowmaskMode lightmap_get_shadowmask_mode(RID p_lightmap) override; + virtual void lightmap_set_shadowmask_mode(RID p_lightmap, RSE::ShadowmaskMode p_mode) override; /* LIGHTMAP INSTANCE */ diff --git a/drivers/gles3/storage/material_storage.cpp b/drivers/gles3/storage/material_storage.cpp index e5416d22b2..c3876d59a8 100644 --- a/drivers/gles3/storage/material_storage.cpp +++ b/drivers/gles3/storage/material_storage.cpp @@ -37,6 +37,7 @@ #include "drivers/gles3/rasterizer_gles3.h" #include "drivers/gles3/storage/config.h" #include "drivers/gles3/storage/texture_storage.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/storage/variant_converters.h" using namespace GLES3; @@ -680,36 +681,36 @@ static const GLenum target_from_type[ShaderLanguage::TYPE_MAX] = { GL_TEXTURE_2D, // TYPE_STRUCT }; -static const RS::CanvasItemTextureRepeat repeat_from_uniform[ShaderLanguage::REPEAT_DEFAULT + 1] = { - RS::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED, // ShaderLanguage::TextureRepeat::REPEAT_DISABLE, - RS::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED, // ShaderLanguage::TextureRepeat::REPEAT_ENABLE, - RS::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED, // ShaderLanguage::TextureRepeat::REPEAT_DEFAULT, +static const RSE::CanvasItemTextureRepeat repeat_from_uniform[ShaderLanguage::REPEAT_DEFAULT + 1] = { + RSE::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED, // ShaderLanguage::TextureRepeat::REPEAT_DISABLE, + RSE::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED, // ShaderLanguage::TextureRepeat::REPEAT_ENABLE, + RSE::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED, // ShaderLanguage::TextureRepeat::REPEAT_DEFAULT, }; -static const RS::CanvasItemTextureRepeat repeat_from_uniform_canvas[ShaderLanguage::REPEAT_DEFAULT + 1] = { - RS::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED, // ShaderLanguage::TextureRepeat::REPEAT_DISABLE, - RS::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED, // ShaderLanguage::TextureRepeat::REPEAT_ENABLE, - RS::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED, // ShaderLanguage::TextureRepeat::REPEAT_DEFAULT, +static const RSE::CanvasItemTextureRepeat repeat_from_uniform_canvas[ShaderLanguage::REPEAT_DEFAULT + 1] = { + RSE::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED, // ShaderLanguage::TextureRepeat::REPEAT_DISABLE, + RSE::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED, // ShaderLanguage::TextureRepeat::REPEAT_ENABLE, + RSE::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED, // ShaderLanguage::TextureRepeat::REPEAT_DEFAULT, }; -static const RS::CanvasItemTextureFilter filter_from_uniform[ShaderLanguage::FILTER_DEFAULT + 1] = { - RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, // ShaderLanguage::TextureFilter::FILTER_NEAREST, - RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, // ShaderLanguage::TextureFilter::FILTER_LINEAR, - RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, // ShaderLanguage::TextureFilter::FILTER_NEAREST_MIPMAP, - RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, // ShaderLanguage::TextureFilter::FILTER_LINEAR_MIPMAP, - RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, // ShaderLanguage::TextureFilter::FILTER_NEAREST_MIPMAP_ANISOTROPIC, - RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, // ShaderLanguage::TextureFilter::FILTER_LINEAR_MIPMAP_ANISOTROPIC, - RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, // ShaderLanguage::TextureFilter::FILTER_DEFAULT, +static const RSE::CanvasItemTextureFilter filter_from_uniform[ShaderLanguage::FILTER_DEFAULT + 1] = { + RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, // ShaderLanguage::TextureFilter::FILTER_NEAREST, + RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, // ShaderLanguage::TextureFilter::FILTER_LINEAR, + RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, // ShaderLanguage::TextureFilter::FILTER_NEAREST_MIPMAP, + RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, // ShaderLanguage::TextureFilter::FILTER_LINEAR_MIPMAP, + RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, // ShaderLanguage::TextureFilter::FILTER_NEAREST_MIPMAP_ANISOTROPIC, + RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, // ShaderLanguage::TextureFilter::FILTER_LINEAR_MIPMAP_ANISOTROPIC, + RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, // ShaderLanguage::TextureFilter::FILTER_DEFAULT, }; -static const RS::CanvasItemTextureFilter filter_from_uniform_canvas[ShaderLanguage::FILTER_DEFAULT + 1] = { - RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, // ShaderLanguage::TextureFilter::FILTER_NEAREST, - RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, // ShaderLanguage::TextureFilter::FILTER_LINEAR, - RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, // ShaderLanguage::TextureFilter::FILTER_NEAREST_MIPMAP, - RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, // ShaderLanguage::TextureFilter::FILTER_LINEAR_MIPMAP, - RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, // ShaderLanguage::TextureFilter::FILTER_NEAREST_MIPMAP_ANISOTROPIC, - RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, // ShaderLanguage::TextureFilter::FILTER_LINEAR_MIPMAP_ANISOTROPIC, - RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, // ShaderLanguage::TextureFilter::FILTER_DEFAULT, +static const RSE::CanvasItemTextureFilter filter_from_uniform_canvas[ShaderLanguage::FILTER_DEFAULT + 1] = { + RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, // ShaderLanguage::TextureFilter::FILTER_NEAREST, + RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, // ShaderLanguage::TextureFilter::FILTER_LINEAR, + RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, // ShaderLanguage::TextureFilter::FILTER_NEAREST_MIPMAP, + RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, // ShaderLanguage::TextureFilter::FILTER_LINEAR_MIPMAP, + RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, // ShaderLanguage::TextureFilter::FILTER_NEAREST_MIPMAP_ANISOTROPIC, + RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, // ShaderLanguage::TextureFilter::FILTER_LINEAR_MIPMAP_ANISOTROPIC, + RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, // ShaderLanguage::TextureFilter::FILTER_DEFAULT, }; void MaterialData::update_uniform_buffer(const HashMap &p_uniforms, const uint32_t *p_uniform_offsets, const HashMap &p_parameters, uint8_t *p_buffer, uint32_t p_buffer_size) { @@ -834,7 +835,7 @@ void MaterialData::update_textures(const HashMap &p_paramet #ifdef TOOLS_ENABLED Texture *roughness_detect_texture = nullptr; - RS::TextureDetectRoughnessChannel roughness_channel = RS::TEXTURE_DETECT_ROUGHNESS_R; + RSE::TextureDetectRoughnessChannel roughness_channel = RSE::TEXTURE_DETECT_ROUGHNESS_R; Texture *normal_detect_texture = nullptr; #endif @@ -1039,7 +1040,7 @@ void MaterialData::update_textures(const HashMap &p_paramet if (tex->detect_roughness_callback && (p_texture_uniforms[i].hint >= ShaderLanguage::ShaderNode::Uniform::HINT_ROUGHNESS_R || p_texture_uniforms[i].hint <= ShaderLanguage::ShaderNode::Uniform::HINT_ROUGHNESS_GRAY)) { //find the normal texture roughness_detect_texture = tex; - roughness_channel = RS::TextureDetectRoughnessChannel(p_texture_uniforms[i].hint - ShaderLanguage::ShaderNode::Uniform::HINT_ROUGHNESS_R); + roughness_channel = RSE::TextureDetectRoughnessChannel(p_texture_uniforms[i].hint - ShaderLanguage::ShaderNode::Uniform::HINT_ROUGHNESS_R); } #endif } @@ -1131,19 +1132,19 @@ MaterialStorage *MaterialStorage::get_singleton() { MaterialStorage::MaterialStorage() { singleton = this; - shader_data_request_func[RS::SHADER_SPATIAL] = _create_scene_shader_func; - shader_data_request_func[RS::SHADER_CANVAS_ITEM] = _create_canvas_shader_func; - shader_data_request_func[RS::SHADER_PARTICLES] = _create_particles_shader_func; - shader_data_request_func[RS::SHADER_SKY] = _create_sky_shader_func; - shader_data_request_func[RS::SHADER_TEXTURE_BLIT] = _create_tex_blit_shader_func; - shader_data_request_func[RS::SHADER_FOG] = nullptr; + shader_data_request_func[RSE::SHADER_SPATIAL] = _create_scene_shader_func; + shader_data_request_func[RSE::SHADER_CANVAS_ITEM] = _create_canvas_shader_func; + shader_data_request_func[RSE::SHADER_PARTICLES] = _create_particles_shader_func; + shader_data_request_func[RSE::SHADER_SKY] = _create_sky_shader_func; + shader_data_request_func[RSE::SHADER_TEXTURE_BLIT] = _create_tex_blit_shader_func; + shader_data_request_func[RSE::SHADER_FOG] = nullptr; - material_data_request_func[RS::SHADER_SPATIAL] = _create_scene_material_func; - material_data_request_func[RS::SHADER_CANVAS_ITEM] = _create_canvas_material_func; - material_data_request_func[RS::SHADER_PARTICLES] = _create_particles_material_func; - material_data_request_func[RS::SHADER_SKY] = _create_sky_material_func; - material_data_request_func[RS::SHADER_TEXTURE_BLIT] = _create_tex_blit_material_func; - material_data_request_func[RS::SHADER_FOG] = nullptr; + material_data_request_func[RSE::SHADER_SPATIAL] = _create_scene_material_func; + material_data_request_func[RSE::SHADER_CANVAS_ITEM] = _create_canvas_material_func; + material_data_request_func[RSE::SHADER_PARTICLES] = _create_particles_material_func; + material_data_request_func[RSE::SHADER_SKY] = _create_sky_material_func; + material_data_request_func[RSE::SHADER_TEXTURE_BLIT] = _create_tex_blit_material_func; + material_data_request_func[RSE::SHADER_FOG] = nullptr; static_assert(sizeof(GlobalShaderUniforms::Value) == 16); @@ -1612,9 +1613,9 @@ int32_t MaterialStorage::_global_shader_uniform_allocate(uint32_t p_elements) { return -1; } -void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS::GlobalShaderParameterType p_type, const Variant &p_value) { +void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RSE::GlobalShaderParameterType p_type, const Variant &p_value) { switch (p_type) { - case RS::GLOBAL_VAR_TYPE_BOOL: { + case RSE::GLOBAL_VAR_TYPE_BOOL: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; bool b = p_value; bv.x = b ? 1.0 : 0.0; @@ -1623,7 +1624,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.w = 0.0; } break; - case RS::GLOBAL_VAR_TYPE_BVEC2: { + case RSE::GLOBAL_VAR_TYPE_BVEC2: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; uint32_t bvec = p_value; bv.x = (bvec & 1) ? 1.0 : 0.0; @@ -1631,7 +1632,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = 0.0; bv.w = 0.0; } break; - case RS::GLOBAL_VAR_TYPE_BVEC3: { + case RSE::GLOBAL_VAR_TYPE_BVEC3: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; uint32_t bvec = p_value; bv.x = (bvec & 1) ? 1.0 : 0.0; @@ -1639,7 +1640,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = (bvec & 4) ? 1.0 : 0.0; bv.w = 0.0; } break; - case RS::GLOBAL_VAR_TYPE_BVEC4: { + case RSE::GLOBAL_VAR_TYPE_BVEC4: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; uint32_t bvec = p_value; bv.x = (bvec & 1) ? 1.0 : 0.0; @@ -1647,7 +1648,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = (bvec & 4) ? 1.0 : 0.0; bv.w = (bvec & 8) ? 1.0 : 0.0; } break; - case RS::GLOBAL_VAR_TYPE_INT: { + case RSE::GLOBAL_VAR_TYPE_INT: { GlobalShaderUniforms::ValueInt &bv = *(GlobalShaderUniforms::ValueInt *)&global_shader_uniforms.buffer_values[p_index]; int32_t v = p_value; bv.x = v; @@ -1655,7 +1656,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = 0; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_IVEC2: { + case RSE::GLOBAL_VAR_TYPE_IVEC2: { GlobalShaderUniforms::ValueInt &bv = *(GlobalShaderUniforms::ValueInt *)&global_shader_uniforms.buffer_values[p_index]; Vector2i v = convert_to_vector(p_value); bv.x = v.x; @@ -1663,7 +1664,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = 0; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_IVEC3: { + case RSE::GLOBAL_VAR_TYPE_IVEC3: { GlobalShaderUniforms::ValueInt &bv = *(GlobalShaderUniforms::ValueInt *)&global_shader_uniforms.buffer_values[p_index]; Vector3i v = convert_to_vector(p_value); bv.x = v.x; @@ -1671,7 +1672,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.z; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_IVEC4: { + case RSE::GLOBAL_VAR_TYPE_IVEC4: { GlobalShaderUniforms::ValueInt &bv = *(GlobalShaderUniforms::ValueInt *)&global_shader_uniforms.buffer_values[p_index]; Vector4i v = convert_to_vector(p_value); bv.x = v.x; @@ -1679,7 +1680,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.z; bv.w = v.w; } break; - case RS::GLOBAL_VAR_TYPE_RECT2I: { + case RSE::GLOBAL_VAR_TYPE_RECT2I: { GlobalShaderUniforms::ValueInt &bv = *(GlobalShaderUniforms::ValueInt *)&global_shader_uniforms.buffer_values[p_index]; Rect2i v = p_value; bv.x = v.position.x; @@ -1687,7 +1688,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.size.x; bv.w = v.size.y; } break; - case RS::GLOBAL_VAR_TYPE_UINT: { + case RSE::GLOBAL_VAR_TYPE_UINT: { GlobalShaderUniforms::ValueUInt &bv = *(GlobalShaderUniforms::ValueUInt *)&global_shader_uniforms.buffer_values[p_index]; uint32_t v = p_value; bv.x = v; @@ -1695,7 +1696,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = 0; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_UVEC2: { + case RSE::GLOBAL_VAR_TYPE_UVEC2: { GlobalShaderUniforms::ValueUInt &bv = *(GlobalShaderUniforms::ValueUInt *)&global_shader_uniforms.buffer_values[p_index]; Vector2i v = convert_to_vector(p_value); bv.x = v.x; @@ -1703,7 +1704,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = 0; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_UVEC3: { + case RSE::GLOBAL_VAR_TYPE_UVEC3: { GlobalShaderUniforms::ValueUInt &bv = *(GlobalShaderUniforms::ValueUInt *)&global_shader_uniforms.buffer_values[p_index]; Vector3i v = convert_to_vector(p_value); bv.x = v.x; @@ -1711,7 +1712,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.z; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_UVEC4: { + case RSE::GLOBAL_VAR_TYPE_UVEC4: { GlobalShaderUniforms::ValueUInt &bv = *(GlobalShaderUniforms::ValueUInt *)&global_shader_uniforms.buffer_values[p_index]; Vector4i v = convert_to_vector(p_value); bv.x = v.x; @@ -1719,7 +1720,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.z; bv.w = v.w; } break; - case RS::GLOBAL_VAR_TYPE_FLOAT: { + case RSE::GLOBAL_VAR_TYPE_FLOAT: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; float v = p_value; bv.x = v; @@ -1727,7 +1728,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = 0; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_VEC2: { + case RSE::GLOBAL_VAR_TYPE_VEC2: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; Vector2 v = convert_to_vector(p_value); bv.x = v.x; @@ -1735,7 +1736,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = 0; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_VEC3: { + case RSE::GLOBAL_VAR_TYPE_VEC3: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; Vector3 v = convert_to_vector(p_value); bv.x = v.x; @@ -1743,7 +1744,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.z; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_VEC4: { + case RSE::GLOBAL_VAR_TYPE_VEC4: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; Vector4 v = convert_to_vector(p_value); bv.x = v.x; @@ -1751,7 +1752,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.z; bv.w = v.w; } break; - case RS::GLOBAL_VAR_TYPE_COLOR: { + case RSE::GLOBAL_VAR_TYPE_COLOR: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; Color v = p_value; bv.x = v.r; @@ -1767,7 +1768,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv_linear.w = v.a; } break; - case RS::GLOBAL_VAR_TYPE_RECT2: { + case RSE::GLOBAL_VAR_TYPE_RECT2: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; Rect2 v = p_value; bv.x = v.position.x; @@ -1775,7 +1776,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.size.x; bv.w = v.size.y; } break; - case RS::GLOBAL_VAR_TYPE_MAT2: { + case RSE::GLOBAL_VAR_TYPE_MAT2: { GlobalShaderUniforms::Value *bv = &global_shader_uniforms.buffer_values[p_index]; Vector m2 = p_value; if (m2.size() < 4) { @@ -1792,25 +1793,25 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv[1].w = 0; } break; - case RS::GLOBAL_VAR_TYPE_MAT3: { + case RSE::GLOBAL_VAR_TYPE_MAT3: { GlobalShaderUniforms::Value *bv = &global_shader_uniforms.buffer_values[p_index]; Basis v = p_value; convert_item_std140(v, &bv->x); } break; - case RS::GLOBAL_VAR_TYPE_MAT4: { + case RSE::GLOBAL_VAR_TYPE_MAT4: { GlobalShaderUniforms::Value *bv = &global_shader_uniforms.buffer_values[p_index]; Projection m = p_value; convert_item_std140(m, &bv->x); } break; - case RS::GLOBAL_VAR_TYPE_TRANSFORM_2D: { + case RSE::GLOBAL_VAR_TYPE_TRANSFORM_2D: { GlobalShaderUniforms::Value *bv = &global_shader_uniforms.buffer_values[p_index]; Transform2D v = p_value; convert_item_std140(v, &bv->x); } break; - case RS::GLOBAL_VAR_TYPE_TRANSFORM: { + case RSE::GLOBAL_VAR_TYPE_TRANSFORM: { GlobalShaderUniforms::Value *bv = &global_shader_uniforms.buffer_values[p_index]; Transform3D v = p_value; convert_item_std140(v, &bv->x); @@ -1838,27 +1839,27 @@ void MaterialStorage::_global_shader_uniform_mark_buffer_dirty(int32_t p_index, } } -void MaterialStorage::global_shader_parameter_add(const StringName &p_name, RS::GlobalShaderParameterType p_type, const Variant &p_value) { +void MaterialStorage::global_shader_parameter_add(const StringName &p_name, RSE::GlobalShaderParameterType p_type, const Variant &p_value) { ERR_FAIL_COND(global_shader_uniforms.variables.has(p_name)); GlobalShaderUniforms::Variable gv; gv.type = p_type; gv.value = p_value; gv.buffer_index = -1; - if (p_type >= RS::GLOBAL_VAR_TYPE_SAMPLER2D) { + if (p_type >= RSE::GLOBAL_VAR_TYPE_SAMPLER2D) { //is texture global_shader_uniforms.must_update_texture_materials = true; //normally there are none } else { gv.buffer_elements = 1; - if (p_type == RS::GLOBAL_VAR_TYPE_COLOR || p_type == RS::GLOBAL_VAR_TYPE_MAT2) { + if (p_type == RSE::GLOBAL_VAR_TYPE_COLOR || p_type == RSE::GLOBAL_VAR_TYPE_MAT2) { //color needs to elements to store srgb and linear gv.buffer_elements = 2; } - if (p_type == RS::GLOBAL_VAR_TYPE_MAT3 || p_type == RS::GLOBAL_VAR_TYPE_TRANSFORM_2D) { + if (p_type == RSE::GLOBAL_VAR_TYPE_MAT3 || p_type == RSE::GLOBAL_VAR_TYPE_TRANSFORM_2D) { //color needs to elements to store srgb and linear gv.buffer_elements = 3; } - if (p_type == RS::GLOBAL_VAR_TYPE_MAT4 || p_type == RS::GLOBAL_VAR_TYPE_TRANSFORM) { + if (p_type == RSE::GLOBAL_VAR_TYPE_MAT4 || p_type == RSE::GLOBAL_VAR_TYPE_TRANSFORM) { //color needs to elements to store srgb and linear gv.buffer_elements = 4; } @@ -1969,17 +1970,17 @@ Variant MaterialStorage::global_shader_parameter_get(const StringName &p_name) c return global_shader_uniforms.variables[p_name].value; } -RS::GlobalShaderParameterType MaterialStorage::global_shader_parameter_get_type_internal(const StringName &p_name) const { +RSE::GlobalShaderParameterType MaterialStorage::global_shader_parameter_get_type_internal(const StringName &p_name) const { if (!global_shader_uniforms.variables.has(p_name)) { - return RS::GLOBAL_VAR_TYPE_MAX; + return RSE::GLOBAL_VAR_TYPE_MAX; } return global_shader_uniforms.variables[p_name].type; } -RS::GlobalShaderParameterType MaterialStorage::global_shader_parameter_get_type(const StringName &p_name) const { +RSE::GlobalShaderParameterType MaterialStorage::global_shader_parameter_get_type(const StringName &p_name) const { if (!Engine::get_singleton()->is_editor_hint()) { - ERR_FAIL_V_MSG(RS::GLOBAL_VAR_TYPE_MAX, "This function should never be used outside the editor, it can severely damage performance."); + ERR_FAIL_V_MSG(RSE::GLOBAL_VAR_TYPE_MAX, "This function should never be used outside the editor, it can severely damage performance."); } return global_shader_parameter_get_type_internal(p_name); @@ -1999,7 +2000,7 @@ void MaterialStorage::global_shader_parameters_load_settings(bool p_load_texture String type = d["type"]; - static const char *global_var_type_names[RS::GLOBAL_VAR_TYPE_MAX] = { + static const char *global_var_type_names[RSE::GLOBAL_VAR_TYPE_MAX] = { "bool", "bvec2", "bvec3", @@ -2031,20 +2032,20 @@ void MaterialStorage::global_shader_parameters_load_settings(bool p_load_texture "samplerExternalOES" }; - RS::GlobalShaderParameterType gvtype = RS::GLOBAL_VAR_TYPE_MAX; + RSE::GlobalShaderParameterType gvtype = RSE::GLOBAL_VAR_TYPE_MAX; - for (int i = 0; i < RS::GLOBAL_VAR_TYPE_MAX; i++) { + for (int i = 0; i < RSE::GLOBAL_VAR_TYPE_MAX; i++) { if (global_var_type_names[i] == type) { - gvtype = RS::GlobalShaderParameterType(i); + gvtype = RSE::GlobalShaderParameterType(i); break; } } - ERR_CONTINUE(gvtype == RS::GLOBAL_VAR_TYPE_MAX); //type invalid + ERR_CONTINUE(gvtype == RSE::GLOBAL_VAR_TYPE_MAX); //type invalid Variant value = d["value"]; - if (gvtype >= RS::GLOBAL_VAR_TYPE_SAMPLER2D) { + if (gvtype >= RSE::GLOBAL_VAR_TYPE_SAMPLER2D) { String path = value; // Don't load the textures, but still add the parameter so shaders compile correctly while loading. if (!p_load_textures || path.is_empty()) { @@ -2215,7 +2216,7 @@ RID MaterialStorage::shader_allocate() { void MaterialStorage::shader_initialize(RID p_rid, bool p_embedded) { Shader shader; shader.data = nullptr; - shader.mode = RS::SHADER_MAX; + shader.mode = RSE::SHADER_MAX; shader_owner.initialize_rid(p_rid, shader); } @@ -2244,21 +2245,21 @@ void MaterialStorage::shader_set_code(RID p_shader, const String &p_code) { String mode_string = ShaderLanguage::get_shader_type(p_code); - RS::ShaderMode new_mode; + RSE::ShaderMode new_mode; if (mode_string == "canvas_item") { - new_mode = RS::SHADER_CANVAS_ITEM; + new_mode = RSE::SHADER_CANVAS_ITEM; } else if (mode_string == "particles") { - new_mode = RS::SHADER_PARTICLES; + new_mode = RSE::SHADER_PARTICLES; } else if (mode_string == "spatial") { - new_mode = RS::SHADER_SPATIAL; + new_mode = RSE::SHADER_SPATIAL; } else if (mode_string == "sky") { - new_mode = RS::SHADER_SKY; + new_mode = RSE::SHADER_SKY; //} else if (mode_string == "fog") { - // new_mode = RS::SHADER_FOG; + // new_mode = RSE::SHADER_FOG; } else if (mode_string == "texture_blit") { - new_mode = RS::SHADER_TEXTURE_BLIT; + new_mode = RSE::SHADER_TEXTURE_BLIT; } else { - new_mode = RS::SHADER_MAX; + new_mode = RSE::SHADER_MAX; ERR_PRINT("shader type " + mode_string + " not supported in OpenGL renderer"); } @@ -2279,10 +2280,10 @@ void MaterialStorage::shader_set_code(RID p_shader, const String &p_code) { shader->mode = new_mode; - if (new_mode < RS::SHADER_MAX && shader_data_request_func[new_mode]) { + if (new_mode < RSE::SHADER_MAX && shader_data_request_func[new_mode]) { shader->data = shader_data_request_func[new_mode](); } else { - shader->mode = RS::SHADER_MAX; //invalid + shader->mode = RSE::SHADER_MAX; //invalid } for (Material *E : shader->owners) { @@ -2464,7 +2465,7 @@ void MaterialStorage::material_set_shader(RID p_material, RID p_shader) { if (material->shader) { material->shader->owners.erase(material); material->shader = nullptr; - material->shader_mode = RS::SHADER_MAX; + material->shader_mode = RSE::SHADER_MAX; } if (p_shader.is_null()) { @@ -2480,7 +2481,7 @@ void MaterialStorage::material_set_shader(RID p_material, RID p_shader) { material->shader_id = p_shader.get_local_index(); shader->owners.insert(material); - if (shader->mode == RS::SHADER_MAX) { + if (shader->mode == RSE::SHADER_MAX) { return; } @@ -2541,8 +2542,8 @@ void MaterialStorage::material_set_next_pass(RID p_material, RID p_next_material } void MaterialStorage::material_set_render_priority(RID p_material, int priority) { - ERR_FAIL_COND(priority < RS::MATERIAL_RENDER_PRIORITY_MIN); - ERR_FAIL_COND(priority > RS::MATERIAL_RENDER_PRIORITY_MAX); + ERR_FAIL_COND(priority < RSE::MATERIAL_RENDER_PRIORITY_MIN); + ERR_FAIL_COND(priority > RSE::MATERIAL_RENDER_PRIORITY_MAX); GLES3::Material *material = material_owner.get_or_null(p_material); ERR_FAIL_NULL(material); @@ -2579,17 +2580,17 @@ bool MaterialStorage::material_casts_shadows(RID p_material) { return true; //by default everything casts shadows } -RS::CullMode MaterialStorage::material_get_cull_mode(RID p_material) const { +RSE::CullMode MaterialStorage::material_get_cull_mode(RID p_material) const { const GLES3::Material *material = material_owner.get_or_null(p_material); - ERR_FAIL_NULL_V(material, RS::CULL_MODE_DISABLED); - ERR_FAIL_NULL_V(material->shader, RS::CULL_MODE_DISABLED); + ERR_FAIL_NULL_V(material, RSE::CULL_MODE_DISABLED); + ERR_FAIL_NULL_V(material->shader, RSE::CULL_MODE_DISABLED); if (material->shader->data) { SceneShaderData *data = dynamic_cast(material->shader->data); if (data) { - return (RS::CullMode)data->cull_mode; + return (RSE::CullMode)data->cull_mode; } } - return RS::CULL_MODE_DISABLED; + return RSE::CULL_MODE_DISABLED; } void MaterialStorage::material_get_instance_shader_parameters(RID p_material, List *r_parameters) { @@ -2669,7 +2670,7 @@ void CanvasShaderData::set_code(const String &p_code) { actions.usage_flag_pointers["CUSTOM1"] = &uses_custom1; actions.uniforms = &uniforms; - Error err = MaterialStorage::get_singleton()->shaders.compiler_canvas.compile(RS::SHADER_CANVAS_ITEM, code, &actions, path, gen_code); + Error err = MaterialStorage::get_singleton()->shaders.compiler_canvas.compile(RSE::SHADER_CANVAS_ITEM, code, &actions, path, gen_code); ERR_FAIL_COND_MSG(err != OK, "Shader compilation failed."); if (version.is_null()) { @@ -2703,9 +2704,9 @@ void CanvasShaderData::set_code(const String &p_code) { MaterialStorage::get_singleton()->shaders.canvas_shader.version_set_code(version, gen_code.code, gen_code.uniforms, gen_code.stage_globals[ShaderCompiler::STAGE_VERTEX], gen_code.stage_globals[ShaderCompiler::STAGE_FRAGMENT], gen_code.defines, texture_uniform_data); ERR_FAIL_COND(!MaterialStorage::get_singleton()->shaders.canvas_shader.version_is_valid(version)); - vertex_input_mask = RS::ARRAY_FORMAT_VERTEX | RS::ARRAY_FORMAT_COLOR | RS::ARRAY_FORMAT_TEX_UV; - vertex_input_mask |= uses_custom0 << RS::ARRAY_CUSTOM0; - vertex_input_mask |= uses_custom1 << RS::ARRAY_CUSTOM1; + vertex_input_mask = RSE::ARRAY_FORMAT_VERTEX | RSE::ARRAY_FORMAT_COLOR | RSE::ARRAY_FORMAT_TEX_UV; + vertex_input_mask |= uses_custom0 << RSE::ARRAY_CUSTOM0; + vertex_input_mask |= uses_custom1 << RSE::ARRAY_CUSTOM1; ubo_size = gen_code.uniform_total_size; ubo_offsets = gen_code.uniform_offsets; @@ -2747,7 +2748,7 @@ void CanvasMaterialData::update_parameters(const HashMap &p update_parameters_internal(p_parameters, p_uniform_dirty, p_textures_dirty, shader_data->uniforms, shader_data->ubo_offsets.ptr(), shader_data->texture_uniforms, shader_data->default_texture_params, shader_data->ubo_size, false); } -static void bind_uniforms_generic(const Vector &p_textures, const Vector &p_texture_uniforms, int texture_offset = 0, const RS::CanvasItemTextureFilter *filter_mapping = filter_from_uniform, const RS::CanvasItemTextureRepeat *repeat_mapping = repeat_from_uniform) { +static void bind_uniforms_generic(const Vector &p_textures, const Vector &p_texture_uniforms, int texture_offset = 0, const RSE::CanvasItemTextureFilter *filter_mapping = filter_from_uniform, const RSE::CanvasItemTextureRepeat *repeat_mapping = repeat_from_uniform) { const RID *textures = p_textures.ptr(); const ShaderCompiler::GeneratedCode::Texture *texture_uniforms = p_texture_uniforms.ptr(); int texture_uniform_index = 0; @@ -2849,7 +2850,7 @@ void SkyShaderData::set_code(const String &p_code) { actions.uniforms = &uniforms; - Error err = MaterialStorage::get_singleton()->shaders.compiler_sky.compile(RS::SHADER_SKY, code, &actions, path, gen_code); + Error err = MaterialStorage::get_singleton()->shaders.compiler_sky.compile(RSE::SHADER_SKY, code, &actions, path, gen_code); ERR_FAIL_COND_MSG(err != OK, "Shader compilation failed."); if (version.is_null()) { @@ -2996,7 +2997,7 @@ void SceneShaderData::set_code(const String &p_code) { int depth_test_disabledi = 0; int depth_test_invertedi = 0; int alpha_antialiasing_modei = ALPHA_ANTIALIASING_OFF; - int cull_modei = RS::CULL_MODE_BACK; + int cull_modei = RSE::CULL_MODE_BACK; int depth_drawi = DEPTH_DRAW_OPAQUE; int stencil_readi = 0; @@ -3026,9 +3027,9 @@ void SceneShaderData::set_code(const String &p_code) { actions.render_mode_values["depth_test_disabled"] = Pair(&depth_test_disabledi, 1); actions.render_mode_values["depth_test_inverted"] = Pair(&depth_test_invertedi, 1); - actions.render_mode_values["cull_disabled"] = Pair(&cull_modei, RS::CULL_MODE_DISABLED); - actions.render_mode_values["cull_front"] = Pair(&cull_modei, RS::CULL_MODE_FRONT); - actions.render_mode_values["cull_back"] = Pair(&cull_modei, RS::CULL_MODE_BACK); + actions.render_mode_values["cull_disabled"] = Pair(&cull_modei, RSE::CULL_MODE_DISABLED); + actions.render_mode_values["cull_front"] = Pair(&cull_modei, RSE::CULL_MODE_FRONT); + actions.render_mode_values["cull_back"] = Pair(&cull_modei, RSE::CULL_MODE_BACK); actions.render_mode_flags["unshaded"] = &unshaded; actions.render_mode_flags["wireframe"] = &wireframe; @@ -3090,7 +3091,7 @@ void SceneShaderData::set_code(const String &p_code) { actions.uniforms = &uniforms; - Error err = MaterialStorage::get_singleton()->shaders.compiler_scene.compile(RS::SHADER_SPATIAL, code, &actions, path, gen_code); + Error err = MaterialStorage::get_singleton()->shaders.compiler_scene.compile(RSE::SHADER_SPATIAL, code, &actions, path, gen_code); ERR_FAIL_COND_MSG(err != OK, "Shader compilation failed."); if (version.is_null()) { @@ -3107,19 +3108,19 @@ void SceneShaderData::set_code(const String &p_code) { } else { depth_test = DEPTH_TEST_ENABLED; } - cull_mode = RS::CullMode(cull_modei); + cull_mode = RSE::CullMode(cull_modei); - vertex_input_mask = RS::ARRAY_FORMAT_VERTEX | RS::ARRAY_FORMAT_NORMAL; // We can always read vertices and normals. - vertex_input_mask |= uses_tangent << RS::ARRAY_TANGENT; - vertex_input_mask |= uses_color << RS::ARRAY_COLOR; - vertex_input_mask |= uses_uv << RS::ARRAY_TEX_UV; - vertex_input_mask |= uses_uv2 << RS::ARRAY_TEX_UV2; - vertex_input_mask |= uses_custom0 << RS::ARRAY_CUSTOM0; - vertex_input_mask |= uses_custom1 << RS::ARRAY_CUSTOM1; - vertex_input_mask |= uses_custom2 << RS::ARRAY_CUSTOM2; - vertex_input_mask |= uses_custom3 << RS::ARRAY_CUSTOM3; - vertex_input_mask |= uses_bones << RS::ARRAY_BONES; - vertex_input_mask |= uses_weights << RS::ARRAY_WEIGHTS; + vertex_input_mask = RSE::ARRAY_FORMAT_VERTEX | RSE::ARRAY_FORMAT_NORMAL; // We can always read vertices and normals. + vertex_input_mask |= uses_tangent << RSE::ARRAY_TANGENT; + vertex_input_mask |= uses_color << RSE::ARRAY_COLOR; + vertex_input_mask |= uses_uv << RSE::ARRAY_TEX_UV; + vertex_input_mask |= uses_uv2 << RSE::ARRAY_TEX_UV2; + vertex_input_mask |= uses_custom0 << RSE::ARRAY_CUSTOM0; + vertex_input_mask |= uses_custom1 << RSE::ARRAY_CUSTOM1; + vertex_input_mask |= uses_custom2 << RSE::ARRAY_CUSTOM2; + vertex_input_mask |= uses_custom3 << RSE::ARRAY_CUSTOM3; + vertex_input_mask |= uses_bones << RSE::ARRAY_BONES; + vertex_input_mask |= uses_weights << RSE::ARRAY_WEIGHTS; uses_screen_texture = gen_code.uses_screen_texture; uses_screen_texture_mipmaps = gen_code.uses_screen_texture_mipmaps; @@ -3223,7 +3224,7 @@ GLES3::ShaderData *GLES3::_create_scene_shader_func() { } void SceneMaterialData::set_render_priority(int p_priority) { - priority = p_priority - RS::MATERIAL_RENDER_PRIORITY_MIN; //8 bits + priority = p_priority - RSE::MATERIAL_RENDER_PRIORITY_MIN; //8 bits } void SceneMaterialData::set_next_pass(RID p_pass) { @@ -3284,7 +3285,7 @@ void ParticlesShaderData::set_code(const String &p_code) { actions.uniforms = &uniforms; - Error err = MaterialStorage::get_singleton()->shaders.compiler_particles.compile(RS::SHADER_PARTICLES, code, &actions, path, gen_code); + Error err = MaterialStorage::get_singleton()->shaders.compiler_particles.compile(RSE::SHADER_PARTICLES, code, &actions, path, gen_code); ERR_FAIL_COND_MSG(err != OK, "Shader compilation failed."); if (version.is_null()) { @@ -3382,7 +3383,7 @@ void TexBlitShaderData::set_code(const String &p_code) { actions.render_mode_values["blend_disabled"] = Pair(&blend_modei, BLEND_MODE_DISABLED); actions.uniforms = &uniforms; - Error err = MaterialStorage::get_singleton()->shaders.compiler_tex_blit.compile(RS::SHADER_TEXTURE_BLIT, code, &actions, path, gen_code); + Error err = MaterialStorage::get_singleton()->shaders.compiler_tex_blit.compile(RSE::SHADER_TEXTURE_BLIT, code, &actions, path, gen_code); ERR_FAIL_COND_MSG(err != OK, "Shader compilation failed."); if (version.is_null()) { diff --git a/drivers/gles3/storage/material_storage.h b/drivers/gles3/storage/material_storage.h index c8ee5e7aee..7d36ea7230 100644 --- a/drivers/gles3/storage/material_storage.h +++ b/drivers/gles3/storage/material_storage.h @@ -76,7 +76,7 @@ struct Shader { ShaderData *data = nullptr; String code; String path_hint; - RS::ShaderMode mode; + RSE::ShaderMode mode; HashMap> default_texture_parameter; HashSet owners; }; @@ -117,7 +117,7 @@ struct Material { MaterialData *data = nullptr; Shader *shader = nullptr; //shortcut to shader data and type - RS::ShaderMode shader_mode = RS::SHADER_MAX; + RSE::ShaderMode shader_mode = RSE::SHADER_MAX; uint32_t shader_id = 0; bool uniform_dirty = false; bool texture_dirty = false; @@ -301,7 +301,7 @@ struct SceneShaderData : public ShaderData { AlphaAntiAliasing alpha_antialiasing_mode; DepthDraw depth_draw; DepthTest depth_test; - RS::CullMode cull_mode; + RSE::CullMode cull_mode; StencilCompare stencil_compare; uint32_t stencil_flags; @@ -477,7 +477,7 @@ struct GlobalShaderUniforms { struct Variable { HashSet texture_materials; // materials using this - RS::GlobalShaderParameterType type; + RSE::GlobalShaderParameterType type; Variant value; Variant override; int32_t buffer_index; //for vectors @@ -538,16 +538,16 @@ private: GlobalShaderUniforms global_shader_uniforms; int32_t _global_shader_uniform_allocate(uint32_t p_elements); - void _global_shader_uniform_store_in_buffer(int32_t p_index, RS::GlobalShaderParameterType p_type, const Variant &p_value); + void _global_shader_uniform_store_in_buffer(int32_t p_index, RSE::GlobalShaderParameterType p_type, const Variant &p_value); void _global_shader_uniform_mark_buffer_dirty(int32_t p_index, int32_t p_elements); /* SHADER API */ - ShaderDataRequestFunction shader_data_request_func[RS::SHADER_MAX]; + ShaderDataRequestFunction shader_data_request_func[RSE::SHADER_MAX]; mutable RID_Owner shader_owner; /* MATERIAL API */ - MaterialDataRequestFunction material_data_request_func[RS::SHADER_MAX]; + MaterialDataRequestFunction material_data_request_func[RSE::SHADER_MAX]; mutable RID_Owner material_owner; SelfList::List material_update_list; @@ -619,15 +619,15 @@ public: void _update_global_shader_uniforms(); - virtual void global_shader_parameter_add(const StringName &p_name, RS::GlobalShaderParameterType p_type, const Variant &p_value) override; + virtual void global_shader_parameter_add(const StringName &p_name, RSE::GlobalShaderParameterType p_type, const Variant &p_value) override; virtual void global_shader_parameter_remove(const StringName &p_name) override; virtual Vector global_shader_parameter_get_list() const override; virtual void global_shader_parameter_set(const StringName &p_name, const Variant &p_value) override; virtual void global_shader_parameter_set_override(const StringName &p_name, const Variant &p_value) override; virtual Variant global_shader_parameter_get(const StringName &p_name) const override; - virtual RS::GlobalShaderParameterType global_shader_parameter_get_type(const StringName &p_name) const override; - RS::GlobalShaderParameterType global_shader_parameter_get_type_internal(const StringName &p_name) const; + virtual RSE::GlobalShaderParameterType global_shader_parameter_get_type(const StringName &p_name) const override; + RSE::GlobalShaderParameterType global_shader_parameter_get_type_internal(const StringName &p_name) const; virtual void global_shader_parameters_load_settings(bool p_load_textures = true) override; virtual void global_shader_parameters_clear() override; @@ -685,7 +685,7 @@ public: virtual bool material_is_animated(RID p_material) override; virtual bool material_casts_shadows(RID p_material) override; - virtual RS::CullMode material_get_cull_mode(RID p_material) const override; + virtual RSE::CullMode material_get_cull_mode(RID p_material) const override; virtual void material_get_instance_shader_parameters(RID p_material, List *r_parameters) override; @@ -696,7 +696,7 @@ public: return material->shader_id; } - _FORCE_INLINE_ MaterialData *material_get_data(RID p_material, RS::ShaderMode p_shader_mode) { + _FORCE_INLINE_ MaterialData *material_get_data(RID p_material, RSE::ShaderMode p_shader_mode) { Material *material = material_owner.get_or_null(p_material); if (!material || material->shader_mode != p_shader_mode) { return nullptr; diff --git a/drivers/gles3/storage/mesh_storage.cpp b/drivers/gles3/storage/mesh_storage.cpp index 1f13d58e01..b45b7f7d5b 100644 --- a/drivers/gles3/storage/mesh_storage.cpp +++ b/drivers/gles3/storage/mesh_storage.cpp @@ -109,7 +109,7 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) Mesh *mesh = mesh_owner.get_or_null(p_mesh); ERR_FAIL_NULL(mesh); - ERR_FAIL_COND(mesh->surface_count == RS::MAX_MESH_SURFACES); + ERR_FAIL_COND(mesh->surface_count == RSE::MAX_MESH_SURFACES); #ifdef DEBUG_ENABLED //do a validation, to catch errors first @@ -118,57 +118,57 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) uint32_t attrib_stride = 0; uint32_t skin_stride = 0; - for (int i = 0; i < RS::ARRAY_WEIGHTS; i++) { + for (int i = 0; i < RSE::ARRAY_WEIGHTS; i++) { if ((p_surface.format & (1ULL << i))) { switch (i) { - case RS::ARRAY_VERTEX: { - if ((p_surface.format & RS::ARRAY_FLAG_USE_2D_VERTICES) || (p_surface.format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { + case RSE::ARRAY_VERTEX: { + if ((p_surface.format & RSE::ARRAY_FLAG_USE_2D_VERTICES) || (p_surface.format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { stride += sizeof(float) * 2; } else { stride += sizeof(float) * 3; } } break; - case RS::ARRAY_NORMAL: { + case RSE::ARRAY_NORMAL: { stride += sizeof(uint16_t) * 2; } break; - case RS::ARRAY_TANGENT: { - if (!(p_surface.format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { + case RSE::ARRAY_TANGENT: { + if (!(p_surface.format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { stride += sizeof(uint16_t) * 2; } } break; - case RS::ARRAY_COLOR: { + case RSE::ARRAY_COLOR: { attrib_stride += sizeof(uint32_t); } break; - case RS::ARRAY_TEX_UV: { - if (p_surface.format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + case RSE::ARRAY_TEX_UV: { + if (p_surface.format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { attrib_stride += sizeof(uint16_t) * 2; } else { attrib_stride += sizeof(float) * 2; } } break; - case RS::ARRAY_TEX_UV2: { - if (p_surface.format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + case RSE::ARRAY_TEX_UV2: { + if (p_surface.format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { attrib_stride += sizeof(uint16_t) * 2; } else { attrib_stride += sizeof(float) * 2; } } break; - case RS::ARRAY_CUSTOM0: - case RS::ARRAY_CUSTOM1: - case RS::ARRAY_CUSTOM2: - case RS::ARRAY_CUSTOM3: { - int idx = i - RS::ARRAY_CUSTOM0; - uint32_t fmt_shift[RS::ARRAY_CUSTOM_COUNT] = { RS::ARRAY_FORMAT_CUSTOM0_SHIFT, RS::ARRAY_FORMAT_CUSTOM1_SHIFT, RS::ARRAY_FORMAT_CUSTOM2_SHIFT, RS::ARRAY_FORMAT_CUSTOM3_SHIFT }; - uint32_t fmt = (p_surface.format >> fmt_shift[idx]) & RS::ARRAY_FORMAT_CUSTOM_MASK; - uint32_t fmtsize[RS::ARRAY_CUSTOM_MAX] = { 4, 4, 4, 8, 4, 8, 12, 16 }; + case RSE::ARRAY_CUSTOM0: + case RSE::ARRAY_CUSTOM1: + case RSE::ARRAY_CUSTOM2: + case RSE::ARRAY_CUSTOM3: { + int idx = i - RSE::ARRAY_CUSTOM0; + uint32_t fmt_shift[RSE::ARRAY_CUSTOM_COUNT] = { RSE::ARRAY_FORMAT_CUSTOM0_SHIFT, RSE::ARRAY_FORMAT_CUSTOM1_SHIFT, RSE::ARRAY_FORMAT_CUSTOM2_SHIFT, RSE::ARRAY_FORMAT_CUSTOM3_SHIFT }; + uint32_t fmt = (p_surface.format >> fmt_shift[idx]) & RSE::ARRAY_FORMAT_CUSTOM_MASK; + uint32_t fmtsize[RSE::ARRAY_CUSTOM_MAX] = { 4, 4, 4, 8, 4, 8, 12, 16 }; attrib_stride += fmtsize[fmt]; } break; - case RS::ARRAY_WEIGHTS: - case RS::ARRAY_BONES: { + case RSE::ARRAY_WEIGHTS: + case RSE::ARRAY_BONES: { //uses a separate array - bool use_8 = p_surface.format & RS::ARRAY_FLAG_USE_8_BONE_WEIGHTS; + bool use_8 = p_surface.format & RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS; skin_stride += sizeof(int16_t) * (use_8 ? 16 : 8); } break; } @@ -185,7 +185,7 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) int expected_attrib_size = attrib_stride * p_surface.vertex_count; ERR_FAIL_COND_MSG(expected_attrib_size != p_surface.attribute_data.size(), "Size of attribute data provided (" + itos(p_surface.attribute_data.size()) + ") does not match expected (" + itos(expected_attrib_size) + ")"); - if ((p_surface.format & RS::ARRAY_FORMAT_WEIGHTS) && (p_surface.format & RS::ARRAY_FORMAT_BONES)) { + if ((p_surface.format & RSE::ARRAY_FORMAT_WEIGHTS) && (p_surface.format & RSE::ARRAY_FORMAT_BONES)) { expected_size = skin_stride * p_surface.vertex_count; ERR_FAIL_COND_MSG(expected_size != p_surface.skin_data.size(), "Size of skin data provided (" + itos(p_surface.skin_data.size()) + ") does not match expected (" + itos(expected_size) + ")"); } @@ -193,21 +193,21 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) #endif - uint64_t surface_version = p_surface.format & (uint64_t(RS::ARRAY_FLAG_FORMAT_VERSION_MASK) << RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT); + uint64_t surface_version = p_surface.format & (uint64_t(RSE::ARRAY_FLAG_FORMAT_VERSION_MASK) << RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT); RS::SurfaceData new_surface = p_surface; #ifdef DISABLE_DEPRECATED - ERR_FAIL_COND_MSG(surface_version != RS::ARRAY_FLAG_FORMAT_CURRENT_VERSION, "Surface version provided (" + itos(int(surface_version >> RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT)) + ") does not match current version (" + itos(RS::ARRAY_FLAG_FORMAT_CURRENT_VERSION >> RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT) + ")"); + ERR_FAIL_COND_MSG(surface_version != RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION, "Surface version provided (" + itos(int(surface_version >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT)) + ") does not match current version (" + itos(RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT) + ")"); #else - if (surface_version != uint64_t(RS::ARRAY_FLAG_FORMAT_CURRENT_VERSION)) { + if (surface_version != uint64_t(RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION)) { RS::get_singleton()->fix_surface_compatibility(new_surface); - surface_version = new_surface.format & (uint64_t(RS::ARRAY_FLAG_FORMAT_VERSION_MASK) << RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT); - ERR_FAIL_COND_MSG(surface_version != RS::ARRAY_FLAG_FORMAT_CURRENT_VERSION, + surface_version = new_surface.format & (uint64_t(RSE::ARRAY_FLAG_FORMAT_VERSION_MASK) << RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT); + ERR_FAIL_COND_MSG(surface_version != RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION, vformat("Surface version provided (%d) does not match current version (%d).", - (surface_version >> RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RS::ARRAY_FLAG_FORMAT_VERSION_MASK, - (RS::ARRAY_FLAG_FORMAT_CURRENT_VERSION >> RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RS::ARRAY_FLAG_FORMAT_VERSION_MASK)); + (surface_version >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RSE::ARRAY_FLAG_FORMAT_VERSION_MASK, + (RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RSE::ARRAY_FLAG_FORMAT_VERSION_MASK)); } #endif @@ -225,15 +225,15 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) // This allows us to avoid adding a shader permutation, and avoid passing dummy tangents. Since the stride is kept small // this should still be a net win for bandwidth. // If we do this, then the last normal will read past the end of the array. So we need to pad the array with dummy data. - if (!(new_surface.format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) && (new_surface.format & RS::ARRAY_FORMAT_NORMAL) && !(new_surface.format & RS::ARRAY_FORMAT_TANGENT)) { + if (!(new_surface.format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) && (new_surface.format & RSE::ARRAY_FORMAT_NORMAL) && !(new_surface.format & RSE::ARRAY_FORMAT_TANGENT)) { // Unfortunately, we need to copy the buffer, which is fine as doing a resize triggers a CoW anyway. Vector new_vertex_data; new_vertex_data.resize_initialized(new_surface.vertex_data.size() + sizeof(uint16_t) * 2); memcpy(new_vertex_data.ptrw(), new_surface.vertex_data.ptr(), new_surface.vertex_data.size()); - GLES3::Utilities::get_singleton()->buffer_allocate_data(GL_ARRAY_BUFFER, s->vertex_buffer, new_vertex_data.size(), new_vertex_data.ptr(), (s->format & RS::ARRAY_FLAG_USE_DYNAMIC_UPDATE) ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW, "Mesh vertex buffer"); + GLES3::Utilities::get_singleton()->buffer_allocate_data(GL_ARRAY_BUFFER, s->vertex_buffer, new_vertex_data.size(), new_vertex_data.ptr(), (s->format & RSE::ARRAY_FLAG_USE_DYNAMIC_UPDATE) ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW, "Mesh vertex buffer"); s->vertex_buffer_size = new_vertex_data.size(); } else { - GLES3::Utilities::get_singleton()->buffer_allocate_data(GL_ARRAY_BUFFER, s->vertex_buffer, new_surface.vertex_data.size(), new_surface.vertex_data.ptr(), (s->format & RS::ARRAY_FLAG_USE_DYNAMIC_UPDATE) ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW, "Mesh vertex buffer"); + GLES3::Utilities::get_singleton()->buffer_allocate_data(GL_ARRAY_BUFFER, s->vertex_buffer, new_surface.vertex_data.size(), new_surface.vertex_data.ptr(), (s->format & RSE::ARRAY_FLAG_USE_DYNAMIC_UPDATE) ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW, "Mesh vertex buffer"); s->vertex_buffer_size = new_surface.vertex_data.size(); } } @@ -241,14 +241,14 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) if (new_surface.attribute_data.size()) { glGenBuffers(1, &s->attribute_buffer); glBindBuffer(GL_ARRAY_BUFFER, s->attribute_buffer); - GLES3::Utilities::get_singleton()->buffer_allocate_data(GL_ARRAY_BUFFER, s->attribute_buffer, new_surface.attribute_data.size(), new_surface.attribute_data.ptr(), (s->format & RS::ARRAY_FLAG_USE_DYNAMIC_UPDATE) ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW, "Mesh attribute buffer"); + GLES3::Utilities::get_singleton()->buffer_allocate_data(GL_ARRAY_BUFFER, s->attribute_buffer, new_surface.attribute_data.size(), new_surface.attribute_data.ptr(), (s->format & RSE::ARRAY_FLAG_USE_DYNAMIC_UPDATE) ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW, "Mesh attribute buffer"); s->attribute_buffer_size = new_surface.attribute_data.size(); } if (new_surface.skin_data.size()) { glGenBuffers(1, &s->skin_buffer); glBindBuffer(GL_ARRAY_BUFFER, s->skin_buffer); - GLES3::Utilities::get_singleton()->buffer_allocate_data(GL_ARRAY_BUFFER, s->skin_buffer, new_surface.skin_data.size(), new_surface.skin_data.ptr(), (s->format & RS::ARRAY_FLAG_USE_DYNAMIC_UPDATE) ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW, "Mesh skin buffer"); + GLES3::Utilities::get_singleton()->buffer_allocate_data(GL_ARRAY_BUFFER, s->skin_buffer, new_surface.skin_data.size(), new_surface.skin_data.ptr(), (s->format & RSE::ARRAY_FLAG_USE_DYNAMIC_UPDATE) ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW, "Mesh skin buffer"); s->skin_buffer_size = new_surface.skin_data.size(); } @@ -256,7 +256,7 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) s->vertex_count = new_surface.vertex_count; - if (new_surface.format & RS::ARRAY_FORMAT_BONES) { + if (new_surface.format & RSE::ARRAY_FORMAT_BONES) { mesh->has_bone_weights = true; } @@ -287,14 +287,14 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) ERR_FAIL_COND_MSG(!new_surface.index_count && !new_surface.vertex_count, "Meshes must contain a vertex array, an index array, or both"); - if (GLES3::Config::get_singleton()->generate_wireframes && s->primitive == RS::PRIMITIVE_TRIANGLES) { + if (GLES3::Config::get_singleton()->generate_wireframes && s->primitive == RSE::PRIMITIVE_TRIANGLES) { // Generate wireframes. This is mostly used by the editor. s->wireframe = memnew(Mesh::Surface::Wireframe); Vector wf_indices; uint32_t &wf_index_count = s->wireframe->index_count; uint32_t *wr = nullptr; - if (new_surface.format & RS::ARRAY_FORMAT_INDEX) { + if (new_surface.format & RSE::ARRAY_FORMAT_INDEX) { wf_index_count = s->index_count * 2; wf_indices.resize(wf_index_count); @@ -364,12 +364,12 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) int normal_tangent_stride = 0; int normal_offset = 0; int tangent_offset = 0; - if ((new_surface.format & (1ULL << RS::ARRAY_VERTEX))) { - if (new_surface.format & RS::ARRAY_FLAG_USE_2D_VERTICES) { + if ((new_surface.format & (1ULL << RSE::ARRAY_VERTEX))) { + if (new_surface.format & RSE::ARRAY_FLAG_USE_2D_VERTICES) { vertex_size = 2; position_stride = sizeof(float) * vertex_size; } else { - if (new_surface.format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + if (new_surface.format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { vertex_size = 4; position_stride = sizeof(uint16_t) * vertex_size; } else { @@ -378,11 +378,11 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) } } } - if ((new_surface.format & (1ULL << RS::ARRAY_NORMAL))) { + if ((new_surface.format & (1ULL << RSE::ARRAY_NORMAL))) { normal_offset = position_stride * s->vertex_count; normal_tangent_stride += sizeof(uint16_t) * 2; } - if ((new_surface.format & (1ULL << RS::ARRAY_TANGENT))) { + if ((new_surface.format & (1ULL << RSE::ARRAY_TANGENT))) { tangent_offset = normal_offset + normal_tangent_stride; normal_tangent_stride += sizeof(uint16_t) * 2; } @@ -396,20 +396,20 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) glBindVertexArray(s->blend_shapes[i].vertex_array); glGenBuffers(1, &s->blend_shapes[i].vertex_buffer); glBindBuffer(GL_ARRAY_BUFFER, s->blend_shapes[i].vertex_buffer); - GLES3::Utilities::get_singleton()->buffer_allocate_data(GL_ARRAY_BUFFER, s->blend_shapes[i].vertex_buffer, size, new_surface.blend_shape_data.ptr() + i * size, (s->format & RS::ARRAY_FLAG_USE_DYNAMIC_UPDATE) ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW, "Mesh blend shape buffer"); + GLES3::Utilities::get_singleton()->buffer_allocate_data(GL_ARRAY_BUFFER, s->blend_shapes[i].vertex_buffer, size, new_surface.blend_shape_data.ptr() + i * size, (s->format & RSE::ARRAY_FLAG_USE_DYNAMIC_UPDATE) ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW, "Mesh blend shape buffer"); - if ((new_surface.format & (1ULL << RS::ARRAY_VERTEX))) { - glEnableVertexAttribArray(RS::ARRAY_VERTEX + 3); - glVertexAttribPointer(RS::ARRAY_VERTEX + 3, vertex_size, GL_FLOAT, GL_FALSE, position_stride, CAST_INT_TO_UCHAR_PTR(0)); + if ((new_surface.format & (1ULL << RSE::ARRAY_VERTEX))) { + glEnableVertexAttribArray(RSE::ARRAY_VERTEX + 3); + glVertexAttribPointer(RSE::ARRAY_VERTEX + 3, vertex_size, GL_FLOAT, GL_FALSE, position_stride, CAST_INT_TO_UCHAR_PTR(0)); } - if ((new_surface.format & (1ULL << RS::ARRAY_NORMAL))) { + if ((new_surface.format & (1ULL << RSE::ARRAY_NORMAL))) { // Normal and tangent are packed into the same attribute. - glEnableVertexAttribArray(RS::ARRAY_NORMAL + 3); - glVertexAttribPointer(RS::ARRAY_NORMAL + 3, 2, GL_UNSIGNED_SHORT, GL_TRUE, normal_tangent_stride, CAST_INT_TO_UCHAR_PTR(normal_offset)); + glEnableVertexAttribArray(RSE::ARRAY_NORMAL + 3); + glVertexAttribPointer(RSE::ARRAY_NORMAL + 3, 2, GL_UNSIGNED_SHORT, GL_TRUE, normal_tangent_stride, CAST_INT_TO_UCHAR_PTR(normal_offset)); } - if ((p_surface.format & (1ULL << RS::ARRAY_TANGENT))) { - glEnableVertexAttribArray(RS::ARRAY_TANGENT + 3); - glVertexAttribPointer(RS::ARRAY_TANGENT + 3, 2, GL_UNSIGNED_SHORT, GL_TRUE, normal_tangent_stride, CAST_INT_TO_UCHAR_PTR(tangent_offset)); + if ((p_surface.format & (1ULL << RSE::ARRAY_TANGENT))) { + glEnableVertexAttribArray(RSE::ARRAY_TANGENT + 3); + glVertexAttribPointer(RSE::ARRAY_TANGENT + 3, 2, GL_UNSIGNED_SHORT, GL_TRUE, normal_tangent_stride, CAST_INT_TO_UCHAR_PTR(tangent_offset)); } } glBindVertexArray(0); @@ -520,7 +520,7 @@ int MeshStorage::mesh_get_blend_shape_count(RID p_mesh) const { return mesh->blend_shape_count; } -void MeshStorage::mesh_set_blend_shape_mode(RID p_mesh, RS::BlendShapeMode p_mode) { +void MeshStorage::mesh_set_blend_shape_mode(RID p_mesh, RSE::BlendShapeMode p_mode) { Mesh *mesh = mesh_owner.get_or_null(p_mesh); ERR_FAIL_NULL(mesh); ERR_FAIL_INDEX((int)p_mode, 2); @@ -528,9 +528,9 @@ void MeshStorage::mesh_set_blend_shape_mode(RID p_mesh, RS::BlendShapeMode p_mod mesh->blend_shape_mode = p_mode; } -RS::BlendShapeMode MeshStorage::mesh_get_blend_shape_mode(RID p_mesh) const { +RSE::BlendShapeMode MeshStorage::mesh_get_blend_shape_mode(RID p_mesh) const { Mesh *mesh = mesh_owner.get_or_null(p_mesh); - ERR_FAIL_NULL_V(mesh, RS::BLEND_SHAPE_MODE_NORMALIZED); + ERR_FAIL_NULL_V(mesh, RSE::BLEND_SHAPE_MODE_NORMALIZED); return mesh->blend_shape_mode; } @@ -625,7 +625,7 @@ RS::SurfaceData MeshStorage::mesh_get_surface(RID p_mesh, int p_surface) const { sd.vertex_data = Utilities::buffer_get_data(GL_ARRAY_BUFFER, s.vertex_buffer, s.vertex_buffer_size); // When using an uncompressed buffer with normals, but without tangents, we have to trim the padding. - if (!(s.format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) && (s.format & RS::ARRAY_FORMAT_NORMAL) && !(s.format & RS::ARRAY_FORMAT_TANGENT)) { + if (!(s.format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) && (s.format & RSE::ARRAY_FORMAT_NORMAL) && !(s.format & RSE::ARRAY_FORMAT_TANGENT)) { sd.vertex_data.resize(sd.vertex_data.size() - sizeof(uint16_t) * 2); } } @@ -710,7 +710,7 @@ AABB MeshStorage::mesh_get_aabb(RID p_mesh, RID p_skeleton) { for (uint32_t i = 0; i < mesh->surface_count; i++) { AABB laabb; const Mesh::Surface &surface = *mesh->surfaces[i]; - if ((surface.format & RS::ARRAY_FORMAT_BONES) && surface.bone_aabbs.size()) { + if ((surface.format & RSE::ARRAY_FORMAT_BONES) && surface.bone_aabbs.size()) { int bs = surface.bone_aabbs.size(); const AABB *skbones = surface.bone_aabbs.ptr(); @@ -874,14 +874,14 @@ void MeshStorage::mesh_clear(RID p_mesh) { } void MeshStorage::_mesh_surface_generate_version_for_input_mask(Mesh::Surface::Version &v, Mesh::Surface *s, uint64_t p_input_mask, bool p_uses_motion_vectors, MeshInstance::Surface *mis, int p_current_vertex_buffer, int p_prev_vertex_buffer) { - Mesh::Surface::Attrib attribs[RS::ARRAY_MAX]; + Mesh::Surface::Attrib attribs[RSE::ARRAY_MAX]; int position_stride = 0; // Vertex position only. int normal_tangent_stride = 0; int attributes_stride = 0; int skin_stride = 0; - for (int i = 0; i < RS::ARRAY_INDEX; i++) { + for (int i = 0; i < RSE::ARRAY_INDEX; i++) { attribs[i].enabled = false; attribs[i].integer = false; if (!(s->format & (1ULL << i))) { @@ -895,15 +895,15 @@ void MeshStorage::_mesh_surface_generate_version_for_input_mask(Mesh::Surface::V } switch (i) { - case RS::ARRAY_VERTEX: { + case RSE::ARRAY_VERTEX: { attribs[i].offset = 0; attribs[i].type = GL_FLOAT; attribs[i].normalized = GL_FALSE; - if (s->format & RS::ARRAY_FLAG_USE_2D_VERTICES) { + if (s->format & RSE::ARRAY_FLAG_USE_2D_VERTICES) { attribs[i].size = 2; position_stride = attribs[i].size * sizeof(float); } else { - if (!mis && (s->format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { + if (!mis && (s->format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { attribs[i].size = 4; position_stride = attribs[i].size * sizeof(uint16_t); attribs[i].type = GL_UNSIGNED_SHORT; @@ -914,8 +914,8 @@ void MeshStorage::_mesh_surface_generate_version_for_input_mask(Mesh::Surface::V } } } break; - case RS::ARRAY_NORMAL: { - if (!mis && (s->format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { + case RSE::ARRAY_NORMAL: { + if (!mis && (s->format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { attribs[i].size = 2; normal_tangent_stride += 2 * attribs[i].size; } else { @@ -923,7 +923,7 @@ void MeshStorage::_mesh_surface_generate_version_for_input_mask(Mesh::Surface::V // A small trick here: if we are uncompressed and we have normals, but no tangents. We need // the shader to think there are 4 components to "axis_tangent_attrib". So we give a size of 4, // but a stride based on only having 2 elements. - if (!(s->format & RS::ARRAY_FORMAT_TANGENT)) { + if (!(s->format & RSE::ARRAY_FORMAT_TANGENT)) { normal_tangent_stride += (mis ? sizeof(float) : sizeof(uint16_t)) * 2; } else { normal_tangent_stride += (mis ? sizeof(float) : sizeof(uint16_t)) * 4; @@ -941,22 +941,22 @@ void MeshStorage::_mesh_surface_generate_version_for_input_mask(Mesh::Surface::V attribs[i].type = (mis ? GL_FLOAT : GL_UNSIGNED_SHORT); attribs[i].normalized = GL_TRUE; } break; - case RS::ARRAY_TANGENT: { + case RSE::ARRAY_TANGENT: { // We never use the tangent attribute. It is always packed in ARRAY_NORMAL, or ARRAY_VERTEX. attribs[i].enabled = false; attribs[i].integer = false; } break; - case RS::ARRAY_COLOR: { + case RSE::ARRAY_COLOR: { attribs[i].offset = attributes_stride; attribs[i].size = 4; attribs[i].type = GL_UNSIGNED_BYTE; attributes_stride += 4; attribs[i].normalized = GL_TRUE; } break; - case RS::ARRAY_TEX_UV: { + case RSE::ARRAY_TEX_UV: { attribs[i].offset = attributes_stride; attribs[i].size = 2; - if (s->format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + if (s->format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { attribs[i].type = GL_UNSIGNED_SHORT; attributes_stride += 2 * sizeof(uint16_t); attribs[i].normalized = GL_TRUE; @@ -966,10 +966,10 @@ void MeshStorage::_mesh_surface_generate_version_for_input_mask(Mesh::Surface::V attribs[i].normalized = GL_FALSE; } } break; - case RS::ARRAY_TEX_UV2: { + case RSE::ARRAY_TEX_UV2: { attribs[i].offset = attributes_stride; attribs[i].size = 2; - if (s->format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + if (s->format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { attribs[i].type = GL_UNSIGNED_SHORT; attributes_stride += 2 * sizeof(uint16_t); attribs[i].normalized = GL_TRUE; @@ -979,24 +979,24 @@ void MeshStorage::_mesh_surface_generate_version_for_input_mask(Mesh::Surface::V attribs[i].normalized = GL_FALSE; } } break; - case RS::ARRAY_CUSTOM0: - case RS::ARRAY_CUSTOM1: - case RS::ARRAY_CUSTOM2: - case RS::ARRAY_CUSTOM3: { + case RSE::ARRAY_CUSTOM0: + case RSE::ARRAY_CUSTOM1: + case RSE::ARRAY_CUSTOM2: + case RSE::ARRAY_CUSTOM3: { attribs[i].offset = attributes_stride; - int idx = i - RS::ARRAY_CUSTOM0; - uint32_t fmt_shift[RS::ARRAY_CUSTOM_COUNT] = { RS::ARRAY_FORMAT_CUSTOM0_SHIFT, RS::ARRAY_FORMAT_CUSTOM1_SHIFT, RS::ARRAY_FORMAT_CUSTOM2_SHIFT, RS::ARRAY_FORMAT_CUSTOM3_SHIFT }; - uint32_t fmt = (s->format >> fmt_shift[idx]) & RS::ARRAY_FORMAT_CUSTOM_MASK; - uint32_t fmtsize[RS::ARRAY_CUSTOM_MAX] = { 4, 4, 4, 8, 4, 8, 12, 16 }; - GLenum gl_type[RS::ARRAY_CUSTOM_MAX] = { GL_UNSIGNED_BYTE, GL_BYTE, GL_HALF_FLOAT, GL_HALF_FLOAT, GL_FLOAT, GL_FLOAT, GL_FLOAT, GL_FLOAT }; - GLboolean norm[RS::ARRAY_CUSTOM_MAX] = { GL_TRUE, GL_TRUE, GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE }; + int idx = i - RSE::ARRAY_CUSTOM0; + uint32_t fmt_shift[RSE::ARRAY_CUSTOM_COUNT] = { RSE::ARRAY_FORMAT_CUSTOM0_SHIFT, RSE::ARRAY_FORMAT_CUSTOM1_SHIFT, RSE::ARRAY_FORMAT_CUSTOM2_SHIFT, RSE::ARRAY_FORMAT_CUSTOM3_SHIFT }; + uint32_t fmt = (s->format >> fmt_shift[idx]) & RSE::ARRAY_FORMAT_CUSTOM_MASK; + uint32_t fmtsize[RSE::ARRAY_CUSTOM_MAX] = { 4, 4, 4, 8, 4, 8, 12, 16 }; + GLenum gl_type[RSE::ARRAY_CUSTOM_MAX] = { GL_UNSIGNED_BYTE, GL_BYTE, GL_HALF_FLOAT, GL_HALF_FLOAT, GL_FLOAT, GL_FLOAT, GL_FLOAT, GL_FLOAT }; + GLboolean norm[RSE::ARRAY_CUSTOM_MAX] = { GL_TRUE, GL_TRUE, GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE }; attribs[i].type = gl_type[fmt]; attributes_stride += fmtsize[fmt]; attribs[i].size = fmtsize[fmt] / sizeof(float); attribs[i].normalized = norm[fmt]; } break; - case RS::ARRAY_BONES: { + case RSE::ARRAY_BONES: { attribs[i].offset = skin_stride; attribs[i].size = 4; attribs[i].type = GL_UNSIGNED_SHORT; @@ -1004,7 +1004,7 @@ void MeshStorage::_mesh_surface_generate_version_for_input_mask(Mesh::Surface::V attribs[i].normalized = GL_FALSE; attribs[i].integer = true; } break; - case RS::ARRAY_WEIGHTS: { + case RSE::ARRAY_WEIGHTS: { attribs[i].offset = skin_stride; attribs[i].size = 4; attribs[i].type = GL_UNSIGNED_SHORT; @@ -1017,19 +1017,19 @@ void MeshStorage::_mesh_surface_generate_version_for_input_mask(Mesh::Surface::V glGenVertexArrays(1, &v.vertex_array); glBindVertexArray(v.vertex_array); - for (int i = 0; i < RS::ARRAY_INDEX; i++) { + for (int i = 0; i < RSE::ARRAY_INDEX; i++) { if (!attribs[i].enabled) { glDisableVertexAttribArray(i); continue; } - if (i <= RS::ARRAY_TANGENT) { - attribs[i].stride = (i == RS::ARRAY_VERTEX) ? position_stride : normal_tangent_stride; + if (i <= RSE::ARRAY_TANGENT) { + attribs[i].stride = (i == RSE::ARRAY_VERTEX) ? position_stride : normal_tangent_stride; if (mis) { glBindBuffer(GL_ARRAY_BUFFER, mis->vertex_buffers[p_current_vertex_buffer]); } else { glBindBuffer(GL_ARRAY_BUFFER, s->vertex_buffer); } - } else if (i <= RS::ARRAY_CUSTOM3) { + } else if (i <= RSE::ARRAY_CUSTOM3) { attribs[i].stride = attributes_stride; glBindBuffer(GL_ARRAY_BUFFER, s->attribute_buffer); } else { @@ -1046,7 +1046,7 @@ void MeshStorage::_mesh_surface_generate_version_for_input_mask(Mesh::Surface::V } if (p_uses_motion_vectors) { - for (int i = 0; i < RS::ARRAY_TANGENT; i++) { + for (int i = 0; i < RSE::ARRAY_TANGENT; i++) { if (mis) { glBindBuffer(GL_ARRAY_BUFFER, mis->vertex_buffers[mis->prev_vertex_buffer]); } else { @@ -1094,7 +1094,7 @@ void MeshStorage::mesh_surface_remove(RID p_mesh, int p_surface) { if (mesh->has_bone_weights) { mesh->has_bone_weights = false; for (uint32_t i = 0; i < mesh->surface_count; i++) { - if (mesh->surfaces[i]->format & RS::ARRAY_FORMAT_BONES) { + if (mesh->surfaces[i]->format & RSE::ARRAY_FORMAT_BONES) { mesh->has_bone_weights = true; break; } @@ -1184,22 +1184,22 @@ void MeshStorage::_mesh_instance_add_surface(MeshInstance *mi, Mesh *mesh, uint3 } MeshInstance::Surface s; - if ((mesh->blend_shape_count > 0 || (mesh->surfaces[p_surface]->format & RS::ARRAY_FORMAT_BONES)) && mesh->surfaces[p_surface]->vertex_buffer_size > 0) { + if ((mesh->blend_shape_count > 0 || (mesh->surfaces[p_surface]->format & RSE::ARRAY_FORMAT_BONES)) && mesh->surfaces[p_surface]->vertex_buffer_size > 0) { // Cache surface properties s.format_cache = mesh->surfaces[p_surface]->format; - if ((s.format_cache & (1ULL << RS::ARRAY_VERTEX))) { - if (s.format_cache & RS::ARRAY_FLAG_USE_2D_VERTICES) { + if ((s.format_cache & (1ULL << RSE::ARRAY_VERTEX))) { + if (s.format_cache & RSE::ARRAY_FLAG_USE_2D_VERTICES) { s.vertex_size_cache = 2; } else { s.vertex_size_cache = 3; } s.vertex_stride_cache = sizeof(float) * s.vertex_size_cache; } - if ((s.format_cache & (1ULL << RS::ARRAY_NORMAL))) { + if ((s.format_cache & (1ULL << RSE::ARRAY_NORMAL))) { s.vertex_normal_offset_cache = s.vertex_stride_cache; s.vertex_stride_cache += sizeof(uint32_t) * 2; } - if ((s.format_cache & (1ULL << RS::ARRAY_TANGENT))) { + if ((s.format_cache & (1ULL << RSE::ARRAY_TANGENT))) { s.vertex_tangent_offset_cache = s.vertex_stride_cache; s.vertex_stride_cache += sizeof(uint32_t) * 2; } @@ -1290,23 +1290,23 @@ void MeshStorage::mesh_instance_set_canvas_item_transform(RID p_mesh_instance, c void MeshStorage::_blend_shape_bind_mesh_instance_buffer(MeshInstance *p_mi, uint32_t p_surface) { glBindBuffer(GL_ARRAY_BUFFER, p_mi->surfaces[p_surface].blend_shape_vertex_buffers[0]); - if ((p_mi->surfaces[p_surface].format_cache & (1ULL << RS::ARRAY_VERTEX))) { - glEnableVertexAttribArray(RS::ARRAY_VERTEX); - glVertexAttribPointer(RS::ARRAY_VERTEX, p_mi->surfaces[p_surface].vertex_size_cache, GL_FLOAT, GL_FALSE, p_mi->surfaces[p_surface].vertex_stride_cache, CAST_INT_TO_UCHAR_PTR(0)); + if ((p_mi->surfaces[p_surface].format_cache & (1ULL << RSE::ARRAY_VERTEX))) { + glEnableVertexAttribArray(RSE::ARRAY_VERTEX); + glVertexAttribPointer(RSE::ARRAY_VERTEX, p_mi->surfaces[p_surface].vertex_size_cache, GL_FLOAT, GL_FALSE, p_mi->surfaces[p_surface].vertex_stride_cache, CAST_INT_TO_UCHAR_PTR(0)); } else { - glDisableVertexAttribArray(RS::ARRAY_VERTEX); + glDisableVertexAttribArray(RSE::ARRAY_VERTEX); } - if ((p_mi->surfaces[p_surface].format_cache & (1ULL << RS::ARRAY_NORMAL))) { - glEnableVertexAttribArray(RS::ARRAY_NORMAL); - glVertexAttribIPointer(RS::ARRAY_NORMAL, 2, GL_UNSIGNED_INT, p_mi->surfaces[p_surface].vertex_stride_cache, CAST_INT_TO_UCHAR_PTR(p_mi->surfaces[p_surface].vertex_normal_offset_cache)); + if ((p_mi->surfaces[p_surface].format_cache & (1ULL << RSE::ARRAY_NORMAL))) { + glEnableVertexAttribArray(RSE::ARRAY_NORMAL); + glVertexAttribIPointer(RSE::ARRAY_NORMAL, 2, GL_UNSIGNED_INT, p_mi->surfaces[p_surface].vertex_stride_cache, CAST_INT_TO_UCHAR_PTR(p_mi->surfaces[p_surface].vertex_normal_offset_cache)); } else { - glDisableVertexAttribArray(RS::ARRAY_NORMAL); + glDisableVertexAttribArray(RSE::ARRAY_NORMAL); } - if ((p_mi->surfaces[p_surface].format_cache & (1ULL << RS::ARRAY_TANGENT))) { - glEnableVertexAttribArray(RS::ARRAY_TANGENT); - glVertexAttribIPointer(RS::ARRAY_TANGENT, 2, GL_UNSIGNED_INT, p_mi->surfaces[p_surface].vertex_stride_cache, CAST_INT_TO_UCHAR_PTR(p_mi->surfaces[p_surface].vertex_tangent_offset_cache)); + if ((p_mi->surfaces[p_surface].format_cache & (1ULL << RSE::ARRAY_TANGENT))) { + glEnableVertexAttribArray(RSE::ARRAY_TANGENT); + glVertexAttribIPointer(RSE::ARRAY_TANGENT, 2, GL_UNSIGNED_INT, p_mi->surfaces[p_surface].vertex_stride_cache, CAST_INT_TO_UCHAR_PTR(p_mi->surfaces[p_surface].vertex_tangent_offset_cache)); } else { - glDisableVertexAttribArray(RS::ARRAY_TANGENT); + glDisableVertexAttribArray(RSE::ARRAY_TANGENT); } } @@ -1314,10 +1314,10 @@ void MeshStorage::_compute_skeleton(MeshInstance *p_mi, Skeleton *p_sk, uint32_t // Add in the bones and weights. glBindBuffer(GL_ARRAY_BUFFER, p_mi->mesh->surfaces[p_surface]->skin_buffer); - bool use_8_weights = p_mi->surfaces[p_surface].format_cache & RS::ARRAY_FLAG_USE_8_BONE_WEIGHTS; + bool use_8_weights = p_mi->surfaces[p_surface].format_cache & RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS; int skin_stride = sizeof(int16_t) * (use_8_weights ? 16 : 8); - glEnableVertexAttribArray(RS::ARRAY_BONES); - glVertexAttribIPointer(RS::ARRAY_BONES, 4, GL_UNSIGNED_SHORT, skin_stride, CAST_INT_TO_UCHAR_PTR(0)); + glEnableVertexAttribArray(RSE::ARRAY_BONES); + glVertexAttribIPointer(RSE::ARRAY_BONES, 4, GL_UNSIGNED_SHORT, skin_stride, CAST_INT_TO_UCHAR_PTR(0)); if (use_8_weights) { glEnableVertexAttribArray(11); glVertexAttribIPointer(11, 4, GL_UNSIGNED_SHORT, skin_stride, CAST_INT_TO_UCHAR_PTR(4 * sizeof(uint16_t))); @@ -1326,8 +1326,8 @@ void MeshStorage::_compute_skeleton(MeshInstance *p_mi, Skeleton *p_sk, uint32_t glEnableVertexAttribArray(13); glVertexAttribPointer(13, 4, GL_UNSIGNED_SHORT, GL_TRUE, skin_stride, CAST_INT_TO_UCHAR_PTR(12 * sizeof(uint16_t))); } else { - glEnableVertexAttribArray(RS::ARRAY_WEIGHTS); - glVertexAttribPointer(RS::ARRAY_WEIGHTS, 4, GL_UNSIGNED_SHORT, GL_TRUE, skin_stride, CAST_INT_TO_UCHAR_PTR(4 * sizeof(uint16_t))); + glEnableVertexAttribArray(RSE::ARRAY_WEIGHTS); + glVertexAttribPointer(RSE::ARRAY_WEIGHTS, 4, GL_UNSIGNED_SHORT, GL_TRUE, skin_stride, CAST_INT_TO_UCHAR_PTR(4 * sizeof(uint16_t))); } glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, p_mi->surfaces[p_surface].vertex_buffers[p_mi->surfaces[p_surface].current_vertex_buffer]); @@ -1338,10 +1338,10 @@ void MeshStorage::_compute_skeleton(MeshInstance *p_mi, Skeleton *p_sk, uint32_t glDrawArrays(GL_POINTS, 0, p_mi->mesh->surfaces[p_surface]->vertex_count); glEndTransformFeedback(); - glDisableVertexAttribArray(RS::ARRAY_BONES); - glDisableVertexAttribArray(RS::ARRAY_WEIGHTS); - glDisableVertexAttribArray(RS::ARRAY_BONES + 2); - glDisableVertexAttribArray(RS::ARRAY_WEIGHTS + 2); + glDisableVertexAttribArray(RSE::ARRAY_BONES); + glDisableVertexAttribArray(RSE::ARRAY_WEIGHTS); + glDisableVertexAttribArray(RSE::ARRAY_BONES + 2); + glDisableVertexAttribArray(RSE::ARRAY_WEIGHTS + 2); glBindVertexArray(0); glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, 0); } @@ -1374,7 +1374,7 @@ void MeshStorage::update_mesh_instances() { int buffer_size = mi->surfaces[i].vertex_stride_cache * surface->vertex_count; glGenBuffers(1, &new_vertex_buffer); glBindBuffer(GL_ARRAY_BUFFER, new_vertex_buffer); - GLES3::Utilities::get_singleton()->buffer_allocate_data(GL_ARRAY_BUFFER, new_vertex_buffer, buffer_size, nullptr, (surface->format & RS::ARRAY_FLAG_USE_DYNAMIC_UPDATE) ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW, "Secondary mesh vertex buffer"); + GLES3::Utilities::get_singleton()->buffer_allocate_data(GL_ARRAY_BUFFER, new_vertex_buffer, buffer_size, nullptr, (surface->format & RSE::ARRAY_FLAG_USE_DYNAMIC_UPDATE) ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW, "Secondary mesh vertex buffer"); glBindBuffer(GL_ARRAY_BUFFER, 0); mi->surfaces[i].vertex_buffers[new_buffer_index] = new_vertex_buffer; @@ -1391,7 +1391,7 @@ void MeshStorage::update_mesh_instances() { // Precompute base weight if using blend shapes. float base_weight = 1.0; - if (mi->surfaces.size() && mi->mesh->blend_shape_count && mi->mesh->blend_shape_mode == RS::BLEND_SHAPE_MODE_NORMALIZED) { + if (mi->surfaces.size() && mi->mesh->blend_shape_count && mi->mesh->blend_shape_mode == RSE::BLEND_SHAPE_MODE_NORMALIZED) { for (uint32_t i = 0; i < mi->mesh->blend_shape_count; i++) { base_weight -= mi->blend_weights[i]; } @@ -1402,9 +1402,9 @@ void MeshStorage::update_mesh_instances() { continue; } - bool array_is_2d = mi->surfaces[i].format_cache & RS::ARRAY_FLAG_USE_2D_VERTICES; - bool can_use_skeleton = sk != nullptr && sk->use_2d == array_is_2d && (mi->surfaces[i].format_cache & RS::ARRAY_FORMAT_BONES); - bool use_8_weights = mi->surfaces[i].format_cache & RS::ARRAY_FLAG_USE_8_BONE_WEIGHTS; + bool array_is_2d = mi->surfaces[i].format_cache & RSE::ARRAY_FLAG_USE_2D_VERTICES; + bool can_use_skeleton = sk != nullptr && sk->use_2d == array_is_2d && (mi->surfaces[i].format_cache & RSE::ARRAY_FORMAT_BONES); + bool use_8_weights = mi->surfaces[i].format_cache & RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS; // Always process blend shapes first. if (mi->mesh->blend_shape_count) { @@ -1413,10 +1413,10 @@ void MeshStorage::update_mesh_instances() { specialization |= array_is_2d ? SkeletonShaderGLES3::MODE_2D : 0; specialization |= SkeletonShaderGLES3::USE_BLEND_SHAPES; if (!array_is_2d) { - if ((mi->surfaces[i].format_cache & (1ULL << RS::ARRAY_NORMAL))) { + if ((mi->surfaces[i].format_cache & (1ULL << RSE::ARRAY_NORMAL))) { specialization |= SkeletonShaderGLES3::USE_NORMAL; } - if ((mi->surfaces[i].format_cache & (1ULL << RS::ARRAY_TANGENT))) { + if ((mi->surfaces[i].format_cache & (1ULL << RSE::ARRAY_TANGENT))) { specialization |= SkeletonShaderGLES3::USE_TANGENT; } } @@ -1431,7 +1431,7 @@ void MeshStorage::update_mesh_instances() { glBindBuffer(GL_ARRAY_BUFFER, 0); GLuint vertex_array_gl = 0; - uint64_t mask = RS::ARRAY_FORMAT_VERTEX | RS::ARRAY_FORMAT_NORMAL | RS::ARRAY_FORMAT_VERTEX; + uint64_t mask = RSE::ARRAY_FORMAT_VERTEX | RSE::ARRAY_FORMAT_NORMAL | RSE::ARRAY_FORMAT_VERTEX; uint64_t format = mi->mesh->surfaces[i]->format & mask; // Format should only have vertex, normal, tangent (as necessary). mesh_surface_get_vertex_arrays_and_format(mi->mesh->surfaces[i], format, false, vertex_array_gl); glBindVertexArray(vertex_array_gl); @@ -1523,10 +1523,10 @@ void MeshStorage::update_mesh_instances() { specialization |= SkeletonShaderGLES3::FINAL_PASS; specialization |= use_8_weights ? SkeletonShaderGLES3::USE_EIGHT_WEIGHTS : 0; if (!array_is_2d) { - if ((mi->surfaces[i].format_cache & (1ULL << RS::ARRAY_NORMAL))) { + if ((mi->surfaces[i].format_cache & (1ULL << RSE::ARRAY_NORMAL))) { specialization |= SkeletonShaderGLES3::USE_NORMAL; } - if ((mi->surfaces[i].format_cache & (1ULL << RS::ARRAY_TANGENT))) { + if ((mi->surfaces[i].format_cache & (1ULL << RSE::ARRAY_TANGENT))) { specialization |= SkeletonShaderGLES3::USE_TANGENT; } } @@ -1547,7 +1547,7 @@ void MeshStorage::update_mesh_instances() { skeleton_shader.shader.version_set_uniform(SkeletonShaderGLES3::INVERSE_TRANSFORM_OFFSET, inverse_transform[2], skeleton_shader.shader_version, variant, specialization); GLuint vertex_array_gl = 0; - uint64_t mask = RS::ARRAY_FORMAT_VERTEX | RS::ARRAY_FORMAT_NORMAL | RS::ARRAY_FORMAT_VERTEX; + uint64_t mask = RSE::ARRAY_FORMAT_VERTEX | RSE::ARRAY_FORMAT_NORMAL | RSE::ARRAY_FORMAT_VERTEX; uint64_t format = mi->mesh->surfaces[i]->format & mask; // Format should only have vertex, normal, tangent (as necessary). mesh_surface_get_vertex_arrays_and_format(mi->mesh->surfaces[i], format, false, vertex_array_gl); glBindVertexArray(vertex_array_gl); @@ -1579,13 +1579,13 @@ void MeshStorage::_multimesh_free(RID p_rid) { // Remove from interpolator. _interpolation_data.notify_free_multimesh(p_rid); _update_dirty_multimeshes(); - multimesh_allocate_data(p_rid, 0, RS::MULTIMESH_TRANSFORM_2D); + multimesh_allocate_data(p_rid, 0, RSE::MULTIMESH_TRANSFORM_2D); MultiMesh *multimesh = multimesh_owner.get_or_null(p_rid); multimesh->dependency.deleted_notify(p_rid); multimesh_owner.free(p_rid); } -void MeshStorage::_multimesh_allocate_data(RID p_multimesh, int p_instances, RS::MultimeshTransformFormat p_transform_format, bool p_use_colors, bool p_use_custom_data, bool p_use_indirect) { +void MeshStorage::_multimesh_allocate_data(RID p_multimesh, int p_instances, RSE::MultimeshTransformFormat p_transform_format, bool p_use_colors, bool p_use_custom_data, bool p_use_indirect) { MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh); ERR_FAIL_NULL(multimesh); @@ -1613,7 +1613,7 @@ void MeshStorage::_multimesh_allocate_data(RID p_multimesh, int p_instances, RS: multimesh->instances = p_instances; multimesh->xform_format = p_transform_format; multimesh->uses_colors = p_use_colors; - multimesh->color_offset_cache = p_transform_format == RS::MULTIMESH_TRANSFORM_2D ? 8 : 12; + multimesh->color_offset_cache = p_transform_format == RSE::MULTIMESH_TRANSFORM_2D ? 8 : 12; multimesh->uses_custom_data = p_use_custom_data; multimesh->custom_data_offset_cache = multimesh->color_offset_cache + color_and_custom_strides; multimesh->stride_cache = multimesh->custom_data_offset_cache + color_and_custom_strides; @@ -1756,7 +1756,7 @@ void MeshStorage::_multimesh_re_create_aabb(MultiMesh *multimesh, const float *p const float *data = p_data + multimesh->stride_cache * i; Transform3D t; - if (multimesh->xform_format == RS::MULTIMESH_TRANSFORM_3D) { + if (multimesh->xform_format == RSE::MULTIMESH_TRANSFORM_3D) { t.basis.rows[0][0] = data[0]; t.basis.rows[0][1] = data[1]; t.basis.rows[0][2] = data[2]; @@ -1794,7 +1794,7 @@ void MeshStorage::_multimesh_instance_set_transform(RID p_multimesh, int p_index MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh); ERR_FAIL_NULL(multimesh); ERR_FAIL_INDEX(p_index, multimesh->instances); - ERR_FAIL_COND(multimesh->xform_format != RS::MULTIMESH_TRANSFORM_3D); + ERR_FAIL_COND(multimesh->xform_format != RSE::MULTIMESH_TRANSFORM_3D); _multimesh_make_local(multimesh); @@ -1824,7 +1824,7 @@ void MeshStorage::_multimesh_instance_set_transform_2d(RID p_multimesh, int p_in MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh); ERR_FAIL_NULL(multimesh); ERR_FAIL_INDEX(p_index, multimesh->instances); - ERR_FAIL_COND(multimesh->xform_format != RS::MULTIMESH_TRANSFORM_2D); + ERR_FAIL_COND(multimesh->xform_format != RSE::MULTIMESH_TRANSFORM_2D); _multimesh_make_local(multimesh); @@ -1921,7 +1921,7 @@ Transform3D MeshStorage::_multimesh_instance_get_transform(RID p_multimesh, int MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh); ERR_FAIL_NULL_V(multimesh, Transform3D()); ERR_FAIL_INDEX_V(p_index, multimesh->instances, Transform3D()); - ERR_FAIL_COND_V(multimesh->xform_format != RS::MULTIMESH_TRANSFORM_3D, Transform3D()); + ERR_FAIL_COND_V(multimesh->xform_format != RSE::MULTIMESH_TRANSFORM_3D, Transform3D()); _multimesh_make_local(multimesh); @@ -1952,7 +1952,7 @@ Transform2D MeshStorage::_multimesh_instance_get_transform_2d(RID p_multimesh, i MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh); ERR_FAIL_NULL_V(multimesh, Transform2D()); ERR_FAIL_INDEX_V(p_index, multimesh->instances, Transform2D()); - ERR_FAIL_COND_V(multimesh->xform_format != RS::MULTIMESH_TRANSFORM_2D, Transform2D()); + ERR_FAIL_COND_V(multimesh->xform_format != RSE::MULTIMESH_TRANSFORM_2D, Transform2D()); _multimesh_make_local(multimesh); @@ -2034,7 +2034,7 @@ void MeshStorage::_multimesh_set_buffer(RID p_multimesh, const Vector &p_ _multimesh_make_local(multimesh); - uint32_t old_stride = multimesh->xform_format == RS::MULTIMESH_TRANSFORM_2D ? 8 : 12; + uint32_t old_stride = multimesh->xform_format == RSE::MULTIMESH_TRANSFORM_2D ? 8 : 12; old_stride += multimesh->uses_colors ? 4 : 0; old_stride += multimesh->uses_custom_data ? 4 : 0; ERR_FAIL_COND(p_buffer.size() != (multimesh->instances * (int)old_stride)); @@ -2051,7 +2051,7 @@ void MeshStorage::_multimesh_set_buffer(RID p_multimesh, const Vector &p_ memcpy(newptr, vals, 8 * 4); } - if (multimesh->xform_format == RS::MULTIMESH_TRANSFORM_3D) { + if (multimesh->xform_format == RSE::MULTIMESH_TRANSFORM_3D) { float *dataptr = w + i * old_stride + 8; float *newptr = w + i * multimesh->stride_cache + 8; float vals[8] = { dataptr[0], dataptr[1], dataptr[2], dataptr[3] }; @@ -2059,13 +2059,13 @@ void MeshStorage::_multimesh_set_buffer(RID p_multimesh, const Vector &p_ } if (multimesh->uses_colors) { - float *dataptr = w + i * old_stride + (multimesh->xform_format == RS::MULTIMESH_TRANSFORM_2D ? 8 : 12); + float *dataptr = w + i * old_stride + (multimesh->xform_format == RSE::MULTIMESH_TRANSFORM_2D ? 8 : 12); float *newptr = w + i * multimesh->stride_cache + multimesh->color_offset_cache; uint16_t val[4] = { Math::make_half_float(dataptr[0]), Math::make_half_float(dataptr[1]), Math::make_half_float(dataptr[2]), Math::make_half_float(dataptr[3]) }; memcpy(newptr, val, 2 * 4); } if (multimesh->uses_custom_data) { - float *dataptr = w + i * old_stride + (multimesh->xform_format == RS::MULTIMESH_TRANSFORM_2D ? 8 : 12) + (multimesh->uses_colors ? 4 : 0); + float *dataptr = w + i * old_stride + (multimesh->xform_format == RSE::MULTIMESH_TRANSFORM_2D ? 8 : 12) + (multimesh->uses_colors ? 4 : 0); float *newptr = w + i * multimesh->stride_cache + multimesh->custom_data_offset_cache; uint16_t val[4] = { Math::make_half_float(dataptr[0]), Math::make_half_float(dataptr[1]), Math::make_half_float(dataptr[2]), Math::make_half_float(dataptr[3]) }; memcpy(newptr, val, 2 * 4); @@ -2143,7 +2143,7 @@ Vector MeshStorage::_multimesh_get_buffer(RID p_multimesh) const { } if (multimesh->uses_colors || multimesh->uses_custom_data) { // Need to decompress buffer. - uint32_t new_stride = multimesh->xform_format == RS::MULTIMESH_TRANSFORM_2D ? 8 : 12; + uint32_t new_stride = multimesh->xform_format == RSE::MULTIMESH_TRANSFORM_2D ? 8 : 12; new_stride += multimesh->uses_colors ? 4 : 0; new_stride += multimesh->uses_custom_data ? 4 : 0; @@ -2160,7 +2160,7 @@ Vector MeshStorage::_multimesh_get_buffer(RID p_multimesh) const { memcpy(newptr, vals, 8 * 4); } - if (multimesh->xform_format == RS::MULTIMESH_TRANSFORM_3D) { + if (multimesh->xform_format == RSE::MULTIMESH_TRANSFORM_3D) { float *newptr = w + i * new_stride + 8; const float *oldptr = r + i * multimesh->stride_cache + 8; float vals[8] = { oldptr[0], oldptr[1], oldptr[2], oldptr[3] }; @@ -2168,7 +2168,7 @@ Vector MeshStorage::_multimesh_get_buffer(RID p_multimesh) const { } if (multimesh->uses_colors) { - float *newptr = w + i * new_stride + (multimesh->xform_format == RS::MULTIMESH_TRANSFORM_2D ? 8 : 12); + float *newptr = w + i * new_stride + (multimesh->xform_format == RSE::MULTIMESH_TRANSFORM_2D ? 8 : 12); const float *oldptr = r + i * multimesh->stride_cache + multimesh->color_offset_cache; uint16_t raw_data[4]; memcpy(raw_data, oldptr, 2 * 4); @@ -2178,7 +2178,7 @@ Vector MeshStorage::_multimesh_get_buffer(RID p_multimesh) const { newptr[3] = Math::half_to_float(raw_data[3]); } if (multimesh->uses_custom_data) { - float *newptr = w + i * new_stride + (multimesh->xform_format == RS::MULTIMESH_TRANSFORM_2D ? 8 : 12) + (multimesh->uses_colors ? 4 : 0); + float *newptr = w + i * new_stride + (multimesh->xform_format == RSE::MULTIMESH_TRANSFORM_2D ? 8 : 12) + (multimesh->uses_colors ? 4 : 0); const float *oldptr = r + i * multimesh->stride_cache + multimesh->custom_data_offset_cache; uint16_t raw_data[4]; memcpy(raw_data, oldptr, 2 * 4); diff --git a/drivers/gles3/storage/mesh_storage.h b/drivers/gles3/storage/mesh_storage.h index 52074c94cc..60d0ba1050 100644 --- a/drivers/gles3/storage/mesh_storage.h +++ b/drivers/gles3/storage/mesh_storage.h @@ -36,6 +36,8 @@ #include "core/templates/rid_owner.h" #include "core/templates/self_list.h" #include "drivers/gles3/shaders/skeleton.glsl.gen.h" +#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" #include "servers/rendering/rendering_server_globals.h" #include "servers/rendering/storage/mesh_storage.h" #include "servers/rendering/storage/utilities.h" @@ -57,7 +59,7 @@ struct Mesh { GLsizei stride; uint32_t offset; }; - RS::PrimitiveType primitive = RS::PRIMITIVE_POINTS; + RSE::PrimitiveType primitive = RSE::PRIMITIVE_POINTS; uint64_t format = 0; GLuint vertex_buffer = 0; @@ -76,7 +78,7 @@ struct Mesh { uint32_t prev_vertex_buffer = 0; GLuint vertex_array = 0; - Attrib attribs[RS::ARRAY_MAX]; + Attrib attribs[RSE::ARRAY_MAX]; }; SpinLock version_lock; //needed to access versions @@ -127,7 +129,7 @@ struct Mesh { }; uint32_t blend_shape_count = 0; - RS::BlendShapeMode blend_shape_mode = RS::BLEND_SHAPE_MODE_NORMALIZED; + RSE::BlendShapeMode blend_shape_mode = RSE::BLEND_SHAPE_MODE_NORMALIZED; Surface **surfaces = nullptr; uint32_t surface_count = 0; @@ -192,7 +194,7 @@ struct MeshInstance { struct MultiMesh { RID mesh; int instances = 0; - RS::MultimeshTransformFormat xform_format = RS::MULTIMESH_TRANSFORM_3D; + RSE::MultimeshTransformFormat xform_format = RSE::MULTIMESH_TRANSFORM_3D; bool uses_colors = false; bool uses_custom_data = false; int visible_instances = -1; @@ -307,8 +309,8 @@ public: virtual int mesh_get_blend_shape_count(RID p_mesh) const override; - virtual void mesh_set_blend_shape_mode(RID p_mesh, RS::BlendShapeMode p_mode) override; - virtual RS::BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const override; + virtual void mesh_set_blend_shape_mode(RID p_mesh, RSE::BlendShapeMode p_mode) override; + virtual RSE::BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const override; virtual void mesh_surface_update_vertex_region(RID p_mesh, int p_surface, int p_offset, const Vector &p_data) override; virtual void mesh_surface_update_attribute_region(RID p_mesh, int p_surface, int p_offset, const Vector &p_data) override; @@ -366,7 +368,7 @@ public: return mesh->shadow_mesh; } - _FORCE_INLINE_ RS::PrimitiveType mesh_surface_get_primitive(void *p_surface) { + _FORCE_INLINE_ RSE::PrimitiveType mesh_surface_get_primitive(void *p_surface) { Mesh::Surface *surface = reinterpret_cast(p_surface); return surface->primitive; } @@ -525,7 +527,7 @@ public: virtual RID _multimesh_allocate() override; virtual void _multimesh_initialize(RID p_rid) override; virtual void _multimesh_free(RID p_rid) override; - virtual void _multimesh_allocate_data(RID p_multimesh, int p_instances, RS::MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false, bool p_use_indirect = false) override; + virtual void _multimesh_allocate_data(RID p_multimesh, int p_instances, RSE::MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false, bool p_use_indirect = false) override; virtual int _multimesh_get_instance_count(RID p_multimesh) const override; virtual void _multimesh_set_mesh(RID p_multimesh, RID p_mesh) override; @@ -558,9 +560,9 @@ public: void multimesh_vertex_attrib_setup(GLuint p_instance_buffer, uint32_t p_stride, bool p_uses_format_2d, bool p_has_color_or_custom_data, int p_attrib_base_index); - _FORCE_INLINE_ RS::MultimeshTransformFormat multimesh_get_transform_format(RID p_multimesh) const { + _FORCE_INLINE_ RSE::MultimeshTransformFormat multimesh_get_transform_format(RID p_multimesh) const { MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh); - ERR_FAIL_NULL_V(multimesh, RS::MULTIMESH_TRANSFORM_3D); + ERR_FAIL_NULL_V(multimesh, RSE::MULTIMESH_TRANSFORM_3D); return multimesh->xform_format; } diff --git a/drivers/gles3/storage/particles_storage.cpp b/drivers/gles3/storage/particles_storage.cpp index 9551064782..9917d70a52 100644 --- a/drivers/gles3/storage/particles_storage.cpp +++ b/drivers/gles3/storage/particles_storage.cpp @@ -108,7 +108,7 @@ void ParticlesStorage::particles_free(RID p_rid) { particles_owner.free(p_rid); } -void ParticlesStorage::particles_set_mode(RID p_particles, RS::ParticlesMode p_mode) { +void ParticlesStorage::particles_set_mode(RID p_particles, RSE::ParticlesMode p_mode) { Particles *particles = particles_owner.get_or_null(p_particles); ERR_FAIL_NULL(particles); if (particles->mode == p_mode) { @@ -316,7 +316,7 @@ void ParticlesStorage::particles_set_collision_base_size(RID p_particles, real_t particles->collision_base_size = p_size; } -void ParticlesStorage::particles_set_transform_align(RID p_particles, RS::ParticlesTransformAlign p_transform_align) { +void ParticlesStorage::particles_set_transform_align(RID p_particles, RSE::ParticlesTransformAlign p_transform_align) { Particles *particles = particles_owner.get_or_null(p_particles); ERR_FAIL_NULL(particles); @@ -338,7 +338,7 @@ RID ParticlesStorage::particles_get_process_material(RID p_particles) const { return particles->process_material; } -void ParticlesStorage::particles_set_draw_order(RID p_particles, RS::ParticlesDrawOrder p_order) { +void ParticlesStorage::particles_set_draw_order(RID p_particles, RSE::ParticlesDrawOrder p_order) { Particles *particles = particles_owner.get_or_null(p_particles); ERR_FAIL_NULL(particles); @@ -626,7 +626,7 @@ void ParticlesStorage::_particles_process(Particles *p_particles, double p_delta Vector3 scale = to_collider.basis.get_scale(); to_collider.basis.orthonormalize(); - if (pc->type <= RS::PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT) { + if (pc->type <= RSE::PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT) { //attractor if (frame_params.attractor_count >= ParticlesFrameParams::MAX_ATTRACTORS) { continue; @@ -640,7 +640,7 @@ void ParticlesStorage::_particles_process(Particles *p_particles, double p_delta attr.directionality = pc->attractor_directionality; switch (pc->type) { - case RS::PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT: { + case RSE::PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT: { attr.type = ParticlesFrameParams::ATTRACTOR_TYPE_SPHERE; float radius = pc->radius; radius *= (scale.x + scale.y + scale.z) / 3.0; @@ -648,14 +648,14 @@ void ParticlesStorage::_particles_process(Particles *p_particles, double p_delta attr.extents[1] = radius; attr.extents[2] = radius; } break; - case RS::PARTICLES_COLLISION_TYPE_BOX_ATTRACT: { + case RSE::PARTICLES_COLLISION_TYPE_BOX_ATTRACT: { attr.type = ParticlesFrameParams::ATTRACTOR_TYPE_BOX; Vector3 extents = pc->extents * scale; attr.extents[0] = extents.x; attr.extents[1] = extents.y; attr.extents[2] = extents.z; } break; - case RS::PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT: { + case RSE::PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT: { WARN_PRINT_ONCE_ED("Vector field particle attractors are not available in the Compatibility renderer."); } break; default: { @@ -673,7 +673,7 @@ void ParticlesStorage::_particles_process(Particles *p_particles, double p_delta GLES3::MaterialStorage::store_transform(to_collider, col.transform); switch (pc->type) { - case RS::PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE: { + case RSE::PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE: { col.type = ParticlesFrameParams::COLLISION_TYPE_SPHERE; float radius = pc->radius; radius *= (scale.x + scale.y + scale.z) / 3.0; @@ -681,17 +681,17 @@ void ParticlesStorage::_particles_process(Particles *p_particles, double p_delta col.extents[1] = radius; col.extents[2] = radius; } break; - case RS::PARTICLES_COLLISION_TYPE_BOX_COLLIDE: { + case RSE::PARTICLES_COLLISION_TYPE_BOX_COLLIDE: { col.type = ParticlesFrameParams::COLLISION_TYPE_BOX; Vector3 extents = pc->extents * scale; col.extents[0] = extents.x; col.extents[1] = extents.y; col.extents[2] = extents.z; } break; - case RS::PARTICLES_COLLISION_TYPE_SDF_COLLIDE: { + case RSE::PARTICLES_COLLISION_TYPE_SDF_COLLIDE: { WARN_PRINT_ONCE_ED("SDF Particle Colliders are not available in the Compatibility renderer."); } break; - case RS::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE: { + case RSE::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE: { if (collision_heightmap_texture != 0) { //already taken continue; } @@ -732,9 +732,9 @@ void ParticlesStorage::_particles_process(Particles *p_particles, double p_delta } // Get shader and set shader uniforms; - ParticleProcessMaterialData *m = static_cast(material_storage->material_get_data(p_particles->process_material, RS::SHADER_PARTICLES)); + ParticleProcessMaterialData *m = static_cast(material_storage->material_get_data(p_particles->process_material, RSE::SHADER_PARTICLES)); if (!m) { - m = static_cast(material_storage->material_get_data(particles_shader.default_material, RS::SHADER_PARTICLES)); + m = static_cast(material_storage->material_get_data(particles_shader.default_material, RSE::SHADER_PARTICLES)); } ERR_FAIL_NULL(m); @@ -748,7 +748,7 @@ void ParticlesStorage::_particles_process(Particles *p_particles, double p_delta } } - if (p_particles->mode == RS::ParticlesMode::PARTICLES_MODE_3D) { + if (p_particles->mode == RSE::ParticlesMode::PARTICLES_MODE_3D) { specialization |= ParticlesShaderGLES3::MODE_3D; } @@ -792,7 +792,7 @@ void ParticlesStorage::particles_set_view_axis(RID p_particles, const Vector3 &p Particles *particles = particles_owner.get_or_null(p_particles); ERR_FAIL_NULL(particles); - if (particles->draw_order != RS::PARTICLES_DRAW_ORDER_VIEW_DEPTH && particles->transform_align != RS::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD && particles->transform_align != RS::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY) { + if (particles->draw_order != RSE::PARTICLES_DRAW_ORDER_VIEW_DEPTH && particles->transform_align != RSE::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD && particles->transform_align != RSE::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY) { return; } @@ -809,7 +809,7 @@ void ParticlesStorage::particles_set_view_axis(RID p_particles, const Vector3 &p // Sort will be done on CPU since we don't have compute shaders. // If the sort_buffer has valid data // Use a buffer that is 2 frames out of date to avoid stalls. - if (particles->draw_order == RS::PARTICLES_DRAW_ORDER_VIEW_DEPTH && particles->sort_buffer_filled) { + if (particles->draw_order == RSE::PARTICLES_DRAW_ORDER_VIEW_DEPTH && particles->sort_buffer_filled) { glBindBuffer(GL_ARRAY_BUFFER, particles->sort_buffer); ParticleInstanceData3D *particle_array; @@ -844,7 +844,7 @@ void ParticlesStorage::_particles_update_buffers(Particles *particles) { uint32_t userdata_count = 0; if (particles->process_material.is_valid()) { - GLES3::ParticleProcessMaterialData *material_data = static_cast(material_storage->material_get_data(particles->process_material, RS::SHADER_PARTICLES)); + GLES3::ParticleProcessMaterialData *material_data = static_cast(material_storage->material_get_data(particles->process_material, RSE::SHADER_PARTICLES)); if (material_data && material_data->shader_data->version.is_valid() && material_data->shader_data->valid) { userdata_count = material_data->shader_data->userdata_count; } @@ -860,7 +860,7 @@ void ParticlesStorage::_particles_update_buffers(Particles *particles) { particles->userdata_count = userdata_count; - uint32_t xform_size = particles->mode == RS::PARTICLES_MODE_2D ? 2 : 3; + uint32_t xform_size = particles->mode == RSE::PARTICLES_MODE_2D ? 2 : 3; particles->instance_buffer_stride_cache = sizeof(float) * 4 * (xform_size + 1); particles->instance_buffer_size_cache = particles->instance_buffer_stride_cache * total_amount; particles->num_attrib_arrays_cache = 5 + userdata_count + (xform_size - 2); @@ -932,7 +932,7 @@ void ParticlesStorage::_particles_update_instance_buffer(Particles *particles, c ParticlesCopyShaderGLES3::ShaderVariant variant = ParticlesCopyShaderGLES3::MODE_DEFAULT; uint64_t specialization = 0; - if (particles->mode == RS::ParticlesMode::PARTICLES_MODE_3D) { + if (particles->mode == RSE::ParticlesMode::PARTICLES_MODE_3D) { specialization |= ParticlesCopyShaderGLES3::MODE_3D; } @@ -965,7 +965,7 @@ void ParticlesStorage::_particles_update_instance_buffer(Particles *particles, c glBindBufferRange(GL_TRANSFORM_FEEDBACK_BUFFER, 0, particles->front_instance_buffer, 0, particles->instance_buffer_size_cache); glBeginTransformFeedback(GL_POINTS); - if (particles->draw_order == RS::PARTICLES_DRAW_ORDER_LIFETIME) { + if (particles->draw_order == RSE::PARTICLES_DRAW_ORDER_LIFETIME) { uint32_t lifetime_split = (MIN(int(particles->amount * particles->phase), particles->amount - 1) + 1) % particles->amount; uint32_t stride = particles->process_buffer_stride_cache; @@ -983,7 +983,7 @@ void ParticlesStorage::_particles_update_instance_buffer(Particles *particles, c glVertexAttribPointer(3, 4, GL_FLOAT, GL_FALSE, stride, CAST_INT_TO_UCHAR_PTR(stride * lifetime_split + sizeof(float) * 4 * 3)); glEnableVertexAttribArray(4); // Xform2. glVertexAttribPointer(4, 4, GL_FLOAT, GL_FALSE, stride, CAST_INT_TO_UCHAR_PTR(stride * lifetime_split + sizeof(float) * 4 * 4)); - if (particles->mode == RS::PARTICLES_MODE_3D) { + if (particles->mode == RSE::PARTICLES_MODE_3D) { glEnableVertexAttribArray(5); // Xform3. glVertexAttribPointer(5, 4, GL_FLOAT, GL_FALSE, stride, CAST_INT_TO_UCHAR_PTR(stride * lifetime_split + sizeof(float) * 4 * 5)); } @@ -1074,7 +1074,7 @@ void ParticlesStorage::update_particles() { // Copy the instance buffer that was last used into the last_frame buffer. // sort_buffer should now be 2 frames out of date. - if (particles->draw_order == RS::PARTICLES_DRAW_ORDER_VIEW_DEPTH || particles->draw_order == RS::PARTICLES_DRAW_ORDER_REVERSE_LIFETIME) { + if (particles->draw_order == RSE::PARTICLES_DRAW_ORDER_VIEW_DEPTH || particles->draw_order == RSE::PARTICLES_DRAW_ORDER_REVERSE_LIFETIME) { _particles_allocate_history_buffers(particles); SWAP(particles->last_frame_buffer, particles->sort_buffer); @@ -1155,11 +1155,11 @@ void ParticlesStorage::update_particles() { // Copy particles to instance buffer and pack Color/Custom. // We don't have camera information here, so don't copy here if we need camera information for view depth or align mode. - if (particles->draw_order != RS::PARTICLES_DRAW_ORDER_VIEW_DEPTH && particles->transform_align != RS::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD && particles->transform_align != RS::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY) { + if (particles->draw_order != RSE::PARTICLES_DRAW_ORDER_VIEW_DEPTH && particles->transform_align != RSE::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD && particles->transform_align != RSE::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY) { _particles_update_instance_buffer(particles, Vector3(0.0, 0.0, 0.0), Vector3(0.0, 0.0, 0.0)); - if (particles->draw_order == RS::PARTICLES_DRAW_ORDER_REVERSE_LIFETIME && particles->sort_buffer_filled) { - if (particles->mode == RS::ParticlesMode::PARTICLES_MODE_2D) { + if (particles->draw_order == RSE::PARTICLES_DRAW_ORDER_REVERSE_LIFETIME && particles->sort_buffer_filled) { + if (particles->mode == RSE::ParticlesMode::PARTICLES_MODE_2D) { _particles_reverse_lifetime_sort(particles); } else { _particles_reverse_lifetime_sort(particles); @@ -1250,11 +1250,11 @@ void ParticlesStorage::particles_collision_free(RID p_rid) { GLuint ParticlesStorage::particles_collision_get_heightfield_framebuffer(RID p_particles_collision) const { ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision); ERR_FAIL_NULL_V(particles_collision, 0); - ERR_FAIL_COND_V(particles_collision->type != RS::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE, 0); + ERR_FAIL_COND_V(particles_collision->type != RSE::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE, 0); if (particles_collision->heightfield_texture == 0) { //create - const int resolutions[RS::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX] = { 256, 512, 1024, 2048, 4096, 8192 }; + const int resolutions[RSE::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX] = { 256, 512, 1024, 2048, 4096, 8192 }; Size2i size; if (particles_collision->extents.x > particles_collision->extents.z) { size.x = resolutions[particles_collision->heightfield_resolution]; @@ -1296,7 +1296,7 @@ GLuint ParticlesStorage::particles_collision_get_heightfield_framebuffer(RID p_p return particles_collision->heightfield_fb; } -void ParticlesStorage::particles_collision_set_collision_type(RID p_particles_collision, RS::ParticlesCollisionType p_type) { +void ParticlesStorage::particles_collision_set_collision_type(RID p_particles_collision, RSE::ParticlesCollisionType p_type) { ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision); ERR_FAIL_NULL(particles_collision); @@ -1375,10 +1375,10 @@ void ParticlesStorage::particles_collision_height_field_update(RID p_particles_c particles_collision->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_AABB); } -void ParticlesStorage::particles_collision_set_height_field_resolution(RID p_particles_collision, RS::ParticlesCollisionHeightfieldResolution p_resolution) { +void ParticlesStorage::particles_collision_set_height_field_resolution(RID p_particles_collision, RSE::ParticlesCollisionHeightfieldResolution p_resolution) { ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision); ERR_FAIL_NULL(particles_collision); - ERR_FAIL_INDEX(p_resolution, RS::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX); + ERR_FAIL_INDEX(p_resolution, RSE::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX); if (particles_collision->heightfield_resolution == p_resolution) { return; @@ -1399,8 +1399,8 @@ AABB ParticlesStorage::particles_collision_get_aabb(RID p_particles_collision) c ERR_FAIL_NULL_V(particles_collision, AABB()); switch (particles_collision->type) { - case RS::PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT: - case RS::PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE: { + case RSE::PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT: + case RSE::PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE: { AABB aabb; aabb.position = -Vector3(1, 1, 1) * particles_collision->radius; aabb.size = Vector3(2, 2, 2) * particles_collision->radius; @@ -1424,7 +1424,7 @@ Vector3 ParticlesStorage::particles_collision_get_extents(RID p_particles_collis bool ParticlesStorage::particles_collision_is_heightfield(RID p_particles_collision) const { const ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision); ERR_FAIL_NULL_V(particles_collision, false); - return particles_collision->type == RS::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE; + return particles_collision->type == RSE::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE; } uint32_t ParticlesStorage::particles_collision_get_height_field_mask(RID p_particles_collision) const { diff --git a/drivers/gles3/storage/particles_storage.h b/drivers/gles3/storage/particles_storage.h index 60449faa67..f97e968faf 100644 --- a/drivers/gles3/storage/particles_storage.h +++ b/drivers/gles3/storage/particles_storage.h @@ -147,7 +147,7 @@ private: static_assert(sizeof(ParticlesFrameParams) < 16384, "ParticlesFrameParams must be 16384 bytes or smaller"); struct Particles { - RS::ParticlesMode mode = RS::PARTICLES_MODE_3D; + RSE::ParticlesMode mode = RSE::PARTICLES_MODE_3D; bool inactive = true; double inactive_time = 0.0; bool emitting = false; @@ -171,9 +171,9 @@ private: RID process_material; uint32_t frame_counter = 0; - RS::ParticlesTransformAlign transform_align = RS::PARTICLES_TRANSFORM_ALIGN_DISABLED; + RSE::ParticlesTransformAlign transform_align = RSE::PARTICLES_TRANSFORM_ALIGN_DISABLED; - RS::ParticlesDrawOrder draw_order = RS::PARTICLES_DRAW_ORDER_INDEX; + RSE::ParticlesDrawOrder draw_order = RSE::PARTICLES_DRAW_ORDER_INDEX; Vector draw_passes; @@ -277,7 +277,7 @@ private: /* Particles Collision */ struct ParticlesCollision { - RS::ParticlesCollisionType type = RS::PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT; + RSE::ParticlesCollisionType type = RSE::PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT; uint32_t cull_mask = 0xFFFFFFFF; float radius = 1.0; Vector3 extents = Vector3(1, 1, 1); @@ -290,7 +290,7 @@ private: Size2i heightfield_fb_size; uint32_t heightfield_mask = (1 << 20) - 1; - RS::ParticlesCollisionHeightfieldResolution heightfield_resolution = RS::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_1024; + RSE::ParticlesCollisionHeightfieldResolution heightfield_resolution = RSE::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_1024; Dependency dependency; }; @@ -321,7 +321,7 @@ public: virtual void particles_initialize(RID p_rid) override; virtual void particles_free(RID p_rid) override; - virtual void particles_set_mode(RID p_particles, RS::ParticlesMode p_mode) override; + virtual void particles_set_mode(RID p_particles, RSE::ParticlesMode p_mode) override; virtual void particles_emit(RID p_particles, const Transform3D &p_transform, const Vector3 &p_velocity, const Color &p_color, const Color &p_custom, uint32_t p_emit_flags) override; virtual void particles_set_emitting(RID p_particles, bool p_emitting) override; virtual void particles_set_amount(RID p_particles, int p_amount) override; @@ -344,7 +344,7 @@ public: virtual void particles_set_view_axis(RID p_particles, const Vector3 &p_axis, const Vector3 &p_up_axis) override; virtual void particles_set_collision_base_size(RID p_particles, real_t p_size) override; - virtual void particles_set_transform_align(RID p_particles, RS::ParticlesTransformAlign p_transform_align) override; + virtual void particles_set_transform_align(RID p_particles, RSE::ParticlesTransformAlign p_transform_align) override; virtual void particles_set_seed(RID p_particles, uint32_t p_seed) override; virtual void particles_set_trails(RID p_particles, bool p_enable, double p_length) override; @@ -352,7 +352,7 @@ public: virtual void particles_restart(RID p_particles) override; - virtual void particles_set_draw_order(RID p_particles, RS::ParticlesDrawOrder p_order) override; + virtual void particles_set_draw_order(RID p_particles, RSE::ParticlesDrawOrder p_order) override; virtual void particles_set_draw_passes(RID p_particles, int p_count) override; virtual void particles_set_draw_pass_mesh(RID p_particles, int p_pass, RID p_mesh) override; @@ -377,9 +377,9 @@ public: virtual void update_particles() override; virtual bool particles_is_inactive(RID p_particles) const override; - _FORCE_INLINE_ RS::ParticlesMode particles_get_mode(RID p_particles) { + _FORCE_INLINE_ RSE::ParticlesMode particles_get_mode(RID p_particles) { Particles *particles = particles_owner.get_or_null(p_particles); - ERR_FAIL_NULL_V(particles, RS::PARTICLES_MODE_2D); + ERR_FAIL_NULL_V(particles, RSE::PARTICLES_MODE_2D); return particles->mode; } @@ -393,7 +393,7 @@ public: _FORCE_INLINE_ GLuint particles_get_gl_buffer(RID p_particles) { Particles *particles = particles_owner.get_or_null(p_particles); - if ((particles->draw_order == RS::PARTICLES_DRAW_ORDER_VIEW_DEPTH || particles->draw_order == RS::PARTICLES_DRAW_ORDER_REVERSE_LIFETIME) && particles->sort_buffer_filled) { + if ((particles->draw_order == RSE::PARTICLES_DRAW_ORDER_VIEW_DEPTH || particles->draw_order == RSE::PARTICLES_DRAW_ORDER_REVERSE_LIFETIME) && particles->sort_buffer_filled) { return particles->sort_buffer; } return particles->back_instance_buffer; @@ -436,7 +436,7 @@ public: virtual void particles_collision_initialize(RID p_rid) override; virtual void particles_collision_free(RID p_rid) override; - virtual void particles_collision_set_collision_type(RID p_particles_collision, RS::ParticlesCollisionType p_type) override; + virtual void particles_collision_set_collision_type(RID p_particles_collision, RSE::ParticlesCollisionType p_type) override; virtual void particles_collision_set_cull_mask(RID p_particles_collision, uint32_t p_cull_mask) override; virtual void particles_collision_set_sphere_radius(RID p_particles_collision, real_t p_radius) override; virtual void particles_collision_set_box_extents(RID p_particles_collision, const Vector3 &p_extents) override; @@ -445,7 +445,7 @@ public: virtual void particles_collision_set_attractor_attenuation(RID p_particles_collision, real_t p_curve) override; virtual void particles_collision_set_field_texture(RID p_particles_collision, RID p_texture) override; virtual void particles_collision_height_field_update(RID p_particles_collision) override; - virtual void particles_collision_set_height_field_resolution(RID p_particles_collision, RS::ParticlesCollisionHeightfieldResolution p_resolution) override; + virtual void particles_collision_set_height_field_resolution(RID p_particles_collision, RSE::ParticlesCollisionHeightfieldResolution p_resolution) override; virtual AABB particles_collision_get_aabb(RID p_particles_collision) const override; Vector3 particles_collision_get_extents(RID p_particles_collision) const; virtual bool particles_collision_is_heightfield(RID p_particles_collision) const override; @@ -457,7 +457,7 @@ public: _FORCE_INLINE_ Size2i particles_collision_get_heightfield_size(RID p_particles_collision) const { ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision); ERR_FAIL_NULL_V(particles_collision, Size2i()); - ERR_FAIL_COND_V(particles_collision->type != RS::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE, Size2i()); + ERR_FAIL_COND_V(particles_collision->type != RSE::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE, Size2i()); return particles_collision->heightfield_fb_size; } diff --git a/drivers/gles3/storage/render_scene_buffers_gles3.cpp b/drivers/gles3/storage/render_scene_buffers_gles3.cpp index 70f3ebdae9..b4866c4717 100644 --- a/drivers/gles3/storage/render_scene_buffers_gles3.cpp +++ b/drivers/gles3/storage/render_scene_buffers_gles3.cpp @@ -156,28 +156,28 @@ void RenderSceneBuffersGLES3::configure(const RenderSceneBuffersConfiguration *p } // Check our scaling mode - if (scaling_3d_mode != RS::VIEWPORT_SCALING_3D_MODE_OFF && internal_size.x == 0 && internal_size.y == 0) { + if (scaling_3d_mode != RSE::VIEWPORT_SCALING_3D_MODE_OFF && internal_size.x == 0 && internal_size.y == 0) { // Disable, no size set. - scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_OFF; - } else if (scaling_3d_mode != RS::VIEWPORT_SCALING_3D_MODE_OFF && internal_size == target_size) { + scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_OFF; + } else if (scaling_3d_mode != RSE::VIEWPORT_SCALING_3D_MODE_OFF && internal_size == target_size) { // If size matches, we won't use scaling. - scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_OFF; - } else if (scaling_3d_mode != RS::VIEWPORT_SCALING_3D_MODE_OFF && scaling_3d_mode != RS::VIEWPORT_SCALING_3D_MODE_BILINEAR) { + scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_OFF; + } else if (scaling_3d_mode != RSE::VIEWPORT_SCALING_3D_MODE_OFF && scaling_3d_mode != RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR) { // We only support bilinear scaling atm. WARN_PRINT_ONCE("GLES only supports bilinear scaling."); - scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_BILINEAR; + scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR; } // Check if we support MSAA. - if (msaa3d.mode != RS::VIEWPORT_MSAA_DISABLED && internal_size.x == 0 && internal_size.y == 0) { + if (msaa3d.mode != RSE::VIEWPORT_MSAA_DISABLED && internal_size.x == 0 && internal_size.y == 0) { // Disable, no size set. - msaa3d.mode = RS::VIEWPORT_MSAA_DISABLED; - } else if (!use_multiview && msaa3d.mode != RS::VIEWPORT_MSAA_DISABLED && !config->msaa_supported && !config->rt_msaa_supported) { + msaa3d.mode = RSE::VIEWPORT_MSAA_DISABLED; + } else if (!use_multiview && msaa3d.mode != RSE::VIEWPORT_MSAA_DISABLED && !config->msaa_supported && !config->rt_msaa_supported) { WARN_PRINT_ONCE("MSAA is not supported on this device."); - msaa3d.mode = RS::VIEWPORT_MSAA_DISABLED; - } else if (use_multiview && msaa3d.mode != RS::VIEWPORT_MSAA_DISABLED && !config->msaa_multiview_supported && !config->rt_msaa_multiview_supported) { + msaa3d.mode = RSE::VIEWPORT_MSAA_DISABLED; + } else if (use_multiview && msaa3d.mode != RSE::VIEWPORT_MSAA_DISABLED && !config->msaa_multiview_supported && !config->rt_msaa_multiview_supported) { WARN_PRINT_ONCE("Multiview MSAA is not supported on this device."); - msaa3d.mode = RS::VIEWPORT_MSAA_DISABLED; + msaa3d.mode = RSE::VIEWPORT_MSAA_DISABLED; } // We don't create our buffers right away because post effects can be made active at any time and change our buffer configuration. @@ -189,7 +189,7 @@ void RenderSceneBuffersGLES3::_check_render_buffers() { ERR_FAIL_COND(view_count == 0); - bool use_internal_buffer = scaling_3d_mode != RS::VIEWPORT_SCALING_3D_MODE_OFF || apply_color_adjustments_in_post; + bool use_internal_buffer = scaling_3d_mode != RSE::VIEWPORT_SCALING_3D_MODE_OFF || apply_color_adjustments_in_post; GLenum depth_format = GL_DEPTH24_STENCIL8; uint32_t depth_format_size = 4; bool use_multiview = view_count > 1; @@ -198,7 +198,7 @@ void RenderSceneBuffersGLES3::_check_render_buffers() { _clear_intermediate_buffers(); } - if ((!use_internal_buffer || internal3d.color != 0) && (msaa3d.mode == RS::VIEWPORT_MSAA_DISABLED || msaa3d.color != 0)) { + if ((!use_internal_buffer || internal3d.color != 0) && (msaa3d.mode == RSE::VIEWPORT_MSAA_DISABLED || msaa3d.color != 0)) { // already setup! return; } @@ -268,7 +268,7 @@ void RenderSceneBuffersGLES3::_check_render_buffers() { glBindFramebuffer(GL_FRAMEBUFFER, GLES3::TextureStorage::system_fbo); } - if (msaa3d.mode != RS::VIEWPORT_MSAA_DISABLED && msaa3d.color == 0) { + if (msaa3d.mode != RSE::VIEWPORT_MSAA_DISABLED && msaa3d.color == 0) { // Setup MSAA. const GLsizei samples[] = { 1, 2, 4, 8 }; msaa3d.samples = samples[msaa3d.mode]; @@ -311,7 +311,7 @@ void RenderSceneBuffersGLES3::_check_render_buffers() { GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); if (status != GL_FRAMEBUFFER_COMPLETE) { _clear_msaa3d_buffers(); - msaa3d.mode = RS::VIEWPORT_MSAA_DISABLED; + msaa3d.mode = RSE::VIEWPORT_MSAA_DISABLED; WARN_PRINT("Could not create 3D MSAA buffers, status: " + texture_storage->get_framebuffer_error(status)); } @@ -357,7 +357,7 @@ void RenderSceneBuffersGLES3::_check_render_buffers() { GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); if (status != GL_FRAMEBUFFER_COMPLETE) { _clear_msaa3d_buffers(); - msaa3d.mode = RS::VIEWPORT_MSAA_DISABLED; + msaa3d.mode = RSE::VIEWPORT_MSAA_DISABLED; WARN_PRINT("Could not create 3D MSAA buffers, status: " + texture_storage->get_framebuffer_error(status)); } @@ -386,7 +386,7 @@ void RenderSceneBuffersGLES3::_check_render_buffers() { GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); if (status != GL_FRAMEBUFFER_COMPLETE) { _clear_msaa3d_buffers(); - msaa3d.mode = RS::VIEWPORT_MSAA_DISABLED; + msaa3d.mode = RSE::VIEWPORT_MSAA_DISABLED; WARN_PRINT("Could not create 3D MSAA framebuffer, status: " + texture_storage->get_framebuffer_error(status)); } @@ -395,7 +395,7 @@ void RenderSceneBuffersGLES3::_check_render_buffers() { } else { // HUH? how did we get here? WARN_PRINT_ONCE("MSAA is not supported on this device."); - msaa3d.mode = RS::VIEWPORT_MSAA_DISABLED; + msaa3d.mode = RSE::VIEWPORT_MSAA_DISABLED; msaa3d.samples = 1; msaa3d.check_fbo_cache = false; } @@ -408,7 +408,7 @@ void RenderSceneBuffersGLES3::_check_render_buffers() { void RenderSceneBuffersGLES3::configure_for_probe(Size2i p_size) { internal_size = p_size; target_size = p_size; - scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_OFF; + scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_OFF; view_count = 1; } diff --git a/drivers/gles3/storage/render_scene_buffers_gles3.h b/drivers/gles3/storage/render_scene_buffers_gles3.h index 3cd9444523..b87560f828 100644 --- a/drivers/gles3/storage/render_scene_buffers_gles3.h +++ b/drivers/gles3/storage/render_scene_buffers_gles3.h @@ -43,9 +43,9 @@ class RenderSceneBuffersGLES3 : public RenderSceneBuffers { public: Size2i internal_size; // Size of the buffer we render 3D content to. Size2i target_size; // Size of our output buffer (render target). - RS::ViewportScaling3DMode scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_OFF; + RSE::ViewportScaling3DMode scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_OFF; //float fsr_sharpness = 0.2f; - //RS::ViewportScreenSpaceAA screen_space_aa = RS::VIEWPORT_SCREEN_SPACE_AA_DISABLED; + //RSE::ViewportScreenSpaceAA screen_space_aa = RSE::VIEWPORT_SCREEN_SPACE_AA_DISABLED; //bool use_taa = false; //bool use_debanding = false; uint32_t view_count = 1; @@ -66,7 +66,7 @@ public: }; struct RTMSAA3D { - RS::ViewportMSAA mode = RS::VIEWPORT_MSAA_DISABLED; + RSE::ViewportMSAA mode = RSE::VIEWPORT_MSAA_DISABLED; bool needs_resolve = false; GLsizei samples = 1; GLuint color = 0; @@ -102,7 +102,7 @@ public: virtual void configure(const RenderSceneBuffersConfiguration *p_config) override; void configure_for_probe(Size2i p_size); - virtual void set_anisotropic_filtering_level(RS::ViewportAnisotropicFiltering p_anisotropic_filtering_level) override {} + virtual void set_anisotropic_filtering_level(RSE::ViewportAnisotropicFiltering p_anisotropic_filtering_level) override {} virtual void set_fsr_sharpness(float p_fsr_sharpness) override {} virtual void set_texture_mipmap_bias(float p_texture_mipmap_bias) override {} virtual void set_use_debanding(bool p_use_debanding) override {} @@ -154,10 +154,10 @@ public: _FORCE_INLINE_ uint32_t get_view_count() const { return view_count; } _FORCE_INLINE_ Size2i get_internal_size() const { return internal_size; } _FORCE_INLINE_ Size2i get_target_size() const { return target_size; } - _FORCE_INLINE_ RS::ViewportScaling3DMode get_scaling_3d_mode() const { return scaling_3d_mode; } + _FORCE_INLINE_ RSE::ViewportScaling3DMode get_scaling_3d_mode() const { return scaling_3d_mode; } //_FORCE_INLINE_ float get_fsr_sharpness() const { return fsr_sharpness; } - _FORCE_INLINE_ RS::ViewportMSAA get_msaa_3d() const { return msaa3d.mode; } - //_FORCE_INLINE_ RS::ViewportScreenSpaceAA get_screen_space_aa() const { return screen_space_aa; } + _FORCE_INLINE_ RSE::ViewportMSAA get_msaa_3d() const { return msaa3d.mode; } + //_FORCE_INLINE_ RSE::ViewportScreenSpaceAA get_screen_space_aa() const { return screen_space_aa; } //_FORCE_INLINE_ bool get_use_taa() const { return use_taa; } //_FORCE_INLINE_ bool get_use_debanding() const { return use_debanding; } }; diff --git a/drivers/gles3/storage/texture_storage.cpp b/drivers/gles3/storage/texture_storage.cpp index 0862c2a4ea..d732eb989c 100644 --- a/drivers/gles3/storage/texture_storage.cpp +++ b/drivers/gles3/storage/texture_storage.cpp @@ -72,14 +72,14 @@ TextureStorage::TextureStorage() { images.push_back(image); default_gl_textures[DEFAULT_GL_TEXTURE_2D_ARRAY_WHITE] = texture_allocate(); - texture_2d_layered_initialize(default_gl_textures[DEFAULT_GL_TEXTURE_2D_ARRAY_WHITE], images, RS::TEXTURE_LAYERED_2D_ARRAY); + texture_2d_layered_initialize(default_gl_textures[DEFAULT_GL_TEXTURE_2D_ARRAY_WHITE], images, RSE::TEXTURE_LAYERED_2D_ARRAY); for (int i = 0; i < 5; i++) { images.push_back(image); } default_gl_textures[DEFAULT_GL_TEXTURE_CUBEMAP_WHITE] = texture_allocate(); - texture_2d_layered_initialize(default_gl_textures[DEFAULT_GL_TEXTURE_CUBEMAP_WHITE], images, RS::TEXTURE_LAYERED_CUBEMAP); + texture_2d_layered_initialize(default_gl_textures[DEFAULT_GL_TEXTURE_CUBEMAP_WHITE], images, RSE::TEXTURE_LAYERED_CUBEMAP); } { @@ -106,13 +106,13 @@ TextureStorage::TextureStorage() { images.push_back(image); default_gl_textures[DEFAULT_GL_TEXTURE_2D_ARRAY_BLACK] = texture_allocate(); - texture_2d_layered_initialize(default_gl_textures[DEFAULT_GL_TEXTURE_2D_ARRAY_BLACK], images, RS::TEXTURE_LAYERED_2D_ARRAY); + texture_2d_layered_initialize(default_gl_textures[DEFAULT_GL_TEXTURE_2D_ARRAY_BLACK], images, RSE::TEXTURE_LAYERED_2D_ARRAY); for (int i = 0; i < 5; i++) { images.push_back(image); } default_gl_textures[DEFAULT_GL_TEXTURE_CUBEMAP_BLACK] = texture_allocate(); - texture_2d_layered_initialize(default_gl_textures[DEFAULT_GL_TEXTURE_CUBEMAP_BLACK], images, RS::TEXTURE_LAYERED_CUBEMAP); + texture_2d_layered_initialize(default_gl_textures[DEFAULT_GL_TEXTURE_CUBEMAP_BLACK], images, RSE::TEXTURE_LAYERED_CUBEMAP); } { @@ -139,14 +139,14 @@ TextureStorage::TextureStorage() { images.push_back(image); default_gl_textures[DEFAULT_GL_TEXTURE_2D_ARRAY_TRANSPARENT] = texture_allocate(); - texture_2d_layered_initialize(default_gl_textures[DEFAULT_GL_TEXTURE_2D_ARRAY_TRANSPARENT], images, RS::TEXTURE_LAYERED_2D_ARRAY); + texture_2d_layered_initialize(default_gl_textures[DEFAULT_GL_TEXTURE_2D_ARRAY_TRANSPARENT], images, RSE::TEXTURE_LAYERED_2D_ARRAY); for (int i = 0; i < 5; i++) { images.push_back(image); } default_gl_textures[DEFAULT_GL_TEXTURE_CUBEMAP_TRANSPARENT] = texture_allocate(); - texture_2d_layered_initialize(default_gl_textures[DEFAULT_GL_TEXTURE_CUBEMAP_TRANSPARENT], images, RS::TEXTURE_LAYERED_CUBEMAP); + texture_2d_layered_initialize(default_gl_textures[DEFAULT_GL_TEXTURE_CUBEMAP_TRANSPARENT], images, RSE::TEXTURE_LAYERED_CUBEMAP); } { @@ -207,7 +207,7 @@ TextureStorage::TextureStorage() { glBindTexture(GL_TEXTURE_2D, texture.tex_id); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8UI, 4, 4, 0, GL_RGBA_INTEGER, GL_UNSIGNED_BYTE, pixel_data); GLES3::Utilities::get_singleton()->texture_allocated_data(texture.tex_id, 4 * 4 * 4, "Default uint texture"); - texture.gl_set_filter(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST); + texture.gl_set_filter(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST); } { uint16_t pixel_data[4 * 4]; @@ -229,7 +229,7 @@ TextureStorage::TextureStorage() { glBindTexture(GL_TEXTURE_2D, texture.tex_id); glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT16, 4, 4, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, pixel_data); GLES3::Utilities::get_singleton()->texture_allocated_data(texture.tex_id, 4 * 4 * 2, "Default depth texture"); - texture.gl_set_filter(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST); + texture.gl_set_filter(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST); } } @@ -371,8 +371,8 @@ void blit() { glGenVertexArrays(1, &tex_blit_quad_array); glBindVertexArray(tex_blit_quad_array); glBindBuffer(GL_ARRAY_BUFFER, tex_blit_quad); - glVertexAttribPointer(RS::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); - glEnableVertexAttribArray(RS::ARRAY_VERTEX); + glVertexAttribPointer(RSE::ARRAY_VERTEX, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, nullptr); + glEnableVertexAttribArray(RSE::ARRAY_VERTEX); glBindVertexArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); //unbind } @@ -406,18 +406,18 @@ void TextureStorage::canvas_texture_free(RID p_rid) { canvas_texture_owner.free(p_rid); } -void TextureStorage::canvas_texture_set_channel(RID p_canvas_texture, RS::CanvasTextureChannel p_channel, RID p_texture) { +void TextureStorage::canvas_texture_set_channel(RID p_canvas_texture, RSE::CanvasTextureChannel p_channel, RID p_texture) { CanvasTexture *ct = canvas_texture_owner.get_or_null(p_canvas_texture); ERR_FAIL_NULL(ct); switch (p_channel) { - case RS::CANVAS_TEXTURE_CHANNEL_DIFFUSE: { + case RSE::CANVAS_TEXTURE_CHANNEL_DIFFUSE: { ct->diffuse = p_texture; } break; - case RS::CANVAS_TEXTURE_CHANNEL_NORMAL: { + case RSE::CANVAS_TEXTURE_CHANNEL_NORMAL: { ct->normal_map = p_texture; } break; - case RS::CANVAS_TEXTURE_CHANNEL_SPECULAR: { + case RSE::CANVAS_TEXTURE_CHANNEL_SPECULAR: { ct->specular = p_texture; } break; } @@ -433,14 +433,14 @@ void TextureStorage::canvas_texture_set_shading_parameters(RID p_canvas_texture, ct->specular_color.a = p_shininess; } -void TextureStorage::canvas_texture_set_texture_filter(RID p_canvas_texture, RS::CanvasItemTextureFilter p_filter) { +void TextureStorage::canvas_texture_set_texture_filter(RID p_canvas_texture, RSE::CanvasItemTextureFilter p_filter) { CanvasTexture *ct = canvas_texture_owner.get_or_null(p_canvas_texture); ERR_FAIL_NULL(ct); ct->texture_filter = p_filter; } -void TextureStorage::canvas_texture_set_texture_repeat(RID p_canvas_texture, RS::CanvasItemTextureRepeat p_repeat) { +void TextureStorage::canvas_texture_set_texture_repeat(RID p_canvas_texture, RSE::CanvasItemTextureRepeat p_repeat) { CanvasTexture *ct = canvas_texture_owner.get_or_null(p_canvas_texture); ERR_FAIL_NULL(ct); @@ -1097,11 +1097,11 @@ void TextureStorage::texture_external_initialize(RID p_texture, int p_width, int glBindTexture(texture.target, 0); } -void TextureStorage::texture_2d_layered_initialize(RID p_texture, const Vector> &p_layers, RS::TextureLayeredType p_layered_type) { +void TextureStorage::texture_2d_layered_initialize(RID p_texture, const Vector> &p_layers, RSE::TextureLayeredType p_layered_type) { ERR_FAIL_COND(p_layers.is_empty()); - ERR_FAIL_COND(p_layered_type == RS::TEXTURE_LAYERED_CUBEMAP && p_layers.size() != 6); - ERR_FAIL_COND_MSG(p_layered_type == RS::TEXTURE_LAYERED_CUBEMAP_ARRAY, "Cubemap Arrays are not supported in the Compatibility renderer."); + ERR_FAIL_COND(p_layered_type == RSE::TEXTURE_LAYERED_CUBEMAP && p_layers.size() != 6); + ERR_FAIL_COND_MSG(p_layered_type == RSE::TEXTURE_LAYERED_CUBEMAP_ARRAY, "Cubemap Arrays are not supported in the Compatibility renderer."); const Ref &image = p_layers[0]; { @@ -1136,7 +1136,7 @@ void TextureStorage::texture_2d_layered_initialize(RID p_texture, const Vectorget_format(); texture.type = Texture::TYPE_LAYERED; texture.layered_type = p_layered_type; - texture.target = p_layered_type == RS::TEXTURE_LAYERED_CUBEMAP ? GL_TEXTURE_CUBE_MAP : GL_TEXTURE_2D_ARRAY; + texture.target = p_layered_type == RSE::TEXTURE_LAYERED_CUBEMAP ? GL_TEXTURE_CUBE_MAP : GL_TEXTURE_2D_ARRAY; texture.layers = p_layers.size(); _get_gl_image_and_format(Ref(), texture.format, texture.real_format, texture.gl_format_cache, texture.gl_internal_format_cache, texture.gl_type_cache, texture.compressed, false); texture.total_data_size = p_layers[0]->get_image_data_size(texture.width, texture.height, texture.format, texture.mipmaps) * texture.layers; @@ -1202,7 +1202,7 @@ void TextureStorage::texture_proxy_initialize(RID p_texture, RID p_base) { texture_owner.initialize_rid(p_texture, proxy_tex); } -void TextureStorage::texture_drawable_initialize(RID p_texture, int p_width, int p_height, RS::TextureDrawableFormat p_format, const Color &p_color, bool p_with_mipmaps) { +void TextureStorage::texture_drawable_initialize(RID p_texture, int p_width, int p_height, RSE::TextureDrawableFormat p_format, const Color &p_color, bool p_with_mipmaps) { // Behaves identically to Texture_2D_Initialize by generating a white image based on parameters. // GUARDRAIL: Bad Widths/Heights @@ -1211,16 +1211,16 @@ void TextureStorage::texture_drawable_initialize(RID p_texture, int p_width, int Image::Format format; switch (p_format) { - case RS::TEXTURE_DRAWABLE_FORMAT_RGBA8: + case RSE::TEXTURE_DRAWABLE_FORMAT_RGBA8: format = Image::FORMAT_RGBA8; break; - case RS::TEXTURE_DRAWABLE_FORMAT_RGBA8_SRGB: + case RSE::TEXTURE_DRAWABLE_FORMAT_RGBA8_SRGB: format = Image::FORMAT_RGBA8; break; - case RS::TEXTURE_DRAWABLE_FORMAT_RGBAH: + case RSE::TEXTURE_DRAWABLE_FORMAT_RGBAH: format = Image::FORMAT_RGBAH; break; - case RS::TEXTURE_DRAWABLE_FORMAT_RGBAF: + case RSE::TEXTURE_DRAWABLE_FORMAT_RGBAF: format = Image::FORMAT_RGBAF; break; default: @@ -1247,21 +1247,21 @@ void TextureStorage::texture_drawable_initialize(RID p_texture, int p_width, int texture_set_data(p_texture, image); } -RID TextureStorage::texture_create_from_native_handle(RS::TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers, RS::TextureLayeredType p_layered_type) { +RID TextureStorage::texture_create_from_native_handle(RSE::TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers, RSE::TextureLayeredType p_layered_type) { Texture texture; texture.active = true; texture.is_from_native_handle = true; switch (p_type) { - case RS::TEXTURE_TYPE_2D: { + case RSE::TEXTURE_TYPE_2D: { texture.type = Texture::TYPE_2D; texture.target = GL_TEXTURE_2D; } break; - case RS::TEXTURE_TYPE_3D: { + case RSE::TEXTURE_TYPE_3D: { texture.type = Texture::TYPE_3D; texture.target = GL_TEXTURE_3D; } break; - case RS::TEXTURE_TYPE_LAYERED: { + case RSE::TEXTURE_TYPE_LAYERED: { texture.type = Texture::TYPE_LAYERED; texture.target = GL_TEXTURE_2D_ARRAY; } break; @@ -1371,9 +1371,9 @@ void TextureStorage::texture_drawable_blit_rect(const TypedArray &p_texture ERR_FAIL_COND_MSG(p_textures.size() == 0 || p_source_textures.size() == 0, "Blit Rect texture output and source arrays must contain at least 1 texture."); GLES3::MaterialStorage *material_storage = GLES3::MaterialStorage::get_singleton(); - TexBlitMaterialData *m = static_cast(material_storage->material_get_data(p_material, RS::SHADER_TEXTURE_BLIT)); + TexBlitMaterialData *m = static_cast(material_storage->material_get_data(p_material, RSE::SHADER_TEXTURE_BLIT)); if (!m) { - m = static_cast(material_storage->material_get_data(tex_blit_shader.default_material, RS::SHADER_TEXTURE_BLIT)); + m = static_cast(material_storage->material_get_data(tex_blit_shader.default_material, RSE::SHADER_TEXTURE_BLIT)); } // GUARDRAIL: p_material MUST BE ShaderType TextureBlit ERR_FAIL_NULL(m); @@ -1412,7 +1412,7 @@ void TextureStorage::texture_drawable_blit_rect(const TypedArray &p_texture draw_buffers.push_back(GL_COLOR_ATTACHMENT0 + i); ERR_FAIL_COND_MSG(p_to_mipmap >= tar_textures[i]->mipmaps, vformat("Drawable Texture Target does not have mipmap level %d.", p_to_mipmap)); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + i, GL_TEXTURE_2D, tar_textures[i]->tex_id, p_to_mipmap); - convert_to_srgb_mask += tar_textures[i]->drawable_type == RS::TEXTURE_DRAWABLE_FORMAT_RGBA8_SRGB ? srgbMaskArray[i] : 0; + convert_to_srgb_mask += tar_textures[i]->drawable_type == RSE::TEXTURE_DRAWABLE_FORMAT_RGBA8_SRGB ? srgbMaskArray[i] : 0; } // Bind Sources to buffer. Use placeholder Black Texture if source is bad. @@ -1498,8 +1498,8 @@ void TextureStorage::texture_2d_placeholder_initialize(RID p_texture) { texture_2d_initialize(p_texture, texture_2d_placeholder); } -void TextureStorage::texture_2d_layered_placeholder_initialize(RID p_texture, RS::TextureLayeredType p_layered_type) { - if (p_layered_type == RS::TEXTURE_LAYERED_2D_ARRAY) { +void TextureStorage::texture_2d_layered_placeholder_initialize(RID p_texture, RSE::TextureLayeredType p_layered_type) { + if (p_layered_type == RSE::TEXTURE_LAYERED_2D_ARRAY) { texture_2d_layered_initialize(p_texture, texture_2d_array_placeholder, p_layered_type); } else { texture_2d_layered_initialize(p_texture, cubemap_placeholder, p_layered_type); @@ -1922,7 +1922,7 @@ void TextureStorage::texture_debug_usage(List *r_info) { tinfo.width = t->alloc_width; tinfo.height = t->alloc_height; tinfo.bytes = t->total_data_size; - tinfo.type = static_cast(t->type); + tinfo.type = static_cast(t->type); switch (t->type) { case Texture::TYPE_3D: @@ -1960,7 +1960,7 @@ Size2 TextureStorage::texture_size_with_proxy(RID p_texture) { } } -void TextureStorage::texture_rd_initialize(RID p_texture, const RID &p_rd_texture, const RS::TextureLayeredType p_layer_type) { +void TextureStorage::texture_rd_initialize(RID p_texture, const RID &p_rd_texture, const RSE::TextureLayeredType p_layer_type) { } RID TextureStorage::texture_get_rd_texture(RID p_texture, bool p_srgb) const { @@ -2034,12 +2034,12 @@ void TextureStorage::_texture_set_data(RID p_texture, const Ref &p_image, // Set filtering and repeat state to default. if (mipmaps > 1) { - texture->gl_set_filter(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS); + texture->gl_set_filter(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS); } else { - texture->gl_set_filter(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST); + texture->gl_set_filter(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST); } - texture->gl_set_repeat(RS::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED); + texture->gl_set_repeat(RSE::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED); int w = img->get_width(); int h = img->get_height(); @@ -2114,12 +2114,12 @@ void TextureStorage::_texture_set_3d_data(RID p_texture, const Vector // Set filtering and repeat state to default. if (texture->mipmaps > 1) { - texture->gl_set_filter(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS); + texture->gl_set_filter(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS); } else { - texture->gl_set_filter(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST); + texture->gl_set_filter(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST); } - texture->gl_set_repeat(RS::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED); + texture->gl_set_repeat(RSE::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED); Vector> images; images.resize(p_data.size()); @@ -2503,7 +2503,7 @@ void TextureStorage::decal_initialize(RID p_rid) { void TextureStorage::decal_set_size(RID p_decal, const Vector3 &p_size) { } -void TextureStorage::decal_set_texture(RID p_decal, RS::DecalTexture p_type, RID p_texture) { +void TextureStorage::decal_set_texture(RID p_decal, RSE::DecalTexture p_type, RID p_texture) { } void TextureStorage::decal_set_emission_energy(RID p_decal, float p_energy) { @@ -2603,8 +2603,8 @@ void TextureStorage::_update_render_target_color(RenderTarget *rt) { glTexImage2D(texture_target, 0, rt->color_internal_format, rt->size.x, rt->size.y, 0, rt->color_format, rt->color_type, nullptr); } - texture->gl_set_filter(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST); - texture->gl_set_repeat(RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + texture->gl_set_filter(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST); + texture->gl_set_repeat(RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); GLES3::Utilities::get_singleton()->texture_allocated_data(rt->color, rt->size.x * rt->size.y * rt->view_count * rt->color_format_size, "Render target color texture"); } @@ -2853,8 +2853,8 @@ void TextureStorage::_clear_render_target(RenderTarget *rt) { tex->active = false; tex->render_target = nullptr; tex->is_render_target = false; - tex->gl_set_filter(RS::CANVAS_ITEM_TEXTURE_FILTER_MAX); - tex->gl_set_repeat(RS::CANVAS_ITEM_TEXTURE_REPEAT_MAX); + tex->gl_set_filter(RSE::CANVAS_ITEM_TEXTURE_FILTER_MAX); + tex->gl_set_repeat(RSE::CANVAS_ITEM_TEXTURE_REPEAT_MAX); } } else { Texture *tex = get_texture(rt->overridden.color); @@ -3197,7 +3197,7 @@ void TextureStorage::render_target_clear_used(RID p_render_target) { rt->used_in_frame = false; } -void TextureStorage::render_target_set_msaa(RID p_render_target, RS::ViewportMSAA p_msaa) { +void TextureStorage::render_target_set_msaa(RID p_render_target, RSE::ViewportMSAA p_msaa) { RenderTarget *rt = render_target_owner.get_or_null(p_render_target); ERR_FAIL_NULL(rt); ERR_FAIL_COND(rt->direct_to_screen); @@ -3214,9 +3214,9 @@ void TextureStorage::render_target_set_msaa(RID p_render_target, RS::ViewportMSA } } -RS::ViewportMSAA TextureStorage::render_target_get_msaa(RID p_render_target) const { +RSE::ViewportMSAA TextureStorage::render_target_get_msaa(RID p_render_target) const { RenderTarget *rt = render_target_owner.get_or_null(p_render_target); - ERR_FAIL_NULL_V(rt, RS::VIEWPORT_MSAA_DISABLED); + ERR_FAIL_NULL_V(rt, RSE::VIEWPORT_MSAA_DISABLED); return rt->msaa; } @@ -3364,7 +3364,7 @@ bool TextureStorage::render_target_is_reattach_textures(RID p_render_target) con return rt->reattach_textures; } -void TextureStorage::render_target_set_sdf_size_and_scale(RID p_render_target, RS::ViewportSDFOversize p_size, RS::ViewportSDFScale p_scale) { +void TextureStorage::render_target_set_sdf_size_and_scale(RID p_render_target, RSE::ViewportSDFOversize p_size, RSE::ViewportSDFScale p_scale) { RenderTarget *rt = render_target_owner.get_or_null(p_render_target); ERR_FAIL_NULL(rt); if (rt->sdf_oversize == p_size && rt->sdf_scale == p_scale) { @@ -3381,16 +3381,16 @@ Rect2i TextureStorage::_render_target_get_sdf_rect(const RenderTarget *rt) const Size2i margin; int scale; switch (rt->sdf_oversize) { - case RS::VIEWPORT_SDF_OVERSIZE_100_PERCENT: { + case RSE::VIEWPORT_SDF_OVERSIZE_100_PERCENT: { scale = 100; } break; - case RS::VIEWPORT_SDF_OVERSIZE_120_PERCENT: { + case RSE::VIEWPORT_SDF_OVERSIZE_120_PERCENT: { scale = 120; } break; - case RS::VIEWPORT_SDF_OVERSIZE_150_PERCENT: { + case RSE::VIEWPORT_SDF_OVERSIZE_150_PERCENT: { scale = 150; } break; - case RS::VIEWPORT_SDF_OVERSIZE_200_PERCENT: { + case RSE::VIEWPORT_SDF_OVERSIZE_200_PERCENT: { scale = 200; } break; default: { @@ -3463,13 +3463,13 @@ void TextureStorage::_render_target_allocate_sdf(RenderTarget *rt) { int scale; switch (rt->sdf_scale) { - case RS::VIEWPORT_SDF_SCALE_100_PERCENT: { + case RSE::VIEWPORT_SDF_SCALE_100_PERCENT: { scale = 100; } break; - case RS::VIEWPORT_SDF_SCALE_50_PERCENT: { + case RSE::VIEWPORT_SDF_SCALE_50_PERCENT: { scale = 50; } break; - case RS::VIEWPORT_SDF_SCALE_25_PERCENT: { + case RSE::VIEWPORT_SDF_SCALE_25_PERCENT: { scale = 25; } break; default: { @@ -3555,13 +3555,13 @@ void TextureStorage::render_target_sdf_process(RID p_render_target) { bool shrink = false; switch (rt->sdf_scale) { - case RS::VIEWPORT_SDF_SCALE_50_PERCENT: { + case RSE::VIEWPORT_SDF_SCALE_50_PERCENT: { size[0] >>= 1; size[1] >>= 1; shift = 1; shrink = true; } break; - case RS::VIEWPORT_SDF_SCALE_25_PERCENT: { + case RSE::VIEWPORT_SDF_SCALE_25_PERCENT: { size[0] >>= 2; size[1] >>= 2; shift = 2; diff --git a/drivers/gles3/storage/texture_storage.h b/drivers/gles3/storage/texture_storage.h index aaadc953e1..019222b11a 100644 --- a/drivers/gles3/storage/texture_storage.h +++ b/drivers/gles3/storage/texture_storage.h @@ -37,6 +37,8 @@ #include "core/templates/rid_owner.h" #include "drivers/gles3/shaders/canvas_sdf.glsl.gen.h" #include "drivers/gles3/storage/config.h" +#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" #include "servers/rendering/storage/texture_storage.h" #include "platform_gl.h" @@ -145,8 +147,8 @@ struct CanvasTexture { Color specular_color = Color(1, 1, 1, 1); float shininess = 1.0; - RS::CanvasItemTextureFilter texture_filter = RS::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT; - RS::CanvasItemTextureRepeat texture_repeat = RS::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT; + RSE::CanvasItemTextureFilter texture_filter = RSE::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT; + RSE::CanvasItemTextureRepeat texture_repeat = RSE::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT; }; struct RenderTarget; @@ -179,8 +181,8 @@ struct Texture { }; Type type = TYPE_2D; - RS::TextureLayeredType layered_type = RS::TEXTURE_LAYERED_2D_ARRAY; - RS::TextureDrawableFormat drawable_type = RS::TEXTURE_DRAWABLE_FORMAT_RGBA8; + RSE::TextureLayeredType layered_type = RSE::TEXTURE_LAYERED_2D_ARRAY; + RSE::TextureDrawableFormat drawable_type = RSE::TEXTURE_DRAWABLE_FORMAT_RGBA8; GLenum target = GL_TEXTURE_2D; GLenum gl_format_cache = 0; @@ -247,7 +249,7 @@ struct Texture { } // texture state - void gl_set_filter(RS::CanvasItemTextureFilter p_filter) { + void gl_set_filter(RSE::CanvasItemTextureFilter p_filter) { if (p_filter == state_filter) { return; } @@ -258,21 +260,21 @@ struct Texture { GLint max_lod = 0; GLfloat anisotropy = 1.0f; switch (state_filter) { - case RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST: { + case RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST: { pmin = GL_NEAREST; pmag = GL_NEAREST; max_lod = 0; } break; - case RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR: { + case RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR: { pmin = GL_LINEAR; pmag = GL_LINEAR; max_lod = 0; } break; - case RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC: { + case RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC: { anisotropy = config->anisotropic_level; }; [[fallthrough]]; - case RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS: { + case RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS: { pmag = GL_NEAREST; if (mipmaps <= 1) { pmin = GL_NEAREST; @@ -285,11 +287,11 @@ struct Texture { max_lod = mipmaps - 1; } } break; - case RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC: { + case RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC: { anisotropy = config->anisotropic_level; }; [[fallthrough]]; - case RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS: { + case RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS: { pmag = GL_LINEAR; if (mipmaps <= 1) { pmin = GL_LINEAR; @@ -314,20 +316,20 @@ struct Texture { glTexParameterf(target, _GL_TEXTURE_MAX_ANISOTROPY_EXT, anisotropy); } } - void gl_set_repeat(RS::CanvasItemTextureRepeat p_repeat) { + void gl_set_repeat(RSE::CanvasItemTextureRepeat p_repeat) { if (p_repeat == state_repeat) { return; } state_repeat = p_repeat; GLenum prep = GL_CLAMP_TO_EDGE; switch (state_repeat) { - case RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED: { + case RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED: { prep = GL_CLAMP_TO_EDGE; } break; - case RS::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED: { + case RSE::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED: { prep = GL_REPEAT; } break; - case RS::CANVAS_ITEM_TEXTURE_REPEAT_MIRROR: { + case RSE::CANVAS_ITEM_TEXTURE_REPEAT_MIRROR: { prep = GL_MIRRORED_REPEAT; } break; default: { @@ -340,8 +342,8 @@ struct Texture { } private: - RS::CanvasItemTextureFilter state_filter = RS::CANVAS_ITEM_TEXTURE_FILTER_MAX; - RS::CanvasItemTextureRepeat state_repeat = RS::CANVAS_ITEM_TEXTURE_REPEAT_MAX; + RSE::CanvasItemTextureFilter state_filter = RSE::CANVAS_ITEM_TEXTURE_FILTER_MAX; + RSE::CanvasItemTextureRepeat state_repeat = RSE::CANVAS_ITEM_TEXTURE_REPEAT_MAX; }; struct RenderTarget { @@ -371,8 +373,8 @@ struct RenderTarget { GLuint sdf_texture_write_fb = 0; GLuint sdf_texture_process[2] = { 0, 0 }; GLuint sdf_texture_read = 0; - RS::ViewportSDFOversize sdf_oversize = RS::VIEWPORT_SDF_OVERSIZE_120_PERCENT; - RS::ViewportSDFScale sdf_scale = RS::VIEWPORT_SDF_SCALE_50_PERCENT; + RSE::ViewportSDFOversize sdf_oversize = RSE::VIEWPORT_SDF_OVERSIZE_120_PERCENT; + RSE::ViewportSDFScale sdf_scale = RSE::VIEWPORT_SDF_SCALE_50_PERCENT; Size2i process_size; bool sdf_enabled = false; @@ -380,7 +382,7 @@ struct RenderTarget { bool direct_to_screen = false; bool used_in_frame = false; - RS::ViewportMSAA msaa = RS::VIEWPORT_MSAA_DISABLED; + RSE::ViewportMSAA msaa = RSE::VIEWPORT_MSAA_DISABLED; bool reattach_textures = false; Rect2i render_region; @@ -521,11 +523,11 @@ public: virtual void canvas_texture_initialize(RID p_rid) override; virtual void canvas_texture_free(RID p_rid) override; - virtual void canvas_texture_set_channel(RID p_canvas_texture, RS::CanvasTextureChannel p_channel, RID p_texture) override; + virtual void canvas_texture_set_channel(RID p_canvas_texture, RSE::CanvasTextureChannel p_channel, RID p_texture) override; virtual void canvas_texture_set_shading_parameters(RID p_canvas_texture, const Color &p_base_color, float p_shininess) override; - virtual void canvas_texture_set_texture_filter(RID p_item, RS::CanvasItemTextureFilter p_filter) override; - virtual void canvas_texture_set_texture_repeat(RID p_item, RS::CanvasItemTextureRepeat p_repeat) override; + virtual void canvas_texture_set_texture_filter(RID p_item, RSE::CanvasItemTextureFilter p_filter) override; + virtual void canvas_texture_set_texture_repeat(RID p_item, RSE::CanvasItemTextureRepeat p_repeat) override; /* Texture API */ @@ -546,13 +548,13 @@ public: virtual void texture_free(RID p_rid) override; virtual void texture_2d_initialize(RID p_texture, const Ref &p_image) override; - virtual void texture_2d_layered_initialize(RID p_texture, const Vector> &p_layers, RS::TextureLayeredType p_layered_type) override; + virtual void texture_2d_layered_initialize(RID p_texture, const Vector> &p_layers, RSE::TextureLayeredType p_layered_type) override; virtual void texture_3d_initialize(RID p_texture, Image::Format, int p_width, int p_height, int p_depth, bool p_mipmaps, const Vector> &p_data) override; virtual void texture_external_initialize(RID p_texture, int p_width, int p_height, uint64_t p_external_buffer) override; virtual void texture_proxy_initialize(RID p_texture, RID p_base) override; //all slices, then all the mipmaps, must be coherent - virtual void texture_drawable_initialize(RID p_texture, int p_width, int p_height, RS::TextureDrawableFormat p_format, const Color &p_color, bool p_with_mipmaps) override; + virtual void texture_drawable_initialize(RID p_texture, int p_width, int p_height, RSE::TextureDrawableFormat p_format, const Color &p_color, bool p_with_mipmaps) override; - virtual RID texture_create_from_native_handle(RS::TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers = 1, RS::TextureLayeredType p_layered_type = RS::TEXTURE_LAYERED_2D_ARRAY) override; + virtual RID texture_create_from_native_handle(RSE::TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers = 1, RSE::TextureLayeredType p_layered_type = RSE::TEXTURE_LAYERED_2D_ARRAY) override; virtual void texture_2d_update(RID p_texture, const Ref &p_image, int p_layer = 0) override; virtual void texture_3d_update(RID p_texture, const Vector> &p_data) override; @@ -569,7 +571,7 @@ public: //these two APIs can be used together or in combination with the others. virtual void texture_2d_placeholder_initialize(RID p_texture) override; - virtual void texture_2d_layered_placeholder_initialize(RID p_texture, RenderingServer::TextureLayeredType p_layered_type) override; + virtual void texture_2d_layered_placeholder_initialize(RID p_texture, RSE::TextureLayeredType p_layered_type) override; virtual void texture_3d_placeholder_initialize(RID p_texture) override; virtual Ref texture_2d_get(RID p_texture) const override; @@ -596,7 +598,7 @@ public: virtual Size2 texture_size_with_proxy(RID p_proxy) override; - virtual void texture_rd_initialize(RID p_texture, const RID &p_rd_texture, const RS::TextureLayeredType p_layer_type = RS::TEXTURE_LAYERED_2D_ARRAY) override; + virtual void texture_rd_initialize(RID p_texture, const RID &p_rd_texture, const RSE::TextureLayeredType p_layer_type = RSE::TEXTURE_LAYERED_2D_ARRAY) override; virtual RID texture_get_rd_texture(RID p_texture, bool p_srgb = false) const override; virtual uint64_t texture_get_native_handle(RID p_texture, bool p_srgb = false) const override; @@ -635,7 +637,7 @@ public: virtual void decal_free(RID p_rid) override {} virtual void decal_set_size(RID p_decal, const Vector3 &p_size) override; - virtual void decal_set_texture(RID p_decal, RS::DecalTexture p_type, RID p_texture) override; + virtual void decal_set_texture(RID p_decal, RSE::DecalTexture p_type, RID p_texture) override; virtual void decal_set_emission_energy(RID p_decal, float p_energy) override; virtual void decal_set_albedo_mix(RID p_decal, float p_mix) override; virtual void decal_set_modulate(RID p_decal, const Color &p_modulate) override; @@ -677,8 +679,8 @@ public: virtual bool render_target_get_direct_to_screen(RID p_render_target) const override; virtual bool render_target_was_used(RID p_render_target) const override; void render_target_clear_used(RID p_render_target); - virtual void render_target_set_msaa(RID p_render_target, RS::ViewportMSAA p_msaa) override; - virtual RS::ViewportMSAA render_target_get_msaa(RID p_render_target) const override; + virtual void render_target_set_msaa(RID p_render_target, RSE::ViewportMSAA p_msaa) override; + virtual RSE::ViewportMSAA render_target_get_msaa(RID p_render_target) const override; virtual void render_target_set_msaa_needs_resolve(RID p_render_target, bool p_needs_resolve) override {} virtual bool render_target_get_msaa_needs_resolve(RID p_render_target) const override { return false; } virtual void render_target_do_msaa_resolve(RID p_render_target) override {} @@ -710,7 +712,7 @@ public: void render_target_set_reattach_textures(RID p_render_target, bool p_reattach_textures) const; bool render_target_is_reattach_textures(RID p_render_target) const; - virtual void render_target_set_sdf_size_and_scale(RID p_render_target, RS::ViewportSDFOversize p_size, RS::ViewportSDFScale p_scale) override; + virtual void render_target_set_sdf_size_and_scale(RID p_render_target, RSE::ViewportSDFOversize p_size, RSE::ViewportSDFScale p_scale) override; virtual Rect2i render_target_get_sdf_rect(RID p_render_target) const override; GLuint render_target_get_sdf_texture(RID p_render_target); GLuint render_target_get_sdf_framebuffer(RID p_render_target); @@ -722,10 +724,10 @@ public: void render_target_clear_back_buffer(RID p_render_target, const Rect2i &p_region, const Color &p_color); void render_target_gen_back_buffer_mipmaps(RID p_render_target, const Rect2i &p_region); - virtual void render_target_set_vrs_mode(RID p_render_target, RS::ViewportVRSMode p_mode) override {} - virtual RS::ViewportVRSMode render_target_get_vrs_mode(RID p_render_target) const override { return RS::VIEWPORT_VRS_DISABLED; } - virtual void render_target_set_vrs_update_mode(RID p_render_target, RS::ViewportVRSUpdateMode p_mode) override {} - virtual RS::ViewportVRSUpdateMode render_target_get_vrs_update_mode(RID p_render_target) const override { return RS::VIEWPORT_VRS_UPDATE_DISABLED; } + virtual void render_target_set_vrs_mode(RID p_render_target, RSE::ViewportVRSMode p_mode) override {} + virtual RSE::ViewportVRSMode render_target_get_vrs_mode(RID p_render_target) const override { return RSE::VIEWPORT_VRS_DISABLED; } + virtual void render_target_set_vrs_update_mode(RID p_render_target, RSE::ViewportVRSUpdateMode p_mode) override {} + virtual RSE::ViewportVRSUpdateMode render_target_get_vrs_update_mode(RID p_render_target) const override { return RSE::VIEWPORT_VRS_UPDATE_DISABLED; } virtual void render_target_set_vrs_texture(RID p_render_target, RID p_texture) override {} virtual RID render_target_get_vrs_texture(RID p_render_target) const override { return RID(); } diff --git a/drivers/gles3/storage/utilities.cpp b/drivers/gles3/storage/utilities.cpp index 4da43004fb..dd66861dd5 100644 --- a/drivers/gles3/storage/utilities.cpp +++ b/drivers/gles3/storage/utilities.cpp @@ -145,25 +145,25 @@ Vector Utilities::buffer_get_data(GLenum p_target, GLuint p_buffer, uin /* INSTANCES */ -RS::InstanceType Utilities::get_base_type(RID p_rid) const { +RSE::InstanceType Utilities::get_base_type(RID p_rid) const { if (GLES3::MeshStorage::get_singleton()->owns_mesh(p_rid)) { - return RS::INSTANCE_MESH; + return RSE::INSTANCE_MESH; } else if (GLES3::MeshStorage::get_singleton()->owns_multimesh(p_rid)) { - return RS::INSTANCE_MULTIMESH; + return RSE::INSTANCE_MULTIMESH; } else if (GLES3::LightStorage::get_singleton()->owns_light(p_rid)) { - return RS::INSTANCE_LIGHT; + return RSE::INSTANCE_LIGHT; } else if (GLES3::LightStorage::get_singleton()->owns_lightmap(p_rid)) { - return RS::INSTANCE_LIGHTMAP; + return RSE::INSTANCE_LIGHTMAP; } else if (GLES3::ParticlesStorage::get_singleton()->owns_particles(p_rid)) { - return RS::INSTANCE_PARTICLES; + return RSE::INSTANCE_PARTICLES; } else if (GLES3::LightStorage::get_singleton()->owns_reflection_probe(p_rid)) { - return RS::INSTANCE_REFLECTION_PROBE; + return RSE::INSTANCE_REFLECTION_PROBE; } else if (GLES3::ParticlesStorage::get_singleton()->owns_particles_collision(p_rid)) { - return RS::INSTANCE_PARTICLES_COLLISION; + return RSE::INSTANCE_PARTICLES_COLLISION; } else if (owns_visibility_notifier(p_rid)) { - return RS::INSTANCE_VISIBLITY_NOTIFIER; + return RSE::INSTANCE_VISIBLITY_NOTIFIER; } - return RS::INSTANCE_NONE; + return RSE::INSTANCE_NONE; } bool Utilities::free(RID p_rid) { @@ -431,12 +431,12 @@ bool Utilities::has_os_feature(const String &p_feature) const { void Utilities::update_memory_info() { } -uint64_t Utilities::get_rendering_info(RS::RenderingInfo p_info) { - if (p_info == RS::RENDERING_INFO_TEXTURE_MEM_USED) { +uint64_t Utilities::get_rendering_info(RSE::RenderingInfo p_info) { + if (p_info == RSE::RENDERING_INFO_TEXTURE_MEM_USED) { return texture_mem_cache + render_buffer_mem_cache; // Add render buffer memory to our texture mem. - } else if (p_info == RS::RENDERING_INFO_BUFFER_MEM_USED) { + } else if (p_info == RSE::RENDERING_INFO_BUFFER_MEM_USED) { return buffer_mem_cache; - } else if (p_info == RS::RENDERING_INFO_VIDEO_MEM_USED) { + } else if (p_info == RSE::RENDERING_INFO_VIDEO_MEM_USED) { return texture_mem_cache + buffer_mem_cache + render_buffer_mem_cache; } return 0; diff --git a/drivers/gles3/storage/utilities.h b/drivers/gles3/storage/utilities.h index 09aa6e31d0..06b92e61cf 100644 --- a/drivers/gles3/storage/utilities.h +++ b/drivers/gles3/storage/utilities.h @@ -33,7 +33,6 @@ #ifdef GLES3_ENABLED #include "core/templates/rid_owner.h" - #include "servers/rendering/storage/utilities.h" #include "platform_gl.h" @@ -157,7 +156,7 @@ public: /* INSTANCES */ - virtual RS::InstanceType get_base_type(RID p_rid) const override; + virtual RSE::InstanceType get_base_type(RID p_rid) const override; virtual bool free(RID p_rid) override; /* DEPENDENCIES */ @@ -220,7 +219,7 @@ public: virtual void update_memory_info() override; - virtual uint64_t get_rendering_info(RS::RenderingInfo p_info) override; + virtual uint64_t get_rendering_info(RSE::RenderingInfo p_info) override; virtual String get_video_adapter_name() const override; virtual String get_video_adapter_vendor() const override; virtual RenderingDeviceEnums::DeviceType get_video_adapter_type() const override; diff --git a/editor/animation/animation_player_editor_plugin.cpp b/editor/animation/animation_player_editor_plugin.cpp index 36722a5892..710083583a 100644 --- a/editor/animation/animation_player_editor_plugin.cpp +++ b/editor/animation/animation_player_editor_plugin.cpp @@ -1727,7 +1727,7 @@ void AnimationPlayerEditor::_allocate_onion_layers() { onion.captures[i] = RS::get_singleton()->viewport_create(); RS::get_singleton()->viewport_set_size(onion.captures[i], capture_size.width, capture_size.height); - RS::get_singleton()->viewport_set_update_mode(onion.captures[i], RS::VIEWPORT_UPDATE_ALWAYS); + RS::get_singleton()->viewport_set_update_mode(onion.captures[i], RSE::VIEWPORT_UPDATE_ALWAYS); RS::get_singleton()->viewport_set_transparent_background(onion.captures[i], !is_present); RS::get_singleton()->viewport_attach_canvas(onion.captures[i], onion.capture.canvas); } @@ -1828,7 +1828,7 @@ void AnimationPlayerEditor::_prepare_onion_layers_2_prolog() { RID root_vp = get_tree()->get_root()->get_viewport_rid(); onion.temp.screen_rect = Rect2(Vector2(), DisplayServer::get_singleton()->window_get_size(DisplayServer::MAIN_WINDOW_ID)); RS::get_singleton()->viewport_attach_to_screen(root_vp, Rect2(), DisplayServer::INVALID_WINDOW_ID); - RS::get_singleton()->viewport_set_update_mode(root_vp, RS::VIEWPORT_UPDATE_ALWAYS); + RS::get_singleton()->viewport_set_update_mode(root_vp, RSE::VIEWPORT_UPDATE_ALWAYS); RID present_rid; if (onion.differences_only) { @@ -1914,7 +1914,7 @@ void AnimationPlayerEditor::_prepare_onion_layers_2_epilog() { RID root_vp = get_tree()->get_root()->get_viewport_rid(); RS::get_singleton()->viewport_set_parent_viewport(root_vp, RID()); RS::get_singleton()->viewport_attach_to_screen(root_vp, onion.temp.screen_rect, DisplayServer::MAIN_WINDOW_ID); - RS::get_singleton()->viewport_set_update_mode(root_vp, RS::VIEWPORT_UPDATE_WHEN_VISIBLE); + RS::get_singleton()->viewport_set_update_mode(root_vp, RSE::VIEWPORT_UPDATE_WHEN_VISIBLE); // Restore animation state. // Here we're combine the power of seeking back to the original position and diff --git a/editor/animation/animation_track_editor_plugins.cpp b/editor/animation/animation_track_editor_plugins.cpp index de6874227b..bc26a9a392 100644 --- a/editor/animation/animation_track_editor_plugins.cpp +++ b/editor/animation/animation_track_editor_plugins.cpp @@ -40,6 +40,7 @@ #include "scene/3d/sprite_3d.h" #include "scene/animation/animation_player.h" #include "servers/audio/audio_stream.h" +#include "servers/rendering/rendering_server.h" /// BOOL /// int AnimationTrackEditBool::get_key_height() const { diff --git a/editor/audio/audio_stream_editor_plugin.cpp b/editor/audio/audio_stream_editor_plugin.cpp index fe24922dac..93b666f67d 100644 --- a/editor/audio/audio_stream_editor_plugin.cpp +++ b/editor/audio/audio_stream_editor_plugin.cpp @@ -35,6 +35,7 @@ #include "editor/settings/editor_settings.h" #include "editor/themes/editor_scale.h" #include "scene/resources/audio_stream_wav.h" +#include "servers/rendering/rendering_server.h" // AudioStreamEditor diff --git a/editor/editor_interface.cpp b/editor/editor_interface.cpp index 7bc5f4ce67..4d8adf1b57 100644 --- a/editor/editor_interface.cpp +++ b/editor/editor_interface.cpp @@ -61,6 +61,7 @@ #include "scene/main/window.h" #include "scene/resources/packed_scene.h" #include "scene/resources/theme.h" +#include "servers/rendering/rendering_server.h" EditorInterface *EditorInterface::singleton = nullptr; @@ -148,7 +149,7 @@ Vector> EditorInterface::make_mesh_previews(const Vectorscenario_create(); RID viewport = RS::get_singleton()->viewport_create(); - RS::get_singleton()->viewport_set_update_mode(viewport, RS::VIEWPORT_UPDATE_ALWAYS); + RS::get_singleton()->viewport_set_update_mode(viewport, RSE::VIEWPORT_UPDATE_ALWAYS); RS::get_singleton()->viewport_set_scenario(viewport, scenario); RS::get_singleton()->viewport_set_size(viewport, size, size); RS::get_singleton()->viewport_set_transparent_background(viewport, true); diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index f1683a2752..92d2173bd0 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -488,18 +488,18 @@ void EditorNode::_update_from_settings() { scene_root->propagate_notification(Control::NOTIFICATION_LAYOUT_DIRECTION_CHANGED); } - RS::DOFBokehShape dof_shape = RS::DOFBokehShape(int(GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_bokeh_shape"))); + RSE::DOFBokehShape dof_shape = RSE::DOFBokehShape(int(GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_bokeh_shape"))); RS::get_singleton()->camera_attributes_set_dof_blur_bokeh_shape(dof_shape); - RS::DOFBlurQuality dof_quality = RS::DOFBlurQuality(int(GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_bokeh_quality"))); + RSE::DOFBlurQuality dof_quality = RSE::DOFBlurQuality(int(GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_bokeh_quality"))); bool dof_jitter = GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_use_jitter"); RS::get_singleton()->camera_attributes_set_dof_blur_quality(dof_quality, dof_jitter); - RS::get_singleton()->environment_set_ssao_quality(RS::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/environment/ssao/quality"))), GLOBAL_GET("rendering/environment/ssao/half_size"), GLOBAL_GET("rendering/environment/ssao/adaptive_target"), GLOBAL_GET("rendering/environment/ssao/blur_passes"), GLOBAL_GET("rendering/environment/ssao/fadeout_from"), GLOBAL_GET("rendering/environment/ssao/fadeout_to")); + RS::get_singleton()->environment_set_ssao_quality(RSE::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/environment/ssao/quality"))), GLOBAL_GET("rendering/environment/ssao/half_size"), GLOBAL_GET("rendering/environment/ssao/adaptive_target"), GLOBAL_GET("rendering/environment/ssao/blur_passes"), GLOBAL_GET("rendering/environment/ssao/fadeout_from"), GLOBAL_GET("rendering/environment/ssao/fadeout_to")); RS::get_singleton()->screen_space_roughness_limiter_set_active(GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/enabled"), GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/amount"), GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/limit")); bool glow_bicubic = int(GLOBAL_GET("rendering/environment/glow/upscale_mode")) > 0; - RS::get_singleton()->environment_set_ssil_quality(RS::EnvironmentSSILQuality(int(GLOBAL_GET("rendering/environment/ssil/quality"))), GLOBAL_GET("rendering/environment/ssil/half_size"), GLOBAL_GET("rendering/environment/ssil/adaptive_target"), GLOBAL_GET("rendering/environment/ssil/blur_passes"), GLOBAL_GET("rendering/environment/ssil/fadeout_from"), GLOBAL_GET("rendering/environment/ssil/fadeout_to")); + RS::get_singleton()->environment_set_ssil_quality(RSE::EnvironmentSSILQuality(int(GLOBAL_GET("rendering/environment/ssil/quality"))), GLOBAL_GET("rendering/environment/ssil/half_size"), GLOBAL_GET("rendering/environment/ssil/adaptive_target"), GLOBAL_GET("rendering/environment/ssil/blur_passes"), GLOBAL_GET("rendering/environment/ssil/fadeout_from"), GLOBAL_GET("rendering/environment/ssil/fadeout_to")); RS::get_singleton()->environment_glow_set_use_bicubic_upscale(glow_bicubic); RS::get_singleton()->environment_set_ssr_half_size(GLOBAL_GET("rendering/environment/screen_space_reflection/half_size")); - RS::SubSurfaceScatteringQuality sss_quality = RS::SubSurfaceScatteringQuality(int(GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_quality"))); + RSE::SubSurfaceScatteringQuality sss_quality = RSE::SubSurfaceScatteringQuality(int(GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_quality"))); RS::get_singleton()->sub_surface_scattering_set_quality(sss_quality); float sss_scale = GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_scale"); float sss_depth_scale = GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale"); @@ -509,17 +509,17 @@ void EditorNode::_update_from_settings() { uint32_t directional_shadow_16_bits = GLOBAL_GET("rendering/lights_and_shadows/directional_shadow/16_bits"); RS::get_singleton()->directional_shadow_atlas_set_size(directional_shadow_size, directional_shadow_16_bits); - RS::ShadowQuality shadows_quality = RS::ShadowQuality(int(GLOBAL_GET("rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality"))); + RSE::ShadowQuality shadows_quality = RSE::ShadowQuality(int(GLOBAL_GET("rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality"))); RS::get_singleton()->positional_soft_shadow_filter_set_quality(shadows_quality); - RS::ShadowQuality directional_shadow_quality = RS::ShadowQuality(int(GLOBAL_GET("rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality"))); + RSE::ShadowQuality directional_shadow_quality = RSE::ShadowQuality(int(GLOBAL_GET("rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality"))); RS::get_singleton()->directional_soft_shadow_filter_set_quality(directional_shadow_quality); float probe_update_speed = GLOBAL_GET("rendering/lightmapping/probe_capture/update_speed"); RS::get_singleton()->lightmap_set_probe_capture_update_speed(probe_update_speed); - RS::EnvironmentSDFGIFramesToConverge frames_to_converge = RS::EnvironmentSDFGIFramesToConverge(int(GLOBAL_GET("rendering/global_illumination/sdfgi/frames_to_converge"))); + RSE::EnvironmentSDFGIFramesToConverge frames_to_converge = RSE::EnvironmentSDFGIFramesToConverge(int(GLOBAL_GET("rendering/global_illumination/sdfgi/frames_to_converge"))); RS::get_singleton()->environment_set_sdfgi_frames_to_converge(frames_to_converge); - RS::EnvironmentSDFGIRayCount ray_count = RS::EnvironmentSDFGIRayCount(int(GLOBAL_GET("rendering/global_illumination/sdfgi/probe_ray_count"))); + RSE::EnvironmentSDFGIRayCount ray_count = RSE::EnvironmentSDFGIRayCount(int(GLOBAL_GET("rendering/global_illumination/sdfgi/probe_ray_count"))); RS::get_singleton()->environment_set_sdfgi_ray_count(ray_count); - RS::VoxelGIQuality voxel_gi_quality = RS::VoxelGIQuality(int(GLOBAL_GET("rendering/global_illumination/voxel_gi/quality"))); + RSE::VoxelGIQuality voxel_gi_quality = RSE::VoxelGIQuality(int(GLOBAL_GET("rendering/global_illumination/voxel_gi/quality"))); RS::get_singleton()->voxel_gi_set_quality(voxel_gi_quality); RS::get_singleton()->environment_set_volumetric_fog_volume_size(GLOBAL_GET("rendering/environment/volumetric_fog/volume_size"), GLOBAL_GET("rendering/environment/volumetric_fog/volume_depth")); RS::get_singleton()->environment_set_volumetric_fog_filter_active(bool(GLOBAL_GET("rendering/environment/volumetric_fog/use_filter"))); @@ -561,8 +561,8 @@ void EditorNode::_update_from_settings() { float mesh_lod_threshold = GLOBAL_GET("rendering/mesh_lod/lod_change/threshold_pixels"); scene_root->set_mesh_lod_threshold(mesh_lod_threshold); - RS::get_singleton()->decals_set_filter(RS::DecalFilter(int(GLOBAL_GET("rendering/textures/decals/filter")))); - RS::get_singleton()->light_projectors_set_filter(RS::LightProjectorFilter(int(GLOBAL_GET("rendering/textures/light_projectors/filter")))); + RS::get_singleton()->decals_set_filter(RSE::DecalFilter(int(GLOBAL_GET("rendering/textures/decals/filter")))); + RS::get_singleton()->light_projectors_set_filter(RSE::LightProjectorFilter(int(GLOBAL_GET("rendering/textures/light_projectors/filter")))); RS::get_singleton()->lightmaps_set_bicubic_filter(GLOBAL_GET("rendering/lightmapping/lightmap_gi/use_bicubic_filter")); RS::get_singleton()->material_set_use_debanding(GLOBAL_GET("rendering/anti_aliasing/quality/use_debanding")); @@ -982,7 +982,7 @@ void EditorNode::_notification(int p_what) { default_layout->set_value("docks", "dock_9", String(",").join(bottom_docks)); RenderingServer::get_singleton()->viewport_set_disable_2d(get_scene_root()->get_viewport_rid(), true); - RenderingServer::get_singleton()->viewport_set_environment_mode(get_viewport()->get_viewport_rid(), RenderingServer::VIEWPORT_ENVIRONMENT_DISABLED); + RenderingServer::get_singleton()->viewport_set_environment_mode(get_viewport()->get_viewport_rid(), RSE::VIEWPORT_ENVIRONMENT_DISABLED); DisplayServer::get_singleton()->screen_set_keep_on(EDITOR_GET("interface/editor/keep_screen_on")); feature_profile_manager->notify_changed(); diff --git a/editor/gui/progress_dialog.cpp b/editor/gui/progress_dialog.cpp index ecc34fb058..490e0c1f4e 100644 --- a/editor/gui/progress_dialog.cpp +++ b/editor/gui/progress_dialog.cpp @@ -38,6 +38,7 @@ #include "scene/gui/panel_container.h" #include "scene/main/window.h" #include "servers/display/display_server.h" +#include "servers/rendering/rendering_server.h" void BackgroundProgress::_add_task(const String &p_task, const String &p_label, int p_steps) { _THREAD_SAFE_METHOD_ @@ -286,7 +287,7 @@ ProgressDialog::ProgressDialog() { // We want to cover the entire screen to prevent the user from interacting with the Editor. set_anchors_and_offsets_preset(Control::PRESET_FULL_RECT); // Be sure it's the top most component. - set_z_index(RS::CANVAS_ITEM_Z_MAX); + set_z_index(RSE::CANVAS_ITEM_Z_MAX); singleton = this; hide(); diff --git a/editor/import/3d/editor_import_collada.cpp b/editor/import/3d/editor_import_collada.cpp index c38b4814b4..efb214f006 100644 --- a/editor/import/3d/editor_import_collada.cpp +++ b/editor/import/3d/editor_import_collada.cpp @@ -920,7 +920,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize, Ref &p uint64_t mesh_flags = 0; if (p_use_compression) { - mesh_flags = RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES; + mesh_flags = RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES; } // We can't generate tangents without UVs, so create dummy tangents. @@ -958,10 +958,10 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize, Ref &p if (has_weights) { Vector weights; Vector bones; - weights.resize(RS::ARRAY_WEIGHTS_SIZE); - bones.resize(RS::ARRAY_WEIGHTS_SIZE); + weights.resize(RSE::ARRAY_WEIGHTS_SIZE); + bones.resize(RSE::ARRAY_WEIGHTS_SIZE); //float sum=0.0; - for (int l = 0; l < RS::ARRAY_WEIGHTS_SIZE; l++) { + for (int l = 0; l < RSE::ARRAY_WEIGHTS_SIZE; l++) { if (l < vertex_array[k].weights.size()) { weights.write[l] = vertex_array[k].weights[l].weight; bones.write[l] = vertex_array[k].weights[l].bone_idx; @@ -1005,7 +1005,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize, Ref &p if (p_mesh->get_blend_shape_count() != 0 || p_skin_controller || is_mesh_2d) { // Can't compress if attributes missing or if using vertex weights. - mesh_flags &= ~RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES; + mesh_flags &= ~RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES; } //////////////////////////// @@ -1013,9 +1013,9 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize, Ref &p //////////////////////////// Array d = surftool->commit_to_arrays(); - d.resize(RS::ARRAY_MAX); + d.resize(RSE::ARRAY_MAX); - if (mesh_flags & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES && (generate_dummy_tangents || generate_tangents)) { + if (mesh_flags & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES && (generate_dummy_tangents || generate_tangents)) { // Compression is enabled, so let's validate that the normals and tangents are correct. Vector normals = d[Mesh::ARRAY_NORMAL]; Vector tangents = d[Mesh::ARRAY_TANGENT]; @@ -1023,7 +1023,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize, Ref &p Vector3 tan = Vector3(tangents[vert * 4 + 0], tangents[vert * 4 + 1], tangents[vert * 4 + 2]); if (std::abs(tan.dot(normals[vert])) > 0.0001) { // Tangent is not perpendicular to the normal, so we can't use compression. - mesh_flags &= ~RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES; + mesh_flags &= ~RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES; } } } diff --git a/editor/import/3d/resource_importer_obj.cpp b/editor/import/3d/resource_importer_obj.cpp index 5abd00d694..c8f3a34dc9 100644 --- a/editor/import/3d/resource_importer_obj.cpp +++ b/editor/import/3d/resource_importer_obj.cpp @@ -399,7 +399,7 @@ static Error _parse_obj(const String &p_path, List> &r_meshes, } } } else if (/*l.begins_with("g ") ||*/ l.begins_with("usemtl ") || (l.begins_with("o ") || f->eof_reached())) { //commit group to mesh - uint64_t mesh_flags = RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES; + uint64_t mesh_flags = RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES; if (p_disable_compression) { mesh_flags = 0; @@ -445,7 +445,7 @@ static Error _parse_obj(const String &p_path, List> &r_meshes, Array array = surf_tool->commit_to_arrays(); - if (mesh_flags & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES && generate_tangents && uses_uvs) { + if (mesh_flags & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES && generate_tangents && uses_uvs) { // Compression is enabled, so let's validate that the normals and generated tangents are correct. Vector norms = array[Mesh::ARRAY_NORMAL]; Vector tangents = array[Mesh::ARRAY_TANGENT]; @@ -454,7 +454,7 @@ static Error _parse_obj(const String &p_path, List> &r_meshes, Vector3 tan = Vector3(tangents[vert * 4 + 0], tangents[vert * 4 + 1], tangents[vert * 4 + 2]); if (std::abs(tan.dot(norms[vert])) > 0.0001) { // Tangent is not perpendicular to the normal, so we can't use compression. - mesh_flags &= ~RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES; + mesh_flags &= ~RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES; } } } diff --git a/editor/import/audio_stream_import_settings.cpp b/editor/import/audio_stream_import_settings.cpp index f70147423d..0bc3a976c5 100644 --- a/editor/import/audio_stream_import_settings.cpp +++ b/editor/import/audio_stream_import_settings.cpp @@ -35,6 +35,7 @@ #include "editor/file_system/editor_file_system.h" #include "editor/themes/editor_scale.h" #include "scene/gui/check_box.h" +#include "servers/rendering/rendering_server.h" AudioStreamImportSettingsDialog *AudioStreamImportSettingsDialog::singleton = nullptr; diff --git a/editor/import/resource_importer_texture.cpp b/editor/import/resource_importer_texture.cpp index db2d760e17..d103d238be 100644 --- a/editor/import/resource_importer_texture.cpp +++ b/editor/import/resource_importer_texture.cpp @@ -42,7 +42,7 @@ #include "editor/themes/editor_theme_manager.h" #include "scene/resources/compressed_texture.h" -void ResourceImporterTexture::_texture_reimport_roughness(const Ref &p_tex, const String &p_normal_path, RS::TextureDetectRoughnessChannel p_channel) { +void ResourceImporterTexture::_texture_reimport_roughness(const Ref &p_tex, const String &p_normal_path, RSE::TextureDetectRoughnessChannel p_channel) { ERR_FAIL_COND(p_tex.is_null()); MutexLock lock(singleton->mutex); diff --git a/editor/import/resource_importer_texture.h b/editor/import/resource_importer_texture.h index bca73dbb28..0408392085 100644 --- a/editor/import/resource_importer_texture.h +++ b/editor/import/resource_importer_texture.h @@ -33,7 +33,7 @@ #include "core/io/file_access.h" #include "core/io/image.h" #include "core/io/resource_importer.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class CompressedTexture2D; @@ -74,12 +74,12 @@ protected: struct MakeInfo { int flags = 0; String normal_path_for_roughness; - RS::TextureDetectRoughnessChannel channel_for_roughness = RS::TEXTURE_DETECT_ROUGHNESS_R; + RSE::TextureDetectRoughnessChannel channel_for_roughness = RSE::TEXTURE_DETECT_ROUGHNESS_R; }; HashMap make_flags; - static void _texture_reimport_roughness(const Ref &p_tex, const String &p_normal_path, RenderingServer::TextureDetectRoughnessChannel p_channel); + static void _texture_reimport_roughness(const Ref &p_tex, const String &p_normal_path, RSE::TextureDetectRoughnessChannel p_channel); static void _texture_reimport_3d(const Ref &p_tex); static void _texture_reimport_normal(const Ref &p_tex); diff --git a/editor/inspector/editor_inspector.cpp b/editor/inspector/editor_inspector.cpp index 6d77338f25..34f578efbe 100644 --- a/editor/inspector/editor_inspector.cpp +++ b/editor/inspector/editor_inspector.cpp @@ -59,6 +59,7 @@ #include "scene/resources/packed_scene.h" #include "scene/resources/style_box_flat.h" #include "scene/scene_string_names.h" +#include "servers/rendering/rendering_server.h" void EditorInspectorActionButton::_notification(int p_what) { switch (p_what) { diff --git a/editor/inspector/editor_preview_plugins.cpp b/editor/inspector/editor_preview_plugins.cpp index 303429881b..447a3e6fcd 100644 --- a/editor/inspector/editor_preview_plugins.cpp +++ b/editor/inspector/editor_preview_plugins.cpp @@ -45,6 +45,7 @@ #include "scene/resources/material.h" #include "scene/resources/mesh.h" #include "servers/audio/audio_stream.h" +#include "servers/rendering/rendering_server.h" void post_process_preview(Ref p_image) { if (p_image->get_format() != Image::FORMAT_RGBA8) { @@ -361,7 +362,7 @@ EditorMaterialPreviewPlugin::EditorMaterialPreviewPlugin() { scenario = RS::get_singleton()->scenario_create(); viewport = RS::get_singleton()->viewport_create(); - RS::get_singleton()->viewport_set_update_mode(viewport, RS::VIEWPORT_UPDATE_DISABLED); + RS::get_singleton()->viewport_set_update_mode(viewport, RSE::VIEWPORT_UPDATE_DISABLED); RS::get_singleton()->viewport_set_scenario(viewport, scenario); RS::get_singleton()->viewport_set_size(viewport, 128, 128); RS::get_singleton()->viewport_set_transparent_background(viewport, true); @@ -465,12 +466,12 @@ EditorMaterialPreviewPlugin::EditorMaterialPreviewPlugin() { } Array arr; - arr.resize(RS::ARRAY_MAX); - arr[RS::ARRAY_VERTEX] = vertices; - arr[RS::ARRAY_NORMAL] = normals; - arr[RS::ARRAY_TANGENT] = tangents; - arr[RS::ARRAY_TEX_UV] = uvs; - RS::get_singleton()->mesh_add_surface_from_arrays(sphere, RS::PRIMITIVE_TRIANGLES, arr); + arr.resize(RSE::ARRAY_MAX); + arr[RSE::ARRAY_VERTEX] = vertices; + arr[RSE::ARRAY_NORMAL] = normals; + arr[RSE::ARRAY_TANGENT] = tangents; + arr[RSE::ARRAY_TEX_UV] = uvs; + RS::get_singleton()->mesh_add_surface_from_arrays(sphere, RSE::PRIMITIVE_TRIANGLES, arr); } EditorMaterialPreviewPlugin::~EditorMaterialPreviewPlugin() { @@ -781,7 +782,7 @@ EditorMeshPreviewPlugin::EditorMeshPreviewPlugin() { scenario = RS::get_singleton()->scenario_create(); viewport = RS::get_singleton()->viewport_create(); - RS::get_singleton()->viewport_set_update_mode(viewport, RS::VIEWPORT_UPDATE_DISABLED); + RS::get_singleton()->viewport_set_update_mode(viewport, RSE::VIEWPORT_UPDATE_DISABLED); RS::get_singleton()->viewport_set_scenario(viewport, scenario); RS::get_singleton()->viewport_set_size(viewport, 128, 128); RS::get_singleton()->viewport_set_transparent_background(viewport, true); @@ -806,7 +807,7 @@ EditorMeshPreviewPlugin::EditorMeshPreviewPlugin() { light2 = RS::get_singleton()->directional_light_create(); RS::get_singleton()->light_set_color(light2, Color(0.7, 0.7, 0.7)); - //RS::get_singleton()->light_set_color(light2, RS::LIGHT_COLOR_SPECULAR, Color(0.0, 0.0, 0.0)); + //RS::get_singleton()->light_set_color(light2, RSE::LIGHT_COLOR_SPECULAR, Color(0.0, 0.0, 0.0)); light_instance2 = RS::get_singleton()->instance_create2(light2, scenario); RS::get_singleton()->instance_set_transform(light_instance2, Transform3D().looking_at(Vector3(0, 1, 0), Vector3(0, 0, 1))); @@ -897,7 +898,7 @@ Ref EditorFontPreviewPlugin::generate(const Ref &p_from, co EditorFontPreviewPlugin::EditorFontPreviewPlugin() { viewport = RS::get_singleton()->viewport_create(); - RS::get_singleton()->viewport_set_update_mode(viewport, RS::VIEWPORT_UPDATE_DISABLED); + RS::get_singleton()->viewport_set_update_mode(viewport, RSE::VIEWPORT_UPDATE_DISABLED); RS::get_singleton()->viewport_set_size(viewport, 128, 128); RS::get_singleton()->viewport_set_active(viewport, true); viewport_texture = RS::get_singleton()->viewport_get_texture(viewport); diff --git a/editor/inspector/editor_resource_picker.cpp b/editor/inspector/editor_resource_picker.cpp index df57922336..6e0eed44ce 100644 --- a/editor/inspector/editor_resource_picker.cpp +++ b/editor/inspector/editor_resource_picker.cpp @@ -50,6 +50,7 @@ #include "scene/property_utils.h" #include "scene/resources/gradient_texture.h" #include "scene/resources/image_texture.h" +#include "servers/rendering/rendering_server.h" static bool _has_sub_resources(const Ref &p_res) { List property_list; diff --git a/editor/inspector/editor_resource_preview.cpp b/editor/inspector/editor_resource_preview.cpp index e1ccf220b5..fbbcd4002d 100644 --- a/editor/inspector/editor_resource_preview.cpp +++ b/editor/inspector/editor_resource_preview.cpp @@ -42,6 +42,7 @@ #include "editor/themes/editor_scale.h" #include "scene/main/window.h" #include "scene/resources/image_texture.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_globals.h" bool EditorResourcePreviewGenerator::handles(const String &p_type) const { @@ -102,7 +103,7 @@ void EditorResourcePreviewGenerator::DrawRequester::request_and_wait(RID p_viewp RID root_vp = st->get_root()->get_viewport_rid(); RenderingServer::get_singleton()->viewport_set_active(root_vp, false); - RS::get_singleton()->viewport_set_update_mode(p_viewport, RS::VIEWPORT_UPDATE_ONCE); + RS::get_singleton()->viewport_set_update_mode(p_viewport, RSE::VIEWPORT_UPDATE_ONCE); RS::get_singleton()->draw(false); // Let main viewport and children be drawn again. @@ -122,7 +123,7 @@ void EditorResourcePreviewGenerator::request_draw_and_wait(RID viewport) const { } void EditorResourcePreviewGenerator::DrawRequester::_prepare_draw(RID p_viewport) { - RS::get_singleton()->viewport_set_update_mode(p_viewport, RS::VIEWPORT_UPDATE_ONCE); + RS::get_singleton()->viewport_set_update_mode(p_viewport, RSE::VIEWPORT_UPDATE_ONCE); RS::get_singleton()->request_frame_drawn_callback(callable_mp(this, &EditorResourcePreviewGenerator::DrawRequester::_post_semaphore)); } diff --git a/editor/project_manager/project_dialog.cpp b/editor/project_manager/project_dialog.cpp index 0ce640d5f2..1bdda52c96 100644 --- a/editor/project_manager/project_dialog.cpp +++ b/editor/project_manager/project_dialog.cpp @@ -48,6 +48,7 @@ #include "scene/gui/option_button.h" #include "scene/gui/separator.h" #include "scene/gui/texture_rect.h" +#include "servers/rendering/rendering_server.h" void ProjectDialog::_set_message(const String &p_msg, MessageType p_type, InputType p_input_type) { msg->set_text(p_msg); diff --git a/editor/register_editor_types.cpp b/editor/register_editor_types.cpp index ff1e08e7f2..0f5fe55edd 100644 --- a/editor/register_editor_types.cpp +++ b/editor/register_editor_types.cpp @@ -132,6 +132,8 @@ #include "editor/shader/shader_file_editor_plugin.h" #include "editor/translations/editor_translation_parser.h" #include "editor/version_control/editor_vcs_interface.h" +#include "servers/rendering/rendering_server.h" + #ifndef DISABLE_DEPRECATED #include "editor/scene/2d/parallax_background_editor_plugin.h" #include "editor/scene/3d/skeleton_ik_3d_editor_plugin.h" diff --git a/editor/scene/2d/path_2d_editor_plugin.cpp b/editor/scene/2d/path_2d_editor_plugin.cpp index f66520560d..82be464249 100644 --- a/editor/scene/2d/path_2d_editor_plugin.cpp +++ b/editor/scene/2d/path_2d_editor_plugin.cpp @@ -39,6 +39,7 @@ #include "scene/gui/dialogs.h" #include "scene/gui/menu_button.h" #include "scene/resources/mesh.h" +#include "servers/rendering/rendering_server.h" void Path2DEditor::_notification(int p_what) { switch (p_what) { @@ -501,7 +502,7 @@ void Path2DEditor::forward_canvas_draw_over_viewport(Control *p_overlay) { handles_array[Mesh::ARRAY_VERTEX] = Vector(debug_handle_lines); - rs->mesh_add_surface_from_arrays(debug_mesh_rid, RS::PRIMITIVE_LINES, handles_array, Array(), Dictionary(), RS::ARRAY_FLAG_USE_2D_VERTICES); + rs->mesh_add_surface_from_arrays(debug_mesh_rid, RSE::PRIMITIVE_LINES, handles_array, Array(), Dictionary(), RSE::ARRAY_FLAG_USE_2D_VERTICES); rs->canvas_item_add_mesh(vpc->get_canvas_item(), debug_mesh_rid, Transform2D(), Color(0.5, 0.5, 0.5, 1.0)); } @@ -516,7 +517,7 @@ void Path2DEditor::forward_canvas_draw_over_viewport(Control *p_overlay) { rs->multimesh_set_visible_instances(debug_handle_curve_multimesh_rid, 0); if (handle_curve_count > 0) { if (rs->multimesh_get_instance_count(debug_handle_curve_multimesh_rid) != int(handle_curve_count)) { - rs->multimesh_allocate_data(debug_handle_curve_multimesh_rid, handle_curve_count, RS::MULTIMESH_TRANSFORM_2D); + rs->multimesh_allocate_data(debug_handle_curve_multimesh_rid, handle_curve_count, RSE::MULTIMESH_TRANSFORM_2D); } Vector multimesh_buffer; @@ -549,7 +550,7 @@ void Path2DEditor::forward_canvas_draw_over_viewport(Control *p_overlay) { rs->multimesh_set_visible_instances(debug_handle_sharp_multimesh_rid, 0); if (handle_sharp_count > 0) { if (rs->multimesh_get_instance_count(debug_handle_sharp_multimesh_rid) != int(handle_sharp_count)) { - rs->multimesh_allocate_data(debug_handle_sharp_multimesh_rid, handle_sharp_count, RS::MULTIMESH_TRANSFORM_2D); + rs->multimesh_allocate_data(debug_handle_sharp_multimesh_rid, handle_sharp_count, RSE::MULTIMESH_TRANSFORM_2D); } Vector multimesh_buffer; @@ -582,7 +583,7 @@ void Path2DEditor::forward_canvas_draw_over_viewport(Control *p_overlay) { rs->multimesh_set_visible_instances(debug_handle_smooth_multimesh_rid, 0); if (handle_smooth_count > 0) { if (rs->multimesh_get_instance_count(debug_handle_smooth_multimesh_rid) != int(handle_smooth_count)) { - rs->multimesh_allocate_data(debug_handle_smooth_multimesh_rid, handle_smooth_count, RS::MULTIMESH_TRANSFORM_2D); + rs->multimesh_allocate_data(debug_handle_smooth_multimesh_rid, handle_smooth_count, RSE::MULTIMESH_TRANSFORM_2D); } Vector multimesh_buffer; @@ -957,12 +958,12 @@ Path2DEditor::Path2DEditor() { index_array_ptrw[5] = 3; Array mesh_arrays; - mesh_arrays.resize(RS::ARRAY_MAX); - mesh_arrays[RS::ARRAY_VERTEX] = vertex_array; - mesh_arrays[RS::ARRAY_TEX_UV] = uv_array; - mesh_arrays[RS::ARRAY_INDEX] = index_array; + mesh_arrays.resize(RSE::ARRAY_MAX); + mesh_arrays[RSE::ARRAY_VERTEX] = vertex_array; + mesh_arrays[RSE::ARRAY_TEX_UV] = uv_array; + mesh_arrays[RSE::ARRAY_INDEX] = index_array; - rs->mesh_add_surface_from_arrays(debug_handle_mesh_rid, RS::PRIMITIVE_TRIANGLES, mesh_arrays, Array(), Dictionary(), RS::ARRAY_FLAG_USE_2D_VERTICES); + rs->mesh_add_surface_from_arrays(debug_handle_mesh_rid, RSE::PRIMITIVE_TRIANGLES, mesh_arrays, Array(), Dictionary(), RSE::ARRAY_FLAG_USE_2D_VERTICES); debug_handle_curve_multimesh_rid = rs->multimesh_create(); debug_handle_sharp_multimesh_rid = rs->multimesh_create(); diff --git a/editor/scene/2d/polygon_2d_editor_plugin.cpp b/editor/scene/2d/polygon_2d_editor_plugin.cpp index 79dfafc517..cdbd08a033 100644 --- a/editor/scene/2d/polygon_2d_editor_plugin.cpp +++ b/editor/scene/2d/polygon_2d_editor_plugin.cpp @@ -53,6 +53,7 @@ #include "scene/gui/spin_box.h" #include "scene/gui/split_container.h" #include "scene/gui/view_panner.h" +#include "servers/rendering/rendering_server.h" Node2D *Polygon2DEditor::_get_node() const { return node; diff --git a/editor/scene/2d/tiles/tile_atlas_view.cpp b/editor/scene/2d/tiles/tile_atlas_view.cpp index d1b8cef0eb..453b9b15f7 100644 --- a/editor/scene/2d/tiles/tile_atlas_view.cpp +++ b/editor/scene/2d/tiles/tile_atlas_view.cpp @@ -37,6 +37,8 @@ #include "scene/gui/label.h" #include "scene/gui/panel.h" #include "scene/gui/view_panner.h" +#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" void TileAtlasView::gui_input(const Ref &p_event) { if (panner->gui_input(p_event, get_global_rect())) { @@ -308,7 +310,7 @@ RID TileAtlasView::_get_canvas_item_to_draw(const TileData *p_for_data, const Ca RID ci_rid = RS::get_singleton()->canvas_item_create(); RS::get_singleton()->canvas_item_set_parent(ci_rid, p_base_item->get_canvas_item()); RS::get_singleton()->canvas_item_set_material(ci_rid, mat->get_rid()); - RS::get_singleton()->canvas_item_set_default_texture_filter(ci_rid, RS::CanvasItemTextureFilter(p_base_item->get_texture_filter_in_tree())); + RS::get_singleton()->canvas_item_set_default_texture_filter(ci_rid, RSE::CanvasItemTextureFilter(p_base_item->get_texture_filter_in_tree())); p_material_map[mat] = ci_rid; return ci_rid; } diff --git a/editor/scene/2d/tiles/tile_data_editors.cpp b/editor/scene/2d/tiles/tile_data_editors.cpp index ec9f49357b..ee767e73b4 100644 --- a/editor/scene/2d/tiles/tile_data_editors.cpp +++ b/editor/scene/2d/tiles/tile_data_editors.cpp @@ -51,6 +51,7 @@ #include "scene/gui/spin_box.h" #include "servers/navigation_2d/navigation_server_2d.h" +#include "servers/rendering/rendering_server.h" void TileDataEditor::_tile_set_changed_plan_update() { _tile_set_changed_update_needed = true; diff --git a/editor/scene/2d/tiles/tiles_editor_plugin.cpp b/editor/scene/2d/tiles/tiles_editor_plugin.cpp index 14c474775e..477ac64c7e 100644 --- a/editor/scene/2d/tiles/tiles_editor_plugin.cpp +++ b/editor/scene/2d/tiles/tiles_editor_plugin.cpp @@ -49,6 +49,7 @@ #include "scene/gui/control.h" #include "scene/resources/2d/tile_set.h" #include "scene/resources/image_texture.h" +#include "servers/rendering/rendering_server.h" TilesEditorUtils *TilesEditorUtils::singleton = nullptr; TileMapEditorPlugin *tile_map_plugin_singleton = nullptr; @@ -290,7 +291,7 @@ void TilesEditorUtils::draw_selection_rect(CanvasItem *p_ci, const Rect2 &p_rect p_ci->draw_set_transform(p_rect.position, 0, Vector2(1, 1) / scale); RS::get_singleton()->canvas_item_add_nine_patch( p_ci->get_canvas_item(), Rect2(Vector2(), p_rect.size * scale), Rect2(), selection_texture->get_rid(), - Vector2(2, 2), Vector2(2, 2), RS::NINE_PATCH_STRETCH, RS::NINE_PATCH_STRETCH, false, p_color); + Vector2(2, 2), Vector2(2, 2), RSE::NINE_PATCH_STRETCH, RSE::NINE_PATCH_STRETCH, false, p_color); p_ci->draw_set_transform_matrix(Transform2D()); } diff --git a/editor/scene/3d/camera_3d_editor_plugin.cpp b/editor/scene/3d/camera_3d_editor_plugin.cpp index 0e1926894d..91cf275347 100644 --- a/editor/scene/3d/camera_3d_editor_plugin.cpp +++ b/editor/scene/3d/camera_3d_editor_plugin.cpp @@ -36,6 +36,7 @@ #include "scene/gui/foldable_container.h" #include "scene/gui/subviewport_container.h" #include "scene/main/viewport.h" +#include "servers/rendering/rendering_server.h" void Camera3DEditor::_node_removed(Node *p_node) { if (p_node == node) { diff --git a/editor/scene/3d/gizmos/fog_volume_gizmo_plugin.cpp b/editor/scene/3d/gizmos/fog_volume_gizmo_plugin.cpp index 286909a384..0c7e1ebbae 100644 --- a/editor/scene/3d/gizmos/fog_volume_gizmo_plugin.cpp +++ b/editor/scene/3d/gizmos/fog_volume_gizmo_plugin.cpp @@ -94,7 +94,7 @@ void FogVolumeGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) { p_gizmo->clear(); - if (fog_volume->get_shape() != RS::FOG_VOLUME_SHAPE_WORLD) { + if (fog_volume->get_shape() != RSE::FOG_VOLUME_SHAPE_WORLD) { const Ref material = get_material("shape_material", p_gizmo); const Ref material_internal = diff --git a/editor/scene/3d/gizmos/lightmap_gi_gizmo_plugin.cpp b/editor/scene/3d/gizmos/lightmap_gi_gizmo_plugin.cpp index 88dbea6a20..6954201ebc 100644 --- a/editor/scene/3d/gizmos/lightmap_gi_gizmo_plugin.cpp +++ b/editor/scene/3d/gizmos/lightmap_gi_gizmo_plugin.cpp @@ -209,10 +209,10 @@ void LightmapGIGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) { } Array array; - array.resize(RS::ARRAY_MAX); - array[RS::ARRAY_VERTEX] = Vector(vertices); - array[RS::ARRAY_INDEX] = Vector(indices); - array[RS::ARRAY_COLOR] = Vector(colors); + array.resize(RSE::ARRAY_MAX); + array[RSE::ARRAY_VERTEX] = Vector(vertices); + array[RSE::ARRAY_INDEX] = Vector(indices); + array[RSE::ARRAY_COLOR] = Vector(colors); Ref mesh; mesh.instantiate(); diff --git a/editor/scene/3d/gizmos/marker_3d_gizmo_plugin.cpp b/editor/scene/3d/gizmos/marker_3d_gizmo_plugin.cpp index 47140b7f3d..16bc767524 100644 --- a/editor/scene/3d/gizmos/marker_3d_gizmo_plugin.cpp +++ b/editor/scene/3d/gizmos/marker_3d_gizmo_plugin.cpp @@ -88,7 +88,7 @@ Marker3DGizmoPlugin::Marker3DGizmoPlugin() { mat->set_transparency(StandardMaterial3D::TRANSPARENCY_ALPHA); Array d; - d.resize(RS::ARRAY_MAX); + d.resize(RSE::ARRAY_MAX); d[Mesh::ARRAY_VERTEX] = cursor_points; d[Mesh::ARRAY_COLOR] = cursor_colors; pos3d_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_LINES, d); diff --git a/editor/scene/3d/gizmos/physics/collision_polygon_3d_gizmo_plugin.cpp b/editor/scene/3d/gizmos/physics/collision_polygon_3d_gizmo_plugin.cpp index 5300ecd6b1..78cb7a791f 100644 --- a/editor/scene/3d/gizmos/physics/collision_polygon_3d_gizmo_plugin.cpp +++ b/editor/scene/3d/gizmos/physics/collision_polygon_3d_gizmo_plugin.cpp @@ -224,9 +224,9 @@ void CollisionPolygon3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) { Array a; a.resize(Mesh::ARRAY_MAX); - a[RS::ARRAY_VERTEX] = verts; - a[RS::ARRAY_COLOR] = colors; - a[RS::ARRAY_INDEX] = indices; + a[RSE::ARRAY_VERTEX] = verts; + a[RSE::ARRAY_COLOR] = colors; + a[RSE::ARRAY_INDEX] = indices; array_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, a); p_gizmo->add_mesh(array_mesh, material_arraymesh); diff --git a/editor/scene/3d/lightmap_gi_editor_plugin.cpp b/editor/scene/3d/lightmap_gi_editor_plugin.cpp index 166511e546..ac28526127 100644 --- a/editor/scene/3d/lightmap_gi_editor_plugin.cpp +++ b/editor/scene/3d/lightmap_gi_editor_plugin.cpp @@ -33,6 +33,7 @@ #include "editor/editor_node.h" #include "editor/editor_string_names.h" #include "editor/gui/editor_file_dialog.h" +#include "servers/rendering/rendering_server.h" #include "modules/modules_enabled.gen.h" // For lightmapper_rd. diff --git a/editor/scene/3d/material_3d_conversion_plugins.cpp b/editor/scene/3d/material_3d_conversion_plugins.cpp index b36340eaf5..f38ec93ccb 100644 --- a/editor/scene/3d/material_3d_conversion_plugins.cpp +++ b/editor/scene/3d/material_3d_conversion_plugins.cpp @@ -33,6 +33,7 @@ #include "editor/scene/material_editor_plugin.h" #include "scene/resources/3d/fog_material.h" #include "scene/resources/3d/sky_material.h" +#include "servers/rendering/rendering_server.h" String StandardMaterial3DConversionPlugin::converts_to() const { return "ShaderMaterial"; diff --git a/editor/scene/3d/mesh_library_editor_plugin.cpp b/editor/scene/3d/mesh_library_editor_plugin.cpp index c5fd51c456..a4f92aed1e 100644 --- a/editor/scene/3d/mesh_library_editor_plugin.cpp +++ b/editor/scene/3d/mesh_library_editor_plugin.cpp @@ -157,19 +157,19 @@ void MeshLibraryEditor::_import_scene_parse_node(Ref p_library, Has GeometryInstance3D::ShadowCastingSetting gi3d_cast_shadows_setting = mesh_instance_node->get_cast_shadows_setting(); switch (gi3d_cast_shadows_setting) { case GeometryInstance3D::ShadowCastingSetting::SHADOW_CASTING_SETTING_OFF: { - p_library->set_item_mesh_cast_shadow(item_id, RS::ShadowCastingSetting::SHADOW_CASTING_SETTING_OFF); + p_library->set_item_mesh_cast_shadow(item_id, RSE::ShadowCastingSetting::SHADOW_CASTING_SETTING_OFF); } break; case GeometryInstance3D::ShadowCastingSetting::SHADOW_CASTING_SETTING_ON: { - p_library->set_item_mesh_cast_shadow(item_id, RS::ShadowCastingSetting::SHADOW_CASTING_SETTING_ON); + p_library->set_item_mesh_cast_shadow(item_id, RSE::ShadowCastingSetting::SHADOW_CASTING_SETTING_ON); } break; case GeometryInstance3D::ShadowCastingSetting::SHADOW_CASTING_SETTING_DOUBLE_SIDED: { - p_library->set_item_mesh_cast_shadow(item_id, RS::ShadowCastingSetting::SHADOW_CASTING_SETTING_DOUBLE_SIDED); + p_library->set_item_mesh_cast_shadow(item_id, RSE::ShadowCastingSetting::SHADOW_CASTING_SETTING_DOUBLE_SIDED); } break; case GeometryInstance3D::ShadowCastingSetting::SHADOW_CASTING_SETTING_SHADOWS_ONLY: { - p_library->set_item_mesh_cast_shadow(item_id, RS::ShadowCastingSetting::SHADOW_CASTING_SETTING_SHADOWS_ONLY); + p_library->set_item_mesh_cast_shadow(item_id, RSE::ShadowCastingSetting::SHADOW_CASTING_SETTING_SHADOWS_ONLY); } break; default: { - p_library->set_item_mesh_cast_shadow(item_id, RS::ShadowCastingSetting::SHADOW_CASTING_SETTING_ON); + p_library->set_item_mesh_cast_shadow(item_id, RSE::ShadowCastingSetting::SHADOW_CASTING_SETTING_ON); } break; } diff --git a/editor/scene/3d/node_3d_editor_gizmos.cpp b/editor/scene/3d/node_3d_editor_gizmos.cpp index f85e2ad40c..0b4705792f 100644 --- a/editor/scene/3d/node_3d_editor_gizmos.cpp +++ b/editor/scene/3d/node_3d_editor_gizmos.cpp @@ -37,6 +37,7 @@ #include "editor/scene/3d/node_3d_editor_plugin.h" #include "editor/settings/editor_settings.h" #include "scene/resources/3d/primitive_meshes.h" +#include "servers/rendering/rendering_server.h" #define HANDLE_HALF_SIZE 9.5 @@ -218,11 +219,11 @@ void EditorNode3DGizmo::Instance::create_instance(Node3D *p_base, bool p_hidden) if (extra_margin) { RS::get_singleton()->instance_set_extra_visibility_margin(instance, 1); } - RS::get_singleton()->instance_geometry_set_cast_shadows_setting(instance, RS::SHADOW_CASTING_SETTING_OFF); + RS::get_singleton()->instance_geometry_set_cast_shadows_setting(instance, RSE::SHADOW_CASTING_SETTING_OFF); int layer = p_hidden ? 0 : 1 << Node3DEditorViewport::GIZMO_EDIT_LAYER; RS::get_singleton()->instance_set_layer_mask(instance, layer); //gizmos are 26 - RS::get_singleton()->instance_geometry_set_flag(instance, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(instance, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(instance, RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(instance, RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); } void EditorNode3DGizmo::add_mesh(const Ref &p_mesh, const Ref &p_material, const Transform3D &p_xform, const Ref &p_skin_reference) { @@ -417,8 +418,8 @@ void EditorNode3DGizmo::add_handles(const Vector &p_handles, const Ref< Ref mesh = memnew(ArrayMesh); Array a; - a.resize(RS::ARRAY_MAX); - a[RS::ARRAY_VERTEX] = p_handles; + a.resize(RSE::ARRAY_MAX); + a[RSE::ARRAY_VERTEX] = p_handles; Vector colors; { colors.resize(p_handles.size()); @@ -438,7 +439,7 @@ void EditorNode3DGizmo::add_handles(const Vector &p_handles, const Ref< w[i] = col; } } - a[RS::ARRAY_COLOR] = colors; + a[RSE::ARRAY_COLOR] = colors; mesh->add_surface_from_arrays(Mesh::PRIMITIVE_POINTS, a); mesh->surface_set_material(0, p_material); @@ -479,17 +480,17 @@ void EditorNode3DGizmo::add_solid_box(const Ref &p_material, Vector3 p ERR_FAIL_NULL(spatial_node); Array arrays; - arrays.resize(RS::ARRAY_MAX); + arrays.resize(RSE::ARRAY_MAX); BoxMesh::create_mesh_array(arrays, p_size); - PackedVector3Array vertex = arrays[RS::ARRAY_VERTEX]; + PackedVector3Array vertex = arrays[RSE::ARRAY_VERTEX]; Vector3 *w = vertex.ptrw(); for (int i = 0; i < vertex.size(); ++i) { w[i] += p_position; } - arrays[RS::ARRAY_VERTEX] = vertex; + arrays[RSE::ARRAY_VERTEX] = vertex; Ref m; m.instantiate(); diff --git a/editor/scene/3d/node_3d_editor_plugin.cpp b/editor/scene/3d/node_3d_editor_plugin.cpp index 0e4ad82667..7529b3b310 100644 --- a/editor/scene/3d/node_3d_editor_plugin.cpp +++ b/editor/scene/3d/node_3d_editor_plugin.cpp @@ -106,6 +106,7 @@ #include "scene/resources/packed_scene.h" #include "scene/resources/sky.h" #include "scene/resources/surface_tool.h" +#include "servers/rendering/rendering_server.h" constexpr real_t DISTANCE_DEFAULT = 4; @@ -4460,37 +4461,37 @@ void Node3DEditorViewport::_init_gizmo_instance(int p_idx) { RS::get_singleton()->instance_set_base(move_gizmo_instance[i], spatial_editor->get_move_gizmo(i)->get_rid()); RS::get_singleton()->instance_set_scenario(move_gizmo_instance[i], get_tree()->get_root()->get_world_3d()->get_scenario()); RS::get_singleton()->instance_set_visible(move_gizmo_instance[i], false); - RS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF); + RS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_gizmo_instance[i], RSE::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(move_gizmo_instance[i], layer); - RS::get_singleton()->instance_geometry_set_flag(move_gizmo_instance[i], RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(move_gizmo_instance[i], RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(move_gizmo_instance[i], RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(move_gizmo_instance[i], RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); move_plane_gizmo_instance[i] = RS::get_singleton()->instance_create(); RS::get_singleton()->instance_set_base(move_plane_gizmo_instance[i], spatial_editor->get_move_plane_gizmo(i)->get_rid()); RS::get_singleton()->instance_set_scenario(move_plane_gizmo_instance[i], get_tree()->get_root()->get_world_3d()->get_scenario()); RS::get_singleton()->instance_set_visible(move_plane_gizmo_instance[i], false); - RS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_plane_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF); + RS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_plane_gizmo_instance[i], RSE::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(move_plane_gizmo_instance[i], layer); - RS::get_singleton()->instance_geometry_set_flag(move_plane_gizmo_instance[i], RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(move_plane_gizmo_instance[i], RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(move_plane_gizmo_instance[i], RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(move_plane_gizmo_instance[i], RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); scale_gizmo_instance[i] = RS::get_singleton()->instance_create(); RS::get_singleton()->instance_set_base(scale_gizmo_instance[i], spatial_editor->get_scale_gizmo(i)->get_rid()); RS::get_singleton()->instance_set_scenario(scale_gizmo_instance[i], get_tree()->get_root()->get_world_3d()->get_scenario()); RS::get_singleton()->instance_set_visible(scale_gizmo_instance[i], false); - RS::get_singleton()->instance_geometry_set_cast_shadows_setting(scale_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF); + RS::get_singleton()->instance_geometry_set_cast_shadows_setting(scale_gizmo_instance[i], RSE::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(scale_gizmo_instance[i], layer); - RS::get_singleton()->instance_geometry_set_flag(scale_gizmo_instance[i], RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(scale_gizmo_instance[i], RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(scale_gizmo_instance[i], RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(scale_gizmo_instance[i], RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); scale_plane_gizmo_instance[i] = RS::get_singleton()->instance_create(); RS::get_singleton()->instance_set_base(scale_plane_gizmo_instance[i], spatial_editor->get_scale_plane_gizmo(i)->get_rid()); RS::get_singleton()->instance_set_scenario(scale_plane_gizmo_instance[i], get_tree()->get_root()->get_world_3d()->get_scenario()); RS::get_singleton()->instance_set_visible(scale_plane_gizmo_instance[i], false); - RS::get_singleton()->instance_geometry_set_cast_shadows_setting(scale_plane_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF); + RS::get_singleton()->instance_geometry_set_cast_shadows_setting(scale_plane_gizmo_instance[i], RSE::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(scale_plane_gizmo_instance[i], layer); - RS::get_singleton()->instance_geometry_set_flag(scale_plane_gizmo_instance[i], RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(scale_plane_gizmo_instance[i], RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(scale_plane_gizmo_instance[i], RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(scale_plane_gizmo_instance[i], RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); axis_gizmo_instance[i] = RS::get_singleton()->instance_create(); } @@ -4499,10 +4500,10 @@ void Node3DEditorViewport::_init_gizmo_instance(int p_idx) { RS::get_singleton()->instance_set_base(axis_gizmo_instance[i], spatial_editor->get_axis_gizmo(i)->get_rid()); RS::get_singleton()->instance_set_scenario(axis_gizmo_instance[i], get_tree()->get_root()->get_world_3d()->get_scenario()); RS::get_singleton()->instance_set_visible(axis_gizmo_instance[i], true); - RS::get_singleton()->instance_geometry_set_cast_shadows_setting(axis_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF); + RS::get_singleton()->instance_geometry_set_cast_shadows_setting(axis_gizmo_instance[i], RSE::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(axis_gizmo_instance[i], layer); - RS::get_singleton()->instance_geometry_set_flag(axis_gizmo_instance[i], RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(axis_gizmo_instance[i], RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(axis_gizmo_instance[i], RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(axis_gizmo_instance[i], RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); } for (int i = 0; i < 4; i++) { @@ -4510,10 +4511,10 @@ void Node3DEditorViewport::_init_gizmo_instance(int p_idx) { RS::get_singleton()->instance_set_base(rotate_gizmo_instance[i], spatial_editor->get_rotate_gizmo(i)->get_rid()); RS::get_singleton()->instance_set_scenario(rotate_gizmo_instance[i], get_tree()->get_root()->get_world_3d()->get_scenario()); RS::get_singleton()->instance_set_visible(rotate_gizmo_instance[i], false); - RS::get_singleton()->instance_geometry_set_cast_shadows_setting(rotate_gizmo_instance[i], RS::SHADOW_CASTING_SETTING_OFF); + RS::get_singleton()->instance_geometry_set_cast_shadows_setting(rotate_gizmo_instance[i], RSE::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(rotate_gizmo_instance[i], layer); - RS::get_singleton()->instance_geometry_set_flag(rotate_gizmo_instance[i], RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(rotate_gizmo_instance[i], RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(rotate_gizmo_instance[i], RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(rotate_gizmo_instance[i], RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); } // Create trackball sphere instance @@ -4521,10 +4522,10 @@ void Node3DEditorViewport::_init_gizmo_instance(int p_idx) { RS::get_singleton()->instance_set_base(trackball_sphere_instance, spatial_editor->get_trackball_sphere_gizmo()->get_rid()); RS::get_singleton()->instance_set_scenario(trackball_sphere_instance, get_tree()->get_root()->get_world_3d()->get_scenario()); RS::get_singleton()->instance_set_visible(trackball_sphere_instance, false); - RS::get_singleton()->instance_geometry_set_cast_shadows_setting(trackball_sphere_instance, RS::SHADOW_CASTING_SETTING_OFF); + RS::get_singleton()->instance_geometry_set_cast_shadows_setting(trackball_sphere_instance, RSE::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(trackball_sphere_instance, layer); - RS::get_singleton()->instance_geometry_set_flag(trackball_sphere_instance, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(trackball_sphere_instance, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(trackball_sphere_instance, RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(trackball_sphere_instance, RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); } void Node3DEditorViewport::_finish_gizmo_instances() { @@ -7083,18 +7084,18 @@ Object *Node3DEditor::_get_editor_data(Object *p_what) { sp->get_world_3d()->get_scenario()); RS::get_singleton()->instance_geometry_set_cast_shadows_setting( si->sbox_instance, - RS::SHADOW_CASTING_SETTING_OFF); + RSE::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_geometry_set_cast_shadows_setting( si->sbox_instance_offset, - RS::SHADOW_CASTING_SETTING_OFF); + RSE::SHADOW_CASTING_SETTING_OFF); // Use the Edit layer to hide the selection box when View Gizmos is disabled, since it is a bit distracting. // It's still possible to approximately guess what is selected by looking at the manipulation gizmo position. RS::get_singleton()->instance_set_layer_mask(si->sbox_instance, 1 << Node3DEditorViewport::GIZMO_EDIT_LAYER); RS::get_singleton()->instance_set_layer_mask(si->sbox_instance_offset, 1 << Node3DEditorViewport::GIZMO_EDIT_LAYER); - RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); - RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_offset, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_offset, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance, RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance, RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_offset, RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_offset, RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); si->sbox_instance_xray = RenderingServer::get_singleton()->instance_create2( selection_box_xray->get_rid(), sp->get_world_3d()->get_scenario()); @@ -7103,18 +7104,18 @@ Object *Node3DEditor::_get_editor_data(Object *p_what) { sp->get_world_3d()->get_scenario()); RS::get_singleton()->instance_geometry_set_cast_shadows_setting( si->sbox_instance_xray, - RS::SHADOW_CASTING_SETTING_OFF); + RSE::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_geometry_set_cast_shadows_setting( si->sbox_instance_xray_offset, - RS::SHADOW_CASTING_SETTING_OFF); + RSE::SHADOW_CASTING_SETTING_OFF); // Use the Edit layer to hide the selection box when View Gizmos is disabled, since it is a bit distracting. // It's still possible to approximately guess what is selected by looking at the manipulation gizmo position. RS::get_singleton()->instance_set_layer_mask(si->sbox_instance_xray, 1 << Node3DEditorViewport::GIZMO_EDIT_LAYER); RS::get_singleton()->instance_set_layer_mask(si->sbox_instance_xray_offset, 1 << Node3DEditorViewport::GIZMO_EDIT_LAYER); - RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_xray, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_xray, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); - RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_xray_offset, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_xray_offset, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_xray, RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_xray, RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_xray_offset, RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(si->sbox_instance_xray_offset, RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); return si; } @@ -7866,17 +7867,17 @@ void fragment() { origin_points.set(5, Vector3(0.0, 0.5, 0.0)); Array d; - d.resize(RS::ARRAY_MAX); - d[RenderingServer::ARRAY_VERTEX] = origin_points; + d.resize(RSE::ARRAY_MAX); + d[RSE::ARRAY_VERTEX] = origin_points; origin_mesh = RenderingServer::get_singleton()->mesh_create(); - RenderingServer::get_singleton()->mesh_add_surface_from_arrays(origin_mesh, RenderingServer::PRIMITIVE_TRIANGLES, d); + RenderingServer::get_singleton()->mesh_add_surface_from_arrays(origin_mesh, RSE::PRIMITIVE_TRIANGLES, d); RenderingServer::get_singleton()->mesh_surface_set_material(origin_mesh, 0, origin_mat->get_rid()); origin_multimesh = RenderingServer::get_singleton()->multimesh_create(); RenderingServer::get_singleton()->multimesh_set_mesh(origin_multimesh, origin_mesh); - RenderingServer::get_singleton()->multimesh_allocate_data(origin_multimesh, 12, RS::MultimeshTransformFormat::MULTIMESH_TRANSFORM_3D, true, false); + RenderingServer::get_singleton()->multimesh_allocate_data(origin_multimesh, 12, RSE::MultimeshTransformFormat::MULTIMESH_TRANSFORM_3D, true, false); RenderingServer::get_singleton()->multimesh_set_visible_instances(origin_multimesh, -1); LocalVector distances; @@ -7923,10 +7924,10 @@ void fragment() { origin_instance = RenderingServer::get_singleton()->instance_create2(origin_multimesh, get_tree()->get_root()->get_world_3d()->get_scenario()); RS::get_singleton()->instance_set_layer_mask(origin_instance, 1 << Node3DEditorViewport::GIZMO_GRID_LAYER); - RS::get_singleton()->instance_geometry_set_flag(origin_instance, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(origin_instance, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(origin_instance, RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(origin_instance, RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); - RenderingServer::get_singleton()->instance_geometry_set_cast_shadows_setting(origin_instance, RS::SHADOW_CASTING_SETTING_OFF); + RenderingServer::get_singleton()->instance_geometry_set_cast_shadows_setting(origin_instance, RSE::SHADOW_CASTING_SETTING_OFF); Ref grid_shader = memnew(Shader); grid_shader->set_code(R"( @@ -8655,20 +8656,20 @@ void Node3DEditor::_init_grid() { // Create a mesh from the pushed vector points and colors. grid[c] = RenderingServer::get_singleton()->mesh_create(); Array d; - d.resize(RS::ARRAY_MAX); - d[RenderingServer::ARRAY_VERTEX] = (Vector)grid_points[c]; - d[RenderingServer::ARRAY_COLOR] = (Vector)grid_colors[c]; - d[RenderingServer::ARRAY_NORMAL] = (Vector)grid_normals[c]; - RenderingServer::get_singleton()->mesh_add_surface_from_arrays(grid[c], RenderingServer::PRIMITIVE_LINES, d); + d.resize(RSE::ARRAY_MAX); + d[RSE::ARRAY_VERTEX] = (Vector)grid_points[c]; + d[RSE::ARRAY_COLOR] = (Vector)grid_colors[c]; + d[RSE::ARRAY_NORMAL] = (Vector)grid_normals[c]; + RenderingServer::get_singleton()->mesh_add_surface_from_arrays(grid[c], RSE::PRIMITIVE_LINES, d); RenderingServer::get_singleton()->mesh_surface_set_material(grid[c], 0, grid_mat[c]->get_rid()); grid_instance[c] = RenderingServer::get_singleton()->instance_create2(grid[c], get_tree()->get_root()->get_world_3d()->get_scenario()); // Yes, the end of this line is supposed to be a. RenderingServer::get_singleton()->instance_set_visible(grid_instance[c], grid_visible[a]); - RenderingServer::get_singleton()->instance_geometry_set_cast_shadows_setting(grid_instance[c], RS::SHADOW_CASTING_SETTING_OFF); + RenderingServer::get_singleton()->instance_geometry_set_cast_shadows_setting(grid_instance[c], RSE::SHADOW_CASTING_SETTING_OFF); RS::get_singleton()->instance_set_layer_mask(grid_instance[c], 1 << Node3DEditorViewport::GIZMO_GRID_LAYER); - RS::get_singleton()->instance_geometry_set_flag(grid_instance[c], RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(grid_instance[c], RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(grid_instance[c], RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(grid_instance[c], RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); } } diff --git a/editor/scene/canvas_item_editor_plugin.cpp b/editor/scene/canvas_item_editor_plugin.cpp index 86112e39a0..25881dad0e 100644 --- a/editor/scene/canvas_item_editor_plugin.cpp +++ b/editor/scene/canvas_item_editor_plugin.cpp @@ -69,6 +69,7 @@ #include "scene/main/window.h" #include "scene/resources/packed_scene.h" #include "scene/resources/style_box_texture.h" +#include "servers/rendering/rendering_server.h" #define DRAG_THRESHOLD (8 * EDSCALE) constexpr real_t SCALE_HANDLE_DISTANCE = 25; @@ -6132,13 +6133,13 @@ void CanvasItemEditorPlugin::make_visible(bool p_visible) { canvas_item_editor->show(); canvas_item_editor->set_process(true); RenderingServer::get_singleton()->viewport_set_disable_2d(EditorNode::get_singleton()->get_scene_root()->get_viewport_rid(), false); - RenderingServer::get_singleton()->viewport_set_environment_mode(EditorNode::get_singleton()->get_scene_root()->get_viewport_rid(), RS::VIEWPORT_ENVIRONMENT_ENABLED); + RenderingServer::get_singleton()->viewport_set_environment_mode(EditorNode::get_singleton()->get_scene_root()->get_viewport_rid(), RSE::VIEWPORT_ENVIRONMENT_ENABLED); } else { canvas_item_editor->hide(); canvas_item_editor->set_process(false); RenderingServer::get_singleton()->viewport_set_disable_2d(EditorNode::get_singleton()->get_scene_root()->get_viewport_rid(), true); - RenderingServer::get_singleton()->viewport_set_environment_mode(EditorNode::get_singleton()->get_scene_root()->get_viewport_rid(), RS::VIEWPORT_ENVIRONMENT_DISABLED); + RenderingServer::get_singleton()->viewport_set_environment_mode(EditorNode::get_singleton()->get_scene_root()->get_viewport_rid(), RSE::VIEWPORT_ENVIRONMENT_DISABLED); } } diff --git a/editor/scene/material_editor_plugin.cpp b/editor/scene/material_editor_plugin.cpp index 30e63ea4a1..026b02f5ac 100644 --- a/editor/scene/material_editor_plugin.cpp +++ b/editor/scene/material_editor_plugin.cpp @@ -51,6 +51,7 @@ #include "scene/3d/camera_3d.h" #include "scene/3d/light_3d.h" #include "scene/3d/mesh_instance_3d.h" +#include "servers/rendering/rendering_server.h" Ref MaterialEditor::make_shader_material(const Ref &p_from, bool p_copy_params) { ERR_FAIL_COND_V(p_from.is_null(), Ref()); diff --git a/editor/scene/texture/texture_region_editor_plugin.cpp b/editor/scene/texture/texture_region_editor_plugin.cpp index e74eaf5d7b..0646483ed2 100644 --- a/editor/scene/texture/texture_region_editor_plugin.cpp +++ b/editor/scene/texture/texture_region_editor_plugin.cpp @@ -47,6 +47,7 @@ #include "scene/gui/view_panner.h" #include "scene/resources/atlas_texture.h" #include "scene/resources/style_box_texture.h" +#include "servers/rendering/rendering_server.h" Transform2D TextureRegionEditor::_get_offset_transform() const { Transform2D mtx; diff --git a/editor/script/script_text_editor.cpp b/editor/script/script_text_editor.cpp index 46f68bebae..e0f212d68e 100644 --- a/editor/script/script_text_editor.cpp +++ b/editor/script/script_text_editor.cpp @@ -55,6 +55,7 @@ #include "scene/gui/rich_text_label.h" #include "scene/gui/split_container.h" #include "scene/resources/style_box_flat.h" +#include "servers/rendering/rendering_server.h" void ConnectionInfoDialog::ok_pressed() { } diff --git a/editor/shader/editor_native_shader_source_visualizer.cpp b/editor/shader/editor_native_shader_source_visualizer.cpp index 16944a8e13..17502e3efb 100644 --- a/editor/shader/editor_native_shader_source_visualizer.cpp +++ b/editor/shader/editor_native_shader_source_visualizer.cpp @@ -35,6 +35,7 @@ #include "editor/themes/editor_scale.h" #include "scene/gui/code_edit.h" #include "scene/gui/text_edit.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/shader_language.h" void EditorNativeShaderSourceVisualizer::_load_theme_settings() { diff --git a/editor/shader/shader_globals_editor.cpp b/editor/shader/shader_globals_editor.cpp index 48a93a922d..c854b56d82 100644 --- a/editor/shader/shader_globals_editor.cpp +++ b/editor/shader/shader_globals_editor.cpp @@ -37,9 +37,10 @@ #include "scene/gui/label.h" #include "scene/gui/line_edit.h" #include "scene/gui/margin_container.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/shader_language.h" -static const char *global_var_type_names[RS::GLOBAL_VAR_TYPE_MAX] = { +static const char *global_var_type_names[RSE::GLOBAL_VAR_TYPE_MAX] = { "bool", "bvec2", "bvec3", @@ -80,10 +81,10 @@ class ShaderGlobalsEditorInterface : public Object { undo_redo->create_action(TTR("Set Shader Global Variable")); undo_redo->add_do_method(RS::get_singleton(), "global_shader_parameter_set", p_name, p_value); undo_redo->add_undo_method(RS::get_singleton(), "global_shader_parameter_set", p_name, p_prev_value); - RS::GlobalShaderParameterType type = RS::get_singleton()->global_shader_parameter_get_type(p_name); + RSE::GlobalShaderParameterType type = RS::get_singleton()->global_shader_parameter_get_type(p_name); Dictionary gv; gv["type"] = global_var_type_names[type]; - if (type >= RS::GLOBAL_VAR_TYPE_SAMPLER2D) { + if (type >= RSE::GLOBAL_VAR_TYPE_SAMPLER2D) { Ref res = p_value; if (res.is_valid()) { gv["value"] = res->get_path(); @@ -138,105 +139,105 @@ protected: pinfo.name = variables[i]; switch (RS::get_singleton()->global_shader_parameter_get_type(variables[i])) { - case RS::GLOBAL_VAR_TYPE_BOOL: { + case RSE::GLOBAL_VAR_TYPE_BOOL: { pinfo.type = Variant::BOOL; } break; - case RS::GLOBAL_VAR_TYPE_BVEC2: { + case RSE::GLOBAL_VAR_TYPE_BVEC2: { pinfo.type = Variant::INT; pinfo.hint = PROPERTY_HINT_FLAGS; pinfo.hint_string = "x,y"; } break; - case RS::GLOBAL_VAR_TYPE_BVEC3: { + case RSE::GLOBAL_VAR_TYPE_BVEC3: { pinfo.type = Variant::INT; pinfo.hint = PROPERTY_HINT_FLAGS; pinfo.hint_string = "x,y,z"; } break; - case RS::GLOBAL_VAR_TYPE_BVEC4: { + case RSE::GLOBAL_VAR_TYPE_BVEC4: { pinfo.type = Variant::INT; pinfo.hint = PROPERTY_HINT_FLAGS; pinfo.hint_string = "x,y,z,w"; } break; - case RS::GLOBAL_VAR_TYPE_INT: { + case RSE::GLOBAL_VAR_TYPE_INT: { pinfo.type = Variant::INT; } break; - case RS::GLOBAL_VAR_TYPE_IVEC2: { + case RSE::GLOBAL_VAR_TYPE_IVEC2: { pinfo.type = Variant::VECTOR2I; } break; - case RS::GLOBAL_VAR_TYPE_IVEC3: { + case RSE::GLOBAL_VAR_TYPE_IVEC3: { pinfo.type = Variant::VECTOR3I; } break; - case RS::GLOBAL_VAR_TYPE_IVEC4: { + case RSE::GLOBAL_VAR_TYPE_IVEC4: { pinfo.type = Variant::VECTOR4I; } break; - case RS::GLOBAL_VAR_TYPE_RECT2I: { + case RSE::GLOBAL_VAR_TYPE_RECT2I: { pinfo.type = Variant::RECT2I; } break; - case RS::GLOBAL_VAR_TYPE_UINT: { + case RSE::GLOBAL_VAR_TYPE_UINT: { pinfo.type = Variant::INT; } break; - case RS::GLOBAL_VAR_TYPE_UVEC2: { + case RSE::GLOBAL_VAR_TYPE_UVEC2: { pinfo.type = Variant::VECTOR2I; } break; - case RS::GLOBAL_VAR_TYPE_UVEC3: { + case RSE::GLOBAL_VAR_TYPE_UVEC3: { pinfo.type = Variant::VECTOR3I; } break; - case RS::GLOBAL_VAR_TYPE_UVEC4: { + case RSE::GLOBAL_VAR_TYPE_UVEC4: { pinfo.type = Variant::VECTOR4I; } break; - case RS::GLOBAL_VAR_TYPE_FLOAT: { + case RSE::GLOBAL_VAR_TYPE_FLOAT: { pinfo.type = Variant::FLOAT; } break; - case RS::GLOBAL_VAR_TYPE_VEC2: { + case RSE::GLOBAL_VAR_TYPE_VEC2: { pinfo.type = Variant::VECTOR2; } break; - case RS::GLOBAL_VAR_TYPE_VEC3: { + case RSE::GLOBAL_VAR_TYPE_VEC3: { pinfo.type = Variant::VECTOR3; } break; - case RS::GLOBAL_VAR_TYPE_VEC4: { + case RSE::GLOBAL_VAR_TYPE_VEC4: { pinfo.type = Variant::VECTOR4; } break; - case RS::GLOBAL_VAR_TYPE_RECT2: { + case RSE::GLOBAL_VAR_TYPE_RECT2: { pinfo.type = Variant::RECT2; } break; - case RS::GLOBAL_VAR_TYPE_COLOR: { + case RSE::GLOBAL_VAR_TYPE_COLOR: { pinfo.type = Variant::COLOR; } break; - case RS::GLOBAL_VAR_TYPE_MAT2: { + case RSE::GLOBAL_VAR_TYPE_MAT2: { pinfo.type = Variant::PACKED_FLOAT32_ARRAY; } break; - case RS::GLOBAL_VAR_TYPE_MAT3: { + case RSE::GLOBAL_VAR_TYPE_MAT3: { pinfo.type = Variant::BASIS; } break; - case RS::GLOBAL_VAR_TYPE_TRANSFORM_2D: { + case RSE::GLOBAL_VAR_TYPE_TRANSFORM_2D: { pinfo.type = Variant::TRANSFORM2D; } break; - case RS::GLOBAL_VAR_TYPE_TRANSFORM: { + case RSE::GLOBAL_VAR_TYPE_TRANSFORM: { pinfo.type = Variant::TRANSFORM3D; } break; - case RS::GLOBAL_VAR_TYPE_MAT4: { + case RSE::GLOBAL_VAR_TYPE_MAT4: { pinfo.type = Variant::PROJECTION; } break; - case RS::GLOBAL_VAR_TYPE_SAMPLER2D: { + case RSE::GLOBAL_VAR_TYPE_SAMPLER2D: { pinfo.type = Variant::OBJECT; pinfo.hint = PROPERTY_HINT_RESOURCE_TYPE; pinfo.hint_string = "Texture2D"; } break; - case RS::GLOBAL_VAR_TYPE_SAMPLER2DARRAY: { + case RSE::GLOBAL_VAR_TYPE_SAMPLER2DARRAY: { pinfo.type = Variant::OBJECT; pinfo.hint = PROPERTY_HINT_RESOURCE_TYPE; pinfo.hint_string = "Texture2DArray,CompressedTexture2DArray"; } break; - case RS::GLOBAL_VAR_TYPE_SAMPLER3D: { + case RSE::GLOBAL_VAR_TYPE_SAMPLER3D: { pinfo.type = Variant::OBJECT; pinfo.hint = PROPERTY_HINT_RESOURCE_TYPE; pinfo.hint_string = "Texture3D"; } break; - case RS::GLOBAL_VAR_TYPE_SAMPLERCUBE: { + case RSE::GLOBAL_VAR_TYPE_SAMPLERCUBE: { pinfo.type = Variant::OBJECT; pinfo.hint = PROPERTY_HINT_RESOURCE_TYPE; pinfo.hint_string = "Cubemap,CompressedCubemap"; } break; - case RS::GLOBAL_VAR_TYPE_SAMPLEREXT: { + case RSE::GLOBAL_VAR_TYPE_SAMPLEREXT: { pinfo.type = Variant::OBJECT; pinfo.hint = PROPERTY_HINT_RESOURCE_TYPE; pinfo.hint_string = "ExternalTexture"; @@ -256,66 +257,66 @@ public: } }; -static Variant create_var(RS::GlobalShaderParameterType p_type) { +static Variant create_var(RSE::GlobalShaderParameterType p_type) { switch (p_type) { - case RS::GLOBAL_VAR_TYPE_BOOL: { + case RSE::GLOBAL_VAR_TYPE_BOOL: { return false; } - case RS::GLOBAL_VAR_TYPE_BVEC2: { + case RSE::GLOBAL_VAR_TYPE_BVEC2: { return 0; //bits } - case RS::GLOBAL_VAR_TYPE_BVEC3: { + case RSE::GLOBAL_VAR_TYPE_BVEC3: { return 0; //bits } - case RS::GLOBAL_VAR_TYPE_BVEC4: { + case RSE::GLOBAL_VAR_TYPE_BVEC4: { return 0; //bits } - case RS::GLOBAL_VAR_TYPE_INT: { + case RSE::GLOBAL_VAR_TYPE_INT: { return 0; //bits } - case RS::GLOBAL_VAR_TYPE_IVEC2: { + case RSE::GLOBAL_VAR_TYPE_IVEC2: { return Vector2i(); } - case RS::GLOBAL_VAR_TYPE_IVEC3: { + case RSE::GLOBAL_VAR_TYPE_IVEC3: { return Vector3i(); } - case RS::GLOBAL_VAR_TYPE_IVEC4: { + case RSE::GLOBAL_VAR_TYPE_IVEC4: { return Vector4i(); } - case RS::GLOBAL_VAR_TYPE_RECT2I: { + case RSE::GLOBAL_VAR_TYPE_RECT2I: { return Rect2i(); } - case RS::GLOBAL_VAR_TYPE_UINT: { + case RSE::GLOBAL_VAR_TYPE_UINT: { return 0; } - case RS::GLOBAL_VAR_TYPE_UVEC2: { + case RSE::GLOBAL_VAR_TYPE_UVEC2: { return Vector2i(); } - case RS::GLOBAL_VAR_TYPE_UVEC3: { + case RSE::GLOBAL_VAR_TYPE_UVEC3: { return Vector3i(); } - case RS::GLOBAL_VAR_TYPE_UVEC4: { + case RSE::GLOBAL_VAR_TYPE_UVEC4: { return Vector4i(); } - case RS::GLOBAL_VAR_TYPE_FLOAT: { + case RSE::GLOBAL_VAR_TYPE_FLOAT: { return 0.0; } - case RS::GLOBAL_VAR_TYPE_VEC2: { + case RSE::GLOBAL_VAR_TYPE_VEC2: { return Vector2(); } - case RS::GLOBAL_VAR_TYPE_VEC3: { + case RSE::GLOBAL_VAR_TYPE_VEC3: { return Vector3(); } - case RS::GLOBAL_VAR_TYPE_VEC4: { + case RSE::GLOBAL_VAR_TYPE_VEC4: { return Vector4(); } - case RS::GLOBAL_VAR_TYPE_RECT2: { + case RSE::GLOBAL_VAR_TYPE_RECT2: { return Rect2(); } - case RS::GLOBAL_VAR_TYPE_COLOR: { + case RSE::GLOBAL_VAR_TYPE_COLOR: { return Color(); } - case RS::GLOBAL_VAR_TYPE_MAT2: { + case RSE::GLOBAL_VAR_TYPE_MAT2: { Vector xform; xform.resize(4); xform.write[0] = 1; @@ -324,31 +325,31 @@ static Variant create_var(RS::GlobalShaderParameterType p_type) { xform.write[3] = 1; return xform; } - case RS::GLOBAL_VAR_TYPE_MAT3: { + case RSE::GLOBAL_VAR_TYPE_MAT3: { return Basis(); } - case RS::GLOBAL_VAR_TYPE_TRANSFORM_2D: { + case RSE::GLOBAL_VAR_TYPE_TRANSFORM_2D: { return Transform2D(); } - case RS::GLOBAL_VAR_TYPE_TRANSFORM: { + case RSE::GLOBAL_VAR_TYPE_TRANSFORM: { return Transform3D(); } - case RS::GLOBAL_VAR_TYPE_MAT4: { + case RSE::GLOBAL_VAR_TYPE_MAT4: { return Projection(); } - case RS::GLOBAL_VAR_TYPE_SAMPLER2D: { + case RSE::GLOBAL_VAR_TYPE_SAMPLER2D: { return ""; } - case RS::GLOBAL_VAR_TYPE_SAMPLER2DARRAY: { + case RSE::GLOBAL_VAR_TYPE_SAMPLER2DARRAY: { return ""; } - case RS::GLOBAL_VAR_TYPE_SAMPLER3D: { + case RSE::GLOBAL_VAR_TYPE_SAMPLER3D: { return ""; } - case RS::GLOBAL_VAR_TYPE_SAMPLERCUBE: { + case RSE::GLOBAL_VAR_TYPE_SAMPLERCUBE: { return ""; } - case RS::GLOBAL_VAR_TYPE_SAMPLEREXT: { + case RSE::GLOBAL_VAR_TYPE_SAMPLEREXT: { return ""; } default: { @@ -397,10 +398,10 @@ void ShaderGlobalsEditor::_variable_added() { EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); - Variant value = create_var(RS::GlobalShaderParameterType(variable_type->get_selected())); + Variant value = create_var(RSE::GlobalShaderParameterType(variable_type->get_selected())); undo_redo->create_action(TTR("Add Shader Global Parameter")); - undo_redo->add_do_method(RS::get_singleton(), "global_shader_parameter_add", var, RS::GlobalShaderParameterType(variable_type->get_selected()), value); + undo_redo->add_do_method(RS::get_singleton(), "global_shader_parameter_add", var, RSE::GlobalShaderParameterType(variable_type->get_selected()), value); undo_redo->add_undo_method(RS::get_singleton(), "global_shader_parameter_remove", var); Dictionary gv; gv["type"] = global_var_type_names[variable_type->get_selected()]; @@ -479,7 +480,7 @@ ShaderGlobalsEditor::ShaderGlobalsEditor() { variable_type->set_h_size_flags(SIZE_EXPAND_FILL); add_menu_hb->add_child(variable_type); - for (int i = 0; i < RS::GLOBAL_VAR_TYPE_MAX; i++) { + for (int i = 0; i < RSE::GLOBAL_VAR_TYPE_MAX; i++) { variable_type->add_item(global_var_type_names[i]); } diff --git a/editor/shader/text_shader_editor.cpp b/editor/shader/text_shader_editor.cpp index 3ca3423ea9..ceee96e596 100644 --- a/editor/shader/text_shader_editor.cpp +++ b/editor/shader/text_shader_editor.cpp @@ -39,6 +39,7 @@ #include "editor/themes/editor_scale.h" #include "editor/themes/editor_theme_manager.h" #include "scene/gui/split_container.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/shader_preprocessor.h" #include "servers/rendering/shader_types.h" @@ -261,15 +262,15 @@ void ShaderTextEditor::_load_theme_settings() { List built_ins; if (shader_inc.is_valid()) { - for (int i = 0; i < RenderingServer::SHADER_MAX; i++) { - for (const KeyValue &E : ShaderTypes::get_singleton()->get_functions(RenderingServer::ShaderMode(i))) { + for (int i = 0; i < RSE::SHADER_MAX; i++) { + for (const KeyValue &E : ShaderTypes::get_singleton()->get_functions(RSE::ShaderMode(i))) { for (const KeyValue &F : E.value.built_ins) { built_ins.push_back(F.key); } } { - const Vector &render_modes = ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(i)); + const Vector &render_modes = ShaderTypes::get_singleton()->get_modes(RSE::ShaderMode(i)); for (const ShaderLanguage::ModeInfo &mode_info : render_modes) { if (!mode_info.options.is_empty()) { @@ -283,7 +284,7 @@ void ShaderTextEditor::_load_theme_settings() { } { - const Vector &stencil_modes = ShaderTypes::get_singleton()->get_stencil_modes(RenderingServer::ShaderMode(i)); + const Vector &stencil_modes = ShaderTypes::get_singleton()->get_stencil_modes(RSE::ShaderMode(i)); for (const ShaderLanguage::ModeInfo &mode_info : stencil_modes) { if (!mode_info.options.is_empty()) { @@ -297,14 +298,14 @@ void ShaderTextEditor::_load_theme_settings() { } } } else if (shader.is_valid()) { - for (const KeyValue &E : ShaderTypes::get_singleton()->get_functions(RenderingServer::ShaderMode(shader->get_mode()))) { + for (const KeyValue &E : ShaderTypes::get_singleton()->get_functions(RSE::ShaderMode(shader->get_mode()))) { for (const KeyValue &F : E.value.built_ins) { built_ins.push_back(F.key); } } { - const Vector &shader_modes = ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(shader->get_mode())); + const Vector &shader_modes = ShaderTypes::get_singleton()->get_modes(RSE::ShaderMode(shader->get_mode())); for (const ShaderLanguage::ModeInfo &mode_info : shader_modes) { if (!mode_info.options.is_empty()) { @@ -318,7 +319,7 @@ void ShaderTextEditor::_load_theme_settings() { } { - const Vector &stencil_modes = ShaderTypes::get_singleton()->get_stencil_modes(RenderingServer::ShaderMode(shader->get_mode())); + const Vector &stencil_modes = ShaderTypes::get_singleton()->get_stencil_modes(RSE::ShaderMode(shader->get_mode())); for (const ShaderLanguage::ModeInfo &mode_info : stencil_modes) { if (!mode_info.options.is_empty()) { @@ -394,7 +395,7 @@ void ShaderTextEditor::_check_shader_mode() { } static ShaderLanguage::DataType _get_global_shader_uniform_type(const StringName &p_variable) { - RS::GlobalShaderParameterType gvt = RS::get_singleton()->global_shader_parameter_get_type(p_variable); + RSE::GlobalShaderParameterType gvt = RS::get_singleton()->global_shader_parameter_get_type(p_variable); return (ShaderLanguage::DataType)RS::global_shader_uniform_type_get_shader_datatype(gvt); } @@ -457,9 +458,9 @@ void ShaderTextEditor::_code_complete_script(const String &p_code, Listget_functions(RenderingServer::ShaderMode(shader->get_mode())); - comp_info.render_modes = ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(shader->get_mode())); - comp_info.stencil_modes = ShaderTypes::get_singleton()->get_stencil_modes(RenderingServer::ShaderMode(shader->get_mode())); + comp_info.functions = ShaderTypes::get_singleton()->get_functions(RSE::ShaderMode(shader->get_mode())); + comp_info.render_modes = ShaderTypes::get_singleton()->get_modes(RSE::ShaderMode(shader->get_mode())); + comp_info.stencil_modes = ShaderTypes::get_singleton()->get_stencil_modes(RSE::ShaderMode(shader->get_mode())); comp_info.shader_types = ShaderTypes::get_singleton()->get_types(); sl.complete(code, comp_info, r_options, calltip); @@ -569,9 +570,9 @@ void ShaderTextEditor::_validate_script() { comp_info.is_include = true; } else { Shader::Mode mode = shader->get_mode(); - comp_info.functions = ShaderTypes::get_singleton()->get_functions(RenderingServer::ShaderMode(mode)); - comp_info.render_modes = ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(mode)); - comp_info.stencil_modes = ShaderTypes::get_singleton()->get_stencil_modes(RenderingServer::ShaderMode(mode)); + comp_info.functions = ShaderTypes::get_singleton()->get_functions(RSE::ShaderMode(mode)); + comp_info.render_modes = ShaderTypes::get_singleton()->get_modes(RSE::ShaderMode(mode)); + comp_info.stencil_modes = ShaderTypes::get_singleton()->get_stencil_modes(RSE::ShaderMode(mode)); comp_info.shader_types = ShaderTypes::get_singleton()->get_types(); } diff --git a/editor/shader/visual_shader_editor_plugin.cpp b/editor/shader/visual_shader_editor_plugin.cpp index 113e9922d3..0cc75f155e 100644 --- a/editor/shader/visual_shader_editor_plugin.cpp +++ b/editor/shader/visual_shader_editor_plugin.cpp @@ -74,6 +74,7 @@ #include "scene/resources/visual_shader_nodes.h" #include "scene/resources/visual_shader_particle_nodes.h" #include "servers/display/display_server.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/shader_preprocessor.h" #include "servers/rendering/shader_types.h" @@ -6388,7 +6389,7 @@ void VisualShaderEditor::_preview_close_requested() { } static ShaderLanguage::DataType _visual_shader_editor_get_global_shader_uniform_type(const StringName &p_variable) { - RS::GlobalShaderParameterType gvt = RS::get_singleton()->global_shader_parameter_get_type(p_variable); + RSE::GlobalShaderParameterType gvt = RS::get_singleton()->global_shader_parameter_get_type(p_variable); return (ShaderLanguage::DataType)RS::global_shader_uniform_type_get_shader_datatype(gvt); } @@ -6403,9 +6404,9 @@ void VisualShaderEditor::_update_preview() { preview_text->set_text(code); ShaderLanguage::ShaderCompileInfo info; - info.functions = ShaderTypes::get_singleton()->get_functions(RenderingServer::ShaderMode(visual_shader->get_mode())); - info.render_modes = ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(visual_shader->get_mode())); - info.stencil_modes = ShaderTypes::get_singleton()->get_stencil_modes(RenderingServer::ShaderMode(visual_shader->get_mode())); + info.functions = ShaderTypes::get_singleton()->get_functions(RSE::ShaderMode(visual_shader->get_mode())); + info.render_modes = ShaderTypes::get_singleton()->get_modes(RSE::ShaderMode(visual_shader->get_mode())); + info.stencil_modes = ShaderTypes::get_singleton()->get_stencil_modes(RSE::ShaderMode(visual_shader->get_mode())); info.shader_types = ShaderTypes::get_singleton()->get_types(); info.global_shader_uniform_type_func = _visual_shader_editor_get_global_shader_uniform_type; diff --git a/main/main.cpp b/main/main.cpp index 2d3cffb571..de0c0ee2d8 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -75,6 +75,7 @@ #include "servers/movie_writer/movie_writer.h" #include "servers/register_server_types.h" #include "servers/rendering/rendering_device.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_default.h" #include "servers/text/text_server.h" #include "servers/text/text_server_dummy.h" @@ -3813,7 +3814,7 @@ void Main::setup_boot_logo() { if (show_logo) { //boot logo! const bool boot_logo_image = GLOBAL_DEF_BASIC("application/boot_splash/show_image", true); - const RenderingServer::SplashStretchMode boot_stretch_mode = GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "application/boot_splash/stretch_mode", PROPERTY_HINT_ENUM, "Disabled,Keep,Keep Width,Keep Height,Cover,Ignore"), 1); + const RSE::SplashStretchMode boot_stretch_mode = GLOBAL_DEF_BASIC(PropertyInfo(Variant::INT, "application/boot_splash/stretch_mode", PROPERTY_HINT_ENUM, "Disabled,Keep,Keep Width,Keep Height,Cover,Ignore"), 1); const bool boot_logo_filter = GLOBAL_DEF_BASIC("application/boot_splash/use_filter", true); String boot_logo_path = GLOBAL_DEF_BASIC(PropertyInfo(Variant::STRING, "application/boot_splash/image", PROPERTY_HINT_FILE, "*.png"), String()); @@ -3867,7 +3868,7 @@ void Main::setup_boot_logo() { MAIN_PRINT("Main: ClearColor"); RenderingServer::get_singleton()->set_default_clear_color(boot_bg_color); MAIN_PRINT("Main: Image"); - RenderingServer::get_singleton()->set_boot_image_with_stretch(splash, boot_bg_color, RenderingServer::SPLASH_STRETCH_MODE_DISABLED); + RenderingServer::get_singleton()->set_boot_image_with_stretch(splash, boot_bg_color, RSE::SPLASH_STRETCH_MODE_DISABLED); #endif } diff --git a/main/performance.cpp b/main/performance.cpp index 0e32c9a848..8d09e26738 100644 --- a/main/performance.cpp +++ b/main/performance.cpp @@ -261,27 +261,27 @@ double Performance::get_monitor(Monitor p_monitor) const { case OBJECT_ORPHAN_NODE_COUNT: return _get_orphan_node_count(); case RENDER_TOTAL_OBJECTS_IN_FRAME: - return RS::get_singleton()->get_rendering_info(RS::RENDERING_INFO_TOTAL_OBJECTS_IN_FRAME); + return RS::get_singleton()->get_rendering_info(RSE::RENDERING_INFO_TOTAL_OBJECTS_IN_FRAME); case RENDER_TOTAL_PRIMITIVES_IN_FRAME: - return RS::get_singleton()->get_rendering_info(RS::RENDERING_INFO_TOTAL_PRIMITIVES_IN_FRAME); + return RS::get_singleton()->get_rendering_info(RSE::RENDERING_INFO_TOTAL_PRIMITIVES_IN_FRAME); case RENDER_TOTAL_DRAW_CALLS_IN_FRAME: - return RS::get_singleton()->get_rendering_info(RS::RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME); + return RS::get_singleton()->get_rendering_info(RSE::RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME); case RENDER_VIDEO_MEM_USED: - return RS::get_singleton()->get_rendering_info(RS::RENDERING_INFO_VIDEO_MEM_USED); + return RS::get_singleton()->get_rendering_info(RSE::RENDERING_INFO_VIDEO_MEM_USED); case RENDER_TEXTURE_MEM_USED: - return RS::get_singleton()->get_rendering_info(RS::RENDERING_INFO_TEXTURE_MEM_USED); + return RS::get_singleton()->get_rendering_info(RSE::RENDERING_INFO_TEXTURE_MEM_USED); case RENDER_BUFFER_MEM_USED: - return RS::get_singleton()->get_rendering_info(RS::RENDERING_INFO_BUFFER_MEM_USED); + return RS::get_singleton()->get_rendering_info(RSE::RENDERING_INFO_BUFFER_MEM_USED); case PIPELINE_COMPILATIONS_CANVAS: - return RS::get_singleton()->get_rendering_info(RS::RENDERING_INFO_PIPELINE_COMPILATIONS_CANVAS); + return RS::get_singleton()->get_rendering_info(RSE::RENDERING_INFO_PIPELINE_COMPILATIONS_CANVAS); case PIPELINE_COMPILATIONS_MESH: - return RS::get_singleton()->get_rendering_info(RS::RENDERING_INFO_PIPELINE_COMPILATIONS_MESH); + return RS::get_singleton()->get_rendering_info(RSE::RENDERING_INFO_PIPELINE_COMPILATIONS_MESH); case PIPELINE_COMPILATIONS_SURFACE: - return RS::get_singleton()->get_rendering_info(RS::RENDERING_INFO_PIPELINE_COMPILATIONS_SURFACE); + return RS::get_singleton()->get_rendering_info(RSE::RENDERING_INFO_PIPELINE_COMPILATIONS_SURFACE); case PIPELINE_COMPILATIONS_DRAW: - return RS::get_singleton()->get_rendering_info(RS::RENDERING_INFO_PIPELINE_COMPILATIONS_DRAW); + return RS::get_singleton()->get_rendering_info(RSE::RENDERING_INFO_PIPELINE_COMPILATIONS_DRAW); case PIPELINE_COMPILATIONS_SPECIALIZATION: - return RS::get_singleton()->get_rendering_info(RS::RENDERING_INFO_PIPELINE_COMPILATIONS_SPECIALIZATION); + return RS::get_singleton()->get_rendering_info(RSE::RENDERING_INFO_PIPELINE_COMPILATIONS_SPECIALIZATION); #ifndef PHYSICS_2D_DISABLED case PHYSICS_2D_ACTIVE_OBJECTS: return PhysicsServer2D::get_singleton()->get_process_info(PhysicsServer2D::INFO_ACTIVE_OBJECTS); diff --git a/modules/betsy/image_compress_betsy.cpp b/modules/betsy/image_compress_betsy.cpp index e689d7dd2a..71b940d242 100644 --- a/modules/betsy/image_compress_betsy.cpp +++ b/modules/betsy/image_compress_betsy.cpp @@ -40,6 +40,7 @@ #include "bc6h.glsl.gen.h" #include "rgb_to_rgba.glsl.gen.h" #include "servers/display/display_server.h" +#include "servers/rendering/rendering_server.h" static Mutex betsy_mutex; static BetsyCompressor *betsy = nullptr; diff --git a/modules/csg/csg_shape.cpp b/modules/csg/csg_shape.cpp index 13226a8395..91e092e4da 100644 --- a/modules/csg/csg_shape.cpp +++ b/modules/csg/csg_shape.cpp @@ -36,6 +36,7 @@ #include "core/math/geometry_2d.h" #include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" #include "scene/resources/navigation_mesh.h" +#include "servers/rendering/rendering_server.h" #ifndef NAVIGATION_3D_DISABLED #include "servers/navigation_3d/navigation_server_3d.h" #endif // NAVIGATION_3D_DISABLED diff --git a/modules/gltf/gltf_document.cpp b/modules/gltf/gltf_document.cpp index 2943f890be..b812f04304 100644 --- a/modules/gltf/gltf_document.cpp +++ b/modules/gltf/gltf_document.cpp @@ -1436,7 +1436,7 @@ Error GLTFDocument::_parse_meshes(Ref p_state) { TypedArray instance_materials; for (int j = 0; j < primitives.size(); j++) { - uint64_t flags = RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES; + uint64_t flags = RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES; Dictionary mesh_prim = primitives[j]; Array array; @@ -1745,7 +1745,7 @@ Error GLTFDocument::_parse_meshes(Ref p_state) { } if (p_state->force_disable_compression || is_mesh_2d || !a.has("POSITION") || !a.has("NORMAL") || mesh_prim.has("targets") || (a.has("JOINTS_0") || a.has("JOINTS_1"))) { - flags &= ~RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES; + flags &= ~RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES; } Ref mesh_surface_tool; @@ -1761,19 +1761,19 @@ Error GLTFDocument::_parse_meshes(Ref p_state) { } array = mesh_surface_tool->commit_to_arrays(); - if ((flags & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) && a.has("NORMAL") && (a.has("TANGENT") || generate_tangents)) { + if ((flags & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) && a.has("NORMAL") && (a.has("TANGENT") || generate_tangents)) { // Compression is enabled, so let's validate that the normals and tangents are correct. Vector normals = array[Mesh::ARRAY_NORMAL]; Vector tangents = array[Mesh::ARRAY_TANGENT]; if (unlikely(tangents.size() < normals.size() * 4)) { ERR_PRINT("glTF import: Mesh " + itos(i) + " has invalid tangents."); - flags &= ~RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES; + flags &= ~RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES; } else { for (int vert = 0; vert < normals.size(); vert++) { Vector3 tan = Vector3(tangents[vert * 4 + 0], tangents[vert * 4 + 1], tangents[vert * 4 + 2]); if (std::abs(tan.dot(normals[vert])) > 0.0001) { // Tangent is not perpendicular to the normal, so we can't use compression. - flags &= ~RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES; + flags &= ~RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES; } } } diff --git a/modules/gltf/structures/gltf_mesh.h b/modules/gltf/structures/gltf_mesh.h index f176d50e5e..78cf626f59 100644 --- a/modules/gltf/structures/gltf_mesh.h +++ b/modules/gltf/structures/gltf_mesh.h @@ -32,6 +32,7 @@ #include "../gltf_defines.h" +#include "core/variant/typed_array.h" #include "scene/resources/3d/importer_mesh.h" class GLTFMesh : public Resource { diff --git a/modules/godot_physics_3d/godot_soft_body_3d.cpp b/modules/godot_physics_3d/godot_soft_body_3d.cpp index fc8dff5102..67b237e1e5 100644 --- a/modules/godot_physics_3d/godot_soft_body_3d.cpp +++ b/modules/godot_physics_3d/godot_soft_body_3d.cpp @@ -143,8 +143,8 @@ void GodotSoftBody3D::set_mesh(RID p_mesh) { Array arrays = RenderingServer::get_singleton()->mesh_surface_get_arrays(soft_mesh, 0); ERR_FAIL_COND(arrays.is_empty()); - const Vector &indices = arrays[RenderingServer::ARRAY_INDEX]; - const Vector &vertices = arrays[RenderingServer::ARRAY_VERTEX]; + const Vector &indices = arrays[RSE::ARRAY_INDEX]; + const Vector &vertices = arrays[RSE::ARRAY_VERTEX]; ERR_FAIL_COND_MSG(indices.is_empty(), "Soft body's mesh needs to have indices"); ERR_FAIL_COND_MSG(vertices.is_empty(), "Soft body's mesh needs to have vertices"); diff --git a/modules/gridmap/editor/grid_map_editor_plugin.cpp b/modules/gridmap/editor/grid_map_editor_plugin.cpp index 7c30633702..645a710226 100644 --- a/modules/gridmap/editor/grid_map_editor_plugin.cpp +++ b/modules/gridmap/editor/grid_map_editor_plugin.cpp @@ -54,6 +54,7 @@ #include "scene/gui/slider.h" #include "scene/gui/spin_box.h" #include "scene/main/window.h" +#include "servers/rendering/rendering_server.h" void GridMapEditor::_configure() { if (!node) { @@ -1206,10 +1207,10 @@ void GridMapEditor::_draw_grids(const Vector3 &cell_size) { } Array d; - d.resize(RS::ARRAY_MAX); - d[RS::ARRAY_VERTEX] = grid_points[i]; - d[RS::ARRAY_COLOR] = grid_colors[i]; - RenderingServer::get_singleton()->mesh_add_surface_from_arrays(grid[i], RenderingServer::PRIMITIVE_LINES, d); + d.resize(RSE::ARRAY_MAX); + d[RSE::ARRAY_VERTEX] = grid_points[i]; + d[RSE::ARRAY_COLOR] = grid_colors[i]; + RenderingServer::get_singleton()->mesh_add_surface_from_arrays(grid[i], RSE::PRIMITIVE_LINES, d); RenderingServer::get_singleton()->mesh_surface_set_material(grid[i], 0, indicator_mat->get_rid()); } } @@ -1335,7 +1336,7 @@ void GridMapEditor::_update_cursor_instance() { Ref mesh = node->get_mesh_library()->get_item_mesh(selected_palette); if (mesh.is_valid() && mesh->get_rid().is_valid()) { cursor_instance = RenderingServer::get_singleton()->instance_create2(mesh->get_rid(), scenario); - RS::ShadowCastingSetting cast_shadows = (RS::ShadowCastingSetting)node->get_mesh_library()->get_item_mesh_cast_shadow(selected_palette); + RSE::ShadowCastingSetting cast_shadows = (RSE::ShadowCastingSetting)node->get_mesh_library()->get_item_mesh_cast_shadow(selected_palette); RS::get_singleton()->instance_geometry_set_cast_shadows_setting(cursor_instance, cast_shadows); } } @@ -1741,7 +1742,7 @@ GridMapEditor::GridMapEditor() { } Array d; - d.resize(RS::ARRAY_MAX); + d.resize(RSE::ARRAY_MAX); default_color = Color(0.0, 0.565, 1.0); // blue 0.7, 0.7, 1.0 erase_color = Color(1.0, 0.2, 0.2); // red @@ -1779,34 +1780,34 @@ GridMapEditor::GridMapEditor() { selection_floor_mat->set_shading_mode(StandardMaterial3D::SHADING_MODE_UNSHADED); selection_floor_mat->set_flag(StandardMaterial3D::FLAG_DISABLE_FOG, true); - d[RS::ARRAY_VERTEX] = triangles; - RenderingServer::get_singleton()->mesh_add_surface_from_arrays(cursor_mesh, RS::PRIMITIVE_TRIANGLES, d); + d[RSE::ARRAY_VERTEX] = triangles; + RenderingServer::get_singleton()->mesh_add_surface_from_arrays(cursor_mesh, RSE::PRIMITIVE_TRIANGLES, d); RenderingServer::get_singleton()->mesh_surface_set_material(cursor_mesh, 0, cursor_inner_mat->get_rid()); - d[RS::ARRAY_VERTEX] = lines; - RenderingServer::get_singleton()->mesh_add_surface_from_arrays(cursor_mesh, RS::PRIMITIVE_LINES, d); + d[RSE::ARRAY_VERTEX] = lines; + RenderingServer::get_singleton()->mesh_add_surface_from_arrays(cursor_mesh, RSE::PRIMITIVE_LINES, d); RenderingServer::get_singleton()->mesh_surface_set_material(cursor_mesh, 1, cursor_outer_mat->get_rid()); - d[RS::ARRAY_VERTEX] = triangles; - RenderingServer::get_singleton()->mesh_add_surface_from_arrays(selection_mesh, RS::PRIMITIVE_TRIANGLES, d); + d[RSE::ARRAY_VERTEX] = triangles; + RenderingServer::get_singleton()->mesh_add_surface_from_arrays(selection_mesh, RSE::PRIMITIVE_TRIANGLES, d); RenderingServer::get_singleton()->mesh_surface_set_material(selection_mesh, 0, inner_mat->get_rid()); - d[RS::ARRAY_VERTEX] = lines; - RenderingServer::get_singleton()->mesh_add_surface_from_arrays(selection_mesh, RS::PRIMITIVE_LINES, d); + d[RSE::ARRAY_VERTEX] = lines; + RenderingServer::get_singleton()->mesh_add_surface_from_arrays(selection_mesh, RSE::PRIMITIVE_LINES, d); RenderingServer::get_singleton()->mesh_surface_set_material(selection_mesh, 1, outer_mat->get_rid()); - d[RS::ARRAY_VERTEX] = triangles; - RenderingServer::get_singleton()->mesh_add_surface_from_arrays(paste_mesh, RS::PRIMITIVE_TRIANGLES, d); + d[RSE::ARRAY_VERTEX] = triangles; + RenderingServer::get_singleton()->mesh_add_surface_from_arrays(paste_mesh, RSE::PRIMITIVE_TRIANGLES, d); RenderingServer::get_singleton()->mesh_surface_set_material(paste_mesh, 0, inner_mat->get_rid()); - d[RS::ARRAY_VERTEX] = lines; - RenderingServer::get_singleton()->mesh_add_surface_from_arrays(paste_mesh, RS::PRIMITIVE_LINES, d); + d[RSE::ARRAY_VERTEX] = lines; + RenderingServer::get_singleton()->mesh_add_surface_from_arrays(paste_mesh, RSE::PRIMITIVE_LINES, d); RenderingServer::get_singleton()->mesh_surface_set_material(paste_mesh, 1, outer_mat->get_rid()); for (int i = 0; i < 3; i++) { - d[RS::ARRAY_VERTEX] = square[i]; + d[RSE::ARRAY_VERTEX] = square[i]; selection_level_mesh[i] = RS::get_singleton()->mesh_create(); - RenderingServer::get_singleton()->mesh_add_surface_from_arrays(selection_level_mesh[i], RS::PRIMITIVE_LINES, d); + RenderingServer::get_singleton()->mesh_add_surface_from_arrays(selection_level_mesh[i], RSE::PRIMITIVE_LINES, d); RenderingServer::get_singleton()->mesh_surface_set_material(selection_level_mesh[i], 0, selection_floor_mat->get_rid()); } } diff --git a/modules/gridmap/grid_map.cpp b/modules/gridmap/grid_map.cpp index a3180927e8..226b1ff64a 100644 --- a/modules/gridmap/grid_map.cpp +++ b/modules/gridmap/grid_map.cpp @@ -792,7 +792,7 @@ bool GridMap::_octant_update(const OctantKey &p_key) { Octant::MultimeshInstance mmi; RID mm = RS::get_singleton()->multimesh_create(); - RS::get_singleton()->multimesh_allocate_data(mm, E.value.size(), RS::MULTIMESH_TRANSFORM_3D); + RS::get_singleton()->multimesh_allocate_data(mm, E.value.size(), RSE::MULTIMESH_TRANSFORM_3D); RS::get_singleton()->multimesh_set_mesh(mm, mesh_library->get_item_mesh(E.key)->get_rid()); int idx = 0; @@ -819,7 +819,7 @@ bool GridMap::_octant_update(const OctantKey &p_key) { RS::get_singleton()->instance_set_transform(instance, get_global_transform()); } - RS::ShadowCastingSetting cast_shadows = (RS::ShadowCastingSetting)mesh_library->get_item_mesh_cast_shadow(E.key); + RSE::ShadowCastingSetting cast_shadows = (RSE::ShadowCastingSetting)mesh_library->get_item_mesh_cast_shadow(E.key); RS::get_singleton()->instance_geometry_set_cast_shadows_setting(instance, cast_shadows); mmi.multimesh = mm; @@ -840,11 +840,11 @@ bool GridMap::_octant_update(const OctantKey &p_key) { } Array arr; - arr.resize(RS::ARRAY_MAX); - arr[RS::ARRAY_VERTEX] = col_debug; - arr[RS::ARRAY_COLOR] = colors; + arr.resize(RSE::ARRAY_MAX); + arr[RSE::ARRAY_VERTEX] = col_debug; + arr[RSE::ARRAY_COLOR] = colors; - RS::get_singleton()->mesh_add_surface_from_arrays(g.collision_debug, RS::PRIMITIVE_LINES, arr); + RS::get_singleton()->mesh_add_surface_from_arrays(g.collision_debug, RSE::PRIMITIVE_LINES, arr); if (st) { RS::get_singleton()->mesh_surface_set_material(g.collision_debug, 0, st->get_debug_collision_material()->get_rid()); } @@ -1540,14 +1540,14 @@ void GridMap::navmesh_parse_source_geometry(const Ref &p_navigat case PhysicsServer3D::SHAPE_SPHERE: { real_t radius = data; Array arr; - arr.resize(RS::ARRAY_MAX); + arr.resize(RSE::ARRAY_MAX); SphereMesh::create_mesh_array(arr, radius, radius * 2.0); p_source_geometry_data->add_mesh_array(arr, shapes[i]); } break; case PhysicsServer3D::SHAPE_BOX: { Vector3 extents = data; Array arr; - arr.resize(RS::ARRAY_MAX); + arr.resize(RSE::ARRAY_MAX); BoxMesh::create_mesh_array(arr, extents * 2.0); p_source_geometry_data->add_mesh_array(arr, shapes[i]); } break; @@ -1556,7 +1556,7 @@ void GridMap::navmesh_parse_source_geometry(const Ref &p_navigat real_t radius = dict["radius"]; real_t height = dict["height"]; Array arr; - arr.resize(RS::ARRAY_MAX); + arr.resize(RSE::ARRAY_MAX); CapsuleMesh::create_mesh_array(arr, radius, height); p_source_geometry_data->add_mesh_array(arr, shapes[i]); } break; @@ -1565,7 +1565,7 @@ void GridMap::navmesh_parse_source_geometry(const Ref &p_navigat real_t radius = dict["radius"]; real_t height = dict["height"]; Array arr; - arr.resize(RS::ARRAY_MAX); + arr.resize(RSE::ARRAY_MAX); CylinderMesh::create_mesh_array(arr, radius, radius, height); p_source_geometry_data->add_mesh_array(arr, shapes[i]); } break; diff --git a/modules/gridmap/grid_map.h b/modules/gridmap/grid_map.h index 0f64a9044f..62f40e221b 100644 --- a/modules/gridmap/grid_map.h +++ b/modules/gridmap/grid_map.h @@ -190,10 +190,10 @@ class GridMap : public Node3D { void _recreate_octant_data(); struct BakeLight { - RS::LightType type = RS::LightType::LIGHT_DIRECTIONAL; + RSE::LightType type = RSE::LightType::LIGHT_DIRECTIONAL; Vector3 pos; Vector3 dir; - float param[RS::LIGHT_PARAM_MAX] = {}; + float param[RSE::LIGHT_PARAM_MAX] = {}; }; _FORCE_INLINE_ Vector3 _octant_get_offset(const OctantKey &p_key) const { diff --git a/modules/jolt_physics/objects/jolt_soft_body_3d.cpp b/modules/jolt_physics/objects/jolt_soft_body_3d.cpp index 657f73f4f2..55272bac86 100644 --- a/modules/jolt_physics/objects/jolt_soft_body_3d.cpp +++ b/modules/jolt_physics/objects/jolt_soft_body_3d.cpp @@ -130,10 +130,10 @@ JPH::SoftBodySharedSettings *JoltSoftBody3D::_create_shared_settings() { const Array mesh_data = rendering->mesh_surface_get_arrays(mesh, 0); ERR_FAIL_COND_V(mesh_data.is_empty(), nullptr); - const PackedInt32Array mesh_indices = mesh_data[RenderingServer::ARRAY_INDEX]; + const PackedInt32Array mesh_indices = mesh_data[RSE::ARRAY_INDEX]; ERR_FAIL_COND_V(mesh_indices.is_empty(), nullptr); - const PackedVector3Array mesh_vertices = mesh_data[RenderingServer::ARRAY_VERTEX]; + const PackedVector3Array mesh_vertices = mesh_data[RSE::ARRAY_VERTEX]; ERR_FAIL_COND_V(mesh_vertices.is_empty(), nullptr); JPH::SoftBodySharedSettings *settings = new JPH::SoftBodySharedSettings(); diff --git a/modules/lightmapper_rd/lightmapper_rd.cpp b/modules/lightmapper_rd/lightmapper_rd.cpp index 7a065e7a64..d82e5f9a1d 100644 --- a/modules/lightmapper_rd/lightmapper_rd.cpp +++ b/modules/lightmapper_rd/lightmapper_rd.cpp @@ -42,6 +42,7 @@ #include "editor/file_system/editor_paths.h" #include "editor/settings/editor_settings.h" #include "servers/rendering/rendering_device_binds.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_globals.h" #if defined(VULKAN_ENABLED) @@ -496,7 +497,7 @@ void LightmapperRD::_create_acceleration_structures(RenderingDevice *rd, Size2i t.max_bounds[1] = taabb.position.y + MAX(taabb.size.y, 0.0001); t.max_bounds[2] = taabb.position.z + MAX(taabb.size.z, 0.0001); - t.cull_mode = RS::CULL_MODE_BACK; + t.cull_mode = RSE::CULL_MODE_BACK; RID material = mi.data.material[i]; if (material.is_valid()) { diff --git a/modules/navigation_3d/editor/navigation_obstacle_3d_editor_plugin.cpp b/modules/navigation_3d/editor/navigation_obstacle_3d_editor_plugin.cpp index 5b4eab3a92..98e76b4c74 100644 --- a/modules/navigation_3d/editor/navigation_obstacle_3d_editor_plugin.cpp +++ b/modules/navigation_3d/editor/navigation_obstacle_3d_editor_plugin.cpp @@ -41,6 +41,7 @@ #include "scene/gui/button.h" #include "scene/gui/dialogs.h" #include "servers/navigation_3d/navigation_server_3d.h" +#include "servers/rendering/rendering_server.h" bool NavigationObstacle3DGizmoPlugin::has_gizmo(Node3D *p_spatial) { return Object::cast_to(p_spatial) != nullptr; @@ -753,7 +754,7 @@ void NavigationObstacle3DEditorPlugin::redraw() { point_lines_mesh_array[Mesh::ARRAY_VERTEX] = point_lines_mesh_vertices; - rs->mesh_add_surface_from_arrays(point_lines_mesh_rid, RS::PRIMITIVE_LINES, point_lines_mesh_array); + rs->mesh_add_surface_from_arrays(point_lines_mesh_rid, RSE::PRIMITIVE_LINES, point_lines_mesh_array); rs->instance_set_surface_override_material(point_lines_instance_rid, 0, line_material->get_rid()); const Vector3 safe_scale = obstacle_node->get_global_basis().get_scale().abs().maxf(0.001); const Transform3D gt = Transform3D(Basis().scaled(safe_scale).rotated(Vector3(0.0, 1.0, 0.0), obstacle_node->get_global_rotation().y), obstacle_node->get_global_position()); @@ -780,7 +781,7 @@ void NavigationObstacle3DEditorPlugin::redraw() { point_handle_mesh_array[Mesh::ARRAY_VERTEX] = point_handle_mesh_vertices; - rs->mesh_add_surface_from_arrays(point_handle_mesh_rid, RS::PRIMITIVE_POINTS, point_handle_mesh_array); + rs->mesh_add_surface_from_arrays(point_handle_mesh_rid, RSE::PRIMITIVE_POINTS, point_handle_mesh_array); rs->instance_set_surface_override_material(point_handles_instance_rid, 0, handle_material->get_rid()); rs->instance_set_transform(point_handles_instance_rid, gt); } diff --git a/modules/openxr/extensions/openxr_composition_layer_extension.cpp b/modules/openxr/extensions/openxr_composition_layer_extension.cpp index 394190ef4f..2f8084b1cf 100644 --- a/modules/openxr/extensions/openxr_composition_layer_extension.cpp +++ b/modules/openxr/extensions/openxr_composition_layer_extension.cpp @@ -37,6 +37,7 @@ #include "openxr_fb_update_swapchain_extension.h" #include "platform/android/api/java_class_wrapper.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_globals.h" //////////////////////////////////////////////////////////////////////////// @@ -496,10 +497,10 @@ void OpenXRCompositionLayerExtension::CompositionLayer::on_pre_render() { OpenXRAPI *openxr_api = OpenXRAPI::get_singleton(); if (subviewport.viewport.is_valid() && openxr_api && openxr_api->is_running()) { - RS::ViewportUpdateMode update_mode = rs->viewport_get_update_mode(subviewport.viewport); - if (update_mode == RS::VIEWPORT_UPDATE_ONCE || update_mode == RS::VIEWPORT_UPDATE_ALWAYS) { + RSE::ViewportUpdateMode update_mode = rs->viewport_get_update_mode(subviewport.viewport); + if (update_mode == RSE::VIEWPORT_UPDATE_ONCE || update_mode == RSE::VIEWPORT_UPDATE_ALWAYS) { // Update our XR swapchain - if (update_and_acquire_swapchain(update_mode == RS::VIEWPORT_UPDATE_ONCE)) { + if (update_and_acquire_swapchain(update_mode == RSE::VIEWPORT_UPDATE_ONCE)) { // Render to our XR swapchain image. RID rt = rs->viewport_get_render_target(subviewport.viewport); RSG::texture_storage->render_target_set_override(rt, get_current_swapchain_texture(), RID(), RID(), RID()); diff --git a/modules/openxr/extensions/openxr_visibility_mask_extension.cpp b/modules/openxr/extensions/openxr_visibility_mask_extension.cpp index 434ced8cff..8f921ef745 100644 --- a/modules/openxr/extensions/openxr_visibility_mask_extension.cpp +++ b/modules/openxr/extensions/openxr_visibility_mask_extension.cpp @@ -277,12 +277,12 @@ void OpenXRVisibilityMaskExtension::_update_mesh() { // Update our mesh. Array arr; - arr.resize(RS::ARRAY_MAX); - arr[RS::ARRAY_VERTEX] = vertices; - arr[RS::ARRAY_INDEX] = indices; + arr.resize(RSE::ARRAY_MAX); + arr[RSE::ARRAY_VERTEX] = vertices; + arr[RSE::ARRAY_INDEX] = indices; rendering_server->mesh_clear(mesh); - rendering_server->mesh_add_surface_from_arrays(mesh, RS::PRIMITIVE_TRIANGLES, arr); + rendering_server->mesh_add_surface_from_arrays(mesh, RSE::PRIMITIVE_TRIANGLES, arr); rendering_server->mesh_surface_set_material(mesh, 0, material); // Set no longer dirty. diff --git a/modules/openxr/extensions/platform/openxr_opengl_extension.cpp b/modules/openxr/extensions/platform/openxr_opengl_extension.cpp index 082cca1d01..5e85b37401 100644 --- a/modules/openxr/extensions/platform/openxr_opengl_extension.cpp +++ b/modules/openxr/extensions/platform/openxr_opengl_extension.cpp @@ -34,6 +34,7 @@ #include "../../openxr_util.h" +#include "core/templates/rb_map.h" #include "drivers/gles3/effects/copy_effects.h" #include "drivers/gles3/storage/texture_storage.h" #include "servers/rendering/rendering_server.h" @@ -270,7 +271,7 @@ bool OpenXROpenGLExtension::get_swapchain_image_data(XrSwapchain p_swapchain, in for (uint64_t i = 0; i < swapchain_length; i++) { RID texture_rid = texture_storage->texture_create_from_native_handle( - p_array_size == 1 ? RS::TEXTURE_TYPE_2D : RS::TEXTURE_TYPE_LAYERED, + p_array_size == 1 ? RSE::TEXTURE_TYPE_2D : RSE::TEXTURE_TYPE_LAYERED, format, images[i].image, p_width, diff --git a/modules/openxr/extensions/spatial_entities/openxr_spatial_plane_tracking.cpp b/modules/openxr/extensions/spatial_entities/openxr_spatial_plane_tracking.cpp index e22e613ac1..b006a8c5e5 100644 --- a/modules/openxr/extensions/spatial_entities/openxr_spatial_plane_tracking.cpp +++ b/modules/openxr/extensions/spatial_entities/openxr_spatial_plane_tracking.cpp @@ -447,9 +447,9 @@ Ref OpenXRPlaneTracker::get_mesh() { } // Build our array with data. - arr.resize(RS::ARRAY_MAX); - arr[RS::ARRAY_VERTEX] = vertices; - arr[RS::ARRAY_INDEX] = mesh.indices; + arr.resize(RSE::ARRAY_MAX); + arr[RSE::ARRAY_VERTEX] = vertices; + arr[RSE::ARRAY_INDEX] = mesh.indices; // Create our array mesh. array_mesh.instantiate(); diff --git a/modules/openxr/scene/openxr_visibility_mask.cpp b/modules/openxr/scene/openxr_visibility_mask.cpp index b3006923c3..c90be93145 100644 --- a/modules/openxr/scene/openxr_visibility_mask.cpp +++ b/modules/openxr/scene/openxr_visibility_mask.cpp @@ -33,6 +33,7 @@ #include "../extensions/openxr_visibility_mask_extension.h" #include "../openxr_interface.h" #include "scene/3d/xr/xr_nodes.h" +#include "servers/rendering/rendering_server.h" void OpenXRVisibilityMask::_bind_methods() { } @@ -94,7 +95,7 @@ OpenXRVisibilityMask::OpenXRVisibilityMask() { openxr_interface->connect("session_stopping", callable_mp(this, &OpenXRVisibilityMask::_on_openxr_session_stopping)); } - RS::get_singleton()->instance_geometry_set_cast_shadows_setting(get_instance(), RS::SHADOW_CASTING_SETTING_OFF); + RS::get_singleton()->instance_geometry_set_cast_shadows_setting(get_instance(), RSE::SHADOW_CASTING_SETTING_OFF); } OpenXRVisibilityMask::~OpenXRVisibilityMask() { diff --git a/modules/raycast/raycast_occlusion_cull.cpp b/modules/raycast/raycast_occlusion_cull.cpp index a6c865fce7..a3b2465a63 100644 --- a/modules/raycast/raycast_occlusion_cull.cpp +++ b/modules/raycast/raycast_occlusion_cull.cpp @@ -631,7 +631,7 @@ RID RaycastOcclusionCull::buffer_get_debug_texture(RID p_buffer) { //////////////////////////////////////////////////////// -void RaycastOcclusionCull::set_build_quality(RS::ViewportOcclusionCullingBuildQuality p_quality) { +void RaycastOcclusionCull::set_build_quality(RSE::ViewportOcclusionCullingBuildQuality p_quality) { if (build_quality == p_quality) { return; } @@ -657,7 +657,7 @@ RaycastOcclusionCull::RaycastOcclusionCull() { raycast_singleton = this; int default_quality = GLOBAL_GET("rendering/occlusion_culling/bvh_build_quality"); _jitter_enabled = GLOBAL_GET("rendering/occlusion_culling/jitter_projection"); - build_quality = RS::ViewportOcclusionCullingBuildQuality(default_quality); + build_quality = RSE::ViewportOcclusionCullingBuildQuality(default_quality); } RaycastOcclusionCull::~RaycastOcclusionCull() { diff --git a/modules/raycast/raycast_occlusion_cull.h b/modules/raycast/raycast_occlusion_cull.h index 51c1a196ea..a1c8803d32 100644 --- a/modules/raycast/raycast_occlusion_cull.h +++ b/modules/raycast/raycast_occlusion_cull.h @@ -157,7 +157,7 @@ private: RID_PtrOwner occluder_owner; HashMap scenarios; HashMap buffers; - RS::ViewportOcclusionCullingBuildQuality build_quality; + RSE::ViewportOcclusionCullingBuildQuality build_quality; bool _jitter_enabled = false; void _init_embree(); @@ -184,7 +184,7 @@ public: virtual RID buffer_get_debug_texture(RID p_buffer) override; - virtual void set_build_quality(RS::ViewportOcclusionCullingBuildQuality p_quality) override; + virtual void set_build_quality(RSE::ViewportOcclusionCullingBuildQuality p_quality) override; RaycastOcclusionCull(); ~RaycastOcclusionCull(); diff --git a/modules/webxr/webxr_interface_js.cpp b/modules/webxr/webxr_interface_js.cpp index 216ecaca08..950e2a2cf2 100644 --- a/modules/webxr/webxr_interface_js.cpp +++ b/modules/webxr/webxr_interface_js.cpp @@ -569,7 +569,7 @@ RID WebXRInterfaceJS::_get_texture(unsigned int p_texture_id) { Size2 texture_size = get_render_target_size(); RID texture = texture_storage->texture_create_from_native_handle( - view_count == 1 ? RS::TEXTURE_TYPE_2D : RS::TEXTURE_TYPE_LAYERED, + view_count == 1 ? RSE::TEXTURE_TYPE_2D : RSE::TEXTURE_TYPE_LAYERED, Image::FORMAT_RGBA8, p_texture_id, (int)texture_size.width, diff --git a/platform/ios/export/export_plugin.cpp b/platform/ios/export/export_plugin.cpp index 2af484eae8..d2d4195d53 100644 --- a/platform/ios/export/export_plugin.cpp +++ b/platform/ios/export/export_plugin.cpp @@ -98,28 +98,28 @@ HashMap EditorExportPlatformIOS::get_custom_project_settings(co switch (image_scale_mode) { case 0: { String logo_path = get_project_setting(p_preset, "application/boot_splash/image"); - RenderingServer::SplashStretchMode stretch_mode = get_project_setting(p_preset, "application/boot_splash/stretch_mode"); + RSE::SplashStretchMode stretch_mode = get_project_setting(p_preset, "application/boot_splash/stretch_mode"); // If custom logo is not specified, Godot does not scale default one, so we should do the same. if (logo_path.is_empty()) { value = "center"; } else { switch (stretch_mode) { - case RenderingServer::SplashStretchMode::SPLASH_STRETCH_MODE_DISABLED: { + case RSE::SplashStretchMode::SPLASH_STRETCH_MODE_DISABLED: { value = "center"; } break; - case RenderingServer::SplashStretchMode::SPLASH_STRETCH_MODE_KEEP: { + case RSE::SplashStretchMode::SPLASH_STRETCH_MODE_KEEP: { value = "scaleAspectFit"; } break; - case RenderingServer::SplashStretchMode::SPLASH_STRETCH_MODE_KEEP_WIDTH: { + case RSE::SplashStretchMode::SPLASH_STRETCH_MODE_KEEP_WIDTH: { value = "scaleAspectFit"; } break; - case RenderingServer::SplashStretchMode::SPLASH_STRETCH_MODE_KEEP_HEIGHT: { + case RSE::SplashStretchMode::SPLASH_STRETCH_MODE_KEEP_HEIGHT: { value = "scaleAspectFit"; } break; - case RenderingServer::SplashStretchMode::SPLASH_STRETCH_MODE_COVER: { + case RSE::SplashStretchMode::SPLASH_STRETCH_MODE_COVER: { value = "scaleAspectFill"; } break; - case RenderingServer::SplashStretchMode::SPLASH_STRETCH_MODE_IGNORE: { + case RSE::SplashStretchMode::SPLASH_STRETCH_MODE_IGNORE: { value = "scaleToFill"; } break; } diff --git a/platform/linuxbsd/wayland/display_server_wayland.cpp b/platform/linuxbsd/wayland/display_server_wayland.cpp index a8a171f186..9165c83171 100644 --- a/platform/linuxbsd/wayland/display_server_wayland.cpp +++ b/platform/linuxbsd/wayland/display_server_wayland.cpp @@ -45,6 +45,7 @@ #include "core/os/main_loop.h" #include "servers/display/native_menu.h" #include "servers/rendering/dummy/rasterizer_dummy.h" +#include "servers/rendering/rendering_server.h" #ifdef RD_ENABLED #ifdef VULKAN_ENABLED diff --git a/platform/web/export/export_plugin.cpp b/platform/web/export/export_plugin.cpp index df502388ec..6cda652d3e 100644 --- a/platform/web/export/export_plugin.cpp +++ b/platform/web/export/export_plugin.cpp @@ -175,8 +175,8 @@ void EditorExportPlatformWeb::_fix_html(Vector &p_html, const Ref godot_splash_classes; godot_splash_classes.push_back("show-image--" + String(get_project_setting(p_preset, "application/boot_splash/show_image"))); - RenderingServer::SplashStretchMode boot_splash_stretch_mode = get_project_setting(p_preset, "application/boot_splash/stretch_mode"); - godot_splash_classes.push_back("fullsize--" + String(((boot_splash_stretch_mode != RenderingServer::SplashStretchMode::SPLASH_STRETCH_MODE_DISABLED) ? "true" : "false"))); + RSE::SplashStretchMode boot_splash_stretch_mode = get_project_setting(p_preset, "application/boot_splash/stretch_mode"); + godot_splash_classes.push_back("fullsize--" + String(((boot_splash_stretch_mode != RSE::SplashStretchMode::SPLASH_STRETCH_MODE_DISABLED) ? "true" : "false"))); godot_splash_classes.push_back("use-filter--" + String(get_project_setting(p_preset, "application/boot_splash/use_filter"))); replaces["$GODOT_SPLASH_CLASSES"] = String(" ").join(godot_splash_classes); replaces["$GODOT_SPLASH"] = p_name + ".png"; diff --git a/platform/windows/display_server_windows.h b/platform/windows/display_server_windows.h index 8c7cf0be57..a942c8bb68 100644 --- a/platform/windows/display_server_windows.h +++ b/platform/windows/display_server_windows.h @@ -45,7 +45,6 @@ #include "servers/display/display_server.h" #include "servers/rendering/renderer_compositor.h" #include "servers/rendering/renderer_rd/renderer_compositor_rd.h" -#include "servers/rendering/rendering_server.h" #ifdef XAUDIO2_ENABLED #include "drivers/xaudio2/audio_driver_xaudio2.h" diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index 5de0657e06..c940549302 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -49,6 +49,7 @@ #include "drivers/windows/thread_windows.h" #include "main/main.h" #include "servers/audio/audio_server.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_default.h" #include "servers/text/text_server.h" diff --git a/scene/2d/back_buffer_copy.cpp b/scene/2d/back_buffer_copy.cpp index 9561971def..91cd1e103c 100644 --- a/scene/2d/back_buffer_copy.cpp +++ b/scene/2d/back_buffer_copy.cpp @@ -30,6 +30,8 @@ #include "back_buffer_copy.h" +#include "servers/rendering/rendering_server.h" + void BackBufferCopy::_update_copy_mode() { switch (copy_mode) { case COPY_MODE_DISABLED: { diff --git a/scene/2d/canvas_group.cpp b/scene/2d/canvas_group.cpp index 42e5c16e94..a5e18cc131 100644 --- a/scene/2d/canvas_group.cpp +++ b/scene/2d/canvas_group.cpp @@ -30,11 +30,13 @@ #include "canvas_group.h" +#include "servers/rendering/rendering_server.h" + void CanvasGroup::set_fit_margin(real_t p_fit_margin) { ERR_FAIL_COND(p_fit_margin < 0.0); fit_margin = p_fit_margin; - RS::get_singleton()->canvas_item_set_canvas_group_mode(get_canvas_item(), RS::CANVAS_GROUP_MODE_TRANSPARENT, clear_margin, true, fit_margin, use_mipmaps); + RS::get_singleton()->canvas_item_set_canvas_group_mode(get_canvas_item(), RSE::CANVAS_GROUP_MODE_TRANSPARENT, clear_margin, true, fit_margin, use_mipmaps); queue_redraw(); } @@ -47,7 +49,7 @@ void CanvasGroup::set_clear_margin(real_t p_clear_margin) { ERR_FAIL_COND(p_clear_margin < 0.0); clear_margin = p_clear_margin; - RS::get_singleton()->canvas_item_set_canvas_group_mode(get_canvas_item(), RS::CANVAS_GROUP_MODE_TRANSPARENT, clear_margin, true, fit_margin, use_mipmaps); + RS::get_singleton()->canvas_item_set_canvas_group_mode(get_canvas_item(), RSE::CANVAS_GROUP_MODE_TRANSPARENT, clear_margin, true, fit_margin, use_mipmaps); queue_redraw(); } @@ -58,7 +60,7 @@ real_t CanvasGroup::get_clear_margin() const { void CanvasGroup::set_use_mipmaps(bool p_use_mipmaps) { use_mipmaps = p_use_mipmaps; - RS::get_singleton()->canvas_item_set_canvas_group_mode(get_canvas_item(), RS::CANVAS_GROUP_MODE_TRANSPARENT, clear_margin, true, fit_margin, use_mipmaps); + RS::get_singleton()->canvas_item_set_canvas_group_mode(get_canvas_item(), RSE::CANVAS_GROUP_MODE_TRANSPARENT, clear_margin, true, fit_margin, use_mipmaps); } bool CanvasGroup::is_using_mipmaps() const { return use_mipmaps; @@ -116,5 +118,5 @@ CanvasGroup::CanvasGroup() { set_fit_margin(10.0); //sets things } CanvasGroup::~CanvasGroup() { - RS::get_singleton()->canvas_item_set_canvas_group_mode(get_canvas_item(), RS::CANVAS_GROUP_MODE_DISABLED); + RS::get_singleton()->canvas_item_set_canvas_group_mode(get_canvas_item(), RSE::CANVAS_GROUP_MODE_DISABLED); } diff --git a/scene/2d/canvas_modulate.cpp b/scene/2d/canvas_modulate.cpp index 80d613d4ae..f0c6a65068 100644 --- a/scene/2d/canvas_modulate.cpp +++ b/scene/2d/canvas_modulate.cpp @@ -30,6 +30,8 @@ #include "canvas_modulate.h" +#include "servers/rendering/rendering_server.h" + void CanvasModulate::_on_in_canvas_visibility_changed(bool p_new_visibility) { RID canvas = get_canvas(); StringName group_name = "_canvas_modulate_" + itos(canvas.get_id()); diff --git a/scene/2d/cpu_particles_2d.cpp b/scene/2d/cpu_particles_2d.cpp index ef28d67937..dd275d4f51 100644 --- a/scene/2d/cpu_particles_2d.cpp +++ b/scene/2d/cpu_particles_2d.cpp @@ -39,6 +39,7 @@ #include "scene/resources/curve_texture.h" #include "scene/resources/gradient_texture.h" #include "scene/resources/particle_process_material.h" +#include "servers/rendering/rendering_server.h" void CPUParticles2D::set_emitting(bool p_emitting) { if (emitting == p_emitting) { @@ -77,7 +78,7 @@ void CPUParticles2D::set_amount(int p_amount) { } particle_data.resize((8 + 4 + 4) * p_amount); - RS::get_singleton()->multimesh_allocate_data(multimesh, p_amount, RS::MULTIMESH_TRANSFORM_2D, true, true); + RS::get_singleton()->multimesh_allocate_data(multimesh, p_amount, RSE::MULTIMESH_TRANSFORM_2D, true, true); particle_order.resize(p_amount); } @@ -219,14 +220,14 @@ void CPUParticles2D::_update_mesh_texture() { Vector indices = { 0, 1, 2, 2, 3, 0 }; Array arr; - arr.resize(RS::ARRAY_MAX); - arr[RS::ARRAY_VERTEX] = vertices; - arr[RS::ARRAY_TEX_UV] = uvs; - arr[RS::ARRAY_COLOR] = colors; - arr[RS::ARRAY_INDEX] = indices; + arr.resize(RSE::ARRAY_MAX); + arr[RSE::ARRAY_VERTEX] = vertices; + arr[RSE::ARRAY_TEX_UV] = uvs; + arr[RSE::ARRAY_COLOR] = colors; + arr[RSE::ARRAY_INDEX] = indices; RS::get_singleton()->mesh_clear(mesh); - RS::get_singleton()->mesh_add_surface_from_arrays(mesh, RS::PRIMITIVE_TRIANGLES, arr); + RS::get_singleton()->mesh_add_surface_from_arrays(mesh, RSE::PRIMITIVE_TRIANGLES, arr); } void CPUParticles2D::set_texture(const Ref &p_texture) { diff --git a/scene/2d/gpu_particles_2d.cpp b/scene/2d/gpu_particles_2d.cpp index 3567baf8c9..0e13c1dfbe 100644 --- a/scene/2d/gpu_particles_2d.cpp +++ b/scene/2d/gpu_particles_2d.cpp @@ -37,6 +37,7 @@ #include "scene/resources/curve_texture.h" #include "scene/resources/gradient_texture.h" #include "scene/resources/particle_process_material.h" +#include "servers/rendering/rendering_server.h" void GPUParticles2D::set_emitting(bool p_emitting) { // Do not return even if `p_emitting == emitting` because `emitting` is just an approximation. @@ -181,7 +182,7 @@ void GPUParticles2D::set_trail_enabled(bool p_enabled) { queue_redraw(); update_configuration_warnings(); - RS::get_singleton()->particles_set_transform_align(particles, p_enabled ? RS::PARTICLES_TRANSFORM_ALIGN_Y_TO_VELOCITY : RS::PARTICLES_TRANSFORM_ALIGN_DISABLED); + RS::get_singleton()->particles_set_transform_align(particles, p_enabled ? RSE::PARTICLES_TRANSFORM_ALIGN_Y_TO_VELOCITY : RSE::PARTICLES_TRANSFORM_ALIGN_DISABLED); } void GPUParticles2D::set_trail_lifetime(double p_seconds) { @@ -307,7 +308,7 @@ double GPUParticles2D::get_speed_scale() const { void GPUParticles2D::set_draw_order(DrawOrder p_order) { draw_order = p_order; - RS::get_singleton()->particles_set_draw_order(particles, RS::ParticlesDrawOrder(p_order)); + RS::get_singleton()->particles_set_draw_order(particles, RSE::ParticlesDrawOrder(p_order)); } GPUParticles2D::DrawOrder GPUParticles2D::get_draw_order() const { @@ -669,14 +670,14 @@ void GPUParticles2D::_notification(int p_what) { } Array arr; - arr.resize(RS::ARRAY_MAX); - arr[RS::ARRAY_VERTEX] = points; - arr[RS::ARRAY_TEX_UV] = uvs; - arr[RS::ARRAY_BONES] = bone_indices; - arr[RS::ARRAY_WEIGHTS] = bone_weights; - arr[RS::ARRAY_INDEX] = indices; + arr.resize(RSE::ARRAY_MAX); + arr[RSE::ARRAY_VERTEX] = points; + arr[RSE::ARRAY_TEX_UV] = uvs; + arr[RSE::ARRAY_BONES] = bone_indices; + arr[RSE::ARRAY_WEIGHTS] = bone_weights; + arr[RSE::ARRAY_INDEX] = indices; - RS::get_singleton()->mesh_add_surface_from_arrays(mesh, RS::PRIMITIVE_TRIANGLES, arr, Array(), Dictionary(), RS::ARRAY_FLAG_USE_2D_VERTICES); + RS::get_singleton()->mesh_add_surface_from_arrays(mesh, RSE::PRIMITIVE_TRIANGLES, arr, Array(), Dictionary(), RSE::ARRAY_FLAG_USE_2D_VERTICES); Vector xforms; for (int i = 0; i <= trail_sections; i++) { @@ -718,12 +719,12 @@ void GPUParticles2D::_notification(int p_what) { Vector indices = { 0, 1, 2, 0, 2, 3 }; Array arr; - arr.resize(RS::ARRAY_MAX); - arr[RS::ARRAY_VERTEX] = points; - arr[RS::ARRAY_TEX_UV] = uvs; - arr[RS::ARRAY_INDEX] = indices; + arr.resize(RSE::ARRAY_MAX); + arr[RSE::ARRAY_VERTEX] = points; + arr[RSE::ARRAY_TEX_UV] = uvs; + arr[RSE::ARRAY_INDEX] = indices; - RS::get_singleton()->mesh_add_surface_from_arrays(mesh, RS::PRIMITIVE_TRIANGLES, arr, Array(), Dictionary(), RS::ARRAY_FLAG_USE_2D_VERTICES); + RS::get_singleton()->mesh_add_surface_from_arrays(mesh, RSE::PRIMITIVE_TRIANGLES, arr, Array(), Dictionary(), RSE::ARRAY_FLAG_USE_2D_VERTICES); RS::get_singleton()->particles_set_trail_bind_poses(particles, Vector()); } RS::get_singleton()->canvas_item_add_particles(get_canvas_item(), particles, texture_rid); @@ -985,7 +986,7 @@ void GPUParticles2D::_bind_methods() { GPUParticles2D::GPUParticles2D() { particles = RS::get_singleton()->particles_create(); - RS::get_singleton()->particles_set_mode(particles, RS::PARTICLES_MODE_2D); + RS::get_singleton()->particles_set_mode(particles, RSE::PARTICLES_MODE_2D); mesh = RS::get_singleton()->mesh_create(); RS::get_singleton()->particles_set_draw_passes(particles, 1); diff --git a/scene/2d/gpu_particles_2d.h b/scene/2d/gpu_particles_2d.h index db3286a013..60ef3fb7cf 100644 --- a/scene/2d/gpu_particles_2d.h +++ b/scene/2d/gpu_particles_2d.h @@ -183,11 +183,11 @@ public: uint32_t get_seed() const; enum EmitFlags { - EMIT_FLAG_POSITION = RS::PARTICLES_EMIT_FLAG_POSITION, - EMIT_FLAG_ROTATION_SCALE = RS::PARTICLES_EMIT_FLAG_ROTATION_SCALE, - EMIT_FLAG_VELOCITY = RS::PARTICLES_EMIT_FLAG_VELOCITY, - EMIT_FLAG_COLOR = RS::PARTICLES_EMIT_FLAG_COLOR, - EMIT_FLAG_CUSTOM = RS::PARTICLES_EMIT_FLAG_CUSTOM + EMIT_FLAG_POSITION = RSE::PARTICLES_EMIT_FLAG_POSITION, + EMIT_FLAG_ROTATION_SCALE = RSE::PARTICLES_EMIT_FLAG_ROTATION_SCALE, + EMIT_FLAG_VELOCITY = RSE::PARTICLES_EMIT_FLAG_VELOCITY, + EMIT_FLAG_COLOR = RSE::PARTICLES_EMIT_FLAG_COLOR, + EMIT_FLAG_CUSTOM = RSE::PARTICLES_EMIT_FLAG_CUSTOM }; void emit_particle(const Transform2D &p_transform, const Vector2 &p_velocity, const Color &p_color, const Color &p_custom, uint32_t p_emit_flags); diff --git a/scene/2d/light_2d.cpp b/scene/2d/light_2d.cpp index 2fa9a79299..a89145cfb5 100644 --- a/scene/2d/light_2d.cpp +++ b/scene/2d/light_2d.cpp @@ -30,6 +30,8 @@ #include "light_2d.h" +#include "servers/rendering/rendering_server.h" + void Light2D::owner_changed_notify() { // For cases where owner changes _after_ entering tree (as example, editor editing). _update_light_visibility(); @@ -170,7 +172,7 @@ bool Light2D::is_shadow_enabled() const { void Light2D::set_shadow_filter(ShadowFilter p_filter) { ERR_FAIL_INDEX(p_filter, SHADOW_FILTER_MAX); shadow_filter = p_filter; - RS::get_singleton()->canvas_light_set_shadow_filter(canvas_light, RS::CanvasLightShadowFilter(p_filter)); + RS::get_singleton()->canvas_light_set_shadow_filter(canvas_light, RSE::CanvasLightShadowFilter(p_filter)); notify_property_list_changed(); } @@ -189,7 +191,7 @@ Color Light2D::get_shadow_color() const { void Light2D::set_blend_mode(BlendMode p_mode) { blend_mode = p_mode; - RS::get_singleton()->canvas_light_set_blend_mode(_get_light(), RS::CanvasLightBlendMode(p_mode)); + RS::get_singleton()->canvas_light_set_blend_mode(_get_light(), RSE::CanvasLightBlendMode(p_mode)); } Light2D::BlendMode Light2D::get_blend_mode() const { @@ -306,10 +308,10 @@ void Light2D::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "energy", PROPERTY_HINT_RANGE, "0,16,0.01,or_greater"), "set_energy", "get_energy"); ADD_PROPERTY(PropertyInfo(Variant::INT, "blend_mode", PROPERTY_HINT_ENUM, "Add,Subtract,Mix"), "set_blend_mode", "get_blend_mode"); ADD_GROUP("Range", "range_"); - ADD_PROPERTY(PropertyInfo(Variant::INT, "range_z_min", PROPERTY_HINT_RANGE, itos(RS::CANVAS_ITEM_Z_MIN) + "," + itos(RS::CANVAS_ITEM_Z_MAX) + ",1"), "set_z_range_min", "get_z_range_min"); - ADD_PROPERTY(PropertyInfo(Variant::INT, "range_z_max", PROPERTY_HINT_RANGE, itos(RS::CANVAS_ITEM_Z_MIN) + "," + itos(RS::CANVAS_ITEM_Z_MAX) + ",1"), "set_z_range_max", "get_z_range_max"); - ADD_PROPERTY(PropertyInfo(Variant::INT, "range_layer_min", PROPERTY_HINT_RANGE, itos(RS::CANVAS_LAYER_MIN) + "," + itos(RS::CANVAS_LAYER_MAX) + ",1"), "set_layer_range_min", "get_layer_range_min"); - ADD_PROPERTY(PropertyInfo(Variant::INT, "range_layer_max", PROPERTY_HINT_RANGE, itos(RS::CANVAS_LAYER_MIN) + "," + itos(RS::CANVAS_LAYER_MAX) + ",1"), "set_layer_range_max", "get_layer_range_max"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "range_z_min", PROPERTY_HINT_RANGE, itos(RSE::CANVAS_ITEM_Z_MIN) + "," + itos(RSE::CANVAS_ITEM_Z_MAX) + ",1"), "set_z_range_min", "get_z_range_min"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "range_z_max", PROPERTY_HINT_RANGE, itos(RSE::CANVAS_ITEM_Z_MIN) + "," + itos(RSE::CANVAS_ITEM_Z_MAX) + ",1"), "set_z_range_max", "get_z_range_max"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "range_layer_min", PROPERTY_HINT_RANGE, itos(RSE::CANVAS_LAYER_MIN) + "," + itos(RSE::CANVAS_LAYER_MAX) + ",1"), "set_layer_range_min", "get_layer_range_min"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "range_layer_max", PROPERTY_HINT_RANGE, itos(RSE::CANVAS_LAYER_MIN) + "," + itos(RSE::CANVAS_LAYER_MAX) + ",1"), "set_layer_range_max", "get_layer_range_max"); ADD_PROPERTY(PropertyInfo(Variant::INT, "range_item_cull_mask", PROPERTY_HINT_LAYERS_2D_RENDER), "set_item_cull_mask", "get_item_cull_mask"); ADD_GROUP("Shadow", "shadow_"); @@ -481,7 +483,7 @@ void PointLight2D::_bind_methods() { } PointLight2D::PointLight2D() { - RS::get_singleton()->canvas_light_set_mode(_get_light(), RS::CANVAS_LIGHT_MODE_POINT); + RS::get_singleton()->canvas_light_set_mode(_get_light(), RSE::CANVAS_LIGHT_MODE_POINT); set_hide_clip_children(true); } @@ -505,7 +507,7 @@ void DirectionalLight2D::_bind_methods() { } DirectionalLight2D::DirectionalLight2D() { - RS::get_singleton()->canvas_light_set_mode(_get_light(), RS::CANVAS_LIGHT_MODE_DIRECTIONAL); + RS::get_singleton()->canvas_light_set_mode(_get_light(), RSE::CANVAS_LIGHT_MODE_DIRECTIONAL); set_max_distance(max_distance); // Update RenderingServer. set_hide_clip_children(true); } diff --git a/scene/2d/light_occluder_2d.cpp b/scene/2d/light_occluder_2d.cpp index 999bf6fe6e..bc405f0308 100644 --- a/scene/2d/light_occluder_2d.cpp +++ b/scene/2d/light_occluder_2d.cpp @@ -32,6 +32,7 @@ #include "core/config/engine.h" #include "core/math/geometry_2d.h" +#include "servers/rendering/rendering_server.h" #define LINE_GRAB_WIDTH 8 @@ -114,7 +115,7 @@ bool OccluderPolygon2D::is_closed() const { void OccluderPolygon2D::set_cull_mode(CullMode p_mode) { cull = p_mode; - RS::get_singleton()->canvas_occluder_polygon_set_cull_mode(occ_polygon, RS::CanvasOccluderPolygonCullMode(p_mode)); + RS::get_singleton()->canvas_occluder_polygon_set_cull_mode(occ_polygon, RSE::CanvasOccluderPolygonCullMode(p_mode)); } OccluderPolygon2D::CullMode OccluderPolygon2D::get_cull_mode() const { diff --git a/scene/2d/line_2d.cpp b/scene/2d/line_2d.cpp index 530d905dd2..04eadd91aa 100644 --- a/scene/2d/line_2d.cpp +++ b/scene/2d/line_2d.cpp @@ -32,6 +32,7 @@ #include "core/math/geometry_2d.h" #include "line_builder.h" +#include "servers/rendering/rendering_server.h" Line2D::Line2D() { } diff --git a/scene/2d/marker_2d.cpp b/scene/2d/marker_2d.cpp index 1f4ea172e9..fc19f829d7 100644 --- a/scene/2d/marker_2d.cpp +++ b/scene/2d/marker_2d.cpp @@ -30,6 +30,8 @@ #include "marker_2d.h" +#include "core/config/engine.h" + void Marker2D::_draw_cross() { const real_t extents = get_gizmo_extents(); diff --git a/scene/2d/navigation/navigation_agent_2d.cpp b/scene/2d/navigation/navigation_agent_2d.cpp index 32f1d373d1..e74822b89c 100644 --- a/scene/2d/navigation/navigation_agent_2d.cpp +++ b/scene/2d/navigation/navigation_agent_2d.cpp @@ -34,6 +34,7 @@ #include "scene/2d/navigation/navigation_link_2d.h" #include "scene/resources/world_2d.h" #include "servers/navigation_2d/navigation_server_2d.h" +#include "servers/rendering/rendering_server.h" void NavigationAgent2D::_bind_methods() { ClassDB::bind_method(D_METHOD("get_rid"), &NavigationAgent2D::get_rid); @@ -1097,7 +1098,7 @@ void NavigationAgent2D::_update_debug_path() { } RenderingServer::get_singleton()->canvas_item_set_parent(debug_path_instance, agent_parent->get_canvas()); - RenderingServer::get_singleton()->canvas_item_set_z_index(debug_path_instance, RS::CANVAS_ITEM_Z_MAX - 1); + RenderingServer::get_singleton()->canvas_item_set_z_index(debug_path_instance, RSE::CANVAS_ITEM_Z_MAX - 1); RenderingServer::get_singleton()->canvas_item_set_visible(debug_path_instance, agent_parent->is_visible_in_tree()); const Vector &navigation_path = navigation_result->get_path(); diff --git a/scene/2d/navigation/navigation_obstacle_2d.cpp b/scene/2d/navigation/navigation_obstacle_2d.cpp index e58ed9df85..fb94a7a126 100644 --- a/scene/2d/navigation/navigation_obstacle_2d.cpp +++ b/scene/2d/navigation/navigation_obstacle_2d.cpp @@ -35,6 +35,7 @@ #include "scene/resources/2d/navigation_polygon.h" #include "scene/resources/world_2d.h" #include "servers/navigation_2d/navigation_server_2d.h" +#include "servers/rendering/rendering_server.h" Callable NavigationObstacle2D::_navmesh_source_geometry_parsing_callback; RID NavigationObstacle2D::_navmesh_source_geometry_parser; @@ -505,7 +506,7 @@ void NavigationObstacle2D::_update_static_obstacle_debug() { edge_mesh_array[Mesh::ARRAY_VERTEX] = edge_vertex_array; edge_mesh_array[Mesh::ARRAY_COLOR] = line_color_array; - rs->mesh_add_surface_from_arrays(debug_mesh_rid, RS::PRIMITIVE_LINES, edge_mesh_array, Array(), Dictionary(), RS::ARRAY_FLAG_USE_2D_VERTICES); + rs->mesh_add_surface_from_arrays(debug_mesh_rid, RSE::PRIMITIVE_LINES, edge_mesh_array, Array(), Dictionary(), RSE::ARRAY_FLAG_USE_2D_VERTICES); rs->canvas_item_add_mesh(debug_canvas_item, debug_mesh_rid, get_global_transform()); } diff --git a/scene/2d/navigation/navigation_region_2d.cpp b/scene/2d/navigation/navigation_region_2d.cpp index 4db550ac06..72b264d208 100644 --- a/scene/2d/navigation/navigation_region_2d.cpp +++ b/scene/2d/navigation/navigation_region_2d.cpp @@ -33,6 +33,7 @@ #include "core/math/random_pcg.h" #include "scene/resources/world_2d.h" #include "servers/navigation_2d/navigation_server_2d.h" +#include "servers/rendering/rendering_server.h" RID NavigationRegion2D::get_rid() const { return region; @@ -465,7 +466,7 @@ void NavigationRegion2D::_update_debug_mesh() { const Transform2D region_gt = get_global_transform(); rs->canvas_item_set_parent(debug_instance_rid, get_world_2d()->get_canvas()); - rs->canvas_item_set_z_index(debug_instance_rid, RS::CANVAS_ITEM_Z_MAX - 2); + rs->canvas_item_set_z_index(debug_instance_rid, RSE::CANVAS_ITEM_Z_MAX - 2); rs->canvas_item_set_transform(debug_instance_rid, region_gt); if (!debug_mesh_dirty) { @@ -583,7 +584,7 @@ void NavigationRegion2D::_update_debug_mesh() { face_mesh_array[Mesh::ARRAY_VERTEX] = face_vertex_array; face_mesh_array[Mesh::ARRAY_COLOR] = face_color_array; - rs->mesh_add_surface_from_arrays(debug_mesh_rid, RS::PRIMITIVE_TRIANGLES, face_mesh_array, Array(), Dictionary(), RS::ARRAY_FLAG_USE_2D_VERTICES); + rs->mesh_add_surface_from_arrays(debug_mesh_rid, RSE::PRIMITIVE_TRIANGLES, face_mesh_array, Array(), Dictionary(), RSE::ARRAY_FLAG_USE_2D_VERTICES); if (enabled_edge_lines) { Vector line_color_array; @@ -595,7 +596,7 @@ void NavigationRegion2D::_update_debug_mesh() { line_mesh_array[Mesh::ARRAY_VERTEX] = line_vertex_array; line_mesh_array[Mesh::ARRAY_COLOR] = line_color_array; - rs->mesh_add_surface_from_arrays(debug_mesh_rid, RS::PRIMITIVE_LINES, line_mesh_array, Array(), Dictionary(), RS::ARRAY_FLAG_USE_2D_VERTICES); + rs->mesh_add_surface_from_arrays(debug_mesh_rid, RSE::PRIMITIVE_LINES, line_mesh_array, Array(), Dictionary(), RSE::ARRAY_FLAG_USE_2D_VERTICES); } rs->canvas_item_add_mesh(debug_instance_rid, debug_mesh_rid, Transform2D()); diff --git a/scene/2d/node_2d.cpp b/scene/2d/node_2d.cpp index d07982fae7..7f60d68d35 100644 --- a/scene/2d/node_2d.cpp +++ b/scene/2d/node_2d.cpp @@ -31,6 +31,7 @@ #include "node_2d.h" #include "scene/main/viewport.h" +#include "servers/rendering/rendering_server.h" #ifdef TOOLS_ENABLED Dictionary Node2D::_edit_get_state() const { diff --git a/scene/2d/parallax_2d.cpp b/scene/2d/parallax_2d.cpp index f07a89df3d..aea3a5387c 100644 --- a/scene/2d/parallax_2d.cpp +++ b/scene/2d/parallax_2d.cpp @@ -31,6 +31,7 @@ #include "parallax_2d.h" #include "scene/main/viewport.h" +#include "servers/rendering/rendering_server.h" void Parallax2D::_notification(int p_what) { switch (p_what) { diff --git a/scene/2d/parallax_layer.cpp b/scene/2d/parallax_layer.cpp index b0379608fd..45bb829d30 100644 --- a/scene/2d/parallax_layer.cpp +++ b/scene/2d/parallax_layer.cpp @@ -31,6 +31,7 @@ #include "parallax_layer.h" #include "parallax_background.h" +#include "servers/rendering/rendering_server.h" void ParallaxLayer::set_motion_scale(const Size2 &p_scale) { motion_scale = p_scale; diff --git a/scene/2d/path_2d.cpp b/scene/2d/path_2d.cpp index d182aa74c4..7659c919e0 100644 --- a/scene/2d/path_2d.cpp +++ b/scene/2d/path_2d.cpp @@ -33,6 +33,7 @@ #include "core/math/geometry_2d.h" #include "scene/main/timer.h" #include "scene/resources/mesh.h" +#include "servers/rendering/rendering_server.h" #ifdef TOOLS_ENABLED #include "editor/themes/editor_scale.h" @@ -121,7 +122,7 @@ void Path2D::_debug_create() { } RS::get_singleton()->instance_set_base(debug_instance, debug_mesh_rid); - RS::get_singleton()->instance_geometry_set_cast_shadows_setting(debug_instance, RS::SHADOW_CASTING_SETTING_OFF); + RS::get_singleton()->instance_geometry_set_cast_shadows_setting(debug_instance, RSE::SHADOW_CASTING_SETTING_OFF); } void Path2D::_debug_free() { @@ -208,7 +209,7 @@ void Path2D::_debug_update() { ribbon_color.fill(debug_color); ribbon_array[Mesh::ARRAY_COLOR] = ribbon_color; - rs->mesh_add_surface_from_arrays(debug_mesh_rid, RS::PRIMITIVE_LINE_STRIP, ribbon_array, Array(), Dictionary(), RS::ARRAY_FLAG_USE_2D_VERTICES); + rs->mesh_add_surface_from_arrays(debug_mesh_rid, RSE::PRIMITIVE_LINE_STRIP, ribbon_array, Array(), Dictionary(), RSE::ARRAY_FLAG_USE_2D_VERTICES); } // Render path fish bones. @@ -243,7 +244,7 @@ void Path2D::_debug_update() { bones_color.fill(debug_color); bone_array[Mesh::ARRAY_COLOR] = bones_color; - rs->mesh_add_surface_from_arrays(debug_mesh_rid, RS::PRIMITIVE_LINES, bone_array, Array(), Dictionary(), RS::ARRAY_FLAG_USE_2D_VERTICES); + rs->mesh_add_surface_from_arrays(debug_mesh_rid, RSE::PRIMITIVE_LINES, bone_array, Array(), Dictionary(), RSE::ARRAY_FLAG_USE_2D_VERTICES); } rs->canvas_item_clear(get_canvas_item()); diff --git a/scene/2d/polygon_2d.cpp b/scene/2d/polygon_2d.cpp index 681507ac82..5cb857671d 100644 --- a/scene/2d/polygon_2d.cpp +++ b/scene/2d/polygon_2d.cpp @@ -37,6 +37,7 @@ #include "scene/resources/2d/navigation_mesh_source_geometry_data_2d.h" #include "scene/resources/2d/navigation_polygon.h" #include "servers/navigation_2d/navigation_server_2d.h" +#include "servers/rendering/rendering_server.h" Callable Polygon2D::_navmesh_source_geometry_parsing_callback; RID Polygon2D::_navmesh_source_geometry_parser; @@ -358,21 +359,21 @@ void Polygon2D::_notification(int p_what) { if (index_array.size()) { Array arr; - arr.resize(RS::ARRAY_MAX); - arr[RS::ARRAY_VERTEX] = points; + arr.resize(RSE::ARRAY_MAX); + arr[RSE::ARRAY_VERTEX] = points; if (uvs.size() == points.size()) { - arr[RS::ARRAY_TEX_UV] = uvs; + arr[RSE::ARRAY_TEX_UV] = uvs; } if (colors.size() == points.size()) { - arr[RS::ARRAY_COLOR] = colors; + arr[RSE::ARRAY_COLOR] = colors; } if (bones.size() == points.size() * 4) { - arr[RS::ARRAY_BONES] = bones; - arr[RS::ARRAY_WEIGHTS] = weights; + arr[RSE::ARRAY_BONES] = bones; + arr[RSE::ARRAY_WEIGHTS] = weights; } - arr[RS::ARRAY_INDEX] = index_array; + arr[RSE::ARRAY_INDEX] = index_array; RS::SurfaceData sd; @@ -392,7 +393,7 @@ void Polygon2D::_notification(int p_what) { sd.mesh_to_skeleton_xform.origin.y = mesh_to_sk2d.get_origin().y; } - Error err = RS::get_singleton()->mesh_create_surface_data_from_arrays(&sd, RS::PRIMITIVE_TRIANGLES, arr, Array(), Dictionary(), RS::ARRAY_FLAG_USE_2D_VERTICES); + Error err = RS::get_singleton()->mesh_create_surface_data_from_arrays(&sd, RSE::PRIMITIVE_TRIANGLES, arr, Array(), Dictionary(), RSE::ARRAY_FLAG_USE_2D_VERTICES); if (err != OK) { return; } diff --git a/scene/2d/skeleton_2d.cpp b/scene/2d/skeleton_2d.cpp index 6647a68a8e..3cff096196 100644 --- a/scene/2d/skeleton_2d.cpp +++ b/scene/2d/skeleton_2d.cpp @@ -31,6 +31,7 @@ #include "skeleton_2d.h" #include "core/math/transform_interpolator.h" +#include "servers/rendering/rendering_server.h" #ifdef TOOLS_ENABLED #include "editor/editor_data.h" diff --git a/scene/2d/tile_map_layer.cpp b/scene/2d/tile_map_layer.cpp index 6185d482ae..4647d4a929 100644 --- a/scene/2d/tile_map_layer.cpp +++ b/scene/2d/tile_map_layer.cpp @@ -39,6 +39,7 @@ #include "scene/resources/2d/navigation_mesh_source_geometry_data_2d.h" #include "scene/resources/material.h" #include "scene/resources/world_2d.h" +#include "servers/rendering/rendering_server.h" #ifndef PHYSICS_2D_DISABLED #include "servers/physics_2d/physics_server_2d.h" @@ -164,7 +165,7 @@ void TileMapLayer::_debug_update(bool p_force_cleanup) { if (needs_set_not_interpolated) { rs->canvas_item_set_interpolated(ci, false); } - rs->canvas_item_set_z_index(ci, RS::CANVAS_ITEM_Z_MAX - 1); + rs->canvas_item_set_z_index(ci, RSE::CANVAS_ITEM_Z_MAX - 1); rs->canvas_item_set_parent(ci, get_canvas_item()); } const Vector2 quadrant_pos = tile_set->map_to_local(debug_quadrant->quadrant_coords * TILE_MAP_DEBUG_QUADRANT_SIZE); @@ -357,8 +358,8 @@ void TileMapLayer::_rendering_update(bool p_force_cleanup) { rs->canvas_item_set_z_index(ci, tile_z_index); rs->canvas_item_set_self_modulate(ci, layer_modulate); - rs->canvas_item_set_default_texture_filter(ci, RS::CanvasItemTextureFilter(get_texture_filter_in_tree())); - rs->canvas_item_set_default_texture_repeat(ci, RS::CanvasItemTextureRepeat(get_texture_repeat_in_tree())); + rs->canvas_item_set_default_texture_filter(ci, RSE::CanvasItemTextureFilter(get_texture_filter_in_tree())); + rs->canvas_item_set_default_texture_repeat(ci, RSE::CanvasItemTextureRepeat(get_texture_repeat_in_tree())); rendering_quadrant->canvas_items.push_back(ci); @@ -444,8 +445,8 @@ void TileMapLayer::_rendering_update(bool p_force_cleanup) { Ref &rendering_quadrant = kv.value; for (const RID &ci : rendering_quadrant->canvas_items) { rs->canvas_item_set_light_mask(ci, get_light_mask()); - rs->canvas_item_set_default_texture_filter(ci, RS::CanvasItemTextureFilter(get_texture_filter_in_tree())); - rs->canvas_item_set_default_texture_repeat(ci, RS::CanvasItemTextureRepeat(get_texture_repeat_in_tree())); + rs->canvas_item_set_default_texture_filter(ci, RSE::CanvasItemTextureFilter(get_texture_filter_in_tree())); + rs->canvas_item_set_default_texture_repeat(ci, RSE::CanvasItemTextureRepeat(get_texture_repeat_in_tree())); rs->canvas_item_set_self_modulate(ci, layer_modulate); } } @@ -1266,18 +1267,18 @@ void TileMapLayer::_physics_draw_quadrant_debug(const RID &p_canvas_item, DebugQ if (face_index_array.size() > 2) { Array face_mesh_array; - face_mesh_array.resize(RS::ARRAY_MAX); - face_mesh_array[RS::ARRAY_VERTEX] = Vector(face_vertex_array); - face_mesh_array[RS::ARRAY_INDEX] = Vector(face_index_array); - face_mesh_array[RS::ARRAY_COLOR] = Vector(face_color_array); - rs->mesh_add_surface_from_arrays(r_debug_quadrant.physics_mesh, RS::PRIMITIVE_TRIANGLES, face_mesh_array, Array(), Dictionary(), RS::ARRAY_FLAG_USE_2D_VERTICES); + face_mesh_array.resize(RSE::ARRAY_MAX); + face_mesh_array[RSE::ARRAY_VERTEX] = Vector(face_vertex_array); + face_mesh_array[RSE::ARRAY_INDEX] = Vector(face_index_array); + face_mesh_array[RSE::ARRAY_COLOR] = Vector(face_color_array); + rs->mesh_add_surface_from_arrays(r_debug_quadrant.physics_mesh, RSE::PRIMITIVE_TRIANGLES, face_mesh_array, Array(), Dictionary(), RSE::ARRAY_FLAG_USE_2D_VERTICES); Array line_mesh_array; - line_mesh_array.resize(RS::ARRAY_MAX); - line_mesh_array[RS::ARRAY_VERTEX] = Vector(line_vertex_array); - line_mesh_array[RS::ARRAY_COLOR] = Vector(line_color_array); + line_mesh_array.resize(RSE::ARRAY_MAX); + line_mesh_array[RSE::ARRAY_VERTEX] = Vector(line_vertex_array); + line_mesh_array[RSE::ARRAY_COLOR] = Vector(line_color_array); - rs->mesh_add_surface_from_arrays(r_debug_quadrant.physics_mesh, RS::PRIMITIVE_LINES, line_mesh_array, Array(), Dictionary(), RS::ARRAY_FLAG_USE_2D_VERTICES); + rs->mesh_add_surface_from_arrays(r_debug_quadrant.physics_mesh, RSE::PRIMITIVE_LINES, line_mesh_array, Array(), Dictionary(), RSE::ARRAY_FLAG_USE_2D_VERTICES); } } } @@ -2308,7 +2309,7 @@ void TileMapLayer::_validate_property(PropertyInfo &p_property) const { } } -void TileMapLayer::_update_self_texture_filter(RS::CanvasItemTextureFilter p_texture_filter) { +void TileMapLayer::_update_self_texture_filter(RSE::CanvasItemTextureFilter p_texture_filter) { // Set a default texture filter for the whole tilemap. CanvasItem::_update_self_texture_filter(p_texture_filter); dirty.flags[DIRTY_FLAGS_LAYER_TEXTURE_FILTER] = true; @@ -2316,7 +2317,7 @@ void TileMapLayer::_update_self_texture_filter(RS::CanvasItemTextureFilter p_tex emit_signal(CoreStringName(changed)); } -void TileMapLayer::_update_self_texture_repeat(RS::CanvasItemTextureRepeat p_texture_repeat) { +void TileMapLayer::_update_self_texture_repeat(RSE::CanvasItemTextureRepeat p_texture_repeat) { // Set a default texture repeat for the whole tilemap. CanvasItem::_update_self_texture_repeat(p_texture_repeat); dirty.flags[DIRTY_FLAGS_LAYER_TEXTURE_REPEAT] = true; diff --git a/scene/2d/tile_map_layer.h b/scene/2d/tile_map_layer.h index 6c6954db35..375d1d0bb4 100644 --- a/scene/2d/tile_map_layer.h +++ b/scene/2d/tile_map_layer.h @@ -31,6 +31,7 @@ #pragma once #include "scene/resources/2d/tile_set.h" +#include "servers/rendering/rendering_server_enums.h" #ifndef NAVIGATION_2D_DISABLED class NavigationMeshSourceGeometryData2D; @@ -517,8 +518,8 @@ protected: static void _bind_methods(); void _validate_property(PropertyInfo &p_property) const; - virtual void _update_self_texture_filter(RS::CanvasItemTextureFilter p_texture_filter) override; - virtual void _update_self_texture_repeat(RS::CanvasItemTextureRepeat p_texture_repeat) override; + virtual void _update_self_texture_filter(RSE::CanvasItemTextureFilter p_texture_filter) override; + virtual void _update_self_texture_repeat(RSE::CanvasItemTextureRepeat p_texture_repeat) override; public: #ifdef TOOLS_ENABLED diff --git a/scene/2d/visible_on_screen_notifier_2d.cpp b/scene/2d/visible_on_screen_notifier_2d.cpp index 79f0ee56bd..d431082045 100644 --- a/scene/2d/visible_on_screen_notifier_2d.cpp +++ b/scene/2d/visible_on_screen_notifier_2d.cpp @@ -30,6 +30,8 @@ #include "visible_on_screen_notifier_2d.h" +#include "servers/rendering/rendering_server.h" + #ifdef TOOLS_ENABLED Dictionary VisibleOnScreenNotifier2D::_edit_get_state() const { Dictionary state = Node2D::_edit_get_state(); diff --git a/scene/3d/camera_3d.cpp b/scene/3d/camera_3d.cpp index 799f9b5c51..c74b66bf93 100644 --- a/scene/3d/camera_3d.cpp +++ b/scene/3d/camera_3d.cpp @@ -33,6 +33,7 @@ #include "core/math/projection.h" #include "core/math/transform_interpolator.h" #include "scene/main/viewport.h" +#include "servers/rendering/rendering_server.h" void Camera3D::_update_audio_listener_state() { } diff --git a/scene/3d/cpu_particles_3d.cpp b/scene/3d/cpu_particles_3d.cpp index 7304253aa7..34cd209323 100644 --- a/scene/3d/cpu_particles_3d.cpp +++ b/scene/3d/cpu_particles_3d.cpp @@ -39,6 +39,7 @@ #include "scene/resources/gradient_texture.h" #include "scene/resources/mesh.h" #include "scene/resources/particle_process_material.h" +#include "servers/rendering/rendering_server.h" AABB CPUParticles3D::get_aabb() const { return AABB(); @@ -83,7 +84,7 @@ void CPUParticles3D::set_amount(int p_amount) { particle_data.resize((12 + 4 + 4) * p_amount); RS::get_singleton()->multimesh_set_visible_instances(multimesh, -1); - RS::get_singleton()->multimesh_allocate_data(multimesh, p_amount, RS::MULTIMESH_TRANSFORM_3D, true, true); + RS::get_singleton()->multimesh_allocate_data(multimesh, p_amount, RSE::MULTIMESH_TRANSFORM_3D, true, true); particle_order.resize(p_amount); } @@ -1328,13 +1329,13 @@ void CPUParticles3D::_set_redraw(bool p_redraw) { if (redraw) { RS::get_singleton()->connect("frame_pre_draw", callable_mp(this, &CPUParticles3D::_update_render_thread)); - RS::get_singleton()->instance_geometry_set_flag(get_instance(), RS::INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE, true); + RS::get_singleton()->instance_geometry_set_flag(get_instance(), RSE::INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE, true); RS::get_singleton()->multimesh_set_visible_instances(multimesh, -1); } else { if (RS::get_singleton()->is_connected("frame_pre_draw", callable_mp(this, &CPUParticles3D::_update_render_thread))) { RS::get_singleton()->disconnect("frame_pre_draw", callable_mp(this, &CPUParticles3D::_update_render_thread)); } - RS::get_singleton()->instance_geometry_set_flag(get_instance(), RS::INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE, false); + RS::get_singleton()->instance_geometry_set_flag(get_instance(), RSE::INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE, false); RS::get_singleton()->multimesh_set_visible_instances(multimesh, 0); } } diff --git a/scene/3d/decal.cpp b/scene/3d/decal.cpp index 2e48a5ca32..b6265450f9 100644 --- a/scene/3d/decal.cpp +++ b/scene/3d/decal.cpp @@ -29,6 +29,7 @@ /**************************************************************************/ #include "decal.h" +#include "servers/rendering/rendering_server.h" void Decal::set_size(const Vector3 &p_size) { size = p_size.maxf(0.001); @@ -58,7 +59,7 @@ void Decal::set_texture(DecalTexture p_type, const Ref &p_texture) { } #endif - RS::get_singleton()->decal_set_texture(decal, RS::DecalTexture(p_type), texture_rid); + RS::get_singleton()->decal_set_texture(decal, RSE::DecalTexture(p_type), texture_rid); update_configuration_warnings(); } diff --git a/scene/3d/fog_volume.cpp b/scene/3d/fog_volume.cpp index 1f82123182..111d2455c1 100644 --- a/scene/3d/fog_volume.cpp +++ b/scene/3d/fog_volume.cpp @@ -32,6 +32,7 @@ #include "scene/main/viewport.h" #include "scene/resources/environment.h" +#include "servers/rendering/rendering_server.h" /////////////////////////// @@ -49,7 +50,7 @@ void FogVolume::_bind_methods() { } void FogVolume::_validate_property(PropertyInfo &p_property) const { - if (p_property.name == "size" && shape == RS::FOG_VOLUME_SHAPE_WORLD) { + if (p_property.name == "size" && shape == RSE::FOG_VOLUME_SHAPE_WORLD) { p_property.usage = PROPERTY_USAGE_NONE; } } @@ -83,15 +84,15 @@ Vector3 FogVolume::get_size() const { return size; } -void FogVolume::set_shape(RS::FogVolumeShape p_type) { +void FogVolume::set_shape(RSE::FogVolumeShape p_type) { shape = p_type; RS::get_singleton()->fog_volume_set_shape(_get_volume(), shape); - RS::get_singleton()->instance_set_ignore_culling(get_instance(), shape == RS::FOG_VOLUME_SHAPE_WORLD); + RS::get_singleton()->instance_set_ignore_culling(get_instance(), shape == RSE::FOG_VOLUME_SHAPE_WORLD); update_gizmos(); notify_property_list_changed(); } -RS::FogVolumeShape FogVolume::get_shape() const { +RSE::FogVolumeShape FogVolume::get_shape() const { return shape; } @@ -110,7 +111,7 @@ Ref FogVolume::get_material() const { } AABB FogVolume::get_aabb() const { - if (shape != RS::FOG_VOLUME_SHAPE_WORLD) { + if (shape != RSE::FOG_VOLUME_SHAPE_WORLD) { return AABB(-size / 2, size); } return AABB(); @@ -135,7 +136,7 @@ PackedStringArray FogVolume::get_configuration_warnings() const { FogVolume::FogVolume() { volume = RS::get_singleton()->fog_volume_create(); - RS::get_singleton()->fog_volume_set_shape(volume, RS::FOG_VOLUME_SHAPE_BOX); + RS::get_singleton()->fog_volume_set_shape(volume, RSE::FOG_VOLUME_SHAPE_BOX); set_base(volume); } diff --git a/scene/3d/fog_volume.h b/scene/3d/fog_volume.h index 5a9e3348a0..88c421e793 100644 --- a/scene/3d/fog_volume.h +++ b/scene/3d/fog_volume.h @@ -39,7 +39,7 @@ class FogVolume : public VisualInstance3D { Vector3 size = Vector3(2, 2, 2); Ref material; - RS::FogVolumeShape shape = RS::FOG_VOLUME_SHAPE_BOX; + RSE::FogVolumeShape shape = RSE::FOG_VOLUME_SHAPE_BOX; RID volume; @@ -56,8 +56,8 @@ public: void set_size(const Vector3 &p_size); Vector3 get_size() const; - void set_shape(RS::FogVolumeShape p_type); - RS::FogVolumeShape get_shape() const; + void set_shape(RSE::FogVolumeShape p_type); + RSE::FogVolumeShape get_shape() const; void set_material(const Ref &p_material); Ref get_material() const; diff --git a/scene/3d/gpu_particles_3d.cpp b/scene/3d/gpu_particles_3d.cpp index 8da2073c7f..d4e6a32ebb 100644 --- a/scene/3d/gpu_particles_3d.cpp +++ b/scene/3d/gpu_particles_3d.cpp @@ -36,6 +36,7 @@ #include "scene/resources/gradient_texture.h" #include "scene/resources/mesh.h" #include "scene/resources/particle_process_material.h" +#include "servers/rendering/rendering_server.h" AABB GPUParticles3D::get_aabb() const { return AABB(); @@ -235,7 +236,7 @@ real_t GPUParticles3D::get_collision_base_size() const { void GPUParticles3D::set_draw_order(DrawOrder p_order) { draw_order = p_order; - RS::get_singleton()->particles_set_draw_order(particles, RS::ParticlesDrawOrder(p_order)); + RS::get_singleton()->particles_set_draw_order(particles, RSE::ParticlesDrawOrder(p_order)); } void GPUParticles3D::set_trail_enabled(bool p_enabled) { @@ -626,7 +627,7 @@ Ref GPUParticles3D::get_skin() const { void GPUParticles3D::set_transform_align(TransformAlign p_align) { ERR_FAIL_INDEX(uint32_t(p_align), 4); transform_align = p_align; - RS::get_singleton()->particles_set_transform_align(particles, RS::ParticlesTransformAlign(transform_align)); + RS::get_singleton()->particles_set_transform_align(particles, RSE::ParticlesTransformAlign(transform_align)); } GPUParticles3D::TransformAlign GPUParticles3D::get_transform_align() const { @@ -874,7 +875,7 @@ void GPUParticles3D::_bind_methods() { GPUParticles3D::GPUParticles3D() { particles = RS::get_singleton()->particles_create(); - RS::get_singleton()->particles_set_mode(particles, RS::PARTICLES_MODE_3D); + RS::get_singleton()->particles_set_mode(particles, RSE::PARTICLES_MODE_3D); set_base(particles); one_shot = false; // Needed so that set_emitting doesn't access uninitialized values set_emitting(true); diff --git a/scene/3d/gpu_particles_3d.h b/scene/3d/gpu_particles_3d.h index 778db608b3..afe389d986 100644 --- a/scene/3d/gpu_particles_3d.h +++ b/scene/3d/gpu_particles_3d.h @@ -193,11 +193,11 @@ public: void request_particles_process(real_t p_requested_process_time); enum EmitFlags { - EMIT_FLAG_POSITION = RS::PARTICLES_EMIT_FLAG_POSITION, - EMIT_FLAG_ROTATION_SCALE = RS::PARTICLES_EMIT_FLAG_ROTATION_SCALE, - EMIT_FLAG_VELOCITY = RS::PARTICLES_EMIT_FLAG_VELOCITY, - EMIT_FLAG_COLOR = RS::PARTICLES_EMIT_FLAG_COLOR, - EMIT_FLAG_CUSTOM = RS::PARTICLES_EMIT_FLAG_CUSTOM + EMIT_FLAG_POSITION = RSE::PARTICLES_EMIT_FLAG_POSITION, + EMIT_FLAG_ROTATION_SCALE = RSE::PARTICLES_EMIT_FLAG_ROTATION_SCALE, + EMIT_FLAG_VELOCITY = RSE::PARTICLES_EMIT_FLAG_VELOCITY, + EMIT_FLAG_COLOR = RSE::PARTICLES_EMIT_FLAG_COLOR, + EMIT_FLAG_CUSTOM = RSE::PARTICLES_EMIT_FLAG_CUSTOM }; void emit_particle(const Transform3D &p_transform, const Vector3 &p_velocity, const Color &p_color, const Color &p_custom, uint32_t p_emit_flags); diff --git a/scene/3d/gpu_particles_collision_3d.cpp b/scene/3d/gpu_particles_collision_3d.cpp index 017783d743..9ba06b1951 100644 --- a/scene/3d/gpu_particles_collision_3d.cpp +++ b/scene/3d/gpu_particles_collision_3d.cpp @@ -35,6 +35,7 @@ #include "scene/3d/camera_3d.h" #include "scene/3d/mesh_instance_3d.h" #include "scene/main/viewport.h" +#include "servers/rendering/rendering_server.h" void GPUParticlesCollision3D::set_cull_mask(uint32_t p_cull_mask) { cull_mask = p_cull_mask; @@ -52,7 +53,7 @@ void GPUParticlesCollision3D::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "cull_mask", PROPERTY_HINT_LAYERS_3D_RENDER), "set_cull_mask", "get_cull_mask"); } -GPUParticlesCollision3D::GPUParticlesCollision3D(RS::ParticlesCollisionType p_type) { +GPUParticlesCollision3D::GPUParticlesCollision3D(RSE::ParticlesCollisionType p_type) { collision = RS::get_singleton()->particles_collision_create(); RS::get_singleton()->particles_collision_set_collision_type(collision, p_type); set_base(collision); @@ -87,7 +88,7 @@ AABB GPUParticlesCollisionSphere3D::get_aabb() const { } GPUParticlesCollisionSphere3D::GPUParticlesCollisionSphere3D() : - GPUParticlesCollision3D(RS::PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE) { + GPUParticlesCollision3D(RSE::PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE) { } GPUParticlesCollisionSphere3D::~GPUParticlesCollisionSphere3D() { @@ -135,7 +136,7 @@ AABB GPUParticlesCollisionBox3D::get_aabb() const { } GPUParticlesCollisionBox3D::GPUParticlesCollisionBox3D() : - GPUParticlesCollision3D(RS::PARTICLES_COLLISION_TYPE_BOX_COLLIDE) { + GPUParticlesCollision3D(RSE::PARTICLES_COLLISION_TYPE_BOX_COLLIDE) { } GPUParticlesCollisionBox3D::~GPUParticlesCollisionBox3D() { @@ -656,7 +657,7 @@ GPUParticlesCollisionSDF3D::BakeStepFunc GPUParticlesCollisionSDF3D::bake_step_f GPUParticlesCollisionSDF3D::BakeEndFunc GPUParticlesCollisionSDF3D::bake_end_function = nullptr; GPUParticlesCollisionSDF3D::GPUParticlesCollisionSDF3D() : - GPUParticlesCollision3D(RS::PARTICLES_COLLISION_TYPE_SDF_COLLIDE) { + GPUParticlesCollision3D(RSE::PARTICLES_COLLISION_TYPE_SDF_COLLIDE) { } GPUParticlesCollisionSDF3D::~GPUParticlesCollisionSDF3D() { @@ -780,7 +781,7 @@ Vector3 GPUParticlesCollisionHeightField3D::get_size() const { void GPUParticlesCollisionHeightField3D::set_resolution(Resolution p_resolution) { resolution = p_resolution; - RS::get_singleton()->particles_collision_set_height_field_resolution(_get_collision(), RS::ParticlesCollisionHeightfieldResolution(resolution)); + RS::get_singleton()->particles_collision_set_height_field_resolution(_get_collision(), RSE::ParticlesCollisionHeightfieldResolution(resolution)); update_gizmos(); RS::get_singleton()->particles_collision_height_field_update(_get_collision()); } @@ -839,7 +840,7 @@ AABB GPUParticlesCollisionHeightField3D::get_aabb() const { } GPUParticlesCollisionHeightField3D::GPUParticlesCollisionHeightField3D() : - GPUParticlesCollision3D(RS::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE) { + GPUParticlesCollision3D(RSE::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE) { } GPUParticlesCollisionHeightField3D::~GPUParticlesCollisionHeightField3D() { @@ -904,7 +905,7 @@ void GPUParticlesAttractor3D::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "cull_mask", PROPERTY_HINT_LAYERS_3D_RENDER), "set_cull_mask", "get_cull_mask"); } -GPUParticlesAttractor3D::GPUParticlesAttractor3D(RS::ParticlesCollisionType p_type) { +GPUParticlesAttractor3D::GPUParticlesAttractor3D(RSE::ParticlesCollisionType p_type) { collision = RS::get_singleton()->particles_collision_create(); RS::get_singleton()->particles_collision_set_collision_type(collision, p_type); set_base(collision); @@ -938,7 +939,7 @@ AABB GPUParticlesAttractorSphere3D::get_aabb() const { } GPUParticlesAttractorSphere3D::GPUParticlesAttractorSphere3D() : - GPUParticlesAttractor3D(RS::PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT) { + GPUParticlesAttractor3D(RSE::PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT) { } GPUParticlesAttractorSphere3D::~GPUParticlesAttractorSphere3D() { @@ -986,7 +987,7 @@ AABB GPUParticlesAttractorBox3D::get_aabb() const { } GPUParticlesAttractorBox3D::GPUParticlesAttractorBox3D() : - GPUParticlesAttractor3D(RS::PARTICLES_COLLISION_TYPE_BOX_ATTRACT) { + GPUParticlesAttractor3D(RSE::PARTICLES_COLLISION_TYPE_BOX_ATTRACT) { } GPUParticlesAttractorBox3D::~GPUParticlesAttractorBox3D() { @@ -1048,7 +1049,7 @@ AABB GPUParticlesAttractorVectorField3D::get_aabb() const { } GPUParticlesAttractorVectorField3D::GPUParticlesAttractorVectorField3D() : - GPUParticlesAttractor3D(RS::PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT) { + GPUParticlesAttractor3D(RSE::PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT) { } GPUParticlesAttractorVectorField3D::~GPUParticlesAttractorVectorField3D() { diff --git a/scene/3d/gpu_particles_collision_3d.h b/scene/3d/gpu_particles_collision_3d.h index 2076564492..588985b7c2 100644 --- a/scene/3d/gpu_particles_collision_3d.h +++ b/scene/3d/gpu_particles_collision_3d.h @@ -45,7 +45,7 @@ protected: _FORCE_INLINE_ RID _get_collision() { return collision; } static void _bind_methods(); - GPUParticlesCollision3D(RS::ParticlesCollisionType p_type); + GPUParticlesCollision3D(RSE::ParticlesCollisionType p_type); public: void set_cull_mask(uint32_t p_cull_mask); @@ -282,7 +282,7 @@ protected: _FORCE_INLINE_ RID _get_collision() { return collision; } static void _bind_methods(); - GPUParticlesAttractor3D(RS::ParticlesCollisionType p_type); + GPUParticlesAttractor3D(RSE::ParticlesCollisionType p_type); public: void set_cull_mask(uint32_t p_cull_mask); diff --git a/scene/3d/label_3d.cpp b/scene/3d/label_3d.cpp index b23fb9c8f6..89c1669005 100644 --- a/scene/3d/label_3d.cpp +++ b/scene/3d/label_3d.cpp @@ -34,6 +34,7 @@ #include "scene/resources/mesh.h" #include "scene/resources/theme.h" #include "scene/theme/theme_db.h" +#include "servers/rendering/rendering_server.h" void Label3D::_bind_methods() { ClassDB::bind_method(D_METHOD("set_horizontal_alignment", "alignment"), &Label3D::set_horizontal_alignment); @@ -143,8 +144,8 @@ void Label3D::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "alpha_antialiasing_mode", PROPERTY_HINT_ENUM, "Disabled,Alpha Edge Blend,Alpha Edge Clip"), "set_alpha_antialiasing", "get_alpha_antialiasing"); ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "alpha_antialiasing_edge", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_alpha_antialiasing_edge", "get_alpha_antialiasing_edge"); ADD_PROPERTY(PropertyInfo(Variant::INT, "texture_filter", PROPERTY_HINT_ENUM, "Nearest,Linear,Nearest Mipmap,Linear Mipmap,Nearest Mipmap Anisotropic,Linear Mipmap Anisotropic"), "set_texture_filter", "get_texture_filter"); - ADD_PROPERTY(PropertyInfo(Variant::INT, "render_priority", PROPERTY_HINT_RANGE, itos(RS::MATERIAL_RENDER_PRIORITY_MIN) + "," + itos(RS::MATERIAL_RENDER_PRIORITY_MAX) + ",1"), "set_render_priority", "get_render_priority"); - ADD_PROPERTY(PropertyInfo(Variant::INT, "outline_render_priority", PROPERTY_HINT_RANGE, itos(RS::MATERIAL_RENDER_PRIORITY_MIN) + "," + itos(RS::MATERIAL_RENDER_PRIORITY_MAX) + ",1"), "set_outline_render_priority", "get_outline_render_priority"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "render_priority", PROPERTY_HINT_RANGE, itos(RSE::MATERIAL_RENDER_PRIORITY_MIN) + "," + itos(RSE::MATERIAL_RENDER_PRIORITY_MAX) + ",1"), "set_render_priority", "get_render_priority"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "outline_render_priority", PROPERTY_HINT_RANGE, itos(RSE::MATERIAL_RENDER_PRIORITY_MIN) + "," + itos(RSE::MATERIAL_RENDER_PRIORITY_MAX) + ",1"), "set_outline_render_priority", "get_outline_render_priority"); ADD_GROUP("Text", ""); ADD_PROPERTY(PropertyInfo(Variant::COLOR, "modulate"), "set_modulate", "get_modulate"); @@ -640,16 +641,16 @@ void Label3D::_shape() { for (const KeyValue &E : surfaces) { Array mesh_array; - mesh_array.resize(RS::ARRAY_MAX); - mesh_array[RS::ARRAY_VERTEX] = E.value.mesh_vertices; - mesh_array[RS::ARRAY_NORMAL] = E.value.mesh_normals; - mesh_array[RS::ARRAY_TANGENT] = E.value.mesh_tangents; - mesh_array[RS::ARRAY_COLOR] = E.value.mesh_colors; - mesh_array[RS::ARRAY_TEX_UV] = E.value.mesh_uvs; - mesh_array[RS::ARRAY_INDEX] = E.value.indices; + mesh_array.resize(RSE::ARRAY_MAX); + mesh_array[RSE::ARRAY_VERTEX] = E.value.mesh_vertices; + mesh_array[RSE::ARRAY_NORMAL] = E.value.mesh_normals; + mesh_array[RSE::ARRAY_TANGENT] = E.value.mesh_tangents; + mesh_array[RSE::ARRAY_COLOR] = E.value.mesh_colors; + mesh_array[RSE::ARRAY_TEX_UV] = E.value.mesh_uvs; + mesh_array[RSE::ARRAY_INDEX] = E.value.indices; RS::SurfaceData sd; - RS::get_singleton()->mesh_create_surface_data_from_arrays(&sd, RS::PRIMITIVE_TRIANGLES, mesh_array); + RS::get_singleton()->mesh_create_surface_data_from_arrays(&sd, RSE::PRIMITIVE_TRIANGLES, mesh_array); sd.material = E.value.material; @@ -761,7 +762,7 @@ bool Label3D::is_uppercase() const { } void Label3D::set_render_priority(int p_priority) { - ERR_FAIL_COND(p_priority < RS::MATERIAL_RENDER_PRIORITY_MIN || p_priority > RS::MATERIAL_RENDER_PRIORITY_MAX); + ERR_FAIL_COND(p_priority < RSE::MATERIAL_RENDER_PRIORITY_MIN || p_priority > RSE::MATERIAL_RENDER_PRIORITY_MAX); if (render_priority != p_priority) { render_priority = p_priority; _queue_update(); @@ -773,7 +774,7 @@ int Label3D::get_render_priority() const { } void Label3D::set_outline_render_priority(int p_priority) { - ERR_FAIL_COND(p_priority < RS::MATERIAL_RENDER_PRIORITY_MIN || p_priority > RS::MATERIAL_RENDER_PRIORITY_MAX); + ERR_FAIL_COND(p_priority < RSE::MATERIAL_RENDER_PRIORITY_MIN || p_priority > RSE::MATERIAL_RENDER_PRIORITY_MAX); if (outline_render_priority != p_priority) { outline_render_priority = p_priority; _queue_update(); diff --git a/scene/3d/light_3d.cpp b/scene/3d/light_3d.cpp index d1ad1f7c31..4c57dd1dba 100644 --- a/scene/3d/light_3d.cpp +++ b/scene/3d/light_3d.cpp @@ -30,13 +30,15 @@ #include "light_3d.h" +#include "core/config/engine.h" #include "core/config/project_settings.h" +#include "servers/rendering/rendering_server.h" void Light3D::set_param(Param p_param, real_t p_value) { ERR_FAIL_INDEX(p_param, PARAM_MAX); param[p_param] = p_value; - RS::get_singleton()->light_set_param(light, RS::LightParam(p_param), p_value); + RS::get_singleton()->light_set_param(light, RSE::LightParam(p_param), p_value); if (p_param == PARAM_SPOT_ANGLE || p_param == PARAM_RANGE) { update_gizmos(); @@ -155,13 +157,13 @@ uint32_t Light3D::get_shadow_caster_mask() const { } AABB Light3D::get_aabb() const { - if (type == RenderingServer::LIGHT_DIRECTIONAL) { + if (type == RSE::LIGHT_DIRECTIONAL) { return AABB(Vector3(-1, -1, -1), Vector3(2, 2, 2)); - } else if (type == RenderingServer::LIGHT_OMNI) { + } else if (type == RSE::LIGHT_OMNI) { return AABB(Vector3(-1, -1, -1) * param[PARAM_RANGE], Vector3(2, 2, 2) * param[PARAM_RANGE]); - } else if (type == RenderingServer::LIGHT_SPOT) { + } else if (type == RSE::LIGHT_SPOT) { real_t cone_slant_height = param[PARAM_RANGE]; real_t cone_angle_rad = Math::deg_to_rad(param[PARAM_SPOT_ANGLE]); @@ -189,7 +191,7 @@ PackedStringArray Light3D::get_configuration_warnings() const { void Light3D::set_bake_mode(BakeMode p_mode) { bake_mode = p_mode; - RS::get_singleton()->light_set_bake_mode(light, RS::LightBakeMode(p_mode)); + RS::get_singleton()->light_set_bake_mode(light, RSE::LightBakeMode(p_mode)); } Light3D::BakeMode Light3D::get_bake_mode() const { @@ -322,10 +324,10 @@ bool Light3D::is_editor_only() const { } void Light3D::_validate_property(PropertyInfo &p_property) const { - if (get_light_type() != RS::LIGHT_DIRECTIONAL && (p_property.name == "light_angular_distance" || p_property.name == "light_intensity_lux")) { + if (get_light_type() != RSE::LIGHT_DIRECTIONAL && (p_property.name == "light_angular_distance" || p_property.name == "light_intensity_lux")) { // Angular distance and Light Intensity Lux are only used in DirectionalLight3D. p_property.usage = PROPERTY_USAGE_NONE; - } else if (get_light_type() == RS::LIGHT_DIRECTIONAL && p_property.name == "light_intensity_lumens") { + } else if (get_light_type() == RSE::LIGHT_DIRECTIONAL && p_property.name == "light_intensity_lumens") { p_property.usage = PROPERTY_USAGE_NONE; } else if (!GLOBAL_GET_CACHED(bool, "rendering/lights_and_shadows/use_physical_light_units") && (p_property.name == "light_intensity_lumens" || p_property.name == "light_intensity_lux" || p_property.name == "light_temperature")) { p_property.usage = PROPERTY_USAGE_NONE; @@ -445,16 +447,16 @@ void Light3D::_bind_methods() { BIND_ENUM_CONSTANT(BAKE_DYNAMIC); } -Light3D::Light3D(RenderingServer::LightType p_type) { +Light3D::Light3D(RSE::LightType p_type) { type = p_type; switch (p_type) { - case RS::LIGHT_DIRECTIONAL: + case RSE::LIGHT_DIRECTIONAL: light = RenderingServer::get_singleton()->directional_light_create(); break; - case RS::LIGHT_OMNI: + case RSE::LIGHT_OMNI: light = RenderingServer::get_singleton()->omni_light_create(); break; - case RS::LIGHT_SPOT: + case RSE::LIGHT_SPOT: light = RenderingServer::get_singleton()->spot_light_create(); break; default: { @@ -512,7 +514,7 @@ Light3D::~Light3D() { void DirectionalLight3D::set_shadow_mode(ShadowMode p_mode) { shadow_mode = p_mode; - RS::get_singleton()->light_directional_set_shadow_mode(light, RS::LightDirectionalShadowMode(p_mode)); + RS::get_singleton()->light_directional_set_shadow_mode(light, RSE::LightDirectionalShadowMode(p_mode)); notify_property_list_changed(); } @@ -531,7 +533,7 @@ bool DirectionalLight3D::is_blend_splits_enabled() const { void DirectionalLight3D::set_sky_mode(SkyMode p_mode) { sky_mode = p_mode; - RS::get_singleton()->light_directional_set_sky_mode(light, RS::LightDirectionalSkyMode(p_mode)); + RS::get_singleton()->light_directional_set_sky_mode(light, RSE::LightDirectionalSkyMode(p_mode)); } DirectionalLight3D::SkyMode DirectionalLight3D::get_sky_mode() const { @@ -591,7 +593,7 @@ void DirectionalLight3D::_bind_methods() { } DirectionalLight3D::DirectionalLight3D() : - Light3D(RenderingServer::LIGHT_DIRECTIONAL) { + Light3D(RSE::LIGHT_DIRECTIONAL) { set_param(PARAM_SHADOW_MAX_DISTANCE, 100); set_param(PARAM_SHADOW_FADE_START, 0.8); // Increase the default shadow normal bias to better suit most scenes. @@ -605,7 +607,7 @@ DirectionalLight3D::DirectionalLight3D() : void OmniLight3D::set_shadow_mode(ShadowMode p_mode) { shadow_mode = p_mode; - RS::get_singleton()->light_omni_set_shadow_mode(light, RS::LightOmniShadowMode(p_mode)); + RS::get_singleton()->light_omni_set_shadow_mode(light, RSE::LightOmniShadowMode(p_mode)); } OmniLight3D::ShadowMode OmniLight3D::get_shadow_mode() const { @@ -640,7 +642,7 @@ void OmniLight3D::_bind_methods() { } OmniLight3D::OmniLight3D() : - Light3D(RenderingServer::LIGHT_OMNI) { + Light3D(RSE::LIGHT_OMNI) { set_shadow_mode(SHADOW_CUBE); } @@ -671,7 +673,7 @@ void SpotLight3D::_bind_methods() { } SpotLight3D::SpotLight3D() : - Light3D(RenderingServer::LIGHT_SPOT) { + Light3D(RSE::LIGHT_SPOT) { // Decrease the default shadow bias to better suit most scenes. set_param(PARAM_SHADOW_BIAS, 0.03); } diff --git a/scene/3d/light_3d.h b/scene/3d/light_3d.h index d412350c47..84cb6ac444 100644 --- a/scene/3d/light_3d.h +++ b/scene/3d/light_3d.h @@ -37,28 +37,28 @@ class Light3D : public VisualInstance3D { public: enum Param { - PARAM_ENERGY = RS::LIGHT_PARAM_ENERGY, - PARAM_INDIRECT_ENERGY = RS::LIGHT_PARAM_INDIRECT_ENERGY, - PARAM_VOLUMETRIC_FOG_ENERGY = RS::LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY, - PARAM_SPECULAR = RS::LIGHT_PARAM_SPECULAR, - PARAM_RANGE = RS::LIGHT_PARAM_RANGE, - PARAM_SIZE = RS::LIGHT_PARAM_SIZE, - PARAM_ATTENUATION = RS::LIGHT_PARAM_ATTENUATION, - PARAM_SPOT_ANGLE = RS::LIGHT_PARAM_SPOT_ANGLE, - PARAM_SPOT_ATTENUATION = RS::LIGHT_PARAM_SPOT_ATTENUATION, - PARAM_SHADOW_MAX_DISTANCE = RS::LIGHT_PARAM_SHADOW_MAX_DISTANCE, - PARAM_SHADOW_SPLIT_1_OFFSET = RS::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET, - PARAM_SHADOW_SPLIT_2_OFFSET = RS::LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET, - PARAM_SHADOW_SPLIT_3_OFFSET = RS::LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET, - PARAM_SHADOW_FADE_START = RS::LIGHT_PARAM_SHADOW_FADE_START, - PARAM_SHADOW_NORMAL_BIAS = RS::LIGHT_PARAM_SHADOW_NORMAL_BIAS, - PARAM_SHADOW_BIAS = RS::LIGHT_PARAM_SHADOW_BIAS, - PARAM_SHADOW_PANCAKE_SIZE = RS::LIGHT_PARAM_SHADOW_PANCAKE_SIZE, - PARAM_SHADOW_OPACITY = RS::LIGHT_PARAM_SHADOW_OPACITY, - PARAM_SHADOW_BLUR = RS::LIGHT_PARAM_SHADOW_BLUR, - PARAM_TRANSMITTANCE_BIAS = RS::LIGHT_PARAM_TRANSMITTANCE_BIAS, - PARAM_INTENSITY = RS::LIGHT_PARAM_INTENSITY, - PARAM_MAX = RS::LIGHT_PARAM_MAX + PARAM_ENERGY = RSE::LIGHT_PARAM_ENERGY, + PARAM_INDIRECT_ENERGY = RSE::LIGHT_PARAM_INDIRECT_ENERGY, + PARAM_VOLUMETRIC_FOG_ENERGY = RSE::LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY, + PARAM_SPECULAR = RSE::LIGHT_PARAM_SPECULAR, + PARAM_RANGE = RSE::LIGHT_PARAM_RANGE, + PARAM_SIZE = RSE::LIGHT_PARAM_SIZE, + PARAM_ATTENUATION = RSE::LIGHT_PARAM_ATTENUATION, + PARAM_SPOT_ANGLE = RSE::LIGHT_PARAM_SPOT_ANGLE, + PARAM_SPOT_ATTENUATION = RSE::LIGHT_PARAM_SPOT_ATTENUATION, + PARAM_SHADOW_MAX_DISTANCE = RSE::LIGHT_PARAM_SHADOW_MAX_DISTANCE, + PARAM_SHADOW_SPLIT_1_OFFSET = RSE::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET, + PARAM_SHADOW_SPLIT_2_OFFSET = RSE::LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET, + PARAM_SHADOW_SPLIT_3_OFFSET = RSE::LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET, + PARAM_SHADOW_FADE_START = RSE::LIGHT_PARAM_SHADOW_FADE_START, + PARAM_SHADOW_NORMAL_BIAS = RSE::LIGHT_PARAM_SHADOW_NORMAL_BIAS, + PARAM_SHADOW_BIAS = RSE::LIGHT_PARAM_SHADOW_BIAS, + PARAM_SHADOW_PANCAKE_SIZE = RSE::LIGHT_PARAM_SHADOW_PANCAKE_SIZE, + PARAM_SHADOW_OPACITY = RSE::LIGHT_PARAM_SHADOW_OPACITY, + PARAM_SHADOW_BLUR = RSE::LIGHT_PARAM_SHADOW_BLUR, + PARAM_TRANSMITTANCE_BIAS = RSE::LIGHT_PARAM_TRANSMITTANCE_BIAS, + PARAM_INTENSITY = RSE::LIGHT_PARAM_INTENSITY, + PARAM_MAX = RSE::LIGHT_PARAM_MAX }; enum BakeMode { @@ -79,7 +79,7 @@ private: real_t distance_fade_begin = 40.0; real_t distance_fade_shadow = 50.0; real_t distance_fade_length = 10.0; - RS::LightType type = RenderingServer::LIGHT_DIRECTIONAL; + RSE::LightType type = RSE::LIGHT_DIRECTIONAL; bool editor_only = false; void _update_visibility(); BakeMode bake_mode = BAKE_DYNAMIC; @@ -98,10 +98,10 @@ protected: void _notification(int p_what); void _validate_property(PropertyInfo &p_property) const; - Light3D(RenderingServer::LightType p_type); + Light3D(RSE::LightType p_type); public: - RS::LightType get_light_type() const { return type; } + RSE::LightType get_light_type() const { return type; } void set_editor_only(bool p_editor_only); bool is_editor_only() const; diff --git a/scene/3d/lightmap_gi.cpp b/scene/3d/lightmap_gi.cpp index 46b7856a6f..1904499d50 100644 --- a/scene/3d/lightmap_gi.cpp +++ b/scene/3d/lightmap_gi.cpp @@ -42,6 +42,7 @@ #include "scene/resources/environment.h" #include "scene/resources/image_texture.h" #include "scene/resources/sky.h" +#include "servers/rendering/rendering_server.h" #include "modules/modules_enabled.gen.h" // For lightmapper_rd. @@ -214,7 +215,7 @@ bool LightmapGIData::_is_using_packed_directional() const { } void LightmapGIData::update_shadowmask_mode(ShadowmaskMode p_mode) { - RS::get_singleton()->lightmap_set_shadowmask_mode(lightmap, (RS::ShadowmaskMode)p_mode); + RS::get_singleton()->lightmap_set_shadowmask_mode(lightmap, (RSE::ShadowmaskMode)p_mode); } LightmapGIData::ShadowmaskMode LightmapGIData::get_shadowmask_mode() const { @@ -963,8 +964,8 @@ LightmapGI::BakeError LightmapGI::bake(Node *p_from_node, String p_image_data_pa ERR_FAIL_COND_V(images.is_empty(), BAKE_ERROR_CANT_CREATE_IMAGE); - Ref albedo = images[RS::BAKE_CHANNEL_ALBEDO_ALPHA]; - Ref orm = images[RS::BAKE_CHANNEL_ORM]; + Ref albedo = images[RSE::BAKE_CHANNEL_ALBEDO_ALPHA]; + Ref orm = images[RSE::BAKE_CHANNEL_ORM]; //multiply albedo by metal @@ -1007,7 +1008,7 @@ LightmapGI::BakeError LightmapGI::bake(Node *p_from_node, String p_image_data_pa md.albedo_on_uv2->set_data(lightmap_size.width, lightmap_size.height, false, Image::FORMAT_RGBA8, albedom); } - md.emission_on_uv2 = images[RS::BAKE_CHANNEL_EMISSION]; + md.emission_on_uv2 = images[RSE::BAKE_CHANNEL_EMISSION]; if (md.emission_on_uv2->get_format() != Image::FORMAT_RGBAH) { md.emission_on_uv2->convert(Image::FORMAT_RGBAH); } diff --git a/scene/3d/mesh_instance_3d.cpp b/scene/3d/mesh_instance_3d.cpp index dce84b91be..51b1f1fa09 100644 --- a/scene/3d/mesh_instance_3d.cpp +++ b/scene/3d/mesh_instance_3d.cpp @@ -43,6 +43,7 @@ #include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" #include "scene/resources/navigation_mesh.h" #include "servers/navigation_3d/navigation_server_3d.h" +#include "servers/rendering/rendering_server.h" Callable MeshInstance3D::_navmesh_source_geometry_parsing_callback; RID MeshInstance3D::_navmesh_source_geometry_parser; @@ -562,7 +563,7 @@ Ref MeshInstance3D::bake_mesh_from_current_blend_shape_mix(Refsurface_get_arrays(surface_index); - ERR_FAIL_COND_V(source_mesh_arrays.size() != RS::ARRAY_MAX, Ref()); + ERR_FAIL_COND_V(source_mesh_arrays.size() != RSE::ARRAY_MAX, Ref()); const Vector &source_mesh_vertex_array = source_mesh_arrays[Mesh::ARRAY_VERTEX]; const Vector &source_mesh_normal_array = source_mesh_arrays[Mesh::ARRAY_NORMAL]; @@ -739,7 +740,7 @@ Ref MeshInstance3D::bake_mesh_from_current_skeleton_pose(Refsurface_get_arrays(surface_index); - ERR_FAIL_COND_V(source_mesh_arrays.size() != RS::ARRAY_MAX, Ref()); + ERR_FAIL_COND_V(source_mesh_arrays.size() != RSE::ARRAY_MAX, Ref()); const Vector &source_mesh_vertex_array = source_mesh_arrays[Mesh::ARRAY_VERTEX]; const Vector &source_mesh_normal_array = source_mesh_arrays[Mesh::ARRAY_NORMAL]; diff --git a/scene/3d/navigation/navigation_agent_3d.cpp b/scene/3d/navigation/navigation_agent_3d.cpp index d83d3c9529..92102695e5 100644 --- a/scene/3d/navigation/navigation_agent_3d.cpp +++ b/scene/3d/navigation/navigation_agent_3d.cpp @@ -33,6 +33,7 @@ #include "core/math/geometry_3d.h" #include "scene/3d/navigation/navigation_link_3d.h" #include "servers/navigation_3d/navigation_server_3d.h" +#include "servers/rendering/rendering_server.h" void NavigationAgent3D::_bind_methods() { ClassDB::bind_method(D_METHOD("get_rid"), &NavigationAgent3D::get_rid); diff --git a/scene/3d/navigation/navigation_link_3d.cpp b/scene/3d/navigation/navigation_link_3d.cpp index eb454c9f3a..bca6889929 100644 --- a/scene/3d/navigation/navigation_link_3d.cpp +++ b/scene/3d/navigation/navigation_link_3d.cpp @@ -31,6 +31,7 @@ #include "navigation_link_3d.h" #include "servers/navigation_3d/navigation_server_3d.h" +#include "servers/rendering/rendering_server.h" #ifdef DEBUG_ENABLED void NavigationLink3D::_update_debug_mesh() { diff --git a/scene/3d/navigation/navigation_obstacle_3d.cpp b/scene/3d/navigation/navigation_obstacle_3d.cpp index f6a967d48b..227e5fdd00 100644 --- a/scene/3d/navigation/navigation_obstacle_3d.cpp +++ b/scene/3d/navigation/navigation_obstacle_3d.cpp @@ -34,6 +34,7 @@ #include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" #include "scene/resources/navigation_mesh.h" #include "servers/navigation_3d/navigation_server_3d.h" +#include "servers/rendering/rendering_server.h" Callable NavigationObstacle3D::_navmesh_source_geometry_parsing_callback; RID NavigationObstacle3D::_navmesh_source_geometry_parser; @@ -616,7 +617,7 @@ void NavigationObstacle3D::_update_fake_agent_radius_debug() { face_mesh_array[Mesh::ARRAY_VERTEX] = face_vertex_array; face_mesh_array[Mesh::ARRAY_INDEX] = face_indices_array; - rs->mesh_add_surface_from_arrays(fake_agent_radius_debug_mesh_rid, RS::PRIMITIVE_TRIANGLES, face_mesh_array); + rs->mesh_add_surface_from_arrays(fake_agent_radius_debug_mesh_rid, RSE::PRIMITIVE_TRIANGLES, face_mesh_array); Ref face_material = ns3d->get_debug_navigation_avoidance_obstacles_radius_material(); rs->instance_set_surface_override_material(fake_agent_radius_debug_instance_rid, 0, face_material->get_rid()); @@ -692,7 +693,7 @@ void NavigationObstacle3D::_update_static_obstacle_debug() { edge_mesh_array.resize(Mesh::ARRAY_MAX); edge_mesh_array[Mesh::ARRAY_VERTEX] = edge_vertex_array; - rs->mesh_add_surface_from_arrays(static_obstacle_debug_mesh_rid, RS::PRIMITIVE_LINES, edge_mesh_array); + rs->mesh_add_surface_from_arrays(static_obstacle_debug_mesh_rid, RSE::PRIMITIVE_LINES, edge_mesh_array); Ref edge_material; diff --git a/scene/3d/navigation/navigation_region_3d.cpp b/scene/3d/navigation/navigation_region_3d.cpp index fe0b1f0af9..f19bf01043 100644 --- a/scene/3d/navigation/navigation_region_3d.cpp +++ b/scene/3d/navigation/navigation_region_3d.cpp @@ -33,6 +33,7 @@ #include "core/math/random_pcg.h" #include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" #include "servers/navigation_3d/navigation_server_3d.h" +#include "servers/rendering/rendering_server.h" RID NavigationRegion3D::get_rid() const { return region; diff --git a/scene/3d/node_3d.cpp b/scene/3d/node_3d.cpp index f8553985db..01ff9ac339 100644 --- a/scene/3d/node_3d.cpp +++ b/scene/3d/node_3d.cpp @@ -34,6 +34,7 @@ #include "scene/3d/visual_instance_3d.h" #include "scene/main/viewport.h" #include "scene/property_utils.h" +#include "servers/rendering/rendering_server.h" /* diff --git a/scene/3d/occluder_instance_3d.cpp b/scene/3d/occluder_instance_3d.cpp index 5184d61ffd..9a31111b97 100644 --- a/scene/3d/occluder_instance_3d.cpp +++ b/scene/3d/occluder_instance_3d.cpp @@ -38,6 +38,7 @@ #include "scene/3d/mesh_instance_3d.h" #include "scene/resources/3d/importer_mesh.h" #include "scene/resources/surface_tool.h" +#include "servers/rendering/rendering_server.h" #ifdef TOOLS_ENABLED #include "editor/editor_node.h" diff --git a/scene/3d/path_3d.cpp b/scene/3d/path_3d.cpp index 079d7d143a..765ad4d610 100644 --- a/scene/3d/path_3d.cpp +++ b/scene/3d/path_3d.cpp @@ -31,6 +31,7 @@ #include "path_3d.h" #include "scene/resources/mesh.h" +#include "servers/rendering/rendering_server.h" Path3D::Path3D() { SceneTree *st = SceneTree::get_singleton(); diff --git a/scene/3d/physics/animatable_body_3d.cpp b/scene/3d/physics/animatable_body_3d.cpp index 407e23a57e..9bfdb58acd 100644 --- a/scene/3d/physics/animatable_body_3d.cpp +++ b/scene/3d/physics/animatable_body_3d.cpp @@ -30,6 +30,8 @@ #include "animatable_body_3d.h" +#include "core/config/engine.h" + Vector3 AnimatableBody3D::get_linear_velocity() const { return linear_velocity; } diff --git a/scene/3d/physics/character_body_3d.cpp b/scene/3d/physics/character_body_3d.cpp index aa4ed20bb4..7a58327eb3 100644 --- a/scene/3d/physics/character_body_3d.cpp +++ b/scene/3d/physics/character_body_3d.cpp @@ -30,6 +30,8 @@ #include "character_body_3d.h" +#include "core/config/engine.h" + #ifndef DISABLE_DEPRECATED #include "servers/physics_3d/physics_server_3d_extension.h" #endif diff --git a/scene/3d/physics/collision_object_3d.cpp b/scene/3d/physics/collision_object_3d.cpp index 3685ed8886..96cd8910af 100644 --- a/scene/3d/physics/collision_object_3d.cpp +++ b/scene/3d/physics/collision_object_3d.cpp @@ -32,6 +32,7 @@ #include "scene/resources/3d/shape_3d.h" #include "scene/resources/mesh.h" +#include "servers/rendering/rendering_server.h" void CollisionObject3D::_notification(int p_what) { switch (p_what) { diff --git a/scene/3d/physics/collision_shape_3d.cpp b/scene/3d/physics/collision_shape_3d.cpp index 70d943344c..be127b33ac 100644 --- a/scene/3d/physics/collision_shape_3d.cpp +++ b/scene/3d/physics/collision_shape_3d.cpp @@ -36,6 +36,7 @@ #include "scene/resources/3d/concave_polygon_shape_3d.h" #include "scene/resources/3d/convex_polygon_shape_3d.h" #include "scene/resources/3d/world_boundary_shape_3d.h" +#include "servers/rendering/rendering_server.h" void CollisionShape3D::make_convex_from_siblings() { Node *p = get_parent(); @@ -54,7 +55,7 @@ void CollisionShape3D::make_convex_from_siblings() { for (int j = 0; j < m->get_surface_count(); j++) { Array a = m->surface_get_arrays(j); if (!a.is_empty()) { - Vector v = a[RenderingServer::ARRAY_VERTEX]; + Vector v = a[RSE::ARRAY_VERTEX]; for (int k = 0; k < v.size(); k++) { vertices.append(mi->get_transform().xform(v[k])); } diff --git a/scene/3d/physics/physical_bone_3d.cpp b/scene/3d/physics/physical_bone_3d.cpp index 41ebadf9fd..810a051376 100644 --- a/scene/3d/physics/physical_bone_3d.cpp +++ b/scene/3d/physics/physical_bone_3d.cpp @@ -30,7 +30,9 @@ #include "physical_bone_3d.h" +#include "core/config/engine.h" #include "scene/3d/physics/physical_bone_simulator_3d.h" + #ifndef DISABLE_DEPRECATED #include "scene/3d/skeleton_3d.h" #endif //_DISABLE_DEPRECATED diff --git a/scene/3d/physics/physical_bone_simulator_3d.cpp b/scene/3d/physics/physical_bone_simulator_3d.cpp index 12cd9bac4c..9774a73d1f 100644 --- a/scene/3d/physics/physical_bone_simulator_3d.cpp +++ b/scene/3d/physics/physical_bone_simulator_3d.cpp @@ -30,6 +30,7 @@ #include "physical_bone_simulator_3d.h" +#include "core/config/engine.h" #include "scene/3d/physics/physical_bone_3d.h" void PhysicalBoneSimulator3D::_skeleton_changed(Skeleton3D *p_old, Skeleton3D *p_new) { diff --git a/scene/3d/physics/ray_cast_3d.cpp b/scene/3d/physics/ray_cast_3d.cpp index e71b734e1d..326192a74d 100644 --- a/scene/3d/physics/ray_cast_3d.cpp +++ b/scene/3d/physics/ray_cast_3d.cpp @@ -32,6 +32,7 @@ #include "scene/3d/physics/collision_object_3d.h" #include "scene/resources/mesh.h" +#include "servers/rendering/rendering_server.h" void RayCast3D::set_target_position(const Vector3 &p_point) { target_position = p_point; diff --git a/scene/3d/physics/rigid_body_3d.cpp b/scene/3d/physics/rigid_body_3d.cpp index fad1e53293..2a638618ac 100644 --- a/scene/3d/physics/rigid_body_3d.cpp +++ b/scene/3d/physics/rigid_body_3d.cpp @@ -30,6 +30,8 @@ #include "rigid_body_3d.h" +#include "core/config/engine.h" + void RigidBody3D::_body_enter_tree(ObjectID p_id) { Object *obj = ObjectDB::get_instance(p_id); Node *node = Object::cast_to(obj); diff --git a/scene/3d/physics/shape_cast_3d.cpp b/scene/3d/physics/shape_cast_3d.cpp index a19f6603e1..29691cf8c0 100644 --- a/scene/3d/physics/shape_cast_3d.cpp +++ b/scene/3d/physics/shape_cast_3d.cpp @@ -33,6 +33,7 @@ #include "scene/3d/physics/collision_object_3d.h" #include "scene/resources/3d/concave_polygon_shape_3d.h" #include "scene/resources/mesh.h" +#include "servers/rendering/rendering_server.h" void ShapeCast3D::_notification(int p_what) { switch (p_what) { diff --git a/scene/3d/physics/soft_body_3d.cpp b/scene/3d/physics/soft_body_3d.cpp index 0c7ad59010..15dd17f894 100644 --- a/scene/3d/physics/soft_body_3d.cpp +++ b/scene/3d/physics/soft_body_3d.cpp @@ -32,6 +32,7 @@ #include "soft_body_3d.compat.inc" #include "scene/3d/physics/physics_body_3d.h" +#include "servers/rendering/rendering_server.h" SoftBodyRenderingServerHandler::SoftBodyRenderingServerHandler() {} @@ -45,7 +46,7 @@ void SoftBodyRenderingServerHandler::prepare(RID p_mesh, int p_surface) { RS::SurfaceData surface_data = RS::get_singleton()->mesh_get_surface(mesh, surface); - uint32_t surface_offsets[RS::ARRAY_MAX]; + uint32_t surface_offsets[RSE::ARRAY_MAX]; uint32_t vertex_stride; uint32_t normal_tangent_stride; uint32_t attrib_stride; @@ -55,8 +56,8 @@ void SoftBodyRenderingServerHandler::prepare(RID p_mesh, int p_surface) { buffer = surface_data.vertex_data; stride = vertex_stride; normal_stride = normal_tangent_stride; - offset_vertices = surface_offsets[RS::ARRAY_VERTEX]; - offset_normal = surface_offsets[RS::ARRAY_NORMAL]; + offset_vertices = surface_offsets[RSE::ARRAY_VERTEX]; + offset_normal = surface_offsets[RSE::ARRAY_NORMAL]; } void SoftBodyRenderingServerHandler::clear() { diff --git a/scene/3d/physics/spring_arm_3d.cpp b/scene/3d/physics/spring_arm_3d.cpp index 4e7fb0ae61..222abccf4d 100644 --- a/scene/3d/physics/spring_arm_3d.cpp +++ b/scene/3d/physics/spring_arm_3d.cpp @@ -30,6 +30,7 @@ #include "spring_arm_3d.h" +#include "core/config/engine.h" #include "scene/3d/camera_3d.h" #include "scene/resources/3d/shape_3d.h" diff --git a/scene/3d/physics/static_body_3d.cpp b/scene/3d/physics/static_body_3d.cpp index f770cd36d3..5c9e577082 100644 --- a/scene/3d/physics/static_body_3d.cpp +++ b/scene/3d/physics/static_body_3d.cpp @@ -136,7 +136,7 @@ void StaticBody3D::navmesh_parse_source_geometry(const Ref &p_na BoxShape3D *box = Object::cast_to(*s); if (box) { Array arr; - arr.resize(RS::ARRAY_MAX); + arr.resize(RSE::ARRAY_MAX); BoxMesh::create_mesh_array(arr, box->get_size()); p_source_geometry_data->add_mesh_array(arr, transform); } @@ -144,7 +144,7 @@ void StaticBody3D::navmesh_parse_source_geometry(const Ref &p_na CapsuleShape3D *capsule = Object::cast_to(*s); if (capsule) { Array arr; - arr.resize(RS::ARRAY_MAX); + arr.resize(RSE::ARRAY_MAX); CapsuleMesh::create_mesh_array(arr, capsule->get_radius(), capsule->get_height()); p_source_geometry_data->add_mesh_array(arr, transform); } @@ -152,7 +152,7 @@ void StaticBody3D::navmesh_parse_source_geometry(const Ref &p_na CylinderShape3D *cylinder = Object::cast_to(*s); if (cylinder) { Array arr; - arr.resize(RS::ARRAY_MAX); + arr.resize(RSE::ARRAY_MAX); CylinderMesh::create_mesh_array(arr, cylinder->get_radius(), cylinder->get_radius(), cylinder->get_height()); p_source_geometry_data->add_mesh_array(arr, transform); } @@ -160,7 +160,7 @@ void StaticBody3D::navmesh_parse_source_geometry(const Ref &p_na SphereShape3D *sphere = Object::cast_to(*s); if (sphere) { Array arr; - arr.resize(RS::ARRAY_MAX); + arr.resize(RSE::ARRAY_MAX); SphereMesh::create_mesh_array(arr, sphere->get_radius(), sphere->get_radius() * 2.0); p_source_geometry_data->add_mesh_array(arr, transform); } diff --git a/scene/3d/reflection_probe.cpp b/scene/3d/reflection_probe.cpp index 5384941864..9866ef8196 100644 --- a/scene/3d/reflection_probe.cpp +++ b/scene/3d/reflection_probe.cpp @@ -29,6 +29,7 @@ /**************************************************************************/ #include "reflection_probe.h" +#include "servers/rendering/rendering_server.h" void ReflectionProbe::set_intensity(float p_intensity) { intensity = p_intensity; @@ -51,7 +52,7 @@ float ReflectionProbe::get_blend_distance() const { void ReflectionProbe::set_ambient_mode(AmbientMode p_mode) { ambient_mode = p_mode; - RS::get_singleton()->reflection_probe_set_ambient_mode(probe, RS::ReflectionProbeAmbientMode(p_mode)); + RS::get_singleton()->reflection_probe_set_ambient_mode(probe, RSE::ReflectionProbeAmbientMode(p_mode)); notify_property_list_changed(); } @@ -186,7 +187,7 @@ uint32_t ReflectionProbe::get_reflection_mask() const { void ReflectionProbe::set_update_mode(UpdateMode p_mode) { update_mode = p_mode; - RS::get_singleton()->reflection_probe_set_update_mode(probe, RS::ReflectionProbeUpdateMode(p_mode)); + RS::get_singleton()->reflection_probe_set_update_mode(probe, RSE::ReflectionProbeUpdateMode(p_mode)); } ReflectionProbe::UpdateMode ReflectionProbe::get_update_mode() const { diff --git a/scene/3d/sprite_3d.cpp b/scene/3d/sprite_3d.cpp index 46a84bd005..f80f55aa40 100644 --- a/scene/3d/sprite_3d.cpp +++ b/scene/3d/sprite_3d.cpp @@ -32,6 +32,7 @@ #include "scene/resources/atlas_texture.h" #include "scene/resources/mesh.h" +#include "servers/rendering/rendering_server.h" Color SpriteBase3D::_get_color_accum() { if (!color_dirty) { @@ -240,14 +241,14 @@ void SpriteBase3D::draw_texture_rect(Ref p_texture, Rect2 p_dst_rect, } float v_uv[2] = { (float)uvs[i].x, (float)uvs[i].y }; - memcpy(&attribute_write_buffer[i * attrib_stride + mesh_surface_offsets[RS::ARRAY_TEX_UV]], v_uv, 8); + memcpy(&attribute_write_buffer[i * attrib_stride + mesh_surface_offsets[RSE::ARRAY_TEX_UV]], v_uv, 8); float v_vertex[3] = { (float)vtx.x, (float)vtx.y, (float)vtx.z }; - memcpy(&vertex_write_buffer[i * vertex_stride + mesh_surface_offsets[RS::ARRAY_VERTEX]], &v_vertex, sizeof(float) * 3); - memcpy(&vertex_write_buffer[i * normal_tangent_stride + mesh_surface_offsets[RS::ARRAY_NORMAL]], &v_normal, 4); - memcpy(&vertex_write_buffer[i * normal_tangent_stride + mesh_surface_offsets[RS::ARRAY_TANGENT]], &v_tangent, 4); - memcpy(&attribute_write_buffer[i * attrib_stride + mesh_surface_offsets[RS::ARRAY_COLOR]], v_color, 4); + memcpy(&vertex_write_buffer[i * vertex_stride + mesh_surface_offsets[RSE::ARRAY_VERTEX]], &v_vertex, sizeof(float) * 3); + memcpy(&vertex_write_buffer[i * normal_tangent_stride + mesh_surface_offsets[RSE::ARRAY_NORMAL]], &v_normal, 4); + memcpy(&vertex_write_buffer[i * normal_tangent_stride + mesh_surface_offsets[RSE::ARRAY_TANGENT]], &v_tangent, 4); + memcpy(&attribute_write_buffer[i * attrib_stride + mesh_surface_offsets[RSE::ARRAY_COLOR]], v_color, 4); } switch (get_billboard_mode()) { @@ -380,7 +381,7 @@ Color SpriteBase3D::get_modulate() const { } void SpriteBase3D::set_render_priority(int p_priority) { - ERR_FAIL_COND(p_priority < RS::MATERIAL_RENDER_PRIORITY_MIN || p_priority > RS::MATERIAL_RENDER_PRIORITY_MAX); + ERR_FAIL_COND(p_priority < RSE::MATERIAL_RENDER_PRIORITY_MIN || p_priority > RSE::MATERIAL_RENDER_PRIORITY_MAX); if (render_priority == p_priority) { return; @@ -694,7 +695,7 @@ void SpriteBase3D::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "alpha_antialiasing_mode", PROPERTY_HINT_ENUM, "Disabled,Alpha Edge Blend,Alpha Edge Clip"), "set_alpha_antialiasing", "get_alpha_antialiasing"); ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "alpha_antialiasing_edge", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_alpha_antialiasing_edge", "get_alpha_antialiasing_edge"); ADD_PROPERTY(PropertyInfo(Variant::INT, "texture_filter", PROPERTY_HINT_ENUM, "Nearest,Linear,Nearest Mipmap,Linear Mipmap,Nearest Mipmap Anisotropic,Linear Mipmap Anisotropic"), "set_texture_filter", "get_texture_filter"); - ADD_PROPERTY(PropertyInfo(Variant::INT, "render_priority", PROPERTY_HINT_RANGE, itos(RS::MATERIAL_RENDER_PRIORITY_MIN) + "," + itos(RS::MATERIAL_RENDER_PRIORITY_MAX) + ",1"), "set_render_priority", "get_render_priority"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "render_priority", PROPERTY_HINT_RANGE, itos(RSE::MATERIAL_RENDER_PRIORITY_MIN) + "," + itos(RSE::MATERIAL_RENDER_PRIORITY_MAX) + ",1"), "set_render_priority", "get_render_priority"); BIND_ENUM_CONSTANT(FLAG_TRANSPARENT); BIND_ENUM_CONSTANT(FLAG_SHADED); @@ -761,16 +762,16 @@ SpriteBase3D::SpriteBase3D() { indices.write[5] = 3; Array mesh_array; - mesh_array.resize(RS::ARRAY_MAX); - mesh_array[RS::ARRAY_VERTEX] = mesh_vertices; - mesh_array[RS::ARRAY_NORMAL] = mesh_normals; - mesh_array[RS::ARRAY_TANGENT] = mesh_tangents; - mesh_array[RS::ARRAY_COLOR] = mesh_colors; - mesh_array[RS::ARRAY_TEX_UV] = mesh_uvs; - mesh_array[RS::ARRAY_INDEX] = indices; + mesh_array.resize(RSE::ARRAY_MAX); + mesh_array[RSE::ARRAY_VERTEX] = mesh_vertices; + mesh_array[RSE::ARRAY_NORMAL] = mesh_normals; + mesh_array[RSE::ARRAY_TANGENT] = mesh_tangents; + mesh_array[RSE::ARRAY_COLOR] = mesh_colors; + mesh_array[RSE::ARRAY_TEX_UV] = mesh_uvs; + mesh_array[RSE::ARRAY_INDEX] = indices; RS::SurfaceData sd; - RS::get_singleton()->mesh_create_surface_data_from_arrays(&sd, RS::PRIMITIVE_TRIANGLES, mesh_array); + RS::get_singleton()->mesh_create_surface_data_from_arrays(&sd, RSE::PRIMITIVE_TRIANGLES, mesh_array); mesh_surface_format = sd.format; vertex_buffer = sd.vertex_data; diff --git a/scene/3d/sprite_3d.h b/scene/3d/sprite_3d.h index e2f0241cab..d243e3eaa4 100644 --- a/scene/3d/sprite_3d.h +++ b/scene/3d/sprite_3d.h @@ -109,7 +109,7 @@ protected: _FORCE_INLINE_ RID &get_mesh() { return mesh; } _FORCE_INLINE_ RID &get_material() { return material; } - uint32_t mesh_surface_offsets[RS::ARRAY_MAX]; + uint32_t mesh_surface_offsets[RSE::ARRAY_MAX]; PackedByteArray vertex_buffer; PackedByteArray attribute_buffer; uint32_t vertex_stride = 0; diff --git a/scene/3d/visible_on_screen_notifier_3d.cpp b/scene/3d/visible_on_screen_notifier_3d.cpp index 2e70254182..252a1a6d0f 100644 --- a/scene/3d/visible_on_screen_notifier_3d.cpp +++ b/scene/3d/visible_on_screen_notifier_3d.cpp @@ -30,6 +30,9 @@ #include "visible_on_screen_notifier_3d.h" +#include "core/config/engine.h" +#include "servers/rendering/rendering_server.h" + void VisibleOnScreenNotifier3D::_visibility_enter() { if (!is_inside_tree() || Engine::get_singleton()->is_editor_hint()) { return; diff --git a/scene/3d/visual_instance_3d.cpp b/scene/3d/visual_instance_3d.cpp index d538df794e..2e5b465884 100644 --- a/scene/3d/visual_instance_3d.cpp +++ b/scene/3d/visual_instance_3d.cpp @@ -30,8 +30,11 @@ #include "visual_instance_3d.h" +STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer); + #include "core/config/project_settings.h" #include "scene/resources/material.h" +#include "servers/rendering/rendering_server.h" AABB VisualInstance3D::get_aabb() const { AABB ret; @@ -245,7 +248,7 @@ float GeometryInstance3D::get_transparency() const { void GeometryInstance3D::set_visibility_range_begin(float p_dist) { visibility_range_begin = p_dist; - RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RS::VisibilityRangeFadeMode)visibility_range_fade_mode); + RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RSE::VisibilityRangeFadeMode)visibility_range_fade_mode); update_configuration_warnings(); } @@ -255,7 +258,7 @@ float GeometryInstance3D::get_visibility_range_begin() const { void GeometryInstance3D::set_visibility_range_end(float p_dist) { visibility_range_end = p_dist; - RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RS::VisibilityRangeFadeMode)visibility_range_fade_mode); + RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RSE::VisibilityRangeFadeMode)visibility_range_fade_mode); update_configuration_warnings(); } @@ -265,7 +268,7 @@ float GeometryInstance3D::get_visibility_range_end() const { void GeometryInstance3D::set_visibility_range_begin_margin(float p_dist) { visibility_range_begin_margin = p_dist; - RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RS::VisibilityRangeFadeMode)visibility_range_fade_mode); + RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RSE::VisibilityRangeFadeMode)visibility_range_fade_mode); update_configuration_warnings(); } @@ -275,7 +278,7 @@ float GeometryInstance3D::get_visibility_range_begin_margin() const { void GeometryInstance3D::set_visibility_range_end_margin(float p_dist) { visibility_range_end_margin = p_dist; - RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RS::VisibilityRangeFadeMode)visibility_range_fade_mode); + RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RSE::VisibilityRangeFadeMode)visibility_range_fade_mode); update_configuration_warnings(); } @@ -285,7 +288,7 @@ float GeometryInstance3D::get_visibility_range_end_margin() const { void GeometryInstance3D::set_visibility_range_fade_mode(VisibilityRangeFadeMode p_mode) { visibility_range_fade_mode = p_mode; - RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RS::VisibilityRangeFadeMode)visibility_range_fade_mode); + RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RSE::VisibilityRangeFadeMode)visibility_range_fade_mode); update_configuration_warnings(); } @@ -367,7 +370,7 @@ void GeometryInstance3D::_get_property_list(List *p_list) const { void GeometryInstance3D::set_cast_shadows_setting(ShadowCastingSetting p_shadow_casting_setting) { shadow_casting_setting = p_shadow_casting_setting; - RS::get_singleton()->instance_geometry_set_cast_shadows_setting(get_instance(), (RS::ShadowCastingSetting)p_shadow_casting_setting); + RS::get_singleton()->instance_geometry_set_cast_shadows_setting(get_instance(), (RSE::ShadowCastingSetting)p_shadow_casting_setting); } GeometryInstance3D::ShadowCastingSetting GeometryInstance3D::get_cast_shadows_setting() const { @@ -473,17 +476,17 @@ GeometryInstance3D::LightmapScale GeometryInstance3D::get_lightmap_scale() const void GeometryInstance3D::set_gi_mode(GIMode p_mode) { switch (p_mode) { case GI_MODE_DISABLED: { - RS::get_singleton()->instance_geometry_set_flag(get_instance(), RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); - RS::get_singleton()->instance_geometry_set_flag(get_instance(), RS::INSTANCE_FLAG_USE_DYNAMIC_GI, false); + RS::get_singleton()->instance_geometry_set_flag(get_instance(), RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(get_instance(), RSE::INSTANCE_FLAG_USE_DYNAMIC_GI, false); } break; case GI_MODE_STATIC: { - RS::get_singleton()->instance_geometry_set_flag(get_instance(), RS::INSTANCE_FLAG_USE_BAKED_LIGHT, true); - RS::get_singleton()->instance_geometry_set_flag(get_instance(), RS::INSTANCE_FLAG_USE_DYNAMIC_GI, false); + RS::get_singleton()->instance_geometry_set_flag(get_instance(), RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, true); + RS::get_singleton()->instance_geometry_set_flag(get_instance(), RSE::INSTANCE_FLAG_USE_DYNAMIC_GI, false); } break; case GI_MODE_DYNAMIC: { - RS::get_singleton()->instance_geometry_set_flag(get_instance(), RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); - RS::get_singleton()->instance_geometry_set_flag(get_instance(), RS::INSTANCE_FLAG_USE_DYNAMIC_GI, true); + RS::get_singleton()->instance_geometry_set_flag(get_instance(), RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(get_instance(), RSE::INSTANCE_FLAG_USE_DYNAMIC_GI, true); } break; } @@ -496,7 +499,7 @@ GeometryInstance3D::GIMode GeometryInstance3D::get_gi_mode() const { void GeometryInstance3D::set_ignore_occlusion_culling(bool p_enabled) { ignore_occlusion_culling = p_enabled; - RS::get_singleton()->instance_geometry_set_flag(get_instance(), RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, ignore_occlusion_culling); + RS::get_singleton()->instance_geometry_set_flag(get_instance(), RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, ignore_occlusion_culling); } bool GeometryInstance3D::is_ignoring_occlusion_culling() { diff --git a/scene/3d/visual_instance_3d.h b/scene/3d/visual_instance_3d.h index 8a646da404..3e7b671aaa 100644 --- a/scene/3d/visual_instance_3d.h +++ b/scene/3d/visual_instance_3d.h @@ -31,7 +31,7 @@ #pragma once #include "scene/3d/node_3d.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class TriangleMesh; @@ -93,10 +93,10 @@ public: static constexpr AncestralClass static_ancestral_class = AncestralClass::GEOMETRY_INSTANCE_3D; enum ShadowCastingSetting { - SHADOW_CASTING_SETTING_OFF = RS::SHADOW_CASTING_SETTING_OFF, - SHADOW_CASTING_SETTING_ON = RS::SHADOW_CASTING_SETTING_ON, - SHADOW_CASTING_SETTING_DOUBLE_SIDED = RS::SHADOW_CASTING_SETTING_DOUBLE_SIDED, - SHADOW_CASTING_SETTING_SHADOWS_ONLY = RS::SHADOW_CASTING_SETTING_SHADOWS_ONLY + SHADOW_CASTING_SETTING_OFF = RSE::SHADOW_CASTING_SETTING_OFF, + SHADOW_CASTING_SETTING_ON = RSE::SHADOW_CASTING_SETTING_ON, + SHADOW_CASTING_SETTING_DOUBLE_SIDED = RSE::SHADOW_CASTING_SETTING_DOUBLE_SIDED, + SHADOW_CASTING_SETTING_SHADOWS_ONLY = RSE::SHADOW_CASTING_SETTING_SHADOWS_ONLY, }; enum GIMode { @@ -114,9 +114,9 @@ public: }; enum VisibilityRangeFadeMode { - VISIBILITY_RANGE_FADE_DISABLED = RS::VISIBILITY_RANGE_FADE_DISABLED, - VISIBILITY_RANGE_FADE_SELF = RS::VISIBILITY_RANGE_FADE_SELF, - VISIBILITY_RANGE_FADE_DEPENDENCIES = RS::VISIBILITY_RANGE_FADE_DEPENDENCIES, + VISIBILITY_RANGE_FADE_DISABLED = RSE::VISIBILITY_RANGE_FADE_DISABLED, + VISIBILITY_RANGE_FADE_SELF = RSE::VISIBILITY_RANGE_FADE_SELF, + VISIBILITY_RANGE_FADE_DEPENDENCIES = RSE::VISIBILITY_RANGE_FADE_DEPENDENCIES, }; private: diff --git a/scene/3d/voxel_gi.cpp b/scene/3d/voxel_gi.cpp index 59dab96d54..547161601e 100644 --- a/scene/3d/voxel_gi.cpp +++ b/scene/3d/voxel_gi.cpp @@ -35,6 +35,7 @@ #include "scene/3d/multimesh_instance_3d.h" #include "scene/3d/voxelizer.h" #include "scene/resources/camera_attributes.h" +#include "servers/rendering/rendering_server.h" void VoxelGIData::_set_data(const Dictionary &p_data) { ERR_FAIL_COND(!p_data.has("bounds")); diff --git a/scene/debugger/runtime_node_select.cpp b/scene/debugger/runtime_node_select.cpp index 054b114012..11ca1e209d 100644 --- a/scene/debugger/runtime_node_select.cpp +++ b/scene/debugger/runtime_node_select.cpp @@ -43,6 +43,7 @@ #include "scene/gui/popup_menu.h" #include "scene/main/canvas_layer.h" #include "scene/theme/theme_db.h" +#include "servers/rendering/rendering_server.h" #ifndef PHYSICS_2D_DISABLED #include "scene/2d/physics/collision_object_2d.h" @@ -677,21 +678,21 @@ void RuntimeNodeSelect::_set_selected_nodes(const Vector &p_nodes) { sb->instance = RS::get_singleton()->instance_create2(sbox_3d_mesh->get_rid(), scenario); sb->instance_ofs = RS::get_singleton()->instance_create2(sbox_3d_mesh->get_rid(), scenario); - RS::get_singleton()->instance_geometry_set_cast_shadows_setting(sb->instance, RS::SHADOW_CASTING_SETTING_OFF); - RS::get_singleton()->instance_geometry_set_cast_shadows_setting(sb->instance_ofs, RS::SHADOW_CASTING_SETTING_OFF); - RS::get_singleton()->instance_geometry_set_flag(sb->instance, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(sb->instance, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); - RS::get_singleton()->instance_geometry_set_flag(sb->instance_ofs, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(sb->instance_ofs, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_cast_shadows_setting(sb->instance, RSE::SHADOW_CASTING_SETTING_OFF); + RS::get_singleton()->instance_geometry_set_cast_shadows_setting(sb->instance_ofs, RSE::SHADOW_CASTING_SETTING_OFF); + RS::get_singleton()->instance_geometry_set_flag(sb->instance, RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(sb->instance, RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(sb->instance_ofs, RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(sb->instance_ofs, RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); sb->instance_xray = RS::get_singleton()->instance_create2(sbox_3d_mesh_xray->get_rid(), scenario); sb->instance_xray_ofs = RS::get_singleton()->instance_create2(sbox_3d_mesh_xray->get_rid(), scenario); - RS::get_singleton()->instance_geometry_set_cast_shadows_setting(sb->instance_xray, RS::SHADOW_CASTING_SETTING_OFF); - RS::get_singleton()->instance_geometry_set_cast_shadows_setting(sb->instance_xray_ofs, RS::SHADOW_CASTING_SETTING_OFF); - RS::get_singleton()->instance_geometry_set_flag(sb->instance_xray, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(sb->instance_xray, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); - RS::get_singleton()->instance_geometry_set_flag(sb->instance_xray_ofs, RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); - RS::get_singleton()->instance_geometry_set_flag(sb->instance_xray_ofs, RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_cast_shadows_setting(sb->instance_xray, RSE::SHADOW_CASTING_SETTING_OFF); + RS::get_singleton()->instance_geometry_set_cast_shadows_setting(sb->instance_xray_ofs, RSE::SHADOW_CASTING_SETTING_OFF); + RS::get_singleton()->instance_geometry_set_flag(sb->instance_xray, RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(sb->instance_xray, RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); + RS::get_singleton()->instance_geometry_set_flag(sb->instance_xray_ofs, RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, true); + RS::get_singleton()->instance_geometry_set_flag(sb->instance_xray_ofs, RSE::INSTANCE_FLAG_USE_BAKED_LIGHT, false); #endif // _3D_DISABLED } } diff --git a/scene/debugger/scene_debugger.cpp b/scene/debugger/scene_debugger.cpp index 8fde846dc9..f0b0b8b282 100644 --- a/scene/debugger/scene_debugger.cpp +++ b/scene/debugger/scene_debugger.cpp @@ -47,6 +47,7 @@ #include "scene/main/window.h" // SceneTree:get_root() #include "scene/resources/packed_scene.h" #include "servers/audio/audio_server.h" +#include "servers/rendering/rendering_server.h" #ifndef _3D_DISABLED #include "scene/3d/camera_3d.h" diff --git a/scene/gui/code_edit.cpp b/scene/gui/code_edit.cpp index 7956942127..0fcab013a6 100644 --- a/scene/gui/code_edit.cpp +++ b/scene/gui/code_edit.cpp @@ -38,6 +38,7 @@ #include "core/string/translation_server.h" #include "core/string/ustring.h" #include "scene/theme/theme_db.h" +#include "servers/rendering/rendering_server.h" void CodeEdit::_apply_project_settings() { symbol_tooltip_timer->set_wait_time(GLOBAL_GET_CACHED(double, "gui/timers/tooltip_delay_sec")); diff --git a/scene/gui/color_picker_shape.cpp b/scene/gui/color_picker_shape.cpp index 8c8f33f33d..582cd110a7 100644 --- a/scene/gui/color_picker_shape.cpp +++ b/scene/gui/color_picker_shape.cpp @@ -33,6 +33,8 @@ #include "core/input/input.h" #include "scene/gui/margin_container.h" #include "scene/resources/material.h" +#include "servers/rendering/rendering_server.h" + #include "thirdparty/misc/ok_color_shader.h" void ColorPickerShape::init_shaders() { diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index 26f3057cef..dea37e85a1 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -31,6 +31,8 @@ #include "control.h" #include "control.compat.inc" +STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer); + #include "container.h" #include "core/config/project_settings.h" #include "core/input/input_map.h" diff --git a/scene/gui/control.h b/scene/gui/control.h index 1d06cbb473..d45f376c64 100644 --- a/scene/gui/control.h +++ b/scene/gui/control.h @@ -34,6 +34,7 @@ #include "core/object/gdvirtual.gen.h" #include "scene/main/canvas_item.h" #include "scene/resources/theme.h" +#include "servers/display/display_server.h" class Viewport; class Label; diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp index 2f1f73e4cc..a309c4e08f 100644 --- a/scene/gui/item_list.cpp +++ b/scene/gui/item_list.cpp @@ -33,6 +33,7 @@ #include "core/config/project_settings.h" #include "core/os/os.h" #include "scene/theme/theme_db.h" +#include "servers/rendering/rendering_server.h" void ItemList::_shape_text(int p_idx) { Item &item = items.write[p_idx]; diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp index 8a43caf1f5..da14acf103 100644 --- a/scene/gui/label.cpp +++ b/scene/gui/label.cpp @@ -32,6 +32,7 @@ #include "scene/gui/container.h" #include "scene/theme/theme_db.h" +#include "servers/rendering/rendering_server.h" #include "servers/text/text_server.h" void Label::set_autowrap_mode(TextServer::AutowrapMode p_mode) { diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index 66f8fc398b..dd01243dd9 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -42,6 +42,7 @@ #include "scene/main/window.h" #include "scene/theme/theme_db.h" #include "servers/display/display_server.h" +#include "servers/rendering/rendering_server.h" #include "servers/text/text_server.h" #ifdef TOOLS_ENABLED diff --git a/scene/gui/menu_button.cpp b/scene/gui/menu_button.cpp index 8d565d4b77..7c405d8d0f 100644 --- a/scene/gui/menu_button.cpp +++ b/scene/gui/menu_button.cpp @@ -31,6 +31,7 @@ #include "menu_button.h" #include "scene/main/window.h" +#include "servers/rendering/rendering_server.h" void MenuButton::shortcut_input(const Ref &p_event) { ERR_FAIL_COND(p_event.is_null()); diff --git a/scene/gui/nine_patch_rect.cpp b/scene/gui/nine_patch_rect.cpp index 8ca5ca3ce2..d99204be17 100644 --- a/scene/gui/nine_patch_rect.cpp +++ b/scene/gui/nine_patch_rect.cpp @@ -45,7 +45,7 @@ void NinePatchRect::_notification(int p_what) { texture->get_rect_region(rect, src_rect, rect, src_rect); RID ci = get_canvas_item(); - RS::get_singleton()->canvas_item_add_nine_patch(ci, rect, src_rect, texture->get_scaled_rid(), Vector2(margin[SIDE_LEFT], margin[SIDE_TOP]), Vector2(margin[SIDE_RIGHT], margin[SIDE_BOTTOM]), RS::NinePatchAxisMode(axis_h), RS::NinePatchAxisMode(axis_v), draw_center); + RS::get_singleton()->canvas_item_add_nine_patch(ci, rect, src_rect, texture->get_scaled_rid(), Vector2(margin[SIDE_LEFT], margin[SIDE_TOP]), Vector2(margin[SIDE_RIGHT], margin[SIDE_BOTTOM]), RSE::NinePatchAxisMode(axis_h), RSE::NinePatchAxisMode(axis_v), draw_center); } break; } } diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index 18233d9d22..317803a0f6 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -43,6 +43,7 @@ #include "scene/resources/atlas_texture.h" #include "scene/theme/theme_db.h" #include "servers/display/display_server.h" +#include "servers/rendering/rendering_server.h" #include "modules/modules_enabled.gen.h" // For regex. #ifdef MODULE_REGEX_ENABLED diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 91581cf510..9d9b882220 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -42,6 +42,8 @@ #include "scene/gui/label.h" #include "scene/main/window.h" #include "scene/theme/theme_db.h" +#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" /////////////////////////////////////////////////////////////////////////////// /// TEXT /// @@ -933,7 +935,7 @@ void TextEdit::_notification(int p_what) { RS::get_singleton()->canvas_item_set_custom_rect(text_ci, !is_visibility_clip_disabled(), Rect2(Point2(0, 0), size)); RS::get_singleton()->canvas_item_set_clip(text_ci, true); RS::get_singleton()->canvas_item_set_visibility_layer(text_ci, get_visibility_layer()); - RS::get_singleton()->canvas_item_set_default_texture_filter(text_ci, RS::CanvasItemTextureFilter(get_texture_filter_in_tree())); + RS::get_singleton()->canvas_item_set_default_texture_filter(text_ci, RSE::CanvasItemTextureFilter(get_texture_filter_in_tree())); int left_margin = Math::ceil(style->get_margin(SIDE_LEFT)); int xmargin_beg = left_margin + gutters_width + gutter_padding; diff --git a/scene/gui/texture_progress_bar.cpp b/scene/gui/texture_progress_bar.cpp index c7cb3204ab..793f26d533 100644 --- a/scene/gui/texture_progress_bar.cpp +++ b/scene/gui/texture_progress_bar.cpp @@ -30,6 +30,8 @@ #include "texture_progress_bar.h" +#include "servers/rendering/rendering_server.h" + void TextureProgressBar::set_under_texture(const Ref &p_texture) { _set_texture(&under, p_texture); } @@ -424,7 +426,7 @@ void TextureProgressBar::draw_nine_patch_stretched(const Ref &p_textu p_texture->get_rect_region(dst_rect, src_rect, dst_rect, src_rect); RID ci = get_canvas_item(); - RS::get_singleton()->canvas_item_add_nine_patch(ci, dst_rect, src_rect, p_texture->get_scaled_rid(), topleft, bottomright, RS::NINE_PATCH_STRETCH, RS::NINE_PATCH_STRETCH, true, p_modulate); + RS::get_singleton()->canvas_item_add_nine_patch(ci, dst_rect, src_rect, p_texture->get_scaled_rid(), topleft, bottomright, RSE::NINE_PATCH_STRETCH, RSE::NINE_PATCH_STRETCH, true, p_modulate); } void TextureProgressBar::_notification(int p_what) { diff --git a/scene/gui/texture_rect.cpp b/scene/gui/texture_rect.cpp index 1361b760bc..99855941f7 100644 --- a/scene/gui/texture_rect.cpp +++ b/scene/gui/texture_rect.cpp @@ -31,6 +31,7 @@ #include "texture_rect.h" #include "scene/resources/atlas_texture.h" +#include "servers/rendering/rendering_server.h" void TextureRect::_notification(int p_what) { switch (p_what) { @@ -109,7 +110,7 @@ void TextureRect::_notification(int p_what) { at = at->get_atlas(); } if (anything_to_draw) { - RS::get_singleton()->canvas_item_add_nine_patch(get_canvas_item(), dst_rect, src_rect, texture->get_scaled_rid(), Vector2(), Vector2(), RS::NINE_PATCH_TILE, RS::NINE_PATCH_TILE, true); + RS::get_singleton()->canvas_item_add_nine_patch(get_canvas_item(), dst_rect, src_rect, texture->get_scaled_rid(), Vector2(), Vector2(), RSE::NINE_PATCH_TILE, RSE::NINE_PATCH_TILE, true); } } else { draw_texture_rect(texture, Rect2(offset, size), tile); diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp index d41fc65eb1..2d53fc6528 100644 --- a/scene/gui/tree.cpp +++ b/scene/gui/tree.cpp @@ -45,6 +45,7 @@ #include "scene/main/timer.h" #include "scene/main/window.h" #include "scene/theme/theme_db.h" +#include "servers/rendering/rendering_server.h" #include diff --git a/scene/main/canvas_item.cpp b/scene/main/canvas_item.cpp index fa0ad3035e..901453ed89 100644 --- a/scene/main/canvas_item.cpp +++ b/scene/main/canvas_item.cpp @@ -31,6 +31,8 @@ #include "canvas_item.h" #include "canvas_item.compat.inc" +STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer); + #include "scene/2d/canvas_group.h" #include "scene/main/canvas_layer.h" #include "scene/main/window.h" @@ -40,6 +42,7 @@ #include "scene/resources/multimesh.h" #include "scene/resources/style_box.h" #include "scene/resources/world_2d.h" +#include "servers/rendering/rendering_server.h" #define ERR_DRAW_GUARD \ ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside this node's `_draw()`, functions connected to its `draw` signal, or when it receives NOTIFICATION_DRAW.") @@ -666,8 +669,8 @@ void CanvasItem::item_rect_changed(bool p_size_changed) { void CanvasItem::set_z_index(int p_z) { ERR_THREAD_GUARD; - ERR_FAIL_COND(p_z < RS::CANVAS_ITEM_Z_MIN); - ERR_FAIL_COND(p_z > RS::CANVAS_ITEM_Z_MAX); + ERR_FAIL_COND(p_z < RSE::CANVAS_ITEM_Z_MIN); + ERR_FAIL_COND(p_z > RSE::CANVAS_ITEM_Z_MAX); z_index = p_z; RS::get_singleton()->canvas_item_set_z_index(canvas_item, z_index); update_configuration_warnings(); @@ -1482,7 +1485,7 @@ void CanvasItem::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "visibility_layer", PROPERTY_HINT_LAYERS_2D_RENDER), "set_visibility_layer", "get_visibility_layer"); ADD_GROUP("Ordering", ""); - ADD_PROPERTY(PropertyInfo(Variant::INT, "z_index", PROPERTY_HINT_RANGE, itos(RS::CANVAS_ITEM_Z_MIN) + "," + itos(RS::CANVAS_ITEM_Z_MAX) + ",1"), "set_z_index", "get_z_index"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "z_index", PROPERTY_HINT_RANGE, itos(RSE::CANVAS_ITEM_Z_MIN) + "," + itos(RSE::CANVAS_ITEM_Z_MAX) + ",1"), "set_z_index", "get_z_index"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "z_as_relative"), "set_z_as_relative", "is_z_relative"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "y_sort_enabled"), "set_y_sort_enabled", "is_y_sort_enabled"); @@ -1636,14 +1639,14 @@ void CanvasItem::_refresh_texture_filter_cache() const { if (parent_item) { texture_filter_cache = parent_item->texture_filter_cache; } else { - texture_filter_cache = RS::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT; + texture_filter_cache = RSE::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT; } } else { - texture_filter_cache = RS::CanvasItemTextureFilter(texture_filter); + texture_filter_cache = RSE::CanvasItemTextureFilter(texture_filter); } } -void CanvasItem::_update_self_texture_filter(RS::CanvasItemTextureFilter p_texture_filter) { +void CanvasItem::_update_self_texture_filter(RSE::CanvasItemTextureFilter p_texture_filter) { RS::get_singleton()->canvas_item_set_default_texture_filter(get_canvas_item(), p_texture_filter); queue_redraw(); } @@ -1692,14 +1695,14 @@ void CanvasItem::_refresh_texture_repeat_cache() const { if (parent_item) { texture_repeat_cache = parent_item->texture_repeat_cache; } else { - texture_repeat_cache = RS::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT; + texture_repeat_cache = RSE::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT; } } else { - texture_repeat_cache = RS::CanvasItemTextureRepeat(texture_repeat); + texture_repeat_cache = RSE::CanvasItemTextureRepeat(texture_repeat); } } -void CanvasItem::_update_self_texture_repeat(RS::CanvasItemTextureRepeat p_texture_repeat) { +void CanvasItem::_update_self_texture_repeat(RSE::CanvasItemTextureRepeat p_texture_repeat) { RS::get_singleton()->canvas_item_set_default_texture_repeat(get_canvas_item(), p_texture_repeat); queue_redraw(); } @@ -1748,7 +1751,7 @@ void CanvasItem::set_clip_children_mode(ClipChildrenMode p_clip_mode) { return; } - RS::get_singleton()->canvas_item_set_canvas_group_mode(get_canvas_item(), RS::CanvasGroupMode(clip_children_mode)); + RS::get_singleton()->canvas_item_set_canvas_group_mode(get_canvas_item(), RSE::CanvasGroupMode(clip_children_mode)); } CanvasItem::ClipChildrenMode CanvasItem::get_clip_children_mode() const { @@ -1795,7 +1798,7 @@ void CanvasTexture::set_diffuse_texture(const Ref &p_diffuse) { diffuse_texture = p_diffuse; RID tex_rid = diffuse_texture.is_valid() ? diffuse_texture->get_rid() : RID(); - RS::get_singleton()->canvas_texture_set_channel(canvas_texture, RS::CANVAS_TEXTURE_CHANNEL_DIFFUSE, tex_rid); + RS::get_singleton()->canvas_texture_set_channel(canvas_texture, RSE::CANVAS_TEXTURE_CHANNEL_DIFFUSE, tex_rid); emit_changed(); } Ref CanvasTexture::get_diffuse_texture() const { @@ -1809,7 +1812,7 @@ void CanvasTexture::set_normal_texture(const Ref &p_normal) { } normal_texture = p_normal; RID tex_rid = normal_texture.is_valid() ? normal_texture->get_rid() : RID(); - RS::get_singleton()->canvas_texture_set_channel(canvas_texture, RS::CANVAS_TEXTURE_CHANNEL_NORMAL, tex_rid); + RS::get_singleton()->canvas_texture_set_channel(canvas_texture, RSE::CANVAS_TEXTURE_CHANNEL_NORMAL, tex_rid); emit_changed(); } Ref CanvasTexture::get_normal_texture() const { @@ -1823,7 +1826,7 @@ void CanvasTexture::set_specular_texture(const Ref &p_specular) { } specular_texture = p_specular; RID tex_rid = specular_texture.is_valid() ? specular_texture->get_rid() : RID(); - RS::get_singleton()->canvas_texture_set_channel(canvas_texture, RS::CANVAS_TEXTURE_CHANNEL_SPECULAR, tex_rid); + RS::get_singleton()->canvas_texture_set_channel(canvas_texture, RSE::CANVAS_TEXTURE_CHANNEL_SPECULAR, tex_rid); emit_changed(); } @@ -1862,7 +1865,7 @@ void CanvasTexture::set_texture_filter(CanvasItem::TextureFilter p_filter) { return; } texture_filter = p_filter; - RS::get_singleton()->canvas_texture_set_texture_filter(canvas_texture, RS::CanvasItemTextureFilter(p_filter)); + RS::get_singleton()->canvas_texture_set_texture_filter(canvas_texture, RSE::CanvasItemTextureFilter(p_filter)); emit_changed(); } CanvasItem::TextureFilter CanvasTexture::get_texture_filter() const { @@ -1874,7 +1877,7 @@ void CanvasTexture::set_texture_repeat(CanvasItem::TextureRepeat p_repeat) { return; } texture_repeat = p_repeat; - RS::get_singleton()->canvas_texture_set_texture_repeat(canvas_texture, RS::CanvasItemTextureRepeat(p_repeat)); + RS::get_singleton()->canvas_texture_set_texture_repeat(canvas_texture, RSE::CanvasItemTextureRepeat(p_repeat)); emit_changed(); } CanvasItem::TextureRepeat CanvasTexture::get_texture_repeat() const { diff --git a/scene/main/canvas_item.h b/scene/main/canvas_item.h index 6e7482eb65..607051f906 100644 --- a/scene/main/canvas_item.h +++ b/scene/main/canvas_item.h @@ -32,7 +32,7 @@ #include "scene/main/node.h" #include "scene/resources/texture.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" #include "servers/text/text_server.h" class CanvasLayer; @@ -121,8 +121,8 @@ private: ClipChildrenMode clip_children_mode = CLIP_CHILDREN_DISABLED; - mutable RS::CanvasItemTextureFilter texture_filter_cache = RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR; - mutable RS::CanvasItemTextureRepeat texture_repeat_cache = RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED; + mutable RSE::CanvasItemTextureFilter texture_filter_cache = RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR; + mutable RSE::CanvasItemTextureRepeat texture_repeat_cache = RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED; TextureFilter texture_filter = TEXTURE_FILTER_PARENT_NODE; TextureRepeat texture_repeat = TEXTURE_REPEAT_PARENT_NODE; @@ -170,8 +170,8 @@ protected: virtual void _physics_interpolated_changed() override; - virtual void _update_self_texture_repeat(RS::CanvasItemTextureRepeat p_texture_repeat); - virtual void _update_self_texture_filter(RS::CanvasItemTextureFilter p_texture_filter); + virtual void _update_self_texture_repeat(RSE::CanvasItemTextureRepeat p_texture_repeat); + virtual void _update_self_texture_filter(RSE::CanvasItemTextureFilter p_texture_filter); _FORCE_INLINE_ void _notify_transform() { _notify_transform(this); diff --git a/scene/main/canvas_layer.cpp b/scene/main/canvas_layer.cpp index ae3774fc28..fa9cc62fa9 100644 --- a/scene/main/canvas_layer.cpp +++ b/scene/main/canvas_layer.cpp @@ -33,6 +33,7 @@ #include "scene/main/canvas_item.h" #include "scene/main/viewport.h" #include "scene/resources/world_2d.h" +#include "servers/rendering/rendering_server.h" void CanvasLayer::set_layer(int p_xform) { layer = p_xform; @@ -337,7 +338,7 @@ void CanvasLayer::_bind_methods() { ClassDB::bind_method(D_METHOD("get_canvas"), &CanvasLayer::get_canvas); ADD_GROUP("Layer", ""); - ADD_PROPERTY(PropertyInfo(Variant::INT, "layer", PROPERTY_HINT_RANGE, itos(RS::CANVAS_LAYER_MIN) + "," + itos(RS::CANVAS_LAYER_MAX) + ",1"), "set_layer", "get_layer"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "layer", PROPERTY_HINT_RANGE, itos(RSE::CANVAS_LAYER_MIN) + "," + itos(RSE::CANVAS_LAYER_MAX) + ",1"), "set_layer", "get_layer"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "visible"), "set_visible", "is_visible"); ADD_GROUP("Transform", ""); ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "offset", PROPERTY_HINT_NONE, "suffix:px"), "set_offset", "get_offset"); diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp index 7586c00a20..44045db1d6 100644 --- a/scene/main/scene_tree.cpp +++ b/scene/main/scene_tree.cpp @@ -30,6 +30,8 @@ #include "scene_tree.h" +STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer); + #include "core/config/project_settings.h" #include "core/input/input.h" #include "core/io/image_loader.h" @@ -51,6 +53,7 @@ #include "scene/resources/mesh.h" #include "scene/resources/packed_scene.h" #include "scene/resources/world_2d.h" +#include "servers/rendering/rendering_server.h" #ifndef _3D_DISABLED #include "scene/3d/node_3d.h" diff --git a/scene/main/shader_globals_override.cpp b/scene/main/shader_globals_override.cpp index c2977a1831..8b53879f11 100644 --- a/scene/main/shader_globals_override.cpp +++ b/scene/main/shader_globals_override.cpp @@ -99,105 +99,105 @@ void ShaderGlobalsOverride::_get_property_list(List *p_list) const pinfo.usage = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_CHECKABLE; switch (RS::get_singleton()->global_shader_parameter_get_type(variables[i])) { - case RS::GLOBAL_VAR_TYPE_BOOL: { + case RSE::GLOBAL_VAR_TYPE_BOOL: { pinfo.type = Variant::BOOL; } break; - case RS::GLOBAL_VAR_TYPE_BVEC2: { + case RSE::GLOBAL_VAR_TYPE_BVEC2: { pinfo.type = Variant::INT; pinfo.hint = PROPERTY_HINT_FLAGS; pinfo.hint_string = "x,y"; } break; - case RS::GLOBAL_VAR_TYPE_BVEC3: { + case RSE::GLOBAL_VAR_TYPE_BVEC3: { pinfo.type = Variant::INT; pinfo.hint = PROPERTY_HINT_FLAGS; pinfo.hint_string = "x,y,z"; } break; - case RS::GLOBAL_VAR_TYPE_BVEC4: { + case RSE::GLOBAL_VAR_TYPE_BVEC4: { pinfo.type = Variant::INT; pinfo.hint = PROPERTY_HINT_FLAGS; pinfo.hint_string = "x,y,z,w"; } break; - case RS::GLOBAL_VAR_TYPE_INT: { + case RSE::GLOBAL_VAR_TYPE_INT: { pinfo.type = Variant::INT; } break; - case RS::GLOBAL_VAR_TYPE_IVEC2: { + case RSE::GLOBAL_VAR_TYPE_IVEC2: { pinfo.type = Variant::VECTOR2I; } break; - case RS::GLOBAL_VAR_TYPE_IVEC3: { + case RSE::GLOBAL_VAR_TYPE_IVEC3: { pinfo.type = Variant::VECTOR3I; } break; - case RS::GLOBAL_VAR_TYPE_IVEC4: { + case RSE::GLOBAL_VAR_TYPE_IVEC4: { pinfo.type = Variant::VECTOR4I; } break; - case RS::GLOBAL_VAR_TYPE_RECT2I: { + case RSE::GLOBAL_VAR_TYPE_RECT2I: { pinfo.type = Variant::RECT2I; } break; - case RS::GLOBAL_VAR_TYPE_UINT: { + case RSE::GLOBAL_VAR_TYPE_UINT: { pinfo.type = Variant::INT; } break; - case RS::GLOBAL_VAR_TYPE_UVEC2: { + case RSE::GLOBAL_VAR_TYPE_UVEC2: { pinfo.type = Variant::VECTOR2I; } break; - case RS::GLOBAL_VAR_TYPE_UVEC3: { + case RSE::GLOBAL_VAR_TYPE_UVEC3: { pinfo.type = Variant::VECTOR3I; } break; - case RS::GLOBAL_VAR_TYPE_UVEC4: { + case RSE::GLOBAL_VAR_TYPE_UVEC4: { pinfo.type = Variant::VECTOR4I; } break; - case RS::GLOBAL_VAR_TYPE_FLOAT: { + case RSE::GLOBAL_VAR_TYPE_FLOAT: { pinfo.type = Variant::FLOAT; } break; - case RS::GLOBAL_VAR_TYPE_VEC2: { + case RSE::GLOBAL_VAR_TYPE_VEC2: { pinfo.type = Variant::VECTOR2; } break; - case RS::GLOBAL_VAR_TYPE_VEC3: { + case RSE::GLOBAL_VAR_TYPE_VEC3: { pinfo.type = Variant::VECTOR3; } break; - case RS::GLOBAL_VAR_TYPE_VEC4: { + case RSE::GLOBAL_VAR_TYPE_VEC4: { pinfo.type = Variant::VECTOR4; } break; - case RS::GLOBAL_VAR_TYPE_RECT2: { + case RSE::GLOBAL_VAR_TYPE_RECT2: { pinfo.type = Variant::RECT2; } break; - case RS::GLOBAL_VAR_TYPE_COLOR: { + case RSE::GLOBAL_VAR_TYPE_COLOR: { pinfo.type = Variant::COLOR; } break; - case RS::GLOBAL_VAR_TYPE_MAT2: { + case RSE::GLOBAL_VAR_TYPE_MAT2: { pinfo.type = Variant::PACKED_FLOAT32_ARRAY; } break; - case RS::GLOBAL_VAR_TYPE_MAT3: { + case RSE::GLOBAL_VAR_TYPE_MAT3: { pinfo.type = Variant::BASIS; } break; - case RS::GLOBAL_VAR_TYPE_MAT4: { + case RSE::GLOBAL_VAR_TYPE_MAT4: { pinfo.type = Variant::PROJECTION; } break; - case RS::GLOBAL_VAR_TYPE_TRANSFORM_2D: { + case RSE::GLOBAL_VAR_TYPE_TRANSFORM_2D: { pinfo.type = Variant::TRANSFORM2D; } break; - case RS::GLOBAL_VAR_TYPE_TRANSFORM: { + case RSE::GLOBAL_VAR_TYPE_TRANSFORM: { pinfo.type = Variant::TRANSFORM3D; } break; - case RS::GLOBAL_VAR_TYPE_SAMPLER2D: { + case RSE::GLOBAL_VAR_TYPE_SAMPLER2D: { pinfo.type = Variant::OBJECT; pinfo.hint = PROPERTY_HINT_RESOURCE_TYPE; pinfo.hint_string = "Texture2D"; } break; - case RS::GLOBAL_VAR_TYPE_SAMPLER2DARRAY: { + case RSE::GLOBAL_VAR_TYPE_SAMPLER2DARRAY: { pinfo.type = Variant::OBJECT; pinfo.hint = PROPERTY_HINT_RESOURCE_TYPE; pinfo.hint_string = "Texture2DArray"; } break; - case RS::GLOBAL_VAR_TYPE_SAMPLER3D: { + case RSE::GLOBAL_VAR_TYPE_SAMPLER3D: { pinfo.type = Variant::OBJECT; pinfo.hint = PROPERTY_HINT_RESOURCE_TYPE; pinfo.hint_string = "Texture3D"; } break; - case RS::GLOBAL_VAR_TYPE_SAMPLERCUBE: { + case RSE::GLOBAL_VAR_TYPE_SAMPLERCUBE: { pinfo.type = Variant::OBJECT; pinfo.hint = PROPERTY_HINT_RESOURCE_TYPE; pinfo.hint_string = "Cubemap"; } break; - case RS::GLOBAL_VAR_TYPE_SAMPLEREXT: { + case RSE::GLOBAL_VAR_TYPE_SAMPLEREXT: { pinfo.type = Variant::OBJECT; pinfo.hint = PROPERTY_HINT_RESOURCE_TYPE; pinfo.hint_string = "ExternalTexture"; diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index 5a32764c88..d150d10b1e 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -30,6 +30,8 @@ #include "viewport.h" +STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer); + #include "core/config/project_settings.h" #include "core/debugger/engine_debugger.h" #include "core/input/input.h" @@ -46,6 +48,9 @@ #include "scene/resources/mesh.h" #include "scene/resources/text_line.h" #include "servers/audio/audio_server.h" +#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" +#include "servers/rendering/rendering_server_globals.h" // 2D. #include "scene/2d/audio_listener_2d.h" @@ -607,13 +612,13 @@ void Viewport::_notification(int p_what) { #ifndef PHYSICS_3D_DISABLED PhysicsServer3D::get_singleton()->space_set_debug_contacts(find_world_3d()->get_space(), get_tree()->get_collision_debug_contact_count()); contact_3d_debug_multimesh = RenderingServer::get_singleton()->multimesh_create(); - RenderingServer::get_singleton()->multimesh_allocate_data(contact_3d_debug_multimesh, get_tree()->get_collision_debug_contact_count(), RS::MULTIMESH_TRANSFORM_3D, false); + RenderingServer::get_singleton()->multimesh_allocate_data(contact_3d_debug_multimesh, get_tree()->get_collision_debug_contact_count(), RSE::MULTIMESH_TRANSFORM_3D, false); RenderingServer::get_singleton()->multimesh_set_visible_instances(contact_3d_debug_multimesh, 0); RenderingServer::get_singleton()->multimesh_set_mesh(contact_3d_debug_multimesh, get_tree()->get_debug_contact_mesh()->get_rid()); contact_3d_debug_instance = RenderingServer::get_singleton()->instance_create(); RenderingServer::get_singleton()->instance_set_base(contact_3d_debug_instance, contact_3d_debug_multimesh); RenderingServer::get_singleton()->instance_set_scenario(contact_3d_debug_instance, find_world_3d()->get_scenario()); - RenderingServer::get_singleton()->instance_geometry_set_flag(contact_3d_debug_instance, RS::INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE, true); + RenderingServer::get_singleton()->instance_geometry_set_flag(contact_3d_debug_instance, RSE::INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE, true); #endif // PHYSICS_3D_DISABLED set_physics_process_internal(true); } @@ -3755,7 +3760,7 @@ void Viewport::set_msaa_2d(MSAA p_msaa) { return; } msaa_2d = p_msaa; - RS::get_singleton()->viewport_set_msaa_2d(viewport, RS::ViewportMSAA(p_msaa)); + RS::get_singleton()->viewport_set_msaa_2d(viewport, RSE::ViewportMSAA(p_msaa)); } Viewport::MSAA Viewport::get_msaa_2d() const { @@ -3770,7 +3775,7 @@ void Viewport::set_msaa_3d(MSAA p_msaa) { return; } msaa_3d = p_msaa; - RS::get_singleton()->viewport_set_msaa_3d(viewport, RS::ViewportMSAA(p_msaa)); + RS::get_singleton()->viewport_set_msaa_3d(viewport, RSE::ViewportMSAA(p_msaa)); } Viewport::MSAA Viewport::get_msaa_3d() const { @@ -3785,7 +3790,7 @@ void Viewport::set_screen_space_aa(ScreenSpaceAA p_screen_space_aa) { return; } screen_space_aa = p_screen_space_aa; - RS::get_singleton()->viewport_set_screen_space_aa(viewport, RS::ViewportScreenSpaceAA(p_screen_space_aa)); + RS::get_singleton()->viewport_set_screen_space_aa(viewport, RSE::ViewportScreenSpaceAA(p_screen_space_aa)); } Viewport::ScreenSpaceAA Viewport::get_screen_space_aa() const { @@ -3852,7 +3857,7 @@ bool Viewport::is_using_occlusion_culling() const { void Viewport::set_debug_draw(DebugDraw p_debug_draw) { ERR_MAIN_THREAD_GUARD; debug_draw = p_debug_draw; - RS::get_singleton()->viewport_set_debug_draw(viewport, RS::ViewportDebugDraw(p_debug_draw)); + RS::get_singleton()->viewport_set_debug_draw(viewport, RSE::ViewportDebugDraw(p_debug_draw)); } Viewport::DebugDraw Viewport::get_debug_draw() const { @@ -3862,7 +3867,7 @@ Viewport::DebugDraw Viewport::get_debug_draw() const { int Viewport::get_render_info(RenderInfoType p_type, RenderInfo p_info) { ERR_READ_THREAD_GUARD_V(0); - return RS::get_singleton()->viewport_get_render_info(viewport, RS::ViewportRenderInfoType(p_type), RS::ViewportRenderInfo(p_info)); + return RS::get_singleton()->viewport_get_render_info(viewport, RSE::ViewportRenderInfoType(p_type), RSE::ViewportRenderInfo(p_info)); } void Viewport::set_snap_controls_to_pixels(bool p_enable) { @@ -3978,16 +3983,16 @@ void Viewport::set_default_canvas_item_texture_filter(DefaultCanvasItemTextureFi default_canvas_item_texture_filter = p_filter; switch (default_canvas_item_texture_filter) { case DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST: - RS::get_singleton()->viewport_set_default_canvas_item_texture_filter(viewport, RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST); + RS::get_singleton()->viewport_set_default_canvas_item_texture_filter(viewport, RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST); break; case DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_LINEAR: - RS::get_singleton()->viewport_set_default_canvas_item_texture_filter(viewport, RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR); + RS::get_singleton()->viewport_set_default_canvas_item_texture_filter(viewport, RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR); break; case DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS: - RS::get_singleton()->viewport_set_default_canvas_item_texture_filter(viewport, RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS); + RS::get_singleton()->viewport_set_default_canvas_item_texture_filter(viewport, RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS); break; case DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS: - RS::get_singleton()->viewport_set_default_canvas_item_texture_filter(viewport, RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS); + RS::get_singleton()->viewport_set_default_canvas_item_texture_filter(viewport, RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS); break; default: { } @@ -4011,13 +4016,13 @@ void Viewport::set_default_canvas_item_texture_repeat(DefaultCanvasItemTextureRe switch (default_canvas_item_texture_repeat) { case DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_DISABLED: - RS::get_singleton()->viewport_set_default_canvas_item_texture_repeat(viewport, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RS::get_singleton()->viewport_set_default_canvas_item_texture_repeat(viewport, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); break; case DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_ENABLED: - RS::get_singleton()->viewport_set_default_canvas_item_texture_repeat(viewport, RS::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED); + RS::get_singleton()->viewport_set_default_canvas_item_texture_repeat(viewport, RSE::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED); break; case DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_MIRROR: - RS::get_singleton()->viewport_set_default_canvas_item_texture_repeat(viewport, RS::CANVAS_ITEM_TEXTURE_REPEAT_MIRROR); + RS::get_singleton()->viewport_set_default_canvas_item_texture_repeat(viewport, RSE::CANVAS_ITEM_TEXTURE_REPEAT_MIRROR); break; default: { } @@ -4036,13 +4041,13 @@ void Viewport::set_vrs_mode(Viewport::VRSMode p_vrs_mode) { switch (p_vrs_mode) { case VRS_TEXTURE: { - RS::get_singleton()->viewport_set_vrs_mode(viewport, RS::VIEWPORT_VRS_TEXTURE); + RS::get_singleton()->viewport_set_vrs_mode(viewport, RSE::VIEWPORT_VRS_TEXTURE); } break; case VRS_XR: { - RS::get_singleton()->viewport_set_vrs_mode(viewport, RS::VIEWPORT_VRS_XR); + RS::get_singleton()->viewport_set_vrs_mode(viewport, RSE::VIEWPORT_VRS_XR); } break; default: { - RS::get_singleton()->viewport_set_vrs_mode(viewport, RS::VIEWPORT_VRS_DISABLED); + RS::get_singleton()->viewport_set_vrs_mode(viewport, RSE::VIEWPORT_VRS_DISABLED); } break; } @@ -4060,13 +4065,13 @@ void Viewport::set_vrs_update_mode(VRSUpdateMode p_vrs_update_mode) { vrs_update_mode = p_vrs_update_mode; switch (p_vrs_update_mode) { case VRS_UPDATE_ONCE: { - RS::get_singleton()->viewport_set_vrs_update_mode(viewport, RS::VIEWPORT_VRS_UPDATE_ONCE); + RS::get_singleton()->viewport_set_vrs_update_mode(viewport, RSE::VIEWPORT_VRS_UPDATE_ONCE); } break; case VRS_UPDATE_ALWAYS: { - RS::get_singleton()->viewport_set_vrs_update_mode(viewport, RS::VIEWPORT_VRS_UPDATE_ALWAYS); + RS::get_singleton()->viewport_set_vrs_update_mode(viewport, RSE::VIEWPORT_VRS_UPDATE_ALWAYS); } break; default: { - RS::get_singleton()->viewport_set_vrs_update_mode(viewport, RS::VIEWPORT_VRS_UPDATE_DISABLED); + RS::get_singleton()->viewport_set_vrs_update_mode(viewport, RSE::VIEWPORT_VRS_UPDATE_DISABLED); } break; } } @@ -4206,7 +4211,7 @@ void Viewport::set_sdf_oversize(SDFOversize p_sdf_oversize) { ERR_MAIN_THREAD_GUARD; ERR_FAIL_INDEX(p_sdf_oversize, SDF_OVERSIZE_MAX); sdf_oversize = p_sdf_oversize; - RS::get_singleton()->viewport_set_sdf_oversize_and_scale(viewport, RS::ViewportSDFOversize(sdf_oversize), RS::ViewportSDFScale(sdf_scale)); + RS::get_singleton()->viewport_set_sdf_oversize_and_scale(viewport, RSE::ViewportSDFOversize(sdf_oversize), RSE::ViewportSDFScale(sdf_scale)); } Viewport::SDFOversize Viewport::get_sdf_oversize() const { @@ -4218,7 +4223,7 @@ void Viewport::set_sdf_scale(SDFScale p_sdf_scale) { ERR_MAIN_THREAD_GUARD; ERR_FAIL_INDEX(p_sdf_scale, SDF_SCALE_MAX); sdf_scale = p_sdf_scale; - RS::get_singleton()->viewport_set_sdf_oversize_and_scale(viewport, RS::ViewportSDFOversize(sdf_oversize), RS::ViewportSDFScale(sdf_scale)); + RS::get_singleton()->viewport_set_sdf_oversize_and_scale(viewport, RSE::ViewportSDFOversize(sdf_oversize), RSE::ViewportSDFScale(sdf_scale)); } Viewport::SDFScale Viewport::get_sdf_scale() const { @@ -4864,7 +4869,7 @@ void Viewport::set_scaling_3d_mode(Scaling3DMode p_scaling_3d_mode) { } scaling_3d_mode = p_scaling_3d_mode; - RS::get_singleton()->viewport_set_scaling_3d_mode(viewport, (RS::ViewportScaling3DMode)(int)p_scaling_3d_mode); + RS::get_singleton()->viewport_set_scaling_3d_mode(viewport, (RSE::ViewportScaling3DMode)(int)p_scaling_3d_mode); } Viewport::Scaling3DMode Viewport::get_scaling_3d_mode() const { @@ -4928,7 +4933,7 @@ void Viewport::set_anisotropic_filtering_level(AnisotropicFiltering p_anisotropi } anisotropic_filtering_level = p_anisotropic_filtering_level; - RS::get_singleton()->viewport_set_anisotropic_filtering_level(viewport, (RS::ViewportAnisotropicFiltering)(int)p_anisotropic_filtering_level); + RS::get_singleton()->viewport_set_anisotropic_filtering_level(viewport, (RSE::ViewportAnisotropicFiltering)(int)p_anisotropic_filtering_level); } Viewport::AnisotropicFiltering Viewport::get_anisotropic_filtering_level() const { @@ -5478,7 +5483,7 @@ bool SubViewport::is_size_2d_override_stretch_enabled() const { void SubViewport::set_update_mode(UpdateMode p_mode) { ERR_MAIN_THREAD_GUARD; update_mode = p_mode; - RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RS::ViewportUpdateMode(p_mode)); + RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RSE::ViewportUpdateMode(p_mode)); } SubViewport::UpdateMode SubViewport::get_update_mode() const { @@ -5489,7 +5494,7 @@ SubViewport::UpdateMode SubViewport::get_update_mode() const { void SubViewport::set_clear_mode(ClearMode p_mode) { ERR_MAIN_THREAD_GUARD; clear_mode = p_mode; - RS::get_singleton()->viewport_set_clear_mode(get_viewport_rid(), RS::ViewportClearMode(p_mode)); + RS::get_singleton()->viewport_set_clear_mode(get_viewport_rid(), RSE::ViewportClearMode(p_mode)); } SubViewport::ClearMode SubViewport::get_clear_mode() const { diff --git a/scene/main/window.cpp b/scene/main/window.cpp index 55dfff3c84..3ca287b867 100644 --- a/scene/main/window.cpp +++ b/scene/main/window.cpp @@ -30,12 +30,16 @@ #include "window.h" +STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer); + #include "core/config/project_settings.h" #include "core/debugger/engine_debugger.h" #include "core/input/input.h" #include "scene/gui/control.h" #include "scene/theme/theme_db.h" #include "scene/theme/theme_owner.h" +#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" // Editor integration. @@ -734,7 +738,7 @@ void Window::_make_window() { _update_window_callbacks(); - RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RS::VIEWPORT_UPDATE_WHEN_VISIBLE); + RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RSE::VIEWPORT_UPDATE_WHEN_VISIBLE); DisplayServer::get_singleton()->show_window(window_id); } @@ -781,7 +785,7 @@ void Window::_clear_window() { } _update_viewport_size(); - RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RS::VIEWPORT_UPDATE_DISABLED); + RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RSE::VIEWPORT_UPDATE_DISABLED); if (transient && transient_to_focused) { _clear_transient(); @@ -1023,7 +1027,7 @@ void Window::set_visible(bool p_visible) { } } embedder->_sub_window_register(this); - RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RS::VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE); + RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RSE::VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE); // Make sure the sub-window shares the HDR output settings of the embedder. Window *containing_window = embedder->get_window(); @@ -1034,7 +1038,7 @@ void Window::set_visible(bool p_visible) { } else { embedder->_sub_window_remove(this); embedder = nullptr; - RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RS::VIEWPORT_UPDATE_DISABLED); + RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RSE::VIEWPORT_UPDATE_DISABLED); } _update_window_size(); } @@ -1608,7 +1612,7 @@ void Window::_notification(int p_what) { } } embedder->_sub_window_register(this); - RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RS::VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE); + RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RSE::VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE); _update_window_size(); } @@ -1639,7 +1643,7 @@ void Window::_notification(int p_what) { if (!mouse_in_window && Rect2(position, size).has_point(DisplayServer::get_singleton()->mouse_get_position())) { _event_callback(DisplayServer::WINDOW_EVENT_MOUSE_ENTER); } - RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RS::VIEWPORT_UPDATE_WHEN_VISIBLE); + RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RSE::VIEWPORT_UPDATE_WHEN_VISIBLE); if (DisplayServer::get_singleton()->window_get_flag(DisplayServer::WindowFlags(FLAG_TRANSPARENT), window_id)) { set_transparent_background(true); } @@ -1732,7 +1736,7 @@ void Window::_notification(int p_what) { if (!is_embedded() && window_id != DisplayServer::INVALID_WINDOW_ID) { if (window_id == DisplayServer::MAIN_WINDOW_ID) { - RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RS::VIEWPORT_UPDATE_DISABLED); + RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RSE::VIEWPORT_UPDATE_DISABLED); _update_window_callbacks(); } else { _clear_window(); @@ -1741,7 +1745,7 @@ void Window::_notification(int p_what) { if (embedder) { embedder->_sub_window_remove(this); embedder = nullptr; - RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RS::VIEWPORT_UPDATE_DISABLED); + RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RSE::VIEWPORT_UPDATE_DISABLED); } _update_viewport_size(); //called by clear and make, which does not happen here } @@ -3642,7 +3646,7 @@ Window::Window() { } theme_owner = memnew(ThemeOwner(this)); - RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RS::VIEWPORT_UPDATE_DISABLED); + RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RSE::VIEWPORT_UPDATE_DISABLED); } Window::~Window() { diff --git a/scene/register_scene_types.cpp b/scene/register_scene_types.cpp index 5e96da0c73..5664b997f7 100644 --- a/scene/register_scene_types.cpp +++ b/scene/register_scene_types.cpp @@ -164,6 +164,8 @@ #include "scene/resources/visual_shader_particle_nodes.h" #include "scene/resources/visual_shader_sdf_nodes.h" #include "scene/theme/theme_db.h" +#include "servers/rendering/rendering_server.h" + #ifndef DISABLE_DEPRECATED #include "scene/resources/animated_texture.h" #endif diff --git a/scene/resources/2d/skeleton/skeleton_modification_2d.cpp b/scene/resources/2d/skeleton/skeleton_modification_2d.cpp index 36aacc8a72..825cea5cf7 100644 --- a/scene/resources/2d/skeleton/skeleton_modification_2d.cpp +++ b/scene/resources/2d/skeleton/skeleton_modification_2d.cpp @@ -29,6 +29,8 @@ /**************************************************************************/ #include "skeleton_modification_2d.h" + +#include "core/config/engine.h" #include "scene/2d/skeleton_2d.h" #ifdef TOOLS_ENABLED diff --git a/scene/resources/2d/skeleton/skeleton_modification_2d_ccdik.cpp b/scene/resources/2d/skeleton/skeleton_modification_2d_ccdik.cpp index 00f152289b..2ed24be5a2 100644 --- a/scene/resources/2d/skeleton/skeleton_modification_2d_ccdik.cpp +++ b/scene/resources/2d/skeleton/skeleton_modification_2d_ccdik.cpp @@ -29,6 +29,8 @@ /**************************************************************************/ #include "skeleton_modification_2d_ccdik.h" + +#include "core/config/engine.h" #include "scene/2d/skeleton_2d.h" bool SkeletonModification2DCCDIK::_set(const StringName &p_path, const Variant &p_value) { diff --git a/scene/resources/2d/skeleton/skeleton_modification_2d_lookat.cpp b/scene/resources/2d/skeleton/skeleton_modification_2d_lookat.cpp index 8ef48b810a..6439714e9a 100644 --- a/scene/resources/2d/skeleton/skeleton_modification_2d_lookat.cpp +++ b/scene/resources/2d/skeleton/skeleton_modification_2d_lookat.cpp @@ -29,6 +29,8 @@ /**************************************************************************/ #include "skeleton_modification_2d_lookat.h" + +#include "core/config/engine.h" #include "scene/2d/skeleton_2d.h" bool SkeletonModification2DLookAt::_set(const StringName &p_path, const Variant &p_value) { diff --git a/scene/resources/2d/skeleton/skeleton_modification_2d_stackholder.cpp b/scene/resources/2d/skeleton/skeleton_modification_2d_stackholder.cpp index 8739a2adb5..dd87ce821e 100644 --- a/scene/resources/2d/skeleton/skeleton_modification_2d_stackholder.cpp +++ b/scene/resources/2d/skeleton/skeleton_modification_2d_stackholder.cpp @@ -29,6 +29,8 @@ /**************************************************************************/ #include "skeleton_modification_2d_stackholder.h" + +#include "core/config/engine.h" #include "scene/2d/skeleton_2d.h" bool SkeletonModification2DStackHolder::_set(const StringName &p_path, const Variant &p_value) { diff --git a/scene/resources/2d/skeleton/skeleton_modification_2d_twoboneik.cpp b/scene/resources/2d/skeleton/skeleton_modification_2d_twoboneik.cpp index cbc808d255..36ab16c318 100644 --- a/scene/resources/2d/skeleton/skeleton_modification_2d_twoboneik.cpp +++ b/scene/resources/2d/skeleton/skeleton_modification_2d_twoboneik.cpp @@ -29,6 +29,8 @@ /**************************************************************************/ #include "skeleton_modification_2d_twoboneik.h" + +#include "core/config/engine.h" #include "scene/2d/skeleton_2d.h" #ifdef TOOLS_ENABLED diff --git a/scene/resources/2d/tile_set.cpp b/scene/resources/2d/tile_set.cpp index 7fcf617784..c6740dfafe 100644 --- a/scene/resources/2d/tile_set.cpp +++ b/scene/resources/2d/tile_set.cpp @@ -38,6 +38,7 @@ #include "scene/gui/control.h" #include "scene/resources/image_texture.h" #include "scene/resources/mesh.h" +#include "servers/rendering/rendering_server.h" #ifndef NAVIGATION_2D_DISABLED #include "servers/navigation_2d/navigation_server_2d.h" diff --git a/scene/resources/3d/box_shape_3d.cpp b/scene/resources/3d/box_shape_3d.cpp index 7306b8133b..4dc45caf6a 100644 --- a/scene/resources/3d/box_shape_3d.cpp +++ b/scene/resources/3d/box_shape_3d.cpp @@ -51,18 +51,18 @@ Vector BoxShape3D::get_debug_mesh_lines() const { Ref BoxShape3D::get_debug_arraymesh_faces(const Color &p_modulate) const { Array box_array; - box_array.resize(RS::ARRAY_MAX); + box_array.resize(RSE::ARRAY_MAX); BoxMesh::create_mesh_array(box_array, size); Vector colors; - const PackedVector3Array &verts = box_array[RS::ARRAY_VERTEX]; + const PackedVector3Array &verts = box_array[RSE::ARRAY_VERTEX]; const int32_t verts_size = verts.size(); for (int i = 0; i < verts_size; i++) { colors.append(p_modulate); } Ref box_mesh = memnew(ArrayMesh); - box_array[RS::ARRAY_COLOR] = colors; + box_array[RSE::ARRAY_COLOR] = colors; box_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, box_array); return box_mesh; } diff --git a/scene/resources/3d/capsule_shape_3d.cpp b/scene/resources/3d/capsule_shape_3d.cpp index 166848f5b2..234f5cbcbe 100644 --- a/scene/resources/3d/capsule_shape_3d.cpp +++ b/scene/resources/3d/capsule_shape_3d.cpp @@ -70,18 +70,18 @@ Vector CapsuleShape3D::get_debug_mesh_lines() const { Ref CapsuleShape3D::get_debug_arraymesh_faces(const Color &p_modulate) const { Array capsule_array; - capsule_array.resize(RS::ARRAY_MAX); + capsule_array.resize(RSE::ARRAY_MAX); CapsuleMesh::create_mesh_array(capsule_array, radius, height, 32, 8); Vector colors; - const PackedVector3Array &verts = capsule_array[RS::ARRAY_VERTEX]; + const PackedVector3Array &verts = capsule_array[RSE::ARRAY_VERTEX]; const int32_t verts_size = verts.size(); for (int i = 0; i < verts_size; i++) { colors.append(p_modulate); } Ref capsule_mesh = memnew(ArrayMesh); - capsule_array[RS::ARRAY_COLOR] = colors; + capsule_array[RSE::ARRAY_COLOR] = colors; capsule_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, capsule_array); return capsule_mesh; } diff --git a/scene/resources/3d/concave_polygon_shape_3d.cpp b/scene/resources/3d/concave_polygon_shape_3d.cpp index 336a3a811d..03785ea8a4 100644 --- a/scene/resources/3d/concave_polygon_shape_3d.cpp +++ b/scene/resources/3d/concave_polygon_shape_3d.cpp @@ -70,8 +70,8 @@ Ref ConcavePolygonShape3D::get_debug_arraymesh_faces(const Color &p_m Ref mesh = memnew(ArrayMesh); Array a; a.resize(Mesh::ARRAY_MAX); - a[RS::ARRAY_VERTEX] = faces; - a[RS::ARRAY_COLOR] = colors; + a[RSE::ARRAY_VERTEX] = faces; + a[RSE::ARRAY_COLOR] = colors; mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, a); return mesh; diff --git a/scene/resources/3d/convex_polygon_shape_3d.cpp b/scene/resources/3d/convex_polygon_shape_3d.cpp index b9d807e710..41d1396753 100644 --- a/scene/resources/3d/convex_polygon_shape_3d.cpp +++ b/scene/resources/3d/convex_polygon_shape_3d.cpp @@ -84,9 +84,9 @@ Ref ConvexPolygonShape3D::get_debug_arraymesh_faces(const Color &p_mo Ref mesh = memnew(ArrayMesh); Array a; a.resize(Mesh::ARRAY_MAX); - a[RS::ARRAY_VERTEX] = verts; - a[RS::ARRAY_COLOR] = colors; - a[RS::ARRAY_INDEX] = indices; + a[RSE::ARRAY_VERTEX] = verts; + a[RSE::ARRAY_COLOR] = colors; + a[RSE::ARRAY_INDEX] = indices; mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, a); return mesh; diff --git a/scene/resources/3d/cylinder_shape_3d.cpp b/scene/resources/3d/cylinder_shape_3d.cpp index da2bf8aaf8..b9800595cf 100644 --- a/scene/resources/3d/cylinder_shape_3d.cpp +++ b/scene/resources/3d/cylinder_shape_3d.cpp @@ -63,18 +63,18 @@ Vector CylinderShape3D::get_debug_mesh_lines() const { Ref CylinderShape3D::get_debug_arraymesh_faces(const Color &p_modulate) const { Array cylinder_array; - cylinder_array.resize(RS::ARRAY_MAX); + cylinder_array.resize(RSE::ARRAY_MAX); CylinderMesh::create_mesh_array(cylinder_array, radius, radius, height, 32); Vector colors; - const PackedVector3Array &verts = cylinder_array[RS::ARRAY_VERTEX]; + const PackedVector3Array &verts = cylinder_array[RSE::ARRAY_VERTEX]; const int32_t verts_size = verts.size(); for (int i = 0; i < verts_size; i++) { colors.append(p_modulate); } Ref cylinder_mesh = memnew(ArrayMesh); - cylinder_array[RS::ARRAY_COLOR] = colors; + cylinder_array[RSE::ARRAY_COLOR] = colors; cylinder_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, cylinder_array); return cylinder_mesh; } diff --git a/scene/resources/3d/fog_material.cpp b/scene/resources/3d/fog_material.cpp index 5ca0816833..9f679ff88a 100644 --- a/scene/resources/3d/fog_material.cpp +++ b/scene/resources/3d/fog_material.cpp @@ -31,6 +31,7 @@ #include "fog_material.h" #include "core/version.h" +#include "servers/rendering/rendering_server.h" Mutex FogMaterial::shader_mutex; RID FogMaterial::shader; diff --git a/scene/resources/3d/height_map_shape_3d.cpp b/scene/resources/3d/height_map_shape_3d.cpp index 5a643d1f1c..7a30cf8956 100644 --- a/scene/resources/3d/height_map_shape_3d.cpp +++ b/scene/resources/3d/height_map_shape_3d.cpp @@ -129,9 +129,9 @@ Ref HeightMapShape3D::get_debug_arraymesh_faces(const Color &p_modula Ref mesh = memnew(ArrayMesh); Array a; a.resize(Mesh::ARRAY_MAX); - a[RS::ARRAY_VERTEX] = verts; - a[RS::ARRAY_COLOR] = colors; - a[RS::ARRAY_INDEX] = indices; + a[RSE::ARRAY_VERTEX] = verts; + a[RSE::ARRAY_COLOR] = colors; + a[RSE::ARRAY_INDEX] = indices; mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, a); return mesh; diff --git a/scene/resources/3d/importer_mesh.cpp b/scene/resources/3d/importer_mesh.cpp index dc3a6f8cf9..839325294d 100644 --- a/scene/resources/3d/importer_mesh.cpp +++ b/scene/resources/3d/importer_mesh.cpp @@ -452,7 +452,7 @@ static Vector _remap_array(Vector p_array, const Vector &p_remap static void _remap_arrays(Array &r_arrays, const Vector &p_remap, uint32_t p_vertex_count) { for (int i = 0; i < r_arrays.size(); i++) { - if (i == RS::ARRAY_INDEX) { + if (i == RSE::ARRAY_INDEX) { continue; } @@ -496,8 +496,8 @@ void ImporterMesh::optimize_indices() { continue; } - Vector vertices = surfaces[i].arrays[RS::ARRAY_VERTEX]; - PackedInt32Array indices = surfaces[i].arrays[RS::ARRAY_INDEX]; + Vector vertices = surfaces[i].arrays[RSE::ARRAY_VERTEX]; + PackedInt32Array indices = surfaces[i].arrays[RSE::ARRAY_INDEX]; unsigned int index_count = indices.size(); unsigned int vertex_count = vertices.size(); @@ -509,7 +509,7 @@ void ImporterMesh::optimize_indices() { // Optimize indices for vertex cache to establish final triangle order. int *indices_ptr = indices.ptrw(); SurfaceTool::optimize_vertex_cache_func((unsigned int *)indices_ptr, (const unsigned int *)indices_ptr, index_count, vertex_count); - surfaces.write[i].arrays[RS::ARRAY_INDEX] = indices; + surfaces.write[i].arrays[RSE::ARRAY_INDEX] = indices; for (int j = 0; j < surfaces[i].lods.size(); ++j) { Surface::LOD &lod = surfaces.write[i].lods.write[j]; @@ -532,7 +532,7 @@ void ImporterMesh::optimize_indices() { // We need to remap all vertex and index arrays in lockstep according to the remap. SurfaceTool::remap_index_func((unsigned int *)indices_ptr, (const unsigned int *)indices_ptr, index_count, remap.ptr()); - surfaces.write[i].arrays[RS::ARRAY_INDEX] = indices; + surfaces.write[i].arrays[RSE::ARRAY_INDEX] = indices; for (int j = 0; j < surfaces[i].lods.size(); ++j) { Surface::LOD &lod = surfaces.write[i].lods.write[j]; @@ -584,15 +584,15 @@ void ImporterMesh::generate_lods(float p_normal_merge_angle, Array p_bone_transf } surfaces.write[i].lods.clear(); - Vector vertices = surfaces[i].arrays[RS::ARRAY_VERTEX]; - PackedInt32Array indices = surfaces[i].arrays[RS::ARRAY_INDEX]; - Vector normals = surfaces[i].arrays[RS::ARRAY_NORMAL]; - Vector tangents = surfaces[i].arrays[RS::ARRAY_TANGENT]; - Vector uvs = surfaces[i].arrays[RS::ARRAY_TEX_UV]; - Vector uv2s = surfaces[i].arrays[RS::ARRAY_TEX_UV2]; - Vector bones = surfaces[i].arrays[RS::ARRAY_BONES]; - Vector weights = surfaces[i].arrays[RS::ARRAY_WEIGHTS]; - Vector colors = surfaces[i].arrays[RS::ARRAY_COLOR]; + Vector vertices = surfaces[i].arrays[RSE::ARRAY_VERTEX]; + PackedInt32Array indices = surfaces[i].arrays[RSE::ARRAY_INDEX]; + Vector normals = surfaces[i].arrays[RSE::ARRAY_NORMAL]; + Vector tangents = surfaces[i].arrays[RSE::ARRAY_TANGENT]; + Vector uvs = surfaces[i].arrays[RSE::ARRAY_TEX_UV]; + Vector uv2s = surfaces[i].arrays[RSE::ARRAY_TEX_UV2]; + Vector bones = surfaces[i].arrays[RSE::ARRAY_BONES]; + Vector weights = surfaces[i].arrays[RSE::ARRAY_WEIGHTS]; + Vector colors = surfaces[i].arrays[RSE::ARRAY_COLOR]; unsigned int index_count = indices.size(); unsigned int vertex_count = vertices.size(); @@ -960,10 +960,10 @@ void ImporterMesh::create_shadow_mesh() { } //no shadow mesh for skeletons for (int i = 0; i < surfaces.size(); i++) { - if (surfaces[i].arrays[RS::ARRAY_BONES].get_type() != Variant::NIL) { + if (surfaces[i].arrays[RSE::ARRAY_BONES].get_type() != Variant::NIL) { return; } - if (surfaces[i].arrays[RS::ARRAY_WEIGHTS].get_type() != Variant::NIL) { + if (surfaces[i].arrays[RSE::ARRAY_WEIGHTS].get_type() != Variant::NIL) { return; } } @@ -973,7 +973,7 @@ void ImporterMesh::create_shadow_mesh() { for (int i = 0; i < surfaces.size(); i++) { LocalVector vertex_remap; Vector new_vertices; - Vector vertices = surfaces[i].arrays[RS::ARRAY_VERTEX]; + Vector vertices = surfaces[i].arrays[RSE::ARRAY_VERTEX]; int vertex_count = vertices.size(); { HashMap unique_vertices; @@ -995,14 +995,14 @@ void ImporterMesh::create_shadow_mesh() { } Array new_surface; - new_surface.resize(RS::ARRAY_MAX); + new_surface.resize(RSE::ARRAY_MAX); Dictionary lods; // print_line("original vertex count: " + itos(vertices.size()) + " new vertex count: " + itos(new_vertices.size())); - new_surface[RS::ARRAY_VERTEX] = new_vertices; + new_surface[RSE::ARRAY_VERTEX] = new_vertices; - Vector indices = surfaces[i].arrays[RS::ARRAY_INDEX]; + Vector indices = surfaces[i].arrays[RSE::ARRAY_INDEX]; if (indices.size()) { int index_count = indices.size(); const int *index_rptr = indices.ptr(); @@ -1016,7 +1016,7 @@ void ImporterMesh::create_shadow_mesh() { index_wptr[j] = vertex_remap[index]; } - new_surface[RS::ARRAY_INDEX] = new_indices; + new_surface[RSE::ARRAY_INDEX] = new_indices; // Make sure the same LODs as the full version are used. // This makes it more coherent between rendered model and its shadows. @@ -1312,7 +1312,7 @@ struct EditorSceneFormatImporterMeshLightmapSurface { String name; }; -static const uint32_t custom_shift[RS::ARRAY_CUSTOM_COUNT] = { Mesh::ARRAY_FORMAT_CUSTOM0_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM1_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM2_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM3_SHIFT }; +static const uint32_t custom_shift[RSE::ARRAY_CUSTOM_COUNT] = { Mesh::ARRAY_FORMAT_CUSTOM0_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM1_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM2_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM3_SHIFT }; Error ImporterMesh::lightmap_unwrap_cached(const Transform3D &p_base_transform, float p_texel_size, const Vector &p_src_cache, Vector &r_dst_cache) { ERR_FAIL_NULL_V(array_mesh_lightmap_unwrap_callback, ERR_UNCONFIGURED); @@ -1445,8 +1445,8 @@ Error ImporterMesh::lightmap_unwrap_cached(const Transform3D &p_base_transform, st->set_material(lightmap_surfaces[i].material); st->set_meta("name", lightmap_surfaces[i].name); - for (int custom_i = 0; custom_i < RS::ARRAY_CUSTOM_COUNT; custom_i++) { - st->set_custom_format(custom_i, (SurfaceTool::CustomFormat)((lightmap_surfaces[i].format >> custom_shift[custom_i]) & RS::ARRAY_FORMAT_CUSTOM_MASK)); + for (int custom_i = 0; custom_i < RSE::ARRAY_CUSTOM_COUNT; custom_i++) { + st->set_custom_format(custom_i, (SurfaceTool::CustomFormat)((lightmap_surfaces[i].format >> custom_shift[custom_i]) & RSE::ARRAY_FORMAT_CUSTOM_MASK)); } surfaces_tools.push_back(st); //stay there } @@ -1490,8 +1490,8 @@ Error ImporterMesh::lightmap_unwrap_cached(const Transform3D &p_base_transform, if (lightmap_surfaces[surface].format & Mesh::ARRAY_FORMAT_WEIGHTS) { surfaces_tools[surface]->set_weights(v.weights); } - for (int custom_i = 0; custom_i < RS::ARRAY_CUSTOM_COUNT; custom_i++) { - if ((lightmap_surfaces[surface].format >> custom_shift[custom_i]) & RS::ARRAY_FORMAT_CUSTOM_MASK) { + for (int custom_i = 0; custom_i < RSE::ARRAY_CUSTOM_COUNT; custom_i++) { + if ((lightmap_surfaces[surface].format >> custom_shift[custom_i]) & RSE::ARRAY_FORMAT_CUSTOM_MASK) { surfaces_tools[surface]->set_custom(custom_i, v.custom[custom_i]); } } @@ -1511,9 +1511,9 @@ Error ImporterMesh::lightmap_unwrap_cached(const Transform3D &p_base_transform, uint64_t format = lightmap_surfaces[i].format; if (tool->get_skin_weight_count() == SurfaceTool::SKIN_8_WEIGHTS) { - format |= RS::ARRAY_FLAG_USE_8_BONE_WEIGHTS; + format |= RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS; } else { - format &= ~RS::ARRAY_FLAG_USE_8_BONE_WEIGHTS; + format &= ~RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS; } add_surface(tool->get_primitive_type(), arrays, Array(), Dictionary(), tool->get_material(), tool->get_meta("name"), format); diff --git a/scene/resources/3d/importer_mesh.h b/scene/resources/3d/importer_mesh.h index 992067ce08..5fdbde8a96 100644 --- a/scene/resources/3d/importer_mesh.h +++ b/scene/resources/3d/importer_mesh.h @@ -31,6 +31,7 @@ #pragma once #include "core/io/resource.h" +#include "core/variant/typed_array.h" #include "scene/resources/mesh.h" #include "scene/resources/navigation_mesh.h" @@ -95,7 +96,7 @@ public: static String validate_blend_shape_name(const String &p_name); - void add_surface(Mesh::PrimitiveType p_primitive, const Array &p_arrays, const TypedArray &p_blend_shapes = Array(), const Dictionary &p_lods = Dictionary(), const Ref &p_material = Ref(), const String &p_surface_name = String(), const uint64_t p_flags = 0); + void add_surface(Mesh::PrimitiveType p_primitive, const Array &p_arrays, const TypedArray &p_blend_shapes = TypedArray(), const Dictionary &p_lods = Dictionary(), const Ref &p_material = Ref(), const String &p_surface_name = String(), const uint64_t p_flags = 0); int get_surface_count() const; void set_blend_shape_mode(Mesh::BlendShapeMode p_blend_shape_mode); diff --git a/scene/resources/3d/mesh_library.cpp b/scene/resources/3d/mesh_library.cpp index 9256b66a71..2073b634d4 100644 --- a/scene/resources/3d/mesh_library.cpp +++ b/scene/resources/3d/mesh_library.cpp @@ -54,19 +54,19 @@ bool MeshLibrary::_set(const StringName &p_name, const Variant &p_value) { } else if (what == "mesh_cast_shadow") { switch ((int)p_value) { case 0: { - set_item_mesh_cast_shadow(idx, RS::ShadowCastingSetting::SHADOW_CASTING_SETTING_OFF); + set_item_mesh_cast_shadow(idx, RSE::ShadowCastingSetting::SHADOW_CASTING_SETTING_OFF); } break; case 1: { - set_item_mesh_cast_shadow(idx, RS::ShadowCastingSetting::SHADOW_CASTING_SETTING_ON); + set_item_mesh_cast_shadow(idx, RSE::ShadowCastingSetting::SHADOW_CASTING_SETTING_ON); } break; case 2: { - set_item_mesh_cast_shadow(idx, RS::ShadowCastingSetting::SHADOW_CASTING_SETTING_DOUBLE_SIDED); + set_item_mesh_cast_shadow(idx, RSE::ShadowCastingSetting::SHADOW_CASTING_SETTING_DOUBLE_SIDED); } break; case 3: { - set_item_mesh_cast_shadow(idx, RS::ShadowCastingSetting::SHADOW_CASTING_SETTING_SHADOWS_ONLY); + set_item_mesh_cast_shadow(idx, RSE::ShadowCastingSetting::SHADOW_CASTING_SETTING_SHADOWS_ONLY); } break; default: { - set_item_mesh_cast_shadow(idx, RS::ShadowCastingSetting::SHADOW_CASTING_SETTING_ON); + set_item_mesh_cast_shadow(idx, RSE::ShadowCastingSetting::SHADOW_CASTING_SETTING_ON); } break; } #ifndef PHYSICS_3D_DISABLED @@ -183,7 +183,7 @@ void MeshLibrary::set_item_mesh_transform(int p_item, const Transform3D &p_trans emit_changed(); } -void MeshLibrary::set_item_mesh_cast_shadow(int p_item, RS::ShadowCastingSetting p_shadow_casting_setting) { +void MeshLibrary::set_item_mesh_cast_shadow(int p_item, RSE::ShadowCastingSetting p_shadow_casting_setting) { ERR_FAIL_COND_MSG(!item_map.has(p_item), "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); item_map[p_item].mesh_cast_shadow = p_shadow_casting_setting; emit_changed(); @@ -237,8 +237,8 @@ Transform3D MeshLibrary::get_item_mesh_transform(int p_item) const { return item_map[p_item].mesh_transform; } -RS::ShadowCastingSetting MeshLibrary::get_item_mesh_cast_shadow(int p_item) const { - ERR_FAIL_COND_V_MSG(!item_map.has(p_item), RS::ShadowCastingSetting::SHADOW_CASTING_SETTING_ON, "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); +RSE::ShadowCastingSetting MeshLibrary::get_item_mesh_cast_shadow(int p_item) const { + ERR_FAIL_COND_V_MSG(!item_map.has(p_item), RSE::ShadowCastingSetting::SHADOW_CASTING_SETTING_ON, "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); return item_map[p_item].mesh_cast_shadow; } diff --git a/scene/resources/3d/mesh_library.h b/scene/resources/3d/mesh_library.h index 941000f986..dbaaac6b48 100644 --- a/scene/resources/3d/mesh_library.h +++ b/scene/resources/3d/mesh_library.h @@ -34,7 +34,7 @@ #include "core/templates/rb_map.h" #include "scene/resources/mesh.h" #include "scene/resources/navigation_mesh.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" #ifndef PHYSICS_3D_DISABLED #include "shape_3d.h" @@ -55,7 +55,7 @@ public: String name; Ref mesh; Transform3D mesh_transform; - RS::ShadowCastingSetting mesh_cast_shadow = RS::ShadowCastingSetting::SHADOW_CASTING_SETTING_ON; + RSE::ShadowCastingSetting mesh_cast_shadow = RSE::SHADOW_CASTING_SETTING_ON; #ifndef PHYSICS_3D_DISABLED Vector shapes; #endif // PHYSICS_3D_DISABLED @@ -85,7 +85,7 @@ public: void set_item_name(int p_item, const String &p_name); void set_item_mesh(int p_item, const Ref &p_mesh); void set_item_mesh_transform(int p_item, const Transform3D &p_transform); - void set_item_mesh_cast_shadow(int p_item, RS::ShadowCastingSetting p_shadow_casting_setting); + void set_item_mesh_cast_shadow(int p_item, RSE::ShadowCastingSetting p_shadow_casting_setting); void set_item_navigation_mesh(int p_item, const Ref &p_navigation_mesh); void set_item_navigation_mesh_transform(int p_item, const Transform3D &p_transform); void set_item_navigation_layers(int p_item, uint32_t p_navigation_layers); @@ -96,7 +96,7 @@ public: String get_item_name(int p_item) const; Ref get_item_mesh(int p_item) const; Transform3D get_item_mesh_transform(int p_item) const; - RS::ShadowCastingSetting get_item_mesh_cast_shadow(int p_item) const; + RSE::ShadowCastingSetting get_item_mesh_cast_shadow(int p_item) const; Ref get_item_navigation_mesh(int p_item) const; Transform3D get_item_navigation_mesh_transform(int p_item) const; uint32_t get_item_navigation_layers(int p_item) const; diff --git a/scene/resources/3d/primitive_meshes.cpp b/scene/resources/3d/primitive_meshes.cpp index 8519b6232a..25e7b17010 100644 --- a/scene/resources/3d/primitive_meshes.cpp +++ b/scene/resources/3d/primitive_meshes.cpp @@ -36,6 +36,8 @@ #include "scene/resources/theme.h" #include "scene/theme/theme_db.h" #include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" + #include "thirdparty/misc/polypartition.h" #define PADDING_REF_SIZE 1024.0 @@ -46,13 +48,13 @@ void PrimitiveMesh::_update() const { Array arr; if (GDVIRTUAL_CALL(_create_mesh_array, arr)) { - ERR_FAIL_COND_MSG(arr.size() != RS::ARRAY_MAX, "_create_mesh_array must return an array of Mesh.ARRAY_MAX elements."); + ERR_FAIL_COND_MSG(arr.size() != RSE::ARRAY_MAX, "_create_mesh_array must return an array of Mesh.ARRAY_MAX elements."); } else { - arr.resize(RS::ARRAY_MAX); + arr.resize(RSE::ARRAY_MAX); _create_mesh_array(arr); } - Vector points = arr[RS::ARRAY_VERTEX]; + Vector points = arr[RSE::ARRAY_VERTEX]; ERR_FAIL_COND_MSG(points.is_empty(), "_create_mesh_array must return at least a vertex array."); @@ -71,10 +73,10 @@ void PrimitiveMesh::_update() const { } } - Vector indices = arr[RS::ARRAY_INDEX]; + Vector indices = arr[RSE::ARRAY_INDEX]; if (flip_faces) { - Vector normals = arr[RS::ARRAY_NORMAL]; + Vector normals = arr[RSE::ARRAY_NORMAL]; if (normals.size() && indices.size()) { { @@ -92,8 +94,8 @@ void PrimitiveMesh::_update() const { SWAP(w[i + 0], w[i + 1]); } } - arr[RS::ARRAY_NORMAL] = normals; - arr[RS::ARRAY_INDEX] = indices; + arr[RSE::ARRAY_NORMAL] = normals; + arr[RSE::ARRAY_INDEX] = indices; } } @@ -101,8 +103,8 @@ void PrimitiveMesh::_update() const { // _create_mesh_array should populate our UV2, this is a fallback in case it doesn't. // As we don't know anything about the geometry we only pad the right and bottom edge // of our texture. - Vector uv = arr[RS::ARRAY_TEX_UV]; - Vector uv2 = arr[RS::ARRAY_TEX_UV2]; + Vector uv = arr[RSE::ARRAY_TEX_UV]; + Vector uv2 = arr[RSE::ARRAY_TEX_UV2]; if (uv.size() > 0 && uv2.is_empty()) { Vector2 uv2_scale = get_uv2_scale(); @@ -114,14 +116,14 @@ void PrimitiveMesh::_update() const { } } - arr[RS::ARRAY_TEX_UV2] = uv2; + arr[RSE::ARRAY_TEX_UV2] = uv2; } array_len = pc; index_array_len = indices.size(); // in with the new RenderingServer::get_singleton()->mesh_clear(mesh); - RenderingServer::get_singleton()->mesh_add_surface_from_arrays(mesh, (RenderingServer::PrimitiveType)primitive_type, arr); + RenderingServer::get_singleton()->mesh_add_surface_from_arrays(mesh, (RSE::PrimitiveType)primitive_type, arr); RenderingServer::get_singleton()->mesh_surface_set_material(mesh, 0, material.is_null() ? RID() : material->get_rid()); pending_request = false; @@ -183,9 +185,9 @@ TypedArray PrimitiveMesh::surface_get_blend_shape_arrays(int p_surface) c BitField PrimitiveMesh::surface_get_format(int p_idx) const { ERR_FAIL_INDEX_V(p_idx, 1, 0); - uint64_t mesh_format = RS::ARRAY_FORMAT_VERTEX | RS::ARRAY_FORMAT_NORMAL | RS::ARRAY_FORMAT_TANGENT | RS::ARRAY_FORMAT_TEX_UV | RS::ARRAY_FORMAT_INDEX; + uint64_t mesh_format = RSE::ARRAY_FORMAT_VERTEX | RSE::ARRAY_FORMAT_NORMAL | RSE::ARRAY_FORMAT_TANGENT | RSE::ARRAY_FORMAT_TEX_UV | RSE::ARRAY_FORMAT_INDEX; if (add_uv2) { - mesh_format |= RS::ARRAY_FORMAT_TEX_UV2; + mesh_format |= RSE::ARRAY_FORMAT_TEX_UV2; } return mesh_format; @@ -599,14 +601,14 @@ void CapsuleMesh::create_mesh_array(Array &p_arr, const float radius, const floa thisrow = point; } - p_arr[RS::ARRAY_VERTEX] = Vector(points); - p_arr[RS::ARRAY_NORMAL] = Vector(normals); - p_arr[RS::ARRAY_TANGENT] = Vector(tangents); - p_arr[RS::ARRAY_TEX_UV] = Vector(uvs); + p_arr[RSE::ARRAY_VERTEX] = Vector(points); + p_arr[RSE::ARRAY_NORMAL] = Vector(normals); + p_arr[RSE::ARRAY_TANGENT] = Vector(tangents); + p_arr[RSE::ARRAY_TEX_UV] = Vector(uvs); if (p_add_uv2) { - p_arr[RS::ARRAY_TEX_UV2] = Vector(uv2s); + p_arr[RSE::ARRAY_TEX_UV2] = Vector(uv2s); } - p_arr[RS::ARRAY_INDEX] = Vector(indices); + p_arr[RSE::ARRAY_INDEX] = Vector(indices); } void CapsuleMesh::_bind_methods() { @@ -955,14 +957,14 @@ void BoxMesh::create_mesh_array(Array &p_arr, Vector3 size, int subdivide_w, int thisrow = point; } - p_arr[RS::ARRAY_VERTEX] = Vector(points); - p_arr[RS::ARRAY_NORMAL] = Vector(normals); - p_arr[RS::ARRAY_TANGENT] = Vector(tangents); - p_arr[RS::ARRAY_TEX_UV] = Vector(uvs); + p_arr[RSE::ARRAY_VERTEX] = Vector(points); + p_arr[RSE::ARRAY_NORMAL] = Vector(normals); + p_arr[RSE::ARRAY_TANGENT] = Vector(tangents); + p_arr[RSE::ARRAY_TEX_UV] = Vector(uvs); if (p_add_uv2) { - p_arr[RS::ARRAY_TEX_UV2] = Vector(uv2s); + p_arr[RSE::ARRAY_TEX_UV2] = Vector(uv2s); } - p_arr[RS::ARRAY_INDEX] = Vector(indices); + p_arr[RSE::ARRAY_INDEX] = Vector(indices); } void BoxMesh::_bind_methods() { @@ -1259,14 +1261,14 @@ void CylinderMesh::create_mesh_array(Array &p_arr, float top_radius, float botto } } - p_arr[RS::ARRAY_VERTEX] = Vector(points); - p_arr[RS::ARRAY_NORMAL] = Vector(normals); - p_arr[RS::ARRAY_TANGENT] = Vector(tangents); - p_arr[RS::ARRAY_TEX_UV] = Vector(uvs); + p_arr[RSE::ARRAY_VERTEX] = Vector(points); + p_arr[RSE::ARRAY_NORMAL] = Vector(normals); + p_arr[RSE::ARRAY_TANGENT] = Vector(tangents); + p_arr[RSE::ARRAY_TEX_UV] = Vector(uvs); if (p_add_uv2) { - p_arr[RS::ARRAY_TEX_UV2] = Vector(uv2s); + p_arr[RSE::ARRAY_TEX_UV2] = Vector(uv2s); } - p_arr[RS::ARRAY_INDEX] = Vector(indices); + p_arr[RSE::ARRAY_INDEX] = Vector(indices); } void CylinderMesh::_bind_methods() { @@ -1490,11 +1492,11 @@ void PlaneMesh::_create_mesh_array(Array &p_arr) const { thisrow = point; } - p_arr[RS::ARRAY_VERTEX] = Vector(points); - p_arr[RS::ARRAY_NORMAL] = Vector(normals); - p_arr[RS::ARRAY_TANGENT] = Vector(tangents); - p_arr[RS::ARRAY_TEX_UV] = Vector(uvs); - p_arr[RS::ARRAY_INDEX] = Vector(indices); + p_arr[RSE::ARRAY_VERTEX] = Vector(points); + p_arr[RSE::ARRAY_NORMAL] = Vector(normals); + p_arr[RSE::ARRAY_TANGENT] = Vector(tangents); + p_arr[RSE::ARRAY_TEX_UV] = Vector(uvs); + p_arr[RSE::ARRAY_INDEX] = Vector(indices); } void PlaneMesh::_bind_methods() { @@ -1862,14 +1864,14 @@ void PrismMesh::_create_mesh_array(Array &p_arr) const { thisrow = point; } - p_arr[RS::ARRAY_VERTEX] = Vector(points); - p_arr[RS::ARRAY_NORMAL] = Vector(normals); - p_arr[RS::ARRAY_TANGENT] = Vector(tangents); - p_arr[RS::ARRAY_TEX_UV] = Vector(uvs); + p_arr[RSE::ARRAY_VERTEX] = Vector(points); + p_arr[RSE::ARRAY_NORMAL] = Vector(normals); + p_arr[RSE::ARRAY_TANGENT] = Vector(tangents); + p_arr[RSE::ARRAY_TEX_UV] = Vector(uvs); if (_add_uv2) { - p_arr[RS::ARRAY_TEX_UV2] = Vector(uv2s); + p_arr[RSE::ARRAY_TEX_UV2] = Vector(uv2s); } - p_arr[RS::ARRAY_INDEX] = Vector(indices); + p_arr[RSE::ARRAY_INDEX] = Vector(indices); } void PrismMesh::_bind_methods() { @@ -2077,14 +2079,14 @@ void SphereMesh::create_mesh_array(Array &p_arr, float radius, float height, int thisrow = point; } - p_arr[RS::ARRAY_VERTEX] = Vector(points); - p_arr[RS::ARRAY_NORMAL] = Vector(normals); - p_arr[RS::ARRAY_TANGENT] = Vector(tangents); - p_arr[RS::ARRAY_TEX_UV] = Vector(uvs); + p_arr[RSE::ARRAY_VERTEX] = Vector(points); + p_arr[RSE::ARRAY_NORMAL] = Vector(normals); + p_arr[RSE::ARRAY_TANGENT] = Vector(tangents); + p_arr[RSE::ARRAY_TEX_UV] = Vector(uvs); if (p_add_uv2) { - p_arr[RS::ARRAY_TEX_UV2] = Vector(uv2s); + p_arr[RSE::ARRAY_TEX_UV2] = Vector(uv2s); } - p_arr[RS::ARRAY_INDEX] = Vector(indices); + p_arr[RSE::ARRAY_INDEX] = Vector(indices); } void SphereMesh::_bind_methods() { @@ -2288,14 +2290,14 @@ void TorusMesh::_create_mesh_array(Array &p_arr) const { } } - p_arr[RS::ARRAY_VERTEX] = Vector(points); - p_arr[RS::ARRAY_NORMAL] = Vector(normals); - p_arr[RS::ARRAY_TANGENT] = Vector(tangents); - p_arr[RS::ARRAY_TEX_UV] = Vector(uvs); + p_arr[RSE::ARRAY_VERTEX] = Vector(points); + p_arr[RSE::ARRAY_NORMAL] = Vector(normals); + p_arr[RSE::ARRAY_TANGENT] = Vector(tangents); + p_arr[RSE::ARRAY_TEX_UV] = Vector(uvs); if (_add_uv2) { - p_arr[RS::ARRAY_TEX_UV2] = Vector(uv2s); + p_arr[RSE::ARRAY_TEX_UV2] = Vector(uv2s); } - p_arr[RS::ARRAY_INDEX] = Vector(indices); + p_arr[RSE::ARRAY_INDEX] = Vector(indices); } void TorusMesh::_bind_methods() { @@ -2376,7 +2378,7 @@ void PointMesh::_create_mesh_array(Array &p_arr) const { faces.resize(1); faces.set(0, Vector3(0.0, 0.0, 0.0)); - p_arr[RS::ARRAY_VERTEX] = faces; + p_arr[RSE::ARRAY_VERTEX] = faces; } PointMesh::PointMesh() { @@ -2731,13 +2733,13 @@ void TubeTrailMesh::_create_mesh_array(Array &p_arr) const { } } - p_arr[RS::ARRAY_VERTEX] = Vector(points); - p_arr[RS::ARRAY_NORMAL] = Vector(normals); - p_arr[RS::ARRAY_TANGENT] = Vector(tangents); - p_arr[RS::ARRAY_TEX_UV] = Vector(uvs); - p_arr[RS::ARRAY_BONES] = Vector(bone_indices); - p_arr[RS::ARRAY_WEIGHTS] = Vector(bone_weights); - p_arr[RS::ARRAY_INDEX] = Vector(indices); + p_arr[RSE::ARRAY_VERTEX] = Vector(points); + p_arr[RSE::ARRAY_NORMAL] = Vector(normals); + p_arr[RSE::ARRAY_TANGENT] = Vector(tangents); + p_arr[RSE::ARRAY_TEX_UV] = Vector(uvs); + p_arr[RSE::ARRAY_BONES] = Vector(bone_indices); + p_arr[RSE::ARRAY_WEIGHTS] = Vector(bone_weights); + p_arr[RSE::ARRAY_INDEX] = Vector(indices); } void TubeTrailMesh::_bind_methods() { @@ -2994,13 +2996,13 @@ void RibbonTrailMesh::_create_mesh_array(Array &p_arr) const { } } - p_arr[RS::ARRAY_VERTEX] = Vector(points); - p_arr[RS::ARRAY_NORMAL] = Vector(normals); - p_arr[RS::ARRAY_TANGENT] = Vector(tangents); - p_arr[RS::ARRAY_TEX_UV] = Vector(uvs); - p_arr[RS::ARRAY_BONES] = Vector(bone_indices); - p_arr[RS::ARRAY_WEIGHTS] = Vector(bone_weights); - p_arr[RS::ARRAY_INDEX] = Vector(indices); + p_arr[RSE::ARRAY_VERTEX] = Vector(points); + p_arr[RSE::ARRAY_NORMAL] = Vector(normals); + p_arr[RSE::ARRAY_TANGENT] = Vector(tangents); + p_arr[RSE::ARRAY_TEX_UV] = Vector(uvs); + p_arr[RSE::ARRAY_BONES] = Vector(bone_indices); + p_arr[RSE::ARRAY_WEIGHTS] = Vector(bone_weights); + p_arr[RSE::ARRAY_INDEX] = Vector(indices); } void RibbonTrailMesh::_bind_methods() { @@ -3597,11 +3599,11 @@ void TextMesh::_create_mesh_array(Array &p_arr) const { indices.push_back(0); } - p_arr[RS::ARRAY_VERTEX] = vertices; - p_arr[RS::ARRAY_NORMAL] = normals; - p_arr[RS::ARRAY_TANGENT] = tangents; - p_arr[RS::ARRAY_TEX_UV] = uvs; - p_arr[RS::ARRAY_INDEX] = indices; + p_arr[RSE::ARRAY_VERTEX] = vertices; + p_arr[RSE::ARRAY_NORMAL] = normals; + p_arr[RSE::ARRAY_TANGENT] = tangents; + p_arr[RSE::ARRAY_TEX_UV] = uvs; + p_arr[RSE::ARRAY_INDEX] = indices; } void TextMesh::_bind_methods() { diff --git a/scene/resources/3d/sky_material.cpp b/scene/resources/3d/sky_material.cpp index 06b020de0a..e6fc1f55b4 100644 --- a/scene/resources/3d/sky_material.cpp +++ b/scene/resources/3d/sky_material.cpp @@ -33,6 +33,7 @@ #include "core/config/project_settings.h" #include "core/version.h" #include "scene/resources/texture.h" +#include "servers/rendering/rendering_server.h" Mutex ProceduralSkyMaterial::shader_mutex; RID ProceduralSkyMaterial::shader_cache[4]; diff --git a/scene/resources/3d/sphere_shape_3d.cpp b/scene/resources/3d/sphere_shape_3d.cpp index ba8a87d702..aea1af2818 100644 --- a/scene/resources/3d/sphere_shape_3d.cpp +++ b/scene/resources/3d/sphere_shape_3d.cpp @@ -57,18 +57,18 @@ Vector SphereShape3D::get_debug_mesh_lines() const { Ref SphereShape3D::get_debug_arraymesh_faces(const Color &p_modulate) const { Array sphere_array; - sphere_array.resize(RS::ARRAY_MAX); + sphere_array.resize(RSE::ARRAY_MAX); SphereMesh::create_mesh_array(sphere_array, radius, radius * 2, 32); Vector colors; - const PackedVector3Array &verts = sphere_array[RS::ARRAY_VERTEX]; + const PackedVector3Array &verts = sphere_array[RSE::ARRAY_VERTEX]; const int32_t verts_size = verts.size(); for (int i = 0; i < verts_size; i++) { colors.append(p_modulate); } Ref sphere_mesh = memnew(ArrayMesh); - sphere_array[RS::ARRAY_COLOR] = colors; + sphere_array[RSE::ARRAY_COLOR] = colors; sphere_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, sphere_array); return sphere_mesh; } diff --git a/scene/resources/3d/world_3d.cpp b/scene/resources/3d/world_3d.cpp index a16962a09d..12e71b32ba 100644 --- a/scene/resources/3d/world_3d.cpp +++ b/scene/resources/3d/world_3d.cpp @@ -34,6 +34,8 @@ #include "scene/3d/camera_3d.h" #include "scene/resources/camera_attributes.h" #include "scene/resources/environment.h" +#include "servers/rendering/rendering_server.h" + #ifndef NAVIGATION_3D_DISABLED #include "servers/navigation_3d/navigation_server_3d.h" #endif // NAVIGATION_3D_DISABLED diff --git a/scene/resources/3d/world_boundary_shape_3d.cpp b/scene/resources/3d/world_boundary_shape_3d.cpp index 9e95159600..95eae75b17 100644 --- a/scene/resources/3d/world_boundary_shape_3d.cpp +++ b/scene/resources/3d/world_boundary_shape_3d.cpp @@ -101,9 +101,9 @@ Ref WorldBoundaryShape3D::get_debug_arraymesh_faces(const Color &p_mo Ref mesh = memnew(ArrayMesh); Array a; a.resize(Mesh::ARRAY_MAX); - a[RS::ARRAY_VERTEX] = points; - a[RS::ARRAY_COLOR] = colors; - a[RS::ARRAY_INDEX] = indices; + a[RSE::ARRAY_VERTEX] = points; + a[RSE::ARRAY_COLOR] = colors; + a[RSE::ARRAY_INDEX] = indices; mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, a); return mesh; diff --git a/scene/resources/blit_material.cpp b/scene/resources/blit_material.cpp index 785f18ab7e..8e35701e6c 100644 --- a/scene/resources/blit_material.cpp +++ b/scene/resources/blit_material.cpp @@ -31,6 +31,7 @@ #include "blit_material.h" #include "core/version.h" +#include "servers/rendering/rendering_server.h" void BlitMaterial::_update_shader(BlendMode p_blend) { MutexLock shader_lock(shader_mutex); diff --git a/scene/resources/canvas_item_material.cpp b/scene/resources/canvas_item_material.cpp index cae2823e36..fac1abd1de 100644 --- a/scene/resources/canvas_item_material.cpp +++ b/scene/resources/canvas_item_material.cpp @@ -31,6 +31,7 @@ #include "canvas_item_material.h" #include "core/version.h" +#include "servers/rendering/rendering_server.h" Mutex CanvasItemMaterial::material_mutex; SelfList::List CanvasItemMaterial::dirty_materials; diff --git a/scene/resources/compositor.cpp b/scene/resources/compositor.cpp index 8b142faac4..6194ffec49 100644 --- a/scene/resources/compositor.cpp +++ b/scene/resources/compositor.cpp @@ -113,7 +113,7 @@ void CompositorEffect::set_effect_callback_type(EffectCallbackType p_callback_ty if (rid.is_valid()) { RenderingServer *rs = RenderingServer::get_singleton(); ERR_FAIL_NULL(rs); - rs->compositor_effect_set_callback(rid, RenderingServer::CompositorEffectCallbackType(effect_callback_type), callable_mp(this, &CompositorEffect::_call_render_callback)); + rs->compositor_effect_set_callback(rid, RSE::CompositorEffectCallbackType(effect_callback_type), callable_mp(this, &CompositorEffect::_call_render_callback)); } } @@ -126,7 +126,7 @@ void CompositorEffect::set_access_resolved_color(bool p_enabled) { if (rid.is_valid()) { RenderingServer *rs = RenderingServer::get_singleton(); ERR_FAIL_NULL(rs); - rs->compositor_effect_set_flag(rid, RS::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR, access_resolved_color); + rs->compositor_effect_set_flag(rid, RSE::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR, access_resolved_color); } } @@ -139,7 +139,7 @@ void CompositorEffect::set_access_resolved_depth(bool p_enabled) { if (rid.is_valid()) { RenderingServer *rs = RenderingServer::get_singleton(); ERR_FAIL_NULL(rs); - rs->compositor_effect_set_flag(rid, RS::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH, access_resolved_depth); + rs->compositor_effect_set_flag(rid, RSE::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH, access_resolved_depth); } } @@ -152,7 +152,7 @@ void CompositorEffect::set_needs_motion_vectors(bool p_enabled) { if (rid.is_valid()) { RenderingServer *rs = RenderingServer::get_singleton(); ERR_FAIL_NULL(rs); - rs->compositor_effect_set_flag(rid, RS::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS, needs_motion_vectors); + rs->compositor_effect_set_flag(rid, RSE::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS, needs_motion_vectors); } } @@ -165,7 +165,7 @@ void CompositorEffect::set_needs_normal_roughness(bool p_enabled) { if (rid.is_valid()) { RenderingServer *rs = RenderingServer::get_singleton(); ERR_FAIL_NULL(rs); - rs->compositor_effect_set_flag(rid, RS::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_NEEDS_ROUGHNESS, needs_normal_roughness); + rs->compositor_effect_set_flag(rid, RSE::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_NEEDS_ROUGHNESS, needs_normal_roughness); } } @@ -178,7 +178,7 @@ void CompositorEffect::set_needs_separate_specular(bool p_enabled) { if (rid.is_valid()) { RenderingServer *rs = RenderingServer::get_singleton(); ERR_FAIL_NULL(rs); - rs->compositor_effect_set_flag(rid, RS::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_NEEDS_SEPARATE_SPECULAR, needs_separate_specular); + rs->compositor_effect_set_flag(rid, RSE::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_NEEDS_SEPARATE_SPECULAR, needs_separate_specular); } } @@ -190,7 +190,7 @@ CompositorEffect::CompositorEffect() { RenderingServer *rs = RenderingServer::get_singleton(); if (rs != nullptr) { rid = rs->compositor_effect_create(); - rs->compositor_effect_set_callback(rid, RenderingServer::CompositorEffectCallbackType(effect_callback_type), callable_mp(this, &CompositorEffect::_call_render_callback)); + rs->compositor_effect_set_callback(rid, RSE::CompositorEffectCallbackType(effect_callback_type), callable_mp(this, &CompositorEffect::_call_render_callback)); } } diff --git a/scene/resources/compressed_texture.cpp b/scene/resources/compressed_texture.cpp index 76bc95ebab..125482e0b6 100644 --- a/scene/resources/compressed_texture.cpp +++ b/scene/resources/compressed_texture.cpp @@ -32,6 +32,7 @@ #include "core/io/file_access.h" #include "scene/resources/bit_map.h" +#include "servers/rendering/rendering_server.h" Error CompressedTexture2D::_load_data(const String &p_path, int &r_width, int &r_height, Ref &image, bool &r_request_3d, bool &r_request_normal, bool &r_request_roughness, int &mipmap_limit, int p_size_limit) { alpha_cache.unref(); @@ -104,7 +105,7 @@ void CompressedTexture2D::_requested_3d(void *p_ud) { request_3d_callback(ctex); } -void CompressedTexture2D::_requested_roughness(void *p_ud, const String &p_normal_path, RS::TextureDetectRoughnessChannel p_roughness_channel) { +void CompressedTexture2D::_requested_roughness(void *p_ud, const String &p_normal_path, RSE::TextureDetectRoughnessChannel p_roughness_channel) { CompressedTexture2D *ct = (CompressedTexture2D *)p_ud; Ref ctex(ct); ERR_FAIL_NULL(request_roughness_callback); @@ -743,10 +744,10 @@ Error CompressedTextureLayered::load(const String &p_path) { } if (texture.is_valid()) { - RID new_texture = RS::get_singleton()->texture_2d_layered_create(images, RS::TextureLayeredType(layered_type)); + RID new_texture = RS::get_singleton()->texture_2d_layered_create(images, RSE::TextureLayeredType(layered_type)); RS::get_singleton()->texture_replace(texture, new_texture); } else { - texture = RS::get_singleton()->texture_2d_layered_create(images, RS::TextureLayeredType(layered_type)); + texture = RS::get_singleton()->texture_2d_layered_create(images, RSE::TextureLayeredType(layered_type)); } w = images[0]->get_width(); @@ -793,7 +794,7 @@ TextureLayered::LayeredType CompressedTextureLayered::get_layered_type() const { RID CompressedTextureLayered::get_rid() const { if (!texture.is_valid()) { - texture = RS::get_singleton()->texture_2d_layered_placeholder_create(RS::TextureLayeredType(layered_type)); + texture = RS::get_singleton()->texture_2d_layered_placeholder_create(RSE::TextureLayeredType(layered_type)); } return texture; } diff --git a/scene/resources/compressed_texture.h b/scene/resources/compressed_texture.h index 6d2c7bceb0..3282096835 100644 --- a/scene/resources/compressed_texture.h +++ b/scene/resources/compressed_texture.h @@ -32,7 +32,7 @@ #include "core/io/resource_loader.h" #include "scene/resources/texture.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class BitMap; @@ -72,7 +72,7 @@ private: virtual void reload_from_file() override; static void _requested_3d(void *p_ud); - static void _requested_roughness(void *p_ud, const String &p_normal_path, RS::TextureDetectRoughnessChannel p_roughness_channel); + static void _requested_roughness(void *p_ud, const String &p_normal_path, RSE::TextureDetectRoughnessChannel p_roughness_channel); static void _requested_normal(void *p_ud); protected: @@ -82,7 +82,7 @@ public: static Ref load_image_from_file(Ref p_file, int p_size_limit); typedef void (*TextureFormatRequestCallback)(const Ref &); - typedef void (*TextureFormatRoughnessRequestCallback)(const Ref &, const String &p_normal_path, RS::TextureDetectRoughnessChannel p_roughness_channel); + typedef void (*TextureFormatRoughnessRequestCallback)(const Ref &, const String &p_normal_path, RSE::TextureDetectRoughnessChannel p_roughness_channel); static TextureFormatRequestCallback request_3d_callback; static TextureFormatRoughnessRequestCallback request_roughness_callback; diff --git a/scene/resources/dpi_texture.cpp b/scene/resources/dpi_texture.cpp index a02491fc61..bd8b2d79e3 100644 --- a/scene/resources/dpi_texture.cpp +++ b/scene/resources/dpi_texture.cpp @@ -35,6 +35,7 @@ #include "scene/main/viewport.h" #include "scene/resources/bit_map.h" #include "scene/resources/placeholder_textures.h" +#include "servers/rendering/rendering_server.h" #include "modules/modules_enabled.gen.h" // For svg. #ifdef MODULE_SVG_ENABLED diff --git a/scene/resources/drawable_texture_2d.cpp b/scene/resources/drawable_texture_2d.cpp index 8cb9cf8899..76aea8e2bf 100644 --- a/scene/resources/drawable_texture_2d.cpp +++ b/scene/resources/drawable_texture_2d.cpp @@ -30,6 +30,8 @@ #include "drawable_texture_2d.h" +#include "servers/rendering/rendering_server.h" + DrawableTexture2D::DrawableTexture2D() { default_material = RS::get_singleton()->texture_drawable_get_default_material(); } @@ -44,10 +46,10 @@ DrawableTexture2D::~DrawableTexture2D() { // Initialize Texture Resource with a call to rendering server. Overwrite existing. void DrawableTexture2D::_initialize() { if (texture.is_valid()) { - RID new_texture = RS::get_singleton()->texture_drawable_create(width, height, (RS::TextureDrawableFormat)format, base_color, mipmaps); + RID new_texture = RS::get_singleton()->texture_drawable_create(width, height, (RSE::TextureDrawableFormat)format, base_color, mipmaps); RS::get_singleton()->texture_replace(texture, new_texture); } else { - texture = RS::get_singleton()->texture_drawable_create(width, height, (RS::TextureDrawableFormat)format, base_color, mipmaps); + texture = RS::get_singleton()->texture_drawable_create(width, height, (RSE::TextureDrawableFormat)format, base_color, mipmaps); } } diff --git a/scene/resources/environment.cpp b/scene/resources/environment.cpp index a425bd168e..0c978013b2 100644 --- a/scene/resources/environment.cpp +++ b/scene/resources/environment.cpp @@ -43,7 +43,7 @@ RID Environment::get_rid() const { void Environment::set_background(BGMode p_bg) { bg_mode = p_bg; - RS::get_singleton()->environment_set_background(environment, RS::EnvironmentBG(p_bg)); + RS::get_singleton()->environment_set_background(environment, RSE::EnvironmentBG(p_bg)); notify_property_list_changed(); if (bg_mode != BG_SKY) { set_fog_aerial_perspective(0.0); @@ -193,9 +193,9 @@ void Environment::_update_ambient_light() { RS::get_singleton()->environment_set_ambient_light( environment, ambient_color, - RS::EnvironmentAmbientSource(ambient_source), + RSE::EnvironmentAmbientSource(ambient_source), ambient_energy, - ambient_sky_contribution, RS::EnvironmentReflectionSource(reflection_source)); + ambient_sky_contribution, RSE::EnvironmentReflectionSource(reflection_source)); } // Tonemap @@ -249,7 +249,7 @@ float Environment::get_tonemap_agx_contrast() const { void Environment::_update_tonemap() { RS::get_singleton()->environment_set_tonemap( environment, - RS::EnvironmentToneMapper(tone_mapper), + RSE::EnvironmentToneMapper(tone_mapper), tonemap_exposure, tone_mapper == TONE_MAPPER_AGX ? tonemap_agx_white : tonemap_white); } @@ -590,7 +590,7 @@ void Environment::_update_sdfgi() { sdfgi_enabled, sdfgi_cascades, sdfgi_min_cell_size, - RS::EnvironmentSDFGIYScale(sdfgi_y_scale), + RSE::EnvironmentSDFGIYScale(sdfgi_y_scale), sdfgi_use_occlusion, sdfgi_bounce_feedback, sdfgi_read_sky_light, @@ -611,7 +611,7 @@ bool Environment::is_glow_enabled() const { } void Environment::set_glow_level(int p_level, float p_intensity) { - ERR_FAIL_INDEX(p_level, RS::MAX_GLOW_LEVELS); + ERR_FAIL_INDEX(p_level, RSE::MAX_GLOW_LEVELS); glow_levels.write[p_level] = p_intensity; @@ -619,7 +619,7 @@ void Environment::set_glow_level(int p_level, float p_intensity) { } float Environment::get_glow_level(int p_level) const { - ERR_FAIL_INDEX_V(p_level, RS::MAX_GLOW_LEVELS, 0.0); + ERR_FAIL_INDEX_V(p_level, RSE::MAX_GLOW_LEVELS, 0.0); return glow_levels[p_level]; } @@ -757,7 +757,7 @@ void Environment::_update_glow() { glow_strength, glow_mix, glow_bloom, - RS::EnvironmentGlowBlendMode(glow_blend_mode), + RSE::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_scale, glow_hdr_luminance_cap, @@ -863,7 +863,7 @@ void Environment::_update_fog() { fog_height_density, fog_aerial_perspective, fog_sky_affect, - RS::EnvironmentFogMode(fog_mode)); + RSE::EnvironmentFogMode(fog_mode)); } // Depth Fog diff --git a/scene/resources/image_texture.cpp b/scene/resources/image_texture.cpp index f02c90e5f7..35e5070168 100644 --- a/scene/resources/image_texture.cpp +++ b/scene/resources/image_texture.cpp @@ -307,11 +307,11 @@ Error ImageTextureLayered::create_from_images(Vector> p_images) { } if (texture.is_valid()) { - RID new_texture = RS::get_singleton()->texture_2d_layered_create(p_images, RS::TextureLayeredType(layered_type)); + RID new_texture = RS::get_singleton()->texture_2d_layered_create(p_images, RSE::TextureLayeredType(layered_type)); ERR_FAIL_COND_V(!new_texture.is_valid(), ERR_CANT_CREATE); RS::get_singleton()->texture_replace(texture, new_texture); } else { - texture = RS::get_singleton()->texture_2d_layered_create(p_images, RS::TextureLayeredType(layered_type)); + texture = RS::get_singleton()->texture_2d_layered_create(p_images, RSE::TextureLayeredType(layered_type)); ERR_FAIL_COND_V(!texture.is_valid(), ERR_CANT_CREATE); } @@ -340,7 +340,7 @@ Ref ImageTextureLayered::get_layer_data(int p_layer) const { RID ImageTextureLayered::get_rid() const { if (texture.is_null()) { - texture = RS::get_singleton()->texture_2d_layered_placeholder_create(RS::TextureLayeredType(layered_type)); + texture = RS::get_singleton()->texture_2d_layered_placeholder_create(RSE::TextureLayeredType(layered_type)); } return texture; } diff --git a/scene/resources/immediate_mesh.cpp b/scene/resources/immediate_mesh.cpp index be3a11b23f..76532d0d88 100644 --- a/scene/resources/immediate_mesh.cpp +++ b/scene/resources/immediate_mesh.cpp @@ -30,6 +30,8 @@ #include "immediate_mesh.h" +#include "servers/rendering/rendering_server.h" + void ImmediateMesh::surface_begin(PrimitiveType p_primitive, const Ref &p_material) { ERR_FAIL_COND_MSG(surface_active, "Already creating a new surface."); active_surface_data.primitive = p_primitive; @@ -277,7 +279,7 @@ void ImmediateMesh::surface_end() { RS::SurfaceData sd; - sd.primitive = RS::PrimitiveType(active_surface_data.primitive); + sd.primitive = RSE::PrimitiveType(active_surface_data.primitive); sd.format = format; sd.vertex_data = surface_vertex_create_cache; if (uses_colors || uses_uvs || uses_uv2s) { diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp index c1c3b2f010..89c6fb4b57 100644 --- a/scene/resources/material.cpp +++ b/scene/resources/material.cpp @@ -36,6 +36,7 @@ #include "core/version.h" #include "scene/main/scene_tree.h" #include "scene/resources/texture.h" +#include "servers/rendering/rendering_server.h" void Material::set_next_pass(const Ref &p_pass) { for (Ref pass_child = p_pass; pass_child.is_valid(); pass_child = pass_child->get_next_pass()) { diff --git a/scene/resources/material.h b/scene/resources/material.h index a6ccd3ad1b..2397824f6f 100644 --- a/scene/resources/material.h +++ b/scene/resources/material.h @@ -33,7 +33,7 @@ #include "core/io/resource.h" #include "core/templates/self_list.h" #include "scene/resources/shader.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class Material : public Resource { GDCLASS(Material, Resource); @@ -70,8 +70,8 @@ protected: GDVIRTUAL0RC(bool, _can_use_render_priority) public: enum { - RENDER_PRIORITY_MAX = RS::MATERIAL_RENDER_PRIORITY_MAX, - RENDER_PRIORITY_MIN = RS::MATERIAL_RENDER_PRIORITY_MIN, + RENDER_PRIORITY_MAX = RSE::MATERIAL_RENDER_PRIORITY_MAX, + RENDER_PRIORITY_MIN = RSE::MATERIAL_RENDER_PRIORITY_MIN, }; bool _is_initialized() { return init_state == INIT_STATE_READY; } diff --git a/scene/resources/mesh.cpp b/scene/resources/mesh.cpp index ebaaf78cba..8f8e0d3036 100644 --- a/scene/resources/mesh.cpp +++ b/scene/resources/mesh.cpp @@ -1039,7 +1039,7 @@ void _fix_array_compatibility(const Vector &p_src, uint64_t p_old_forma uint32_t dst_attribute_stride; uint32_t dst_skin_stride; uint32_t dst_offsets[Mesh::ARRAY_MAX]; - RenderingServer::get_singleton()->mesh_surface_make_offsets_from_format(p_new_format & (~RS::ARRAY_FORMAT_INDEX), p_elements, 0, dst_offsets, dst_vertex_stride, dst_normal_tangent_stride, dst_attribute_stride, dst_skin_stride); + RenderingServer::get_singleton()->mesh_surface_make_offsets_from_format(p_new_format & (~RSE::ARRAY_FORMAT_INDEX), p_elements, 0, dst_offsets, dst_vertex_stride, dst_normal_tangent_stride, dst_attribute_stride, dst_skin_stride); vertex_data.resize((dst_vertex_stride + dst_normal_tangent_stride) * p_elements); attribute_data.resize(dst_attribute_stride * p_elements); @@ -1576,7 +1576,7 @@ Array ArrayMesh::_get_surfaces() const { void ArrayMesh::_create_if_empty() const { if (!mesh.is_valid()) { mesh = RS::get_singleton()->mesh_create(); - RS::get_singleton()->mesh_set_blend_shape_mode(mesh, (RS::BlendShapeMode)blend_shape_mode); + RS::get_singleton()->mesh_set_blend_shape_mode(mesh, (RSE::BlendShapeMode)blend_shape_mode); RS::get_singleton()->mesh_set_blend_shape_count(mesh, blend_shapes.size()); RS::get_singleton()->mesh_set_path(mesh, get_path()); } @@ -1597,7 +1597,7 @@ void ArrayMesh::_set_surfaces(const Array &p_surfaces) { ERR_FAIL_COND(!d.has("vertex_count")); ERR_FAIL_COND(!d.has("aabb")); surface.format = d["format"]; - surface.primitive = RS::PrimitiveType(int(d["primitive"])); + surface.primitive = RSE::PrimitiveType(int(d["primitive"])); surface.vertex_data = d["vertex_data"]; surface.vertex_count = d["vertex_count"]; if (d.has("attribute_data")) { @@ -1662,11 +1662,11 @@ void ArrayMesh::_set_surfaces(const Array &p_surfaces) { uint64_t surface_version = surface.format & (ARRAY_FLAG_FORMAT_VERSION_MASK << ARRAY_FLAG_FORMAT_VERSION_SHIFT); if (surface_version != ARRAY_FLAG_FORMAT_CURRENT_VERSION) { RS::get_singleton()->fix_surface_compatibility(surface, get_path()); - surface_version = surface.format & (RS::ARRAY_FLAG_FORMAT_VERSION_MASK << RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT); - ERR_FAIL_COND_MSG(surface_version != RS::ARRAY_FLAG_FORMAT_CURRENT_VERSION, + surface_version = surface.format & (RSE::ARRAY_FLAG_FORMAT_VERSION_MASK << RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT); + ERR_FAIL_COND_MSG(surface_version != RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION, vformat("Surface version provided (%d) does not match current version (%d).", - (surface_version >> RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RS::ARRAY_FLAG_FORMAT_VERSION_MASK, - (RS::ARRAY_FLAG_FORMAT_CURRENT_VERSION >> RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RS::ARRAY_FLAG_FORMAT_VERSION_MASK)); + (surface_version >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RSE::ARRAY_FLAG_FORMAT_VERSION_MASK, + (RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RSE::ARRAY_FLAG_FORMAT_VERSION_MASK)); } #endif @@ -1686,7 +1686,7 @@ void ArrayMesh::_set_surfaces(const Array &p_surfaces) { // if mesh does not exist (first time this is loaded, most likely), // we can create it with a single call, which is a lot more efficient and thread friendly mesh = RS::get_singleton()->mesh_create_from_surfaces(surface_data, blend_shapes.size()); - RS::get_singleton()->mesh_set_blend_shape_mode(mesh, (RS::BlendShapeMode)blend_shape_mode); + RS::get_singleton()->mesh_set_blend_shape_mode(mesh, (RSE::BlendShapeMode)blend_shape_mode); RS::get_singleton()->mesh_set_path(mesh, get_path()); } @@ -1779,7 +1779,7 @@ void ArrayMesh::_recompute_aabb() { // TODO: Need to add binding to add_surface using future MeshSurfaceData object. void ArrayMesh::add_surface(BitField p_format, PrimitiveType p_primitive, const Vector &p_array, const Vector &p_attribute_array, const Vector &p_skin_array, int p_vertex_count, const Vector &p_index_array, int p_index_count, const AABB &p_aabb, const Vector &p_blend_shape_data, const Vector &p_bone_aabbs, const Vector &p_lods, const Vector4 p_uv_scale) { - ERR_FAIL_COND(surfaces.size() == RS::MAX_MESH_SURFACES); + ERR_FAIL_COND(surfaces.size() == RSE::MAX_MESH_SURFACES); _create_if_empty(); Surface s; @@ -1795,7 +1795,7 @@ void ArrayMesh::add_surface(BitField p_format, PrimitiveType p_prim RS::SurfaceData sd; sd.format = p_format; - sd.primitive = RS::PrimitiveType(p_primitive); + sd.primitive = RSE::PrimitiveType(p_primitive); sd.aabb = p_aabb; sd.vertex_count = p_vertex_count; sd.vertex_data = p_array; @@ -1821,7 +1821,7 @@ void ArrayMesh::add_surface_from_arrays(PrimitiveType p_primitive, const Array & RS::SurfaceData surface; - Error err = RS::get_singleton()->mesh_create_surface_data_from_arrays(&surface, (RenderingServer::PrimitiveType)p_primitive, p_arrays, p_blend_shapes, p_lods, p_flags); + Error err = RS::get_singleton()->mesh_create_surface_data_from_arrays(&surface, (RSE::PrimitiveType)p_primitive, p_arrays, p_blend_shapes, p_lods, p_flags); ERR_FAIL_COND(err != OK); /* Debug code. @@ -1914,7 +1914,7 @@ void ArrayMesh::clear_blend_shapes() { void ArrayMesh::set_blend_shape_mode(BlendShapeMode p_mode) { blend_shape_mode = p_mode; if (mesh.is_valid()) { - RS::get_singleton()->mesh_set_blend_shape_mode(mesh, (RS::BlendShapeMode)p_mode); + RS::get_singleton()->mesh_set_blend_shape_mode(mesh, (RSE::BlendShapeMode)p_mode); } } diff --git a/scene/resources/mesh.h b/scene/resources/mesh.h index 2381824479..9aba2e622c 100644 --- a/scene/resources/mesh.h +++ b/scene/resources/mesh.h @@ -33,8 +33,10 @@ #include "core/io/resource.h" #include "core/math/face3.h" #include "core/math/triangle_mesh.h" +#include "core/variant/typed_array.h" #include "scene/resources/material.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server.h" // Needed for SurfaceData::LOD. +#include "servers/rendering/rendering_server_enums.h" #ifndef PHYSICS_3D_DISABLED #include "scene/resources/3d/shape_3d.h" @@ -57,12 +59,12 @@ class Mesh : public Resource { public: enum PrimitiveType { - PRIMITIVE_POINTS = RenderingServer::PRIMITIVE_POINTS, - PRIMITIVE_LINES = RenderingServer::PRIMITIVE_LINES, - PRIMITIVE_LINE_STRIP = RenderingServer::PRIMITIVE_LINE_STRIP, - PRIMITIVE_TRIANGLES = RenderingServer::PRIMITIVE_TRIANGLES, - PRIMITIVE_TRIANGLE_STRIP = RenderingServer::PRIMITIVE_TRIANGLE_STRIP, - PRIMITIVE_MAX = RenderingServer::PRIMITIVE_MAX, + PRIMITIVE_POINTS = RSE::PRIMITIVE_POINTS, + PRIMITIVE_LINES = RSE::PRIMITIVE_LINES, + PRIMITIVE_LINE_STRIP = RSE::PRIMITIVE_LINE_STRIP, + PRIMITIVE_TRIANGLES = RSE::PRIMITIVE_TRIANGLES, + PRIMITIVE_TRIANGLE_STRIP = RSE::PRIMITIVE_TRIANGLE_STRIP, + PRIMITIVE_MAX = RSE::PRIMITIVE_MAX, }; protected: @@ -85,83 +87,85 @@ protected: public: enum { - NO_INDEX_ARRAY = RenderingServer::NO_INDEX_ARRAY, - ARRAY_WEIGHTS_SIZE = RenderingServer::ARRAY_WEIGHTS_SIZE + NO_INDEX_ARRAY = RSE::NO_INDEX_ARRAY, + ARRAY_WEIGHTS_SIZE = RSE::ARRAY_WEIGHTS_SIZE }; + enum BlendShapeMode { - BLEND_SHAPE_MODE_NORMALIZED = RS::BLEND_SHAPE_MODE_NORMALIZED, - BLEND_SHAPE_MODE_RELATIVE = RS::BLEND_SHAPE_MODE_RELATIVE, + BLEND_SHAPE_MODE_NORMALIZED = RSE::BLEND_SHAPE_MODE_NORMALIZED, + BLEND_SHAPE_MODE_RELATIVE = RSE::BLEND_SHAPE_MODE_RELATIVE, }; + enum ArrayType { - ARRAY_VERTEX = RenderingServer::ARRAY_VERTEX, - ARRAY_NORMAL = RenderingServer::ARRAY_NORMAL, - ARRAY_TANGENT = RenderingServer::ARRAY_TANGENT, - ARRAY_COLOR = RenderingServer::ARRAY_COLOR, - ARRAY_TEX_UV = RenderingServer::ARRAY_TEX_UV, - ARRAY_TEX_UV2 = RenderingServer::ARRAY_TEX_UV2, - ARRAY_CUSTOM0 = RenderingServer::ARRAY_CUSTOM0, - ARRAY_CUSTOM1 = RenderingServer::ARRAY_CUSTOM1, - ARRAY_CUSTOM2 = RenderingServer::ARRAY_CUSTOM2, - ARRAY_CUSTOM3 = RenderingServer::ARRAY_CUSTOM3, - ARRAY_BONES = RenderingServer::ARRAY_BONES, - ARRAY_WEIGHTS = RenderingServer::ARRAY_WEIGHTS, - ARRAY_INDEX = RenderingServer::ARRAY_INDEX, - ARRAY_MAX = RenderingServer::ARRAY_MAX + ARRAY_VERTEX = RSE::ARRAY_VERTEX, + ARRAY_NORMAL = RSE::ARRAY_NORMAL, + ARRAY_TANGENT = RSE::ARRAY_TANGENT, + ARRAY_COLOR = RSE::ARRAY_COLOR, + ARRAY_TEX_UV = RSE::ARRAY_TEX_UV, + ARRAY_TEX_UV2 = RSE::ARRAY_TEX_UV2, + ARRAY_CUSTOM0 = RSE::ARRAY_CUSTOM0, + ARRAY_CUSTOM1 = RSE::ARRAY_CUSTOM1, + ARRAY_CUSTOM2 = RSE::ARRAY_CUSTOM2, + ARRAY_CUSTOM3 = RSE::ARRAY_CUSTOM3, + ARRAY_BONES = RSE::ARRAY_BONES, + ARRAY_WEIGHTS = RSE::ARRAY_WEIGHTS, + ARRAY_INDEX = RSE::ARRAY_INDEX, + ARRAY_MAX = RSE::ARRAY_MAX }; enum ArrayCustomFormat { - ARRAY_CUSTOM_RGBA8_UNORM, - ARRAY_CUSTOM_RGBA8_SNORM, - ARRAY_CUSTOM_RG_HALF, - ARRAY_CUSTOM_RGBA_HALF, - ARRAY_CUSTOM_R_FLOAT, - ARRAY_CUSTOM_RG_FLOAT, - ARRAY_CUSTOM_RGB_FLOAT, - ARRAY_CUSTOM_RGBA_FLOAT, - ARRAY_CUSTOM_MAX + ARRAY_CUSTOM_RGBA8_UNORM = RSE::ARRAY_CUSTOM_RGBA8_UNORM, + ARRAY_CUSTOM_RGBA8_SNORM = RSE::ARRAY_CUSTOM_RGBA8_SNORM, + ARRAY_CUSTOM_RG_HALF = RSE::ARRAY_CUSTOM_RG_HALF, + ARRAY_CUSTOM_RGBA_HALF = RSE::ARRAY_CUSTOM_RGBA_HALF, + ARRAY_CUSTOM_R_FLOAT = RSE::ARRAY_CUSTOM_R_FLOAT, + ARRAY_CUSTOM_RG_FLOAT = RSE::ARRAY_CUSTOM_RG_FLOAT, + ARRAY_CUSTOM_RGB_FLOAT = RSE::ARRAY_CUSTOM_RGB_FLOAT, + ARRAY_CUSTOM_RGBA_FLOAT = RSE::ARRAY_CUSTOM_RGBA_FLOAT, + ARRAY_CUSTOM_MAX = RSE::ARRAY_CUSTOM_MAX }; enum ArrayFormat : uint64_t { - ARRAY_FORMAT_VERTEX = RS::ARRAY_FORMAT_VERTEX, - ARRAY_FORMAT_NORMAL = RS::ARRAY_FORMAT_NORMAL, - ARRAY_FORMAT_TANGENT = RS::ARRAY_FORMAT_TANGENT, - ARRAY_FORMAT_COLOR = RS::ARRAY_FORMAT_COLOR, - ARRAY_FORMAT_TEX_UV = RS::ARRAY_FORMAT_TEX_UV, - ARRAY_FORMAT_TEX_UV2 = RS::ARRAY_FORMAT_TEX_UV2, - ARRAY_FORMAT_CUSTOM0 = RS::ARRAY_FORMAT_CUSTOM0, - ARRAY_FORMAT_CUSTOM1 = RS::ARRAY_FORMAT_CUSTOM1, - ARRAY_FORMAT_CUSTOM2 = RS::ARRAY_FORMAT_CUSTOM2, - ARRAY_FORMAT_CUSTOM3 = RS::ARRAY_FORMAT_CUSTOM3, - ARRAY_FORMAT_BONES = RS::ARRAY_FORMAT_BONES, - ARRAY_FORMAT_WEIGHTS = RS::ARRAY_FORMAT_WEIGHTS, - ARRAY_FORMAT_INDEX = RS::ARRAY_FORMAT_INDEX, + ARRAY_FORMAT_VERTEX = RSE::ARRAY_FORMAT_VERTEX, + ARRAY_FORMAT_NORMAL = RSE::ARRAY_FORMAT_NORMAL, + ARRAY_FORMAT_TANGENT = RSE::ARRAY_FORMAT_TANGENT, + ARRAY_FORMAT_COLOR = RSE::ARRAY_FORMAT_COLOR, + ARRAY_FORMAT_TEX_UV = RSE::ARRAY_FORMAT_TEX_UV, + ARRAY_FORMAT_TEX_UV2 = RSE::ARRAY_FORMAT_TEX_UV2, + ARRAY_FORMAT_CUSTOM0 = RSE::ARRAY_FORMAT_CUSTOM0, + ARRAY_FORMAT_CUSTOM1 = RSE::ARRAY_FORMAT_CUSTOM1, + ARRAY_FORMAT_CUSTOM2 = RSE::ARRAY_FORMAT_CUSTOM2, + ARRAY_FORMAT_CUSTOM3 = RSE::ARRAY_FORMAT_CUSTOM3, + ARRAY_FORMAT_BONES = RSE::ARRAY_FORMAT_BONES, + ARRAY_FORMAT_WEIGHTS = RSE::ARRAY_FORMAT_WEIGHTS, + ARRAY_FORMAT_INDEX = RSE::ARRAY_FORMAT_INDEX, - ARRAY_FORMAT_BLEND_SHAPE_MASK = RS::ARRAY_FORMAT_BLEND_SHAPE_MASK, + ARRAY_FORMAT_BLEND_SHAPE_MASK = RSE::ARRAY_FORMAT_BLEND_SHAPE_MASK, - ARRAY_FORMAT_CUSTOM_BASE = RS::ARRAY_FORMAT_CUSTOM_BASE, - ARRAY_FORMAT_CUSTOM_BITS = RS::ARRAY_FORMAT_CUSTOM_BITS, - ARRAY_FORMAT_CUSTOM0_SHIFT = RS::ARRAY_FORMAT_CUSTOM0_SHIFT, - ARRAY_FORMAT_CUSTOM1_SHIFT = RS::ARRAY_FORMAT_CUSTOM1_SHIFT, - ARRAY_FORMAT_CUSTOM2_SHIFT = RS::ARRAY_FORMAT_CUSTOM2_SHIFT, - ARRAY_FORMAT_CUSTOM3_SHIFT = RS::ARRAY_FORMAT_CUSTOM3_SHIFT, + ARRAY_FORMAT_CUSTOM_BASE = RSE::ARRAY_FORMAT_CUSTOM_BASE, + ARRAY_FORMAT_CUSTOM_BITS = RSE::ARRAY_FORMAT_CUSTOM_BITS, + ARRAY_FORMAT_CUSTOM0_SHIFT = RSE::ARRAY_FORMAT_CUSTOM0_SHIFT, + ARRAY_FORMAT_CUSTOM1_SHIFT = RSE::ARRAY_FORMAT_CUSTOM1_SHIFT, + ARRAY_FORMAT_CUSTOM2_SHIFT = RSE::ARRAY_FORMAT_CUSTOM2_SHIFT, + ARRAY_FORMAT_CUSTOM3_SHIFT = RSE::ARRAY_FORMAT_CUSTOM3_SHIFT, - ARRAY_FORMAT_CUSTOM_MASK = RS::ARRAY_FORMAT_CUSTOM_MASK, - ARRAY_COMPRESS_FLAGS_BASE = RS::ARRAY_COMPRESS_FLAGS_BASE, + ARRAY_FORMAT_CUSTOM_MASK = RSE::ARRAY_FORMAT_CUSTOM_MASK, + ARRAY_COMPRESS_FLAGS_BASE = RSE::ARRAY_COMPRESS_FLAGS_BASE, - ARRAY_FLAG_USE_2D_VERTICES = RS::ARRAY_FLAG_USE_2D_VERTICES, - ARRAY_FLAG_USE_DYNAMIC_UPDATE = RS::ARRAY_FLAG_USE_DYNAMIC_UPDATE, - ARRAY_FLAG_USE_8_BONE_WEIGHTS = RS::ARRAY_FLAG_USE_8_BONE_WEIGHTS, + ARRAY_FLAG_USE_2D_VERTICES = RSE::ARRAY_FLAG_USE_2D_VERTICES, + ARRAY_FLAG_USE_DYNAMIC_UPDATE = RSE::ARRAY_FLAG_USE_DYNAMIC_UPDATE, + ARRAY_FLAG_USE_8_BONE_WEIGHTS = RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS, - ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY = RS::ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY, - ARRAY_FLAG_COMPRESS_ATTRIBUTES = RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES, + ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY = RSE::ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY, + ARRAY_FLAG_COMPRESS_ATTRIBUTES = RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES, - ARRAY_FLAG_FORMAT_VERSION_BASE = RS::ARRAY_FLAG_FORMAT_VERSION_BASE, - ARRAY_FLAG_FORMAT_VERSION_SHIFT = RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT, - ARRAY_FLAG_FORMAT_VERSION_1 = RS::ARRAY_FLAG_FORMAT_VERSION_1, - ARRAY_FLAG_FORMAT_VERSION_2 = (uint64_t)RS::ARRAY_FLAG_FORMAT_VERSION_2, - ARRAY_FLAG_FORMAT_CURRENT_VERSION = (uint64_t)RS::ARRAY_FLAG_FORMAT_CURRENT_VERSION, - ARRAY_FLAG_FORMAT_VERSION_MASK = RS::ARRAY_FLAG_FORMAT_VERSION_MASK, + ARRAY_FLAG_FORMAT_VERSION_BASE = RSE::ARRAY_FLAG_FORMAT_VERSION_BASE, + ARRAY_FLAG_FORMAT_VERSION_SHIFT = RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT, + ARRAY_FLAG_FORMAT_VERSION_1 = RSE::ARRAY_FLAG_FORMAT_VERSION_1, + ARRAY_FLAG_FORMAT_VERSION_2 = (uint64_t)RSE::ARRAY_FLAG_FORMAT_VERSION_2, + ARRAY_FLAG_FORMAT_CURRENT_VERSION = (uint64_t)RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION, + ARRAY_FLAG_FORMAT_VERSION_MASK = RSE::ARRAY_FLAG_FORMAT_VERSION_MASK, }; virtual int get_surface_count() const; diff --git a/scene/resources/mesh_texture.cpp b/scene/resources/mesh_texture.cpp index 538b70e147..cb58a2f998 100644 --- a/scene/resources/mesh_texture.cpp +++ b/scene/resources/mesh_texture.cpp @@ -31,6 +31,7 @@ #include "mesh_texture.h" #include "scene/resources/mesh.h" +#include "servers/rendering/rendering_server.h" int MeshTexture::get_width() const { return size.width; diff --git a/scene/resources/multimesh.cpp b/scene/resources/multimesh.cpp index 174b34a43a..4ab93df347 100644 --- a/scene/resources/multimesh.cpp +++ b/scene/resources/multimesh.cpp @@ -230,7 +230,7 @@ Ref MultiMesh::get_mesh() const { void MultiMesh::set_instance_count(int p_count) { ERR_FAIL_COND(p_count < 0); - RenderingServer::get_singleton()->multimesh_allocate_data(multimesh, p_count, RS::MultimeshTransformFormat(transform_format), use_colors, use_custom_data); + RenderingServer::get_singleton()->multimesh_allocate_data(multimesh, p_count, RSE::MultimeshTransformFormat(transform_format), use_colors, use_custom_data); instance_count = p_count; } @@ -251,7 +251,7 @@ int MultiMesh::get_visible_instance_count() const { void MultiMesh::set_physics_interpolation_quality(PhysicsInterpolationQuality p_quality) { _physics_interpolation_quality = p_quality; - RenderingServer::get_singleton()->multimesh_set_physics_interpolation_quality(multimesh, (RS::MultimeshPhysicsInterpolationQuality)p_quality); + RenderingServer::get_singleton()->multimesh_set_physics_interpolation_quality(multimesh, (RSE::MultimeshPhysicsInterpolationQuality)p_quality); } void MultiMesh::set_instance_transform(int p_instance, const Transform3D &p_transform) { diff --git a/scene/resources/multimesh.h b/scene/resources/multimesh.h index a486bd6ef2..aa824368af 100644 --- a/scene/resources/multimesh.h +++ b/scene/resources/multimesh.h @@ -31,7 +31,7 @@ #pragma once #include "scene/resources/mesh.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class MultiMesh : public Resource { GDCLASS(MultiMesh, Resource); @@ -39,8 +39,8 @@ class MultiMesh : public Resource { public: enum TransformFormat { - TRANSFORM_2D = RS::MULTIMESH_TRANSFORM_2D, - TRANSFORM_3D = RS::MULTIMESH_TRANSFORM_3D + TRANSFORM_2D = RSE::MULTIMESH_TRANSFORM_2D, + TRANSFORM_3D = RSE::MULTIMESH_TRANSFORM_3D }; enum PhysicsInterpolationQuality { diff --git a/scene/resources/particle_process_material.cpp b/scene/resources/particle_process_material.cpp index b26eea36c2..1f9cdc6b8d 100644 --- a/scene/resources/particle_process_material.cpp +++ b/scene/resources/particle_process_material.cpp @@ -31,6 +31,7 @@ #include "particle_process_material.h" #include "core/version.h" +#include "servers/rendering/rendering_server.h" Mutex ParticleProcessMaterial::dirty_materials_mutex; SelfList::List ParticleProcessMaterial::dirty_materials; diff --git a/scene/resources/placeholder_textures.cpp b/scene/resources/placeholder_textures.cpp index 159e923b67..11148bdf63 100644 --- a/scene/resources/placeholder_textures.cpp +++ b/scene/resources/placeholder_textures.cpp @@ -178,7 +178,7 @@ Ref PlaceholderTextureLayered::get_layer_data(int p_layer) const { RID PlaceholderTextureLayered::get_rid() const { if (rid.is_null()) { - rid = RS::get_singleton()->texture_2d_layered_placeholder_create(RS::TextureLayeredType(layered_type)); + rid = RS::get_singleton()->texture_2d_layered_placeholder_create(RSE::TextureLayeredType(layered_type)); } return rid; } diff --git a/scene/resources/sky.cpp b/scene/resources/sky.cpp index 38c3ee1e46..9e739db258 100644 --- a/scene/resources/sky.cpp +++ b/scene/resources/sky.cpp @@ -30,6 +30,8 @@ #include "sky.h" +#include "servers/rendering/rendering_server.h" + void Sky::set_radiance_size(RadianceSize p_size) { ERR_FAIL_INDEX(p_size, RADIANCE_SIZE_MAX); @@ -46,7 +48,7 @@ Sky::RadianceSize Sky::get_radiance_size() const { void Sky::set_process_mode(ProcessMode p_mode) { mode = p_mode; - RS::get_singleton()->sky_set_mode(sky, RS::SkyMode(mode)); + RS::get_singleton()->sky_set_mode(sky, RSE::SkyMode(mode)); } Sky::ProcessMode Sky::get_process_mode() const { diff --git a/scene/resources/style_box_texture.cpp b/scene/resources/style_box_texture.cpp index 4f02312684..46dac1bd98 100644 --- a/scene/resources/style_box_texture.cpp +++ b/scene/resources/style_box_texture.cpp @@ -180,7 +180,7 @@ void StyleBoxTexture::draw(RID p_canvas_item, const Rect2 &p_rect) const { Vector2 start_offset = Vector2(texture_margin[SIDE_LEFT], texture_margin[SIDE_TOP]); Vector2 end_offset = Vector2(texture_margin[SIDE_RIGHT], texture_margin[SIDE_BOTTOM]); - RenderingServer::get_singleton()->canvas_item_add_nine_patch(p_canvas_item, rect, src_rect, texture->get_scaled_rid(), start_offset, end_offset, RS::NinePatchAxisMode(axis_h), RS::NinePatchAxisMode(axis_v), draw_center, modulate); + RenderingServer::get_singleton()->canvas_item_add_nine_patch(p_canvas_item, rect, src_rect, texture->get_scaled_rid(), start_offset, end_offset, RSE::NinePatchAxisMode(axis_h), RSE::NinePatchAxisMode(axis_v), draw_center, modulate); } void StyleBoxTexture::_bind_methods() { diff --git a/scene/resources/surface_tool.cpp b/scene/resources/surface_tool.cpp index 896534f7e7..e8aa03648b 100644 --- a/scene/resources/surface_tool.cpp +++ b/scene/resources/surface_tool.cpp @@ -123,7 +123,7 @@ bool SurfaceTool::Vertex::operator==(const Vertex &p_vertex) const { } } - for (int i = 0; i < RS::ARRAY_CUSTOM_COUNT; i++) { + for (int i = 0; i < RSE::ARRAY_CUSTOM_COUNT; i++) { if (custom[i] != p_vertex.custom[i]) { return false; } @@ -238,7 +238,7 @@ void SurfaceTool::add_vertex(const Vector3 &p_vertex) { vtx.binormal = last_normal.cross(last_tangent.normal).normalized() * last_tangent.d; vtx.smooth_group = last_smooth_group; - for (int i = 0; i < RS::ARRAY_CUSTOM_COUNT; i++) { + for (int i = 0; i < RSE::ARRAY_CUSTOM_COUNT; i++) { vtx.custom[i] = last_custom[i]; } @@ -336,10 +336,10 @@ void SurfaceTool::set_uv2(const Vector2 &p_uv2) { } void SurfaceTool::set_custom(int p_channel_index, const Color &p_custom) { - ERR_FAIL_INDEX(p_channel_index, RS::ARRAY_CUSTOM_COUNT); + ERR_FAIL_INDEX(p_channel_index, RSE::ARRAY_CUSTOM_COUNT); ERR_FAIL_COND(!begun); ERR_FAIL_COND(last_custom_format[p_channel_index] == CUSTOM_MAX); - static const uint32_t mask[RS::ARRAY_CUSTOM_COUNT] = { Mesh::ARRAY_FORMAT_CUSTOM0, Mesh::ARRAY_FORMAT_CUSTOM1, Mesh::ARRAY_FORMAT_CUSTOM2, Mesh::ARRAY_FORMAT_CUSTOM3 }; + static const uint32_t mask[RSE::ARRAY_CUSTOM_COUNT] = { Mesh::ARRAY_FORMAT_CUSTOM0, Mesh::ARRAY_FORMAT_CUSTOM1, Mesh::ARRAY_FORMAT_CUSTOM2, Mesh::ARRAY_FORMAT_CUSTOM3 }; ERR_FAIL_COND(!first && !(format & mask[p_channel_index])); if (first) { @@ -727,9 +727,9 @@ Ref SurfaceTool::commit(const Ref &p_existing, uint64_t p_ Array a = commit_to_arrays(); - uint64_t compress_flags = (p_compress_flags >> RS::ARRAY_COMPRESS_FLAGS_BASE) << RS::ARRAY_COMPRESS_FLAGS_BASE; - static const uint64_t shift[RS::ARRAY_CUSTOM_COUNT] = { Mesh::ARRAY_FORMAT_CUSTOM0_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM1_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM2_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM3_SHIFT }; - for (int i = 0; i < RS::ARRAY_CUSTOM_COUNT; i++) { + uint64_t compress_flags = (p_compress_flags >> RSE::ARRAY_COMPRESS_FLAGS_BASE) << RSE::ARRAY_COMPRESS_FLAGS_BASE; + static const uint64_t shift[RSE::ARRAY_CUSTOM_COUNT] = { Mesh::ARRAY_FORMAT_CUSTOM0_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM1_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM2_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM3_SHIFT }; + for (int i = 0; i < RSE::ARRAY_CUSTOM_COUNT; i++) { if (last_custom_format[i] != CUSTOM_MAX) { compress_flags |= uint64_t(last_custom_format[i]) << shift[i]; } @@ -790,27 +790,27 @@ void SurfaceTool::_create_list(const Ref &p_existing, int p_surface, Local ERR_FAIL_COND_MSG(p_existing.is_null(), "First argument in SurfaceTool::_create_list() must be a valid object of type Mesh"); Array arr = p_existing->surface_get_arrays(p_surface); - ERR_FAIL_COND(arr.size() != RS::ARRAY_MAX); + ERR_FAIL_COND(arr.size() != RSE::ARRAY_MAX); _create_list_from_arrays(arr, r_vertex, r_index, lformat); } -const uint32_t SurfaceTool::custom_mask[RS::ARRAY_CUSTOM_COUNT] = { Mesh::ARRAY_FORMAT_CUSTOM0, Mesh::ARRAY_FORMAT_CUSTOM1, Mesh::ARRAY_FORMAT_CUSTOM2, Mesh::ARRAY_FORMAT_CUSTOM3 }; -const uint32_t SurfaceTool::custom_shift[RS::ARRAY_CUSTOM_COUNT] = { Mesh::ARRAY_FORMAT_CUSTOM0_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM1_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM2_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM3_SHIFT }; +const uint32_t SurfaceTool::custom_mask[RSE::ARRAY_CUSTOM_COUNT] = { Mesh::ARRAY_FORMAT_CUSTOM0, Mesh::ARRAY_FORMAT_CUSTOM1, Mesh::ARRAY_FORMAT_CUSTOM2, Mesh::ARRAY_FORMAT_CUSTOM3 }; +const uint32_t SurfaceTool::custom_shift[RSE::ARRAY_CUSTOM_COUNT] = { Mesh::ARRAY_FORMAT_CUSTOM0_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM1_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM2_SHIFT, Mesh::ARRAY_FORMAT_CUSTOM3_SHIFT }; void SurfaceTool::create_vertex_array_from_arrays(const Array &p_arrays, LocalVector &ret, uint64_t *r_format) { - ERR_FAIL_INDEX(RS::ARRAY_WEIGHTS, p_arrays.size()); + ERR_FAIL_INDEX(RSE::ARRAY_WEIGHTS, p_arrays.size()); ret.clear(); - Vector varr = p_arrays[RS::ARRAY_VERTEX]; - Vector narr = p_arrays[RS::ARRAY_NORMAL]; - Vector tarr = p_arrays[RS::ARRAY_TANGENT]; - Vector carr = p_arrays[RS::ARRAY_COLOR]; - Vector uvarr = p_arrays[RS::ARRAY_TEX_UV]; - Vector uv2arr = p_arrays[RS::ARRAY_TEX_UV2]; - Vector barr = p_arrays[RS::ARRAY_BONES]; - Vector warr = p_arrays[RS::ARRAY_WEIGHTS]; - Vector custom_float[RS::ARRAY_CUSTOM_COUNT]; + Vector varr = p_arrays[RSE::ARRAY_VERTEX]; + Vector narr = p_arrays[RSE::ARRAY_NORMAL]; + Vector tarr = p_arrays[RSE::ARRAY_TANGENT]; + Vector carr = p_arrays[RSE::ARRAY_COLOR]; + Vector uvarr = p_arrays[RSE::ARRAY_TEX_UV]; + Vector uv2arr = p_arrays[RSE::ARRAY_TEX_UV2]; + Vector barr = p_arrays[RSE::ARRAY_BONES]; + Vector warr = p_arrays[RSE::ARRAY_WEIGHTS]; + Vector custom_float[RSE::ARRAY_CUSTOM_COUNT]; int vc = varr.size(); if (vc == 0) { @@ -822,43 +822,43 @@ void SurfaceTool::create_vertex_array_from_arrays(const Array &p_arrays, LocalVe uint64_t lformat = 0; if (varr.size()) { - lformat |= RS::ARRAY_FORMAT_VERTEX; + lformat |= RSE::ARRAY_FORMAT_VERTEX; } if (narr.size()) { - lformat |= RS::ARRAY_FORMAT_NORMAL; + lformat |= RSE::ARRAY_FORMAT_NORMAL; } if (tarr.size()) { - lformat |= RS::ARRAY_FORMAT_TANGENT; + lformat |= RSE::ARRAY_FORMAT_TANGENT; } if (carr.size()) { - lformat |= RS::ARRAY_FORMAT_COLOR; + lformat |= RSE::ARRAY_FORMAT_COLOR; } if (uvarr.size()) { - lformat |= RS::ARRAY_FORMAT_TEX_UV; + lformat |= RSE::ARRAY_FORMAT_TEX_UV; } if (uv2arr.size()) { - lformat |= RS::ARRAY_FORMAT_TEX_UV2; + lformat |= RSE::ARRAY_FORMAT_TEX_UV2; } int wcount = 0; if (barr.size() && warr.size()) { - lformat |= RS::ARRAY_FORMAT_BONES; - lformat |= RS::ARRAY_FORMAT_WEIGHTS; + lformat |= RSE::ARRAY_FORMAT_BONES; + lformat |= RSE::ARRAY_FORMAT_WEIGHTS; wcount = barr.size() / varr.size(); if (wcount == 8) { - lformat |= RS::ARRAY_FLAG_USE_8_BONE_WEIGHTS; + lformat |= RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS; } } if (warr.size()) { - lformat |= RS::ARRAY_FORMAT_WEIGHTS; + lformat |= RSE::ARRAY_FORMAT_WEIGHTS; } - for (int i = 0; i < RS::ARRAY_CUSTOM_COUNT; i++) { - ERR_CONTINUE_MSG(p_arrays[RS::ARRAY_CUSTOM0 + i].get_type() == Variant::PACKED_BYTE_ARRAY, "Extracting Byte/Half formats is not supported"); - if (p_arrays[RS::ARRAY_CUSTOM0 + i].get_type() == Variant::PACKED_FLOAT32_ARRAY) { + for (int i = 0; i < RSE::ARRAY_CUSTOM_COUNT; i++) { + ERR_CONTINUE_MSG(p_arrays[RSE::ARRAY_CUSTOM0 + i].get_type() == Variant::PACKED_BYTE_ARRAY, "Extracting Byte/Half formats is not supported"); + if (p_arrays[RSE::ARRAY_CUSTOM0 + i].get_type() == Variant::PACKED_FLOAT32_ARRAY) { lformat |= custom_mask[i]; - custom_float[i] = p_arrays[RS::ARRAY_CUSTOM0 + i]; + custom_float[i] = p_arrays[RSE::ARRAY_CUSTOM0 + i]; int fmt = custom_float[i].size() / varr.size(); if (fmt == 1) { lformat |= CUSTOM_R_FLOAT << custom_shift[i]; @@ -874,27 +874,27 @@ void SurfaceTool::create_vertex_array_from_arrays(const Array &p_arrays, LocalVe for (int i = 0; i < vc; i++) { Vertex v; - if (lformat & RS::ARRAY_FORMAT_VERTEX) { + if (lformat & RSE::ARRAY_FORMAT_VERTEX) { v.vertex = varr[i]; } - if (lformat & RS::ARRAY_FORMAT_NORMAL) { + if (lformat & RSE::ARRAY_FORMAT_NORMAL) { v.normal = narr[i]; } - if (lformat & RS::ARRAY_FORMAT_TANGENT) { + if (lformat & RSE::ARRAY_FORMAT_TANGENT) { v.tangent = Vector3(tarr[i * 4 + 0], tarr[i * 4 + 1], tarr[i * 4 + 2]); float d = tarr[i * 4 + 3]; v.binormal = v.normal.cross(v.tangent).normalized() * d; } - if (lformat & RS::ARRAY_FORMAT_COLOR) { + if (lformat & RSE::ARRAY_FORMAT_COLOR) { v.color = carr[i]; } - if (lformat & RS::ARRAY_FORMAT_TEX_UV) { + if (lformat & RSE::ARRAY_FORMAT_TEX_UV) { v.uv = uvarr[i]; } - if (lformat & RS::ARRAY_FORMAT_TEX_UV2) { + if (lformat & RSE::ARRAY_FORMAT_TEX_UV2) { v.uv2 = uv2arr[i]; } - if (lformat & RS::ARRAY_FORMAT_BONES) { + if (lformat & RSE::ARRAY_FORMAT_BONES) { Vector b; b.resize(wcount); for (int j = 0; j < wcount; j++) { @@ -902,7 +902,7 @@ void SurfaceTool::create_vertex_array_from_arrays(const Array &p_arrays, LocalVe } v.bones = b; } - if (lformat & RS::ARRAY_FORMAT_WEIGHTS) { + if (lformat & RSE::ARRAY_FORMAT_WEIGHTS) { Vector w; w.resize(wcount); for (int j = 0; j < wcount; j++) { @@ -911,7 +911,7 @@ void SurfaceTool::create_vertex_array_from_arrays(const Array &p_arrays, LocalVe v.weights = w; } - for (int j = 0; j < RS::ARRAY_CUSTOM_COUNT; j++) { + for (int j = 0; j < RSE::ARRAY_CUSTOM_COUNT; j++) { if (lformat & custom_mask[j]) { int cc = custom_float[j].size() / varr.size(); for (int k = 0; k < cc; k++) { @@ -935,10 +935,10 @@ void SurfaceTool::_create_list_from_arrays(Array arr, LocalVector *r_ver //indices r_index->clear(); - Vector idx = arr[RS::ARRAY_INDEX]; + Vector idx = arr[RSE::ARRAY_INDEX]; int is = idx.size(); if (is) { - lformat |= RS::ARRAY_FORMAT_INDEX; + lformat |= RSE::ARRAY_FORMAT_INDEX; const int *iarr = idx.ptr(); for (int i = 0; i < is; i++) { r_index->push_back(iarr[i]); @@ -951,9 +951,9 @@ void SurfaceTool::create_from_arrays(const Array &p_arrays, Mesh::PrimitiveType primitive = p_primitive_type; _create_list_from_arrays(p_arrays, &vertex_array, &index_array, format); - for (int j = 0; j < RS::ARRAY_CUSTOM_COUNT; j++) { + for (int j = 0; j < RSE::ARRAY_CUSTOM_COUNT; j++) { if (format & custom_mask[j]) { - last_custom_format[j] = (CustomFormat)((format >> custom_shift[j]) & RS::ARRAY_FORMAT_CUSTOM_MASK); + last_custom_format[j] = (CustomFormat)((format >> custom_shift[j]) & RSE::ARRAY_FORMAT_CUSTOM_MASK); } } } @@ -970,9 +970,9 @@ void SurfaceTool::create_from(const Ref &p_existing, int p_surface) { _create_list(p_existing, p_surface, &vertex_array, &index_array, format); material = p_existing->surface_get_material(p_surface); - for (int j = 0; j < RS::ARRAY_CUSTOM_COUNT; j++) { + for (int j = 0; j < RSE::ARRAY_CUSTOM_COUNT; j++) { if (format & custom_mask[j]) { - last_custom_format[j] = (CustomFormat)((format >> custom_shift[j]) & RS::ARRAY_FORMAT_CUSTOM_MASK); + last_custom_format[j] = (CustomFormat)((format >> custom_shift[j]) & RSE::ARRAY_FORMAT_CUSTOM_MASK); } } } @@ -995,24 +995,24 @@ void SurfaceTool::create_from_blend_shape(const Ref &p_existing, int p_sur ERR_FAIL_COND(shape_idx == -1); ERR_FAIL_COND(shape_idx >= arr.size()); Array blendshape_mesh_arrays = arr[shape_idx]; - ERR_FAIL_COND(blendshape_mesh_arrays.size() != RS::ARRAY_MAX); + ERR_FAIL_COND(blendshape_mesh_arrays.size() != RSE::ARRAY_MAX); Array source_mesh_arrays = p_existing->surface_get_arrays(p_surface); - ERR_FAIL_COND(source_mesh_arrays.size() != RS::ARRAY_MAX); + ERR_FAIL_COND(source_mesh_arrays.size() != RSE::ARRAY_MAX); // Copy BlendShape vertex data over while keeping e.g. bones, weights, index from existing mesh intact. - source_mesh_arrays[RS::ARRAY_VERTEX] = blendshape_mesh_arrays[RS::ARRAY_VERTEX]; - source_mesh_arrays[RS::ARRAY_NORMAL] = blendshape_mesh_arrays[RS::ARRAY_NORMAL]; - source_mesh_arrays[RS::ARRAY_TANGENT] = blendshape_mesh_arrays[RS::ARRAY_TANGENT]; + source_mesh_arrays[RSE::ARRAY_VERTEX] = blendshape_mesh_arrays[RSE::ARRAY_VERTEX]; + source_mesh_arrays[RSE::ARRAY_NORMAL] = blendshape_mesh_arrays[RSE::ARRAY_NORMAL]; + source_mesh_arrays[RSE::ARRAY_TANGENT] = blendshape_mesh_arrays[RSE::ARRAY_TANGENT]; _create_list_from_arrays(source_mesh_arrays, &vertex_array, &index_array, format); material = p_existing->surface_get_material(p_surface); format = p_existing->surface_get_format(p_surface); - for (int j = 0; j < RS::ARRAY_CUSTOM_COUNT; j++) { + for (int j = 0; j < RSE::ARRAY_CUSTOM_COUNT; j++) { if (format & custom_mask[j]) { - last_custom_format[j] = (CustomFormat)((format >> custom_shift[j]) & RS::ARRAY_FORMAT_CUSTOM_MASK); + last_custom_format[j] = (CustomFormat)((format >> custom_shift[j]) & RSE::ARRAY_FORMAT_CUSTOM_MASK); } } } @@ -1031,9 +1031,9 @@ void SurfaceTool::append_from(const Ref &p_existing, int p_surface, const _create_list(p_existing, p_surface, &nvertices, &nindices, nformat); format |= nformat; - for (int j = 0; j < RS::ARRAY_CUSTOM_COUNT; j++) { + for (int j = 0; j < RSE::ARRAY_CUSTOM_COUNT; j++) { if (format & custom_mask[j]) { - CustomFormat new_format = (CustomFormat)((format >> custom_shift[j]) & RS::ARRAY_FORMAT_CUSTOM_MASK); + CustomFormat new_format = (CustomFormat)((format >> custom_shift[j]) & RSE::ARRAY_FORMAT_CUSTOM_MASK); last_custom_format[j] = new_format; } } @@ -1041,10 +1041,10 @@ void SurfaceTool::append_from(const Ref &p_existing, int p_surface, const for (Vertex &v : nvertices) { v.vertex = p_xform.xform(v.vertex); - if (nformat & RS::ARRAY_FORMAT_NORMAL) { + if (nformat & RSE::ARRAY_FORMAT_NORMAL) { v.normal = p_xform.basis.xform(v.normal); } - if (nformat & RS::ARRAY_FORMAT_TANGENT) { + if (nformat & RSE::ARRAY_FORMAT_TANGENT) { v.tangent = p_xform.basis.xform(v.tangent); v.binormal = p_xform.basis.xform(v.binormal); } @@ -1255,7 +1255,7 @@ void SurfaceTool::clear() { vertex_array.clear(); material.unref(); last_smooth_group = 0; - for (int i = 0; i < RS::ARRAY_CUSTOM_COUNT; i++) { + for (int i = 0; i < RSE::ARRAY_CUSTOM_COUNT; i++) { last_custom_format[i] = CUSTOM_MAX; } skin_weights = SKIN_4_WEIGHTS; @@ -1270,7 +1270,7 @@ SurfaceTool::SkinWeightCount SurfaceTool::get_skin_weight_count() const { } void SurfaceTool::set_custom_format(int p_channel_index, CustomFormat p_format) { - ERR_FAIL_INDEX(p_channel_index, RS::ARRAY_CUSTOM_COUNT); + ERR_FAIL_INDEX(p_channel_index, RSE::ARRAY_CUSTOM_COUNT); ERR_FAIL_COND(!begun); ERR_FAIL_INDEX(p_format, CUSTOM_MAX + 1); last_custom_format[p_channel_index] = p_format; @@ -1280,7 +1280,7 @@ Mesh::PrimitiveType SurfaceTool::get_primitive_type() const { return primitive; } SurfaceTool::CustomFormat SurfaceTool::get_custom_format(int p_channel_index) const { - ERR_FAIL_INDEX_V(p_channel_index, RS::ARRAY_CUSTOM_COUNT, CUSTOM_MAX); + ERR_FAIL_INDEX_V(p_channel_index, RSE::ARRAY_CUSTOM_COUNT, CUSTOM_MAX); return last_custom_format[p_channel_index]; } void SurfaceTool::optimize_indices_for_cache() { @@ -1398,7 +1398,7 @@ void SurfaceTool::_bind_methods() { } SurfaceTool::SurfaceTool() { - for (int i = 0; i < RS::ARRAY_CUSTOM_COUNT; i++) { + for (int i = 0; i < RSE::ARRAY_CUSTOM_COUNT; i++) { last_custom_format[i] = CUSTOM_MAX; } } diff --git a/scene/resources/surface_tool.h b/scene/resources/surface_tool.h index 5d4e21d65d..405cd18c04 100644 --- a/scene/resources/surface_tool.h +++ b/scene/resources/surface_tool.h @@ -32,13 +32,14 @@ #include "core/templates/local_vector.h" #include "scene/resources/mesh.h" +#include "servers/rendering/rendering_server_enums.h" #include "thirdparty/misc/mikktspace.h" class SurfaceTool : public RefCounted { GDCLASS(SurfaceTool, RefCounted); - static const uint32_t custom_mask[RS::ARRAY_CUSTOM_COUNT]; - static const uint32_t custom_shift[RS::ARRAY_CUSTOM_COUNT]; + static const uint32_t custom_mask[RSE::ARRAY_CUSTOM_COUNT]; + static const uint32_t custom_shift[RSE::ARRAY_CUSTOM_COUNT]; public: struct Vertex { @@ -52,7 +53,7 @@ public: Vector3 tangent; Vector2 uv; Vector2 uv2; - Color custom[RS::ARRAY_CUSTOM_COUNT]; + Color custom[RSE::ARRAY_CUSTOM_COUNT]; Vector3 vertex; // Must be last. // ---------------------------------------------------------------- @@ -64,15 +65,15 @@ public: }; enum CustomFormat { - CUSTOM_RGBA8_UNORM = RS::ARRAY_CUSTOM_RGBA8_UNORM, - CUSTOM_RGBA8_SNORM = RS::ARRAY_CUSTOM_RGBA8_SNORM, - CUSTOM_RG_HALF = RS::ARRAY_CUSTOM_RG_HALF, - CUSTOM_RGBA_HALF = RS::ARRAY_CUSTOM_RGBA_HALF, - CUSTOM_R_FLOAT = RS::ARRAY_CUSTOM_R_FLOAT, - CUSTOM_RG_FLOAT = RS::ARRAY_CUSTOM_RG_FLOAT, - CUSTOM_RGB_FLOAT = RS::ARRAY_CUSTOM_RGB_FLOAT, - CUSTOM_RGBA_FLOAT = RS::ARRAY_CUSTOM_RGBA_FLOAT, - CUSTOM_MAX = RS::ARRAY_CUSTOM_MAX + CUSTOM_RGBA8_UNORM = RSE::ARRAY_CUSTOM_RGBA8_UNORM, + CUSTOM_RGBA8_SNORM = RSE::ARRAY_CUSTOM_RGBA8_SNORM, + CUSTOM_RG_HALF = RSE::ARRAY_CUSTOM_RG_HALF, + CUSTOM_RGBA_HALF = RSE::ARRAY_CUSTOM_RGBA_HALF, + CUSTOM_R_FLOAT = RSE::ARRAY_CUSTOM_R_FLOAT, + CUSTOM_RG_FLOAT = RSE::ARRAY_CUSTOM_RG_FLOAT, + CUSTOM_RGB_FLOAT = RSE::ARRAY_CUSTOM_RGB_FLOAT, + CUSTOM_RGBA_FLOAT = RSE::ARRAY_CUSTOM_RGBA_FLOAT, + CUSTOM_MAX = RSE::ARRAY_CUSTOM_MAX }; enum SkinWeightCount { @@ -167,9 +168,9 @@ private: SkinWeightCount skin_weights = SKIN_4_WEIGHTS; - Color last_custom[RS::ARRAY_CUSTOM_COUNT]; + Color last_custom[RSE::ARRAY_CUSTOM_COUNT]; - CustomFormat last_custom_format[RS::ARRAY_CUSTOM_COUNT]; + CustomFormat last_custom_format[RSE::ARRAY_CUSTOM_COUNT]; void _create_list_from_arrays(Array arr, LocalVector *r_vertex, LocalVector *r_index, uint64_t &lformat); void _create_list(const Ref &p_existing, int p_surface, LocalVector *r_vertex, LocalVector *r_index, uint64_t &lformat); diff --git a/scene/resources/texture_rd.cpp b/scene/resources/texture_rd.cpp index 51b9e08b7a..6fd16c7a1e 100644 --- a/scene/resources/texture_rd.cpp +++ b/scene/resources/texture_rd.cpp @@ -198,22 +198,22 @@ void TextureLayeredRD::_set_texture_rd_rid(RID p_texture_rd_rid) { ERR_FAIL_NULL(RD::get_singleton()); ERR_FAIL_COND(!RD::get_singleton()->texture_is_valid(p_texture_rd_rid)); - RS::TextureLayeredType rs_layer_type; + RSE::TextureLayeredType rs_layer_type; RD::TextureFormat tf = RD::get_singleton()->texture_get_format(p_texture_rd_rid); ERR_FAIL_COND(tf.texture_type != RD::TEXTURE_TYPE_2D_ARRAY && tf.texture_type != RD::TEXTURE_TYPE_CUBE && tf.texture_type != RD::TEXTURE_TYPE_CUBE_ARRAY); ERR_FAIL_COND(tf.depth > 1); switch (layer_type) { case LAYERED_TYPE_2D_ARRAY: { ERR_FAIL_COND(tf.array_layers <= 1); - rs_layer_type = RS::TEXTURE_LAYERED_2D_ARRAY; + rs_layer_type = RSE::TEXTURE_LAYERED_2D_ARRAY; } break; case LAYERED_TYPE_CUBEMAP: { ERR_FAIL_COND(tf.array_layers != 6); - rs_layer_type = RS::TEXTURE_LAYERED_CUBEMAP; + rs_layer_type = RSE::TEXTURE_LAYERED_CUBEMAP; } break; case LAYERED_TYPE_CUBEMAP_ARRAY: { ERR_FAIL_COND((tf.array_layers == 0) || ((tf.array_layers % 6) != 0)); - rs_layer_type = RS::TEXTURE_LAYERED_CUBEMAP_ARRAY; + rs_layer_type = RSE::TEXTURE_LAYERED_CUBEMAP_ARRAY; } break; default: { ERR_FAIL_MSG("Unknown layer type selected"); diff --git a/scene/resources/visual_shader.cpp b/scene/resources/visual_shader.cpp index e52e994772..0ff5e4d8f5 100644 --- a/scene/resources/visual_shader.cpp +++ b/scene/resources/visual_shader.cpp @@ -32,9 +32,10 @@ #include "core/templates/rb_map.h" #include "core/variant/variant_utility.h" +#include "scene/resources/visual_shader_nodes.h" +#include "scene/resources/visual_shader_particle_nodes.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/shader_types.h" -#include "visual_shader_nodes.h" -#include "visual_shader_particle_nodes.h" String make_unique_id(VisualShader::Type p_type, int p_id, const String &p_name) { static const char *typepf[VisualShader::TYPE_MAX] = { "vtx", "frg", "lgt", "start", "process", "collide", "start_custom", "process_custom", "sky", "fog", "texture_blit" }; @@ -1965,7 +1966,7 @@ void VisualShader::_get_property_list(List *p_list) const { HashMap blend_mode_enums; HashSet toggles; - const Vector &rmodes = ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(shader_mode)); + const Vector &rmodes = ShaderTypes::get_singleton()->get_modes(RSE::ShaderMode(shader_mode)); for (int i = 0; i < rmodes.size(); i++) { const ShaderLanguage::ModeInfo &info = rmodes[i]; @@ -2018,7 +2019,7 @@ void VisualShader::_get_property_list(List *p_list) const { p_list->push_back(PropertyInfo(Variant::BOOL, vformat("%s/%s", PNAME("flags"), E))); } - const Vector &smodes = ShaderTypes::get_singleton()->get_stencil_modes(RenderingServer::ShaderMode(shader_mode)); + const Vector &smodes = ShaderTypes::get_singleton()->get_stencil_modes(RSE::ShaderMode(shader_mode)); if (smodes.size() > 0) { p_list->push_back(PropertyInfo(Variant::BOOL, vformat("%s/%s", PNAME("stencil"), PNAME("enabled")), PROPERTY_HINT_GROUP_ENABLE)); @@ -2657,9 +2658,9 @@ Error VisualShader::_write_node(Type type, StringBuilder *p_global_code, StringB return OK; } -bool VisualShader::has_func_name(RenderingServer::ShaderMode p_mode, const String &p_func_name) const { +bool VisualShader::has_func_name(RSE::ShaderMode p_mode, const String &p_func_name) const { if (!ShaderTypes::get_singleton()->get_functions(p_mode).has(p_func_name)) { - if (p_mode == RenderingServer::ShaderMode::SHADER_PARTICLES) { + if (p_mode == RSE::ShaderMode::SHADER_PARTICLES) { if (p_func_name == "start_custom" || p_func_name == "process_custom" || p_func_name == "collide") { return true; } @@ -2691,7 +2692,7 @@ void VisualShader::_update_shader() const { String render_mode; { - const Vector &rmodes = ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(shader_mode)); + const Vector &rmodes = ShaderTypes::get_singleton()->get_modes(RSE::ShaderMode(shader_mode)); Vector flag_names; // Add enum modes first. @@ -2747,7 +2748,7 @@ void VisualShader::_update_shader() const { global_code += "render_mode " + render_mode + ";\n\n"; } - const Vector &smodes = ShaderTypes::get_singleton()->get_stencil_modes(RenderingServer::ShaderMode(shader_mode)); + const Vector &smodes = ShaderTypes::get_singleton()->get_stencil_modes(RSE::ShaderMode(shader_mode)); if (stencil_enabled && smodes.size() > 0 && (stencil_flags.has("read") || stencil_flags.has("write") || stencil_flags.has("write_depth_fail"))) { String stencil_mode; @@ -2803,7 +2804,7 @@ void VisualShader::_update_shader() const { } for (int i = 0, index = 0; i < TYPE_MAX; i++) { - if (!has_func_name(RenderingServer::ShaderMode(shader_mode), func_name[i])) { + if (!has_func_name(RSE::ShaderMode(shader_mode), func_name[i])) { continue; } @@ -2902,7 +2903,7 @@ void VisualShader::_update_shader() const { HashSet empty_funcs; for (int i = 0; i < TYPE_MAX; i++) { - if (!has_func_name(RenderingServer::ShaderMode(shader_mode), func_name[i])) { + if (!has_func_name(RSE::ShaderMode(shader_mode), func_name[i])) { continue; } @@ -3136,7 +3137,7 @@ void VisualShader::_update_shader() const { final_code += global_expressions; String tcode = shader_code; for (int i = 0; i < TYPE_MAX; i++) { - if (!has_func_name(RenderingServer::ShaderMode(shader_mode), func_name[i])) { + if (!has_func_name(RSE::ShaderMode(shader_mode), func_name[i])) { continue; } String func_code = global_code_per_func[Type(i)].as_string(); @@ -4517,63 +4518,63 @@ String VisualShaderNodeParameter::get_warning(Shader::Mode p_mode, VisualShader: } return vformat(RTR("This parameter type does not support the '%s' qualifier."), qualifier_str); } else if (qualifier == Qualifier::QUAL_GLOBAL) { - RS::GlobalShaderParameterType gvt = RS::get_singleton()->global_shader_parameter_get_type(parameter_name); - if (gvt == RS::GLOBAL_VAR_TYPE_MAX) { + RSE::GlobalShaderParameterType gvt = RS::get_singleton()->global_shader_parameter_get_type(parameter_name); + if (gvt == RSE::GLOBAL_VAR_TYPE_MAX) { return vformat(RTR("Global parameter '%s' does not exist.\nCreate it in the Project Settings."), parameter_name); } bool incompatible_type = false; switch (gvt) { - case RS::GLOBAL_VAR_TYPE_FLOAT: { + case RSE::GLOBAL_VAR_TYPE_FLOAT: { if (!Object::cast_to(this)) { incompatible_type = true; } } break; - case RS::GLOBAL_VAR_TYPE_INT: { + case RSE::GLOBAL_VAR_TYPE_INT: { if (!Object::cast_to(this)) { incompatible_type = true; } } break; - case RS::GLOBAL_VAR_TYPE_BOOL: { + case RSE::GLOBAL_VAR_TYPE_BOOL: { if (!Object::cast_to(this)) { incompatible_type = true; } } break; - case RS::GLOBAL_VAR_TYPE_COLOR: { + case RSE::GLOBAL_VAR_TYPE_COLOR: { if (!Object::cast_to(this)) { incompatible_type = true; } } break; - case RS::GLOBAL_VAR_TYPE_VEC3: { + case RSE::GLOBAL_VAR_TYPE_VEC3: { if (!Object::cast_to(this)) { incompatible_type = true; } } break; - case RS::GLOBAL_VAR_TYPE_VEC4: { + case RSE::GLOBAL_VAR_TYPE_VEC4: { if (!Object::cast_to(this)) { incompatible_type = true; } } break; - case RS::GLOBAL_VAR_TYPE_TRANSFORM: { + case RSE::GLOBAL_VAR_TYPE_TRANSFORM: { if (!Object::cast_to(this)) { incompatible_type = true; } } break; - case RS::GLOBAL_VAR_TYPE_SAMPLER2D: { + case RSE::GLOBAL_VAR_TYPE_SAMPLER2D: { if (!Object::cast_to(this)) { incompatible_type = true; } } break; - case RS::GLOBAL_VAR_TYPE_SAMPLER3D: { + case RSE::GLOBAL_VAR_TYPE_SAMPLER3D: { if (!Object::cast_to(this)) { incompatible_type = true; } } break; - case RS::GLOBAL_VAR_TYPE_SAMPLER2DARRAY: { + case RSE::GLOBAL_VAR_TYPE_SAMPLER2DARRAY: { if (!Object::cast_to(this)) { incompatible_type = true; } } break; - case RS::GLOBAL_VAR_TYPE_SAMPLERCUBE: { + case RSE::GLOBAL_VAR_TYPE_SAMPLERCUBE: { if (!Object::cast_to(this)) { incompatible_type = true; } diff --git a/scene/resources/visual_shader.h b/scene/resources/visual_shader.h index 13d0d034b8..7c1a718f6f 100644 --- a/scene/resources/visual_shader.h +++ b/scene/resources/visual_shader.h @@ -163,7 +163,7 @@ private: Error _write_node(Type p_type, StringBuilder *p_global_code, StringBuilder *p_global_code_per_node, HashMap *p_global_code_per_func, StringBuilder &r_code, Vector &r_def_tex_params, const HashMap::Element *> &p_input_connections, int p_node, HashSet &r_processed, bool p_for_preview, HashSet &r_classes) const; void _input_type_changed(Type p_type, int p_id); - bool has_func_name(RenderingServer::ShaderMode p_mode, const String &p_func_name) const; + bool has_func_name(RSE::ShaderMode p_mode, const String &p_func_name) const; bool _check_reroute_subgraph(Type p_type, int p_target_port_type, int p_reroute_node, List *r_visited_reroute_nodes = nullptr) const; diff --git a/scene/resources/visual_shader_nodes.cpp b/scene/resources/visual_shader_nodes.cpp index 0d5fad0894..1ad2c136c9 100644 --- a/scene/resources/visual_shader_nodes.cpp +++ b/scene/resources/visual_shader_nodes.cpp @@ -31,6 +31,8 @@ #include "visual_shader_nodes.h" #include "visual_shader_nodes.compat.inc" +#include "servers/rendering/rendering_server.h" + ////////////// Vector Base VisualShaderNodeVectorBase::PortType VisualShaderNodeVectorBase::get_input_port_type(int p_port) const { diff --git a/scene/theme/theme_db.cpp b/scene/theme/theme_db.cpp index 792bcdf163..c1c16d2163 100644 --- a/scene/theme/theme_db.cpp +++ b/scene/theme/theme_db.cpp @@ -39,6 +39,7 @@ #include "scene/resources/style_box.h" #include "scene/resources/texture.h" #include "scene/theme/default_theme.h" +#include "servers/rendering/rendering_server.h" #include "servers/text/text_server.h" // Default engine theme creation and configuration. diff --git a/servers/debugger/servers_debugger.cpp b/servers/debugger/servers_debugger.cpp index 2ea19ca528..3f443c3602 100644 --- a/servers/debugger/servers_debugger.cpp +++ b/servers/debugger/servers_debugger.cpp @@ -437,13 +437,13 @@ void ServersDebugger::_send_resource_usage() { info.id = E.texture; switch (E.type) { - case RS::TextureType::TEXTURE_TYPE_2D: + case RSE::TextureType::TEXTURE_TYPE_2D: info.type = "Texture2D"; break; - case RS::TextureType::TEXTURE_TYPE_3D: + case RSE::TextureType::TEXTURE_TYPE_3D: info.type = "Texture3D"; break; - case RS::TextureType::TEXTURE_TYPE_LAYERED: + case RSE::TextureType::TEXTURE_TYPE_LAYERED: info.type = "TextureLayered"; break; } diff --git a/servers/rendering/dummy/environment/fog.h b/servers/rendering/dummy/environment/fog.h index 792faf2a6b..c11874407a 100644 --- a/servers/rendering/dummy/environment/fog.h +++ b/servers/rendering/dummy/environment/fog.h @@ -42,11 +42,11 @@ public: virtual void fog_volume_initialize(RID p_rid) override {} virtual void fog_volume_free(RID p_rid) override {} - virtual void fog_volume_set_shape(RID p_fog_volume, RS::FogVolumeShape p_shape) override {} + virtual void fog_volume_set_shape(RID p_fog_volume, RSE::FogVolumeShape p_shape) override {} virtual void fog_volume_set_size(RID p_fog_volume, const Vector3 &p_size) override {} virtual void fog_volume_set_material(RID p_fog_volume, RID p_material) override {} virtual AABB fog_volume_get_aabb(RID p_fog_volume) const override { return AABB(); } - virtual RS::FogVolumeShape fog_volume_get_shape(RID p_fog_volume) const override { return RS::FOG_VOLUME_SHAPE_BOX; } + virtual RSE::FogVolumeShape fog_volume_get_shape(RID p_fog_volume) const override { return RSE::FOG_VOLUME_SHAPE_BOX; } }; } // namespace RendererDummy diff --git a/servers/rendering/dummy/rasterizer_canvas_dummy.h b/servers/rendering/dummy/rasterizer_canvas_dummy.h index 7f4c8a14a8..546e6ea89d 100644 --- a/servers/rendering/dummy/rasterizer_canvas_dummy.h +++ b/servers/rendering/dummy/rasterizer_canvas_dummy.h @@ -37,7 +37,7 @@ public: PolygonID request_polygon(const Vector &p_indices, const Vector &p_points, const Vector &p_colors, const Vector &p_uvs = Vector(), const Vector &p_bones = Vector(), const Vector &p_weights = Vector(), int p_count = -1) override { return 0; } void free_polygon(PolygonID p_polygon) override {} - void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_list, const Transform2D &p_canvas_transform, RS::CanvasItemTextureFilter p_default_filter, RS::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info = nullptr) override {} + void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info = nullptr) override {} RID light_create() override { return RID(); } void light_set_texture(RID p_rid, RID p_texture) override {} @@ -48,14 +48,14 @@ public: void render_sdf(RID p_render_target, LightOccluderInstance *p_occluders) override {} RID occluder_polygon_create() override { return RID(); } void occluder_polygon_set_shape(RID p_occluder, const Vector &p_points, bool p_closed) override {} - void occluder_polygon_set_cull_mode(RID p_occluder, RS::CanvasOccluderPolygonCullMode p_mode) override {} + void occluder_polygon_set_cull_mode(RID p_occluder, RSE::CanvasOccluderPolygonCullMode p_mode) override {} void set_shadow_texture_size(int p_size) override {} bool free(RID p_rid) override { return true; } void update() override {} virtual void set_debug_redraw(bool p_enabled, double p_time, const Color &p_color) override {} - virtual uint32_t get_pipeline_compilations(RS::PipelineSource p_source) override { return 0; } + virtual uint32_t get_pipeline_compilations(RSE::PipelineSource p_source) override { return 0; } RasterizerCanvasDummy() {} ~RasterizerCanvasDummy() {} diff --git a/servers/rendering/dummy/rasterizer_dummy.h b/servers/rendering/dummy/rasterizer_dummy.h index 8ac895740c..12b7a27acf 100644 --- a/servers/rendering/dummy/rasterizer_dummy.h +++ b/servers/rendering/dummy/rasterizer_dummy.h @@ -76,7 +76,7 @@ public: RendererCanvasRender *get_canvas() override { return &canvas; } RendererSceneRender *get_scene() override { return &scene; } - void set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RenderingServer::SplashStretchMode p_stretch_mode, bool p_use_filter = true) override {} + void set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RSE::SplashStretchMode p_stretch_mode, bool p_use_filter = true) override {} void set_boot_image(const Ref &p_image, const Color &p_color, bool p_scale, bool p_use_filter = true) override {} void initialize() override {} diff --git a/servers/rendering/dummy/rasterizer_scene_dummy.h b/servers/rendering/dummy/rasterizer_scene_dummy.h index d89b4b9955..02f74f72dc 100644 --- a/servers/rendering/dummy/rasterizer_scene_dummy.h +++ b/servers/rendering/dummy/rasterizer_scene_dummy.h @@ -67,7 +67,7 @@ public: virtual AABB get_aabb() override { return AABB(); } virtual void clear_light_instances() override {} - virtual void pair_light_instance(const RID p_light_instance, RS::LightType light_type, uint32_t placement_idx) override {} + virtual void pair_light_instance(const RID p_light_instance, RSE::LightType light_type, uint32_t placement_idx) override {} virtual void pair_reflection_probe_instances(const RID *p_reflection_probe_instances, uint32_t p_reflection_probe_instance_count) override {} virtual void pair_decal_instances(const RID *p_decal_instances, uint32_t p_decal_instance_count) override {} virtual void pair_voxel_gi_instances(const RID *p_voxel_gi_instances, uint32_t p_voxel_gi_instance_count) override {} @@ -79,8 +79,8 @@ public: public: RenderGeometryInstance *geometry_instance_create(RID p_base) override { - RS::InstanceType type = RendererDummy::Utilities::get_singleton()->get_base_type(p_base); - ERR_FAIL_COND_V(!((1 << type) & RS::INSTANCE_GEOMETRY_MASK), nullptr); + RSE::InstanceType type = RendererDummy::Utilities::get_singleton()->get_base_type(p_base); + ERR_FAIL_COND_V(!((1 << type) & RSE::INSTANCE_GEOMETRY_MASK), nullptr); GeometryInstanceDummy *ginstance = geometry_instance_alloc.alloc(); @@ -102,7 +102,7 @@ public: /* PIPELINES */ virtual void mesh_generate_pipelines(RID p_mesh, bool p_background_compilation) override {} - virtual uint32_t get_pipeline_compilations(RS::PipelineSource p_source) override { return 0; } + virtual uint32_t get_pipeline_compilations(RSE::PipelineSource p_source) override { return 0; } /* SDFGI UPDATE */ @@ -116,7 +116,7 @@ public: RID sky_allocate() override { return RID(); } void sky_initialize(RID p_rid) override {} void sky_set_radiance_size(RID p_sky, int p_radiance_size) override {} - void sky_set_mode(RID p_sky, RS::SkyMode p_samples) override {} + void sky_set_mode(RID p_sky, RSE::SkyMode p_samples) override {} void sky_set_material(RID p_sky, RID p_material) override {} Ref sky_bake_panorama(RID p_sky, float p_energy, bool p_bake_irradiance, const Size2i &p_size) override { return Ref(); } @@ -125,23 +125,23 @@ public: void environment_glow_set_use_bicubic_upscale(bool p_enable) override {} void environment_set_ssr_half_size(bool p_half_size) override {} - void environment_set_ssr_roughness_quality(RS::EnvironmentSSRRoughnessQuality p_quality) override {} + void environment_set_ssr_roughness_quality(RSE::EnvironmentSSRRoughnessQuality p_quality) override {} - void environment_set_ssao_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override {} + void environment_set_ssao_quality(RSE::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override {} - void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override {} + void environment_set_ssil_quality(RSE::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override {} - void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) override {} - void environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) override {} - void environment_set_sdfgi_frames_to_update_light(RS::EnvironmentSDFGIFramesToUpdateLight p_update) override {} + void environment_set_sdfgi_ray_count(RSE::EnvironmentSDFGIRayCount p_ray_count) override {} + void environment_set_sdfgi_frames_to_converge(RSE::EnvironmentSDFGIFramesToConverge p_frames) override {} + void environment_set_sdfgi_frames_to_update_light(RSE::EnvironmentSDFGIFramesToUpdateLight p_update) override {} void environment_set_volumetric_fog_volume_size(int p_size, int p_depth) override {} void environment_set_volumetric_fog_filter_active(bool p_enable) override {} Ref environment_bake_panorama(RID p_env, bool p_bake_irradiance, const Size2i &p_size) override { return Ref(); } - void positional_soft_shadow_filter_set_quality(RS::ShadowQuality p_quality) override {} - void directional_soft_shadow_filter_set_quality(RS::ShadowQuality p_quality) override {} + void positional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) override {} + void directional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) override {} RID fog_volume_instance_create(RID p_fog_volume) override { return RID(); } void fog_volume_instance_set_transform(RID p_fog_volume_instance, const Transform3D &p_transform) override {} @@ -154,7 +154,7 @@ public: bool voxel_gi_needs_update(RID p_probe) const override { return false; } void voxel_gi_update(RID p_probe, bool p_update_light_instances, const Vector &p_light_instances, const PagedArray &p_dynamic_objects) override {} - void voxel_gi_set_quality(RS::VoxelGIQuality) override {} + void voxel_gi_set_quality(RSE::VoxelGIQuality) override {} void render_scene(const Ref &p_render_buffers, const CameraData *p_camera_data, const CameraData *p_prev_camera_data, const PagedArray &p_instances, const PagedArray &p_lights, const PagedArray &p_reflection_probes, const PagedArray &p_voxel_gi_instances, const PagedArray &p_decals, const PagedArray &p_lightmaps, const PagedArray &p_fog_volumes, RID p_environment, RID p_camera_attributes, RID p_compositor, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, float p_window_output_max_value, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RenderingMethod::RenderInfo *r_info = nullptr) override {} void render_material(const Transform3D &p_cam_transform, const Projection &p_cam_projection, bool p_cam_orthogonal, const PagedArray &p_instances, RID p_framebuffer, const Rect2i &p_region) override {} @@ -162,7 +162,7 @@ public: void set_scene_pass(uint64_t p_pass) override {} void set_time(double p_time, double p_step) override {} - void set_debug_draw_mode(RS::ViewportDebugDraw p_debug_draw) override {} + void set_debug_draw_mode(RSE::ViewportDebugDraw p_debug_draw) override {} Ref render_buffers_create() override { return Ref(); } void gi_set_use_half_resolution(bool p_enable) override {} @@ -170,7 +170,7 @@ public: void screen_space_roughness_limiter_set_active(bool p_enable, float p_amount, float p_curve) override {} bool screen_space_roughness_limiter_is_active() const override { return false; } - void sub_surface_scattering_set_quality(RS::SubSurfaceScatteringQuality p_quality) override {} + void sub_surface_scattering_set_quality(RSE::SubSurfaceScatteringQuality p_quality) override {} void sub_surface_scattering_set_scale(float p_scale, float p_depth_scale) override {} TypedArray bake_render_uv2(RID p_base, const TypedArray &p_material_overrides, const Size2i &p_image_size) override { return TypedArray(); } @@ -195,8 +195,8 @@ public: void update() override {} void sdfgi_set_debug_probe_select(const Vector3 &p_position, const Vector3 &p_dir) override {} - virtual void decals_set_filter(RS::DecalFilter p_filter) override {} - virtual void light_projectors_set_filter(RS::LightProjectorFilter p_filter) override {} + virtual void decals_set_filter(RSE::DecalFilter p_filter) override {} + virtual void light_projectors_set_filter(RSE::LightProjectorFilter p_filter) override {} virtual void lightmaps_set_bicubic_filter(bool p_enable) override {} virtual void material_set_use_debanding(bool p_enable) override {} diff --git a/servers/rendering/dummy/storage/light_storage.h b/servers/rendering/dummy/storage/light_storage.h index 77b1b6daa4..205b008eb0 100644 --- a/servers/rendering/dummy/storage/light_storage.h +++ b/servers/rendering/dummy/storage/light_storage.h @@ -72,7 +72,7 @@ public: virtual void light_free(RID p_rid) override {} virtual void light_set_color(RID p_light, const Color &p_color) override {} - virtual void light_set_param(RID p_light, RS::LightParam p_param, float p_value) override {} + virtual void light_set_param(RID p_light, RSE::LightParam p_param, float p_value) override {} virtual void light_set_shadow(RID p_light, bool p_enabled) override {} virtual void light_set_projector(RID p_light, RID p_texture) override {} virtual void light_set_negative(RID p_light, bool p_enable) override {} @@ -81,29 +81,29 @@ public: virtual void light_set_reverse_cull_face_mode(RID p_light, bool p_enabled) override {} virtual void light_set_shadow_caster_mask(RID p_light, uint32_t p_caster_mask) override {} virtual uint32_t light_get_shadow_caster_mask(RID p_light) const override { return 0xFFFFFFFF; } - virtual void light_set_bake_mode(RID p_light, RS::LightBakeMode p_bake_mode) override {} + virtual void light_set_bake_mode(RID p_light, RSE::LightBakeMode p_bake_mode) override {} virtual void light_set_max_sdfgi_cascade(RID p_light, uint32_t p_cascade) override {} - virtual void light_omni_set_shadow_mode(RID p_light, RS::LightOmniShadowMode p_mode) override {} + virtual void light_omni_set_shadow_mode(RID p_light, RSE::LightOmniShadowMode p_mode) override {} - virtual void light_directional_set_shadow_mode(RID p_light, RS::LightDirectionalShadowMode p_mode) override {} + virtual void light_directional_set_shadow_mode(RID p_light, RSE::LightDirectionalShadowMode p_mode) override {} virtual void light_directional_set_blend_splits(RID p_light, bool p_enable) override {} virtual bool light_directional_get_blend_splits(RID p_light) const override { return false; } - virtual void light_directional_set_sky_mode(RID p_light, RS::LightDirectionalSkyMode p_mode) override {} - virtual RS::LightDirectionalSkyMode light_directional_get_sky_mode(RID p_light) const override { return RS::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY; } + virtual void light_directional_set_sky_mode(RID p_light, RSE::LightDirectionalSkyMode p_mode) override {} + virtual RSE::LightDirectionalSkyMode light_directional_get_sky_mode(RID p_light) const override { return RSE::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY; } - virtual RS::LightDirectionalShadowMode light_directional_get_shadow_mode(RID p_light) override { return RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL; } - virtual RS::LightOmniShadowMode light_omni_get_shadow_mode(RID p_light) override { return RS::LIGHT_OMNI_SHADOW_DUAL_PARABOLOID; } + virtual RSE::LightDirectionalShadowMode light_directional_get_shadow_mode(RID p_light) override { return RSE::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL; } + virtual RSE::LightOmniShadowMode light_omni_get_shadow_mode(RID p_light) override { return RSE::LIGHT_OMNI_SHADOW_DUAL_PARABOLOID; } virtual bool light_has_shadow(RID p_light) const override { return false; } virtual bool light_has_projector(RID p_light) const override { return false; } - virtual RS::LightType light_get_type(RID p_light) const override { return RS::LIGHT_OMNI; } + virtual RSE::LightType light_get_type(RID p_light) const override { return RSE::LIGHT_OMNI; } virtual AABB light_get_aabb(RID p_light) const override { return AABB(); } - virtual float light_get_param(RID p_light, RS::LightParam p_param) override { return 0.0; } + virtual float light_get_param(RID p_light, RSE::LightParam p_param) override { return 0.0; } virtual Color light_get_color(RID p_light) override { return Color(); } virtual bool light_get_reverse_cull_face_mode(RID p_light) const override { return false; } - virtual RS::LightBakeMode light_get_bake_mode(RID p_light) override { return RS::LIGHT_BAKE_DISABLED; } + virtual RSE::LightBakeMode light_get_bake_mode(RID p_light) override { return RSE::LIGHT_BAKE_DISABLED; } virtual uint32_t light_get_max_sdfgi_cascade(RID p_light) override { return 0; } virtual uint64_t light_get_version(RID p_light) const override { return 0; } virtual uint32_t light_get_cull_mask(RID p_light) const override { return 0; } @@ -123,10 +123,10 @@ public: virtual void reflection_probe_initialize(RID p_rid) override {} virtual void reflection_probe_free(RID p_rid) override {} - virtual void reflection_probe_set_update_mode(RID p_probe, RS::ReflectionProbeUpdateMode p_mode) override {} + virtual void reflection_probe_set_update_mode(RID p_probe, RSE::ReflectionProbeUpdateMode p_mode) override {} virtual void reflection_probe_set_intensity(RID p_probe, float p_intensity) override {} virtual void reflection_probe_set_blend_distance(RID p_probe, float p_blend_distance) override {} - virtual void reflection_probe_set_ambient_mode(RID p_probe, RS::ReflectionProbeAmbientMode p_mode) override {} + virtual void reflection_probe_set_ambient_mode(RID p_probe, RSE::ReflectionProbeAmbientMode p_mode) override {} virtual void reflection_probe_set_ambient_color(RID p_probe, const Color &p_color) override {} virtual void reflection_probe_set_ambient_energy(RID p_probe, float p_energy) override {} virtual void reflection_probe_set_max_distance(RID p_probe, float p_distance) override {} @@ -142,7 +142,7 @@ public: virtual float reflection_probe_get_mesh_lod_threshold(RID p_probe) const override { return 0.0; } virtual AABB reflection_probe_get_aabb(RID p_probe) const override { return AABB(); } - virtual RS::ReflectionProbeUpdateMode reflection_probe_get_update_mode(RID p_probe) const override { return RenderingServer::REFLECTION_PROBE_UPDATE_ONCE; } + virtual RSE::ReflectionProbeUpdateMode reflection_probe_get_update_mode(RID p_probe) const override { return RSE::REFLECTION_PROBE_UPDATE_ONCE; } virtual uint32_t reflection_probe_get_cull_mask(RID p_probe) const override { return 0; } virtual uint32_t reflection_probe_get_reflection_mask(RID p_probe) const override { return 0; } virtual Vector3 reflection_probe_get_size(RID p_probe) const override { return Vector3(); } @@ -195,8 +195,8 @@ public: virtual float lightmap_get_probe_capture_update_speed() const override { return 0; } virtual void lightmap_set_shadowmask_textures(RID p_lightmap, RID p_shadow) override {} - virtual RS::ShadowmaskMode lightmap_get_shadowmask_mode(RID p_lightmap) override { return RS::SHADOWMASK_MODE_NONE; } - virtual void lightmap_set_shadowmask_mode(RID p_lightmap, RS::ShadowmaskMode p_mode) override {} + virtual RSE::ShadowmaskMode lightmap_get_shadowmask_mode(RID p_lightmap) override { return RSE::SHADOWMASK_MODE_NONE; } + virtual void lightmap_set_shadowmask_mode(RID p_lightmap, RSE::ShadowmaskMode p_mode) override {} /* LIGHTMAP INSTANCE */ diff --git a/servers/rendering/dummy/storage/material_storage.cpp b/servers/rendering/dummy/storage/material_storage.cpp index eaf517b9f9..c5aee0fe59 100644 --- a/servers/rendering/dummy/storage/material_storage.cpp +++ b/servers/rendering/dummy/storage/material_storage.cpp @@ -47,7 +47,7 @@ MaterialStorage::~MaterialStorage() { global_shader_variables.clear(); } -void MaterialStorage::global_shader_parameter_add(const StringName &p_name, RS::GlobalShaderParameterType p_type, const Variant &p_value) { +void MaterialStorage::global_shader_parameter_add(const StringName &p_name, RSE::GlobalShaderParameterType p_type, const Variant &p_value) { ERR_FAIL_COND(global_shader_variables.has(p_name)); global_shader_variables[p_name] = p_type; @@ -63,17 +63,17 @@ void MaterialStorage::global_shader_parameter_remove(const StringName &p_name) { Vector MaterialStorage::global_shader_parameter_get_list() const { Vector names; - for (const KeyValue &E : global_shader_variables) { + for (const KeyValue &E : global_shader_variables) { names.push_back(E.key); } names.sort_custom(); return names; } -RS::GlobalShaderParameterType MaterialStorage::global_shader_parameter_get_type(const StringName &p_name) const { +RSE::GlobalShaderParameterType MaterialStorage::global_shader_parameter_get_type(const StringName &p_name) const { if (!global_shader_variables.has(p_name)) { print_line("don't have name, sorry"); - return RS::GLOBAL_VAR_TYPE_MAX; + return RSE::GLOBAL_VAR_TYPE_MAX; } return global_shader_variables[p_name]; @@ -93,7 +93,7 @@ void MaterialStorage::global_shader_parameters_load_settings(bool p_load_texture String type = d["type"]; - static const char *global_var_type_names[RS::GLOBAL_VAR_TYPE_MAX] = { + static const char *global_var_type_names[RSE::GLOBAL_VAR_TYPE_MAX] = { "bool", "bvec2", "bvec3", @@ -125,16 +125,16 @@ void MaterialStorage::global_shader_parameters_load_settings(bool p_load_texture "samplerExternalOES" }; - RS::GlobalShaderParameterType gvtype = RS::GLOBAL_VAR_TYPE_MAX; + RSE::GlobalShaderParameterType gvtype = RSE::GLOBAL_VAR_TYPE_MAX; - for (int i = 0; i < RS::GLOBAL_VAR_TYPE_MAX; i++) { + for (int i = 0; i < RSE::GLOBAL_VAR_TYPE_MAX; i++) { if (global_var_type_names[i] == type) { - gvtype = RS::GlobalShaderParameterType(i); + gvtype = RSE::GlobalShaderParameterType(i); break; } } - ERR_CONTINUE(gvtype == RS::GLOBAL_VAR_TYPE_MAX); //type invalid + ERR_CONTINUE(gvtype == RSE::GLOBAL_VAR_TYPE_MAX); //type invalid if (!global_shader_variables.has(name)) { global_shader_parameter_add(name, gvtype, Variant()); @@ -167,21 +167,21 @@ void MaterialStorage::shader_set_code(RID p_shader, const String &p_code) { String mode_string = ShaderLanguage::get_shader_type(p_code); - RS::ShaderMode new_mode; + RSE::ShaderMode new_mode; if (mode_string == "canvas_item") { - new_mode = RS::SHADER_CANVAS_ITEM; + new_mode = RSE::SHADER_CANVAS_ITEM; } else if (mode_string == "particles") { - new_mode = RS::SHADER_PARTICLES; + new_mode = RSE::SHADER_PARTICLES; } else if (mode_string == "spatial") { - new_mode = RS::SHADER_SPATIAL; + new_mode = RSE::SHADER_SPATIAL; } else if (mode_string == "sky") { - new_mode = RS::SHADER_SKY; + new_mode = RSE::SHADER_SKY; } else if (mode_string == "fog") { - new_mode = RS::SHADER_FOG; + new_mode = RSE::SHADER_FOG; } else if (mode_string == "texture_blit") { - new_mode = RS::SHADER_TEXTURE_BLIT; + new_mode = RSE::SHADER_TEXTURE_BLIT; } else { - new_mode = RS::SHADER_MAX; + new_mode = RSE::SHADER_MAX; ERR_FAIL_MSG("Shader type " + mode_string + " not supported in Dummy renderer."); } ShaderCompiler::IdentifierActions actions; diff --git a/servers/rendering/dummy/storage/material_storage.h b/servers/rendering/dummy/storage/material_storage.h index 2c54da2cd2..2622716f96 100644 --- a/servers/rendering/dummy/storage/material_storage.h +++ b/servers/rendering/dummy/storage/material_storage.h @@ -43,7 +43,7 @@ class MaterialStorage : public RendererMaterialStorage { private: static MaterialStorage *singleton; - HashMap global_shader_variables; + HashMap global_shader_variables; struct DummyShader { HashMap uniforms; @@ -69,14 +69,14 @@ public: /* GLOBAL SHADER UNIFORM API */ - virtual void global_shader_parameter_add(const StringName &p_name, RS::GlobalShaderParameterType p_type, const Variant &p_value) override; + virtual void global_shader_parameter_add(const StringName &p_name, RSE::GlobalShaderParameterType p_type, const Variant &p_value) override; virtual void global_shader_parameter_remove(const StringName &p_name) override; virtual Vector global_shader_parameter_get_list() const override; virtual void global_shader_parameter_set(const StringName &p_name, const Variant &p_value) override {} virtual void global_shader_parameter_set_override(const StringName &p_name, const Variant &p_value) override {} virtual Variant global_shader_parameter_get(const StringName &p_name) const override { return Variant(); } - virtual RS::GlobalShaderParameterType global_shader_parameter_get_type(const StringName &p_name) const override; + virtual RSE::GlobalShaderParameterType global_shader_parameter_get_type(const StringName &p_name) const override; virtual void global_shader_parameters_load_settings(bool p_load_textures = true) override; virtual void global_shader_parameters_clear() override {} @@ -126,7 +126,7 @@ public: virtual bool material_is_animated(RID p_material) override { return false; } virtual bool material_casts_shadows(RID p_material) override { return false; } - virtual RS::CullMode material_get_cull_mode(RID p_material) const override { return RS::CULL_MODE_DISABLED; } + virtual RSE::CullMode material_get_cull_mode(RID p_material) const override { return RSE::CULL_MODE_DISABLED; } virtual void material_get_instance_shader_parameters(RID p_material, List *r_parameters) override; virtual void material_update_dependency(RID p_material, DependencyTracker *p_instance) override {} diff --git a/servers/rendering/dummy/storage/mesh_storage.h b/servers/rendering/dummy/storage/mesh_storage.h index 0871c91ade..2e86112c05 100644 --- a/servers/rendering/dummy/storage/mesh_storage.h +++ b/servers/rendering/dummy/storage/mesh_storage.h @@ -38,7 +38,7 @@ namespace RendererDummy { struct DummyMesh { Vector surfaces; int blend_shape_count; - RS::BlendShapeMode blend_shape_mode; + RSE::BlendShapeMode blend_shape_mode; PackedFloat32Array blend_shape_values; Dependency dependency; }; @@ -105,15 +105,15 @@ public: return m->blend_shape_count; } - virtual void mesh_set_blend_shape_mode(RID p_mesh, RS::BlendShapeMode p_mode) override { + virtual void mesh_set_blend_shape_mode(RID p_mesh, RSE::BlendShapeMode p_mode) override { DummyMesh *m = mesh_owner.get_or_null(p_mesh); ERR_FAIL_NULL(m); m->blend_shape_mode = p_mode; } - virtual RS::BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const override { + virtual RSE::BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const override { DummyMesh *m = mesh_owner.get_or_null(p_mesh); - ERR_FAIL_NULL_V(m, RS::BLEND_SHAPE_MODE_NORMALIZED); + ERR_FAIL_NULL_V(m, RSE::BLEND_SHAPE_MODE_NORMALIZED); return m->blend_shape_mode; } @@ -171,7 +171,7 @@ public: virtual void _multimesh_initialize(RID p_rid) override; virtual void _multimesh_free(RID p_rid) override; - virtual void _multimesh_allocate_data(RID p_multimesh, int p_instances, RS::MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false, bool p_use_indirect = false) override {} + virtual void _multimesh_allocate_data(RID p_multimesh, int p_instances, RSE::MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false, bool p_use_indirect = false) override {} virtual int _multimesh_get_instance_count(RID p_multimesh) const override { return 0; } virtual void _multimesh_set_mesh(RID p_multimesh, RID p_mesh) override {} diff --git a/servers/rendering/dummy/storage/particles_storage.h b/servers/rendering/dummy/storage/particles_storage.h index e3e7d6aa06..acf5d673fb 100644 --- a/servers/rendering/dummy/storage/particles_storage.h +++ b/servers/rendering/dummy/storage/particles_storage.h @@ -42,7 +42,7 @@ public: virtual void particles_initialize(RID p_rid) override {} virtual void particles_free(RID p_rid) override {} - virtual void particles_set_mode(RID p_particles, RS::ParticlesMode p_mode) override {} + virtual void particles_set_mode(RID p_particles, RSE::ParticlesMode p_mode) override {} virtual void particles_emit(RID p_particles, const Transform3D &p_transform, const Vector3 &p_velocity, const Color &p_color, const Color &p_custom, uint32_t p_emit_flags) override {} virtual void particles_set_emitting(RID p_particles, bool p_emitting) override {} virtual void particles_set_amount(RID p_particles, int p_amount) override {} @@ -66,14 +66,14 @@ public: virtual void particles_set_view_axis(RID p_particles, const Vector3 &p_axis, const Vector3 &p_up_axis) override {} virtual void particles_set_collision_base_size(RID p_particles, real_t p_size) override {} - virtual void particles_set_transform_align(RID p_particles, RS::ParticlesTransformAlign p_transform_align) override {} + virtual void particles_set_transform_align(RID p_particles, RSE::ParticlesTransformAlign p_transform_align) override {} virtual void particles_set_trails(RID p_particles, bool p_enable, double p_length) override {} virtual void particles_set_trail_bind_poses(RID p_particles, const Vector &p_bind_poses) override {} virtual void particles_restart(RID p_particles) override {} - virtual void particles_set_draw_order(RID p_particles, RS::ParticlesDrawOrder p_order) override {} + virtual void particles_set_draw_order(RID p_particles, RSE::ParticlesDrawOrder p_order) override {} virtual void particles_set_draw_passes(RID p_particles, int p_count) override {} virtual void particles_set_draw_pass_mesh(RID p_particles, int p_pass, RID p_mesh) override {} @@ -101,7 +101,7 @@ public: virtual void particles_collision_initialize(RID p_rid) override {} virtual void particles_collision_free(RID p_rid) override {} - virtual void particles_collision_set_collision_type(RID p_particles_collision, RS::ParticlesCollisionType p_type) override {} + virtual void particles_collision_set_collision_type(RID p_particles_collision, RSE::ParticlesCollisionType p_type) override {} virtual void particles_collision_set_cull_mask(RID p_particles_collision, uint32_t p_cull_mask) override {} virtual void particles_collision_set_sphere_radius(RID p_particles_collision, real_t p_radius) override {} virtual void particles_collision_set_box_extents(RID p_particles_collision, const Vector3 &p_extents) override {} @@ -110,7 +110,7 @@ public: virtual void particles_collision_set_attractor_attenuation(RID p_particles_collision, real_t p_curve) override {} virtual void particles_collision_set_field_texture(RID p_particles_collision, RID p_texture) override {} virtual void particles_collision_height_field_update(RID p_particles_collision) override {} - virtual void particles_collision_set_height_field_resolution(RID p_particles_collision, RS::ParticlesCollisionHeightfieldResolution p_resolution) override {} + virtual void particles_collision_set_height_field_resolution(RID p_particles_collision, RSE::ParticlesCollisionHeightfieldResolution p_resolution) override {} virtual AABB particles_collision_get_aabb(RID p_particles_collision) const override { return AABB(); } virtual bool particles_collision_is_heightfield(RID p_particles_collision) const override { return false; } virtual uint32_t particles_collision_get_height_field_mask(RID p_particles_collision) const override { return 0; } diff --git a/servers/rendering/dummy/storage/texture_storage.h b/servers/rendering/dummy/storage/texture_storage.h index 5b3e024cbe..86f7ed7025 100644 --- a/servers/rendering/dummy/storage/texture_storage.h +++ b/servers/rendering/dummy/storage/texture_storage.h @@ -55,11 +55,11 @@ public: virtual void canvas_texture_initialize(RID p_rid) override {} virtual void canvas_texture_free(RID p_rid) override {} - virtual void canvas_texture_set_channel(RID p_canvas_texture, RS::CanvasTextureChannel p_channel, RID p_texture) override {} + virtual void canvas_texture_set_channel(RID p_canvas_texture, RSE::CanvasTextureChannel p_channel, RID p_texture) override {} virtual void canvas_texture_set_shading_parameters(RID p_canvas_texture, const Color &p_base_color, float p_shininess) override {} - virtual void canvas_texture_set_texture_filter(RID p_item, RS::CanvasItemTextureFilter p_filter) override {} - virtual void canvas_texture_set_texture_repeat(RID p_item, RS::CanvasItemTextureRepeat p_repeat) override {} + virtual void canvas_texture_set_texture_filter(RID p_item, RSE::CanvasItemTextureFilter p_filter) override {} + virtual void canvas_texture_set_texture_repeat(RID p_item, RSE::CanvasItemTextureRepeat p_repeat) override {} /* Texture API */ @@ -84,13 +84,13 @@ public: ERR_FAIL_NULL(t); t->image = p_image->duplicate(); } - virtual void texture_2d_layered_initialize(RID p_texture, const Vector> &p_layers, RS::TextureLayeredType p_layered_type) override {} + virtual void texture_2d_layered_initialize(RID p_texture, const Vector> &p_layers, RSE::TextureLayeredType p_layered_type) override {} virtual void texture_3d_initialize(RID p_texture, Image::Format, int p_width, int p_height, int p_depth, bool p_mipmaps, const Vector> &p_data) override {} virtual void texture_external_initialize(RID p_texture, int p_width, int p_height, uint64_t p_external_buffer) override {} virtual void texture_proxy_initialize(RID p_texture, RID p_base) override {} //all slices, then all the mipmaps, must be coherent - virtual void texture_drawable_initialize(RID p_texture, int p_width, int p_height, RS::TextureDrawableFormat p_format, const Color &p_color, bool p_with_mipmaps) override {} + virtual void texture_drawable_initialize(RID p_texture, int p_width, int p_height, RSE::TextureDrawableFormat p_format, const Color &p_color, bool p_with_mipmaps) override {} - virtual RID texture_create_from_native_handle(RS::TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers = 1, RS::TextureLayeredType p_layered_type = RS::TEXTURE_LAYERED_2D_ARRAY) override { return RID(); } + virtual RID texture_create_from_native_handle(RSE::TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers = 1, RSE::TextureLayeredType p_layered_type = RSE::TEXTURE_LAYERED_2D_ARRAY) override { return RID(); } virtual void texture_2d_update(RID p_texture, const Ref &p_image, int p_layer = 0) override {} virtual void texture_3d_update(RID p_texture, const Vector> &p_data) override {} @@ -101,7 +101,7 @@ public: //these two APIs can be used together or in combination with the others. virtual void texture_2d_placeholder_initialize(RID p_texture) override {} - virtual void texture_2d_layered_placeholder_initialize(RID p_texture, RenderingServer::TextureLayeredType p_layered_type) override {} + virtual void texture_2d_layered_placeholder_initialize(RID p_texture, RSE::TextureLayeredType p_layered_type) override {} virtual void texture_3d_placeholder_initialize(RID p_texture) override {} virtual Ref texture_2d_get(RID p_texture) const override { @@ -133,7 +133,7 @@ public: virtual Size2 texture_size_with_proxy(RID p_proxy) override { return Size2(); } - virtual void texture_rd_initialize(RID p_texture, const RID &p_rd_texture, const RS::TextureLayeredType p_layer_type = RS::TEXTURE_LAYERED_2D_ARRAY) override {} + virtual void texture_rd_initialize(RID p_texture, const RID &p_rd_texture, const RSE::TextureLayeredType p_layer_type = RSE::TEXTURE_LAYERED_2D_ARRAY) override {} virtual RID texture_get_rd_texture(RID p_texture, bool p_srgb = false) const override { return RID(); } virtual uint64_t texture_get_native_handle(RID p_texture, bool p_srgb = false) const override { return 0; } @@ -143,7 +143,7 @@ public: virtual void decal_free(RID p_rid) override {} virtual void decal_set_size(RID p_decal, const Vector3 &p_size) override {} - virtual void decal_set_texture(RID p_decal, RS::DecalTexture p_type, RID p_texture) override {} + virtual void decal_set_texture(RID p_decal, RSE::DecalTexture p_type, RID p_texture) override {} virtual void decal_set_emission_energy(RID p_decal, float p_energy) override {} virtual void decal_set_albedo_mix(RID p_decal, float p_mix) override {} virtual void decal_set_modulate(RID p_decal, const Color &p_modulate) override {} @@ -179,8 +179,8 @@ public: virtual bool render_target_get_direct_to_screen(RID p_render_target) const override { return false; } virtual bool render_target_was_used(RID p_render_target) const override { return false; } virtual void render_target_set_as_unused(RID p_render_target) override {} - virtual void render_target_set_msaa(RID p_render_target, RS::ViewportMSAA p_msaa) override {} - virtual RS::ViewportMSAA render_target_get_msaa(RID p_render_target) const override { return RS::VIEWPORT_MSAA_DISABLED; } + virtual void render_target_set_msaa(RID p_render_target, RSE::ViewportMSAA p_msaa) override {} + virtual RSE::ViewportMSAA render_target_get_msaa(RID p_render_target) const override { return RSE::VIEWPORT_MSAA_DISABLED; } virtual void render_target_set_msaa_needs_resolve(RID p_render_target, bool p_needs_resolve) override {} virtual bool render_target_get_msaa_needs_resolve(RID p_render_target) const override { return false; } virtual void render_target_do_msaa_resolve(RID p_render_target) override {} @@ -195,14 +195,14 @@ public: virtual void render_target_disable_clear_request(RID p_render_target) override {} virtual void render_target_do_clear_request(RID p_render_target) override {} - virtual void render_target_set_sdf_size_and_scale(RID p_render_target, RS::ViewportSDFOversize p_size, RS::ViewportSDFScale p_scale) override {} + virtual void render_target_set_sdf_size_and_scale(RID p_render_target, RSE::ViewportSDFOversize p_size, RSE::ViewportSDFScale p_scale) override {} virtual Rect2i render_target_get_sdf_rect(RID p_render_target) const override { return Rect2i(); } virtual void render_target_mark_sdf_enabled(RID p_render_target, bool p_enabled) override {} - virtual void render_target_set_vrs_mode(RID p_render_target, RS::ViewportVRSMode p_mode) override {} - virtual RS::ViewportVRSMode render_target_get_vrs_mode(RID p_render_target) const override { return RS::VIEWPORT_VRS_DISABLED; } - virtual void render_target_set_vrs_update_mode(RID p_render_target, RS::ViewportVRSUpdateMode p_mode) override {} - virtual RS::ViewportVRSUpdateMode render_target_get_vrs_update_mode(RID p_render_target) const override { return RS::VIEWPORT_VRS_UPDATE_DISABLED; } + virtual void render_target_set_vrs_mode(RID p_render_target, RSE::ViewportVRSMode p_mode) override {} + virtual RSE::ViewportVRSMode render_target_get_vrs_mode(RID p_render_target) const override { return RSE::VIEWPORT_VRS_DISABLED; } + virtual void render_target_set_vrs_update_mode(RID p_render_target, RSE::ViewportVRSUpdateMode p_mode) override {} + virtual RSE::ViewportVRSUpdateMode render_target_get_vrs_update_mode(RID p_render_target) const override { return RSE::VIEWPORT_VRS_UPDATE_DISABLED; } virtual void render_target_set_vrs_texture(RID p_render_target, RID p_texture) override {} virtual RID render_target_get_vrs_texture(RID p_render_target) const override { return RID(); } diff --git a/servers/rendering/dummy/storage/utilities.cpp b/servers/rendering/dummy/storage/utilities.cpp index 680a0d3f21..2d6babec51 100644 --- a/servers/rendering/dummy/storage/utilities.cpp +++ b/servers/rendering/dummy/storage/utilities.cpp @@ -39,15 +39,15 @@ using namespace RendererDummy; Utilities *Utilities::singleton = nullptr; -RS::InstanceType Utilities::get_base_type(RID p_rid) const { +RSE::InstanceType Utilities::get_base_type(RID p_rid) const { if (RendererDummy::MeshStorage::get_singleton()->owns_mesh(p_rid)) { - return RS::INSTANCE_MESH; + return RSE::INSTANCE_MESH; } else if (RendererDummy::MeshStorage::get_singleton()->owns_multimesh(p_rid)) { - return RS::INSTANCE_MULTIMESH; + return RSE::INSTANCE_MULTIMESH; } else if (RendererDummy::LightStorage::get_singleton()->owns_lightmap(p_rid)) { - return RS::INSTANCE_LIGHTMAP; + return RSE::INSTANCE_LIGHTMAP; } - return RS::INSTANCE_NONE; + return RSE::INSTANCE_NONE; } bool Utilities::free(RID p_rid) { diff --git a/servers/rendering/dummy/storage/utilities.h b/servers/rendering/dummy/storage/utilities.h index b218a5e645..d36775acd6 100644 --- a/servers/rendering/dummy/storage/utilities.h +++ b/servers/rendering/dummy/storage/utilities.h @@ -46,7 +46,7 @@ public: /* INSTANCES */ - virtual RS::InstanceType get_base_type(RID p_rid) const override; + virtual RSE::InstanceType get_base_type(RID p_rid) const override; virtual bool free(RID p_rid) override; /* DEPENDENCIES */ @@ -86,7 +86,7 @@ public: virtual void update_memory_info() override {} - virtual uint64_t get_rendering_info(RS::RenderingInfo p_info) override { return 0; } + virtual uint64_t get_rendering_info(RSE::RenderingInfo p_info) override { return 0; } virtual String get_video_adapter_name() const override { return String(); } virtual String get_video_adapter_vendor() const override { return String(); } virtual RenderingDeviceEnums::DeviceType get_video_adapter_type() const override { return RenderingDeviceEnums::DeviceType::DEVICE_TYPE_OTHER; } diff --git a/servers/rendering/environment/renderer_fog.h b/servers/rendering/environment/renderer_fog.h index be50e5bc34..334e562990 100644 --- a/servers/rendering/environment/renderer_fog.h +++ b/servers/rendering/environment/renderer_fog.h @@ -42,9 +42,9 @@ public: virtual void fog_volume_initialize(RID p_rid) = 0; virtual void fog_volume_free(RID p_rid) = 0; - virtual void fog_volume_set_shape(RID p_fog_volume, RS::FogVolumeShape p_shape) = 0; + virtual void fog_volume_set_shape(RID p_fog_volume, RSE::FogVolumeShape p_shape) = 0; virtual void fog_volume_set_size(RID p_fog_volume, const Vector3 &p_size) = 0; virtual void fog_volume_set_material(RID p_fog_volume, RID p_material) = 0; virtual AABB fog_volume_get_aabb(RID p_fog_volume) const = 0; - virtual RS::FogVolumeShape fog_volume_get_shape(RID p_fog_volume) const = 0; + virtual RSE::FogVolumeShape fog_volume_get_shape(RID p_fog_volume) const = 0; }; diff --git a/servers/rendering/renderer_canvas_cull.cpp b/servers/rendering/renderer_canvas_cull.cpp index 1ec188c4df..43f236dd86 100644 --- a/servers/rendering/renderer_canvas_cull.cpp +++ b/servers/rendering/renderer_canvas_cull.cpp @@ -67,7 +67,7 @@ void RendererCanvasCull::_dependency_deleted(const RID &p_dependency, Dependency _canvas_cull_singleton->_item_queue_update(item, true); } -void RendererCanvasCull::_render_canvas_item_tree(RID p_to_render_target, Canvas::ChildItem *p_child_items, int p_child_item_count, const Transform2D &p_transform, const Rect2 &p_clip_rect, const Color &p_modulate, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, RenderingServer::CanvasItemTextureFilter p_default_filter, RenderingServer::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, uint32_t p_canvas_cull_mask, RenderingMethod::RenderInfo *r_render_info) { +void RendererCanvasCull::_render_canvas_item_tree(RID p_to_render_target, Canvas::ChildItem *p_child_items, int p_child_item_count, const Transform2D &p_transform, const Rect2 &p_clip_rect, const Color &p_modulate, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, uint32_t p_canvas_cull_mask, RenderingMethod::RenderInfo *r_render_info) { RENDER_TIMESTAMP("Cull CanvasItem Tree"); // This is used to avoid passing the camera transform down the rendering @@ -143,7 +143,7 @@ void RendererCanvasCull::_collect_ysort_children(RendererCanvasCull::Item *p_can // Y sorted canvas items are flattened into r_items. Calculate their absolute z index to use when rendering r_items. int abs_z = 0; if (child_items[i]->z_relative) { - abs_z = CLAMP(p_z + child_items[i]->z_index, RS::CANVAS_ITEM_Z_MIN, RS::CANVAS_ITEM_Z_MAX); + abs_z = CLAMP(p_z + child_items[i]->z_index, RSE::CANVAS_ITEM_Z_MIN, RSE::CANVAS_ITEM_Z_MAX); } else { abs_z = child_items[i]->z_index; } @@ -194,7 +194,7 @@ void RendererCanvasCull::_attach_canvas_item_for_draw(RendererCanvasCull::Item * } if (p_use_canvas_group) { - int zidx = p_z - RS::CANVAS_ITEM_Z_MIN; + int zidx = p_z - RSE::CANVAS_ITEM_Z_MIN; if (r_canvas_group_from == nullptr) { // no list before processing this item, means must put stuff in group from the beginning of list. r_canvas_group_from = r_z_list[zidx]; @@ -270,7 +270,7 @@ void RendererCanvasCull::_attach_canvas_item_for_draw(RendererCanvasCull::Item * ci->global_rect_cache.position -= p_clip_rect.position; ci->light_masked = false; - int zidx = p_z - RS::CANVAS_ITEM_Z_MIN; + int zidx = p_z - RSE::CANVAS_ITEM_Z_MIN; if (r_z_last_list[zidx]) { r_z_last_list[zidx]->next = ci; @@ -429,7 +429,7 @@ void RendererCanvasCull::_cull_canvas_item(Item *p_canvas_item, const Transform2 int parent_z = p_z; if (ci->z_relative) { - p_z = CLAMP(p_z + ci->z_index, RS::CANVAS_ITEM_Z_MIN, RS::CANVAS_ITEM_Z_MAX); + p_z = CLAMP(p_z + ci->z_index, RSE::CANVAS_ITEM_Z_MIN, RSE::CANVAS_ITEM_Z_MAX); } else { p_z = ci->z_index; } @@ -461,7 +461,7 @@ void RendererCanvasCull::_cull_canvas_item(Item *p_canvas_item, const Transform2 RendererCanvasRender::Item *canvas_group_from = nullptr; bool use_canvas_group = ci->canvas_group != nullptr && (ci->canvas_group->fit_empty || ci->commands != nullptr); if (use_canvas_group) { - int zidx = p_z - RS::CANVAS_ITEM_Z_MIN; + int zidx = p_z - RSE::CANVAS_ITEM_Z_MIN; canvas_group_from = r_z_last_list[zidx]; } @@ -471,7 +471,7 @@ void RendererCanvasCull::_cull_canvas_item(Item *p_canvas_item, const Transform2 RendererCanvasRender::Item *canvas_group_from = nullptr; bool use_canvas_group = ci->canvas_group != nullptr && (ci->canvas_group->fit_empty || ci->commands != nullptr); if (use_canvas_group) { - int zidx = p_z - RS::CANVAS_ITEM_Z_MIN; + int zidx = p_z - RSE::CANVAS_ITEM_Z_MIN; canvas_group_from = r_z_last_list[zidx]; } @@ -491,7 +491,7 @@ void RendererCanvasCull::_cull_canvas_item(Item *p_canvas_item, const Transform2 } } -void RendererCanvasCull::render_canvas(RID p_render_target, Canvas *p_canvas, const Transform2D &p_transform, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, const Rect2 &p_clip_rect, RenderingServer::CanvasItemTextureFilter p_default_filter, RenderingServer::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_transforms_to_pixel, bool p_snap_2d_vertices_to_pixel, uint32_t canvas_cull_mask, RenderingMethod::RenderInfo *r_render_info) { +void RendererCanvasCull::render_canvas(RID p_render_target, Canvas *p_canvas, const Transform2D &p_transform, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, const Rect2 &p_clip_rect, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_transforms_to_pixel, bool p_snap_2d_vertices_to_pixel, uint32_t canvas_cull_mask, RenderingMethod::RenderInfo *r_render_info) { RENDER_TIMESTAMP("> Render Canvas"); sdf_used = false; @@ -970,7 +970,7 @@ void RendererCanvasCull::canvas_item_add_polyline(RID p_item, const Vectorprimitive = RS::PRIMITIVE_LINE_STRIP; + pline->primitive = RSE::PRIMITIVE_LINE_STRIP; if (p_colors.size() == 1 || p_colors.size() == point_count) { pline->polygon.create(indices, p_points, p_colors); @@ -1165,10 +1165,10 @@ void RendererCanvasCull::canvas_item_add_polyline(RID p_item, const Vectorprimitive = RS::PRIMITIVE_TRIANGLE_STRIP; + pline_left->primitive = RSE::PRIMITIVE_TRIANGLE_STRIP; pline_left->polygon.create(indices, points_left, colors_left); - pline_right->primitive = RS::PRIMITIVE_TRIANGLE_STRIP; + pline_right->primitive = RSE::PRIMITIVE_TRIANGLE_STRIP; pline_right->polygon.create(indices, points_right, colors_right); } else { // Makes a single triangle strip for drawing the line. @@ -1211,7 +1211,7 @@ void RendererCanvasCull::canvas_item_add_polyline(RID p_item, const Vectorprimitive = RS::PRIMITIVE_TRIANGLE_STRIP; + pline->primitive = RSE::PRIMITIVE_TRIANGLE_STRIP; pline->polygon.create(indices, points, colors); } @@ -1242,7 +1242,7 @@ void RendererCanvasCull::canvas_item_add_multiline(RID p_item, const Vectoralloc_command(); ERR_FAIL_NULL(pline); - pline->primitive = RS::PRIMITIVE_LINES; + pline->primitive = RSE::PRIMITIVE_LINES; pline->polygon.create(Vector(), p_points, colors); } else { if (p_colors.size() == 1) { @@ -1439,7 +1439,7 @@ void RendererCanvasCull::canvas_item_add_ellipse(RID p_item, const Point2 &p_pos Item::CommandPolygon *ellipse = canvas_item->alloc_command(); ERR_FAIL_NULL(ellipse); - ellipse->primitive = RS::PRIMITIVE_TRIANGLES; + ellipse->primitive = RSE::PRIMITIVE_TRIANGLES; Vector indices; Vector points; @@ -1483,7 +1483,7 @@ void RendererCanvasCull::canvas_item_add_ellipse(RID p_item, const Point2 &p_pos Item::CommandPolygon *feather = canvas_item->alloc_command(); ERR_FAIL_NULL(feather); - feather->primitive = RS::PRIMITIVE_TRIANGLE_STRIP; + feather->primitive = RSE::PRIMITIVE_TRIANGLE_STRIP; Color transparent = Color(p_color, 0.0); @@ -1662,7 +1662,7 @@ void RendererCanvasCull::canvas_item_add_texture_rect_region(RID p_item, const R } } -void RendererCanvasCull::canvas_item_add_nine_patch(RID p_item, const Rect2 &p_rect, const Rect2 &p_source, RID p_texture, const Vector2 &p_topleft, const Vector2 &p_bottomright, RS::NinePatchAxisMode p_x_axis_mode, RS::NinePatchAxisMode p_y_axis_mode, bool p_draw_center, const Color &p_modulate) { +void RendererCanvasCull::canvas_item_add_nine_patch(RID p_item, const Rect2 &p_rect, const Rect2 &p_source, RID p_texture, const Vector2 &p_topleft, const Vector2 &p_bottomright, RSE::NinePatchAxisMode p_x_axis_mode, RSE::NinePatchAxisMode p_y_axis_mode, bool p_draw_center, const Color &p_modulate) { Item *canvas_item = canvas_item_owner.get_or_null(p_item); ERR_FAIL_NULL(canvas_item); @@ -1728,7 +1728,7 @@ void RendererCanvasCull::canvas_item_add_polygon(RID p_item, const Vectoralloc_command(); ERR_FAIL_NULL(polygon); - polygon->primitive = RS::PRIMITIVE_TRIANGLES; + polygon->primitive = RSE::PRIMITIVE_TRIANGLES; polygon->texture = p_texture; polygon->polygon.create(indices, p_points, p_colors, p_uvs); } @@ -1751,7 +1751,7 @@ void RendererCanvasCull::canvas_item_add_triangle_array(RID p_item, const Vector polygon->polygon.create(p_indices, p_points, p_colors, p_uvs, p_bones, p_weights, p_count); - polygon->primitive = RS::PRIMITIVE_TRIANGLES; + polygon->primitive = RSE::PRIMITIVE_TRIANGLES; } void RendererCanvasCull::canvas_item_add_set_transform(RID p_item, const Transform2D &p_transform) { @@ -1838,7 +1838,7 @@ void RendererCanvasCull::canvas_item_set_sort_children_by_y(RID p_item, bool p_e } void RendererCanvasCull::canvas_item_set_z_index(RID p_item, int p_z) { - ERR_FAIL_COND(p_z < RS::CANVAS_ITEM_Z_MIN || p_z > RS::CANVAS_ITEM_Z_MAX); + ERR_FAIL_COND(p_z < RSE::CANVAS_ITEM_Z_MIN || p_z > RSE::CANVAS_ITEM_Z_MAX); Item *canvas_item = canvas_item_owner.get_or_null(p_item); ERR_FAIL_NULL(canvas_item); @@ -2026,11 +2026,11 @@ void RendererCanvasCull::canvas_item_transform_physics_interpolation(RID p_item, canvas_item->xform_curr = p_transform * canvas_item->xform_curr; } -void RendererCanvasCull::canvas_item_set_canvas_group_mode(RID p_item, RS::CanvasGroupMode p_mode, float p_clear_margin, bool p_fit_empty, float p_fit_margin, bool p_blur_mipmaps) { +void RendererCanvasCull::canvas_item_set_canvas_group_mode(RID p_item, RSE::CanvasGroupMode p_mode, float p_clear_margin, bool p_fit_empty, float p_fit_margin, bool p_blur_mipmaps) { Item *canvas_item = canvas_item_owner.get_or_null(p_item); ERR_FAIL_NULL(canvas_item); - if (p_mode == RS::CANVAS_GROUP_MODE_DISABLED) { + if (p_mode == RSE::CANVAS_GROUP_MODE_DISABLED) { if (canvas_item->canvas_group != nullptr) { memdelete(canvas_item->canvas_group); canvas_item->canvas_group = nullptr; @@ -2056,7 +2056,7 @@ void RendererCanvasCull::canvas_light_initialize(RID p_rid) { clight->light_internal = RSG::canvas_render->light_create(); } -void RendererCanvasCull::canvas_light_set_mode(RID p_light, RS::CanvasLightMode p_mode) { +void RendererCanvasCull::canvas_light_set_mode(RID p_light, RSE::CanvasLightMode p_mode) { RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light); ERR_FAIL_NULL(clight); @@ -2083,7 +2083,7 @@ void RendererCanvasCull::canvas_light_attach_to_canvas(RID p_light, RID p_canvas if (clight->canvas.is_valid()) { Canvas *canvas = canvas_owner.get_or_null(clight->canvas); - if (clight->mode == RS::CANVAS_LIGHT_MODE_POINT) { + if (clight->mode == RSE::CANVAS_LIGHT_MODE_POINT) { canvas->lights.erase(clight); } else { canvas->directional_lights.erase(clight); @@ -2098,7 +2098,7 @@ void RendererCanvasCull::canvas_light_attach_to_canvas(RID p_light, RID p_canvas if (clight->canvas.is_valid()) { Canvas *canvas = canvas_owner.get_or_null(clight->canvas); - if (clight->mode == RS::CANVAS_LIGHT_MODE_POINT) { + if (clight->mode == RSE::CANVAS_LIGHT_MODE_POINT) { canvas->lights.insert(clight); } else { canvas->directional_lights.insert(clight); @@ -2213,7 +2213,7 @@ void RendererCanvasCull::canvas_light_set_directional_distance(RID p_light, floa clight->directional_distance = p_distance; } -void RendererCanvasCull::canvas_light_set_blend_mode(RID p_light, RS::CanvasLightBlendMode p_mode) { +void RendererCanvasCull::canvas_light_set_blend_mode(RID p_light, RSE::CanvasLightBlendMode p_mode) { RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light); ERR_FAIL_NULL(clight); @@ -2232,7 +2232,7 @@ void RendererCanvasCull::canvas_light_set_shadow_enabled(RID p_light, bool p_ena RSG::canvas_render->light_set_use_shadow(clight->light_internal, clight->use_shadow); } -void RendererCanvasCull::canvas_light_set_shadow_filter(RID p_light, RS::CanvasLightShadowFilter p_filter) { +void RendererCanvasCull::canvas_light_set_shadow_filter(RID p_light, RSE::CanvasLightShadowFilter p_filter) { RendererCanvasRender::Light *clight = canvas_light_owner.get_or_null(p_light); ERR_FAIL_NULL(clight); @@ -2416,7 +2416,7 @@ void RendererCanvasCull::canvas_occluder_polygon_set_shape(RID p_occluder_polygo } } -void RendererCanvasCull::canvas_occluder_polygon_set_cull_mode(RID p_occluder_polygon, RS::CanvasOccluderPolygonCullMode p_mode) { +void RendererCanvasCull::canvas_occluder_polygon_set_cull_mode(RID p_occluder_polygon, RSE::CanvasOccluderPolygonCullMode p_mode) { LightOccluderPolygon *occluder_poly = canvas_light_occluder_polygon_owner.get_or_null(p_occluder_polygon); ERR_FAIL_NULL(occluder_poly); occluder_poly->cull_mode = p_mode; @@ -2437,7 +2437,7 @@ void RendererCanvasCull::canvas_texture_initialize(RID p_rid) { RSG::texture_storage->canvas_texture_initialize(p_rid); } -void RendererCanvasCull::canvas_texture_set_channel(RID p_canvas_texture, RS::CanvasTextureChannel p_channel, RID p_texture) { +void RendererCanvasCull::canvas_texture_set_channel(RID p_canvas_texture, RSE::CanvasTextureChannel p_channel, RID p_texture) { RSG::texture_storage->canvas_texture_set_channel(p_canvas_texture, p_channel, p_texture); } @@ -2445,20 +2445,20 @@ void RendererCanvasCull::canvas_texture_set_shading_parameters(RID p_canvas_text RSG::texture_storage->canvas_texture_set_shading_parameters(p_canvas_texture, p_base_color, p_shininess); } -void RendererCanvasCull::canvas_texture_set_texture_filter(RID p_canvas_texture, RS::CanvasItemTextureFilter p_filter) { +void RendererCanvasCull::canvas_texture_set_texture_filter(RID p_canvas_texture, RSE::CanvasItemTextureFilter p_filter) { RSG::texture_storage->canvas_texture_set_texture_filter(p_canvas_texture, p_filter); } -void RendererCanvasCull::canvas_texture_set_texture_repeat(RID p_canvas_texture, RS::CanvasItemTextureRepeat p_repeat) { +void RendererCanvasCull::canvas_texture_set_texture_repeat(RID p_canvas_texture, RSE::CanvasItemTextureRepeat p_repeat) { RSG::texture_storage->canvas_texture_set_texture_repeat(p_canvas_texture, p_repeat); } -void RendererCanvasCull::canvas_item_set_default_texture_filter(RID p_item, RS::CanvasItemTextureFilter p_filter) { +void RendererCanvasCull::canvas_item_set_default_texture_filter(RID p_item, RSE::CanvasItemTextureFilter p_filter) { Item *ci = canvas_item_owner.get_or_null(p_item); ERR_FAIL_NULL(ci); ci->texture_filter = p_filter; } -void RendererCanvasCull::canvas_item_set_default_texture_repeat(RID p_item, RS::CanvasItemTextureRepeat p_repeat) { +void RendererCanvasCull::canvas_item_set_default_texture_repeat(RID p_item, RSE::CanvasItemTextureRepeat p_repeat) { Item *ci = canvas_item_owner.get_or_null(p_item); ERR_FAIL_NULL(ci); ci->texture_repeat = p_repeat; diff --git a/servers/rendering/renderer_canvas_cull.h b/servers/rendering/renderer_canvas_cull.h index e59b9d4d48..401e1acb29 100644 --- a/servers/rendering/renderer_canvas_cull.h +++ b/servers/rendering/renderer_canvas_cull.h @@ -34,6 +34,8 @@ #include "renderer_compositor.h" #include "renderer_viewport.h" #include "servers/rendering/instance_uniforms.h" +#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class RendererCanvasCull { static void _dependency_changed(Dependency::DependencyChangedNotification p_notification, DependencyTracker *p_tracker); @@ -127,13 +129,13 @@ public: struct LightOccluderPolygon { bool active; Rect2 aabb; - RS::CanvasOccluderPolygonCullMode cull_mode; + RSE::CanvasOccluderPolygonCullMode cull_mode; RID occluder; HashSet owners; LightOccluderPolygon() { active = false; - cull_mode = RS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED; + cull_mode = RSE::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED; } }; @@ -204,14 +206,14 @@ public: _FORCE_INLINE_ void _attach_canvas_item_for_draw(Item *ci, Item *p_canvas_clip, RendererCanvasRender::Item **r_z_list, RendererCanvasRender::Item **r_z_last_list, const Transform2D &p_transform, const Rect2 &p_clip_rect, Rect2 p_global_rect, const Color &modulate, int p_z, RendererCanvasCull::Item *p_material_owner, bool p_use_canvas_group, RendererCanvasRender::Item *r_canvas_group_from); private: - void _render_canvas_item_tree(RID p_to_render_target, Canvas::ChildItem *p_child_items, int p_child_item_count, const Transform2D &p_transform, const Rect2 &p_clip_rect, const Color &p_modulate, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, RS::CanvasItemTextureFilter p_default_filter, RS::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, uint32_t p_canvas_cull_mask, RenderingMethod::RenderInfo *r_render_info = nullptr); + void _render_canvas_item_tree(RID p_to_render_target, Canvas::ChildItem *p_child_items, int p_child_item_count, const Transform2D &p_transform, const Rect2 &p_clip_rect, const Color &p_modulate, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, uint32_t p_canvas_cull_mask, RenderingMethod::RenderInfo *r_render_info = nullptr); void _cull_canvas_item(Item *p_canvas_item, const Transform2D &p_parent_xform, const Rect2 &p_clip_rect, const Color &p_modulate, int p_z, RendererCanvasRender::Item **r_z_list, RendererCanvasRender::Item **r_z_last_list, Item *p_canvas_clip, Item *p_material_owner, bool p_is_already_y_sorted, uint32_t p_canvas_cull_mask, const Point2 &p_repeat_size, int p_repeat_times, RendererCanvasRender::Item *p_repeat_source_item); void _collect_ysort_children(RendererCanvasCull::Item *p_canvas_item, RendererCanvasCull::Item *p_material_owner, const Color &p_modulate, RendererCanvasCull::Item **r_items, int &r_index, int &r_ysort_children_count, int p_z, uint32_t p_canvas_cull_mask); int _count_ysort_children(RendererCanvasCull::Item *p_canvas_item); void _mark_ysort_dirty(RendererCanvasCull::Item *ysort_owner); - static constexpr int z_range = RS::CANVAS_ITEM_Z_MAX - RS::CANVAS_ITEM_Z_MIN + 1; + static constexpr int z_range = RSE::CANVAS_ITEM_Z_MAX - RSE::CANVAS_ITEM_Z_MIN + 1; RendererCanvasRender::Item **z_list; RendererCanvasRender::Item **z_last_list; @@ -219,7 +221,7 @@ private: Transform2D _current_camera_transform; public: - void render_canvas(RID p_render_target, Canvas *p_canvas, const Transform2D &p_transform, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, const Rect2 &p_clip_rect, RS::CanvasItemTextureFilter p_default_filter, RS::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_transforms_to_pixel, bool p_snap_2d_vertices_to_pixel, uint32_t p_canvas_cull_mask, RenderingMethod::RenderInfo *r_render_info = nullptr); + void render_canvas(RID p_render_target, Canvas *p_canvas, const Transform2D &p_transform, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, const Rect2 &p_clip_rect, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_transforms_to_pixel, bool p_snap_2d_vertices_to_pixel, uint32_t p_canvas_cull_mask, RenderingMethod::RenderInfo *r_render_info = nullptr); bool was_sdf_used(); @@ -265,7 +267,7 @@ public: void canvas_item_add_texture_rect_region(RID p_item, const Rect2 &p_rect, RID p_texture, const Rect2 &p_src_rect, const Color &p_modulate = Color(1, 1, 1), bool p_transpose = false, bool p_clip_uv = false); void canvas_item_add_msdf_texture_rect_region(RID p_item, const Rect2 &p_rect, RID p_texture, const Rect2 &p_src_rect, const Color &p_modulate = Color(1, 1, 1), int p_outline_size = 0, float p_px_range = 1.0, float p_scale = 1.0); void canvas_item_add_lcd_texture_rect_region(RID p_item, const Rect2 &p_rect, RID p_texture, const Rect2 &p_src_rect, const Color &p_modulate = Color(1, 1, 1)); - void canvas_item_add_nine_patch(RID p_item, const Rect2 &p_rect, const Rect2 &p_source, RID p_texture, const Vector2 &p_topleft, const Vector2 &p_bottomright, RS::NinePatchAxisMode p_x_axis_mode = RS::NINE_PATCH_STRETCH, RS::NinePatchAxisMode p_y_axis_mode = RS::NINE_PATCH_STRETCH, bool p_draw_center = true, const Color &p_modulate = Color(1, 1, 1)); + void canvas_item_add_nine_patch(RID p_item, const Rect2 &p_rect, const Rect2 &p_source, RID p_texture, const Vector2 &p_topleft, const Vector2 &p_bottomright, RSE::NinePatchAxisMode p_x_axis_mode = RSE::NINE_PATCH_STRETCH, RSE::NinePatchAxisMode p_y_axis_mode = RSE::NINE_PATCH_STRETCH, bool p_draw_center = true, const Color &p_modulate = Color(1, 1, 1)); void canvas_item_add_primitive(RID p_item, const Vector &p_points, const Vector &p_colors, const Vector &p_uvs, RID p_texture); void canvas_item_add_polygon(RID p_item, const Vector &p_points, const Vector &p_colors, const Vector &p_uvs = Vector(), RID p_texture = RID()); void canvas_item_add_triangle_array(RID p_item, const Vector &p_indices, const Vector &p_points, const Vector &p_colors, const Vector &p_uvs = Vector(), const Vector &p_bones = Vector(), const Vector &p_weights = Vector(), RID p_texture = RID(), int p_count = -1); @@ -296,7 +298,7 @@ public: void canvas_item_set_visibility_notifier(RID p_item, bool p_enable, const Rect2 &p_area, const Callable &p_enter_callable, const Callable &p_exit_callable); - void canvas_item_set_canvas_group_mode(RID p_item, RS::CanvasGroupMode p_mode, float p_clear_margin = 5.0, bool p_fit_empty = false, float p_fit_margin = 0.0, bool p_blur_mipmaps = false); + void canvas_item_set_canvas_group_mode(RID p_item, RSE::CanvasGroupMode p_mode, float p_clear_margin = 5.0, bool p_fit_empty = false, float p_fit_margin = 0.0, bool p_blur_mipmaps = false); void canvas_item_set_debug_redraw(bool p_enabled); bool canvas_item_get_debug_redraw() const; @@ -310,7 +312,7 @@ public: void update(); - void canvas_light_set_mode(RID p_light, RS::CanvasLightMode p_mode); + void canvas_light_set_mode(RID p_light, RSE::CanvasLightMode p_mode); void canvas_light_attach_to_canvas(RID p_light, RID p_canvas); void canvas_light_set_enabled(RID p_light, bool p_enabled); void canvas_light_set_texture_scale(RID p_light, float p_scale); @@ -326,10 +328,10 @@ public: void canvas_light_set_item_shadow_cull_mask(RID p_light, int p_mask); void canvas_light_set_directional_distance(RID p_light, float p_distance); - void canvas_light_set_blend_mode(RID p_light, RS::CanvasLightBlendMode p_mode); + void canvas_light_set_blend_mode(RID p_light, RSE::CanvasLightBlendMode p_mode); void canvas_light_set_shadow_enabled(RID p_light, bool p_enabled); - void canvas_light_set_shadow_filter(RID p_light, RS::CanvasLightShadowFilter p_filter); + void canvas_light_set_shadow_filter(RID p_light, RSE::CanvasLightShadowFilter p_filter); void canvas_light_set_shadow_color(RID p_light, const Color &p_color); void canvas_light_set_shadow_smooth(RID p_light, float p_smooth); @@ -356,21 +358,21 @@ public: void canvas_occluder_polygon_set_shape(RID p_occluder_polygon, const Vector &p_shape, bool p_closed); - void canvas_occluder_polygon_set_cull_mode(RID p_occluder_polygon, RS::CanvasOccluderPolygonCullMode p_mode); + void canvas_occluder_polygon_set_cull_mode(RID p_occluder_polygon, RSE::CanvasOccluderPolygonCullMode p_mode); void canvas_set_shadow_texture_size(int p_size); RID canvas_texture_allocate(); void canvas_texture_initialize(RID p_rid); - void canvas_texture_set_channel(RID p_canvas_texture, RS::CanvasTextureChannel p_channel, RID p_texture); + void canvas_texture_set_channel(RID p_canvas_texture, RSE::CanvasTextureChannel p_channel, RID p_texture); void canvas_texture_set_shading_parameters(RID p_canvas_texture, const Color &p_base_color, float p_shininess); - void canvas_texture_set_texture_filter(RID p_item, RS::CanvasItemTextureFilter p_filter); - void canvas_texture_set_texture_repeat(RID p_item, RS::CanvasItemTextureRepeat p_repeat); + void canvas_texture_set_texture_filter(RID p_item, RSE::CanvasItemTextureFilter p_filter); + void canvas_texture_set_texture_repeat(RID p_item, RSE::CanvasItemTextureRepeat p_repeat); - void canvas_item_set_default_texture_filter(RID p_item, RS::CanvasItemTextureFilter p_filter); - void canvas_item_set_default_texture_repeat(RID p_item, RS::CanvasItemTextureRepeat p_repeat); + void canvas_item_set_default_texture_filter(RID p_item, RSE::CanvasItemTextureFilter p_filter); + void canvas_item_set_default_texture_repeat(RID p_item, RSE::CanvasItemTextureRepeat p_repeat); void update_visibility_notifiers(); void update_dirty_items(); diff --git a/servers/rendering/renderer_canvas_render.h b/servers/rendering/renderer_canvas_render.h index ea0a174960..2db15b10a1 100644 --- a/servers/rendering/renderer_canvas_render.h +++ b/servers/rendering/renderer_canvas_render.h @@ -32,6 +32,7 @@ #include "servers/rendering/rendering_method.h" #include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class RendererCanvasRender { public: @@ -66,14 +67,14 @@ public: int item_mask; int item_shadow_mask; float directional_distance; - RS::CanvasLightMode mode; - RS::CanvasLightBlendMode blend_mode; + RSE::CanvasLightMode mode; + RSE::CanvasLightBlendMode blend_mode; RID texture; Vector2 texture_offset; RID canvas; bool use_shadow; int shadow_buffer_size; - RS::CanvasLightShadowFilter shadow_filter; + RSE::CanvasLightShadowFilter shadow_filter; Color shadow_color; float shadow_smooth; @@ -112,15 +113,15 @@ public: scale = 1.0; energy = 1.0; item_shadow_mask = 1; - mode = RS::CANVAS_LIGHT_MODE_POINT; - blend_mode = RS::CANVAS_LIGHT_BLEND_MODE_ADD; + mode = RSE::CANVAS_LIGHT_MODE_POINT; + blend_mode = RSE::CANVAS_LIGHT_BLEND_MODE_ADD; // texture_cache = nullptr; next_ptr = nullptr; directional_next_ptr = nullptr; filter_next_ptr = nullptr; use_shadow = false; shadow_buffer_size = 2048; - shadow_filter = RS::CANVAS_LIGHT_FILTER_NONE; + shadow_filter = RSE::CANVAS_LIGHT_FILTER_NONE; shadow_smooth = 0.0; render_index_cache = -1; directional_distance = 10000.0; @@ -219,8 +220,8 @@ public: float margin[4]; bool draw_center; Color color; - RS::NinePatchAxisMode axis_x; - RS::NinePatchAxisMode axis_y; + RSE::NinePatchAxisMode axis_x; + RSE::NinePatchAxisMode axis_y; RID texture; @@ -231,7 +232,7 @@ public: }; struct CommandPolygon : public Command { - RS::PrimitiveType primitive; + RSE::PrimitiveType primitive; Polygon polygon; RID texture; @@ -325,7 +326,7 @@ public: bool use_identity_transform : 1; struct CanvasGroup { - RS::CanvasGroupMode mode; + RSE::CanvasGroupMode mode; bool fit_empty; float fit_margin; bool blur_mipmaps; @@ -459,8 +460,8 @@ public: light_masked = false; } - RS::CanvasItemTextureFilter texture_filter; - RS::CanvasItemTextureRepeat texture_repeat; + RSE::CanvasItemTextureFilter texture_filter; + RSE::CanvasItemTextureRepeat texture_repeat; Item() { commands = nullptr; @@ -483,8 +484,8 @@ public: light_masked = false; update_when_visible = false; z_final = 0; - texture_filter = RS::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT; - texture_repeat = RS::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT; + texture_filter = RSE::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT; + texture_repeat = RSE::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT; repeat_source = false; on_interpolate_transform_list = false; interpolated = true; @@ -501,7 +502,7 @@ public: } }; - virtual void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_list, const Transform2D &p_canvas_transform, RS::CanvasItemTextureFilter p_default_filter, RS::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info = nullptr) = 0; + virtual void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info = nullptr) = 0; struct LightOccluderInstance { bool enabled : 1; @@ -516,7 +517,7 @@ public: Transform2D xform_cache; int light_mask; bool sdf_collision; - RS::CanvasOccluderPolygonCullMode cull_cache; + RSE::CanvasOccluderPolygonCullMode cull_cache; LightOccluderInstance *next = nullptr; @@ -527,7 +528,7 @@ public: sdf_collision = false; next = nullptr; light_mask = 1; - cull_cache = RS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED; + cull_cache = RSE::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED; } }; @@ -541,14 +542,14 @@ public: virtual RID occluder_polygon_create() = 0; virtual void occluder_polygon_set_shape(RID p_occluder, const Vector &p_points, bool p_closed) = 0; - virtual void occluder_polygon_set_cull_mode(RID p_occluder, RS::CanvasOccluderPolygonCullMode p_mode) = 0; + virtual void occluder_polygon_set_cull_mode(RID p_occluder, RSE::CanvasOccluderPolygonCullMode p_mode) = 0; virtual void set_shadow_texture_size(int p_size) = 0; virtual bool free(RID p_rid) = 0; virtual void update() = 0; virtual void set_debug_redraw(bool p_enabled, double p_time, const Color &p_color) = 0; - virtual uint32_t get_pipeline_compilations(RS::PipelineSource p_source) = 0; + virtual uint32_t get_pipeline_compilations(RSE::PipelineSource p_source) = 0; RendererCanvasRender() { ERR_FAIL_COND_MSG(singleton != nullptr, "A RendererCanvasRender singleton already exists."); diff --git a/servers/rendering/renderer_compositor.cpp b/servers/rendering/renderer_compositor.cpp index ab5ad2f625..b4c9645a74 100644 --- a/servers/rendering/renderer_compositor.cpp +++ b/servers/rendering/renderer_compositor.cpp @@ -46,7 +46,7 @@ RendererCompositor *RendererCompositor::create() { } void RendererCompositor::set_boot_image(const Ref &p_image, const Color &p_color, bool p_scale, bool p_use_filter) { - RenderingServer::SplashStretchMode stretch_mode = RenderingServer::map_scaling_option_to_stretch_mode(p_scale); + RSE::SplashStretchMode stretch_mode = RenderingServer::map_scaling_option_to_stretch_mode(p_scale); set_boot_image_with_stretch(p_image, p_color, stretch_mode, p_use_filter); } diff --git a/servers/rendering/renderer_compositor.h b/servers/rendering/renderer_compositor.h index 782daff40e..e16cdc9b5b 100644 --- a/servers/rendering/renderer_compositor.h +++ b/servers/rendering/renderer_compositor.h @@ -87,7 +87,7 @@ public: virtual RendererCanvasRender *get_canvas() = 0; virtual RendererSceneRender *get_scene() = 0; - virtual void set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RenderingServer::SplashStretchMode p_stretch_mode, bool p_use_filter = true) = 0; + virtual void set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RSE::SplashStretchMode p_stretch_mode, bool p_use_filter = true) = 0; virtual void set_boot_image(const Ref &p_image, const Color &p_color, bool p_scale, bool p_use_filter = true); virtual void initialize() = 0; diff --git a/servers/rendering/renderer_geometry_instance.h b/servers/rendering/renderer_geometry_instance.h index cab67d4349..d7fe14a9b9 100644 --- a/servers/rendering/renderer_geometry_instance.h +++ b/servers/rendering/renderer_geometry_instance.h @@ -30,6 +30,7 @@ #pragma once +#include "core/math/color.h" #include "core/math/rect2.h" #include "core/math/transform_3d.h" #include "core/templates/rid.h" @@ -67,7 +68,7 @@ public: virtual AABB get_aabb() = 0; virtual void clear_light_instances() = 0; - virtual void pair_light_instance(const RID p_light_instance, RS::LightType light_type, uint32_t placement_idx) = 0; + virtual void pair_light_instance(const RID p_light_instance, RSE::LightType light_type, uint32_t placement_idx) = 0; virtual void pair_reflection_probe_instances(const RID *p_reflection_probe_instances, uint32_t p_reflection_probe_instance_count) = 0; virtual void pair_decal_instances(const RID *p_decal_instances, uint32_t p_decal_instance_count) = 0; virtual void pair_voxel_gi_instances(const RID *p_voxel_gi_instances, uint32_t p_voxel_gi_instance_count) = 0; @@ -113,7 +114,7 @@ public: struct Data { //data used less often goes into regular heap RID base; - RS::InstanceType base_type; + RSE::InstanceType base_type; RID skeleton; Vector surface_materials; diff --git a/servers/rendering/renderer_rd/effects/bokeh_dof.cpp b/servers/rendering/renderer_rd/effects/bokeh_dof.cpp index 56fcbcfd0f..a3ee89c275 100644 --- a/servers/rendering/renderer_rd/effects/bokeh_dof.cpp +++ b/servers/rendering/renderer_rd/effects/bokeh_dof.cpp @@ -105,8 +105,8 @@ void BokehDOF::bokeh_dof_compute(const BokehBuffers &p_buffers, RID p_camera_att float bokeh_size = RSG::camera_attributes->camera_attributes_get_dof_blur_amount(p_camera_attributes) * 64; // Base 64 pixel radius. bool use_jitter = RSG::camera_attributes->camera_attributes_get_dof_blur_use_jitter(); - RS::DOFBokehShape bokeh_shape = RSG::camera_attributes->camera_attributes_get_dof_blur_bokeh_shape(); - RS::DOFBlurQuality blur_quality = RSG::camera_attributes->camera_attributes_get_dof_blur_quality(); + RSE::DOFBokehShape bokeh_shape = RSG::camera_attributes->camera_attributes_get_dof_blur_bokeh_shape(); + RSE::DOFBlurQuality blur_quality = RSG::camera_attributes->camera_attributes_get_dof_blur_quality(); // setup our push constant memset(&bokeh.push_constant, 0, sizeof(BokehPushConstant)); @@ -136,7 +136,7 @@ void BokehDOF::bokeh_dof_compute(const BokehBuffers &p_buffers, RID p_camera_att bokeh.push_constant.blur_scale = 0.5; // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_base_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_buffers.base_texture })); RD::Uniform u_depth_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_buffers.depth_texture })); @@ -171,9 +171,9 @@ void BokehDOF::bokeh_dof_compute(const BokehBuffers &p_buffers, RID p_camera_att RD::get_singleton()->compute_list_dispatch_threads(compute_list, p_buffers.base_texture_size.x, p_buffers.base_texture_size.y, 1); RD::get_singleton()->compute_list_add_barrier(compute_list); - if (bokeh_shape == RS::DOF_BOKEH_BOX || bokeh_shape == RS::DOF_BOKEH_HEXAGON) { + if (bokeh_shape == RSE::DOF_BOKEH_BOX || bokeh_shape == RSE::DOF_BOKEH_HEXAGON) { //second pass - BokehMode mode = bokeh_shape == RS::DOF_BOKEH_BOX ? BOKEH_GEN_BOKEH_BOX : BOKEH_GEN_BOKEH_HEXAGONAL; + BokehMode mode = bokeh_shape == RSE::DOF_BOKEH_BOX ? BOKEH_GEN_BOKEH_BOX : BOKEH_GEN_BOKEH_HEXAGONAL; shader = bokeh.compute_shader.version_get_shader(bokeh.shader_version, mode); ERR_FAIL_COND(shader.is_null()); @@ -183,7 +183,7 @@ void BokehDOF::bokeh_dof_compute(const BokehBuffers &p_buffers, RID p_camera_att bokeh.push_constant.steps = quality_samples[blur_quality]; - if (blur_quality == RS::DOF_BLUR_QUALITY_VERY_LOW || blur_quality == RS::DOF_BLUR_QUALITY_LOW) { + if (blur_quality == RSE::DOF_BLUR_QUALITY_VERY_LOW || blur_quality == RSE::DOF_BLUR_QUALITY_LOW) { //box and hexagon are more or less the same, and they can work in either half (very low and low quality) or full (medium and high quality_ sizes) RD::get_singleton()->compute_list_bind_uniform_set(compute_list, uniform_set_cache->get_cache(shader, 0, u_half_image0), 0); @@ -208,7 +208,7 @@ void BokehDOF::bokeh_dof_compute(const BokehBuffers &p_buffers, RID p_camera_att //third pass bokeh.push_constant.second_pass = true; - if (blur_quality == RS::DOF_BLUR_QUALITY_VERY_LOW || blur_quality == RS::DOF_BLUR_QUALITY_LOW) { + if (blur_quality == RSE::DOF_BLUR_QUALITY_VERY_LOW || blur_quality == RSE::DOF_BLUR_QUALITY_LOW) { RD::get_singleton()->compute_list_bind_uniform_set(compute_list, uniform_set_cache->get_cache(shader, 0, u_half_image1), 0); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, uniform_set_cache->get_cache(shader, 1, u_half_texture0), 1); } else { @@ -221,7 +221,7 @@ void BokehDOF::bokeh_dof_compute(const BokehBuffers &p_buffers, RID p_camera_att RD::get_singleton()->compute_list_dispatch_threads(compute_list, bokeh.push_constant.size[0], bokeh.push_constant.size[1], 1); RD::get_singleton()->compute_list_add_barrier(compute_list); - if (blur_quality == RS::DOF_BLUR_QUALITY_VERY_LOW || blur_quality == RS::DOF_BLUR_QUALITY_LOW) { + if (blur_quality == RSE::DOF_BLUR_QUALITY_VERY_LOW || blur_quality == RSE::DOF_BLUR_QUALITY_LOW) { //forth pass, upscale for low quality shader = bokeh.compute_shader.version_get_shader(bokeh.shader_version, BOKEH_COMPOSITE); @@ -310,8 +310,8 @@ void BokehDOF::bokeh_dof_raster(const BokehBuffers &p_buffers, RID p_camera_attr float dof_near_size = RSG::camera_attributes->camera_attributes_get_dof_near_transition(p_camera_attributes); float bokeh_size = RSG::camera_attributes->camera_attributes_get_dof_blur_amount(p_camera_attributes) * 64; // Base 64 pixel radius. - RS::DOFBokehShape bokeh_shape = RSG::camera_attributes->camera_attributes_get_dof_blur_bokeh_shape(); - RS::DOFBlurQuality blur_quality = RSG::camera_attributes->camera_attributes_get_dof_blur_quality(); + RSE::DOFBokehShape bokeh_shape = RSG::camera_attributes->camera_attributes_get_dof_blur_bokeh_shape(); + RSE::DOFBlurQuality blur_quality = RSG::camera_attributes->camera_attributes_get_dof_blur_quality(); // setup our base push constant memset(&bokeh.push_constant, 0, sizeof(BokehPushConstant)); @@ -327,7 +327,7 @@ void BokehDOF::bokeh_dof_raster(const BokehBuffers &p_buffers, RID p_camera_attr bokeh.push_constant.blur_size = bokeh_size; // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_base_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_buffers.base_texture })); RD::Uniform u_depth_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_buffers.depth_texture })); @@ -368,14 +368,14 @@ void BokehDOF::bokeh_dof_raster(const BokehBuffers &p_buffers, RID p_camera_attr RD::get_singleton()->draw_list_end(); } - if (bokeh_shape == RS::DOF_BOKEH_BOX || bokeh_shape == RS::DOF_BOKEH_HEXAGON) { + if (bokeh_shape == RSE::DOF_BOKEH_BOX || bokeh_shape == RSE::DOF_BOKEH_HEXAGON) { // double pass approach - BokehMode mode = bokeh_shape == RS::DOF_BOKEH_BOX ? BOKEH_GEN_BOKEH_BOX : BOKEH_GEN_BOKEH_HEXAGONAL; + BokehMode mode = bokeh_shape == RSE::DOF_BOKEH_BOX ? BOKEH_GEN_BOKEH_BOX : BOKEH_GEN_BOKEH_HEXAGONAL; RID shader = bokeh.raster_shader.version_get_shader(bokeh.shader_version, mode); ERR_FAIL_COND(shader.is_null()); - if (blur_quality == RS::DOF_BLUR_QUALITY_VERY_LOW || blur_quality == RS::DOF_BLUR_QUALITY_LOW) { + if (blur_quality == RSE::DOF_BLUR_QUALITY_VERY_LOW || blur_quality == RSE::DOF_BLUR_QUALITY_LOW) { //box and hexagon are more or less the same, and they can work in either half (very low and low quality) or full (medium and high quality_ sizes) bokeh.push_constant.size[0] = p_buffers.base_texture_size.x >> 1; bokeh.push_constant.size[1] = p_buffers.base_texture_size.y >> 1; @@ -403,7 +403,7 @@ void BokehDOF::bokeh_dof_raster(const BokehBuffers &p_buffers, RID p_camera_attr // Pass 2 if (!bokeh.push_constant.half_size) { // do not output weight, we're writing back into our base buffer - mode = bokeh_shape == RS::DOF_BOKEH_BOX ? BOKEH_GEN_BOKEH_BOX_NOWEIGHT : BOKEH_GEN_BOKEH_HEXAGONAL_NOWEIGHT; + mode = bokeh_shape == RSE::DOF_BOKEH_BOX ? BOKEH_GEN_BOKEH_BOX_NOWEIGHT : BOKEH_GEN_BOKEH_HEXAGONAL_NOWEIGHT; shader = bokeh.raster_shader.version_get_shader(bokeh.shader_version, mode); ERR_FAIL_COND(shader.is_null()); diff --git a/servers/rendering/renderer_rd/effects/copy_effects.cpp b/servers/rendering/renderer_rd/effects/copy_effects.cpp index d7d0807755..6d8c76e704 100644 --- a/servers/rendering/renderer_rd/effects/copy_effects.cpp +++ b/servers/rendering/renderer_rd/effects/copy_effects.cpp @@ -434,7 +434,7 @@ void CopyEffects::copy_to_rect(RID p_source_rd_texture, RID p_dest_texture, cons copy.push_constant.target[1] = p_rect.position.y; // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); RD::Uniform u_dest_texture(RD::UNIFORM_TYPE_IMAGE, 0, p_dest_texture); @@ -474,7 +474,7 @@ void CopyEffects::copy_octmap_to_panorama(RID p_source_octmap, RID p_dest_panora copy.push_constant.luminance_multiplier = raster_effects.has_flag(RASTER_EFFECT_COPY) ? 2.0 : 1.0; // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_octmap(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_octmap })); RD::Uniform u_dest_panorama(RD::UNIFORM_TYPE_IMAGE, 0, p_dest_panorama); @@ -511,7 +511,7 @@ void CopyEffects::copy_depth_to_rect(RID p_source_rd_texture, RID p_dest_texture copy.push_constant.target[1] = p_rect.position.y; // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); RD::Uniform u_dest_texture(RD::UNIFORM_TYPE_IMAGE, 0, p_dest_texture); @@ -550,7 +550,7 @@ void CopyEffects::copy_depth_to_rect_and_linearize(RID p_source_rd_texture, RID copy.push_constant.camera_z_near = p_z_near; // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); RD::Uniform u_dest_texture(RD::UNIFORM_TYPE_IMAGE, 0, p_dest_texture); @@ -589,7 +589,7 @@ void CopyEffects::copy_to_atlas_fb(RID p_source_rd_texture, RID p_dest_framebuff copy_to_fb.push_constant.luminance_multiplier = 1.0; // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); @@ -647,7 +647,7 @@ void CopyEffects::copy_to_fb_rect(RID p_source_rd_texture, RID p_dest_framebuffe } // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); @@ -690,7 +690,7 @@ void CopyEffects::copy_to_drawlist(RD::DrawListID p_draw_list, RD::FramebufferFo } // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); @@ -718,7 +718,7 @@ void CopyEffects::copy_raster(RID p_source_texture, RID p_dest_framebuffer) { memset(&blur_raster.push_constant, 0, sizeof(BlurRasterPushConstant)); // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_texture })); @@ -753,7 +753,7 @@ void CopyEffects::gaussian_blur(RID p_source_rd_texture, RID p_texture, const Re copy.push_constant.section[3] = p_size.height; // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); RD::Uniform u_texture(RD::UNIFORM_TYPE_IMAGE, 0, p_texture); @@ -792,7 +792,7 @@ void CopyEffects::gaussian_blur_raster(RID p_source_rd_texture, RID p_dest_textu blur_raster.push_constant.dest_pixel_size[1] = 1.0 / float(p_size.y); // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); @@ -836,7 +836,7 @@ void CopyEffects::gaussian_glow(RID p_source_rd_texture, RID p_back_texture, con copy.push_constant.glow_auto_exposure_scale = p_auto_exposure_scale; //unused also // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); RD::Uniform u_back_texture(RD::UNIFORM_TYPE_IMAGE, 0, p_back_texture); @@ -929,7 +929,7 @@ void CopyEffects::gaussian_glow_upsample_raster(RID p_source_rd_texture, RID p_d spec_constant |= p_level > 0.01 ? 2 : 0; // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); RD::Uniform u_blend_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_blend_texture })); @@ -963,7 +963,7 @@ void CopyEffects::make_mipmap(RID p_source_rd_texture, RID p_dest_texture, const copy.push_constant.section[3] = p_size.height; // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); RD::Uniform u_dest_texture(RD::UNIFORM_TYPE_IMAGE, 0, p_dest_texture); @@ -999,7 +999,7 @@ void CopyEffects::make_mipmap_raster(RID p_source_rd_texture, RID p_dest_texture blur_raster.push_constant.dest_pixel_size[1] = 1.0 / float(p_size.y); // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); @@ -1101,7 +1101,7 @@ void CopyEffects::copy_cubemap_to_dp(RID p_source_rd_texture, RID p_dst_framebuf push_constant.texel_size[0] *= p_dp_flip ? -1.0f : 1.0f; // Encode dp flip as x size sign // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); @@ -1128,7 +1128,7 @@ void CopyEffects::copy_cubemap_to_octmap(RID p_source_rd_texture, RID p_dst_fram cube_to_octmap.push_constant.border_size = 1.0f - p_border_size * 2.0f; - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); RD::DrawListID draw_list = RD::get_singleton()->draw_list_begin(p_dst_framebuffer); @@ -1152,7 +1152,7 @@ void CopyEffects::octmap_downsample(RID p_source_octmap, RID p_dest_octmap, cons octmap_downsampler.push_constant.border_size = 1.0f - p_border_size * 2.0f; // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_octmap(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_octmap })); RD::Uniform u_dest_octmap(RD::UNIFORM_TYPE_IMAGE, 0, Vector({ p_dest_octmap })); @@ -1202,7 +1202,7 @@ void CopyEffects::octmap_downsample_raster(RID p_source_octmap, RID p_dest_frame octmap_downsampler.push_constant.border_size = 1.0f - p_border_size * 2.0f; // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_cubemap(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_octmap })); @@ -1264,7 +1264,7 @@ void CopyEffects::octmap_filter(RID p_source_octmap, const Vector &p_dest_o filter.image_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, filter.compute_shader.version_get_shader(filter.shader_version, 0), 2); // setup our uniforms - RID default_mipmap_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_mipmap_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_octmap(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_mipmap_sampler, p_source_octmap })); @@ -1319,7 +1319,7 @@ void CopyEffects::octmap_filter_raster(RID p_source_octmap, RID p_dest_framebuff push_constant.mip_level = p_mip_level; // setup our uniforms - RID default_mipmap_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_mipmap_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_octmap(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_mipmap_sampler, p_source_octmap })); @@ -1362,7 +1362,7 @@ void CopyEffects::octmap_roughness(RID p_source_rd_texture, RID p_dest_texture, roughness.push_constant.border_size[1] = 1.0f - p_border_size * 2.0; // setup our uniforms - RID default_mipmap_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_mipmap_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_mipmap_sampler, p_source_rd_texture })); RD::Uniform u_dest_texture(RD::UNIFORM_TYPE_IMAGE, 0, Vector({ p_dest_texture })); @@ -1419,7 +1419,7 @@ void CopyEffects::octmap_roughness_raster(RID p_source_rd_texture, RID p_dest_fr roughness.push_constant.border_size[1] = 1.0f - p_border_size * 2.0; // Setup our uniforms. - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); @@ -1442,7 +1442,7 @@ void CopyEffects::merge_specular(RID p_dest_framebuffer, RID p_specular, RID p_b MaterialStorage *material_storage = MaterialStorage::get_singleton(); ERR_FAIL_NULL(material_storage); - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::get_singleton()->draw_command_begin_label("Merge Specular"); diff --git a/servers/rendering/renderer_rd/effects/debug_effects.cpp b/servers/rendering/renderer_rd/effects/debug_effects.cpp index 64286cde08..e8acf384bd 100644 --- a/servers/rendering/renderer_rd/effects/debug_effects.cpp +++ b/servers/rendering/renderer_rd/effects/debug_effects.cpp @@ -181,7 +181,7 @@ void DebugEffects::draw_shadow_frustum(RID p_light, const Projection &p_cam_proj RendererRD::LightStorage *light_storage = RendererRD::LightStorage::get_singleton(); RID base = light_storage->light_instance_get_base_light(p_light); - ERR_FAIL_COND(light_storage->light_get_type(base) != RS::LIGHT_DIRECTIONAL); + ERR_FAIL_COND(light_storage->light_get_type(base) != RSE::LIGHT_DIRECTIONAL); // Make sure our buffers and arrays exist. _create_frustum_arrays(); @@ -191,12 +191,12 @@ void DebugEffects::draw_shadow_frustum(RID p_light, const Projection &p_cam_proj points.resize(8 * sizeof(float) * 3); // Get info about our splits. - RS::LightDirectionalShadowMode shadow_mode = light_storage->light_directional_get_shadow_mode(base); + RSE::LightDirectionalShadowMode shadow_mode = light_storage->light_directional_get_shadow_mode(base); bool overlap = light_storage->light_directional_get_blend_splits(base); int splits = 1; - if (shadow_mode == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS) { + if (shadow_mode == RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS) { splits = 4; - } else if (shadow_mode == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS) { + } else if (shadow_mode == RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS) { splits = 2; } @@ -212,7 +212,7 @@ void DebugEffects::draw_shadow_frustum(RID p_light, const Projection &p_cam_proj } real_t min_distance = p_cam_projection.get_z_near(); real_t max_distance = p_cam_projection.get_z_far(); - real_t shadow_max = RSG::light_storage->light_get_param(base, RS::LIGHT_PARAM_SHADOW_MAX_DISTANCE); + real_t shadow_max = RSG::light_storage->light_get_param(base, RSE::LIGHT_PARAM_SHADOW_MAX_DISTANCE); if (shadow_max > 0 && !is_orthogonal) { max_distance = MIN(shadow_max, max_distance); } @@ -225,7 +225,7 @@ void DebugEffects::draw_shadow_frustum(RID p_light, const Projection &p_cam_proj real_t distances[5]; distances[0] = min_distance; for (int i = 0; i < splits; i++) { - distances[i + 1] = min_distance + RSG::light_storage->light_get_param(base, RS::LightParam(RS::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET + i)) * range; + distances[i + 1] = min_distance + RSG::light_storage->light_get_param(base, RSE::LightParam(RSE::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET + i)) * range; }; distances[splits] = max_distance; @@ -346,7 +346,7 @@ void DebugEffects::draw_motion_vectors(RID p_velocity, RID p_depth, RID p_dest_f UniformSetCacheRD *uniform_set_cache = UniformSetCacheRD::get_singleton(); ERR_FAIL_NULL(uniform_set_cache); - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_velocity(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_velocity })); RD::Uniform u_source_depth(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 1, Vector({ default_sampler, p_depth })); diff --git a/servers/rendering/renderer_rd/effects/fsr.cpp b/servers/rendering/renderer_rd/effects/fsr.cpp index 1c0b5f7c14..50d8676456 100644 --- a/servers/rendering/renderer_rd/effects/fsr.cpp +++ b/servers/rendering/renderer_rd/effects/fsr.cpp @@ -94,7 +94,7 @@ void FSR::process(Ref p_render_buffers, RID p_source_rd_te RID shader = fsr_shader.version_get_shader(shader_version, 0); ERR_FAIL_COND(shader.is_null()); - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); //FSR Easc RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, { default_sampler, p_source_rd_texture }); diff --git a/servers/rendering/renderer_rd/effects/luminance.cpp b/servers/rendering/renderer_rd/effects/luminance.cpp index 1e0d3d8b93..d9a2ed8ca9 100644 --- a/servers/rendering/renderer_rd/effects/luminance.cpp +++ b/servers/rendering/renderer_rd/effects/luminance.cpp @@ -162,7 +162,7 @@ void Luminance::luminance_reduction(RID p_source_texture, const Size2i p_source_ ERR_FAIL_NULL(material_storage); // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); if (prefer_raster_effects) { LuminanceReduceRasterPushConstant push_constant; diff --git a/servers/rendering/renderer_rd/effects/motion_vectors_store.cpp b/servers/rendering/renderer_rd/effects/motion_vectors_store.cpp index 6413b86fb4..7715d0d1ab 100644 --- a/servers/rendering/renderer_rd/effects/motion_vectors_store.cpp +++ b/servers/rendering/renderer_rd/effects/motion_vectors_store.cpp @@ -71,7 +71,7 @@ void MotionVectorsStore::process(Ref p_render_buffers, RendererRD::MaterialStorage::store_camera(reprojection, push_constant.reprojection_matrix); } - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::get_singleton()->draw_command_begin_label("Motion Vector Store"); diff --git a/servers/rendering/renderer_rd/effects/resolve.cpp b/servers/rendering/renderer_rd/effects/resolve.cpp index ffbdaac1b7..8480ffd60a 100644 --- a/servers/rendering/renderer_rd/effects/resolve.cpp +++ b/servers/rendering/renderer_rd/effects/resolve.cpp @@ -82,7 +82,7 @@ void Resolve::resolve_gi(RID p_source_depth, RID p_source_normal_roughness, RID push_constant.samples = p_samples; // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_depth(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_depth })); RD::Uniform u_source_normal_roughness(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 1, Vector({ default_sampler, p_source_normal_roughness })); @@ -126,7 +126,7 @@ void Resolve::resolve_depth(RID p_source_depth, RID p_dest_depth, Vector2i p_scr push_constant.samples = p_samples; // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_depth(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_depth })); RD::Uniform u_dest_depth(RD::UNIFORM_TYPE_IMAGE, 0, p_dest_depth); @@ -154,7 +154,7 @@ void Resolve::resolve_depth_raster(RID p_source_rd_texture, RID p_dest_framebuff memset(&resolve_raster.push_constant, 0, sizeof(ResolvePushConstant)); resolve_raster.push_constant.samples = p_samples; - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); diff --git a/servers/rendering/renderer_rd/effects/roughness_limiter.cpp b/servers/rendering/renderer_rd/effects/roughness_limiter.cpp index 7200ae54ac..6c6efd905b 100644 --- a/servers/rendering/renderer_rd/effects/roughness_limiter.cpp +++ b/servers/rendering/renderer_rd/effects/roughness_limiter.cpp @@ -60,7 +60,7 @@ void RoughnessLimiter::roughness_limit(RID p_source_normal, RID p_roughness, con push_constant.screen_size[1] = p_size.y; push_constant.curve = p_curve; - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RID rl_shader = shader.version_get_shader(shader_version, 0); RD::Uniform u_source_normal(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_normal })); diff --git a/servers/rendering/renderer_rd/effects/smaa.cpp b/servers/rendering/renderer_rd/effects/smaa.cpp index 381da967a7..d7fdb024fc 100644 --- a/servers/rendering/renderer_rd/effects/smaa.cpp +++ b/servers/rendering/renderer_rd/effects/smaa.cpp @@ -183,7 +183,7 @@ void SMAA::process(Ref p_render_buffers, RID p_source_colo smaa.blend_push_constant.inv_size[1] = inv_size.y; smaa.blend_push_constant.use_debanding = p_use_debanding; - RID linear_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID linear_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); allocate_render_targets(p_render_buffers); RID edges_tex = p_render_buffers->get_texture(RB_SCOPE_SMAA, RB_EDGES); diff --git a/servers/rendering/renderer_rd/effects/ss_effects.cpp b/servers/rendering/renderer_rd/effects/ss_effects.cpp index 7e10a40e7d..b449ea317e 100644 --- a/servers/rendering/renderer_rd/effects/ss_effects.cpp +++ b/servers/rendering/renderer_rd/effects/ss_effects.cpp @@ -100,7 +100,7 @@ SSEffects::SSEffects() { } // Initialize Screen Space Indirect Lighting (SSIL) - ssil_set_quality(RS::EnvironmentSSILQuality(int(GLOBAL_GET("rendering/environment/ssil/quality"))), GLOBAL_GET("rendering/environment/ssil/half_size"), GLOBAL_GET("rendering/environment/ssil/adaptive_target"), GLOBAL_GET("rendering/environment/ssil/blur_passes"), GLOBAL_GET("rendering/environment/ssil/fadeout_from"), GLOBAL_GET("rendering/environment/ssil/fadeout_to")); + ssil_set_quality(RSE::EnvironmentSSILQuality(int(GLOBAL_GET("rendering/environment/ssil/quality"))), GLOBAL_GET("rendering/environment/ssil/half_size"), GLOBAL_GET("rendering/environment/ssil/adaptive_target"), GLOBAL_GET("rendering/environment/ssil/blur_passes"), GLOBAL_GET("rendering/environment/ssil/fadeout_from"), GLOBAL_GET("rendering/environment/ssil/fadeout_to")); { Vector ssil_modes; @@ -177,7 +177,7 @@ SSEffects::SSEffects() { } // Initialize Screen Space Ambient Occlusion (SSAO) - ssao_set_quality(RS::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/environment/ssao/quality"))), GLOBAL_GET("rendering/environment/ssao/half_size"), GLOBAL_GET("rendering/environment/ssao/adaptive_target"), GLOBAL_GET("rendering/environment/ssao/blur_passes"), GLOBAL_GET("rendering/environment/ssao/fadeout_from"), GLOBAL_GET("rendering/environment/ssao/fadeout_to")); + ssao_set_quality(RSE::EnvironmentSSAOQuality(int(GLOBAL_GET("rendering/environment/ssao/quality"))), GLOBAL_GET("rendering/environment/ssao/half_size"), GLOBAL_GET("rendering/environment/ssao/adaptive_target"), GLOBAL_GET("rendering/environment/ssao/blur_passes"), GLOBAL_GET("rendering/environment/ssao/fadeout_from"), GLOBAL_GET("rendering/environment/ssao/fadeout_to")); { RD::SamplerState sampler; @@ -343,7 +343,7 @@ SSEffects::SSEffects() { } // Subsurface scattering - sss_quality = RS::SubSurfaceScatteringQuality(int(GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_quality"))); + sss_quality = RSE::SubSurfaceScatteringQuality(int(GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_quality"))); sss_scale = GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_scale"); sss_depth_scale = GLOBAL_GET("rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale"); @@ -518,9 +518,9 @@ void SSEffects::downsample_depth(Ref p_render_buffers, uin RD::ComputeListID compute_list = RD::get_singleton()->compute_list_begin(); int downsample_mode = SS_EFFECTS_DOWNSAMPLE; - bool use_mips = ssao_quality > RS::ENV_SSAO_QUALITY_MEDIUM || ssil_quality > RS::ENV_SSIL_QUALITY_MEDIUM; + bool use_mips = ssao_quality > RSE::ENV_SSAO_QUALITY_MEDIUM || ssil_quality > RSE::ENV_SSIL_QUALITY_MEDIUM; - if (ssao_quality == RS::ENV_SSAO_QUALITY_VERY_LOW && ssil_quality == RS::ENV_SSIL_QUALITY_VERY_LOW) { + if (ssao_quality == RSE::ENV_SSAO_QUALITY_VERY_LOW && ssil_quality == RSE::ENV_SSIL_QUALITY_VERY_LOW) { downsample_mode = SS_EFFECTS_DOWNSAMPLE_HALF; } else if (use_mips) { downsample_mode = SS_EFFECTS_DOWNSAMPLE_MIPMAP; @@ -594,7 +594,7 @@ void SSEffects::downsample_depth(Ref p_render_buffers, uin ss_effects.downsample_push_constant.pixel_size[1] = 1.0 / full_screen_size.y; ss_effects.downsample_push_constant.radius_sq = 1.0; - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RID depth_texture = p_render_buffers->get_depth_texture(p_view); RID depth_mipmap = p_render_buffers->get_texture_slice(RB_SCOPE_SSDS, RB_LINEAR_DEPTH, p_view * 4, depth_index, 4, 1); @@ -627,7 +627,7 @@ void SSEffects::downsample_depth(Ref p_render_buffers, uin /* SSIL */ -void SSEffects::ssil_set_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) { +void SSEffects::ssil_set_quality(RSE::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) { ssil_quality = p_quality; ssil_half_size = p_half_size; ssil_adaptive_target = p_adaptive_target; @@ -641,7 +641,7 @@ void SSEffects::gather_ssil(RD::ComputeListID p_compute_list, const RID *p_ssil_ ERR_FAIL_NULL(uniform_set_cache); RD::get_singleton()->compute_list_bind_uniform_set(p_compute_list, p_gather_uniform_set, 0); - if ((ssil_quality == RS::ENV_SSIL_QUALITY_ULTRA) && !p_adaptive_base_pass) { + if ((ssil_quality == RSE::ENV_SSIL_QUALITY_ULTRA) && !p_adaptive_base_pass) { RD::get_singleton()->compute_list_bind_uniform_set(p_compute_list, p_importance_map_uniform_set, 1); } RD::get_singleton()->compute_list_bind_uniform_set(p_compute_list, p_projection_uniform_set, 3); @@ -649,7 +649,7 @@ void SSEffects::gather_ssil(RD::ComputeListID p_compute_list, const RID *p_ssil_ RID shader = ssil.gather_shader.version_get_shader(ssil.gather_shader_version, 0); for (int i = 0; i < 4; i++) { - if ((ssil_quality == RS::ENV_SSIL_QUALITY_VERY_LOW) && ((i == 1) || (i == 2))) { + if ((ssil_quality == RSE::ENV_SSIL_QUALITY_VERY_LOW) && ((i == 1) || (i == 2))) { continue; } @@ -754,8 +754,8 @@ void SSEffects::screen_space_indirect_lighting(Ref p_rende memset(&ssil.gather_push_constant, 0, sizeof(SSILGatherPushConstant)); RID shader = ssil.gather_shader.version_get_shader(ssil.gather_shader_version, SSIL_GATHER); - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); - RID default_mipmap_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_mipmap_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::ComputeListID compute_list = RD::get_singleton()->compute_list_begin(); { @@ -783,10 +783,10 @@ void SSEffects::screen_space_indirect_lighting(Ref p_rende ssil.gather_push_constant.radius = p_settings.radius; float radius_near_limit = (p_settings.radius * 1.2f); - if (ssil_quality <= RS::ENV_SSIL_QUALITY_LOW) { + if (ssil_quality <= RSE::ENV_SSIL_QUALITY_LOW) { radius_near_limit *= 1.50f; - if (ssil_quality == RS::ENV_SSIL_QUALITY_VERY_LOW) { + if (ssil_quality == RSE::ENV_SSIL_QUALITY_VERY_LOW) { ssil.gather_push_constant.radius *= 0.8f; } } @@ -869,7 +869,7 @@ void SSEffects::screen_space_indirect_lighting(Ref p_rende importance_map_uniform_set = uniform_set_cache->get_cache(shader_adaptive, 1, u_pong, u_importance_map, u_load_counter); } - if (ssil_quality == RS::ENV_SSIL_QUALITY_ULTRA) { + if (ssil_quality == RSE::ENV_SSIL_QUALITY_ULTRA) { RD::get_singleton()->draw_command_begin_label("Generate Importance Map"); ssil.importance_map_push_constant.half_screen_pixel_size[0] = 1.0 / p_ssil_buffers.buffer_width; ssil.importance_map_push_constant.half_screen_pixel_size[1] = 1.0 / p_ssil_buffers.buffer_height; @@ -932,13 +932,13 @@ void SSEffects::screen_space_indirect_lighting(Ref p_rende ssil.blur_push_constant.half_screen_pixel_size[0] = 1.0 / p_ssil_buffers.buffer_width; ssil.blur_push_constant.half_screen_pixel_size[1] = 1.0 / p_ssil_buffers.buffer_height; - int blur_passes = ssil_quality > RS::ENV_SSIL_QUALITY_VERY_LOW ? ssil_blur_passes : 1; + int blur_passes = ssil_quality > RSE::ENV_SSIL_QUALITY_VERY_LOW ? ssil_blur_passes : 1; shader = ssil.blur_shader.version_get_shader(ssil.blur_shader_version, 0); for (int pass = 0; pass < blur_passes; pass++) { int blur_pipeline = SSIL_BLUR_PASS; - if (ssil_quality > RS::ENV_SSIL_QUALITY_VERY_LOW) { + if (ssil_quality > RSE::ENV_SSIL_QUALITY_VERY_LOW) { blur_pipeline = SSIL_BLUR_PASS_SMART; if (pass < blur_passes - 2) { blur_pipeline = SSIL_BLUR_PASS_WIDE; @@ -948,13 +948,13 @@ void SSEffects::screen_space_indirect_lighting(Ref p_rende RID blur_shader = ssil.blur_shader.version_get_shader(ssil.blur_shader_version, blur_pipeline - SSIL_BLUR_PASS); for (int i = 0; i < 4; i++) { - if ((ssil_quality == RS::ENV_SSIL_QUALITY_VERY_LOW) && ((i == 1) || (i == 2))) { + if ((ssil_quality == RSE::ENV_SSIL_QUALITY_VERY_LOW) && ((i == 1) || (i == 2))) { continue; } RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, ssil.pipelines[blur_pipeline].get_rid()); if (pass % 2 == 0) { - if (ssil_quality == RS::ENV_SSIL_QUALITY_VERY_LOW) { + if (ssil_quality == RSE::ENV_SSIL_QUALITY_VERY_LOW) { RD::Uniform u_ssil_slice(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, deinterleaved_slices[i] })); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, uniform_set_cache->get_cache(blur_shader, 0, u_ssil_slice), 0); } else { @@ -965,7 +965,7 @@ void SSEffects::screen_space_indirect_lighting(Ref p_rende RD::Uniform u_ssil_pong_slice(RD::UNIFORM_TYPE_IMAGE, 0, Vector({ deinterleaved_pong_slices[i] })); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, uniform_set_cache->get_cache(blur_shader, 1, u_ssil_pong_slice), 1); } else { - if (ssil_quality == RS::ENV_SSIL_QUALITY_VERY_LOW) { + if (ssil_quality == RSE::ENV_SSIL_QUALITY_VERY_LOW) { RD::Uniform u_ssil_pong_slice(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, deinterleaved_pong_slices[i] })); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, uniform_set_cache->get_cache(blur_shader, 0, u_ssil_pong_slice), 0); } else { @@ -1003,9 +1003,9 @@ void SSEffects::screen_space_indirect_lighting(Ref p_rende ssil.interleave_push_constant.size_modifier = uint32_t(ssil_half_size ? 4 : 2); int interleave_pipeline = SSIL_INTERLEAVE_HALF; - if (ssil_quality == RS::ENV_SSIL_QUALITY_LOW) { + if (ssil_quality == RSE::ENV_SSIL_QUALITY_LOW) { interleave_pipeline = SSIL_INTERLEAVE; - } else if (ssil_quality >= RS::ENV_SSIL_QUALITY_MEDIUM) { + } else if (ssil_quality >= RSE::ENV_SSIL_QUALITY_MEDIUM) { interleave_pipeline = SSIL_INTERLEAVE_SMART; } @@ -1017,7 +1017,7 @@ void SSEffects::screen_space_indirect_lighting(Ref p_rende RD::Uniform u_destination(RD::UNIFORM_TYPE_IMAGE, 0, Vector({ final })); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, uniform_set_cache->get_cache(shader, 0, u_destination), 0); - if (ssil_quality > RS::ENV_SSIL_QUALITY_VERY_LOW && ssil_blur_passes % 2 == 0) { + if (ssil_quality > RSE::ENV_SSIL_QUALITY_VERY_LOW && ssil_blur_passes % 2 == 0) { RD::Uniform u_ssil(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, deinterleaved })); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, uniform_set_cache->get_cache(shader, 1, u_ssil), 1); } else { @@ -1045,7 +1045,7 @@ void SSEffects::screen_space_indirect_lighting(Ref p_rende /* SSAO */ -void SSEffects::ssao_set_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) { +void SSEffects::ssao_set_quality(RSE::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) { ssao_quality = p_quality; ssao_half_size = p_half_size; ssao_adaptive_target = p_adaptive_target; @@ -1059,14 +1059,14 @@ void SSEffects::gather_ssao(RD::ComputeListID p_compute_list, const RID *p_ao_sl ERR_FAIL_NULL(uniform_set_cache); RD::get_singleton()->compute_list_bind_uniform_set(p_compute_list, p_gather_uniform_set, 0); - if ((ssao_quality == RS::ENV_SSAO_QUALITY_ULTRA) && !p_adaptive_base_pass) { + if ((ssao_quality == RSE::ENV_SSAO_QUALITY_ULTRA) && !p_adaptive_base_pass) { RD::get_singleton()->compute_list_bind_uniform_set(p_compute_list, p_importance_map_uniform_set, 1); } RID shader = ssao.gather_shader.version_get_shader(ssao.gather_shader_version, 1); // for (int i = 0; i < 4; i++) { - if ((ssao_quality == RS::ENV_SSAO_QUALITY_VERY_LOW) && ((i == 1) || (i == 2))) { + if ((ssao_quality == RSE::ENV_SSAO_QUALITY_VERY_LOW) && ((i == 1) || (i == 2))) { continue; } @@ -1152,7 +1152,7 @@ void SSEffects::generate_ssao(Ref p_render_buffers, SSAORe /* FIRST PASS */ RID shader = ssao.gather_shader.version_get_shader(ssao.gather_shader_version, SSAO_GATHER); - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::get_singleton()->draw_command_begin_label("Process Screen-Space Ambient Occlusion"); /* SECOND PASS */ @@ -1180,10 +1180,10 @@ void SSEffects::generate_ssao(Ref p_render_buffers, SSAORe ssao.gather_push_constant.radius = p_settings.radius; float radius_near_limit = (p_settings.radius * 1.2f); - if (ssao_quality <= RS::ENV_SSAO_QUALITY_LOW) { + if (ssao_quality <= RSE::ENV_SSAO_QUALITY_LOW) { radius_near_limit *= 1.50f; - if (ssao_quality == RS::ENV_SSAO_QUALITY_VERY_LOW) { + if (ssao_quality == RSE::ENV_SSAO_QUALITY_VERY_LOW) { ssao.gather_push_constant.radius *= 0.8f; } } @@ -1252,7 +1252,7 @@ void SSEffects::generate_ssao(Ref p_render_buffers, SSAORe importance_map_uniform_set = uniform_set_cache->get_cache(shader_adaptive, 1, u_pong, u_importance_map, u_load_counter); } - if (ssao_quality == RS::ENV_SSAO_QUALITY_ULTRA) { + if (ssao_quality == RSE::ENV_SSAO_QUALITY_ULTRA) { RD::get_singleton()->draw_command_begin_label("Generate Importance Map"); ssao.importance_map_push_constant.half_screen_pixel_size[0] = 1.0 / p_ssao_buffers.buffer_width; ssao.importance_map_push_constant.half_screen_pixel_size[1] = 1.0 / p_ssao_buffers.buffer_height; @@ -1323,13 +1323,13 @@ void SSEffects::generate_ssao(Ref p_render_buffers, SSAORe ssao.blur_push_constant.half_screen_pixel_size[0] = 1.0 / p_ssao_buffers.buffer_width; ssao.blur_push_constant.half_screen_pixel_size[1] = 1.0 / p_ssao_buffers.buffer_height; - int blur_passes = ssao_quality > RS::ENV_SSAO_QUALITY_VERY_LOW ? ssao_blur_passes : 1; + int blur_passes = ssao_quality > RSE::ENV_SSAO_QUALITY_VERY_LOW ? ssao_blur_passes : 1; shader = ssao.blur_shader.version_get_shader(ssao.blur_shader_version, 0); for (int pass = 0; pass < blur_passes; pass++) { int blur_pipeline = SSAO_BLUR_PASS; - if (ssao_quality > RS::ENV_SSAO_QUALITY_VERY_LOW) { + if (ssao_quality > RSE::ENV_SSAO_QUALITY_VERY_LOW) { if (pass < blur_passes - 2) { blur_pipeline = SSAO_BLUR_PASS_WIDE; } else { @@ -1338,14 +1338,14 @@ void SSEffects::generate_ssao(Ref p_render_buffers, SSAORe } for (int i = 0; i < 4; i++) { - if ((ssao_quality == RS::ENV_SSAO_QUALITY_VERY_LOW) && ((i == 1) || (i == 2))) { + if ((ssao_quality == RSE::ENV_SSAO_QUALITY_VERY_LOW) && ((i == 1) || (i == 2))) { continue; } RID blur_shader = ssao.blur_shader.version_get_shader(ssao.blur_shader_version, blur_pipeline - SSAO_BLUR_PASS); RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, ssao.pipelines[blur_pipeline].get_rid()); if (pass % 2 == 0) { - if (ssao_quality == RS::ENV_SSAO_QUALITY_VERY_LOW) { + if (ssao_quality == RSE::ENV_SSAO_QUALITY_VERY_LOW) { RD::Uniform u_ao_slices_with_sampler(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, ao_deinterleaved_slices[i] })); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, uniform_set_cache->get_cache(blur_shader, 0, u_ao_slices_with_sampler), 0); } else { @@ -1356,7 +1356,7 @@ void SSEffects::generate_ssao(Ref p_render_buffers, SSAORe RD::Uniform u_ao_pong_slices(RD::UNIFORM_TYPE_IMAGE, 0, Vector({ ao_pong_slices[i] })); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, uniform_set_cache->get_cache(blur_shader, 1, u_ao_pong_slices), 1); } else { - if (ssao_quality == RS::ENV_SSAO_QUALITY_VERY_LOW) { + if (ssao_quality == RSE::ENV_SSAO_QUALITY_VERY_LOW) { RD::Uniform u_ao_pong_slices_with_sampler(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, ao_pong_slices[i] })); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, uniform_set_cache->get_cache(blur_shader, 0, u_ao_pong_slices_with_sampler), 0); } else { @@ -1390,9 +1390,9 @@ void SSEffects::generate_ssao(Ref p_render_buffers, SSAORe shader = ssao.interleave_shader.version_get_shader(ssao.interleave_shader_version, 0); int interleave_pipeline = SSAO_INTERLEAVE_HALF; - if (ssao_quality == RS::ENV_SSAO_QUALITY_LOW) { + if (ssao_quality == RSE::ENV_SSAO_QUALITY_LOW) { interleave_pipeline = SSAO_INTERLEAVE; - } else if (ssao_quality >= RS::ENV_SSAO_QUALITY_MEDIUM) { + } else if (ssao_quality >= RSE::ENV_SSAO_QUALITY_MEDIUM) { interleave_pipeline = SSAO_INTERLEAVE_SMART; } @@ -1402,7 +1402,7 @@ void SSEffects::generate_ssao(Ref p_render_buffers, SSAORe RD::Uniform u_upscale_buffer(RD::UNIFORM_TYPE_IMAGE, 0, Vector({ ao_final })); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, uniform_set_cache->get_cache(interleave_shader, 0, u_upscale_buffer), 0); - if (ssao_quality > RS::ENV_SSAO_QUALITY_VERY_LOW && ssao_blur_passes % 2 == 0) { + if (ssao_quality > RSE::ENV_SSAO_QUALITY_VERY_LOW && ssao_blur_passes % 2 == 0) { RD::Uniform u_ao(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, ao_deinterleaved })); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, uniform_set_cache->get_cache(interleave_shader, 1, u_ao), 1); } else { @@ -1501,8 +1501,8 @@ void SSEffects::screen_space_reflection(Ref p_render_buffe RD::get_singleton()->buffer_update(ssr.ubo, 0, sizeof(ScreenSpaceReflectionSceneData), &scene_data); } - RID linear_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); - RID nearest_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID linear_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID nearest_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); if (ssr_half_size) { RD::get_singleton()->draw_command_begin_label("SSR Downsample"); @@ -1733,11 +1733,11 @@ void SSEffects::screen_space_reflection(Ref p_render_buffe /* Subsurface scattering */ -void SSEffects::sss_set_quality(RS::SubSurfaceScatteringQuality p_quality) { +void SSEffects::sss_set_quality(RSE::SubSurfaceScatteringQuality p_quality) { sss_quality = p_quality; } -RS::SubSurfaceScatteringQuality SSEffects::sss_get_quality() const { +RSE::SubSurfaceScatteringQuality SSEffects::sss_get_quality() const { return sss_quality; } @@ -1752,7 +1752,7 @@ void SSEffects::sub_surface_scattering(Ref p_render_buffer MaterialStorage *material_storage = MaterialStorage::get_singleton(); ERR_FAIL_NULL(material_storage); - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); // Our intermediate buffer is only created if we haven't created it already. RD::DataFormat format = p_render_buffers->get_base_data_format(); diff --git a/servers/rendering/renderer_rd/effects/ss_effects.h b/servers/rendering/renderer_rd/effects/ss_effects.h index f41f871bec..747b05cd66 100644 --- a/servers/rendering/renderer_rd/effects/ss_effects.h +++ b/servers/rendering/renderer_rd/effects/ss_effects.h @@ -94,7 +94,7 @@ public: void downsample_depth(Ref p_render_buffers, uint32_t p_view, const Projection &p_projection); /* SSIL */ - void ssil_set_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to); + void ssil_set_quality(RSE::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to); struct SSILRenderBuffers { bool half_size = false; @@ -117,7 +117,7 @@ public: void screen_space_indirect_lighting(Ref p_render_buffers, SSILRenderBuffers &p_ssil_buffers, uint32_t p_view, RID p_normal_buffer, const Projection &p_projection, const Projection &p_last_projection, const SSILSettings &p_settings); /* SSAO */ - void ssao_set_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to); + void ssao_set_quality(RSE::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to); struct SSAORenderBuffers { bool half_size = false; @@ -154,8 +154,8 @@ public: void screen_space_reflection(Ref p_render_buffers, SSRRenderBuffers &p_ssr_buffers, const RID *p_normal_roughness_slices, int p_max_steps, float p_fade_in, float p_fade_out, float p_tolerance, const Projection *p_projections, const Projection *p_reprojections, const Vector3 *p_eye_offsets, RendererRD::CopyEffects &p_copy_effects); /* subsurface scattering */ - void sss_set_quality(RS::SubSurfaceScatteringQuality p_quality); - RS::SubSurfaceScatteringQuality sss_get_quality() const; + void sss_set_quality(RSE::SubSurfaceScatteringQuality p_quality); + RSE::SubSurfaceScatteringQuality sss_get_quality() const; void sss_set_scale(float p_scale, float p_depth_scale); void sub_surface_scattering(Ref p_render_buffers, RID p_diffuse, RID p_depth, const Projection &p_camera, const Size2i &p_screen_size); @@ -163,14 +163,14 @@ public: private: /* Settings */ - RS::EnvironmentSSAOQuality ssao_quality = RS::ENV_SSAO_QUALITY_MEDIUM; + RSE::EnvironmentSSAOQuality ssao_quality = RSE::ENV_SSAO_QUALITY_MEDIUM; bool ssao_half_size = false; float ssao_adaptive_target = 0.5; int ssao_blur_passes = 2; float ssao_fadeout_from = 50.0; float ssao_fadeout_to = 300.0; - RS::EnvironmentSSILQuality ssil_quality = RS::ENV_SSIL_QUALITY_MEDIUM; + RSE::EnvironmentSSILQuality ssil_quality = RSE::ENV_SSIL_QUALITY_MEDIUM; bool ssil_half_size = false; float ssil_adaptive_target = 0.5; int ssil_blur_passes = 4; @@ -179,7 +179,7 @@ private: bool ssr_half_size = false; - RS::SubSurfaceScatteringQuality sss_quality = RS::SUB_SURFACE_SCATTERING_QUALITY_MEDIUM; + RSE::SubSurfaceScatteringQuality sss_quality = RSE::SUB_SURFACE_SCATTERING_QUALITY_MEDIUM; float sss_scale = 0.05; float sss_depth_scale = 0.01; diff --git a/servers/rendering/renderer_rd/effects/taa.cpp b/servers/rendering/renderer_rd/effects/taa.cpp index 84bb43a14e..b0f46db8c2 100644 --- a/servers/rendering/renderer_rd/effects/taa.cpp +++ b/servers/rendering/renderer_rd/effects/taa.cpp @@ -56,7 +56,7 @@ void TAA::resolve(RID p_frame, RID p_temp, RID p_depth, RID p_velocity, RID p_pr RID shader = taa_shader.version_get_shader(shader_version, 0); ERR_FAIL_COND(shader.is_null()); - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); float base_variance = 1.1f; float base_variance_min = 0.75f; diff --git a/servers/rendering/renderer_rd/effects/tone_mapper.cpp b/servers/rendering/renderer_rd/effects/tone_mapper.cpp index 7000d5f246..cf039996d2 100644 --- a/servers/rendering/renderer_rd/effects/tone_mapper.cpp +++ b/servers/rendering/renderer_rd/effects/tone_mapper.cpp @@ -174,8 +174,8 @@ void ToneMapper::tonemapper(RID p_source_color, RID p_dst_framebuffer, const Ton mode += 4; } - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); - RID default_mipmap_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_mipmap_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_color(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_color })); @@ -257,16 +257,16 @@ void ToneMapper::tonemapper_mobile(RID p_source_color, RID p_dst_framebuffer, co spec_constant |= p_settings.debanding_mode == TonemapSettings::DEBANDING_MODE_8_BIT ? TONEMAP_MOBILE_FLAG_USE_8_BIT_DEBANDING : 0; spec_constant |= p_settings.debanding_mode == TonemapSettings::DEBANDING_MODE_10_BIT ? TONEMAP_MOBILE_FLAG_USE_10_BIT_DEBANDING : 0; spec_constant |= p_settings.convert_to_srgb ? TONEMAP_MOBILE_FLAG_CONVERT_TO_SRGB : 0; - spec_constant |= p_settings.tonemap_mode == RS::ENV_TONE_MAPPER_LINEAR ? TONEMAP_MOBILE_FLAG_TONEMAPPER_LINEAR : 0; - spec_constant |= p_settings.tonemap_mode == RS::ENV_TONE_MAPPER_REINHARD ? TONEMAP_MOBILE_FLAG_TONEMAPPER_REINHARD : 0; - spec_constant |= p_settings.tonemap_mode == RS::ENV_TONE_MAPPER_FILMIC ? TONEMAP_MOBILE_FLAG_TONEMAPPER_FILMIC : 0; - spec_constant |= p_settings.tonemap_mode == RS::ENV_TONE_MAPPER_ACES ? TONEMAP_MOBILE_FLAG_TONEMAPPER_ACES : 0; - spec_constant |= p_settings.tonemap_mode == RS::ENV_TONE_MAPPER_AGX ? TONEMAP_MOBILE_FLAG_TONEMAPPER_AGX : 0; - spec_constant |= p_settings.glow_mode == RS::ENV_GLOW_BLEND_MODE_ADDITIVE ? TONEMAP_MOBILE_FLAG_GLOW_MODE_ADD : 0; - spec_constant |= p_settings.glow_mode == RS::ENV_GLOW_BLEND_MODE_SCREEN ? TONEMAP_MOBILE_FLAG_GLOW_MODE_SCREEN : 0; - spec_constant |= p_settings.glow_mode == RS::ENV_GLOW_BLEND_MODE_SOFTLIGHT ? TONEMAP_MOBILE_FLAG_GLOW_MODE_SOFTLIGHT : 0; - spec_constant |= p_settings.glow_mode == RS::ENV_GLOW_BLEND_MODE_REPLACE ? TONEMAP_MOBILE_FLAG_GLOW_MODE_REPLACE : 0; - spec_constant |= p_settings.glow_mode == RS::ENV_GLOW_BLEND_MODE_MIX ? TONEMAP_MOBILE_FLAG_GLOW_MODE_MIX : 0; + spec_constant |= p_settings.tonemap_mode == RSE::ENV_TONE_MAPPER_LINEAR ? TONEMAP_MOBILE_FLAG_TONEMAPPER_LINEAR : 0; + spec_constant |= p_settings.tonemap_mode == RSE::ENV_TONE_MAPPER_REINHARD ? TONEMAP_MOBILE_FLAG_TONEMAPPER_REINHARD : 0; + spec_constant |= p_settings.tonemap_mode == RSE::ENV_TONE_MAPPER_FILMIC ? TONEMAP_MOBILE_FLAG_TONEMAPPER_FILMIC : 0; + spec_constant |= p_settings.tonemap_mode == RSE::ENV_TONE_MAPPER_ACES ? TONEMAP_MOBILE_FLAG_TONEMAPPER_ACES : 0; + spec_constant |= p_settings.tonemap_mode == RSE::ENV_TONE_MAPPER_AGX ? TONEMAP_MOBILE_FLAG_TONEMAPPER_AGX : 0; + spec_constant |= p_settings.glow_mode == RSE::ENV_GLOW_BLEND_MODE_ADDITIVE ? TONEMAP_MOBILE_FLAG_GLOW_MODE_ADD : 0; + spec_constant |= p_settings.glow_mode == RSE::ENV_GLOW_BLEND_MODE_SCREEN ? TONEMAP_MOBILE_FLAG_GLOW_MODE_SCREEN : 0; + spec_constant |= p_settings.glow_mode == RSE::ENV_GLOW_BLEND_MODE_SOFTLIGHT ? TONEMAP_MOBILE_FLAG_GLOW_MODE_SOFTLIGHT : 0; + spec_constant |= p_settings.glow_mode == RSE::ENV_GLOW_BLEND_MODE_REPLACE ? TONEMAP_MOBILE_FLAG_GLOW_MODE_REPLACE : 0; + spec_constant |= p_settings.glow_mode == RSE::ENV_GLOW_BLEND_MODE_MIX ? TONEMAP_MOBILE_FLAG_GLOW_MODE_MIX : 0; int mode = p_settings.use_1d_color_correction ? TONEMAP_MOBILE_MODE_1D_LUT : TONEMAP_MOBILE_MODE_NORMAL; @@ -275,8 +275,8 @@ void ToneMapper::tonemapper_mobile(RID p_source_color, RID p_dst_framebuffer, co mode += 4; } - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); - RID default_mipmap_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_mipmap_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_color(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_color })); @@ -346,16 +346,16 @@ void ToneMapper::tonemapper_subpass(RD::DrawListID p_subpass_draw_list, RID p_so //spec_constant |= p_settings.use_fxaa ? TONEMAP_MOBILE_FLAG_USE_FXAA : 0; spec_constant |= p_settings.debanding_mode == TonemapSettings::DEBANDING_MODE_8_BIT ? TONEMAP_MOBILE_FLAG_USE_8_BIT_DEBANDING : 0; spec_constant |= p_settings.convert_to_srgb ? TONEMAP_MOBILE_FLAG_CONVERT_TO_SRGB : 0; - spec_constant |= p_settings.tonemap_mode == RS::ENV_TONE_MAPPER_LINEAR ? TONEMAP_MOBILE_FLAG_TONEMAPPER_LINEAR : 0; - spec_constant |= p_settings.tonemap_mode == RS::ENV_TONE_MAPPER_REINHARD ? TONEMAP_MOBILE_FLAG_TONEMAPPER_REINHARD : 0; - spec_constant |= p_settings.tonemap_mode == RS::ENV_TONE_MAPPER_FILMIC ? TONEMAP_MOBILE_FLAG_TONEMAPPER_FILMIC : 0; - spec_constant |= p_settings.tonemap_mode == RS::ENV_TONE_MAPPER_ACES ? TONEMAP_MOBILE_FLAG_TONEMAPPER_ACES : 0; - spec_constant |= p_settings.tonemap_mode == RS::ENV_TONE_MAPPER_AGX ? TONEMAP_MOBILE_FLAG_TONEMAPPER_AGX : 0; - //spec_constant |= p_settings.glow_mode == RS::ENV_GLOW_BLEND_MODE_ADDITIVE ? TONEMAP_MOBILE_FLAG_GLOW_MODE_ADD : 0; - //spec_constant |= p_settings.glow_mode == RS::ENV_GLOW_BLEND_MODE_SCREEN ? TONEMAP_MOBILE_FLAG_GLOW_MODE_SCREEN : 0; - //spec_constant |= p_settings.glow_mode == RS::ENV_GLOW_BLEND_MODE_SOFTLIGHT ? TONEMAP_MOBILE_FLAG_GLOW_MODE_SOFTLIGHT : 0; - //spec_constant |= p_settings.glow_mode == RS::ENV_GLOW_BLEND_MODE_REPLACE ? TONEMAP_MOBILE_FLAG_GLOW_MODE_REPLACE : 0; - //spec_constant |= p_settings.glow_mode == RS::ENV_GLOW_BLEND_MODE_MIX ? TONEMAP_MOBILE_FLAG_GLOW_MODE_MIX : 0; + spec_constant |= p_settings.tonemap_mode == RSE::ENV_TONE_MAPPER_LINEAR ? TONEMAP_MOBILE_FLAG_TONEMAPPER_LINEAR : 0; + spec_constant |= p_settings.tonemap_mode == RSE::ENV_TONE_MAPPER_REINHARD ? TONEMAP_MOBILE_FLAG_TONEMAPPER_REINHARD : 0; + spec_constant |= p_settings.tonemap_mode == RSE::ENV_TONE_MAPPER_FILMIC ? TONEMAP_MOBILE_FLAG_TONEMAPPER_FILMIC : 0; + spec_constant |= p_settings.tonemap_mode == RSE::ENV_TONE_MAPPER_ACES ? TONEMAP_MOBILE_FLAG_TONEMAPPER_ACES : 0; + spec_constant |= p_settings.tonemap_mode == RSE::ENV_TONE_MAPPER_AGX ? TONEMAP_MOBILE_FLAG_TONEMAPPER_AGX : 0; + //spec_constant |= p_settings.glow_mode == RSE::ENV_GLOW_BLEND_MODE_ADDITIVE ? TONEMAP_MOBILE_FLAG_GLOW_MODE_ADD : 0; + //spec_constant |= p_settings.glow_mode == RSE::ENV_GLOW_BLEND_MODE_SCREEN ? TONEMAP_MOBILE_FLAG_GLOW_MODE_SCREEN : 0; + //spec_constant |= p_settings.glow_mode == RSE::ENV_GLOW_BLEND_MODE_SOFTLIGHT ? TONEMAP_MOBILE_FLAG_GLOW_MODE_SOFTLIGHT : 0; + //spec_constant |= p_settings.glow_mode == RSE::ENV_GLOW_BLEND_MODE_REPLACE ? TONEMAP_MOBILE_FLAG_GLOW_MODE_REPLACE : 0; + //spec_constant |= p_settings.glow_mode == RSE::ENV_GLOW_BLEND_MODE_MIX ? TONEMAP_MOBILE_FLAG_GLOW_MODE_MIX : 0; int mode = p_settings.use_1d_color_correction ? TONEMAP_MOBILE_MODE_SUBPASS_1D_LUT : TONEMAP_MOBILE_MODE_SUBPASS; if (p_settings.view_count > 1) { @@ -363,8 +363,8 @@ void ToneMapper::tonemapper_subpass(RD::DrawListID p_subpass_draw_list, RID p_so mode += 4; } - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); - RID default_mipmap_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_mipmap_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_color; u_source_color.uniform_type = RD::UNIFORM_TYPE_INPUT_ATTACHMENT; diff --git a/servers/rendering/renderer_rd/effects/tone_mapper.h b/servers/rendering/renderer_rd/effects/tone_mapper.h index d24a0f9534..d6e982a06e 100644 --- a/servers/rendering/renderer_rd/effects/tone_mapper.h +++ b/servers/rendering/renderer_rd/effects/tone_mapper.h @@ -167,7 +167,7 @@ public: struct TonemapSettings { bool use_glow = false; - RS::EnvironmentGlowBlendMode glow_mode = RS::ENV_GLOW_BLEND_MODE_SCREEN; + RSE::EnvironmentGlowBlendMode glow_mode = RSE::ENV_GLOW_BLEND_MODE_SCREEN; float glow_intensity = 0.3; float glow_map_strength = 0.0f; float glow_levels[7] = { 1.0, 0.8, 0.4, 0.1, 0.0, 0.0, 0.0 }; @@ -176,7 +176,7 @@ public: RID glow_texture; RID glow_map; - RS::EnvironmentToneMapper tonemap_mode = RS::ENV_TONE_MAPPER_LINEAR; + RSE::EnvironmentToneMapper tonemap_mode = RSE::ENV_TONE_MAPPER_LINEAR; float tonemapper_params[4] = { 0.0, 0.0, 0.0, 0.0 }; float exposure = 1.0; float white = 1.0; diff --git a/servers/rendering/renderer_rd/effects/vrs.cpp b/servers/rendering/renderer_rd/effects/vrs.cpp index 4f6e119773..8cb3a42283 100644 --- a/servers/rendering/renderer_rd/effects/vrs.cpp +++ b/servers/rendering/renderer_rd/effects/vrs.cpp @@ -29,10 +29,13 @@ /**************************************************************************/ #include "vrs.h" + #include "../renderer_compositor_rd.h" #include "../storage_rd/texture_storage.h" #include "../uniform_set_cache_rd.h" +#include "servers/rendering/rendering_server.h" + #ifndef XR_DISABLED #include "servers/xr/xr_server.h" #endif // XR_DISABLED @@ -78,7 +81,7 @@ void VRS::copy_vrs(RID p_source_rd_texture, RID p_dest_framebuffer, bool p_multi ERR_FAIL_NULL(material_storage); // setup our uniforms - RID default_sampler = material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID default_sampler = material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); RD::Uniform u_source_rd_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector({ default_sampler, p_source_rd_texture })); @@ -113,13 +116,13 @@ Size2i VRS::get_vrs_texture_size(const Size2i p_base_size) const { void VRS::update_vrs_texture(RID p_vrs_fb, RID p_render_target) { TextureStorage *texture_storage = TextureStorage::get_singleton(); - RS::ViewportVRSMode vrs_mode = texture_storage->render_target_get_vrs_mode(p_render_target); - RS::ViewportVRSUpdateMode vrs_update_mode = texture_storage->render_target_get_vrs_update_mode(p_render_target); + RSE::ViewportVRSMode vrs_mode = texture_storage->render_target_get_vrs_mode(p_render_target); + RSE::ViewportVRSUpdateMode vrs_update_mode = texture_storage->render_target_get_vrs_update_mode(p_render_target); - if (vrs_mode != RS::VIEWPORT_VRS_DISABLED && vrs_update_mode != RS::VIEWPORT_VRS_UPDATE_DISABLED) { + if (vrs_mode != RSE::VIEWPORT_VRS_DISABLED && vrs_update_mode != RSE::VIEWPORT_VRS_UPDATE_DISABLED) { RD::get_singleton()->draw_command_begin_label("VRS Setup"); - if (vrs_mode == RS::VIEWPORT_VRS_TEXTURE) { + if (vrs_mode == RSE::VIEWPORT_VRS_TEXTURE) { RID vrs_texture = texture_storage->render_target_get_vrs_texture(p_render_target); if (vrs_texture.is_valid()) { RID rd_texture = texture_storage->texture_get_rd_texture(vrs_texture); @@ -130,7 +133,7 @@ void VRS::update_vrs_texture(RID p_vrs_fb, RID p_render_target) { } } #ifndef XR_DISABLED - } else if (vrs_mode == RS::VIEWPORT_VRS_XR) { + } else if (vrs_mode == RSE::VIEWPORT_VRS_XR) { Ref interface = XRServer::get_singleton()->get_primary_interface(); if (interface.is_valid() && interface->get_vrs_texture_format() == XRInterface::XR_VRS_TEXTURE_FORMAT_UNIFIED) { RID vrs_texture = interface->get_vrs_texture(); @@ -147,8 +150,8 @@ void VRS::update_vrs_texture(RID p_vrs_fb, RID p_render_target) { #endif // XR_DISABLED } - if (vrs_update_mode == RS::VIEWPORT_VRS_UPDATE_ONCE) { - texture_storage->render_target_set_vrs_update_mode(p_render_target, RS::VIEWPORT_VRS_UPDATE_DISABLED); + if (vrs_update_mode == RSE::VIEWPORT_VRS_UPDATE_ONCE) { + texture_storage->render_target_set_vrs_update_mode(p_render_target, RSE::VIEWPORT_VRS_UPDATE_DISABLED); } RD::get_singleton()->draw_command_end_label(); diff --git a/servers/rendering/renderer_rd/environment/fog.cpp b/servers/rendering/renderer_rd/environment/fog.cpp index 2663609bde..eee5c6a86a 100644 --- a/servers/rendering/renderer_rd/environment/fog.cpp +++ b/servers/rendering/renderer_rd/environment/fog.cpp @@ -33,6 +33,7 @@ #include "servers/rendering/renderer_rd/renderer_compositor_rd.h" #include "servers/rendering/renderer_rd/storage_rd/material_storage.h" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_default.h" using namespace RendererRD; @@ -95,7 +96,7 @@ Dependency *Fog::fog_volume_get_dependency(RID p_fog_volume) const { return &fog_volume->dependency; } -void Fog::fog_volume_set_shape(RID p_fog_volume, RS::FogVolumeShape p_shape) { +void Fog::fog_volume_set_shape(RID p_fog_volume, RSE::FogVolumeShape p_shape) { FogVolume *fog_volume = fog_volume_owner.get_or_null(p_fog_volume); ERR_FAIL_NULL(fog_volume); @@ -128,9 +129,9 @@ RID Fog::fog_volume_get_material(RID p_fog_volume) const { return fog_volume->material; } -RS::FogVolumeShape Fog::fog_volume_get_shape(RID p_fog_volume) const { +RSE::FogVolumeShape Fog::fog_volume_get_shape(RID p_fog_volume) const { FogVolume *fog_volume = fog_volume_owner.get_or_null(p_fog_volume); - ERR_FAIL_NULL_V(fog_volume, RS::FOG_VOLUME_SHAPE_BOX); + ERR_FAIL_NULL_V(fog_volume, RSE::FOG_VOLUME_SHAPE_BOX); return fog_volume->shape; } @@ -140,10 +141,10 @@ AABB Fog::fog_volume_get_aabb(RID p_fog_volume) const { ERR_FAIL_NULL_V(fog_volume, AABB()); switch (fog_volume->shape) { - case RS::FOG_VOLUME_SHAPE_ELLIPSOID: - case RS::FOG_VOLUME_SHAPE_CONE: - case RS::FOG_VOLUME_SHAPE_CYLINDER: - case RS::FOG_VOLUME_SHAPE_BOX: { + case RSE::FOG_VOLUME_SHAPE_ELLIPSOID: + case RSE::FOG_VOLUME_SHAPE_CONE: + case RSE::FOG_VOLUME_SHAPE_CYLINDER: + case RSE::FOG_VOLUME_SHAPE_BOX: { AABB aabb; aabb.position = -fog_volume->size / 2; aabb.size = fog_volume->size; @@ -377,7 +378,7 @@ void Fog::FogShaderData::set_code(const String &p_code) { Fog *fog_singleton = Fog::get_singleton(); - Error err = fog_singleton->volumetric_fog.compiler.compile(RS::SHADER_FOG, code, &actions, path, gen_code); + Error err = fog_singleton->volumetric_fog.compiler.compile(RSE::SHADER_FOG, code, &actions, path, gen_code); ERR_FAIL_COND_MSG(err != OK, "Fog shader compilation failed."); if (version.is_null()) { @@ -696,10 +697,10 @@ void Fog::volumetric_fog_update(const VolumetricFogSettings &p_settings, const P Vector3i kernel_size; Vector3 fog_position = fog_volume_instance->transform.get_origin(); - RS::FogVolumeShape volume_type = RendererRD::Fog::get_singleton()->fog_volume_get_shape(fog_volume); + RSE::FogVolumeShape volume_type = RendererRD::Fog::get_singleton()->fog_volume_get_shape(fog_volume); Vector3 extents = RendererRD::Fog::get_singleton()->fog_volume_get_size(fog_volume) / 2; - if (volume_type != RS::FOG_VOLUME_SHAPE_WORLD) { + if (volume_type != RSE::FOG_VOLUME_SHAPE_WORLD) { // Local fog volume. Vector3 fog_size = Vector3(fog->width, fog->height, fog->depth); float volumetric_fog_detail_spread = RendererSceneRenderRD::get_singleton()->environment_get_volumetric_fog_detail_spread(p_settings.env); @@ -869,7 +870,7 @@ void Fog::volumetric_fog_update(const VolumetricFogSettings &p_settings, const P RD::Uniform u; u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; u.binding = 7; - u.append_id(material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); copy_uniforms.push_back(u); } @@ -931,7 +932,7 @@ void Fog::volumetric_fog_update(const VolumetricFogSettings &p_settings, const P RD::Uniform u; u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; u.binding = 13; - u.append_id(material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); copy_uniforms.push_back(u); } diff --git a/servers/rendering/renderer_rd/environment/fog.h b/servers/rendering/renderer_rd/environment/fog.h index db8e3352bc..dc1897abbe 100644 --- a/servers/rendering/renderer_rd/environment/fog.h +++ b/servers/rendering/renderer_rd/environment/fog.h @@ -59,7 +59,7 @@ private: RID material; Vector3 size = Vector3(2, 2, 2); - RS::FogVolumeShape shape = RS::FOG_VOLUME_SHAPE_BOX; + RSE::FogVolumeShape shape = RSE::FOG_VOLUME_SHAPE_BOX; Dependency dependency; }; @@ -255,10 +255,10 @@ public: virtual void fog_volume_free(RID p_rid) override; Dependency *fog_volume_get_dependency(RID p_fog_volume) const; - virtual void fog_volume_set_shape(RID p_fog_volume, RS::FogVolumeShape p_shape) override; + virtual void fog_volume_set_shape(RID p_fog_volume, RSE::FogVolumeShape p_shape) override; virtual void fog_volume_set_size(RID p_fog_volume, const Vector3 &p_size) override; virtual void fog_volume_set_material(RID p_fog_volume, RID p_material) override; - virtual RS::FogVolumeShape fog_volume_get_shape(RID p_fog_volume) const override; + virtual RSE::FogVolumeShape fog_volume_get_shape(RID p_fog_volume) const override; RID fog_volume_get_material(RID p_fog_volume) const; virtual AABB fog_volume_get_aabb(RID p_fog_volume) const override; Vector3 fog_volume_get_size(RID p_fog_volume) const; diff --git a/servers/rendering/renderer_rd/environment/gi.cpp b/servers/rendering/renderer_rd/environment/gi.cpp index e5991691ed..e9cc4ed66f 100644 --- a/servers/rendering/renderer_rd/environment/gi.cpp +++ b/servers/rendering/renderer_rd/environment/gi.cpp @@ -756,7 +756,7 @@ void GI::SDFGI::create(RID p_env, const Vector3 &p_world_position, uint32_t p_re RD::Uniform u; u.binding = 2; u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; - u.append_id(material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); } { @@ -1039,7 +1039,7 @@ void GI::SDFGI::create(RID p_env, const Vector3 &p_world_position, uint32_t p_re RD::Uniform u; u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; u.binding = 6; - u.append_id(material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); } @@ -1266,11 +1266,11 @@ void GI::SDFGI::update_light() { push_constant.light_count = cascade_dynamic_light_count[i]; push_constant.cascade = i; - if (cascades[i].all_dynamic_lights_dirty || gi->sdfgi_frames_to_update_light == RS::ENV_SDFGI_UPDATE_LIGHT_IN_1_FRAME) { + if (cascades[i].all_dynamic_lights_dirty || gi->sdfgi_frames_to_update_light == RSE::ENV_SDFGI_UPDATE_LIGHT_IN_1_FRAME) { push_constant.process_offset = 0; push_constant.process_increment = 1; } else { - static const uint32_t frames_to_update_table[RS::ENV_SDFGI_UPDATE_LIGHT_MAX] = { + static const uint32_t frames_to_update_table[RSE::ENV_SDFGI_UPDATE_LIGHT_MAX] = { 1, 2, 4, 8, 16 }; @@ -1300,7 +1300,7 @@ void GI::SDFGI::update_probes(RID p_env, SkyRD::Sky *p_sky) { push_constant.probe_axis_size = probe_axis_count; push_constant.history_index = render_pass % history_size; push_constant.history_size = history_size; - static const uint32_t ray_count[RS::ENV_SDFGI_RAY_COUNT_MAX] = { 4, 8, 16, 32, 64, 96, 128 }; + static const uint32_t ray_count[RSE::ENV_SDFGI_RAY_COUNT_MAX] = { 4, 8, 16, 32, 64, 96, 128 }; push_constant.ray_count = ray_count[gi->sdfgi_ray_count]; push_constant.ray_bias = probe_bias; push_constant.image_size[0] = probe_axis_count * probe_axis_count; @@ -1318,20 +1318,20 @@ void GI::SDFGI::update_probes(RID p_env, SkyRD::Sky *p_sky) { if (reads_sky && p_env.is_valid()) { push_constant.sky_energy = RendererSceneRenderRD::get_singleton()->environment_get_bg_energy_multiplier(p_env); - if (RendererSceneRenderRD::get_singleton()->environment_get_background(p_env) == RS::ENV_BG_CLEAR_COLOR) { + if (RendererSceneRenderRD::get_singleton()->environment_get_background(p_env) == RSE::ENV_BG_CLEAR_COLOR) { push_constant.sky_flags |= SDFGIShader::IntegratePushConstant::SKY_FLAGS_MODE_COLOR; Color c = RSG::texture_storage->get_default_clear_color().srgb_to_linear(); push_constant.sky_color_or_orientation[0] = c.r; push_constant.sky_color_or_orientation[1] = c.g; push_constant.sky_color_or_orientation[2] = c.b; - } else if (RendererSceneRenderRD::get_singleton()->environment_get_background(p_env) == RS::ENV_BG_COLOR) { + } else if (RendererSceneRenderRD::get_singleton()->environment_get_background(p_env) == RSE::ENV_BG_COLOR) { push_constant.sky_flags |= SDFGIShader::IntegratePushConstant::SKY_FLAGS_MODE_COLOR; Color c = RendererSceneRenderRD::get_singleton()->environment_get_bg_color(p_env); push_constant.sky_color_or_orientation[0] = c.r; push_constant.sky_color_or_orientation[1] = c.g; push_constant.sky_color_or_orientation[2] = c.b; - } else if (RendererSceneRenderRD::get_singleton()->environment_get_background(p_env) == RS::ENV_BG_SKY) { + } else if (RendererSceneRenderRD::get_singleton()->environment_get_background(p_env) == RSE::ENV_BG_SKY) { if (p_sky && p_sky->radiance.is_valid()) { if (integrate_sky_uniform_set.is_null() || !RD::get_singleton()->uniform_set_is_valid(integrate_sky_uniform_set)) { Vector uniforms; @@ -1348,7 +1348,7 @@ void GI::SDFGI::update_probes(RID p_env, SkyRD::Sky *p_sky) { RD::Uniform u; u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; u.binding = 1; - u.append_id(RendererRD::MaterialStorage::get_singleton()->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(RendererRD::MaterialStorage::get_singleton()->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); } @@ -1403,7 +1403,7 @@ void GI::SDFGI::store_probes() { push_constant.probe_axis_size = probe_axis_count; push_constant.history_index = render_pass % history_size; push_constant.history_size = history_size; - static const uint32_t ray_count[RS::ENV_SDFGI_RAY_COUNT_MAX] = { 4, 8, 16, 32, 64, 96, 128 }; + static const uint32_t ray_count[RSE::ENV_SDFGI_RAY_COUNT_MAX] = { 4, 8, 16, 32, 64, 96, 128 }; push_constant.ray_count = ray_count[gi->sdfgi_ray_count]; push_constant.ray_bias = probe_bias; push_constant.image_size[0] = probe_axis_count * probe_axis_count; @@ -1584,7 +1584,7 @@ void GI::SDFGI::debug_draw(uint32_t p_view_count, const Projection *p_projection RD::Uniform u; u.binding = 8; u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; - u.append_id(material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); } { @@ -1712,7 +1712,7 @@ void GI::SDFGI::debug_probes(RID p_framebuffer, const uint32_t p_view_count, con RD::Uniform u; u.binding = 3; u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; - u.append_id(material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); } { @@ -1902,7 +1902,7 @@ void GI::SDFGI::pre_process_gi(const Transform3D &p_transform, RenderDataRD *p_r RID light = light_storage->light_instance_get_base_light(light_instance); Transform3D light_transform = light_storage->light_instance_get_base_transform(light_instance); - if (RSG::light_storage->light_directional_get_sky_mode(light) == RS::LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY) { + if (RSG::light_storage->light_directional_get_sky_mode(light) == RSE::LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY) { continue; } @@ -1917,10 +1917,10 @@ void GI::SDFGI::pre_process_gi(const Transform3D &p_transform, RenderDataRD *p_r lights[idx].color[0] = color.r; lights[idx].color[1] = color.g; lights[idx].color[2] = color.b; - lights[idx].type = RS::LIGHT_DIRECTIONAL; - lights[idx].energy = RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_ENERGY) * RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_INDIRECT_ENERGY); + lights[idx].type = RSE::LIGHT_DIRECTIONAL; + lights[idx].energy = RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_ENERGY) * RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_INDIRECT_ENERGY); if (RendererSceneRenderRD::get_singleton()->is_using_physical_light_units()) { - lights[idx].energy *= RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_INTENSITY); + lights[idx].energy *= RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_INTENSITY); } if (p_render_data->camera_attributes.is_valid()) { @@ -1976,14 +1976,14 @@ void GI::SDFGI::pre_process_gi(const Transform3D &p_transform, RenderDataRD *p_r lights[idx].color[2] = color.b; lights[idx].type = RSG::light_storage->light_get_type(light); - lights[idx].energy = RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_ENERGY) * RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_INDIRECT_ENERGY); + lights[idx].energy = RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_ENERGY) * RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_INDIRECT_ENERGY); if (RendererSceneRenderRD::get_singleton()->is_using_physical_light_units()) { - lights[idx].energy *= RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_INTENSITY); + lights[idx].energy *= RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_INTENSITY); // Convert from Luminous Power to Luminous Intensity - if (lights[idx].type == RS::LIGHT_OMNI) { + if (lights[idx].type == RSE::LIGHT_OMNI) { lights[idx].energy *= 1.0 / (Math::PI * 4.0); - } else if (lights[idx].type == RS::LIGHT_SPOT) { + } else if (lights[idx].type == RSE::LIGHT_SPOT) { // Spot Lights are not physically accurate, Luminous Intensity should change in relation to the cone angle. // We make this assumption to keep them easy to control. lights[idx].energy *= 1.0 / Math::PI; @@ -1995,10 +1995,10 @@ void GI::SDFGI::pre_process_gi(const Transform3D &p_transform, RenderDataRD *p_r } lights[idx].has_shadow = RSG::light_storage->light_has_shadow(light); - lights[idx].attenuation = RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_ATTENUATION); - lights[idx].radius = RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_RANGE); - lights[idx].cos_spot_angle = Math::cos(Math::deg_to_rad(RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_SPOT_ANGLE))); - lights[idx].inv_spot_attenuation = 1.0f / RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_SPOT_ATTENUATION); + lights[idx].attenuation = RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_ATTENUATION); + lights[idx].radius = RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_RANGE); + lights[idx].cos_spot_angle = Math::cos(Math::deg_to_rad(RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_SPOT_ANGLE))); + lights[idx].inv_spot_attenuation = 1.0f / RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_SPOT_ATTENUATION); idx++; } @@ -2421,7 +2421,7 @@ void GI::SDFGI::render_static_lights(RenderDataRD *p_render_data, Reflight_get_type(light); Vector3 dir = -light_transform.basis.get_column(Vector3::AXIS_Z); - if (lights[idx].type == RS::LIGHT_DIRECTIONAL) { + if (lights[idx].type == RSE::LIGHT_DIRECTIONAL) { dir.y *= y_mult; //only makes sense for directional dir.normalize(); } @@ -2439,14 +2439,14 @@ void GI::SDFGI::render_static_lights(RenderDataRD *p_render_data, Reflight_get_param(light, RS::LIGHT_PARAM_ENERGY) * RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_INDIRECT_ENERGY); + lights[idx].energy = RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_ENERGY) * RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_INDIRECT_ENERGY); if (RendererSceneRenderRD::get_singleton()->is_using_physical_light_units()) { - lights[idx].energy *= RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_INTENSITY); + lights[idx].energy *= RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_INTENSITY); // Convert from Luminous Power to Luminous Intensity - if (lights[idx].type == RS::LIGHT_OMNI) { + if (lights[idx].type == RSE::LIGHT_OMNI) { lights[idx].energy *= 1.0 / (Math::PI * 4.0); - } else if (lights[idx].type == RS::LIGHT_SPOT) { + } else if (lights[idx].type == RSE::LIGHT_SPOT) { // Spot Lights are not physically accurate, Luminous Intensity should change in relation to the cone angle. // We make this assumption to keep them easy to control. lights[idx].energy *= 1.0 / Math::PI; @@ -2458,10 +2458,10 @@ void GI::SDFGI::render_static_lights(RenderDataRD *p_render_data, Reflight_has_shadow(light); - lights[idx].attenuation = RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_ATTENUATION); - lights[idx].radius = RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_RANGE); - lights[idx].cos_spot_angle = Math::cos(Math::deg_to_rad(RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_SPOT_ANGLE))); - lights[idx].inv_spot_attenuation = 1.0f / RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_SPOT_ATTENUATION); + lights[idx].attenuation = RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_ATTENUATION); + lights[idx].radius = RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_RANGE); + lights[idx].cos_spot_angle = Math::cos(Math::deg_to_rad(RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_SPOT_ANGLE))); + lights[idx].inv_spot_attenuation = 1.0f / RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_SPOT_ATTENUATION); idx++; } @@ -2612,7 +2612,7 @@ void GI::VoxelGIInstance::update(bool p_update_light_instances, const Vectorsampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); } @@ -2772,7 +2772,7 @@ void GI::VoxelGIInstance::update(bool p_update_light_instances, const Vectorsampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); } { @@ -2841,7 +2841,7 @@ void GI::VoxelGIInstance::update(bool p_update_light_instances, const Vectorsampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); } @@ -2896,37 +2896,37 @@ void GI::VoxelGIInstance::update(bool p_update_light_instances, const Vectorlight_instance_get_base_light(light_instance); l.type = RSG::light_storage->light_get_type(light); - if (l.type == RS::LIGHT_DIRECTIONAL && RSG::light_storage->light_directional_get_sky_mode(light) == RS::LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY) { + if (l.type == RSE::LIGHT_DIRECTIONAL && RSG::light_storage->light_directional_get_sky_mode(light) == RSE::LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY) { light_count--; continue; } - l.attenuation = RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_ATTENUATION); - l.energy = RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_ENERGY) * RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_INDIRECT_ENERGY); + l.attenuation = RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_ATTENUATION); + l.energy = RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_ENERGY) * RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_INDIRECT_ENERGY); if (RendererSceneRenderRD::get_singleton()->is_using_physical_light_units()) { - l.energy *= RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_INTENSITY); + l.energy *= RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_INTENSITY); l.energy *= gi->voxel_gi_get_baked_exposure_normalization(probe); // Convert from Luminous Power to Luminous Intensity - if (l.type == RS::LIGHT_OMNI) { + if (l.type == RSE::LIGHT_OMNI) { l.energy *= 1.0 / (Math::PI * 4.0); - } else if (l.type == RS::LIGHT_SPOT) { + } else if (l.type == RSE::LIGHT_SPOT) { // Spot Lights are not physically accurate, Luminous Intensity should change in relation to the cone angle. // We make this assumption to keep them easy to control. l.energy *= 1.0 / Math::PI; } } - l.radius = to_cell.basis.xform(Vector3(RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_RANGE), 0, 0)).length(); + l.radius = to_cell.basis.xform(Vector3(RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_RANGE), 0, 0)).length(); Color color = RSG::light_storage->light_get_color(light).srgb_to_linear(); l.color[0] = color.r; l.color[1] = color.g; l.color[2] = color.b; - l.cos_spot_angle = Math::cos(Math::deg_to_rad(RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_SPOT_ANGLE))); - l.inv_spot_attenuation = 1.0f / RSG::light_storage->light_get_param(light, RS::LIGHT_PARAM_SPOT_ATTENUATION); + l.cos_spot_angle = Math::cos(Math::deg_to_rad(RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_SPOT_ANGLE))); + l.inv_spot_attenuation = 1.0f / RSG::light_storage->light_get_param(light, RSE::LIGHT_PARAM_SPOT_ATTENUATION); Transform3D xform = light_storage->light_instance_get_base_transform(light_instance); @@ -3339,7 +3339,7 @@ void GI::VoxelGIInstance::debug(RD::DrawListID p_draw_list, RID p_framebuffer, c RD::Uniform u; u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; u.binding = 3; - u.append_id(material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); } @@ -3372,9 +3372,9 @@ void GI::VoxelGIInstance::debug(RD::DrawListID p_draw_list, RID p_framebuffer, c GI::GI() { singleton = this; - sdfgi_ray_count = RS::EnvironmentSDFGIRayCount(CLAMP(int32_t(GLOBAL_GET("rendering/global_illumination/sdfgi/probe_ray_count")), 0, int32_t(RS::ENV_SDFGI_RAY_COUNT_MAX - 1))); - sdfgi_frames_to_converge = RS::EnvironmentSDFGIFramesToConverge(CLAMP(int32_t(GLOBAL_GET("rendering/global_illumination/sdfgi/frames_to_converge")), 0, int32_t(RS::ENV_SDFGI_CONVERGE_MAX - 1))); - sdfgi_frames_to_update_light = RS::EnvironmentSDFGIFramesToUpdateLight(CLAMP(int32_t(GLOBAL_GET("rendering/global_illumination/sdfgi/frames_to_update_lights")), 0, int32_t(RS::ENV_SDFGI_UPDATE_LIGHT_MAX - 1))); + sdfgi_ray_count = RSE::EnvironmentSDFGIRayCount(CLAMP(int32_t(GLOBAL_GET("rendering/global_illumination/sdfgi/probe_ray_count")), 0, int32_t(RSE::ENV_SDFGI_RAY_COUNT_MAX - 1))); + sdfgi_frames_to_converge = RSE::EnvironmentSDFGIFramesToConverge(CLAMP(int32_t(GLOBAL_GET("rendering/global_illumination/sdfgi/frames_to_converge")), 0, int32_t(RSE::ENV_SDFGI_CONVERGE_MAX - 1))); + sdfgi_frames_to_update_light = RSE::EnvironmentSDFGIFramesToUpdateLight(CLAMP(int32_t(GLOBAL_GET("rendering/global_illumination/sdfgi/frames_to_update_lights")), 0, int32_t(RSE::ENV_SDFGI_UPDATE_LIGHT_MAX - 1))); } GI::~GI() { @@ -3441,7 +3441,7 @@ void GI::init(SkyRD *p_sky) { voxel_gi_lights = memnew_arr(VoxelGILight, voxel_gi_max_lights); voxel_gi_lights_uniform = RD::get_singleton()->uniform_buffer_create(voxel_gi_max_lights * sizeof(VoxelGILight)); - voxel_gi_quality = RS::VoxelGIQuality(CLAMP(int(GLOBAL_GET("rendering/global_illumination/voxel_gi/quality")), 0, 1)); + voxel_gi_quality = RSE::VoxelGIQuality(CLAMP(int(GLOBAL_GET("rendering/global_illumination/voxel_gi/quality")), 0, 1)); String defines = "\n#define MAX_LIGHTS " + itos(voxel_gi_max_lights) + "\n"; @@ -3560,7 +3560,7 @@ void GI::init(SkyRD *p_sky) { RD::Uniform u; u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; u.binding = 1; - u.append_id(material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); } @@ -3900,7 +3900,7 @@ void GI::process_gi(Ref p_render_buffers, const RID *p_nor PushConstant push_constant; push_constant.max_voxel_gi_instances = MIN((uint64_t)MAX_VOXEL_GI_INSTANCES, p_voxel_gi_instances.size()); - push_constant.high_quality_vct = voxel_gi_quality == RS::VOXEL_GI_QUALITY_HIGH; + push_constant.high_quality_vct = voxel_gi_quality == RSE::VOXEL_GI_QUALITY_HIGH; // these should be the same for all views push_constant.orthogonal = p_projections[0].is_orthogonal(); @@ -4016,14 +4016,14 @@ void GI::process_gi(Ref p_render_buffers, const RID *p_nor RD::Uniform u; u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; u.binding = 6; - u.append_id(material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); } { RD::Uniform u; u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; u.binding = 7; - u.append_id(material_storage->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(material_storage->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); } { diff --git a/servers/rendering/renderer_rd/environment/gi.h b/servers/rendering/renderer_rd/environment/gi.h index a46b44bd71..16fbd75bec 100644 --- a/servers/rendering/renderer_rd/environment/gi.h +++ b/servers/rendering/renderer_rd/environment/gi.h @@ -541,7 +541,7 @@ public: void voxel_gi_instance_free(RID p_rid); - RS::VoxelGIQuality voxel_gi_quality = RS::VOXEL_GI_QUALITY_LOW; + RSE::VoxelGIQuality voxel_gi_quality = RSE::VOXEL_GI_QUALITY_LOW; /* SDFGI */ @@ -667,7 +667,7 @@ public: float energy = 1.0; float normal_bias = 1.1; float probe_bias = 1.1; - RS::EnvironmentSDFGIYScale y_scale_mode = RS::ENV_SDFGI_Y_SCALE_75_PERCENT; + RSE::EnvironmentSDFGIYScale y_scale_mode = RSE::ENV_SDFGI_Y_SCALE_75_PERCENT; float y_mult = 1.0; @@ -697,9 +697,9 @@ public: void render_static_lights(RenderDataRD *p_render_data, Ref p_render_buffers, uint32_t p_cascade_count, const uint32_t *p_cascade_indices, const PagedArray *p_positional_light_cull_result); }; - RS::EnvironmentSDFGIRayCount sdfgi_ray_count = RS::ENV_SDFGI_RAY_COUNT_16; - RS::EnvironmentSDFGIFramesToConverge sdfgi_frames_to_converge = RS::ENV_SDFGI_CONVERGE_IN_30_FRAMES; - RS::EnvironmentSDFGIFramesToUpdateLight sdfgi_frames_to_update_light = RS::ENV_SDFGI_UPDATE_LIGHT_IN_4_FRAMES; + RSE::EnvironmentSDFGIRayCount sdfgi_ray_count = RSE::ENV_SDFGI_RAY_COUNT_16; + RSE::EnvironmentSDFGIFramesToConverge sdfgi_frames_to_converge = RSE::ENV_SDFGI_CONVERGE_IN_30_FRAMES; + RSE::EnvironmentSDFGIFramesToUpdateLight sdfgi_frames_to_update_light = RSE::ENV_SDFGI_UPDATE_LIGHT_IN_4_FRAMES; float sdfgi_solid_cell_ratio = 0.25; Vector3 sdfgi_debug_probe_pos; diff --git a/servers/rendering/renderer_rd/environment/sky.cpp b/servers/rendering/renderer_rd/environment/sky.cpp index d5bd402b20..aa6f57674e 100644 --- a/servers/rendering/renderer_rd/environment/sky.cpp +++ b/servers/rendering/renderer_rd/environment/sky.cpp @@ -39,6 +39,7 @@ #include "servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" #include "servers/rendering/renderer_rd/uniform_set_cache_rd.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_default.h" #include "servers/rendering/rendering_server_globals.h" @@ -104,7 +105,7 @@ void SkyRD::SkyShaderData::set_code(const String &p_code) { // !BAS! Contemplate making `SkyShader sky` accessible from this struct or even part of this struct. RendererSceneRenderRD *scene_singleton = static_cast(RendererSceneRenderRD::singleton); - Error err = scene_singleton->sky.sky_shader.compiler.compile(RS::SHADER_SKY, code, &actions, path, gen_code); + Error err = scene_singleton->sky.sky_shader.compiler.compile(RSE::SHADER_SKY, code, &actions, path, gen_code); ERR_FAIL_COND_MSG(err != OK, "Shader compilation failed."); if (version.is_null()) { @@ -588,7 +589,7 @@ bool SkyRD::Sky::set_radiance_size(int p_radiance_size) { } radiance_size = p_radiance_size; - if (mode == RS::SKY_MODE_REALTIME && radiance_size != REAL_TIME_SIZE) { + if (mode == RSE::SKY_MODE_REALTIME && radiance_size != REAL_TIME_SIZE) { WARN_PRINT(vformat("Realtime Skies can only use a radiance size of %d. Radiance size will be set to %d internally.", REAL_TIME_SIZE, REAL_TIME_SIZE)); radiance_size = REAL_TIME_SIZE; } @@ -606,14 +607,14 @@ int SkyRD::Sky::get_radiance_size() const { return radiance_size; } -bool SkyRD::Sky::set_mode(RS::SkyMode p_mode) { +bool SkyRD::Sky::set_mode(RSE::SkyMode p_mode) { if (mode == p_mode) { return false; } mode = p_mode; - if (mode == RS::SKY_MODE_REALTIME && radiance_size != REAL_TIME_SIZE) { + if (mode == RSE::SKY_MODE_REALTIME && radiance_size != REAL_TIME_SIZE) { WARN_PRINT(vformat("Realtime Skies can only use a radiance size of %d. Radiance size will be set to %d internally.", REAL_TIME_SIZE, REAL_TIME_SIZE)); set_radiance_size(REAL_TIME_SIZE); } @@ -1039,8 +1040,8 @@ void SkyRD::setup_sky(const RenderDataRD *p_render_data, const Size2i p_screen_s ERR_CONTINUE(base.is_null()); - RS::LightType type = light_storage->light_get_type(base); - if (type == RS::LIGHT_DIRECTIONAL && light_storage->light_directional_get_sky_mode(base) != RS::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_ONLY) { + RSE::LightType type = light_storage->light_get_type(base); + if (type == RSE::LIGHT_DIRECTIONAL && light_storage->light_directional_get_sky_mode(base) != RSE::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_ONLY) { SkyDirectionalLightData &sky_light_data = sky_scene_state.directional_lights[sky_scene_state.ubo.directional_light_count]; Transform3D light_transform = light_storage->light_instance_get_base_transform(lights[i]); Vector3 world_direction = light_transform.basis.xform(Vector3(0, 0, 1)).normalized(); @@ -1050,10 +1051,10 @@ void SkyRD::setup_sky(const RenderDataRD *p_render_data, const Size2i p_screen_s sky_light_data.direction[2] = world_direction.z; float sign = light_storage->light_is_negative(base) ? -1 : 1; - sky_light_data.energy = sign * light_storage->light_get_param(base, RS::LIGHT_PARAM_ENERGY); + sky_light_data.energy = sign * light_storage->light_get_param(base, RSE::LIGHT_PARAM_ENERGY); if (RendererSceneRenderRD::get_singleton()->is_using_physical_light_units()) { - sky_light_data.energy *= light_storage->light_get_param(base, RS::LIGHT_PARAM_INTENSITY); + sky_light_data.energy *= light_storage->light_get_param(base, RSE::LIGHT_PARAM_INTENSITY); } if (p_render_data->camera_attributes.is_valid()) { @@ -1067,7 +1068,7 @@ void SkyRD::setup_sky(const RenderDataRD *p_render_data, const Size2i p_screen_s sky_light_data.enabled = true; - float angular_diameter = light_storage->light_get_param(base, RS::LIGHT_PARAM_SIZE); + float angular_diameter = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SIZE); sky_light_data.size = Math::deg_to_rad(angular_diameter); sky_scene_state.ubo.directional_light_count++; if (sky_scene_state.ubo.directional_light_count >= sky_scene_state.max_directional_lights) { @@ -1233,28 +1234,28 @@ void SkyRD::update_radiance_buffers(Ref p_render_buffers, ERR_FAIL_NULL(shader_data); - bool update_single_frame = sky->mode == RS::SKY_MODE_REALTIME || sky->mode == RS::SKY_MODE_QUALITY; - RS::SkyMode sky_mode = sky->mode; + bool update_single_frame = sky->mode == RSE::SKY_MODE_REALTIME || sky->mode == RSE::SKY_MODE_QUALITY; + RSE::SkyMode sky_mode = sky->mode; - if (sky_mode == RS::SKY_MODE_AUTOMATIC) { + if (sky_mode == RSE::SKY_MODE_AUTOMATIC) { bool sun_scatter_enabled = RendererSceneRenderRD::get_singleton()->environment_get_fog_enabled(p_env) && RendererSceneRenderRD::get_singleton()->environment_get_fog_sun_scatter(p_env) > 0.001; if ((shader_data->uses_time || shader_data->uses_position) && sky->radiance_size == Sky::REAL_TIME_SIZE) { update_single_frame = true; - sky_mode = RS::SKY_MODE_REALTIME; + sky_mode = RSE::SKY_MODE_REALTIME; } else if (shader_data->uses_light || sun_scatter_enabled || shader_data->ubo_size > 0) { update_single_frame = false; - sky_mode = RS::SKY_MODE_INCREMENTAL; + sky_mode = RSE::SKY_MODE_INCREMENTAL; } else { update_single_frame = true; - sky_mode = RS::SKY_MODE_QUALITY; + sky_mode = RSE::SKY_MODE_QUALITY; } } - if (sky->processing_layer == 0 && sky_mode == RS::SKY_MODE_INCREMENTAL) { + if (sky->processing_layer == 0 && sky_mode == RSE::SKY_MODE_INCREMENTAL) { // On the first frame after creating sky, rebuild in single frame update_single_frame = true; - sky_mode = RS::SKY_MODE_QUALITY; + sky_mode = RSE::SKY_MODE_QUALITY; } int max_processing_layer = sky_use_octmap_array ? sky->reflection.layers.size() : sky->reflection.layers[0].mipmaps.size(); @@ -1320,7 +1321,7 @@ void SkyRD::update_radiance_buffers(Ref p_render_buffers, RD::get_singleton()->draw_command_end_label(); - if (sky_mode == RS::SKY_MODE_REALTIME) { + if (sky_mode == RSE::SKY_MODE_REALTIME) { sky->reflection.create_reflection_fast_filter(sky_use_octmap_array); if (sky_use_octmap_array) { sky->reflection.update_reflection_mipmaps(0, sky->reflection.layers.size()); @@ -1345,7 +1346,7 @@ void SkyRD::update_radiance_buffers(Ref p_render_buffers, sky->reflection.dirty = false; } else { - if (sky_mode == RS::SKY_MODE_INCREMENTAL && sky->processing_layer < max_processing_layer) { + if (sky_mode == RSE::SKY_MODE_INCREMENTAL && sky->processing_layer < max_processing_layer) { sky->reflection.create_reflection_importance_sample(sky_use_octmap_array, sky->processing_layer, sky_ggx_samples_quality); if (sky_use_octmap_array) { @@ -1367,9 +1368,9 @@ void SkyRD::update_res_buffers(Ref p_render_buffers, RID p SkyMaterialData *material = nullptr; RID sky_material; - RS::EnvironmentBG background = RendererSceneRenderRD::get_singleton()->environment_get_background(p_env); + RSE::EnvironmentBG background = RendererSceneRenderRD::get_singleton()->environment_get_background(p_env); - if (!(background == RS::ENV_BG_CLEAR_COLOR || background == RS::ENV_BG_COLOR) || sky) { + if (!(background == RSE::ENV_BG_CLEAR_COLOR || background == RSE::ENV_BG_COLOR) || sky) { ERR_FAIL_NULL(sky); sky_material = sky_get_material(RendererSceneRenderRD::get_singleton()->environment_get_sky(p_env)); @@ -1386,7 +1387,7 @@ void SkyRD::update_res_buffers(Ref p_render_buffers, RID p } } - if (background == RS::ENV_BG_CLEAR_COLOR || background == RS::ENV_BG_COLOR) { + if (background == RSE::ENV_BG_CLEAR_COLOR || background == RSE::ENV_BG_COLOR) { sky_material = sky_scene_state.fog_material; material = static_cast(material_storage->material_get_data(sky_material, RendererRD::MaterialStorage::SHADER_TYPE_SKY)); } @@ -1458,9 +1459,9 @@ void SkyRD::draw_sky(RD::DrawListID p_draw_list, Ref p_ren SkyMaterialData *material = nullptr; RID sky_material; - RS::EnvironmentBG background = RendererSceneRenderRD::get_singleton()->environment_get_background(p_env); + RSE::EnvironmentBG background = RendererSceneRenderRD::get_singleton()->environment_get_background(p_env); - if (!(background == RS::ENV_BG_CLEAR_COLOR || background == RS::ENV_BG_COLOR) || sky) { + if (!(background == RSE::ENV_BG_CLEAR_COLOR || background == RSE::ENV_BG_COLOR) || sky) { ERR_FAIL_NULL(sky); sky_material = sky_get_material(RendererSceneRenderRD::get_singleton()->environment_get_sky(p_env)); @@ -1477,7 +1478,7 @@ void SkyRD::draw_sky(RD::DrawListID p_draw_list, Ref p_ren } } - if (background == RS::ENV_BG_CLEAR_COLOR || background == RS::ENV_BG_COLOR) { + if (background == RSE::ENV_BG_CLEAR_COLOR || background == RSE::ENV_BG_COLOR) { sky_material = sky_scene_state.fog_material; material = static_cast(material_storage->material_get_data(sky_material, RendererRD::MaterialStorage::SHADER_TYPE_SKY)); } @@ -1533,7 +1534,7 @@ void SkyRD::update_dirty_skys() { int mipmaps = Image::get_image_required_mipmaps(sky->radiance_size, sky->radiance_size, Image::FORMAT_RGBAH) + 1; int layers = roughness_layers; - if (sky->mode == RS::SKY_MODE_REALTIME) { + if (sky->mode == RSE::SKY_MODE_REALTIME) { layers = Sky::REAL_TIME_ROUGHNESS_LAYERS; if (roughness_layers != layers) { WARN_PRINT(vformat("When using the Real-Time sky update mode (or Automatic with a sky shader using \"TIME\"), \"rendering/reflections/sky_reflections/roughness_layers\" should be set to %d in the project settings for best quality reflections.", Sky::REAL_TIME_ROUGHNESS_LAYERS)); @@ -1563,7 +1564,7 @@ void SkyRD::update_dirty_skys() { sky->radiance = RD::get_singleton()->texture_create(tf, RD::TextureView()); - sky->reflection.update_reflection_data(w, mipmaps, true, sky->radiance, 0, sky->mode == RS::SKY_MODE_REALTIME, roughness_layers, texture_format, sky->uv_border_size); + sky->reflection.update_reflection_data(w, mipmaps, true, sky->radiance, 0, sky->mode == RSE::SKY_MODE_REALTIME, roughness_layers, texture_format, sky->uv_border_size); } else { // Double size to approximate texel density of cubemaps + add border for proper filtering/mipmapping. uint32_t padding_pixels = (1 << (MIN(mipmaps, layers) - 1)); @@ -1584,7 +1585,7 @@ void SkyRD::update_dirty_skys() { sky->radiance = RD::get_singleton()->texture_create(tf, RD::TextureView()); - sky->reflection.update_reflection_data(w, MIN(mipmaps, layers), false, sky->radiance, 0, sky->mode == RS::SKY_MODE_REALTIME, roughness_layers, texture_format, sky->uv_border_size); + sky->reflection.update_reflection_data(w, MIN(mipmaps, layers), false, sky->radiance, 0, sky->mode == RSE::SKY_MODE_REALTIME, roughness_layers, texture_format, sky->uv_border_size); } } @@ -1650,7 +1651,7 @@ int SkyRD::sky_get_radiance_size(RID p_sky) const { return sky->get_radiance_size(); } -void SkyRD::sky_set_mode(RID p_sky, RS::SkyMode p_mode) { +void SkyRD::sky_set_mode(RID p_sky, RSE::SkyMode p_mode) { Sky *sky = get_sky(p_sky); ERR_FAIL_NULL(sky); diff --git a/servers/rendering/renderer_rd/environment/sky.h b/servers/rendering/renderer_rd/environment/sky.h index f562c002b6..dd8971ff66 100644 --- a/servers/rendering/renderer_rd/environment/sky.h +++ b/servers/rendering/renderer_rd/environment/sky.h @@ -261,7 +261,7 @@ public: int radiance_size = REAL_TIME_SIZE; float uv_border_size = 0.0; // Border size in UV space. - RS::SkyMode mode = RS::SKY_MODE_AUTOMATIC; + RSE::SkyMode mode = RSE::SKY_MODE_AUTOMATIC; ReflectionData reflection; bool dirty = false; @@ -279,7 +279,7 @@ public: RID get_textures(SkyTextureSetVersion p_version, RID p_default_shader_rd, Ref p_render_buffers); bool set_radiance_size(int p_radiance_size); int get_radiance_size() const; - bool set_mode(RS::SkyMode p_mode); + bool set_mode(RSE::SkyMode p_mode); bool set_material(RID p_material); Ref bake_panorama(float p_energy, int p_roughness_layers, const Size2i &p_size); }; @@ -320,7 +320,7 @@ public: void free_sky(RID p_sky); void sky_set_radiance_size(RID p_sky, int p_radiance_size); int sky_get_radiance_size(RID p_sky) const; - void sky_set_mode(RID p_sky, RS::SkyMode p_mode); + void sky_set_mode(RID p_sky, RSE::SkyMode p_mode); void sky_set_material(RID p_sky, RID p_material); Ref sky_bake_panorama(RID p_sky, float p_energy, bool p_bake_irradiance, const Size2i &p_size); float sky_get_uv_border_size(RID p_sky); diff --git a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp index a6203bf522..5b1a9fc6d6 100644 --- a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp +++ b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp @@ -50,7 +50,7 @@ void RenderForwardClustered::RenderBufferDataForwardClustered::ensure_specular() ERR_FAIL_NULL(render_buffers); if (!render_buffers->has_texture(RB_SCOPE_FORWARD_CLUSTERED, RB_TEX_SPECULAR)) { - bool msaa = render_buffers->get_msaa_3d() != RS::VIEWPORT_MSAA_DISABLED; + bool msaa = render_buffers->get_msaa_3d() != RSE::VIEWPORT_MSAA_DISABLED; render_buffers->create_texture(RB_SCOPE_FORWARD_CLUSTERED, RB_TEX_SPECULAR, get_specular_format(), get_specular_usage_bits(msaa, false, render_buffers->get_can_be_storage())); if (msaa) { render_buffers->create_texture(RB_SCOPE_FORWARD_CLUSTERED, RB_TEX_SPECULAR_MSAA, get_specular_format(), get_specular_usage_bits(false, msaa, render_buffers->get_can_be_storage()), render_buffers->get_texture_samples()); @@ -62,7 +62,7 @@ void RenderForwardClustered::RenderBufferDataForwardClustered::ensure_normal_rou ERR_FAIL_NULL(render_buffers); if (!render_buffers->has_texture(RB_SCOPE_FORWARD_CLUSTERED, RB_TEX_NORMAL_ROUGHNESS)) { - bool msaa = render_buffers->get_msaa_3d() != RS::VIEWPORT_MSAA_DISABLED; + bool msaa = render_buffers->get_msaa_3d() != RSE::VIEWPORT_MSAA_DISABLED; render_buffers->create_texture(RB_SCOPE_FORWARD_CLUSTERED, RB_TEX_NORMAL_ROUGHNESS, get_normal_roughness_format(), get_normal_roughness_usage_bits(msaa, false, render_buffers->get_can_be_storage())); if (msaa) { render_buffers->create_texture(RB_SCOPE_FORWARD_CLUSTERED, RB_TEX_NORMAL_ROUGHNESS_MSAA, get_normal_roughness_format(), get_normal_roughness_usage_bits(false, msaa, render_buffers->get_can_be_storage()), render_buffers->get_texture_samples()); @@ -74,7 +74,7 @@ void RenderForwardClustered::RenderBufferDataForwardClustered::ensure_voxelgi() ERR_FAIL_NULL(render_buffers); if (!render_buffers->has_texture(RB_SCOPE_FORWARD_CLUSTERED, RB_TEX_VOXEL_GI)) { - bool msaa = render_buffers->get_msaa_3d() != RS::VIEWPORT_MSAA_DISABLED; + bool msaa = render_buffers->get_msaa_3d() != RSE::VIEWPORT_MSAA_DISABLED; render_buffers->create_texture(RB_SCOPE_FORWARD_CLUSTERED, RB_TEX_VOXEL_GI, get_voxelgi_format(), get_voxelgi_usage_bits(msaa, false, render_buffers->get_can_be_storage())); if (msaa) { render_buffers->create_texture(RB_SCOPE_FORWARD_CLUSTERED, RB_TEX_VOXEL_GI_MSAA, get_voxelgi_format(), get_voxelgi_usage_bits(false, msaa, render_buffers->get_can_be_storage()), render_buffers->get_texture_samples()); @@ -153,14 +153,14 @@ void RenderForwardClustered::RenderBufferDataForwardClustered::configure(RenderS } cluster_builder->set_shared(RenderForwardClustered::get_singleton()->get_cluster_builder_shared()); - RID sampler = RendererRD::MaterialStorage::get_singleton()->sampler_rd_get_default(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + RID sampler = RendererRD::MaterialStorage::get_singleton()->sampler_rd_get_default(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); cluster_builder->setup(p_render_buffers->get_internal_size(), p_render_buffers->get_max_cluster_elements(), p_render_buffers->get_depth_texture(), sampler, p_render_buffers->get_internal_texture()); } RID RenderForwardClustered::RenderBufferDataForwardClustered::get_color_only_fb() { ERR_FAIL_NULL_V(render_buffers, RID()); - bool use_msaa = render_buffers->get_msaa_3d() != RS::VIEWPORT_MSAA_DISABLED; + bool use_msaa = render_buffers->get_msaa_3d() != RSE::VIEWPORT_MSAA_DISABLED; RID color = use_msaa ? render_buffers->get_texture(RB_SCOPE_BUFFERS, RB_TEX_COLOR_MSAA) : render_buffers->get_internal_texture(); RID depth = use_msaa ? render_buffers->get_texture(RB_SCOPE_BUFFERS, RB_TEX_DEPTH_MSAA) : render_buffers->get_depth_texture(); @@ -175,7 +175,7 @@ RID RenderForwardClustered::RenderBufferDataForwardClustered::get_color_only_fb( RID RenderForwardClustered::RenderBufferDataForwardClustered::get_color_pass_fb(uint32_t p_color_pass_flags) { ERR_FAIL_NULL_V(render_buffers, RID()); - bool use_msaa = render_buffers->get_msaa_3d() != RS::VIEWPORT_MSAA_DISABLED; + bool use_msaa = render_buffers->get_msaa_3d() != RSE::VIEWPORT_MSAA_DISABLED; int v_count = (p_color_pass_flags & COLOR_PASS_FLAG_MULTIVIEW) ? render_buffers->get_view_count() : 1; RID color = use_msaa ? render_buffers->get_texture(RB_SCOPE_BUFFERS, RB_TEX_COLOR_MSAA) : render_buffers->get_internal_texture(); @@ -204,7 +204,7 @@ RID RenderForwardClustered::RenderBufferDataForwardClustered::get_color_pass_fb( RID RenderForwardClustered::RenderBufferDataForwardClustered::get_depth_fb(DepthFrameBufferType p_type) { ERR_FAIL_NULL_V(render_buffers, RID()); - bool use_msaa = render_buffers->get_msaa_3d() != RS::VIEWPORT_MSAA_DISABLED; + bool use_msaa = render_buffers->get_msaa_3d() != RSE::VIEWPORT_MSAA_DISABLED; RID depth = use_msaa ? render_buffers->get_texture(RB_SCOPE_BUFFERS, RB_TEX_DEPTH_MSAA) : render_buffers->get_depth_texture(); @@ -235,7 +235,7 @@ RID RenderForwardClustered::RenderBufferDataForwardClustered::get_depth_fb(Depth } RID RenderForwardClustered::RenderBufferDataForwardClustered::get_specular_only_fb() { - bool use_msaa = render_buffers->get_msaa_3d() != RS::VIEWPORT_MSAA_DISABLED; + bool use_msaa = render_buffers->get_msaa_3d() != RSE::VIEWPORT_MSAA_DISABLED; RID specular = render_buffers->get_texture(RB_SCOPE_FORWARD_CLUSTERED, use_msaa ? RB_TEX_SPECULAR_MSAA : RB_TEX_SPECULAR); @@ -243,7 +243,7 @@ RID RenderForwardClustered::RenderBufferDataForwardClustered::get_specular_only_ } RID RenderForwardClustered::RenderBufferDataForwardClustered::get_velocity_only_fb() { - bool use_msaa = render_buffers->get_msaa_3d() != RS::VIEWPORT_MSAA_DISABLED; + bool use_msaa = render_buffers->get_msaa_3d() != RSE::VIEWPORT_MSAA_DISABLED; RID velocity = render_buffers->get_texture(RB_SCOPE_BUFFERS, use_msaa ? RB_TEX_VELOCITY_MSAA : RB_TEX_VELOCITY); @@ -362,13 +362,13 @@ void RenderForwardClustered::_render_list_template(RenderingDevice::DrawListID p } else { #ifdef DEBUG_ENABLED - if (unlikely(get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_LIGHTING)) { + if (unlikely(get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_LIGHTING)) { material_uniform_set = scene_shader.default_material_uniform_set; shader = scene_shader.default_material_shader_ptr; - } else if (unlikely(get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_OVERDRAW)) { + } else if (unlikely(get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_OVERDRAW)) { material_uniform_set = scene_shader.overdraw_material_uniform_set; shader = scene_shader.overdraw_material_shader_ptr; - } else if (unlikely(get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_PSSM_SPLITS)) { + } else if (unlikely(get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_PSSM_SPLITS)) { material_uniform_set = scene_shader.debug_shadow_splits_material_uniform_set; shader = scene_shader.debug_shadow_splits_material_shader_ptr; } else { @@ -517,7 +517,7 @@ void RenderForwardClustered::_render_list_template(RenderingDevice::DrawListID p pipeline_hash = pipeline_key.hash(); if (shader != prev_shader || pipeline_hash != prev_pipeline_hash) { - RS::PipelineSource pipeline_source = pipeline_key.ubershader ? RS::PIPELINE_SOURCE_DRAW : RS::PIPELINE_SOURCE_SPECIALIZATION; + RSE::PipelineSource pipeline_source = pipeline_key.ubershader ? RSE::PIPELINE_SOURCE_DRAW : RSE::PIPELINE_SOURCE_SPECIALIZATION; pipeline_rd = shader->pipeline_hash_map.get_pipeline(pipeline_key, pipeline_hash, pipeline_key.ubershader, pipeline_source); if (pipeline_rd.is_valid()) { @@ -724,7 +724,7 @@ uint32_t RenderForwardClustered::_setup_environment(const RenderDataRD *p_render scene_state.ubo.volumetric_fog_enabled = false; if (rd.is_valid()) { - if (rd->get_msaa_3d() != RS::VIEWPORT_MSAA_DISABLED) { + if (rd->get_msaa_3d() != RSE::VIEWPORT_MSAA_DISABLED) { scene_state.ubo.gi_upscale_for_msaa = true; } @@ -748,7 +748,7 @@ uint32_t RenderForwardClustered::_setup_environment(const RenderDataRD *p_render } } - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_UNSHADED) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_UNSHADED) { scene_state.ubo.ss_effects_flags = 0; } else if (p_render_data->reflection_probe.is_null() && is_environment(p_render_data->environment)) { scene_state.ubo.ssao_ao_affect = environment_get_ssao_ao_channel_affect(p_render_data->environment); @@ -818,7 +818,7 @@ void RenderForwardClustered::_fill_instance_data(RenderListType p_render_list, i } if (p_render_info) { - p_render_info[RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] += element_total; + p_render_info[RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] += element_total; } uint32_t repeats = 0; @@ -858,7 +858,7 @@ void RenderForwardClustered::_fill_instance_data(RenderListType p_render_list, i uint64_t format = RendererRD::MeshStorage::get_singleton()->mesh_surface_get_format(surface->surface); Vector4 uv_scale = Vector4(0.0, 0.0, 0.0, 0.0); - if (format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + if (format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { surface_aabb = RendererRD::MeshStorage::get_singleton()->mesh_surface_get_aabb(surface->surface); uv_scale = RendererRD::MeshStorage::get_singleton()->mesh_surface_get_uv_scale(surface->surface); } @@ -881,7 +881,7 @@ void RenderForwardClustered::_fill_instance_data(RenderListType p_render_list, i } repeats = 1; if (p_render_info) { - p_render_info[RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; + p_render_info[RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; } } @@ -907,9 +907,9 @@ void RenderForwardClustered::_fill_instance_data(RenderListType p_render_list, i } } -_FORCE_INLINE_ static uint32_t _indices_to_primitives(RS::PrimitiveType p_primitive, uint32_t p_indices) { - static const uint32_t divisor[RS::PRIMITIVE_MAX] = { 1, 2, 1, 3, 1 }; - static const uint32_t subtractor[RS::PRIMITIVE_MAX] = { 0, 0, 1, 0, 2 }; +_FORCE_INLINE_ static uint32_t _indices_to_primitives(RSE::PrimitiveType p_primitive, uint32_t p_indices) { + static const uint32_t divisor[RSE::PRIMITIVE_MAX] = { 1, 2, 1, 3, 1 }; + static const uint32_t subtractor[RSE::PRIMITIVE_MAX] = { 0, 0, 1, 0, 2 }; return (p_indices - subtractor[p_primitive]) / divisor[p_primitive]; } void RenderForwardClustered::_fill_render_list(RenderListType p_render_list, const RenderDataRD *p_render_data, PassMode p_pass_mode, bool p_using_sdfgi, bool p_using_opaque_gi, bool p_using_motion_pass, bool p_append) { @@ -1102,9 +1102,9 @@ void RenderForwardClustered::_fill_render_list(RenderListType p_render_list, con if (p_render_data->render_info) { indices = _indices_to_primitives(surf->primitive, indices); if (p_render_list == RENDER_LIST_OPAQUE) { //opaque - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += indices; + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += indices; } else if (p_render_list == RENDER_LIST_SECONDARY) { //shadow - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += indices; + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += indices; } } } else { @@ -1115,9 +1115,9 @@ void RenderForwardClustered::_fill_render_list(RenderListType p_render_list, con to_draw = _indices_to_primitives(surf->primitive, to_draw); to_draw *= inst->instance_count; if (p_render_list == RENDER_LIST_OPAQUE) { //opaque - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += to_draw; + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += to_draw; } else if (p_render_list == RENDER_LIST_SECONDARY) { //shadow - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += to_draw; + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += to_draw; } } } @@ -1125,7 +1125,7 @@ void RenderForwardClustered::_fill_render_list(RenderListType p_render_list, con // ADD Element if (p_pass_mode == PASS_MODE_COLOR) { #ifdef DEBUG_ENABLED - bool force_alpha = unlikely(get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_OVERDRAW); + bool force_alpha = unlikely(get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_OVERDRAW); #else bool force_alpha = false; #endif @@ -1276,21 +1276,21 @@ void RenderForwardClustered::_update_sdfgi(RenderDataRD *p_render_data) { void RenderForwardClustered::_debug_draw_cluster(Ref p_render_buffers) { if (p_render_buffers.is_valid() && current_cluster_builder != nullptr) { - RS::ViewportDebugDraw dd = get_debug_draw_mode(); + RSE::ViewportDebugDraw dd = get_debug_draw_mode(); - if (dd == RS::VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS || dd == RS::VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS || dd == RS::VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS || dd == RS::VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES) { + if (dd == RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS || dd == RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS || dd == RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS || dd == RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES) { ClusterBuilderRD::ElementType elem_type = ClusterBuilderRD::ELEMENT_TYPE_MAX; switch (dd) { - case RS::VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS: + case RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS: elem_type = ClusterBuilderRD::ELEMENT_TYPE_OMNI_LIGHT; break; - case RS::VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS: + case RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS: elem_type = ClusterBuilderRD::ELEMENT_TYPE_SPOT_LIGHT; break; - case RS::VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS: + case RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS: elem_type = ClusterBuilderRD::ELEMENT_TYPE_DECAL; break; - case RS::VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES: + case RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES: elem_type = ClusterBuilderRD::ELEMENT_TYPE_REFLECTION_PROBE; break; default: { @@ -1384,9 +1384,9 @@ void RenderForwardClustered::setup_added_reflection_probe(const Transform3D &p_t } } -void RenderForwardClustered::setup_added_light(const RS::LightType p_type, const Transform3D &p_transform, float p_radius, float p_spot_aperture) { +void RenderForwardClustered::setup_added_light(const RSE::LightType p_type, const Transform3D &p_transform, float p_radius, float p_spot_aperture) { if (current_cluster_builder != nullptr) { - current_cluster_builder->add_light(p_type == RS::LIGHT_SPOT ? ClusterBuilderRD::LIGHT_TYPE_SPOT : ClusterBuilderRD::LIGHT_TYPE_OMNI, p_transform, p_radius, p_spot_aperture); + current_cluster_builder->add_light(p_type == RSE::LIGHT_SPOT ? ClusterBuilderRD::LIGHT_TYPE_SPOT : ClusterBuilderRD::LIGHT_TYPE_OMNI, p_transform, p_radius, p_spot_aperture); } } @@ -1526,9 +1526,9 @@ void RenderForwardClustered::_pre_opaque_render(RenderDataRD *p_render_data, boo RID li = p_render_data->render_shadows[i].light; RID base = light_storage->light_instance_get_base_light(li); - if (light_storage->light_get_type(base) == RS::LIGHT_DIRECTIONAL) { + if (light_storage->light_get_type(base) == RSE::LIGHT_DIRECTIONAL) { p_render_data->directional_shadows.push_back(i); - } else if (light_storage->light_get_type(base) == RS::LIGHT_OMNI && light_storage->light_omni_get_shadow_mode(base) == RS::LIGHT_OMNI_SHADOW_CUBE) { + } else if (light_storage->light_get_type(base) == RSE::LIGHT_OMNI && light_storage->light_omni_get_shadow_mode(base) == RSE::LIGHT_OMNI_SHADOW_CUBE) { p_render_data->cube_shadows.push_back(i); } else { p_render_data->shadows.push_back(i); @@ -1693,7 +1693,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co } bool is_reflection_probe = p_render_data->reflection_probe.is_valid(); - static const int texture_multisamples[RS::VIEWPORT_MSAA_MAX] = { 1, 2, 4, 8 }; + static const int texture_multisamples[RSE::VIEWPORT_MSAA_MAX] = { 1, 2, 4, 8 }; //first of all, make a new render pass //fill up ubo @@ -1701,9 +1701,9 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co RENDER_TIMESTAMP("Prepare 3D Scene"); // get info about our rendering effects - bool ce_needs_motion_vectors = _compositor_effects_has_flag(p_render_data, RS::COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS); - bool ce_needs_normal_roughness = _compositor_effects_has_flag(p_render_data, RS::COMPOSITOR_EFFECT_FLAG_NEEDS_ROUGHNESS); - bool ce_needs_separate_specular = _compositor_effects_has_flag(p_render_data, RS::COMPOSITOR_EFFECT_FLAG_NEEDS_SEPARATE_SPECULAR); + bool ce_needs_motion_vectors = _compositor_effects_has_flag(p_render_data, RSE::COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS); + bool ce_needs_normal_roughness = _compositor_effects_has_flag(p_render_data, RSE::COMPOSITOR_EFFECT_FLAG_NEEDS_ROUGHNESS); + bool ce_needs_separate_specular = _compositor_effects_has_flag(p_render_data, RSE::COMPOSITOR_EFFECT_FLAG_NEEDS_SEPARATE_SPECULAR); // sdfgi first _update_sdfgi(p_render_data); @@ -1752,7 +1752,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co RENDER_TIMESTAMP("Setup 3D Scene"); - bool using_debug_mvs = get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_MOTION_VECTORS; + bool using_debug_mvs = get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_MOTION_VECTORS; bool using_taa = rb->get_use_taa(); enum { @@ -1762,10 +1762,10 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co } scale_type = SCALE_NONE; switch (rb->get_scaling_3d_mode()) { - case RS::VIEWPORT_SCALING_3D_MODE_FSR2: + case RSE::VIEWPORT_SCALING_3D_MODE_FSR2: scale_type = SCALE_FSR2; break; - case RS::VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL: + case RSE::VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL: #ifdef METAL_MFXTEMPORAL_ENABLED scale_type = SCALE_MFX; #else @@ -1848,7 +1848,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co } if (p_render_data->environment.is_valid()) { - if (environment_get_sdfgi_enabled(p_render_data->environment) && get_debug_draw_mode() != RS::VIEWPORT_DEBUG_DRAW_UNSHADED) { + if (environment_get_sdfgi_enabled(p_render_data->environment) && get_debug_draw_mode() != RSE::VIEWPORT_DEBUG_DRAW_UNSHADED) { using_sdfgi = true; } if (environment_get_ssr_enabled(p_render_data->environment)) { @@ -1890,7 +1890,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co render_list[RENDER_LIST_MOTION].sort_by_key(); render_list[RENDER_LIST_ALPHA].sort_by_reverse_depth_and_priority(); - int *render_info = p_render_data->render_info ? p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE] : (int *)nullptr; + int *render_info = p_render_data->render_info ? p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_VISIBLE] : (int *)nullptr; _fill_instance_data(RENDER_LIST_OPAQUE, render_info); _fill_instance_data(RENDER_LIST_MOTION, render_info); _fill_instance_data(RENDER_LIST_ALPHA, render_info); @@ -1906,11 +1906,11 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co environment_get_ssao_enabled(p_render_data->environment) || using_ssil || ce_needs_normal_roughness || - get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER || + get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER || scene_state.used_normal_texture) { depth_pass_mode = PASS_MODE_DEPTH_NORMAL_ROUGHNESS; } - } else if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER || scene_state.used_normal_texture) { + } else if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER || scene_state.used_normal_texture) { depth_pass_mode = PASS_MODE_DEPTH_NORMAL_ROUGHNESS; } @@ -1932,7 +1932,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co } } - bool using_sss = rb_data.is_valid() && !is_reflection_probe && scene_state.used_sss && ss_effects->sss_get_quality() != RS::SUB_SURFACE_SCATTERING_QUALITY_DISABLED; + bool using_sss = rb_data.is_valid() && !is_reflection_probe && scene_state.used_sss && ss_effects->sss_get_quality() != RSE::SUB_SURFACE_SCATTERING_QUALITY_DISABLED; if (using_sss && p_render_data->transparent_bg) { WARN_PRINT_ONCE("Sub-surface scattering is not supported in viewports with a transparent background. Disabling SSS in transparent viewport."); @@ -1988,20 +1988,20 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co Color clear_color; bool load_color = false; - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_OVERDRAW) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_OVERDRAW) { clear_color = Color(0, 0, 0, 1); //in overdraw mode, BG should always be black } else if (is_environment(p_render_data->environment)) { - RS::EnvironmentBG bg_mode = environment_get_background(p_render_data->environment); + RSE::EnvironmentBG bg_mode = environment_get_background(p_render_data->environment); float bg_energy_multiplier = environment_get_bg_energy_multiplier(p_render_data->environment); bg_energy_multiplier *= environment_get_bg_intensity(p_render_data->environment); - RS::EnvironmentReflectionSource reflection_source = environment_get_reflection_source(p_render_data->environment); + RSE::EnvironmentReflectionSource reflection_source = environment_get_reflection_source(p_render_data->environment); if (p_render_data->camera_attributes.is_valid()) { bg_energy_multiplier *= RSG::camera_attributes->camera_attributes_get_exposure_normalization_factor(p_render_data->camera_attributes); } switch (bg_mode) { - case RS::ENV_BG_CLEAR_COLOR: { + case RSE::ENV_BG_CLEAR_COLOR: { clear_color = p_default_bg_color; clear_color.r *= bg_energy_multiplier; clear_color.g *= bg_energy_multiplier; @@ -2011,7 +2011,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co RendererRD::MaterialStorage::get_singleton()->material_set_param(sky.sky_scene_state.fog_material, "clear_color", Variant(clear_color.srgb_to_linear())); } } break; - case RS::ENV_BG_COLOR: { + case RSE::ENV_BG_COLOR: { clear_color = environment_get_bg_color(p_render_data->environment); clear_color.r *= bg_energy_multiplier; clear_color.g *= bg_energy_multiplier; @@ -2021,10 +2021,10 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co RendererRD::MaterialStorage::get_singleton()->material_set_param(sky.sky_scene_state.fog_material, "clear_color", Variant(clear_color.srgb_to_linear())); } } break; - case RS::ENV_BG_SKY: { + case RSE::ENV_BG_SKY: { draw_sky = !p_render_data->transparent_bg; } break; - case RS::ENV_BG_CANVAS: { + case RSE::ENV_BG_CANVAS: { if (!is_reflection_probe) { RID texture = RendererRD::TextureStorage::get_singleton()->render_target_get_rd_texture(rb->get_render_target()); bool convert_to_linear = !RendererRD::TextureStorage::get_singleton()->render_target_is_using_hdr(rb->get_render_target()); @@ -2032,17 +2032,17 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co } load_color = true; } break; - case RS::ENV_BG_KEEP: { + case RSE::ENV_BG_KEEP: { load_color = true; } break; - case RS::ENV_BG_CAMERA_FEED: { + case RSE::ENV_BG_CAMERA_FEED: { } break; default: { } } // setup sky if used for ambient, reflections, or background - if (draw_sky || draw_sky_fog_only || (reflection_source == RS::ENV_REFLECTION_SOURCE_BG && bg_mode == RS::ENV_BG_SKY) || reflection_source == RS::ENV_REFLECTION_SOURCE_SKY || environment_get_ambient_source(p_render_data->environment) == RS::ENV_AMBIENT_SOURCE_SKY) { + if (draw_sky || draw_sky_fog_only || (reflection_source == RSE::ENV_REFLECTION_SOURCE_BG && bg_mode == RSE::ENV_BG_SKY) || reflection_source == RSE::ENV_REFLECTION_SOURCE_SKY || environment_get_ambient_source(p_render_data->environment) == RSE::ENV_AMBIENT_SOURCE_SKY) { RENDER_TIMESTAMP("Setup Sky"); RD::get_singleton()->draw_command_begin_label("Setup Sky"); @@ -2071,24 +2071,24 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co clear_color = p_default_bg_color; } - RS::ViewportMSAA msaa = rb->get_msaa_3d(); - bool use_msaa = msaa != RS::VIEWPORT_MSAA_DISABLED; + RSE::ViewportMSAA msaa = rb->get_msaa_3d(); + bool use_msaa = msaa != RSE::VIEWPORT_MSAA_DISABLED; - bool ce_pre_opaque_resolved_color = use_msaa && _compositor_effects_has_flag(p_render_data, RS::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR, RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE); - bool ce_post_opaque_resolved_color = use_msaa && _compositor_effects_has_flag(p_render_data, RS::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR, RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE); - bool ce_pre_transparent_resolved_color = use_msaa && _compositor_effects_has_flag(p_render_data, RS::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR, RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT); + bool ce_pre_opaque_resolved_color = use_msaa && _compositor_effects_has_flag(p_render_data, RSE::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR, RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE); + bool ce_post_opaque_resolved_color = use_msaa && _compositor_effects_has_flag(p_render_data, RSE::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR, RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE); + bool ce_pre_transparent_resolved_color = use_msaa && _compositor_effects_has_flag(p_render_data, RSE::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR, RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT); - bool ce_pre_opaque_resolved_depth = use_msaa && _compositor_effects_has_flag(p_render_data, RS::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH, RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE); - bool ce_post_opaque_resolved_depth = use_msaa && _compositor_effects_has_flag(p_render_data, RS::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH, RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE); - bool ce_pre_transparent_resolved_depth = use_msaa && _compositor_effects_has_flag(p_render_data, RS::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH, RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT); + bool ce_pre_opaque_resolved_depth = use_msaa && _compositor_effects_has_flag(p_render_data, RSE::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH, RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE); + bool ce_post_opaque_resolved_depth = use_msaa && _compositor_effects_has_flag(p_render_data, RSE::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH, RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE); + bool ce_pre_transparent_resolved_depth = use_msaa && _compositor_effects_has_flag(p_render_data, RSE::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH, RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT); - bool debug_voxelgis = get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO || get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING || get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION; - bool debug_sdfgi_probes = get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_SDFGI_PROBES; + bool debug_voxelgis = get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO || get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING || get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION; + bool debug_sdfgi_probes = get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_SDFGI_PROBES; bool force_depth_pre_pass = scene_state.used_opaque_stencil; bool depth_pre_pass = (force_depth_pre_pass || bool(GLOBAL_GET_CACHED(bool, "rendering/driver/depth_prepass/enable"))) && depth_framebuffer.is_valid(); SceneShaderForwardClustered::ShaderSpecialization base_specialization = scene_shader.default_specialization; - base_specialization.use_depth_fog = p_render_data->environment.is_valid() && environment_get_fog_mode(p_render_data->environment) == RS::EnvironmentFogMode::ENV_FOG_MODE_DEPTH; + base_specialization.use_depth_fog = p_render_data->environment.is_valid() && environment_get_fog_mode(p_render_data->environment) == RSE::EnvironmentFogMode::ENV_FOG_MODE_DEPTH; bool using_ssao = depth_pre_pass && !is_reflection_probe && p_render_data->environment.is_valid() && environment_get_ssao_enabled(p_render_data->environment); @@ -2112,7 +2112,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co RID rp_uniform_set = _setup_render_pass_uniform_set(RENDER_LIST_OPAQUE, nullptr, RID(), samplers, depth_prepass_uniform_buffer_index); bool finish_depth = using_ssao || using_ssil || using_sdfgi || using_voxelgi || ce_pre_opaque_resolved_depth || ce_post_opaque_resolved_depth; - RenderListParameters render_list_params(render_list[RENDER_LIST_OPAQUE].elements.ptr(), render_list[RENDER_LIST_OPAQUE].element_info.ptr(), render_list[RENDER_LIST_OPAQUE].elements.size(), reverse_cull, depth_pass_mode, 0, rb_data.is_null(), p_render_data->directional_light_soft_shadows, rp_uniform_set, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->scene_data->lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, p_render_data->scene_data->view_count, 0, base_specialization); + RenderListParameters render_list_params(render_list[RENDER_LIST_OPAQUE].elements.ptr(), render_list[RENDER_LIST_OPAQUE].element_info.ptr(), render_list[RENDER_LIST_OPAQUE].elements.size(), reverse_cull, depth_pass_mode, 0, rb_data.is_null(), p_render_data->directional_light_soft_shadows, rp_uniform_set, get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->scene_data->lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, p_render_data->scene_data->view_count, 0, base_specialization); _render_list_with_draw_list(&render_list_params, depth_framebuffer, RD::DrawFlags(needs_pre_resolve ? RD::DRAW_DEFAULT_ALL : RD::DRAW_CLEAR_ALL), depth_pass_clear, 0.0f, 0u, p_render_data->render_region); RD::get_singleton()->draw_command_end_label(); @@ -2145,7 +2145,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co } RENDER_TIMESTAMP("Process Pre Opaque Compositor Effects"); - _process_compositor_effects(RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE, p_render_data); + _process_compositor_effects(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE, p_render_data); } RID normal_roughness_views[RendererSceneRender::MAX_RENDER_VIEWS]; @@ -2191,7 +2191,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co uint32_t opaque_color_pass_flags = using_motion_pass ? (color_pass_flags & ~uint32_t(COLOR_PASS_FLAG_MOTION_VECTORS)) : color_pass_flags; RID opaque_framebuffer = using_motion_pass ? rb_data->get_color_pass_fb(opaque_color_pass_flags) : color_framebuffer; - RenderListParameters render_list_params(render_list[RENDER_LIST_OPAQUE].elements.ptr(), render_list[RENDER_LIST_OPAQUE].element_info.ptr(), render_list[RENDER_LIST_OPAQUE].elements.size(), reverse_cull, PASS_MODE_COLOR, opaque_color_pass_flags, rb_data.is_null(), p_render_data->directional_light_soft_shadows, rp_uniform_set, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->scene_data->lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, p_render_data->scene_data->view_count, 0, base_specialization); + RenderListParameters render_list_params(render_list[RENDER_LIST_OPAQUE].elements.ptr(), render_list[RENDER_LIST_OPAQUE].element_info.ptr(), render_list[RENDER_LIST_OPAQUE].elements.size(), reverse_cull, PASS_MODE_COLOR, opaque_color_pass_flags, rb_data.is_null(), p_render_data->directional_light_soft_shadows, rp_uniform_set, get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->scene_data->lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, p_render_data->scene_data->view_count, 0, base_specialization); _render_list_with_draw_list(&render_list_params, opaque_framebuffer, RD::DrawFlags(load_color ? RD::DRAW_DEFAULT_ALL : RD::DRAW_CLEAR_COLOR_ALL) | (depth_pre_pass ? RD::DRAW_DEFAULT_ALL : RD::DRAW_CLEAR_DEPTH), c, 0.0f, 0u, p_render_data->render_region); } @@ -2217,7 +2217,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co rp_uniform_set = _setup_render_pass_uniform_set(RENDER_LIST_MOTION, p_render_data, radiance_texture, samplers, opaque_pass_uniform_buffer_index, true); - RenderListParameters render_list_params(render_list[RENDER_LIST_MOTION].elements.ptr(), render_list[RENDER_LIST_MOTION].element_info.ptr(), render_list[RENDER_LIST_MOTION].elements.size(), reverse_cull, PASS_MODE_COLOR, color_pass_flags, rb_data.is_null(), p_render_data->directional_light_soft_shadows, rp_uniform_set, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->scene_data->lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, p_render_data->scene_data->view_count, 0, base_specialization); + RenderListParameters render_list_params(render_list[RENDER_LIST_MOTION].elements.ptr(), render_list[RENDER_LIST_MOTION].element_info.ptr(), render_list[RENDER_LIST_MOTION].elements.size(), reverse_cull, PASS_MODE_COLOR, color_pass_flags, rb_data.is_null(), p_render_data->directional_light_soft_shadows, rp_uniform_set, get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->scene_data->lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, p_render_data->scene_data->view_count, 0, base_specialization); _render_list_with_draw_list(&render_list_params, color_framebuffer); RD::get_singleton()->draw_command_end_label(); @@ -2238,7 +2238,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co } RENDER_TIMESTAMP("Process Post Opaque Compositor Effects"); - _process_compositor_effects(RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE, p_render_data); + _process_compositor_effects(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE, p_render_data); } if (debug_voxelgis) { @@ -2248,7 +2248,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co RD::DrawListID draw_list = RD::get_singleton()->draw_list_begin(color_only_framebuffer); RD::get_singleton()->draw_command_begin_label("Debug VoxelGIs"); for (int i = 0; i < (int)p_render_data->voxel_gi_instances->size(); i++) { - gi.debug_voxel_gi((*p_render_data->voxel_gi_instances)[i], draw_list, color_only_framebuffer, cm, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION, 1.0); + gi.debug_voxel_gi((*p_render_data->voxel_gi_instances)[i], draw_list, color_only_framebuffer, cm, get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING, get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION, 1.0); } RD::get_singleton()->draw_command_end_label(); RD::get_singleton()->draw_list_end(); @@ -2300,7 +2300,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co { RENDER_TIMESTAMP("Process Post Sky Compositor Effects"); // Don't need to check for depth or color resolve here, we've already triggered it. - _process_compositor_effects(RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_SKY, p_render_data); + _process_compositor_effects(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_SKY, p_render_data); } if (using_separate_specular) { @@ -2318,7 +2318,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co } } - if (using_separate_specular && is_environment(p_render_data->environment) && (environment_get_background(p_render_data->environment) == RS::ENV_BG_CANVAS)) { + if (using_separate_specular && is_environment(p_render_data->environment) && (environment_get_background(p_render_data->environment) == RSE::ENV_BG_CANVAS)) { // Canvas background mode does not clear the color buffer, but copies over it. If screen-space specular effects are enabled and the background is blank, // this results in ghosting due to the separate specular buffer copy. Need to explicitly clear the specular buffer once we're done with it to fix it. RENDER_TIMESTAMP("Clear Separate Specular (Canvas Background Mode)"); @@ -2376,7 +2376,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co } RENDER_TIMESTAMP("Process Pre Transparent Compositor Effects"); - _process_compositor_effects(RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT, p_render_data); + _process_compositor_effects(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT, p_render_data); } RENDER_TIMESTAMP("Render 3D Transparent Pass"); @@ -2393,7 +2393,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co transparent_color_pass_flags &= ~uint32_t(COLOR_PASS_FLAG_MOTION_VECTORS); RID alpha_framebuffer = rb_data.is_valid() ? rb_data->get_color_pass_fb(transparent_color_pass_flags) : color_only_framebuffer; - RenderListParameters render_list_params(render_list[RENDER_LIST_ALPHA].elements.ptr(), render_list[RENDER_LIST_ALPHA].element_info.ptr(), render_list[RENDER_LIST_ALPHA].elements.size(), reverse_cull, PASS_MODE_COLOR, transparent_color_pass_flags, rb_data.is_null(), p_render_data->directional_light_soft_shadows, rp_uniform_set, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->scene_data->lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, p_render_data->scene_data->view_count, 0, base_specialization); + RenderListParameters render_list_params(render_list[RENDER_LIST_ALPHA].elements.ptr(), render_list[RENDER_LIST_ALPHA].element_info.ptr(), render_list[RENDER_LIST_ALPHA].elements.size(), reverse_cull, PASS_MODE_COLOR, transparent_color_pass_flags, rb_data.is_null(), p_render_data->directional_light_soft_shadows, rp_uniform_set, get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->scene_data->lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, p_render_data->scene_data->view_count, 0, base_specialization); _render_list_with_draw_list(&render_list_params, alpha_framebuffer, RD::DRAW_DEFAULT_ALL, Vector(), 0.0f, 0u, p_render_data->render_region); } @@ -2426,7 +2426,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co { RENDER_TIMESTAMP("Process Post Transparent Compositor Effects"); - _process_compositor_effects(RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_TRANSPARENT, p_render_data); + _process_compositor_effects(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_TRANSPARENT, p_render_data); } if (rb_data.is_valid() && (using_upscaling || using_taa)) { @@ -2524,7 +2524,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co if (rb_data.is_valid()) { _render_buffers_debug_draw(p_render_data); - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_SDFGI && rb->has_custom_data(RB_SCOPE_SDFGI)) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_SDFGI && rb->has_custom_data(RB_SCOPE_SDFGI)) { Ref sdfgi = rb->get_custom_data(RB_SCOPE_SDFGI); Vector view_rids; @@ -2553,19 +2553,19 @@ void RenderForwardClustered::_render_buffers_debug_draw(const RenderDataRD *p_re RID render_target = rb->get_render_target(); - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_SSAO && rb->has_texture(RB_SCOPE_SSAO, RB_FINAL)) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_SSAO && rb->has_texture(RB_SCOPE_SSAO, RB_FINAL)) { RID final = rb->get_texture_slice(RB_SCOPE_SSAO, RB_FINAL, 0, 0); Size2i rtsize = texture_storage->render_target_get_size(render_target); copy_effects->copy_to_fb_rect(final, texture_storage->render_target_get_rd_framebuffer(render_target), Rect2(Vector2(), rtsize), false, true); } - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_SSIL && rb->has_texture(RB_SCOPE_SSIL, RB_FINAL)) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_SSIL && rb->has_texture(RB_SCOPE_SSIL, RB_FINAL)) { RID final = rb->get_texture_slice(RB_SCOPE_SSIL, RB_FINAL, 0, 0); Size2i rtsize = texture_storage->render_target_get_size(render_target); copy_effects->copy_to_fb_rect(final, texture_storage->render_target_get_rd_framebuffer(render_target), Rect2(Vector2(), rtsize), false, false); } - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_GI_BUFFER && rb->has_texture(RB_SCOPE_GI, RB_TEX_AMBIENT)) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_GI_BUFFER && rb->has_texture(RB_SCOPE_GI, RB_TEX_AMBIENT)) { Size2i rtsize = texture_storage->render_target_get_size(render_target); RID ambient_texture = rb->get_texture(RB_SCOPE_GI, RB_TEX_AMBIENT); RID reflection_texture = rb->get_texture(RB_SCOPE_GI, RB_TEX_REFLECTION); @@ -2601,7 +2601,7 @@ void RenderForwardClustered::_render_shadow_pass(RID p_light, RID p_shadow_atlas Projection light_projection; Transform3D light_transform; - if (light_storage->light_get_type(base) == RS::LIGHT_DIRECTIONAL) { + if (light_storage->light_get_type(base) == RSE::LIGHT_DIRECTIONAL) { //set pssm stuff uint64_t last_scene_shadow_pass = light_storage->light_instance_get_shadow_pass(p_light); if (last_scene_shadow_pass != get_scene_pass()) { @@ -2610,13 +2610,13 @@ void RenderForwardClustered::_render_shadow_pass(RID p_light, RID p_shadow_atlas light_storage->light_instance_set_shadow_pass(p_light, get_scene_pass()); } - use_pancake = light_storage->light_get_param(base, RS::LIGHT_PARAM_SHADOW_PANCAKE_SIZE) > 0; + use_pancake = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SHADOW_PANCAKE_SIZE) > 0; light_projection = light_storage->light_instance_get_shadow_camera(p_light, p_pass); light_transform = light_storage->light_instance_get_shadow_transform(p_light, p_pass); atlas_rect = light_storage->light_instance_get_directional_rect(p_light); - if (light_storage->light_directional_get_shadow_mode(base) == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS) { + if (light_storage->light_directional_get_shadow_mode(base) == RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS) { atlas_rect.size.width /= 2; atlas_rect.size.height /= 2; @@ -2627,7 +2627,7 @@ void RenderForwardClustered::_render_shadow_pass(RID p_light, RID p_shadow_atlas } else if (p_pass == 3) { atlas_rect.position += atlas_rect.size; } - } else if (light_storage->light_directional_get_shadow_mode(base) == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS) { + } else if (light_storage->light_directional_get_shadow_mode(base) == RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS) { atlas_rect.size.height /= 2; if (p_pass == 0) { @@ -2642,7 +2642,7 @@ void RenderForwardClustered::_render_shadow_pass(RID p_light, RID p_shadow_atlas atlas_rect_norm.size /= directional_shadow_size; light_storage->light_instance_set_directional_shadow_atlas_rect(p_light, p_pass, atlas_rect_norm); - zfar = RSG::light_storage->light_get_param(base, RS::LIGHT_PARAM_RANGE); + zfar = RSG::light_storage->light_get_param(base, RSE::LIGHT_PARAM_RANGE); render_fb = light_storage->direction_shadow_get_fb(); render_texture = RID(); @@ -2677,13 +2677,13 @@ void RenderForwardClustered::_render_shadow_pass(RID p_light, RID p_shadow_atlas atlas_rect.size.width = shadow_size; atlas_rect.size.height = shadow_size; - zfar = light_storage->light_get_param(base, RS::LIGHT_PARAM_RANGE); + zfar = light_storage->light_get_param(base, RSE::LIGHT_PARAM_RANGE); - if (light_storage->light_get_type(base) == RS::LIGHT_OMNI) { + if (light_storage->light_get_type(base) == RSE::LIGHT_OMNI) { bool wrap = (shadow + 1) % subdivision == 0; dual_paraboloid_offset = wrap ? Vector2i(1 - subdivision, 1) : Vector2i(1, 0); - if (light_storage->light_omni_get_shadow_mode(base) == RS::LIGHT_OMNI_SHADOW_CUBE) { + if (light_storage->light_omni_get_shadow_mode(base) == RSE::LIGHT_OMNI_SHADOW_CUBE) { render_texture = light_storage->get_cubemap(shadow_size / 2); render_fb = light_storage->get_cubemap_fb(shadow_size / 2, p_pass); @@ -2716,7 +2716,7 @@ void RenderForwardClustered::_render_shadow_pass(RID p_light, RID p_shadow_atlas flip_y = true; } - } else if (light_storage->light_get_type(base) == RS::LIGHT_SPOT) { + } else if (light_storage->light_get_type(base) == RSE::LIGHT_SPOT) { light_projection = light_storage->light_instance_get_shadow_camera(p_light, 0); light_transform = light_storage->light_instance_get_shadow_transform(p_light, 0); @@ -2792,7 +2792,7 @@ void RenderForwardClustered::_render_shadow_append(RID p_framebuffer, const Page } uint32_t uniform_buffer_index = _setup_environment(&render_data, true, screen_size, viewport_size, Color(), false, false, p_use_pancake); - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_DISABLE_LOD) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_DISABLE_LOD) { scene_data.screen_mesh_lod_threshold = 0.0; } else { scene_data.screen_mesh_lod_threshold = p_screen_mesh_lod_threshold; @@ -2804,7 +2804,7 @@ void RenderForwardClustered::_render_shadow_append(RID p_framebuffer, const Page _fill_render_list(RENDER_LIST_SECONDARY, &render_data, pass_mode, false, false, false, true); uint32_t render_list_size = render_list[RENDER_LIST_SECONDARY].elements.size() - render_list_from; render_list[RENDER_LIST_SECONDARY].sort_by_key_range(render_list_from, render_list_size); - _fill_instance_data(RENDER_LIST_SECONDARY, p_render_info ? p_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_SHADOW] : (int *)nullptr, render_list_from, render_list_size, false); + _fill_instance_data(RENDER_LIST_SECONDARY, p_render_info ? p_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_SHADOW] : (int *)nullptr, render_list_from, render_list_size, false); { //regular forward for now @@ -3249,7 +3249,7 @@ void RenderForwardClustered::_update_render_base_uniform_set() { RD::Uniform u; u.binding = 14; u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; - u.append_id(RendererRD::MaterialStorage::get_singleton()->sampler_rd_get_default(RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(RendererRD::MaterialStorage::get_singleton()->sampler_rd_get_default(RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); } @@ -3441,23 +3441,23 @@ RID RenderForwardClustered::_setup_render_pass_uniform_set(RenderListType p_rend u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; RID sampler; switch (decals_get_filter()) { - case RS::DECAL_FILTER_NEAREST: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_NEAREST: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::DECAL_FILTER_LINEAR: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_LINEAR: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::DECAL_FILTER_NEAREST_MIPMAPS: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_NEAREST_MIPMAPS: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::DECAL_FILTER_LINEAR_MIPMAPS: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_LINEAR_MIPMAPS: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; } @@ -3471,23 +3471,23 @@ RID RenderForwardClustered::_setup_render_pass_uniform_set(RenderListType p_rend u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; RID sampler; switch (light_projectors_get_filter()) { - case RS::LIGHT_PROJECTOR_FILTER_NEAREST: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_NEAREST: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::LIGHT_PROJECTOR_FILTER_LINEAR: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_LINEAR: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; } @@ -3776,23 +3776,23 @@ RID RenderForwardClustered::_setup_sdfgi_render_pass_uniform_set(RID p_albedo_te u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; RID sampler; switch (decals_get_filter()) { - case RS::DECAL_FILTER_NEAREST: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_NEAREST: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::DECAL_FILTER_LINEAR: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_LINEAR: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::DECAL_FILTER_NEAREST_MIPMAPS: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_NEAREST_MIPMAPS: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::DECAL_FILTER_LINEAR_MIPMAPS: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_LINEAR_MIPMAPS: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; } @@ -3806,23 +3806,23 @@ RID RenderForwardClustered::_setup_sdfgi_render_pass_uniform_set(RID p_albedo_te u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; RID sampler; switch (light_projectors_get_filter()) { - case RS::LIGHT_PROJECTOR_FILTER_NEAREST: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_NEAREST: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::LIGHT_PROJECTOR_FILTER_LINEAR: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_LINEAR: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; } @@ -3884,15 +3884,15 @@ RID RenderForwardClustered::_render_buffers_get_velocity_texture(Refget_velocity_buffer(false); } -void RenderForwardClustered::environment_set_ssao_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) { +void RenderForwardClustered::environment_set_ssao_quality(RSE::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) { ERR_FAIL_NULL(ss_effects); - ERR_FAIL_COND(p_quality < RS::EnvironmentSSAOQuality::ENV_SSAO_QUALITY_VERY_LOW || p_quality > RS::EnvironmentSSAOQuality::ENV_SSAO_QUALITY_ULTRA); + ERR_FAIL_COND(p_quality < RSE::EnvironmentSSAOQuality::ENV_SSAO_QUALITY_VERY_LOW || p_quality > RSE::EnvironmentSSAOQuality::ENV_SSAO_QUALITY_ULTRA); ss_effects->ssao_set_quality(p_quality, p_half_size, p_adaptive_target, p_blur_passes, p_fadeout_from, p_fadeout_to); } -void RenderForwardClustered::environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) { +void RenderForwardClustered::environment_set_ssil_quality(RSE::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) { ERR_FAIL_NULL(ss_effects); - ERR_FAIL_COND(p_quality < RS::EnvironmentSSILQuality::ENV_SSIL_QUALITY_VERY_LOW || p_quality > RS::EnvironmentSSILQuality::ENV_SSIL_QUALITY_ULTRA); + ERR_FAIL_COND(p_quality < RSE::EnvironmentSSILQuality::ENV_SSIL_QUALITY_VERY_LOW || p_quality > RSE::EnvironmentSSILQuality::ENV_SSIL_QUALITY_ULTRA); ss_effects->ssil_set_quality(p_quality, p_half_size, p_adaptive_target, p_blur_passes, p_fadeout_from, p_fadeout_to); } @@ -3901,13 +3901,13 @@ void RenderForwardClustered::environment_set_ssr_half_size(bool p_half_size) { ss_effects->ssr_set_half_size(p_half_size); } -void RenderForwardClustered::environment_set_ssr_roughness_quality(RS::EnvironmentSSRRoughnessQuality p_quality) { +void RenderForwardClustered::environment_set_ssr_roughness_quality(RSE::EnvironmentSSRRoughnessQuality p_quality) { WARN_PRINT_ONCE("environment_set_ssr_roughness_quality has been deprecated and no longer does anything."); } -void RenderForwardClustered::sub_surface_scattering_set_quality(RS::SubSurfaceScatteringQuality p_quality) { +void RenderForwardClustered::sub_surface_scattering_set_quality(RSE::SubSurfaceScatteringQuality p_quality) { ERR_FAIL_NULL(ss_effects); - ERR_FAIL_COND(p_quality < RS::SubSurfaceScatteringQuality::SUB_SURFACE_SCATTERING_QUALITY_DISABLED || p_quality > RS::SubSurfaceScatteringQuality::SUB_SURFACE_SCATTERING_QUALITY_HIGH); + ERR_FAIL_COND(p_quality < RSE::SubSurfaceScatteringQuality::SUB_SURFACE_SCATTERING_QUALITY_DISABLED || p_quality > RSE::SubSurfaceScatteringQuality::SUB_SURFACE_SCATTERING_QUALITY_HIGH); ss_effects->sss_set_quality(p_quality); } @@ -3945,7 +3945,7 @@ void RenderForwardClustered::sdfgi_update(const Ref &p_rende // Call here as this is the first entry point for SDFGI. scene_shader.enable_advanced_shader_group(); - static const uint32_t history_frames_to_converge[RS::ENV_SDFGI_CONVERGE_MAX] = { 5, 10, 15, 20, 25, 30 }; + static const uint32_t history_frames_to_converge[RSE::ENV_SDFGI_CONVERGE_MAX] = { 5, 10, 15, 20, 25, 30 }; uint32_t requested_history_size = history_frames_to_converge[gi.sdfgi_frames_to_converge]; if (sdfgi.is_valid() && (sdfgi->num_cascades != environment_get_sdfgi_cascades(p_environment) || sdfgi->min_cell_size != environment_get_sdfgi_min_cell_size(p_environment) || requested_history_size != sdfgi->history_size || sdfgi->uses_occlusion != environment_get_sdfgi_use_occlusion(p_environment) || sdfgi->y_scale_mode != environment_get_sdfgi_y_scale(p_environment))) { @@ -4042,7 +4042,7 @@ void RenderForwardClustered::_update_global_pipeline_data_requirements_from_proj const bool positional_shadow_16_bits = GLOBAL_GET_CACHED(bool, "rendering/lights_and_shadows/positional_shadow/atlas_16_bits"); global_pipeline_data_required.use_16_bit_shadows = directional_shadow_16_bits || positional_shadow_16_bits; global_pipeline_data_required.use_32_bit_shadows = !directional_shadow_16_bits || !positional_shadow_16_bits; - global_pipeline_data_required.texture_samples = RenderSceneBuffersRD::msaa_to_samples(RS::ViewportMSAA(msaa_3d_mode)); + global_pipeline_data_required.texture_samples = RenderSceneBuffersRD::msaa_to_samples(RSE::ViewportMSAA(msaa_3d_mode)); } void RenderForwardClustered::_update_global_pipeline_data_requirements_from_light_storage() { @@ -4170,7 +4170,7 @@ void RenderForwardClustered::_geometry_instance_add_surface_with_material(Geomet sdcache->sort.uses_softshadow = ginstance->using_softshadows; uint64_t format = RendererRD::MeshStorage::get_singleton()->mesh_surface_get_format(sdcache->surface); - if (p_material->shader_data->uses_tangent && !(format & RS::ARRAY_FORMAT_TANGENT)) { + if (p_material->shader_data->uses_tangent && !(format & RSE::ARRAY_FORMAT_TANGENT)) { String shader_path = p_material->shader_data->path.is_empty() ? "" : "(" + p_material->shader_data->path + ")"; String mesh_path = mesh_storage->mesh_get_path(p_mesh).is_empty() ? "" : "(" + mesh_storage->mesh_get_path(p_mesh) + ")"; WARN_PRINT_ED(vformat("Attempting to use a shader %s that requires tangents with a mesh %s that doesn't contain tangents. Ensure that meshes are imported with the 'ensure_tangents' option. If creating your own meshes, add an `ARRAY_TANGENT` array (when using ArrayMesh) or call `generate_tangents()` (when using SurfaceTool).", shader_path, mesh_path)); @@ -4259,7 +4259,7 @@ void RenderForwardClustered::_geometry_instance_update(RenderGeometryInstance *p //add geometry for drawing switch (ginstance->data->base_type) { - case RS::INSTANCE_MESH: { + case RSE::INSTANCE_MESH: { const RID *materials = nullptr; uint32_t surface_count; RID mesh = ginstance->data->base; @@ -4280,7 +4280,7 @@ void RenderForwardClustered::_geometry_instance_update(RenderGeometryInstance *p } break; - case RS::INSTANCE_MULTIMESH: { + case RSE::INSTANCE_MULTIMESH: { RID mesh = mesh_storage->multimesh_get_mesh(ginstance->data->base); if (mesh.is_valid()) { const RID *materials = nullptr; @@ -4298,7 +4298,7 @@ void RenderForwardClustered::_geometry_instance_update(RenderGeometryInstance *p } break; #if 0 - case RS::INSTANCE_IMMEDIATE: { + case RSE::INSTANCE_IMMEDIATE: { RasterizerStorageGLES3::Immediate *immediate = storage->immediate_owner.get_or_null(inst->base); ERR_CONTINUE(!immediate); @@ -4306,7 +4306,7 @@ void RenderForwardClustered::_geometry_instance_update(RenderGeometryInstance *p } break; #endif - case RS::INSTANCE_PARTICLES: { + case RSE::INSTANCE_PARTICLES: { int draw_passes = particles_storage->particles_get_draw_passes(ginstance->data->base); for (int j = 0; j < draw_passes; j++) { @@ -4339,10 +4339,10 @@ void RenderForwardClustered::_geometry_instance_update(RenderGeometryInstance *p ginstance->base_flags = 0; bool store_transform = true; - if (ginstance->data->base_type == RS::INSTANCE_MULTIMESH) { + if (ginstance->data->base_type == RSE::INSTANCE_MULTIMESH) { ginstance->base_flags |= INSTANCE_DATA_FLAG_MULTIMESH; - if (mesh_storage->multimesh_get_transform_format(ginstance->data->base) == RS::MULTIMESH_TRANSFORM_2D) { + if (mesh_storage->multimesh_get_transform_format(ginstance->data->base) == RSE::MULTIMESH_TRANSFORM_2D) { ginstance->base_flags |= INSTANCE_DATA_FLAG_MULTIMESH_FORMAT_2D; } if (mesh_storage->multimesh_uses_colors(ginstance->data->base)) { @@ -4357,7 +4357,7 @@ void RenderForwardClustered::_geometry_instance_update(RenderGeometryInstance *p ginstance->transforms_uniform_set = mesh_storage->multimesh_get_3d_uniform_set(ginstance->data->base, scene_shader.default_shader_rd, TRANSFORMS_UNIFORM_SET); - } else if (ginstance->data->base_type == RS::INSTANCE_PARTICLES) { + } else if (ginstance->data->base_type == RSE::INSTANCE_PARTICLES) { ginstance->base_flags |= INSTANCE_DATA_FLAG_PARTICLES; ginstance->base_flags |= INSTANCE_DATA_FLAG_MULTIMESH; @@ -4380,7 +4380,7 @@ void RenderForwardClustered::_geometry_instance_update(RenderGeometryInstance *p if (ginstance->data->dirty_dependencies) { particles_storage->particles_update_dependency(ginstance->data->base, &ginstance->data->dependency_tracker); } - } else if (ginstance->data->base_type == RS::INSTANCE_MESH) { + } else if (ginstance->data->base_type == RSE::INSTANCE_MESH) { if (mesh_storage->skeleton_is_valid(ginstance->data->skeleton)) { ginstance->transforms_uniform_set = mesh_storage->skeleton_get_3d_uniform_set(ginstance->data->skeleton, scene_shader.default_shader_rd, TRANSFORMS_UNIFORM_SET); if (ginstance->data->dirty_dependencies) { @@ -4549,7 +4549,7 @@ static RD::FramebufferFormatID _get_reflection_probe_depth_framebuffer_format_fo return RD::get_singleton()->framebuffer_format_create(Vector(attachments)); } -void RenderForwardClustered::_mesh_compile_pipeline_for_surface(SceneShaderForwardClustered::ShaderData *p_shader, void *p_mesh_surface, bool p_ubershader, bool p_instanced_surface, RS::PipelineSource p_source, SceneShaderForwardClustered::ShaderData::PipelineKey &r_pipeline_key, Vector *r_pipeline_pairs) { +void RenderForwardClustered::_mesh_compile_pipeline_for_surface(SceneShaderForwardClustered::ShaderData *p_shader, void *p_mesh_surface, bool p_ubershader, bool p_instanced_surface, RSE::PipelineSource p_source, SceneShaderForwardClustered::ShaderData::PipelineKey &r_pipeline_key, Vector *r_pipeline_pairs) { RendererRD::MeshStorage *mesh_storage = RendererRD::MeshStorage::get_singleton(); uint64_t input_mask = p_shader->get_vertex_input_mask(r_pipeline_key.version, r_pipeline_key.color_pass_flags, p_ubershader); bool pipeline_motion_vectors = r_pipeline_key.color_pass_flags & SceneShaderForwardClustered::PIPELINE_COLOR_PASS_FLAG_MOTION_VECTORS; @@ -4564,7 +4564,7 @@ void RenderForwardClustered::_mesh_compile_pipeline_for_surface(SceneShaderForwa } } -void RenderForwardClustered::_mesh_compile_pipelines_for_surface(const SurfacePipelineData &p_surface, const GlobalPipelineData &p_global, RS::PipelineSource p_source, Vector *r_pipeline_pairs) { +void RenderForwardClustered::_mesh_compile_pipelines_for_surface(const SurfacePipelineData &p_surface, const GlobalPipelineData &p_global, RSE::PipelineSource p_source, Vector *r_pipeline_pairs) { RendererRD::MeshStorage *mesh_storage = RendererRD::MeshStorage::get_singleton(); bool octmap_use_storage = !copy_effects->get_raster_effects().has_flag(RendererRD::CopyEffects::RASTER_EFFECT_OCTMAP); @@ -4725,7 +4725,7 @@ void RenderForwardClustered::_mesh_generate_all_pipelines_for_surface_cache(Geom surface.uses_transparent = uses_alpha_pass || uses_fade; surface.uses_depth = (p_surface_cache->flags & (GeometryInstanceSurfaceDataCache::FLAG_PASS_DEPTH | GeometryInstanceSurfaceDataCache::FLAG_PASS_OPAQUE | GeometryInstanceSurfaceDataCache::FLAG_PASS_SHADOW)) != 0; surface.can_use_lightmap = p_surface_cache->owner->lightmap_instance.is_valid() || p_surface_cache->owner->lightmap_sh; - _mesh_compile_pipelines_for_surface(surface, p_global, RS::PIPELINE_SOURCE_SURFACE); + _mesh_compile_pipelines_for_surface(surface, p_global, RSE::PIPELINE_SOURCE_SURFACE); } void RenderForwardClustered::_update_dirty_geometry_instances() { @@ -4780,7 +4780,7 @@ void RenderForwardClustered::_geometry_instance_dependency_changed(Dependency::D } break; case Dependency::DEPENDENCY_CHANGED_MULTIMESH_VISIBLE_INSTANCES: { GeometryInstanceForwardClustered *ginstance = static_cast(p_tracker->userdata); - if (ginstance->data->base_type == RS::INSTANCE_MULTIMESH) { + if (ginstance->data->base_type == RSE::INSTANCE_MULTIMESH) { ginstance->instance_count = RendererRD::MeshStorage::get_singleton()->multimesh_get_instances_to_draw(ginstance->data->base); } } break; @@ -4795,8 +4795,8 @@ void RenderForwardClustered::_geometry_instance_dependency_deleted(const RID &p_ } RenderGeometryInstance *RenderForwardClustered::geometry_instance_create(RID p_base) { - RS::InstanceType type = RSG::utilities->get_base_type(p_base); - ERR_FAIL_COND_V(!((1 << type) & RS::INSTANCE_GEOMETRY_MASK), nullptr); + RSE::InstanceType type = RSG::utilities->get_base_type(p_base); + ERR_FAIL_COND_V(!((1 << type) & RSE::INSTANCE_GEOMETRY_MASK), nullptr); GeometryInstanceForwardClustered *ginstance = geometry_instance_alloc.alloc(); ginstance->data = memnew(GeometryInstanceForwardClustered::Data); @@ -4871,7 +4871,7 @@ void RenderForwardClustered::geometry_instance_free(RenderGeometryInstance *p_ge } uint32_t RenderForwardClustered::geometry_instance_get_pair_mask() { - return (1 << RS::INSTANCE_VOXEL_GI); + return (1 << RSE::INSTANCE_VOXEL_GI); } void RenderForwardClustered::mesh_generate_pipelines(RID p_mesh, bool p_background_compilation) { @@ -4918,8 +4918,8 @@ void RenderForwardClustered::mesh_generate_pipelines(RID p_mesh, bool p_backgrou surface.uses_opaque = !material->shader_data->uses_alpha_pass(); surface.uses_transparent = material->shader_data->uses_alpha_pass(); surface.uses_depth = surface.uses_opaque || (surface.uses_transparent && material->shader_data->uses_depth_in_alpha_pass()); - surface.can_use_lightmap = mesh_storage->mesh_surface_get_format(mesh_surface) & RS::ARRAY_FORMAT_TEX_UV2; - _mesh_compile_pipelines_for_surface(surface, global_pipeline_data_required, RS::PIPELINE_SOURCE_MESH, &pipeline_pairs); + surface.can_use_lightmap = mesh_storage->mesh_surface_get_format(mesh_surface) & RSE::ARRAY_FORMAT_TEX_UV2; + _mesh_compile_pipelines_for_surface(surface, global_pipeline_data_required, RSE::PIPELINE_SOURCE_MESH, &pipeline_pairs); } // Wait for all the pipelines that were compiled. This will force the loader to wait on all ubershader pipelines to be ready. @@ -4930,7 +4930,7 @@ void RenderForwardClustered::mesh_generate_pipelines(RID p_mesh, bool p_backgrou } } -uint32_t RenderForwardClustered::get_pipeline_compilations(RS::PipelineSource p_source) { +uint32_t RenderForwardClustered::get_pipeline_compilations(RSE::PipelineSource p_source) { return scene_shader.get_pipeline_compilations(p_source); } @@ -4974,15 +4974,15 @@ void RenderForwardClustered::GeometryInstanceForwardClustered::set_softshadow_pr void RenderForwardClustered::_update_shader_quality_settings() { SceneShaderForwardClustered::ShaderSpecialization specialization = {}; - specialization.decal_use_mipmaps = decals_get_filter() == RS::DECAL_FILTER_NEAREST_MIPMAPS || - decals_get_filter() == RS::DECAL_FILTER_LINEAR_MIPMAPS || - decals_get_filter() == RS::DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC || - decals_get_filter() == RS::DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC; + specialization.decal_use_mipmaps = decals_get_filter() == RSE::DECAL_FILTER_NEAREST_MIPMAPS || + decals_get_filter() == RSE::DECAL_FILTER_LINEAR_MIPMAPS || + decals_get_filter() == RSE::DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC || + decals_get_filter() == RSE::DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC; ; - specialization.projector_use_mipmaps = light_projectors_get_filter() == RS::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS || - light_projectors_get_filter() == RS::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS || - light_projectors_get_filter() == RS::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC || - light_projectors_get_filter() == RS::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC; + specialization.projector_use_mipmaps = light_projectors_get_filter() == RSE::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS || + light_projectors_get_filter() == RSE::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS || + light_projectors_get_filter() == RSE::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC || + light_projectors_get_filter() == RSE::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC; specialization.soft_shadow_samples = soft_shadow_samples_get(); specialization.penumbra_shadow_samples = penumbra_shadow_samples_get(); diff --git a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h index 1a2008f495..50142737fb 100644 --- a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h +++ b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h @@ -525,7 +525,7 @@ private: }; } sort; - RS::PrimitiveType primitive = RS::PRIMITIVE_MAX; + RSE::PrimitiveType primitive = RSE::PRIMITIVE_MAX; uint32_t flags = 0; uint32_t surface_index = 0; uint32_t color_pass_inclusion_mask = 0; @@ -590,7 +590,7 @@ private: virtual void set_lightmap_capture(const Color *p_sh9) override; virtual void clear_light_instances() override {} - virtual void pair_light_instance(const RID p_light_instance, RS::LightType light_type, uint32_t placement_idx) override {} + virtual void pair_light_instance(const RID p_light_instance, RSE::LightType light_type, uint32_t placement_idx) override {} virtual void pair_reflection_probe_instances(const RID *p_reflection_probe_instances, uint32_t p_reflection_probe_instance_count) override {} virtual void pair_decal_instances(const RID *p_decal_instances, uint32_t p_decal_instance_count) override {} virtual void pair_voxel_gi_instances(const RID *p_voxel_gi_instances, uint32_t p_voxel_gi_instance_count) override; @@ -658,8 +658,8 @@ private: void _geometry_instance_add_surface_with_material_chain(GeometryInstanceForwardClustered *ginstance, uint32_t p_surface, SceneShaderForwardClustered::MaterialData *p_material, RID p_mat_src, RID p_mesh); void _geometry_instance_add_surface(GeometryInstanceForwardClustered *ginstance, uint32_t p_surface, RID p_material, RID p_mesh); void _geometry_instance_update(RenderGeometryInstance *p_geometry_instance); - void _mesh_compile_pipeline_for_surface(SceneShaderForwardClustered::ShaderData *p_shader, void *p_mesh_surface, bool p_ubershader, bool p_instanced_surface, RS::PipelineSource p_source, SceneShaderForwardClustered::ShaderData::PipelineKey &r_pipeline_key, Vector *r_pipeline_pairs = nullptr); - void _mesh_compile_pipelines_for_surface(const SurfacePipelineData &p_surface, const GlobalPipelineData &p_global, RS::PipelineSource p_source, Vector *r_pipeline_pairs = nullptr); + void _mesh_compile_pipeline_for_surface(SceneShaderForwardClustered::ShaderData *p_shader, void *p_mesh_surface, bool p_ubershader, bool p_instanced_surface, RSE::PipelineSource p_source, SceneShaderForwardClustered::ShaderData::PipelineKey &r_pipeline_key, Vector *r_pipeline_pairs = nullptr); + void _mesh_compile_pipelines_for_surface(const SurfacePipelineData &p_surface, const GlobalPipelineData &p_global, RSE::PipelineSource p_source, Vector *r_pipeline_pairs = nullptr); void _mesh_generate_all_pipelines_for_surface_cache(GeometryInstanceSurfaceDataCache *p_surface_cache, const GlobalPipelineData &p_global); void _update_dirty_geometry_instances(); void _update_dirty_geometry_pipelines(); @@ -783,12 +783,12 @@ protected: virtual RID _render_buffers_get_normal_texture(Ref p_render_buffers) override; virtual RID _render_buffers_get_velocity_texture(Ref p_render_buffers) override; - virtual void environment_set_ssao_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override; - virtual void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override; + virtual void environment_set_ssao_quality(RSE::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override; + virtual void environment_set_ssil_quality(RSE::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override; virtual void environment_set_ssr_half_size(bool p_half_size) override; - virtual void environment_set_ssr_roughness_quality(RS::EnvironmentSSRRoughnessQuality p_quality) override; + virtual void environment_set_ssr_roughness_quality(RSE::EnvironmentSSRRoughnessQuality p_quality) override; - virtual void sub_surface_scattering_set_quality(RS::SubSurfaceScatteringQuality p_quality) override; + virtual void sub_surface_scattering_set_quality(RSE::SubSurfaceScatteringQuality p_quality) override; virtual void sub_surface_scattering_set_scale(float p_scale, float p_depth_scale) override; /* Rendering */ @@ -809,7 +809,7 @@ public: /* callback from updating our lighting UBOs, used to populate cluster builder */ virtual void setup_added_reflection_probe(const Transform3D &p_transform, const Vector3 &p_half_size) override; - virtual void setup_added_light(const RS::LightType p_type, const Transform3D &p_transform, float p_radius, float p_spot_aperture) override; + virtual void setup_added_light(const RSE::LightType p_type, const Transform3D &p_transform, float p_radius, float p_spot_aperture) override; virtual void setup_added_decal(const Transform3D &p_transform, const Vector3 &p_half_size) override; virtual void base_uniforms_changed() override; @@ -832,7 +832,7 @@ public: /* PIPELINES */ virtual void mesh_generate_pipelines(RID p_mesh, bool p_background_compilation) override; - virtual uint32_t get_pipeline_compilations(RS::PipelineSource p_source) override; + virtual uint32_t get_pipeline_compilations(RSE::PipelineSource p_source) override; /* SHADER LIBRARY */ diff --git a/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp b/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp index 3f88581b6b..44bcf7314b 100644 --- a/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp +++ b/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp @@ -34,6 +34,7 @@ #include "render_forward_clustered.h" #include "servers/rendering/renderer_rd/renderer_compositor_rd.h" #include "servers/rendering/renderer_rd/storage_rd/material_storage.h" +#include "servers/rendering/rendering_server.h" using namespace RendererSceneRenderImplementation; @@ -55,7 +56,7 @@ void SceneShaderForwardClustered::ShaderData::set_code(const String &p_code) { depth_test_disabledi = 0; depth_test_invertedi = 0; alpha_antialiasing_mode = ALPHA_ANTIALIASING_OFF; - int cull_modei = RS::CULL_MODE_BACK; + int cull_modei = RSE::CULL_MODE_BACK; uses_point_size = false; uses_alpha = false; @@ -111,9 +112,9 @@ void SceneShaderForwardClustered::ShaderData::set_code(const String &p_code) { actions.render_mode_values["depth_test_disabled"] = Pair(&depth_test_disabledi, 1); actions.render_mode_values["depth_test_inverted"] = Pair(&depth_test_invertedi, 1); - actions.render_mode_values["cull_disabled"] = Pair(&cull_modei, RS::CULL_MODE_DISABLED); - actions.render_mode_values["cull_front"] = Pair(&cull_modei, RS::CULL_MODE_FRONT); - actions.render_mode_values["cull_back"] = Pair(&cull_modei, RS::CULL_MODE_BACK); + actions.render_mode_values["cull_disabled"] = Pair(&cull_modei, RSE::CULL_MODE_DISABLED); + actions.render_mode_values["cull_front"] = Pair(&cull_modei, RSE::CULL_MODE_FRONT); + actions.render_mode_values["cull_back"] = Pair(&cull_modei, RSE::CULL_MODE_BACK); actions.render_mode_flags["unshaded"] = &unshaded; actions.render_mode_flags["wireframe"] = &wireframe; @@ -170,7 +171,7 @@ void SceneShaderForwardClustered::ShaderData::set_code(const String &p_code) { Error err = OK; { MutexLock lock(SceneShaderForwardClustered::singleton_mutex); - err = SceneShaderForwardClustered::singleton->compiler.compile(RS::SHADER_SPATIAL, code, &actions, path, gen_code); + err = SceneShaderForwardClustered::singleton->compiler.compile(RSE::SHADER_SPATIAL, code, &actions, path, gen_code); } if (err != OK) { @@ -193,7 +194,7 @@ void SceneShaderForwardClustered::ShaderData::set_code(const String &p_code) { } else { depth_test = DEPTH_TEST_ENABLED; } - cull_mode = RS::CullMode(cull_modei); + cull_mode = RSE::CullMode(cull_modei); uses_screen_texture_mipmaps = gen_code.uses_screen_texture_mipmaps; uses_screen_texture = gen_code.uses_screen_texture; uses_depth_texture = gen_code.uses_depth_texture; @@ -403,7 +404,7 @@ void SceneShaderForwardClustered::ShaderData::_create_pipeline(PipelineKey p_pip bool depth_pre_pass_enabled = bool(GLOBAL_GET_CACHED(bool, "rendering/driver/depth_prepass/enable")); - RD::RenderPrimitive primitive_rd_table[RS::PRIMITIVE_MAX] = { + RD::RenderPrimitive primitive_rd_table[RSE::PRIMITIVE_MAX] = { RD::RENDER_PRIMITIVE_POINTS, RD::RENDER_PRIMITIVE_LINES, RD::RENDER_PRIMITIVE_LINESTRIPS, @@ -580,7 +581,7 @@ RendererRD::MaterialStorage::ShaderData *SceneShaderForwardClustered::_create_sh } void SceneShaderForwardClustered::MaterialData::set_render_priority(int p_priority) { - priority = p_priority - RS::MATERIAL_RENDER_PRIORITY_MIN; //8 bits + priority = p_priority - RSE::MATERIAL_RENDER_PRIORITY_MIN; //8 bits } void SceneShaderForwardClustered::MaterialData::set_next_pass(RID p_pass) { @@ -1033,7 +1034,7 @@ bool SceneShaderForwardClustered::is_advanced_shader_group_enabled(bool p_multiv } } -uint32_t SceneShaderForwardClustered::get_pipeline_compilations(RS::PipelineSource p_source) { +uint32_t SceneShaderForwardClustered::get_pipeline_compilations(RSE::PipelineSource p_source) { MutexLock lock(SceneShaderForwardClustered::singleton_mutex); return pipeline_compilations[p_source]; } diff --git a/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h b/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h index c0df98e2f0..168d63b7ee 100644 --- a/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h +++ b/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h @@ -189,7 +189,7 @@ public: RD::VertexFormatID vertex_format_id; RD::FramebufferFormatID framebuffer_format_id; RD::PolygonCullMode cull_mode = RD::POLYGON_CULL_MAX; - RS::PrimitiveType primitive_type = RS::PRIMITIVE_MAX; + RSE::PrimitiveType primitive_type = RSE::PRIMITIVE_MAX; PipelineVersion version = PipelineVersion::PIPELINE_VERSION_MAX; uint32_t color_pass_flags = 0; ShaderSpecialization shader_specialization = {}; @@ -265,7 +265,7 @@ public: bool uses_world_coordinates = false; bool uses_screen_texture_mipmaps = false; bool uses_z_clip_scale = false; - RS::CullMode cull_mode = RS::CULL_MODE_DISABLED; + RSE::CullMode cull_mode = RSE::CULL_MODE_DISABLED; bool stencil_enabled = false; uint32_t stencil_flags = 0; @@ -292,7 +292,7 @@ public: } _FORCE_INLINE_ bool uses_shared_shadow_material() const { - bool backface_culling = cull_mode == RS::CULL_MODE_BACK; + bool backface_culling = cull_mode == RSE::CULL_MODE_BACK; return !uses_particle_trails && !writes_modelview_or_projection && !uses_vertex && !uses_position && !uses_discard && !uses_depth_prepass_alpha && !uses_alpha_clip && !uses_alpha_antialiasing && backface_culling && !uses_point_size && !uses_world_coordinates && !wireframe && !uses_z_clip_scale && !stencil_enabled; } @@ -369,7 +369,7 @@ public: ShaderSpecialization default_specialization = {}; - uint32_t pipeline_compilations[RS::PIPELINE_SOURCE_MAX] = {}; + uint32_t pipeline_compilations[RSE::PIPELINE_SOURCE_MAX] = {}; SceneShaderForwardClustered(); ~SceneShaderForwardClustered(); @@ -380,7 +380,7 @@ public: void enable_advanced_shader_group(bool p_needs_multiview = false); bool is_multiview_shader_group_enabled() const; bool is_advanced_shader_group_enabled(bool p_multiview) const; - uint32_t get_pipeline_compilations(RS::PipelineSource p_source); + uint32_t get_pipeline_compilations(RSE::PipelineSource p_source); }; } // namespace RendererSceneRenderImplementation diff --git a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp index 54c0fc2cb4..3625a3b4ab 100644 --- a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp +++ b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp @@ -205,14 +205,14 @@ RID RenderForwardMobile::RenderBufferDataForwardMobile::get_color_fbs(Framebuffe // In the (near) future this means that if we cycle through a texture chain for our render target, we'll also support // this. - RS::ViewportMSAA msaa_3d = render_buffers->get_msaa_3d(); - bool use_msaa = msaa_3d != RS::VIEWPORT_MSAA_DISABLED; + RSE::ViewportMSAA msaa_3d = render_buffers->get_msaa_3d(); + bool use_msaa = msaa_3d != RSE::VIEWPORT_MSAA_DISABLED; uint32_t view_count = render_buffers->get_view_count(); RID vrs_texture; #ifndef XR_DISABLED - if (render_buffers->get_vrs_mode() == RS::VIEWPORT_VRS_XR) { + if (render_buffers->get_vrs_mode() == RSE::VIEWPORT_VRS_XR) { Ref interface = XRServer::get_singleton()->get_primary_interface(); if (interface.is_valid() && RD::get_singleton()->vrs_get_method() == RD::VRS_METHOD_FRAGMENT_DENSITY_MAP && interface->get_vrs_texture_format() == XRInterface::XR_VRS_TEXTURE_FORMAT_FRAGMENT_DENSITY_MAP) { vrs_texture = interface->get_vrs_texture(); @@ -290,7 +290,7 @@ RID RenderForwardMobile::RenderBufferDataForwardMobile::get_color_fbs(Framebuffe RID render_target = render_buffers->get_render_target(); ERR_FAIL_COND_V(render_target.is_null(), RID()); RID target_buffer; - if (view_count > 1 || texture_storage->render_target_get_msaa(render_target) == RS::VIEWPORT_MSAA_DISABLED) { + if (view_count > 1 || texture_storage->render_target_get_msaa(render_target) == RSE::VIEWPORT_MSAA_DISABLED) { target_buffer = texture_storage->render_target_get_rd_texture(render_target); } else { target_buffer = texture_storage->render_target_get_rd_texture_msaa(render_target); @@ -376,8 +376,8 @@ void RenderForwardMobile::mesh_generate_pipelines(RID p_mesh, bool p_background_ surface.uses_opaque = !material->shader_data->uses_alpha_pass(); surface.uses_transparent = material->shader_data->uses_alpha_pass(); surface.uses_depth = surface.uses_opaque || (surface.uses_transparent && material->shader_data->uses_depth_in_alpha_pass()); - surface.can_use_lightmap = mesh_storage->mesh_surface_get_format(mesh_surface) & RS::ARRAY_FORMAT_TEX_UV2; - _mesh_compile_pipelines_for_surface(surface, global_pipeline_data_required, RS::PIPELINE_SOURCE_MESH, &pipeline_pairs); + surface.can_use_lightmap = mesh_storage->mesh_surface_get_format(mesh_surface) & RSE::ARRAY_FORMAT_TEX_UV2; + _mesh_compile_pipelines_for_surface(surface, global_pipeline_data_required, RSE::PIPELINE_SOURCE_MESH, &pipeline_pairs); } // Try to wait for all the pipelines that were compiled. This will force the loader to wait on all ubershader pipelines to be ready. @@ -388,7 +388,7 @@ void RenderForwardMobile::mesh_generate_pipelines(RID p_mesh, bool p_background_ } } -uint32_t RenderForwardMobile::get_pipeline_compilations(RS::PipelineSource p_source) { +uint32_t RenderForwardMobile::get_pipeline_compilations(RSE::PipelineSource p_source) { return scene_shader.get_pipeline_compilations(p_source); } @@ -637,23 +637,23 @@ RID RenderForwardMobile::_setup_render_pass_uniform_set(RenderListType p_render_ u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; RID sampler; switch (decals_get_filter()) { - case RS::DECAL_FILTER_NEAREST: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_NEAREST: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::DECAL_FILTER_LINEAR: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_LINEAR: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::DECAL_FILTER_NEAREST_MIPMAPS: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_NEAREST_MIPMAPS: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::DECAL_FILTER_LINEAR_MIPMAPS: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_LINEAR_MIPMAPS: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; } @@ -667,23 +667,23 @@ RID RenderForwardMobile::_setup_render_pass_uniform_set(RenderListType p_render_ u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; RID sampler; switch (light_projectors_get_filter()) { - case RS::LIGHT_PROJECTOR_FILTER_NEAREST: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_NEAREST: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::LIGHT_PROJECTOR_FILTER_LINEAR: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_LINEAR: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; - case RS::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC: { - sampler = p_samplers.get_sampler(RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + case RSE::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC: { + sampler = p_samplers.get_sampler(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); } break; } @@ -750,9 +750,9 @@ void RenderForwardMobile::_pre_opaque_render(RenderDataRD *p_render_data) { RID li = p_render_data->render_shadows[i].light; RID base = light_storage->light_instance_get_base_light(li); - if (light_storage->light_get_type(base) == RS::LIGHT_DIRECTIONAL) { + if (light_storage->light_get_type(base) == RSE::LIGHT_DIRECTIONAL) { p_render_data->directional_shadows.push_back(i); - } else if (light_storage->light_get_type(base) == RS::LIGHT_OMNI && light_storage->light_omni_get_shadow_mode(base) == RS::LIGHT_OMNI_SHADOW_CUBE) { + } else if (light_storage->light_get_type(base) == RSE::LIGHT_OMNI && light_storage->light_omni_get_shadow_mode(base) == RSE::LIGHT_OMNI_SHADOW_CUBE) { p_render_data->cube_shadows.push_back(i); } else { p_render_data->shadows.push_back(i); @@ -851,13 +851,13 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color RendererRD::MaterialStorage::Samplers samplers; bool hdr_render_target = false; - RS::ViewportMSAA msaa = rb->get_msaa_3d(); - bool use_msaa = msaa != RS::VIEWPORT_MSAA_DISABLED; + RSE::ViewportMSAA msaa = rb->get_msaa_3d(); + bool use_msaa = msaa != RSE::VIEWPORT_MSAA_DISABLED; bool resolve_depth_buffer = (use_msaa && has_depth_texture_override); // We'll check more conditions later. - bool ce_has_post_opaque = _has_compositor_effect(RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE, p_render_data); - bool ce_has_pre_transparent = _has_compositor_effect(RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT, p_render_data); - bool ce_has_post_transparent = _has_compositor_effect(RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_TRANSPARENT, p_render_data); + bool ce_has_post_opaque = _has_compositor_effect(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE, p_render_data); + bool ce_has_pre_transparent = _has_compositor_effect(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT, p_render_data); + bool ce_has_post_transparent = _has_compositor_effect(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_TRANSPARENT, p_render_data); if (ce_has_post_opaque) { // As we're doing opaque and sky in subpasses we don't support this *yet* @@ -873,7 +873,7 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color using_subpass_post_process = false; } - if (use_msaa && _compositor_effects_has_flag(p_render_data, RS::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH, RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY)) { + if (use_msaa && _compositor_effects_has_flag(p_render_data, RSE::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH, RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY)) { // We'll be able to do this when we finish PR #78598 WARN_PRINT_ONCE("Depth buffer resolve for rendering effect callback is not supported in the mobile renderer"); } @@ -915,8 +915,8 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color _fill_instance_data(RENDER_LIST_ALPHA); if (p_render_data->render_info) { - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME] = p_render_data->instances->size(); - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] = p_render_data->instances->size(); + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME] = p_render_data->instances->size(); + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] = p_render_data->instances->size(); } if (is_reflection_probe) { @@ -941,15 +941,15 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color // setup rendering to render buffer screen_size = p_render_data->render_buffers->get_internal_size(); - if (rb->get_scaling_3d_mode() != RS::VIEWPORT_SCALING_3D_MODE_OFF) { + if (rb->get_scaling_3d_mode() != RSE::VIEWPORT_SCALING_3D_MODE_OFF) { // can't do blit subpass because we're scaling using_subpass_post_process = false; - } else if (p_render_data->environment.is_valid() && (environment_get_glow_enabled(p_render_data->environment) || RSG::camera_attributes->camera_attributes_uses_auto_exposure(p_render_data->camera_attributes) || RSG::camera_attributes->camera_attributes_uses_dof(p_render_data->camera_attributes) || environment_get_background(p_render_data->environment) == RS::ENV_BG_CANVAS)) { + } else if (p_render_data->environment.is_valid() && (environment_get_glow_enabled(p_render_data->environment) || RSG::camera_attributes->camera_attributes_uses_auto_exposure(p_render_data->camera_attributes) || RSG::camera_attributes->camera_attributes_uses_dof(p_render_data->camera_attributes) || environment_get_background(p_render_data->environment) == RSE::ENV_BG_CANVAS)) { // can't do blit subpass because we're using post processes using_subpass_post_process = false; } - if (rb->get_screen_space_aa() != RS::VIEWPORT_SCREEN_SPACE_AA_DISABLED) { + if (rb->get_screen_space_aa() != RSE::VIEWPORT_SCREEN_SPACE_AA_DISABLED) { // Can't do blit subpass because we're using screen space AA. using_subpass_post_process = false; } @@ -1035,23 +1035,23 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color bool use_ambient_cubemap = false; bool use_reflection_cubemap = false; - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_OVERDRAW) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_OVERDRAW) { clear_color = Color(0, 0, 0, 1); //in overdraw mode, BG should always be black } else if (is_environment(p_render_data->environment)) { - RS::EnvironmentAmbientSource ambient_source = environment_get_ambient_source(p_render_data->environment); - RS::EnvironmentBG bg_mode = environment_get_background(p_render_data->environment); + RSE::EnvironmentAmbientSource ambient_source = environment_get_ambient_source(p_render_data->environment); + RSE::EnvironmentBG bg_mode = environment_get_background(p_render_data->environment); float bg_energy_multiplier = environment_get_bg_energy_multiplier(p_render_data->environment); bg_energy_multiplier *= environment_get_bg_intensity(p_render_data->environment); - RS::EnvironmentReflectionSource reflection_source = environment_get_reflection_source(p_render_data->environment); - use_ambient_cubemap = (ambient_source == RS::ENV_AMBIENT_SOURCE_BG && bg_mode == RS::ENV_BG_SKY) || ambient_source == RS::ENV_AMBIENT_SOURCE_SKY; - use_reflection_cubemap = (reflection_source == RS::ENV_REFLECTION_SOURCE_BG && bg_mode == RS::ENV_BG_SKY) || reflection_source == RS::ENV_REFLECTION_SOURCE_SKY; + RSE::EnvironmentReflectionSource reflection_source = environment_get_reflection_source(p_render_data->environment); + use_ambient_cubemap = (ambient_source == RSE::ENV_AMBIENT_SOURCE_BG && bg_mode == RSE::ENV_BG_SKY) || ambient_source == RSE::ENV_AMBIENT_SOURCE_SKY; + use_reflection_cubemap = (reflection_source == RSE::ENV_REFLECTION_SOURCE_BG && bg_mode == RSE::ENV_BG_SKY) || reflection_source == RSE::ENV_REFLECTION_SOURCE_SKY; if (p_render_data->camera_attributes.is_valid()) { bg_energy_multiplier *= RSG::camera_attributes->camera_attributes_get_exposure_normalization_factor(p_render_data->camera_attributes); } switch (bg_mode) { - case RS::ENV_BG_CLEAR_COLOR: { + case RSE::ENV_BG_CLEAR_COLOR: { clear_color = p_default_bg_color; clear_color.r *= bg_energy_multiplier; clear_color.g *= bg_energy_multiplier; @@ -1061,7 +1061,7 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color RendererRD::MaterialStorage::get_singleton()->material_set_param(sky.sky_scene_state.fog_material, "clear_color", Variant(clear_color.srgb_to_linear())); } } break; - case RS::ENV_BG_COLOR: { + case RSE::ENV_BG_COLOR: { clear_color = environment_get_bg_color(p_render_data->environment); clear_color.r *= bg_energy_multiplier; clear_color.g *= bg_energy_multiplier; @@ -1071,25 +1071,25 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color RendererRD::MaterialStorage::get_singleton()->material_set_param(sky.sky_scene_state.fog_material, "clear_color", Variant(clear_color.srgb_to_linear())); } } break; - case RS::ENV_BG_SKY: { + case RSE::ENV_BG_SKY: { draw_sky = !p_render_data->transparent_bg; } break; - case RS::ENV_BG_CANVAS: { + case RSE::ENV_BG_CANVAS: { if (rb_data.is_valid()) { copy_canvas = true; } } break; - case RS::ENV_BG_KEEP: { + case RSE::ENV_BG_KEEP: { load_color = true; } break; - case RS::ENV_BG_CAMERA_FEED: { + case RSE::ENV_BG_CAMERA_FEED: { } break; default: { } } // setup sky if used for ambient, reflections, or background - if (draw_sky || draw_sky_fog_only || (reflection_source == RS::ENV_REFLECTION_SOURCE_BG && bg_mode == RS::ENV_BG_SKY) || reflection_source == RS::ENV_REFLECTION_SOURCE_SKY || ambient_source == RS::ENV_AMBIENT_SOURCE_SKY) { + if (draw_sky || draw_sky_fog_only || (reflection_source == RSE::ENV_REFLECTION_SOURCE_BG && bg_mode == RSE::ENV_BG_SKY) || reflection_source == RSE::ENV_REFLECTION_SOURCE_SKY || ambient_source == RSE::ENV_AMBIENT_SOURCE_SKY) { RENDER_TIMESTAMP("Setup Sky"); RD::get_singleton()->draw_command_begin_label("Setup Sky"); @@ -1117,7 +1117,7 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color } // We don't have access to any rendered buffers but we may be able to effect mesh data... - _process_compositor_effects(RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE, p_render_data); + _process_compositor_effects(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE, p_render_data); _pre_opaque_render(p_render_data); @@ -1139,7 +1139,7 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color base_specialization.use_fog_aerial_perspective = environment_get_fog_aerial_perspective(p_render_data->environment) > 0.0; base_specialization.use_fog_sun_scatter = environment_get_fog_sun_scatter(p_render_data->environment) > 0.001; base_specialization.use_fog_height_density = std::abs(environment_get_fog_height_density(p_render_data->environment)) >= 0.0001; - base_specialization.use_depth_fog = p_render_data->environment.is_valid() && environment_get_fog_mode(p_render_data->environment) == RS::EnvironmentFogMode::ENV_FOG_MODE_DEPTH; + base_specialization.use_depth_fog = p_render_data->environment.is_valid() && environment_get_fog_mode(p_render_data->environment) == RSE::EnvironmentFogMode::ENV_FOG_MODE_DEPTH; } base_specialization.scene_use_ambient_cubemap = use_ambient_cubemap; @@ -1231,7 +1231,7 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color } if (render_list[RENDER_LIST_OPAQUE].elements.size() > 0) { - RenderListParameters render_list_params(render_list[RENDER_LIST_OPAQUE].elements.ptr(), render_list[RENDER_LIST_OPAQUE].element_info.ptr(), render_list[RENDER_LIST_OPAQUE].elements.size(), reverse_cull, PASS_MODE_COLOR, rp_uniform_set, base_specialization, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->scene_data->lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, p_render_data->scene_data->view_count); + RenderListParameters render_list_params(render_list[RENDER_LIST_OPAQUE].elements.ptr(), render_list[RENDER_LIST_OPAQUE].element_info.ptr(), render_list[RENDER_LIST_OPAQUE].elements.size(), reverse_cull, PASS_MODE_COLOR, rp_uniform_set, base_specialization, get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->scene_data->lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, p_render_data->scene_data->view_count); render_list_params.framebuffer_format = fb_format; render_list_params.subpass = RD::get_singleton()->draw_list_get_current_pass(); // Should now always be 0. @@ -1258,7 +1258,7 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color rp_uniform_set = _setup_render_pass_uniform_set(RENDER_LIST_ALPHA, p_render_data, radiance_texture, samplers, true); - RenderListParameters render_list_params(render_list[RENDER_LIST_ALPHA].elements.ptr(), render_list[RENDER_LIST_ALPHA].element_info.ptr(), render_list[RENDER_LIST_ALPHA].elements.size(), reverse_cull, PASS_MODE_COLOR_TRANSPARENT, rp_uniform_set, base_specialization, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->scene_data->lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, p_render_data->scene_data->view_count); + RenderListParameters render_list_params(render_list[RENDER_LIST_ALPHA].elements.ptr(), render_list[RENDER_LIST_ALPHA].element_info.ptr(), render_list[RENDER_LIST_ALPHA].elements.size(), reverse_cull, PASS_MODE_COLOR_TRANSPARENT, rp_uniform_set, base_specialization, get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->scene_data->lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, p_render_data->scene_data->view_count); render_list_params.framebuffer_format = fb_format; render_list_params.subpass = RD::get_singleton()->draw_list_get_current_pass(); // Should now always be 0. @@ -1292,7 +1292,7 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color // rendering effects if (ce_has_pre_transparent) { - _process_compositor_effects(RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT, p_render_data); + _process_compositor_effects(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT, p_render_data); } if (scene_state.used_screen_texture || global_surface_data.screen_texture_used) { @@ -1327,7 +1327,7 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color // this may be needed if we re-introduced steps that change info, not sure which do so in the previous implementation //_setup_environment(p_render_data, is_reflection_probe, screen_size, screen_size, p_default_bg_color, false); - RenderListParameters render_list_params(render_list[RENDER_LIST_ALPHA].elements.ptr(), render_list[RENDER_LIST_ALPHA].element_info.ptr(), render_list[RENDER_LIST_ALPHA].elements.size(), reverse_cull, PASS_MODE_COLOR, rp_uniform_set, base_specialization, get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->scene_data->lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, p_render_data->scene_data->view_count); + RenderListParameters render_list_params(render_list[RENDER_LIST_ALPHA].elements.ptr(), render_list[RENDER_LIST_ALPHA].element_info.ptr(), render_list[RENDER_LIST_ALPHA].elements.size(), reverse_cull, PASS_MODE_COLOR, rp_uniform_set, base_specialization, get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_WIREFRAME, Vector2(), p_render_data->scene_data->lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, p_render_data->scene_data->view_count); render_list_params.framebuffer_format = fb_format; render_list_params.subpass = RD::get_singleton()->draw_list_get_current_pass(); // Should now always be 0. @@ -1344,7 +1344,7 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color RD::get_singleton()->draw_command_begin_label("Post Process Pass"); if (ce_has_post_transparent) { - _process_compositor_effects(RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_TRANSPARENT, p_render_data); + _process_compositor_effects(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_TRANSPARENT, p_render_data); } // If we need extra effects we do this in its own pass @@ -1391,7 +1391,7 @@ void RenderForwardMobile::_render_shadow_pass(RID p_light, RID p_shadow_atlas, i Projection light_projection; Transform3D light_transform; - if (light_storage->light_get_type(base) == RS::LIGHT_DIRECTIONAL) { + if (light_storage->light_get_type(base) == RSE::LIGHT_DIRECTIONAL) { //set pssm stuff uint64_t last_scene_shadow_pass = light_storage->light_instance_get_shadow_pass(p_light); if (last_scene_shadow_pass != get_scene_pass()) { @@ -1400,13 +1400,13 @@ void RenderForwardMobile::_render_shadow_pass(RID p_light, RID p_shadow_atlas, i light_storage->light_instance_set_shadow_pass(p_light, get_scene_pass()); } - use_pancake = light_storage->light_get_param(base, RS::LIGHT_PARAM_SHADOW_PANCAKE_SIZE) > 0; + use_pancake = light_storage->light_get_param(base, RSE::LIGHT_PARAM_SHADOW_PANCAKE_SIZE) > 0; light_projection = light_storage->light_instance_get_shadow_camera(p_light, p_pass); light_transform = light_storage->light_instance_get_shadow_transform(p_light, p_pass); atlas_rect = light_storage->light_instance_get_directional_rect(p_light); - if (light_storage->light_directional_get_shadow_mode(base) == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS) { + if (light_storage->light_directional_get_shadow_mode(base) == RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS) { atlas_rect.size.width /= 2; atlas_rect.size.height /= 2; @@ -1417,7 +1417,7 @@ void RenderForwardMobile::_render_shadow_pass(RID p_light, RID p_shadow_atlas, i } else if (p_pass == 3) { atlas_rect.position += atlas_rect.size; } - } else if (light_storage->light_directional_get_shadow_mode(base) == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS) { + } else if (light_storage->light_directional_get_shadow_mode(base) == RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS) { atlas_rect.size.height /= 2; if (p_pass == 0) { @@ -1432,7 +1432,7 @@ void RenderForwardMobile::_render_shadow_pass(RID p_light, RID p_shadow_atlas, i atlas_rect_norm.size /= directional_shadow_size; light_storage->light_instance_set_directional_shadow_atlas_rect(p_light, p_pass, atlas_rect_norm); - zfar = RSG::light_storage->light_get_param(base, RS::LIGHT_PARAM_RANGE); + zfar = RSG::light_storage->light_get_param(base, RSE::LIGHT_PARAM_RANGE); render_fb = light_storage->direction_shadow_get_fb(); render_texture = RID(); @@ -1467,13 +1467,13 @@ void RenderForwardMobile::_render_shadow_pass(RID p_light, RID p_shadow_atlas, i atlas_rect.size.width = shadow_size; atlas_rect.size.height = shadow_size; - zfar = light_storage->light_get_param(base, RS::LIGHT_PARAM_RANGE); + zfar = light_storage->light_get_param(base, RSE::LIGHT_PARAM_RANGE); - if (light_storage->light_get_type(base) == RS::LIGHT_OMNI) { + if (light_storage->light_get_type(base) == RSE::LIGHT_OMNI) { bool wrap = (shadow + 1) % subdivision == 0; dual_paraboloid_offset = wrap ? Vector2i(1 - subdivision, 1) : Vector2i(1, 0); - if (light_storage->light_omni_get_shadow_mode(base) == RS::LIGHT_OMNI_SHADOW_CUBE) { + if (light_storage->light_omni_get_shadow_mode(base) == RSE::LIGHT_OMNI_SHADOW_CUBE) { render_texture = light_storage->get_cubemap(shadow_size / 2); render_fb = light_storage->get_cubemap_fb(shadow_size / 2, p_pass); @@ -1506,7 +1506,7 @@ void RenderForwardMobile::_render_shadow_pass(RID p_light, RID p_shadow_atlas, i flip_y = true; } - } else if (light_storage->light_get_type(base) == RS::LIGHT_SPOT) { + } else if (light_storage->light_get_type(base) == RSE::LIGHT_SPOT) { light_projection = light_storage->light_instance_get_shadow_camera(p_light, 0); light_transform = light_storage->light_instance_get_shadow_transform(p_light, 0); @@ -1553,8 +1553,8 @@ void RenderForwardMobile::_render_shadow_append(RID p_framebuffer, const PagedAr SceneState::ShadowPass shadow_pass; if (p_render_info) { - p_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME] = p_instances.size(); - p_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] = p_instances.size(); + p_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME] = p_instances.size(); + p_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] = p_instances.size(); } RenderSceneDataRD scene_data; @@ -1583,7 +1583,7 @@ void RenderForwardMobile::_render_shadow_append(RID p_framebuffer, const PagedAr } _setup_environment(&render_data, true, screen_size, viewport_size, Color(), false, p_use_pancake); - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_DISABLE_LOD) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_DISABLE_LOD) { scene_data.screen_mesh_lod_threshold = 0.0; } else { scene_data.screen_mesh_lod_threshold = p_screen_mesh_lod_threshold; @@ -1940,7 +1940,7 @@ void RenderForwardMobile::_update_render_base_uniform_set() { RD::Uniform u; u.binding = 13; u.uniform_type = RD::UNIFORM_TYPE_SAMPLER; - u.append_id(RendererRD::MaterialStorage::get_singleton()->sampler_rd_get_default(RS::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RS::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); + u.append_id(RendererRD::MaterialStorage::get_singleton()->sampler_rd_get_default(RSE::CanvasItemTextureFilter::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, RSE::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED)); uniforms.push_back(u); } @@ -2027,7 +2027,7 @@ void RenderForwardMobile::_fill_instance_data(RenderListType p_render_list, uint uint64_t format = RendererRD::MeshStorage::get_singleton()->mesh_surface_get_format(surface->surface); Vector4 uv_scale = Vector4(0.0, 0.0, 0.0, 0.0); - if (format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + if (format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { surface_aabb = RendererRD::MeshStorage::get_singleton()->mesh_surface_get_aabb(surface->surface); uv_scale = RendererRD::MeshStorage::get_singleton()->mesh_surface_get_uv_scale(surface->surface); } @@ -2050,9 +2050,9 @@ void RenderForwardMobile::_fill_instance_data(RenderListType p_render_list, uint } } -_FORCE_INLINE_ static uint32_t _indices_to_primitives(RS::PrimitiveType p_primitive, uint32_t p_indices) { - static const uint32_t divisor[RS::PRIMITIVE_MAX] = { 1, 2, 1, 3, 1 }; - static const uint32_t subtractor[RS::PRIMITIVE_MAX] = { 0, 0, 1, 0, 2 }; +_FORCE_INLINE_ static uint32_t _indices_to_primitives(RSE::PrimitiveType p_primitive, uint32_t p_indices) { + static const uint32_t divisor[RSE::PRIMITIVE_MAX] = { 1, 2, 1, 3, 1 }; + static const uint32_t subtractor[RSE::PRIMITIVE_MAX] = { 0, 0, 1, 0, 2 }; return (p_indices - subtractor[p_primitive]) / divisor[p_primitive]; } @@ -2176,9 +2176,9 @@ void RenderForwardMobile::_fill_render_list(RenderListType p_render_list, const if (p_render_data->render_info) { indices = _indices_to_primitives(surf->primitive, indices); if (p_render_list == RENDER_LIST_OPAQUE) { //opaque - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += indices; + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += indices; } else if (p_render_list == RENDER_LIST_SECONDARY) { //shadow - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += indices; + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += indices; } } } else { @@ -2188,9 +2188,9 @@ void RenderForwardMobile::_fill_render_list(RenderListType p_render_list, const to_draw = _indices_to_primitives(surf->primitive, to_draw); to_draw *= inst->instance_count; if (p_render_list == RENDER_LIST_OPAQUE) { //opaque - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += to_draw; + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += to_draw; } else if (p_render_list == RENDER_LIST_SECONDARY) { //shadow - p_render_data->render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += to_draw; + p_render_data->render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += to_draw; } } } @@ -2198,7 +2198,7 @@ void RenderForwardMobile::_fill_render_list(RenderListType p_render_list, const // ADD Element if (p_pass_mode == PASS_MODE_COLOR || p_pass_mode == PASS_MODE_COLOR_TRANSPARENT || p_pass_mode == PASS_MODE_MOTION_VECTORS) { #ifdef DEBUG_ENABLED - bool force_alpha = unlikely(get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_OVERDRAW); + bool force_alpha = unlikely(get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_OVERDRAW); #else bool force_alpha = false; #endif @@ -2370,13 +2370,13 @@ void RenderForwardMobile::_render_list_template(RenderingDevice::DrawListID p_dr pipeline_specialization.decals = inst->decals_count > 0; #ifdef DEBUG_ENABLED - if (unlikely(get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_LIGHTING)) { + if (unlikely(get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_LIGHTING)) { material_uniform_set = scene_shader.default_material_uniform_set; shader = scene_shader.default_material_shader_ptr; - } else if (unlikely(get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_OVERDRAW)) { + } else if (unlikely(get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_OVERDRAW)) { material_uniform_set = scene_shader.overdraw_material_uniform_set; shader = scene_shader.overdraw_material_shader_ptr; - } else if (unlikely(get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_PSSM_SPLITS)) { + } else if (unlikely(get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_PSSM_SPLITS)) { material_uniform_set = scene_shader.debug_shadow_splits_material_uniform_set; shader = scene_shader.debug_shadow_splits_material_shader_ptr; } else { @@ -2476,7 +2476,7 @@ void RenderForwardMobile::_render_list_template(RenderingDevice::DrawListID p_dr pipeline_hash = pipeline_key.hash(); if (shader != prev_shader || pipeline_hash != prev_pipeline_hash) { - RS::PipelineSource pipeline_source = pipeline_key.ubershader ? RS::PIPELINE_SOURCE_DRAW : RS::PIPELINE_SOURCE_SPECIALIZATION; + RSE::PipelineSource pipeline_source = pipeline_key.ubershader ? RSE::PIPELINE_SOURCE_DRAW : RSE::PIPELINE_SOURCE_SPECIALIZATION; pipeline_rd = shader->pipeline_hash_map.get_pipeline(pipeline_key, pipeline_hash, pipeline_key.ubershader, pipeline_source); if (pipeline_rd.is_valid()) { @@ -2581,8 +2581,8 @@ void RenderForwardMobile::_render_list_template(RenderingDevice::DrawListID p_dr /* Geometry instance */ RenderGeometryInstance *RenderForwardMobile::geometry_instance_create(RID p_base) { - RS::InstanceType type = RSG::utilities->get_base_type(p_base); - ERR_FAIL_COND_V(!((1 << type) & RS::INSTANCE_GEOMETRY_MASK), nullptr); + RSE::InstanceType type = RSG::utilities->get_base_type(p_base); + ERR_FAIL_COND_V(!((1 << type) & RSE::INSTANCE_GEOMETRY_MASK), nullptr); GeometryInstanceForwardMobile *ginstance = geometry_instance_alloc.alloc(); ginstance->data = memnew(GeometryInstanceForwardMobile::Data); @@ -2650,7 +2650,7 @@ void RenderForwardMobile::geometry_instance_free(RenderGeometryInstance *p_geome } uint32_t RenderForwardMobile::geometry_instance_get_pair_mask() { - return ((1 << RS::INSTANCE_LIGHT) + (1 << RS::INSTANCE_REFLECTION_PROBE) + (1 << RS::INSTANCE_DECAL)); + return ((1 << RSE::INSTANCE_LIGHT) + (1 << RSE::INSTANCE_REFLECTION_PROBE) + (1 << RSE::INSTANCE_DECAL)); } uint32_t RenderForwardMobile::get_max_lights_total() { @@ -2667,17 +2667,17 @@ void RenderForwardMobile::GeometryInstanceForwardMobile::clear_light_instances() } void RenderForwardMobile::GeometryInstanceForwardMobile::pair_light_instance( - const RID p_light_instance, RS::LightType light_type, uint32_t placement_idx) { + const RID p_light_instance, RSE::LightType light_type, uint32_t placement_idx) { if (placement_idx < (uint32_t)MAX_RDL_CULL) { RendererRD::ForwardID light_id = RendererRD::LightStorage::get_singleton()->light_instance_get_forward_id(p_light_instance); switch (light_type) { - case RS::LIGHT_OMNI: { + case RSE::LIGHT_OMNI: { omni_lights[placement_idx] = light_id; if (placement_idx >= omni_light_count) { omni_light_count = placement_idx + 1; } } break; - case RS::LIGHT_SPOT: { + case RSE::LIGHT_SPOT: { spot_lights[placement_idx] = light_id; if (placement_idx >= spot_light_count) { spot_light_count = placement_idx + 1; @@ -2734,8 +2734,8 @@ void RenderForwardMobile::_update_global_pipeline_data_requirements_from_project const bool positional_shadow_16_bits = GLOBAL_GET("rendering/lights_and_shadows/positional_shadow/atlas_16_bits"); global_pipeline_data_required.use_16_bit_shadows = directional_shadow_16_bits || positional_shadow_16_bits; global_pipeline_data_required.use_32_bit_shadows = !directional_shadow_16_bits || !positional_shadow_16_bits; - global_pipeline_data_required.target_samples = RenderSceneBuffersRD::msaa_to_samples(RS::ViewportMSAA(msaa_2d_mode)); - global_pipeline_data_required.texture_samples = RenderSceneBuffersRD::msaa_to_samples(RS::ViewportMSAA(msaa_3d_mode)); + global_pipeline_data_required.target_samples = RenderSceneBuffersRD::msaa_to_samples(RSE::ViewportMSAA(msaa_2d_mode)); + global_pipeline_data_required.texture_samples = RenderSceneBuffersRD::msaa_to_samples(RSE::ViewportMSAA(msaa_3d_mode)); } void RenderForwardMobile::_update_global_pipeline_data_requirements_from_light_storage() { @@ -2856,7 +2856,7 @@ void RenderForwardMobile::_geometry_instance_add_surface_with_material(GeometryI sdcache->sort.priority = p_material->priority; uint64_t format = RendererRD::MeshStorage::get_singleton()->mesh_surface_get_format(sdcache->surface); - if (p_material->shader_data->uses_tangent && !(format & RS::ARRAY_FORMAT_TANGENT)) { + if (p_material->shader_data->uses_tangent && !(format & RSE::ARRAY_FORMAT_TANGENT)) { String shader_path = p_material->shader_data->path.is_empty() ? "" : "(" + p_material->shader_data->path + ")"; String mesh_path = mesh_storage->mesh_get_path(p_mesh).is_empty() ? "" : "(" + mesh_storage->mesh_get_path(p_mesh) + ")"; WARN_PRINT_ED(vformat("Attempting to use a shader %s that requires tangents with a mesh %s that doesn't contain tangents. Ensure that meshes are imported with the 'ensure_tangents' option. If creating your own meshes, add an `ARRAY_TANGENT` array (when using ArrayMesh) or call `generate_tangents()` (when using SurfaceTool).", shader_path, mesh_path)); @@ -2945,7 +2945,7 @@ void RenderForwardMobile::_geometry_instance_update(RenderGeometryInstance *p_ge //add geometry for drawing switch (ginstance->data->base_type) { - case RS::INSTANCE_MESH: { + case RSE::INSTANCE_MESH: { const RID *materials = nullptr; uint32_t surface_count; RID mesh = ginstance->data->base; @@ -2966,7 +2966,7 @@ void RenderForwardMobile::_geometry_instance_update(RenderGeometryInstance *p_ge } break; - case RS::INSTANCE_MULTIMESH: { + case RSE::INSTANCE_MULTIMESH: { RID mesh = mesh_storage->multimesh_get_mesh(ginstance->data->base); if (mesh.is_valid()) { const RID *materials = nullptr; @@ -2984,7 +2984,7 @@ void RenderForwardMobile::_geometry_instance_update(RenderGeometryInstance *p_ge } break; #if 0 - case RS::INSTANCE_IMMEDIATE: { + case RSE::INSTANCE_IMMEDIATE: { RasterizerStorageGLES3::Immediate *immediate = storage->immediate_owner.get_or_null(inst->base); ERR_CONTINUE(!immediate); @@ -2992,7 +2992,7 @@ void RenderForwardMobile::_geometry_instance_update(RenderGeometryInstance *p_ge } break; #endif - case RS::INSTANCE_PARTICLES: { + case RSE::INSTANCE_PARTICLES: { int draw_passes = particles_storage->particles_get_draw_passes(ginstance->data->base); for (int j = 0; j < draw_passes; j++) { @@ -3025,10 +3025,10 @@ void RenderForwardMobile::_geometry_instance_update(RenderGeometryInstance *p_ge bool store_transform = true; ginstance->base_flags = 0; - if (ginstance->data->base_type == RS::INSTANCE_MULTIMESH) { + if (ginstance->data->base_type == RSE::INSTANCE_MULTIMESH) { ginstance->base_flags |= INSTANCE_DATA_FLAG_MULTIMESH; - if (mesh_storage->multimesh_get_transform_format(ginstance->data->base) == RS::MULTIMESH_TRANSFORM_2D) { + if (mesh_storage->multimesh_get_transform_format(ginstance->data->base) == RSE::MULTIMESH_TRANSFORM_2D) { ginstance->base_flags |= INSTANCE_DATA_FLAG_MULTIMESH_FORMAT_2D; } if (mesh_storage->multimesh_uses_colors(ginstance->data->base)) { @@ -3043,7 +3043,7 @@ void RenderForwardMobile::_geometry_instance_update(RenderGeometryInstance *p_ge ginstance->transforms_uniform_set = mesh_storage->multimesh_get_3d_uniform_set(ginstance->data->base, scene_shader.default_shader_rd, TRANSFORMS_UNIFORM_SET); - } else if (ginstance->data->base_type == RS::INSTANCE_PARTICLES) { + } else if (ginstance->data->base_type == RSE::INSTANCE_PARTICLES) { ginstance->base_flags |= INSTANCE_DATA_FLAG_PARTICLES; ginstance->base_flags |= INSTANCE_DATA_FLAG_MULTIMESH; if (false) { // 2D particles @@ -3069,7 +3069,7 @@ void RenderForwardMobile::_geometry_instance_update(RenderGeometryInstance *p_ge if (ginstance->data->dirty_dependencies) { particles_storage->particles_update_dependency(ginstance->data->base, &ginstance->data->dependency_tracker); } - } else if (ginstance->data->base_type == RS::INSTANCE_MESH) { + } else if (ginstance->data->base_type == RSE::INSTANCE_MESH) { if (mesh_storage->skeleton_is_valid(ginstance->data->skeleton)) { ginstance->transforms_uniform_set = mesh_storage->skeleton_get_3d_uniform_set(ginstance->data->skeleton, scene_shader.default_shader_rd, TRANSFORMS_UNIFORM_SET); if (ginstance->data->dirty_dependencies) { @@ -3204,7 +3204,7 @@ static RD::FramebufferFormatID _get_shadow_atlas_framebuffer_format_for_pipeline return RD::get_singleton()->framebuffer_format_create(Vector(attachments)); } -void RenderForwardMobile::_mesh_compile_pipeline_for_surface(SceneShaderForwardMobile::ShaderData *p_shader, void *p_mesh_surface, bool p_instanced_surface, RS::PipelineSource p_source, SceneShaderForwardMobile::ShaderData::PipelineKey &r_pipeline_key, Vector *r_pipeline_pairs) { +void RenderForwardMobile::_mesh_compile_pipeline_for_surface(SceneShaderForwardMobile::ShaderData *p_shader, void *p_mesh_surface, bool p_instanced_surface, RSE::PipelineSource p_source, SceneShaderForwardMobile::ShaderData::PipelineKey &r_pipeline_key, Vector *r_pipeline_pairs) { RendererRD::MeshStorage *mesh_storage = RendererRD::MeshStorage::get_singleton(); uint64_t input_mask = p_shader->get_vertex_input_mask(r_pipeline_key.version, true); bool emulate_point_size = p_shader->uses_point_size && scene_shader.emulate_point_size; @@ -3217,7 +3217,7 @@ void RenderForwardMobile::_mesh_compile_pipeline_for_surface(SceneShaderForwardM } } -void RenderForwardMobile::_mesh_compile_pipelines_for_surface(const SurfacePipelineData &p_surface, const GlobalPipelineData &p_global, RS::PipelineSource p_source, Vector *r_pipeline_pairs) { +void RenderForwardMobile::_mesh_compile_pipelines_for_surface(const SurfacePipelineData &p_surface, const GlobalPipelineData &p_global, RSE::PipelineSource p_source, Vector *r_pipeline_pairs) { RendererRD::MeshStorage *mesh_storage = RendererRD::MeshStorage::get_singleton(); bool octmap_use_storage = !copy_effects->get_raster_effects().has_flag(RendererRD::CopyEffects::RASTER_EFFECT_OCTMAP); @@ -3314,7 +3314,7 @@ void RenderForwardMobile::_mesh_generate_all_pipelines_for_surface_cache(Geometr surface.uses_transparent = uses_alpha_pass; surface.uses_depth = (p_surface_cache->flags & (GeometryInstanceSurfaceDataCache::FLAG_PASS_DEPTH | GeometryInstanceSurfaceDataCache::FLAG_PASS_OPAQUE | GeometryInstanceSurfaceDataCache::FLAG_PASS_SHADOW)) != 0; surface.can_use_lightmap = p_surface_cache->owner->lightmap_instance.is_valid() || p_surface_cache->owner->lightmap_sh; - _mesh_compile_pipelines_for_surface(surface, p_global, RS::PIPELINE_SOURCE_SURFACE); + _mesh_compile_pipelines_for_surface(surface, p_global, RSE::PIPELINE_SOURCE_SURFACE); } void RenderForwardMobile::_update_dirty_geometry_instances() { @@ -3368,7 +3368,7 @@ void RenderForwardMobile::_geometry_instance_dependency_changed(Dependency::Depe } break; case Dependency::DEPENDENCY_CHANGED_MULTIMESH_VISIBLE_INSTANCES: { GeometryInstanceForwardMobile *ginstance = static_cast(p_tracker->userdata); - if (ginstance->data->base_type == RS::INSTANCE_MULTIMESH) { + if (ginstance->data->base_type == RSE::INSTANCE_MULTIMESH) { ginstance->instance_count = RendererRD::MeshStorage::get_singleton()->multimesh_get_instances_to_draw(ginstance->data->base); } } break; @@ -3405,16 +3405,16 @@ void RenderForwardMobile::_update_shader_quality_settings() { specialization.directional_soft_shadow_samples = directional_soft_shadow_samples_get(); specialization.directional_penumbra_shadow_samples = directional_penumbra_shadow_samples_get(); specialization.decal_use_mipmaps = - decals_get_filter() == RS::DECAL_FILTER_NEAREST_MIPMAPS || - decals_get_filter() == RS::DECAL_FILTER_LINEAR_MIPMAPS || - decals_get_filter() == RS::DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC || - decals_get_filter() == RS::DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC; + decals_get_filter() == RSE::DECAL_FILTER_NEAREST_MIPMAPS || + decals_get_filter() == RSE::DECAL_FILTER_LINEAR_MIPMAPS || + decals_get_filter() == RSE::DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC || + decals_get_filter() == RSE::DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC; specialization.projector_use_mipmaps = - light_projectors_get_filter() == RS::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS || - light_projectors_get_filter() == RS::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS || - light_projectors_get_filter() == RS::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC || - light_projectors_get_filter() == RS::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC; + light_projectors_get_filter() == RSE::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS || + light_projectors_get_filter() == RSE::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS || + light_projectors_get_filter() == RSE::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC || + light_projectors_get_filter() == RSE::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC; specialization.use_lightmap_bicubic_filter = lightmap_filter_bicubic_get(); specialization.use_material_debanding = material_use_debanding_get(); diff --git a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h index 6ab52be235..68cc1bbd20 100644 --- a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h +++ b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h @@ -420,12 +420,12 @@ protected: virtual RID _render_buffers_get_normal_texture(Ref p_render_buffers) override; virtual RID _render_buffers_get_velocity_texture(Ref p_render_buffers) override; - virtual void environment_set_ssao_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override {} - virtual void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override {} + virtual void environment_set_ssao_quality(RSE::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override {} + virtual void environment_set_ssil_quality(RSE::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) override {} virtual void environment_set_ssr_half_size(bool p_half_size) override {} - virtual void environment_set_ssr_roughness_quality(RS::EnvironmentSSRRoughnessQuality p_quality) override {} + virtual void environment_set_ssr_roughness_quality(RSE::EnvironmentSSRRoughnessQuality p_quality) override {} - virtual void sub_surface_scattering_set_quality(RS::SubSurfaceScatteringQuality p_quality) override {} + virtual void sub_surface_scattering_set_quality(RSE::SubSurfaceScatteringQuality p_quality) override {} virtual void sub_surface_scattering_set_scale(float p_scale, float p_depth_scale) override {} /* Geometry instance */ @@ -498,7 +498,7 @@ protected: }; } sort; - RS::PrimitiveType primitive = RS::PRIMITIVE_MAX; + RSE::PrimitiveType primitive = RSE::PRIMITIVE_MAX; uint32_t flags = 0; uint32_t surface_index = 0; @@ -567,7 +567,7 @@ protected: virtual void set_lightmap_capture(const Color *p_sh9) override; virtual void clear_light_instances() override; - virtual void pair_light_instance(const RID p_light_instance, RS::LightType light_type, uint32_t placement_idx) override; + virtual void pair_light_instance(const RID p_light_instance, RSE::LightType light_type, uint32_t placement_idx) override; virtual void pair_reflection_probe_instances(const RID *p_reflection_probe_instances, uint32_t p_reflection_probe_instance_count) override; virtual void pair_decal_instances(const RID *p_decal_instances, uint32_t p_decal_instance_count) override; virtual void pair_voxel_gi_instances(const RID *p_voxel_gi_instances, uint32_t p_voxel_gi_instance_count) override {} @@ -694,8 +694,8 @@ public: void _geometry_instance_add_surface_with_material_chain(GeometryInstanceForwardMobile *ginstance, uint32_t p_surface, SceneShaderForwardMobile::MaterialData *p_material, RID p_mat_src, RID p_mesh); void _geometry_instance_add_surface(GeometryInstanceForwardMobile *ginstance, uint32_t p_surface, RID p_material, RID p_mesh); void _geometry_instance_update(RenderGeometryInstance *p_geometry_instance); - void _mesh_compile_pipeline_for_surface(SceneShaderForwardMobile::ShaderData *p_shader, void *p_mesh_surface, bool p_instanced_surface, RS::PipelineSource p_source, SceneShaderForwardMobile::ShaderData::PipelineKey &r_pipeline_key, Vector *r_pipeline_pairs = nullptr); - void _mesh_compile_pipelines_for_surface(const SurfacePipelineData &p_surface, const GlobalPipelineData &p_global, RS::PipelineSource p_source, Vector *r_pipeline_pairs = nullptr); + void _mesh_compile_pipeline_for_surface(SceneShaderForwardMobile::ShaderData *p_shader, void *p_mesh_surface, bool p_instanced_surface, RSE::PipelineSource p_source, SceneShaderForwardMobile::ShaderData::PipelineKey &r_pipeline_key, Vector *r_pipeline_pairs = nullptr); + void _mesh_compile_pipelines_for_surface(const SurfacePipelineData &p_surface, const GlobalPipelineData &p_global, RSE::PipelineSource p_source, Vector *r_pipeline_pairs = nullptr); void _mesh_generate_all_pipelines_for_surface_cache(GeometryInstanceSurfaceDataCache *p_surface_cache, const GlobalPipelineData &p_global); void _update_dirty_geometry_instances(); void _update_dirty_geometry_pipelines(); @@ -714,7 +714,7 @@ public: /* PIPELINES */ virtual void mesh_generate_pipelines(RID p_mesh, bool p_background_compilation) override; - virtual uint32_t get_pipeline_compilations(RS::PipelineSource p_source) override; + virtual uint32_t get_pipeline_compilations(RSE::PipelineSource p_source) override; /* SHADER LIBRARY */ diff --git a/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp b/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp index 8279cd63d9..eaa4b56b91 100644 --- a/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp +++ b/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp @@ -34,6 +34,7 @@ #include "render_forward_mobile.h" #include "servers/rendering/renderer_rd/renderer_compositor_rd.h" #include "servers/rendering/renderer_rd/storage_rd/material_storage.h" +#include "servers/rendering/rendering_server.h" using namespace RendererSceneRenderImplementation; @@ -57,7 +58,7 @@ void SceneShaderForwardMobile::ShaderData::set_code(const String &p_code) { depth_test_disabledi = 0; depth_test_invertedi = 0; alpha_antialiasing_mode = ALPHA_ANTIALIASING_OFF; - cull_mode = RS::CULL_MODE_BACK; + cull_mode = RSE::CULL_MODE_BACK; uses_point_size = false; uses_alpha = false; @@ -111,9 +112,9 @@ void SceneShaderForwardMobile::ShaderData::set_code(const String &p_code) { actions.render_mode_values["depth_test_disabled"] = Pair(&depth_test_disabledi, 1); actions.render_mode_values["depth_test_inverted"] = Pair(&depth_test_invertedi, 1); - actions.render_mode_values["cull_disabled"] = Pair(&cull_mode, RS::CULL_MODE_DISABLED); - actions.render_mode_values["cull_front"] = Pair(&cull_mode, RS::CULL_MODE_FRONT); - actions.render_mode_values["cull_back"] = Pair(&cull_mode, RS::CULL_MODE_BACK); + actions.render_mode_values["cull_disabled"] = Pair(&cull_mode, RSE::CULL_MODE_DISABLED); + actions.render_mode_values["cull_front"] = Pair(&cull_mode, RSE::CULL_MODE_FRONT); + actions.render_mode_values["cull_back"] = Pair(&cull_mode, RSE::CULL_MODE_BACK); actions.render_mode_flags["unshaded"] = &unshaded; actions.render_mode_flags["wireframe"] = &wireframe; @@ -166,7 +167,7 @@ void SceneShaderForwardMobile::ShaderData::set_code(const String &p_code) { actions.uniforms = &uniforms; MutexLock lock(SceneShaderForwardMobile::singleton_mutex); - Error err = SceneShaderForwardMobile::singleton->compiler.compile(RS::SHADER_SPATIAL, code, &actions, path, gen_code); + Error err = SceneShaderForwardMobile::singleton->compiler.compile(RSE::SHADER_SPATIAL, code, &actions, path, gen_code); if (err != OK) { if (version.is_valid()) { @@ -317,7 +318,7 @@ void SceneShaderForwardMobile::ShaderData::_create_pipeline(PipelineKey p_pipeli } } - RD::RenderPrimitive primitive_rd_table[RS::PRIMITIVE_MAX] = { + RD::RenderPrimitive primitive_rd_table[RSE::PRIMITIVE_MAX] = { RD::RENDER_PRIMITIVE_POINTS, RD::RENDER_PRIMITIVE_LINES, RD::RENDER_PRIMITIVE_LINESTRIPS, @@ -528,7 +529,7 @@ RendererRD::MaterialStorage::ShaderData *SceneShaderForwardMobile::_create_shade } void SceneShaderForwardMobile::MaterialData::set_render_priority(int p_priority) { - priority = p_priority - RS::MATERIAL_RENDER_PRIORITY_MIN; //8 bits + priority = p_priority - RSE::MATERIAL_RENDER_PRIORITY_MIN; //8 bits } void SceneShaderForwardMobile::MaterialData::set_next_pass(RID p_pass) { @@ -937,7 +938,7 @@ void SceneShaderForwardMobile::set_default_specialization(const ShaderSpecializa } } -uint32_t SceneShaderForwardMobile::get_pipeline_compilations(RS::PipelineSource p_source) { +uint32_t SceneShaderForwardMobile::get_pipeline_compilations(RSE::PipelineSource p_source) { MutexLock lock(SceneShaderForwardMobile::singleton_mutex); return pipeline_compilations[p_source]; } diff --git a/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h b/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h index f1d216ec32..f40b38b735 100644 --- a/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h +++ b/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h @@ -195,7 +195,7 @@ public: RD::VertexFormatID vertex_format_id; RD::FramebufferFormatID framebuffer_format_id; RD::PolygonCullMode cull_mode = RD::POLYGON_CULL_MAX; - RS::PrimitiveType primitive_type = RS::PRIMITIVE_MAX; + RSE::PrimitiveType primitive_type = RSE::PRIMITIVE_MAX; ShaderSpecialization shader_specialization = {}; ShaderVersion version = SHADER_VERSION_MAX; uint32_t render_pass = 0; @@ -240,7 +240,7 @@ public: int depth_test_disabledi = 0; int depth_test_invertedi = 0; int alpha_antialiasing_mode = ALPHA_ANTIALIASING_OFF; - int cull_mode = RS::CULL_MODE_BACK; + int cull_mode = RSE::CULL_MODE_BACK; bool uses_point_size = false; bool uses_alpha = false; @@ -296,7 +296,7 @@ public: } _FORCE_INLINE_ bool uses_shared_shadow_material() const { - bool backface_culling = cull_mode == RS::CULL_MODE_BACK; + bool backface_culling = cull_mode == RSE::CULL_MODE_BACK; return !uses_particle_trails && !writes_modelview_or_projection && !uses_vertex && !uses_discard && !uses_depth_prepass_alpha && !uses_alpha_clip && !uses_alpha_antialiasing && !uses_point_size && !uses_world_coordinates && !wireframe && !stencil_enabled && backface_culling; } @@ -374,11 +374,11 @@ public: ShaderSpecialization default_specialization = {}; - uint32_t pipeline_compilations[RS::PIPELINE_SOURCE_MAX] = {}; + uint32_t pipeline_compilations[RSE::PIPELINE_SOURCE_MAX] = {}; void init(const String p_defines); void set_default_specialization(const ShaderSpecialization &p_specialization); - uint32_t get_pipeline_compilations(RS::PipelineSource p_source); + uint32_t get_pipeline_compilations(RSE::PipelineSource p_source); void enable_fp32_shader_group(); void enable_fp16_shader_group(); void enable_multiview_shader_group(); diff --git a/servers/rendering/renderer_rd/pipeline_hash_map_rd.h b/servers/rendering/renderer_rd/pipeline_hash_map_rd.h index 9d6ed114e9..96b1c688c0 100644 --- a/servers/rendering/renderer_rd/pipeline_hash_map_rd.h +++ b/servers/rendering/renderer_rd/pipeline_hash_map_rd.h @@ -99,7 +99,7 @@ public: } // Start compilation of a pipeline ahead of time in the background. Returns true if the compilation was started, false if it wasn't required. Source is only used for collecting statistics. - void compile_pipeline(const Key &p_key, uint32_t p_key_hash, RS::PipelineSource p_source, bool p_high_priority) { + void compile_pipeline(const Key &p_key, uint32_t p_key_hash, RSE::PipelineSource p_source, bool p_high_priority) { DEV_ASSERT((creation_object != nullptr) && (creation_function != nullptr) && "Creation object and function was not set before attempting to compile a pipeline."); MutexLock local_lock(local_mutex); @@ -119,19 +119,19 @@ public: #if PRINT_PIPELINE_COMPILATION_KEYS String source_name = "UNKNOWN"; switch (p_source) { - case RS::PIPELINE_SOURCE_CANVAS: + case RSE::PIPELINE_SOURCE_CANVAS: source_name = "CANVAS"; break; - case RS::PIPELINE_SOURCE_MESH: + case RSE::PIPELINE_SOURCE_MESH: source_name = "MESH"; break; - case RS::PIPELINE_SOURCE_SURFACE: + case RSE::PIPELINE_SOURCE_SURFACE: source_name = "SURFACE"; break; - case RS::PIPELINE_SOURCE_DRAW: + case RSE::PIPELINE_SOURCE_DRAW: source_name = "DRAW"; break; - case RS::PIPELINE_SOURCE_SPECIALIZATION: + case RSE::PIPELINE_SOURCE_SPECIALIZATION: source_name = "SPECIALIZATION"; break; } @@ -168,7 +168,7 @@ public: } // Retrieve a pipeline. It'll return an empty pipeline if it's not available yet, but it'll be guaranteed to succeed if 'wait for compilation' is true and stall as necessary. Source is just an optional number to aid debugging. - RID get_pipeline(const Key &p_key, uint32_t p_key_hash, bool p_wait_for_compilation, RS::PipelineSource p_source) { + RID get_pipeline(const Key &p_key, uint32_t p_key_hash, bool p_wait_for_compilation, RSE::PipelineSource p_source) { RBMap::Element *e = hash_map.find(p_key_hash); if (e == nullptr) { diff --git a/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp b/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp index 61171beabc..e92411bca5 100644 --- a/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp @@ -40,6 +40,7 @@ #include "servers/rendering/renderer_rd/storage_rd/mesh_storage.h" #include "servers/rendering/renderer_rd/storage_rd/particles_storage.h" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_default.h" void RendererCanvasRenderRD::_update_transform_2d_to_mat4(const Transform2D &p_transform, float *p_mat4) { @@ -142,7 +143,7 @@ RendererCanvasRender::PolygonID RendererCanvasRenderRD::request_polygon(const Ve RD::VertexAttribute vd; vd.format = RD::DATA_FORMAT_R32G32_SFLOAT; vd.offset = base_offset * sizeof(float); - vd.location = RS::ARRAY_VERTEX; + vd.location = RSE::ARRAY_VERTEX; vd.stride = stride * sizeof(float); descriptions.write[0] = vd; @@ -162,7 +163,7 @@ RendererCanvasRender::PolygonID RendererCanvasRenderRD::request_polygon(const Ve RD::VertexAttribute vd; vd.format = RD::DATA_FORMAT_R32G32B32A32_SFLOAT; vd.offset = base_offset * sizeof(float); - vd.location = RS::ARRAY_COLOR; + vd.location = RSE::ARRAY_COLOR; vd.stride = stride * sizeof(float); descriptions.write[1] = vd; @@ -190,7 +191,7 @@ RendererCanvasRender::PolygonID RendererCanvasRenderRD::request_polygon(const Ve RD::VertexAttribute vd; vd.format = RD::DATA_FORMAT_R32G32B32A32_SFLOAT; vd.offset = 0; - vd.location = RS::ARRAY_COLOR; + vd.location = RSE::ARRAY_COLOR; vd.stride = 0; descriptions.write[1] = vd; @@ -202,7 +203,7 @@ RendererCanvasRender::PolygonID RendererCanvasRenderRD::request_polygon(const Ve RD::VertexAttribute vd; vd.format = RD::DATA_FORMAT_R32G32_SFLOAT; vd.offset = base_offset * sizeof(float); - vd.location = RS::ARRAY_TEX_UV; + vd.location = RSE::ARRAY_TEX_UV; vd.stride = stride * sizeof(float); descriptions.write[2] = vd; @@ -218,7 +219,7 @@ RendererCanvasRender::PolygonID RendererCanvasRenderRD::request_polygon(const Ve RD::VertexAttribute vd; vd.format = RD::DATA_FORMAT_R32G32_SFLOAT; vd.offset = 0; - vd.location = RS::ARRAY_TEX_UV; + vd.location = RSE::ARRAY_TEX_UV; vd.stride = 0; descriptions.write[2] = vd; @@ -230,7 +231,7 @@ RendererCanvasRender::PolygonID RendererCanvasRenderRD::request_polygon(const Ve RD::VertexAttribute vd; vd.format = RD::DATA_FORMAT_R16G16B16A16_UINT; vd.offset = base_offset * sizeof(float); - vd.location = RS::ARRAY_BONES; + vd.location = RSE::ARRAY_BONES; vd.stride = stride * sizeof(float); descriptions.write[3] = vd; @@ -251,7 +252,7 @@ RendererCanvasRender::PolygonID RendererCanvasRenderRD::request_polygon(const Ve RD::VertexAttribute vd; vd.format = RD::DATA_FORMAT_R32G32B32A32_UINT; vd.offset = 0; - vd.location = RS::ARRAY_BONES; + vd.location = RSE::ARRAY_BONES; vd.stride = 0; descriptions.write[3] = vd; @@ -263,7 +264,7 @@ RendererCanvasRender::PolygonID RendererCanvasRenderRD::request_polygon(const Ve RD::VertexAttribute vd; vd.format = RD::DATA_FORMAT_R16G16B16A16_UNORM; vd.offset = base_offset * sizeof(float); - vd.location = RS::ARRAY_WEIGHTS; + vd.location = RSE::ARRAY_WEIGHTS; vd.stride = stride * sizeof(float); descriptions.write[4] = vd; @@ -284,7 +285,7 @@ RendererCanvasRender::PolygonID RendererCanvasRenderRD::request_polygon(const Ve RD::VertexAttribute vd; vd.format = RD::DATA_FORMAT_R32G32B32A32_SFLOAT; vd.offset = 0; - vd.location = RS::ARRAY_WEIGHTS; + vd.location = RSE::ARRAY_WEIGHTS; vd.stride = 0; descriptions.write[4] = vd; @@ -352,26 +353,26 @@ void RendererCanvasRenderRD::free_polygon(PolygonID p_polygon) { //////////////////// -static RD::RenderPrimitive _primitive_type_to_render_primitive(RS::PrimitiveType p_primitive) { +static RD::RenderPrimitive _primitive_type_to_render_primitive(RSE::PrimitiveType p_primitive) { switch (p_primitive) { - case RS::PRIMITIVE_POINTS: + case RSE::PRIMITIVE_POINTS: return RD::RENDER_PRIMITIVE_POINTS; - case RS::PRIMITIVE_LINES: + case RSE::PRIMITIVE_LINES: return RD::RENDER_PRIMITIVE_LINES; - case RS::PRIMITIVE_LINE_STRIP: + case RSE::PRIMITIVE_LINE_STRIP: return RD::RENDER_PRIMITIVE_LINESTRIPS; - case RS::PRIMITIVE_TRIANGLES: + case RSE::PRIMITIVE_TRIANGLES: return RD::RENDER_PRIMITIVE_TRIANGLES; - case RS::PRIMITIVE_TRIANGLE_STRIP: + case RSE::PRIMITIVE_TRIANGLE_STRIP: return RD::RENDER_PRIMITIVE_TRIANGLE_STRIPS; default: return RD::RENDER_PRIMITIVE_MAX; } } -_FORCE_INLINE_ static uint32_t _indices_to_primitives(RS::PrimitiveType p_primitive, uint32_t p_indices) { - static const uint32_t divisor[RS::PRIMITIVE_MAX] = { 1, 2, 1, 3, 1 }; - static const uint32_t subtractor[RS::PRIMITIVE_MAX] = { 0, 0, 1, 0, 2 }; +_FORCE_INLINE_ static uint32_t _indices_to_primitives(RSE::PrimitiveType p_primitive, uint32_t p_indices) { + static const uint32_t divisor[RSE::PRIMITIVE_MAX] = { 1, 2, 1, 3, 1 }; + static const uint32_t subtractor[RSE::PRIMITIVE_MAX] = { 0, 0, 1, 0, 2 }; return (p_indices - subtractor[p_primitive]) / divisor[p_primitive]; } @@ -492,7 +493,7 @@ RID RendererCanvasRenderRD::_get_pipeline_specialization_or_ubershader(CanvasSha } bool wait_for_compilation = r_pipeline_key.ubershader || ubershader_iterations == 1; - RS::PipelineSource source = RS::PIPELINE_SOURCE_CANVAS; + RSE::PipelineSource source = RSE::PIPELINE_SOURCE_CANVAS; RID pipeline = p_shader_data->pipeline_hash_map.get_pipeline(r_pipeline_key, r_pipeline_key.hash(), wait_for_compilation, source); if (pipeline.is_valid()) { return pipeline; @@ -505,7 +506,7 @@ RID RendererCanvasRenderRD::_get_pipeline_specialization_or_ubershader(CanvasSha return RID(); } -void RendererCanvasRenderRD::canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_light_list, const Transform2D &p_canvas_transform, RenderingServer::CanvasItemTextureFilter p_default_filter, RenderingServer::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info) { +void RendererCanvasRenderRD::canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_light_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info) { RendererRD::TextureStorage *texture_storage = RendererRD::TextureStorage::get_singleton(); RendererRD::MaterialStorage *material_storage = RendererRD::MaterialStorage::get_singleton(); RendererRD::MeshStorage *mesh_storage = RendererRD::MeshStorage::get_singleton(); @@ -819,10 +820,10 @@ void RendererCanvasRenderRD::canvas_render_items(RID p_to_render_target, Item *p _render_batch_items(to_render_target, item_count, canvas_transform_inverse, p_light_list, r_sdf_used, false, r_render_info); item_count = 0; - if (ci->canvas_group_owner->canvas_group->mode != RS::CANVAS_GROUP_MODE_TRANSPARENT) { + if (ci->canvas_group_owner->canvas_group->mode != RSE::CANVAS_GROUP_MODE_TRANSPARENT) { Rect2i group_rect = ci->canvas_group_owner->global_rect_cache; texture_storage->render_target_copy_to_back_buffer(p_to_render_target, group_rect, false); - if (ci->canvas_group_owner->canvas_group->mode == RS::CANVAS_GROUP_MODE_CLIP_AND_DRAW) { + if (ci->canvas_group_owner->canvas_group->mode == RSE::CANVAS_GROUP_MODE_CLIP_AND_DRAW) { ci->canvas_group_owner->use_canvas_group = false; items[item_count++] = ci->canvas_group_owner; } @@ -838,7 +839,7 @@ void RendererCanvasRenderRD::canvas_render_items(RID p_to_render_target, Item *p ci->canvas_group_owner = nullptr; //must be cleared } - if (canvas_group_owner == nullptr && ci->canvas_group != nullptr && ci->canvas_group->mode != RS::CANVAS_GROUP_MODE_CLIP_AND_DRAW) { + if (canvas_group_owner == nullptr && ci->canvas_group != nullptr && ci->canvas_group->mode != RSE::CANVAS_GROUP_MODE_CLIP_AND_DRAW) { skip_item = true; } @@ -1278,7 +1279,7 @@ RID RendererCanvasRenderRD::occluder_polygon_create() { occluder.line_point_count = 0; occluder.sdf_point_count = 0; occluder.sdf_index_count = 0; - occluder.cull_mode = RS::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED; + occluder.cull_mode = RSE::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED; return occluder_polygon_owner.make_rid(occluder); } @@ -1474,7 +1475,7 @@ void RendererCanvasRenderRD::occluder_polygon_set_shape(RID p_occluder, const Ve } } -void RendererCanvasRenderRD::occluder_polygon_set_cull_mode(RID p_occluder, RS::CanvasOccluderPolygonCullMode p_mode) { +void RendererCanvasRenderRD::occluder_polygon_set_cull_mode(RID p_occluder, RSE::CanvasOccluderPolygonCullMode p_mode) { OccluderPolygon *oc = occluder_polygon_owner.get_or_null(p_occluder); ERR_FAIL_NULL(oc); oc->cull_mode = p_mode; @@ -1578,7 +1579,7 @@ void RendererCanvasRenderRD::CanvasShaderData::set_code(const String &p_code) { RendererCanvasRenderRD *canvas_singleton = static_cast(RendererCanvasRender::singleton); MutexLock lock(canvas_singleton->shader.mutex); - Error err = canvas_singleton->shader.compiler.compile(RS::SHADER_CANVAS_ITEM, code, &actions, path, gen_code); + Error err = canvas_singleton->shader.compiler.compile(RSE::SHADER_CANVAS_ITEM, code, &actions, path, gen_code); if (err != OK) { if (version.is_valid()) { canvas_singleton->shader.canvas_shader.version_free(version); @@ -1730,8 +1731,8 @@ RendererCanvasRenderRD::RendererCanvasRenderRD() { { //create default samplers - default_samplers.default_filter = RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR; - default_samplers.default_repeat = RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED; + default_samplers.default_filter = RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR; + default_samplers.default_repeat = RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED; } // preallocate slots for uniform set 3 @@ -2176,7 +2177,7 @@ void RendererCanvasRenderRD::set_debug_redraw(bool p_enabled, double p_time, con debug_redraw_color = p_color; } -uint32_t RendererCanvasRenderRD::get_pipeline_compilations(RS::PipelineSource p_source) { +uint32_t RendererCanvasRenderRD::get_pipeline_compilations(RSE::PipelineSource p_source) { RendererCanvasRenderRD *canvas_singleton = static_cast(RendererCanvasRender::singleton); MutexLock lock(canvas_singleton->shader.mutex); return shader.pipeline_compilations[p_source]; @@ -2205,11 +2206,11 @@ void RendererCanvasRenderRD::_render_batch_items(RenderTarget p_to_render_target RID material = ci->material_owner == nullptr ? ci->material : ci->material_owner->material; if (ci->use_canvas_group) { - if (ci->canvas_group->mode == RS::CANVAS_GROUP_MODE_CLIP_AND_DRAW) { + if (ci->canvas_group->mode == RSE::CANVAS_GROUP_MODE_CLIP_AND_DRAW) { material = default_clip_children_material; } else { if (material.is_null()) { - if (ci->canvas_group->mode == RS::CANVAS_GROUP_MODE_CLIP_ONLY) { + if (ci->canvas_group->mode == RSE::CANVAS_GROUP_MODE_CLIP_ONLY) { material = default_clip_children_material; } else { material = default_canvas_group_material; @@ -2340,8 +2341,8 @@ void RendererCanvasRenderRD::_render_batch_items(RenderTarget p_to_render_target } void RendererCanvasRenderRD::_record_item_commands(const Item *p_item, RenderTarget p_render_target, const Transform2D &p_base_transform, Item *&r_current_clip, Light *p_lights, bool &r_batch_broken, bool &r_sdf_used, Batch *&r_current_batch) { - const RenderingServer::CanvasItemTextureFilter texture_filter = p_item->texture_filter == RS::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ? default_filter : p_item->texture_filter; - const RenderingServer::CanvasItemTextureRepeat texture_repeat = p_item->texture_repeat == RS::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT ? default_repeat : p_item->texture_repeat; + const RSE::CanvasItemTextureFilter texture_filter = p_item->texture_filter == RSE::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ? default_filter : p_item->texture_filter; + const RSE::CanvasItemTextureRepeat texture_repeat = p_item->texture_repeat == RSE::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT ? default_repeat : p_item->texture_repeat; Transform2D base_transform = p_base_transform; @@ -2417,9 +2418,9 @@ void RendererCanvasRenderRD::_record_item_commands(const Item *p_item, RenderTar r_current_batch->flags = 0; } - RenderingServer::CanvasItemTextureRepeat rect_repeat = texture_repeat; + RSE::CanvasItemTextureRepeat rect_repeat = texture_repeat; if (bool(rect->flags & CANVAS_RECT_TILE)) { - rect_repeat = RenderingServer::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED; + rect_repeat = RSE::CanvasItemTextureRepeat::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED; } Color modulated = rect->modulate * base_color; @@ -2635,8 +2636,8 @@ void RendererCanvasRenderRD::_record_item_commands(const Item *p_item, RenderTar // pipeline variant { - ERR_CONTINUE(polygon->primitive < 0 || polygon->primitive >= RS::PRIMITIVE_MAX); - r_current_batch->shader_variant = polygon->primitive == RS::PRIMITIVE_POINTS ? SHADER_VARIANT_ATTRIBUTES_POINTS : SHADER_VARIANT_ATTRIBUTES; + ERR_CONTINUE(polygon->primitive < 0 || polygon->primitive >= RSE::PRIMITIVE_MAX); + r_current_batch->shader_variant = polygon->primitive == RSE::PRIMITIVE_POINTS ? SHADER_VARIANT_ATTRIBUTES_POINTS : SHADER_VARIANT_ATTRIBUTES; r_current_batch->render_primitive = _primitive_type_to_render_primitive(polygon->primitive); } @@ -2772,7 +2773,7 @@ void RendererCanvasRenderRD::_record_item_commands(const Item *p_item, RenderTar const Item::CommandMultiMesh *mm = static_cast(c); RID multimesh = mm->multimesh; - if (mesh_storage->multimesh_get_transform_format(multimesh) != RS::MULTIMESH_TRANSFORM_2D) { + if (mesh_storage->multimesh_get_transform_format(multimesh) != RSE::MULTIMESH_TRANSFORM_2D) { break; } @@ -3074,9 +3075,9 @@ void RendererCanvasRenderRD::_render_batch(RD::DrawListID p_draw_list, CanvasSha RD::get_singleton()->draw_list_draw(p_draw_list, true, p_batch->instance_count); if (r_render_info) { - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] += p_batch->instance_count; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += 2 * p_batch->instance_count; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] += p_batch->instance_count; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += 2 * p_batch->instance_count; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; } } break; @@ -3101,9 +3102,9 @@ void RendererCanvasRenderRD::_render_batch(RD::DrawListID p_draw_list, CanvasSha RD::get_singleton()->draw_list_draw(p_draw_list, pb->indices.is_valid()); if (r_render_info) { - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME]++; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += _indices_to_primitives(polygon->primitive, pb->primitive_count); - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME]++; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += _indices_to_primitives(polygon->primitive, pb->primitive_count); + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; } } break; @@ -3126,10 +3127,10 @@ void RendererCanvasRenderRD::_render_batch(RD::DrawListID p_draw_list, CanvasSha RD::get_singleton()->draw_list_draw(p_draw_list, true, instance_count); if (r_render_info) { - const RenderingServer::PrimitiveType rs_primitive[5] = { RS::PRIMITIVE_POINTS, RS::PRIMITIVE_POINTS, RS::PRIMITIVE_LINES, RS::PRIMITIVE_TRIANGLES, RS::PRIMITIVE_TRIANGLES }; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] += instance_count; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += _indices_to_primitives(rs_primitive[p_batch->primitive_points], p_batch->primitive_points) * instance_count; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; + const RSE::PrimitiveType rs_primitive[5] = { RSE::PRIMITIVE_POINTS, RSE::PRIMITIVE_POINTS, RSE::PRIMITIVE_LINES, RSE::PRIMITIVE_TRIANGLES, RSE::PRIMITIVE_TRIANGLES }; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] += instance_count; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += _indices_to_primitives(rs_primitive[p_batch->primitive_points], p_batch->primitive_points) * instance_count; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; } } break; @@ -3162,7 +3163,7 @@ void RendererCanvasRenderRD::_render_batch(RD::DrawListID p_draw_list, CanvasSha RID particles = pt->particles; mesh = particles_storage->particles_get_draw_pass_mesh(particles, 0); - ERR_BREAK(particles_storage->particles_get_mode(particles) != RS::PARTICLES_MODE_2D); + ERR_BREAK(particles_storage->particles_get_mode(particles) != RSE::PARTICLES_MODE_2D); particles_storage->particles_request_process(particles); if (particles_storage->particles_is_inactive(particles)) { @@ -3189,11 +3190,11 @@ void RendererCanvasRenderRD::_render_batch(RD::DrawListID p_draw_list, CanvasSha for (uint32_t j = 0; j < surf_count; j++) { void *surface = mesh_storage->mesh_get_surface(mesh, j); - RS::PrimitiveType primitive = mesh_storage->mesh_surface_get_primitive(surface); - ERR_CONTINUE(primitive < 0 || primitive >= RS::PRIMITIVE_MAX); + RSE::PrimitiveType primitive = mesh_storage->mesh_surface_get_primitive(surface); + ERR_CONTINUE(primitive < 0 || primitive >= RSE::PRIMITIVE_MAX); RID vertex_array; - pipeline_key.variant = primitive == RS::PRIMITIVE_POINTS ? SHADER_VARIANT_ATTRIBUTES_POINTS : SHADER_VARIANT_ATTRIBUTES; + pipeline_key.variant = primitive == RSE::PRIMITIVE_POINTS ? SHADER_VARIANT_ATTRIBUTES_POINTS : SHADER_VARIANT_ATTRIBUTES; pipeline_key.render_primitive = _primitive_type_to_render_primitive(primitive); pipeline_key.vertex_format_id = RD::INVALID_FORMAT_ID; @@ -3212,9 +3213,9 @@ void RendererCanvasRenderRD::_render_batch(RD::DrawListID p_draw_list, CanvasSha RD::get_singleton()->draw_list_draw(p_draw_list, index_array.is_valid(), p_batch->mesh_instance_count); if (r_render_info) { - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME]++; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += _indices_to_primitives(primitive, mesh_storage->mesh_surface_get_vertices_drawn_count(surface)) * p_batch->mesh_instance_count; - r_render_info->info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME]++; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] += _indices_to_primitives(primitive, mesh_storage->mesh_surface_get_vertices_drawn_count(surface)) * p_batch->mesh_instance_count; + r_render_info->info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]++; } } } break; diff --git a/servers/rendering/renderer_rd/renderer_canvas_render_rd.h b/servers/rendering/renderer_rd/renderer_canvas_render_rd.h index 12b2b395e6..4850a7a6b5 100644 --- a/servers/rendering/renderer_rd/renderer_canvas_render_rd.h +++ b/servers/rendering/renderer_rd/renderer_canvas_render_rd.h @@ -189,7 +189,7 @@ class RendererCanvasRenderRD : public RendererCanvasRender { RD::VertexFormatID quad_vertex_format_id; RD::VertexFormatID primitive_vertex_format_id; ShaderCompiler compiler; - uint32_t pipeline_compilations[RS::PIPELINE_SOURCE_MAX] = {}; + uint32_t pipeline_compilations[RSE::PIPELINE_SOURCE_MAX] = {}; Mutex mutex; } shader; @@ -219,8 +219,8 @@ class RendererCanvasRenderRD : public RendererCanvasRender { /**************************/ struct { - RS::CanvasItemTextureFilter default_filter; - RS::CanvasItemTextureRepeat default_repeat; + RSE::CanvasItemTextureFilter default_filter; + RSE::CanvasItemTextureRepeat default_repeat; } default_samplers; /******************/ @@ -289,7 +289,7 @@ class RendererCanvasRenderRD : public RendererCanvasRender { }; struct OccluderPolygon { - RS::CanvasOccluderPolygonCullMode cull_mode; + RSE::CanvasOccluderPolygonCullMode cull_mode; int line_point_count; RID vertex_buffer; RID vertex_array; @@ -422,7 +422,7 @@ class RendererCanvasRenderRD : public RendererCanvasRender { TextureState() {} - TextureState(RID p_texture, RS::CanvasItemTextureFilter p_base_filter, RS::CanvasItemTextureRepeat p_base_repeat, bool p_texture_is_data, bool p_use_linear_colors) { + TextureState(RID p_texture, RSE::CanvasItemTextureFilter p_base_filter, RSE::CanvasItemTextureRepeat p_base_repeat, bool p_texture_is_data, bool p_use_linear_colors) { texture = p_texture; other = (((uint32_t)p_base_filter & FILTER_MASK) << FILTER_SHIFT) | (((uint32_t)p_base_repeat & REPEAT_MASK) << REPEAT_SHIFT) | @@ -430,12 +430,12 @@ class RendererCanvasRenderRD : public RendererCanvasRender { (((uint32_t)p_use_linear_colors & LINEAR_COLORS_MASK) << LINEAR_COLORS_SHIFT); } - _ALWAYS_INLINE_ RS::CanvasItemTextureFilter texture_filter() const { - return (RS::CanvasItemTextureFilter)((other >> FILTER_SHIFT) & FILTER_MASK); + _ALWAYS_INLINE_ RSE::CanvasItemTextureFilter texture_filter() const { + return (RSE::CanvasItemTextureFilter)((other >> FILTER_SHIFT) & FILTER_MASK); } - _ALWAYS_INLINE_ RS::CanvasItemTextureRepeat texture_repeat() const { - return (RS::CanvasItemTextureRepeat)((other >> REPEAT_SHIFT) & REPEAT_MASK); + _ALWAYS_INLINE_ RSE::CanvasItemTextureRepeat texture_repeat() const { + return (RSE::CanvasItemTextureRepeat)((other >> REPEAT_SHIFT) & REPEAT_MASK); } _ALWAYS_INLINE_ bool linear_colors() const { @@ -655,8 +655,8 @@ class RendererCanvasRenderRD : public RendererCanvasRender { RID default_clip_children_material; RID default_clip_children_shader; - RS::CanvasItemTextureFilter default_filter = RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR; - RS::CanvasItemTextureRepeat default_repeat = RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED; + RSE::CanvasItemTextureFilter default_filter = RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR; + RSE::CanvasItemTextureRepeat default_repeat = RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED; RID _create_base_uniform_set(RID p_to_render_target, bool p_backbuffer); @@ -706,14 +706,14 @@ public: RID occluder_polygon_create() override; void occluder_polygon_set_shape(RID p_occluder, const Vector &p_points, bool p_closed) override; - void occluder_polygon_set_cull_mode(RID p_occluder, RS::CanvasOccluderPolygonCullMode p_mode) override; + void occluder_polygon_set_cull_mode(RID p_occluder, RSE::CanvasOccluderPolygonCullMode p_mode) override; - void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_light_list, const Transform2D &p_canvas_transform, RS::CanvasItemTextureFilter p_default_filter, RS::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info = nullptr) override; + void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_light_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info = nullptr) override; virtual void set_shadow_texture_size(int p_size) override; void set_debug_redraw(bool p_enabled, double p_time, const Color &p_color) override; - uint32_t get_pipeline_compilations(RS::PipelineSource p_source) override; + uint32_t get_pipeline_compilations(RSE::PipelineSource p_source) override; void set_time(double p_time); void update() override; diff --git a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp index bd54cfc6f8..8201635d3a 100644 --- a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp @@ -208,7 +208,7 @@ float RendererCompositorRD::_compute_reference_multiplier(RD::ColorSpace p_color } } -void RendererCompositorRD::set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RenderingServer::SplashStretchMode p_stretch_mode, bool p_use_filter) { +void RendererCompositorRD::set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RSE::SplashStretchMode p_stretch_mode, bool p_use_filter) { if (p_image.is_null() || p_image->is_empty()) { return; } diff --git a/servers/rendering/renderer_rd/renderer_compositor_rd.h b/servers/rendering/renderer_rd/renderer_compositor_rd.h index ec7e1972dc..a36ad6330e 100644 --- a/servers/rendering/renderer_rd/renderer_compositor_rd.h +++ b/servers/rendering/renderer_rd/renderer_compositor_rd.h @@ -130,7 +130,7 @@ public: virtual RendererCanvasRender *get_canvas() override { return canvas; } virtual RendererSceneRender *get_scene() override { return scene; } - virtual void set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RenderingServer::SplashStretchMode p_stretch_mode, bool p_use_filter) override; + virtual void set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RSE::SplashStretchMode p_stretch_mode, bool p_use_filter) override; virtual void initialize() override; virtual void begin_frame(double frame_step) override; diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp index 823752b9ac..8910878be9 100644 --- a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp @@ -38,6 +38,7 @@ #include "servers/rendering/renderer_rd/shaders/light_data_inc.glsl.gen.h" #include "servers/rendering/renderer_rd/shaders/scene_data_inc.glsl.gen.h" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_default.h" #include "servers/rendering/shader_include_db.h" #include "servers/rendering/storage/camera_attributes_storage.h" @@ -65,7 +66,7 @@ void RendererSceneRenderRD::sky_set_radiance_size(RID p_sky, int p_radiance_size sky.sky_set_radiance_size(p_sky, p_radiance_size); } -void RendererSceneRenderRD::sky_set_mode(RID p_sky, RS::SkyMode p_mode) { +void RendererSceneRenderRD::sky_set_mode(RID p_sky, RSE::SkyMode p_mode) { sky.sky_set_mode(p_sky, p_mode); } @@ -90,37 +91,37 @@ void RendererSceneRenderRD::environment_set_volumetric_fog_filter_active(bool p_ volumetric_fog_filter_active = p_enable; } -void RendererSceneRenderRD::environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) { +void RendererSceneRenderRD::environment_set_sdfgi_ray_count(RSE::EnvironmentSDFGIRayCount p_ray_count) { gi.sdfgi_ray_count = p_ray_count; } -void RendererSceneRenderRD::environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) { +void RendererSceneRenderRD::environment_set_sdfgi_frames_to_converge(RSE::EnvironmentSDFGIFramesToConverge p_frames) { gi.sdfgi_frames_to_converge = p_frames; } -void RendererSceneRenderRD::environment_set_sdfgi_frames_to_update_light(RS::EnvironmentSDFGIFramesToUpdateLight p_update) { +void RendererSceneRenderRD::environment_set_sdfgi_frames_to_update_light(RSE::EnvironmentSDFGIFramesToUpdateLight p_update) { gi.sdfgi_frames_to_update_light = p_update; } Ref RendererSceneRenderRD::environment_bake_panorama(RID p_env, bool p_bake_irradiance, const Size2i &p_size) { ERR_FAIL_COND_V(p_env.is_null(), Ref()); - RS::EnvironmentBG environment_background = environment_get_background(p_env); + RSE::EnvironmentBG environment_background = environment_get_background(p_env); - if (environment_background == RS::ENV_BG_CAMERA_FEED || environment_background == RS::ENV_BG_CANVAS || environment_background == RS::ENV_BG_KEEP) { + if (environment_background == RSE::ENV_BG_CAMERA_FEED || environment_background == RSE::ENV_BG_CANVAS || environment_background == RSE::ENV_BG_KEEP) { return Ref(); //nothing to bake } - RS::EnvironmentAmbientSource ambient_source = environment_get_ambient_source(p_env); + RSE::EnvironmentAmbientSource ambient_source = environment_get_ambient_source(p_env); bool use_ambient_light = false; bool use_octmap = false; - if (ambient_source == RS::ENV_AMBIENT_SOURCE_BG && (environment_background == RS::ENV_BG_CLEAR_COLOR || environment_background == RS::ENV_BG_COLOR)) { + if (ambient_source == RSE::ENV_AMBIENT_SOURCE_BG && (environment_background == RSE::ENV_BG_CLEAR_COLOR || environment_background == RSE::ENV_BG_COLOR)) { use_ambient_light = true; } else { - use_octmap = (ambient_source == RS::ENV_AMBIENT_SOURCE_BG && environment_background == RS::ENV_BG_SKY) || ambient_source == RS::ENV_AMBIENT_SOURCE_SKY; - use_ambient_light = use_octmap || ambient_source == RS::ENV_AMBIENT_SOURCE_COLOR; + use_octmap = (ambient_source == RSE::ENV_AMBIENT_SOURCE_BG && environment_background == RSE::ENV_BG_SKY) || ambient_source == RSE::ENV_AMBIENT_SOURCE_SKY; + use_ambient_light = use_octmap || ambient_source == RSE::ENV_AMBIENT_SOURCE_COLOR; } - use_octmap = use_octmap || (environment_background == RS::ENV_BG_SKY && environment_get_sky(p_env).is_valid()); + use_octmap = use_octmap || (environment_background == RSE::ENV_BG_SKY && environment_get_sky(p_env).is_valid()); Color ambient_color; float ambient_color_sky_mix = 0.0; @@ -146,7 +147,7 @@ Ref RendererSceneRenderRD::environment_bake_panorama(RID p_env, bool p_ba return panorama; } else { const float bg_energy_multiplier = environment_get_bg_energy_multiplier(p_env); - Color panorama_color = ((environment_background == RS::ENV_BG_CLEAR_COLOR) ? RSG::texture_storage->get_default_clear_color() : environment_get_bg_color(p_env)); + Color panorama_color = ((environment_background == RSE::ENV_BG_CLEAR_COLOR) ? RSG::texture_storage->get_default_clear_color() : environment_get_bg_color(p_env)); panorama_color = panorama_color.srgb_to_linear(); panorama_color.r *= bg_energy_multiplier; panorama_color.g *= bg_energy_multiplier; @@ -252,7 +253,7 @@ Ref RendererSceneRenderRD::render_buffers_create() { return rb; } -bool RendererSceneRenderRD::_compositor_effects_has_flag(const RenderDataRD *p_render_data, RS::CompositorEffectFlags p_flag, RS::CompositorEffectCallbackType p_callback_type) { +bool RendererSceneRenderRD::_compositor_effects_has_flag(const RenderDataRD *p_render_data, RSE::CompositorEffectFlags p_flag, RSE::CompositorEffectCallbackType p_callback_type) { RendererCompositorStorage *comp_storage = RendererCompositorStorage::get_singleton(); if (p_render_data->compositor.is_null()) { @@ -275,7 +276,7 @@ bool RendererSceneRenderRD::_compositor_effects_has_flag(const RenderDataRD *p_r return false; } -bool RendererSceneRenderRD::_has_compositor_effect(RS::CompositorEffectCallbackType p_callback_type, const RenderDataRD *p_render_data) { +bool RendererSceneRenderRD::_has_compositor_effect(RSE::CompositorEffectCallbackType p_callback_type, const RenderDataRD *p_render_data) { RendererCompositorStorage *comp_storage = RendererCompositorStorage::get_singleton(); if (p_render_data->compositor.is_null()) { @@ -293,7 +294,7 @@ bool RendererSceneRenderRD::_has_compositor_effect(RS::CompositorEffectCallbackT return effects.size() > 0; } -void RendererSceneRenderRD::_process_compositor_effects(RS::CompositorEffectCallbackType p_callback_type, const RenderDataRD *p_render_data) { +void RendererSceneRenderRD::_process_compositor_effects(RSE::CompositorEffectCallbackType p_callback_type, const RenderDataRD *p_render_data) { RendererCompositorStorage *comp_storage = RendererCompositorStorage::get_singleton(); if (p_render_data->compositor.is_null()) { @@ -438,7 +439,7 @@ void RendererSceneRenderRD::_render_buffers_copy_depth_texture(const RenderDataR } else { RID depth_back_fb = FramebufferCacheRD::get_singleton()->get_cache(depth_back_texture); if (p_use_msaa) { - static const int texture_multisamples[RS::VIEWPORT_MSAA_MAX] = { 1, 2, 4, 8 }; + static const int texture_multisamples[RSE::VIEWPORT_MSAA_MAX] = { 1, 2, 4, 8 }; resolve_effects->resolve_depth_raster(rb->get_depth_msaa(v), depth_back_fb, texture_multisamples[rb->get_msaa_3d()]); } else { @@ -467,26 +468,26 @@ void RendererSceneRenderRD::_render_buffers_post_process_and_tonemap(const Rende can_use_effects &= _debug_draw_can_use_effects(debug_draw); bool can_use_storage = _render_buffers_can_be_storage(); - RS::ViewportScaling3DMode scale_mode = rb->get_scaling_3d_mode(); - bool use_upscaled_texture = rb->has_upscaled_texture() && (scale_mode == RS::VIEWPORT_SCALING_3D_MODE_FSR2 || scale_mode == RS::VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL); + RSE::ViewportScaling3DMode scale_mode = rb->get_scaling_3d_mode(); + bool use_upscaled_texture = rb->has_upscaled_texture() && (scale_mode == RSE::VIEWPORT_SCALING_3D_MODE_FSR2 || scale_mode == RSE::VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL); SpatialUpscaler *spatial_upscaler = nullptr; if (can_use_effects) { - if (scale_mode == RS::VIEWPORT_SCALING_3D_MODE_FSR) { + if (scale_mode == RSE::VIEWPORT_SCALING_3D_MODE_FSR) { spatial_upscaler = fsr; - } else if (scale_mode == RS::VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL) { + } else if (scale_mode == RSE::VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL) { #if METAL_ENABLED spatial_upscaler = mfx_spatial; #endif } } - bool use_smaa = smaa && rb->get_screen_space_aa() == RS::VIEWPORT_SCREEN_SPACE_AA_SMAA; + bool use_smaa = smaa && rb->get_screen_space_aa() == RSE::VIEWPORT_SCREEN_SPACE_AA_SMAA; RID render_target = rb->get_render_target(); RID color_texture = use_upscaled_texture ? rb->get_upscaled_texture() : rb->get_internal_texture(); Size2i color_size = use_upscaled_texture ? target_size : rb->get_internal_size(); - bool dest_is_msaa_2d = rb->get_view_count() == 1 && texture_storage->render_target_get_msaa(render_target) != RS::VIEWPORT_MSAA_DISABLED; + bool dest_is_msaa_2d = rb->get_view_count() == 1 && texture_storage->render_target_get_msaa(render_target) != RSE::VIEWPORT_MSAA_DISABLED; bool using_dof = RSG::camera_attributes->camera_attributes_uses_dof(p_render_data->camera_attributes); @@ -582,8 +583,8 @@ void RendererSceneRenderRD::_render_buffers_post_process_and_tonemap(const Rende bool use_debanding = rb->get_use_debanding() && !texture_storage->render_target_is_using_hdr(render_target); int max_glow_index = -1; - int min_glow_level = RS::MAX_GLOW_LEVELS; - for (int i = 0; i < RS::MAX_GLOW_LEVELS; i++) { + int min_glow_level = RSE::MAX_GLOW_LEVELS; + for (int i = 0; i < RSE::MAX_GLOW_LEVELS; i++) { if (glow_levels[i] > 0.01) { max_glow_index = MAX(max_glow_index, i); min_glow_level = MIN(min_glow_level, i); @@ -686,8 +687,8 @@ void RendererSceneRenderRD::_render_buffers_post_process_and_tonemap(const Rende if (can_use_effects && p_render_data->environment.is_valid() && environment_get_glow_enabled(p_render_data->environment)) { tonemap.use_glow = true; tonemap.glow_mode = environment_get_glow_blend_mode(p_render_data->environment); - tonemap.glow_intensity = tonemap.glow_mode == RS::ENV_GLOW_BLEND_MODE_MIX ? environment_get_glow_mix(p_render_data->environment) : environment_get_glow_intensity(p_render_data->environment); - for (int i = 0; i < RS::MAX_GLOW_LEVELS; i++) { + tonemap.glow_intensity = tonemap.glow_mode == RSE::ENV_GLOW_BLEND_MODE_MIX ? environment_get_glow_mix(p_render_data->environment) : environment_get_glow_intensity(p_render_data->environment); + for (int i = 0; i < RSE::MAX_GLOW_LEVELS; i++) { tonemap.glow_levels[i] = environment_get_glow_levels(p_render_data->environment)[i]; } @@ -715,7 +716,7 @@ void RendererSceneRenderRD::_render_buffers_post_process_and_tonemap(const Rende tonemap.glow_map = texture_storage->texture_rd_get_default(RendererRD::TextureStorage::DEFAULT_RD_TEXTURE_WHITE); } - if (rb->get_screen_space_aa() == RS::VIEWPORT_SCREEN_SPACE_AA_FXAA) { + if (rb->get_screen_space_aa() == RSE::VIEWPORT_SCREEN_SPACE_AA_FXAA) { tonemap.use_fxaa = true; } @@ -899,7 +900,7 @@ void RendererSceneRenderRD::_post_process_subpass(RID p_source_texture, RID p_fr // FIXME: Our input it our internal_texture, shouldn't this be using internal_size ?? // Seeing we don't support FSR in our mobile renderer right now target_size = internal_size... Size2i target_size = rb->get_target_size(); - bool can_use_effects = target_size.x >= 8 && target_size.y >= 8 && debug_draw == RS::VIEWPORT_DEBUG_DRAW_DISABLED; + bool can_use_effects = target_size.x >= 8 && target_size.y >= 8 && debug_draw == RSE::VIEWPORT_DEBUG_DRAW_DISABLED; RD::DrawListID draw_list = RD::get_singleton()->draw_list_switch_to_next_pass(); @@ -987,47 +988,47 @@ void RendererSceneRenderRD::_disable_clear_request(const RenderDataRD *p_render_ texture_storage->render_target_disable_clear_request(p_render_data->render_buffers->get_render_target()); } -bool RendererSceneRenderRD::_debug_draw_can_use_effects(RS::ViewportDebugDraw p_debug_draw) { +bool RendererSceneRenderRD::_debug_draw_can_use_effects(RSE::ViewportDebugDraw p_debug_draw) { bool can_use_effects = true; switch (p_debug_draw) { // No debug draw, use camera effects - case RS::VIEWPORT_DEBUG_DRAW_DISABLED: + case RSE::VIEWPORT_DEBUG_DRAW_DISABLED: can_use_effects = true; break; // Modes that completely override rendering to draw debug information should disable camera effects. - case RS::VIEWPORT_DEBUG_DRAW_UNSHADED: - case RS::VIEWPORT_DEBUG_DRAW_OVERDRAW: - case RS::VIEWPORT_DEBUG_DRAW_WIREFRAME: - case RS::VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO: - case RS::VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS: - case RS::VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS: - case RS::VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS: - case RS::VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES: - case RS::VIEWPORT_DEBUG_DRAW_INTERNAL_BUFFER: + case RSE::VIEWPORT_DEBUG_DRAW_UNSHADED: + case RSE::VIEWPORT_DEBUG_DRAW_OVERDRAW: + case RSE::VIEWPORT_DEBUG_DRAW_WIREFRAME: + case RSE::VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO: + case RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS: + case RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS: + case RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS: + case RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES: + case RSE::VIEWPORT_DEBUG_DRAW_INTERNAL_BUFFER: can_use_effects = false; break; // Modes that draws information over part of the viewport needs camera effects because we see partially the normal draw mode. - case RS::VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS: - case RS::VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS: - case RS::VIEWPORT_DEBUG_DRAW_DECAL_ATLAS: - case RS::VIEWPORT_DEBUG_DRAW_MOTION_VECTORS: + case RSE::VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS: + case RSE::VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS: + case RSE::VIEWPORT_DEBUG_DRAW_DECAL_ATLAS: + case RSE::VIEWPORT_DEBUG_DRAW_MOTION_VECTORS: // Modes that draws a buffer over viewport needs camera effects because if the buffer is not available it will be equivalent to normal draw mode. - case RS::VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER: - case RS::VIEWPORT_DEBUG_DRAW_SSAO: - case RS::VIEWPORT_DEBUG_DRAW_SSIL: - case RS::VIEWPORT_DEBUG_DRAW_SDFGI: - case RS::VIEWPORT_DEBUG_DRAW_GI_BUFFER: - case RS::VIEWPORT_DEBUG_DRAW_OCCLUDERS: + case RSE::VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER: + case RSE::VIEWPORT_DEBUG_DRAW_SSAO: + case RSE::VIEWPORT_DEBUG_DRAW_SSIL: + case RSE::VIEWPORT_DEBUG_DRAW_SDFGI: + case RSE::VIEWPORT_DEBUG_DRAW_GI_BUFFER: + case RSE::VIEWPORT_DEBUG_DRAW_OCCLUDERS: can_use_effects = true; break; // Other debug draw modes keep camera effects. - case RS::VIEWPORT_DEBUG_DRAW_LIGHTING: - case RS::VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING: - case RS::VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION: - case RS::VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE: - case RS::VIEWPORT_DEBUG_DRAW_PSSM_SPLITS: - case RS::VIEWPORT_DEBUG_DRAW_SDFGI_PROBES: - case RS::VIEWPORT_DEBUG_DRAW_DISABLE_LOD: + case RSE::VIEWPORT_DEBUG_DRAW_LIGHTING: + case RSE::VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING: + case RSE::VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION: + case RSE::VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE: + case RSE::VIEWPORT_DEBUG_DRAW_PSSM_SPLITS: + case RSE::VIEWPORT_DEBUG_DRAW_SDFGI_PROBES: + case RSE::VIEWPORT_DEBUG_DRAW_DISABLE_LOD: can_use_effects = true; break; default: @@ -1046,7 +1047,7 @@ void RendererSceneRenderRD::_render_buffers_debug_draw(const RenderDataRD *p_ren RID render_target = rb->get_render_target(); - if (debug_draw == RS::VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS) { + if (debug_draw == RSE::VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS) { if (p_render_data->shadow_atlas.is_valid()) { RID shadow_atlas_texture = RendererRD::LightStorage::get_singleton()->shadow_atlas_get_texture(p_render_data->shadow_atlas); @@ -1059,7 +1060,7 @@ void RendererSceneRenderRD::_render_buffers_debug_draw(const RenderDataRD *p_ren } } - if (debug_draw == RS::VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS) { + if (debug_draw == RSE::VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS) { if (RendererRD::LightStorage::get_singleton()->directional_shadow_get_texture().is_valid()) { RID shadow_atlas_texture = RendererRD::LightStorage::get_singleton()->directional_shadow_get_texture(); Size2i rtsize = texture_storage->render_target_get_size(render_target); @@ -1080,14 +1081,14 @@ void RendererSceneRenderRD::_render_buffers_debug_draw(const RenderDataRD *p_ren RID light = p_render_data->render_shadows[i].light; RID base = light_storage->light_instance_get_base_light(light); - if (light_storage->light_get_type(base) == RS::LIGHT_DIRECTIONAL) { + if (light_storage->light_get_type(base) == RSE::LIGHT_DIRECTIONAL) { debug_effects->draw_shadow_frustum(light, p_render_data->scene_data->cam_projection, p_render_data->scene_data->cam_transform, dest_fb, Rect2(Size2(), size)); } } } } - if (debug_draw == RS::VIEWPORT_DEBUG_DRAW_DECAL_ATLAS) { + if (debug_draw == RSE::VIEWPORT_DEBUG_DRAW_DECAL_ATLAS) { RID decal_atlas = RendererRD::TextureStorage::get_singleton()->decal_atlas_get_texture(); if (decal_atlas.is_valid()) { @@ -1097,7 +1098,7 @@ void RendererSceneRenderRD::_render_buffers_debug_draw(const RenderDataRD *p_ren } } - if (debug_draw == RS::VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE) { + if (debug_draw == RSE::VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE) { RID luminance_texture = luminance->get_current_luminance_buffer(rb); if (luminance_texture.is_valid()) { Size2i rtsize = texture_storage->render_target_get_size(render_target); @@ -1106,24 +1107,24 @@ void RendererSceneRenderRD::_render_buffers_debug_draw(const RenderDataRD *p_ren } } - if (debug_draw == RS::VIEWPORT_DEBUG_DRAW_INTERNAL_BUFFER) { + if (debug_draw == RSE::VIEWPORT_DEBUG_DRAW_INTERNAL_BUFFER) { Size2 rtsize = texture_storage->render_target_get_size(render_target); copy_effects->copy_to_fb_rect(rb->get_internal_texture(), texture_storage->render_target_get_rd_framebuffer(render_target), Rect2(Vector2(), rtsize), false, false); } - if (debug_draw == RS::VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER && _render_buffers_get_normal_texture(rb).is_valid()) { + if (debug_draw == RSE::VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER && _render_buffers_get_normal_texture(rb).is_valid()) { Size2 rtsize = texture_storage->render_target_get_size(render_target); copy_effects->copy_to_fb_rect(_render_buffers_get_normal_texture(rb), texture_storage->render_target_get_rd_framebuffer(render_target), Rect2(Vector2(), rtsize), false, false, false, false, RID(), false, false, false, true); } - if (debug_draw == RS::VIEWPORT_DEBUG_DRAW_OCCLUDERS) { + if (debug_draw == RSE::VIEWPORT_DEBUG_DRAW_OCCLUDERS) { if (p_render_data->occluder_debug_tex.is_valid()) { Size2i rtsize = texture_storage->render_target_get_size(render_target); copy_effects->copy_to_fb_rect(texture_storage->texture_get_rd_texture(p_render_data->occluder_debug_tex), texture_storage->render_target_get_rd_framebuffer(render_target), Rect2i(Vector2(), rtsize), true, false); } } - if (debug_draw == RS::VIEWPORT_DEBUG_DRAW_MOTION_VECTORS && _render_buffers_get_velocity_texture(rb).is_valid()) { + if (debug_draw == RSE::VIEWPORT_DEBUG_DRAW_MOTION_VECTORS && _render_buffers_get_velocity_texture(rb).is_valid()) { RID velocity = _render_buffers_get_velocity_texture(rb); RID depth = rb->get_depth_texture(); RID dest_fb = texture_storage->render_target_get_rd_framebuffer(render_target); @@ -1149,44 +1150,44 @@ void RendererSceneRenderRD::gi_set_use_half_resolution(bool p_enable) { gi.half_resolution = p_enable; } -void RendererSceneRenderRD::positional_soft_shadow_filter_set_quality(RS::ShadowQuality p_quality) { - ERR_FAIL_INDEX_MSG(p_quality, RS::SHADOW_QUALITY_MAX, "Shadow quality too high, please see RenderingServer's ShadowQuality enum"); +void RendererSceneRenderRD::positional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) { + ERR_FAIL_INDEX_MSG(p_quality, RSE::SHADOW_QUALITY_MAX, "Shadow quality too high, please see RenderingServer's ShadowQuality enum"); if (shadows_quality != p_quality) { shadows_quality = p_quality; switch (shadows_quality) { - case RS::SHADOW_QUALITY_HARD: { + case RSE::SHADOW_QUALITY_HARD: { penumbra_shadow_samples = 4; soft_shadow_samples = 0; shadows_quality_radius = 1.0; } break; - case RS::SHADOW_QUALITY_SOFT_VERY_LOW: { + case RSE::SHADOW_QUALITY_SOFT_VERY_LOW: { penumbra_shadow_samples = 4; soft_shadow_samples = 1; shadows_quality_radius = 1.5; } break; - case RS::SHADOW_QUALITY_SOFT_LOW: { + case RSE::SHADOW_QUALITY_SOFT_LOW: { penumbra_shadow_samples = 8; soft_shadow_samples = 4; shadows_quality_radius = 2.0; } break; - case RS::SHADOW_QUALITY_SOFT_MEDIUM: { + case RSE::SHADOW_QUALITY_SOFT_MEDIUM: { penumbra_shadow_samples = 12; soft_shadow_samples = 8; shadows_quality_radius = 2.0; } break; - case RS::SHADOW_QUALITY_SOFT_HIGH: { + case RSE::SHADOW_QUALITY_SOFT_HIGH: { penumbra_shadow_samples = 24; soft_shadow_samples = 16; shadows_quality_radius = 3.0; } break; - case RS::SHADOW_QUALITY_SOFT_ULTRA: { + case RSE::SHADOW_QUALITY_SOFT_ULTRA: { penumbra_shadow_samples = 32; soft_shadow_samples = 32; shadows_quality_radius = 4.0; } break; - case RS::SHADOW_QUALITY_MAX: + case RSE::SHADOW_QUALITY_MAX: break; } get_vogel_disk(penumbra_shadow_kernel, penumbra_shadow_samples); @@ -1196,44 +1197,44 @@ void RendererSceneRenderRD::positional_soft_shadow_filter_set_quality(RS::Shadow _update_shader_quality_settings(); } -void RendererSceneRenderRD::directional_soft_shadow_filter_set_quality(RS::ShadowQuality p_quality) { - ERR_FAIL_INDEX_MSG(p_quality, RS::SHADOW_QUALITY_MAX, "Shadow quality too high, please see RenderingServer's ShadowQuality enum"); +void RendererSceneRenderRD::directional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) { + ERR_FAIL_INDEX_MSG(p_quality, RSE::SHADOW_QUALITY_MAX, "Shadow quality too high, please see RenderingServer's ShadowQuality enum"); if (directional_shadow_quality != p_quality) { directional_shadow_quality = p_quality; switch (directional_shadow_quality) { - case RS::SHADOW_QUALITY_HARD: { + case RSE::SHADOW_QUALITY_HARD: { directional_penumbra_shadow_samples = 4; directional_soft_shadow_samples = 0; directional_shadow_quality_radius = 1.0; } break; - case RS::SHADOW_QUALITY_SOFT_VERY_LOW: { + case RSE::SHADOW_QUALITY_SOFT_VERY_LOW: { directional_penumbra_shadow_samples = 4; directional_soft_shadow_samples = 1; directional_shadow_quality_radius = 1.5; } break; - case RS::SHADOW_QUALITY_SOFT_LOW: { + case RSE::SHADOW_QUALITY_SOFT_LOW: { directional_penumbra_shadow_samples = 8; directional_soft_shadow_samples = 4; directional_shadow_quality_radius = 2.0; } break; - case RS::SHADOW_QUALITY_SOFT_MEDIUM: { + case RSE::SHADOW_QUALITY_SOFT_MEDIUM: { directional_penumbra_shadow_samples = 12; directional_soft_shadow_samples = 8; directional_shadow_quality_radius = 2.0; } break; - case RS::SHADOW_QUALITY_SOFT_HIGH: { + case RSE::SHADOW_QUALITY_SOFT_HIGH: { directional_penumbra_shadow_samples = 24; directional_soft_shadow_samples = 16; directional_shadow_quality_radius = 3.0; } break; - case RS::SHADOW_QUALITY_SOFT_ULTRA: { + case RSE::SHADOW_QUALITY_SOFT_ULTRA: { directional_penumbra_shadow_samples = 32; directional_soft_shadow_samples = 32; directional_shadow_quality_radius = 4.0; } break; - case RS::SHADOW_QUALITY_MAX: + case RSE::SHADOW_QUALITY_MAX: break; } get_vogel_disk(directional_penumbra_shadow_kernel, directional_penumbra_shadow_samples); @@ -1243,14 +1244,14 @@ void RendererSceneRenderRD::directional_soft_shadow_filter_set_quality(RS::Shado _update_shader_quality_settings(); } -void RendererSceneRenderRD::decals_set_filter(RenderingServer::DecalFilter p_filter) { +void RendererSceneRenderRD::decals_set_filter(RSE::DecalFilter p_filter) { if (decals_filter == p_filter) { return; } decals_filter = p_filter; _update_shader_quality_settings(); } -void RendererSceneRenderRD::light_projectors_set_filter(RenderingServer::LightProjectorFilter p_filter) { +void RendererSceneRenderRD::light_projectors_set_filter(RSE::LightProjectorFilter p_filter) { if (light_projectors_filter == p_filter) { return; } @@ -1293,8 +1294,8 @@ void RendererSceneRenderRD::_update_vrs(Ref p_render_buffe if (vrs) { RendererRD::TextureStorage *texture_storage = RendererRD::TextureStorage::get_singleton(); - RS::ViewportVRSMode vrs_mode = texture_storage->render_target_get_vrs_mode(render_target); - if (vrs_mode != RS::VIEWPORT_VRS_DISABLED) { + RSE::ViewportVRSMode vrs_mode = texture_storage->render_target_get_vrs_mode(render_target); + if (vrs_mode != RSE::VIEWPORT_VRS_DISABLED) { RID vrs_texture = p_render_buffers->get_texture(RB_SCOPE_VRS, RB_TEXTURE); // We use get_cache_multipass instead of get_cache_multiview because the default behavior is for @@ -1384,7 +1385,7 @@ void RendererSceneRenderRD::render_scene(const Ref &p_render const float scaling_3d_scale = GLOBAL_GET_CACHED(float, "rendering/scaling_3d/scale"); scene_data.lod_distance_multiplier = lod_distance_multiplier * (1.0 / scaling_3d_scale); - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_DISABLE_LOD) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_DISABLE_LOD) { scene_data.screen_mesh_lod_threshold = 0.0; } else { scene_data.screen_mesh_lod_threshold = p_screen_mesh_lod_threshold; @@ -1460,17 +1461,17 @@ void RendererSceneRenderRD::render_scene(const Ref &p_render PagedArray empty; - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_UNSHADED || get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_OVERDRAW) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_UNSHADED || get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_OVERDRAW) { render_data.lights = ∅ render_data.reflection_probes = ∅ render_data.voxel_gi_instances = ∅ render_data.lightmaps = ∅ } - if (get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_UNSHADED || - get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_OVERDRAW || - get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_LIGHTING || - get_debug_draw_mode() == RS::VIEWPORT_DEBUG_DRAW_PSSM_SPLITS) { + if (get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_UNSHADED || + get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_OVERDRAW || + get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_LIGHTING || + get_debug_draw_mode() == RSE::VIEWPORT_DEBUG_DRAW_PSSM_SPLITS) { render_data.decals = ∅ } @@ -1531,7 +1532,7 @@ bool RendererSceneRenderRD::free(RID p_rid) { return true; } -void RendererSceneRenderRD::set_debug_draw_mode(RS::ViewportDebugDraw p_debug_draw) { +void RendererSceneRenderRD::set_debug_draw_mode(RSE::ViewportDebugDraw p_debug_draw) { debug_draw = p_debug_draw; } @@ -1720,8 +1721,8 @@ void RendererSceneRenderRD::init() { RendererRD::Fog::get_singleton()->init_fog_shader(RendererRD::LightStorage::get_singleton()->get_max_directional_lights(), get_roughness_layers(), is_using_radiance_octmap_array()); } - RSG::camera_attributes->camera_attributes_set_dof_blur_bokeh_shape(RS::DOFBokehShape(int(GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_bokeh_shape")))); - RSG::camera_attributes->camera_attributes_set_dof_blur_quality(RS::DOFBlurQuality(int(GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_bokeh_quality"))), GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_use_jitter")); + RSG::camera_attributes->camera_attributes_set_dof_blur_bokeh_shape(RSE::DOFBokehShape(int(GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_bokeh_shape")))); + RSG::camera_attributes->camera_attributes_set_dof_blur_quality(RSE::DOFBlurQuality(int(GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_bokeh_quality"))), GLOBAL_GET("rendering/camera/depth_of_field/depth_of_field_use_jitter")); use_physical_light_units = GLOBAL_GET("rendering/lights_and_shadows/use_physical_light_units"); screen_space_roughness_limiter = GLOBAL_GET("rendering/anti_aliasing/screen_space_roughness_limiter/enabled"); @@ -1733,14 +1734,14 @@ void RendererSceneRenderRD::init() { directional_soft_shadow_kernel = memnew_arr(float, 128); penumbra_shadow_kernel = memnew_arr(float, 128); soft_shadow_kernel = memnew_arr(float, 128); - positional_soft_shadow_filter_set_quality(RS::ShadowQuality(int(GLOBAL_GET("rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality")))); - directional_soft_shadow_filter_set_quality(RS::ShadowQuality(int(GLOBAL_GET("rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality")))); + positional_soft_shadow_filter_set_quality(RSE::ShadowQuality(int(GLOBAL_GET("rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality")))); + directional_soft_shadow_filter_set_quality(RSE::ShadowQuality(int(GLOBAL_GET("rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality")))); environment_set_volumetric_fog_volume_size(GLOBAL_GET("rendering/environment/volumetric_fog/volume_size"), GLOBAL_GET("rendering/environment/volumetric_fog/volume_depth")); environment_set_volumetric_fog_filter_active(GLOBAL_GET("rendering/environment/volumetric_fog/use_filter")); - decals_set_filter(RS::DecalFilter(int(GLOBAL_GET("rendering/textures/decals/filter")))); - light_projectors_set_filter(RS::LightProjectorFilter(int(GLOBAL_GET("rendering/textures/light_projectors/filter")))); + decals_set_filter(RSE::DecalFilter(int(GLOBAL_GET("rendering/textures/decals/filter")))); + light_projectors_set_filter(RSE::LightProjectorFilter(int(GLOBAL_GET("rendering/textures/light_projectors/filter")))); lightmaps_set_bicubic_filter(GLOBAL_GET("rendering/lightmapping/lightmap_gi/use_bicubic_filter")); material_set_use_debanding(GLOBAL_GET("rendering/anti_aliasing/quality/use_debanding")); diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.h b/servers/rendering/renderer_rd/renderer_scene_render_rd.h index e84e2869fe..d8130297ff 100644 --- a/servers/rendering/renderer_rd/renderer_scene_render_rd.h +++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.h @@ -104,9 +104,9 @@ protected: bool _needs_post_prepass_render(RenderDataRD *p_render_data, bool p_use_gi); void _post_prepass_render(RenderDataRD *p_render_data, bool p_use_gi); - bool _compositor_effects_has_flag(const RenderDataRD *p_render_data, RS::CompositorEffectFlags p_flag, RS::CompositorEffectCallbackType p_callback_type = RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY); - bool _has_compositor_effect(RS::CompositorEffectCallbackType p_callback_type, const RenderDataRD *p_render_data); - void _process_compositor_effects(RS::CompositorEffectCallbackType p_callback_type, const RenderDataRD *p_render_data); + bool _compositor_effects_has_flag(const RenderDataRD *p_render_data, RSE::CompositorEffectFlags p_flag, RSE::CompositorEffectCallbackType p_callback_type = RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY); + bool _has_compositor_effect(RSE::CompositorEffectCallbackType p_callback_type, const RenderDataRD *p_render_data); + void _process_compositor_effects(RSE::CompositorEffectCallbackType p_callback_type, const RenderDataRD *p_render_data); void _render_buffers_ensure_screen_texture(const RenderDataRD *p_render_data); void _render_buffers_copy_screen_texture(const RenderDataRD *p_render_data); void _render_buffers_ensure_depth_texture(const RenderDataRD *p_render_data); @@ -123,15 +123,15 @@ protected: RendererRD::GI gi; virtual void _update_shader_quality_settings() {} - static bool _debug_draw_can_use_effects(RS::ViewportDebugDraw p_debug_draw); + static bool _debug_draw_can_use_effects(RSE::ViewportDebugDraw p_debug_draw); private: - RS::ViewportDebugDraw debug_draw = RS::VIEWPORT_DEBUG_DRAW_DISABLED; + RSE::ViewportDebugDraw debug_draw = RSE::VIEWPORT_DEBUG_DRAW_DISABLED; static RendererSceneRenderRD *singleton; /* Shadow atlas */ - RS::ShadowQuality shadows_quality = RS::SHADOW_QUALITY_MAX; //So it always updates when first set - RS::ShadowQuality directional_shadow_quality = RS::SHADOW_QUALITY_MAX; + RSE::ShadowQuality shadows_quality = RSE::SHADOW_QUALITY_MAX; //So it always updates when first set + RSE::ShadowQuality directional_shadow_quality = RSE::SHADOW_QUALITY_MAX; float shadows_quality_radius = 1.0; float directional_shadow_quality_radius = 1.0; @@ -144,8 +144,8 @@ private: int directional_soft_shadow_samples = 0; int penumbra_shadow_samples = 0; int soft_shadow_samples = 0; - RS::DecalFilter decals_filter = RS::DECAL_FILTER_LINEAR_MIPMAPS; - RS::LightProjectorFilter light_projectors_filter = RS::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS; + RSE::DecalFilter decals_filter = RSE::DECAL_FILTER_LINEAR_MIPMAPS; + RSE::LightProjectorFilter light_projectors_filter = RSE::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS; bool material_use_debanding = false; /* RENDER BUFFERS */ @@ -173,7 +173,7 @@ public: /* LIGHTING */ virtual void setup_added_reflection_probe(const Transform3D &p_transform, const Vector3 &p_half_size) {} - virtual void setup_added_light(const RS::LightType p_type, const Transform3D &p_transform, float p_radius, float p_spot_aperture) {} + virtual void setup_added_light(const RSE::LightType p_type, const Transform3D &p_transform, float p_radius, float p_spot_aperture) {} virtual void setup_added_decal(const Transform3D &p_transform, const Vector3 &p_half_size) {} /* GI */ @@ -190,7 +190,7 @@ public: virtual void sky_initialize(RID p_rid) override; virtual void sky_set_radiance_size(RID p_sky, int p_radiance_size) override; - virtual void sky_set_mode(RID p_sky, RS::SkyMode p_mode) override; + virtual void sky_set_mode(RID p_sky, RSE::SkyMode p_mode) override; virtual void sky_set_material(RID p_sky, RID p_material) override; virtual Ref sky_bake_panorama(RID p_sky, float p_energy, bool p_bake_irradiance, const Size2i &p_size) override; @@ -201,9 +201,9 @@ public: virtual void environment_set_volumetric_fog_volume_size(int p_size, int p_depth) override; virtual void environment_set_volumetric_fog_filter_active(bool p_enable) override; - virtual void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) override; - virtual void environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) override; - virtual void environment_set_sdfgi_frames_to_update_light(RS::EnvironmentSDFGIFramesToUpdateLight p_update) override; + virtual void environment_set_sdfgi_ray_count(RSE::EnvironmentSDFGIRayCount p_ray_count) override; + virtual void environment_set_sdfgi_frames_to_converge(RSE::EnvironmentSDFGIFramesToConverge p_frames) override; + virtual void environment_set_sdfgi_frames_to_update_light(RSE::EnvironmentSDFGIFramesToUpdateLight p_update) override; virtual Ref environment_bake_panorama(RID p_env, bool p_bake_irradiance, const Size2i &p_size) override; @@ -233,7 +233,7 @@ public: virtual void voxel_gi_instance_set_transform_to_data(RID p_probe, const Transform3D &p_xform) override; virtual bool voxel_gi_needs_update(RID p_probe) const override; virtual void voxel_gi_update(RID p_probe, bool p_update_light_instances, const Vector &p_light_instances, const PagedArray &p_dynamic_objects) override; - virtual void voxel_gi_set_quality(RS::VoxelGIQuality p_quality) override { gi.voxel_gi_quality = p_quality; } + virtual void voxel_gi_set_quality(RSE::VoxelGIQuality p_quality) override { gi.voxel_gi_quality = p_quality; } /* render buffers */ virtual RD::DataFormat _render_buffers_get_preferred_color_format(); @@ -263,18 +263,18 @@ public: virtual float screen_space_roughness_limiter_get_amount() const; virtual float screen_space_roughness_limiter_get_limit() const; - virtual void positional_soft_shadow_filter_set_quality(RS::ShadowQuality p_quality) override; - virtual void directional_soft_shadow_filter_set_quality(RS::ShadowQuality p_quality) override; + virtual void positional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) override; + virtual void directional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) override; - virtual void decals_set_filter(RS::DecalFilter p_filter) override; - virtual void light_projectors_set_filter(RS::LightProjectorFilter p_filter) override; + virtual void decals_set_filter(RSE::DecalFilter p_filter) override; + virtual void light_projectors_set_filter(RSE::LightProjectorFilter p_filter) override; virtual void lightmaps_set_bicubic_filter(bool p_enable) override; virtual void material_set_use_debanding(bool p_enable) override; - _FORCE_INLINE_ RS::ShadowQuality shadows_quality_get() const { + _FORCE_INLINE_ RSE::ShadowQuality shadows_quality_get() const { return shadows_quality; } - _FORCE_INLINE_ RS::ShadowQuality directional_shadow_quality_get() const { + _FORCE_INLINE_ RSE::ShadowQuality directional_shadow_quality_get() const { return directional_shadow_quality; } _FORCE_INLINE_ float shadows_quality_radius_get() const { @@ -313,10 +313,10 @@ public: return soft_shadow_samples; } - _FORCE_INLINE_ RS::LightProjectorFilter light_projectors_get_filter() const { + _FORCE_INLINE_ RSE::LightProjectorFilter light_projectors_get_filter() const { return light_projectors_filter; } - _FORCE_INLINE_ RS::DecalFilter decals_get_filter() const { + _FORCE_INLINE_ RSE::DecalFilter decals_get_filter() const { return decals_filter; } @@ -333,8 +333,8 @@ public: virtual void update() override; - virtual void set_debug_draw_mode(RS::ViewportDebugDraw p_debug_draw) override; - _FORCE_INLINE_ RS::ViewportDebugDraw get_debug_draw_mode() const { + virtual void set_debug_draw_mode(RSE::ViewportDebugDraw p_debug_draw) override; + _FORCE_INLINE_ RSE::ViewportDebugDraw get_debug_draw_mode() const { return debug_draw; } diff --git a/servers/rendering/renderer_rd/storage_rd/light_storage.cpp b/servers/rendering/renderer_rd/storage_rd/light_storage.cpp index 57a411f807..c2b644446e 100644 --- a/servers/rendering/renderer_rd/storage_rd/light_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/light_storage.cpp @@ -117,31 +117,31 @@ bool LightStorage::free(RID p_rid) { /* LIGHT */ -void LightStorage::_light_initialize(RID p_light, RS::LightType p_type) { +void LightStorage::_light_initialize(RID p_light, RSE::LightType p_type) { Light light; light.type = p_type; - light.param[RS::LIGHT_PARAM_ENERGY] = 1.0; - light.param[RS::LIGHT_PARAM_INDIRECT_ENERGY] = 1.0; - light.param[RS::LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY] = 1.0; - light.param[RS::LIGHT_PARAM_SPECULAR] = 0.5; - light.param[RS::LIGHT_PARAM_RANGE] = 1.0; - light.param[RS::LIGHT_PARAM_SIZE] = 0.0; - light.param[RS::LIGHT_PARAM_ATTENUATION] = 1.0; - light.param[RS::LIGHT_PARAM_SPOT_ANGLE] = 45; - light.param[RS::LIGHT_PARAM_SPOT_ATTENUATION] = 1.0; - light.param[RS::LIGHT_PARAM_SHADOW_MAX_DISTANCE] = 0; - light.param[RS::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET] = 0.1; - light.param[RS::LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET] = 0.3; - light.param[RS::LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET] = 0.6; - light.param[RS::LIGHT_PARAM_SHADOW_FADE_START] = 0.8; - light.param[RS::LIGHT_PARAM_SHADOW_NORMAL_BIAS] = 1.0; - light.param[RS::LIGHT_PARAM_SHADOW_BIAS] = 0.02; - light.param[RS::LIGHT_PARAM_SHADOW_OPACITY] = 1.0; - light.param[RS::LIGHT_PARAM_SHADOW_BLUR] = 0; - light.param[RS::LIGHT_PARAM_SHADOW_PANCAKE_SIZE] = 20.0; - light.param[RS::LIGHT_PARAM_TRANSMITTANCE_BIAS] = 0.05; - light.param[RS::LIGHT_PARAM_INTENSITY] = p_type == RS::LIGHT_DIRECTIONAL ? 100000.0 : 1000.0; + light.param[RSE::LIGHT_PARAM_ENERGY] = 1.0; + light.param[RSE::LIGHT_PARAM_INDIRECT_ENERGY] = 1.0; + light.param[RSE::LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY] = 1.0; + light.param[RSE::LIGHT_PARAM_SPECULAR] = 0.5; + light.param[RSE::LIGHT_PARAM_RANGE] = 1.0; + light.param[RSE::LIGHT_PARAM_SIZE] = 0.0; + light.param[RSE::LIGHT_PARAM_ATTENUATION] = 1.0; + light.param[RSE::LIGHT_PARAM_SPOT_ANGLE] = 45; + light.param[RSE::LIGHT_PARAM_SPOT_ATTENUATION] = 1.0; + light.param[RSE::LIGHT_PARAM_SHADOW_MAX_DISTANCE] = 0; + light.param[RSE::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET] = 0.1; + light.param[RSE::LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET] = 0.3; + light.param[RSE::LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET] = 0.6; + light.param[RSE::LIGHT_PARAM_SHADOW_FADE_START] = 0.8; + light.param[RSE::LIGHT_PARAM_SHADOW_NORMAL_BIAS] = 1.0; + light.param[RSE::LIGHT_PARAM_SHADOW_BIAS] = 0.02; + light.param[RSE::LIGHT_PARAM_SHADOW_OPACITY] = 1.0; + light.param[RSE::LIGHT_PARAM_SHADOW_BLUR] = 0; + light.param[RSE::LIGHT_PARAM_SHADOW_PANCAKE_SIZE] = 20.0; + light.param[RSE::LIGHT_PARAM_TRANSMITTANCE_BIAS] = 0.05; + light.param[RSE::LIGHT_PARAM_INTENSITY] = p_type == RSE::LIGHT_DIRECTIONAL ? 100000.0 : 1000.0; light_owner.initialize_rid(p_light, light); } @@ -151,7 +151,7 @@ RID LightStorage::directional_light_allocate() { } void LightStorage::directional_light_initialize(RID p_light) { - _light_initialize(p_light, RS::LIGHT_DIRECTIONAL); + _light_initialize(p_light, RSE::LIGHT_DIRECTIONAL); } RID LightStorage::omni_light_allocate() { @@ -159,7 +159,7 @@ RID LightStorage::omni_light_allocate() { } void LightStorage::omni_light_initialize(RID p_light) { - _light_initialize(p_light, RS::LIGHT_OMNI); + _light_initialize(p_light, RSE::LIGHT_OMNI); } RID LightStorage::spot_light_allocate() { @@ -167,7 +167,7 @@ RID LightStorage::spot_light_allocate() { } void LightStorage::spot_light_initialize(RID p_light) { - _light_initialize(p_light, RS::LIGHT_SPOT); + _light_initialize(p_light, RSE::LIGHT_SPOT); } void LightStorage::light_free(RID p_rid) { @@ -186,29 +186,29 @@ void LightStorage::light_set_color(RID p_light, const Color &p_color) { light->color = p_color; } -void LightStorage::light_set_param(RID p_light, RS::LightParam p_param, float p_value) { +void LightStorage::light_set_param(RID p_light, RSE::LightParam p_param, float p_value) { Light *light = light_owner.get_or_null(p_light); ERR_FAIL_NULL(light); - ERR_FAIL_INDEX(p_param, RS::LIGHT_PARAM_MAX); + ERR_FAIL_INDEX(p_param, RSE::LIGHT_PARAM_MAX); if (light->param[p_param] == p_value) { return; } switch (p_param) { - case RS::LIGHT_PARAM_RANGE: - case RS::LIGHT_PARAM_SPOT_ANGLE: - case RS::LIGHT_PARAM_SHADOW_MAX_DISTANCE: - case RS::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET: - case RS::LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET: - case RS::LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET: - case RS::LIGHT_PARAM_SHADOW_NORMAL_BIAS: - case RS::LIGHT_PARAM_SHADOW_PANCAKE_SIZE: - case RS::LIGHT_PARAM_SHADOW_BIAS: { + case RSE::LIGHT_PARAM_RANGE: + case RSE::LIGHT_PARAM_SPOT_ANGLE: + case RSE::LIGHT_PARAM_SHADOW_MAX_DISTANCE: + case RSE::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET: + case RSE::LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET: + case RSE::LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET: + case RSE::LIGHT_PARAM_SHADOW_NORMAL_BIAS: + case RSE::LIGHT_PARAM_SHADOW_PANCAKE_SIZE: + case RSE::LIGHT_PARAM_SHADOW_BIAS: { light->version++; light->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_LIGHT); } break; - case RS::LIGHT_PARAM_SIZE: { + case RSE::LIGHT_PARAM_SIZE: { if ((light->param[p_param] > CMP_EPSILON) != (p_value > CMP_EPSILON)) { //changing from no size to size and the opposite light->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_LIGHT_SOFT_SHADOW_AND_PROJECTOR); @@ -241,15 +241,15 @@ void LightStorage::light_set_projector(RID p_light, RID p_texture) { ERR_FAIL_COND(p_texture.is_valid() && !texture_storage->owns_texture(p_texture)); - if (light->type != RS::LIGHT_DIRECTIONAL && light->projector.is_valid()) { - texture_storage->texture_remove_from_decal_atlas(light->projector, light->type == RS::LIGHT_OMNI); + if (light->type != RSE::LIGHT_DIRECTIONAL && light->projector.is_valid()) { + texture_storage->texture_remove_from_decal_atlas(light->projector, light->type == RSE::LIGHT_OMNI); } light->projector = p_texture; - if (light->type != RS::LIGHT_DIRECTIONAL) { + if (light->type != RSE::LIGHT_DIRECTIONAL) { if (light->projector.is_valid()) { - texture_storage->texture_add_to_decal_atlas(light->projector, light->type == RS::LIGHT_OMNI); + texture_storage->texture_add_to_decal_atlas(light->projector, light->type == RSE::LIGHT_OMNI); } light->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_LIGHT_SOFT_SHADOW_AND_PROJECTOR); } @@ -309,7 +309,7 @@ uint32_t LightStorage::light_get_shadow_caster_mask(RID p_light) const { return light->shadow_caster_mask; } -void LightStorage::light_set_bake_mode(RID p_light, RS::LightBakeMode p_bake_mode) { +void LightStorage::light_set_bake_mode(RID p_light, RSE::LightBakeMode p_bake_mode) { Light *light = light_owner.get_or_null(p_light); ERR_FAIL_NULL(light); @@ -329,7 +329,7 @@ void LightStorage::light_set_max_sdfgi_cascade(RID p_light, uint32_t p_cascade) light->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_LIGHT); } -void LightStorage::light_omni_set_shadow_mode(RID p_light, RS::LightOmniShadowMode p_mode) { +void LightStorage::light_omni_set_shadow_mode(RID p_light, RSE::LightOmniShadowMode p_mode) { Light *light = light_owner.get_or_null(p_light); ERR_FAIL_NULL(light); @@ -338,21 +338,21 @@ void LightStorage::light_omni_set_shadow_mode(RID p_light, RS::LightOmniShadowMo light->version++; light->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_LIGHT); - if (p_mode == RS::LIGHT_OMNI_SHADOW_DUAL_PARABOLOID) { + if (p_mode == RSE::LIGHT_OMNI_SHADOW_DUAL_PARABOLOID) { shadow_dual_paraboloid_used = true; - } else if (p_mode == RS::LIGHT_OMNI_SHADOW_CUBE) { + } else if (p_mode == RSE::LIGHT_OMNI_SHADOW_CUBE) { shadow_cubemaps_used = true; } } -RS::LightOmniShadowMode LightStorage::light_omni_get_shadow_mode(RID p_light) { +RSE::LightOmniShadowMode LightStorage::light_omni_get_shadow_mode(RID p_light) { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_OMNI_SHADOW_CUBE); + ERR_FAIL_NULL_V(light, RSE::LIGHT_OMNI_SHADOW_CUBE); return light->omni_shadow_mode; } -void LightStorage::light_directional_set_shadow_mode(RID p_light, RS::LightDirectionalShadowMode p_mode) { +void LightStorage::light_directional_set_shadow_mode(RID p_light, RSE::LightDirectionalShadowMode p_mode) { Light *light = light_owner.get_or_null(p_light); ERR_FAIL_NULL(light); @@ -377,23 +377,23 @@ bool LightStorage::light_directional_get_blend_splits(RID p_light) const { return light->directional_blend_splits; } -void LightStorage::light_directional_set_sky_mode(RID p_light, RS::LightDirectionalSkyMode p_mode) { +void LightStorage::light_directional_set_sky_mode(RID p_light, RSE::LightDirectionalSkyMode p_mode) { Light *light = light_owner.get_or_null(p_light); ERR_FAIL_NULL(light); light->directional_sky_mode = p_mode; } -RS::LightDirectionalSkyMode LightStorage::light_directional_get_sky_mode(RID p_light) const { +RSE::LightDirectionalSkyMode LightStorage::light_directional_get_sky_mode(RID p_light) const { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY); + ERR_FAIL_NULL_V(light, RSE::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY); return light->directional_sky_mode; } -RS::LightDirectionalShadowMode LightStorage::light_directional_get_shadow_mode(RID p_light) { +RSE::LightDirectionalShadowMode LightStorage::light_directional_get_shadow_mode(RID p_light) { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL); + ERR_FAIL_NULL_V(light, RSE::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL); return light->directional_shadow_mode; } @@ -405,9 +405,9 @@ uint32_t LightStorage::light_get_max_sdfgi_cascade(RID p_light) { return light->max_sdfgi_cascade; } -RS::LightBakeMode LightStorage::light_get_bake_mode(RID p_light) { +RSE::LightBakeMode LightStorage::light_get_bake_mode(RID p_light) { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_BAKE_DISABLED); + ERR_FAIL_NULL_V(light, RSE::LIGHT_BAKE_DISABLED); return light->bake_mode; } @@ -431,9 +431,9 @@ AABB LightStorage::light_get_aabb(RID p_light) const { ERR_FAIL_NULL_V(light, AABB()); switch (light->type) { - case RS::LIGHT_SPOT: { - float len = light->param[RS::LIGHT_PARAM_RANGE]; - float angle = Math::deg_to_rad(light->param[RS::LIGHT_PARAM_SPOT_ANGLE]); + case RSE::LIGHT_SPOT: { + float len = light->param[RSE::LIGHT_PARAM_RANGE]; + float angle = Math::deg_to_rad(light->param[RSE::LIGHT_PARAM_SPOT_ANGLE]); if (angle > Math::PI * 0.5) { // Light casts backwards as well. @@ -443,11 +443,11 @@ AABB LightStorage::light_get_aabb(RID p_light) const { float size = Math::sin(angle) * len; return AABB(Vector3(-size, -size, -len), Vector3(size * 2, size * 2, len)); }; - case RS::LIGHT_OMNI: { - float r = light->param[RS::LIGHT_PARAM_RANGE]; + case RSE::LIGHT_OMNI: { + float r = light->param[RSE::LIGHT_PARAM_RANGE]; return AABB(-Vector3(r, r, r), Vector3(r, r, r) * 2); }; - case RS::LIGHT_DIRECTIONAL: { + case RSE::LIGHT_DIRECTIONAL: { return AABB(); }; } @@ -472,8 +472,8 @@ RID LightStorage::light_instance_create(RID p_light) { light_instance->self = li; light_instance->light = p_light; light_instance->light_type = light_get_type(p_light); - if (light_instance->light_type != RS::LIGHT_DIRECTIONAL) { - light_instance->forward_id = ForwardIDStorage::get_singleton()->allocate_forward_id(light_instance->light_type == RS::LIGHT_OMNI ? FORWARD_ID_TYPE_OMNI_LIGHT : FORWARD_ID_TYPE_SPOT_LIGHT); + if (light_instance->light_type != RSE::LIGHT_DIRECTIONAL) { + light_instance->forward_id = ForwardIDStorage::get_singleton()->allocate_forward_id(light_instance->light_type == RSE::LIGHT_OMNI ? FORWARD_ID_TYPE_OMNI_LIGHT : FORWARD_ID_TYPE_SPOT_LIGHT); } return li; @@ -500,8 +500,8 @@ void LightStorage::light_instance_free(RID p_light) { shadow_atlas->shadow_owners.erase(p_light); } - if (light_instance->light_type != RS::LIGHT_DIRECTIONAL) { - ForwardIDStorage::get_singleton()->free_forward_id(light_instance->light_type == RS::LIGHT_OMNI ? FORWARD_ID_TYPE_OMNI_LIGHT : FORWARD_ID_TYPE_SPOT_LIGHT, light_instance->forward_id); + if (light_instance->light_type != RSE::LIGHT_DIRECTIONAL) { + ForwardIDStorage::get_singleton()->free_forward_id(light_instance->light_type == RSE::LIGHT_OMNI ? FORWARD_ID_TYPE_OMNI_LIGHT : FORWARD_ID_TYPE_SPOT_LIGHT, light_instance->forward_id); } light_instance_owner.free(p_light); } @@ -629,8 +629,8 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged ERR_CONTINUE(light == nullptr); switch (light->type) { - case RS::LIGHT_DIRECTIONAL: { - if (r_directional_light_count >= max_directional_lights || light->directional_sky_mode == RS::LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY) { + case RSE::LIGHT_DIRECTIONAL: { + if (r_directional_light_count >= max_directional_lights || light->directional_sky_mode == RSE::LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY) { continue; } @@ -646,10 +646,10 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged float sign = light->negative ? -1 : 1; - light_data.energy = sign * light->param[RS::LIGHT_PARAM_ENERGY]; + light_data.energy = sign * light->param[RSE::LIGHT_PARAM_ENERGY]; if (RendererSceneRenderRD::get_singleton()->is_using_physical_light_units()) { - light_data.energy *= light->param[RS::LIGHT_PARAM_INTENSITY]; + light_data.energy *= light->param[RSE::LIGHT_PARAM_INTENSITY]; } else { light_data.energy *= Math::PI; } @@ -663,25 +663,25 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged light_data.color[1] = linear_col.g; light_data.color[2] = linear_col.b; - light_data.specular = light->param[RS::LIGHT_PARAM_SPECULAR]; - light_data.volumetric_fog_energy = light->param[RS::LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY]; + light_data.specular = light->param[RSE::LIGHT_PARAM_SPECULAR]; + light_data.volumetric_fog_energy = light->param[RSE::LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY]; light_data.mask = light->cull_mask; - float size = light->param[RS::LIGHT_PARAM_SIZE]; + float size = light->param[RSE::LIGHT_PARAM_SIZE]; light_data.size = 1.0 - Math::cos(Math::deg_to_rad(size)); //angle to cosine offset light_data.shadow_opacity = (p_using_shadows && light->shadow) - ? light->param[RS::LIGHT_PARAM_SHADOW_OPACITY] + ? light->param[RSE::LIGHT_PARAM_SHADOW_OPACITY] : 0.0; - float angular_diameter = light->param[RS::LIGHT_PARAM_SIZE]; + float angular_diameter = light->param[RSE::LIGHT_PARAM_SIZE]; if (angular_diameter > 0.0) { // I know tan(0) is 0, but let's not risk it with numerical precision. // technically this will keep expanding until reaching the sun, but all we care // is expand until we reach the radius of the near plane (there can't be more occluders than that) angular_diameter = Math::tan(Math::deg_to_rad(angular_diameter)); - if (light->shadow && light->param[RS::LIGHT_PARAM_SHADOW_BLUR] > 0.0) { + if (light->shadow && light->param[RSE::LIGHT_PARAM_SHADOW_BLUR] > 0.0) { // Only enable PCSS-like soft shadows if blurring is enabled. // Otherwise, performance would decrease with no visual difference. r_directional_light_soft_shadows = true; @@ -693,17 +693,17 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged light_data.bake_mode = light->bake_mode; if (light_data.shadow_opacity > 0.001) { - RS::LightDirectionalShadowMode smode = light->directional_shadow_mode; + RSE::LightDirectionalShadowMode smode = light->directional_shadow_mode; - light_data.soft_shadow_scale = light->param[RS::LIGHT_PARAM_SHADOW_BLUR]; + light_data.soft_shadow_scale = light->param[RSE::LIGHT_PARAM_SHADOW_BLUR]; light_data.softshadow_angle = angular_diameter; if (angular_diameter <= 0.0) { light_data.soft_shadow_scale *= RendererSceneRenderRD::get_singleton()->directional_shadow_quality_radius_get(); // Only use quality radius for PCF } - int limit = smode == RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL ? 0 : (smode == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS ? 1 : 3); - light_data.blend_splits = (smode != RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL) && light->directional_blend_splits; + int limit = smode == RSE::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL ? 0 : (smode == RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS ? 1 : 3); + light_data.blend_splits = (smode != RSE::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL) && light->directional_blend_splits; for (int j = 0; j < 4; j++) { Rect2 atlas_rect = light_instance->shadow_transform[j].atlas_rect; Projection correction; @@ -721,9 +721,9 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged Projection shadow_mtx = rectm * bias * matrix * modelview; light_data.shadow_split_offsets[j] = split; float bias_scale = light_instance->shadow_transform[j].bias_scale * light_data.soft_shadow_scale; - light_data.shadow_bias[j] = light->param[RS::LIGHT_PARAM_SHADOW_BIAS] / 100.0 * bias_scale; - light_data.shadow_normal_bias[j] = light->param[RS::LIGHT_PARAM_SHADOW_NORMAL_BIAS] * light_instance->shadow_transform[j].shadow_texel_size; - light_data.shadow_transmittance_bias[j] = light->param[RS::LIGHT_PARAM_TRANSMITTANCE_BIAS] / 100.0 * bias_scale; + light_data.shadow_bias[j] = light->param[RSE::LIGHT_PARAM_SHADOW_BIAS] / 100.0 * bias_scale; + light_data.shadow_normal_bias[j] = light->param[RSE::LIGHT_PARAM_SHADOW_NORMAL_BIAS] * light_instance->shadow_transform[j].shadow_texel_size; + light_data.shadow_transmittance_bias[j] = light->param[RSE::LIGHT_PARAM_TRANSMITTANCE_BIAS] / 100.0 * bias_scale; light_data.shadow_z_range[j] = light_instance->shadow_transform[j].farplane; light_data.shadow_range_begin[j] = light_instance->shadow_transform[j].range_begin; RendererRD::MaterialStorage::store_camera(shadow_mtx, light_data.shadow_matrices[j]); @@ -750,14 +750,14 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged } } - float fade_start = light->param[RS::LIGHT_PARAM_SHADOW_FADE_START]; + float fade_start = light->param[RSE::LIGHT_PARAM_SHADOW_FADE_START]; light_data.fade_from = -light_data.shadow_split_offsets[3] * MIN(fade_start, 0.999); //using 1.0 would break smoothstep light_data.fade_to = -light_data.shadow_split_offsets[3]; } r_directional_light_count++; } break; - case RS::LIGHT_OMNI: { + case RSE::LIGHT_OMNI: { if (omni_light_count >= max_lights) { continue; } @@ -782,7 +782,7 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged omni_light_sort[omni_light_count].depth = distance; omni_light_count++; } break; - case RS::LIGHT_SPOT: { + case RSE::LIGHT_SPOT: { if (spot_light_count >= max_lights) { continue; } @@ -827,13 +827,13 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged for (uint32_t i = 0; i < (omni_light_count + spot_light_count); i++) { uint32_t index = (i < omni_light_count) ? i : i - (omni_light_count); LightData &light_data = (i < omni_light_count) ? omni_lights[index] : spot_lights[index]; - RS::LightType type = (i < omni_light_count) ? RS::LIGHT_OMNI : RS::LIGHT_SPOT; + RSE::LightType type = (i < omni_light_count) ? RSE::LIGHT_OMNI : RSE::LIGHT_SPOT; LightInstance *light_instance = (i < omni_light_count) ? omni_light_sort[index].light_instance : spot_light_sort[index].light_instance; Light *light = (i < omni_light_count) ? omni_light_sort[index].light : spot_light_sort[index].light; real_t distance = (i < omni_light_count) ? omni_light_sort[index].depth : spot_light_sort[index].depth; if (using_forward_ids) { - forward_id_storage->map_forward_id(type == RS::LIGHT_OMNI ? RendererRD::FORWARD_ID_TYPE_OMNI_LIGHT : RendererRD::FORWARD_ID_TYPE_SPOT_LIGHT, light_instance->forward_id, index, light_instance->last_pass); + forward_id_storage->map_forward_id(type == RSE::LIGHT_OMNI ? RendererRD::FORWARD_ID_TYPE_OMNI_LIGHT : RendererRD::FORWARD_ID_TYPE_SPOT_LIGHT, light_instance->forward_id, index, light_instance->last_pass); } Transform3D light_transform = light_instance->transform; @@ -841,7 +841,7 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged float sign = light->negative ? -1 : 1; Color linear_col = light->color.srgb_to_linear(); - light_data.attenuation = light->param[RS::LIGHT_PARAM_ATTENUATION]; + light_data.attenuation = light->param[RSE::LIGHT_PARAM_ATTENUATION]; // Reuse fade begin, fade length and distance for shadow LOD determination later. float fade_begin = 0.0; @@ -865,13 +865,13 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged } } - float energy = sign * light->param[RS::LIGHT_PARAM_ENERGY] * fade; + float energy = sign * light->param[RSE::LIGHT_PARAM_ENERGY] * fade; if (RendererSceneRenderRD::get_singleton()->is_using_physical_light_units()) { - energy *= light->param[RS::LIGHT_PARAM_INTENSITY]; + energy *= light->param[RSE::LIGHT_PARAM_INTENSITY]; // Convert from Luminous Power to Luminous Intensity - if (type == RS::LIGHT_OMNI) { + if (type == RSE::LIGHT_OMNI) { energy *= 1.0 / (Math::PI * 4.0); } else { // Spot Lights are not physically accurate, Luminous Intensity should change in relation to the cone angle. @@ -889,11 +889,11 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged light_data.color[0] = linear_col.r * energy; light_data.color[1] = linear_col.g * energy; light_data.color[2] = linear_col.b * energy; - light_data.specular_amount = light->param[RS::LIGHT_PARAM_SPECULAR] * 2.0; - light_data.volumetric_fog_energy = light->param[RS::LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY]; + light_data.specular_amount = light->param[RSE::LIGHT_PARAM_SPECULAR] * 2.0; + light_data.volumetric_fog_energy = light->param[RSE::LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY]; light_data.bake_mode = light->bake_mode; - float radius = MAX(0.001, light->param[RS::LIGHT_PARAM_RANGE]); + float radius = MAX(0.001, light->param[RSE::LIGHT_PARAM_RANGE]); light_data.inv_radius = 1.0 / radius; Vector3 pos = inverse_transform.xform(light_transform.origin); @@ -908,12 +908,12 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged light_data.direction[1] = direction.y; light_data.direction[2] = direction.z; - float size = light->param[RS::LIGHT_PARAM_SIZE]; + float size = light->param[RSE::LIGHT_PARAM_SIZE]; light_data.size = size; - light_data.inv_spot_attenuation = 1.0f / light->param[RS::LIGHT_PARAM_SPOT_ATTENUATION]; - float spot_angle = light->param[RS::LIGHT_PARAM_SPOT_ANGLE]; + light_data.inv_spot_attenuation = 1.0f / light->param[RSE::LIGHT_PARAM_SPOT_ATTENUATION]; + float spot_angle = light->param[RSE::LIGHT_PARAM_SPOT_ANGLE]; light_data.cos_spot_angle = Math::cos(Math::deg_to_rad(spot_angle)); light_data.mask = light->cull_mask; @@ -928,7 +928,7 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged if (projector.is_valid()) { Rect2 rect = texture_storage->decal_atlas_get_texture_rect(projector); - if (type == RS::LIGHT_SPOT) { + if (type == RSE::LIGHT_SPOT) { light_data.projector_rect[0] = rect.position.x; light_data.projector_rect[1] = rect.position.y + rect.size.height; //flip because shadow is flipped light_data.projector_rect[2] = rect.size.width; @@ -963,18 +963,18 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged if (needs_shadow && in_shadow_range) { // fill in the shadow information - light_data.shadow_opacity = light->param[RS::LIGHT_PARAM_SHADOW_OPACITY] * shadow_opacity_fade; + light_data.shadow_opacity = light->param[RSE::LIGHT_PARAM_SHADOW_OPACITY] * shadow_opacity_fade; float shadow_texel_size = light_instance_get_shadow_texel_size(light_instance->self, p_shadow_atlas); - light_data.shadow_normal_bias = light->param[RS::LIGHT_PARAM_SHADOW_NORMAL_BIAS] * shadow_texel_size * 10.0; + light_data.shadow_normal_bias = light->param[RSE::LIGHT_PARAM_SHADOW_NORMAL_BIAS] * shadow_texel_size * 10.0; - if (type == RS::LIGHT_SPOT) { - light_data.shadow_bias = light->param[RS::LIGHT_PARAM_SHADOW_BIAS] / 100.0; + if (type == RSE::LIGHT_SPOT) { + light_data.shadow_bias = light->param[RSE::LIGHT_PARAM_SHADOW_BIAS] / 100.0; } else { //omni - light_data.shadow_bias = light->param[RS::LIGHT_PARAM_SHADOW_BIAS]; + light_data.shadow_bias = light->param[RSE::LIGHT_PARAM_SHADOW_BIAS]; } - light_data.transmittance_bias = light->param[RS::LIGHT_PARAM_TRANSMITTANCE_BIAS]; + light_data.transmittance_bias = light->param[RSE::LIGHT_PARAM_TRANSMITTANCE_BIAS]; Vector2i omni_offset; Rect2 rect = light_instance_get_shadow_atlas_rect(light_instance->self, p_shadow_atlas, omni_offset); @@ -984,9 +984,9 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged light_data.atlas_rect[2] = rect.size.width; light_data.atlas_rect[3] = rect.size.height; - light_data.soft_shadow_scale = light->param[RS::LIGHT_PARAM_SHADOW_BLUR]; + light_data.soft_shadow_scale = light->param[RSE::LIGHT_PARAM_SHADOW_BLUR]; - if (type == RS::LIGHT_OMNI) { + if (type == RSE::LIGHT_OMNI) { Transform3D proj = (inverse_transform * light_transform).inverse(); RendererRD::MaterialStorage::store_transform(proj, light_data.shadow_matrix); @@ -1002,7 +1002,7 @@ void LightStorage::update_light_buffers(RenderDataRD *p_render_data, const Paged light_data.direction[0] = omni_offset.x * float(rect.size.width); light_data.direction[1] = omni_offset.y * float(rect.size.height); - } else if (type == RS::LIGHT_SPOT) { + } else if (type == RSE::LIGHT_SPOT) { Transform3D modelview = (inverse_transform * light_transform).inverse(); Projection bias; bias.set_light_bias(); @@ -1066,7 +1066,7 @@ void LightStorage::reflection_probe_free(RID p_rid) { reflection_probe_owner.free(p_rid); } -void LightStorage::reflection_probe_set_update_mode(RID p_probe, RS::ReflectionProbeUpdateMode p_mode) { +void LightStorage::reflection_probe_set_update_mode(RID p_probe, RSE::ReflectionProbeUpdateMode p_mode) { ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe); ERR_FAIL_NULL(reflection_probe); @@ -1088,7 +1088,7 @@ void LightStorage::reflection_probe_set_blend_distance(RID p_probe, float p_blen reflection_probe->blend_distance = p_blend_distance; } -void LightStorage::reflection_probe_set_ambient_mode(RID p_probe, RS::ReflectionProbeAmbientMode p_mode) { +void LightStorage::reflection_probe_set_ambient_mode(RID p_probe, RSE::ReflectionProbeAmbientMode p_mode) { ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe); ERR_FAIL_NULL(reflection_probe); @@ -1207,9 +1207,9 @@ AABB LightStorage::reflection_probe_get_aabb(RID p_probe) const { return aabb; } -RS::ReflectionProbeUpdateMode LightStorage::reflection_probe_get_update_mode(RID p_probe) const { +RSE::ReflectionProbeUpdateMode LightStorage::reflection_probe_get_update_mode(RID p_probe) const { const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe); - ERR_FAIL_NULL_V(reflection_probe, RS::REFLECTION_PROBE_UPDATE_ALWAYS); + ERR_FAIL_NULL_V(reflection_probe, RSE::REFLECTION_PROBE_UPDATE_ALWAYS); return reflection_probe->update_mode; } @@ -1298,9 +1298,9 @@ bool LightStorage::reflection_probe_is_box_projection(RID p_probe) const { return reflection_probe->box_projection; } -RS::ReflectionProbeAmbientMode LightStorage::reflection_probe_get_ambient_mode(RID p_probe) const { +RSE::ReflectionProbeAmbientMode LightStorage::reflection_probe_get_ambient_mode(RID p_probe) const { const ReflectionProbe *reflection_probe = reflection_probe_owner.get_or_null(p_probe); - ERR_FAIL_NULL_V(reflection_probe, RS::REFLECTION_PROBE_AMBIENT_DISABLED); + ERR_FAIL_NULL_V(reflection_probe, RSE::REFLECTION_PROBE_AMBIENT_DISABLED); return reflection_probe->ambient_mode; } @@ -1471,7 +1471,7 @@ bool LightStorage::reflection_probe_instance_needs_redraw(RID p_instance) { return true; } - if (LightStorage::get_singleton()->reflection_probe_get_update_mode(rpi->probe) == RS::REFLECTION_PROBE_UPDATE_ALWAYS) { + if (LightStorage::get_singleton()->reflection_probe_get_update_mode(rpi->probe) == RSE::REFLECTION_PROBE_UPDATE_ALWAYS) { return true; } @@ -1502,7 +1502,7 @@ bool LightStorage::reflection_probe_instance_begin_render(RID p_instance, RID p_ RD::get_singleton()->draw_command_begin_label("Reflection Probe Render"); - const bool update_always = LightStorage::get_singleton()->reflection_probe_get_update_mode(rpi->probe) == RS::REFLECTION_PROBE_UPDATE_ALWAYS; + const bool update_always = LightStorage::get_singleton()->reflection_probe_get_update_mode(rpi->probe) == RSE::REFLECTION_PROBE_UPDATE_ALWAYS; if (update_always && atlas->reflection.is_valid() && atlas->size != 256) { WARN_PRINT("ReflectionProbes set to UPDATE_ALWAYS must have an atlas size of 256. Please update the atlas size in the ProjectSettings."); reflection_atlas_set_size(p_reflection_atlas, 256, atlas->count); @@ -1651,7 +1651,7 @@ bool LightStorage::reflection_probe_instance_postprocess_step(RID p_instance) { return false; } - if (LightStorage::get_singleton()->reflection_probe_get_update_mode(rpi->probe) == RS::REFLECTION_PROBE_UPDATE_ALWAYS) { + if (LightStorage::get_singleton()->reflection_probe_get_update_mode(rpi->probe) == RSE::REFLECTION_PROBE_UPDATE_ALWAYS) { // Using real time reflections, all roughness is done in one step atlas->reflections.write[rpi->atlas_index].data.create_reflection_fast_filter(false); rpi->rendering = false; @@ -2095,14 +2095,14 @@ void LightStorage::lightmap_set_shadowmask_textures(RID p_lightmap, RID p_shadow shadowmask_textures.write[lm->array_index] = t->rd_texture; } -RS::ShadowmaskMode LightStorage::lightmap_get_shadowmask_mode(RID p_lightmap) { +RSE::ShadowmaskMode LightStorage::lightmap_get_shadowmask_mode(RID p_lightmap) { Lightmap *lm = lightmap_owner.get_or_null(p_lightmap); - ERR_FAIL_NULL_V(lm, RS::SHADOWMASK_MODE_NONE); + ERR_FAIL_NULL_V(lm, RSE::SHADOWMASK_MODE_NONE); return lm->shadowmask_mode; } -void LightStorage::lightmap_set_shadowmask_mode(RID p_lightmap, RS::ShadowmaskMode p_mode) { +void LightStorage::lightmap_set_shadowmask_mode(RID p_lightmap, RSE::ShadowmaskMode p_mode) { Lightmap *lm = lightmap_owner.get_or_null(p_lightmap); ERR_FAIL_NULL(lm); @@ -2447,7 +2447,7 @@ bool LightStorage::shadow_atlas_update_light(RID p_atlas, RID p_light_instance, old_subdivision = shadow_atlas->quadrants[old_quadrant].subdivision; } - bool is_omni = li->light_type == RS::LIGHT_OMNI; + bool is_omni = li->light_type == RSE::LIGHT_OMNI; bool found_shadow = false; int new_quadrant = -1; int new_shadow = -1; @@ -2610,12 +2610,12 @@ int LightStorage::get_directional_light_shadow_size(RID p_light_instance) { ERR_FAIL_NULL_V(light_instance, 0); switch (light_directional_get_shadow_mode(light_instance->light)) { - case RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL: + case RSE::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL: break; //none - case RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS: + case RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS: r.size.height /= 2; break; - case RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS: + case RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS: r.size /= 2; break; } diff --git a/servers/rendering/renderer_rd/storage_rd/light_storage.h b/servers/rendering/renderer_rd/storage_rd/light_storage.h index 6603ad7ac9..d71136f9f4 100644 --- a/servers/rendering/renderer_rd/storage_rd/light_storage.h +++ b/servers/rendering/renderer_rd/storage_rd/light_storage.h @@ -61,14 +61,14 @@ private: /* LIGHT */ struct Light { - RS::LightType type; - float param[RS::LIGHT_PARAM_MAX]; + RSE::LightType type; + float param[RSE::LIGHT_PARAM_MAX]; Color color = Color(1, 1, 1, 1); RID projector; bool shadow = false; bool negative = false; bool reverse_cull = false; - RS::LightBakeMode bake_mode = RS::LIGHT_BAKE_DYNAMIC; + RSE::LightBakeMode bake_mode = RSE::LIGHT_BAKE_DYNAMIC; uint32_t max_sdfgi_cascade = 2; uint32_t cull_mask = 0xFFFFFFFF; uint32_t shadow_caster_mask = 0xFFFFFFFF; @@ -76,10 +76,10 @@ private: real_t distance_fade_begin = 40.0; real_t distance_fade_shadow = 50.0; real_t distance_fade_length = 10.0; - RS::LightOmniShadowMode omni_shadow_mode = RS::LIGHT_OMNI_SHADOW_DUAL_PARABOLOID; - RS::LightDirectionalShadowMode directional_shadow_mode = RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL; + RSE::LightOmniShadowMode omni_shadow_mode = RSE::LIGHT_OMNI_SHADOW_DUAL_PARABOLOID; + RSE::LightDirectionalShadowMode directional_shadow_mode = RSE::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL; bool directional_blend_splits = false; - RS::LightDirectionalSkyMode directional_sky_mode = RS::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY; + RSE::LightDirectionalSkyMode directional_sky_mode = RSE::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY; uint64_t version = 0; Dependency dependency; @@ -102,7 +102,7 @@ private: Vector2 uv_scale; }; - RS::LightType light_type = RS::LIGHT_DIRECTIONAL; + RSE::LightType light_type = RSE::LIGHT_DIRECTIONAL; ShadowTransform shadow_transform[6]; @@ -219,10 +219,10 @@ private: /* REFLECTION PROBE */ struct ReflectionProbe { - RS::ReflectionProbeUpdateMode update_mode = RS::REFLECTION_PROBE_UPDATE_ONCE; + RSE::ReflectionProbeUpdateMode update_mode = RSE::REFLECTION_PROBE_UPDATE_ONCE; float intensity = 1.0; float blend_distance = 1.0; - RS::ReflectionProbeAmbientMode ambient_mode = RS::REFLECTION_PROBE_AMBIENT_ENVIRONMENT; + RSE::ReflectionProbeAmbientMode ambient_mode = RSE::REFLECTION_PROBE_AMBIENT_ENVIRONMENT; Color ambient_color; float ambient_color_energy = 1.0; float max_distance = 0; @@ -339,7 +339,7 @@ private: struct Lightmap { RID light_texture; RID shadow_texture; - RS::ShadowmaskMode shadowmask_mode = RS::SHADOWMASK_MODE_NONE; + RSE::ShadowmaskMode shadowmask_mode = RSE::SHADOWMASK_MODE_NONE; bool uses_spherical_harmonics = false; bool interior = false; AABB bounds = AABB(Vector3(), Vector3(1, 1, 1)); @@ -473,7 +473,7 @@ public: bool owns_light(RID p_rid) { return light_owner.owns(p_rid); } - void _light_initialize(RID p_rid, RS::LightType p_type); + void _light_initialize(RID p_rid, RSE::LightType p_type); virtual RID directional_light_allocate() override; virtual void directional_light_initialize(RID p_light) override; @@ -487,7 +487,7 @@ public: virtual void light_free(RID p_rid) override; virtual void light_set_color(RID p_light, const Color &p_color) override; - virtual void light_set_param(RID p_light, RS::LightParam p_param, float p_value) override; + virtual void light_set_param(RID p_light, RSE::LightParam p_param, float p_value) override; virtual void light_set_shadow(RID p_light, bool p_enabled) override; virtual void light_set_projector(RID p_light, RID p_texture) override; virtual void light_set_negative(RID p_light, bool p_enable) override; @@ -496,29 +496,29 @@ public: virtual void light_set_reverse_cull_face_mode(RID p_light, bool p_enabled) override; virtual void light_set_shadow_caster_mask(RID p_light, uint32_t p_caster_mask) override; virtual uint32_t light_get_shadow_caster_mask(RID p_light) const override; - virtual void light_set_bake_mode(RID p_light, RS::LightBakeMode p_bake_mode) override; + virtual void light_set_bake_mode(RID p_light, RSE::LightBakeMode p_bake_mode) override; virtual void light_set_max_sdfgi_cascade(RID p_light, uint32_t p_cascade) override; - virtual void light_omni_set_shadow_mode(RID p_light, RS::LightOmniShadowMode p_mode) override; + virtual void light_omni_set_shadow_mode(RID p_light, RSE::LightOmniShadowMode p_mode) override; - virtual void light_directional_set_shadow_mode(RID p_light, RS::LightDirectionalShadowMode p_mode) override; + virtual void light_directional_set_shadow_mode(RID p_light, RSE::LightDirectionalShadowMode p_mode) override; virtual void light_directional_set_blend_splits(RID p_light, bool p_enable) override; virtual bool light_directional_get_blend_splits(RID p_light) const override; - virtual void light_directional_set_sky_mode(RID p_light, RS::LightDirectionalSkyMode p_mode) override; - virtual RS::LightDirectionalSkyMode light_directional_get_sky_mode(RID p_light) const override; + virtual void light_directional_set_sky_mode(RID p_light, RSE::LightDirectionalSkyMode p_mode) override; + virtual RSE::LightDirectionalSkyMode light_directional_get_sky_mode(RID p_light) const override; - virtual RS::LightDirectionalShadowMode light_directional_get_shadow_mode(RID p_light) override; - virtual RS::LightOmniShadowMode light_omni_get_shadow_mode(RID p_light) override; + virtual RSE::LightDirectionalShadowMode light_directional_get_shadow_mode(RID p_light) override; + virtual RSE::LightOmniShadowMode light_omni_get_shadow_mode(RID p_light) override; - virtual RS::LightType light_get_type(RID p_light) const override { + virtual RSE::LightType light_get_type(RID p_light) const override { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_DIRECTIONAL); + ERR_FAIL_NULL_V(light, RSE::LIGHT_DIRECTIONAL); return light->type; } virtual AABB light_get_aabb(RID p_light) const override; - virtual float light_get_param(RID p_light, RS::LightParam p_param) override { + virtual float light_get_param(RID p_light, RSE::LightParam p_param) override { const Light *light = light_owner.get_or_null(p_light); ERR_FAIL_NULL_V(light, 0); @@ -561,21 +561,21 @@ public: virtual bool light_has_shadow(RID p_light) const override { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_DIRECTIONAL); + ERR_FAIL_NULL_V(light, RSE::LIGHT_DIRECTIONAL); return light->shadow; } virtual bool light_has_projector(RID p_light) const override { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_DIRECTIONAL); + ERR_FAIL_NULL_V(light, RSE::LIGHT_DIRECTIONAL); return TextureStorage::get_singleton()->owns_texture(light->projector); } _FORCE_INLINE_ bool light_is_negative(RID p_light) const { const Light *light = light_owner.get_or_null(p_light); - ERR_FAIL_NULL_V(light, RS::LIGHT_DIRECTIONAL); + ERR_FAIL_NULL_V(light, RSE::LIGHT_DIRECTIONAL); return light->negative; } @@ -584,7 +584,7 @@ public: const Light *light = light_owner.get_or_null(p_light); ERR_FAIL_NULL_V(light, 0.0); - return light->param[RS::LIGHT_PARAM_TRANSMITTANCE_BIAS]; + return light->param[RSE::LIGHT_PARAM_TRANSMITTANCE_BIAS]; } virtual bool light_get_reverse_cull_face_mode(RID p_light) const override { @@ -594,7 +594,7 @@ public: return light->reverse_cull; } - virtual RS::LightBakeMode light_get_bake_mode(RID p_light) override; + virtual RSE::LightBakeMode light_get_bake_mode(RID p_light) override; virtual uint32_t light_get_max_sdfgi_cascade(RID p_light) override; virtual uint64_t light_get_version(RID p_light) const override; virtual uint32_t light_get_cull_mask(RID p_light) const override; @@ -789,7 +789,7 @@ public: return li->forward_id; } - _FORCE_INLINE_ RS::LightType light_instance_get_type(RID p_light_instance) { + _FORCE_INLINE_ RSE::LightType light_instance_get_type(RID p_light_instance) { LightInstance *li = light_instance_owner.get_or_null(p_light_instance); return li->light_type; } @@ -840,10 +840,10 @@ public: virtual void reflection_probe_initialize(RID p_reflection_probe) override; virtual void reflection_probe_free(RID p_rid) override; - virtual void reflection_probe_set_update_mode(RID p_probe, RS::ReflectionProbeUpdateMode p_mode) override; + virtual void reflection_probe_set_update_mode(RID p_probe, RSE::ReflectionProbeUpdateMode p_mode) override; virtual void reflection_probe_set_intensity(RID p_probe, float p_intensity) override; virtual void reflection_probe_set_blend_distance(RID p_probe, float p_blend_distance) override; - virtual void reflection_probe_set_ambient_mode(RID p_probe, RS::ReflectionProbeAmbientMode p_mode) override; + virtual void reflection_probe_set_ambient_mode(RID p_probe, RSE::ReflectionProbeAmbientMode p_mode) override; virtual void reflection_probe_set_ambient_color(RID p_probe, const Color &p_color) override; virtual void reflection_probe_set_ambient_energy(RID p_probe, float p_energy) override; virtual void reflection_probe_set_max_distance(RID p_probe, float p_distance) override; @@ -860,7 +860,7 @@ public: void reflection_probe_set_baked_exposure(RID p_probe, float p_exposure); virtual AABB reflection_probe_get_aabb(RID p_probe) const override; - virtual RS::ReflectionProbeUpdateMode reflection_probe_get_update_mode(RID p_probe) const override; + virtual RSE::ReflectionProbeUpdateMode reflection_probe_get_update_mode(RID p_probe) const override; virtual uint32_t reflection_probe_get_cull_mask(RID p_probe) const override; virtual uint32_t reflection_probe_get_reflection_mask(RID p_probe) const override; virtual Vector3 reflection_probe_get_size(RID p_probe) const override; @@ -875,7 +875,7 @@ public: float reflection_probe_get_blend_distance(RID p_probe) const; bool reflection_probe_is_interior(RID p_probe) const; bool reflection_probe_is_box_projection(RID p_probe) const; - RS::ReflectionProbeAmbientMode reflection_probe_get_ambient_mode(RID p_probe) const; + RSE::ReflectionProbeAmbientMode reflection_probe_get_ambient_mode(RID p_probe) const; Color reflection_probe_get_ambient_color(RID p_probe) const; float reflection_probe_get_ambient_color_energy(RID p_probe) const; @@ -1013,8 +1013,8 @@ public: Dependency *lightmap_get_dependency(RID p_lightmap) const; virtual void lightmap_set_shadowmask_textures(RID p_lightmap, RID p_shadow) override; - virtual RS::ShadowmaskMode lightmap_get_shadowmask_mode(RID p_lightmap) override; - virtual void lightmap_set_shadowmask_mode(RID p_lightmap, RS::ShadowmaskMode p_mode) override; + virtual RSE::ShadowmaskMode lightmap_get_shadowmask_mode(RID p_lightmap) override; + virtual void lightmap_set_shadowmask_mode(RID p_lightmap, RSE::ShadowmaskMode p_mode) override; virtual float lightmap_get_probe_capture_update_speed() const override { return lightmap_probe_capture_update_speed; diff --git a/servers/rendering/renderer_rd/storage_rd/material_storage.cpp b/servers/rendering/renderer_rd/storage_rd/material_storage.cpp index 87ddff0579..e6a6a100d7 100644 --- a/servers/rendering/renderer_rd/storage_rd/material_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/material_storage.cpp @@ -34,8 +34,9 @@ #include "core/io/resource_loader.h" #include "servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h" #include "servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h" +#include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/storage/variant_converters.h" -#include "texture_storage.h" using namespace RendererRD; @@ -870,7 +871,7 @@ void MaterialStorage::MaterialData::update_textures(const HashMapdetect_roughness_callback && (p_texture_uniforms[i].hint >= ShaderLanguage::ShaderNode::Uniform::HINT_ROUGHNESS_R || p_texture_uniforms[i].hint <= ShaderLanguage::ShaderNode::Uniform::HINT_ROUGHNESS_GRAY)) { //find the normal texture roughness_detect_texture = tex; - roughness_channel = RS::TextureDetectRoughnessChannel(p_texture_uniforms[i].hint - ShaderLanguage::ShaderNode::Uniform::HINT_ROUGHNESS_R); + roughness_channel = RSE::TextureDetectRoughnessChannel(p_texture_uniforms[i].hint - ShaderLanguage::ShaderNode::Uniform::HINT_ROUGHNESS_R); } #endif // TOOLS_ENABLED if (tex->render_target) { @@ -1273,7 +1274,7 @@ void MaterialStorage::TexBlitShaderData::set_code(const String &p_code) { actions.render_mode_values["blend_disabled"] = Pair(&blend_modei, BLEND_MODE_DISABLED); actions.uniforms = &uniforms; - Error err = texture_storage->tex_blit_shader.compiler.compile(RS::SHADER_TEXTURE_BLIT, code, &actions, path, gen_code); + Error err = texture_storage->tex_blit_shader.compiler.compile(RSE::SHADER_TEXTURE_BLIT, code, &actions, path, gen_code); ERR_FAIL_COND_MSG(err != OK, "Shader compilation failed."); if (version.is_null()) { @@ -1425,18 +1426,18 @@ template void MaterialStorage::Samplers::append_uniforms(Vector &p_ template void MaterialStorage::Samplers::append_uniforms(Collection &p_uniforms, int p_first_index) const { // Binding ids are aligned with samplers_inc.glsl. - p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 0, rids[RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST][RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED])); - p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 1, rids[RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR][RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED])); - p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 2, rids[RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS][RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED])); - p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 3, rids[RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS][RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED])); - p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 4, rids[RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC][RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED])); - p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 5, rids[RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC][RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED])); - p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 6, rids[RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST][RS::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED])); - p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 7, rids[RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR][RS::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED])); - p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 8, rids[RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS][RS::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED])); - p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 9, rids[RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS][RS::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED])); - p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 10, rids[RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC][RS::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED])); - p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 11, rids[RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC][RS::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED])); + p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 0, rids[RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST][RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED])); + p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 1, rids[RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR][RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED])); + p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 2, rids[RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS][RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED])); + p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 3, rids[RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS][RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED])); + p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 4, rids[RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC][RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED])); + p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 5, rids[RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC][RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED])); + p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 6, rids[RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST][RSE::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED])); + p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 7, rids[RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR][RSE::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED])); + p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 8, rids[RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS][RSE::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED])); + p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 9, rids[RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS][RSE::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED])); + p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 10, rids[RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC][RSE::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED])); + p_uniforms.push_back(RD::Uniform(RD::UNIFORM_TYPE_SAMPLER, p_first_index + 11, rids[RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC][RSE::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED])); } bool MaterialStorage::Samplers::is_valid() const { @@ -1552,9 +1553,9 @@ int32_t MaterialStorage::_global_shader_uniform_allocate(uint32_t p_elements) { return -1; } -void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS::GlobalShaderParameterType p_type, const Variant &p_value) { +void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RSE::GlobalShaderParameterType p_type, const Variant &p_value) { switch (p_type) { - case RS::GLOBAL_VAR_TYPE_BOOL: { + case RSE::GLOBAL_VAR_TYPE_BOOL: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; bool b = p_value; bv.x = b ? 1.0 : 0.0; @@ -1563,7 +1564,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.w = 0.0; } break; - case RS::GLOBAL_VAR_TYPE_BVEC2: { + case RSE::GLOBAL_VAR_TYPE_BVEC2: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; uint32_t bvec = p_value; bv.x = (bvec & 1) ? 1.0 : 0.0; @@ -1571,7 +1572,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = 0.0; bv.w = 0.0; } break; - case RS::GLOBAL_VAR_TYPE_BVEC3: { + case RSE::GLOBAL_VAR_TYPE_BVEC3: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; uint32_t bvec = p_value; bv.x = (bvec & 1) ? 1.0 : 0.0; @@ -1579,7 +1580,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = (bvec & 4) ? 1.0 : 0.0; bv.w = 0.0; } break; - case RS::GLOBAL_VAR_TYPE_BVEC4: { + case RSE::GLOBAL_VAR_TYPE_BVEC4: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; uint32_t bvec = p_value; bv.x = (bvec & 1) ? 1.0 : 0.0; @@ -1587,7 +1588,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = (bvec & 4) ? 1.0 : 0.0; bv.w = (bvec & 8) ? 1.0 : 0.0; } break; - case RS::GLOBAL_VAR_TYPE_INT: { + case RSE::GLOBAL_VAR_TYPE_INT: { GlobalShaderUniforms::ValueInt &bv = *(GlobalShaderUniforms::ValueInt *)&global_shader_uniforms.buffer_values[p_index]; int32_t v = p_value; bv.x = v; @@ -1595,7 +1596,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = 0; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_IVEC2: { + case RSE::GLOBAL_VAR_TYPE_IVEC2: { GlobalShaderUniforms::ValueInt &bv = *(GlobalShaderUniforms::ValueInt *)&global_shader_uniforms.buffer_values[p_index]; Vector2i v = convert_to_vector(p_value); bv.x = v.x; @@ -1603,7 +1604,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = 0; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_IVEC3: { + case RSE::GLOBAL_VAR_TYPE_IVEC3: { GlobalShaderUniforms::ValueInt &bv = *(GlobalShaderUniforms::ValueInt *)&global_shader_uniforms.buffer_values[p_index]; Vector3i v = convert_to_vector(p_value); bv.x = v.x; @@ -1611,7 +1612,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.z; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_IVEC4: { + case RSE::GLOBAL_VAR_TYPE_IVEC4: { GlobalShaderUniforms::ValueInt &bv = *(GlobalShaderUniforms::ValueInt *)&global_shader_uniforms.buffer_values[p_index]; Vector4i v = convert_to_vector(p_value); bv.x = v.x; @@ -1619,7 +1620,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.z; bv.w = v.w; } break; - case RS::GLOBAL_VAR_TYPE_RECT2I: { + case RSE::GLOBAL_VAR_TYPE_RECT2I: { GlobalShaderUniforms::ValueInt &bv = *(GlobalShaderUniforms::ValueInt *)&global_shader_uniforms.buffer_values[p_index]; Rect2i v = p_value; bv.x = v.position.x; @@ -1627,7 +1628,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.size.x; bv.w = v.size.y; } break; - case RS::GLOBAL_VAR_TYPE_UINT: { + case RSE::GLOBAL_VAR_TYPE_UINT: { GlobalShaderUniforms::ValueUInt &bv = *(GlobalShaderUniforms::ValueUInt *)&global_shader_uniforms.buffer_values[p_index]; uint32_t v = p_value; bv.x = v; @@ -1635,7 +1636,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = 0; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_UVEC2: { + case RSE::GLOBAL_VAR_TYPE_UVEC2: { GlobalShaderUniforms::ValueUInt &bv = *(GlobalShaderUniforms::ValueUInt *)&global_shader_uniforms.buffer_values[p_index]; Vector2i v = convert_to_vector(p_value); bv.x = v.x; @@ -1643,7 +1644,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = 0; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_UVEC3: { + case RSE::GLOBAL_VAR_TYPE_UVEC3: { GlobalShaderUniforms::ValueUInt &bv = *(GlobalShaderUniforms::ValueUInt *)&global_shader_uniforms.buffer_values[p_index]; Vector3i v = convert_to_vector(p_value); bv.x = v.x; @@ -1651,7 +1652,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.z; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_UVEC4: { + case RSE::GLOBAL_VAR_TYPE_UVEC4: { GlobalShaderUniforms::ValueUInt &bv = *(GlobalShaderUniforms::ValueUInt *)&global_shader_uniforms.buffer_values[p_index]; Vector4i v = convert_to_vector(p_value); bv.x = v.x; @@ -1659,7 +1660,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.z; bv.w = v.w; } break; - case RS::GLOBAL_VAR_TYPE_FLOAT: { + case RSE::GLOBAL_VAR_TYPE_FLOAT: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; float v = p_value; bv.x = v; @@ -1667,7 +1668,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = 0; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_VEC2: { + case RSE::GLOBAL_VAR_TYPE_VEC2: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; Vector2 v = convert_to_vector(p_value); bv.x = v.x; @@ -1675,7 +1676,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = 0; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_VEC3: { + case RSE::GLOBAL_VAR_TYPE_VEC3: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; Vector3 v = convert_to_vector(p_value); bv.x = v.x; @@ -1683,7 +1684,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.z; bv.w = 0; } break; - case RS::GLOBAL_VAR_TYPE_VEC4: { + case RSE::GLOBAL_VAR_TYPE_VEC4: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; Vector4 v = convert_to_vector(p_value); bv.x = v.x; @@ -1691,7 +1692,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.z; bv.w = v.w; } break; - case RS::GLOBAL_VAR_TYPE_COLOR: { + case RSE::GLOBAL_VAR_TYPE_COLOR: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; Color v = p_value; bv.x = v.r; @@ -1707,7 +1708,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv_linear.w = v.a; } break; - case RS::GLOBAL_VAR_TYPE_RECT2: { + case RSE::GLOBAL_VAR_TYPE_RECT2: { GlobalShaderUniforms::Value &bv = global_shader_uniforms.buffer_values[p_index]; Rect2 v = p_value; bv.x = v.position.x; @@ -1715,7 +1716,7 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv.z = v.size.x; bv.w = v.size.y; } break; - case RS::GLOBAL_VAR_TYPE_MAT2: { + case RSE::GLOBAL_VAR_TYPE_MAT2: { GlobalShaderUniforms::Value *bv = &global_shader_uniforms.buffer_values[p_index]; Vector m2 = p_value; if (m2.size() < 4) { @@ -1732,25 +1733,25 @@ void MaterialStorage::_global_shader_uniform_store_in_buffer(int32_t p_index, RS bv[1].w = 0; } break; - case RS::GLOBAL_VAR_TYPE_MAT3: { + case RSE::GLOBAL_VAR_TYPE_MAT3: { GlobalShaderUniforms::Value *bv = &global_shader_uniforms.buffer_values[p_index]; Basis v = p_value; convert_item_std140(v, &bv->x); } break; - case RS::GLOBAL_VAR_TYPE_MAT4: { + case RSE::GLOBAL_VAR_TYPE_MAT4: { GlobalShaderUniforms::Value *bv = &global_shader_uniforms.buffer_values[p_index]; Projection m = p_value; convert_item_std140(m, &bv->x); } break; - case RS::GLOBAL_VAR_TYPE_TRANSFORM_2D: { + case RSE::GLOBAL_VAR_TYPE_TRANSFORM_2D: { GlobalShaderUniforms::Value *bv = &global_shader_uniforms.buffer_values[p_index]; Transform2D v = p_value; convert_item_std140(v, &bv->x); } break; - case RS::GLOBAL_VAR_TYPE_TRANSFORM: { + case RSE::GLOBAL_VAR_TYPE_TRANSFORM: { GlobalShaderUniforms::Value *bv = &global_shader_uniforms.buffer_values[p_index]; Transform3D v = p_value; convert_item_std140(v, &bv->x); @@ -1778,27 +1779,27 @@ void MaterialStorage::_global_shader_uniform_mark_buffer_dirty(int32_t p_index, } } -void MaterialStorage::global_shader_parameter_add(const StringName &p_name, RS::GlobalShaderParameterType p_type, const Variant &p_value) { +void MaterialStorage::global_shader_parameter_add(const StringName &p_name, RSE::GlobalShaderParameterType p_type, const Variant &p_value) { ERR_FAIL_COND(global_shader_uniforms.variables.has(p_name)); GlobalShaderUniforms::Variable gv; gv.type = p_type; gv.value = p_value; gv.buffer_index = -1; - if (p_type >= RS::GLOBAL_VAR_TYPE_SAMPLER2D) { + if (p_type >= RSE::GLOBAL_VAR_TYPE_SAMPLER2D) { //is texture global_shader_uniforms.must_update_texture_materials = true; //normally there are none } else { gv.buffer_elements = 1; - if (p_type == RS::GLOBAL_VAR_TYPE_COLOR || p_type == RS::GLOBAL_VAR_TYPE_MAT2) { + if (p_type == RSE::GLOBAL_VAR_TYPE_COLOR || p_type == RSE::GLOBAL_VAR_TYPE_MAT2) { //color needs to elements to store srgb and linear gv.buffer_elements = 2; } - if (p_type == RS::GLOBAL_VAR_TYPE_MAT3 || p_type == RS::GLOBAL_VAR_TYPE_TRANSFORM_2D) { + if (p_type == RSE::GLOBAL_VAR_TYPE_MAT3 || p_type == RSE::GLOBAL_VAR_TYPE_TRANSFORM_2D) { //color needs to elements to store srgb and linear gv.buffer_elements = 3; } - if (p_type == RS::GLOBAL_VAR_TYPE_MAT4 || p_type == RS::GLOBAL_VAR_TYPE_TRANSFORM) { + if (p_type == RSE::GLOBAL_VAR_TYPE_MAT4 || p_type == RSE::GLOBAL_VAR_TYPE_TRANSFORM) { //color needs to elements to store srgb and linear gv.buffer_elements = 4; } @@ -1909,17 +1910,17 @@ Variant MaterialStorage::global_shader_parameter_get(const StringName &p_name) c return global_shader_uniforms.variables[p_name].value; } -RS::GlobalShaderParameterType MaterialStorage::global_shader_parameter_get_type_internal(const StringName &p_name) const { +RSE::GlobalShaderParameterType MaterialStorage::global_shader_parameter_get_type_internal(const StringName &p_name) const { if (!global_shader_uniforms.variables.has(p_name)) { - return RS::GLOBAL_VAR_TYPE_MAX; + return RSE::GLOBAL_VAR_TYPE_MAX; } return global_shader_uniforms.variables[p_name].type; } -RS::GlobalShaderParameterType MaterialStorage::global_shader_parameter_get_type(const StringName &p_name) const { +RSE::GlobalShaderParameterType MaterialStorage::global_shader_parameter_get_type(const StringName &p_name) const { if (!Engine::get_singleton()->is_editor_hint()) { - ERR_FAIL_V_MSG(RS::GLOBAL_VAR_TYPE_MAX, "This function should never be used outside the editor, it can severely damage performance."); + ERR_FAIL_V_MSG(RSE::GLOBAL_VAR_TYPE_MAX, "This function should never be used outside the editor, it can severely damage performance."); } return global_shader_parameter_get_type_internal(p_name); @@ -1939,7 +1940,7 @@ void MaterialStorage::global_shader_parameters_load_settings(bool p_load_texture String type = d["type"]; - static const char *global_var_type_names[RS::GLOBAL_VAR_TYPE_MAX] = { + static const char *global_var_type_names[RSE::GLOBAL_VAR_TYPE_MAX] = { "bool", "bvec2", "bvec3", @@ -1971,20 +1972,20 @@ void MaterialStorage::global_shader_parameters_load_settings(bool p_load_texture "samplerExternalOES", }; - RS::GlobalShaderParameterType gvtype = RS::GLOBAL_VAR_TYPE_MAX; + RSE::GlobalShaderParameterType gvtype = RSE::GLOBAL_VAR_TYPE_MAX; - for (int i = 0; i < RS::GLOBAL_VAR_TYPE_MAX; i++) { + for (int i = 0; i < RSE::GLOBAL_VAR_TYPE_MAX; i++) { if (global_var_type_names[i] == type) { - gvtype = RS::GlobalShaderParameterType(i); + gvtype = RSE::GlobalShaderParameterType(i); break; } } - ERR_CONTINUE(gvtype == RS::GLOBAL_VAR_TYPE_MAX); //type invalid + ERR_CONTINUE(gvtype == RSE::GLOBAL_VAR_TYPE_MAX); //type invalid Variant value = d["value"]; - if (gvtype >= RS::GLOBAL_VAR_TYPE_SAMPLER2D) { + if (gvtype >= RSE::GLOBAL_VAR_TYPE_SAMPLER2D) { String path = value; // Don't load the textures, but still add the parameter so shaders compile correctly while loading. if (!p_load_textures || path.is_empty()) { @@ -2586,22 +2587,22 @@ bool MaterialStorage::material_casts_shadows(RID p_material) { return true; //by default everything casts shadows } -RS::CullMode RendererRD::MaterialStorage::material_get_cull_mode(RID p_material) const { +RSE::CullMode RendererRD::MaterialStorage::material_get_cull_mode(RID p_material) const { Material *material = material_owner.get_or_null(p_material); - ERR_FAIL_NULL_V(material, RS::CULL_MODE_DISABLED); - ERR_FAIL_NULL_V(material->shader, RS::CULL_MODE_DISABLED); + ERR_FAIL_NULL_V(material, RSE::CULL_MODE_DISABLED); + ERR_FAIL_NULL_V(material->shader, RSE::CULL_MODE_DISABLED); if (material->shader->type == ShaderType::SHADER_TYPE_3D && material->shader->data) { RendererSceneRenderImplementation::SceneShaderForwardClustered::ShaderData *sd_clustered = dynamic_cast(material->shader->data); if (sd_clustered) { - return (RS::CullMode)sd_clustered->cull_mode; + return (RSE::CullMode)sd_clustered->cull_mode; } RendererSceneRenderImplementation::SceneShaderForwardMobile::ShaderData *sd_mobile = dynamic_cast(material->shader->data); if (sd_mobile) { - return (RS::CullMode)sd_mobile->cull_mode; + return (RSE::CullMode)sd_mobile->cull_mode; } } - return RS::CULL_MODE_DISABLED; + return RSE::CULL_MODE_DISABLED; } void MaterialStorage::material_get_instance_shader_parameters(RID p_material, List *r_parameters) { @@ -2625,7 +2626,7 @@ void MaterialStorage::material_update_dependency(RID p_material, DependencyTrack } } -MaterialStorage::Samplers MaterialStorage::samplers_rd_allocate(float p_mipmap_bias, RS::ViewportAnisotropicFiltering anisotropic_filtering_level) const { +MaterialStorage::Samplers MaterialStorage::samplers_rd_allocate(float p_mipmap_bias, RSE::ViewportAnisotropicFiltering anisotropic_filtering_level) const { Samplers samplers; samplers.mipmap_bias = p_mipmap_bias; samplers.anisotropic_filtering_level = (int)anisotropic_filtering_level; @@ -2634,34 +2635,34 @@ MaterialStorage::Samplers MaterialStorage::samplers_rd_allocate(float p_mipmap_b RD::SamplerFilter mip_filter = samplers.use_nearest_mipmap_filter ? RD::SAMPLER_FILTER_NEAREST : RD::SAMPLER_FILTER_LINEAR; float anisotropy_max = float(1 << samplers.anisotropic_filtering_level); - for (int i = 1; i < RS::CANVAS_ITEM_TEXTURE_FILTER_MAX; i++) { - for (int j = 1; j < RS::CANVAS_ITEM_TEXTURE_REPEAT_MAX; j++) { + for (int i = 1; i < RSE::CANVAS_ITEM_TEXTURE_FILTER_MAX; i++) { + for (int j = 1; j < RSE::CANVAS_ITEM_TEXTURE_REPEAT_MAX; j++) { RD::SamplerState sampler_state; switch (i) { - case RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST: { + case RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST: { sampler_state.mag_filter = RD::SAMPLER_FILTER_NEAREST; sampler_state.min_filter = RD::SAMPLER_FILTER_NEAREST; sampler_state.max_lod = 0; } break; - case RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR: { + case RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR: { sampler_state.mag_filter = RD::SAMPLER_FILTER_LINEAR; sampler_state.min_filter = RD::SAMPLER_FILTER_LINEAR; sampler_state.max_lod = 0; } break; - case RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS: { + case RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS: { sampler_state.mag_filter = RD::SAMPLER_FILTER_NEAREST; sampler_state.min_filter = RD::SAMPLER_FILTER_NEAREST; sampler_state.mip_filter = mip_filter; sampler_state.lod_bias = samplers.mipmap_bias; } break; - case RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS: { + case RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS: { sampler_state.mag_filter = RD::SAMPLER_FILTER_LINEAR; sampler_state.min_filter = RD::SAMPLER_FILTER_LINEAR; sampler_state.mip_filter = mip_filter; sampler_state.lod_bias = samplers.mipmap_bias; } break; - case RS::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC: { + case RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC: { sampler_state.mag_filter = RD::SAMPLER_FILTER_NEAREST; sampler_state.min_filter = RD::SAMPLER_FILTER_NEAREST; sampler_state.mip_filter = mip_filter; @@ -2669,7 +2670,7 @@ MaterialStorage::Samplers MaterialStorage::samplers_rd_allocate(float p_mipmap_b sampler_state.use_anisotropy = true; sampler_state.anisotropy_max = anisotropy_max; } break; - case RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC: { + case RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC: { sampler_state.mag_filter = RD::SAMPLER_FILTER_LINEAR; sampler_state.min_filter = RD::SAMPLER_FILTER_LINEAR; sampler_state.mip_filter = mip_filter; @@ -2682,18 +2683,18 @@ MaterialStorage::Samplers MaterialStorage::samplers_rd_allocate(float p_mipmap_b } } switch (j) { - case RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED: { + case RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED: { sampler_state.repeat_u = RD::SAMPLER_REPEAT_MODE_CLAMP_TO_EDGE; sampler_state.repeat_v = RD::SAMPLER_REPEAT_MODE_CLAMP_TO_EDGE; sampler_state.repeat_w = RD::SAMPLER_REPEAT_MODE_CLAMP_TO_EDGE; } break; - case RS::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED: { + case RSE::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED: { sampler_state.repeat_u = RD::SAMPLER_REPEAT_MODE_REPEAT; sampler_state.repeat_v = RD::SAMPLER_REPEAT_MODE_REPEAT; sampler_state.repeat_w = RD::SAMPLER_REPEAT_MODE_REPEAT; } break; - case RS::CANVAS_ITEM_TEXTURE_REPEAT_MIRROR: { + case RSE::CANVAS_ITEM_TEXTURE_REPEAT_MIRROR: { sampler_state.repeat_u = RD::SAMPLER_REPEAT_MODE_MIRRORED_REPEAT; sampler_state.repeat_v = RD::SAMPLER_REPEAT_MODE_MIRRORED_REPEAT; sampler_state.repeat_w = RD::SAMPLER_REPEAT_MODE_MIRRORED_REPEAT; @@ -2710,8 +2711,8 @@ MaterialStorage::Samplers MaterialStorage::samplers_rd_allocate(float p_mipmap_b } void MaterialStorage::samplers_rd_free(Samplers &p_samplers) const { - for (int i = 1; i < RS::CANVAS_ITEM_TEXTURE_FILTER_MAX; i++) { - for (int j = 1; j < RS::CANVAS_ITEM_TEXTURE_REPEAT_MAX; j++) { + for (int i = 1; i < RSE::CANVAS_ITEM_TEXTURE_FILTER_MAX; i++) { + for (int j = 1; j < RSE::CANVAS_ITEM_TEXTURE_REPEAT_MAX; j++) { if (p_samplers.rids[i][j].is_valid()) { RD::get_singleton()->free_rid(p_samplers.rids[i][j]); p_samplers.rids[i][j] = RID(); diff --git a/servers/rendering/renderer_rd/storage_rd/material_storage.h b/servers/rendering/renderer_rd/storage_rd/material_storage.h index 4ccff36955..2a3b83ccce 100644 --- a/servers/rendering/renderer_rd/storage_rd/material_storage.h +++ b/servers/rendering/renderer_rd/storage_rd/material_storage.h @@ -121,12 +121,12 @@ public: }; struct Samplers { - RID rids[RS::CANVAS_ITEM_TEXTURE_FILTER_MAX][RS::CANVAS_ITEM_TEXTURE_REPEAT_MAX]; + RID rids[RSE::CANVAS_ITEM_TEXTURE_FILTER_MAX][RSE::CANVAS_ITEM_TEXTURE_REPEAT_MAX]; float mipmap_bias = 0.0f; bool use_nearest_mipmap_filter = false; int anisotropic_filtering_level = 2; - _FORCE_INLINE_ RID get_sampler(RS::CanvasItemTextureFilter p_filter, RS::CanvasItemTextureRepeat p_repeat) const { + _FORCE_INLINE_ RID get_sampler(RSE::CanvasItemTextureFilter p_filter, RSE::CanvasItemTextureRepeat p_repeat) const { return rids[p_filter][p_repeat]; } @@ -204,7 +204,7 @@ private: struct Variable { HashSet texture_materials; // materials using this - RS::GlobalShaderParameterType type; + RSE::GlobalShaderParameterType type; Variant value; Variant override; int32_t buffer_index; //for vectors @@ -256,7 +256,7 @@ private: } global_shader_uniforms; int32_t _global_shader_uniform_allocate(uint32_t p_elements); - void _global_shader_uniform_store_in_buffer(int32_t p_index, RS::GlobalShaderParameterType p_type, const Variant &p_value); + void _global_shader_uniform_store_in_buffer(int32_t p_index, RSE::GlobalShaderParameterType p_type, const Variant &p_value); void _global_shader_uniform_mark_buffer_dirty(int32_t p_index, int32_t p_elements); /* SHADER API */ @@ -416,10 +416,10 @@ public: /* Samplers */ - Samplers samplers_rd_allocate(float p_mipmap_bias = 0.0f, RS::ViewportAnisotropicFiltering anisotropic_filtering_level = RS::ViewportAnisotropicFiltering::VIEWPORT_ANISOTROPY_4X) const; + Samplers samplers_rd_allocate(float p_mipmap_bias = 0.0f, RSE::ViewportAnisotropicFiltering anisotropic_filtering_level = RSE::ViewportAnisotropicFiltering::VIEWPORT_ANISOTROPY_4X) const; void samplers_rd_free(Samplers &p_samplers) const; - _FORCE_INLINE_ RID sampler_rd_get_default(RS::CanvasItemTextureFilter p_filter, RS::CanvasItemTextureRepeat p_repeat) { + _FORCE_INLINE_ RID sampler_rd_get_default(RSE::CanvasItemTextureFilter p_filter, RSE::CanvasItemTextureRepeat p_repeat) { return default_samplers.get_sampler(p_filter, p_repeat); } @@ -435,15 +435,15 @@ public: void _update_global_shader_uniforms(); - virtual void global_shader_parameter_add(const StringName &p_name, RS::GlobalShaderParameterType p_type, const Variant &p_value) override; + virtual void global_shader_parameter_add(const StringName &p_name, RSE::GlobalShaderParameterType p_type, const Variant &p_value) override; virtual void global_shader_parameter_remove(const StringName &p_name) override; virtual Vector global_shader_parameter_get_list() const override; virtual void global_shader_parameter_set(const StringName &p_name, const Variant &p_value) override; virtual void global_shader_parameter_set_override(const StringName &p_name, const Variant &p_value) override; virtual Variant global_shader_parameter_get(const StringName &p_name) const override; - virtual RS::GlobalShaderParameterType global_shader_parameter_get_type(const StringName &p_name) const override; - RS::GlobalShaderParameterType global_shader_parameter_get_type_internal(const StringName &p_name) const; + virtual RSE::GlobalShaderParameterType global_shader_parameter_get_type(const StringName &p_name) const override; + RSE::GlobalShaderParameterType global_shader_parameter_get_type_internal(const StringName &p_name) const; virtual void global_shader_parameters_load_settings(bool p_load_textures = true) override; virtual void global_shader_parameters_clear() override; @@ -500,7 +500,7 @@ public: virtual bool material_is_animated(RID p_material) override; virtual bool material_casts_shadows(RID p_material) override; - virtual RS::CullMode material_get_cull_mode(RID p_material) const override; + virtual RSE::CullMode material_get_cull_mode(RID p_material) const override; virtual void material_get_instance_shader_parameters(RID p_material, List *r_parameters) override; diff --git a/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp b/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp index 189262f4e2..2ea8eafbef 100644 --- a/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp @@ -30,6 +30,8 @@ #include "mesh_storage.h" +#include "servers/rendering/rendering_server.h" + using namespace RendererRD; MeshStorage *MeshStorage::singleton = nullptr; @@ -117,7 +119,7 @@ MeshStorage::MeshStorage() { mesh_default_rd_buffers[DEFAULT_RD_BUFFER_TEX_UV2] = RD::get_singleton()->vertex_buffer_create(buffer.size(), buffer); } - for (int i = 0; i < RS::ARRAY_CUSTOM_COUNT; i++) { + for (int i = 0; i < RSE::ARRAY_CUSTOM_COUNT; i++) { buffer.resize(sizeof(float) * 4); { uint8_t *w = buffer.ptrw(); @@ -260,7 +262,7 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) Mesh *mesh = mesh_owner.get_or_null(p_mesh); ERR_FAIL_NULL(mesh); - ERR_FAIL_COND(mesh->surface_count == RS::MAX_MESH_SURFACES); + ERR_FAIL_COND(mesh->surface_count == RSE::MAX_MESH_SURFACES); #ifdef DEBUG_ENABLED //do a validation, to catch errors first @@ -269,60 +271,60 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) uint32_t attrib_stride = 0; uint32_t skin_stride = 0; - for (int i = 0; i < RS::ARRAY_WEIGHTS; i++) { + for (int i = 0; i < RSE::ARRAY_WEIGHTS; i++) { if ((p_surface.format & (1ULL << i))) { switch (i) { - case RS::ARRAY_VERTEX: { - if ((p_surface.format & RS::ARRAY_FLAG_USE_2D_VERTICES) || (p_surface.format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { + case RSE::ARRAY_VERTEX: { + if ((p_surface.format & RSE::ARRAY_FLAG_USE_2D_VERTICES) || (p_surface.format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { stride += sizeof(float) * 2; } else { stride += sizeof(float) * 3; } } break; - case RS::ARRAY_NORMAL: { + case RSE::ARRAY_NORMAL: { stride += sizeof(uint16_t) * 2; } break; - case RS::ARRAY_TANGENT: { - if (!(p_surface.format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { + case RSE::ARRAY_TANGENT: { + if (!(p_surface.format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { stride += sizeof(uint16_t) * 2; } } break; - case RS::ARRAY_COLOR: { + case RSE::ARRAY_COLOR: { attrib_stride += sizeof(uint32_t); } break; - case RS::ARRAY_TEX_UV: { - if (p_surface.format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + case RSE::ARRAY_TEX_UV: { + if (p_surface.format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { attrib_stride += sizeof(uint16_t) * 2; } else { attrib_stride += sizeof(float) * 2; } } break; - case RS::ARRAY_TEX_UV2: { - if (p_surface.format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + case RSE::ARRAY_TEX_UV2: { + if (p_surface.format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { attrib_stride += sizeof(uint16_t) * 2; } else { attrib_stride += sizeof(float) * 2; } } break; - case RS::ARRAY_CUSTOM0: - case RS::ARRAY_CUSTOM1: - case RS::ARRAY_CUSTOM2: - case RS::ARRAY_CUSTOM3: { - int idx = i - RS::ARRAY_CUSTOM0; - const uint32_t fmt_shift[RS::ARRAY_CUSTOM_COUNT] = { RS::ARRAY_FORMAT_CUSTOM0_SHIFT, RS::ARRAY_FORMAT_CUSTOM1_SHIFT, RS::ARRAY_FORMAT_CUSTOM2_SHIFT, RS::ARRAY_FORMAT_CUSTOM3_SHIFT }; - uint32_t fmt = (p_surface.format >> fmt_shift[idx]) & RS::ARRAY_FORMAT_CUSTOM_MASK; - const uint32_t fmtsize[RS::ARRAY_CUSTOM_MAX] = { 4, 4, 4, 8, 4, 8, 12, 16 }; + case RSE::ARRAY_CUSTOM0: + case RSE::ARRAY_CUSTOM1: + case RSE::ARRAY_CUSTOM2: + case RSE::ARRAY_CUSTOM3: { + int idx = i - RSE::ARRAY_CUSTOM0; + const uint32_t fmt_shift[RSE::ARRAY_CUSTOM_COUNT] = { RSE::ARRAY_FORMAT_CUSTOM0_SHIFT, RSE::ARRAY_FORMAT_CUSTOM1_SHIFT, RSE::ARRAY_FORMAT_CUSTOM2_SHIFT, RSE::ARRAY_FORMAT_CUSTOM3_SHIFT }; + uint32_t fmt = (p_surface.format >> fmt_shift[idx]) & RSE::ARRAY_FORMAT_CUSTOM_MASK; + const uint32_t fmtsize[RSE::ARRAY_CUSTOM_MAX] = { 4, 4, 4, 8, 4, 8, 12, 16 }; attrib_stride += fmtsize[fmt]; } break; - case RS::ARRAY_WEIGHTS: - case RS::ARRAY_BONES: { + case RSE::ARRAY_WEIGHTS: + case RSE::ARRAY_BONES: { //uses a separate array - bool use_8 = p_surface.format & RS::ARRAY_FLAG_USE_8_BONE_WEIGHTS; + bool use_8 = p_surface.format & RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS; skin_stride += sizeof(int16_t) * (use_8 ? 16 : 8); } break; } @@ -339,7 +341,7 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) int expected_attrib_size = attrib_stride * p_surface.vertex_count; ERR_FAIL_COND_MSG(expected_attrib_size != p_surface.attribute_data.size(), "Size of attribute data provided (" + itos(p_surface.attribute_data.size()) + ") does not match expected (" + itos(expected_attrib_size) + ")"); - if ((p_surface.format & RS::ARRAY_FORMAT_WEIGHTS) && (p_surface.format & RS::ARRAY_FORMAT_BONES)) { + if ((p_surface.format & RSE::ARRAY_FORMAT_WEIGHTS) && (p_surface.format & RSE::ARRAY_FORMAT_BONES)) { expected_size = skin_stride * p_surface.vertex_count; ERR_FAIL_COND_MSG(expected_size != p_surface.skin_data.size(), "Size of skin data provided (" + itos(p_surface.skin_data.size()) + ") does not match expected (" + itos(expected_size) + ")"); } @@ -347,21 +349,21 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) #endif - uint64_t surface_version = p_surface.format & (uint64_t(RS::ARRAY_FLAG_FORMAT_VERSION_MASK) << RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT); + uint64_t surface_version = p_surface.format & (uint64_t(RSE::ARRAY_FLAG_FORMAT_VERSION_MASK) << RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT); RS::SurfaceData new_surface = p_surface; #ifdef DISABLE_DEPRECATED - ERR_FAIL_COND_MSG(surface_version != RS::ARRAY_FLAG_FORMAT_CURRENT_VERSION, "Surface version provided (" + itos(int(surface_version >> RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT)) + ") does not match current version (" + itos(RS::ARRAY_FLAG_FORMAT_CURRENT_VERSION >> RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT) + ")"); + ERR_FAIL_COND_MSG(surface_version != RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION, "Surface version provided (" + itos(int(surface_version >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT)) + ") does not match current version (" + itos(RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT) + ")"); #else - if (surface_version != uint64_t(RS::ARRAY_FLAG_FORMAT_CURRENT_VERSION)) { + if (surface_version != uint64_t(RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION)) { RS::get_singleton()->fix_surface_compatibility(new_surface); - surface_version = new_surface.format & (RS::ARRAY_FLAG_FORMAT_VERSION_MASK << RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT); - ERR_FAIL_COND_MSG(surface_version != RS::ARRAY_FLAG_FORMAT_CURRENT_VERSION, + surface_version = new_surface.format & (RSE::ARRAY_FLAG_FORMAT_VERSION_MASK << RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT); + ERR_FAIL_COND_MSG(surface_version != RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION, vformat("Surface version provided (%d) does not match current version (%d).", - (surface_version >> RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RS::ARRAY_FLAG_FORMAT_VERSION_MASK, - (RS::ARRAY_FLAG_FORMAT_CURRENT_VERSION >> RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RS::ARRAY_FLAG_FORMAT_VERSION_MASK)); + (surface_version >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RSE::ARRAY_FLAG_FORMAT_VERSION_MASK, + (RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RSE::ARRAY_FLAG_FORMAT_VERSION_MASK)); } #endif @@ -380,7 +382,7 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) // This allows us to avoid adding a shader permutation, and avoid passing dummy tangents. Since the stride is kept small // this should still be a net win for bandwidth. // If we do this, then the last normal will read past the end of the array. So we need to pad the array with dummy data. - if (!(new_surface.format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) && (new_surface.format & RS::ARRAY_FORMAT_NORMAL) && !(new_surface.format & RS::ARRAY_FORMAT_TANGENT)) { + if (!(new_surface.format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) && (new_surface.format & RSE::ARRAY_FORMAT_NORMAL) && !(new_surface.format & RSE::ARRAY_FORMAT_TANGENT)) { // Unfortunately, we need to copy the buffer, which is fine as doing a resize triggers a CoW anyway. Vector new_vertex_data; new_vertex_data.resize_initialized(new_surface.vertex_data.size() + sizeof(uint16_t) * 2); @@ -404,7 +406,7 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) s->vertex_count = new_surface.vertex_count; - if (new_surface.format & RS::ARRAY_FORMAT_BONES) { + if (new_surface.format & RSE::ARRAY_FORMAT_BONES) { mesh->has_bone_weights = true; } @@ -550,7 +552,7 @@ int MeshStorage::mesh_get_blend_shape_count(RID p_mesh) const { return mesh->blend_shape_count; } -void MeshStorage::mesh_set_blend_shape_mode(RID p_mesh, RS::BlendShapeMode p_mode) { +void MeshStorage::mesh_set_blend_shape_mode(RID p_mesh, RSE::BlendShapeMode p_mode) { Mesh *mesh = mesh_owner.get_or_null(p_mesh); ERR_FAIL_NULL(mesh); ERR_FAIL_INDEX((int)p_mode, 2); @@ -558,9 +560,9 @@ void MeshStorage::mesh_set_blend_shape_mode(RID p_mesh, RS::BlendShapeMode p_mod mesh->blend_shape_mode = p_mode; } -RS::BlendShapeMode MeshStorage::mesh_get_blend_shape_mode(RID p_mesh) const { +RSE::BlendShapeMode MeshStorage::mesh_get_blend_shape_mode(RID p_mesh) const { Mesh *mesh = mesh_owner.get_or_null(p_mesh); - ERR_FAIL_NULL_V(mesh, RS::BLEND_SHAPE_MODE_NORMALIZED); + ERR_FAIL_NULL_V(mesh, RSE::BLEND_SHAPE_MODE_NORMALIZED); return mesh->blend_shape_mode; } @@ -646,7 +648,7 @@ RS::SurfaceData MeshStorage::mesh_get_surface(RID p_mesh, int p_surface) const { if (s.vertex_buffer.is_valid()) { sd.vertex_data = RD::get_singleton()->buffer_get_data(s.vertex_buffer); // When using an uncompressed buffer with normals, but without tangents, we have to trim the padding. - if (!(s.format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) && (s.format & RS::ARRAY_FORMAT_NORMAL) && !(s.format & RS::ARRAY_FORMAT_TANGENT)) { + if (!(s.format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) && (s.format & RSE::ARRAY_FORMAT_NORMAL) && !(s.format & RSE::ARRAY_FORMAT_TANGENT)) { sd.vertex_data.resize(sd.vertex_data.size() - sizeof(uint16_t) * 2); } } @@ -722,7 +724,7 @@ AABB MeshStorage::mesh_get_aabb(RID p_mesh, RID p_skeleton) { for (uint32_t i = 0; i < mesh->surface_count; i++) { AABB laabb; const Mesh::Surface &surface = *mesh->surfaces[i]; - if ((surface.format & RS::ARRAY_FORMAT_BONES) && surface.bone_aabbs.size()) { + if ((surface.format & RSE::ARRAY_FORMAT_BONES) && surface.bone_aabbs.size()) { int bs = surface.bone_aabbs.size(); const AABB *skbones = surface.bone_aabbs.ptr(); @@ -912,7 +914,7 @@ void MeshStorage::mesh_surface_remove(RID p_mesh, int p_surface) { if (mesh->has_bone_weights) { mesh->has_bone_weights = false; for (uint32_t i = 0; i < mesh->surface_count; i++) { - if (mesh->surfaces[i]->format & RS::ARRAY_FORMAT_BONES) { + if (mesh->surfaces[i]->format & RSE::ARRAY_FORMAT_BONES) { mesh->has_bone_weights = true; break; } @@ -1048,7 +1050,7 @@ void MeshStorage::_mesh_instance_add_surface(MeshInstance *mi, Mesh *mesh, uint3 } MeshInstance::Surface s; - if ((mesh->blend_shape_count > 0 || (mesh->surfaces[p_surface]->format & RS::ARRAY_FORMAT_BONES)) && mesh->surfaces[p_surface]->vertex_buffer_size > 0) { + if ((mesh->blend_shape_count > 0 || (mesh->surfaces[p_surface]->format & RSE::ARRAY_FORMAT_BONES)) && mesh->surfaces[p_surface]->vertex_buffer_size > 0) { _mesh_instance_add_surface_buffer(mi, mesh, &s, p_surface, 0); } @@ -1194,7 +1196,7 @@ void MeshStorage::update_mesh_instances() { continue; } - bool array_is_2d = mi->mesh->surfaces[i]->format & RS::ARRAY_FLAG_USE_2D_VERTICES; + bool array_is_2d = mi->mesh->surfaces[i]->format & RSE::ARRAY_FLAG_USE_2D_VERTICES; RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, skeleton_shader.pipeline[array_is_2d ? SkeletonShader::SHADER_MODE_2D : SkeletonShader::SHADER_MODE_3D]); @@ -1208,9 +1210,9 @@ void MeshStorage::update_mesh_instances() { SkeletonShader::PushConstant push_constant; - push_constant.has_normal = mi->mesh->surfaces[i]->format & RS::ARRAY_FORMAT_NORMAL; - push_constant.has_tangent = mi->mesh->surfaces[i]->format & RS::ARRAY_FORMAT_TANGENT; - push_constant.has_skeleton = sk != nullptr && sk->use_2d == array_is_2d && (mi->mesh->surfaces[i]->format & RS::ARRAY_FORMAT_BONES); + push_constant.has_normal = mi->mesh->surfaces[i]->format & RSE::ARRAY_FORMAT_NORMAL; + push_constant.has_tangent = mi->mesh->surfaces[i]->format & RSE::ARRAY_FORMAT_TANGENT; + push_constant.has_skeleton = sk != nullptr && sk->use_2d == array_is_2d && (mi->mesh->surfaces[i]->format & RSE::ARRAY_FORMAT_BONES); push_constant.has_blend_shape = mi->mesh->blend_shape_count > 0; push_constant.normal_tangent_stride = (push_constant.has_normal ? 1 : 0) + (push_constant.has_tangent ? 1 : 0); @@ -1218,7 +1220,7 @@ void MeshStorage::update_mesh_instances() { push_constant.vertex_count = mi->mesh->surfaces[i]->vertex_count; push_constant.vertex_stride = ((mi->mesh->surfaces[i]->vertex_buffer_size / mi->mesh->surfaces[i]->vertex_count) / 4) - push_constant.normal_tangent_stride; push_constant.skin_stride = (mi->mesh->surfaces[i]->skin_buffer_size / mi->mesh->surfaces[i]->vertex_count) / 4; - push_constant.skin_weight_offset = (mi->mesh->surfaces[i]->format & RS::ARRAY_FLAG_USE_8_BONE_WEIGHTS) ? 4 : 2; + push_constant.skin_weight_offset = (mi->mesh->surfaces[i]->format & RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS) ? 4 : 2; Transform2D transform = Transform2D(); if (sk && sk->use_2d) { @@ -1240,7 +1242,7 @@ void MeshStorage::update_mesh_instances() { push_constant.inverse_transform_offset[1] = inverse_transform.columns[2][1]; push_constant.blend_shape_count = mi->mesh->blend_shape_count; - push_constant.normalized_blend_shapes = mi->mesh->blend_shape_mode == RS::BLEND_SHAPE_MODE_NORMALIZED; + push_constant.normalized_blend_shapes = mi->mesh->blend_shape_mode == RSE::BLEND_SHAPE_MODE_NORMALIZED; push_constant.pad1 = 0; RD::get_singleton()->compute_list_set_push_constant(compute_list, &push_constant, sizeof(SkeletonShader::PushConstant)); @@ -1267,31 +1269,31 @@ RD::VertexFormatID MeshStorage::_mesh_surface_generate_vertex_format(uint64_t p_ r_position_stride = 0; - for (int i = 0; i < RS::ARRAY_INDEX; i++) { + for (int i = 0; i < RSE::ARRAY_INDEX; i++) { RD::VertexAttribute vd; vd.location = i; if (!(p_surface_format & (1ULL << i))) { vd.stride = 0; switch (i) { - case RS::ARRAY_VERTEX: - case RS::ARRAY_NORMAL: + case RSE::ARRAY_VERTEX: + case RSE::ARRAY_NORMAL: vd.format = RD::DATA_FORMAT_R32G32B32_SFLOAT; break; - case RS::ARRAY_TEX_UV: - case RS::ARRAY_TEX_UV2: + case RSE::ARRAY_TEX_UV: + case RSE::ARRAY_TEX_UV2: vd.format = RD::DATA_FORMAT_R32G32_SFLOAT; break; - case RS::ARRAY_BONES: + case RSE::ARRAY_BONES: vd.format = RD::DATA_FORMAT_R32G32B32A32_UINT; break; - case RS::ARRAY_TANGENT: - case RS::ARRAY_COLOR: - case RS::ARRAY_CUSTOM0: - case RS::ARRAY_CUSTOM1: - case RS::ARRAY_CUSTOM2: - case RS::ARRAY_CUSTOM3: - case RS::ARRAY_WEIGHTS: + case RSE::ARRAY_TANGENT: + case RSE::ARRAY_COLOR: + case RSE::ARRAY_CUSTOM0: + case RSE::ARRAY_CUSTOM1: + case RSE::ARRAY_CUSTOM2: + case RSE::ARRAY_CUSTOM3: + case RSE::ARRAY_WEIGHTS: vd.format = RD::DATA_FORMAT_R32G32B32A32_SFLOAT; break; default: @@ -1303,14 +1305,14 @@ RD::VertexFormatID MeshStorage::_mesh_surface_generate_vertex_format(uint64_t p_ vd.stride = 1; switch (i) { - case RS::ARRAY_VERTEX: { + case RSE::ARRAY_VERTEX: { vd.offset = r_position_stride; - if (p_surface_format & RS::ARRAY_FLAG_USE_2D_VERTICES) { + if (p_surface_format & RSE::ARRAY_FLAG_USE_2D_VERTICES) { vd.format = RD::DATA_FORMAT_R32G32_SFLOAT; r_position_stride = sizeof(float) * 2; } else { - if (!p_instanced_surface && (p_surface_format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { + if (!p_instanced_surface && (p_surface_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { vd.format = RD::DATA_FORMAT_R16G16B16A16_UNORM; r_position_stride = sizeof(uint16_t) * 4; } else { @@ -1320,10 +1322,10 @@ RD::VertexFormatID MeshStorage::_mesh_surface_generate_vertex_format(uint64_t p_ } } break; - case RS::ARRAY_NORMAL: { + case RSE::ARRAY_NORMAL: { vd.offset = 0; - if (!p_instanced_surface && (p_surface_format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { + if (!p_instanced_surface && (p_surface_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { vd.format = RD::DATA_FORMAT_R16G16_UNORM; normal_tangent_stride += sizeof(uint16_t) * 2; } else { @@ -1331,26 +1333,26 @@ RD::VertexFormatID MeshStorage::_mesh_surface_generate_vertex_format(uint64_t p_ // A small trick here: if we are uncompressed and we have normals, but no tangents. We need // the shader to think there are 4 components to "axis_tangent_attrib". So we give a size of 4, // but a stride based on only having 2 elements. - if (!(p_surface_format & RS::ARRAY_FORMAT_TANGENT)) { + if (!(p_surface_format & RSE::ARRAY_FORMAT_TANGENT)) { normal_tangent_stride += sizeof(uint16_t) * 2; } else { normal_tangent_stride += sizeof(uint16_t) * 4; } } } break; - case RS::ARRAY_TANGENT: { + case RSE::ARRAY_TANGENT: { vd.stride = 0; vd.format = RD::DATA_FORMAT_R32G32B32A32_SFLOAT; } break; - case RS::ARRAY_COLOR: { + case RSE::ARRAY_COLOR: { vd.offset = attribute_stride; vd.format = RD::DATA_FORMAT_R8G8B8A8_UNORM; attribute_stride += sizeof(int8_t) * 4; } break; - case RS::ARRAY_TEX_UV: { + case RSE::ARRAY_TEX_UV: { vd.offset = attribute_stride; - if (p_surface_format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + if (p_surface_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { vd.format = RD::DATA_FORMAT_R16G16_UNORM; attribute_stride += sizeof(uint16_t) * 2; } else { @@ -1359,9 +1361,9 @@ RD::VertexFormatID MeshStorage::_mesh_surface_generate_vertex_format(uint64_t p_ } } break; - case RS::ARRAY_TEX_UV2: { + case RSE::ARRAY_TEX_UV2: { vd.offset = attribute_stride; - if (p_surface_format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + if (p_surface_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { vd.format = RD::DATA_FORMAT_R16G16_UNORM; attribute_stride += sizeof(uint16_t) * 2; } else { @@ -1369,27 +1371,27 @@ RD::VertexFormatID MeshStorage::_mesh_surface_generate_vertex_format(uint64_t p_ attribute_stride += sizeof(float) * 2; } } break; - case RS::ARRAY_CUSTOM0: - case RS::ARRAY_CUSTOM1: - case RS::ARRAY_CUSTOM2: - case RS::ARRAY_CUSTOM3: { + case RSE::ARRAY_CUSTOM0: + case RSE::ARRAY_CUSTOM1: + case RSE::ARRAY_CUSTOM2: + case RSE::ARRAY_CUSTOM3: { vd.offset = attribute_stride; - int idx = i - RS::ARRAY_CUSTOM0; - const uint32_t fmt_shift[RS::ARRAY_CUSTOM_COUNT] = { RS::ARRAY_FORMAT_CUSTOM0_SHIFT, RS::ARRAY_FORMAT_CUSTOM1_SHIFT, RS::ARRAY_FORMAT_CUSTOM2_SHIFT, RS::ARRAY_FORMAT_CUSTOM3_SHIFT }; - uint32_t fmt = (p_surface_format >> fmt_shift[idx]) & RS::ARRAY_FORMAT_CUSTOM_MASK; - const uint32_t fmtsize[RS::ARRAY_CUSTOM_MAX] = { 4, 4, 4, 8, 4, 8, 12, 16 }; - const RD::DataFormat fmtrd[RS::ARRAY_CUSTOM_MAX] = { RD::DATA_FORMAT_R8G8B8A8_UNORM, RD::DATA_FORMAT_R8G8B8A8_SNORM, RD::DATA_FORMAT_R16G16_SFLOAT, RD::DATA_FORMAT_R16G16B16A16_SFLOAT, RD::DATA_FORMAT_R32_SFLOAT, RD::DATA_FORMAT_R32G32_SFLOAT, RD::DATA_FORMAT_R32G32B32_SFLOAT, RD::DATA_FORMAT_R32G32B32A32_SFLOAT }; + int idx = i - RSE::ARRAY_CUSTOM0; + const uint32_t fmt_shift[RSE::ARRAY_CUSTOM_COUNT] = { RSE::ARRAY_FORMAT_CUSTOM0_SHIFT, RSE::ARRAY_FORMAT_CUSTOM1_SHIFT, RSE::ARRAY_FORMAT_CUSTOM2_SHIFT, RSE::ARRAY_FORMAT_CUSTOM3_SHIFT }; + uint32_t fmt = (p_surface_format >> fmt_shift[idx]) & RSE::ARRAY_FORMAT_CUSTOM_MASK; + const uint32_t fmtsize[RSE::ARRAY_CUSTOM_MAX] = { 4, 4, 4, 8, 4, 8, 12, 16 }; + const RD::DataFormat fmtrd[RSE::ARRAY_CUSTOM_MAX] = { RD::DATA_FORMAT_R8G8B8A8_UNORM, RD::DATA_FORMAT_R8G8B8A8_SNORM, RD::DATA_FORMAT_R16G16_SFLOAT, RD::DATA_FORMAT_R16G16B16A16_SFLOAT, RD::DATA_FORMAT_R32_SFLOAT, RD::DATA_FORMAT_R32G32_SFLOAT, RD::DATA_FORMAT_R32G32B32_SFLOAT, RD::DATA_FORMAT_R32G32B32A32_SFLOAT }; vd.format = fmtrd[fmt]; attribute_stride += fmtsize[fmt]; } break; - case RS::ARRAY_BONES: { + case RSE::ARRAY_BONES: { vd.offset = skin_stride; vd.format = RD::DATA_FORMAT_R16G16B16A16_UINT; skin_stride += sizeof(int16_t) * 4; } break; - case RS::ARRAY_WEIGHTS: { + case RSE::ARRAY_WEIGHTS: { vd.offset = skin_stride; vd.format = RD::DATA_FORMAT_R16G16B16A16_UNORM; @@ -1412,13 +1414,13 @@ RD::VertexFormatID MeshStorage::_mesh_surface_generate_vertex_format(uint64_t p_ // Since the previous vertex, normal and tangent can't be part of the vertex format but they are required when // motion vectors are enabled, we opt to push a copy of the vertex attribute with a different location. switch (i) { - case RS::ARRAY_VERTEX: { + case RSE::ARRAY_VERTEX: { vd.location = ATTRIBUTE_LOCATION_PREV_VERTEX; } break; - case RS::ARRAY_NORMAL: { + case RSE::ARRAY_NORMAL: { vd.location = ATTRIBUTE_LOCATION_PREV_NORMAL; } break; - case RS::ARRAY_TANGENT: { + case RSE::ARRAY_TANGENT: { vd.location = ATTRIBUTE_LOCATION_PREV_TANGENT; } break; } @@ -1437,11 +1439,11 @@ RD::VertexFormatID MeshStorage::_mesh_surface_generate_vertex_format(uint64_t p_ } int loc = attributes[i].location; - if (loc == RS::ARRAY_VERTEX || loc == ATTRIBUTE_LOCATION_PREV_VERTEX) { + if (loc == RSE::ARRAY_VERTEX || loc == ATTRIBUTE_LOCATION_PREV_VERTEX) { attributes.write[i].stride = r_position_stride; - } else if ((loc < RS::ARRAY_COLOR) || ((loc >= ATTRIBUTE_LOCATION_PREV_NORMAL) && (loc <= ATTRIBUTE_LOCATION_PREV_TANGENT))) { + } else if ((loc < RSE::ARRAY_COLOR) || ((loc >= ATTRIBUTE_LOCATION_PREV_NORMAL) && (loc <= ATTRIBUTE_LOCATION_PREV_TANGENT))) { attributes.write[i].stride = normal_tangent_stride; - } else if (loc < RS::ARRAY_BONES) { + } else if (loc < RSE::ARRAY_BONES) { attributes.write[i].stride = attribute_stride; } else { attributes.write[i].stride = skin_stride; @@ -1459,7 +1461,7 @@ void MeshStorage::_mesh_surface_generate_version_for_input_mask(Mesh::Surface::V Vector offsets; RID buffer; uint64_t offset = 0; - for (int i = 0; i < RS::ARRAY_INDEX; i++) { + for (int i = 0; i < RSE::ARRAY_INDEX; i++) { offset = 0; if (!(s->format & (1ULL << i))) { @@ -1468,25 +1470,25 @@ void MeshStorage::_mesh_surface_generate_version_for_input_mask(Mesh::Surface::V } else { // Supplied by surface, use buffer. switch (i) { - case RS::ARRAY_VERTEX: - case RS::ARRAY_NORMAL: - offset = i == RS::ARRAY_NORMAL ? position_stride * s->vertex_count : 0; + case RSE::ARRAY_VERTEX: + case RSE::ARRAY_NORMAL: + offset = i == RSE::ARRAY_NORMAL ? position_stride * s->vertex_count : 0; buffer = mis != nullptr ? mis->vertex_buffer[p_current_buffer] : s->vertex_buffer; break; - case RS::ARRAY_TANGENT: + case RSE::ARRAY_TANGENT: buffer = mesh_default_rd_buffers[i]; break; - case RS::ARRAY_COLOR: - case RS::ARRAY_TEX_UV: - case RS::ARRAY_TEX_UV2: - case RS::ARRAY_CUSTOM0: - case RS::ARRAY_CUSTOM1: - case RS::ARRAY_CUSTOM2: - case RS::ARRAY_CUSTOM3: + case RSE::ARRAY_COLOR: + case RSE::ARRAY_TEX_UV: + case RSE::ARRAY_TEX_UV2: + case RSE::ARRAY_CUSTOM0: + case RSE::ARRAY_CUSTOM1: + case RSE::ARRAY_CUSTOM2: + case RSE::ARRAY_CUSTOM3: buffer = s->attribute_buffer; break; - case RS::ARRAY_BONES: - case RS::ARRAY_WEIGHTS: + case RSE::ARRAY_BONES: + case RSE::ARRAY_WEIGHTS: buffer = s->skin_buffer; break; } @@ -1501,7 +1503,7 @@ void MeshStorage::_mesh_surface_generate_version_for_input_mask(Mesh::Surface::V if (p_input_motion_vectors) { // Push the buffer for motion vector inputs. - if (i == RS::ARRAY_VERTEX || i == RS::ARRAY_NORMAL || i == RS::ARRAY_TANGENT) { + if (i == RSE::ARRAY_VERTEX || i == RSE::ARRAY_NORMAL || i == RSE::ARRAY_TANGENT) { if (mis && buffer != mesh_default_rd_buffers[i]) { buffers.push_back(mis->vertex_buffer[p_previous_buffer]); } else { @@ -1534,13 +1536,13 @@ void MeshStorage::_multimesh_free(RID p_rid) { // Remove from interpolator. _interpolation_data.notify_free_multimesh(p_rid); _update_dirty_multimeshes(); - multimesh_allocate_data(p_rid, 0, RS::MULTIMESH_TRANSFORM_2D); + multimesh_allocate_data(p_rid, 0, RSE::MULTIMESH_TRANSFORM_2D); MultiMesh *multimesh = multimesh_owner.get_or_null(p_rid); multimesh->dependency.deleted_notify(p_rid); multimesh_owner.free(p_rid); } -void MeshStorage::_multimesh_allocate_data(RID p_multimesh, int p_instances, RS::MultimeshTransformFormat p_transform_format, bool p_use_colors, bool p_use_custom_data, bool p_use_indirect) { +void MeshStorage::_multimesh_allocate_data(RID p_multimesh, int p_instances, RSE::MultimeshTransformFormat p_transform_format, bool p_use_colors, bool p_use_custom_data, bool p_use_indirect) { MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh); ERR_FAIL_NULL(multimesh); @@ -1570,7 +1572,7 @@ void MeshStorage::_multimesh_allocate_data(RID p_multimesh, int p_instances, RS: multimesh->instances = p_instances; multimesh->xform_format = p_transform_format; multimesh->uses_colors = p_use_colors; - multimesh->color_offset_cache = p_transform_format == RS::MULTIMESH_TRANSFORM_2D ? 8 : 12; + multimesh->color_offset_cache = p_transform_format == RSE::MULTIMESH_TRANSFORM_2D ? 8 : 12; multimesh->uses_custom_data = p_use_custom_data; multimesh->custom_data_offset_cache = multimesh->color_offset_cache + (p_use_colors ? 4 : 0); multimesh->stride_cache = multimesh->custom_data_offset_cache + (p_use_custom_data ? 4 : 0); @@ -1579,7 +1581,7 @@ void MeshStorage::_multimesh_allocate_data(RID p_multimesh, int p_instances, RS: multimesh->indirect = p_use_indirect; multimesh->command_buffer = RID(); - //print_line("allocate, elements: " + itos(p_instances) + " 2D: " + itos(p_transform_format == RS::MULTIMESH_TRANSFORM_2D) + " colors " + itos(multimesh->uses_colors) + " data " + itos(multimesh->uses_custom_data) + " stride " + itos(multimesh->stride_cache) + " total size " + itos(multimesh->stride_cache * multimesh->instances)); + //print_line("allocate, elements: " + itos(p_instances) + " 2D: " + itos(p_transform_format == RSE::MULTIMESH_TRANSFORM_2D) + " colors " + itos(multimesh->uses_colors) + " data " + itos(multimesh->uses_custom_data) + " stride " + itos(multimesh->stride_cache) + " total size " + itos(multimesh->stride_cache * multimesh->instances)); multimesh->data_cache = Vector(); multimesh->aabb = AABB(); multimesh->aabb_dirty = false; @@ -1839,7 +1841,7 @@ void MeshStorage::_multimesh_re_create_aabb(MultiMesh *multimesh, const float *p const float *data = p_data + multimesh->stride_cache * i; Transform3D t; - if (multimesh->xform_format == RS::MULTIMESH_TRANSFORM_3D) { + if (multimesh->xform_format == RSE::MULTIMESH_TRANSFORM_3D) { t.basis.rows[0][0] = data[0]; t.basis.rows[0][1] = data[1]; t.basis.rows[0][2] = data[2]; @@ -1877,7 +1879,7 @@ void MeshStorage::_multimesh_instance_set_transform(RID p_multimesh, int p_index MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh); ERR_FAIL_NULL(multimesh); ERR_FAIL_INDEX(p_index, multimesh->instances); - ERR_FAIL_COND(multimesh->xform_format != RS::MULTIMESH_TRANSFORM_3D); + ERR_FAIL_COND(multimesh->xform_format != RSE::MULTIMESH_TRANSFORM_3D); _multimesh_make_local(multimesh); @@ -1914,7 +1916,7 @@ void MeshStorage::_multimesh_instance_set_transform_2d(RID p_multimesh, int p_in MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh); ERR_FAIL_NULL(multimesh); ERR_FAIL_INDEX(p_index, multimesh->instances); - ERR_FAIL_COND(multimesh->xform_format != RS::MULTIMESH_TRANSFORM_2D); + ERR_FAIL_COND(multimesh->xform_format != RSE::MULTIMESH_TRANSFORM_2D); _multimesh_make_local(multimesh); _multimesh_update_motion_vectors_data_cache(multimesh); @@ -2001,7 +2003,7 @@ Transform3D MeshStorage::_multimesh_instance_get_transform(RID p_multimesh, int MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh); ERR_FAIL_NULL_V(multimesh, Transform3D()); ERR_FAIL_INDEX_V(p_index, multimesh->instances, Transform3D()); - ERR_FAIL_COND_V(multimesh->xform_format != RS::MULTIMESH_TRANSFORM_3D, Transform3D()); + ERR_FAIL_COND_V(multimesh->xform_format != RSE::MULTIMESH_TRANSFORM_3D, Transform3D()); _multimesh_make_local(multimesh); @@ -2032,7 +2034,7 @@ Transform2D MeshStorage::_multimesh_instance_get_transform_2d(RID p_multimesh, i MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh); ERR_FAIL_NULL_V(multimesh, Transform2D()); ERR_FAIL_INDEX_V(p_index, multimesh->instances, Transform2D()); - ERR_FAIL_COND_V(multimesh->xform_format != RS::MULTIMESH_TRANSFORM_2D, Transform2D()); + ERR_FAIL_COND_V(multimesh->xform_format != RSE::MULTIMESH_TRANSFORM_2D, Transform2D()); _multimesh_make_local(multimesh); diff --git a/servers/rendering/renderer_rd/storage_rd/mesh_storage.h b/servers/rendering/renderer_rd/storage_rd/mesh_storage.h index 776c8603d6..c3d5e70d39 100644 --- a/servers/rendering/renderer_rd/storage_rd/mesh_storage.h +++ b/servers/rendering/renderer_rd/storage_rd/mesh_storage.h @@ -75,7 +75,7 @@ private: struct Mesh { struct Surface { - RS::PrimitiveType primitive = RS::PRIMITIVE_POINTS; + RSE::PrimitiveType primitive = RSE::PRIMITIVE_POINTS; uint64_t format = 0; uint32_t vertex_count = 0; @@ -153,7 +153,7 @@ private: }; uint32_t blend_shape_count = 0; - RS::BlendShapeMode blend_shape_mode = RS::BLEND_SHAPE_MODE_NORMALIZED; + RSE::BlendShapeMode blend_shape_mode = RSE::BLEND_SHAPE_MODE_NORMALIZED; Surface **surfaces = nullptr; uint32_t surface_count = 0; @@ -228,7 +228,7 @@ private: struct MultiMesh { RID mesh; int instances = 0; - RS::MultimeshTransformFormat xform_format = RS::MULTIMESH_TRANSFORM_3D; + RSE::MultimeshTransformFormat xform_format = RSE::MULTIMESH_TRANSFORM_3D; bool uses_colors = false; bool uses_custom_data = false; int visible_instances = -1; @@ -378,8 +378,8 @@ public: virtual int mesh_get_blend_shape_count(RID p_mesh) const override; - virtual void mesh_set_blend_shape_mode(RID p_mesh, RS::BlendShapeMode p_mode) override; - virtual RS::BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const override; + virtual void mesh_set_blend_shape_mode(RID p_mesh, RSE::BlendShapeMode p_mode) override; + virtual RSE::BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const override; virtual void mesh_surface_update_vertex_region(RID p_mesh, int p_surface, int p_offset, const Vector &p_data) override; virtual void mesh_surface_update_attribute_region(RID p_mesh, int p_surface, int p_offset, const Vector &p_data) override; @@ -441,7 +441,7 @@ public: return mesh->shadow_mesh; } - _FORCE_INLINE_ RS::PrimitiveType mesh_surface_get_primitive(void *p_surface) { + _FORCE_INLINE_ RSE::PrimitiveType mesh_surface_get_primitive(void *p_surface) { Mesh::Surface *surface = reinterpret_cast(p_surface); return surface->primitive; } @@ -657,7 +657,7 @@ public: virtual void _multimesh_initialize(RID p_multimesh) override; virtual void _multimesh_free(RID p_rid) override; - virtual void _multimesh_allocate_data(RID p_multimesh, int p_instances, RS::MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false, bool p_use_indirect = false) override; + virtual void _multimesh_allocate_data(RID p_multimesh, int p_instances, RSE::MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false, bool p_use_indirect = false) override; virtual int _multimesh_get_instance_count(RID p_multimesh) const override; virtual void _multimesh_set_mesh(RID p_multimesh, RID p_mesh) override; @@ -699,9 +699,9 @@ public: return multimesh->indirect; } - _FORCE_INLINE_ RS::MultimeshTransformFormat multimesh_get_transform_format(RID p_multimesh) const { + _FORCE_INLINE_ RSE::MultimeshTransformFormat multimesh_get_transform_format(RID p_multimesh) const { MultiMesh *multimesh = multimesh_owner.get_or_null(p_multimesh); - ERR_FAIL_NULL_V(multimesh, RS::MULTIMESH_TRANSFORM_3D); + ERR_FAIL_NULL_V(multimesh, RSE::MULTIMESH_TRANSFORM_3D); return multimesh->xform_format; } diff --git a/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp b/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp index cc7b172fe9..ef2c981254 100644 --- a/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp @@ -31,8 +31,9 @@ #include "particles_storage.h" #include "servers/rendering/renderer_rd/renderer_compositor_rd.h" +#include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_globals.h" -#include "texture_storage.h" using namespace RendererRD; @@ -242,7 +243,7 @@ void ParticlesStorage::particles_free(RID p_rid) { particles_owner.free(p_rid); } -void ParticlesStorage::particles_set_mode(RID p_particles, RS::ParticlesMode p_mode) { +void ParticlesStorage::particles_set_mode(RID p_particles, RSE::ParticlesMode p_mode) { Particles *particles = particles_owner.get_or_null(p_particles); ERR_FAIL_NULL(particles); if (particles->mode == p_mode) { @@ -484,7 +485,7 @@ void ParticlesStorage::particles_set_collision_base_size(RID p_particles, real_t particles->collision_base_size = p_size; } -void ParticlesStorage::particles_set_transform_align(RID p_particles, RS::ParticlesTransformAlign p_transform_align) { +void ParticlesStorage::particles_set_transform_align(RID p_particles, RSE::ParticlesTransformAlign p_transform_align) { Particles *particles = particles_owner.get_or_null(p_particles); ERR_FAIL_NULL(particles); @@ -506,7 +507,7 @@ RID ParticlesStorage::particles_get_process_material(RID p_particles) const { return particles->process_material; } -void ParticlesStorage::particles_set_draw_order(RID p_particles, RS::ParticlesDrawOrder p_order) { +void ParticlesStorage::particles_set_draw_order(RID p_particles, RSE::ParticlesDrawOrder p_order) { Particles *particles = particles_owner.get_or_null(p_particles); ERR_FAIL_NULL(particles); @@ -948,7 +949,7 @@ void ParticlesStorage::_particles_process(Particles *p_particles, double p_delta Vector3 scale = to_collider.basis.get_scale(); to_collider.basis.orthonormalize(); - if (pc->type <= RS::PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT) { + if (pc->type <= RSE::PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT) { //attractor if (frame_params.attractor_count >= ParticlesFrameParams::MAX_ATTRACTORS) { continue; @@ -962,7 +963,7 @@ void ParticlesStorage::_particles_process(Particles *p_particles, double p_delta attr.directionality = pc->attractor_directionality; switch (pc->type) { - case RS::PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT: { + case RSE::PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT: { attr.type = ParticlesFrameParams::ATTRACTOR_TYPE_SPHERE; float radius = pc->radius; radius *= (scale.x + scale.y + scale.z) / 3.0; @@ -970,14 +971,14 @@ void ParticlesStorage::_particles_process(Particles *p_particles, double p_delta attr.extents[1] = radius; attr.extents[2] = radius; } break; - case RS::PARTICLES_COLLISION_TYPE_BOX_ATTRACT: { + case RSE::PARTICLES_COLLISION_TYPE_BOX_ATTRACT: { attr.type = ParticlesFrameParams::ATTRACTOR_TYPE_BOX; Vector3 extents = pc->extents * scale; attr.extents[0] = extents.x; attr.extents[1] = extents.y; attr.extents[2] = extents.z; } break; - case RS::PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT: { + case RSE::PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT: { if (collision_3d_textures_used >= ParticlesFrameParams::MAX_3D_TEXTURES) { continue; } @@ -1006,7 +1007,7 @@ void ParticlesStorage::_particles_process(Particles *p_particles, double p_delta RendererRD::MaterialStorage::store_transform(to_collider, col.transform); switch (pc->type) { - case RS::PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE: { + case RSE::PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE: { col.type = ParticlesFrameParams::COLLISION_TYPE_SPHERE; float radius = pc->radius; radius *= (scale.x + scale.y + scale.z) / 3.0; @@ -1014,14 +1015,14 @@ void ParticlesStorage::_particles_process(Particles *p_particles, double p_delta col.extents[1] = radius; col.extents[2] = radius; } break; - case RS::PARTICLES_COLLISION_TYPE_BOX_COLLIDE: { + case RSE::PARTICLES_COLLISION_TYPE_BOX_COLLIDE: { col.type = ParticlesFrameParams::COLLISION_TYPE_BOX; Vector3 extents = pc->extents * scale; col.extents[0] = extents.x; col.extents[1] = extents.y; col.extents[2] = extents.z; } break; - case RS::PARTICLES_COLLISION_TYPE_SDF_COLLIDE: { + case RSE::PARTICLES_COLLISION_TYPE_SDF_COLLIDE: { if (collision_3d_textures_used >= ParticlesFrameParams::MAX_3D_TEXTURES) { continue; } @@ -1036,7 +1037,7 @@ void ParticlesStorage::_particles_process(Particles *p_particles, double p_delta collision_3d_textures[collision_3d_textures_used] = pc->field_texture; collision_3d_textures_used++; } break; - case RS::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE: { + case RSE::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE: { if (collision_heightmap_texture != RID()) { //already taken continue; } @@ -1220,7 +1221,7 @@ void ParticlesStorage::particles_set_view_axis(RID p_particles, const Vector3 &p Particles *particles = particles_owner.get_or_null(p_particles); ERR_FAIL_NULL(particles); - if (particles->draw_order != RS::PARTICLES_DRAW_ORDER_VIEW_DEPTH && particles->transform_align != RS::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD && particles->transform_align != RS::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY) { + if (particles->draw_order != RSE::PARTICLES_DRAW_ORDER_VIEW_DEPTH && particles->transform_align != RSE::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD && particles->transform_align != RSE::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY) { return; } @@ -1228,7 +1229,7 @@ void ParticlesStorage::particles_set_view_axis(RID p_particles, const Vector3 &p return; //particles have not processed yet } - bool do_sort = particles->draw_order == RS::PARTICLES_DRAW_ORDER_VIEW_DEPTH; + bool do_sort = particles->draw_order == RSE::PARTICLES_DRAW_ORDER_VIEW_DEPTH; //copy to sort buffer if (do_sort && particles->particles_sort_buffer == RID()) { @@ -1271,9 +1272,9 @@ void ParticlesStorage::particles_set_view_axis(RID p_particles, const Vector3 &p copy_push_constant.frame_delta = 0.0; } - copy_push_constant.order_by_lifetime = (particles->draw_order == RS::PARTICLES_DRAW_ORDER_LIFETIME || particles->draw_order == RS::PARTICLES_DRAW_ORDER_REVERSE_LIFETIME); + copy_push_constant.order_by_lifetime = (particles->draw_order == RSE::PARTICLES_DRAW_ORDER_LIFETIME || particles->draw_order == RSE::PARTICLES_DRAW_ORDER_REVERSE_LIFETIME); copy_push_constant.lifetime_split = (MIN(int(particles->amount * particles->phase), particles->amount - 1) + 1) % particles->amount; - copy_push_constant.lifetime_reverse = particles->draw_order == RS::PARTICLES_DRAW_ORDER_REVERSE_LIFETIME; + copy_push_constant.lifetime_reverse = particles->draw_order == RSE::PARTICLES_DRAW_ORDER_REVERSE_LIFETIME; copy_push_constant.motion_vectors_current_offset = particles->instance_motion_vectors_current_offset; copy_push_constant.frame_remainder = particles->interpolate ? particles->frame_remainder : 0.0; @@ -1317,7 +1318,7 @@ void ParticlesStorage::particles_set_view_axis(RID p_particles, const Vector3 &p RD::ComputeListID compute_list = RD::get_singleton()->compute_list_begin(); uint32_t copy_mode = do_sort ? ParticlesShader::COPY_MODE_FILL_INSTANCES_WITH_SORT_BUFFER : ParticlesShader::COPY_MODE_FILL_INSTANCES; - copy_push_constant.copy_mode_2d = particles->mode == RS::PARTICLES_MODE_2D ? 1 : 0; + copy_push_constant.copy_mode_2d = particles->mode == RSE::PARTICLES_MODE_2D ? 1 : 0; RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, particles_shader.copy_pipelines[particles->userdata_count][copy_mode].get_rid()); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, particles->particles_copy_uniform_set, 0); if (do_sort) { @@ -1343,7 +1344,7 @@ void ParticlesStorage::_particles_update_buffers(Particles *particles) { } bool uses_motion_vectors = RSG::viewport->get_num_viewports_with_motion_vectors() > 0 || (RendererCompositorStorage::get_singleton()->get_num_compositor_effects_with_motion_vectors() > 0); - bool index_draw_order = particles->draw_order == RS::ParticlesDrawOrder::PARTICLES_DRAW_ORDER_INDEX; + bool index_draw_order = particles->draw_order == RSE::ParticlesDrawOrder::PARTICLES_DRAW_ORDER_INDEX; bool enable_motion_vectors = uses_motion_vectors && index_draw_order && !particles->instance_motion_vectors_enabled; bool only_instances_changed = false; @@ -1370,7 +1371,7 @@ void ParticlesStorage::_particles_update_buffers(Particles *particles) { total_amount *= particles->trail_bind_poses.size(); } - uint32_t xform_size = particles->mode == RS::PARTICLES_MODE_2D ? 2 : 3; + uint32_t xform_size = particles->mode == RSE::PARTICLES_MODE_2D ? 2 : 3; if (particles->particle_buffer.is_null()) { particles->particle_buffer = RD::get_singleton()->storage_buffer_create((sizeof(ParticleData) + userdata_count * sizeof(float) * 4) * total_amount); particles->userdata_count = userdata_count; @@ -1594,7 +1595,7 @@ void ParticlesStorage::update_particles() { } // Swap offsets for motion vectors. Motion vectors can only be used when the draw order keeps the indices consistent across frames. - bool index_draw_order = particles->draw_order == RS::ParticlesDrawOrder::PARTICLES_DRAW_ORDER_INDEX; + bool index_draw_order = particles->draw_order == RSE::ParticlesDrawOrder::PARTICLES_DRAW_ORDER_INDEX; particles->instance_motion_vectors_previous_offset = particles->instance_motion_vectors_current_offset; if (uses_motion_vectors && index_draw_order && particles->instance_motion_vectors_enabled && (frame - particles->instance_motion_vectors_last_change) == 1) { particles->instance_motion_vectors_current_offset = total_amount - particles->instance_motion_vectors_current_offset; @@ -1603,7 +1604,7 @@ void ParticlesStorage::update_particles() { particles->instance_motion_vectors_last_change = frame; // Copy particles to instance buffer. - if (particles->draw_order != RS::PARTICLES_DRAW_ORDER_VIEW_DEPTH && particles->transform_align != RS::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD && particles->transform_align != RS::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY) { + if (particles->draw_order != RSE::PARTICLES_DRAW_ORDER_VIEW_DEPTH && particles->transform_align != RSE::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD && particles->transform_align != RSE::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY) { //does not need view dependent operation, do copy here ParticlesShader::CopyPushConstant copy_push_constant; @@ -1639,13 +1640,13 @@ void ParticlesStorage::update_particles() { copy_push_constant.frame_delta = 0.0; } - copy_push_constant.order_by_lifetime = (particles->draw_order == RS::PARTICLES_DRAW_ORDER_LIFETIME || particles->draw_order == RS::PARTICLES_DRAW_ORDER_REVERSE_LIFETIME); + copy_push_constant.order_by_lifetime = (particles->draw_order == RSE::PARTICLES_DRAW_ORDER_LIFETIME || particles->draw_order == RSE::PARTICLES_DRAW_ORDER_REVERSE_LIFETIME); copy_push_constant.lifetime_split = (MIN(int(particles->amount * particles->phase), particles->amount - 1) + 1) % particles->amount; - copy_push_constant.lifetime_reverse = particles->draw_order == RS::PARTICLES_DRAW_ORDER_REVERSE_LIFETIME; + copy_push_constant.lifetime_reverse = particles->draw_order == RSE::PARTICLES_DRAW_ORDER_REVERSE_LIFETIME; copy_push_constant.motion_vectors_current_offset = particles->instance_motion_vectors_current_offset; RD::ComputeListID compute_list = RD::get_singleton()->compute_list_begin(); - copy_push_constant.copy_mode_2d = particles->mode == RS::PARTICLES_MODE_2D ? 1 : 0; + copy_push_constant.copy_mode_2d = particles->mode == RSE::PARTICLES_MODE_2D ? 1 : 0; RD::get_singleton()->compute_list_bind_compute_pipeline(compute_list, particles_shader.copy_pipelines[particles->userdata_count][ParticlesShader::COPY_MODE_FILL_INSTANCES].get_rid()); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, particles->particles_copy_uniform_set, 0); RD::get_singleton()->compute_list_bind_uniform_set(compute_list, particles->trail_bind_pose_uniform_set, 2); @@ -1713,7 +1714,7 @@ void ParticlesStorage::ParticlesShaderData::set_code(const String &p_code) { actions.uniforms = &uniforms; - Error err = particles_storage->particles_shader.compiler.compile(RS::SHADER_PARTICLES, code, &actions, path, gen_code); + Error err = particles_storage->particles_shader.compiler.compile(RSE::SHADER_PARTICLES, code, &actions, path, gen_code); ERR_FAIL_COND_MSG(err != OK, "Shader compilation failed."); if (version.is_null()) { @@ -1809,11 +1810,11 @@ void ParticlesStorage::particles_collision_free(RID p_rid) { RID ParticlesStorage::particles_collision_get_heightfield_framebuffer(RID p_particles_collision) const { ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision); ERR_FAIL_NULL_V(particles_collision, RID()); - ERR_FAIL_COND_V(particles_collision->type != RS::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE, RID()); + ERR_FAIL_COND_V(particles_collision->type != RSE::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE, RID()); if (particles_collision->heightfield_texture == RID()) { //create - const int resolutions[RS::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX] = { 256, 512, 1024, 2048, 4096, 8192 }; + const int resolutions[RSE::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX] = { 256, 512, 1024, 2048, 4096, 8192 }; Size2i size; if (particles_collision->extents.x > particles_collision->extents.z) { size.x = resolutions[particles_collision->heightfield_resolution]; @@ -1841,7 +1842,7 @@ RID ParticlesStorage::particles_collision_get_heightfield_framebuffer(RID p_part return particles_collision->heightfield_fb; } -void ParticlesStorage::particles_collision_set_collision_type(RID p_particles_collision, RS::ParticlesCollisionType p_type) { +void ParticlesStorage::particles_collision_set_collision_type(RID p_particles_collision, RSE::ParticlesCollisionType p_type) { ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision); ERR_FAIL_NULL(particles_collision); @@ -1932,10 +1933,10 @@ void ParticlesStorage::particles_collision_height_field_update(RID p_particles_c particles_collision->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_AABB); } -void ParticlesStorage::particles_collision_set_height_field_resolution(RID p_particles_collision, RS::ParticlesCollisionHeightfieldResolution p_resolution) { +void ParticlesStorage::particles_collision_set_height_field_resolution(RID p_particles_collision, RSE::ParticlesCollisionHeightfieldResolution p_resolution) { ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision); ERR_FAIL_NULL(particles_collision); - ERR_FAIL_INDEX(p_resolution, RS::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX); + ERR_FAIL_INDEX(p_resolution, RSE::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX); if (particles_collision->heightfield_resolution == p_resolution) { return; @@ -1954,8 +1955,8 @@ AABB ParticlesStorage::particles_collision_get_aabb(RID p_particles_collision) c ERR_FAIL_NULL_V(particles_collision, AABB()); switch (particles_collision->type) { - case RS::PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT: - case RS::PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE: { + case RSE::PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT: + case RSE::PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE: { AABB aabb; aabb.position = -Vector3(1, 1, 1) * particles_collision->radius; aabb.size = Vector3(2, 2, 2) * particles_collision->radius; @@ -1979,7 +1980,7 @@ Vector3 ParticlesStorage::particles_collision_get_extents(RID p_particles_collis bool ParticlesStorage::particles_collision_is_heightfield(RID p_particles_collision) const { const ParticlesCollision *particles_collision = particles_collision_owner.get_or_null(p_particles_collision); ERR_FAIL_NULL_V(particles_collision, false); - return particles_collision->type == RS::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE; + return particles_collision->type == RSE::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE; } Dependency *ParticlesStorage::particles_collision_get_dependency(RID p_particles_collision) const { diff --git a/servers/rendering/renderer_rd/storage_rd/particles_storage.h b/servers/rendering/renderer_rd/storage_rd/particles_storage.h index a1c82d7f9a..9a1df1320e 100644 --- a/servers/rendering/renderer_rd/storage_rd/particles_storage.h +++ b/servers/rendering/renderer_rd/storage_rd/particles_storage.h @@ -158,7 +158,7 @@ private: }; struct Particles { - RS::ParticlesMode mode = RS::PARTICLES_MODE_3D; + RSE::ParticlesMode mode = RSE::PARTICLES_MODE_3D; bool inactive = true; double inactive_time = 0.0; bool emitting = false; @@ -181,9 +181,9 @@ private: RID process_material; uint32_t frame_counter = 0; - RS::ParticlesTransformAlign transform_align = RS::PARTICLES_TRANSFORM_ALIGN_DISABLED; + RSE::ParticlesTransformAlign transform_align = RSE::PARTICLES_TRANSFORM_ALIGN_DISABLED; - RS::ParticlesDrawOrder draw_order = RS::PARTICLES_DRAW_ORDER_INDEX; + RSE::ParticlesDrawOrder draw_order = RSE::PARTICLES_DRAW_ORDER_INDEX; Vector draw_passes; Vector trail_bind_poses; @@ -394,7 +394,7 @@ private: /* Particles Collision */ struct ParticlesCollision { - RS::ParticlesCollisionType type = RS::PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT; + RSE::ParticlesCollisionType type = RSE::PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT; uint32_t cull_mask = 0xFFFFFFFF; float radius = 1.0; Vector3 extents = Vector3(1, 1, 1); @@ -407,7 +407,7 @@ private: Size2i heightfield_fb_size; uint32_t heightfield_mask = (1 << 20) - 1; - RS::ParticlesCollisionHeightfieldResolution heightfield_resolution = RS::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_1024; + RSE::ParticlesCollisionHeightfieldResolution heightfield_resolution = RSE::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_1024; Dependency dependency; }; @@ -438,7 +438,7 @@ public: virtual void particles_initialize(RID p_rid) override; virtual void particles_free(RID p_rid) override; - virtual void particles_set_mode(RID p_particles, RS::ParticlesMode p_mode) override; + virtual void particles_set_mode(RID p_particles, RSE::ParticlesMode p_mode) override; virtual void particles_set_emitting(RID p_particles, bool p_emitting) override; virtual void particles_set_amount(RID p_particles, int p_amount) override; virtual void particles_set_amount_ratio(RID p_particles, float p_amount_ratio) override; @@ -458,7 +458,7 @@ public: virtual void particles_set_interpolate(RID p_particles, bool p_enable) override; virtual void particles_set_fractional_delta(RID p_particles, bool p_enable) override; virtual void particles_set_collision_base_size(RID p_particles, real_t p_size) override; - virtual void particles_set_transform_align(RID p_particles, RS::ParticlesTransformAlign p_transform_align) override; + virtual void particles_set_transform_align(RID p_particles, RSE::ParticlesTransformAlign p_transform_align) override; virtual void particles_set_seed(RID p_particles, uint32_t p_seed) override; virtual void particles_set_trails(RID p_particles, bool p_enable, double p_length) override; @@ -469,7 +469,7 @@ public: virtual void particles_set_subemitter(RID p_particles, RID p_subemitter_particles) override; - virtual void particles_set_draw_order(RID p_particles, RS::ParticlesDrawOrder p_order) override; + virtual void particles_set_draw_order(RID p_particles, RSE::ParticlesDrawOrder p_order) override; virtual void particles_set_draw_passes(RID p_particles, int p_count) override; virtual void particles_set_draw_pass_mesh(RID p_particles, int p_pass, RID p_mesh) override; @@ -490,9 +490,9 @@ public: virtual bool particles_is_inactive(RID p_particles) const override; - _FORCE_INLINE_ RS::ParticlesMode particles_get_mode(RID p_particles) { + _FORCE_INLINE_ RSE::ParticlesMode particles_get_mode(RID p_particles) { Particles *particles = particles_owner.get_or_null(p_particles); - ERR_FAIL_NULL_V(particles, RS::PARTICLES_MODE_2D); + ERR_FAIL_NULL_V(particles, RSE::PARTICLES_MODE_2D); return particles->mode; } @@ -569,7 +569,7 @@ public: virtual void particles_collision_initialize(RID p_particles_collision) override; virtual void particles_collision_free(RID p_rid) override; - virtual void particles_collision_set_collision_type(RID p_particles_collision, RS::ParticlesCollisionType p_type) override; + virtual void particles_collision_set_collision_type(RID p_particles_collision, RSE::ParticlesCollisionType p_type) override; virtual void particles_collision_set_cull_mask(RID p_particles_collision, uint32_t p_cull_mask) override; virtual void particles_collision_set_sphere_radius(RID p_particles_collision, real_t p_radius) override; //for spheres virtual void particles_collision_set_box_extents(RID p_particles_collision, const Vector3 &p_extents) override; //for non-spheres @@ -578,7 +578,7 @@ public: virtual void particles_collision_set_attractor_attenuation(RID p_particles_collision, real_t p_curve) override; virtual void particles_collision_set_field_texture(RID p_particles_collision, RID p_texture) override; //for SDF and vector field, heightfield is dynamic virtual void particles_collision_height_field_update(RID p_particles_collision) override; //for SDF and vector field - virtual void particles_collision_set_height_field_resolution(RID p_particles_collision, RS::ParticlesCollisionHeightfieldResolution p_resolution) override; //for SDF and vector field + virtual void particles_collision_set_height_field_resolution(RID p_particles_collision, RSE::ParticlesCollisionHeightfieldResolution p_resolution) override; //for SDF and vector field virtual AABB particles_collision_get_aabb(RID p_particles_collision) const override; Vector3 particles_collision_get_extents(RID p_particles_collision) const; virtual bool particles_collision_is_heightfield(RID p_particles_collision) const override; diff --git a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.compat.inc b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.compat.inc index dc49366de3..9532be6da2 100644 --- a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.compat.inc +++ b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.compat.inc @@ -31,27 +31,27 @@ #ifndef DISABLE_DEPRECATED RID RenderSceneBuffersRD::_get_color_texture_compat_80214() { - return _get_color_texture(msaa_3d != RS::VIEWPORT_MSAA_DISABLED); + return _get_color_texture(msaa_3d != RSE::VIEWPORT_MSAA_DISABLED); } RID RenderSceneBuffersRD::_get_color_layer_compat_80214(const uint32_t p_layer) { - return _get_color_layer(p_layer, msaa_3d != RS::VIEWPORT_MSAA_DISABLED); + return _get_color_layer(p_layer, msaa_3d != RSE::VIEWPORT_MSAA_DISABLED); } RID RenderSceneBuffersRD::_get_depth_texture_compat_80214() { - return _get_depth_texture(msaa_3d != RS::VIEWPORT_MSAA_DISABLED); + return _get_depth_texture(msaa_3d != RSE::VIEWPORT_MSAA_DISABLED); } RID RenderSceneBuffersRD::_get_depth_layer_compat_80214(const uint32_t p_layer) { - return _get_depth_layer(p_layer, msaa_3d != RS::VIEWPORT_MSAA_DISABLED); + return _get_depth_layer(p_layer, msaa_3d != RSE::VIEWPORT_MSAA_DISABLED); } RID RenderSceneBuffersRD::_get_velocity_texture_compat_80214() { - return _get_velocity_texture(msaa_3d != RS::VIEWPORT_MSAA_DISABLED); + return _get_velocity_texture(msaa_3d != RSE::VIEWPORT_MSAA_DISABLED); } RID RenderSceneBuffersRD::_get_velocity_layer_compat_80214(const uint32_t p_layer) { - return _get_velocity_layer(p_layer, msaa_3d != RS::VIEWPORT_MSAA_DISABLED); + return _get_velocity_layer(p_layer, msaa_3d != RSE::VIEWPORT_MSAA_DISABLED); } RID RenderSceneBuffersRD::_create_texture_bind_compat_98670(const StringName &p_context, const StringName &p_texture_name, const RD::DataFormat p_data_format, const uint32_t p_usage_bits, const RD::TextureSamples p_texture_samples, const Size2i p_size, const uint32_t p_layers, const uint32_t p_mipmaps, bool p_unique) { diff --git a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp index 0b23686579..72c4565bda 100644 --- a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp +++ b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp @@ -32,6 +32,7 @@ #include "render_scene_buffers_rd.compat.inc" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" +#include "servers/rendering/rendering_server.h" RenderSceneBuffersRD::RenderSceneBuffersRD() { } @@ -102,14 +103,14 @@ void RenderSceneBuffersRD::free_named_texture(NamedTexture &p_named_texture) { void RenderSceneBuffersRD::update_samplers() { float computed_mipmap_bias = texture_mipmap_bias; - if (use_taa || (RS::scaling_3d_mode_type(scaling_3d_mode) == RS::VIEWPORT_SCALING_3D_TYPE_TEMPORAL)) { + if (use_taa || (RS::scaling_3d_mode_type(scaling_3d_mode) == RSE::VIEWPORT_SCALING_3D_TYPE_TEMPORAL)) { // Use negative mipmap LOD bias when TAA or FSR2 is enabled to compensate for loss of sharpness. // This restores sharpness in still images to be roughly at the same level as without TAA, // but moving scenes will still be blurrier. computed_mipmap_bias -= 0.5; } - if (screen_space_aa == RS::VIEWPORT_SCREEN_SPACE_AA_FXAA) { + if (screen_space_aa == RSE::VIEWPORT_SCREEN_SPACE_AA_FXAA) { // Use negative mipmap LOD bias when FXAA is enabled to compensate for loss of sharpness. // If both TAA and FXAA are enabled, combine their negative LOD biases together. computed_mipmap_bias -= 0.25; @@ -178,7 +179,7 @@ void RenderSceneBuffersRD::configure(const RenderSceneBuffersConfiguration *p_co cleanup(); // Create our color buffer. - const bool resolve_target = msaa_3d != RS::VIEWPORT_MSAA_DISABLED; + const bool resolve_target = msaa_3d != RSE::VIEWPORT_MSAA_DISABLED; create_texture(RB_SCOPE_BUFFERS, RB_TEX_COLOR, get_base_data_format(), get_color_usage_bits(resolve_target, false, can_be_storage), RD::TEXTURE_SAMPLES_1, Size2i(), 0, 1, true, true); // TODO: Detect when it is safe to use RD::TEXTURE_USAGE_TRANSIENT_BIT for RB_TEX_DEPTH, RB_TEX_COLOR_MSAA and/or RB_TEX_DEPTH_MSAA. @@ -188,7 +189,7 @@ void RenderSceneBuffersRD::configure(const RenderSceneBuffersConfiguration *p_co create_texture(RB_SCOPE_BUFFERS, RB_TEX_DEPTH, get_depth_format(resolve_target, false, can_be_storage), get_depth_usage_bits(resolve_target, false, can_be_storage), RD::TEXTURE_SAMPLES_1, Size2i(), 0, 1, true, true); // Create our MSAA buffers. - if (msaa_3d == RS::VIEWPORT_MSAA_DISABLED) { + if (msaa_3d == RSE::VIEWPORT_MSAA_DISABLED) { texture_samples = RD::TEXTURE_SAMPLES_1; } else { texture_samples = msaa_to_samples(msaa_3d); @@ -198,7 +199,7 @@ void RenderSceneBuffersRD::configure(const RenderSceneBuffersConfiguration *p_co // VRS (note, our vrs object will only be set if VRS is supported) RID vrs_texture; - if (vrs && vrs_mode != RS::VIEWPORT_VRS_DISABLED) { + if (vrs && vrs_mode != RSE::VIEWPORT_VRS_DISABLED) { vrs_texture = create_texture(RB_SCOPE_VRS, RB_TEXTURE, get_vrs_format(), get_vrs_usage_bits(), RD::TEXTURE_SAMPLES_1, vrs->get_vrs_texture_size(internal_size), 0, 1, true, true); } @@ -215,10 +216,10 @@ void RenderSceneBuffersRD::configure_for_reflections(const Size2i p_reflection_s target_size = p_reflection_size; internal_size = p_reflection_size; render_target = RID(); - scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_OFF; + scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_OFF; fsr_sharpness = 0.0; - msaa_3d = RS::VIEWPORT_MSAA_DISABLED; - screen_space_aa = RS::VIEWPORT_SCREEN_SPACE_AA_DISABLED; + msaa_3d = RSE::VIEWPORT_MSAA_DISABLED; + screen_space_aa = RSE::VIEWPORT_SCREEN_SPACE_AA_DISABLED; use_taa = false; use_debanding = false; view_count = 1; @@ -242,7 +243,7 @@ void RenderSceneBuffersRD::set_texture_mipmap_bias(float p_texture_mipmap_bias) update_samplers(); } -void RenderSceneBuffersRD::set_anisotropic_filtering_level(RS::ViewportAnisotropicFiltering p_anisotropic_filtering_level) { +void RenderSceneBuffersRD::set_anisotropic_filtering_level(RSE::ViewportAnisotropicFiltering p_anisotropic_filtering_level) { anisotropic_filtering_level = p_anisotropic_filtering_level; update_samplers(); @@ -513,7 +514,7 @@ void RenderSceneBuffersRD::allocate_blur_textures() { } Size2i blur_size = internal_size; - if (RS::scaling_3d_mode_type(scaling_3d_mode) == RS::VIEWPORT_SCALING_3D_TYPE_TEMPORAL) { + if (RS::scaling_3d_mode_type(scaling_3d_mode) == RSE::VIEWPORT_SCALING_3D_TYPE_TEMPORAL) { // The blur texture should be as big as the target size when using an upscaler. blur_size = target_size; } @@ -651,7 +652,7 @@ void RenderSceneBuffersRD::ensure_upscaled() { void RenderSceneBuffersRD::ensure_velocity() { if (!has_texture(RB_SCOPE_BUFFERS, RB_TEX_VELOCITY)) { - const bool msaa = msaa_3d != RS::VIEWPORT_MSAA_DISABLED; + const bool msaa = msaa_3d != RSE::VIEWPORT_MSAA_DISABLED; create_texture(RB_SCOPE_BUFFERS, RB_TEX_VELOCITY, get_velocity_format(), get_velocity_usage_bits(msaa, false, can_be_storage), RD::TEXTURE_SAMPLES_1, Size2i(), 0, 1, true, true); if (msaa) { diff --git a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h index e2c2175e1c..4993658cd3 100644 --- a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h +++ b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h @@ -69,7 +69,7 @@ private: RD::DataFormat preferred_data_format = RD::DATA_FORMAT_MAX; RendererRD::VRS *vrs = nullptr; uint64_t auto_exposure_version = 1; - RS::ViewportVRSMode vrs_mode = RS::VIEWPORT_VRS_DISABLED; + RSE::ViewportVRSMode vrs_mode = RSE::VIEWPORT_VRS_DISABLED; // Our render target represents our final destination that we display on screen. RID render_target; @@ -78,18 +78,18 @@ private: // The internal size of the textures we render 3D to in case we render at a lower resolution and upscale Size2i internal_size = Size2i(0, 0); - RS::ViewportScaling3DMode scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_OFF; + RSE::ViewportScaling3DMode scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_OFF; float fsr_sharpness = 0.2f; float texture_mipmap_bias = 0.0f; - RS::ViewportAnisotropicFiltering anisotropic_filtering_level = RS::VIEWPORT_ANISOTROPY_4X; + RSE::ViewportAnisotropicFiltering anisotropic_filtering_level = RSE::VIEWPORT_ANISOTROPY_4X; #ifdef METAL_ENABLED RendererRD::MFXSpatialContext *mfx_spatial_context = nullptr; #endif // Aliasing settings - RS::ViewportMSAA msaa_3d = RS::VIEWPORT_MSAA_DISABLED; - RS::ViewportScreenSpaceAA screen_space_aa = RS::VIEWPORT_SCREEN_SPACE_AA_DISABLED; + RSE::ViewportMSAA msaa_3d = RSE::VIEWPORT_MSAA_DISABLED; + RSE::ViewportScreenSpaceAA screen_space_aa = RSE::VIEWPORT_SCREEN_SPACE_AA_DISABLED; bool use_taa = false; bool use_debanding = false; RD::TextureSamples texture_samples = RD::TEXTURE_SAMPLES_1; @@ -191,14 +191,14 @@ public: RD::DataFormat get_base_data_format() const { return force_hdr ? RD::DATA_FORMAT_R16G16B16A16_SFLOAT : preferred_data_format; } float get_luminance_multiplier() const; void set_vrs(RendererRD::VRS *p_vrs) { vrs = p_vrs; } - RS::ViewportVRSMode get_vrs_mode() { return vrs_mode; } + RSE::ViewportVRSMode get_vrs_mode() { return vrs_mode; } void cleanup(); virtual void configure(const RenderSceneBuffersConfiguration *p_config) override; void configure_for_reflections(const Size2i p_reflection_size); virtual void set_fsr_sharpness(float p_fsr_sharpness) override; virtual void set_texture_mipmap_bias(float p_texture_mipmap_bias) override; - virtual void set_anisotropic_filtering_level(RS::ViewportAnisotropicFiltering p_anisotropic_filtering_level) override; + virtual void set_anisotropic_filtering_level(RSE::ViewportAnisotropicFiltering p_anisotropic_filtering_level) override; virtual void set_use_debanding(bool p_use_debanding) override; #ifdef METAL_ENABLED @@ -234,11 +234,11 @@ public: _FORCE_INLINE_ uint32_t get_view_count() const { return view_count; } _FORCE_INLINE_ Size2i get_internal_size() const { return internal_size; } _FORCE_INLINE_ Size2i get_target_size() const { return target_size; } - _FORCE_INLINE_ RS::ViewportScaling3DMode get_scaling_3d_mode() const { return scaling_3d_mode; } + _FORCE_INLINE_ RSE::ViewportScaling3DMode get_scaling_3d_mode() const { return scaling_3d_mode; } _FORCE_INLINE_ float get_fsr_sharpness() const { return fsr_sharpness; } - _FORCE_INLINE_ RS::ViewportMSAA get_msaa_3d() const { return msaa_3d; } + _FORCE_INLINE_ RSE::ViewportMSAA get_msaa_3d() const { return msaa_3d; } _FORCE_INLINE_ RD::TextureSamples get_texture_samples() const { return texture_samples; } - _FORCE_INLINE_ RS::ViewportScreenSpaceAA get_screen_space_aa() const { return screen_space_aa; } + _FORCE_INLINE_ RSE::ViewportScreenSpaceAA get_screen_space_aa() const { return screen_space_aa; } _FORCE_INLINE_ bool get_use_taa() const { return use_taa; } _FORCE_INLINE_ bool get_use_debanding() const { return use_debanding; } @@ -322,15 +322,15 @@ public: return samplers; } - _FORCE_INLINE_ static RD::TextureSamples msaa_to_samples(RS::ViewportMSAA p_msaa) { + _FORCE_INLINE_ static RD::TextureSamples msaa_to_samples(RSE::ViewportMSAA p_msaa) { switch (p_msaa) { - case RS::VIEWPORT_MSAA_DISABLED: + case RSE::VIEWPORT_MSAA_DISABLED: return RD::TEXTURE_SAMPLES_1; - case RS::VIEWPORT_MSAA_2X: + case RSE::VIEWPORT_MSAA_2X: return RD::TEXTURE_SAMPLES_2; - case RS::VIEWPORT_MSAA_4X: + case RSE::VIEWPORT_MSAA_4X: return RD::TEXTURE_SAMPLES_4; - case RS::VIEWPORT_MSAA_8X: + case RSE::VIEWPORT_MSAA_8X: return RD::TEXTURE_SAMPLES_8; default: DEV_ASSERT(false && "Unknown MSAA option."); diff --git a/servers/rendering/renderer_rd/storage_rd/render_scene_data_rd.cpp b/servers/rendering/renderer_rd/storage_rd/render_scene_data_rd.cpp index 412d94ac9d..53a32bb393 100644 --- a/servers/rendering/renderer_rd/storage_rd/render_scene_data_rd.cpp +++ b/servers/rendering/renderer_rd/storage_rd/render_scene_data_rd.cpp @@ -69,7 +69,7 @@ RID RenderSceneDataRD::create_uniform_buffer() { return RD::get_singleton()->uniform_buffer_create(sizeof(UBODATA)); } -void RenderSceneDataRD::update_ubo(RID p_uniform_buffer, RS::ViewportDebugDraw p_debug_mode, RID p_env, RID p_reflection_probe_instance, RID p_camera_attributes, bool p_pancake_shadows, const Size2i &p_screen_size, const Size2 &p_viewport_size, const Color &p_default_bg_color, float p_luminance_multiplier, bool p_opaque_render_buffers, bool p_apply_alpha_multiplier) { +void RenderSceneDataRD::update_ubo(RID p_uniform_buffer, RSE::ViewportDebugDraw p_debug_mode, RID p_env, RID p_reflection_probe_instance, RID p_camera_attributes, bool p_pancake_shadows, const Size2i &p_screen_size, const Size2 &p_viewport_size, const Color &p_default_bg_color, float p_luminance_multiplier, bool p_opaque_render_buffers, bool p_apply_alpha_multiplier) { RendererSceneRenderRD *render_scene_render = RendererSceneRenderRD::get_singleton(); UBODATA ubo_data; @@ -154,15 +154,15 @@ void RenderSceneDataRD::update_ubo(RID p_uniform_buffer, RS::ViewportDebugDraw p ubo.flags |= material_uv2_mode ? SCENE_DATA_FLAGS_USE_UV2_MATERIAL : 0; ubo.flags |= shadow_pass ? SCENE_DATA_FLAGS_IN_SHADOW_PASS : 0; - if (p_debug_mode == RS::VIEWPORT_DEBUG_DRAW_UNSHADED) { + if (p_debug_mode == RSE::VIEWPORT_DEBUG_DRAW_UNSHADED) { ubo.flags |= SCENE_DATA_FLAGS_USE_AMBIENT_LIGHT; ubo.ambient_light_color_energy[0] = 1; ubo.ambient_light_color_energy[1] = 1; ubo.ambient_light_color_energy[2] = 1; ubo.ambient_light_color_energy[3] = 1.0; } else if (p_env.is_valid()) { - RS::EnvironmentBG env_bg = render_scene_render->environment_get_background(p_env); - RS::EnvironmentAmbientSource ambient_src = render_scene_render->environment_get_ambient_source(p_env); + RSE::EnvironmentBG env_bg = render_scene_render->environment_get_background(p_env); + RSE::EnvironmentAmbientSource ambient_src = render_scene_render->environment_get_ambient_source(p_env); float bg_energy_multiplier = render_scene_render->environment_get_bg_energy_multiplier(p_env); @@ -171,8 +171,8 @@ void RenderSceneDataRD::update_ubo(RID p_uniform_buffer, RS::ViewportDebugDraw p ubo.ambient_color_sky_mix = render_scene_render->environment_get_ambient_sky_contribution(p_env); //ambient - if (ambient_src == RS::ENV_AMBIENT_SOURCE_BG && (env_bg == RS::ENV_BG_CLEAR_COLOR || env_bg == RS::ENV_BG_COLOR)) { - Color color = env_bg == RS::ENV_BG_CLEAR_COLOR ? p_default_bg_color : render_scene_render->environment_get_bg_color(p_env); + if (ambient_src == RSE::ENV_AMBIENT_SOURCE_BG && (env_bg == RSE::ENV_BG_CLEAR_COLOR || env_bg == RSE::ENV_BG_COLOR)) { + Color color = env_bg == RSE::ENV_BG_CLEAR_COLOR ? p_default_bg_color : render_scene_render->environment_get_bg_color(p_env); color = color.srgb_to_linear(); ubo.ambient_light_color_energy[0] = color.r * bg_energy_multiplier; @@ -187,15 +187,15 @@ void RenderSceneDataRD::update_ubo(RID p_uniform_buffer, RS::ViewportDebugDraw p ubo.ambient_light_color_energy[1] = color.g * energy; ubo.ambient_light_color_energy[2] = color.b * energy; - bool use_ambient_cubemap = (ambient_src == RS::ENV_AMBIENT_SOURCE_BG && env_bg == RS::ENV_BG_SKY) || ambient_src == RS::ENV_AMBIENT_SOURCE_SKY; - bool use_ambient_light = use_ambient_cubemap || ambient_src == RS::ENV_AMBIENT_SOURCE_COLOR; + bool use_ambient_cubemap = (ambient_src == RSE::ENV_AMBIENT_SOURCE_BG && env_bg == RSE::ENV_BG_SKY) || ambient_src == RSE::ENV_AMBIENT_SOURCE_SKY; + bool use_ambient_light = use_ambient_cubemap || ambient_src == RSE::ENV_AMBIENT_SOURCE_COLOR; ubo.flags |= use_ambient_cubemap ? SCENE_DATA_FLAGS_USE_AMBIENT_CUBEMAP : 0; ubo.flags |= use_ambient_light ? SCENE_DATA_FLAGS_USE_AMBIENT_LIGHT : 0; } //specular - RS::EnvironmentReflectionSource ref_src = render_scene_render->environment_get_reflection_source(p_env); - if ((ref_src == RS::ENV_REFLECTION_SOURCE_BG && env_bg == RS::ENV_BG_SKY) || ref_src == RS::ENV_REFLECTION_SOURCE_SKY) { + RSE::EnvironmentReflectionSource ref_src = render_scene_render->environment_get_reflection_source(p_env); + if ((ref_src == RSE::ENV_REFLECTION_SOURCE_BG && env_bg == RSE::ENV_BG_SKY) || ref_src == RSE::ENV_REFLECTION_SOURCE_SKY) { ubo.flags |= SCENE_DATA_FLAGS_USE_REFLECTION_CUBEMAP; } diff --git a/servers/rendering/renderer_rd/storage_rd/render_scene_data_rd.h b/servers/rendering/renderer_rd/storage_rd/render_scene_data_rd.h index fdb71afbf5..c3d33d3379 100644 --- a/servers/rendering/renderer_rd/storage_rd/render_scene_data_rd.h +++ b/servers/rendering/renderer_rd/storage_rd/render_scene_data_rd.h @@ -95,7 +95,7 @@ public: virtual Projection get_view_projection(uint32_t p_view) const override; RID create_uniform_buffer(); - void update_ubo(RID p_uniform_buffer, RS::ViewportDebugDraw p_debug_mode, RID p_env, RID p_reflection_probe_instance, RID p_camera_attributes, bool p_pancake_shadows, const Size2i &p_screen_size, const Size2 &p_viewport_size, const Color &p_default_bg_color, float p_luminance_multiplier, bool p_opaque_render_buffers, bool p_apply_alpha_multiplier); + void update_ubo(RID p_uniform_buffer, RSE::ViewportDebugDraw p_debug_mode, RID p_env, RID p_reflection_probe_instance, RID p_camera_attributes, bool p_pancake_shadows, const Size2i &p_screen_size, const Size2 &p_viewport_size, const Color &p_default_bg_color, float p_luminance_multiplier, bool p_opaque_render_buffers, bool p_apply_alpha_multiplier); virtual RID get_uniform_buffer() const override; static uint32_t get_uniform_buffer_size_bytes() { return sizeof(UBODATA); } diff --git a/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp b/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp index 83f07b8e29..e568343c10 100644 --- a/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp @@ -33,9 +33,11 @@ #include "../effects/copy_effects.h" #include "../framebuffer_cache_rd.h" #include "../uniform_set_cache_rd.h" -#include "material_storage.h" -#include "render_scene_buffers_rd.h" + #include "servers/rendering/renderer_rd/renderer_scene_render_rd.h" +#include "servers/rendering/renderer_rd/storage_rd/material_storage.h" +#include "servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h" +#include "servers/rendering/rendering_server.h" using namespace RendererRD; @@ -756,18 +758,18 @@ void TextureStorage::canvas_texture_free(RID p_rid) { canvas_texture_owner.free(p_rid); } -void TextureStorage::canvas_texture_set_channel(RID p_canvas_texture, RS::CanvasTextureChannel p_channel, RID p_texture) { +void TextureStorage::canvas_texture_set_channel(RID p_canvas_texture, RSE::CanvasTextureChannel p_channel, RID p_texture) { CanvasTexture *ct = canvas_texture_owner.get_or_null(p_canvas_texture); ERR_FAIL_NULL(ct); switch (p_channel) { - case RS::CANVAS_TEXTURE_CHANNEL_DIFFUSE: { + case RSE::CANVAS_TEXTURE_CHANNEL_DIFFUSE: { ct->diffuse = p_texture; } break; - case RS::CANVAS_TEXTURE_CHANNEL_NORMAL: { + case RSE::CANVAS_TEXTURE_CHANNEL_NORMAL: { ct->normal_map = p_texture; } break; - case RS::CANVAS_TEXTURE_CHANNEL_SPECULAR: { + case RSE::CANVAS_TEXTURE_CHANNEL_SPECULAR: { ct->specular = p_texture; } break; } @@ -784,21 +786,21 @@ void TextureStorage::canvas_texture_set_shading_parameters(RID p_canvas_texture, ct->specular_color.a = p_shininess; } -void TextureStorage::canvas_texture_set_texture_filter(RID p_canvas_texture, RS::CanvasItemTextureFilter p_filter) { +void TextureStorage::canvas_texture_set_texture_filter(RID p_canvas_texture, RSE::CanvasItemTextureFilter p_filter) { CanvasTexture *ct = canvas_texture_owner.get_or_null(p_canvas_texture); ERR_FAIL_NULL(ct); ct->texture_filter = p_filter; } -void TextureStorage::canvas_texture_set_texture_repeat(RID p_canvas_texture, RS::CanvasItemTextureRepeat p_repeat) { +void TextureStorage::canvas_texture_set_texture_repeat(RID p_canvas_texture, RSE::CanvasItemTextureRepeat p_repeat) { CanvasTexture *ct = canvas_texture_owner.get_or_null(p_canvas_texture); ERR_FAIL_NULL(ct); ct->texture_repeat = p_repeat; } -TextureStorage::CanvasTextureInfo TextureStorage::canvas_texture_get_info(RID p_texture, RS::CanvasItemTextureFilter p_base_filter, RS::CanvasItemTextureRepeat p_base_repeat, bool p_use_srgb, bool p_texture_is_data) { +TextureStorage::CanvasTextureInfo TextureStorage::canvas_texture_get_info(RID p_texture, RSE::CanvasItemTextureFilter p_base_filter, RSE::CanvasItemTextureRepeat p_base_repeat, bool p_use_srgb, bool p_texture_is_data) { MaterialStorage *material_storage = MaterialStorage::get_singleton(); CanvasTexture *ct = nullptr; @@ -823,11 +825,11 @@ TextureStorage::CanvasTextureInfo TextureStorage::canvas_texture_get_info(RID p_ return CanvasTextureInfo(); //invalid texture RID } - RS::CanvasItemTextureFilter filter = ct->texture_filter != RS::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ? ct->texture_filter : p_base_filter; - ERR_FAIL_COND_V(filter == RS::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT, CanvasTextureInfo()); + RSE::CanvasItemTextureFilter filter = ct->texture_filter != RSE::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT ? ct->texture_filter : p_base_filter; + ERR_FAIL_COND_V(filter == RSE::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT, CanvasTextureInfo()); - RS::CanvasItemTextureRepeat repeat = ct->texture_repeat != RS::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT ? ct->texture_repeat : p_base_repeat; - ERR_FAIL_COND_V(repeat == RS::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT, CanvasTextureInfo()); + RSE::CanvasItemTextureRepeat repeat = ct->texture_repeat != RSE::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT ? ct->texture_repeat : p_base_repeat; + ERR_FAIL_COND_V(repeat == RSE::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT, CanvasTextureInfo()); CanvasTextureCache &ctc = ct->info_cache[int(p_use_srgb)]; if (!RD::get_singleton()->texture_is_valid(ctc.diffuse) || @@ -999,11 +1001,11 @@ void TextureStorage::texture_2d_initialize(RID p_texture, const Ref &p_im texture_owner.initialize_rid(p_texture, texture); } -void TextureStorage::texture_2d_layered_initialize(RID p_texture, const Vector> &p_layers, RS::TextureLayeredType p_layered_type) { +void TextureStorage::texture_2d_layered_initialize(RID p_texture, const Vector> &p_layers, RSE::TextureLayeredType p_layered_type) { ERR_FAIL_COND(p_layers.is_empty()); - ERR_FAIL_COND(p_layered_type == RS::TEXTURE_LAYERED_CUBEMAP && p_layers.size() != 6); - ERR_FAIL_COND(p_layered_type == RS::TEXTURE_LAYERED_CUBEMAP_ARRAY && (p_layers.size() < 6 || (p_layers.size() % 6) != 0)); + ERR_FAIL_COND(p_layered_type == RSE::TEXTURE_LAYERED_CUBEMAP && p_layers.size() != 6); + ERR_FAIL_COND(p_layered_type == RSE::TEXTURE_LAYERED_CUBEMAP_ARRAY && (p_layers.size() < 6 || (p_layers.size() % 6) != 0)); TextureToRDFormat ret_format; Vector> images; @@ -1046,13 +1048,13 @@ void TextureStorage::texture_2d_layered_initialize(RID p_texture, const Vectorget_format(); switch (p_layered_type) { - case RS::TEXTURE_LAYERED_2D_ARRAY: { + case RSE::TEXTURE_LAYERED_2D_ARRAY: { texture.rd_type = RD::TEXTURE_TYPE_2D_ARRAY; } break; - case RS::TEXTURE_LAYERED_CUBEMAP: { + case RSE::TEXTURE_LAYERED_CUBEMAP: { texture.rd_type = RD::TEXTURE_TYPE_CUBE; } break; - case RS::TEXTURE_LAYERED_CUBEMAP_ARRAY: { + case RSE::TEXTURE_LAYERED_CUBEMAP_ARRAY: { texture.rd_type = RD::TEXTURE_TYPE_CUBE_ARRAY; } break; default: @@ -1252,7 +1254,7 @@ void TextureStorage::texture_proxy_initialize(RID p_texture, RID p_base) { tex->proxies.push_back(p_texture); } -void TextureStorage::texture_drawable_initialize(RID p_texture, int p_width, int p_height, RS::TextureDrawableFormat p_format, const Color &p_color, bool p_with_mipmaps) { +void TextureStorage::texture_drawable_initialize(RID p_texture, int p_width, int p_height, RSE::TextureDrawableFormat p_format, const Color &p_color, bool p_with_mipmaps) { // Near identical to Texture_2D_initialize, Generates an empty white image based on parameters // GUARDRAIL: Bad Widths/Heights @@ -1261,16 +1263,16 @@ void TextureStorage::texture_drawable_initialize(RID p_texture, int p_width, int Image::Format format; switch (p_format) { - case RS::TEXTURE_DRAWABLE_FORMAT_RGBA8: + case RSE::TEXTURE_DRAWABLE_FORMAT_RGBA8: format = Image::FORMAT_RGBA8; break; - case RS::TEXTURE_DRAWABLE_FORMAT_RGBA8_SRGB: + case RSE::TEXTURE_DRAWABLE_FORMAT_RGBA8_SRGB: format = Image::FORMAT_RGBA8; break; - case RS::TEXTURE_DRAWABLE_FORMAT_RGBAH: + case RSE::TEXTURE_DRAWABLE_FORMAT_RGBAH: format = Image::FORMAT_RGBAH; break; - case RS::TEXTURE_DRAWABLE_FORMAT_RGBAF: + case RSE::TEXTURE_DRAWABLE_FORMAT_RGBAF: format = Image::FORMAT_RGBAF; break; default: @@ -1354,23 +1356,23 @@ void TextureStorage::texture_drawable_initialize(RID p_texture, int p_width, int // Note: We make some big assumptions about format and usage. If developers need more control, // they should use RD::texture_create_from_extension() instead. -RID TextureStorage::texture_create_from_native_handle(RS::TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers, RS::TextureLayeredType p_layered_type) { +RID TextureStorage::texture_create_from_native_handle(RSE::TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers, RSE::TextureLayeredType p_layered_type) { RD::TextureType type; switch (p_type) { - case RS::TEXTURE_TYPE_2D: + case RSE::TEXTURE_TYPE_2D: type = RD::TEXTURE_TYPE_2D; break; - case RS::TEXTURE_TYPE_3D: + case RSE::TEXTURE_TYPE_3D: type = RD::TEXTURE_TYPE_3D; break; - case RS::TEXTURE_TYPE_LAYERED: - if (p_layered_type == RS::TEXTURE_LAYERED_2D_ARRAY) { + case RSE::TEXTURE_TYPE_LAYERED: + if (p_layered_type == RSE::TEXTURE_LAYERED_2D_ARRAY) { type = RD::TEXTURE_TYPE_2D_ARRAY; - } else if (p_layered_type == RS::TEXTURE_LAYERED_CUBEMAP) { + } else if (p_layered_type == RSE::TEXTURE_LAYERED_CUBEMAP) { type = RD::TEXTURE_TYPE_CUBE; - } else if (p_layered_type == RS::TEXTURE_LAYERED_CUBEMAP_ARRAY) { + } else if (p_layered_type == RSE::TEXTURE_LAYERED_CUBEMAP_ARRAY) { type = RD::TEXTURE_TYPE_CUBE_ARRAY; } else { // Arbitrary fallback. @@ -1696,7 +1698,7 @@ void TextureStorage::texture_drawable_blit_rect(const TypedArray &p_texture // Load Target Textures if (i < p_textures.size()) { Texture *tex = get_texture(p_textures[i]); - srgb_mask += get_texture(p_textures[i])->drawable_type == RS::TEXTURE_DRAWABLE_FORMAT_RGBA8_SRGB ? srgbMaskArray[i] : 0; + srgb_mask += get_texture(p_textures[i])->drawable_type == RSE::TEXTURE_DRAWABLE_FORMAT_RGBA8_SRGB ? srgbMaskArray[i] : 0; ERR_FAIL_NULL_MSG(tex, "Drawable Texture target cannot be null."); ERR_FAIL_COND_MSG(p_to_mipmap >= tex->mipmaps || p_to_mipmap >= tex->cached_rd_slices.size(), vformat("Drawable Texture Target does not have mipmap level %d.", p_to_mipmap)); if (i > 0) { @@ -1806,8 +1808,8 @@ void TextureStorage::texture_2d_placeholder_initialize(RID p_texture) { texture_2d_initialize(p_texture, texture_2d_placeholder); } -void TextureStorage::texture_2d_layered_placeholder_initialize(RID p_texture, RS::TextureLayeredType p_layered_type) { - if (p_layered_type == RS::TEXTURE_LAYERED_2D_ARRAY) { +void TextureStorage::texture_2d_layered_placeholder_initialize(RID p_texture, RSE::TextureLayeredType p_layered_type) { + if (p_layered_type == RSE::TEXTURE_LAYERED_2D_ARRAY) { texture_2d_layered_initialize(p_texture, texture_2d_array_placeholder, p_layered_type); } else { texture_2d_layered_initialize(p_texture, cubemap_placeholder, p_layered_type); @@ -2069,7 +2071,7 @@ void TextureStorage::texture_debug_usage(List *r_info) { tinfo.width = t->width; tinfo.height = t->height; tinfo.bytes = Image::get_image_data_size(t->width, t->height, t->format, t->mipmaps > 1); - tinfo.type = static_cast(t->type); + tinfo.type = static_cast(t->type); switch (t->type) { case TextureType::TYPE_3D: @@ -2098,7 +2100,7 @@ Size2 TextureStorage::texture_size_with_proxy(RID p_proxy) { return texture_2d_get_size(p_proxy); } -void TextureStorage::texture_rd_initialize(RID p_texture, const RID &p_rd_texture, const RS::TextureLayeredType p_layer_type) { +void TextureStorage::texture_rd_initialize(RID p_texture, const RID &p_rd_texture, const RSE::TextureLayeredType p_layer_type) { ERR_FAIL_COND(!RD::get_singleton()->texture_is_valid(p_rd_texture)); // TODO : investigate if we can support this, will need to be able to obtain the order and obtain the slice info @@ -3272,7 +3274,7 @@ void TextureStorage::decal_initialize(RID p_decal) { void TextureStorage::decal_free(RID p_rid) { Decal *decal = decal_owner.get_or_null(p_rid); - for (int i = 0; i < RS::DECAL_TEXTURE_MAX; i++) { + for (int i = 0; i < RSE::DECAL_TEXTURE_MAX; i++) { if (decal->textures[i].is_valid() && owns_texture(decal->textures[i])) { texture_remove_from_decal_atlas(decal->textures[i]); } @@ -3288,10 +3290,10 @@ void TextureStorage::decal_set_size(RID p_decal, const Vector3 &p_size) { decal->dependency.changed_notify(Dependency::DEPENDENCY_CHANGED_AABB); } -void TextureStorage::decal_set_texture(RID p_decal, RS::DecalTexture p_type, RID p_texture) { +void TextureStorage::decal_set_texture(RID p_decal, RSE::DecalTexture p_type, RID p_texture) { Decal *decal = decal_owner.get_or_null(p_decal); ERR_FAIL_NULL(decal); - ERR_FAIL_INDEX(p_type, RS::DECAL_TEXTURE_MAX); + ERR_FAIL_INDEX(p_type, RSE::DECAL_TEXTURE_MAX); if (decal->textures[p_type] == p_texture) { return; @@ -3766,8 +3768,8 @@ void TextureStorage::update_decal_buffer(const PagedArray &p_decals, const dd.normal[2] = normal.z; dd.normal_fade = decal->normal_fade; - RID albedo_tex = decal->textures[RS::DECAL_TEXTURE_ALBEDO]; - RID emission_tex = decal->textures[RS::DECAL_TEXTURE_EMISSION]; + RID albedo_tex = decal->textures[RSE::DECAL_TEXTURE_ALBEDO]; + RID emission_tex = decal->textures[RSE::DECAL_TEXTURE_EMISSION]; if (albedo_tex.is_valid()) { Rect2 rect = decal_atlas_get_texture_rect(albedo_tex); dd.albedo_rect[0] = rect.position.x; @@ -3784,7 +3786,7 @@ void TextureStorage::update_decal_buffer(const PagedArray &p_decals, const dd.albedo_rect[3] = 0; } - RID normal_tex = decal->textures[RS::DECAL_TEXTURE_NORMAL]; + RID normal_tex = decal->textures[RSE::DECAL_TEXTURE_NORMAL]; if (normal_tex.is_valid()) { Rect2 rect = decal_atlas_get_texture_rect(normal_tex); @@ -3802,7 +3804,7 @@ void TextureStorage::update_decal_buffer(const PagedArray &p_decals, const dd.normal_rect[3] = 0; } - RID orm_tex = decal->textures[RS::DECAL_TEXTURE_ORM]; + RID orm_tex = decal->textures[RSE::DECAL_TEXTURE_ORM]; if (orm_tex.is_valid()) { Rect2 rect = decal_atlas_get_texture_rect(orm_tex); dd.orm_rect[0] = rect.position.x; @@ -3855,7 +3857,7 @@ RID TextureStorage::RenderTarget::get_framebuffer() { // We can't resolve into our overridden buffer as it won't be marked as a resolve buffer. // This is only applicable when OpenXR is used and 2D rendering is skipped. - if (msaa != RS::VIEWPORT_MSAA_DISABLED && overridden.color.is_null()) { + if (msaa != RSE::VIEWPORT_MSAA_DISABLED && overridden.color.is_null()) { // Render into our MSAA buffer and resolve into our color buffer. return FramebufferCacheRD::get_singleton()->get_cache_multiview(view_count, color_multisample, color); } else { @@ -3951,7 +3953,7 @@ void TextureStorage::_update_render_target(RenderTarget *rt) { rd_color_attachment_format.usage_bits = render_target_get_color_usage_bits(false); rd_color_attachment_format.shareable_formats.push_back(rt->color_format); rd_color_attachment_format.shareable_formats.push_back(rt->color_format_srgb); - if (rt->msaa != RS::VIEWPORT_MSAA_DISABLED) { + if (rt->msaa != RSE::VIEWPORT_MSAA_DISABLED) { rd_color_attachment_format.is_resolve_buffer = true; } } @@ -3960,10 +3962,10 @@ void TextureStorage::_update_render_target(RenderTarget *rt) { rt->color = RD::get_singleton()->texture_create(rd_color_attachment_format, rd_view); ERR_FAIL_COND(rt->color.is_null()); - if (rt->msaa != RS::VIEWPORT_MSAA_DISABLED) { + if (rt->msaa != RSE::VIEWPORT_MSAA_DISABLED) { // Use the texture format of the color attachment for the multisample color attachment. RD::TextureFormat rd_color_multisample_format = rd_color_attachment_format; - const RD::TextureSamples texture_samples[RS::VIEWPORT_MSAA_MAX] = { + const RD::TextureSamples texture_samples[RSE::VIEWPORT_MSAA_MAX] = { RD::TEXTURE_SAMPLES_1, RD::TEXTURE_SAMPLES_2, RD::TEXTURE_SAMPLES_4, @@ -4242,7 +4244,7 @@ void TextureStorage::render_target_set_as_unused(RID p_render_target) { rt->was_used = false; } -void TextureStorage::render_target_set_msaa(RID p_render_target, RS::ViewportMSAA p_msaa) { +void TextureStorage::render_target_set_msaa(RID p_render_target, RSE::ViewportMSAA p_msaa) { RenderTarget *rt = render_target_owner.get_or_null(p_render_target); ERR_FAIL_NULL(rt); if (p_msaa == rt->msaa) { @@ -4253,9 +4255,9 @@ void TextureStorage::render_target_set_msaa(RID p_render_target, RS::ViewportMSA _update_render_target(rt); } -RS::ViewportMSAA TextureStorage::render_target_get_msaa(RID p_render_target) const { +RSE::ViewportMSAA TextureStorage::render_target_get_msaa(RID p_render_target) const { RenderTarget *rt = render_target_owner.get_or_null(p_render_target); - ERR_FAIL_NULL_V(rt, RS::VIEWPORT_MSAA_DISABLED); + ERR_FAIL_NULL_V(rt, RSE::VIEWPORT_MSAA_DISABLED); return rt->msaa; } @@ -4417,7 +4419,7 @@ void TextureStorage::render_target_do_clear_request(RID p_render_target) { rt->msaa_needs_resolve = false; } -void TextureStorage::render_target_set_sdf_size_and_scale(RID p_render_target, RS::ViewportSDFOversize p_size, RS::ViewportSDFScale p_scale) { +void TextureStorage::render_target_set_sdf_size_and_scale(RID p_render_target, RSE::ViewportSDFOversize p_size, RSE::ViewportSDFScale p_scale) { RenderTarget *rt = render_target_owner.get_or_null(p_render_target); ERR_FAIL_NULL(rt); if (rt->sdf_oversize == p_size && rt->sdf_scale == p_scale) { @@ -4434,16 +4436,16 @@ Rect2i TextureStorage::_render_target_get_sdf_rect(const RenderTarget *rt) const Size2i margin; int scale; switch (rt->sdf_oversize) { - case RS::VIEWPORT_SDF_OVERSIZE_100_PERCENT: { + case RSE::VIEWPORT_SDF_OVERSIZE_100_PERCENT: { scale = 100; } break; - case RS::VIEWPORT_SDF_OVERSIZE_120_PERCENT: { + case RSE::VIEWPORT_SDF_OVERSIZE_120_PERCENT: { scale = 120; } break; - case RS::VIEWPORT_SDF_OVERSIZE_150_PERCENT: { + case RSE::VIEWPORT_SDF_OVERSIZE_150_PERCENT: { scale = 150; } break; - case RS::VIEWPORT_SDF_OVERSIZE_200_PERCENT: { + case RSE::VIEWPORT_SDF_OVERSIZE_200_PERCENT: { scale = 200; } break; default: { @@ -4532,13 +4534,13 @@ void TextureStorage::_render_target_allocate_sdf(RenderTarget *rt) { int scale; switch (rt->sdf_scale) { - case RS::VIEWPORT_SDF_SCALE_100_PERCENT: { + case RSE::VIEWPORT_SDF_SCALE_100_PERCENT: { scale = 100; } break; - case RS::VIEWPORT_SDF_SCALE_50_PERCENT: { + case RSE::VIEWPORT_SDF_SCALE_50_PERCENT: { scale = 50; } break; - case RS::VIEWPORT_SDF_SCALE_25_PERCENT: { + case RSE::VIEWPORT_SDF_SCALE_25_PERCENT: { scale = 25; } break; default: { @@ -4650,13 +4652,13 @@ void TextureStorage::render_target_sdf_process(RID p_render_target) { bool shrink = false; switch (rt->sdf_scale) { - case RS::VIEWPORT_SDF_SCALE_50_PERCENT: { + case RSE::VIEWPORT_SDF_SCALE_50_PERCENT: { push_constant.size[0] >>= 1; push_constant.size[1] >>= 1; push_constant.shift = 1; shrink = true; } break; - case RS::VIEWPORT_SDF_SCALE_25_PERCENT: { + case RSE::VIEWPORT_SDF_SCALE_25_PERCENT: { push_constant.size[0] >>= 2; push_constant.size[1] >>= 2; push_constant.shift = 2; @@ -4858,30 +4860,30 @@ void TextureStorage::render_target_set_backbuffer_uniform_set(RID p_render_targe rt->backbuffer_uniform_set = p_uniform_set; } -void TextureStorage::render_target_set_vrs_mode(RID p_render_target, RS::ViewportVRSMode p_mode) { +void TextureStorage::render_target_set_vrs_mode(RID p_render_target, RSE::ViewportVRSMode p_mode) { RenderTarget *rt = render_target_owner.get_or_null(p_render_target); ERR_FAIL_NULL(rt); rt->vrs_mode = p_mode; } -RS::ViewportVRSMode TextureStorage::render_target_get_vrs_mode(RID p_render_target) const { +RSE::ViewportVRSMode TextureStorage::render_target_get_vrs_mode(RID p_render_target) const { RenderTarget *rt = render_target_owner.get_or_null(p_render_target); - ERR_FAIL_NULL_V(rt, RS::VIEWPORT_VRS_DISABLED); + ERR_FAIL_NULL_V(rt, RSE::VIEWPORT_VRS_DISABLED); return rt->vrs_mode; } -void TextureStorage::render_target_set_vrs_update_mode(RID p_render_target, RS::ViewportVRSUpdateMode p_mode) { +void TextureStorage::render_target_set_vrs_update_mode(RID p_render_target, RSE::ViewportVRSUpdateMode p_mode) { RenderTarget *rt = render_target_owner.get_or_null(p_render_target); ERR_FAIL_NULL(rt); rt->vrs_update_mode = p_mode; } -RS::ViewportVRSUpdateMode TextureStorage::render_target_get_vrs_update_mode(RID p_render_target) const { +RSE::ViewportVRSUpdateMode TextureStorage::render_target_get_vrs_update_mode(RID p_render_target) const { RenderTarget *rt = render_target_owner.get_or_null(p_render_target); - ERR_FAIL_NULL_V(rt, RS::VIEWPORT_VRS_UPDATE_DISABLED); + ERR_FAIL_NULL_V(rt, RSE::VIEWPORT_VRS_UPDATE_DISABLED); return rt->vrs_update_mode; } diff --git a/servers/rendering/renderer_rd/storage_rd/texture_storage.h b/servers/rendering/renderer_rd/storage_rd/texture_storage.h index 2f6cf38806..f2c9e6e8ea 100644 --- a/servers/rendering/renderer_rd/storage_rd/texture_storage.h +++ b/servers/rendering/renderer_rd/storage_rd/texture_storage.h @@ -123,8 +123,8 @@ private: Color specular_color = Color(1, 1, 1, 1); float shininess = 1.0; - RS::CanvasItemTextureFilter texture_filter = RS::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT; - RS::CanvasItemTextureRepeat texture_repeat = RS::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT; + RSE::CanvasItemTextureFilter texture_filter = RSE::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT; + RSE::CanvasItemTextureRepeat texture_repeat = RSE::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT; CanvasTextureCache info_cache[2]; InvalidationCallback invalidated_callback = nullptr; @@ -147,8 +147,8 @@ private: class Texture { public: TextureType type; - RS::TextureLayeredType layered_type = RS::TEXTURE_LAYERED_2D_ARRAY; - RS::TextureDrawableFormat drawable_type = RS::TEXTURE_DRAWABLE_FORMAT_RGBA8; + RSE::TextureLayeredType layered_type = RSE::TEXTURE_LAYERED_2D_ARRAY; + RSE::TextureDrawableFormat drawable_type = RSE::TEXTURE_DRAWABLE_FORMAT_RGBA8; RenderingDevice::TextureType rd_type; RID rd_texture; @@ -293,7 +293,7 @@ private: struct Decal { Vector3 size = Vector3(2, 2, 2); - RID textures[RS::DECAL_TEXTURE_MAX]; + RID textures[RSE::DECAL_TEXTURE_MAX]; float emission_energy = 1.0; float albedo_mix = 1.0; Color modulate = Color(1, 1, 1, 1); @@ -366,7 +366,7 @@ private: Vector color_slices; RID color_multisample; // Needed when 2D MSAA is enabled. - RS::ViewportMSAA msaa = RS::VIEWPORT_MSAA_DISABLED; // 2D MSAA mode + RSE::ViewportMSAA msaa = RSE::VIEWPORT_MSAA_DISABLED; // 2D MSAA mode bool msaa_needs_resolve = false; // 2D MSAA needs resolved //used for retrieving from CPU @@ -394,13 +394,13 @@ private: RID sdf_buffer_process[2]; RID sdf_buffer_read; RID sdf_buffer_process_uniform_sets[2]; - RS::ViewportSDFOversize sdf_oversize = RS::VIEWPORT_SDF_OVERSIZE_120_PERCENT; - RS::ViewportSDFScale sdf_scale = RS::VIEWPORT_SDF_SCALE_50_PERCENT; + RSE::ViewportSDFOversize sdf_oversize = RSE::VIEWPORT_SDF_OVERSIZE_120_PERCENT; + RSE::ViewportSDFScale sdf_scale = RSE::VIEWPORT_SDF_SCALE_50_PERCENT; Size2i process_size; // VRS - RS::ViewportVRSMode vrs_mode = RS::VIEWPORT_VRS_DISABLED; - RS::ViewportVRSUpdateMode vrs_update_mode = RS::VIEWPORT_VRS_UPDATE_ONCE; + RSE::ViewportVRSMode vrs_mode = RSE::VIEWPORT_VRS_DISABLED; + RSE::ViewportVRSUpdateMode vrs_update_mode = RSE::VIEWPORT_VRS_UPDATE_ONCE; RID vrs_texture; Rect2i render_region; @@ -531,13 +531,13 @@ public: virtual void canvas_texture_initialize(RID p_rid) override; virtual void canvas_texture_free(RID p_rid) override; - virtual void canvas_texture_set_channel(RID p_canvas_texture, RS::CanvasTextureChannel p_channel, RID p_texture) override; + virtual void canvas_texture_set_channel(RID p_canvas_texture, RSE::CanvasTextureChannel p_channel, RID p_texture) override; virtual void canvas_texture_set_shading_parameters(RID p_canvas_texture, const Color &p_base_color, float p_shininess) override; - virtual void canvas_texture_set_texture_filter(RID p_item, RS::CanvasItemTextureFilter p_filter) override; - virtual void canvas_texture_set_texture_repeat(RID p_item, RS::CanvasItemTextureRepeat p_repeat) override; + virtual void canvas_texture_set_texture_filter(RID p_item, RSE::CanvasItemTextureFilter p_filter) override; + virtual void canvas_texture_set_texture_repeat(RID p_item, RSE::CanvasItemTextureRepeat p_repeat) override; - CanvasTextureInfo canvas_texture_get_info(RID p_texture, RS::CanvasItemTextureFilter p_base_filter, RS::CanvasItemTextureRepeat p_base_repeat, bool p_use_srgb, bool p_texture_is_data); + CanvasTextureInfo canvas_texture_get_info(RID p_texture, RSE::CanvasItemTextureFilter p_base_filter, RSE::CanvasItemTextureRepeat p_base_repeat, bool p_use_srgb, bool p_texture_is_data); void canvas_texture_set_invalidation_callback(RID p_canvas_texture, InvalidationCallback p_callback, void *p_userdata); /* Texture API */ @@ -548,13 +548,13 @@ public: virtual void texture_free(RID p_rid) override; virtual void texture_2d_initialize(RID p_texture, const Ref &p_image) override; - virtual void texture_2d_layered_initialize(RID p_texture, const Vector> &p_layers, RS::TextureLayeredType p_layered_type) override; + virtual void texture_2d_layered_initialize(RID p_texture, const Vector> &p_layers, RSE::TextureLayeredType p_layered_type) override; virtual void texture_3d_initialize(RID p_texture, Image::Format, int p_width, int p_height, int p_depth, bool p_mipmaps, const Vector> &p_data) override; virtual void texture_external_initialize(RID p_texture, int p_width, int p_height, uint64_t p_external_buffer) override; virtual void texture_proxy_initialize(RID p_texture, RID p_base) override; //all slices, then all the mipmaps, must be coherent - virtual void texture_drawable_initialize(RID p_texture, int p_width, int p_height, RS::TextureDrawableFormat p_format, const Color &p_color, bool p_with_mipmaps) override; + virtual void texture_drawable_initialize(RID p_texture, int p_width, int p_height, RSE::TextureDrawableFormat p_format, const Color &p_color, bool p_with_mipmaps) override; - virtual RID texture_create_from_native_handle(RS::TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers = 1, RS::TextureLayeredType p_layered_type = RS::TEXTURE_LAYERED_2D_ARRAY) override; + virtual RID texture_create_from_native_handle(RSE::TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers = 1, RSE::TextureLayeredType p_layered_type = RSE::TEXTURE_LAYERED_2D_ARRAY) override; virtual void texture_2d_update(RID p_texture, const Ref &p_image, int p_layer = 0) override; virtual void texture_3d_update(RID p_texture, const Vector> &p_data) override; @@ -570,7 +570,7 @@ public: //these two APIs can be used together or in combination with the others. virtual void texture_2d_placeholder_initialize(RID p_texture) override; - virtual void texture_2d_layered_placeholder_initialize(RID p_texture, RenderingServer::TextureLayeredType p_layered_type) override; + virtual void texture_2d_layered_placeholder_initialize(RID p_texture, RSE::TextureLayeredType p_layered_type) override; virtual void texture_3d_placeholder_initialize(RID p_texture) override; virtual Ref texture_2d_get(RID p_texture) const override; @@ -598,7 +598,7 @@ public: virtual Size2 texture_size_with_proxy(RID p_proxy) override; - virtual void texture_rd_initialize(RID p_texture, const RID &p_rd_texture, const RS::TextureLayeredType p_layer_type = RS::TEXTURE_LAYERED_2D_ARRAY) override; + virtual void texture_rd_initialize(RID p_texture, const RID &p_rd_texture, const RSE::TextureLayeredType p_layer_type = RSE::TEXTURE_LAYERED_2D_ARRAY) override; virtual RID texture_get_rd_texture(RID p_texture, bool p_srgb = false) const override; virtual uint64_t texture_get_native_handle(RID p_texture, bool p_srgb = false) const override; @@ -655,7 +655,7 @@ public: virtual void decal_free(RID p_rid) override; virtual void decal_set_size(RID p_decal, const Vector3 &p_size) override; - virtual void decal_set_texture(RID p_decal, RS::DecalTexture p_type, RID p_texture) override; + virtual void decal_set_texture(RID p_decal, RSE::DecalTexture p_type, RID p_texture) override; virtual void decal_set_emission_energy(RID p_decal, float p_energy) override; virtual void decal_set_albedo_mix(RID p_decal, float p_mix) override; virtual void decal_set_modulate(RID p_decal, const Color &p_modulate) override; @@ -675,7 +675,7 @@ public: return decal->size; } - _FORCE_INLINE_ RID decal_get_texture(RID p_decal, RS::DecalTexture p_texture) { + _FORCE_INLINE_ RID decal_get_texture(RID p_decal, RSE::DecalTexture p_texture) { const Decal *decal = decal_owner.get_or_null(p_decal); return decal->textures[p_texture]; } @@ -792,8 +792,8 @@ public: virtual bool render_target_get_direct_to_screen(RID p_render_target) const override; virtual bool render_target_was_used(RID p_render_target) const override; virtual void render_target_set_as_unused(RID p_render_target) override; - virtual void render_target_set_msaa(RID p_render_target, RS::ViewportMSAA p_msaa) override; - virtual RS::ViewportMSAA render_target_get_msaa(RID p_render_target) const override; + virtual void render_target_set_msaa(RID p_render_target, RSE::ViewportMSAA p_msaa) override; + virtual RSE::ViewportMSAA render_target_get_msaa(RID p_render_target) const override; virtual void render_target_set_msaa_needs_resolve(RID p_render_target, bool p_needs_resolve) override; virtual bool render_target_get_msaa_needs_resolve(RID p_render_target) const override; virtual void render_target_do_msaa_resolve(RID p_render_target) override; @@ -813,7 +813,7 @@ public: virtual void render_target_disable_clear_request(RID p_render_target) override; virtual void render_target_do_clear_request(RID p_render_target) override; - virtual void render_target_set_sdf_size_and_scale(RID p_render_target, RS::ViewportSDFOversize p_size, RS::ViewportSDFScale p_scale) override; + virtual void render_target_set_sdf_size_and_scale(RID p_render_target, RSE::ViewportSDFOversize p_size, RSE::ViewportSDFScale p_scale) override; RID render_target_get_sdf_texture(RID p_render_target); RID render_target_get_sdf_framebuffer(RID p_render_target); void render_target_sdf_process(RID p_render_target); @@ -821,10 +821,10 @@ public: virtual void render_target_mark_sdf_enabled(RID p_render_target, bool p_enabled) override; bool render_target_is_sdf_enabled(RID p_render_target) const; - virtual void render_target_set_vrs_mode(RID p_render_target, RS::ViewportVRSMode p_mode) override; - virtual RS::ViewportVRSMode render_target_get_vrs_mode(RID p_render_target) const override; - virtual void render_target_set_vrs_update_mode(RID p_render_target, RS::ViewportVRSUpdateMode p_mode) override; - virtual RS::ViewportVRSUpdateMode render_target_get_vrs_update_mode(RID p_render_target) const override; + virtual void render_target_set_vrs_mode(RID p_render_target, RSE::ViewportVRSMode p_mode) override; + virtual RSE::ViewportVRSMode render_target_get_vrs_mode(RID p_render_target) const override; + virtual void render_target_set_vrs_update_mode(RID p_render_target, RSE::ViewportVRSUpdateMode p_mode) override; + virtual RSE::ViewportVRSUpdateMode render_target_get_vrs_update_mode(RID p_render_target) const override; virtual void render_target_set_vrs_texture(RID p_render_target, RID p_texture) override; virtual RID render_target_get_vrs_texture(RID p_render_target) const override; diff --git a/servers/rendering/renderer_rd/storage_rd/utilities.cpp b/servers/rendering/renderer_rd/storage_rd/utilities.cpp index a3c5e68ef4..916f757cfe 100644 --- a/servers/rendering/renderer_rd/storage_rd/utilities.cpp +++ b/servers/rendering/renderer_rd/storage_rd/utilities.cpp @@ -50,42 +50,42 @@ Utilities::~Utilities() { /* INSTANCES */ -RS::InstanceType Utilities::get_base_type(RID p_rid) const { +RSE::InstanceType Utilities::get_base_type(RID p_rid) const { if (RendererRD::MeshStorage::get_singleton()->owns_mesh(p_rid)) { - return RS::INSTANCE_MESH; + return RSE::INSTANCE_MESH; } if (RendererRD::MeshStorage::get_singleton()->owns_multimesh(p_rid)) { - return RS::INSTANCE_MULTIMESH; + return RSE::INSTANCE_MULTIMESH; } if (RendererRD::LightStorage::get_singleton()->owns_reflection_probe(p_rid)) { - return RS::INSTANCE_REFLECTION_PROBE; + return RSE::INSTANCE_REFLECTION_PROBE; } if (RendererRD::TextureStorage::get_singleton()->owns_decal(p_rid)) { - return RS::INSTANCE_DECAL; + return RSE::INSTANCE_DECAL; } if (RendererRD::GI::get_singleton()->owns_voxel_gi(p_rid)) { - return RS::INSTANCE_VOXEL_GI; + return RSE::INSTANCE_VOXEL_GI; } if (RendererRD::LightStorage::get_singleton()->owns_light(p_rid)) { - return RS::INSTANCE_LIGHT; + return RSE::INSTANCE_LIGHT; } if (RendererRD::LightStorage::get_singleton()->owns_lightmap(p_rid)) { - return RS::INSTANCE_LIGHTMAP; + return RSE::INSTANCE_LIGHTMAP; } if (RendererRD::ParticlesStorage::get_singleton()->owns_particles(p_rid)) { - return RS::INSTANCE_PARTICLES; + return RSE::INSTANCE_PARTICLES; } if (RendererRD::ParticlesStorage::get_singleton()->owns_particles_collision(p_rid)) { - return RS::INSTANCE_PARTICLES_COLLISION; + return RSE::INSTANCE_PARTICLES_COLLISION; } if (RendererRD::Fog::get_singleton()->owns_fog_volume(p_rid)) { - return RS::INSTANCE_FOG_VOLUME; + return RSE::INSTANCE_FOG_VOLUME; } if (owns_visibility_notifier(p_rid)) { - return RS::INSTANCE_VISIBLITY_NOTIFIER; + return RSE::INSTANCE_VISIBLITY_NOTIFIER; } - return RS::INSTANCE_NONE; + return RSE::INSTANCE_NONE; } bool Utilities::free(RID p_rid) { @@ -299,12 +299,12 @@ void Utilities::update_memory_info() { total_mem_cache = RenderingDevice::get_singleton()->get_memory_usage(RenderingDevice::MEMORY_TOTAL); } -uint64_t Utilities::get_rendering_info(RS::RenderingInfo p_info) { - if (p_info == RS::RENDERING_INFO_TEXTURE_MEM_USED) { +uint64_t Utilities::get_rendering_info(RSE::RenderingInfo p_info) { + if (p_info == RSE::RENDERING_INFO_TEXTURE_MEM_USED) { return texture_mem_cache; - } else if (p_info == RS::RENDERING_INFO_BUFFER_MEM_USED) { + } else if (p_info == RSE::RENDERING_INFO_BUFFER_MEM_USED) { return buffer_mem_cache; - } else if (p_info == RS::RENDERING_INFO_VIDEO_MEM_USED) { + } else if (p_info == RSE::RENDERING_INFO_VIDEO_MEM_USED) { return total_mem_cache; } return 0; diff --git a/servers/rendering/renderer_rd/storage_rd/utilities.h b/servers/rendering/renderer_rd/storage_rd/utilities.h index 94003fc1f8..5a1246ba13 100644 --- a/servers/rendering/renderer_rd/storage_rd/utilities.h +++ b/servers/rendering/renderer_rd/storage_rd/utilities.h @@ -67,7 +67,7 @@ public: /* INSTANCES */ - virtual RS::InstanceType get_base_type(RID p_rid) const override; + virtual RSE::InstanceType get_base_type(RID p_rid) const override; virtual bool free(RID p_rid) override; /* DEPENDENCIES */ @@ -108,7 +108,7 @@ public: virtual void update_memory_info() override; - virtual uint64_t get_rendering_info(RS::RenderingInfo p_info) override; + virtual uint64_t get_rendering_info(RSE::RenderingInfo p_info) override; virtual String get_video_adapter_name() const override; virtual String get_video_adapter_vendor() const override; diff --git a/servers/rendering/renderer_scene_cull.cpp b/servers/rendering/renderer_scene_cull.cpp index f27d7240d1..23fbff83eb 100644 --- a/servers/rendering/renderer_scene_cull.cpp +++ b/servers/rendering/renderer_scene_cull.cpp @@ -33,8 +33,9 @@ #include "core/config/project_settings.h" #include "core/math/geometry_3d.h" #include "core/object/worker_thread_pool.h" -#include "rendering_light_culler.h" -#include "rendering_server_default.h" +#include "servers/rendering/rendering_light_culler.h" +#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_default.h" #if defined(DEBUG_ENABLED) && defined(TOOLS_ENABLED) // This is used only to obtain node paths for user-friendly physics interpolation warnings. @@ -175,7 +176,7 @@ void RendererSceneCull::_instance_pair(Instance *p_A, Instance *p_B) { SWAP(A, B); //lesser always first } - if (B->base_type == RS::INSTANCE_LIGHT && ((1 << A->base_type) & RS::INSTANCE_GEOMETRY_MASK)) { + if (B->base_type == RSE::INSTANCE_LIGHT && ((1 << A->base_type) & RSE::INSTANCE_GEOMETRY_MASK)) { InstanceLightData *light = static_cast(B->base_data); InstanceGeometryData *geom = static_cast(A->base_data); @@ -212,7 +213,7 @@ void RendererSceneCull::_instance_pair(Instance *p_A, Instance *p_B) { } } - } else if (self->geometry_instance_pair_mask & (1 << RS::INSTANCE_REFLECTION_PROBE) && B->base_type == RS::INSTANCE_REFLECTION_PROBE && ((1 << A->base_type) & RS::INSTANCE_GEOMETRY_MASK)) { + } else if (self->geometry_instance_pair_mask & (1 << RSE::INSTANCE_REFLECTION_PROBE) && B->base_type == RSE::INSTANCE_REFLECTION_PROBE && ((1 << A->base_type) & RSE::INSTANCE_GEOMETRY_MASK)) { if (!(A->layer_mask & RSG::light_storage->reflection_probe_get_reflection_mask(B->base))) { // Early return if the object's layer mask doesn't match the reflection mask. return; @@ -229,7 +230,7 @@ void RendererSceneCull::_instance_pair(Instance *p_A, Instance *p_B) { idata.flags |= InstanceData::FLAG_GEOM_REFLECTION_DIRTY; } - } else if (self->geometry_instance_pair_mask & (1 << RS::INSTANCE_DECAL) && B->base_type == RS::INSTANCE_DECAL && ((1 << A->base_type) & RS::INSTANCE_GEOMETRY_MASK)) { + } else if (self->geometry_instance_pair_mask & (1 << RSE::INSTANCE_DECAL) && B->base_type == RSE::INSTANCE_DECAL && ((1 << A->base_type) & RSE::INSTANCE_GEOMETRY_MASK)) { InstanceDecalData *decal = static_cast(B->base_data); InstanceGeometryData *geom = static_cast(A->base_data); @@ -246,7 +247,7 @@ void RendererSceneCull::_instance_pair(Instance *p_A, Instance *p_B) { idata.flags |= InstanceData::FLAG_GEOM_DECAL_DIRTY; } - } else if (B->base_type == RS::INSTANCE_LIGHTMAP && ((1 << A->base_type) & RS::INSTANCE_GEOMETRY_MASK)) { + } else if (B->base_type == RSE::INSTANCE_LIGHTMAP && ((1 << A->base_type) & RSE::INSTANCE_GEOMETRY_MASK)) { InstanceLightmapData *lightmap_data = static_cast(B->base_data); InstanceGeometryData *geom = static_cast(A->base_data); @@ -261,7 +262,7 @@ void RendererSceneCull::_instance_pair(Instance *p_A, Instance *p_B) { ((RendererSceneCull *)self)->_instance_queue_update(A, false, false); //need to update capture } - } else if (self->geometry_instance_pair_mask & (1 << RS::INSTANCE_VOXEL_GI) && B->base_type == RS::INSTANCE_VOXEL_GI && ((1 << A->base_type) & RS::INSTANCE_GEOMETRY_MASK)) { + } else if (self->geometry_instance_pair_mask & (1 << RSE::INSTANCE_VOXEL_GI) && B->base_type == RSE::INSTANCE_VOXEL_GI && ((1 << A->base_type) & RSE::INSTANCE_GEOMETRY_MASK)) { InstanceVoxelGIData *voxel_gi = static_cast(B->base_data); InstanceGeometryData *geom = static_cast(A->base_data); @@ -278,10 +279,10 @@ void RendererSceneCull::_instance_pair(Instance *p_A, Instance *p_B) { idata.flags |= InstanceData::FLAG_GEOM_VOXEL_GI_DIRTY; } - } else if (B->base_type == RS::INSTANCE_VOXEL_GI && A->base_type == RS::INSTANCE_LIGHT) { + } else if (B->base_type == RSE::INSTANCE_VOXEL_GI && A->base_type == RSE::INSTANCE_LIGHT) { InstanceVoxelGIData *voxel_gi = static_cast(B->base_data); voxel_gi->lights.insert(A); - } else if (B->base_type == RS::INSTANCE_PARTICLES_COLLISION && A->base_type == RS::INSTANCE_PARTICLES) { + } else if (B->base_type == RSE::INSTANCE_PARTICLES_COLLISION && A->base_type == RSE::INSTANCE_PARTICLES) { InstanceParticlesCollisionData *collision = static_cast(B->base_data); if ((collision->cull_mask & A->layer_mask)) { @@ -300,7 +301,7 @@ void RendererSceneCull::_instance_unpair(Instance *p_A, Instance *p_B) { SWAP(A, B); //lesser always first } - if (B->base_type == RS::INSTANCE_LIGHT && ((1 << A->base_type) & RS::INSTANCE_GEOMETRY_MASK)) { + if (B->base_type == RSE::INSTANCE_LIGHT && ((1 << A->base_type) & RSE::INSTANCE_GEOMETRY_MASK)) { InstanceLightData *light = static_cast(B->base_data); InstanceGeometryData *geom = static_cast(A->base_data); @@ -347,7 +348,7 @@ void RendererSceneCull::_instance_unpair(Instance *p_A, Instance *p_B) { } } - } else if (self->geometry_instance_pair_mask & (1 << RS::INSTANCE_REFLECTION_PROBE) && B->base_type == RS::INSTANCE_REFLECTION_PROBE && ((1 << A->base_type) & RS::INSTANCE_GEOMETRY_MASK)) { + } else if (self->geometry_instance_pair_mask & (1 << RSE::INSTANCE_REFLECTION_PROBE) && B->base_type == RSE::INSTANCE_REFLECTION_PROBE && ((1 << A->base_type) & RSE::INSTANCE_GEOMETRY_MASK)) { InstanceReflectionProbeData *reflection_probe = static_cast(B->base_data); InstanceGeometryData *geom = static_cast(A->base_data); @@ -359,7 +360,7 @@ void RendererSceneCull::_instance_unpair(Instance *p_A, Instance *p_B) { idata.flags |= InstanceData::FLAG_GEOM_REFLECTION_DIRTY; } - } else if (self->geometry_instance_pair_mask & (1 << RS::INSTANCE_DECAL) && B->base_type == RS::INSTANCE_DECAL && ((1 << A->base_type) & RS::INSTANCE_GEOMETRY_MASK)) { + } else if (self->geometry_instance_pair_mask & (1 << RSE::INSTANCE_DECAL) && B->base_type == RSE::INSTANCE_DECAL && ((1 << A->base_type) & RSE::INSTANCE_GEOMETRY_MASK)) { InstanceDecalData *decal = static_cast(B->base_data); InstanceGeometryData *geom = static_cast(A->base_data); @@ -376,7 +377,7 @@ void RendererSceneCull::_instance_unpair(Instance *p_A, Instance *p_B) { idata.flags |= InstanceData::FLAG_GEOM_DECAL_DIRTY; } - } else if (B->base_type == RS::INSTANCE_LIGHTMAP && ((1 << A->base_type) & RS::INSTANCE_GEOMETRY_MASK)) { + } else if (B->base_type == RSE::INSTANCE_LIGHTMAP && ((1 << A->base_type) & RSE::INSTANCE_GEOMETRY_MASK)) { InstanceLightmapData *lightmap_data = static_cast(B->base_data); InstanceGeometryData *geom = static_cast(A->base_data); if (A->dynamic_gi) { @@ -391,7 +392,7 @@ void RendererSceneCull::_instance_unpair(Instance *p_A, Instance *p_B) { self->_instance_queue_update(A, false, false); //need to update capture } - } else if (self->geometry_instance_pair_mask & (1 << RS::INSTANCE_VOXEL_GI) && B->base_type == RS::INSTANCE_VOXEL_GI && ((1 << A->base_type) & RS::INSTANCE_GEOMETRY_MASK)) { + } else if (self->geometry_instance_pair_mask & (1 << RSE::INSTANCE_VOXEL_GI) && B->base_type == RSE::INSTANCE_VOXEL_GI && ((1 << A->base_type) & RSE::INSTANCE_GEOMETRY_MASK)) { InstanceVoxelGIData *voxel_gi = static_cast(B->base_data); InstanceGeometryData *geom = static_cast(A->base_data); @@ -407,10 +408,10 @@ void RendererSceneCull::_instance_unpair(Instance *p_A, Instance *p_B) { idata.flags |= InstanceData::FLAG_GEOM_VOXEL_GI_DIRTY; } - } else if (B->base_type == RS::INSTANCE_VOXEL_GI && A->base_type == RS::INSTANCE_LIGHT) { + } else if (B->base_type == RSE::INSTANCE_VOXEL_GI && A->base_type == RSE::INSTANCE_LIGHT) { InstanceVoxelGIData *voxel_gi = static_cast(B->base_data); voxel_gi->lights.erase(A); - } else if (B->base_type == RS::INSTANCE_PARTICLES_COLLISION && A->base_type == RS::INSTANCE_PARTICLES) { + } else if (B->base_type == RSE::INSTANCE_PARTICLES_COLLISION && A->base_type == RSE::INSTANCE_PARTICLES) { InstanceParticlesCollisionData *collision = static_cast(B->base_data); if ((collision->cull_mask & A->layer_mask)) { @@ -576,7 +577,7 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) { Scenario *scenario = instance->scenario; - if (instance->base_type != RS::INSTANCE_NONE) { + if (instance->base_type != RSE::INSTANCE_NONE) { //free anything related to that base if (scenario && instance->indexer_id.is_valid()) { @@ -590,16 +591,16 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) { } switch (instance->base_type) { - case RS::INSTANCE_MESH: - case RS::INSTANCE_MULTIMESH: - case RS::INSTANCE_PARTICLES: { + case RSE::INSTANCE_MESH: + case RSE::INSTANCE_MULTIMESH: + case RSE::INSTANCE_PARTICLES: { InstanceGeometryData *geom = static_cast(instance->base_data); scene_render->geometry_instance_free(geom->geometry_instance); } break; - case RS::INSTANCE_LIGHT: { + case RSE::INSTANCE_LIGHT: { InstanceLightData *light = static_cast(instance->base_data); - if (scenario && instance->visible && RSG::light_storage->light_get_type(instance->base) != RS::LIGHT_DIRECTIONAL && light->bake_mode == RS::LIGHT_BAKE_DYNAMIC) { + if (scenario && instance->visible && RSG::light_storage->light_get_type(instance->base) != RSE::LIGHT_DIRECTIONAL && light->bake_mode == RSE::LIGHT_BAKE_DYNAMIC) { scenario->dynamic_lights.erase(light->instance); } @@ -614,30 +615,30 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) { } RSG::light_storage->light_instance_free(light->instance); } break; - case RS::INSTANCE_PARTICLES_COLLISION: { + case RSE::INSTANCE_PARTICLES_COLLISION: { InstanceParticlesCollisionData *collision = static_cast(instance->base_data); RSG::utilities->free(collision->instance); } break; - case RS::INSTANCE_FOG_VOLUME: { + case RSE::INSTANCE_FOG_VOLUME: { InstanceFogVolumeData *volume = static_cast(instance->base_data); scene_render->free(volume->instance); } break; - case RS::INSTANCE_VISIBLITY_NOTIFIER: { + case RSE::INSTANCE_VISIBLITY_NOTIFIER: { //none } break; - case RS::INSTANCE_REFLECTION_PROBE: { + case RSE::INSTANCE_REFLECTION_PROBE: { InstanceReflectionProbeData *reflection_probe = static_cast(instance->base_data); RSG::light_storage->reflection_probe_instance_free(reflection_probe->instance); if (reflection_probe->update_list.in_list()) { reflection_probe_render_list.remove(&reflection_probe->update_list); } } break; - case RS::INSTANCE_DECAL: { + case RSE::INSTANCE_DECAL: { InstanceDecalData *decal = static_cast(instance->base_data); RSG::texture_storage->decal_instance_free(decal->instance); } break; - case RS::INSTANCE_LIGHTMAP: { + case RSE::INSTANCE_LIGHTMAP: { InstanceLightmapData *lightmap_data = static_cast(instance->base_data); //erase dependencies, since no longer a lightmap while (lightmap_data->users.begin()) { @@ -645,7 +646,7 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) { } RSG::light_storage->lightmap_instance_free(lightmap_data->instance); } break; - case RS::INSTANCE_VOXEL_GI: { + case RSE::INSTANCE_VOXEL_GI: { InstanceVoxelGIData *voxel_gi = static_cast(instance->base_data); #ifdef DEBUG_ENABLED if (voxel_gi->geometries.size()) { @@ -664,7 +665,7 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) { scene_render->free(voxel_gi->probe_instance); } break; - case RS::INSTANCE_OCCLUDER: { + case RSE::INSTANCE_OCCLUDER: { if (scenario && instance->visible) { RendererSceneOcclusionCull::get_singleton()->scenario_remove_instance(instance->scenario->self, p_instance); } @@ -681,26 +682,26 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) { instance->materials.clear(); } - instance->base_type = RS::INSTANCE_NONE; + instance->base_type = RSE::INSTANCE_NONE; instance->base = RID(); if (p_base.is_valid()) { instance->base_type = RSG::utilities->get_base_type(p_base); // fix up a specific malfunctioning case before the switch, so it can be handled - if (instance->base_type == RS::INSTANCE_NONE && RendererSceneOcclusionCull::get_singleton()->is_occluder(p_base)) { - instance->base_type = RS::INSTANCE_OCCLUDER; + if (instance->base_type == RSE::INSTANCE_NONE && RendererSceneOcclusionCull::get_singleton()->is_occluder(p_base)) { + instance->base_type = RSE::INSTANCE_OCCLUDER; } switch (instance->base_type) { - case RS::INSTANCE_NONE: { + case RSE::INSTANCE_NONE: { ERR_PRINT_ONCE("unimplemented base type encountered in renderer scene cull"); return; } - case RS::INSTANCE_LIGHT: { + case RSE::INSTANCE_LIGHT: { InstanceLightData *light = memnew(InstanceLightData); - if (scenario && RSG::light_storage->light_get_type(p_base) == RS::LIGHT_DIRECTIONAL) { + if (scenario && RSG::light_storage->light_get_type(p_base) == RSE::LIGHT_DIRECTIONAL) { light->D = scenario->directional_lights.push_back(instance); } @@ -708,9 +709,9 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) { instance->base_data = light; } break; - case RS::INSTANCE_MESH: - case RS::INSTANCE_MULTIMESH: - case RS::INSTANCE_PARTICLES: { + case RSE::INSTANCE_MESH: + case RSE::INSTANCE_MULTIMESH: + case RSE::INSTANCE_PARTICLES: { InstanceGeometryData *geom = memnew(InstanceGeometryData); instance->base_data = geom; geom->geometry_instance = scene_render->geometry_instance_create(p_base); @@ -730,7 +731,7 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) { geom->geometry_instance->set_use_dynamic_gi(instance->dynamic_gi); geom->geometry_instance->set_use_lightmap(RID(), instance->lightmap_uv_scale, instance->lightmap_slice_index); geom->geometry_instance->set_instance_shader_uniforms_offset(instance->instance_uniforms.location()); - geom->geometry_instance->set_cast_double_sided_shadows(instance->cast_shadows == RS::SHADOW_CASTING_SETTING_DOUBLE_SIDED); + geom->geometry_instance->set_cast_double_sided_shadows(instance->cast_shadows == RSE::SHADOW_CASTING_SETTING_DOUBLE_SIDED); if (instance->lightmap_sh.size() == 9) { geom->geometry_instance->set_lightmap_capture(instance->lightmap_sh.ptr()); } @@ -742,31 +743,31 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) { dep_instance->scenario->instance_data[dep_instance->array_index].parent_array_index = instance->array_index; } } break; - case RS::INSTANCE_PARTICLES_COLLISION: { + case RSE::INSTANCE_PARTICLES_COLLISION: { InstanceParticlesCollisionData *collision = memnew(InstanceParticlesCollisionData); collision->instance = RSG::particles_storage->particles_collision_instance_create(p_base); RSG::particles_storage->particles_collision_instance_set_active(collision->instance, instance->visible); instance->base_data = collision; } break; - case RS::INSTANCE_FOG_VOLUME: { + case RSE::INSTANCE_FOG_VOLUME: { InstanceFogVolumeData *volume = memnew(InstanceFogVolumeData); volume->instance = scene_render->fog_volume_instance_create(p_base); scene_render->fog_volume_instance_set_active(volume->instance, instance->visible); instance->base_data = volume; } break; - case RS::INSTANCE_VISIBLITY_NOTIFIER: { + case RSE::INSTANCE_VISIBLITY_NOTIFIER: { InstanceVisibilityNotifierData *vnd = memnew(InstanceVisibilityNotifierData); vnd->base = p_base; instance->base_data = vnd; } break; - case RS::INSTANCE_REFLECTION_PROBE: { + case RSE::INSTANCE_REFLECTION_PROBE: { InstanceReflectionProbeData *reflection_probe = memnew(InstanceReflectionProbeData); reflection_probe->owner = instance; instance->base_data = reflection_probe; reflection_probe->instance = RSG::light_storage->reflection_probe_instance_create(p_base); } break; - case RS::INSTANCE_DECAL: { + case RSE::INSTANCE_DECAL: { InstanceDecalData *decal = memnew(InstanceDecalData); decal->owner = instance; instance->base_data = decal; @@ -774,12 +775,12 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) { decal->instance = RSG::texture_storage->decal_instance_create(p_base); RSG::texture_storage->decal_instance_set_sorting_offset(decal->instance, instance->sorting_offset); } break; - case RS::INSTANCE_LIGHTMAP: { + case RSE::INSTANCE_LIGHTMAP: { InstanceLightmapData *lightmap_data = memnew(InstanceLightmapData); instance->base_data = lightmap_data; lightmap_data->instance = RSG::light_storage->lightmap_instance_create(p_base); } break; - case RS::INSTANCE_VOXEL_GI: { + case RSE::INSTANCE_VOXEL_GI: { InstanceVoxelGIData *voxel_gi = memnew(InstanceVoxelGIData); instance->base_data = voxel_gi; voxel_gi->owner = instance; @@ -791,7 +792,7 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) { voxel_gi->probe_instance = scene_render->voxel_gi_instance_create(p_base); } break; - case RS::INSTANCE_OCCLUDER: { + case RSE::INSTANCE_OCCLUDER: { if (scenario) { RendererSceneOcclusionCull::get_singleton()->scenario_set_instance(scenario->self, p_instance, p_base, instance->transform, instance->visible); } @@ -802,7 +803,7 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) { instance->base = p_base; - if (instance->base_type == RS::INSTANCE_MESH) { + if (instance->base_type == RSE::INSTANCE_MESH) { _instance_update_mesh_instance(instance); } @@ -825,9 +826,9 @@ void RendererSceneCull::instance_set_scenario(RID p_instance, RID p_scenario) { } switch (instance->base_type) { - case RS::INSTANCE_LIGHT: { + case RSE::INSTANCE_LIGHT: { InstanceLightData *light = static_cast(instance->base_data); - if (instance->visible && RSG::light_storage->light_get_type(instance->base) != RS::LIGHT_DIRECTIONAL && light->bake_mode == RS::LIGHT_BAKE_DYNAMIC) { + if (instance->visible && RSG::light_storage->light_get_type(instance->base) != RSE::LIGHT_DIRECTIONAL && light->bake_mode == RSE::LIGHT_BAKE_DYNAMIC) { instance->scenario->dynamic_lights.erase(light->instance); } @@ -841,15 +842,15 @@ void RendererSceneCull::instance_set_scenario(RID p_instance, RID p_scenario) { light->D = nullptr; } } break; - case RS::INSTANCE_REFLECTION_PROBE: { + case RSE::INSTANCE_REFLECTION_PROBE: { InstanceReflectionProbeData *reflection_probe = static_cast(instance->base_data); RSG::light_storage->reflection_probe_release_atlas_index(reflection_probe->instance); } break; - case RS::INSTANCE_PARTICLES_COLLISION: { + case RSE::INSTANCE_PARTICLES_COLLISION: { heightfield_particle_colliders_update_list.erase(instance); } break; - case RS::INSTANCE_VOXEL_GI: { + case RSE::INSTANCE_VOXEL_GI: { InstanceVoxelGIData *voxel_gi = static_cast(instance->base_data); #ifdef DEBUG_ENABLED @@ -867,7 +868,7 @@ void RendererSceneCull::instance_set_scenario(RID p_instance, RID p_scenario) { voxel_gi_update_list.remove(&voxel_gi->update_element); } } break; - case RS::INSTANCE_OCCLUDER: { + case RSE::INSTANCE_OCCLUDER: { if (instance->visible) { RendererSceneOcclusionCull::get_singleton()->scenario_remove_instance(instance->scenario->self, p_instance); } @@ -888,20 +889,20 @@ void RendererSceneCull::instance_set_scenario(RID p_instance, RID p_scenario) { scenario->instances.add(&instance->scenario_item); switch (instance->base_type) { - case RS::INSTANCE_LIGHT: { + case RSE::INSTANCE_LIGHT: { InstanceLightData *light = static_cast(instance->base_data); - if (RSG::light_storage->light_get_type(instance->base) == RS::LIGHT_DIRECTIONAL) { + if (RSG::light_storage->light_get_type(instance->base) == RSE::LIGHT_DIRECTIONAL) { light->D = scenario->directional_lights.push_back(instance); } } break; - case RS::INSTANCE_VOXEL_GI: { + case RSE::INSTANCE_VOXEL_GI: { InstanceVoxelGIData *voxel_gi = static_cast(instance->base_data); if (!voxel_gi->update_element.in_list()) { voxel_gi_update_list.add(&voxel_gi->update_element); } } break; - case RS::INSTANCE_OCCLUDER: { + case RSE::INSTANCE_OCCLUDER: { RendererSceneOcclusionCull::get_singleton()->scenario_set_instance(scenario->self, p_instance, instance->base, instance->transform, instance->visible); } break; default: { @@ -922,8 +923,8 @@ void RendererSceneCull::instance_set_layer_mask(RID p_instance, uint32_t p_mask) // Particles always need to be unpaired. Geometry may need to be unpaired, but only if lights or decals use pairing. // Needs to happen before layer mask changes so we can avoid attempting to unpair something that was never paired. - if (instance->base_type == RS::INSTANCE_PARTICLES || - (((geometry_instance_pair_mask & (1 << RS::INSTANCE_LIGHT)) || (geometry_instance_pair_mask & (1 << RS::INSTANCE_DECAL))) && ((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK))) { + if (instance->base_type == RSE::INSTANCE_PARTICLES || + (((geometry_instance_pair_mask & (1 << RSE::INSTANCE_LIGHT)) || (geometry_instance_pair_mask & (1 << RSE::INSTANCE_DECAL))) && ((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK))) { _unpair_instance(instance); singleton->_instance_queue_update(instance, false, false); } @@ -933,7 +934,7 @@ void RendererSceneCull::instance_set_layer_mask(RID p_instance, uint32_t p_mask) instance->scenario->instance_data[instance->array_index].layer_mask = p_mask; } - if ((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK && instance->base_data) { + if ((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK && instance->base_data) { InstanceGeometryData *geom = static_cast(instance->base_data); ERR_FAIL_NULL(geom->geometry_instance); geom->geometry_instance->set_layer_mask(p_mask); @@ -954,11 +955,11 @@ void RendererSceneCull::instance_set_pivot_data(RID p_instance, float p_sorting_ instance->sorting_offset = p_sorting_offset; instance->use_aabb_center = p_use_aabb_center; - if ((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK && instance->base_data) { + if ((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK && instance->base_data) { InstanceGeometryData *geom = static_cast(instance->base_data); ERR_FAIL_NULL(geom->geometry_instance); geom->geometry_instance->set_pivot_data(p_sorting_offset, p_use_aabb_center); - } else if (instance->base_type == RS::INSTANCE_DECAL && instance->base_data) { + } else if (instance->base_type == RSE::INSTANCE_DECAL && instance->base_data) { InstanceDecalData *decal = static_cast(instance->base_data); RSG::texture_storage->decal_instance_set_sorting_offset(decal->instance, instance->sorting_offset); } @@ -970,7 +971,7 @@ void RendererSceneCull::instance_geometry_set_transparency(RID p_instance, float instance->transparency = p_transparency; - if ((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK && instance->base_data) { + if ((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK && instance->base_data) { InstanceGeometryData *geom = static_cast(instance->base_data); ERR_FAIL_NULL(geom->geometry_instance); geom->geometry_instance->set_transparency(p_transparency); @@ -1023,7 +1024,7 @@ void RendererSceneCull::instance_set_surface_override_material(RID p_instance, i Instance *instance = instance_owner.get_or_null(p_instance); ERR_FAIL_NULL(instance); - if (instance->base_type == RS::INSTANCE_MESH) { + if (instance->base_type == RSE::INSTANCE_MESH) { //may not have been updated yet, may also have not been set yet. When updated will be correcte, worst case instance->materials.resize(MAX(p_surface + 1, RSG::mesh_storage->mesh_get_surface_count(instance->base))); } @@ -1053,9 +1054,9 @@ void RendererSceneCull::instance_set_visible(RID p_instance, bool p_visible) { _unpair_instance(instance); } - if (instance->base_type == RS::INSTANCE_LIGHT) { + if (instance->base_type == RSE::INSTANCE_LIGHT) { InstanceLightData *light = static_cast(instance->base_data); - if (instance->scenario && RSG::light_storage->light_get_type(instance->base) != RS::LIGHT_DIRECTIONAL && light->bake_mode == RS::LIGHT_BAKE_DYNAMIC) { + if (instance->scenario && RSG::light_storage->light_get_type(instance->base) != RSE::LIGHT_DIRECTIONAL && light->bake_mode == RSE::LIGHT_BAKE_DYNAMIC) { if (p_visible) { instance->scenario->dynamic_lights.push_back(light->instance); } else { @@ -1064,17 +1065,17 @@ void RendererSceneCull::instance_set_visible(RID p_instance, bool p_visible) { } } - if (instance->base_type == RS::INSTANCE_PARTICLES_COLLISION) { + if (instance->base_type == RSE::INSTANCE_PARTICLES_COLLISION) { InstanceParticlesCollisionData *collision = static_cast(instance->base_data); RSG::particles_storage->particles_collision_instance_set_active(collision->instance, p_visible); } - if (instance->base_type == RS::INSTANCE_FOG_VOLUME) { + if (instance->base_type == RSE::INSTANCE_FOG_VOLUME) { InstanceFogVolumeData *volume = static_cast(instance->base_data); scene_render->fog_volume_instance_set_active(volume->instance, p_visible); } - if (instance->base_type == RS::INSTANCE_OCCLUDER) { + if (instance->base_type == RSE::INSTANCE_OCCLUDER) { if (instance->scenario) { RendererSceneOcclusionCull::get_singleton()->scenario_set_instance(instance->scenario->self, p_instance, instance->base, instance->transform, p_visible); } @@ -1128,7 +1129,7 @@ void RendererSceneCull::instance_attach_skeleton(RID p_instance, RID p_skeleton) _instance_queue_update(instance, true, true); - if ((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK && instance->base_data) { + if ((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK && instance->base_data) { _instance_update_mesh_instance(instance); InstanceGeometryData *geom = static_cast(instance->base_data); @@ -1232,14 +1233,14 @@ Vector RendererSceneCull::instances_cull_convex(const Vector &p return cull_convex.instances; } -void RendererSceneCull::instance_geometry_set_flag(RID p_instance, RS::InstanceFlags p_flags, bool p_enabled) { +void RendererSceneCull::instance_geometry_set_flag(RID p_instance, RSE::InstanceFlags p_flags, bool p_enabled) { Instance *instance = instance_owner.get_or_null(p_instance); ERR_FAIL_NULL(instance); - //ERR_FAIL_COND(((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK)); + //ERR_FAIL_COND(((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK)); switch (p_flags) { - case RS::INSTANCE_FLAG_USE_BAKED_LIGHT: { + case RSE::INSTANCE_FLAG_USE_BAKED_LIGHT: { instance->baked_light = p_enabled; if (instance->scenario && instance->array_index >= 0) { @@ -1251,14 +1252,14 @@ void RendererSceneCull::instance_geometry_set_flag(RID p_instance, RS::InstanceF } } - if ((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK && instance->base_data) { + if ((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK && instance->base_data) { InstanceGeometryData *geom = static_cast(instance->base_data); ERR_FAIL_NULL(geom->geometry_instance); geom->geometry_instance->set_use_baked_light(p_enabled); } } break; - case RS::INSTANCE_FLAG_USE_DYNAMIC_GI: { + case RSE::INSTANCE_FLAG_USE_DYNAMIC_GI: { if (p_enabled == instance->dynamic_gi) { //bye, redundant return; @@ -1272,14 +1273,14 @@ void RendererSceneCull::instance_geometry_set_flag(RID p_instance, RS::InstanceF //once out of octree, can be changed instance->dynamic_gi = p_enabled; - if ((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK && instance->base_data) { + if ((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK && instance->base_data) { InstanceGeometryData *geom = static_cast(instance->base_data); ERR_FAIL_NULL(geom->geometry_instance); geom->geometry_instance->set_use_dynamic_gi(p_enabled); } } break; - case RS::INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE: { + case RSE::INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE: { instance->redraw_if_visible = p_enabled; if (instance->scenario && instance->array_index >= 0) { @@ -1292,7 +1293,7 @@ void RendererSceneCull::instance_geometry_set_flag(RID p_instance, RS::InstanceF } } break; - case RS::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING: { + case RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING: { instance->ignore_occlusion_culling = p_enabled; if (instance->scenario && instance->array_index >= 0) { @@ -1309,7 +1310,7 @@ void RendererSceneCull::instance_geometry_set_flag(RID p_instance, RS::InstanceF } } -void RendererSceneCull::instance_geometry_set_cast_shadows_setting(RID p_instance, RS::ShadowCastingSetting p_shadow_casting_setting) { +void RendererSceneCull::instance_geometry_set_cast_shadows_setting(RID p_instance, RSE::ShadowCastingSetting p_shadow_casting_setting) { Instance *instance = instance_owner.get_or_null(p_instance); ERR_FAIL_NULL(instance); @@ -1318,24 +1319,24 @@ void RendererSceneCull::instance_geometry_set_cast_shadows_setting(RID p_instanc if (instance->scenario && instance->array_index >= 0) { InstanceData &idata = instance->scenario->instance_data[instance->array_index]; - if (instance->cast_shadows != RS::SHADOW_CASTING_SETTING_OFF) { + if (instance->cast_shadows != RSE::SHADOW_CASTING_SETTING_OFF) { idata.flags |= InstanceData::FLAG_CAST_SHADOWS; } else { idata.flags &= ~InstanceData::FLAG_CAST_SHADOWS; } - if (instance->cast_shadows == RS::SHADOW_CASTING_SETTING_SHADOWS_ONLY) { + if (instance->cast_shadows == RSE::SHADOW_CASTING_SETTING_SHADOWS_ONLY) { idata.flags |= InstanceData::FLAG_CAST_SHADOWS_ONLY; } else { idata.flags &= ~InstanceData::FLAG_CAST_SHADOWS_ONLY; } } - if ((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK && instance->base_data) { + if ((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK && instance->base_data) { InstanceGeometryData *geom = static_cast(instance->base_data); ERR_FAIL_NULL(geom->geometry_instance); - geom->geometry_instance->set_cast_double_sided_shadows(instance->cast_shadows == RS::SHADOW_CASTING_SETTING_DOUBLE_SIDED); + geom->geometry_instance->set_cast_double_sided_shadows(instance->cast_shadows == RSE::SHADOW_CASTING_SETTING_DOUBLE_SIDED); } _instance_queue_update(instance, false, true); @@ -1348,7 +1349,7 @@ void RendererSceneCull::instance_geometry_set_material_override(RID p_instance, instance->material_override = p_material; _instance_queue_update(instance, false, true); - if ((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK && instance->base_data) { + if ((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK && instance->base_data) { InstanceGeometryData *geom = static_cast(instance->base_data); ERR_FAIL_NULL(geom->geometry_instance); geom->geometry_instance->set_material_override(p_material); @@ -1362,14 +1363,14 @@ void RendererSceneCull::instance_geometry_set_material_overlay(RID p_instance, R instance->material_overlay = p_material; _instance_queue_update(instance, false, true); - if ((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK && instance->base_data) { + if ((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK && instance->base_data) { InstanceGeometryData *geom = static_cast(instance->base_data); ERR_FAIL_NULL(geom->geometry_instance); geom->geometry_instance->set_material_overlay(p_material); } } -void RendererSceneCull::instance_geometry_set_visibility_range(RID p_instance, float p_min, float p_max, float p_min_margin, float p_max_margin, RS::VisibilityRangeFadeMode p_fade_mode) { +void RendererSceneCull::instance_geometry_set_visibility_range(RID p_instance, float p_min, float p_max, float p_min_margin, float p_max_margin, RSE::VisibilityRangeFadeMode p_fade_mode) { Instance *instance = instance_owner.get_or_null(p_instance); ERR_FAIL_NULL(instance); @@ -1455,7 +1456,7 @@ bool RendererSceneCull::_update_instance_visibility_depth(Instance *p_instance) } void RendererSceneCull::_update_instance_visibility_dependencies(Instance *p_instance) const { - bool is_geometry_instance = ((1 << p_instance->base_type) & RS::INSTANCE_GEOMETRY_MASK) && p_instance->base_data; + bool is_geometry_instance = ((1 << p_instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK) && p_instance->base_data; bool has_visibility_range = p_instance->visibility_range_begin > 0.0 || p_instance->visibility_range_end > 0.0; bool needs_visibility_cull = has_visibility_range && is_geometry_instance && p_instance->array_index != -1; @@ -1481,7 +1482,7 @@ void RendererSceneCull::_update_instance_visibility_dependencies(Instance *p_ins idata.visibility_index = p_instance->visibility_index; if (is_geometry_instance) { - if (has_visibility_range && p_instance->visibility_range_fade_mode == RS::VISIBILITY_RANGE_FADE_SELF) { + if (has_visibility_range && p_instance->visibility_range_fade_mode == RSE::VISIBILITY_RANGE_FADE_SELF) { bool begin_enabled = p_instance->visibility_range_begin > 0.0f; float begin_min = p_instance->visibility_range_begin - p_instance->visibility_range_begin_margin; float begin_max = p_instance->visibility_range_begin + p_instance->visibility_range_begin_margin; @@ -1535,7 +1536,7 @@ void RendererSceneCull::instance_geometry_set_lightmap(RID p_instance, RID p_lig lightmap_instance_rid = lightmap_data->instance; } - if ((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK && instance->base_data) { + if ((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK && instance->base_data) { InstanceGeometryData *geom = static_cast(instance->base_data); ERR_FAIL_NULL(geom->geometry_instance); geom->geometry_instance->set_use_lightmap(lightmap_instance_rid, p_lightmap_uv_scale, p_slice_index); @@ -1548,7 +1549,7 @@ void RendererSceneCull::instance_geometry_set_lod_bias(RID p_instance, float p_l instance->lod_bias = p_lod_bias; - if ((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK && instance->base_data) { + if ((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK && instance->base_data) { InstanceGeometryData *geom = static_cast(instance->base_data); ERR_FAIL_NULL(geom->geometry_instance); geom->geometry_instance->set_lod_bias(p_lod_bias); @@ -1580,7 +1581,7 @@ void RendererSceneCull::mesh_generate_pipelines(RID p_mesh, bool p_background_co scene_render->mesh_generate_pipelines(p_mesh, p_background_compilation); } -uint32_t RendererSceneCull::get_pipeline_compilations(RS::PipelineSource p_source) { +uint32_t RendererSceneCull::get_pipeline_compilations(RSE::PipelineSource p_source) { return scene_render->get_pipeline_compilations(p_source); } @@ -1608,22 +1609,22 @@ void RendererSceneCull::_update_instance(Instance *p_instance) const { // However it does seem that using the interpolated transform (transform) works for keeping AABBs // up to date to avoid culling errors. - if (p_instance->base_type == RS::INSTANCE_LIGHT) { + if (p_instance->base_type == RSE::INSTANCE_LIGHT) { InstanceLightData *light = static_cast(p_instance->base_data); RSG::light_storage->light_instance_set_transform(light->instance, *instance_xform); RSG::light_storage->light_instance_set_aabb(light->instance, instance_xform->xform(p_instance->aabb)); light->make_shadow_dirty(); - RS::LightBakeMode bake_mode = RSG::light_storage->light_get_bake_mode(p_instance->base); - if (RSG::light_storage->light_get_type(p_instance->base) != RS::LIGHT_DIRECTIONAL && bake_mode != light->bake_mode) { - if (p_instance->visible && p_instance->scenario && light->bake_mode == RS::LIGHT_BAKE_DYNAMIC) { + RSE::LightBakeMode bake_mode = RSG::light_storage->light_get_bake_mode(p_instance->base); + if (RSG::light_storage->light_get_type(p_instance->base) != RSE::LIGHT_DIRECTIONAL && bake_mode != light->bake_mode) { + if (p_instance->visible && p_instance->scenario && light->bake_mode == RSE::LIGHT_BAKE_DYNAMIC) { p_instance->scenario->dynamic_lights.erase(light->instance); } light->bake_mode = bake_mode; - if (p_instance->visible && p_instance->scenario && light->bake_mode == RS::LIGHT_BAKE_DYNAMIC) { + if (p_instance->visible && p_instance->scenario && light->bake_mode == RSE::LIGHT_BAKE_DYNAMIC) { p_instance->scenario->dynamic_lights.push_back(light->instance); } } @@ -1633,7 +1634,7 @@ void RendererSceneCull::_update_instance(Instance *p_instance) const { light->max_sdfgi_cascade = max_sdfgi_cascade; //should most likely make sdfgi dirty in scenario } light->cull_mask = RSG::light_storage->light_get_cull_mask(p_instance->base); - } else if (p_instance->base_type == RS::INSTANCE_REFLECTION_PROBE) { + } else if (p_instance->base_type == RSE::INSTANCE_REFLECTION_PROBE) { InstanceReflectionProbeData *reflection_probe = static_cast(p_instance->base_data); RSG::light_storage->reflection_probe_instance_set_transform(reflection_probe->instance, *instance_xform); @@ -1642,22 +1643,22 @@ void RendererSceneCull::_update_instance(Instance *p_instance) const { InstanceData &idata = p_instance->scenario->instance_data[p_instance->array_index]; idata.flags |= InstanceData::FLAG_REFLECTION_PROBE_DIRTY; } - } else if (p_instance->base_type == RS::INSTANCE_DECAL) { + } else if (p_instance->base_type == RSE::INSTANCE_DECAL) { InstanceDecalData *decal = static_cast(p_instance->base_data); RSG::texture_storage->decal_instance_set_transform(decal->instance, *instance_xform); decal->cull_mask = RSG::texture_storage->decal_get_cull_mask(p_instance->base); - } else if (p_instance->base_type == RS::INSTANCE_LIGHTMAP) { + } else if (p_instance->base_type == RSE::INSTANCE_LIGHTMAP) { InstanceLightmapData *lightmap = static_cast(p_instance->base_data); RSG::light_storage->lightmap_instance_set_transform(lightmap->instance, *instance_xform); - } else if (p_instance->base_type == RS::INSTANCE_VOXEL_GI) { + } else if (p_instance->base_type == RSE::INSTANCE_VOXEL_GI) { InstanceVoxelGIData *voxel_gi = static_cast(p_instance->base_data); scene_render->voxel_gi_instance_set_transform_to_data(voxel_gi->probe_instance, *instance_xform); - } else if (p_instance->base_type == RS::INSTANCE_PARTICLES) { + } else if (p_instance->base_type == RSE::INSTANCE_PARTICLES) { RSG::particles_storage->particles_set_emission_transform(p_instance->base, *instance_xform); - } else if (p_instance->base_type == RS::INSTANCE_PARTICLES_COLLISION) { + } else if (p_instance->base_type == RSE::INSTANCE_PARTICLES_COLLISION) { InstanceParticlesCollisionData *collision = static_cast(p_instance->base_data); //remove materials no longer used and un-own them @@ -1666,14 +1667,14 @@ void RendererSceneCull::_update_instance(Instance *p_instance) const { } RSG::particles_storage->particles_collision_instance_set_transform(collision->instance, *instance_xform); collision->cull_mask = RSG::particles_storage->particles_collision_get_cull_mask(p_instance->base); - } else if (p_instance->base_type == RS::INSTANCE_FOG_VOLUME) { + } else if (p_instance->base_type == RSE::INSTANCE_FOG_VOLUME) { InstanceFogVolumeData *volume = static_cast(p_instance->base_data); scene_render->fog_volume_instance_set_transform(volume->instance, *instance_xform); - } else if (p_instance->base_type == RS::INSTANCE_OCCLUDER) { + } else if (p_instance->base_type == RSE::INSTANCE_OCCLUDER) { if (p_instance->scenario) { RendererSceneOcclusionCull::get_singleton()->scenario_set_instance(p_instance->scenario->self, p_instance->self, p_instance->base, *instance_xform, p_instance->visible); } - } else if (p_instance->base_type == RS::INSTANCE_NONE) { + } else if (p_instance->base_type == RSE::INSTANCE_NONE) { return; } @@ -1681,7 +1682,7 @@ void RendererSceneCull::_update_instance(Instance *p_instance) const { return; } - if (p_instance->base_type == RS::INSTANCE_LIGHTMAP) { + if (p_instance->base_type == RSE::INSTANCE_LIGHTMAP) { //if this moved, update the captured objects InstanceLightmapData *lightmap_data = static_cast(p_instance->base_data); //erase dependencies, since no longer a lightmap @@ -1696,7 +1697,7 @@ void RendererSceneCull::_update_instance(Instance *p_instance) const { new_aabb = instance_xform->xform(p_instance->aabb); p_instance->transformed_aabb = new_aabb; - if ((1 << p_instance->base_type) & RS::INSTANCE_GEOMETRY_MASK) { + if ((1 << p_instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK) { InstanceGeometryData *geom = static_cast(p_instance->base_data); //make sure lights are updated if it casts shadow @@ -1750,7 +1751,7 @@ void RendererSceneCull::_update_instance(Instance *p_instance) const { } if (!p_instance->indexer_id.is_valid()) { - if ((1 << p_instance->base_type) & RS::INSTANCE_GEOMETRY_MASK) { + if ((1 << p_instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK) { p_instance->indexer_id = p_instance->scenario->indexers[Scenario::INDEXER_GEOMETRY].insert(bvh_aabb, p_instance); } else { p_instance->indexer_id = p_instance->scenario->indexers[Scenario::INDEXER_VOLUMES].insert(bvh_aabb, p_instance); @@ -1774,49 +1775,49 @@ void RendererSceneCull::_update_instance(Instance *p_instance) const { } switch (p_instance->base_type) { - case RS::INSTANCE_MESH: - case RS::INSTANCE_MULTIMESH: - case RS::INSTANCE_PARTICLES: { + case RSE::INSTANCE_MESH: + case RSE::INSTANCE_MULTIMESH: + case RSE::INSTANCE_PARTICLES: { InstanceGeometryData *geom = static_cast(p_instance->base_data); idata.instance_geometry = geom->geometry_instance; } break; - case RS::INSTANCE_LIGHT: { + case RSE::INSTANCE_LIGHT: { InstanceLightData *light_data = static_cast(p_instance->base_data); idata.instance_data_rid = light_data->instance.get_id(); light_data->uses_projector = RSG::light_storage->light_has_projector(p_instance->base); - light_data->uses_softshadow = RSG::light_storage->light_get_param(p_instance->base, RS::LIGHT_PARAM_SIZE) > CMP_EPSILON; + light_data->uses_softshadow = RSG::light_storage->light_get_param(p_instance->base, RSE::LIGHT_PARAM_SIZE) > CMP_EPSILON; } break; - case RS::INSTANCE_REFLECTION_PROBE: { + case RSE::INSTANCE_REFLECTION_PROBE: { idata.instance_data_rid = static_cast(p_instance->base_data)->instance.get_id(); } break; - case RS::INSTANCE_DECAL: { + case RSE::INSTANCE_DECAL: { idata.instance_data_rid = static_cast(p_instance->base_data)->instance.get_id(); } break; - case RS::INSTANCE_LIGHTMAP: { + case RSE::INSTANCE_LIGHTMAP: { idata.instance_data_rid = static_cast(p_instance->base_data)->instance.get_id(); } break; - case RS::INSTANCE_VOXEL_GI: { + case RSE::INSTANCE_VOXEL_GI: { idata.instance_data_rid = static_cast(p_instance->base_data)->probe_instance.get_id(); } break; - case RS::INSTANCE_FOG_VOLUME: { + case RSE::INSTANCE_FOG_VOLUME: { idata.instance_data_rid = static_cast(p_instance->base_data)->instance.get_id(); } break; - case RS::INSTANCE_VISIBLITY_NOTIFIER: { + case RSE::INSTANCE_VISIBLITY_NOTIFIER: { idata.visibility_notifier = static_cast(p_instance->base_data); } break; default: { } } - if (p_instance->base_type == RS::INSTANCE_REFLECTION_PROBE) { + if (p_instance->base_type == RSE::INSTANCE_REFLECTION_PROBE) { //always dirty when added idata.flags |= InstanceData::FLAG_REFLECTION_PROBE_DIRTY; } - if (p_instance->cast_shadows != RS::SHADOW_CASTING_SETTING_OFF) { + if (p_instance->cast_shadows != RSE::SHADOW_CASTING_SETTING_OFF) { idata.flags |= InstanceData::FLAG_CAST_SHADOWS; } - if (p_instance->cast_shadows == RS::SHADOW_CASTING_SETTING_SHADOWS_ONLY) { + if (p_instance->cast_shadows == RSE::SHADOW_CASTING_SETTING_SHADOWS_ONLY) { idata.flags |= InstanceData::FLAG_CAST_SHADOWS_ONLY; } if (p_instance->redraw_if_visible) { @@ -1840,7 +1841,7 @@ void RendererSceneCull::_update_instance(Instance *p_instance) const { p_instance->scenario->instance_aabbs.push_back(InstanceBounds(p_instance->transformed_aabb)); _update_instance_visibility_dependencies(p_instance); } else { - if ((1 << p_instance->base_type) & RS::INSTANCE_GEOMETRY_MASK) { + if ((1 << p_instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK) { p_instance->scenario->indexers[Scenario::INDEXER_GEOMETRY].update(p_instance->indexer_id, bvh_aabb); } else { p_instance->scenario->indexers[Scenario::INDEXER_VOLUMES].update(p_instance->indexer_id, bvh_aabb); @@ -1862,41 +1863,41 @@ void RendererSceneCull::_update_instance(Instance *p_instance) const { pair.pair_pass = pair_pass; pair.pair_mask = 0; - if ((1 << p_instance->base_type) & RS::INSTANCE_GEOMETRY_MASK) { - pair.pair_mask |= 1 << RS::INSTANCE_LIGHT; - pair.pair_mask |= 1 << RS::INSTANCE_VOXEL_GI; - pair.pair_mask |= 1 << RS::INSTANCE_LIGHTMAP; - if (p_instance->base_type == RS::INSTANCE_PARTICLES) { - pair.pair_mask |= 1 << RS::INSTANCE_PARTICLES_COLLISION; + if ((1 << p_instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK) { + pair.pair_mask |= 1 << RSE::INSTANCE_LIGHT; + pair.pair_mask |= 1 << RSE::INSTANCE_VOXEL_GI; + pair.pair_mask |= 1 << RSE::INSTANCE_LIGHTMAP; + if (p_instance->base_type == RSE::INSTANCE_PARTICLES) { + pair.pair_mask |= 1 << RSE::INSTANCE_PARTICLES_COLLISION; } pair.pair_mask |= geometry_instance_pair_mask; pair.bvh2 = &p_instance->scenario->indexers[Scenario::INDEXER_VOLUMES]; - } else if (p_instance->base_type == RS::INSTANCE_LIGHT) { - pair.pair_mask |= RS::INSTANCE_GEOMETRY_MASK; + } else if (p_instance->base_type == RSE::INSTANCE_LIGHT) { + pair.pair_mask |= RSE::INSTANCE_GEOMETRY_MASK; pair.bvh = &p_instance->scenario->indexers[Scenario::INDEXER_GEOMETRY]; - RS::LightBakeMode bake_mode = RSG::light_storage->light_get_bake_mode(p_instance->base); - if (bake_mode == RS::LIGHT_BAKE_STATIC || bake_mode == RS::LIGHT_BAKE_DYNAMIC) { - pair.pair_mask |= (1 << RS::INSTANCE_VOXEL_GI); + RSE::LightBakeMode bake_mode = RSG::light_storage->light_get_bake_mode(p_instance->base); + if (bake_mode == RSE::LIGHT_BAKE_STATIC || bake_mode == RSE::LIGHT_BAKE_DYNAMIC) { + pair.pair_mask |= (1 << RSE::INSTANCE_VOXEL_GI); pair.bvh2 = &p_instance->scenario->indexers[Scenario::INDEXER_VOLUMES]; } - } else if (p_instance->base_type == RS::INSTANCE_LIGHTMAP) { - pair.pair_mask = RS::INSTANCE_GEOMETRY_MASK; + } else if (p_instance->base_type == RSE::INSTANCE_LIGHTMAP) { + pair.pair_mask = RSE::INSTANCE_GEOMETRY_MASK; pair.bvh = &p_instance->scenario->indexers[Scenario::INDEXER_GEOMETRY]; - } else if (geometry_instance_pair_mask & (1 << RS::INSTANCE_REFLECTION_PROBE) && (p_instance->base_type == RS::INSTANCE_REFLECTION_PROBE)) { - pair.pair_mask = RS::INSTANCE_GEOMETRY_MASK; + } else if (geometry_instance_pair_mask & (1 << RSE::INSTANCE_REFLECTION_PROBE) && (p_instance->base_type == RSE::INSTANCE_REFLECTION_PROBE)) { + pair.pair_mask = RSE::INSTANCE_GEOMETRY_MASK; pair.bvh = &p_instance->scenario->indexers[Scenario::INDEXER_GEOMETRY]; - } else if (geometry_instance_pair_mask & (1 << RS::INSTANCE_DECAL) && (p_instance->base_type == RS::INSTANCE_DECAL)) { - pair.pair_mask = RS::INSTANCE_GEOMETRY_MASK; + } else if (geometry_instance_pair_mask & (1 << RSE::INSTANCE_DECAL) && (p_instance->base_type == RSE::INSTANCE_DECAL)) { + pair.pair_mask = RSE::INSTANCE_GEOMETRY_MASK; pair.bvh = &p_instance->scenario->indexers[Scenario::INDEXER_GEOMETRY]; - } else if (p_instance->base_type == RS::INSTANCE_PARTICLES_COLLISION) { - pair.pair_mask = (1 << RS::INSTANCE_PARTICLES); + } else if (p_instance->base_type == RSE::INSTANCE_PARTICLES_COLLISION) { + pair.pair_mask = (1 << RSE::INSTANCE_PARTICLES); pair.bvh = &p_instance->scenario->indexers[Scenario::INDEXER_GEOMETRY]; - } else if (p_instance->base_type == RS::INSTANCE_VOXEL_GI) { + } else if (p_instance->base_type == RSE::INSTANCE_VOXEL_GI) { //lights and geometries - pair.pair_mask = RS::INSTANCE_GEOMETRY_MASK | (1 << RS::INSTANCE_LIGHT); + pair.pair_mask = RSE::INSTANCE_GEOMETRY_MASK | (1 << RSE::INSTANCE_LIGHT); pair.bvh = &p_instance->scenario->indexers[Scenario::INDEXER_GEOMETRY]; pair.bvh2 = &p_instance->scenario->indexers[Scenario::INDEXER_VOLUMES]; } @@ -1918,7 +1919,7 @@ void RendererSceneCull::_unpair_instance(Instance *p_instance) { pair_allocator.free(pair); } - if ((1 << p_instance->base_type) & RS::INSTANCE_GEOMETRY_MASK) { + if ((1 << p_instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK) { p_instance->scenario->indexers[Scenario::INDEXER_GEOMETRY].remove(p_instance->indexer_id); } else { p_instance->scenario->indexers[Scenario::INDEXER_VOLUMES].remove(p_instance->indexer_id); @@ -1952,7 +1953,7 @@ void RendererSceneCull::_unpair_instance(Instance *p_instance) { //uninitialize p_instance->array_index = -1; - if ((1 << p_instance->base_type) & RS::INSTANCE_GEOMETRY_MASK) { + if ((1 << p_instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK) { // Clear these now because the InstanceData containing the dirty flags is gone InstanceGeometryData *geom = static_cast(p_instance->base_data); ERR_FAIL_NULL(geom->geometry_instance); @@ -1967,7 +1968,7 @@ void RendererSceneCull::_unpair_instance(Instance *p_instance) { Instance *dep_instance = E; if (dep_instance->array_index != -1) { dep_instance->scenario->instance_data[dep_instance->array_index].parent_array_index = -1; - if ((1 << dep_instance->base_type) & RS::INSTANCE_GEOMETRY_MASK) { + if ((1 << dep_instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK) { dep_instance->scenario->instance_data[dep_instance->array_index].instance_geometry->set_parent_fade_alpha(1.0f); } } @@ -1979,13 +1980,13 @@ void RendererSceneCull::_unpair_instance(Instance *p_instance) { void RendererSceneCull::_update_instance_aabb(Instance *p_instance) const { AABB new_aabb; - ERR_FAIL_COND(p_instance->base_type != RS::INSTANCE_NONE && !p_instance->base.is_valid()); + ERR_FAIL_COND(p_instance->base_type != RSE::INSTANCE_NONE && !p_instance->base.is_valid()); switch (p_instance->base_type) { - case RenderingServer::INSTANCE_NONE: { + case RSE::INSTANCE_NONE: { // do nothing } break; - case RenderingServer::INSTANCE_MESH: { + case RSE::INSTANCE_MESH: { if (p_instance->custom_aabb) { new_aabb = *p_instance->custom_aabb; } else { @@ -1994,7 +1995,7 @@ void RendererSceneCull::_update_instance_aabb(Instance *p_instance) const { } break; - case RenderingServer::INSTANCE_MULTIMESH: { + case RSE::INSTANCE_MULTIMESH: { if (p_instance->custom_aabb) { new_aabb = *p_instance->custom_aabb; } else { @@ -2002,7 +2003,7 @@ void RendererSceneCull::_update_instance_aabb(Instance *p_instance) const { } } break; - case RenderingServer::INSTANCE_PARTICLES: { + case RSE::INSTANCE_PARTICLES: { if (p_instance->custom_aabb) { new_aabb = *p_instance->custom_aabb; } else { @@ -2010,33 +2011,33 @@ void RendererSceneCull::_update_instance_aabb(Instance *p_instance) const { } } break; - case RenderingServer::INSTANCE_PARTICLES_COLLISION: { + case RSE::INSTANCE_PARTICLES_COLLISION: { new_aabb = RSG::particles_storage->particles_collision_get_aabb(p_instance->base); } break; - case RenderingServer::INSTANCE_FOG_VOLUME: { + case RSE::INSTANCE_FOG_VOLUME: { new_aabb = RSG::fog->fog_volume_get_aabb(p_instance->base); } break; - case RenderingServer::INSTANCE_VISIBLITY_NOTIFIER: { + case RSE::INSTANCE_VISIBLITY_NOTIFIER: { new_aabb = RSG::utilities->visibility_notifier_get_aabb(p_instance->base); } break; - case RenderingServer::INSTANCE_LIGHT: { + case RSE::INSTANCE_LIGHT: { new_aabb = RSG::light_storage->light_get_aabb(p_instance->base); } break; - case RenderingServer::INSTANCE_REFLECTION_PROBE: { + case RSE::INSTANCE_REFLECTION_PROBE: { new_aabb = RSG::light_storage->reflection_probe_get_aabb(p_instance->base); } break; - case RenderingServer::INSTANCE_DECAL: { + case RSE::INSTANCE_DECAL: { new_aabb = RSG::texture_storage->decal_get_aabb(p_instance->base); } break; - case RenderingServer::INSTANCE_VOXEL_GI: { + case RSE::INSTANCE_VOXEL_GI: { new_aabb = RSG::gi->voxel_gi_get_bounds(p_instance->base); } break; - case RenderingServer::INSTANCE_LIGHTMAP: { + case RSE::INSTANCE_LIGHTMAP: { new_aabb = RSG::light_storage->lightmap_get_aabb(p_instance->base); } break; @@ -2142,26 +2143,26 @@ void RendererSceneCull::_light_instance_setup_directional_shadow(int p_shadow_in light_transform.orthonormalize(); //scale does not count on lights real_t max_distance = p_cam_projection.get_z_far(); - real_t shadow_max = RSG::light_storage->light_get_param(p_instance->base, RS::LIGHT_PARAM_SHADOW_MAX_DISTANCE); + real_t shadow_max = RSG::light_storage->light_get_param(p_instance->base, RSE::LIGHT_PARAM_SHADOW_MAX_DISTANCE); if (shadow_max > 0 && !p_cam_orthogonal) { //its impractical (and leads to unwanted behaviors) to set max distance in orthogonal camera max_distance = MIN(shadow_max, max_distance); } max_distance = MAX(max_distance, p_cam_projection.get_z_near() + 0.001); real_t min_distance = MIN(p_cam_projection.get_z_near(), max_distance); - real_t pancake_size = RSG::light_storage->light_get_param(p_instance->base, RS::LIGHT_PARAM_SHADOW_PANCAKE_SIZE); + real_t pancake_size = RSG::light_storage->light_get_param(p_instance->base, RSE::LIGHT_PARAM_SHADOW_PANCAKE_SIZE); real_t range = max_distance - min_distance; int splits = 0; switch (RSG::light_storage->light_directional_get_shadow_mode(p_instance->base)) { - case RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL: + case RSE::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL: splits = 1; break; - case RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS: + case RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS: splits = 2; break; - case RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS: + case RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS: splits = 4; break; } @@ -2170,7 +2171,7 @@ void RendererSceneCull::_light_instance_setup_directional_shadow(int p_shadow_in distances[0] = min_distance; for (int i = 0; i < splits; i++) { - distances[i + 1] = min_distance + RSG::light_storage->light_get_param(p_instance->base, RS::LightParam(RS::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET + i)) * range; + distances[i + 1] = min_distance + RSG::light_storage->light_get_param(p_instance->base, RSE::LightParam(RSE::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET + i)) * range; }; distances[splits] = max_distance; @@ -2285,7 +2286,7 @@ void RendererSceneCull::_light_instance_setup_directional_shadow(int p_shadow_in z_min_cam = z_vec.dot(center) - radius; { - float soft_shadow_angle = RSG::light_storage->light_get_param(p_instance->base, RS::LIGHT_PARAM_SIZE); + float soft_shadow_angle = RSG::light_storage->light_get_param(p_instance->base, RSE::LIGHT_PARAM_SIZE); if (soft_shadow_angle > 0.0) { float z_range = (z_vec.dot(center) + radius + pancake_size) - z_min_cam; @@ -2362,12 +2363,12 @@ bool RendererSceneCull::_light_instance_update_shadow(Instance *p_instance, cons bool animated_material_found = false; switch (RSG::light_storage->light_get_type(p_instance->base)) { - case RS::LIGHT_DIRECTIONAL: { + case RSE::LIGHT_DIRECTIONAL: { } break; - case RS::LIGHT_OMNI: { - RS::LightOmniShadowMode shadow_mode = RSG::light_storage->light_omni_get_shadow_mode(p_instance->base); + case RSE::LIGHT_OMNI: { + RSE::LightOmniShadowMode shadow_mode = RSG::light_storage->light_omni_get_shadow_mode(p_instance->base); - if (shadow_mode == RS::LIGHT_OMNI_SHADOW_DUAL_PARABOLOID || !RSG::light_storage->light_instances_can_render_shadow_cube()) { + if (shadow_mode == RSE::LIGHT_OMNI_SHADOW_DUAL_PARABOLOID || !RSG::light_storage->light_instances_can_render_shadow_cube()) { if (max_shadows_used + 2 > MAX_UPDATE_SHADOWS) { return true; } @@ -2375,7 +2376,7 @@ bool RendererSceneCull::_light_instance_update_shadow(Instance *p_instance, cons //using this one ensures that raster deferred will have it RENDER_TIMESTAMP("Cull OmniLight3D Shadow Paraboloid, Half " + itos(i)); - real_t radius = RSG::light_storage->light_get_param(p_instance->base, RS::LIGHT_PARAM_RANGE); + real_t radius = RSG::light_storage->light_get_param(p_instance->base, RSE::LIGHT_PARAM_RANGE); real_t z = i == 0 ? -1 : 1; Vector planes; @@ -2413,7 +2414,7 @@ bool RendererSceneCull::_light_instance_update_shadow(Instance *p_instance, cons for (int j = 0; j < (int)instance_shadow_cull_result.size(); j++) { Instance *instance = instance_shadow_cull_result[j]; - if (!instance->visible || !((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK) || !static_cast(instance->base_data)->can_cast_shadows || !(p_visible_layers & instance->layer_mask & RSG::light_storage->light_get_shadow_caster_mask(p_instance->base))) { + if (!instance->visible || !((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK) || !static_cast(instance->base_data)->can_cast_shadows || !(p_visible_layers & instance->layer_mask & RSG::light_storage->light_get_shadow_caster_mask(p_instance->base))) { continue; } else { if (static_cast(instance->base_data)->material_is_animated) { @@ -2440,7 +2441,7 @@ bool RendererSceneCull::_light_instance_update_shadow(Instance *p_instance, cons return true; } - real_t radius = RSG::light_storage->light_get_param(p_instance->base, RS::LIGHT_PARAM_RANGE); + real_t radius = RSG::light_storage->light_get_param(p_instance->base, RSE::LIGHT_PARAM_RANGE); real_t z_near = MIN(0.025f, radius); Projection cm; cm.set_perspective(90, 1, z_near, radius); @@ -2496,7 +2497,7 @@ bool RendererSceneCull::_light_instance_update_shadow(Instance *p_instance, cons for (int j = 0; j < (int)instance_shadow_cull_result.size(); j++) { Instance *instance = instance_shadow_cull_result[j]; - if (!instance->visible || !((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK) || !static_cast(instance->base_data)->can_cast_shadows || !(p_visible_layers & instance->layer_mask & RSG::light_storage->light_get_shadow_caster_mask(p_instance->base))) { + if (!instance->visible || !((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK) || !static_cast(instance->base_data)->can_cast_shadows || !(p_visible_layers & instance->layer_mask & RSG::light_storage->light_get_shadow_caster_mask(p_instance->base))) { continue; } else { if (static_cast(instance->base_data)->material_is_animated) { @@ -2522,15 +2523,15 @@ bool RendererSceneCull::_light_instance_update_shadow(Instance *p_instance, cons } } break; - case RS::LIGHT_SPOT: { + case RSE::LIGHT_SPOT: { RENDER_TIMESTAMP("Cull SpotLight3D Shadow"); if (max_shadows_used + 1 > MAX_UPDATE_SHADOWS) { return true; } - real_t radius = RSG::light_storage->light_get_param(p_instance->base, RS::LIGHT_PARAM_RANGE); - real_t angle = RSG::light_storage->light_get_param(p_instance->base, RS::LIGHT_PARAM_SPOT_ANGLE); + real_t radius = RSG::light_storage->light_get_param(p_instance->base, RSE::LIGHT_PARAM_RANGE); + real_t angle = RSG::light_storage->light_get_param(p_instance->base, RSE::LIGHT_PARAM_SPOT_ANGLE); real_t z_near = MIN(0.025f, radius); Projection cm; @@ -2564,7 +2565,7 @@ bool RendererSceneCull::_light_instance_update_shadow(Instance *p_instance, cons for (int j = 0; j < (int)instance_shadow_cull_result.size(); j++) { Instance *instance = instance_shadow_cull_result[j]; - if (!instance->visible || !((1 << instance->base_type) & RS::INSTANCE_GEOMETRY_MASK) || !static_cast(instance->base_data)->can_cast_shadows || !(p_visible_layers & instance->layer_mask & RSG::light_storage->light_get_shadow_caster_mask(p_instance->base))) { + if (!instance->visible || !((1 << instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK) || !static_cast(instance->base_data)->can_cast_shadows || !(p_visible_layers & instance->layer_mask & RSG::light_storage->light_get_shadow_caster_mask(p_instance->base))) { continue; } else { if (static_cast(instance->base_data)->material_is_animated) { @@ -2759,12 +2760,12 @@ void RendererSceneCull::_visibility_cull(const VisibilityCullData &cull_data, ui template int RendererSceneCull::_visibility_range_check(InstanceVisibilityData &r_vis_data, const Vector3 &p_camera_pos, uint64_t p_viewport_mask) { float dist = p_camera_pos.distance_to(r_vis_data.position); - const RS::VisibilityRangeFadeMode &fade_mode = r_vis_data.fade_mode; + const RSE::VisibilityRangeFadeMode &fade_mode = r_vis_data.fade_mode; float begin_offset = -r_vis_data.range_begin_margin; float end_offset = r_vis_data.range_end_margin; - if (fade_mode == RS::VISIBILITY_RANGE_FADE_DISABLED && !(p_viewport_mask & r_vis_data.viewport_state)) { + if (fade_mode == RSE::VISIBILITY_RANGE_FADE_DISABLED && !(p_viewport_mask & r_vis_data.viewport_state)) { begin_offset = -begin_offset; end_offset = -end_offset; } @@ -2778,15 +2779,15 @@ int RendererSceneCull::_visibility_range_check(InstanceVisibilityData &r_vis_dat } else { r_vis_data.viewport_state |= p_viewport_mask; if (p_fade_check) { - if (fade_mode != RS::VISIBILITY_RANGE_FADE_DISABLED) { + if (fade_mode != RSE::VISIBILITY_RANGE_FADE_DISABLED) { r_vis_data.children_fade_alpha = 1.0f; if (r_vis_data.range_end > 0.0f && dist > r_vis_data.range_end - end_offset) { - if (fade_mode == RS::VISIBILITY_RANGE_FADE_DEPENDENCIES) { + if (fade_mode == RSE::VISIBILITY_RANGE_FADE_DEPENDENCIES) { r_vis_data.children_fade_alpha = MIN(1.0f, (dist - (r_vis_data.range_end - end_offset)) / (2.0f * r_vis_data.range_end_margin)); } return 2; } else if (r_vis_data.range_begin > 0.0f && dist < r_vis_data.range_begin - begin_offset) { - if (fade_mode == RS::VISIBILITY_RANGE_FADE_DEPENDENCIES) { + if (fade_mode == RSE::VISIBILITY_RANGE_FADE_DEPENDENCIES) { r_vis_data.children_fade_alpha = MIN(1.0f, 1.0 - (dist - (r_vis_data.range_begin + begin_offset)) / (2.0f * r_vis_data.range_begin_margin)); } return 2; @@ -2853,14 +2854,14 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul if (!HIDDEN_BY_VISIBILITY_CHECKS) { if ((LAYER_CHECK && IN_FRUSTUM(cull_data.cull->frustum) && VIS_CHECK && !OCCLUSION_CULLED) || (cull_data.scenario->instance_data[i].flags & InstanceData::FLAG_IGNORE_ALL_CULLING)) { uint32_t base_type = idata.flags & InstanceData::FLAG_BASE_TYPE_MASK; - if (base_type == RS::INSTANCE_LIGHT) { + if (base_type == RSE::INSTANCE_LIGHT) { cull_result.lights.push_back(idata.instance); cull_result.light_instances.push_back(RID::from_uint64(idata.instance_data_rid)); if (cull_data.shadow_atlas.is_valid() && RSG::light_storage->light_has_shadow(idata.base_rid)) { RSG::light_storage->light_instance_mark_visible(RID::from_uint64(idata.instance_data_rid)); //mark it visible for shadow allocation later } - } else if (base_type == RS::INSTANCE_REFLECTION_PROBE) { + } else if (base_type == RSE::INSTANCE_REFLECTION_PROBE) { if (cull_data.render_reflection_probe != idata.instance) { //avoid entering The Matrix @@ -2880,10 +2881,10 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul cull_result.reflections.push_back(RID::from_uint64(idata.instance_data_rid)); } } - } else if (base_type == RS::INSTANCE_DECAL) { + } else if (base_type == RSE::INSTANCE_DECAL) { cull_result.decals.push_back(RID::from_uint64(idata.instance_data_rid)); - } else if (base_type == RS::INSTANCE_VOXEL_GI) { + } else if (base_type == RSE::INSTANCE_VOXEL_GI) { InstanceVoxelGIData *voxel_gi = static_cast(idata.instance->base_data); cull_data.cull->lock.lock(); if (!voxel_gi->update_element.in_list()) { @@ -2892,11 +2893,11 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul cull_data.cull->lock.unlock(); cull_result.voxel_gi_instances.push_back(RID::from_uint64(idata.instance_data_rid)); - } else if (base_type == RS::INSTANCE_LIGHTMAP) { + } else if (base_type == RSE::INSTANCE_LIGHTMAP) { cull_result.lightmaps.push_back(RID::from_uint64(idata.instance_data_rid)); - } else if (base_type == RS::INSTANCE_FOG_VOLUME) { + } else if (base_type == RSE::INSTANCE_FOG_VOLUME) { cull_result.fog_volumes.push_back(RID::from_uint64(idata.instance_data_rid)); - } else if (base_type == RS::INSTANCE_VISIBLITY_NOTIFIER) { + } else if (base_type == RSE::INSTANCE_VISIBLITY_NOTIFIER) { InstanceVisibilityNotifierData *vnd = idata.visibility_notifier; if (!vnd->list_element.in_list()) { visible_notifier_list_lock.lock(); @@ -2905,16 +2906,16 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul vnd->just_visible = true; } vnd->visible_in_frame = RSG::rasterizer->get_frame_number(); - } else if (((1 << base_type) & RS::INSTANCE_GEOMETRY_MASK) && !(idata.flags & InstanceData::FLAG_CAST_SHADOWS_ONLY)) { + } else if (((1 << base_type) & RSE::INSTANCE_GEOMETRY_MASK) && !(idata.flags & InstanceData::FLAG_CAST_SHADOWS_ONLY)) { bool keep = true; if (idata.flags & InstanceData::FLAG_REDRAW_IF_VISIBLE) { RenderingServerDefault::redraw_request(); } - if (base_type == RS::INSTANCE_MESH) { + if (base_type == RSE::INSTANCE_MESH) { mesh_visible = true; - } else if (base_type == RS::INSTANCE_PARTICLES) { + } else if (base_type == RSE::INSTANCE_PARTICLES) { //particles visible? process them if (RSG::particles_storage->particles_is_inactive(idata.base_rid)) { //but if nothing is going on, don't do it. @@ -2940,7 +2941,7 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul idata.instance_geometry->set_parent_fade_alpha(fade); } - if (geometry_instance_pair_mask & (1 << RS::INSTANCE_LIGHT) && (idata.flags & InstanceData::FLAG_GEOM_LIGHTING_DIRTY)) { + if (geometry_instance_pair_mask & (1 << RSE::INSTANCE_LIGHT) && (idata.flags & InstanceData::FLAG_GEOM_LIGHTING_DIRTY)) { InstanceGeometryData *geom = static_cast(idata.instance->base_data); ERR_FAIL_NULL(geom->geometry_instance); // Clear any existing light instances for this mesh and find the max count per-mesh, and total (per-scene). @@ -2956,14 +2957,14 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul // Iterate over the lights (possibly > max_renderable_lights), keeping the closest to the mesh center. Vector3 mesh_center = idata.instance->transformed_aabb.get_center(); for (const Instance *E : geom->lights) { - RS::LightType light_type = RSG::light_storage->light_get_type(E->base); - if (((RS::LIGHT_OMNI == light_type) && (total_omni_count++ < max_lights_total)) || - ((RS::LIGHT_SPOT == light_type) && (total_spot_count++ < max_lights_total))) { + RSE::LightType light_type = RSG::light_storage->light_get_type(E->base); + if (((RSE::LIGHT_OMNI == light_type) && (total_omni_count++ < max_lights_total)) || + ((RSE::LIGHT_SPOT == light_type) && (total_spot_count++ < max_lights_total))) { // Perform culling. if (!(RSG::light_storage->light_get_cull_mask(E->base) & idata.layer_mask)) { continue; } - if ((RSG::light_storage->light_get_bake_mode(E->base) == RS::LIGHT_BAKE_STATIC) && idata.instance->lightmap) { + if ((RSG::light_storage->light_get_bake_mode(E->base) == RSE::LIGHT_BAKE_STATIC) && idata.instance->lightmap) { continue; } @@ -2971,8 +2972,8 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul // Large scores are worse, so linear with distance, inverse with energy and range. Vector3 light_center = E->transformed_aabb.get_center(); float light_range_energy = - RSG::light_storage->light_get_param(E->base, RS::LightParam::LIGHT_PARAM_RANGE) * - RSG::light_storage->light_get_param(E->base, RS::LightParam::LIGHT_PARAM_ENERGY); + RSG::light_storage->light_get_param(E->base, RSE::LightParam::LIGHT_PARAM_RANGE) * + RSG::light_storage->light_get_param(E->base, RSE::LightParam::LIGHT_PARAM_ENERGY); float light_inst_score = mesh_center.distance_to(light_center) / MAX(0.01f, light_range_energy); // Of the N lights (on a per-light-type basis, Omni or Spot) keep only the M "best" lights. // If N <= M, we can simply store the lights, but once we exceed M, we need check each new @@ -2987,7 +2988,7 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul WARN_PRINT_ONCE("VERIFY_RELEVANT_LIGHT_HEAP is True"); #endif switch (light_type) { - case RS::LIGHT_OMNI: { + case RSE::LIGHT_OMNI: { if (omni_count < max_lights_per_mesh) { // We have room to just add it, and track the score and where it goes. omni_score_idx.push_back(Pair(light_inst_score, omni_count)); @@ -3013,7 +3014,7 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul } } } break; - case RS::LIGHT_SPOT: { + case RSE::LIGHT_SPOT: { if (spot_count < max_lights_per_mesh) { // We have room to just add it, and track the score and where it goes. spot_score_idx.push_back(Pair(light_inst_score, spot_count)); @@ -3058,7 +3059,7 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul idata.flags &= ~InstanceData::FLAG_GEOM_PROJECTOR_SOFTSHADOW_DIRTY; } - if (geometry_instance_pair_mask & (1 << RS::INSTANCE_REFLECTION_PROBE) && (idata.flags & InstanceData::FLAG_GEOM_REFLECTION_DIRTY)) { + if (geometry_instance_pair_mask & (1 << RSE::INSTANCE_REFLECTION_PROBE) && (idata.flags & InstanceData::FLAG_GEOM_REFLECTION_DIRTY)) { InstanceGeometryData *geom = static_cast(idata.instance->base_data); uint32_t idx = 0; @@ -3076,7 +3077,7 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul idata.flags &= ~InstanceData::FLAG_GEOM_REFLECTION_DIRTY; } - if (geometry_instance_pair_mask & (1 << RS::INSTANCE_DECAL) && (idata.flags & InstanceData::FLAG_GEOM_DECAL_DIRTY)) { + if (geometry_instance_pair_mask & (1 << RSE::INSTANCE_DECAL) && (idata.flags & InstanceData::FLAG_GEOM_DECAL_DIRTY)) { InstanceGeometryData *geom = static_cast(idata.instance->base_data); uint32_t idx = 0; @@ -3141,7 +3142,7 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul if (IN_FRUSTUM(cull_data.cull->shadows[j].cascades[k].frustum) && VIS_CHECK) { uint32_t base_type = idata.flags & InstanceData::FLAG_BASE_TYPE_MASK; - if (((1 << base_type) & RS::INSTANCE_GEOMETRY_MASK) && idata.flags & InstanceData::FLAG_CAST_SHADOWS && (LAYER_CHECK & cull_data.cull->shadows[j].caster_mask)) { + if (((1 << base_type) & RSE::INSTANCE_GEOMETRY_MASK) && idata.flags & InstanceData::FLAG_CAST_SHADOWS && (LAYER_CHECK & cull_data.cull->shadows[j].caster_mask)) { cull_result.directional_shadows[j].cascade_geometry_instances[k].push_back(idata.instance_geometry); mesh_visible = true; } @@ -3162,16 +3163,16 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul if (cull_data.scenario->instance_aabbs[i].in_aabb(cull_data.cull->sdfgi.region_aabb[j])) { uint32_t base_type = idata.flags & InstanceData::FLAG_BASE_TYPE_MASK; - if (base_type == RS::INSTANCE_LIGHT) { + if (base_type == RSE::INSTANCE_LIGHT) { InstanceLightData *instance_light = (InstanceLightData *)idata.instance->base_data; - if (instance_light->bake_mode == RS::LIGHT_BAKE_STATIC && cull_data.cull->sdfgi.region_cascade[j] <= instance_light->max_sdfgi_cascade) { + if (instance_light->bake_mode == RSE::LIGHT_BAKE_STATIC && cull_data.cull->sdfgi.region_cascade[j] <= instance_light->max_sdfgi_cascade) { if (sdfgi_last_light_index != i || sdfgi_last_light_cascade != cull_data.cull->sdfgi.region_cascade[j]) { sdfgi_last_light_index = i; sdfgi_last_light_cascade = cull_data.cull->sdfgi.region_cascade[j]; cull_result.sdfgi_cascade_lights[sdfgi_last_light_cascade].push_back(instance_light->instance); } } - } else if ((1 << base_type) & RS::INSTANCE_GEOMETRY_MASK) { + } else if ((1 << base_type) & RSE::INSTANCE_GEOMETRY_MASK) { if (idata.flags & InstanceData::FLAG_USES_BAKED_LIGHT) { cull_result.sdfgi_region_geometry_instances[j].push_back(idata.instance_geometry); mesh_visible = true; @@ -3269,7 +3270,7 @@ void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_c //check shadow.. if (light) { - if (p_using_shadows && p_shadow_atlas.is_valid() && RSG::light_storage->light_has_shadow(E->base) && !(RSG::light_storage->light_get_type(E->base) == RS::LIGHT_DIRECTIONAL && RSG::light_storage->light_directional_get_sky_mode(E->base) == RS::LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY)) { + if (p_using_shadows && p_shadow_atlas.is_valid() && RSG::light_storage->light_has_shadow(E->base) && !(RSG::light_storage->light_get_type(E->base) == RSE::LIGHT_DIRECTIONAL && RSG::light_storage->light_directional_get_sky_mode(E->base) == RSE::LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY)) { lights_with_shadow.push_back(E); } //add to list @@ -3415,8 +3416,8 @@ void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_c Vector2 vp_half_extents = p_camera_data->main_projection.get_viewport_half_extents(); switch (RSG::light_storage->light_get_type(ins->base)) { - case RS::LIGHT_OMNI: { - float radius = RSG::light_storage->light_get_param(ins->base, RS::LIGHT_PARAM_RANGE); + case RSE::LIGHT_OMNI: { + float radius = RSG::light_storage->light_get_param(ins->base, RSE::LIGHT_PARAM_RANGE); //get two points parallel to near plane Vector3 points[2] = { @@ -3438,9 +3439,9 @@ void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_c float screen_diameter = points[0].distance_to(points[1]) * 2; coverage = screen_diameter / (vp_half_extents.x + vp_half_extents.y); } break; - case RS::LIGHT_SPOT: { - float radius = RSG::light_storage->light_get_param(ins->base, RS::LIGHT_PARAM_RANGE); - float angle = RSG::light_storage->light_get_param(ins->base, RS::LIGHT_PARAM_SPOT_ANGLE); + case RSE::LIGHT_SPOT: { + float radius = RSG::light_storage->light_get_param(ins->base, RSE::LIGHT_PARAM_RANGE); + float angle = RSG::light_storage->light_get_param(ins->base, RSE::LIGHT_PARAM_SPOT_ANGLE); float w = radius * Math::sin(Math::deg_to_rad(angle)); float d = radius * Math::cos(Math::deg_to_rad(angle)); @@ -3486,7 +3487,7 @@ void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_c // Directional lights aren't handled here, _light_instance_update_shadow is called from elsewhere. // Checking for this in case this changes, as this is assumed. - DEV_CHECK_ONCE(RSG::light_storage->light_get_type(ins->base) != RS::LIGHT_DIRECTIONAL); + DEV_CHECK_ONCE(RSG::light_storage->light_get_type(ins->base) != RSE::LIGHT_DIRECTIONAL); // Tighter caster culling to the camera frustum should work correctly with multiple viewports + cameras. // The first camera will cull tightly, but if the light is present on more than 1 camera, the second will @@ -3739,7 +3740,7 @@ void RendererSceneCull::render_probes() { RID base = ref_probe->self()->owner->base; switch (RSG::light_storage->reflection_probe_get_update_mode(base)) { - case RS::REFLECTION_PROBE_UPDATE_ONCE: { + case RSE::REFLECTION_PROBE_UPDATE_ONCE: { if (busy) { // Already rendering something. break; } @@ -3753,7 +3754,7 @@ void RendererSceneCull::render_probes() { busy = true; // Do not render another one of this kind. } break; - case RS::REFLECTION_PROBE_UPDATE_ALWAYS: { + case RSE::REFLECTION_PROBE_UPDATE_ALWAYS: { int step = 0; bool done = false; while (!done) { @@ -3817,13 +3818,13 @@ void RendererSceneCull::render_probes() { cache->type != RSG::light_storage->light_get_type(instance->base) || cache->transform != instance->transform || cache->color != RSG::light_storage->light_get_color(instance->base) || - cache->energy != RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_ENERGY) || - cache->intensity != RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_INTENSITY) || - cache->bake_energy != RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_INDIRECT_ENERGY) || - cache->radius != RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_RANGE) || - cache->attenuation != RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_ATTENUATION) || - cache->spot_angle != RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_SPOT_ANGLE) || - cache->spot_attenuation != RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_SPOT_ATTENUATION)) { + cache->energy != RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_ENERGY) || + cache->intensity != RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_INTENSITY) || + cache->bake_energy != RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_INDIRECT_ENERGY) || + cache->radius != RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_RANGE) || + cache->attenuation != RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_ATTENUATION) || + cache->spot_angle != RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_SPOT_ANGLE) || + cache->spot_attenuation != RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_SPOT_ATTENUATION)) { cache_dirty = true; } } @@ -3849,13 +3850,13 @@ void RendererSceneCull::render_probes() { cache->type != RSG::light_storage->light_get_type(instance->base) || cache->transform != instance->transform || cache->color != RSG::light_storage->light_get_color(instance->base) || - cache->energy != RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_ENERGY) || - cache->intensity != RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_INTENSITY) || - cache->bake_energy != RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_INDIRECT_ENERGY) || - cache->radius != RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_RANGE) || - cache->attenuation != RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_ATTENUATION) || - cache->spot_angle != RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_SPOT_ANGLE) || - cache->spot_attenuation != RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_SPOT_ATTENUATION) || + cache->energy != RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_ENERGY) || + cache->intensity != RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_INTENSITY) || + cache->bake_energy != RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_INDIRECT_ENERGY) || + cache->radius != RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_RANGE) || + cache->attenuation != RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_ATTENUATION) || + cache->spot_angle != RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_SPOT_ANGLE) || + cache->spot_attenuation != RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_SPOT_ATTENUATION) || cache->sky_mode != RSG::light_storage->light_directional_get_sky_mode(instance->base)) { cache_dirty = true; } @@ -3896,13 +3897,13 @@ void RendererSceneCull::render_probes() { cache->type = RSG::light_storage->light_get_type(instance->base); cache->transform = instance->transform; cache->color = RSG::light_storage->light_get_color(instance->base); - cache->energy = RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_ENERGY); - cache->intensity = RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_INTENSITY); - cache->bake_energy = RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_INDIRECT_ENERGY); - cache->radius = RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_RANGE); - cache->attenuation = RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_ATTENUATION); - cache->spot_angle = RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_SPOT_ANGLE); - cache->spot_attenuation = RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_SPOT_ATTENUATION); + cache->energy = RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_ENERGY); + cache->intensity = RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_INTENSITY); + cache->bake_energy = RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_INDIRECT_ENERGY); + cache->radius = RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_RANGE); + cache->attenuation = RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_ATTENUATION); + cache->spot_angle = RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_SPOT_ANGLE); + cache->spot_attenuation = RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_SPOT_ATTENUATION); idx++; } @@ -3919,13 +3920,13 @@ void RendererSceneCull::render_probes() { cache->type = RSG::light_storage->light_get_type(instance->base); cache->transform = instance->transform; cache->color = RSG::light_storage->light_get_color(instance->base); - cache->energy = RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_ENERGY); - cache->intensity = RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_INTENSITY); - cache->bake_energy = RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_INDIRECT_ENERGY); - cache->radius = RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_RANGE); - cache->attenuation = RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_ATTENUATION); - cache->spot_angle = RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_SPOT_ANGLE); - cache->spot_attenuation = RSG::light_storage->light_get_param(instance->base, RS::LIGHT_PARAM_SPOT_ATTENUATION); + cache->energy = RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_ENERGY); + cache->intensity = RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_INTENSITY); + cache->bake_energy = RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_INDIRECT_ENERGY); + cache->radius = RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_RANGE); + cache->attenuation = RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_ATTENUATION); + cache->spot_angle = RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_SPOT_ANGLE); + cache->spot_attenuation = RSG::light_storage->light_get_param(instance->base, RSE::LIGHT_PARAM_SPOT_ATTENUATION); cache->sky_mode = RSG::light_storage->light_directional_get_sky_mode(instance->base); idx++; @@ -3979,7 +3980,7 @@ void RendererSceneCull::render_particle_colliders() { while (heightfield_particle_colliders_update_list.begin()) { Instance *hfpc = *heightfield_particle_colliders_update_list.begin(); - if (hfpc->scenario && hfpc->base_type == RS::INSTANCE_PARTICLES_COLLISION && RSG::particles_storage->particles_collision_is_heightfield(hfpc->base)) { + if (hfpc->scenario && hfpc->base_type == RSE::INSTANCE_PARTICLES_COLLISION && RSG::particles_storage->particles_collision_is_heightfield(hfpc->base)) { //update heightfield instance_cull_result.clear(); scene_cull_result.geometry_instances.clear(); @@ -4004,7 +4005,7 @@ void RendererSceneCull::render_particle_colliders() { for (int i = 0; i < (int)instance_cull_result.size(); i++) { Instance *instance = instance_cull_result[i]; - if (!instance || !((1 << instance->base_type) & (RS::INSTANCE_GEOMETRY_MASK & (~(1 << RS::INSTANCE_PARTICLES))))) { //all but particles to avoid self collision + if (!instance || !((1 << instance->base_type) & (RSE::INSTANCE_GEOMETRY_MASK & (~(1 << RSE::INSTANCE_PARTICLES))))) { //all but particles to avoid self collision continue; } InstanceGeometryData *geom = static_cast(instance->base_data); @@ -4038,7 +4039,7 @@ void RendererSceneCull::_update_dirty_instance(Instance *p_instance) const { RSG::material_storage->material_update_dependency(p_instance->material_overlay, &p_instance->dependency_tracker); } - if (p_instance->base_type == RS::INSTANCE_MESH) { + if (p_instance->base_type == RSE::INSTANCE_MESH) { //remove materials no longer used and un-own them int new_mat_count = RSG::mesh_storage->mesh_get_surface_count(p_instance->base); @@ -4047,7 +4048,7 @@ void RendererSceneCull::_update_dirty_instance(Instance *p_instance) const { _instance_update_mesh_instance(p_instance); } - if (p_instance->base_type == RS::INSTANCE_PARTICLES) { + if (p_instance->base_type == RSE::INSTANCE_PARTICLES) { // update the process material dependency RID particle_material = RSG::particles_storage->particles_get_process_material(p_instance->base); @@ -4056,7 +4057,7 @@ void RendererSceneCull::_update_dirty_instance(Instance *p_instance) const { } } - if ((1 << p_instance->base_type) & RS::INSTANCE_GEOMETRY_MASK) { + if ((1 << p_instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK) { InstanceGeometryData *geom = static_cast(p_instance->base_data); bool can_cast_shadows = true; @@ -4064,7 +4065,7 @@ void RendererSceneCull::_update_dirty_instance(Instance *p_instance) const { p_instance->instance_uniforms.materials_start(); - if (p_instance->cast_shadows == RS::SHADOW_CASTING_SETTING_OFF) { + if (p_instance->cast_shadows == RSE::SHADOW_CASTING_SETTING_OFF) { can_cast_shadows = false; } @@ -4075,7 +4076,7 @@ void RendererSceneCull::_update_dirty_instance(Instance *p_instance) const { is_animated = RSG::material_storage->material_is_animated(p_instance->material_override); p_instance->instance_uniforms.materials_append(p_instance->material_override); } else { - if (p_instance->base_type == RS::INSTANCE_MESH) { + if (p_instance->base_type == RSE::INSTANCE_MESH) { RID mesh = p_instance->base; if (mesh.is_valid()) { @@ -4106,7 +4107,7 @@ void RendererSceneCull::_update_dirty_instance(Instance *p_instance) const { } } - } else if (p_instance->base_type == RS::INSTANCE_MULTIMESH) { + } else if (p_instance->base_type == RSE::INSTANCE_MULTIMESH) { RID mesh = RSG::mesh_storage->multimesh_get_mesh(p_instance->base); if (mesh.is_valid()) { bool cast_shadows = false; @@ -4138,7 +4139,7 @@ void RendererSceneCull::_update_dirty_instance(Instance *p_instance) const { RSG::utilities->base_update_dependency(mesh, &p_instance->dependency_tracker); } - } else if (p_instance->base_type == RS::INSTANCE_PARTICLES) { + } else if (p_instance->base_type == RSE::INSTANCE_PARTICLES) { bool cast_shadows = false; int dp = RSG::particles_storage->particles_get_draw_passes(p_instance->base); @@ -4206,7 +4207,7 @@ void RendererSceneCull::_update_dirty_instance(Instance *p_instance) const { p_instance->dependency_tracker.update_end(); - if ((1 << p_instance->base_type) & RS::INSTANCE_GEOMETRY_MASK) { + if ((1 << p_instance->base_type) & RSE::INSTANCE_GEOMETRY_MASK) { InstanceGeometryData *geom = static_cast(p_instance->base_data); ERR_FAIL_NULL(geom->geometry_instance); geom->geometry_instance->set_surface_materials(p_instance->materials); diff --git a/servers/rendering/renderer_scene_cull.h b/servers/rendering/renderer_scene_cull.h index 6c63f98cbc..355cbe2eaa 100644 --- a/servers/rendering/renderer_scene_cull.h +++ b/servers/rendering/renderer_scene_cull.h @@ -300,7 +300,7 @@ public: struct InstanceVisibilityData { uint64_t viewport_state = 0; int32_t array_index = -1; - RS::VisibilityRangeFadeMode fade_mode = RS::VISIBILITY_RANGE_FADE_DISABLED; + RSE::VisibilityRangeFadeMode fade_mode = RSE::VISIBILITY_RANGE_FADE_DISABLED; Vector3 position; Instance *instance = nullptr; float range_begin = 0.0f; @@ -399,7 +399,7 @@ public: }; struct Instance { - RS::InstanceType base_type; + RSE::InstanceType base_type; RID base; RID skeleton; @@ -418,7 +418,7 @@ public: Vector materials; - RS::ShadowCastingSetting cast_shadows; + RSE::ShadowCastingSetting cast_shadows; uint32_t layer_mask; // Fit in 32 bits. @@ -452,7 +452,7 @@ public: float visibility_range_end = 0.0f; float visibility_range_begin_margin = 0.0f; float visibility_range_end_margin = 0.0f; - RS::VisibilityRangeFadeMode visibility_range_fade_mode = RS::VISIBILITY_RANGE_FADE_DISABLED; + RSE::VisibilityRangeFadeMode visibility_range_fade_mode = RSE::VISIBILITY_RANGE_FADE_DISABLED; Instance *visibility_parent = nullptr; HashSet visibility_dependencies; uint32_t visibility_dependencies_depth = 0; @@ -544,7 +544,7 @@ public: singleton->instance_set_surface_override_material(instance->self, i, RID()); } } - if (instance->base_type == RS::INSTANCE_PARTICLES) { + if (instance->base_type == RSE::INSTANCE_PARTICLES) { RID particle_material = RSG::particles_storage->particles_get_process_material(instance->base); if (p_dependency == particle_material) { RSG::particles_storage->particles_set_process_material(instance->base, RID()); @@ -561,8 +561,8 @@ public: Instance() : scenario_item(this), update_item(this) { - base_type = RS::INSTANCE_NONE; - cast_shadows = RS::SHADOW_CASTING_SETTING_ON; + base_type = RSE::INSTANCE_NONE; + cast_shadows = RSE::SHADOW_CASTING_SETTING_ON; receive_shadows = true; visible = true; layer_mask = 1; @@ -700,7 +700,7 @@ public: Instance *baked_light = nullptr; - RS::LightBakeMode bake_mode; + RSE::LightBakeMode bake_mode; uint32_t max_sdfgi_cascade = 2; uint32_t cull_mask = 0xFFFFFFFF; @@ -748,7 +748,7 @@ public: bool is_shadow_update_full() const { return shadow_dirty_count == 0; } InstanceLightData() { - bake_mode = RS::LIGHT_BAKE_DISABLED; + bake_mode = RSE::LIGHT_BAKE_DISABLED; D = nullptr; last_version = 0; baked_light = nullptr; @@ -769,7 +769,7 @@ public: HashSet lights; struct LightCache { - RS::LightType type; + RSE::LightType type; Transform3D transform; Color color; float energy; @@ -780,7 +780,7 @@ public: float spot_angle; float spot_attenuation; bool has_shadow; - RS::LightDirectionalSkyMode sky_mode; + RSE::LightDirectionalSkyMode sky_mode; }; Vector light_cache; @@ -1051,12 +1051,12 @@ public: virtual Vector instances_cull_ray(const Vector3 &p_from, const Vector3 &p_to, RID p_scenario = RID()) const; virtual Vector instances_cull_convex(const Vector &p_convex, RID p_scenario = RID()) const; - virtual void instance_geometry_set_flag(RID p_instance, RS::InstanceFlags p_flags, bool p_enabled); - virtual void instance_geometry_set_cast_shadows_setting(RID p_instance, RS::ShadowCastingSetting p_shadow_casting_setting); + virtual void instance_geometry_set_flag(RID p_instance, RSE::InstanceFlags p_flags, bool p_enabled); + virtual void instance_geometry_set_cast_shadows_setting(RID p_instance, RSE::ShadowCastingSetting p_shadow_casting_setting); virtual void instance_geometry_set_material_override(RID p_instance, RID p_material); virtual void instance_geometry_set_material_overlay(RID p_instance, RID p_material); - virtual void instance_geometry_set_visibility_range(RID p_instance, float p_min, float p_max, float p_min_margin, float p_max_margin, RS::VisibilityRangeFadeMode p_fade_mode); + virtual void instance_geometry_set_visibility_range(RID p_instance, float p_min, float p_max, float p_min_margin, float p_max_margin, RSE::VisibilityRangeFadeMode p_fade_mode); virtual void instance_geometry_set_lightmap(RID p_instance, RID p_lightmap, const Rect2 &p_lightmap_uv_scale, int p_slice_index); virtual void instance_geometry_set_lod_bias(RID p_instance, float p_lod_bias); @@ -1067,7 +1067,7 @@ public: virtual Variant instance_geometry_get_shader_parameter_default_value(RID p_instance, const StringName &p_parameter) const; virtual void mesh_generate_pipelines(RID p_mesh, bool p_background_compilation); - virtual uint32_t get_pipeline_compilations(RS::PipelineSource p_source); + virtual uint32_t get_pipeline_compilations(RSE::PipelineSource p_source); _FORCE_INLINE_ void _update_instance(Instance *p_instance) const; _FORCE_INLINE_ void _update_instance_aabb(Instance *p_instance) const; @@ -1174,7 +1174,7 @@ public: #define PASSBASE scene_render - PASS1(voxel_gi_set_quality, RS::VoxelGIQuality) + PASS1(voxel_gi_set_quality, RSE::VoxelGIQuality) /* SKY API */ @@ -1182,7 +1182,7 @@ public: PASS1(sky_initialize, RID) PASS2(sky_set_radiance_size, RID, int) - PASS2(sky_set_mode, RID, RS::SkyMode) + PASS2(sky_set_mode, RID, RSE::SkyMode) PASS2(sky_set_material, RID, RID) PASS4R(Ref, sky_bake_panorama, RID, float, bool, const Size2i &) @@ -1194,8 +1194,8 @@ public: PASS1RC(bool, is_compositor_effect, RID) PASS2(compositor_effect_set_enabled, RID, bool) - PASS3(compositor_effect_set_callback, RID, RS::CompositorEffectCallbackType, const Callable &) - PASS3(compositor_effect_set_flag, RID, RS::CompositorEffectFlags, bool) + PASS3(compositor_effect_set_callback, RID, RSE::CompositorEffectCallbackType, const Callable &) + PASS3(compositor_effect_set_flag, RID, RSE::CompositorEffectFlags, bool) // Compositor @@ -1214,17 +1214,17 @@ public: PASS1RC(bool, is_environment, RID) // Background - PASS2(environment_set_background, RID, RS::EnvironmentBG) + PASS2(environment_set_background, RID, RSE::EnvironmentBG) PASS2(environment_set_sky, RID, RID) PASS2(environment_set_sky_custom_fov, RID, float) PASS2(environment_set_sky_orientation, RID, const Basis &) PASS2(environment_set_bg_color, RID, const Color &) PASS3(environment_set_bg_energy, RID, float, float) PASS2(environment_set_canvas_max_layer, RID, int) - PASS6(environment_set_ambient_light, RID, const Color &, RS::EnvironmentAmbientSource, float, float, RS::EnvironmentReflectionSource) + PASS6(environment_set_ambient_light, RID, const Color &, RSE::EnvironmentAmbientSource, float, float, RSE::EnvironmentReflectionSource) PASS2(environment_set_camera_feed_id, RID, int) - PASS1RC(RS::EnvironmentBG, environment_get_background, RID) + PASS1RC(RSE::EnvironmentBG, environment_get_background, RID) PASS1RC(RID, environment_get_sky, RID) PASS1RC(float, environment_get_sky_custom_fov, RID) PASS1RC(Basis, environment_get_sky_orientation, RID) @@ -1232,21 +1232,21 @@ public: PASS1RC(float, environment_get_bg_energy_multiplier, RID) PASS1RC(float, environment_get_bg_intensity, RID) PASS1RC(int, environment_get_canvas_max_layer, RID) - PASS1RC(RS::EnvironmentAmbientSource, environment_get_ambient_source, RID) + PASS1RC(RSE::EnvironmentAmbientSource, environment_get_ambient_source, RID) PASS1RC(Color, environment_get_ambient_light, RID) PASS1RC(float, environment_get_ambient_light_energy, RID) PASS1RC(float, environment_get_ambient_sky_contribution, RID) - PASS1RC(RS::EnvironmentReflectionSource, environment_get_reflection_source, RID) + PASS1RC(RSE::EnvironmentReflectionSource, environment_get_reflection_source, RID) // Tonemap - PASS4(environment_set_tonemap, RID, RS::EnvironmentToneMapper, float, float) + PASS4(environment_set_tonemap, RID, RSE::EnvironmentToneMapper, float, float) PASS2(environment_set_tonemap_agx_contrast, RID, float) - PASS1RC(RS::EnvironmentToneMapper, environment_get_tone_mapper, RID) + PASS1RC(RSE::EnvironmentToneMapper, environment_get_tone_mapper, RID) PASS1RC(float, environment_get_exposure, RID) PASS3RC(float, environment_get_white, RID, bool, float) // Fog - PASS11(environment_set_fog, RID, bool, const Color &, float, float, float, float, float, float, float, RS::EnvironmentFogMode) + PASS11(environment_set_fog, RID, bool, const Color &, float, float, float, float, float, float, float, RSE::EnvironmentFogMode) PASS1RC(bool, environment_get_fog_enabled, RID) PASS1RC(Color, environment_get_fog_light_color, RID) @@ -1257,7 +1257,7 @@ public: PASS1RC(float, environment_get_fog_height, RID) PASS1RC(float, environment_get_fog_height_density, RID) PASS1RC(float, environment_get_fog_aerial_perspective, RID) - PASS1RC(RS::EnvironmentFogMode, environment_get_fog_mode, RID) + PASS1RC(RSE::EnvironmentFogMode, environment_get_fog_mode, RID) PASS2(environment_set_volumetric_fog_volume_size, int, int) PASS1(environment_set_volumetric_fog_filter_active, bool) @@ -1286,7 +1286,7 @@ public: PASS1RC(float, environment_get_volumetric_fog_ambient_inject, RID) // Glow - PASS13(environment_set_glow, RID, bool, Vector, float, float, float, float, RS::EnvironmentGlowBlendMode, float, float, float, float, RID) + PASS13(environment_set_glow, RID, bool, Vector, float, float, float, float, RSE::EnvironmentGlowBlendMode, float, float, float, float, RID) PASS1RC(bool, environment_get_glow_enabled, RID) PASS1RC(Vector, environment_get_glow_levels, RID) @@ -1294,7 +1294,7 @@ public: PASS1RC(float, environment_get_glow_strength, RID) PASS1RC(float, environment_get_glow_bloom, RID) PASS1RC(float, environment_get_glow_mix, RID) - PASS1RC(RS::EnvironmentGlowBlendMode, environment_get_glow_blend_mode, RID) + PASS1RC(RSE::EnvironmentGlowBlendMode, environment_get_glow_blend_mode, RID) PASS1RC(float, environment_get_glow_hdr_bleed_threshold, RID) PASS1RC(float, environment_get_glow_hdr_luminance_cap, RID) PASS1RC(float, environment_get_glow_hdr_bleed_scale, RID) @@ -1313,7 +1313,7 @@ public: PASS1RC(float, environment_get_ssr_depth_tolerance, RID) PASS1(environment_set_ssr_half_size, bool) - PASS1(environment_set_ssr_roughness_quality, RS::EnvironmentSSRRoughnessQuality) + PASS1(environment_set_ssr_roughness_quality, RSE::EnvironmentSSRRoughnessQuality) // SSAO PASS10(environment_set_ssao, RID, bool, float, float, float, float, float, float, float, float) @@ -1328,7 +1328,7 @@ public: PASS1RC(float, environment_get_ssao_direct_light_affect, RID) PASS1RC(float, environment_get_ssao_ao_channel_affect, RID) - PASS6(environment_set_ssao_quality, RS::EnvironmentSSAOQuality, bool, float, int, float, float) + PASS6(environment_set_ssao_quality, RSE::EnvironmentSSAOQuality, bool, float, int, float, float) // SSIL PASS6(environment_set_ssil, RID, bool, float, float, float, float) @@ -1339,11 +1339,11 @@ public: PASS1RC(float, environment_get_ssil_sharpness, RID) PASS1RC(float, environment_get_ssil_normal_rejection, RID) - PASS6(environment_set_ssil_quality, RS::EnvironmentSSILQuality, bool, float, int, float, float) + PASS6(environment_set_ssil_quality, RSE::EnvironmentSSILQuality, bool, float, int, float, float) // SDFGI - PASS11(environment_set_sdfgi, RID, bool, int, float, RS::EnvironmentSDFGIYScale, bool, float, bool, float, float, float) + PASS11(environment_set_sdfgi, RID, bool, int, float, RSE::EnvironmentSDFGIYScale, bool, float, bool, float, float, float) PASS1RC(bool, environment_get_sdfgi_enabled, RID) PASS1RC(int, environment_get_sdfgi_cascades, RID) @@ -1354,11 +1354,11 @@ public: PASS1RC(float, environment_get_sdfgi_energy, RID) PASS1RC(float, environment_get_sdfgi_normal_bias, RID) PASS1RC(float, environment_get_sdfgi_probe_bias, RID) - PASS1RC(RS::EnvironmentSDFGIYScale, environment_get_sdfgi_y_scale, RID) + PASS1RC(RSE::EnvironmentSDFGIYScale, environment_get_sdfgi_y_scale, RID) - PASS1(environment_set_sdfgi_ray_count, RS::EnvironmentSDFGIRayCount) - PASS1(environment_set_sdfgi_frames_to_converge, RS::EnvironmentSDFGIFramesToConverge) - PASS1(environment_set_sdfgi_frames_to_update_light, RS::EnvironmentSDFGIFramesToUpdateLight) + PASS1(environment_set_sdfgi_ray_count, RSE::EnvironmentSDFGIRayCount) + PASS1(environment_set_sdfgi_frames_to_converge, RSE::EnvironmentSDFGIFramesToConverge) + PASS1(environment_set_sdfgi_frames_to_update_light, RSE::EnvironmentSDFGIFramesToUpdateLight) // Adjustment PASS7(environment_set_adjustment, RID, bool, float, float, float, bool, RID) @@ -1373,11 +1373,11 @@ public: PASS3R(Ref, environment_bake_panorama, RID, bool, const Size2i &) PASS3(screen_space_roughness_limiter_set_active, bool, float, float) - PASS1(sub_surface_scattering_set_quality, RS::SubSurfaceScatteringQuality) + PASS1(sub_surface_scattering_set_quality, RSE::SubSurfaceScatteringQuality) PASS2(sub_surface_scattering_set_scale, float, float) - PASS1(positional_soft_shadow_filter_set_quality, RS::ShadowQuality) - PASS1(directional_soft_shadow_filter_set_quality, RS::ShadowQuality) + PASS1(positional_soft_shadow_filter_set_quality, RSE::ShadowQuality) + PASS1(directional_soft_shadow_filter_set_quality, RSE::ShadowQuality) PASS2(sdfgi_set_debug_probe_select, const Vector3 &, const Vector3 &) @@ -1387,10 +1387,10 @@ public: PASS1(gi_set_use_half_resolution, bool) /* Misc */ - PASS1(set_debug_draw_mode, RS::ViewportDebugDraw) + PASS1(set_debug_draw_mode, RSE::ViewportDebugDraw) - PASS1(decals_set_filter, RS::DecalFilter) - PASS1(light_projectors_set_filter, RS::LightProjectorFilter) + PASS1(decals_set_filter, RSE::DecalFilter) + PASS1(light_projectors_set_filter, RSE::LightProjectorFilter) PASS1(lightmaps_set_bicubic_filter, bool) PASS1(material_set_use_debanding, bool) diff --git a/servers/rendering/renderer_scene_occlusion_cull.h b/servers/rendering/renderer_scene_occlusion_cull.h index 749d5160a3..957597bf98 100644 --- a/servers/rendering/renderer_scene_occlusion_cull.h +++ b/servers/rendering/renderer_scene_occlusion_cull.h @@ -233,7 +233,7 @@ public: return RID(); } - virtual void set_build_quality(RS::ViewportOcclusionCullingBuildQuality p_quality) {} + virtual void set_build_quality(RSE::ViewportOcclusionCullingBuildQuality p_quality) {} RendererSceneOcclusionCull() { singleton = this; diff --git a/servers/rendering/renderer_scene_render.cpp b/servers/rendering/renderer_scene_render.cpp index 7909d07e91..fec5740ea3 100644 --- a/servers/rendering/renderer_scene_render.cpp +++ b/servers/rendering/renderer_scene_render.cpp @@ -211,11 +211,11 @@ void RendererSceneRender::compositor_effect_set_enabled(RID p_effect, bool p_ena compositor_storage.compositor_effect_set_enabled(p_effect, p_enabled); } -void RendererSceneRender::compositor_effect_set_callback(RID p_effect, RS::CompositorEffectCallbackType p_callback_type, const Callable &p_callback) { +void RendererSceneRender::compositor_effect_set_callback(RID p_effect, RSE::CompositorEffectCallbackType p_callback_type, const Callable &p_callback) { compositor_storage.compositor_effect_set_callback(p_effect, p_callback_type, p_callback); } -void RendererSceneRender::compositor_effect_set_flag(RID p_effect, RS::CompositorEffectFlags p_flag, bool p_set) { +void RendererSceneRender::compositor_effect_set_flag(RID p_effect, RSE::CompositorEffectFlags p_flag, bool p_set) { compositor_storage.compositor_effect_set_flag(p_effect, p_flag, p_set); } @@ -267,7 +267,7 @@ bool RendererSceneRender::is_environment(RID p_rid) const { // background -void RendererSceneRender::environment_set_background(RID p_env, RS::EnvironmentBG p_bg) { +void RendererSceneRender::environment_set_background(RID p_env, RSE::EnvironmentBG p_bg) { environment_storage.environment_set_background(p_env, p_bg); } @@ -295,11 +295,11 @@ void RendererSceneRender::environment_set_canvas_max_layer(RID p_env, int p_max_ environment_storage.environment_set_canvas_max_layer(p_env, p_max_layer); } -void RendererSceneRender::environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient, float p_energy, float p_sky_contribution, RS::EnvironmentReflectionSource p_reflection_source) { +void RendererSceneRender::environment_set_ambient_light(RID p_env, const Color &p_color, RSE::EnvironmentAmbientSource p_ambient, float p_energy, float p_sky_contribution, RSE::EnvironmentReflectionSource p_reflection_source) { environment_storage.environment_set_ambient_light(p_env, p_color, p_ambient, p_energy, p_sky_contribution, p_reflection_source); } -RS::EnvironmentBG RendererSceneRender::environment_get_background(RID p_env) const { +RSE::EnvironmentBG RendererSceneRender::environment_get_background(RID p_env) const { return environment_storage.environment_get_background(p_env); } @@ -331,7 +331,7 @@ int RendererSceneRender::environment_get_canvas_max_layer(RID p_env) const { return environment_storage.environment_get_canvas_max_layer(p_env); } -RS::EnvironmentAmbientSource RendererSceneRender::environment_get_ambient_source(RID p_env) const { +RSE::EnvironmentAmbientSource RendererSceneRender::environment_get_ambient_source(RID p_env) const { return environment_storage.environment_get_ambient_source(p_env); } @@ -347,7 +347,7 @@ float RendererSceneRender::environment_get_ambient_sky_contribution(RID p_env) c return environment_storage.environment_get_ambient_sky_contribution(p_env); } -RS::EnvironmentReflectionSource RendererSceneRender::environment_get_reflection_source(RID p_env) const { +RSE::EnvironmentReflectionSource RendererSceneRender::environment_get_reflection_source(RID p_env) const { return environment_storage.environment_get_reflection_source(p_env); } @@ -361,11 +361,11 @@ int RendererSceneRender::environment_get_camera_feed_id(RID p_env) const { // Tonemap -void RendererSceneRender::environment_set_tonemap(RID p_env, RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white) { +void RendererSceneRender::environment_set_tonemap(RID p_env, RSE::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white) { environment_storage.environment_set_tonemap(p_env, p_tone_mapper, p_exposure, p_white); } -RS::EnvironmentToneMapper RendererSceneRender::environment_get_tone_mapper(RID p_env) const { +RSE::EnvironmentToneMapper RendererSceneRender::environment_get_tone_mapper(RID p_env) const { return environment_storage.environment_get_tone_mapper(p_env); } @@ -391,7 +391,7 @@ RendererEnvironmentStorage::TonemapParameters RendererSceneRender::environment_g // Fog -void RendererSceneRender::environment_set_fog(RID p_env, bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_aerial_perspective, float p_sky_affect, RS::EnvironmentFogMode p_mode) { +void RendererSceneRender::environment_set_fog(RID p_env, bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_aerial_perspective, float p_sky_affect, RSE::EnvironmentFogMode p_mode) { environment_storage.environment_set_fog(p_env, p_enable, p_light_color, p_light_energy, p_sun_scatter, p_density, p_height, p_height_density, p_aerial_perspective, p_sky_affect, p_mode); } @@ -399,7 +399,7 @@ bool RendererSceneRender::environment_get_fog_enabled(RID p_env) const { return environment_storage.environment_get_fog_enabled(p_env); } -RS::EnvironmentFogMode RendererSceneRender::environment_get_fog_mode(RID p_env) const { +RSE::EnvironmentFogMode RendererSceneRender::environment_get_fog_mode(RID p_env) const { return environment_storage.environment_get_fog_mode(p_env); } @@ -513,7 +513,7 @@ float RendererSceneRender::environment_get_volumetric_fog_ambient_inject(RID p_e // GLOW -void RendererSceneRender::environment_set_glow(RID p_env, bool p_enable, Vector p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, float p_glow_map_strength, RID p_glow_map) { +void RendererSceneRender::environment_set_glow(RID p_env, bool p_enable, Vector p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RSE::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, float p_glow_map_strength, RID p_glow_map) { environment_storage.environment_set_glow(p_env, p_enable, p_levels, p_intensity, p_strength, p_mix, p_bloom_threshold, p_blend_mode, p_hdr_bleed_threshold, p_hdr_bleed_scale, p_hdr_luminance_cap, p_glow_map_strength, p_glow_map); } @@ -541,7 +541,7 @@ float RendererSceneRender::environment_get_glow_mix(RID p_env) const { return environment_storage.environment_get_glow_mix(p_env); } -RS::EnvironmentGlowBlendMode RendererSceneRender::environment_get_glow_blend_mode(RID p_env) const { +RSE::EnvironmentGlowBlendMode RendererSceneRender::environment_get_glow_blend_mode(RID p_env) const { return environment_storage.environment_get_glow_blend_mode(p_env); } @@ -661,7 +661,7 @@ float RendererSceneRender::environment_get_ssil_normal_rejection(RID p_env) cons // SDFGI -void RendererSceneRender::environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) { +void RendererSceneRender::environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RSE::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) { environment_storage.environment_set_sdfgi(p_env, p_enable, p_cascades, p_min_cell_size, p_y_scale, p_use_occlusion, p_bounce_feedback, p_read_sky, p_energy, p_normal_bias, p_probe_bias); } @@ -701,7 +701,7 @@ float RendererSceneRender::environment_get_sdfgi_probe_bias(RID p_env) const { return environment_storage.environment_get_sdfgi_probe_bias(p_env); } -RS::EnvironmentSDFGIYScale RendererSceneRender::environment_get_sdfgi_y_scale(RID p_env) const { +RSE::EnvironmentSDFGIYScale RendererSceneRender::environment_get_sdfgi_y_scale(RID p_env) const { return environment_storage.environment_get_sdfgi_y_scale(p_env); } diff --git a/servers/rendering/renderer_scene_render.h b/servers/rendering/renderer_scene_render.h index 3197a7f4b8..165c823da5 100644 --- a/servers/rendering/renderer_scene_render.h +++ b/servers/rendering/renderer_scene_render.h @@ -63,7 +63,7 @@ public: /* PIPELINES */ virtual void mesh_generate_pipelines(RID p_mesh, bool p_background_compilation) = 0; - virtual uint32_t get_pipeline_compilations(RS::PipelineSource p_source) = 0; + virtual uint32_t get_pipeline_compilations(RSE::PipelineSource p_source) = 0; /* SDFGI UPDATE */ @@ -78,7 +78,7 @@ public: virtual void sky_initialize(RID p_rid) = 0; virtual void sky_set_radiance_size(RID p_sky, int p_radiance_size) = 0; - virtual void sky_set_mode(RID p_sky, RS::SkyMode p_samples) = 0; + virtual void sky_set_mode(RID p_sky, RSE::SkyMode p_samples) = 0; virtual void sky_set_material(RID p_sky, RID p_material) = 0; virtual Ref sky_bake_panorama(RID p_sky, float p_energy, bool p_bake_irradiance, const Size2i &p_size) = 0; @@ -90,8 +90,8 @@ public: bool is_compositor_effect(RID p_compositor) const; void compositor_effect_set_enabled(RID p_compositor, bool p_enabled); - void compositor_effect_set_callback(RID p_compositor, RS::CompositorEffectCallbackType p_callback_type, const Callable &p_callback); - void compositor_effect_set_flag(RID p_compositor, RS::CompositorEffectFlags p_flag, bool p_set); + void compositor_effect_set_callback(RID p_compositor, RSE::CompositorEffectCallbackType p_callback_type, const Callable &p_callback); + void compositor_effect_set_flag(RID p_compositor, RSE::CompositorEffectFlags p_flag, bool p_set); /* COMPOSITOR API */ @@ -112,17 +112,17 @@ public: bool is_environment(RID p_env) const; // Background - void environment_set_background(RID p_env, RS::EnvironmentBG p_bg); + void environment_set_background(RID p_env, RSE::EnvironmentBG p_bg); void environment_set_sky(RID p_env, RID p_sky); void environment_set_sky_custom_fov(RID p_env, float p_scale); void environment_set_sky_orientation(RID p_env, const Basis &p_orientation); void environment_set_bg_color(RID p_env, const Color &p_color); void environment_set_bg_energy(RID p_env, float p_multiplier, float p_exposure_value); void environment_set_canvas_max_layer(RID p_env, int p_max_layer); - void environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient = RS::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RS::EnvironmentReflectionSource p_reflection_source = RS::ENV_REFLECTION_SOURCE_BG); + void environment_set_ambient_light(RID p_env, const Color &p_color, RSE::EnvironmentAmbientSource p_ambient = RSE::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RSE::EnvironmentReflectionSource p_reflection_source = RSE::ENV_REFLECTION_SOURCE_BG); void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id); - RS::EnvironmentBG environment_get_background(RID p_env) const; + RSE::EnvironmentBG environment_get_background(RID p_env) const; RID environment_get_sky(RID p_env) const; float environment_get_sky_custom_fov(RID p_env) const; Basis environment_get_sky_orientation(RID p_env) const; @@ -130,16 +130,16 @@ public: float environment_get_bg_energy_multiplier(RID p_env) const; float environment_get_bg_intensity(RID p_env) const; int environment_get_canvas_max_layer(RID p_env) const; - RS::EnvironmentAmbientSource environment_get_ambient_source(RID p_env) const; + RSE::EnvironmentAmbientSource environment_get_ambient_source(RID p_env) const; Color environment_get_ambient_light(RID p_env) const; float environment_get_ambient_light_energy(RID p_env) const; float environment_get_ambient_sky_contribution(RID p_env) const; - RS::EnvironmentReflectionSource environment_get_reflection_source(RID p_env) const; + RSE::EnvironmentReflectionSource environment_get_reflection_source(RID p_env) const; int environment_get_camera_feed_id(RID p_env) const; // Tonemap - void environment_set_tonemap(RID p_env, RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white); - RS::EnvironmentToneMapper environment_get_tone_mapper(RID p_env) const; + void environment_set_tonemap(RID p_env, RSE::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white); + RSE::EnvironmentToneMapper environment_get_tone_mapper(RID p_env) const; float environment_get_exposure(RID p_env) const; float environment_get_white(RID p_env, bool p_limit_agx_white, float p_output_max_value) const; void environment_set_tonemap_agx_contrast(RID p_env, float p_agx_contrast); @@ -147,9 +147,9 @@ public: RendererEnvironmentStorage::TonemapParameters environment_get_tonemap_parameters(RID p_env, bool p_limit_agx_white, float p_output_max_value) const; // Fog - void environment_set_fog(RID p_env, bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_aerial_perspective, float p_sky_affect, RS::EnvironmentFogMode p_mode); + void environment_set_fog(RID p_env, bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_aerial_perspective, float p_sky_affect, RSE::EnvironmentFogMode p_mode); bool environment_get_fog_enabled(RID p_env) const; - RS::EnvironmentFogMode environment_get_fog_mode(RID p_env) const; + RSE::EnvironmentFogMode environment_get_fog_mode(RID p_env) const; Color environment_get_fog_light_color(RID p_env) const; float environment_get_fog_light_energy(RID p_env) const; float environment_get_fog_sun_scatter(RID p_env) const; @@ -185,14 +185,14 @@ public: virtual void environment_set_volumetric_fog_filter_active(bool p_enable) = 0; // GLOW - void environment_set_glow(RID p_env, bool p_enable, Vector p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, float p_glow_map_strength, RID p_glow_map); + void environment_set_glow(RID p_env, bool p_enable, Vector p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RSE::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, float p_glow_map_strength, RID p_glow_map); bool environment_get_glow_enabled(RID p_env) const; Vector environment_get_glow_levels(RID p_env) const; float environment_get_glow_intensity(RID p_env) const; float environment_get_glow_strength(RID p_env) const; float environment_get_glow_bloom(RID p_env) const; float environment_get_glow_mix(RID p_env) const; - RS::EnvironmentGlowBlendMode environment_get_glow_blend_mode(RID p_env) const; + RSE::EnvironmentGlowBlendMode environment_get_glow_blend_mode(RID p_env) const; float environment_get_glow_hdr_bleed_threshold(RID p_env) const; float environment_get_glow_hdr_luminance_cap(RID p_env) const; float environment_get_glow_hdr_bleed_scale(RID p_env) const; @@ -210,7 +210,7 @@ public: float environment_get_ssr_depth_tolerance(RID p_env) const; virtual void environment_set_ssr_half_size(bool p_half_size) = 0; - virtual void environment_set_ssr_roughness_quality(RS::EnvironmentSSRRoughnessQuality p_quality) = 0; + virtual void environment_set_ssr_roughness_quality(RSE::EnvironmentSSRRoughnessQuality p_quality) = 0; // SSAO void environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_power, float p_detail, float p_horizon, float p_sharpness, float p_light_affect, float p_ao_channel_affect); @@ -224,7 +224,7 @@ public: float environment_get_ssao_direct_light_affect(RID p_env) const; float environment_get_ssao_ao_channel_affect(RID p_env) const; - virtual void environment_set_ssao_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0; + virtual void environment_set_ssao_quality(RSE::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0; // SSIL void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection); @@ -234,10 +234,10 @@ public: float environment_get_ssil_sharpness(RID p_env) const; float environment_get_ssil_normal_rejection(RID p_env) const; - virtual void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0; + virtual void environment_set_ssil_quality(RSE::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0; // SDFGI - void environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias); + void environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RSE::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias); bool environment_get_sdfgi_enabled(RID p_env) const; int environment_get_sdfgi_cascades(RID p_env) const; float environment_get_sdfgi_min_cell_size(RID p_env) const; @@ -247,11 +247,11 @@ public: float environment_get_sdfgi_energy(RID p_env) const; float environment_get_sdfgi_normal_bias(RID p_env) const; float environment_get_sdfgi_probe_bias(RID p_env) const; - RS::EnvironmentSDFGIYScale environment_get_sdfgi_y_scale(RID p_env) const; + RSE::EnvironmentSDFGIYScale environment_get_sdfgi_y_scale(RID p_env) const; - virtual void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) = 0; - virtual void environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) = 0; - virtual void environment_set_sdfgi_frames_to_update_light(RS::EnvironmentSDFGIFramesToUpdateLight p_update) = 0; + virtual void environment_set_sdfgi_ray_count(RSE::EnvironmentSDFGIRayCount p_ray_count) = 0; + virtual void environment_set_sdfgi_frames_to_converge(RSE::EnvironmentSDFGIFramesToConverge p_frames) = 0; + virtual void environment_set_sdfgi_frames_to_update_light(RSE::EnvironmentSDFGIFramesToUpdateLight p_update) = 0; // Adjustment void environment_set_adjustment(RID p_env, bool p_enable, float p_brightness, float p_contrast, float p_saturation, bool p_use_1d_color_correction, RID p_color_correction); @@ -264,8 +264,8 @@ public: virtual Ref environment_bake_panorama(RID p_env, bool p_bake_irradiance, const Size2i &p_size) = 0; - virtual void positional_soft_shadow_filter_set_quality(RS::ShadowQuality p_quality) = 0; - virtual void directional_soft_shadow_filter_set_quality(RS::ShadowQuality p_quality) = 0; + virtual void positional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) = 0; + virtual void directional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) = 0; virtual RID fog_volume_instance_create(RID p_fog_volume) = 0; virtual void fog_volume_instance_set_transform(RID p_fog_volume_instance, const Transform3D &p_transform) = 0; @@ -278,7 +278,7 @@ public: virtual bool voxel_gi_needs_update(RID p_probe) const = 0; virtual void voxel_gi_update(RID p_probe, bool p_update_light_instances, const Vector &p_light_instances, const PagedArray &p_dynamic_objects) = 0; - virtual void voxel_gi_set_quality(RS::VoxelGIQuality) = 0; + virtual void voxel_gi_set_quality(RSE::VoxelGIQuality) = 0; struct RenderShadowData { RID light; @@ -330,7 +330,7 @@ public: virtual void set_scene_pass(uint64_t p_pass) = 0; virtual void set_time(double p_time, double p_step) = 0; - virtual void set_debug_draw_mode(RS::ViewportDebugDraw p_debug_draw) = 0; + virtual void set_debug_draw_mode(RSE::ViewportDebugDraw p_debug_draw) = 0; virtual Ref render_buffers_create() = 0; virtual void gi_set_use_half_resolution(bool p_enable) = 0; @@ -338,7 +338,7 @@ public: virtual void screen_space_roughness_limiter_set_active(bool p_enable, float p_amount, float p_limit) = 0; virtual bool screen_space_roughness_limiter_is_active() const = 0; - virtual void sub_surface_scattering_set_quality(RS::SubSurfaceScatteringQuality p_quality) = 0; + virtual void sub_surface_scattering_set_quality(RSE::SubSurfaceScatteringQuality p_quality) = 0; virtual void sub_surface_scattering_set_scale(float p_scale, float p_depth_scale) = 0; virtual TypedArray bake_render_uv2(RID p_base, const TypedArray &p_material_overrides, const Size2i &p_image_size) = 0; @@ -347,8 +347,8 @@ public: virtual void sdfgi_set_debug_probe_select(const Vector3 &p_position, const Vector3 &p_dir) = 0; - virtual void decals_set_filter(RS::DecalFilter p_filter) = 0; - virtual void light_projectors_set_filter(RS::LightProjectorFilter p_filter) = 0; + virtual void decals_set_filter(RSE::DecalFilter p_filter) = 0; + virtual void light_projectors_set_filter(RSE::LightProjectorFilter p_filter) = 0; virtual void lightmaps_set_bicubic_filter(bool p_enable) = 0; virtual void material_set_use_debanding(bool p_enable) = 0; diff --git a/servers/rendering/renderer_viewport.cpp b/servers/rendering/renderer_viewport.cpp index 4f8abee3eb..db2e284f01 100644 --- a/servers/rendering/renderer_viewport.cpp +++ b/servers/rendering/renderer_viewport.cpp @@ -134,66 +134,66 @@ void RendererViewport::_configure_3d_render_buffers(Viewport *p_viewport) { } else { const float EPSILON = 0.0001; float scaling_3d_scale = p_viewport->scaling_3d_scale; - RS::ViewportScaling3DMode scaling_3d_mode = p_viewport->scaling_3d_mode; + RSE::ViewportScaling3DMode scaling_3d_mode = p_viewport->scaling_3d_mode; bool upscaler_available = p_viewport->fsr_enabled; - RS::ViewportScaling3DType scaling_type = RS::scaling_3d_mode_type(scaling_3d_mode); + RSE::ViewportScaling3DType scaling_type = RS::scaling_3d_mode_type(scaling_3d_mode); - if ((!upscaler_available || (scaling_type == RS::VIEWPORT_SCALING_3D_TYPE_SPATIAL)) && scaling_3d_scale >= (1.0 - EPSILON) && scaling_3d_scale <= (1.0 + EPSILON)) { + if ((!upscaler_available || (scaling_type == RSE::VIEWPORT_SCALING_3D_TYPE_SPATIAL)) && scaling_3d_scale >= (1.0 - EPSILON) && scaling_3d_scale <= (1.0 + EPSILON)) { // No 3D scaling for spatial modes? Ignore scaling mode, this just introduces overhead. // - Mobile can't perform optimal path // - FSR does an extra pass (or 2 extra passes if 2D-MSAA is enabled) // Scaling = 1.0 on FSR2 and MetalFX temporal has benefits scaling_3d_scale = 1.0; - scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_OFF; + scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_OFF; } - if (scaling_3d_mode != RS::VIEWPORT_SCALING_3D_MODE_OFF && scaling_3d_mode != RS::VIEWPORT_SCALING_3D_MODE_BILINEAR && OS::get_singleton()->get_current_rendering_method() == "gl_compatibility") { - scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_BILINEAR; + if (scaling_3d_mode != RSE::VIEWPORT_SCALING_3D_MODE_OFF && scaling_3d_mode != RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR && OS::get_singleton()->get_current_rendering_method() == "gl_compatibility") { + scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR; scaling_type = RS::scaling_3d_mode_type(scaling_3d_mode); WARN_PRINT_ONCE("MetalFX and FSR upscaling are not supported in the Compatibility renderer. Falling back to bilinear scaling."); } - if (scaling_3d_mode == RS::VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL && !RD::get_singleton()->has_feature(RD::SUPPORTS_METALFX_TEMPORAL)) { + if (scaling_3d_mode == RSE::VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL && !RD::get_singleton()->has_feature(RD::SUPPORTS_METALFX_TEMPORAL)) { if (RD::get_singleton()->has_feature(RD::SUPPORTS_METALFX_SPATIAL)) { // Prefer MetalFX spatial if it is supported, which will be much more efficient than FSR2, // as the hardware already will struggle with FSR2. - scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL; + scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL; WARN_PRINT_ONCE("MetalFX temporal upscaling is not supported by the current renderer or hardware. Falling back to MetalFX Spatial scaling."); } else { - scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_FSR2; + scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_FSR2; WARN_PRINT_ONCE("MetalFX upscaling is not supported by the current renderer or hardware. Falling back to FSR 2 scaling."); } scaling_type = RS::scaling_3d_mode_type(scaling_3d_mode); } - if (scaling_3d_mode == RS::VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL && !RD::get_singleton()->has_feature(RD::SUPPORTS_METALFX_SPATIAL)) { - scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_FSR; + if (scaling_3d_mode == RSE::VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL && !RD::get_singleton()->has_feature(RD::SUPPORTS_METALFX_SPATIAL)) { + scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_FSR; WARN_PRINT_ONCE("MetalFX spatial upscaling is not supported by the current renderer or hardware. Falling back to FSR scaling."); } - RS::ViewportMSAA msaa_3d = p_viewport->msaa_3d; + RSE::ViewportMSAA msaa_3d = p_viewport->msaa_3d; // If MetalFX Temporal upscaling is supported, verify limits. - if (scaling_3d_mode == RS::VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL) { + if (scaling_3d_mode == RSE::VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL) { double min_scale = (double)RD::get_singleton()->limit_get(RD::LIMIT_METALFX_TEMPORAL_SCALER_MIN_SCALE) / 1000'000.0; double max_scale = (double)RD::get_singleton()->limit_get(RD::LIMIT_METALFX_TEMPORAL_SCALER_MAX_SCALE) / 1000'000.0; if ((double)scaling_3d_scale < min_scale || (double)scaling_3d_scale > max_scale) { - scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_FSR2; + scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_FSR2; WARN_PRINT_ONCE(vformat("MetalFX temporal upscaling scale is outside limits; scale must be between %f and %f. Falling back to FSR 2 3D resolution scaling.", min_scale, max_scale)); - } else if (msaa_3d != RS::VIEWPORT_MSAA_DISABLED) { + } else if (msaa_3d != RSE::VIEWPORT_MSAA_DISABLED) { WARN_PRINT_ONCE("MetalFX temporal upscaling does not support 3D MSAA. Disabling 3D MSAA internally."); - msaa_3d = RS::VIEWPORT_MSAA_DISABLED; + msaa_3d = RSE::VIEWPORT_MSAA_DISABLED; } } - bool scaling_3d_is_not_bilinear = scaling_3d_mode != RS::VIEWPORT_SCALING_3D_MODE_OFF && scaling_3d_mode != RS::VIEWPORT_SCALING_3D_MODE_BILINEAR; + bool scaling_3d_is_not_bilinear = scaling_3d_mode != RSE::VIEWPORT_SCALING_3D_MODE_OFF && scaling_3d_mode != RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR; bool use_taa = p_viewport->use_taa; if (scaling_3d_is_not_bilinear && (scaling_3d_scale >= (1.0 + EPSILON))) { // FSR and MetalFX is not designed for downsampling. // Fall back to bilinear scaling. WARN_PRINT_ONCE("FSR 3D resolution scaling is not designed for downsampling. Falling back to bilinear 3D resolution scaling."); - scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_BILINEAR; + scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR; scaling_type = RS::scaling_3d_mode_type(scaling_3d_mode); } @@ -201,11 +201,11 @@ void RendererViewport::_configure_3d_render_buffers(Viewport *p_viewport) { // FSR is not actually available. // Fall back to bilinear scaling. WARN_PRINT_ONCE("FSR 3D resolution scaling is not available. Falling back to bilinear 3D resolution scaling."); - scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_BILINEAR; + scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR; scaling_type = RS::scaling_3d_mode_type(scaling_3d_mode); } - if (use_taa && (scaling_type == RS::VIEWPORT_SCALING_3D_TYPE_TEMPORAL)) { + if (use_taa && (scaling_type == RSE::VIEWPORT_SCALING_3D_TYPE_TEMPORAL)) { // Temporal upscalers can't be used with TAA. // Turn it off and prefer using the temporal upscaler. WARN_PRINT_ONCE("FSR 2 or MetalFX Temporal is not compatible with TAA. Disabling TAA internally."); @@ -218,7 +218,7 @@ void RendererViewport::_configure_3d_render_buffers(Viewport *p_viewport) { int render_height; switch (scaling_3d_mode) { - case RS::VIEWPORT_SCALING_3D_MODE_BILINEAR: + case RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR: // Clamp 3D rendering resolution to reasonable values supported on most hardware. // This prevents freezing the engine or outright crashing on lower-end GPUs. target_width = p_viewport->size.width; @@ -226,16 +226,16 @@ void RendererViewport::_configure_3d_render_buffers(Viewport *p_viewport) { render_width = CLAMP(target_width * scaling_3d_scale, 1, 16384); render_height = CLAMP(target_height * scaling_3d_scale, 1, 16384); break; - case RS::VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL: - case RS::VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL: - case RS::VIEWPORT_SCALING_3D_MODE_FSR: - case RS::VIEWPORT_SCALING_3D_MODE_FSR2: + case RSE::VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL: + case RSE::VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL: + case RSE::VIEWPORT_SCALING_3D_MODE_FSR: + case RSE::VIEWPORT_SCALING_3D_MODE_FSR2: target_width = p_viewport->size.width; target_height = p_viewport->size.height; render_width = MAX(target_width * scaling_3d_scale, 1.0); // target_width / (target_width * scaling) render_height = MAX(target_height * scaling_3d_scale, 1.0); break; - case RS::VIEWPORT_SCALING_3D_MODE_OFF: + case RSE::VIEWPORT_SCALING_3D_MODE_OFF: target_width = p_viewport->size.width; target_height = p_viewport->size.height; render_width = target_width; @@ -244,7 +244,7 @@ void RendererViewport::_configure_3d_render_buffers(Viewport *p_viewport) { default: // This is an unknown mode. WARN_PRINT_ONCE(vformat("Unknown scaling mode: %d. Disabling 3D resolution scaling.", scaling_3d_mode)); - scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_OFF; + scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_OFF; scaling_3d_scale = 1.0; target_width = p_viewport->size.width; target_height = p_viewport->size.height; @@ -254,7 +254,7 @@ void RendererViewport::_configure_3d_render_buffers(Viewport *p_viewport) { } uint32_t jitter_phase_count = 0; - if (scaling_type == RS::VIEWPORT_SCALING_3D_TYPE_TEMPORAL) { + if (scaling_type == RSE::VIEWPORT_SCALING_3D_TYPE_TEMPORAL) { // Implementation has been copied from ffxFsr2GetJitterPhaseCount. // Also used for MetalFX Temporal scaling. jitter_phase_count = uint32_t(8.0f * std::pow(float(target_width) / render_width, 2.0f)); @@ -341,8 +341,8 @@ void RendererViewport::_draw_viewport(Viewport *p_viewport) { int scenario_canvas_max_layer = 0; bool force_clear_render_target = false; - for (int i = 0; i < RS::VIEWPORT_RENDER_INFO_TYPE_MAX; i++) { - for (int j = 0; j < RS::VIEWPORT_RENDER_INFO_MAX; j++) { + for (int i = 0; i < RSE::VIEWPORT_RENDER_INFO_TYPE_MAX; i++) { + for (int j = 0; j < RSE::VIEWPORT_RENDER_INFO_MAX; j++) { p_viewport->render_info.info[i][j] = 0; } } @@ -351,9 +351,9 @@ void RendererViewport::_draw_viewport(Viewport *p_viewport) { RID environment = RSG::scene->scenario_get_environment(p_viewport->scenario); if (RSG::scene->is_environment(environment)) { if (can_draw_2d && !viewport_is_environment_disabled(p_viewport)) { - scenario_draw_canvas_bg = RSG::scene->environment_get_background(environment) == RS::ENV_BG_CANVAS; + scenario_draw_canvas_bg = RSG::scene->environment_get_background(environment) == RSE::ENV_BG_CANVAS; scenario_canvas_max_layer = RSG::scene->environment_get_canvas_max_layer(environment); - } else if (RSG::scene->environment_get_background(environment) == RS::ENV_BG_CANVAS) { + } else if (RSG::scene->environment_get_background(environment) == RSE::ENV_BG_CANVAS) { // The scene renderer will still copy over the last frame, so we need to clear the render target. force_clear_render_target = true; } @@ -380,10 +380,10 @@ void RendererViewport::_draw_viewport(Viewport *p_viewport) { Color bgcolor = p_viewport->transparent_bg ? Color(0, 0, 0, 0) : RSG::texture_storage->get_default_clear_color(); - if (p_viewport->clear_mode != RS::VIEWPORT_CLEAR_NEVER) { + if (p_viewport->clear_mode != RSE::VIEWPORT_CLEAR_NEVER) { RSG::texture_storage->render_target_request_clear(p_viewport->render_target, bgcolor); - if (p_viewport->clear_mode == RS::VIEWPORT_CLEAR_ONLY_NEXT_FRAME) { - p_viewport->clear_mode = RS::VIEWPORT_CLEAR_NEVER; + if (p_viewport->clear_mode == RSE::VIEWPORT_CLEAR_ONLY_NEXT_FRAME) { + p_viewport->clear_mode = RSE::VIEWPORT_CLEAR_NEVER; } } @@ -518,7 +518,7 @@ void RendererViewport::_draw_viewport(Viewport *p_viewport) { directional_light_count++; - if (directional_light_count == RS::MAX_2D_DIRECTIONAL_LIGHTS) { + if (directional_light_count == RSE::MAX_2D_DIRECTIONAL_LIGHTS) { break; } } @@ -794,7 +794,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) { for (int i = sorted_active_viewports.size() - 1; i >= 0; i--) { //to compute parent dependency, must go in reverse draw order Viewport *vp = sorted_active_viewports[i]; - if (vp->update_mode == RS::VIEWPORT_UPDATE_DISABLED) { + if (vp->update_mode == RSE::VIEWPORT_UPDATE_DISABLED) { continue; } @@ -822,15 +822,15 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) { } else #endif // XR_DISABLED { - if (vp->update_mode == RS::VIEWPORT_UPDATE_ALWAYS || vp->update_mode == RS::VIEWPORT_UPDATE_ONCE) { + if (vp->update_mode == RSE::VIEWPORT_UPDATE_ALWAYS || vp->update_mode == RSE::VIEWPORT_UPDATE_ONCE) { visible = true; } - if (vp->update_mode == RS::VIEWPORT_UPDATE_WHEN_VISIBLE && RSG::texture_storage->render_target_was_used(vp->render_target)) { + if (vp->update_mode == RSE::VIEWPORT_UPDATE_WHEN_VISIBLE && RSG::texture_storage->render_target_was_used(vp->render_target)) { visible = true; } - if (vp->update_mode == RS::VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE) { + if (vp->update_mode == RSE::VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE) { Viewport *parent = viewport_owner.get_or_null(vp->parent); if (parent && parent->last_pass == draw_viewports_pass) { visible = true; @@ -942,23 +942,23 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) { } } - if (vp->update_mode == RS::VIEWPORT_UPDATE_ONCE) { - vp->update_mode = RS::VIEWPORT_UPDATE_DISABLED; + if (vp->update_mode == RSE::VIEWPORT_UPDATE_ONCE) { + vp->update_mode = RSE::VIEWPORT_UPDATE_DISABLED; } RENDER_TIMESTAMP("< Render Viewport " + itos(i)); // 3D render info. - objects_drawn += vp->render_info.info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] + vp->render_info.info[RS::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME]; - vertices_drawn += vp->render_info.info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] + vp->render_info.info[RS::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME]; - draw_calls_used += vp->render_info.info[RS::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME] + vp->render_info.info[RS::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]; + objects_drawn += vp->render_info.info[RSE::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME] + vp->render_info.info[RSE::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME]; + vertices_drawn += vp->render_info.info[RSE::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME] + vp->render_info.info[RSE::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME]; + draw_calls_used += vp->render_info.info[RSE::VIEWPORT_RENDER_INFO_TYPE_VISIBLE][RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME] + vp->render_info.info[RSE::VIEWPORT_RENDER_INFO_TYPE_SHADOW][RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]; // 2D render info. - objects_drawn += vp->render_info.info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME]; - vertices_drawn += vp->render_info.info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME]; - draw_calls_used += vp->render_info.info[RS::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]; + objects_drawn += vp->render_info.info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME]; + vertices_drawn += vp->render_info.info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME]; + draw_calls_used += vp->render_info.info[RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS][RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME]; } - RSG::scene->set_debug_draw_mode(RS::VIEWPORT_DEBUG_DRAW_DISABLED); + RSG::scene->set_debug_draw_mode(RSE::VIEWPORT_DEBUG_DRAW_DISABLED); total_objects_drawn = objects_drawn; total_vertices_drawn = vertices_drawn; @@ -1009,23 +1009,23 @@ void RendererViewport::viewport_set_use_xr(RID p_viewport, bool p_use_xr) { } #endif // !XR_DISABLED -void RendererViewport::viewport_set_scaling_3d_mode(RID p_viewport, RS::ViewportScaling3DMode p_mode) { +void RendererViewport::viewport_set_scaling_3d_mode(RID p_viewport, RSE::ViewportScaling3DMode p_mode) { Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL(viewport); #ifdef DEBUG_ENABLED const String rendering_method = OS::get_singleton()->get_current_rendering_method(); if (rendering_method != "forward_plus") { - if (p_mode == RS::VIEWPORT_SCALING_3D_MODE_FSR) { + if (p_mode == RSE::VIEWPORT_SCALING_3D_MODE_FSR) { WARN_PRINT_ONCE_ED("FSR1 3D scaling is only available when using the Forward+ renderer."); } - if (p_mode == RS::VIEWPORT_SCALING_3D_MODE_FSR2) { + if (p_mode == RSE::VIEWPORT_SCALING_3D_MODE_FSR2) { WARN_PRINT_ONCE_ED("FSR2 3D scaling is only available when using the Forward+ renderer."); } - if (p_mode == RS::VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL) { + if (p_mode == RSE::VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL) { WARN_PRINT_ONCE_ED("MetalFX Temporal 3D scaling is only available when using the Forward+ renderer."); } } - if (rendering_method == "gl_compatibility" && p_mode == RS::VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL) { + if (rendering_method == "gl_compatibility" && p_mode == RSE::VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL) { WARN_PRINT_ONCE_ED("MetalFX Spatial 3D scaling is only available when using the Forward+ or Mobile renderer."); } #endif @@ -1061,7 +1061,7 @@ void RendererViewport::viewport_set_texture_mipmap_bias(RID p_viewport, float p_ _configure_3d_render_buffers(viewport); } -void RendererViewport::viewport_set_anisotropic_filtering_level(RID p_viewport, RS::ViewportAnisotropicFiltering p_anisotropic_filtering_level) { +void RendererViewport::viewport_set_anisotropic_filtering_level(RID p_viewport, RSE::ViewportAnisotropicFiltering p_anisotropic_filtering_level) { Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL(viewport); @@ -1109,8 +1109,8 @@ void RendererViewport::_viewport_set_size(Viewport *p_viewport, int p_width, int bool RendererViewport::_viewport_requires_motion_vectors(Viewport *p_viewport) { return p_viewport->use_taa || - RS::scaling_3d_mode_type(p_viewport->scaling_3d_mode) == RS::VIEWPORT_SCALING_3D_TYPE_TEMPORAL || - p_viewport->debug_draw == RenderingServer::VIEWPORT_DEBUG_DRAW_MOTION_VECTORS || p_viewport->force_motion_vectors; + RS::scaling_3d_mode_type(p_viewport->scaling_3d_mode) == RSE::VIEWPORT_SCALING_3D_TYPE_TEMPORAL || + p_viewport->debug_draw == RSE::VIEWPORT_DEBUG_DRAW_MOTION_VECTORS || p_viewport->force_motion_vectors; } void RendererViewport::viewport_set_active(RID p_viewport, bool p_active) { @@ -1135,7 +1135,7 @@ void RendererViewport::viewport_set_parent_viewport(RID p_viewport, RID p_parent viewport->parent = p_parent_viewport; } -void RendererViewport::viewport_set_clear_mode(RID p_viewport, RS::ViewportClearMode p_clear_mode) { +void RendererViewport::viewport_set_clear_mode(RID p_viewport, RSE::ViewportClearMode p_clear_mode) { Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL(viewport); @@ -1192,16 +1192,16 @@ void RendererViewport::viewport_set_render_direct_to_screen(RID p_viewport, bool } } -void RendererViewport::viewport_set_update_mode(RID p_viewport, RS::ViewportUpdateMode p_mode) { +void RendererViewport::viewport_set_update_mode(RID p_viewport, RSE::ViewportUpdateMode p_mode) { Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL(viewport); viewport->update_mode = p_mode; } -RS::ViewportUpdateMode RendererViewport::viewport_get_update_mode(RID p_viewport) const { +RSE::ViewportUpdateMode RendererViewport::viewport_get_update_mode(RID p_viewport) const { Viewport *viewport = viewport_owner.get_or_null(p_viewport); - ERR_FAIL_NULL_V(viewport, RS::VIEWPORT_UPDATE_DISABLED); + ERR_FAIL_NULL_V(viewport, RSE::VIEWPORT_UPDATE_DISABLED); return viewport->update_mode; } @@ -1224,7 +1224,7 @@ RID RendererViewport::viewport_get_occluder_debug_texture(RID p_viewport) const const Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL_V(viewport, RID()); - if (viewport->use_occlusion_culling && viewport->debug_draw == RenderingServer::VIEWPORT_DEBUG_DRAW_OCCLUDERS) { + if (viewport->use_occlusion_culling && viewport->debug_draw == RSE::VIEWPORT_DEBUG_DRAW_OCCLUDERS) { return RendererSceneOcclusionCull::get_singleton()->buffer_get_debug_texture(p_viewport); } return RID(); @@ -1253,7 +1253,7 @@ void RendererViewport::viewport_set_disable_2d(RID p_viewport, bool p_disable) { viewport->disable_2d = p_disable; } -void RendererViewport::viewport_set_environment_mode(RID p_viewport, RS::ViewportEnvironmentMode p_mode) { +void RendererViewport::viewport_set_environment_mode(RID p_viewport, RSE::ViewportEnvironmentMode p_mode) { Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL(viewport); @@ -1263,11 +1263,11 @@ void RendererViewport::viewport_set_environment_mode(RID p_viewport, RS::Viewpor bool RendererViewport::viewport_is_environment_disabled(Viewport *viewport) { ERR_FAIL_NULL_V(viewport, false); - if (viewport->parent.is_valid() && viewport->disable_environment == RS::VIEWPORT_ENVIRONMENT_INHERIT) { + if (viewport->parent.is_valid() && viewport->disable_environment == RSE::VIEWPORT_ENVIRONMENT_INHERIT) { Viewport *parent = viewport_owner.get_or_null(viewport->parent); return viewport_is_environment_disabled(parent); } - return viewport->disable_environment == RS::VIEWPORT_ENVIRONMENT_DISABLED; + return viewport->disable_environment == RSE::VIEWPORT_ENVIRONMENT_DISABLED; } void RendererViewport::viewport_set_disable_3d(RID p_viewport, bool p_disable) { @@ -1376,7 +1376,7 @@ void RendererViewport::viewport_set_positional_shadow_atlas_quadrant_subdivision RSG::light_storage->shadow_atlas_set_quadrant_subdivision(viewport->shadow_atlas, p_quadrant, p_subdiv); } -void RendererViewport::viewport_set_msaa_2d(RID p_viewport, RS::ViewportMSAA p_msaa) { +void RendererViewport::viewport_set_msaa_2d(RID p_viewport, RSE::ViewportMSAA p_msaa) { Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL(viewport); @@ -1387,7 +1387,7 @@ void RendererViewport::viewport_set_msaa_2d(RID p_viewport, RS::ViewportMSAA p_m RSG::texture_storage->render_target_set_msaa(viewport->render_target, p_msaa); } -void RendererViewport::viewport_set_msaa_3d(RID p_viewport, RS::ViewportMSAA p_msaa) { +void RendererViewport::viewport_set_msaa_3d(RID p_viewport, RSE::ViewportMSAA p_msaa) { Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL(viewport); @@ -1417,11 +1417,11 @@ bool RendererViewport::viewport_is_using_hdr_2d(RID p_viewport) const { return viewport->use_hdr_2d; } -void RendererViewport::viewport_set_screen_space_aa(RID p_viewport, RS::ViewportScreenSpaceAA p_mode) { +void RendererViewport::viewport_set_screen_space_aa(RID p_viewport, RSE::ViewportScreenSpaceAA p_mode) { Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL(viewport); #ifdef DEBUG_ENABLED - if (OS::get_singleton()->get_current_rendering_method() == "gl_compatibility" && p_mode != RS::VIEWPORT_SCREEN_SPACE_AA_DISABLED) { + if (OS::get_singleton()->get_current_rendering_method() == "gl_compatibility" && p_mode != RSE::VIEWPORT_SCREEN_SPACE_AA_DISABLED) { WARN_PRINT_ONCE_ED("Screen-space AA is only available when using the Forward+ or Mobile renderer."); } #endif @@ -1523,7 +1523,7 @@ void RendererViewport::viewport_set_occlusion_rays_per_thread(int p_rays_per_thr } } -void RendererViewport::viewport_set_occlusion_culling_build_quality(RS::ViewportOcclusionCullingBuildQuality p_quality) { +void RendererViewport::viewport_set_occlusion_culling_build_quality(RSE::ViewportOcclusionCullingBuildQuality p_quality) { RendererSceneOcclusionCull::get_singleton()->set_build_quality(p_quality); } @@ -1534,9 +1534,9 @@ void RendererViewport::viewport_set_mesh_lod_threshold(RID p_viewport, float p_p viewport->mesh_lod_threshold = p_pixels; } -int RendererViewport::viewport_get_render_info(RID p_viewport, RS::ViewportRenderInfoType p_type, RS::ViewportRenderInfo p_info) { - ERR_FAIL_INDEX_V(p_type, RS::VIEWPORT_RENDER_INFO_TYPE_MAX, -1); - ERR_FAIL_INDEX_V(p_info, RS::VIEWPORT_RENDER_INFO_MAX, -1); +int RendererViewport::viewport_get_render_info(RID p_viewport, RSE::ViewportRenderInfoType p_type, RSE::ViewportRenderInfo p_info) { + ERR_FAIL_INDEX_V(p_type, RSE::VIEWPORT_RENDER_INFO_TYPE_MAX, -1); + ERR_FAIL_INDEX_V(p_info, RSE::VIEWPORT_RENDER_INFO_MAX, -1); Viewport *viewport = viewport_owner.get_or_null(p_viewport); if (!viewport) { @@ -1546,7 +1546,7 @@ int RendererViewport::viewport_get_render_info(RID p_viewport, RS::ViewportRende return viewport->render_info.info[p_type][p_info]; } -void RendererViewport::viewport_set_debug_draw(RID p_viewport, RS::ViewportDebugDraw p_draw) { +void RendererViewport::viewport_set_debug_draw(RID p_viewport, RSE::ViewportDebugDraw p_draw) { Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL(viewport); @@ -1592,22 +1592,22 @@ void RendererViewport::viewport_set_snap_2d_vertices_to_pixel(RID p_viewport, bo viewport->snap_2d_vertices_to_pixel = p_enabled; } -void RendererViewport::viewport_set_default_canvas_item_texture_filter(RID p_viewport, RS::CanvasItemTextureFilter p_filter) { - ERR_FAIL_COND_MSG(p_filter == RS::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT, "Viewport does not accept DEFAULT as texture filter (it's the topmost choice already).)"); +void RendererViewport::viewport_set_default_canvas_item_texture_filter(RID p_viewport, RSE::CanvasItemTextureFilter p_filter) { + ERR_FAIL_COND_MSG(p_filter == RSE::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT, "Viewport does not accept DEFAULT as texture filter (it's the topmost choice already).)"); Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL(viewport); viewport->texture_filter = p_filter; } -void RendererViewport::viewport_set_default_canvas_item_texture_repeat(RID p_viewport, RS::CanvasItemTextureRepeat p_repeat) { - ERR_FAIL_COND_MSG(p_repeat == RS::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT, "Viewport does not accept DEFAULT as texture repeat (it's the topmost choice already).)"); +void RendererViewport::viewport_set_default_canvas_item_texture_repeat(RID p_viewport, RSE::CanvasItemTextureRepeat p_repeat) { + ERR_FAIL_COND_MSG(p_repeat == RSE::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT, "Viewport does not accept DEFAULT as texture repeat (it's the topmost choice already).)"); Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL(viewport); viewport->texture_repeat = p_repeat; } -void RendererViewport::viewport_set_sdf_oversize_and_scale(RID p_viewport, RS::ViewportSDFOversize p_size, RS::ViewportSDFScale p_scale) { +void RendererViewport::viewport_set_sdf_oversize_and_scale(RID p_viewport, RSE::ViewportSDFOversize p_size, RSE::ViewportSDFScale p_scale) { Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL(viewport); @@ -1628,7 +1628,7 @@ RID RendererViewport::viewport_find_from_screen_attachment(DisplayServer::Window return RID(); } -void RendererViewport::viewport_set_vrs_mode(RID p_viewport, RS::ViewportVRSMode p_mode) { +void RendererViewport::viewport_set_vrs_mode(RID p_viewport, RSE::ViewportVRSMode p_mode) { Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL(viewport); @@ -1636,7 +1636,7 @@ void RendererViewport::viewport_set_vrs_mode(RID p_viewport, RS::ViewportVRSMode _configure_3d_render_buffers(viewport); } -void RendererViewport::viewport_set_vrs_update_mode(RID p_viewport, RS::ViewportVRSUpdateMode p_mode) { +void RendererViewport::viewport_set_vrs_update_mode(RID p_viewport, RSE::ViewportVRSUpdateMode p_mode) { Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_NULL(viewport); diff --git a/servers/rendering/renderer_viewport.h b/servers/rendering/renderer_viewport.h index 2ba1d1e4fb..8514cb46f3 100644 --- a/servers/rendering/renderer_viewport.h +++ b/servers/rendering/renderer_viewport.h @@ -34,6 +34,7 @@ #include "servers/rendering/renderer_scene_render.h" #include "servers/rendering/rendering_method.h" #include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" #include "storage/render_scene_buffers.h" class RendererViewport { @@ -54,21 +55,21 @@ public: RID camera; RID scenario; - RS::ViewportScaling3DMode scaling_3d_mode = RenderingServer::VIEWPORT_SCALING_3D_MODE_BILINEAR; + RSE::ViewportScaling3DMode scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR; float scaling_3d_scale = 1.0; float fsr_sharpness = 0.2f; float texture_mipmap_bias = 0.0f; - RS::ViewportAnisotropicFiltering anisotropic_filtering_level = RenderingServer::VIEWPORT_ANISOTROPY_4X; + RSE::ViewportAnisotropicFiltering anisotropic_filtering_level = RSE::VIEWPORT_ANISOTROPY_4X; bool fsr_enabled = false; uint32_t jitter_phase_count = 0; - RS::ViewportUpdateMode update_mode = RenderingServer::VIEWPORT_UPDATE_WHEN_VISIBLE; + RSE::ViewportUpdateMode update_mode = RSE::VIEWPORT_UPDATE_WHEN_VISIBLE; RID render_target; RID render_target_texture; Ref render_buffers; - RS::ViewportMSAA msaa_2d = RenderingServer::VIEWPORT_MSAA_DISABLED; - RS::ViewportMSAA msaa_3d = RenderingServer::VIEWPORT_MSAA_DISABLED; - RS::ViewportScreenSpaceAA screen_space_aa = RenderingServer::VIEWPORT_SCREEN_SPACE_AA_DISABLED; + RSE::ViewportMSAA msaa_2d = RSE::VIEWPORT_MSAA_DISABLED; + RSE::ViewportMSAA msaa_3d = RSE::VIEWPORT_MSAA_DISABLED; + RSE::ViewportScreenSpaceAA screen_space_aa = RSE::VIEWPORT_SCREEN_SPACE_AA_DISABLED; bool use_taa = false; bool use_debanding = false; bool force_motion_vectors = false; @@ -84,7 +85,7 @@ public: bool viewport_render_direct_to_screen = false; bool disable_2d = false; - RS::ViewportEnvironmentMode disable_environment = RS::VIEWPORT_ENVIRONMENT_INHERIT; + RSE::ViewportEnvironmentMode disable_environment = RSE::VIEWPORT_ENVIRONMENT_INHERIT; bool disable_3d = false; bool measure_render_time = false; @@ -107,12 +108,12 @@ public: uint64_t last_pass = 0; - RS::ViewportDebugDraw debug_draw = RenderingServer::VIEWPORT_DEBUG_DRAW_DISABLED; + RSE::ViewportDebugDraw debug_draw = RSE::VIEWPORT_DEBUG_DRAW_DISABLED; - RS::ViewportClearMode clear_mode = RenderingServer::VIEWPORT_CLEAR_ALWAYS; + RSE::ViewportClearMode clear_mode = RSE::VIEWPORT_CLEAR_ALWAYS; - RS::CanvasItemTextureFilter texture_filter = RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR; - RS::CanvasItemTextureRepeat texture_repeat = RS::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED; + RSE::CanvasItemTextureFilter texture_filter = RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR; + RSE::CanvasItemTextureRepeat texture_repeat = RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED; bool transparent_bg = false; bool use_hdr_2d = false; @@ -155,8 +156,8 @@ public: Viewport() { view_count = 1; - update_mode = RS::VIEWPORT_UPDATE_WHEN_VISIBLE; - clear_mode = RS::VIEWPORT_CLEAR_ALWAYS; + update_mode = RSE::VIEWPORT_UPDATE_WHEN_VISIBLE; + clear_mode = RSE::VIEWPORT_CLEAR_ALWAYS; transparent_bg = false; use_hdr_2d = false; window_output_max_value = 1.0; @@ -165,8 +166,8 @@ public: shadow_atlas_size = 0; measure_render_time = false; - debug_draw = RS::VIEWPORT_DEBUG_DRAW_DISABLED; - screen_space_aa = RS::VIEWPORT_SCREEN_SPACE_AA_DISABLED; + debug_draw = RSE::VIEWPORT_DEBUG_DRAW_DISABLED; + screen_space_aa = RSE::VIEWPORT_SCREEN_SPACE_AA_DISABLED; use_debanding = false; use_occlusion_culling = false; occlusion_buffer_dirty = true; @@ -231,17 +232,17 @@ public: void viewport_set_active(RID p_viewport, bool p_active); void viewport_set_parent_viewport(RID p_viewport, RID p_parent_viewport); - void viewport_set_scaling_3d_mode(RID p_viewport, RS::ViewportScaling3DMode p_mode); + void viewport_set_scaling_3d_mode(RID p_viewport, RSE::ViewportScaling3DMode p_mode); void viewport_set_scaling_3d_scale(RID p_viewport, float p_scaling_3d_scale); void viewport_set_fsr_sharpness(RID p_viewport, float p_sharpness); void viewport_set_texture_mipmap_bias(RID p_viewport, float p_mipmap_bias); - void viewport_set_anisotropic_filtering_level(RID p_viewport, RS::ViewportAnisotropicFiltering p_anisotropic_filtering_level); + void viewport_set_anisotropic_filtering_level(RID p_viewport, RSE::ViewportAnisotropicFiltering p_anisotropic_filtering_level); - void viewport_set_update_mode(RID p_viewport, RS::ViewportUpdateMode p_mode); - RS::ViewportUpdateMode viewport_get_update_mode(RID p_viewport) const; + void viewport_set_update_mode(RID p_viewport, RSE::ViewportUpdateMode p_mode); + RSE::ViewportUpdateMode viewport_get_update_mode(RID p_viewport) const; void viewport_set_vflip(RID p_viewport, bool p_enable); - void viewport_set_clear_mode(RID p_viewport, RS::ViewportClearMode p_clear_mode); + void viewport_set_clear_mode(RID p_viewport, RSE::ViewportClearMode p_clear_mode); RID viewport_get_render_target(RID p_viewport) const; RID viewport_get_texture(RID p_viewport) const; @@ -251,7 +252,7 @@ public: const RendererSceneRender::CameraData *viewport_get_prev_camera_data(RID p_viewport); void viewport_set_disable_2d(RID p_viewport, bool p_disable); - void viewport_set_environment_mode(RID p_viewport, RS::ViewportEnvironmentMode p_mode); + void viewport_set_environment_mode(RID p_viewport, RSE::ViewportEnvironmentMode p_mode); void viewport_set_disable_3d(RID p_viewport, bool p_disable); bool viewport_is_environment_disabled(Viewport *viewport); @@ -274,19 +275,19 @@ public: void viewport_set_positional_shadow_atlas_size(RID p_viewport, int p_size, bool p_16_bits = true); void viewport_set_positional_shadow_atlas_quadrant_subdivision(RID p_viewport, int p_quadrant, int p_subdiv); - void viewport_set_msaa_2d(RID p_viewport, RS::ViewportMSAA p_msaa); - void viewport_set_msaa_3d(RID p_viewport, RS::ViewportMSAA p_msaa); - void viewport_set_screen_space_aa(RID p_viewport, RS::ViewportScreenSpaceAA p_mode); + void viewport_set_msaa_2d(RID p_viewport, RSE::ViewportMSAA p_msaa); + void viewport_set_msaa_3d(RID p_viewport, RSE::ViewportMSAA p_msaa); + void viewport_set_screen_space_aa(RID p_viewport, RSE::ViewportScreenSpaceAA p_mode); void viewport_set_use_taa(RID p_viewport, bool p_use_taa); void viewport_set_use_debanding(RID p_viewport, bool p_use_debanding); void viewport_set_force_motion_vectors(RID p_viewport, bool p_force_motion_vectors); void viewport_set_use_occlusion_culling(RID p_viewport, bool p_use_occlusion_culling); void viewport_set_occlusion_rays_per_thread(int p_rays_per_thread); - void viewport_set_occlusion_culling_build_quality(RS::ViewportOcclusionCullingBuildQuality p_quality); + void viewport_set_occlusion_culling_build_quality(RSE::ViewportOcclusionCullingBuildQuality p_quality); void viewport_set_mesh_lod_threshold(RID p_viewport, float p_pixels); - virtual int viewport_get_render_info(RID p_viewport, RS::ViewportRenderInfoType p_type, RS::ViewportRenderInfo p_info); - virtual void viewport_set_debug_draw(RID p_viewport, RS::ViewportDebugDraw p_draw); + virtual int viewport_get_render_info(RID p_viewport, RSE::ViewportRenderInfoType p_type, RSE::ViewportRenderInfo p_info); + virtual void viewport_set_debug_draw(RID p_viewport, RSE::ViewportDebugDraw p_draw); void viewport_set_measure_render_time(RID p_viewport, bool p_enable); float viewport_get_measured_render_time_cpu(RID p_viewport) const; @@ -295,15 +296,15 @@ public: void viewport_set_snap_2d_transforms_to_pixel(RID p_viewport, bool p_enabled); void viewport_set_snap_2d_vertices_to_pixel(RID p_viewport, bool p_enabled); - void viewport_set_default_canvas_item_texture_filter(RID p_viewport, RS::CanvasItemTextureFilter p_filter); - void viewport_set_default_canvas_item_texture_repeat(RID p_viewport, RS::CanvasItemTextureRepeat p_repeat); + void viewport_set_default_canvas_item_texture_filter(RID p_viewport, RSE::CanvasItemTextureFilter p_filter); + void viewport_set_default_canvas_item_texture_repeat(RID p_viewport, RSE::CanvasItemTextureRepeat p_repeat); - void viewport_set_sdf_oversize_and_scale(RID p_viewport, RS::ViewportSDFOversize p_over_size, RS::ViewportSDFScale p_scale); + void viewport_set_sdf_oversize_and_scale(RID p_viewport, RSE::ViewportSDFOversize p_over_size, RSE::ViewportSDFScale p_scale); virtual RID viewport_find_from_screen_attachment(DisplayServer::WindowID p_id = DisplayServer::MAIN_WINDOW_ID) const; - void viewport_set_vrs_mode(RID p_viewport, RS::ViewportVRSMode p_mode); - void viewport_set_vrs_update_mode(RID p_viewport, RS::ViewportVRSUpdateMode p_mode); + void viewport_set_vrs_mode(RID p_viewport, RSE::ViewportVRSMode p_mode); + void viewport_set_vrs_update_mode(RID p_viewport, RSE::ViewportVRSUpdateMode p_mode); void viewport_set_vrs_texture(RID p_viewport, RID p_texture); void handle_timestamp(String p_timestamp, uint64_t p_cpu_time, uint64_t p_gpu_time); diff --git a/servers/rendering/rendering_light_culler.cpp b/servers/rendering/rendering_light_culler.cpp index ac846fbe02..94369d21a5 100644 --- a/servers/rendering/rendering_light_culler.cpp +++ b/servers/rendering/rendering_light_culler.cpp @@ -89,36 +89,36 @@ bool RenderingLightCuller::_prepare_light(const RendererSceneCull::Instance &p_i LightSource lsource; switch (RSG::light_storage->light_get_type(p_instance.base)) { - case RS::LIGHT_SPOT: + case RSE::LIGHT_SPOT: lsource.type = LightSource::ST_SPOTLIGHT; - lsource.angle = RSG::light_storage->light_get_param(p_instance.base, RS::LIGHT_PARAM_SPOT_ANGLE); - lsource.range = RSG::light_storage->light_get_param(p_instance.base, RS::LIGHT_PARAM_RANGE); + lsource.angle = RSG::light_storage->light_get_param(p_instance.base, RSE::LIGHT_PARAM_SPOT_ANGLE); + lsource.range = RSG::light_storage->light_get_param(p_instance.base, RSE::LIGHT_PARAM_RANGE); break; - case RS::LIGHT_OMNI: + case RSE::LIGHT_OMNI: lsource.type = LightSource::ST_OMNI; - lsource.range = RSG::light_storage->light_get_param(p_instance.base, RS::LIGHT_PARAM_RANGE); + lsource.range = RSG::light_storage->light_get_param(p_instance.base, RSE::LIGHT_PARAM_RANGE); break; - case RS::LIGHT_DIRECTIONAL: + case RSE::LIGHT_DIRECTIONAL: lsource.type = LightSource::ST_DIRECTIONAL; - lsource.range = RSG::light_storage->light_get_param(p_instance.base, RS::LIGHT_PARAM_SHADOW_MAX_DISTANCE); + lsource.range = RSG::light_storage->light_get_param(p_instance.base, RSE::LIGHT_PARAM_SHADOW_MAX_DISTANCE); switch (RSG::light_storage->light_directional_get_shadow_mode(p_instance.base)) { - case RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL: + case RSE::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL: lsource.cascade_count = 1; break; - case RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS: + case RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS: lsource.cascade_count = 2; break; - case RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS: + case RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS: lsource.cascade_count = 4; break; default: ERR_FAIL_V_MSG(false, "Only directional lights with 1, 2, or 4 shadow cascades are supported."); break; } - lsource.cascade_splits[0] = RSG::light_storage->light_get_param(p_instance.base, RS::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET); - lsource.cascade_splits[1] = RSG::light_storage->light_get_param(p_instance.base, RS::LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET); - lsource.cascade_splits[2] = RSG::light_storage->light_get_param(p_instance.base, RS::LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET); + lsource.cascade_splits[0] = RSG::light_storage->light_get_param(p_instance.base, RSE::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET); + lsource.cascade_splits[1] = RSG::light_storage->light_get_param(p_instance.base, RSE::LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET); + lsource.cascade_splits[2] = RSG::light_storage->light_get_param(p_instance.base, RSE::LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET); lsource.blend_splits = RSG::light_storage->light_directional_get_blend_splits(p_instance.base); break; } diff --git a/servers/rendering/rendering_method.h b/servers/rendering/rendering_method.h index ac11024a2b..3cf289ab0c 100644 --- a/servers/rendering/rendering_method.h +++ b/servers/rendering/rendering_method.h @@ -31,6 +31,7 @@ #pragma once #include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" #include "servers/rendering/storage/render_scene_buffers.h" #ifdef XR_DISABLED @@ -104,12 +105,12 @@ public: virtual Vector instances_cull_ray(const Vector3 &p_from, const Vector3 &p_to, RID p_scenario = RID()) const = 0; virtual Vector instances_cull_convex(const Vector &p_convex, RID p_scenario = RID()) const = 0; - virtual void instance_geometry_set_flag(RID p_instance, RS::InstanceFlags p_flags, bool p_enabled) = 0; - virtual void instance_geometry_set_cast_shadows_setting(RID p_instance, RS::ShadowCastingSetting p_shadow_casting_setting) = 0; + virtual void instance_geometry_set_flag(RID p_instance, RSE::InstanceFlags p_flags, bool p_enabled) = 0; + virtual void instance_geometry_set_cast_shadows_setting(RID p_instance, RSE::ShadowCastingSetting p_shadow_casting_setting) = 0; virtual void instance_geometry_set_material_override(RID p_instance, RID p_material) = 0; virtual void instance_geometry_set_material_overlay(RID p_instance, RID p_material) = 0; - virtual void instance_geometry_set_visibility_range(RID p_instance, float p_min, float p_max, float p_min_margin, float p_max_margin, RS::VisibilityRangeFadeMode p_fade_mode) = 0; + virtual void instance_geometry_set_visibility_range(RID p_instance, float p_min, float p_max, float p_min_margin, float p_max_margin, RSE::VisibilityRangeFadeMode p_fade_mode) = 0; virtual void instance_geometry_set_lightmap(RID p_instance, RID p_lightmap, const Rect2 &p_lightmap_uv_scale, int p_slice_index) = 0; virtual void instance_geometry_set_lod_bias(RID p_instance, float p_lod_bias) = 0; virtual void instance_geometry_set_shader_parameter(RID p_instance, const StringName &p_parameter, const Variant &p_value) = 0; @@ -120,7 +121,7 @@ public: /* PIPELINES */ virtual void mesh_generate_pipelines(RID p_mesh, bool p_background_compilation) = 0; - virtual uint32_t get_pipeline_compilations(RS::PipelineSource p_source) = 0; + virtual uint32_t get_pipeline_compilations(RSE::PipelineSource p_source) = 0; /* SKY API */ @@ -128,7 +129,7 @@ public: virtual void sky_initialize(RID p_rid) = 0; virtual void sky_set_radiance_size(RID p_sky, int p_radiance_size) = 0; - virtual void sky_set_mode(RID p_sky, RS::SkyMode p_samples) = 0; + virtual void sky_set_mode(RID p_sky, RSE::SkyMode p_samples) = 0; virtual void sky_set_material(RID p_sky, RID p_material) = 0; virtual Ref sky_bake_panorama(RID p_sky, float p_energy, bool p_bake_irradiance, const Size2i &p_size) = 0; @@ -141,8 +142,8 @@ public: virtual void compositor_effect_set_enabled(RID p_compositor, bool p_enabled) = 0; - virtual void compositor_effect_set_callback(RID p_compositor, RS::CompositorEffectCallbackType p_callback_type, const Callable &p_callback) = 0; - virtual void compositor_effect_set_flag(RID p_compositor, RS::CompositorEffectFlags p_flag, bool p_set) = 0; + virtual void compositor_effect_set_callback(RID p_compositor, RSE::CompositorEffectCallbackType p_callback_type, const Callable &p_callback) = 0; + virtual void compositor_effect_set_flag(RID p_compositor, RSE::CompositorEffectFlags p_flag, bool p_set) = 0; /* COMPOSITOR API */ @@ -159,17 +160,17 @@ public: virtual void environment_initialize(RID p_rid) = 0; // Background - virtual void environment_set_background(RID p_env, RS::EnvironmentBG p_bg) = 0; + virtual void environment_set_background(RID p_env, RSE::EnvironmentBG p_bg) = 0; virtual void environment_set_sky(RID p_env, RID p_sky) = 0; virtual void environment_set_sky_custom_fov(RID p_env, float p_scale) = 0; virtual void environment_set_sky_orientation(RID p_env, const Basis &p_orientation) = 0; virtual void environment_set_bg_color(RID p_env, const Color &p_color) = 0; virtual void environment_set_bg_energy(RID p_env, float p_multiplier, float p_exposure_value) = 0; virtual void environment_set_canvas_max_layer(RID p_env, int p_max_layer) = 0; - virtual void environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient = RS::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RS::EnvironmentReflectionSource p_reflection_source = RS::ENV_REFLECTION_SOURCE_BG) = 0; + virtual void environment_set_ambient_light(RID p_env, const Color &p_color, RSE::EnvironmentAmbientSource p_ambient = RSE::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RSE::EnvironmentReflectionSource p_reflection_source = RSE::ENV_REFLECTION_SOURCE_BG) = 0; virtual void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id) = 0; - virtual RS::EnvironmentBG environment_get_background(RID p_Env) const = 0; + virtual RSE::EnvironmentBG environment_get_background(RID p_Env) const = 0; virtual RID environment_get_sky(RID p_env) const = 0; virtual float environment_get_sky_custom_fov(RID p_env) const = 0; virtual Basis environment_get_sky_orientation(RID p_env) const = 0; @@ -177,25 +178,25 @@ public: virtual float environment_get_bg_energy_multiplier(RID p_env) const = 0; virtual float environment_get_bg_intensity(RID p_env) const = 0; virtual int environment_get_canvas_max_layer(RID p_env) const = 0; - virtual RS::EnvironmentAmbientSource environment_get_ambient_source(RID p_env) const = 0; + virtual RSE::EnvironmentAmbientSource environment_get_ambient_source(RID p_env) const = 0; virtual Color environment_get_ambient_light(RID p_env) const = 0; virtual float environment_get_ambient_light_energy(RID p_env) const = 0; virtual float environment_get_ambient_sky_contribution(RID p_env) const = 0; - virtual RS::EnvironmentReflectionSource environment_get_reflection_source(RID p_env) const = 0; + virtual RSE::EnvironmentReflectionSource environment_get_reflection_source(RID p_env) const = 0; // Tonemap - virtual void environment_set_tonemap(RID p_env, RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white) = 0; + virtual void environment_set_tonemap(RID p_env, RSE::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white) = 0; virtual void environment_set_tonemap_agx_contrast(RID p_env, float p_agx_contrast) = 0; - virtual RS::EnvironmentToneMapper environment_get_tone_mapper(RID p_env) const = 0; + virtual RSE::EnvironmentToneMapper environment_get_tone_mapper(RID p_env) const = 0; virtual float environment_get_exposure(RID p_env) const = 0; virtual float environment_get_white(RID p_env, bool p_limit_agx_white, float p_output_max_value) const = 0; // Fog - virtual void environment_set_fog(RID p_env, bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_aerial_perspective, float p_sky_affect, RS::EnvironmentFogMode p_mode = RS::EnvironmentFogMode::ENV_FOG_MODE_EXPONENTIAL) = 0; + virtual void environment_set_fog(RID p_env, bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_aerial_perspective, float p_sky_affect, RSE::EnvironmentFogMode p_mode = RSE::EnvironmentFogMode::ENV_FOG_MODE_EXPONENTIAL) = 0; virtual bool environment_get_fog_enabled(RID p_env) const = 0; - virtual RS::EnvironmentFogMode environment_get_fog_mode(RID p_env) const = 0; + virtual RSE::EnvironmentFogMode environment_get_fog_mode(RID p_env) const = 0; virtual Color environment_get_fog_light_color(RID p_env) const = 0; virtual float environment_get_fog_light_energy(RID p_env) const = 0; virtual float environment_get_fog_sun_scatter(RID p_env) const = 0; @@ -234,7 +235,7 @@ public: // Glow - virtual void environment_set_glow(RID p_env, bool p_enable, Vector p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, float p_glow_map_strength, RID p_glow_map) = 0; + virtual void environment_set_glow(RID p_env, bool p_enable, Vector p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RSE::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, float p_glow_map_strength, RID p_glow_map) = 0; virtual bool environment_get_glow_enabled(RID p_env) const = 0; virtual Vector environment_get_glow_levels(RID p_env) const = 0; @@ -242,7 +243,7 @@ public: virtual float environment_get_glow_strength(RID p_env) const = 0; virtual float environment_get_glow_bloom(RID p_env) const = 0; virtual float environment_get_glow_mix(RID p_env) const = 0; - virtual RS::EnvironmentGlowBlendMode environment_get_glow_blend_mode(RID p_env) const = 0; + virtual RSE::EnvironmentGlowBlendMode environment_get_glow_blend_mode(RID p_env) const = 0; virtual float environment_get_glow_hdr_bleed_threshold(RID p_env) const = 0; virtual float environment_get_glow_hdr_luminance_cap(RID p_env) const = 0; virtual float environment_get_glow_hdr_bleed_scale(RID p_env) const = 0; @@ -262,7 +263,7 @@ public: virtual float environment_get_ssr_depth_tolerance(RID p_env) const = 0; virtual void environment_set_ssr_half_size(bool p_half_size) = 0; - virtual void environment_set_ssr_roughness_quality(RS::EnvironmentSSRRoughnessQuality p_quality) = 0; + virtual void environment_set_ssr_roughness_quality(RSE::EnvironmentSSRRoughnessQuality p_quality) = 0; // SSAO virtual void environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_power, float p_detail, float p_horizon, float p_sharpness, float p_light_affect, float p_ao_channel_affect) = 0; @@ -277,7 +278,7 @@ public: virtual float environment_get_ssao_direct_light_affect(RID p_env) const = 0; virtual float environment_get_ssao_ao_channel_affect(RID p_env) const = 0; - virtual void environment_set_ssao_quality(RS::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0; + virtual void environment_set_ssao_quality(RSE::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0; // SSIL @@ -289,10 +290,10 @@ public: virtual float environment_get_ssil_sharpness(RID p_env) const = 0; virtual float environment_get_ssil_normal_rejection(RID p_env) const = 0; - virtual void environment_set_ssil_quality(RS::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0; + virtual void environment_set_ssil_quality(RSE::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0; // SDFGI - virtual void environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) = 0; + virtual void environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RSE::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) = 0; virtual bool environment_get_sdfgi_enabled(RID p_env) const = 0; virtual int environment_get_sdfgi_cascades(RID p_env) const = 0; @@ -303,11 +304,11 @@ public: virtual float environment_get_sdfgi_energy(RID p_env) const = 0; virtual float environment_get_sdfgi_normal_bias(RID p_env) const = 0; virtual float environment_get_sdfgi_probe_bias(RID p_env) const = 0; - virtual RS::EnvironmentSDFGIYScale environment_get_sdfgi_y_scale(RID p_env) const = 0; + virtual RSE::EnvironmentSDFGIYScale environment_get_sdfgi_y_scale(RID p_env) const = 0; - virtual void environment_set_sdfgi_ray_count(RS::EnvironmentSDFGIRayCount p_ray_count) = 0; - virtual void environment_set_sdfgi_frames_to_converge(RS::EnvironmentSDFGIFramesToConverge p_frames) = 0; - virtual void environment_set_sdfgi_frames_to_update_light(RS::EnvironmentSDFGIFramesToUpdateLight p_update) = 0; + virtual void environment_set_sdfgi_ray_count(RSE::EnvironmentSDFGIRayCount p_ray_count) = 0; + virtual void environment_set_sdfgi_frames_to_converge(RSE::EnvironmentSDFGIFramesToConverge p_frames) = 0; + virtual void environment_set_sdfgi_frames_to_update_light(RSE::EnvironmentSDFGIFramesToUpdateLight p_update) = 0; virtual void environment_set_adjustment(RID p_env, bool p_enable, float p_brightness, float p_contrast, float p_saturation, bool p_use_1d_color_correction, RID p_color_correction) = 0; @@ -323,11 +324,11 @@ public: virtual bool is_environment(RID p_environment) const = 0; virtual void screen_space_roughness_limiter_set_active(bool p_enable, float p_amount, float p_limit) = 0; - virtual void sub_surface_scattering_set_quality(RS::SubSurfaceScatteringQuality p_quality) = 0; + virtual void sub_surface_scattering_set_quality(RSE::SubSurfaceScatteringQuality p_quality) = 0; virtual void sub_surface_scattering_set_scale(float p_scale, float p_depth_scale) = 0; - virtual void positional_soft_shadow_filter_set_quality(RS::ShadowQuality p_quality) = 0; - virtual void directional_soft_shadow_filter_set_quality(RS::ShadowQuality p_quality) = 0; + virtual void positional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) = 0; + virtual void directional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) = 0; /* Render Buffers */ @@ -335,17 +336,17 @@ public: virtual void gi_set_use_half_resolution(bool p_enable) = 0; - virtual void set_debug_draw_mode(RS::ViewportDebugDraw p_debug_draw) = 0; + virtual void set_debug_draw_mode(RSE::ViewportDebugDraw p_debug_draw) = 0; virtual TypedArray bake_render_uv2(RID p_base, const TypedArray &p_material_overrides, const Size2i &p_image_size) = 0; - virtual void voxel_gi_set_quality(RS::VoxelGIQuality) = 0; + virtual void voxel_gi_set_quality(RSE::VoxelGIQuality) = 0; virtual void sdfgi_set_debug_probe_select(const Vector3 &p_position, const Vector3 &p_dir) = 0; virtual void render_empty_scene(const Ref &p_render_buffers, RID p_scenario, RID p_shadow_atlas, float p_window_output_max_value) = 0; struct RenderInfo { - int info[RS::VIEWPORT_RENDER_INFO_TYPE_MAX][RS::VIEWPORT_RENDER_INFO_MAX] = {}; + int info[RSE::VIEWPORT_RENDER_INFO_TYPE_MAX][RSE::VIEWPORT_RENDER_INFO_MAX] = {}; }; virtual void render_camera(const Ref &p_render_buffers, RID p_camera, RID p_scenario, RID p_viewport, Size2 p_viewport_size, uint32_t p_jitter_phase_count, float p_mesh_lod_threshold, RID p_shadow_atlas, Ref &p_xr_interface, float p_window_output_max_value, RenderInfo *r_render_info = nullptr) = 0; @@ -354,8 +355,8 @@ public: virtual void render_probes() = 0; virtual void update_visibility_notifiers() = 0; - virtual void decals_set_filter(RS::DecalFilter p_filter) = 0; - virtual void light_projectors_set_filter(RS::LightProjectorFilter p_filter) = 0; + virtual void decals_set_filter(RSE::DecalFilter p_filter) = 0; + virtual void light_projectors_set_filter(RSE::LightProjectorFilter p_filter) = 0; virtual void lightmaps_set_bicubic_filter(bool p_enable) = 0; virtual void material_set_use_debanding(bool p_enable) = 0; diff --git a/servers/rendering/rendering_server.compat.inc b/servers/rendering/rendering_server.compat.inc index b3ccaa2da7..b006b42cd5 100644 --- a/servers/rendering/rendering_server.compat.inc +++ b/servers/rendering/rendering_server.compat.inc @@ -30,12 +30,12 @@ #ifndef DISABLE_DEPRECATED -void RenderingServer::_multimesh_allocate_data_bind_compat_99455(RID p_multimesh, int p_instances, MultimeshTransformFormat p_transform_format, bool p_use_colors, bool p_use_custom_data) { +void RenderingServer::_multimesh_allocate_data_bind_compat_99455(RID p_multimesh, int p_instances, RSE::MultimeshTransformFormat p_transform_format, bool p_use_colors, bool p_use_custom_data) { multimesh_allocate_data(p_multimesh, p_instances, p_transform_format, p_use_colors, p_use_custom_data, false); } void RenderingServer::_environment_set_fog_bind_compat_84792(RID p_env, bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_aerial_perspective, float p_sky_affect) { - environment_set_fog(p_env, p_enable, p_light_color, p_light_energy, p_sun_scatter, p_density, p_height, p_height_density, p_aerial_perspective, p_sky_affect, RS::EnvironmentFogMode::ENV_FOG_MODE_EXPONENTIAL); + environment_set_fog(p_env, p_enable, p_light_color, p_light_energy, p_sun_scatter, p_density, p_height, p_height_density, p_aerial_perspective, p_sky_affect, RSE::EnvironmentFogMode::ENV_FOG_MODE_EXPONENTIAL); } void RenderingServer::_canvas_item_add_multiline_bind_compat_84523(RID p_item, const Vector &p_points, const Vector &p_colors, float p_width) { diff --git a/servers/rendering/rendering_server.cpp b/servers/rendering/rendering_server.cpp index 0c5ef498a1..a46b8f2371 100644 --- a/servers/rendering/rendering_server.cpp +++ b/servers/rendering/rendering_server.cpp @@ -209,20 +209,20 @@ RID RenderingServer::_make_test_cube() { RID test_cube = mesh_create(); Array d; - d.resize(RS::ARRAY_MAX); - d[RenderingServer::ARRAY_NORMAL] = normals; - d[RenderingServer::ARRAY_TANGENT] = tangents; - d[RenderingServer::ARRAY_TEX_UV] = uvs; - d[RenderingServer::ARRAY_VERTEX] = vertices; + d.resize(RSE::ARRAY_MAX); + d[RSE::ARRAY_NORMAL] = normals; + d[RSE::ARRAY_TANGENT] = tangents; + d[RSE::ARRAY_TEX_UV] = uvs; + d[RSE::ARRAY_VERTEX] = vertices; Vector indices; indices.resize(vertices.size()); for (int i = 0; i < vertices.size(); i++) { indices.set(i, i); } - d[RenderingServer::ARRAY_INDEX] = indices; + d[RSE::ARRAY_INDEX] = indices; - mesh_add_surface_from_arrays(test_cube, PRIMITIVE_TRIANGLES, d); + mesh_add_surface_from_arrays(test_cube, RSE::PRIMITIVE_TRIANGLES, d); /* test_material = fixed_material_create(); @@ -286,12 +286,12 @@ RID RenderingServer::make_sphere_mesh(int p_lats, int p_lons, real_t p_radius) { RID mesh = mesh_create(); Array d; - d.resize(RS::ARRAY_MAX); + d.resize(RSE::ARRAY_MAX); - d[ARRAY_VERTEX] = vertices; - d[ARRAY_NORMAL] = normals; + d[RSE::ARRAY_VERTEX] = vertices; + d[RSE::ARRAY_NORMAL] = normals; - mesh_add_surface_from_arrays(mesh, PRIMITIVE_TRIANGLES, d); + mesh_add_surface_from_arrays(mesh, RSE::PRIMITIVE_TRIANGLES, d); return mesh; } @@ -376,16 +376,16 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint int max_bone = 0; // Preprocess UVs if compression is enabled - if (p_format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES && ((p_format & RS::ARRAY_FORMAT_TEX_UV) || (p_format & RS::ARRAY_FORMAT_TEX_UV2))) { + if (p_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES && ((p_format & RSE::ARRAY_FORMAT_TEX_UV) || (p_format & RSE::ARRAY_FORMAT_TEX_UV2))) { const Vector2 *uv_src = nullptr; - if (p_format & RS::ARRAY_FORMAT_TEX_UV) { - Vector array = p_arrays[RS::ARRAY_TEX_UV]; + if (p_format & RSE::ARRAY_FORMAT_TEX_UV) { + Vector array = p_arrays[RSE::ARRAY_TEX_UV]; uv_src = array.ptr(); } const Vector2 *uv2_src = nullptr; - if (p_format & RS::ARRAY_FORMAT_TEX_UV2) { - Vector array = p_arrays[RS::ARRAY_TEX_UV2]; + if (p_format & RSE::ARRAY_FORMAT_TEX_UV2) { + Vector array = p_arrays[RSE::ARRAY_TEX_UV2]; uv2_src = array.ptr(); } @@ -395,11 +395,11 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint Vector2 min_val2 = Vector2(0.0, 0.0); for (int i = 0; i < p_vertex_array_len; i++) { - if (p_format & RS::ARRAY_FORMAT_TEX_UV) { + if (p_format & RSE::ARRAY_FORMAT_TEX_UV) { max_val = max_val.max(uv_src[i]); min_val = min_val.min(uv_src[i]); } - if (p_format & RS::ARRAY_FORMAT_TEX_UV2) { + if (p_format & RSE::ARRAY_FORMAT_TEX_UV2) { max_val2 = max_val2.max(uv2_src[i]); min_val2 = min_val2.min(uv2_src[i]); } @@ -418,14 +418,14 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint } } - for (int ai = 0; ai < RS::ARRAY_MAX; ai++) { + for (int ai = 0; ai < RSE::ARRAY_MAX; ai++) { if (!(p_format & (1ULL << ai))) { // No array continue; } switch (ai) { - case RS::ARRAY_VERTEX: { - if (p_format & RS::ARRAY_FLAG_USE_2D_VERTICES) { + case RSE::ARRAY_VERTEX: { + if (p_format & RSE::ARRAY_FLAG_USE_2D_VERTICES) { Vector array = p_arrays[ai]; ERR_FAIL_COND_V(array.size() != p_vertex_array_len, ERR_INVALID_PARAMETER); @@ -459,8 +459,8 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint r_aabb = _compute_aabb_from_points(src, p_vertex_array_len); r_aabb.size = r_aabb.size.max(SMALL_VEC3); - if (p_format & ARRAY_FLAG_COMPRESS_ATTRIBUTES) { - if (!(p_format & RS::ARRAY_FORMAT_NORMAL)) { + if (p_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + if (!(p_format & RSE::ARRAY_FORMAT_NORMAL)) { // Early out if we are only setting vertex positions. for (int i = 0; i < p_vertex_array_len; i++) { Vector3 pos = (src[i] - r_aabb.position) / r_aabb.size; @@ -477,18 +477,18 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint } // Validate normal and tangent arrays. - ERR_FAIL_COND_V(p_arrays[RS::ARRAY_NORMAL].get_type() != Variant::PACKED_VECTOR3_ARRAY, ERR_INVALID_PARAMETER); + ERR_FAIL_COND_V(p_arrays[RSE::ARRAY_NORMAL].get_type() != Variant::PACKED_VECTOR3_ARRAY, ERR_INVALID_PARAMETER); - Vector normal_array = p_arrays[RS::ARRAY_NORMAL]; + Vector normal_array = p_arrays[RSE::ARRAY_NORMAL]; ERR_FAIL_COND_V(normal_array.size() != p_vertex_array_len, ERR_INVALID_PARAMETER); const Vector3 *normal_src = normal_array.ptr(); - Variant::Type tangent_type = p_arrays[RS::ARRAY_TANGENT].get_type(); + Variant::Type tangent_type = p_arrays[RSE::ARRAY_TANGENT].get_type(); ERR_FAIL_COND_V(tangent_type != Variant::PACKED_FLOAT32_ARRAY && tangent_type != Variant::PACKED_FLOAT64_ARRAY && tangent_type != Variant::NIL, ERR_INVALID_PARAMETER); // We need a different version if using double precision tangents. if (tangent_type == Variant::PACKED_FLOAT32_ARRAY) { - Vector tangent_array = p_arrays[RS::ARRAY_TANGENT]; + Vector tangent_array = p_arrays[RSE::ARRAY_TANGENT]; ERR_FAIL_COND_V(tangent_array.size() != p_vertex_array_len * 4, ERR_INVALID_PARAMETER); const float *tangent_src = tangent_array.ptr(); @@ -507,7 +507,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint (uint16_t)CLAMP(res.y * 65535, 0, 65535), }; - memcpy(&vw[p_offsets[RS::ARRAY_NORMAL] + i * p_normal_stride], vector, 4); + memcpy(&vw[p_offsets[RSE::ARRAY_NORMAL] + i * p_normal_stride], vector, 4); } // Store vertex position + angle. @@ -524,7 +524,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint } } } else if (tangent_type == Variant::PACKED_FLOAT64_ARRAY) { - Vector tangent_array = p_arrays[RS::ARRAY_TANGENT]; + Vector tangent_array = p_arrays[RSE::ARRAY_TANGENT]; ERR_FAIL_COND_V(tangent_array.size() != p_vertex_array_len * 4, ERR_INVALID_PARAMETER); const double *tangent_src = tangent_array.ptr(); @@ -543,7 +543,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint (uint16_t)CLAMP(res.y * 65535, 0, 65535), }; - memcpy(&vw[p_offsets[RS::ARRAY_NORMAL] + i * p_normal_stride], vector, 4); + memcpy(&vw[p_offsets[RSE::ARRAY_NORMAL] + i * p_normal_stride], vector, 4); } // Store vertex position + angle. @@ -578,7 +578,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint (uint16_t)CLAMP(res.y * 65535, 0, 65535), }; - memcpy(&vw[p_offsets[RS::ARRAY_NORMAL] + i * p_normal_stride], vector, 4); + memcpy(&vw[p_offsets[RSE::ARRAY_NORMAL] + i * p_normal_stride], vector, 4); } // Store vertex position + angle. @@ -605,9 +605,9 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint } } break; - case RS::ARRAY_NORMAL: { + case RSE::ARRAY_NORMAL: { // If using compression we store normal while storing vertices. - if (!(p_format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { + if (!(p_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { ERR_FAIL_COND_V(p_arrays[ai].get_type() != Variant::PACKED_VECTOR3_ARRAY, ERR_INVALID_PARAMETER); Vector array = p_arrays[ai]; @@ -626,9 +626,9 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint } } break; - case RS::ARRAY_TANGENT: { + case RSE::ARRAY_TANGENT: { // If using compression we store tangent while storing vertices. - if (!(p_format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { + if (!(p_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES)) { Variant::Type type = p_arrays[ai].get_type(); ERR_FAIL_COND_V(type != Variant::PACKED_FLOAT32_ARRAY && type != Variant::PACKED_FLOAT64_ARRAY && type != Variant::NIL, ERR_INVALID_PARAMETER); @@ -675,9 +675,9 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint memcpy(&vw[p_offsets[ai] + i * p_normal_stride], vector, 4); } } else { // No tangent array. - ERR_FAIL_COND_V(p_arrays[RS::ARRAY_NORMAL].get_type() != Variant::PACKED_VECTOR3_ARRAY, ERR_INVALID_PARAMETER); + ERR_FAIL_COND_V(p_arrays[RSE::ARRAY_NORMAL].get_type() != Variant::PACKED_VECTOR3_ARRAY, ERR_INVALID_PARAMETER); - Vector normal_array = p_arrays[RS::ARRAY_NORMAL]; + Vector normal_array = p_arrays[RSE::ARRAY_NORMAL]; ERR_FAIL_COND_V(normal_array.size() != p_vertex_array_len, ERR_INVALID_PARAMETER); const Vector3 *normal_src = normal_array.ptr(); // Set data for tangent. @@ -702,7 +702,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint } } } break; - case RS::ARRAY_COLOR: { + case RSE::ARRAY_COLOR: { ERR_FAIL_COND_V(p_arrays[ai].get_type() != Variant::PACKED_COLOR_ARRAY, ERR_INVALID_PARAMETER); Vector array = p_arrays[ai]; @@ -720,7 +720,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint memcpy(&aw[p_offsets[ai] + i * p_attrib_stride], color8, 4); } } break; - case RS::ARRAY_TEX_UV: { + case RSE::ARRAY_TEX_UV: { ERR_FAIL_COND_V(p_arrays[ai].get_type() != Variant::PACKED_VECTOR3_ARRAY && p_arrays[ai].get_type() != Variant::PACKED_VECTOR2_ARRAY, ERR_INVALID_PARAMETER); Vector array = p_arrays[ai]; @@ -728,7 +728,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint ERR_FAIL_COND_V(array.size() != p_vertex_array_len, ERR_INVALID_PARAMETER); const Vector2 *src = array.ptr(); - if (p_format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + if (p_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { for (int i = 0; i < p_vertex_array_len; i++) { Vector2 vec = src[i]; if (!r_uv_scale.is_zero_approx()) { @@ -747,7 +747,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint } } break; - case RS::ARRAY_TEX_UV2: { + case RSE::ARRAY_TEX_UV2: { ERR_FAIL_COND_V(p_arrays[ai].get_type() != Variant::PACKED_VECTOR3_ARRAY && p_arrays[ai].get_type() != Variant::PACKED_VECTOR2_ARRAY, ERR_INVALID_PARAMETER); Vector array = p_arrays[ai]; @@ -756,7 +756,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint const Vector2 *src = array.ptr(); - if (p_format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + if (p_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { for (int i = 0; i < p_vertex_array_len; i++) { Vector2 vec = src[i]; if (!r_uv_scale.is_zero_approx()) { @@ -773,15 +773,15 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint } } } break; - case RS::ARRAY_CUSTOM0: - case RS::ARRAY_CUSTOM1: - case RS::ARRAY_CUSTOM2: - case RS::ARRAY_CUSTOM3: { - uint32_t type = (p_format >> (ARRAY_FORMAT_CUSTOM_BASE + ARRAY_FORMAT_CUSTOM_BITS * (ai - RS::ARRAY_CUSTOM0))) & ARRAY_FORMAT_CUSTOM_MASK; + case RSE::ARRAY_CUSTOM0: + case RSE::ARRAY_CUSTOM1: + case RSE::ARRAY_CUSTOM2: + case RSE::ARRAY_CUSTOM3: { + uint32_t type = (p_format >> (RSE::ARRAY_FORMAT_CUSTOM_BASE + RSE::ARRAY_FORMAT_CUSTOM_BITS * (ai - RSE::ARRAY_CUSTOM0))) & RSE::ARRAY_FORMAT_CUSTOM_MASK; switch (type) { - case ARRAY_CUSTOM_RGBA8_UNORM: - case ARRAY_CUSTOM_RGBA8_SNORM: - case ARRAY_CUSTOM_RG_HALF: { + case RSE::ARRAY_CUSTOM_RGBA8_UNORM: + case RSE::ARRAY_CUSTOM_RGBA8_SNORM: + case RSE::ARRAY_CUSTOM_RG_HALF: { // Size 4 ERR_FAIL_COND_V(p_arrays[ai].get_type() != Variant::PACKED_BYTE_ARRAY, ERR_INVALID_PARAMETER); @@ -796,7 +796,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint } } break; - case ARRAY_CUSTOM_RGBA_HALF: { + case RSE::ARRAY_CUSTOM_RGBA_HALF: { // Size 8 ERR_FAIL_COND_V(p_arrays[ai].get_type() != Variant::PACKED_BYTE_ARRAY, ERR_INVALID_PARAMETER); @@ -810,15 +810,15 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint memcpy(&aw[p_offsets[ai] + i * p_attrib_stride], &src[i * 8], 8); } } break; - case ARRAY_CUSTOM_R_FLOAT: - case ARRAY_CUSTOM_RG_FLOAT: - case ARRAY_CUSTOM_RGB_FLOAT: - case ARRAY_CUSTOM_RGBA_FLOAT: { + case RSE::ARRAY_CUSTOM_R_FLOAT: + case RSE::ARRAY_CUSTOM_RG_FLOAT: + case RSE::ARRAY_CUSTOM_RGB_FLOAT: + case RSE::ARRAY_CUSTOM_RGBA_FLOAT: { // RF ERR_FAIL_COND_V(p_arrays[ai].get_type() != Variant::PACKED_FLOAT32_ARRAY, ERR_INVALID_PARAMETER); Vector array = p_arrays[ai]; - int32_t s = type - ARRAY_CUSTOM_R_FLOAT + 1; + int32_t s = type - RSE::ARRAY_CUSTOM_R_FLOAT + 1; ERR_FAIL_COND_V(array.size() != p_vertex_array_len * s, ERR_INVALID_PARAMETER); @@ -833,10 +833,10 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint } } break; - case RS::ARRAY_WEIGHTS: { + case RSE::ARRAY_WEIGHTS: { Variant::Type type = p_arrays[ai].get_type(); ERR_FAIL_COND_V(type != Variant::PACKED_FLOAT32_ARRAY && type != Variant::PACKED_FLOAT64_ARRAY, ERR_INVALID_PARAMETER); - uint32_t bone_count = (p_format & ARRAY_FLAG_USE_8_BONE_WEIGHTS) ? 8 : 4; + uint32_t bone_count = (p_format & RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS) ? 8 : 4; if (type == Variant::PACKED_FLOAT32_ARRAY) { Vector array = p_arrays[ai]; ERR_FAIL_COND_V(array.size() != (int32_t)(p_vertex_array_len * bone_count), ERR_INVALID_PARAMETER); @@ -867,12 +867,12 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint } } } break; - case RS::ARRAY_BONES: { + case RSE::ARRAY_BONES: { ERR_FAIL_COND_V(p_arrays[ai].get_type() != Variant::PACKED_INT32_ARRAY && p_arrays[ai].get_type() != Variant::PACKED_FLOAT32_ARRAY, ERR_INVALID_PARAMETER); Vector array = p_arrays[ai]; - uint32_t bone_count = (p_format & ARRAY_FLAG_USE_8_BONE_WEIGHTS) ? 8 : 4; + uint32_t bone_count = (p_format & RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS) ? 8 : 4; ERR_FAIL_COND_V(array.size() != (int32_t)(p_vertex_array_len * bone_count), ERR_INVALID_PARAMETER); @@ -891,7 +891,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint } break; - case RS::ARRAY_INDEX: { + case RSE::ARRAY_INDEX: { ERR_FAIL_NULL_V(iw, ERR_INVALID_DATA); ERR_FAIL_COND_V(p_index_array_len <= 0, ERR_INVALID_DATA); ERR_FAIL_COND_V(p_arrays[ai].get_type() != Variant::PACKED_INT32_ARRAY, ERR_INVALID_PARAMETER); @@ -922,7 +922,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint } } - if (p_format & RS::ARRAY_FORMAT_BONES) { + if (p_format & RSE::ARRAY_FORMAT_BONES) { // Create AABBs for each detected bone. int total_bones = max_bone + 1; @@ -930,7 +930,7 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint r_bone_aabb.resize(total_bones); - int weight_count = (p_format & ARRAY_FLAG_USE_8_BONE_WEIGHTS) ? 8 : 4; + int weight_count = (p_format & RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS) ? 8 : 4; if (first) { for (int i = 0; i < total_bones; i++) { @@ -938,9 +938,9 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint } } - Vector vertices = p_arrays[RS::ARRAY_VERTEX]; - Vector bones = p_arrays[RS::ARRAY_BONES]; - Vector weights = p_arrays[RS::ARRAY_WEIGHTS]; + Vector vertices = p_arrays[RSE::ARRAY_VERTEX]; + Vector bones = p_arrays[RSE::ARRAY_BONES]; + Vector weights = p_arrays[RSE::ARRAY_WEIGHTS]; bool any_valid = false; @@ -980,10 +980,10 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint return OK; } -uint32_t RenderingServer::mesh_surface_get_format_offset(BitField p_format, int p_vertex_len, int p_array_index) const { - ERR_FAIL_INDEX_V(p_array_index, ARRAY_MAX, 0); - p_format = uint64_t(p_format) & ~ARRAY_FORMAT_INDEX; - uint32_t offsets[ARRAY_MAX]; +uint32_t RenderingServer::mesh_surface_get_format_offset(BitField p_format, int p_vertex_len, int p_array_index) const { + ERR_FAIL_INDEX_V(p_array_index, RSE::ARRAY_MAX, 0); + p_format = uint64_t(p_format) & ~RSE::ARRAY_FORMAT_INDEX; + uint32_t offsets[RSE::ARRAY_MAX]; uint32_t vstr; uint32_t ntstr; uint32_t astr; @@ -992,9 +992,9 @@ uint32_t RenderingServer::mesh_surface_get_format_offset(BitField p return offsets[p_array_index]; } -uint32_t RenderingServer::mesh_surface_get_format_vertex_stride(BitField p_format, int p_vertex_len) const { - p_format = uint64_t(p_format) & ~ARRAY_FORMAT_INDEX; - uint32_t offsets[ARRAY_MAX]; +uint32_t RenderingServer::mesh_surface_get_format_vertex_stride(BitField p_format, int p_vertex_len) const { + p_format = uint64_t(p_format) & ~RSE::ARRAY_FORMAT_INDEX; + uint32_t offsets[RSE::ARRAY_MAX]; uint32_t vstr; uint32_t ntstr; uint32_t astr; @@ -1003,9 +1003,9 @@ uint32_t RenderingServer::mesh_surface_get_format_vertex_stride(BitField p_format, int p_vertex_len) const { - p_format = uint64_t(p_format) & ~ARRAY_FORMAT_INDEX; - uint32_t offsets[ARRAY_MAX]; +uint32_t RenderingServer::mesh_surface_get_format_normal_tangent_stride(BitField p_format, int p_vertex_len) const { + p_format = uint64_t(p_format) & ~RSE::ARRAY_FORMAT_INDEX; + uint32_t offsets[RSE::ARRAY_MAX]; uint32_t vstr; uint32_t ntstr; uint32_t astr; @@ -1014,9 +1014,9 @@ uint32_t RenderingServer::mesh_surface_get_format_normal_tangent_stride(BitField return ntstr; } -uint32_t RenderingServer::mesh_surface_get_format_attribute_stride(BitField p_format, int p_vertex_len) const { - p_format = uint64_t(p_format) & ~ARRAY_FORMAT_INDEX; - uint32_t offsets[ARRAY_MAX]; +uint32_t RenderingServer::mesh_surface_get_format_attribute_stride(BitField p_format, int p_vertex_len) const { + p_format = uint64_t(p_format) & ~RSE::ARRAY_FORMAT_INDEX; + uint32_t offsets[RSE::ARRAY_MAX]; uint32_t vstr; uint32_t ntstr; uint32_t astr; @@ -1025,9 +1025,9 @@ uint32_t RenderingServer::mesh_surface_get_format_attribute_stride(BitField p_format, int p_vertex_len) const { - p_format = uint64_t(p_format) & ~ARRAY_FORMAT_INDEX; - uint32_t offsets[ARRAY_MAX]; +uint32_t RenderingServer::mesh_surface_get_format_skin_stride(BitField p_format, int p_vertex_len) const { + p_format = uint64_t(p_format) & ~RSE::ARRAY_FORMAT_INDEX; + uint32_t offsets[RSE::ARRAY_MAX]; uint32_t vstr; uint32_t ntstr; uint32_t astr; @@ -1036,8 +1036,8 @@ uint32_t RenderingServer::mesh_surface_get_format_skin_stride(BitField p_format, int p_vertex_len) const { - if (!(p_format & ARRAY_FORMAT_INDEX)) { +uint32_t RenderingServer::mesh_surface_get_format_index_stride(BitField p_format, int p_vertex_len) const { + if (!(p_format & RSE::ARRAY_FORMAT_INDEX)) { return 0; } @@ -1057,16 +1057,16 @@ void RenderingServer::mesh_surface_make_offsets_from_format(uint64_t p_format, i uint32_t *size_accum = nullptr; - for (int i = 0; i < RS::ARRAY_MAX; i++) { + for (int i = 0; i < RSE::ARRAY_MAX; i++) { r_offsets[i] = 0; // Reset - if (i == RS::ARRAY_VERTEX) { + if (i == RSE::ARRAY_VERTEX) { size_accum = &r_vertex_element_size; - } else if (i == RS::ARRAY_NORMAL) { + } else if (i == RSE::ARRAY_NORMAL) { size_accum = &r_normal_element_size; - } else if (i == RS::ARRAY_COLOR) { + } else if (i == RSE::ARRAY_COLOR) { size_accum = &r_attrib_element_size; - } else if (i == RS::ARRAY_BONES) { + } else if (i == RSE::ARRAY_BONES) { size_accum = &r_skin_element_size; } @@ -1077,72 +1077,72 @@ void RenderingServer::mesh_surface_make_offsets_from_format(uint64_t p_format, i int elem_size = 0; switch (i) { - case RS::ARRAY_VERTEX: { - if (p_format & ARRAY_FLAG_USE_2D_VERTICES) { + case RSE::ARRAY_VERTEX: { + if (p_format & RSE::ARRAY_FLAG_USE_2D_VERTICES) { elem_size = 2; } else { - elem_size = (p_format & ARRAY_FLAG_COMPRESS_ATTRIBUTES) ? 2 : 3; + elem_size = (p_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) ? 2 : 3; } elem_size *= sizeof(float); } break; - case RS::ARRAY_NORMAL: { + case RSE::ARRAY_NORMAL: { elem_size = 4; } break; - case RS::ARRAY_TANGENT: { - elem_size = (p_format & ARRAY_FLAG_COMPRESS_ATTRIBUTES) ? 0 : 4; + case RSE::ARRAY_TANGENT: { + elem_size = (p_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) ? 0 : 4; } break; - case RS::ARRAY_COLOR: { + case RSE::ARRAY_COLOR: { elem_size = 4; } break; - case RS::ARRAY_TEX_UV: { - elem_size = (p_format & ARRAY_FLAG_COMPRESS_ATTRIBUTES) ? 4 : 8; + case RSE::ARRAY_TEX_UV: { + elem_size = (p_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) ? 4 : 8; } break; - case RS::ARRAY_TEX_UV2: { - elem_size = (p_format & ARRAY_FLAG_COMPRESS_ATTRIBUTES) ? 4 : 8; + case RSE::ARRAY_TEX_UV2: { + elem_size = (p_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) ? 4 : 8; } break; - case RS::ARRAY_CUSTOM0: - case RS::ARRAY_CUSTOM1: - case RS::ARRAY_CUSTOM2: - case RS::ARRAY_CUSTOM3: { - uint64_t format = (p_format >> (ARRAY_FORMAT_CUSTOM_BASE + (ARRAY_FORMAT_CUSTOM_BITS * (i - ARRAY_CUSTOM0)))) & ARRAY_FORMAT_CUSTOM_MASK; + case RSE::ARRAY_CUSTOM0: + case RSE::ARRAY_CUSTOM1: + case RSE::ARRAY_CUSTOM2: + case RSE::ARRAY_CUSTOM3: { + uint64_t format = (p_format >> (RSE::ARRAY_FORMAT_CUSTOM_BASE + (RSE::ARRAY_FORMAT_CUSTOM_BITS * (i - RSE::ARRAY_CUSTOM0)))) & RSE::ARRAY_FORMAT_CUSTOM_MASK; switch (format) { - case ARRAY_CUSTOM_RGBA8_UNORM: { + case RSE::ARRAY_CUSTOM_RGBA8_UNORM: { elem_size = 4; } break; - case ARRAY_CUSTOM_RGBA8_SNORM: { + case RSE::ARRAY_CUSTOM_RGBA8_SNORM: { elem_size = 4; } break; - case ARRAY_CUSTOM_RG_HALF: { + case RSE::ARRAY_CUSTOM_RG_HALF: { elem_size = 4; } break; - case ARRAY_CUSTOM_RGBA_HALF: { + case RSE::ARRAY_CUSTOM_RGBA_HALF: { elem_size = 8; } break; - case ARRAY_CUSTOM_R_FLOAT: { + case RSE::ARRAY_CUSTOM_R_FLOAT: { elem_size = 4; } break; - case ARRAY_CUSTOM_RG_FLOAT: { + case RSE::ARRAY_CUSTOM_RG_FLOAT: { elem_size = 8; } break; - case ARRAY_CUSTOM_RGB_FLOAT: { + case RSE::ARRAY_CUSTOM_RGB_FLOAT: { elem_size = 12; } break; - case ARRAY_CUSTOM_RGBA_FLOAT: { + case RSE::ARRAY_CUSTOM_RGBA_FLOAT: { elem_size = 16; } break; } } break; - case RS::ARRAY_WEIGHTS: { - uint32_t bone_count = (p_format & ARRAY_FLAG_USE_8_BONE_WEIGHTS) ? 8 : 4; + case RSE::ARRAY_WEIGHTS: { + uint32_t bone_count = (p_format & RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS) ? 8 : 4; elem_size = sizeof(uint16_t) * bone_count; } break; - case RS::ARRAY_BONES: { - uint32_t bone_count = (p_format & ARRAY_FLAG_USE_8_BONE_WEIGHTS) ? 8 : 4; + case RSE::ARRAY_BONES: { + uint32_t bone_count = (p_format & RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS) ? 8 : 4; elem_size = sizeof(uint16_t) * bone_count; } break; - case RS::ARRAY_INDEX: { + case RSE::ARRAY_INDEX: { if (p_index_len <= 0) { ERR_PRINT("index_array_len==NO_INDEX_ARRAY"); break; @@ -1163,7 +1163,7 @@ void RenderingServer::mesh_surface_make_offsets_from_format(uint64_t p_format, i if (size_accum != nullptr) { r_offsets[i] = (*size_accum); - if (i == RS::ARRAY_NORMAL || i == RS::ARRAY_TANGENT) { + if (i == RSE::ARRAY_NORMAL || i == RSE::ARRAY_TANGENT) { r_offsets[i] += r_vertex_element_size * p_vertex_len; } (*size_accum) += elem_size; @@ -1173,9 +1173,9 @@ void RenderingServer::mesh_surface_make_offsets_from_format(uint64_t p_format, i } } -Error RenderingServer::mesh_create_surface_data_from_arrays(SurfaceData *r_surface_data, PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes, const Dictionary &p_lods, uint64_t p_compress_format) { - ERR_FAIL_INDEX_V(p_primitive, RS::PRIMITIVE_MAX, ERR_INVALID_PARAMETER); - ERR_FAIL_COND_V(p_arrays.size() != RS::ARRAY_MAX, ERR_INVALID_PARAMETER); +Error RenderingServer::mesh_create_surface_data_from_arrays(SurfaceData *r_surface_data, RSE::PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes, const Dictionary &p_lods, uint64_t p_compress_format) { + ERR_FAIL_INDEX_V(p_primitive, RSE::PRIMITIVE_MAX, ERR_INVALID_PARAMETER); + ERR_FAIL_COND_V(p_arrays.size() != RSE::ARRAY_MAX, ERR_INVALID_PARAMETER); uint64_t format = 0; @@ -1190,15 +1190,15 @@ Error RenderingServer::mesh_create_surface_data_from_arrays(SurfaceData *r_surfa format |= (1ULL << i); - if (i == RS::ARRAY_VERTEX) { + if (i == RSE::ARRAY_VERTEX) { switch (p_arrays[i].get_type()) { case Variant::PACKED_VECTOR2_ARRAY: { Vector v2 = p_arrays[i]; array_len = v2.size(); - format |= ARRAY_FLAG_USE_2D_VERTICES; + format |= RSE::ARRAY_FLAG_USE_2D_VERTICES; } break; case Variant::PACKED_VECTOR3_ARRAY: { - ERR_FAIL_COND_V(p_compress_format & ARRAY_FLAG_USE_2D_VERTICES, ERR_INVALID_PARAMETER); + ERR_FAIL_COND_V(p_compress_format & RSE::ARRAY_FLAG_USE_2D_VERTICES, ERR_INVALID_PARAMETER); Vector v3 = p_arrays[i]; array_len = v3.size(); } break; @@ -1207,27 +1207,27 @@ Error RenderingServer::mesh_create_surface_data_from_arrays(SurfaceData *r_surfa } break; } ERR_FAIL_COND_V(array_len == 0, ERR_INVALID_DATA); - } else if (i == RS::ARRAY_NORMAL) { - if (p_arrays[RS::ARRAY_TANGENT].get_type() == Variant::NIL) { + } else if (i == RSE::ARRAY_NORMAL) { + if (p_arrays[RSE::ARRAY_TANGENT].get_type() == Variant::NIL) { // We must use tangents if using normals. - format |= (1ULL << RS::ARRAY_TANGENT); + format |= (1ULL << RSE::ARRAY_TANGENT); } - } else if (i == RS::ARRAY_BONES) { + } else if (i == RSE::ARRAY_BONES) { switch (p_arrays[i].get_type()) { case Variant::PACKED_INT32_ARRAY: { - Vector vertices = p_arrays[RS::ARRAY_VERTEX]; + Vector vertices = p_arrays[RSE::ARRAY_VERTEX]; Vector bones = p_arrays[i]; - int32_t bone_8_group_count = bones.size() / (ARRAY_WEIGHTS_SIZE * 2); + int32_t bone_8_group_count = bones.size() / (RSE::ARRAY_WEIGHTS_SIZE * 2); int32_t vertex_count = vertices.size(); if (vertex_count == bone_8_group_count) { - format |= RS::ARRAY_FLAG_USE_8_BONE_WEIGHTS; + format |= RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS; } } break; default: { ERR_FAIL_V_MSG(ERR_INVALID_DATA, "Bones array must be a PackedInt32Array."); } break; } - } else if (i == RS::ARRAY_INDEX) { + } else if (i == RSE::ARRAY_INDEX) { index_array_len = PackedInt32Array(p_arrays[i]).size(); } } @@ -1242,54 +1242,54 @@ Error RenderingServer::mesh_create_surface_data_from_arrays(SurfaceData *r_surfa bsformat |= (1 << j); } } - if (bsformat & RS::ARRAY_FORMAT_NORMAL) { + if (bsformat & RSE::ARRAY_FORMAT_NORMAL) { // We must use tangents if using normals. - bsformat |= RS::ARRAY_FORMAT_TANGENT; + bsformat |= RSE::ARRAY_FORMAT_TANGENT; } - ERR_FAIL_COND_V_MSG(bsformat != (format & RS::ARRAY_FORMAT_BLEND_SHAPE_MASK), ERR_INVALID_PARAMETER, "Blend shape format must match the main array format for Vertex, Normal and Tangent arrays."); + ERR_FAIL_COND_V_MSG(bsformat != (format & RSE::ARRAY_FORMAT_BLEND_SHAPE_MASK), ERR_INVALID_PARAMETER, "Blend shape format must match the main array format for Vertex, Normal and Tangent arrays."); } } - for (uint32_t i = 0; i < RS::ARRAY_CUSTOM_COUNT; ++i) { + for (uint32_t i = 0; i < RSE::ARRAY_CUSTOM_COUNT; ++i) { // Include custom array format type. - if (format & (1ULL << (ARRAY_CUSTOM0 + i))) { - format |= (RS::ARRAY_FORMAT_CUSTOM_MASK << (RS::ARRAY_FORMAT_CUSTOM_BASE + i * RS::ARRAY_FORMAT_CUSTOM_BITS)) & p_compress_format; + if (format & (1ULL << (RSE::ARRAY_CUSTOM0 + i))) { + format |= (RSE::ARRAY_FORMAT_CUSTOM_MASK << (RSE::ARRAY_FORMAT_CUSTOM_BASE + i * RSE::ARRAY_FORMAT_CUSTOM_BITS)) & p_compress_format; } } - uint32_t offsets[RS::ARRAY_MAX]; + uint32_t offsets[RSE::ARRAY_MAX]; uint32_t vertex_element_size; uint32_t normal_element_size; uint32_t attrib_element_size; uint32_t skin_element_size; - uint64_t mask = (1ULL << ARRAY_MAX) - 1ULL; + uint64_t mask = (1ULL << RSE::ARRAY_MAX) - 1ULL; format |= (~mask) & p_compress_format; // Make the full format. // Force version to the current version as this function will always return a surface with the current version. - format &= ~(ARRAY_FLAG_FORMAT_VERSION_MASK << ARRAY_FLAG_FORMAT_VERSION_SHIFT); - format |= ARRAY_FLAG_FORMAT_CURRENT_VERSION & (ARRAY_FLAG_FORMAT_VERSION_MASK << ARRAY_FLAG_FORMAT_VERSION_SHIFT); + format &= ~(RSE::ARRAY_FLAG_FORMAT_VERSION_MASK << RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT); + format |= RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION & (RSE::ARRAY_FLAG_FORMAT_VERSION_MASK << RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT); mesh_surface_make_offsets_from_format(format, array_len, index_array_len, offsets, vertex_element_size, normal_element_size, attrib_element_size, skin_element_size); - if ((format & RS::ARRAY_FORMAT_VERTEX) == 0 && !(format & RS::ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY)) { - ERR_PRINT("Mesh created without vertex array. This mesh will not be visible with the default shader. If using an empty vertex array is intentional, create the mesh with the ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY flag to silence this error."); + if ((format & RSE::ARRAY_FORMAT_VERTEX) == 0 && !(format & RSE::ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY)) { + ERR_PRINT("Mesh created without vertex array. This mesh will not be visible with the default shader. If using an empty vertex array is intentional, create the mesh with the RSE::ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY flag to silence this error."); // Set the flag here after warning to suppress errors down the pipeline. - format |= RS::ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY; + format |= RSE::ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY; } - if ((format & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES) && ((format & RS::ARRAY_FORMAT_NORMAL) || (format & RS::ARRAY_FORMAT_TANGENT))) { + if ((format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) && ((format & RSE::ARRAY_FORMAT_NORMAL) || (format & RSE::ARRAY_FORMAT_TANGENT))) { // If using normals or tangents, then we need all three. - ERR_FAIL_COND_V_MSG(!(format & RS::ARRAY_FORMAT_VERTEX), ERR_INVALID_PARAMETER, "Can't use compression flag 'ARRAY_FLAG_COMPRESS_ATTRIBUTES' while using normals or tangents without vertex array."); - ERR_FAIL_COND_V_MSG(!(format & RS::ARRAY_FORMAT_NORMAL), ERR_INVALID_PARAMETER, "Can't use compression flag 'ARRAY_FLAG_COMPRESS_ATTRIBUTES' while using tangents without normal array."); + ERR_FAIL_COND_V_MSG(!(format & RSE::ARRAY_FORMAT_VERTEX), ERR_INVALID_PARAMETER, "Can't use compression flag 'RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES' while using normals or tangents without vertex array."); + ERR_FAIL_COND_V_MSG(!(format & RSE::ARRAY_FORMAT_NORMAL), ERR_INVALID_PARAMETER, "Can't use compression flag 'RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES' while using tangents without normal array."); } int vertex_array_size = (vertex_element_size + normal_element_size) * array_len; int attrib_array_size = attrib_element_size * array_len; int skin_array_size = skin_element_size * array_len; - int index_array_size = offsets[RS::ARRAY_INDEX] * index_array_len; + int index_array_size = offsets[RSE::ARRAY_INDEX] * index_array_len; Vector vertex_array; vertex_array.resize(vertex_array_size); @@ -1314,7 +1314,7 @@ Error RenderingServer::mesh_create_surface_data_from_arrays(SurfaceData *r_surfa Vector blend_shape_data; if (p_blend_shapes.size()) { - uint32_t bs_format = format & RS::ARRAY_FORMAT_BLEND_SHAPE_MASK; + uint32_t bs_format = format & RSE::ARRAY_FORMAT_BLEND_SHAPE_MASK; for (int i = 0; i < p_blend_shapes.size(); i++) { Vector vertex_array_shape; vertex_array_shape.resize(vertex_array_size); @@ -1389,7 +1389,7 @@ Error RenderingServer::mesh_create_surface_data_from_arrays(SurfaceData *r_surfa return OK; } -void RenderingServer::mesh_add_surface_from_arrays(RID p_mesh, PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes, const Dictionary &p_lods, BitField p_compress_format) { +void RenderingServer::mesh_add_surface_from_arrays(RID p_mesh, RSE::PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes, const Dictionary &p_lods, BitField p_compress_format) { SurfaceData sd; Error err = mesh_create_surface_data_from_arrays(&sd, p_primitive, p_arrays, p_blend_shapes, p_lods, p_compress_format); if (err != OK) { @@ -1399,7 +1399,7 @@ void RenderingServer::mesh_add_surface_from_arrays(RID p_mesh, PrimitiveType p_p } Array RenderingServer::_get_array_from_surface(uint64_t p_format, Vector p_vertex_data, Vector p_attrib_data, Vector p_skin_data, int p_vertex_len, Vector p_index_data, int p_index_len, const AABB &p_aabb, const Vector4 &p_uv_scale) const { - uint32_t offsets[RS::ARRAY_MAX]; + uint32_t offsets[RSE::ARRAY_MAX]; uint32_t vertex_elem_size; uint32_t normal_elem_size; @@ -1408,20 +1408,20 @@ Array RenderingServer::_get_array_from_surface(uint64_t p_format, Vector arr_2d; arr_2d.resize(p_vertex_len); @@ -1442,9 +1442,9 @@ Array RenderingServer::_get_array_from_surface(uint64_t p_format, Vector(&r[j * vertex_elem_size + offsets[i]]); Vector3 vec = Vector3(float(v[0]) / 65535.0, float(v[1]) / 65535.0, float(v[2]) / 65535.0); @@ -1462,7 +1462,7 @@ Array RenderingServer::_get_array_from_surface(uint64_t p_format, Vector> 16) & 0xFFFF) / 65535.0)); const uint16_t *v = reinterpret_cast(&r[j * vertex_elem_size + offsets[i]]); @@ -1480,8 +1480,8 @@ Array RenderingServer::_get_array_from_surface(uint64_t p_format, Vector arr; arr.resize(p_vertex_len); @@ -1512,8 +1512,8 @@ Array RenderingServer::_get_array_from_surface(uint64_t p_format, Vector arr; arr.resize(p_vertex_len * 4); @@ -1532,7 +1532,7 @@ Array RenderingServer::_get_array_from_surface(uint64_t p_format, Vector arr; arr.resize(p_vertex_len); @@ -1546,12 +1546,12 @@ Array RenderingServer::_get_array_from_surface(uint64_t p_format, Vector arr; arr.resize(p_vertex_len); Vector2 *w = arr.ptrw(); - if (p_format & ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + if (p_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { for (int j = 0; j < p_vertex_len; j++) { const uint16_t *v = reinterpret_cast(&ar[j * attrib_elem_size + offsets[i]]); Vector2 vec = Vector2(float(v[0]) / 65535.0, float(v[1]) / 65535.0); @@ -1570,13 +1570,13 @@ Array RenderingServer::_get_array_from_surface(uint64_t p_format, Vector arr; arr.resize(p_vertex_len); Vector2 *w = arr.ptrw(); - if (p_format & ARRAY_FLAG_COMPRESS_ATTRIBUTES) { + if (p_format & RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES) { for (int j = 0; j < p_vertex_len; j++) { const uint16_t *v = reinterpret_cast(&ar[j * attrib_elem_size + offsets[i]]); Vector2 vec = Vector2(float(v[0]) / 65535.0, float(v[1]) / 65535.0); @@ -1595,18 +1595,18 @@ Array RenderingServer::_get_array_from_surface(uint64_t p_format, Vector> (ARRAY_FORMAT_CUSTOM_BASE + ARRAY_FORMAT_CUSTOM_BITS * (i - RS::ARRAY_CUSTOM0))) & ARRAY_FORMAT_CUSTOM_MASK; + case RSE::ARRAY_CUSTOM0: + case RSE::ARRAY_CUSTOM1: + case RSE::ARRAY_CUSTOM2: + case RSE::ARRAY_CUSTOM3: { + uint32_t type = (p_format >> (RSE::ARRAY_FORMAT_CUSTOM_BASE + RSE::ARRAY_FORMAT_CUSTOM_BITS * (i - RSE::ARRAY_CUSTOM0))) & RSE::ARRAY_FORMAT_CUSTOM_MASK; switch (type) { - case ARRAY_CUSTOM_RGBA8_UNORM: - case ARRAY_CUSTOM_RGBA8_SNORM: - case ARRAY_CUSTOM_RG_HALF: - case ARRAY_CUSTOM_RGBA_HALF: { + case RSE::ARRAY_CUSTOM_RGBA8_UNORM: + case RSE::ARRAY_CUSTOM_RGBA8_SNORM: + case RSE::ARRAY_CUSTOM_RG_HALF: + case RSE::ARRAY_CUSTOM_RGBA_HALF: { // Size 4 - int s = type == ARRAY_CUSTOM_RGBA_HALF ? 8 : 4; + int s = type == RSE::ARRAY_CUSTOM_RGBA_HALF ? 8 : 4; Vector arr; arr.resize(p_vertex_len * s); @@ -1620,11 +1620,11 @@ Array RenderingServer::_get_array_from_surface(uint64_t p_format, Vector arr; arr.resize(s * p_vertex_len); @@ -1643,8 +1643,8 @@ Array RenderingServer::_get_array_from_surface(uint64_t p_format, Vector arr; arr.resize(p_vertex_len * bone_count); @@ -1662,8 +1662,8 @@ Array RenderingServer::_get_array_from_surface(uint64_t p_format, Vector arr; arr.resize(p_vertex_len * bone_count); @@ -1680,7 +1680,7 @@ Array RenderingServer::_get_array_from_surface(uint64_t p_format, Vector RenderingServer::mesh_surface_get_blend_shape_arrays(RID p_mes Vector blend_shape_data = sd.blend_shape_data; if (blend_shape_data.size() > 0) { - uint32_t bs_offsets[RS::ARRAY_MAX]; - uint32_t bs_format = (sd.format & RS::ARRAY_FORMAT_BLEND_SHAPE_MASK); + uint32_t bs_offsets[RSE::ARRAY_MAX]; + uint32_t bs_format = (sd.format & RSE::ARRAY_FORMAT_BLEND_SHAPE_MASK); uint32_t vertex_elem_size; uint32_t normal_elem_size; uint32_t attrib_elem_size; @@ -1794,7 +1794,7 @@ Array RenderingServer::mesh_create_arrays_from_surface_data(const SurfaceData &p Vector attrib_data = p_data.attribute_data; Vector skin_data = p_data.skin_data; - ERR_FAIL_COND_V(vertex_data.is_empty() && (p_data.format & RS::ARRAY_FORMAT_VERTEX), Array()); + ERR_FAIL_COND_V(vertex_data.is_empty() && (p_data.format & RSE::ARRAY_FORMAT_VERTEX), Array()); int vertex_len = p_data.vertex_count; Vector index_data = p_data.index_data; @@ -1823,80 +1823,80 @@ Rect2 RenderingServer::debug_canvas_item_get_rect(RID p_item) { #endif } -int RenderingServer::global_shader_uniform_type_get_shader_datatype(GlobalShaderParameterType p_type) { +int RenderingServer::global_shader_uniform_type_get_shader_datatype(RSE::GlobalShaderParameterType p_type) { switch (p_type) { - case RS::GLOBAL_VAR_TYPE_BOOL: + case RSE::GLOBAL_VAR_TYPE_BOOL: return ShaderLanguage::TYPE_BOOL; - case RS::GLOBAL_VAR_TYPE_BVEC2: + case RSE::GLOBAL_VAR_TYPE_BVEC2: return ShaderLanguage::TYPE_BVEC2; - case RS::GLOBAL_VAR_TYPE_BVEC3: + case RSE::GLOBAL_VAR_TYPE_BVEC3: return ShaderLanguage::TYPE_BVEC3; - case RS::GLOBAL_VAR_TYPE_BVEC4: + case RSE::GLOBAL_VAR_TYPE_BVEC4: return ShaderLanguage::TYPE_BVEC4; - case RS::GLOBAL_VAR_TYPE_INT: + case RSE::GLOBAL_VAR_TYPE_INT: return ShaderLanguage::TYPE_INT; - case RS::GLOBAL_VAR_TYPE_IVEC2: + case RSE::GLOBAL_VAR_TYPE_IVEC2: return ShaderLanguage::TYPE_IVEC2; - case RS::GLOBAL_VAR_TYPE_IVEC3: + case RSE::GLOBAL_VAR_TYPE_IVEC3: return ShaderLanguage::TYPE_IVEC3; - case RS::GLOBAL_VAR_TYPE_IVEC4: + case RSE::GLOBAL_VAR_TYPE_IVEC4: return ShaderLanguage::TYPE_IVEC4; - case RS::GLOBAL_VAR_TYPE_RECT2I: + case RSE::GLOBAL_VAR_TYPE_RECT2I: return ShaderLanguage::TYPE_IVEC4; - case RS::GLOBAL_VAR_TYPE_UINT: + case RSE::GLOBAL_VAR_TYPE_UINT: return ShaderLanguage::TYPE_UINT; - case RS::GLOBAL_VAR_TYPE_UVEC2: + case RSE::GLOBAL_VAR_TYPE_UVEC2: return ShaderLanguage::TYPE_UVEC2; - case RS::GLOBAL_VAR_TYPE_UVEC3: + case RSE::GLOBAL_VAR_TYPE_UVEC3: return ShaderLanguage::TYPE_UVEC3; - case RS::GLOBAL_VAR_TYPE_UVEC4: + case RSE::GLOBAL_VAR_TYPE_UVEC4: return ShaderLanguage::TYPE_UVEC4; - case RS::GLOBAL_VAR_TYPE_FLOAT: + case RSE::GLOBAL_VAR_TYPE_FLOAT: return ShaderLanguage::TYPE_FLOAT; - case RS::GLOBAL_VAR_TYPE_VEC2: + case RSE::GLOBAL_VAR_TYPE_VEC2: return ShaderLanguage::TYPE_VEC2; - case RS::GLOBAL_VAR_TYPE_VEC3: + case RSE::GLOBAL_VAR_TYPE_VEC3: return ShaderLanguage::TYPE_VEC3; - case RS::GLOBAL_VAR_TYPE_VEC4: + case RSE::GLOBAL_VAR_TYPE_VEC4: return ShaderLanguage::TYPE_VEC4; - case RS::GLOBAL_VAR_TYPE_COLOR: + case RSE::GLOBAL_VAR_TYPE_COLOR: return ShaderLanguage::TYPE_VEC4; - case RS::GLOBAL_VAR_TYPE_RECT2: + case RSE::GLOBAL_VAR_TYPE_RECT2: return ShaderLanguage::TYPE_VEC4; - case RS::GLOBAL_VAR_TYPE_MAT2: + case RSE::GLOBAL_VAR_TYPE_MAT2: return ShaderLanguage::TYPE_MAT2; - case RS::GLOBAL_VAR_TYPE_MAT3: + case RSE::GLOBAL_VAR_TYPE_MAT3: return ShaderLanguage::TYPE_MAT3; - case RS::GLOBAL_VAR_TYPE_MAT4: + case RSE::GLOBAL_VAR_TYPE_MAT4: return ShaderLanguage::TYPE_MAT4; - case RS::GLOBAL_VAR_TYPE_TRANSFORM_2D: + case RSE::GLOBAL_VAR_TYPE_TRANSFORM_2D: return ShaderLanguage::TYPE_MAT3; - case RS::GLOBAL_VAR_TYPE_TRANSFORM: + case RSE::GLOBAL_VAR_TYPE_TRANSFORM: return ShaderLanguage::TYPE_MAT4; - case RS::GLOBAL_VAR_TYPE_SAMPLER2D: + case RSE::GLOBAL_VAR_TYPE_SAMPLER2D: return ShaderLanguage::TYPE_SAMPLER2D; - case RS::GLOBAL_VAR_TYPE_SAMPLER2DARRAY: + case RSE::GLOBAL_VAR_TYPE_SAMPLER2DARRAY: return ShaderLanguage::TYPE_SAMPLER2DARRAY; - case RS::GLOBAL_VAR_TYPE_SAMPLER3D: + case RSE::GLOBAL_VAR_TYPE_SAMPLER3D: return ShaderLanguage::TYPE_SAMPLER3D; - case RS::GLOBAL_VAR_TYPE_SAMPLERCUBE: + case RSE::GLOBAL_VAR_TYPE_SAMPLERCUBE: return ShaderLanguage::TYPE_SAMPLERCUBE; - case RS::GLOBAL_VAR_TYPE_SAMPLEREXT: + case RSE::GLOBAL_VAR_TYPE_SAMPLEREXT: return ShaderLanguage::TYPE_SAMPLEREXT; default: return ShaderLanguage::TYPE_MAX; // Invalid or not found. } } -Rect2 RenderingServer::get_splash_stretched_screen_rect(const Size2 &p_image_size, const Size2 &p_window_size, SplashStretchMode p_stretch_mode) { +Rect2 RenderingServer::get_splash_stretched_screen_rect(const Size2 &p_image_size, const Size2 &p_window_size, RSE::SplashStretchMode p_stretch_mode) { Size2 imgsize = p_image_size; Rect2 screenrect; switch (p_stretch_mode) { - case SplashStretchMode::SPLASH_STRETCH_MODE_DISABLED: { + case RSE::SPLASH_STRETCH_MODE_DISABLED: { screenrect.size = imgsize; screenrect.position = ((p_window_size - screenrect.size) / 2.0).floor(); } break; - case SplashStretchMode::SPLASH_STRETCH_MODE_KEEP: { + case RSE::SPLASH_STRETCH_MODE_KEEP: { if (p_window_size.width > p_window_size.height) { // Scale horizontally. screenrect.size.y = p_window_size.height; @@ -1909,19 +1909,19 @@ Rect2 RenderingServer::get_splash_stretched_screen_rect(const Size2 &p_image_siz screenrect.position.y = (p_window_size.height - screenrect.size.y) / 2; } } break; - case SplashStretchMode::SPLASH_STRETCH_MODE_KEEP_WIDTH: { + case RSE::SPLASH_STRETCH_MODE_KEEP_WIDTH: { // Scale vertically. screenrect.size.x = p_window_size.width; screenrect.size.y = imgsize.height * p_window_size.width / imgsize.width; screenrect.position.y = (p_window_size.height - screenrect.size.y) / 2; } break; - case SplashStretchMode::SPLASH_STRETCH_MODE_KEEP_HEIGHT: { + case RSE::SPLASH_STRETCH_MODE_KEEP_HEIGHT: { // Scale horizontally. screenrect.size.y = p_window_size.height; screenrect.size.x = imgsize.width * p_window_size.height / imgsize.height; screenrect.position.x = (p_window_size.width - screenrect.size.x) / 2; } break; - case SplashStretchMode::SPLASH_STRETCH_MODE_COVER: { + case RSE::SPLASH_STRETCH_MODE_COVER: { double window_aspect = (double)p_window_size.width / p_window_size.height; double img_aspect = imgsize.width / imgsize.height; @@ -1937,7 +1937,7 @@ Rect2 RenderingServer::get_splash_stretched_screen_rect(const Size2 &p_image_siz screenrect.position.x = (p_window_size.width - screenrect.size.x) / 2; } } break; - case SplashStretchMode::SPLASH_STRETCH_MODE_IGNORE: { + case RSE::SPLASH_STRETCH_MODE_IGNORE: { screenrect.size.x = p_window_size.width; screenrect.size.y = p_window_size.height; } break; @@ -1966,7 +1966,8 @@ static Vector> _get_imgvec(const TypedArray &p_layers) { } return images; } -RID RenderingServer::_texture_2d_layered_create(const TypedArray &p_layers, TextureLayeredType p_layered_type) { + +RID RenderingServer::_texture_2d_layered_create(const TypedArray &p_layers, RSE::TextureLayeredType p_layered_type) { return texture_2d_layered_create(_get_imgvec(p_layers), p_layered_type); } RID RenderingServer::_texture_3d_create(Image::Format p_format, int p_width, int p_height, int p_depth, bool p_mipmaps, const TypedArray &p_data) { @@ -2002,7 +2003,7 @@ static RS::SurfaceData _dict_to_surf(const Dictionary &p_dictionary) { RS::SurfaceData sd; - sd.primitive = RS::PrimitiveType(int(p_dictionary["primitive"])); + sd.primitive = RSE::PrimitiveType(int(p_dictionary["primitive"])); sd.format = p_dictionary["format"]; sd.vertex_data = p_dictionary["vertex_data"]; if (p_dictionary.has("attribute_data")) { @@ -2164,13 +2165,13 @@ Vector _convert_surface_version_1_to_surface_version_2(uint64_t p_forma uint32_t position_size = p_position_stride * p_vertex_count; - for (uint32_t j = 0; j < RS::ARRAY_COLOR; j++) { + for (uint32_t j = 0; j < RSE::ARRAY_COLOR; j++) { if (!(p_format & (1ULL << j))) { continue; } switch (j) { - case RS::ARRAY_VERTEX: { - if (p_format & RS::ARRAY_FLAG_USE_2D_VERTICES) { + case RSE::ARRAY_VERTEX: { + if (p_format & RSE::ARRAY_FLAG_USE_2D_VERTICES) { for (uint32_t i = 0; i < p_vertex_count; i++) { const float *src = (const float *)&src_vertex_ptr[i * p_old_stride]; float *dst = (float *)&dst_vertex_ptr[i * p_position_stride]; @@ -2187,7 +2188,7 @@ Vector _convert_surface_version_1_to_surface_version_2(uint64_t p_forma } } } break; - case RS::ARRAY_NORMAL: { + case RSE::ARRAY_NORMAL: { for (uint32_t i = 0; i < p_vertex_count; i++) { const uint16_t *src = (const uint16_t *)&src_vertex_ptr[i * p_old_stride + p_vertex_size]; uint16_t *dst = (uint16_t *)&dst_vertex_ptr[i * p_normal_tangent_stride + position_size]; @@ -2196,7 +2197,7 @@ Vector _convert_surface_version_1_to_surface_version_2(uint64_t p_forma dst[1] = src[1]; } } break; - case RS::ARRAY_TANGENT: { + case RSE::ARRAY_TANGENT: { for (uint32_t i = 0; i < p_vertex_count; i++) { const uint16_t *src = (const uint16_t *)&src_vertex_ptr[i * p_old_stride + p_vertex_size + p_normal_size]; uint16_t *dst = (uint16_t *)&dst_vertex_ptr[i * p_normal_tangent_stride + position_size + p_normal_size]; @@ -2222,8 +2223,8 @@ void RenderingServer::set_warn_on_surface_upgrade(bool p_warn) { #ifndef DISABLE_DEPRECATED void RenderingServer::fix_surface_compatibility(SurfaceData &p_surface, const String &p_path) { - uint64_t surface_version = p_surface.format & (ARRAY_FLAG_FORMAT_VERSION_MASK << ARRAY_FLAG_FORMAT_VERSION_SHIFT); - ERR_FAIL_COND_MSG(surface_version > ARRAY_FLAG_FORMAT_CURRENT_VERSION, "Cannot convert surface with version provided (" + itos((surface_version >> RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RS::ARRAY_FLAG_FORMAT_VERSION_MASK) + ") to current version (" + itos((RS::ARRAY_FLAG_FORMAT_CURRENT_VERSION >> RS::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RS::ARRAY_FLAG_FORMAT_VERSION_MASK) + ")"); + uint64_t surface_version = p_surface.format & (RSE::ARRAY_FLAG_FORMAT_VERSION_MASK << RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT); + ERR_FAIL_COND_MSG(surface_version > RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION, "Cannot convert surface with version provided (" + itos((surface_version >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RSE::ARRAY_FLAG_FORMAT_VERSION_MASK) + ") to current version (" + itos((RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RSE::ARRAY_FLAG_FORMAT_VERSION_MASK) + ")"); #ifdef TOOLS_ENABLED // Editor callback to ask user about re-saving all meshes. @@ -2240,7 +2241,7 @@ void RenderingServer::fix_surface_compatibility(SurfaceData &p_surface, const St } #endif - if (surface_version == ARRAY_FLAG_FORMAT_VERSION_1) { + if (surface_version == RSE::ARRAY_FLAG_FORMAT_VERSION_1) { // The only difference for now is that Version 1 uses interleaved vertex positions while version 2 does not. // I.e. PNTPNTPNT -> PPPNTNTNT. @@ -2248,17 +2249,17 @@ void RenderingServer::fix_surface_compatibility(SurfaceData &p_surface, const St int vertex_size = 0; int normal_size = 0; int tangent_size = 0; - if (p_surface.format & ARRAY_FORMAT_VERTEX) { - if (p_surface.format & ARRAY_FLAG_USE_2D_VERTICES) { + if (p_surface.format & RSE::ARRAY_FORMAT_VERTEX) { + if (p_surface.format & RSE::ARRAY_FLAG_USE_2D_VERTICES) { vertex_size = sizeof(float) * 2; } else { vertex_size = sizeof(float) * 3; } } - if (p_surface.format & ARRAY_FORMAT_NORMAL) { + if (p_surface.format & RSE::ARRAY_FORMAT_NORMAL) { normal_size += sizeof(uint16_t) * 2; } - if (p_surface.format & ARRAY_FORMAT_TANGENT) { + if (p_surface.format & RSE::ARRAY_FORMAT_TANGENT) { tangent_size = sizeof(uint16_t) * 2; } int stride = p_surface.vertex_data.size() / p_surface.vertex_count; @@ -2287,8 +2288,8 @@ void RenderingServer::fix_surface_compatibility(SurfaceData &p_surface, const St } } } - p_surface.format &= ~(ARRAY_FLAG_FORMAT_VERSION_MASK << ARRAY_FLAG_FORMAT_VERSION_SHIFT); - p_surface.format |= ARRAY_FLAG_FORMAT_CURRENT_VERSION & (ARRAY_FLAG_FORMAT_VERSION_MASK << ARRAY_FLAG_FORMAT_VERSION_SHIFT); + p_surface.format &= ~(RSE::ARRAY_FLAG_FORMAT_VERSION_MASK << RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT); + p_surface.format |= RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION & (RSE::ARRAY_FLAG_FORMAT_VERSION_MASK << RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT); } #endif @@ -2312,16 +2313,16 @@ void RenderingServer::get_argument_options(const StringName &p_function, int p_i #endif void RenderingServer::_bind_methods() { - BIND_CONSTANT(NO_INDEX_ARRAY); - BIND_CONSTANT(ARRAY_WEIGHTS_SIZE); - BIND_CONSTANT(CANVAS_ITEM_Z_MIN); - BIND_CONSTANT(CANVAS_ITEM_Z_MAX); - BIND_CONSTANT(CANVAS_LAYER_MIN); - BIND_CONSTANT(CANVAS_LAYER_MAX); - BIND_CONSTANT(MAX_GLOW_LEVELS); - BIND_CONSTANT(MAX_CURSORS); - BIND_CONSTANT(MAX_2D_DIRECTIONAL_LIGHTS); - BIND_CONSTANT(MAX_MESH_SURFACES); + BIND_CONSTANT(RSE::NO_INDEX_ARRAY); + BIND_CONSTANT(RSE::ARRAY_WEIGHTS_SIZE); + BIND_CONSTANT(RSE::CANVAS_ITEM_Z_MIN); + BIND_CONSTANT(RSE::CANVAS_ITEM_Z_MAX); + BIND_CONSTANT(RSE::CANVAS_LAYER_MIN); + BIND_CONSTANT(RSE::CANVAS_LAYER_MAX); + BIND_CONSTANT(RSE::MAX_GLOW_LEVELS); + BIND_CONSTANT(RSE::MAX_CURSORS); + BIND_CONSTANT(RSE::MAX_2D_DIRECTIONAL_LIGHTS); + BIND_CONSTANT(RSE::MAX_MESH_SURFACES); /* TEXTURE */ @@ -2329,7 +2330,7 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("texture_2d_layered_create", "layers", "layered_type"), &RenderingServer::_texture_2d_layered_create); ClassDB::bind_method(D_METHOD("texture_3d_create", "format", "width", "height", "depth", "mipmaps", "data"), &RenderingServer::_texture_3d_create); ClassDB::bind_method(D_METHOD("texture_proxy_create", "base"), &RenderingServer::texture_proxy_create); - ClassDB::bind_method(D_METHOD("texture_create_from_native_handle", "type", "format", "native_handle", "width", "height", "depth", "layers", "layered_type"), &RenderingServer::texture_create_from_native_handle, DEFVAL(1), DEFVAL(TEXTURE_LAYERED_2D_ARRAY)); + ClassDB::bind_method(D_METHOD("texture_create_from_native_handle", "type", "format", "native_handle", "width", "height", "depth", "layers", "layered_type"), &RenderingServer::texture_create_from_native_handle, DEFVAL(1), DEFVAL(RSE::TEXTURE_LAYERED_2D_ARRAY)); ClassDB::bind_method(D_METHOD("texture_drawable_create", "width", "height", "format", "color", "with_mipmaps"), &RenderingServer::texture_drawable_create, DEFVAL(Color(1, 1, 1, 1)), DEFVAL(false)); ClassDB::bind_method(D_METHOD("texture_2d_update", "texture", "image", "layer"), &RenderingServer::texture_2d_update); @@ -2358,29 +2359,29 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("texture_get_format", "texture"), &RenderingServer::texture_get_format); ClassDB::bind_method(D_METHOD("texture_set_force_redraw_if_visible", "texture", "enable"), &RenderingServer::texture_set_force_redraw_if_visible); - ClassDB::bind_method(D_METHOD("texture_rd_create", "rd_texture", "layer_type"), &RenderingServer::texture_rd_create, DEFVAL(RenderingServer::TEXTURE_LAYERED_2D_ARRAY)); + ClassDB::bind_method(D_METHOD("texture_rd_create", "rd_texture", "layer_type"), &RenderingServer::texture_rd_create, DEFVAL(RSE::TEXTURE_LAYERED_2D_ARRAY)); ClassDB::bind_method(D_METHOD("texture_get_rd_texture", "texture", "srgb"), &RenderingServer::texture_get_rd_texture, DEFVAL(false)); ClassDB::bind_method(D_METHOD("texture_get_native_handle", "texture", "srgb"), &RenderingServer::texture_get_native_handle, DEFVAL(false)); - BIND_ENUM_CONSTANT(TEXTURE_TYPE_2D); - BIND_ENUM_CONSTANT(TEXTURE_TYPE_LAYERED); - BIND_ENUM_CONSTANT(TEXTURE_TYPE_3D); + BIND_ENUM_CONSTANT(RSE::TEXTURE_TYPE_2D); + BIND_ENUM_CONSTANT(RSE::TEXTURE_TYPE_LAYERED); + BIND_ENUM_CONSTANT(RSE::TEXTURE_TYPE_3D); - BIND_ENUM_CONSTANT(TEXTURE_LAYERED_2D_ARRAY); - BIND_ENUM_CONSTANT(TEXTURE_LAYERED_CUBEMAP); - BIND_ENUM_CONSTANT(TEXTURE_LAYERED_CUBEMAP_ARRAY); + BIND_ENUM_CONSTANT(RSE::TEXTURE_LAYERED_2D_ARRAY); + BIND_ENUM_CONSTANT(RSE::TEXTURE_LAYERED_CUBEMAP); + BIND_ENUM_CONSTANT(RSE::TEXTURE_LAYERED_CUBEMAP_ARRAY); - BIND_ENUM_CONSTANT(CUBEMAP_LAYER_LEFT); - BIND_ENUM_CONSTANT(CUBEMAP_LAYER_RIGHT); - BIND_ENUM_CONSTANT(CUBEMAP_LAYER_BOTTOM); - BIND_ENUM_CONSTANT(CUBEMAP_LAYER_TOP); - BIND_ENUM_CONSTANT(CUBEMAP_LAYER_FRONT); - BIND_ENUM_CONSTANT(CUBEMAP_LAYER_BACK); + BIND_ENUM_CONSTANT(RSE::CUBEMAP_LAYER_LEFT); + BIND_ENUM_CONSTANT(RSE::CUBEMAP_LAYER_RIGHT); + BIND_ENUM_CONSTANT(RSE::CUBEMAP_LAYER_BOTTOM); + BIND_ENUM_CONSTANT(RSE::CUBEMAP_LAYER_TOP); + BIND_ENUM_CONSTANT(RSE::CUBEMAP_LAYER_FRONT); + BIND_ENUM_CONSTANT(RSE::CUBEMAP_LAYER_BACK); - BIND_ENUM_CONSTANT(TEXTURE_DRAWABLE_FORMAT_RGBA8); - BIND_ENUM_CONSTANT(TEXTURE_DRAWABLE_FORMAT_RGBA8_SRGB); - BIND_ENUM_CONSTANT(TEXTURE_DRAWABLE_FORMAT_RGBAH); - BIND_ENUM_CONSTANT(TEXTURE_DRAWABLE_FORMAT_RGBAF); + BIND_ENUM_CONSTANT(RSE::TEXTURE_DRAWABLE_FORMAT_RGBA8); + BIND_ENUM_CONSTANT(RSE::TEXTURE_DRAWABLE_FORMAT_RGBA8_SRGB); + BIND_ENUM_CONSTANT(RSE::TEXTURE_DRAWABLE_FORMAT_RGBAH); + BIND_ENUM_CONSTANT(RSE::TEXTURE_DRAWABLE_FORMAT_RGBAF); /* SHADER */ @@ -2394,13 +2395,13 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("shader_set_default_texture_parameter", "shader", "name", "texture", "index"), &RenderingServer::shader_set_default_texture_parameter, DEFVAL(0)); ClassDB::bind_method(D_METHOD("shader_get_default_texture_parameter", "shader", "name", "index"), &RenderingServer::shader_get_default_texture_parameter, DEFVAL(0)); - BIND_ENUM_CONSTANT(SHADER_SPATIAL); - BIND_ENUM_CONSTANT(SHADER_CANVAS_ITEM); - BIND_ENUM_CONSTANT(SHADER_PARTICLES); - BIND_ENUM_CONSTANT(SHADER_SKY); - BIND_ENUM_CONSTANT(SHADER_FOG); - BIND_ENUM_CONSTANT(SHADER_TEXTURE_BLIT); - BIND_ENUM_CONSTANT(SHADER_MAX); + BIND_ENUM_CONSTANT(RSE::SHADER_SPATIAL); + BIND_ENUM_CONSTANT(RSE::SHADER_CANVAS_ITEM); + BIND_ENUM_CONSTANT(RSE::SHADER_PARTICLES); + BIND_ENUM_CONSTANT(RSE::SHADER_SKY); + BIND_ENUM_CONSTANT(RSE::SHADER_FOG); + BIND_ENUM_CONSTANT(RSE::SHADER_TEXTURE_BLIT); + BIND_ENUM_CONSTANT(RSE::SHADER_MAX); /* MATERIAL */ @@ -2414,8 +2415,8 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("material_set_use_debanding", "enable"), &RenderingServer::material_set_use_debanding); - BIND_CONSTANT(MATERIAL_RENDER_PRIORITY_MIN); - BIND_CONSTANT(MATERIAL_RENDER_PRIORITY_MAX); + BIND_CONSTANT(RSE::MATERIAL_RENDER_PRIORITY_MIN); + BIND_CONSTANT(RSE::MATERIAL_RENDER_PRIORITY_MAX); /* MESH API */ @@ -2451,82 +2452,82 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("mesh_set_shadow_mesh", "mesh", "shadow_mesh"), &RenderingServer::mesh_set_shadow_mesh); - BIND_ENUM_CONSTANT(ARRAY_VERTEX); - BIND_ENUM_CONSTANT(ARRAY_NORMAL); - BIND_ENUM_CONSTANT(ARRAY_TANGENT); - BIND_ENUM_CONSTANT(ARRAY_COLOR); - BIND_ENUM_CONSTANT(ARRAY_TEX_UV); - BIND_ENUM_CONSTANT(ARRAY_TEX_UV2); - BIND_ENUM_CONSTANT(ARRAY_CUSTOM0); - BIND_ENUM_CONSTANT(ARRAY_CUSTOM1); - BIND_ENUM_CONSTANT(ARRAY_CUSTOM2); - BIND_ENUM_CONSTANT(ARRAY_CUSTOM3); - BIND_ENUM_CONSTANT(ARRAY_BONES); - BIND_ENUM_CONSTANT(ARRAY_WEIGHTS); - BIND_ENUM_CONSTANT(ARRAY_INDEX); - BIND_ENUM_CONSTANT(ARRAY_MAX); + BIND_ENUM_CONSTANT(RSE::ARRAY_VERTEX); + BIND_ENUM_CONSTANT(RSE::ARRAY_NORMAL); + BIND_ENUM_CONSTANT(RSE::ARRAY_TANGENT); + BIND_ENUM_CONSTANT(RSE::ARRAY_COLOR); + BIND_ENUM_CONSTANT(RSE::ARRAY_TEX_UV); + BIND_ENUM_CONSTANT(RSE::ARRAY_TEX_UV2); + BIND_ENUM_CONSTANT(RSE::ARRAY_CUSTOM0); + BIND_ENUM_CONSTANT(RSE::ARRAY_CUSTOM1); + BIND_ENUM_CONSTANT(RSE::ARRAY_CUSTOM2); + BIND_ENUM_CONSTANT(RSE::ARRAY_CUSTOM3); + BIND_ENUM_CONSTANT(RSE::ARRAY_BONES); + BIND_ENUM_CONSTANT(RSE::ARRAY_WEIGHTS); + BIND_ENUM_CONSTANT(RSE::ARRAY_INDEX); + BIND_ENUM_CONSTANT(RSE::ARRAY_MAX); - BIND_CONSTANT(ARRAY_CUSTOM_COUNT); + BIND_CONSTANT(RSE::ARRAY_CUSTOM_COUNT); - BIND_ENUM_CONSTANT(ARRAY_CUSTOM_RGBA8_UNORM); - BIND_ENUM_CONSTANT(ARRAY_CUSTOM_RGBA8_SNORM); - BIND_ENUM_CONSTANT(ARRAY_CUSTOM_RG_HALF); - BIND_ENUM_CONSTANT(ARRAY_CUSTOM_RGBA_HALF); - BIND_ENUM_CONSTANT(ARRAY_CUSTOM_R_FLOAT); - BIND_ENUM_CONSTANT(ARRAY_CUSTOM_RG_FLOAT); - BIND_ENUM_CONSTANT(ARRAY_CUSTOM_RGB_FLOAT); - BIND_ENUM_CONSTANT(ARRAY_CUSTOM_RGBA_FLOAT); - BIND_ENUM_CONSTANT(ARRAY_CUSTOM_MAX); + BIND_ENUM_CONSTANT(RSE::ARRAY_CUSTOM_RGBA8_UNORM); + BIND_ENUM_CONSTANT(RSE::ARRAY_CUSTOM_RGBA8_SNORM); + BIND_ENUM_CONSTANT(RSE::ARRAY_CUSTOM_RG_HALF); + BIND_ENUM_CONSTANT(RSE::ARRAY_CUSTOM_RGBA_HALF); + BIND_ENUM_CONSTANT(RSE::ARRAY_CUSTOM_R_FLOAT); + BIND_ENUM_CONSTANT(RSE::ARRAY_CUSTOM_RG_FLOAT); + BIND_ENUM_CONSTANT(RSE::ARRAY_CUSTOM_RGB_FLOAT); + BIND_ENUM_CONSTANT(RSE::ARRAY_CUSTOM_RGBA_FLOAT); + BIND_ENUM_CONSTANT(RSE::ARRAY_CUSTOM_MAX); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_VERTEX); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_NORMAL); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_TANGENT); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_COLOR); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_TEX_UV); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_TEX_UV2); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM0); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM1); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM2); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM3); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_BONES); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_WEIGHTS); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_INDEX); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_VERTEX); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_NORMAL); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_TANGENT); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_COLOR); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_TEX_UV); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_TEX_UV2); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_CUSTOM0); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_CUSTOM1); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_CUSTOM2); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_CUSTOM3); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_BONES); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_WEIGHTS); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_INDEX); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_BLEND_SHAPE_MASK); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_BLEND_SHAPE_MASK); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM_BASE); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM_BITS); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM0_SHIFT); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM1_SHIFT); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM2_SHIFT); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM3_SHIFT); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_CUSTOM_BASE); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_CUSTOM_BITS); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_CUSTOM0_SHIFT); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_CUSTOM1_SHIFT); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_CUSTOM2_SHIFT); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_CUSTOM3_SHIFT); - BIND_BITFIELD_FLAG(ARRAY_FORMAT_CUSTOM_MASK); - BIND_BITFIELD_FLAG(ARRAY_COMPRESS_FLAGS_BASE); + BIND_BITFIELD_FLAG(RSE::ARRAY_FORMAT_CUSTOM_MASK); + BIND_BITFIELD_FLAG(RSE::ARRAY_COMPRESS_FLAGS_BASE); - BIND_BITFIELD_FLAG(ARRAY_FLAG_USE_2D_VERTICES); - BIND_BITFIELD_FLAG(ARRAY_FLAG_USE_DYNAMIC_UPDATE); - BIND_BITFIELD_FLAG(ARRAY_FLAG_USE_8_BONE_WEIGHTS); - BIND_BITFIELD_FLAG(ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY); + BIND_BITFIELD_FLAG(RSE::ARRAY_FLAG_USE_2D_VERTICES); + BIND_BITFIELD_FLAG(RSE::ARRAY_FLAG_USE_DYNAMIC_UPDATE); + BIND_BITFIELD_FLAG(RSE::ARRAY_FLAG_USE_8_BONE_WEIGHTS); + BIND_BITFIELD_FLAG(RSE::ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY); - BIND_BITFIELD_FLAG(ARRAY_FLAG_COMPRESS_ATTRIBUTES); + BIND_BITFIELD_FLAG(RSE::ARRAY_FLAG_COMPRESS_ATTRIBUTES); - BIND_BITFIELD_FLAG(ARRAY_FLAG_FORMAT_VERSION_BASE); - BIND_BITFIELD_FLAG(ARRAY_FLAG_FORMAT_VERSION_SHIFT); - BIND_BITFIELD_FLAG(ARRAY_FLAG_FORMAT_VERSION_1); - BIND_BITFIELD_FLAG(ARRAY_FLAG_FORMAT_VERSION_2); - BIND_BITFIELD_FLAG(ARRAY_FLAG_FORMAT_CURRENT_VERSION); - BIND_BITFIELD_FLAG(ARRAY_FLAG_FORMAT_VERSION_MASK); + BIND_BITFIELD_FLAG(RSE::ARRAY_FLAG_FORMAT_VERSION_BASE); + BIND_BITFIELD_FLAG(RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT); + BIND_BITFIELD_FLAG(RSE::ARRAY_FLAG_FORMAT_VERSION_1); + BIND_BITFIELD_FLAG(RSE::ARRAY_FLAG_FORMAT_VERSION_2); + BIND_BITFIELD_FLAG(RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION); + BIND_BITFIELD_FLAG(RSE::ARRAY_FLAG_FORMAT_VERSION_MASK); - BIND_ENUM_CONSTANT(PRIMITIVE_POINTS); - BIND_ENUM_CONSTANT(PRIMITIVE_LINES); - BIND_ENUM_CONSTANT(PRIMITIVE_LINE_STRIP); - BIND_ENUM_CONSTANT(PRIMITIVE_TRIANGLES); - BIND_ENUM_CONSTANT(PRIMITIVE_TRIANGLE_STRIP); - BIND_ENUM_CONSTANT(PRIMITIVE_MAX); + BIND_ENUM_CONSTANT(RSE::PRIMITIVE_POINTS); + BIND_ENUM_CONSTANT(RSE::PRIMITIVE_LINES); + BIND_ENUM_CONSTANT(RSE::PRIMITIVE_LINE_STRIP); + BIND_ENUM_CONSTANT(RSE::PRIMITIVE_TRIANGLES); + BIND_ENUM_CONSTANT(RSE::PRIMITIVE_TRIANGLE_STRIP); + BIND_ENUM_CONSTANT(RSE::PRIMITIVE_MAX); - BIND_ENUM_CONSTANT(BLEND_SHAPE_MODE_NORMALIZED); - BIND_ENUM_CONSTANT(BLEND_SHAPE_MODE_RELATIVE); + BIND_ENUM_CONSTANT(RSE::BLEND_SHAPE_MODE_NORMALIZED); + BIND_ENUM_CONSTANT(RSE::BLEND_SHAPE_MODE_RELATIVE); /* MULTIMESH API */ @@ -2559,10 +2560,10 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("multimesh_instance_reset_physics_interpolation", "multimesh", "index"), &RenderingServer::multimesh_instance_reset_physics_interpolation); ClassDB::bind_method(D_METHOD("multimesh_instances_reset_physics_interpolation", "multimesh"), &RenderingServer::multimesh_instances_reset_physics_interpolation); - BIND_ENUM_CONSTANT(MULTIMESH_TRANSFORM_2D); - BIND_ENUM_CONSTANT(MULTIMESH_TRANSFORM_3D); - BIND_ENUM_CONSTANT(MULTIMESH_INTERP_QUALITY_FAST); - BIND_ENUM_CONSTANT(MULTIMESH_INTERP_QUALITY_HIGH); + BIND_ENUM_CONSTANT(RSE::MULTIMESH_TRANSFORM_2D); + BIND_ENUM_CONSTANT(RSE::MULTIMESH_TRANSFORM_3D); + BIND_ENUM_CONSTANT(RSE::MULTIMESH_INTERP_QUALITY_FAST); + BIND_ENUM_CONSTANT(RSE::MULTIMESH_INTERP_QUALITY_HIGH); /* SKELETON API */ @@ -2602,66 +2603,66 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("light_projectors_set_filter", "filter"), &RenderingServer::light_projectors_set_filter); ClassDB::bind_method(D_METHOD("lightmaps_set_bicubic_filter", "enable"), &RenderingServer::lightmaps_set_bicubic_filter); - BIND_ENUM_CONSTANT(LIGHT_PROJECTOR_FILTER_NEAREST); - BIND_ENUM_CONSTANT(LIGHT_PROJECTOR_FILTER_LINEAR); - BIND_ENUM_CONSTANT(LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS); - BIND_ENUM_CONSTANT(LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS); - BIND_ENUM_CONSTANT(LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC); - BIND_ENUM_CONSTANT(LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC); + BIND_ENUM_CONSTANT(RSE::LIGHT_PROJECTOR_FILTER_NEAREST); + BIND_ENUM_CONSTANT(RSE::LIGHT_PROJECTOR_FILTER_LINEAR); + BIND_ENUM_CONSTANT(RSE::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS); + BIND_ENUM_CONSTANT(RSE::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS); + BIND_ENUM_CONSTANT(RSE::LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC); + BIND_ENUM_CONSTANT(RSE::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC); - BIND_ENUM_CONSTANT(LIGHT_DIRECTIONAL); - BIND_ENUM_CONSTANT(LIGHT_OMNI); - BIND_ENUM_CONSTANT(LIGHT_SPOT); + BIND_ENUM_CONSTANT(RSE::LIGHT_DIRECTIONAL); + BIND_ENUM_CONSTANT(RSE::LIGHT_OMNI); + BIND_ENUM_CONSTANT(RSE::LIGHT_SPOT); - BIND_ENUM_CONSTANT(LIGHT_PARAM_ENERGY); - BIND_ENUM_CONSTANT(LIGHT_PARAM_INDIRECT_ENERGY); - BIND_ENUM_CONSTANT(LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY); - BIND_ENUM_CONSTANT(LIGHT_PARAM_SPECULAR); - BIND_ENUM_CONSTANT(LIGHT_PARAM_RANGE); - BIND_ENUM_CONSTANT(LIGHT_PARAM_SIZE); - BIND_ENUM_CONSTANT(LIGHT_PARAM_ATTENUATION); - BIND_ENUM_CONSTANT(LIGHT_PARAM_SPOT_ANGLE); - BIND_ENUM_CONSTANT(LIGHT_PARAM_SPOT_ATTENUATION); - BIND_ENUM_CONSTANT(LIGHT_PARAM_SHADOW_MAX_DISTANCE); - BIND_ENUM_CONSTANT(LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET); - BIND_ENUM_CONSTANT(LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET); - BIND_ENUM_CONSTANT(LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET); - BIND_ENUM_CONSTANT(LIGHT_PARAM_SHADOW_FADE_START); - BIND_ENUM_CONSTANT(LIGHT_PARAM_SHADOW_NORMAL_BIAS); - BIND_ENUM_CONSTANT(LIGHT_PARAM_SHADOW_BIAS); - BIND_ENUM_CONSTANT(LIGHT_PARAM_SHADOW_PANCAKE_SIZE); - BIND_ENUM_CONSTANT(LIGHT_PARAM_SHADOW_OPACITY); - BIND_ENUM_CONSTANT(LIGHT_PARAM_SHADOW_BLUR); - BIND_ENUM_CONSTANT(LIGHT_PARAM_TRANSMITTANCE_BIAS); - BIND_ENUM_CONSTANT(LIGHT_PARAM_INTENSITY); - BIND_ENUM_CONSTANT(LIGHT_PARAM_MAX); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_ENERGY); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_INDIRECT_ENERGY); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_SPECULAR); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_RANGE); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_SIZE); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_ATTENUATION); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_SPOT_ANGLE); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_SPOT_ATTENUATION); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_SHADOW_MAX_DISTANCE); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_SHADOW_FADE_START); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_SHADOW_NORMAL_BIAS); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_SHADOW_BIAS); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_SHADOW_PANCAKE_SIZE); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_SHADOW_OPACITY); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_SHADOW_BLUR); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_TRANSMITTANCE_BIAS); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_INTENSITY); + BIND_ENUM_CONSTANT(RSE::LIGHT_PARAM_MAX); - BIND_ENUM_CONSTANT(LIGHT_BAKE_DISABLED); - BIND_ENUM_CONSTANT(LIGHT_BAKE_STATIC); - BIND_ENUM_CONSTANT(LIGHT_BAKE_DYNAMIC); + BIND_ENUM_CONSTANT(RSE::LIGHT_BAKE_DISABLED); + BIND_ENUM_CONSTANT(RSE::LIGHT_BAKE_STATIC); + BIND_ENUM_CONSTANT(RSE::LIGHT_BAKE_DYNAMIC); - BIND_ENUM_CONSTANT(LIGHT_OMNI_SHADOW_DUAL_PARABOLOID); - BIND_ENUM_CONSTANT(LIGHT_OMNI_SHADOW_CUBE); + BIND_ENUM_CONSTANT(RSE::LIGHT_OMNI_SHADOW_DUAL_PARABOLOID); + BIND_ENUM_CONSTANT(RSE::LIGHT_OMNI_SHADOW_CUBE); - BIND_ENUM_CONSTANT(LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL); - BIND_ENUM_CONSTANT(LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS); - BIND_ENUM_CONSTANT(LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS); + BIND_ENUM_CONSTANT(RSE::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL); + BIND_ENUM_CONSTANT(RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS); + BIND_ENUM_CONSTANT(RSE::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS); - BIND_ENUM_CONSTANT(LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY); - BIND_ENUM_CONSTANT(LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_ONLY); - BIND_ENUM_CONSTANT(LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY); + BIND_ENUM_CONSTANT(RSE::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY); + BIND_ENUM_CONSTANT(RSE::LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_ONLY); + BIND_ENUM_CONSTANT(RSE::LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY); ClassDB::bind_method(D_METHOD("positional_soft_shadow_filter_set_quality", "quality"), &RenderingServer::positional_soft_shadow_filter_set_quality); ClassDB::bind_method(D_METHOD("directional_soft_shadow_filter_set_quality", "quality"), &RenderingServer::directional_soft_shadow_filter_set_quality); ClassDB::bind_method(D_METHOD("directional_shadow_atlas_set_size", "size", "is_16bits"), &RenderingServer::directional_shadow_atlas_set_size); - BIND_ENUM_CONSTANT(SHADOW_QUALITY_HARD); - BIND_ENUM_CONSTANT(SHADOW_QUALITY_SOFT_VERY_LOW); - BIND_ENUM_CONSTANT(SHADOW_QUALITY_SOFT_LOW); - BIND_ENUM_CONSTANT(SHADOW_QUALITY_SOFT_MEDIUM); - BIND_ENUM_CONSTANT(SHADOW_QUALITY_SOFT_HIGH); - BIND_ENUM_CONSTANT(SHADOW_QUALITY_SOFT_ULTRA); - BIND_ENUM_CONSTANT(SHADOW_QUALITY_MAX); + BIND_ENUM_CONSTANT(RSE::SHADOW_QUALITY_HARD); + BIND_ENUM_CONSTANT(RSE::SHADOW_QUALITY_SOFT_VERY_LOW); + BIND_ENUM_CONSTANT(RSE::SHADOW_QUALITY_SOFT_LOW); + BIND_ENUM_CONSTANT(RSE::SHADOW_QUALITY_SOFT_MEDIUM); + BIND_ENUM_CONSTANT(RSE::SHADOW_QUALITY_SOFT_HIGH); + BIND_ENUM_CONSTANT(RSE::SHADOW_QUALITY_SOFT_ULTRA); + BIND_ENUM_CONSTANT(RSE::SHADOW_QUALITY_MAX); /* REFLECTION PROBE */ @@ -2683,12 +2684,12 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("reflection_probe_set_resolution", "probe", "resolution"), &RenderingServer::reflection_probe_set_resolution); ClassDB::bind_method(D_METHOD("reflection_probe_set_mesh_lod_threshold", "probe", "pixels"), &RenderingServer::reflection_probe_set_mesh_lod_threshold); - BIND_ENUM_CONSTANT(REFLECTION_PROBE_UPDATE_ONCE); - BIND_ENUM_CONSTANT(REFLECTION_PROBE_UPDATE_ALWAYS); + BIND_ENUM_CONSTANT(RSE::REFLECTION_PROBE_UPDATE_ONCE); + BIND_ENUM_CONSTANT(RSE::REFLECTION_PROBE_UPDATE_ALWAYS); - BIND_ENUM_CONSTANT(REFLECTION_PROBE_AMBIENT_DISABLED); - BIND_ENUM_CONSTANT(REFLECTION_PROBE_AMBIENT_ENVIRONMENT); - BIND_ENUM_CONSTANT(REFLECTION_PROBE_AMBIENT_COLOR); + BIND_ENUM_CONSTANT(RSE::REFLECTION_PROBE_AMBIENT_DISABLED); + BIND_ENUM_CONSTANT(RSE::REFLECTION_PROBE_AMBIENT_ENVIRONMENT); + BIND_ENUM_CONSTANT(RSE::REFLECTION_PROBE_AMBIENT_COLOR); /* DECAL */ @@ -2705,18 +2706,18 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("decals_set_filter", "filter"), &RenderingServer::decals_set_filter); - BIND_ENUM_CONSTANT(DECAL_TEXTURE_ALBEDO); - BIND_ENUM_CONSTANT(DECAL_TEXTURE_NORMAL); - BIND_ENUM_CONSTANT(DECAL_TEXTURE_ORM); - BIND_ENUM_CONSTANT(DECAL_TEXTURE_EMISSION); - BIND_ENUM_CONSTANT(DECAL_TEXTURE_MAX); + BIND_ENUM_CONSTANT(RSE::DECAL_TEXTURE_ALBEDO); + BIND_ENUM_CONSTANT(RSE::DECAL_TEXTURE_NORMAL); + BIND_ENUM_CONSTANT(RSE::DECAL_TEXTURE_ORM); + BIND_ENUM_CONSTANT(RSE::DECAL_TEXTURE_EMISSION); + BIND_ENUM_CONSTANT(RSE::DECAL_TEXTURE_MAX); - BIND_ENUM_CONSTANT(DECAL_FILTER_NEAREST); - BIND_ENUM_CONSTANT(DECAL_FILTER_LINEAR); - BIND_ENUM_CONSTANT(DECAL_FILTER_NEAREST_MIPMAPS); - BIND_ENUM_CONSTANT(DECAL_FILTER_LINEAR_MIPMAPS); - BIND_ENUM_CONSTANT(DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC); - BIND_ENUM_CONSTANT(DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC); + BIND_ENUM_CONSTANT(RSE::DECAL_FILTER_NEAREST); + BIND_ENUM_CONSTANT(RSE::DECAL_FILTER_LINEAR); + BIND_ENUM_CONSTANT(RSE::DECAL_FILTER_NEAREST_MIPMAPS); + BIND_ENUM_CONSTANT(RSE::DECAL_FILTER_LINEAR_MIPMAPS); + BIND_ENUM_CONSTANT(RSE::DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC); + BIND_ENUM_CONSTANT(RSE::DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC); /* GI API (affects VoxelGI and SDFGI) */ @@ -2744,8 +2745,8 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("voxel_gi_set_quality", "quality"), &RenderingServer::voxel_gi_set_quality); - BIND_ENUM_CONSTANT(VOXEL_GI_QUALITY_LOW); - BIND_ENUM_CONSTANT(VOXEL_GI_QUALITY_HIGH); + BIND_ENUM_CONSTANT(RSE::VOXEL_GI_QUALITY_LOW); + BIND_ENUM_CONSTANT(RSE::VOXEL_GI_QUALITY_HIGH); /* LIGHTMAP */ @@ -2803,24 +2804,24 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("particles_get_current_aabb", "particles"), &RenderingServer::particles_get_current_aabb); ClassDB::bind_method(D_METHOD("particles_set_emission_transform", "particles", "transform"), &RenderingServer::particles_set_emission_transform); - BIND_ENUM_CONSTANT(PARTICLES_MODE_2D); - BIND_ENUM_CONSTANT(PARTICLES_MODE_3D); + BIND_ENUM_CONSTANT(RSE::PARTICLES_MODE_2D); + BIND_ENUM_CONSTANT(RSE::PARTICLES_MODE_3D); - BIND_ENUM_CONSTANT(PARTICLES_TRANSFORM_ALIGN_DISABLED); - BIND_ENUM_CONSTANT(PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD); - BIND_ENUM_CONSTANT(PARTICLES_TRANSFORM_ALIGN_Y_TO_VELOCITY); - BIND_ENUM_CONSTANT(PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY); + BIND_ENUM_CONSTANT(RSE::PARTICLES_TRANSFORM_ALIGN_DISABLED); + BIND_ENUM_CONSTANT(RSE::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD); + BIND_ENUM_CONSTANT(RSE::PARTICLES_TRANSFORM_ALIGN_Y_TO_VELOCITY); + BIND_ENUM_CONSTANT(RSE::PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY); - BIND_CONSTANT(PARTICLES_EMIT_FLAG_POSITION); - BIND_CONSTANT(PARTICLES_EMIT_FLAG_ROTATION_SCALE); - BIND_CONSTANT(PARTICLES_EMIT_FLAG_VELOCITY); - BIND_CONSTANT(PARTICLES_EMIT_FLAG_COLOR); - BIND_CONSTANT(PARTICLES_EMIT_FLAG_CUSTOM); + BIND_CONSTANT(RSE::PARTICLES_EMIT_FLAG_POSITION); + BIND_CONSTANT(RSE::PARTICLES_EMIT_FLAG_ROTATION_SCALE); + BIND_CONSTANT(RSE::PARTICLES_EMIT_FLAG_VELOCITY); + BIND_CONSTANT(RSE::PARTICLES_EMIT_FLAG_COLOR); + BIND_CONSTANT(RSE::PARTICLES_EMIT_FLAG_CUSTOM); - BIND_ENUM_CONSTANT(PARTICLES_DRAW_ORDER_INDEX); - BIND_ENUM_CONSTANT(PARTICLES_DRAW_ORDER_LIFETIME); - BIND_ENUM_CONSTANT(PARTICLES_DRAW_ORDER_REVERSE_LIFETIME); - BIND_ENUM_CONSTANT(PARTICLES_DRAW_ORDER_VIEW_DEPTH); + BIND_ENUM_CONSTANT(RSE::PARTICLES_DRAW_ORDER_INDEX); + BIND_ENUM_CONSTANT(RSE::PARTICLES_DRAW_ORDER_LIFETIME); + BIND_ENUM_CONSTANT(RSE::PARTICLES_DRAW_ORDER_REVERSE_LIFETIME); + BIND_ENUM_CONSTANT(RSE::PARTICLES_DRAW_ORDER_VIEW_DEPTH); /* PARTICLES COLLISION */ @@ -2838,21 +2839,21 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("particles_collision_set_height_field_resolution", "particles_collision", "resolution"), &RenderingServer::particles_collision_set_height_field_resolution); ClassDB::bind_method(D_METHOD("particles_collision_set_height_field_mask", "particles_collision", "mask"), &RenderingServer::particles_collision_set_height_field_mask); - BIND_ENUM_CONSTANT(PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT); - BIND_ENUM_CONSTANT(PARTICLES_COLLISION_TYPE_BOX_ATTRACT); - BIND_ENUM_CONSTANT(PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT); - BIND_ENUM_CONSTANT(PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE); - BIND_ENUM_CONSTANT(PARTICLES_COLLISION_TYPE_BOX_COLLIDE); - BIND_ENUM_CONSTANT(PARTICLES_COLLISION_TYPE_SDF_COLLIDE); - BIND_ENUM_CONSTANT(PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE); + BIND_ENUM_CONSTANT(RSE::PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT); + BIND_ENUM_CONSTANT(RSE::PARTICLES_COLLISION_TYPE_BOX_ATTRACT); + BIND_ENUM_CONSTANT(RSE::PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT); + BIND_ENUM_CONSTANT(RSE::PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE); + BIND_ENUM_CONSTANT(RSE::PARTICLES_COLLISION_TYPE_BOX_COLLIDE); + BIND_ENUM_CONSTANT(RSE::PARTICLES_COLLISION_TYPE_SDF_COLLIDE); + BIND_ENUM_CONSTANT(RSE::PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE); - BIND_ENUM_CONSTANT(PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_256); - BIND_ENUM_CONSTANT(PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_512); - BIND_ENUM_CONSTANT(PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_1024); - BIND_ENUM_CONSTANT(PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_2048); - BIND_ENUM_CONSTANT(PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_4096); - BIND_ENUM_CONSTANT(PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_8192); - BIND_ENUM_CONSTANT(PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX); + BIND_ENUM_CONSTANT(RSE::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_256); + BIND_ENUM_CONSTANT(RSE::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_512); + BIND_ENUM_CONSTANT(RSE::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_1024); + BIND_ENUM_CONSTANT(RSE::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_2048); + BIND_ENUM_CONSTANT(RSE::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_4096); + BIND_ENUM_CONSTANT(RSE::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_8192); + BIND_ENUM_CONSTANT(RSE::PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX); /* FOG VOLUMES */ @@ -2861,12 +2862,12 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("fog_volume_set_size", "fog_volume", "size"), &RenderingServer::fog_volume_set_size); ClassDB::bind_method(D_METHOD("fog_volume_set_material", "fog_volume", "material"), &RenderingServer::fog_volume_set_material); - BIND_ENUM_CONSTANT(FOG_VOLUME_SHAPE_ELLIPSOID); - BIND_ENUM_CONSTANT(FOG_VOLUME_SHAPE_CONE); - BIND_ENUM_CONSTANT(FOG_VOLUME_SHAPE_CYLINDER); - BIND_ENUM_CONSTANT(FOG_VOLUME_SHAPE_BOX); - BIND_ENUM_CONSTANT(FOG_VOLUME_SHAPE_WORLD); - BIND_ENUM_CONSTANT(FOG_VOLUME_SHAPE_MAX); + BIND_ENUM_CONSTANT(RSE::FOG_VOLUME_SHAPE_ELLIPSOID); + BIND_ENUM_CONSTANT(RSE::FOG_VOLUME_SHAPE_CONE); + BIND_ENUM_CONSTANT(RSE::FOG_VOLUME_SHAPE_CYLINDER); + BIND_ENUM_CONSTANT(RSE::FOG_VOLUME_SHAPE_BOX); + BIND_ENUM_CONSTANT(RSE::FOG_VOLUME_SHAPE_WORLD); + BIND_ENUM_CONSTANT(RSE::FOG_VOLUME_SHAPE_MAX); /* VISIBILITY NOTIFIER */ @@ -2960,108 +2961,108 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("viewport_set_vrs_update_mode", "viewport", "mode"), &RenderingServer::viewport_set_vrs_update_mode); ClassDB::bind_method(D_METHOD("viewport_set_vrs_texture", "viewport", "texture"), &RenderingServer::viewport_set_vrs_texture); - BIND_ENUM_CONSTANT(VIEWPORT_SCALING_3D_MODE_BILINEAR); - BIND_ENUM_CONSTANT(VIEWPORT_SCALING_3D_MODE_FSR); - BIND_ENUM_CONSTANT(VIEWPORT_SCALING_3D_MODE_FSR2); - BIND_ENUM_CONSTANT(VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL); - BIND_ENUM_CONSTANT(VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL); - BIND_ENUM_CONSTANT(VIEWPORT_SCALING_3D_MODE_MAX); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SCALING_3D_MODE_FSR); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SCALING_3D_MODE_FSR2); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SCALING_3D_MODE_MAX); - BIND_ENUM_CONSTANT(VIEWPORT_UPDATE_DISABLED); - BIND_ENUM_CONSTANT(VIEWPORT_UPDATE_ONCE); // Then goes to disabled, must be manually updated. - BIND_ENUM_CONSTANT(VIEWPORT_UPDATE_WHEN_VISIBLE); // Default - BIND_ENUM_CONSTANT(VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE); - BIND_ENUM_CONSTANT(VIEWPORT_UPDATE_ALWAYS); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_UPDATE_DISABLED); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_UPDATE_ONCE); // Then goes to disabled, must be manually updated. + BIND_ENUM_CONSTANT(RSE::VIEWPORT_UPDATE_WHEN_VISIBLE); // Default + BIND_ENUM_CONSTANT(RSE::VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_UPDATE_ALWAYS); - BIND_ENUM_CONSTANT(VIEWPORT_CLEAR_ALWAYS); - BIND_ENUM_CONSTANT(VIEWPORT_CLEAR_NEVER); - BIND_ENUM_CONSTANT(VIEWPORT_CLEAR_ONLY_NEXT_FRAME); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_CLEAR_ALWAYS); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_CLEAR_NEVER); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_CLEAR_ONLY_NEXT_FRAME); - BIND_ENUM_CONSTANT(VIEWPORT_ENVIRONMENT_DISABLED); - BIND_ENUM_CONSTANT(VIEWPORT_ENVIRONMENT_ENABLED); - BIND_ENUM_CONSTANT(VIEWPORT_ENVIRONMENT_INHERIT); - BIND_ENUM_CONSTANT(VIEWPORT_ENVIRONMENT_MAX); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_ENVIRONMENT_DISABLED); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_ENVIRONMENT_ENABLED); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_ENVIRONMENT_INHERIT); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_ENVIRONMENT_MAX); - BIND_ENUM_CONSTANT(VIEWPORT_SDF_OVERSIZE_100_PERCENT); - BIND_ENUM_CONSTANT(VIEWPORT_SDF_OVERSIZE_120_PERCENT); - BIND_ENUM_CONSTANT(VIEWPORT_SDF_OVERSIZE_150_PERCENT); - BIND_ENUM_CONSTANT(VIEWPORT_SDF_OVERSIZE_200_PERCENT); - BIND_ENUM_CONSTANT(VIEWPORT_SDF_OVERSIZE_MAX); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SDF_OVERSIZE_100_PERCENT); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SDF_OVERSIZE_120_PERCENT); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SDF_OVERSIZE_150_PERCENT); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SDF_OVERSIZE_200_PERCENT); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SDF_OVERSIZE_MAX); - BIND_ENUM_CONSTANT(VIEWPORT_SDF_SCALE_100_PERCENT); - BIND_ENUM_CONSTANT(VIEWPORT_SDF_SCALE_50_PERCENT); - BIND_ENUM_CONSTANT(VIEWPORT_SDF_SCALE_25_PERCENT); - BIND_ENUM_CONSTANT(VIEWPORT_SDF_SCALE_MAX); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SDF_SCALE_100_PERCENT); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SDF_SCALE_50_PERCENT); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SDF_SCALE_25_PERCENT); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SDF_SCALE_MAX); - BIND_ENUM_CONSTANT(VIEWPORT_MSAA_DISABLED); - BIND_ENUM_CONSTANT(VIEWPORT_MSAA_2X); - BIND_ENUM_CONSTANT(VIEWPORT_MSAA_4X); - BIND_ENUM_CONSTANT(VIEWPORT_MSAA_8X); - BIND_ENUM_CONSTANT(VIEWPORT_MSAA_MAX); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_MSAA_DISABLED); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_MSAA_2X); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_MSAA_4X); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_MSAA_8X); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_MSAA_MAX); - BIND_ENUM_CONSTANT(VIEWPORT_ANISOTROPY_DISABLED); - BIND_ENUM_CONSTANT(VIEWPORT_ANISOTROPY_2X); - BIND_ENUM_CONSTANT(VIEWPORT_ANISOTROPY_4X); - BIND_ENUM_CONSTANT(VIEWPORT_ANISOTROPY_8X); - BIND_ENUM_CONSTANT(VIEWPORT_ANISOTROPY_16X); - BIND_ENUM_CONSTANT(VIEWPORT_ANISOTROPY_MAX); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_ANISOTROPY_DISABLED); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_ANISOTROPY_2X); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_ANISOTROPY_4X); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_ANISOTROPY_8X); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_ANISOTROPY_16X); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_ANISOTROPY_MAX); - BIND_ENUM_CONSTANT(VIEWPORT_SCREEN_SPACE_AA_DISABLED); - BIND_ENUM_CONSTANT(VIEWPORT_SCREEN_SPACE_AA_FXAA); - BIND_ENUM_CONSTANT(VIEWPORT_SCREEN_SPACE_AA_SMAA); - BIND_ENUM_CONSTANT(VIEWPORT_SCREEN_SPACE_AA_MAX); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SCREEN_SPACE_AA_DISABLED); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SCREEN_SPACE_AA_FXAA); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SCREEN_SPACE_AA_SMAA); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_SCREEN_SPACE_AA_MAX); - BIND_ENUM_CONSTANT(VIEWPORT_OCCLUSION_BUILD_QUALITY_LOW); - BIND_ENUM_CONSTANT(VIEWPORT_OCCLUSION_BUILD_QUALITY_MEDIUM); - BIND_ENUM_CONSTANT(VIEWPORT_OCCLUSION_BUILD_QUALITY_HIGH); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_OCCLUSION_BUILD_QUALITY_LOW); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_OCCLUSION_BUILD_QUALITY_MEDIUM); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_OCCLUSION_BUILD_QUALITY_HIGH); - BIND_ENUM_CONSTANT(VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME); - BIND_ENUM_CONSTANT(VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME); - BIND_ENUM_CONSTANT(VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME); - BIND_ENUM_CONSTANT(VIEWPORT_RENDER_INFO_MAX); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_RENDER_INFO_MAX); - BIND_ENUM_CONSTANT(VIEWPORT_RENDER_INFO_TYPE_VISIBLE); - BIND_ENUM_CONSTANT(VIEWPORT_RENDER_INFO_TYPE_SHADOW); - BIND_ENUM_CONSTANT(VIEWPORT_RENDER_INFO_TYPE_CANVAS); - BIND_ENUM_CONSTANT(VIEWPORT_RENDER_INFO_TYPE_MAX); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_RENDER_INFO_TYPE_VISIBLE); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_RENDER_INFO_TYPE_SHADOW); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_RENDER_INFO_TYPE_CANVAS); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_RENDER_INFO_TYPE_MAX); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_DISABLED); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_UNSHADED); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_LIGHTING); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_OVERDRAW); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_WIREFRAME); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_SSAO); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_SSIL); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_PSSM_SPLITS); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_DECAL_ATLAS); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_SDFGI); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_SDFGI_PROBES); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_GI_BUFFER); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_DISABLE_LOD); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_OCCLUDERS); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_MOTION_VECTORS); - BIND_ENUM_CONSTANT(VIEWPORT_DEBUG_DRAW_INTERNAL_BUFFER); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_DISABLED); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_UNSHADED); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_LIGHTING); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_OVERDRAW); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_WIREFRAME); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_SSAO); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_SSIL); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_PSSM_SPLITS); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_DECAL_ATLAS); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_SDFGI); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_SDFGI_PROBES); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_GI_BUFFER); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_DISABLE_LOD); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_OCCLUDERS); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_MOTION_VECTORS); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_DEBUG_DRAW_INTERNAL_BUFFER); - BIND_ENUM_CONSTANT(VIEWPORT_VRS_DISABLED); - BIND_ENUM_CONSTANT(VIEWPORT_VRS_TEXTURE); - BIND_ENUM_CONSTANT(VIEWPORT_VRS_XR); - BIND_ENUM_CONSTANT(VIEWPORT_VRS_MAX); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_VRS_DISABLED); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_VRS_TEXTURE); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_VRS_XR); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_VRS_MAX); - BIND_ENUM_CONSTANT(VIEWPORT_VRS_UPDATE_DISABLED); - BIND_ENUM_CONSTANT(VIEWPORT_VRS_UPDATE_ONCE); // Then goes to disabled, must be manually updated. - BIND_ENUM_CONSTANT(VIEWPORT_VRS_UPDATE_ALWAYS); - BIND_ENUM_CONSTANT(VIEWPORT_VRS_UPDATE_MAX); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_VRS_UPDATE_DISABLED); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_VRS_UPDATE_ONCE); // Then goes to disabled, must be manually updated. + BIND_ENUM_CONSTANT(RSE::VIEWPORT_VRS_UPDATE_ALWAYS); + BIND_ENUM_CONSTANT(RSE::VIEWPORT_VRS_UPDATE_MAX); /* SKY API */ @@ -3071,10 +3072,10 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("sky_set_material", "sky", "material"), &RenderingServer::sky_set_material); ClassDB::bind_method(D_METHOD("sky_bake_panorama", "sky", "energy", "bake_irradiance", "size"), &RenderingServer::sky_bake_panorama); - BIND_ENUM_CONSTANT(SKY_MODE_AUTOMATIC); - BIND_ENUM_CONSTANT(SKY_MODE_QUALITY); - BIND_ENUM_CONSTANT(SKY_MODE_INCREMENTAL); - BIND_ENUM_CONSTANT(SKY_MODE_REALTIME); + BIND_ENUM_CONSTANT(RSE::SKY_MODE_AUTOMATIC); + BIND_ENUM_CONSTANT(RSE::SKY_MODE_QUALITY); + BIND_ENUM_CONSTANT(RSE::SKY_MODE_INCREMENTAL); + BIND_ENUM_CONSTANT(RSE::SKY_MODE_REALTIME); /* COMPOSITOR EFFECT API */ @@ -3083,18 +3084,18 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("compositor_effect_set_callback", "effect", "callback_type", "callback"), &RenderingServer::compositor_effect_set_callback); ClassDB::bind_method(D_METHOD("compositor_effect_set_flag", "effect", "flag", "set"), &RenderingServer::compositor_effect_set_flag); - BIND_ENUM_CONSTANT(COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR); - BIND_ENUM_CONSTANT(COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH); - BIND_ENUM_CONSTANT(COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS); - BIND_ENUM_CONSTANT(COMPOSITOR_EFFECT_FLAG_NEEDS_ROUGHNESS); - BIND_ENUM_CONSTANT(COMPOSITOR_EFFECT_FLAG_NEEDS_SEPARATE_SPECULAR); + BIND_ENUM_CONSTANT(RSE::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR); + BIND_ENUM_CONSTANT(RSE::COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH); + BIND_ENUM_CONSTANT(RSE::COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS); + BIND_ENUM_CONSTANT(RSE::COMPOSITOR_EFFECT_FLAG_NEEDS_ROUGHNESS); + BIND_ENUM_CONSTANT(RSE::COMPOSITOR_EFFECT_FLAG_NEEDS_SEPARATE_SPECULAR); - BIND_ENUM_CONSTANT(COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE); - BIND_ENUM_CONSTANT(COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE); - BIND_ENUM_CONSTANT(COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_SKY); - BIND_ENUM_CONSTANT(COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT); - BIND_ENUM_CONSTANT(COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_TRANSPARENT); - BIND_ENUM_CONSTANT(COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY); + BIND_ENUM_CONSTANT(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE); + BIND_ENUM_CONSTANT(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE); + BIND_ENUM_CONSTANT(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_SKY); + BIND_ENUM_CONSTANT(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT); + BIND_ENUM_CONSTANT(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_TRANSPARENT); + BIND_ENUM_CONSTANT(RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY); /* COMPOSITOR */ @@ -3113,14 +3114,14 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("environment_set_bg_color", "env", "color"), &RenderingServer::environment_set_bg_color); ClassDB::bind_method(D_METHOD("environment_set_bg_energy", "env", "multiplier", "exposure_value"), &RenderingServer::environment_set_bg_energy); ClassDB::bind_method(D_METHOD("environment_set_canvas_max_layer", "env", "max_layer"), &RenderingServer::environment_set_canvas_max_layer); - ClassDB::bind_method(D_METHOD("environment_set_ambient_light", "env", "color", "ambient", "energy", "sky_contribution", "reflection_source"), &RenderingServer::environment_set_ambient_light, DEFVAL(RS::ENV_AMBIENT_SOURCE_BG), DEFVAL(1.0), DEFVAL(0.0), DEFVAL(RS::ENV_REFLECTION_SOURCE_BG)); + ClassDB::bind_method(D_METHOD("environment_set_ambient_light", "env", "color", "ambient", "energy", "sky_contribution", "reflection_source"), &RenderingServer::environment_set_ambient_light, DEFVAL(RSE::ENV_AMBIENT_SOURCE_BG), DEFVAL(1.0), DEFVAL(0.0), DEFVAL(RSE::ENV_REFLECTION_SOURCE_BG)); ClassDB::bind_method(D_METHOD("environment_set_glow", "env", "enable", "levels", "intensity", "strength", "mix", "bloom_threshold", "blend_mode", "hdr_bleed_threshold", "hdr_bleed_scale", "hdr_luminance_cap", "glow_map_strength", "glow_map"), &RenderingServer::environment_set_glow); ClassDB::bind_method(D_METHOD("environment_set_tonemap", "env", "tone_mapper", "exposure", "white"), &RenderingServer::environment_set_tonemap); ClassDB::bind_method(D_METHOD("environment_set_tonemap_agx_contrast", "env", "agx_contrast"), &RenderingServer::environment_set_tonemap_agx_contrast); ClassDB::bind_method(D_METHOD("environment_set_adjustment", "env", "enable", "brightness", "contrast", "saturation", "use_1d_color_correction", "color_correction"), &RenderingServer::environment_set_adjustment); ClassDB::bind_method(D_METHOD("environment_set_ssr", "env", "enable", "max_steps", "fade_in", "fade_out", "depth_tolerance"), &RenderingServer::environment_set_ssr); ClassDB::bind_method(D_METHOD("environment_set_ssao", "env", "enable", "radius", "intensity", "power", "detail", "horizon", "sharpness", "light_affect", "ao_channel_affect"), &RenderingServer::environment_set_ssao); - ClassDB::bind_method(D_METHOD("environment_set_fog", "env", "enable", "light_color", "light_energy", "sun_scatter", "density", "height", "height_density", "aerial_perspective", "sky_affect", "fog_mode"), &RenderingServer::environment_set_fog, DEFVAL(RS::ENV_FOG_MODE_EXPONENTIAL)); + ClassDB::bind_method(D_METHOD("environment_set_fog", "env", "enable", "light_color", "light_energy", "sun_scatter", "density", "height", "height_density", "aerial_perspective", "sky_affect", "fog_mode"), &RenderingServer::environment_set_fog, DEFVAL(RSE::ENV_FOG_MODE_EXPONENTIAL)); ClassDB::bind_method(D_METHOD("environment_set_fog_depth", "env", "curve", "begin", "end"), &RenderingServer::environment_set_fog_depth); ClassDB::bind_method(D_METHOD("environment_set_sdfgi", "env", "enable", "cascades", "min_cell_size", "y_scale", "use_occlusion", "bounce_feedback", "read_sky", "energy", "normal_bias", "probe_bias"), &RenderingServer::environment_set_sdfgi); ClassDB::bind_method(D_METHOD("environment_set_volumetric_fog", "env", "enable", "density", "albedo", "emission", "emission_energy", "anisotropy", "length", "p_detail_spread", "gi_inject", "temporal_reprojection", "temporal_reprojection_amount", "ambient_inject", "sky_affect"), &RenderingServer::environment_set_volumetric_fog); @@ -3142,87 +3143,87 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("sub_surface_scattering_set_quality", "quality"), &RenderingServer::sub_surface_scattering_set_quality); ClassDB::bind_method(D_METHOD("sub_surface_scattering_set_scale", "scale", "depth_scale"), &RenderingServer::sub_surface_scattering_set_scale); - BIND_ENUM_CONSTANT(ENV_BG_CLEAR_COLOR); - BIND_ENUM_CONSTANT(ENV_BG_COLOR); - BIND_ENUM_CONSTANT(ENV_BG_SKY); - BIND_ENUM_CONSTANT(ENV_BG_CANVAS); - BIND_ENUM_CONSTANT(ENV_BG_KEEP); - BIND_ENUM_CONSTANT(ENV_BG_CAMERA_FEED); - BIND_ENUM_CONSTANT(ENV_BG_MAX); + BIND_ENUM_CONSTANT(RSE::ENV_BG_CLEAR_COLOR); + BIND_ENUM_CONSTANT(RSE::ENV_BG_COLOR); + BIND_ENUM_CONSTANT(RSE::ENV_BG_SKY); + BIND_ENUM_CONSTANT(RSE::ENV_BG_CANVAS); + BIND_ENUM_CONSTANT(RSE::ENV_BG_KEEP); + BIND_ENUM_CONSTANT(RSE::ENV_BG_CAMERA_FEED); + BIND_ENUM_CONSTANT(RSE::ENV_BG_MAX); - BIND_ENUM_CONSTANT(ENV_AMBIENT_SOURCE_BG); - BIND_ENUM_CONSTANT(ENV_AMBIENT_SOURCE_DISABLED); - BIND_ENUM_CONSTANT(ENV_AMBIENT_SOURCE_COLOR); - BIND_ENUM_CONSTANT(ENV_AMBIENT_SOURCE_SKY); + BIND_ENUM_CONSTANT(RSE::ENV_AMBIENT_SOURCE_BG); + BIND_ENUM_CONSTANT(RSE::ENV_AMBIENT_SOURCE_DISABLED); + BIND_ENUM_CONSTANT(RSE::ENV_AMBIENT_SOURCE_COLOR); + BIND_ENUM_CONSTANT(RSE::ENV_AMBIENT_SOURCE_SKY); - BIND_ENUM_CONSTANT(ENV_REFLECTION_SOURCE_BG); - BIND_ENUM_CONSTANT(ENV_REFLECTION_SOURCE_DISABLED); - BIND_ENUM_CONSTANT(ENV_REFLECTION_SOURCE_SKY); + BIND_ENUM_CONSTANT(RSE::ENV_REFLECTION_SOURCE_BG); + BIND_ENUM_CONSTANT(RSE::ENV_REFLECTION_SOURCE_DISABLED); + BIND_ENUM_CONSTANT(RSE::ENV_REFLECTION_SOURCE_SKY); - BIND_ENUM_CONSTANT(ENV_GLOW_BLEND_MODE_ADDITIVE); - BIND_ENUM_CONSTANT(ENV_GLOW_BLEND_MODE_SCREEN); - BIND_ENUM_CONSTANT(ENV_GLOW_BLEND_MODE_SOFTLIGHT); - BIND_ENUM_CONSTANT(ENV_GLOW_BLEND_MODE_REPLACE); - BIND_ENUM_CONSTANT(ENV_GLOW_BLEND_MODE_MIX); + BIND_ENUM_CONSTANT(RSE::ENV_GLOW_BLEND_MODE_ADDITIVE); + BIND_ENUM_CONSTANT(RSE::ENV_GLOW_BLEND_MODE_SCREEN); + BIND_ENUM_CONSTANT(RSE::ENV_GLOW_BLEND_MODE_SOFTLIGHT); + BIND_ENUM_CONSTANT(RSE::ENV_GLOW_BLEND_MODE_REPLACE); + BIND_ENUM_CONSTANT(RSE::ENV_GLOW_BLEND_MODE_MIX); - BIND_ENUM_CONSTANT(ENV_FOG_MODE_EXPONENTIAL); - BIND_ENUM_CONSTANT(ENV_FOG_MODE_DEPTH); + BIND_ENUM_CONSTANT(RSE::ENV_FOG_MODE_EXPONENTIAL); + BIND_ENUM_CONSTANT(RSE::ENV_FOG_MODE_DEPTH); - BIND_ENUM_CONSTANT(ENV_TONE_MAPPER_LINEAR); - BIND_ENUM_CONSTANT(ENV_TONE_MAPPER_REINHARD); - BIND_ENUM_CONSTANT(ENV_TONE_MAPPER_FILMIC); - BIND_ENUM_CONSTANT(ENV_TONE_MAPPER_ACES); - BIND_ENUM_CONSTANT(ENV_TONE_MAPPER_AGX); + BIND_ENUM_CONSTANT(RSE::ENV_TONE_MAPPER_LINEAR); + BIND_ENUM_CONSTANT(RSE::ENV_TONE_MAPPER_REINHARD); + BIND_ENUM_CONSTANT(RSE::ENV_TONE_MAPPER_FILMIC); + BIND_ENUM_CONSTANT(RSE::ENV_TONE_MAPPER_ACES); + BIND_ENUM_CONSTANT(RSE::ENV_TONE_MAPPER_AGX); - BIND_ENUM_CONSTANT(ENV_SSR_ROUGHNESS_QUALITY_DISABLED); - BIND_ENUM_CONSTANT(ENV_SSR_ROUGHNESS_QUALITY_LOW); - BIND_ENUM_CONSTANT(ENV_SSR_ROUGHNESS_QUALITY_MEDIUM); - BIND_ENUM_CONSTANT(ENV_SSR_ROUGHNESS_QUALITY_HIGH); + BIND_ENUM_CONSTANT(RSE::ENV_SSR_ROUGHNESS_QUALITY_DISABLED); + BIND_ENUM_CONSTANT(RSE::ENV_SSR_ROUGHNESS_QUALITY_LOW); + BIND_ENUM_CONSTANT(RSE::ENV_SSR_ROUGHNESS_QUALITY_MEDIUM); + BIND_ENUM_CONSTANT(RSE::ENV_SSR_ROUGHNESS_QUALITY_HIGH); - BIND_ENUM_CONSTANT(ENV_SSAO_QUALITY_VERY_LOW); - BIND_ENUM_CONSTANT(ENV_SSAO_QUALITY_LOW); - BIND_ENUM_CONSTANT(ENV_SSAO_QUALITY_MEDIUM); - BIND_ENUM_CONSTANT(ENV_SSAO_QUALITY_HIGH); - BIND_ENUM_CONSTANT(ENV_SSAO_QUALITY_ULTRA); + BIND_ENUM_CONSTANT(RSE::ENV_SSAO_QUALITY_VERY_LOW); + BIND_ENUM_CONSTANT(RSE::ENV_SSAO_QUALITY_LOW); + BIND_ENUM_CONSTANT(RSE::ENV_SSAO_QUALITY_MEDIUM); + BIND_ENUM_CONSTANT(RSE::ENV_SSAO_QUALITY_HIGH); + BIND_ENUM_CONSTANT(RSE::ENV_SSAO_QUALITY_ULTRA); - BIND_ENUM_CONSTANT(ENV_SSIL_QUALITY_VERY_LOW); - BIND_ENUM_CONSTANT(ENV_SSIL_QUALITY_LOW); - BIND_ENUM_CONSTANT(ENV_SSIL_QUALITY_MEDIUM); - BIND_ENUM_CONSTANT(ENV_SSIL_QUALITY_HIGH); - BIND_ENUM_CONSTANT(ENV_SSIL_QUALITY_ULTRA); + BIND_ENUM_CONSTANT(RSE::ENV_SSIL_QUALITY_VERY_LOW); + BIND_ENUM_CONSTANT(RSE::ENV_SSIL_QUALITY_LOW); + BIND_ENUM_CONSTANT(RSE::ENV_SSIL_QUALITY_MEDIUM); + BIND_ENUM_CONSTANT(RSE::ENV_SSIL_QUALITY_HIGH); + BIND_ENUM_CONSTANT(RSE::ENV_SSIL_QUALITY_ULTRA); - BIND_ENUM_CONSTANT(ENV_SDFGI_Y_SCALE_50_PERCENT); - BIND_ENUM_CONSTANT(ENV_SDFGI_Y_SCALE_75_PERCENT); - BIND_ENUM_CONSTANT(ENV_SDFGI_Y_SCALE_100_PERCENT); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_Y_SCALE_50_PERCENT); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_Y_SCALE_75_PERCENT); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_Y_SCALE_100_PERCENT); - BIND_ENUM_CONSTANT(ENV_SDFGI_RAY_COUNT_4); - BIND_ENUM_CONSTANT(ENV_SDFGI_RAY_COUNT_8); - BIND_ENUM_CONSTANT(ENV_SDFGI_RAY_COUNT_16); - BIND_ENUM_CONSTANT(ENV_SDFGI_RAY_COUNT_32); - BIND_ENUM_CONSTANT(ENV_SDFGI_RAY_COUNT_64); - BIND_ENUM_CONSTANT(ENV_SDFGI_RAY_COUNT_96); - BIND_ENUM_CONSTANT(ENV_SDFGI_RAY_COUNT_128); - BIND_ENUM_CONSTANT(ENV_SDFGI_RAY_COUNT_MAX); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_RAY_COUNT_4); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_RAY_COUNT_8); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_RAY_COUNT_16); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_RAY_COUNT_32); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_RAY_COUNT_64); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_RAY_COUNT_96); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_RAY_COUNT_128); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_RAY_COUNT_MAX); - BIND_ENUM_CONSTANT(ENV_SDFGI_CONVERGE_IN_5_FRAMES); - BIND_ENUM_CONSTANT(ENV_SDFGI_CONVERGE_IN_10_FRAMES); - BIND_ENUM_CONSTANT(ENV_SDFGI_CONVERGE_IN_15_FRAMES); - BIND_ENUM_CONSTANT(ENV_SDFGI_CONVERGE_IN_20_FRAMES); - BIND_ENUM_CONSTANT(ENV_SDFGI_CONVERGE_IN_25_FRAMES); - BIND_ENUM_CONSTANT(ENV_SDFGI_CONVERGE_IN_30_FRAMES); - BIND_ENUM_CONSTANT(ENV_SDFGI_CONVERGE_MAX); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_CONVERGE_IN_5_FRAMES); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_CONVERGE_IN_10_FRAMES); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_CONVERGE_IN_15_FRAMES); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_CONVERGE_IN_20_FRAMES); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_CONVERGE_IN_25_FRAMES); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_CONVERGE_IN_30_FRAMES); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_CONVERGE_MAX); - BIND_ENUM_CONSTANT(ENV_SDFGI_UPDATE_LIGHT_IN_1_FRAME); - BIND_ENUM_CONSTANT(ENV_SDFGI_UPDATE_LIGHT_IN_2_FRAMES); - BIND_ENUM_CONSTANT(ENV_SDFGI_UPDATE_LIGHT_IN_4_FRAMES); - BIND_ENUM_CONSTANT(ENV_SDFGI_UPDATE_LIGHT_IN_8_FRAMES); - BIND_ENUM_CONSTANT(ENV_SDFGI_UPDATE_LIGHT_IN_16_FRAMES); - BIND_ENUM_CONSTANT(ENV_SDFGI_UPDATE_LIGHT_MAX); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_UPDATE_LIGHT_IN_1_FRAME); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_UPDATE_LIGHT_IN_2_FRAMES); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_UPDATE_LIGHT_IN_4_FRAMES); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_UPDATE_LIGHT_IN_8_FRAMES); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_UPDATE_LIGHT_IN_16_FRAMES); + BIND_ENUM_CONSTANT(RSE::ENV_SDFGI_UPDATE_LIGHT_MAX); - BIND_ENUM_CONSTANT(SUB_SURFACE_SCATTERING_QUALITY_DISABLED); - BIND_ENUM_CONSTANT(SUB_SURFACE_SCATTERING_QUALITY_LOW); - BIND_ENUM_CONSTANT(SUB_SURFACE_SCATTERING_QUALITY_MEDIUM); - BIND_ENUM_CONSTANT(SUB_SURFACE_SCATTERING_QUALITY_HIGH); + BIND_ENUM_CONSTANT(RSE::SUB_SURFACE_SCATTERING_QUALITY_DISABLED); + BIND_ENUM_CONSTANT(RSE::SUB_SURFACE_SCATTERING_QUALITY_LOW); + BIND_ENUM_CONSTANT(RSE::SUB_SURFACE_SCATTERING_QUALITY_MEDIUM); + BIND_ENUM_CONSTANT(RSE::SUB_SURFACE_SCATTERING_QUALITY_HIGH); /* CAMERA EFFECTS */ @@ -3235,14 +3236,14 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("camera_attributes_set_exposure", "camera_attributes", "multiplier", "normalization"), &RenderingServer::camera_attributes_set_exposure); ClassDB::bind_method(D_METHOD("camera_attributes_set_auto_exposure", "camera_attributes", "enable", "min_sensitivity", "max_sensitivity", "speed", "scale"), &RenderingServer::camera_attributes_set_auto_exposure); - BIND_ENUM_CONSTANT(DOF_BOKEH_BOX); - BIND_ENUM_CONSTANT(DOF_BOKEH_HEXAGON); - BIND_ENUM_CONSTANT(DOF_BOKEH_CIRCLE); + BIND_ENUM_CONSTANT(RSE::DOF_BOKEH_BOX); + BIND_ENUM_CONSTANT(RSE::DOF_BOKEH_HEXAGON); + BIND_ENUM_CONSTANT(RSE::DOF_BOKEH_CIRCLE); - BIND_ENUM_CONSTANT(DOF_BLUR_QUALITY_VERY_LOW); - BIND_ENUM_CONSTANT(DOF_BLUR_QUALITY_LOW); - BIND_ENUM_CONSTANT(DOF_BLUR_QUALITY_MEDIUM); - BIND_ENUM_CONSTANT(DOF_BLUR_QUALITY_HIGH); + BIND_ENUM_CONSTANT(RSE::DOF_BLUR_QUALITY_VERY_LOW); + BIND_ENUM_CONSTANT(RSE::DOF_BLUR_QUALITY_LOW); + BIND_ENUM_CONSTANT(RSE::DOF_BLUR_QUALITY_MEDIUM); + BIND_ENUM_CONSTANT(RSE::DOF_BLUR_QUALITY_HIGH); /* SCENARIO */ @@ -3293,46 +3294,46 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("instances_cull_ray", "from", "to", "scenario"), &RenderingServer::_instances_cull_ray_bind, DEFVAL(RID())); ClassDB::bind_method(D_METHOD("instances_cull_convex", "convex", "scenario"), &RenderingServer::_instances_cull_convex_bind, DEFVAL(RID())); - BIND_ENUM_CONSTANT(INSTANCE_NONE); - BIND_ENUM_CONSTANT(INSTANCE_MESH); - BIND_ENUM_CONSTANT(INSTANCE_MULTIMESH); - BIND_ENUM_CONSTANT(INSTANCE_PARTICLES); - BIND_ENUM_CONSTANT(INSTANCE_PARTICLES_COLLISION); - BIND_ENUM_CONSTANT(INSTANCE_LIGHT); - BIND_ENUM_CONSTANT(INSTANCE_REFLECTION_PROBE); - BIND_ENUM_CONSTANT(INSTANCE_DECAL); - BIND_ENUM_CONSTANT(INSTANCE_VOXEL_GI); - BIND_ENUM_CONSTANT(INSTANCE_LIGHTMAP); - BIND_ENUM_CONSTANT(INSTANCE_OCCLUDER); - BIND_ENUM_CONSTANT(INSTANCE_VISIBLITY_NOTIFIER); - BIND_ENUM_CONSTANT(INSTANCE_FOG_VOLUME); - BIND_ENUM_CONSTANT(INSTANCE_MAX); + BIND_ENUM_CONSTANT(RSE::INSTANCE_NONE); + BIND_ENUM_CONSTANT(RSE::INSTANCE_MESH); + BIND_ENUM_CONSTANT(RSE::INSTANCE_MULTIMESH); + BIND_ENUM_CONSTANT(RSE::INSTANCE_PARTICLES); + BIND_ENUM_CONSTANT(RSE::INSTANCE_PARTICLES_COLLISION); + BIND_ENUM_CONSTANT(RSE::INSTANCE_LIGHT); + BIND_ENUM_CONSTANT(RSE::INSTANCE_REFLECTION_PROBE); + BIND_ENUM_CONSTANT(RSE::INSTANCE_DECAL); + BIND_ENUM_CONSTANT(RSE::INSTANCE_VOXEL_GI); + BIND_ENUM_CONSTANT(RSE::INSTANCE_LIGHTMAP); + BIND_ENUM_CONSTANT(RSE::INSTANCE_OCCLUDER); + BIND_ENUM_CONSTANT(RSE::INSTANCE_VISIBLITY_NOTIFIER); + BIND_ENUM_CONSTANT(RSE::INSTANCE_FOG_VOLUME); + BIND_ENUM_CONSTANT(RSE::INSTANCE_MAX); - BIND_ENUM_CONSTANT(INSTANCE_GEOMETRY_MASK); + BIND_ENUM_CONSTANT(RSE::INSTANCE_GEOMETRY_MASK); - BIND_ENUM_CONSTANT(INSTANCE_FLAG_USE_BAKED_LIGHT); - BIND_ENUM_CONSTANT(INSTANCE_FLAG_USE_DYNAMIC_GI); - BIND_ENUM_CONSTANT(INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE); - BIND_ENUM_CONSTANT(INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING); - BIND_ENUM_CONSTANT(INSTANCE_FLAG_MAX); + BIND_ENUM_CONSTANT(RSE::INSTANCE_FLAG_USE_BAKED_LIGHT); + BIND_ENUM_CONSTANT(RSE::INSTANCE_FLAG_USE_DYNAMIC_GI); + BIND_ENUM_CONSTANT(RSE::INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE); + BIND_ENUM_CONSTANT(RSE::INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING); + BIND_ENUM_CONSTANT(RSE::INSTANCE_FLAG_MAX); - BIND_ENUM_CONSTANT(SHADOW_CASTING_SETTING_OFF); - BIND_ENUM_CONSTANT(SHADOW_CASTING_SETTING_ON); - BIND_ENUM_CONSTANT(SHADOW_CASTING_SETTING_DOUBLE_SIDED); - BIND_ENUM_CONSTANT(SHADOW_CASTING_SETTING_SHADOWS_ONLY); + BIND_ENUM_CONSTANT(RSE::SHADOW_CASTING_SETTING_OFF); + BIND_ENUM_CONSTANT(RSE::SHADOW_CASTING_SETTING_ON); + BIND_ENUM_CONSTANT(RSE::SHADOW_CASTING_SETTING_DOUBLE_SIDED); + BIND_ENUM_CONSTANT(RSE::SHADOW_CASTING_SETTING_SHADOWS_ONLY); - BIND_ENUM_CONSTANT(VISIBILITY_RANGE_FADE_DISABLED); - BIND_ENUM_CONSTANT(VISIBILITY_RANGE_FADE_SELF); - BIND_ENUM_CONSTANT(VISIBILITY_RANGE_FADE_DEPENDENCIES); + BIND_ENUM_CONSTANT(RSE::VISIBILITY_RANGE_FADE_DISABLED); + BIND_ENUM_CONSTANT(RSE::VISIBILITY_RANGE_FADE_SELF); + BIND_ENUM_CONSTANT(RSE::VISIBILITY_RANGE_FADE_DEPENDENCIES); /* Bake 3D Object */ ClassDB::bind_method(D_METHOD("bake_render_uv2", "base", "material_overrides", "image_size"), &RenderingServer::bake_render_uv2); - BIND_ENUM_CONSTANT(BAKE_CHANNEL_ALBEDO_ALPHA); - BIND_ENUM_CONSTANT(BAKE_CHANNEL_NORMAL); - BIND_ENUM_CONSTANT(BAKE_CHANNEL_ORM); - BIND_ENUM_CONSTANT(BAKE_CHANNEL_EMISSION); + BIND_ENUM_CONSTANT(RSE::BAKE_CHANNEL_ALBEDO_ALPHA); + BIND_ENUM_CONSTANT(RSE::BAKE_CHANNEL_NORMAL); + BIND_ENUM_CONSTANT(RSE::BAKE_CHANNEL_ORM); + BIND_ENUM_CONSTANT(RSE::BAKE_CHANNEL_EMISSION); /* CANVAS (2D) */ @@ -3351,9 +3352,9 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("canvas_texture_set_texture_filter", "canvas_texture", "filter"), &RenderingServer::canvas_texture_set_texture_filter); ClassDB::bind_method(D_METHOD("canvas_texture_set_texture_repeat", "canvas_texture", "repeat"), &RenderingServer::canvas_texture_set_texture_repeat); - BIND_ENUM_CONSTANT(CANVAS_TEXTURE_CHANNEL_DIFFUSE); - BIND_ENUM_CONSTANT(CANVAS_TEXTURE_CHANNEL_NORMAL); - BIND_ENUM_CONSTANT(CANVAS_TEXTURE_CHANNEL_SPECULAR); + BIND_ENUM_CONSTANT(RSE::CANVAS_TEXTURE_CHANNEL_DIFFUSE); + BIND_ENUM_CONSTANT(RSE::CANVAS_TEXTURE_CHANNEL_NORMAL); + BIND_ENUM_CONSTANT(RSE::CANVAS_TEXTURE_CHANNEL_SPECULAR); /* CANVAS ITEM */ @@ -3387,7 +3388,7 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("canvas_item_add_msdf_texture_rect_region", "item", "rect", "texture", "src_rect", "modulate", "outline_size", "px_range", "scale"), &RenderingServer::canvas_item_add_msdf_texture_rect_region, DEFVAL(Color(1, 1, 1)), DEFVAL(0), DEFVAL(1.0), DEFVAL(1.0)); ClassDB::bind_method(D_METHOD("canvas_item_add_lcd_texture_rect_region", "item", "rect", "texture", "src_rect", "modulate"), &RenderingServer::canvas_item_add_lcd_texture_rect_region); ClassDB::bind_method(D_METHOD("canvas_item_add_texture_rect_region", "item", "rect", "texture", "src_rect", "modulate", "transpose", "clip_uv"), &RenderingServer::canvas_item_add_texture_rect_region, DEFVAL(Color(1, 1, 1)), DEFVAL(false), DEFVAL(true)); - ClassDB::bind_method(D_METHOD("canvas_item_add_nine_patch", "item", "rect", "source", "texture", "topleft", "bottomright", "x_axis_mode", "y_axis_mode", "draw_center", "modulate"), &RenderingServer::canvas_item_add_nine_patch, DEFVAL(NINE_PATCH_STRETCH), DEFVAL(NINE_PATCH_STRETCH), DEFVAL(true), DEFVAL(Color(1, 1, 1))); + ClassDB::bind_method(D_METHOD("canvas_item_add_nine_patch", "item", "rect", "source", "texture", "topleft", "bottomright", "x_axis_mode", "y_axis_mode", "draw_center", "modulate"), &RenderingServer::canvas_item_add_nine_patch, DEFVAL(RSE::NINE_PATCH_STRETCH), DEFVAL(RSE::NINE_PATCH_STRETCH), DEFVAL(true), DEFVAL(Color(1, 1, 1))); ClassDB::bind_method(D_METHOD("canvas_item_add_primitive", "item", "points", "colors", "uvs", "texture"), &RenderingServer::canvas_item_add_primitive); ClassDB::bind_method(D_METHOD("canvas_item_add_polygon", "item", "points", "colors", "uvs", "texture"), &RenderingServer::canvas_item_add_polygon, DEFVAL(Vector()), DEFVAL(RID())); ClassDB::bind_method(D_METHOD("canvas_item_add_triangle_array", "item", "indices", "points", "colors", "uvs", "bones", "weights", "texture", "count"), &RenderingServer::canvas_item_add_triangle_array, DEFVAL(Vector()), DEFVAL(Vector()), DEFVAL(Vector()), DEFVAL(RID()), DEFVAL(-1)); @@ -3418,29 +3419,29 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("debug_canvas_item_get_rect", "item"), &RenderingServer::debug_canvas_item_get_rect); - BIND_ENUM_CONSTANT(NINE_PATCH_STRETCH); - BIND_ENUM_CONSTANT(NINE_PATCH_TILE); - BIND_ENUM_CONSTANT(NINE_PATCH_TILE_FIT); + BIND_ENUM_CONSTANT(RSE::NINE_PATCH_STRETCH); + BIND_ENUM_CONSTANT(RSE::NINE_PATCH_TILE); + BIND_ENUM_CONSTANT(RSE::NINE_PATCH_TILE_FIT); - BIND_ENUM_CONSTANT(CANVAS_ITEM_TEXTURE_FILTER_DEFAULT); - BIND_ENUM_CONSTANT(CANVAS_ITEM_TEXTURE_FILTER_NEAREST); - BIND_ENUM_CONSTANT(CANVAS_ITEM_TEXTURE_FILTER_LINEAR); - BIND_ENUM_CONSTANT(CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS); - BIND_ENUM_CONSTANT(CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS); - BIND_ENUM_CONSTANT(CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC); - BIND_ENUM_CONSTANT(CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC); - BIND_ENUM_CONSTANT(CANVAS_ITEM_TEXTURE_FILTER_MAX); + BIND_ENUM_CONSTANT(RSE::CANVAS_ITEM_TEXTURE_FILTER_DEFAULT); + BIND_ENUM_CONSTANT(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST); + BIND_ENUM_CONSTANT(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR); + BIND_ENUM_CONSTANT(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS); + BIND_ENUM_CONSTANT(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS); + BIND_ENUM_CONSTANT(RSE::CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC); + BIND_ENUM_CONSTANT(RSE::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC); + BIND_ENUM_CONSTANT(RSE::CANVAS_ITEM_TEXTURE_FILTER_MAX); - BIND_ENUM_CONSTANT(CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT); - BIND_ENUM_CONSTANT(CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); - BIND_ENUM_CONSTANT(CANVAS_ITEM_TEXTURE_REPEAT_ENABLED); - BIND_ENUM_CONSTANT(CANVAS_ITEM_TEXTURE_REPEAT_MIRROR); - BIND_ENUM_CONSTANT(CANVAS_ITEM_TEXTURE_REPEAT_MAX); + BIND_ENUM_CONSTANT(RSE::CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT); + BIND_ENUM_CONSTANT(RSE::CANVAS_ITEM_TEXTURE_REPEAT_DISABLED); + BIND_ENUM_CONSTANT(RSE::CANVAS_ITEM_TEXTURE_REPEAT_ENABLED); + BIND_ENUM_CONSTANT(RSE::CANVAS_ITEM_TEXTURE_REPEAT_MIRROR); + BIND_ENUM_CONSTANT(RSE::CANVAS_ITEM_TEXTURE_REPEAT_MAX); - BIND_ENUM_CONSTANT(CANVAS_GROUP_MODE_DISABLED); - BIND_ENUM_CONSTANT(CANVAS_GROUP_MODE_CLIP_ONLY); - BIND_ENUM_CONSTANT(CANVAS_GROUP_MODE_CLIP_AND_DRAW); - BIND_ENUM_CONSTANT(CANVAS_GROUP_MODE_TRANSPARENT); + BIND_ENUM_CONSTANT(RSE::CANVAS_GROUP_MODE_DISABLED); + BIND_ENUM_CONSTANT(RSE::CANVAS_GROUP_MODE_CLIP_ONLY); + BIND_ENUM_CONSTANT(RSE::CANVAS_GROUP_MODE_CLIP_AND_DRAW); + BIND_ENUM_CONSTANT(RSE::CANVAS_GROUP_MODE_TRANSPARENT); /* CANVAS LIGHT */ @@ -3468,17 +3469,17 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("canvas_light_reset_physics_interpolation", "light"), &RenderingServer::canvas_light_reset_physics_interpolation); ClassDB::bind_method(D_METHOD("canvas_light_transform_physics_interpolation", "light", "transform"), &RenderingServer::canvas_light_transform_physics_interpolation); - BIND_ENUM_CONSTANT(CANVAS_LIGHT_MODE_POINT); - BIND_ENUM_CONSTANT(CANVAS_LIGHT_MODE_DIRECTIONAL); + BIND_ENUM_CONSTANT(RSE::CANVAS_LIGHT_MODE_POINT); + BIND_ENUM_CONSTANT(RSE::CANVAS_LIGHT_MODE_DIRECTIONAL); - BIND_ENUM_CONSTANT(CANVAS_LIGHT_BLEND_MODE_ADD); - BIND_ENUM_CONSTANT(CANVAS_LIGHT_BLEND_MODE_SUB); - BIND_ENUM_CONSTANT(CANVAS_LIGHT_BLEND_MODE_MIX); + BIND_ENUM_CONSTANT(RSE::CANVAS_LIGHT_BLEND_MODE_ADD); + BIND_ENUM_CONSTANT(RSE::CANVAS_LIGHT_BLEND_MODE_SUB); + BIND_ENUM_CONSTANT(RSE::CANVAS_LIGHT_BLEND_MODE_MIX); - BIND_ENUM_CONSTANT(CANVAS_LIGHT_FILTER_NONE); - BIND_ENUM_CONSTANT(CANVAS_LIGHT_FILTER_PCF5); - BIND_ENUM_CONSTANT(CANVAS_LIGHT_FILTER_PCF13); - BIND_ENUM_CONSTANT(CANVAS_LIGHT_FILTER_MAX); + BIND_ENUM_CONSTANT(RSE::CANVAS_LIGHT_FILTER_NONE); + BIND_ENUM_CONSTANT(RSE::CANVAS_LIGHT_FILTER_PCF5); + BIND_ENUM_CONSTANT(RSE::CANVAS_LIGHT_FILTER_PCF13); + BIND_ENUM_CONSTANT(RSE::CANVAS_LIGHT_FILTER_MAX); /* CANVAS OCCLUDER */ @@ -3501,9 +3502,9 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("canvas_set_shadow_texture_size", "size"), &RenderingServer::canvas_set_shadow_texture_size); - BIND_ENUM_CONSTANT(CANVAS_OCCLUDER_POLYGON_CULL_DISABLED); - BIND_ENUM_CONSTANT(CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE); - BIND_ENUM_CONSTANT(CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE); + BIND_ENUM_CONSTANT(RSE::CANVAS_OCCLUDER_POLYGON_CULL_DISABLED); + BIND_ENUM_CONSTANT(RSE::CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE); + BIND_ENUM_CONSTANT(RSE::CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE); /* GLOBAL SHADER UNIFORMS */ @@ -3515,36 +3516,36 @@ void RenderingServer::_bind_methods() { ClassDB::bind_method(D_METHOD("global_shader_parameter_get", "name"), &RenderingServer::global_shader_parameter_get); ClassDB::bind_method(D_METHOD("global_shader_parameter_get_type", "name"), &RenderingServer::global_shader_parameter_get_type); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_BOOL); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_BVEC2); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_BVEC3); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_BVEC4); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_INT); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_IVEC2); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_IVEC3); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_IVEC4); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_RECT2I); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_UINT); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_UVEC2); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_UVEC3); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_UVEC4); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_FLOAT); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_VEC2); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_VEC3); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_VEC4); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_COLOR); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_RECT2); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_MAT2); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_MAT3); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_MAT4); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_TRANSFORM_2D); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_TRANSFORM); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_SAMPLER2D); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_SAMPLER2DARRAY); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_SAMPLER3D); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_SAMPLERCUBE); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_SAMPLEREXT); - BIND_ENUM_CONSTANT(GLOBAL_VAR_TYPE_MAX); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_BOOL); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_BVEC2); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_BVEC3); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_BVEC4); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_INT); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_IVEC2); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_IVEC3); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_IVEC4); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_RECT2I); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_UINT); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_UVEC2); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_UVEC3); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_UVEC4); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_FLOAT); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_VEC2); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_VEC3); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_VEC4); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_COLOR); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_RECT2); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_MAT2); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_MAT3); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_MAT4); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_TRANSFORM_2D); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_TRANSFORM); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_SAMPLER2D); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_SAMPLER2DARRAY); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_SAMPLER3D); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_SAMPLERCUBE); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_SAMPLEREXT); + BIND_ENUM_CONSTANT(RSE::GLOBAL_VAR_TYPE_MAX); /* Free */ ClassDB::bind_method(D_METHOD("free_rid", "rid"), &RenderingServer::free_rid); @@ -3585,31 +3586,31 @@ void RenderingServer::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "render_loop_enabled"), "set_render_loop_enabled", "is_render_loop_enabled"); - BIND_ENUM_CONSTANT(RENDERING_INFO_TOTAL_OBJECTS_IN_FRAME); - BIND_ENUM_CONSTANT(RENDERING_INFO_TOTAL_PRIMITIVES_IN_FRAME); - BIND_ENUM_CONSTANT(RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME); - BIND_ENUM_CONSTANT(RENDERING_INFO_TEXTURE_MEM_USED); - BIND_ENUM_CONSTANT(RENDERING_INFO_BUFFER_MEM_USED); - BIND_ENUM_CONSTANT(RENDERING_INFO_VIDEO_MEM_USED); - BIND_ENUM_CONSTANT(RENDERING_INFO_PIPELINE_COMPILATIONS_CANVAS); - BIND_ENUM_CONSTANT(RENDERING_INFO_PIPELINE_COMPILATIONS_MESH); - BIND_ENUM_CONSTANT(RENDERING_INFO_PIPELINE_COMPILATIONS_SURFACE); - BIND_ENUM_CONSTANT(RENDERING_INFO_PIPELINE_COMPILATIONS_DRAW); - BIND_ENUM_CONSTANT(RENDERING_INFO_PIPELINE_COMPILATIONS_SPECIALIZATION); + BIND_ENUM_CONSTANT(RSE::RENDERING_INFO_TOTAL_OBJECTS_IN_FRAME); + BIND_ENUM_CONSTANT(RSE::RENDERING_INFO_TOTAL_PRIMITIVES_IN_FRAME); + BIND_ENUM_CONSTANT(RSE::RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME); + BIND_ENUM_CONSTANT(RSE::RENDERING_INFO_TEXTURE_MEM_USED); + BIND_ENUM_CONSTANT(RSE::RENDERING_INFO_BUFFER_MEM_USED); + BIND_ENUM_CONSTANT(RSE::RENDERING_INFO_VIDEO_MEM_USED); + BIND_ENUM_CONSTANT(RSE::RENDERING_INFO_PIPELINE_COMPILATIONS_CANVAS); + BIND_ENUM_CONSTANT(RSE::RENDERING_INFO_PIPELINE_COMPILATIONS_MESH); + BIND_ENUM_CONSTANT(RSE::RENDERING_INFO_PIPELINE_COMPILATIONS_SURFACE); + BIND_ENUM_CONSTANT(RSE::RENDERING_INFO_PIPELINE_COMPILATIONS_DRAW); + BIND_ENUM_CONSTANT(RSE::RENDERING_INFO_PIPELINE_COMPILATIONS_SPECIALIZATION); - BIND_ENUM_CONSTANT(PIPELINE_SOURCE_CANVAS); - BIND_ENUM_CONSTANT(PIPELINE_SOURCE_MESH); - BIND_ENUM_CONSTANT(PIPELINE_SOURCE_SURFACE); - BIND_ENUM_CONSTANT(PIPELINE_SOURCE_DRAW); - BIND_ENUM_CONSTANT(PIPELINE_SOURCE_SPECIALIZATION); - BIND_ENUM_CONSTANT(PIPELINE_SOURCE_MAX); + BIND_ENUM_CONSTANT(RSE::PIPELINE_SOURCE_CANVAS); + BIND_ENUM_CONSTANT(RSE::PIPELINE_SOURCE_MESH); + BIND_ENUM_CONSTANT(RSE::PIPELINE_SOURCE_SURFACE); + BIND_ENUM_CONSTANT(RSE::PIPELINE_SOURCE_DRAW); + BIND_ENUM_CONSTANT(RSE::PIPELINE_SOURCE_SPECIALIZATION); + BIND_ENUM_CONSTANT(RSE::PIPELINE_SOURCE_MAX); - BIND_ENUM_CONSTANT(SPLASH_STRETCH_MODE_DISABLED); - BIND_ENUM_CONSTANT(SPLASH_STRETCH_MODE_KEEP); - BIND_ENUM_CONSTANT(SPLASH_STRETCH_MODE_KEEP_WIDTH); - BIND_ENUM_CONSTANT(SPLASH_STRETCH_MODE_KEEP_HEIGHT); - BIND_ENUM_CONSTANT(SPLASH_STRETCH_MODE_COVER); - BIND_ENUM_CONSTANT(SPLASH_STRETCH_MODE_IGNORE); + BIND_ENUM_CONSTANT(RSE::SPLASH_STRETCH_MODE_DISABLED); + BIND_ENUM_CONSTANT(RSE::SPLASH_STRETCH_MODE_KEEP); + BIND_ENUM_CONSTANT(RSE::SPLASH_STRETCH_MODE_KEEP_WIDTH); + BIND_ENUM_CONSTANT(RSE::SPLASH_STRETCH_MODE_KEEP_HEIGHT); + BIND_ENUM_CONSTANT(RSE::SPLASH_STRETCH_MODE_COVER); + BIND_ENUM_CONSTANT(RSE::SPLASH_STRETCH_MODE_IGNORE); ADD_SIGNAL(MethodInfo("frame_pre_draw")); ADD_SIGNAL(MethodInfo("frame_post_draw")); @@ -3625,8 +3626,8 @@ void RenderingServer::_bind_methods() { #ifndef DISABLE_DEPRECATED ClassDB::bind_method(D_METHOD("has_feature", "feature"), &RenderingServer::has_feature); - BIND_ENUM_CONSTANT(FEATURE_SHADERS); - BIND_ENUM_CONSTANT(FEATURE_MULTITHREADED); + BIND_ENUM_CONSTANT(RSE::FEATURE_SHADERS); + BIND_ENUM_CONSTANT(RSE::FEATURE_MULTITHREADED); #endif } @@ -3648,10 +3649,10 @@ void RenderingServer::mesh_add_surface_from_mesh_data(RID p_mesh, const Geometry } Array d; - d.resize(RS::ARRAY_MAX); - d[ARRAY_VERTEX] = vertices; - d[ARRAY_NORMAL] = normals; - mesh_add_surface_from_arrays(p_mesh, PRIMITIVE_TRIANGLES, d); + d.resize(RSE::ARRAY_MAX); + d[RSE::ARRAY_VERTEX] = vertices; + d[RSE::ARRAY_NORMAL] = normals; + mesh_add_surface_from_arrays(p_mesh, RSE::PRIMITIVE_TRIANGLES, d); } void RenderingServer::mesh_add_surface_from_planes(RID p_mesh, const Vector &p_planes) { @@ -3661,7 +3662,7 @@ void RenderingServer::mesh_add_surface_from_planes(RID p_mesh, const Vector &p_image, const Color &p_color, bool p_scale, bool p_use_filter) { - SplashStretchMode stretch_mode = map_scaling_option_to_stretch_mode(p_scale); + RSE::SplashStretchMode stretch_mode = map_scaling_option_to_stretch_mode(p_scale); set_boot_image_with_stretch(p_image, p_color, stretch_mode, p_use_filter); } #endif @@ -3815,8 +3816,8 @@ void RenderingServer::init() { GLOBAL_DEF(PropertyInfo(Variant::FLOAT, "rendering/scaling_3d/fsr_sharpness", PROPERTY_HINT_RANGE, "0,2,0.1"), 0.2f); GLOBAL_DEF(PropertyInfo(Variant::FLOAT, "rendering/textures/default_filters/texture_mipmap_bias", PROPERTY_HINT_RANGE, "-2,2,0.001"), 0.0f); - GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/textures/decals/filter", PROPERTY_HINT_ENUM, "Nearest (Fast),Linear (Fast),Nearest Mipmap (Fast),Linear Mipmap (Fast),Nearest Mipmap Anisotropic (Average),Linear Mipmap Anisotropic (Average)"), DECAL_FILTER_LINEAR_MIPMAPS); - GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/textures/light_projectors/filter", PROPERTY_HINT_ENUM, "Nearest (Fast),Linear (Fast),Nearest Mipmap (Fast),Linear Mipmap (Fast),Nearest Mipmap Anisotropic (Average),Linear Mipmap Anisotropic (Average)"), LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS); + GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/textures/decals/filter", PROPERTY_HINT_ENUM, "Nearest (Fast),Linear (Fast),Nearest Mipmap (Fast),Linear Mipmap (Fast),Nearest Mipmap Anisotropic (Average),Linear Mipmap Anisotropic (Average)"), RSE::DECAL_FILTER_LINEAR_MIPMAPS); + GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/textures/light_projectors/filter", PROPERTY_HINT_ENUM, "Nearest (Fast),Linear (Fast),Nearest Mipmap (Fast),Linear Mipmap (Fast),Nearest Mipmap Anisotropic (Average),Linear Mipmap Anisotropic (Average)"), RSE::LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS); GLOBAL_DEF_RST(PropertyInfo(Variant::INT, "rendering/occlusion_culling/occlusion_rays_per_thread", PROPERTY_HINT_RANGE, "1,2048,1,or_greater"), 512); diff --git a/servers/rendering/rendering_server.h b/servers/rendering/rendering_server.h index 6f14687c96..0909defacf 100644 --- a/servers/rendering/rendering_server.h +++ b/servers/rendering/rendering_server.h @@ -31,12 +31,12 @@ #pragma once #include "core/io/image.h" -#include "core/math/transform_2d.h" #include "core/templates/rid.h" #include "core/variant/typed_array.h" #include "core/variant/variant.h" #include "servers/display/display_server.h" #include "servers/rendering/rendering_device_enums.h" +#include "servers/rendering/rendering_server_enums.h" namespace Geometry3D { struct MeshData; @@ -102,57 +102,16 @@ public: static RenderingServer *get_singleton(); static RenderingServer *create(); - enum { - NO_INDEX_ARRAY = -1, - ARRAY_WEIGHTS_SIZE = 4, - CANVAS_ITEM_Z_MIN = -4096, - CANVAS_ITEM_Z_MAX = 4096, - CANVAS_LAYER_MIN = -2147483648, - CANVAS_LAYER_MAX = 2147483647, - MAX_GLOW_LEVELS = 7, - MAX_CURSORS = 8, - MAX_2D_DIRECTIONAL_LIGHTS = 8, - MAX_MESH_SURFACES = 256 - }; - /* TEXTURE API */ - enum TextureType { - TEXTURE_TYPE_2D, - TEXTURE_TYPE_LAYERED, - TEXTURE_TYPE_3D, - }; - - enum TextureLayeredType { - TEXTURE_LAYERED_2D_ARRAY, - TEXTURE_LAYERED_CUBEMAP, - TEXTURE_LAYERED_CUBEMAP_ARRAY, - }; - - enum CubeMapLayer { - CUBEMAP_LAYER_LEFT, - CUBEMAP_LAYER_RIGHT, - CUBEMAP_LAYER_BOTTOM, - CUBEMAP_LAYER_TOP, - CUBEMAP_LAYER_FRONT, - CUBEMAP_LAYER_BACK - }; - - enum TextureDrawableFormat { - TEXTURE_DRAWABLE_FORMAT_RGBA8, - TEXTURE_DRAWABLE_FORMAT_RGBA8_SRGB, // Use this if you want to read the result from both 2D (non-hdr) and 3D. - TEXTURE_DRAWABLE_FORMAT_RGBAH, - TEXTURE_DRAWABLE_FORMAT_RGBAF, - }; - virtual RID texture_2d_create(const Ref &p_image) = 0; - virtual RID texture_2d_layered_create(const Vector> &p_layers, TextureLayeredType p_layered_type) = 0; + virtual RID texture_2d_layered_create(const Vector> &p_layers, RSE::TextureLayeredType p_layered_type) = 0; virtual RID texture_3d_create(Image::Format, int p_width, int p_height, int p_depth, bool p_mipmaps, const Vector> &p_data) = 0; //all slices, then all the mipmaps, must be coherent virtual RID texture_external_create(int p_width, int p_height, uint64_t p_external_buffer = 0) = 0; virtual RID texture_proxy_create(RID p_base) = 0; - virtual RID texture_drawable_create(int p_width, int p_height, TextureDrawableFormat p_format, const Color &p_color = Color(1, 1, 1, 1), bool p_with_mipmaps = false) = 0; + virtual RID texture_drawable_create(int p_width, int p_height, RSE::TextureDrawableFormat p_format, const Color &p_color = Color(1, 1, 1, 1), bool p_with_mipmaps = false) = 0; - virtual RID texture_create_from_native_handle(TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers = 1, TextureLayeredType p_layered_type = TEXTURE_LAYERED_2D_ARRAY) = 0; + virtual RID texture_create_from_native_handle(RSE::TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers = 1, RSE::TextureLayeredType p_layered_type = RSE::TEXTURE_LAYERED_2D_ARRAY) = 0; virtual void texture_2d_update(RID p_texture, const Ref &p_image, int p_layer = 0) = 0; virtual void texture_3d_update(RID p_texture, const Vector> &p_data) = 0; @@ -163,7 +122,7 @@ public: // These two APIs can be used together or in combination with the others. virtual RID texture_2d_placeholder_create() = 0; - virtual RID texture_2d_layered_placeholder_create(TextureLayeredType p_layered_type) = 0; + virtual RID texture_2d_layered_placeholder_create(RSE::TextureLayeredType p_layered_type) = 0; virtual RID texture_3d_placeholder_create() = 0; virtual Ref texture_2d_get(RID p_texture) const = 0; @@ -186,15 +145,7 @@ public: virtual void texture_set_detect_3d_callback(RID p_texture, TextureDetectCallback p_callback, void *p_userdata) = 0; virtual void texture_set_detect_normal_callback(RID p_texture, TextureDetectCallback p_callback, void *p_userdata) = 0; - enum TextureDetectRoughnessChannel { - TEXTURE_DETECT_ROUGHNESS_R, - TEXTURE_DETECT_ROUGHNESS_G, - TEXTURE_DETECT_ROUGHNESS_B, - TEXTURE_DETECT_ROUGHNESS_A, - TEXTURE_DETECT_ROUGHNESS_GRAY, - }; - - typedef void (*TextureDetectRoughnessCallback)(void *, const String &, TextureDetectRoughnessChannel); + typedef void (*TextureDetectRoughnessCallback)(void *, const String &, RSE::TextureDetectRoughnessChannel); virtual void texture_set_detect_roughness_callback(RID p_texture, TextureDetectRoughnessCallback p_callback, void *p_userdata) = 0; struct TextureInfo { @@ -205,7 +156,7 @@ public: Image::Format format; int64_t bytes; String path; - TextureType type; + RSE::TextureType type; }; virtual void texture_debug_usage(List *r_info) = 0; @@ -213,39 +164,12 @@ public: virtual void texture_set_force_redraw_if_visible(RID p_texture, bool p_enable) = 0; - virtual RID texture_rd_create(const RID &p_rd_texture, const RenderingServer::TextureLayeredType p_layer_type = RenderingServer::TEXTURE_LAYERED_2D_ARRAY) = 0; + virtual RID texture_rd_create(const RID &p_rd_texture, const RSE::TextureLayeredType p_layer_type = RSE::TEXTURE_LAYERED_2D_ARRAY) = 0; virtual RID texture_get_rd_texture(RID p_texture, bool p_srgb = false) const = 0; virtual uint64_t texture_get_native_handle(RID p_texture, bool p_srgb = false) const = 0; - /* PIPELINES API */ - - enum PipelineSource { - PIPELINE_SOURCE_CANVAS, - PIPELINE_SOURCE_MESH, - PIPELINE_SOURCE_SURFACE, - PIPELINE_SOURCE_DRAW, - PIPELINE_SOURCE_SPECIALIZATION, - PIPELINE_SOURCE_MAX - }; - /* SHADER API */ - enum ShaderMode { - SHADER_SPATIAL, - SHADER_CANVAS_ITEM, - SHADER_PARTICLES, - SHADER_SKY, - SHADER_FOG, - SHADER_TEXTURE_BLIT, - SHADER_MAX - }; - - enum CullMode { - CULL_MODE_DISABLED, - CULL_MODE_FRONT, - CULL_MODE_BACK, - }; - virtual RID shader_create() = 0; virtual RID shader_create_from_code(const String &p_code, const String &p_path_hint = String()) = 0; @@ -273,11 +197,6 @@ public: /* COMMON MATERIAL API */ - enum { - MATERIAL_RENDER_PRIORITY_MIN = -128, - MATERIAL_RENDER_PRIORITY_MAX = 127, - }; - virtual RID material_create() = 0; virtual RID material_create_from_shader(RID p_next_pass, int p_render_priority, RID p_shader) = 0; @@ -294,100 +213,10 @@ public: /* MESH API */ - enum ArrayType { - ARRAY_VERTEX = 0, // RG32F (2D), RGB32F, RGBA16 (compressed) - ARRAY_NORMAL = 1, // RG16 - ARRAY_TANGENT = 2, // BA16 (with normal) or A16 (with vertex, when compressed) - ARRAY_COLOR = 3, // RGBA8 - ARRAY_TEX_UV = 4, // RG32F or RG16 - ARRAY_TEX_UV2 = 5, // RG32F or RG16 - ARRAY_CUSTOM0 = 6, // Depends on ArrayCustomFormat. - ARRAY_CUSTOM1 = 7, - ARRAY_CUSTOM2 = 8, - ARRAY_CUSTOM3 = 9, - ARRAY_BONES = 10, // RGBA16UI (x2 if 8 weights) - ARRAY_WEIGHTS = 11, // RGBA16UNORM (x2 if 8 weights) - ARRAY_INDEX = 12, // 16 or 32 bits depending on length > 0xFFFF. - ARRAY_MAX = 13 - }; - - enum { - ARRAY_CUSTOM_COUNT = ARRAY_BONES - ARRAY_CUSTOM0 - }; - - enum ArrayCustomFormat { - ARRAY_CUSTOM_RGBA8_UNORM, - ARRAY_CUSTOM_RGBA8_SNORM, - ARRAY_CUSTOM_RG_HALF, - ARRAY_CUSTOM_RGBA_HALF, - ARRAY_CUSTOM_R_FLOAT, - ARRAY_CUSTOM_RG_FLOAT, - ARRAY_CUSTOM_RGB_FLOAT, - ARRAY_CUSTOM_RGBA_FLOAT, - ARRAY_CUSTOM_MAX - }; - - enum ArrayFormat : uint64_t { - /* ARRAY FORMAT FLAGS */ - ARRAY_FORMAT_VERTEX = 1 << ARRAY_VERTEX, - ARRAY_FORMAT_NORMAL = 1 << ARRAY_NORMAL, - ARRAY_FORMAT_TANGENT = 1 << ARRAY_TANGENT, - ARRAY_FORMAT_COLOR = 1 << ARRAY_COLOR, - ARRAY_FORMAT_TEX_UV = 1 << ARRAY_TEX_UV, - ARRAY_FORMAT_TEX_UV2 = 1 << ARRAY_TEX_UV2, - ARRAY_FORMAT_CUSTOM0 = 1 << ARRAY_CUSTOM0, - ARRAY_FORMAT_CUSTOM1 = 1 << ARRAY_CUSTOM1, - ARRAY_FORMAT_CUSTOM2 = 1 << ARRAY_CUSTOM2, - ARRAY_FORMAT_CUSTOM3 = 1 << ARRAY_CUSTOM3, - ARRAY_FORMAT_BONES = 1 << ARRAY_BONES, - ARRAY_FORMAT_WEIGHTS = 1 << ARRAY_WEIGHTS, - ARRAY_FORMAT_INDEX = 1 << ARRAY_INDEX, - - ARRAY_FORMAT_BLEND_SHAPE_MASK = ARRAY_FORMAT_VERTEX | ARRAY_FORMAT_NORMAL | ARRAY_FORMAT_TANGENT, - - ARRAY_FORMAT_CUSTOM_BASE = (ARRAY_INDEX + 1), - ARRAY_FORMAT_CUSTOM_BITS = 3, - ARRAY_FORMAT_CUSTOM_MASK = 0x7, - ARRAY_FORMAT_CUSTOM0_SHIFT = (ARRAY_FORMAT_CUSTOM_BASE + 0), - ARRAY_FORMAT_CUSTOM1_SHIFT = (ARRAY_FORMAT_CUSTOM_BASE + ARRAY_FORMAT_CUSTOM_BITS), - ARRAY_FORMAT_CUSTOM2_SHIFT = (ARRAY_FORMAT_CUSTOM_BASE + ARRAY_FORMAT_CUSTOM_BITS * 2), - ARRAY_FORMAT_CUSTOM3_SHIFT = (ARRAY_FORMAT_CUSTOM_BASE + ARRAY_FORMAT_CUSTOM_BITS * 3), - - ARRAY_COMPRESS_FLAGS_BASE = (ARRAY_INDEX + 1 + 12), - - ARRAY_FLAG_USE_2D_VERTICES = 1 << (ARRAY_COMPRESS_FLAGS_BASE + 0), - ARRAY_FLAG_USE_DYNAMIC_UPDATE = 1 << (ARRAY_COMPRESS_FLAGS_BASE + 1), - ARRAY_FLAG_USE_8_BONE_WEIGHTS = 1 << (ARRAY_COMPRESS_FLAGS_BASE + 2), - - ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY = 1 << (ARRAY_COMPRESS_FLAGS_BASE + 3), - - ARRAY_FLAG_COMPRESS_ATTRIBUTES = 1 << (ARRAY_COMPRESS_FLAGS_BASE + 4), - // We leave enough room for up to 5 more compression flags. - - ARRAY_FLAG_FORMAT_VERSION_BASE = ARRAY_COMPRESS_FLAGS_BASE + 10, - ARRAY_FLAG_FORMAT_VERSION_SHIFT = ARRAY_FLAG_FORMAT_VERSION_BASE, - // When changes are made to the mesh format, add a new version and use it for the CURRENT_VERSION. - ARRAY_FLAG_FORMAT_VERSION_1 = 0, - ARRAY_FLAG_FORMAT_VERSION_2 = 1ULL << ARRAY_FLAG_FORMAT_VERSION_SHIFT, - ARRAY_FLAG_FORMAT_CURRENT_VERSION = ARRAY_FLAG_FORMAT_VERSION_2, - ARRAY_FLAG_FORMAT_VERSION_MASK = 0xFF, // 8 bits version - }; - - static_assert(sizeof(ArrayFormat) == 8, "ArrayFormat should be 64 bits long."); - - enum PrimitiveType { - PRIMITIVE_POINTS, - PRIMITIVE_LINES, - PRIMITIVE_LINE_STRIP, - PRIMITIVE_TRIANGLES, - PRIMITIVE_TRIANGLE_STRIP, - PRIMITIVE_MAX, - }; - struct SurfaceData { - PrimitiveType primitive = PRIMITIVE_MAX; + RSE::PrimitiveType primitive = RSE::PRIMITIVE_MAX; - uint64_t format = ARRAY_FLAG_FORMAT_CURRENT_VERSION; + uint64_t format = RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION; Vector vertex_data; // Vertex, Normal, Tangent (change with skinning, blendshape). Vector attribute_data; // Color, UV, UV2, Custom0-3. Vector skin_data; // Bone index, Bone weight. @@ -419,33 +248,28 @@ public: virtual void mesh_set_blend_shape_count(RID p_mesh, int p_blend_shape_count) = 0; - virtual uint32_t mesh_surface_get_format_offset(BitField p_format, int p_vertex_len, int p_array_index) const; - virtual uint32_t mesh_surface_get_format_vertex_stride(BitField p_format, int p_vertex_len) const; - virtual uint32_t mesh_surface_get_format_normal_tangent_stride(BitField p_format, int p_vertex_len) const; - virtual uint32_t mesh_surface_get_format_attribute_stride(BitField p_format, int p_vertex_len) const; - virtual uint32_t mesh_surface_get_format_skin_stride(BitField p_format, int p_vertex_len) const; - virtual uint32_t mesh_surface_get_format_index_stride(BitField p_format, int p_vertex_len) const; + virtual uint32_t mesh_surface_get_format_offset(BitField p_format, int p_vertex_len, int p_array_index) const; + virtual uint32_t mesh_surface_get_format_vertex_stride(BitField p_format, int p_vertex_len) const; + virtual uint32_t mesh_surface_get_format_normal_tangent_stride(BitField p_format, int p_vertex_len) const; + virtual uint32_t mesh_surface_get_format_attribute_stride(BitField p_format, int p_vertex_len) const; + virtual uint32_t mesh_surface_get_format_skin_stride(BitField p_format, int p_vertex_len) const; + virtual uint32_t mesh_surface_get_format_index_stride(BitField p_format, int p_vertex_len) const; /// Returns stride virtual void mesh_surface_make_offsets_from_format(uint64_t p_format, int p_vertex_len, int p_index_len, uint32_t *r_offsets, uint32_t &r_vertex_element_size, uint32_t &r_normal_element_size, uint32_t &r_attrib_element_size, uint32_t &r_skin_element_size) const; - virtual Error mesh_create_surface_data_from_arrays(SurfaceData *r_surface_data, PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes = Array(), const Dictionary &p_lods = Dictionary(), uint64_t p_compress_format = 0); + virtual Error mesh_create_surface_data_from_arrays(SurfaceData *r_surface_data, RSE::PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes = Array(), const Dictionary &p_lods = Dictionary(), uint64_t p_compress_format = 0); Array mesh_create_arrays_from_surface_data(const SurfaceData &p_data) const; Array mesh_surface_get_arrays(RID p_mesh, int p_surface) const; TypedArray mesh_surface_get_blend_shape_arrays(RID p_mesh, int p_surface) const; Dictionary mesh_surface_get_lods(RID p_mesh, int p_surface) const; - virtual void mesh_add_surface_from_arrays(RID p_mesh, PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes = Array(), const Dictionary &p_lods = Dictionary(), BitField p_compress_format = 0); + virtual void mesh_add_surface_from_arrays(RID p_mesh, RSE::PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes = Array(), const Dictionary &p_lods = Dictionary(), BitField p_compress_format = 0); virtual void mesh_add_surface(RID p_mesh, const SurfaceData &p_surface) = 0; virtual int mesh_get_blend_shape_count(RID p_mesh) const = 0; - enum BlendShapeMode { - BLEND_SHAPE_MODE_NORMALIZED, - BLEND_SHAPE_MODE_RELATIVE, - }; - - virtual void mesh_set_blend_shape_mode(RID p_mesh, BlendShapeMode p_mode) = 0; - virtual BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const = 0; + virtual void mesh_set_blend_shape_mode(RID p_mesh, RSE::BlendShapeMode p_mode) = 0; + virtual RSE::BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const = 0; virtual void mesh_surface_update_vertex_region(RID p_mesh, int p_surface, int p_offset, const Vector &p_data) = 0; virtual void mesh_surface_update_attribute_region(RID p_mesh, int p_surface, int p_offset, const Vector &p_data) = 0; @@ -488,22 +312,12 @@ public: virtual RID multimesh_create() = 0; - enum MultimeshTransformFormat { - MULTIMESH_TRANSFORM_2D, - MULTIMESH_TRANSFORM_3D, - }; - - enum MultimeshPhysicsInterpolationQuality { - MULTIMESH_INTERP_QUALITY_FAST, - MULTIMESH_INTERP_QUALITY_HIGH, - }; - protected: #ifndef DISABLE_DEPRECATED - void _multimesh_allocate_data_bind_compat_99455(RID p_multimesh, int p_instances, MultimeshTransformFormat p_transform_format, bool p_use_colors, bool p_use_custom_data); + void _multimesh_allocate_data_bind_compat_99455(RID p_multimesh, int p_instances, RSE::MultimeshTransformFormat p_transform_format, bool p_use_colors, bool p_use_custom_data); #endif public: - virtual void multimesh_allocate_data(RID p_multimesh, int p_instances, MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false, bool p_use_indirect = false) = 0; + virtual void multimesh_allocate_data(RID p_multimesh, int p_instances, RSE::MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false, bool p_use_indirect = false) = 0; virtual int multimesh_get_instance_count(RID p_multimesh) const = 0; virtual void multimesh_set_mesh(RID p_multimesh, RID p_mesh) = 0; @@ -531,7 +345,7 @@ public: // Interpolation. virtual void multimesh_set_buffer_interpolated(RID p_multimesh, const Vector &p_buffer_curr, const Vector &p_buffer_prev) = 0; virtual void multimesh_set_physics_interpolated(RID p_multimesh, bool p_interpolated) = 0; - virtual void multimesh_set_physics_interpolation_quality(RID p_multimesh, MultimeshPhysicsInterpolationQuality p_quality) = 0; + virtual void multimesh_set_physics_interpolation_quality(RID p_multimesh, RSE::MultimeshPhysicsInterpolationQuality p_quality) = 0; virtual void multimesh_instance_reset_physics_interpolation(RID p_multimesh, int p_index) = 0; virtual void multimesh_instances_reset_physics_interpolation(RID p_multimesh) = 0; @@ -549,45 +363,14 @@ public: virtual Transform2D skeleton_bone_get_transform_2d(RID p_skeleton, int p_bone) const = 0; virtual void skeleton_set_base_transform_2d(RID p_skeleton, const Transform2D &p_base_transform) = 0; - /* Light API */ - - enum LightType { - LIGHT_DIRECTIONAL, - LIGHT_OMNI, - LIGHT_SPOT - }; - - enum LightParam { - LIGHT_PARAM_ENERGY, - LIGHT_PARAM_INDIRECT_ENERGY, - LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY, - LIGHT_PARAM_SPECULAR, - LIGHT_PARAM_RANGE, - LIGHT_PARAM_SIZE, - LIGHT_PARAM_ATTENUATION, - LIGHT_PARAM_SPOT_ANGLE, - LIGHT_PARAM_SPOT_ATTENUATION, - LIGHT_PARAM_SHADOW_MAX_DISTANCE, - LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET, - LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET, - LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET, - LIGHT_PARAM_SHADOW_FADE_START, - LIGHT_PARAM_SHADOW_NORMAL_BIAS, - LIGHT_PARAM_SHADOW_BIAS, - LIGHT_PARAM_SHADOW_PANCAKE_SIZE, - LIGHT_PARAM_SHADOW_OPACITY, - LIGHT_PARAM_SHADOW_BLUR, - LIGHT_PARAM_TRANSMITTANCE_BIAS, - LIGHT_PARAM_INTENSITY, - LIGHT_PARAM_MAX - }; + /* LIGHT API */ virtual RID directional_light_create() = 0; virtual RID omni_light_create() = 0; virtual RID spot_light_create() = 0; virtual void light_set_color(RID p_light, const Color &p_color) = 0; - virtual void light_set_param(RID p_light, LightParam p_param, float p_value) = 0; + virtual void light_set_param(RID p_light, RSE::LightParam p_param, float p_value) = 0; virtual void light_set_shadow(RID p_light, bool p_enabled) = 0; virtual void light_set_projector(RID p_light, RID p_texture) = 0; virtual void light_set_negative(RID p_light, bool p_enable) = 0; @@ -596,39 +379,18 @@ public: virtual void light_set_reverse_cull_face_mode(RID p_light, bool p_enabled) = 0; virtual void light_set_shadow_caster_mask(RID p_light, uint32_t p_caster_mask) = 0; - enum LightBakeMode { - LIGHT_BAKE_DISABLED, - LIGHT_BAKE_STATIC, - LIGHT_BAKE_DYNAMIC, - }; - - virtual void light_set_bake_mode(RID p_light, LightBakeMode p_bake_mode) = 0; + virtual void light_set_bake_mode(RID p_light, RSE::LightBakeMode p_bake_mode) = 0; virtual void light_set_max_sdfgi_cascade(RID p_light, uint32_t p_cascade) = 0; // Omni light - enum LightOmniShadowMode { - LIGHT_OMNI_SHADOW_DUAL_PARABOLOID, - LIGHT_OMNI_SHADOW_CUBE, - }; - virtual void light_omni_set_shadow_mode(RID p_light, LightOmniShadowMode p_mode) = 0; + virtual void light_omni_set_shadow_mode(RID p_light, RSE::LightOmniShadowMode p_mode) = 0; // Directional light - enum LightDirectionalShadowMode { - LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL, - LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS, - LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS, - }; - enum LightDirectionalSkyMode { - LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY, - LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_ONLY, - LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY, - }; - - virtual void light_directional_set_shadow_mode(RID p_light, LightDirectionalShadowMode p_mode) = 0; + virtual void light_directional_set_shadow_mode(RID p_light, RSE::LightDirectionalShadowMode p_mode) = 0; virtual void light_directional_set_blend_splits(RID p_light, bool p_enable) = 0; - virtual void light_directional_set_sky_mode(RID p_light, LightDirectionalSkyMode p_mode) = 0; + virtual void light_directional_set_sky_mode(RID p_light, RSE::LightDirectionalSkyMode p_mode) = 0; // Shadow atlas @@ -638,50 +400,20 @@ public: virtual void directional_shadow_atlas_set_size(int p_size, bool p_16_bits = true) = 0; - enum ShadowQuality { - SHADOW_QUALITY_HARD, - SHADOW_QUALITY_SOFT_VERY_LOW, - SHADOW_QUALITY_SOFT_LOW, - SHADOW_QUALITY_SOFT_MEDIUM, - SHADOW_QUALITY_SOFT_HIGH, - SHADOW_QUALITY_SOFT_ULTRA, - SHADOW_QUALITY_MAX - }; + virtual void positional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) = 0; + virtual void directional_soft_shadow_filter_set_quality(RSE::ShadowQuality p_quality) = 0; - virtual void positional_soft_shadow_filter_set_quality(ShadowQuality p_quality) = 0; - virtual void directional_soft_shadow_filter_set_quality(ShadowQuality p_quality) = 0; + virtual void light_projectors_set_filter(RSE::LightProjectorFilter p_filter) = 0; - enum LightProjectorFilter { - LIGHT_PROJECTOR_FILTER_NEAREST, - LIGHT_PROJECTOR_FILTER_LINEAR, - LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS, - LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS, - LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC, - LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC, - }; - - virtual void light_projectors_set_filter(LightProjectorFilter p_filter) = 0; - - /* PROBE API */ + /* REFLECTION PROBE API */ virtual RID reflection_probe_create() = 0; - enum ReflectionProbeUpdateMode { - REFLECTION_PROBE_UPDATE_ONCE, - REFLECTION_PROBE_UPDATE_ALWAYS, - }; - - virtual void reflection_probe_set_update_mode(RID p_probe, ReflectionProbeUpdateMode p_mode) = 0; + virtual void reflection_probe_set_update_mode(RID p_probe, RSE::ReflectionProbeUpdateMode p_mode) = 0; virtual void reflection_probe_set_intensity(RID p_probe, float p_intensity) = 0; virtual void reflection_probe_set_blend_distance(RID p_probe, float p_blend_distance) = 0; - enum ReflectionProbeAmbientMode { - REFLECTION_PROBE_AMBIENT_DISABLED, - REFLECTION_PROBE_AMBIENT_ENVIRONMENT, - REFLECTION_PROBE_AMBIENT_COLOR, - }; - - virtual void reflection_probe_set_ambient_mode(RID p_probe, ReflectionProbeAmbientMode p_mode) = 0; + virtual void reflection_probe_set_ambient_mode(RID p_probe, RSE::ReflectionProbeAmbientMode p_mode) = 0; virtual void reflection_probe_set_ambient_color(RID p_probe, const Color &p_color) = 0; virtual void reflection_probe_set_ambient_energy(RID p_probe, float p_energy) = 0; virtual void reflection_probe_set_max_distance(RID p_probe, float p_distance) = 0; @@ -697,17 +429,9 @@ public: /* DECAL API */ - enum DecalTexture { - DECAL_TEXTURE_ALBEDO, - DECAL_TEXTURE_NORMAL, - DECAL_TEXTURE_ORM, - DECAL_TEXTURE_EMISSION, - DECAL_TEXTURE_MAX - }; - virtual RID decal_create() = 0; virtual void decal_set_size(RID p_decal, const Vector3 &p_size) = 0; - virtual void decal_set_texture(RID p_decal, DecalTexture p_type, RID p_texture) = 0; + virtual void decal_set_texture(RID p_decal, RSE::DecalTexture p_type, RID p_texture) = 0; virtual void decal_set_emission_energy(RID p_decal, float p_energy) = 0; virtual void decal_set_albedo_mix(RID p_decal, float p_mix) = 0; virtual void decal_set_modulate(RID p_decal, const Color &p_modulate) = 0; @@ -716,16 +440,7 @@ public: virtual void decal_set_fade(RID p_decal, float p_above, float p_below) = 0; virtual void decal_set_normal_fade(RID p_decal, float p_fade) = 0; - enum DecalFilter { - DECAL_FILTER_NEAREST, - DECAL_FILTER_LINEAR, - DECAL_FILTER_NEAREST_MIPMAPS, - DECAL_FILTER_LINEAR_MIPMAPS, - DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC, - DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC, - }; - - virtual void decals_set_filter(DecalFilter p_quality) = 0; + virtual void decals_set_filter(RSE::DecalFilter p_quality) = 0; /* VOXEL GI API */ @@ -750,23 +465,11 @@ public: virtual void voxel_gi_set_interior(RID p_voxel_gi, bool p_enable) = 0; virtual void voxel_gi_set_use_two_bounces(RID p_voxel_gi, bool p_enable) = 0; - enum VoxelGIQuality { - VOXEL_GI_QUALITY_LOW, - VOXEL_GI_QUALITY_HIGH, - }; - - virtual void voxel_gi_set_quality(VoxelGIQuality) = 0; + virtual void voxel_gi_set_quality(RSE::VoxelGIQuality) = 0; virtual void sdfgi_reset() = 0; - /* LIGHTMAP */ - - enum ShadowmaskMode { - SHADOWMASK_MODE_NONE, - SHADOWMASK_MODE_REPLACE, - SHADOWMASK_MODE_OVERLAY, - SHADOWMASK_MODE_ONLY, - }; + /* LIGHTMAP API */ virtual RID lightmap_create() = 0; @@ -784,18 +487,13 @@ public: virtual void lightmaps_set_bicubic_filter(bool p_enable) = 0; virtual void lightmap_set_shadowmask_textures(RID p_lightmap, RID p_shadow) = 0; - virtual ShadowmaskMode lightmap_get_shadowmask_mode(RID p_lightmap) = 0; - virtual void lightmap_set_shadowmask_mode(RID p_lightmap, ShadowmaskMode p_mode) = 0; + virtual RSE::ShadowmaskMode lightmap_get_shadowmask_mode(RID p_lightmap) = 0; + virtual void lightmap_set_shadowmask_mode(RID p_lightmap, RSE::ShadowmaskMode p_mode) = 0; /* PARTICLES API */ virtual RID particles_create() = 0; - - enum ParticlesMode { - PARTICLES_MODE_2D, - PARTICLES_MODE_3D - }; - virtual void particles_set_mode(RID p_particles, ParticlesMode p_mode) = 0; + virtual void particles_set_mode(RID p_particles, RSE::ParticlesMode p_mode) = 0; virtual void particles_set_emitting(RID p_particles, bool p_enable) = 0; virtual bool particles_get_emitting(RID p_particles) = 0; @@ -817,14 +515,7 @@ public: virtual void particles_set_collision_base_size(RID p_particles, float p_size) = 0; virtual void particles_set_seed(RID p_particles, uint32_t p_seed) = 0; - enum ParticlesTransformAlign { - PARTICLES_TRANSFORM_ALIGN_DISABLED, - PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD, - PARTICLES_TRANSFORM_ALIGN_Y_TO_VELOCITY, - PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY, - }; - - virtual void particles_set_transform_align(RID p_particles, ParticlesTransformAlign p_transform_align) = 0; + virtual void particles_set_transform_align(RID p_particles, RSE::ParticlesTransformAlign p_transform_align) = 0; virtual void particles_set_trails(RID p_particles, bool p_enable, float p_length_sec) = 0; virtual void particles_set_trail_bind_poses(RID p_particles, const Vector &p_bind_poses) = 0; @@ -835,24 +526,9 @@ public: virtual void particles_set_subemitter(RID p_particles, RID p_subemitter_particles) = 0; - enum ParticlesEmitFlags { - PARTICLES_EMIT_FLAG_POSITION = 1, - PARTICLES_EMIT_FLAG_ROTATION_SCALE = 2, - PARTICLES_EMIT_FLAG_VELOCITY = 4, - PARTICLES_EMIT_FLAG_COLOR = 8, - PARTICLES_EMIT_FLAG_CUSTOM = 16 - }; - virtual void particles_emit(RID p_particles, const Transform3D &p_transform, const Vector3 &p_velocity, const Color &p_color, const Color &p_custom, uint32_t p_emit_flags) = 0; - enum ParticlesDrawOrder { - PARTICLES_DRAW_ORDER_INDEX, - PARTICLES_DRAW_ORDER_LIFETIME, - PARTICLES_DRAW_ORDER_REVERSE_LIFETIME, - PARTICLES_DRAW_ORDER_VIEW_DEPTH, - }; - - virtual void particles_set_draw_order(RID p_particles, ParticlesDrawOrder p_order) = 0; + virtual void particles_set_draw_order(RID p_particles, RSE::ParticlesDrawOrder p_order) = 0; virtual void particles_set_draw_passes(RID p_particles, int p_count) = 0; virtual void particles_set_draw_pass_mesh(RID p_particles, int p_pass, RID p_mesh) = 0; @@ -867,17 +543,7 @@ public: virtual RID particles_collision_create() = 0; - enum ParticlesCollisionType { - PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT, - PARTICLES_COLLISION_TYPE_BOX_ATTRACT, - PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT, - PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE, - PARTICLES_COLLISION_TYPE_BOX_COLLIDE, - PARTICLES_COLLISION_TYPE_SDF_COLLIDE, - PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE, - }; - - virtual void particles_collision_set_collision_type(RID p_particles_collision, ParticlesCollisionType p_type) = 0; + virtual void particles_collision_set_collision_type(RID p_particles_collision, RSE::ParticlesCollisionType p_type) = 0; virtual void particles_collision_set_cull_mask(RID p_particles_collision, uint32_t p_cull_mask) = 0; virtual void particles_collision_set_sphere_radius(RID p_particles_collision, real_t p_radius) = 0; // For spheres. virtual void particles_collision_set_box_extents(RID p_particles_collision, const Vector3 &p_extents) = 0; // For non-spheres. @@ -888,33 +554,14 @@ public: virtual void particles_collision_height_field_update(RID p_particles_collision) = 0; // For SDF and vector field. - enum ParticlesCollisionHeightfieldResolution { // Longest axis resolution. - PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_256, - PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_512, - PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_1024, - PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_2048, - PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_4096, - PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_8192, - PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX, - }; - - virtual void particles_collision_set_height_field_resolution(RID p_particles_collision, ParticlesCollisionHeightfieldResolution p_resolution) = 0; // For SDF and vector field. + virtual void particles_collision_set_height_field_resolution(RID p_particles_collision, RSE::ParticlesCollisionHeightfieldResolution p_resolution) = 0; // For SDF and vector field. virtual void particles_collision_set_height_field_mask(RID p_particles_collision, uint32_t p_heightfield_mask) = 0; /* FOG VOLUME API */ virtual RID fog_volume_create() = 0; - enum FogVolumeShape { - FOG_VOLUME_SHAPE_ELLIPSOID, - FOG_VOLUME_SHAPE_CONE, - FOG_VOLUME_SHAPE_CYLINDER, - FOG_VOLUME_SHAPE_BOX, - FOG_VOLUME_SHAPE_WORLD, - FOG_VOLUME_SHAPE_MAX, - }; - - virtual void fog_volume_set_shape(RID p_fog_volume, FogVolumeShape p_shape) = 0; + virtual void fog_volume_set_shape(RID p_fog_volume, RSE::FogVolumeShape p_shape) = 0; virtual void fog_volume_set_size(RID p_fog_volume, const Vector3 &p_size) = 0; virtual void fog_volume_set_material(RID p_fog_volume, RID p_material) = 0; @@ -944,60 +591,15 @@ public: /* VIEWPORT API */ - enum CanvasItemTextureFilter { - CANVAS_ITEM_TEXTURE_FILTER_DEFAULT, // Uses canvas item setting for draw command, uses global setting for canvas item. - CANVAS_ITEM_TEXTURE_FILTER_NEAREST, - CANVAS_ITEM_TEXTURE_FILTER_LINEAR, - CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, - CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, - CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, - CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, - CANVAS_ITEM_TEXTURE_FILTER_MAX - }; - - enum CanvasItemTextureRepeat { - CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT, // Uses canvas item setting for draw command, uses global setting for canvas item. - CANVAS_ITEM_TEXTURE_REPEAT_DISABLED, - CANVAS_ITEM_TEXTURE_REPEAT_ENABLED, - CANVAS_ITEM_TEXTURE_REPEAT_MIRROR, - CANVAS_ITEM_TEXTURE_REPEAT_MAX, - }; - virtual RID viewport_create() = 0; - enum ViewportScaling3DMode { - VIEWPORT_SCALING_3D_MODE_BILINEAR, - VIEWPORT_SCALING_3D_MODE_FSR, - VIEWPORT_SCALING_3D_MODE_FSR2, - VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL, - VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL, - VIEWPORT_SCALING_3D_MODE_MAX, - VIEWPORT_SCALING_3D_MODE_OFF = 255, // for internal use only - }; - - enum ViewportAnisotropicFiltering { - VIEWPORT_ANISOTROPY_DISABLED, - VIEWPORT_ANISOTROPY_2X, - VIEWPORT_ANISOTROPY_4X, - VIEWPORT_ANISOTROPY_8X, - VIEWPORT_ANISOTROPY_16X, - VIEWPORT_ANISOTROPY_MAX - }; - - enum ViewportScaling3DType { - VIEWPORT_SCALING_3D_TYPE_NONE, - VIEWPORT_SCALING_3D_TYPE_TEMPORAL, - VIEWPORT_SCALING_3D_TYPE_SPATIAL, - VIEWPORT_SCALING_3D_TYPE_MAX, - }; - - _ALWAYS_INLINE_ static ViewportScaling3DType scaling_3d_mode_type(ViewportScaling3DMode p_mode) { - if (p_mode == VIEWPORT_SCALING_3D_MODE_BILINEAR || p_mode == VIEWPORT_SCALING_3D_MODE_FSR || p_mode == VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL) { - return VIEWPORT_SCALING_3D_TYPE_SPATIAL; - } else if (p_mode == VIEWPORT_SCALING_3D_MODE_FSR2 || p_mode == VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL) { - return VIEWPORT_SCALING_3D_TYPE_TEMPORAL; + _ALWAYS_INLINE_ static RSE::ViewportScaling3DType scaling_3d_mode_type(RSE::ViewportScaling3DMode p_mode) { + if (p_mode == RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR || p_mode == RSE::VIEWPORT_SCALING_3D_MODE_FSR || p_mode == RSE::VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL) { + return RSE::VIEWPORT_SCALING_3D_TYPE_SPATIAL; + } else if (p_mode == RSE::VIEWPORT_SCALING_3D_MODE_FSR2 || p_mode == RSE::VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL) { + return RSE::VIEWPORT_SCALING_3D_TYPE_TEMPORAL; } - return VIEWPORT_SCALING_3D_TYPE_NONE; + return RSE::VIEWPORT_SCALING_3D_TYPE_NONE; } #ifndef XR_DISABLED @@ -1012,42 +614,21 @@ public: virtual void viewport_attach_to_screen(RID p_viewport, const Rect2 &p_rect = Rect2(), DisplayServer::WindowID p_screen = DisplayServer::MAIN_WINDOW_ID) = 0; virtual void viewport_set_render_direct_to_screen(RID p_viewport, bool p_enable) = 0; - virtual void viewport_set_scaling_3d_mode(RID p_viewport, ViewportScaling3DMode p_scaling_3d_mode) = 0; + virtual void viewport_set_scaling_3d_mode(RID p_viewport, RSE::ViewportScaling3DMode p_scaling_3d_mode) = 0; virtual void viewport_set_scaling_3d_scale(RID p_viewport, float p_scaling_3d_scale) = 0; virtual void viewport_set_fsr_sharpness(RID p_viewport, float p_fsr_sharpness) = 0; virtual void viewport_set_texture_mipmap_bias(RID p_viewport, float p_texture_mipmap_bias) = 0; - virtual void viewport_set_anisotropic_filtering_level(RID p_viewport, ViewportAnisotropicFiltering p_anisotropic_filtering_level) = 0; + virtual void viewport_set_anisotropic_filtering_level(RID p_viewport, RSE::ViewportAnisotropicFiltering p_anisotropic_filtering_level) = 0; - enum ViewportUpdateMode { - VIEWPORT_UPDATE_DISABLED, - VIEWPORT_UPDATE_ONCE, // Then goes to disabled, must be manually updated. - VIEWPORT_UPDATE_WHEN_VISIBLE, // Default - VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE, - VIEWPORT_UPDATE_ALWAYS - }; + virtual void viewport_set_update_mode(RID p_viewport, RSE::ViewportUpdateMode p_mode) = 0; + virtual RSE::ViewportUpdateMode viewport_get_update_mode(RID p_viewport) const = 0; - virtual void viewport_set_update_mode(RID p_viewport, ViewportUpdateMode p_mode) = 0; - virtual ViewportUpdateMode viewport_get_update_mode(RID p_viewport) const = 0; - - enum ViewportClearMode { - VIEWPORT_CLEAR_ALWAYS, - VIEWPORT_CLEAR_NEVER, - VIEWPORT_CLEAR_ONLY_NEXT_FRAME - }; - - virtual void viewport_set_clear_mode(RID p_viewport, ViewportClearMode p_clear_mode) = 0; + virtual void viewport_set_clear_mode(RID p_viewport, RSE::ViewportClearMode p_clear_mode) = 0; virtual RID viewport_get_render_target(RID p_viewport) const = 0; virtual RID viewport_get_texture(RID p_viewport) const = 0; - enum ViewportEnvironmentMode { - VIEWPORT_ENVIRONMENT_DISABLED, - VIEWPORT_ENVIRONMENT_ENABLED, - VIEWPORT_ENVIRONMENT_INHERIT, - VIEWPORT_ENVIRONMENT_MAX, - }; - - virtual void viewport_set_environment_mode(RID p_viewport, ViewportEnvironmentMode p_mode) = 0; + virtual void viewport_set_environment_mode(RID p_viewport, RSE::ViewportEnvironmentMode p_mode) = 0; virtual void viewport_set_disable_3d(RID p_viewport, bool p_disable) = 0; virtual void viewport_set_disable_2d(RID p_viewport, bool p_disable) = 0; @@ -1062,51 +643,21 @@ public: virtual void viewport_set_snap_2d_transforms_to_pixel(RID p_viewport, bool p_enabled) = 0; virtual void viewport_set_snap_2d_vertices_to_pixel(RID p_viewport, bool p_enabled) = 0; - virtual void viewport_set_default_canvas_item_texture_filter(RID p_viewport, CanvasItemTextureFilter p_filter) = 0; - virtual void viewport_set_default_canvas_item_texture_repeat(RID p_viewport, CanvasItemTextureRepeat p_repeat) = 0; + virtual void viewport_set_default_canvas_item_texture_filter(RID p_viewport, RSE::CanvasItemTextureFilter p_filter) = 0; + virtual void viewport_set_default_canvas_item_texture_repeat(RID p_viewport, RSE::CanvasItemTextureRepeat p_repeat) = 0; virtual void viewport_set_global_canvas_transform(RID p_viewport, const Transform2D &p_transform) = 0; virtual void viewport_set_canvas_stacking(RID p_viewport, RID p_canvas, int p_layer, int p_sublayer) = 0; - enum ViewportSDFOversize { - VIEWPORT_SDF_OVERSIZE_100_PERCENT, - VIEWPORT_SDF_OVERSIZE_120_PERCENT, - VIEWPORT_SDF_OVERSIZE_150_PERCENT, - VIEWPORT_SDF_OVERSIZE_200_PERCENT, - VIEWPORT_SDF_OVERSIZE_MAX - }; - - enum ViewportSDFScale { - VIEWPORT_SDF_SCALE_100_PERCENT, - VIEWPORT_SDF_SCALE_50_PERCENT, - VIEWPORT_SDF_SCALE_25_PERCENT, - VIEWPORT_SDF_SCALE_MAX - }; - - virtual void viewport_set_sdf_oversize_and_scale(RID p_viewport, ViewportSDFOversize p_oversize, ViewportSDFScale p_scale) = 0; + virtual void viewport_set_sdf_oversize_and_scale(RID p_viewport, RSE::ViewportSDFOversize p_oversize, RSE::ViewportSDFScale p_scale) = 0; virtual void viewport_set_positional_shadow_atlas_size(RID p_viewport, int p_size, bool p_16_bits = true) = 0; virtual void viewport_set_positional_shadow_atlas_quadrant_subdivision(RID p_viewport, int p_quadrant, int p_subdiv) = 0; - enum ViewportMSAA { - VIEWPORT_MSAA_DISABLED, - VIEWPORT_MSAA_2X, - VIEWPORT_MSAA_4X, - VIEWPORT_MSAA_8X, - VIEWPORT_MSAA_MAX, - }; + virtual void viewport_set_msaa_3d(RID p_viewport, RSE::ViewportMSAA p_msaa) = 0; + virtual void viewport_set_msaa_2d(RID p_viewport, RSE::ViewportMSAA p_msaa) = 0; - virtual void viewport_set_msaa_3d(RID p_viewport, ViewportMSAA p_msaa) = 0; - virtual void viewport_set_msaa_2d(RID p_viewport, ViewportMSAA p_msaa) = 0; - - enum ViewportScreenSpaceAA { - VIEWPORT_SCREEN_SPACE_AA_DISABLED, - VIEWPORT_SCREEN_SPACE_AA_FXAA, - VIEWPORT_SCREEN_SPACE_AA_SMAA, - VIEWPORT_SCREEN_SPACE_AA_MAX, - }; - - virtual void viewport_set_screen_space_aa(RID p_viewport, ViewportScreenSpaceAA p_mode) = 0; + virtual void viewport_set_screen_space_aa(RID p_viewport, RSE::ViewportScreenSpaceAA p_mode) = 0; virtual void viewport_set_use_taa(RID p_viewport, bool p_use_taa) = 0; @@ -1119,61 +670,11 @@ public: virtual void viewport_set_use_occlusion_culling(RID p_viewport, bool p_use_occlusion_culling) = 0; virtual void viewport_set_occlusion_rays_per_thread(int p_rays_per_thread) = 0; - enum ViewportOcclusionCullingBuildQuality { - VIEWPORT_OCCLUSION_BUILD_QUALITY_LOW = 0, - VIEWPORT_OCCLUSION_BUILD_QUALITY_MEDIUM = 1, - VIEWPORT_OCCLUSION_BUILD_QUALITY_HIGH = 2, - }; + virtual void viewport_set_occlusion_culling_build_quality(RSE::ViewportOcclusionCullingBuildQuality p_quality) = 0; - virtual void viewport_set_occlusion_culling_build_quality(ViewportOcclusionCullingBuildQuality p_quality) = 0; + virtual int viewport_get_render_info(RID p_viewport, RSE::ViewportRenderInfoType p_type, RSE::ViewportRenderInfo p_info) = 0; - enum ViewportRenderInfo { - VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME, - VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME, - VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME, - VIEWPORT_RENDER_INFO_MAX, - }; - - enum ViewportRenderInfoType { - VIEWPORT_RENDER_INFO_TYPE_VISIBLE, - VIEWPORT_RENDER_INFO_TYPE_SHADOW, - VIEWPORT_RENDER_INFO_TYPE_CANVAS, - VIEWPORT_RENDER_INFO_TYPE_MAX - }; - - virtual int viewport_get_render_info(RID p_viewport, ViewportRenderInfoType p_type, ViewportRenderInfo p_info) = 0; - - enum ViewportDebugDraw { - VIEWPORT_DEBUG_DRAW_DISABLED, - VIEWPORT_DEBUG_DRAW_UNSHADED, - VIEWPORT_DEBUG_DRAW_LIGHTING, - VIEWPORT_DEBUG_DRAW_OVERDRAW, - VIEWPORT_DEBUG_DRAW_WIREFRAME, - VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER, - VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO, - VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING, - VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION, - VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS, - VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS, - VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE, - VIEWPORT_DEBUG_DRAW_SSAO, - VIEWPORT_DEBUG_DRAW_SSIL, - VIEWPORT_DEBUG_DRAW_PSSM_SPLITS, - VIEWPORT_DEBUG_DRAW_DECAL_ATLAS, - VIEWPORT_DEBUG_DRAW_SDFGI, - VIEWPORT_DEBUG_DRAW_SDFGI_PROBES, - VIEWPORT_DEBUG_DRAW_GI_BUFFER, - VIEWPORT_DEBUG_DRAW_DISABLE_LOD, - VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS, - VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS, - VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS, - VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES, - VIEWPORT_DEBUG_DRAW_OCCLUDERS, - VIEWPORT_DEBUG_DRAW_MOTION_VECTORS, - VIEWPORT_DEBUG_DRAW_INTERNAL_BUFFER, - }; - - virtual void viewport_set_debug_draw(RID p_viewport, ViewportDebugDraw p_draw) = 0; + virtual void viewport_set_debug_draw(RID p_viewport, RSE::ViewportDebugDraw p_draw) = 0; virtual void viewport_set_measure_render_time(RID p_viewport, bool p_enable) = 0; virtual double viewport_get_measured_render_time_cpu(RID p_viewport) const = 0; @@ -1181,63 +682,24 @@ public: virtual RID viewport_find_from_screen_attachment(DisplayServer::WindowID p_id = DisplayServer::MAIN_WINDOW_ID) const = 0; - enum ViewportVRSMode { - VIEWPORT_VRS_DISABLED, - VIEWPORT_VRS_TEXTURE, - VIEWPORT_VRS_XR, - VIEWPORT_VRS_MAX, - }; - - enum ViewportVRSUpdateMode { - VIEWPORT_VRS_UPDATE_DISABLED, - VIEWPORT_VRS_UPDATE_ONCE, - VIEWPORT_VRS_UPDATE_ALWAYS, - VIEWPORT_VRS_UPDATE_MAX, - }; - - virtual void viewport_set_vrs_mode(RID p_viewport, ViewportVRSMode p_mode) = 0; - virtual void viewport_set_vrs_update_mode(RID p_viewport, ViewportVRSUpdateMode p_mode) = 0; + virtual void viewport_set_vrs_mode(RID p_viewport, RSE::ViewportVRSMode p_mode) = 0; + virtual void viewport_set_vrs_update_mode(RID p_viewport, RSE::ViewportVRSUpdateMode p_mode) = 0; virtual void viewport_set_vrs_texture(RID p_viewport, RID p_texture) = 0; /* SKY API */ - enum SkyMode { - SKY_MODE_AUTOMATIC, - SKY_MODE_QUALITY, - SKY_MODE_INCREMENTAL, - SKY_MODE_REALTIME - }; - virtual RID sky_create() = 0; virtual void sky_set_radiance_size(RID p_sky, int p_radiance_size) = 0; - virtual void sky_set_mode(RID p_sky, SkyMode p_mode) = 0; + virtual void sky_set_mode(RID p_sky, RSE::SkyMode p_mode) = 0; virtual void sky_set_material(RID p_sky, RID p_material) = 0; virtual Ref sky_bake_panorama(RID p_sky, float p_energy, bool p_bake_irradiance, const Size2i &p_size) = 0; /* COMPOSITOR EFFECTS API */ - enum CompositorEffectFlags { - COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR = 1, - COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH = 2, - COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS = 4, - COMPOSITOR_EFFECT_FLAG_NEEDS_ROUGHNESS = 8, - COMPOSITOR_EFFECT_FLAG_NEEDS_SEPARATE_SPECULAR = 16, - }; - - enum CompositorEffectCallbackType { - COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE, - COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE, - COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_SKY, - COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT, - COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_TRANSPARENT, - COMPOSITOR_EFFECT_CALLBACK_TYPE_MAX, - COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY = -1, - }; - virtual RID compositor_effect_create() = 0; virtual void compositor_effect_set_enabled(RID p_effect, bool p_enabled) = 0; - virtual void compositor_effect_set_callback(RID p_effect, CompositorEffectCallbackType p_callback_type, const Callable &p_callback) = 0; - virtual void compositor_effect_set_flag(RID p_effect, CompositorEffectFlags p_flag, bool p_set) = 0; + virtual void compositor_effect_set_callback(RID p_effect, RSE::CompositorEffectCallbackType p_callback_type, const Callable &p_callback) = 0; + virtual void compositor_effect_set_flag(RID p_effect, RSE::CompositorEffectFlags p_flag, bool p_set) = 0; /* COMPOSITOR API */ @@ -1249,60 +711,21 @@ public: virtual RID environment_create() = 0; - enum EnvironmentBG { - ENV_BG_CLEAR_COLOR, - ENV_BG_COLOR, - ENV_BG_SKY, - ENV_BG_CANVAS, - ENV_BG_KEEP, - ENV_BG_CAMERA_FEED, - ENV_BG_MAX - }; - - enum EnvironmentAmbientSource { - ENV_AMBIENT_SOURCE_BG, - ENV_AMBIENT_SOURCE_DISABLED, - ENV_AMBIENT_SOURCE_COLOR, - ENV_AMBIENT_SOURCE_SKY, - }; - - enum EnvironmentReflectionSource { - ENV_REFLECTION_SOURCE_BG, - ENV_REFLECTION_SOURCE_DISABLED, - ENV_REFLECTION_SOURCE_SKY, - }; - - virtual void environment_set_background(RID p_env, EnvironmentBG p_bg) = 0; + virtual void environment_set_background(RID p_env, RSE::EnvironmentBG p_bg) = 0; virtual void environment_set_sky(RID p_env, RID p_sky) = 0; virtual void environment_set_sky_custom_fov(RID p_env, float p_scale) = 0; virtual void environment_set_sky_orientation(RID p_env, const Basis &p_orientation) = 0; virtual void environment_set_bg_color(RID p_env, const Color &p_color) = 0; virtual void environment_set_bg_energy(RID p_env, float p_multiplier, float p_exposure_value) = 0; virtual void environment_set_canvas_max_layer(RID p_env, int p_max_layer) = 0; - virtual void environment_set_ambient_light(RID p_env, const Color &p_color, EnvironmentAmbientSource p_ambient = ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, EnvironmentReflectionSource p_reflection_source = ENV_REFLECTION_SOURCE_BG) = 0; + virtual void environment_set_ambient_light(RID p_env, const Color &p_color, RSE::EnvironmentAmbientSource p_ambient = RSE::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RSE::EnvironmentReflectionSource p_reflection_source = RSE::ENV_REFLECTION_SOURCE_BG) = 0; virtual void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id) = 0; - enum EnvironmentGlowBlendMode { - ENV_GLOW_BLEND_MODE_ADDITIVE, - ENV_GLOW_BLEND_MODE_SCREEN, - ENV_GLOW_BLEND_MODE_SOFTLIGHT, - ENV_GLOW_BLEND_MODE_REPLACE, - ENV_GLOW_BLEND_MODE_MIX, - }; - - virtual void environment_set_glow(RID p_env, bool p_enable, Vector p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, float p_glow_map_strength, RID p_glow_map) = 0; + virtual void environment_set_glow(RID p_env, bool p_enable, Vector p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RSE::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, float p_glow_map_strength, RID p_glow_map) = 0; virtual void environment_glow_set_use_bicubic_upscale(bool p_enable) = 0; - enum EnvironmentToneMapper { - ENV_TONE_MAPPER_LINEAR, - ENV_TONE_MAPPER_REINHARD, - ENV_TONE_MAPPER_FILMIC, - ENV_TONE_MAPPER_ACES, - ENV_TONE_MAPPER_AGX, - }; - - virtual void environment_set_tonemap(RID p_env, EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white) = 0; + virtual void environment_set_tonemap(RID p_env, RSE::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white) = 0; virtual void environment_set_tonemap_agx_contrast(RID p_env, float p_agx_contrast) = 0; virtual void environment_set_adjustment(RID p_env, bool p_enable, float p_brightness, float p_contrast, float p_saturation, bool p_use_1d_color_correction, RID p_color_correction) = 0; @@ -1310,89 +733,25 @@ public: virtual void environment_set_ssr_half_size(bool p_half_size) = 0; - enum EnvironmentSSRRoughnessQuality { - ENV_SSR_ROUGHNESS_QUALITY_DISABLED, - ENV_SSR_ROUGHNESS_QUALITY_LOW, - ENV_SSR_ROUGHNESS_QUALITY_MEDIUM, - ENV_SSR_ROUGHNESS_QUALITY_HIGH, - }; - - virtual void environment_set_ssr_roughness_quality(EnvironmentSSRRoughnessQuality p_quality) = 0; + virtual void environment_set_ssr_roughness_quality(RSE::EnvironmentSSRRoughnessQuality p_quality) = 0; virtual void environment_set_ssao(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_power, float p_detail, float p_horizon, float p_sharpness, float p_light_affect, float p_ao_channel_affect) = 0; - enum EnvironmentSSAOQuality { - ENV_SSAO_QUALITY_VERY_LOW, - ENV_SSAO_QUALITY_LOW, - ENV_SSAO_QUALITY_MEDIUM, - ENV_SSAO_QUALITY_HIGH, - ENV_SSAO_QUALITY_ULTRA, - }; - - virtual void environment_set_ssao_quality(EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0; + virtual void environment_set_ssao_quality(RSE::EnvironmentSSAOQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0; virtual void environment_set_ssil(RID p_env, bool p_enable, float p_radius, float p_intensity, float p_sharpness, float p_normal_rejection) = 0; - enum EnvironmentSSILQuality { - ENV_SSIL_QUALITY_VERY_LOW, - ENV_SSIL_QUALITY_LOW, - ENV_SSIL_QUALITY_MEDIUM, - ENV_SSIL_QUALITY_HIGH, - ENV_SSIL_QUALITY_ULTRA, - }; + virtual void environment_set_ssil_quality(RSE::EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0; - virtual void environment_set_ssil_quality(EnvironmentSSILQuality p_quality, bool p_half_size, float p_adaptive_target, int p_blur_passes, float p_fadeout_from, float p_fadeout_to) = 0; + virtual void environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RSE::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) = 0; - enum EnvironmentSDFGIYScale { - ENV_SDFGI_Y_SCALE_50_PERCENT, - ENV_SDFGI_Y_SCALE_75_PERCENT, - ENV_SDFGI_Y_SCALE_100_PERCENT, - }; + virtual void environment_set_sdfgi_ray_count(RSE::EnvironmentSDFGIRayCount p_ray_count) = 0; - virtual void environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) = 0; + virtual void environment_set_sdfgi_frames_to_converge(RSE::EnvironmentSDFGIFramesToConverge p_frames) = 0; - enum EnvironmentSDFGIRayCount { - ENV_SDFGI_RAY_COUNT_4, - ENV_SDFGI_RAY_COUNT_8, - ENV_SDFGI_RAY_COUNT_16, - ENV_SDFGI_RAY_COUNT_32, - ENV_SDFGI_RAY_COUNT_64, - ENV_SDFGI_RAY_COUNT_96, - ENV_SDFGI_RAY_COUNT_128, - ENV_SDFGI_RAY_COUNT_MAX, - }; + virtual void environment_set_sdfgi_frames_to_update_light(RSE::EnvironmentSDFGIFramesToUpdateLight p_update) = 0; - virtual void environment_set_sdfgi_ray_count(EnvironmentSDFGIRayCount p_ray_count) = 0; - - enum EnvironmentSDFGIFramesToConverge { - ENV_SDFGI_CONVERGE_IN_5_FRAMES, - ENV_SDFGI_CONVERGE_IN_10_FRAMES, - ENV_SDFGI_CONVERGE_IN_15_FRAMES, - ENV_SDFGI_CONVERGE_IN_20_FRAMES, - ENV_SDFGI_CONVERGE_IN_25_FRAMES, - ENV_SDFGI_CONVERGE_IN_30_FRAMES, - ENV_SDFGI_CONVERGE_MAX - }; - - virtual void environment_set_sdfgi_frames_to_converge(EnvironmentSDFGIFramesToConverge p_frames) = 0; - - enum EnvironmentSDFGIFramesToUpdateLight { - ENV_SDFGI_UPDATE_LIGHT_IN_1_FRAME, - ENV_SDFGI_UPDATE_LIGHT_IN_2_FRAMES, - ENV_SDFGI_UPDATE_LIGHT_IN_4_FRAMES, - ENV_SDFGI_UPDATE_LIGHT_IN_8_FRAMES, - ENV_SDFGI_UPDATE_LIGHT_IN_16_FRAMES, - ENV_SDFGI_UPDATE_LIGHT_MAX, - }; - - virtual void environment_set_sdfgi_frames_to_update_light(EnvironmentSDFGIFramesToUpdateLight p_update) = 0; - - enum EnvironmentFogMode { - ENV_FOG_MODE_EXPONENTIAL, - ENV_FOG_MODE_DEPTH, - }; - - virtual void environment_set_fog(RID p_env, bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_aerial_perspective, float p_sky_affect, EnvironmentFogMode p_mode = EnvironmentFogMode::ENV_FOG_MODE_EXPONENTIAL) = 0; + virtual void environment_set_fog(RID p_env, bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_aerial_perspective, float p_sky_affect, RSE::EnvironmentFogMode p_mode = RSE::EnvironmentFogMode::ENV_FOG_MODE_EXPONENTIAL) = 0; virtual void environment_set_fog_depth(RID p_env, float p_curve, float p_begin, float p_end) = 0; virtual void environment_set_volumetric_fog(RID p_env, bool p_enable, float p_density, const Color &p_albedo, const Color &p_emission, float p_emission_energy, float p_anisotropy, float p_length, float p_detail_spread, float p_gi_inject, bool p_temporal_reprojection, float p_temporal_reprojection_amount, float p_ambient_inject, float p_sky_affect) = 0; @@ -1403,36 +762,16 @@ public: virtual void screen_space_roughness_limiter_set_active(bool p_enable, float p_amount, float p_limit) = 0; - enum SubSurfaceScatteringQuality { - SUB_SURFACE_SCATTERING_QUALITY_DISABLED, - SUB_SURFACE_SCATTERING_QUALITY_LOW, - SUB_SURFACE_SCATTERING_QUALITY_MEDIUM, - SUB_SURFACE_SCATTERING_QUALITY_HIGH, - }; - - virtual void sub_surface_scattering_set_quality(SubSurfaceScatteringQuality p_quality) = 0; + virtual void sub_surface_scattering_set_quality(RSE::SubSurfaceScatteringQuality p_quality) = 0; virtual void sub_surface_scattering_set_scale(float p_scale, float p_depth_scale) = 0; - /* CAMERA EFFECTS */ + /* CAMERA ATTRIBUTES API */ virtual RID camera_attributes_create() = 0; - enum DOFBlurQuality { - DOF_BLUR_QUALITY_VERY_LOW, - DOF_BLUR_QUALITY_LOW, - DOF_BLUR_QUALITY_MEDIUM, - DOF_BLUR_QUALITY_HIGH, - }; + virtual void camera_attributes_set_dof_blur_quality(RSE::DOFBlurQuality p_quality, bool p_use_jitter) = 0; - virtual void camera_attributes_set_dof_blur_quality(DOFBlurQuality p_quality, bool p_use_jitter) = 0; - - enum DOFBokehShape { - DOF_BOKEH_BOX, - DOF_BOKEH_HEXAGON, - DOF_BOKEH_CIRCLE - }; - - virtual void camera_attributes_set_dof_blur_bokeh_shape(DOFBokehShape p_shape) = 0; + virtual void camera_attributes_set_dof_blur_bokeh_shape(RSE::DOFBokehShape p_shape) = 0; virtual void camera_attributes_set_dof_blur(RID p_camera_attributes, bool p_far_enable, float p_far_distance, float p_far_transition, bool p_near_enable, float p_near_distance, float p_near_transition, float p_amount) = 0; virtual void camera_attributes_set_exposure(RID p_camera_attributes, float p_multiplier, float p_exposure_normalization) = 0; @@ -1449,25 +788,6 @@ public: /* INSTANCING API */ - enum InstanceType { - INSTANCE_NONE, - INSTANCE_MESH, - INSTANCE_MULTIMESH, - INSTANCE_PARTICLES, - INSTANCE_PARTICLES_COLLISION, - INSTANCE_LIGHT, - INSTANCE_REFLECTION_PROBE, - INSTANCE_DECAL, - INSTANCE_VOXEL_GI, - INSTANCE_LIGHTMAP, - INSTANCE_OCCLUDER, - INSTANCE_VISIBLITY_NOTIFIER, // TODO: Fix typo in "VISIBILITY" (in 5.0). - INSTANCE_FOG_VOLUME, - INSTANCE_MAX, - - INSTANCE_GEOMETRY_MASK = (1 << INSTANCE_MESH) | (1 << INSTANCE_MULTIMESH) | (1 << INSTANCE_PARTICLES) - }; - virtual RID instance_create2(RID p_base, RID p_scenario); virtual RID instance_create() = 0; @@ -1502,32 +822,11 @@ public: PackedInt64Array _instances_cull_ray_bind(const Vector3 &p_from, const Vector3 &p_to, RID p_scenario = RID()) const; PackedInt64Array _instances_cull_convex_bind(const TypedArray &p_convex, RID p_scenario = RID()) const; - enum InstanceFlags { - INSTANCE_FLAG_USE_BAKED_LIGHT, - INSTANCE_FLAG_USE_DYNAMIC_GI, - INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE, - INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, - INSTANCE_FLAG_MAX - }; - - enum ShadowCastingSetting { - SHADOW_CASTING_SETTING_OFF, - SHADOW_CASTING_SETTING_ON, - SHADOW_CASTING_SETTING_DOUBLE_SIDED, - SHADOW_CASTING_SETTING_SHADOWS_ONLY, - }; - - enum VisibilityRangeFadeMode { - VISIBILITY_RANGE_FADE_DISABLED, - VISIBILITY_RANGE_FADE_SELF, - VISIBILITY_RANGE_FADE_DEPENDENCIES, - }; - - virtual void instance_geometry_set_flag(RID p_instance, InstanceFlags p_flags, bool p_enabled) = 0; - virtual void instance_geometry_set_cast_shadows_setting(RID p_instance, ShadowCastingSetting p_shadow_casting_setting) = 0; + virtual void instance_geometry_set_flag(RID p_instance, RSE::InstanceFlags p_flags, bool p_enabled) = 0; + virtual void instance_geometry_set_cast_shadows_setting(RID p_instance, RSE::ShadowCastingSetting p_shadow_casting_setting) = 0; virtual void instance_geometry_set_material_override(RID p_instance, RID p_material) = 0; virtual void instance_geometry_set_material_overlay(RID p_instance, RID p_material) = 0; - virtual void instance_geometry_set_visibility_range(RID p_instance, float p_min, float p_max, float p_min_margin, float p_max_margin, VisibilityRangeFadeMode p_fade_mode) = 0; + virtual void instance_geometry_set_visibility_range(RID p_instance, float p_min, float p_max, float p_min_margin, float p_max_margin, RSE::VisibilityRangeFadeMode p_fade_mode) = 0; virtual void instance_geometry_set_lightmap(RID p_instance, RID p_lightmap, const Rect2 &p_lightmap_uv_scale, int p_lightmap_slice) = 0; virtual void instance_geometry_set_lod_bias(RID p_instance, float p_lod_bias) = 0; virtual void instance_geometry_set_transparency(RID p_instance, float p_transparency) = 0; @@ -1537,18 +836,11 @@ public: virtual Variant instance_geometry_get_shader_parameter_default_value(RID p_instance, const StringName &) const = 0; virtual void instance_geometry_get_shader_parameter_list(RID p_instance, List *p_parameters) const = 0; - /* Bake 3D objects */ - - enum BakeChannels { - BAKE_CHANNEL_ALBEDO_ALPHA, - BAKE_CHANNEL_NORMAL, - BAKE_CHANNEL_ORM, - BAKE_CHANNEL_EMISSION - }; + /* BAKE API */ virtual TypedArray bake_render_uv2(RID p_base, const TypedArray &p_material_overrides, const Size2i &p_image_size) = 0; - /* CANVAS (2D) */ + /* CANVAS API (2D) */ virtual RID canvas_create() = 0; virtual void canvas_set_item_mirroring(RID p_canvas, RID p_item, const Point2 &p_mirroring) = 0; @@ -1558,28 +850,23 @@ public: virtual void canvas_set_disable_scale(bool p_disable) = 0; - /* CANVAS TEXTURE */ - virtual RID canvas_texture_create() = 0; + /* CANVAS TEXTURE API*/ - enum CanvasTextureChannel { - CANVAS_TEXTURE_CHANNEL_DIFFUSE, - CANVAS_TEXTURE_CHANNEL_NORMAL, - CANVAS_TEXTURE_CHANNEL_SPECULAR, - }; - virtual void canvas_texture_set_channel(RID p_canvas_texture, CanvasTextureChannel p_channel, RID p_texture) = 0; + virtual RID canvas_texture_create() = 0; + virtual void canvas_texture_set_channel(RID p_canvas_texture, RSE::CanvasTextureChannel p_channel, RID p_texture) = 0; virtual void canvas_texture_set_shading_parameters(RID p_canvas_texture, const Color &p_base_color, float p_shininess) = 0; // Takes effect only for new draw commands. - virtual void canvas_texture_set_texture_filter(RID p_canvas_texture, CanvasItemTextureFilter p_filter) = 0; - virtual void canvas_texture_set_texture_repeat(RID p_canvas_texture, CanvasItemTextureRepeat p_repeat) = 0; + virtual void canvas_texture_set_texture_filter(RID p_canvas_texture, RSE::CanvasItemTextureFilter p_filter) = 0; + virtual void canvas_texture_set_texture_repeat(RID p_canvas_texture, RSE::CanvasItemTextureRepeat p_repeat) = 0; - /* CANVAS ITEM */ + /* CANVAS ITEM API */ virtual RID canvas_item_create() = 0; virtual void canvas_item_set_parent(RID p_item, RID p_parent) = 0; - virtual void canvas_item_set_default_texture_filter(RID p_item, CanvasItemTextureFilter p_filter) = 0; - virtual void canvas_item_set_default_texture_repeat(RID p_item, CanvasItemTextureRepeat p_repeat) = 0; + virtual void canvas_item_set_default_texture_filter(RID p_item, RSE::CanvasItemTextureFilter p_filter) = 0; + virtual void canvas_item_set_default_texture_repeat(RID p_item, RSE::CanvasItemTextureRepeat p_repeat) = 0; virtual void canvas_item_set_visible(RID p_item, bool p_visible) = 0; virtual void canvas_item_set_light_mask(RID p_item, int p_mask) = 0; @@ -1597,12 +884,6 @@ public: virtual void canvas_item_set_draw_behind_parent(RID p_item, bool p_enable) = 0; virtual void canvas_item_set_use_identity_transform(RID p_item, bool p_enabled) = 0; - enum NinePatchAxisMode { - NINE_PATCH_STRETCH, - NINE_PATCH_TILE, - NINE_PATCH_TILE_FIT, - }; - virtual void canvas_item_add_line(RID p_item, const Point2 &p_from, const Point2 &p_to, const Color &p_color, float p_width = -1.0, bool p_antialiased = false) = 0; virtual void canvas_item_add_polyline(RID p_item, const Vector &p_points, const Vector &p_colors, float p_width = -1.0, bool p_antialiased = false) = 0; virtual void canvas_item_add_multiline(RID p_item, const Vector &p_points, const Vector &p_colors, float p_width = -1.0, bool p_antialiased = false) = 0; @@ -1613,7 +894,7 @@ public: virtual void canvas_item_add_texture_rect_region(RID p_item, const Rect2 &p_rect, RID p_texture, const Rect2 &p_src_rect, const Color &p_modulate = Color(1, 1, 1), bool p_transpose = false, bool p_clip_uv = false) = 0; virtual void canvas_item_add_msdf_texture_rect_region(RID p_item, const Rect2 &p_rect, RID p_texture, const Rect2 &p_src_rect, const Color &p_modulate = Color(1, 1, 1), int p_outline_size = 0, float p_px_range = 1.0, float p_scale = 1.0) = 0; virtual void canvas_item_add_lcd_texture_rect_region(RID p_item, const Rect2 &p_rect, RID p_texture, const Rect2 &p_src_rect, const Color &p_modulate = Color(1, 1, 1)) = 0; - virtual void canvas_item_add_nine_patch(RID p_item, const Rect2 &p_rect, const Rect2 &p_source, RID p_texture, const Vector2 &p_topleft, const Vector2 &p_bottomright, NinePatchAxisMode p_x_axis_mode = NINE_PATCH_STRETCH, NinePatchAxisMode p_y_axis_mode = NINE_PATCH_STRETCH, bool p_draw_center = true, const Color &p_modulate = Color(1, 1, 1)) = 0; + virtual void canvas_item_add_nine_patch(RID p_item, const Rect2 &p_rect, const Rect2 &p_source, RID p_texture, const Vector2 &p_topleft, const Vector2 &p_bottomright, RSE::NinePatchAxisMode p_x_axis_mode = RSE::NINE_PATCH_STRETCH, RSE::NinePatchAxisMode p_y_axis_mode = RSE::NINE_PATCH_STRETCH, bool p_draw_center = true, const Color &p_modulate = Color(1, 1, 1)) = 0; virtual void canvas_item_add_primitive(RID p_item, const Vector &p_points, const Vector &p_colors, const Vector &p_uvs, RID p_texture) = 0; virtual void canvas_item_add_polygon(RID p_item, const Vector &p_points, const Vector &p_colors, const Vector &p_uvs = Vector(), RID p_texture = RID()) = 0; virtual void canvas_item_add_triangle_array(RID p_item, const Vector &p_indices, const Vector &p_points, const Vector &p_colors, const Vector &p_uvs = Vector(), const Vector &p_bones = Vector(), const Vector &p_weights = Vector(), RID p_texture = RID(), int p_count = -1) = 0; @@ -1645,14 +926,7 @@ public: virtual void canvas_item_set_visibility_notifier(RID p_item, bool p_enable, const Rect2 &p_area, const Callable &p_enter_callbable, const Callable &p_exit_callable) = 0; - enum CanvasGroupMode { - CANVAS_GROUP_MODE_DISABLED, - CANVAS_GROUP_MODE_CLIP_ONLY, - CANVAS_GROUP_MODE_CLIP_AND_DRAW, - CANVAS_GROUP_MODE_TRANSPARENT, - }; - - virtual void canvas_item_set_canvas_group_mode(RID p_item, CanvasGroupMode p_mode, float p_clear_margin = 5.0, bool p_fit_empty = false, float p_fit_margin = 0.0, bool p_blur_mipmaps = false) = 0; + virtual void canvas_item_set_canvas_group_mode(RID p_item, RSE::CanvasGroupMode p_mode, float p_clear_margin = 5.0, bool p_fit_empty = false, float p_fit_margin = 0.0, bool p_blur_mipmaps = false) = 0; virtual void canvas_item_set_debug_redraw(bool p_enabled) = 0; virtual bool canvas_item_get_debug_redraw() const = 0; @@ -1662,14 +936,10 @@ public: virtual void canvas_item_transform_physics_interpolation(RID p_item, const Transform2D &p_transform) = 0; /* CANVAS LIGHT */ + virtual RID canvas_light_create() = 0; - enum CanvasLightMode { - CANVAS_LIGHT_MODE_POINT, - CANVAS_LIGHT_MODE_DIRECTIONAL, - }; - - virtual void canvas_light_set_mode(RID p_light, CanvasLightMode p_mode) = 0; + virtual void canvas_light_set_mode(RID p_light, RSE::CanvasLightMode p_mode) = 0; virtual void canvas_light_attach_to_canvas(RID p_light, RID p_canvas) = 0; virtual void canvas_light_set_enabled(RID p_light, bool p_enabled) = 0; @@ -1688,23 +958,10 @@ public: virtual void canvas_light_set_texture(RID p_light, RID p_texture) = 0; virtual void canvas_light_set_texture_offset(RID p_light, const Vector2 &p_offset) = 0; - enum CanvasLightBlendMode { - CANVAS_LIGHT_BLEND_MODE_ADD, - CANVAS_LIGHT_BLEND_MODE_SUB, - CANVAS_LIGHT_BLEND_MODE_MIX, - }; - - virtual void canvas_light_set_blend_mode(RID p_light, CanvasLightBlendMode p_mode) = 0; - - enum CanvasLightShadowFilter { - CANVAS_LIGHT_FILTER_NONE, - CANVAS_LIGHT_FILTER_PCF5, - CANVAS_LIGHT_FILTER_PCF13, - CANVAS_LIGHT_FILTER_MAX - }; + virtual void canvas_light_set_blend_mode(RID p_light, RSE::CanvasLightBlendMode p_mode) = 0; virtual void canvas_light_set_shadow_enabled(RID p_light, bool p_enabled) = 0; - virtual void canvas_light_set_shadow_filter(RID p_light, CanvasLightShadowFilter p_filter) = 0; + virtual void canvas_light_set_shadow_filter(RID p_light, RSE::CanvasLightShadowFilter p_filter) = 0; virtual void canvas_light_set_shadow_color(RID p_light, const Color &p_color) = 0; virtual void canvas_light_set_shadow_smooth(RID p_light, float p_smooth) = 0; @@ -1712,7 +969,7 @@ public: virtual void canvas_light_reset_physics_interpolation(RID p_light) = 0; virtual void canvas_light_transform_physics_interpolation(RID p_light, const Transform2D &p_transform) = 0; - /* CANVAS LIGHT OCCLUDER */ + /* CANVAS LIGHT OCCLUDER API */ virtual RID canvas_light_occluder_create() = 0; virtual void canvas_light_occluder_attach_to_canvas(RID p_occluder, RID p_canvas) = 0; @@ -1726,60 +983,21 @@ public: virtual void canvas_light_occluder_reset_physics_interpolation(RID p_occluder) = 0; virtual void canvas_light_occluder_transform_physics_interpolation(RID p_occluder, const Transform2D &p_transform) = 0; - /* CANVAS LIGHT OCCLUDER POLYGON */ + /* CANVAS OCCLUDER POLYGON API */ virtual RID canvas_occluder_polygon_create() = 0; virtual void canvas_occluder_polygon_set_shape(RID p_occluder_polygon, const Vector &p_shape, bool p_closed) = 0; - enum CanvasOccluderPolygonCullMode { - CANVAS_OCCLUDER_POLYGON_CULL_DISABLED, - CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE, - CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE, - }; - - virtual void canvas_occluder_polygon_set_cull_mode(RID p_occluder_polygon, CanvasOccluderPolygonCullMode p_mode) = 0; + virtual void canvas_occluder_polygon_set_cull_mode(RID p_occluder_polygon, RSE::CanvasOccluderPolygonCullMode p_mode) = 0; virtual void canvas_set_shadow_texture_size(int p_size) = 0; Rect2 debug_canvas_item_get_rect(RID p_item); virtual Rect2 _debug_canvas_item_get_rect(RID p_item) = 0; - /* GLOBAL SHADER UNIFORMS */ + /* GLOBAL SHADER PARAMETERS API */ - enum GlobalShaderParameterType { - GLOBAL_VAR_TYPE_BOOL, - GLOBAL_VAR_TYPE_BVEC2, - GLOBAL_VAR_TYPE_BVEC3, - GLOBAL_VAR_TYPE_BVEC4, - GLOBAL_VAR_TYPE_INT, - GLOBAL_VAR_TYPE_IVEC2, - GLOBAL_VAR_TYPE_IVEC3, - GLOBAL_VAR_TYPE_IVEC4, - GLOBAL_VAR_TYPE_RECT2I, - GLOBAL_VAR_TYPE_UINT, - GLOBAL_VAR_TYPE_UVEC2, - GLOBAL_VAR_TYPE_UVEC3, - GLOBAL_VAR_TYPE_UVEC4, - GLOBAL_VAR_TYPE_FLOAT, - GLOBAL_VAR_TYPE_VEC2, - GLOBAL_VAR_TYPE_VEC3, - GLOBAL_VAR_TYPE_VEC4, - GLOBAL_VAR_TYPE_COLOR, - GLOBAL_VAR_TYPE_RECT2, - GLOBAL_VAR_TYPE_MAT2, - GLOBAL_VAR_TYPE_MAT3, - GLOBAL_VAR_TYPE_MAT4, - GLOBAL_VAR_TYPE_TRANSFORM_2D, - GLOBAL_VAR_TYPE_TRANSFORM, - GLOBAL_VAR_TYPE_SAMPLER2D, - GLOBAL_VAR_TYPE_SAMPLER2DARRAY, - GLOBAL_VAR_TYPE_SAMPLER3D, - GLOBAL_VAR_TYPE_SAMPLERCUBE, - GLOBAL_VAR_TYPE_SAMPLEREXT, - GLOBAL_VAR_TYPE_MAX - }; - - virtual void global_shader_parameter_add(const StringName &p_name, GlobalShaderParameterType p_type, const Variant &p_value) = 0; + virtual void global_shader_parameter_add(const StringName &p_name, RSE::GlobalShaderParameterType p_type, const Variant &p_value) = 0; virtual void global_shader_parameter_remove(const StringName &p_name) = 0; virtual Vector global_shader_parameter_get_list() const = 0; @@ -1787,12 +1005,12 @@ public: virtual void global_shader_parameter_set_override(const StringName &p_name, const Variant &p_value) = 0; virtual Variant global_shader_parameter_get(const StringName &p_name) const = 0; - virtual GlobalShaderParameterType global_shader_parameter_get_type(const StringName &p_name) const = 0; + virtual RSE::GlobalShaderParameterType global_shader_parameter_get_type(const StringName &p_name) const = 0; virtual void global_shader_parameters_load_settings(bool p_load_textures) = 0; virtual void global_shader_parameters_clear() = 0; - static int global_shader_uniform_type_get_shader_datatype(GlobalShaderParameterType p_type); + static int global_shader_uniform_type_get_shader_datatype(RSE::GlobalShaderParameterType p_type); /* FREE */ @@ -1821,22 +1039,7 @@ public: /* STATUS INFORMATION */ - enum RenderingInfo { - RENDERING_INFO_TOTAL_OBJECTS_IN_FRAME, - RENDERING_INFO_TOTAL_PRIMITIVES_IN_FRAME, - RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME, - RENDERING_INFO_TEXTURE_MEM_USED, - RENDERING_INFO_BUFFER_MEM_USED, - RENDERING_INFO_VIDEO_MEM_USED, - RENDERING_INFO_PIPELINE_COMPILATIONS_CANVAS, - RENDERING_INFO_PIPELINE_COMPILATIONS_MESH, - RENDERING_INFO_PIPELINE_COMPILATIONS_SURFACE, - RENDERING_INFO_PIPELINE_COMPILATIONS_DRAW, - RENDERING_INFO_PIPELINE_COMPILATIONS_SPECIALIZATION, - RENDERING_INFO_MAX - }; - - virtual uint64_t get_rendering_info(RenderingInfo p_info) = 0; + virtual uint64_t get_rendering_info(RSE::RenderingInfo p_info) = 0; virtual String get_video_adapter_name() const = 0; virtual String get_video_adapter_vendor() const = 0; virtual RenderingDeviceEnums::DeviceType get_video_adapter_type() const = 0; @@ -1870,33 +1073,22 @@ public: virtual void mesh_add_surface_from_mesh_data(RID p_mesh, const Geometry3D::MeshData &p_mesh_data); virtual void mesh_add_surface_from_planes(RID p_mesh, const Vector &p_planes); - enum SplashStretchMode { - SPLASH_STRETCH_MODE_DISABLED, - SPLASH_STRETCH_MODE_KEEP, - SPLASH_STRETCH_MODE_KEEP_WIDTH, - SPLASH_STRETCH_MODE_KEEP_HEIGHT, - SPLASH_STRETCH_MODE_COVER, - SPLASH_STRETCH_MODE_IGNORE, - }; + /* MISC */ - virtual void set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, SplashStretchMode p_stretch_mode, bool p_use_filter = true) = 0; - static Rect2 get_splash_stretched_screen_rect(const Size2 &p_image_size, const Size2 &p_window_size, SplashStretchMode p_stretch_mode); // Helper for splash screen + virtual void set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RSE::SplashStretchMode p_stretch_mode, bool p_use_filter = true) = 0; + static Rect2 get_splash_stretched_screen_rect(const Size2 &p_image_size, const Size2 &p_window_size, RSE::SplashStretchMode p_stretch_mode); // Helper for splash screen #ifndef DISABLE_DEPRECATED void set_boot_image(const Ref &p_image, const Color &p_color, bool p_scale, bool p_use_filter = true); // Superseded, but left to preserve compat. #endif - _ALWAYS_INLINE_ static SplashStretchMode map_scaling_option_to_stretch_mode(bool p_scale) { - return p_scale ? SplashStretchMode::SPLASH_STRETCH_MODE_KEEP : SplashStretchMode::SPLASH_STRETCH_MODE_DISABLED; + _ALWAYS_INLINE_ static RSE::SplashStretchMode map_scaling_option_to_stretch_mode(bool p_scale) { + return p_scale ? RSE::SplashStretchMode::SPLASH_STRETCH_MODE_KEEP : RSE::SplashStretchMode::SPLASH_STRETCH_MODE_DISABLED; } virtual Color get_default_clear_color() = 0; virtual void set_default_clear_color(const Color &p_color) = 0; #ifndef DISABLE_DEPRECATED // Never actually used, should be removed when we can break compatibility. - enum Features { - FEATURE_SHADERS, - FEATURE_MULTITHREADED, - }; - virtual bool has_feature(Features p_feature) const = 0; + virtual bool has_feature(RSE::Features p_feature) const = 0; #endif virtual bool has_os_feature(const String &p_feature) const = 0; @@ -1941,7 +1133,7 @@ public: private: // Binder helpers - RID _texture_2d_layered_create(const TypedArray &p_layers, TextureLayeredType p_layered_type); + RID _texture_2d_layered_create(const TypedArray &p_layers, RSE::TextureLayeredType p_layered_type); RID _texture_3d_create(Image::Format p_format, int p_width, int p_height, int p_depth, bool p_mipmaps, const TypedArray &p_data); void _texture_3d_update(RID p_texture, const TypedArray &p_data); TypedArray _texture_3d_get(RID p_texture) const; @@ -1960,93 +1152,93 @@ private: }; // Make variant understand the enums. -VARIANT_ENUM_CAST(RenderingServer::TextureType); -VARIANT_ENUM_CAST(RenderingServer::TextureLayeredType); -VARIANT_ENUM_CAST(RenderingServer::CubeMapLayer); -VARIANT_ENUM_CAST(RenderingServer::TextureDrawableFormat); -VARIANT_ENUM_CAST(RenderingServer::PipelineSource); -VARIANT_ENUM_CAST(RenderingServer::ShaderMode); -VARIANT_ENUM_CAST(RenderingServer::ArrayType); -VARIANT_BITFIELD_CAST(RenderingServer::ArrayFormat); -VARIANT_ENUM_CAST(RenderingServer::ArrayCustomFormat); -VARIANT_ENUM_CAST(RenderingServer::PrimitiveType); -VARIANT_ENUM_CAST(RenderingServer::BlendShapeMode); -VARIANT_ENUM_CAST(RenderingServer::MultimeshTransformFormat); -VARIANT_ENUM_CAST(RenderingServer::MultimeshPhysicsInterpolationQuality); -VARIANT_ENUM_CAST(RenderingServer::LightType); -VARIANT_ENUM_CAST(RenderingServer::LightParam); -VARIANT_ENUM_CAST(RenderingServer::LightBakeMode); -VARIANT_ENUM_CAST(RenderingServer::LightOmniShadowMode); -VARIANT_ENUM_CAST(RenderingServer::LightDirectionalShadowMode); -VARIANT_ENUM_CAST(RenderingServer::LightDirectionalSkyMode); -VARIANT_ENUM_CAST(RenderingServer::LightProjectorFilter); -VARIANT_ENUM_CAST(RenderingServer::ReflectionProbeUpdateMode); -VARIANT_ENUM_CAST(RenderingServer::ReflectionProbeAmbientMode); -VARIANT_ENUM_CAST(RenderingServer::VoxelGIQuality); -VARIANT_ENUM_CAST(RenderingServer::DecalTexture); -VARIANT_ENUM_CAST(RenderingServer::DecalFilter); -VARIANT_ENUM_CAST(RenderingServer::ParticlesMode); -VARIANT_ENUM_CAST(RenderingServer::ParticlesTransformAlign); -VARIANT_ENUM_CAST(RenderingServer::ParticlesDrawOrder); -VARIANT_ENUM_CAST(RenderingServer::ParticlesEmitFlags); -VARIANT_ENUM_CAST(RenderingServer::ParticlesCollisionType); -VARIANT_ENUM_CAST(RenderingServer::ParticlesCollisionHeightfieldResolution); -VARIANT_ENUM_CAST(RenderingServer::FogVolumeShape); -VARIANT_ENUM_CAST(RenderingServer::ViewportScaling3DMode); -VARIANT_ENUM_CAST(RenderingServer::ViewportUpdateMode); -VARIANT_ENUM_CAST(RenderingServer::ViewportClearMode); -VARIANT_ENUM_CAST(RenderingServer::ViewportEnvironmentMode); -VARIANT_ENUM_CAST(RenderingServer::ViewportMSAA); -VARIANT_ENUM_CAST(RenderingServer::ViewportAnisotropicFiltering); -VARIANT_ENUM_CAST(RenderingServer::ViewportScreenSpaceAA); -VARIANT_ENUM_CAST(RenderingServer::ViewportRenderInfo); -VARIANT_ENUM_CAST(RenderingServer::ViewportRenderInfoType); -VARIANT_ENUM_CAST(RenderingServer::ViewportDebugDraw); -VARIANT_ENUM_CAST(RenderingServer::ViewportOcclusionCullingBuildQuality); -VARIANT_ENUM_CAST(RenderingServer::ViewportSDFOversize); -VARIANT_ENUM_CAST(RenderingServer::ViewportSDFScale); -VARIANT_ENUM_CAST(RenderingServer::ViewportVRSMode); -VARIANT_ENUM_CAST(RenderingServer::ViewportVRSUpdateMode); -VARIANT_ENUM_CAST(RenderingServer::SkyMode); -VARIANT_ENUM_CAST(RenderingServer::CompositorEffectCallbackType); -VARIANT_ENUM_CAST(RenderingServer::CompositorEffectFlags); -VARIANT_ENUM_CAST(RenderingServer::EnvironmentBG); -VARIANT_ENUM_CAST(RenderingServer::EnvironmentAmbientSource); -VARIANT_ENUM_CAST(RenderingServer::EnvironmentReflectionSource); -VARIANT_ENUM_CAST(RenderingServer::EnvironmentGlowBlendMode); -VARIANT_ENUM_CAST(RenderingServer::EnvironmentFogMode); -VARIANT_ENUM_CAST(RenderingServer::EnvironmentToneMapper); -VARIANT_ENUM_CAST(RenderingServer::EnvironmentSSRRoughnessQuality); -VARIANT_ENUM_CAST(RenderingServer::EnvironmentSSAOQuality); -VARIANT_ENUM_CAST(RenderingServer::EnvironmentSSILQuality); -VARIANT_ENUM_CAST(RenderingServer::EnvironmentSDFGIFramesToConverge); -VARIANT_ENUM_CAST(RenderingServer::EnvironmentSDFGIRayCount); -VARIANT_ENUM_CAST(RenderingServer::EnvironmentSDFGIFramesToUpdateLight); -VARIANT_ENUM_CAST(RenderingServer::EnvironmentSDFGIYScale); -VARIANT_ENUM_CAST(RenderingServer::SubSurfaceScatteringQuality); -VARIANT_ENUM_CAST(RenderingServer::DOFBlurQuality); -VARIANT_ENUM_CAST(RenderingServer::DOFBokehShape); -VARIANT_ENUM_CAST(RenderingServer::ShadowQuality); -VARIANT_ENUM_CAST(RenderingServer::InstanceType); -VARIANT_ENUM_CAST(RenderingServer::InstanceFlags); -VARIANT_ENUM_CAST(RenderingServer::ShadowCastingSetting); -VARIANT_ENUM_CAST(RenderingServer::VisibilityRangeFadeMode); -VARIANT_ENUM_CAST(RenderingServer::NinePatchAxisMode); -VARIANT_ENUM_CAST(RenderingServer::CanvasItemTextureFilter); -VARIANT_ENUM_CAST(RenderingServer::CanvasItemTextureRepeat); -VARIANT_ENUM_CAST(RenderingServer::CanvasGroupMode); -VARIANT_ENUM_CAST(RenderingServer::CanvasLightMode); -VARIANT_ENUM_CAST(RenderingServer::CanvasLightBlendMode); -VARIANT_ENUM_CAST(RenderingServer::CanvasLightShadowFilter); -VARIANT_ENUM_CAST(RenderingServer::CanvasOccluderPolygonCullMode); -VARIANT_ENUM_CAST(RenderingServer::GlobalShaderParameterType); -VARIANT_ENUM_CAST(RenderingServer::RenderingInfo); -VARIANT_ENUM_CAST(RenderingServer::SplashStretchMode); -VARIANT_ENUM_CAST(RenderingServer::CanvasTextureChannel); -VARIANT_ENUM_CAST(RenderingServer::BakeChannels); +VARIANT_ENUM_CAST_EXT(RSE::TextureType, RenderingServer::TextureType); +VARIANT_ENUM_CAST_EXT(RSE::TextureLayeredType, RenderingServer::TextureLayeredType); +VARIANT_ENUM_CAST_EXT(RSE::CubeMapLayer, RenderingServer::CubeMapLayer); +VARIANT_ENUM_CAST_EXT(RSE::TextureDrawableFormat, RenderingServer::TextureDrawableFormat); +VARIANT_ENUM_CAST_EXT(RSE::PipelineSource, RenderingServer::PipelineSource); +VARIANT_ENUM_CAST_EXT(RSE::ShaderMode, RenderingServer::ShaderMode); +VARIANT_ENUM_CAST_EXT(RSE::ArrayType, RenderingServer::ArrayType); +VARIANT_BITFIELD_CAST_EXT(RSE::ArrayFormat, RenderingServer::ArrayFormat); +VARIANT_ENUM_CAST_EXT(RSE::ArrayCustomFormat, RenderingServer::ArrayCustomFormat); +VARIANT_ENUM_CAST_EXT(RSE::PrimitiveType, RenderingServer::PrimitiveType); +VARIANT_ENUM_CAST_EXT(RSE::BlendShapeMode, RenderingServer::BlendShapeMode); +VARIANT_ENUM_CAST_EXT(RSE::MultimeshTransformFormat, RenderingServer::MultimeshTransformFormat); +VARIANT_ENUM_CAST_EXT(RSE::MultimeshPhysicsInterpolationQuality, RenderingServer::MultimeshPhysicsInterpolationQuality); +VARIANT_ENUM_CAST_EXT(RSE::LightType, RenderingServer::LightType); +VARIANT_ENUM_CAST_EXT(RSE::LightParam, RenderingServer::LightParam); +VARIANT_ENUM_CAST_EXT(RSE::LightBakeMode, RenderingServer::LightBakeMode); +VARIANT_ENUM_CAST_EXT(RSE::LightOmniShadowMode, RenderingServer::LightOmniShadowMode); +VARIANT_ENUM_CAST_EXT(RSE::LightDirectionalShadowMode, RenderingServer::LightDirectionalShadowMode); +VARIANT_ENUM_CAST_EXT(RSE::LightDirectionalSkyMode, RenderingServer::LightDirectionalSkyMode); +VARIANT_ENUM_CAST_EXT(RSE::LightProjectorFilter, RenderingServer::LightProjectorFilter); +VARIANT_ENUM_CAST_EXT(RSE::ReflectionProbeUpdateMode, RenderingServer::ReflectionProbeUpdateMode); +VARIANT_ENUM_CAST_EXT(RSE::ReflectionProbeAmbientMode, RenderingServer::ReflectionProbeAmbientMode); +VARIANT_ENUM_CAST_EXT(RSE::VoxelGIQuality, RenderingServer::VoxelGIQuality); +VARIANT_ENUM_CAST_EXT(RSE::DecalTexture, RenderingServer::DecalTexture); +VARIANT_ENUM_CAST_EXT(RSE::DecalFilter, RenderingServer::DecalFilter); +VARIANT_ENUM_CAST_EXT(RSE::ParticlesMode, RenderingServer::ParticlesMode); +VARIANT_ENUM_CAST_EXT(RSE::ParticlesTransformAlign, RenderingServer::ParticlesTransformAlign); +VARIANT_ENUM_CAST_EXT(RSE::ParticlesDrawOrder, RenderingServer::ParticlesDrawOrder); +VARIANT_ENUM_CAST_EXT(RSE::ParticlesEmitFlags, RenderingServer::ParticlesEmitFlags); +VARIANT_ENUM_CAST_EXT(RSE::ParticlesCollisionType, RenderingServer::ParticlesCollisionType); +VARIANT_ENUM_CAST_EXT(RSE::ParticlesCollisionHeightfieldResolution, RenderingServer::ParticlesCollisionHeightfieldResolution); +VARIANT_ENUM_CAST_EXT(RSE::FogVolumeShape, RenderingServer::FogVolumeShape); +VARIANT_ENUM_CAST_EXT(RSE::ViewportScaling3DMode, RenderingServer::ViewportScaling3DMode); +VARIANT_ENUM_CAST_EXT(RSE::ViewportUpdateMode, RenderingServer::ViewportUpdateMode); +VARIANT_ENUM_CAST_EXT(RSE::ViewportClearMode, RenderingServer::ViewportClearMode); +VARIANT_ENUM_CAST_EXT(RSE::ViewportEnvironmentMode, RenderingServer::ViewportEnvironmentMode); +VARIANT_ENUM_CAST_EXT(RSE::ViewportMSAA, RenderingServer::ViewportMSAA); +VARIANT_ENUM_CAST_EXT(RSE::ViewportAnisotropicFiltering, RenderingServer::ViewportAnisotropicFiltering); +VARIANT_ENUM_CAST_EXT(RSE::ViewportScreenSpaceAA, RenderingServer::ViewportScreenSpaceAA); +VARIANT_ENUM_CAST_EXT(RSE::ViewportRenderInfo, RenderingServer::ViewportRenderInfo); +VARIANT_ENUM_CAST_EXT(RSE::ViewportRenderInfoType, RenderingServer::ViewportRenderInfoType); +VARIANT_ENUM_CAST_EXT(RSE::ViewportDebugDraw, RenderingServer::ViewportDebugDraw); +VARIANT_ENUM_CAST_EXT(RSE::ViewportOcclusionCullingBuildQuality, RenderingServer::ViewportOcclusionCullingBuildQuality); +VARIANT_ENUM_CAST_EXT(RSE::ViewportSDFOversize, RenderingServer::ViewportSDFOversize); +VARIANT_ENUM_CAST_EXT(RSE::ViewportSDFScale, RenderingServer::ViewportSDFScale); +VARIANT_ENUM_CAST_EXT(RSE::ViewportVRSMode, RenderingServer::ViewportVRSMode); +VARIANT_ENUM_CAST_EXT(RSE::ViewportVRSUpdateMode, RenderingServer::ViewportVRSUpdateMode); +VARIANT_ENUM_CAST_EXT(RSE::SkyMode, RenderingServer::SkyMode); +VARIANT_ENUM_CAST_EXT(RSE::CompositorEffectCallbackType, RenderingServer::CompositorEffectCallbackType); +VARIANT_ENUM_CAST_EXT(RSE::CompositorEffectFlags, RenderingServer::CompositorEffectFlags); +VARIANT_ENUM_CAST_EXT(RSE::EnvironmentBG, RenderingServer::EnvironmentBG); +VARIANT_ENUM_CAST_EXT(RSE::EnvironmentAmbientSource, RenderingServer::EnvironmentAmbientSource); +VARIANT_ENUM_CAST_EXT(RSE::EnvironmentReflectionSource, RenderingServer::EnvironmentReflectionSource); +VARIANT_ENUM_CAST_EXT(RSE::EnvironmentGlowBlendMode, RenderingServer::EnvironmentGlowBlendMode); +VARIANT_ENUM_CAST_EXT(RSE::EnvironmentFogMode, RenderingServer::EnvironmentFogMode); +VARIANT_ENUM_CAST_EXT(RSE::EnvironmentToneMapper, RenderingServer::EnvironmentToneMapper); +VARIANT_ENUM_CAST_EXT(RSE::EnvironmentSSRRoughnessQuality, RenderingServer::EnvironmentSSRRoughnessQuality); +VARIANT_ENUM_CAST_EXT(RSE::EnvironmentSSAOQuality, RenderingServer::EnvironmentSSAOQuality); +VARIANT_ENUM_CAST_EXT(RSE::EnvironmentSSILQuality, RenderingServer::EnvironmentSSILQuality); +VARIANT_ENUM_CAST_EXT(RSE::EnvironmentSDFGIFramesToConverge, RenderingServer::EnvironmentSDFGIFramesToConverge); +VARIANT_ENUM_CAST_EXT(RSE::EnvironmentSDFGIRayCount, RenderingServer::EnvironmentSDFGIRayCount); +VARIANT_ENUM_CAST_EXT(RSE::EnvironmentSDFGIFramesToUpdateLight, RenderingServer::EnvironmentSDFGIFramesToUpdateLight); +VARIANT_ENUM_CAST_EXT(RSE::EnvironmentSDFGIYScale, RenderingServer::EnvironmentSDFGIYScale); +VARIANT_ENUM_CAST_EXT(RSE::SubSurfaceScatteringQuality, RenderingServer::SubSurfaceScatteringQuality); +VARIANT_ENUM_CAST_EXT(RSE::DOFBlurQuality, RenderingServer::DOFBlurQuality); +VARIANT_ENUM_CAST_EXT(RSE::DOFBokehShape, RenderingServer::DOFBokehShape); +VARIANT_ENUM_CAST_EXT(RSE::ShadowQuality, RenderingServer::ShadowQuality); +VARIANT_ENUM_CAST_EXT(RSE::InstanceType, RenderingServer::InstanceType); +VARIANT_ENUM_CAST_EXT(RSE::InstanceFlags, RenderingServer::InstanceFlags); +VARIANT_ENUM_CAST_EXT(RSE::ShadowCastingSetting, RenderingServer::ShadowCastingSetting); +VARIANT_ENUM_CAST_EXT(RSE::VisibilityRangeFadeMode, RenderingServer::VisibilityRangeFadeMode); +VARIANT_ENUM_CAST_EXT(RSE::NinePatchAxisMode, RenderingServer::NinePatchAxisMode); +VARIANT_ENUM_CAST_EXT(RSE::CanvasItemTextureFilter, RenderingServer::CanvasItemTextureFilter); +VARIANT_ENUM_CAST_EXT(RSE::CanvasItemTextureRepeat, RenderingServer::CanvasItemTextureRepeat); +VARIANT_ENUM_CAST_EXT(RSE::CanvasGroupMode, RenderingServer::CanvasGroupMode); +VARIANT_ENUM_CAST_EXT(RSE::CanvasLightMode, RenderingServer::CanvasLightMode); +VARIANT_ENUM_CAST_EXT(RSE::CanvasLightBlendMode, RenderingServer::CanvasLightBlendMode); +VARIANT_ENUM_CAST_EXT(RSE::CanvasLightShadowFilter, RenderingServer::CanvasLightShadowFilter); +VARIANT_ENUM_CAST_EXT(RSE::CanvasOccluderPolygonCullMode, RenderingServer::CanvasOccluderPolygonCullMode); +VARIANT_ENUM_CAST_EXT(RSE::GlobalShaderParameterType, RenderingServer::GlobalShaderParameterType); +VARIANT_ENUM_CAST_EXT(RSE::RenderingInfo, RenderingServer::RenderingInfo); +VARIANT_ENUM_CAST_EXT(RSE::SplashStretchMode, RenderingServer::SplashStretchMode); +VARIANT_ENUM_CAST_EXT(RSE::CanvasTextureChannel, RenderingServer::CanvasTextureChannel); +VARIANT_ENUM_CAST_EXT(RSE::BakeChannels, RenderingServer::BakeChannels); #ifndef DISABLE_DEPRECATED -VARIANT_ENUM_CAST(RenderingServer::Features); +VARIANT_ENUM_CAST_EXT(RSE::Features, RenderingServer::Features); #endif // Alias to make it easier to use. diff --git a/servers/rendering/rendering_server_constants.h b/servers/rendering/rendering_server_constants.h deleted file mode 100644 index 74cbe3115b..0000000000 --- a/servers/rendering/rendering_server_constants.h +++ /dev/null @@ -1,45 +0,0 @@ -/**************************************************************************/ -/* rendering_server_constants.h */ -/**************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/**************************************************************************/ -/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ -/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/**************************************************************************/ - -#pragma once - -// Use for constants etc. that need not be included as often as rendering_server.h -// to reduce dependencies and prevent slow compilation. - -// This is a "cheap" include, and can be used from scene side code as well as servers. - -// N.B. ONLY allow these defined in DEV_ENABLED builds, they will slow -// performance, and are only necessary to use for debugging. -#ifdef DEV_ENABLED - -// Uncomment this define to produce debugging output for physics interpolation. -//#define RENDERING_SERVER_DEBUG_PHYSICS_INTERPOLATION - -#endif // DEV_ENABLED diff --git a/servers/rendering/rendering_server_default.cpp b/servers/rendering/rendering_server_default.cpp index 13a04891e0..8a86e1631c 100644 --- a/servers/rendering/rendering_server_default.cpp +++ b/servers/rendering/rendering_server_default.cpp @@ -298,23 +298,23 @@ void RenderingServerDefault::finish() { /* STATUS INFORMATION */ -uint64_t RenderingServerDefault::get_rendering_info(RenderingInfo p_info) { - if (p_info == RENDERING_INFO_TOTAL_OBJECTS_IN_FRAME) { +uint64_t RenderingServerDefault::get_rendering_info(RSE::RenderingInfo p_info) { + if (p_info == RSE::RENDERING_INFO_TOTAL_OBJECTS_IN_FRAME) { return RSG::viewport->get_total_objects_drawn(); - } else if (p_info == RENDERING_INFO_TOTAL_PRIMITIVES_IN_FRAME) { + } else if (p_info == RSE::RENDERING_INFO_TOTAL_PRIMITIVES_IN_FRAME) { return RSG::viewport->get_total_primitives_drawn(); - } else if (p_info == RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME) { + } else if (p_info == RSE::RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME) { return RSG::viewport->get_total_draw_calls_used(); - } else if (p_info == RENDERING_INFO_PIPELINE_COMPILATIONS_CANVAS) { - return RSG::canvas_render->get_pipeline_compilations(PIPELINE_SOURCE_CANVAS); - } else if (p_info == RENDERING_INFO_PIPELINE_COMPILATIONS_MESH) { - return RSG::canvas_render->get_pipeline_compilations(PIPELINE_SOURCE_MESH) + RSG::scene->get_pipeline_compilations(PIPELINE_SOURCE_MESH); - } else if (p_info == RENDERING_INFO_PIPELINE_COMPILATIONS_SURFACE) { - return RSG::scene->get_pipeline_compilations(PIPELINE_SOURCE_SURFACE); - } else if (p_info == RENDERING_INFO_PIPELINE_COMPILATIONS_DRAW) { - return RSG::canvas_render->get_pipeline_compilations(PIPELINE_SOURCE_DRAW) + RSG::scene->get_pipeline_compilations(PIPELINE_SOURCE_DRAW); - } else if (p_info == RENDERING_INFO_PIPELINE_COMPILATIONS_SPECIALIZATION) { - return RSG::canvas_render->get_pipeline_compilations(PIPELINE_SOURCE_SPECIALIZATION) + RSG::scene->get_pipeline_compilations(PIPELINE_SOURCE_SPECIALIZATION); + } else if (p_info == RSE::RENDERING_INFO_PIPELINE_COMPILATIONS_CANVAS) { + return RSG::canvas_render->get_pipeline_compilations(RSE::PIPELINE_SOURCE_CANVAS); + } else if (p_info == RSE::RENDERING_INFO_PIPELINE_COMPILATIONS_MESH) { + return RSG::canvas_render->get_pipeline_compilations(RSE::PIPELINE_SOURCE_MESH) + RSG::scene->get_pipeline_compilations(RSE::PIPELINE_SOURCE_MESH); + } else if (p_info == RSE::RENDERING_INFO_PIPELINE_COMPILATIONS_SURFACE) { + return RSG::scene->get_pipeline_compilations(RSE::PIPELINE_SOURCE_SURFACE); + } else if (p_info == RSE::RENDERING_INFO_PIPELINE_COMPILATIONS_DRAW) { + return RSG::canvas_render->get_pipeline_compilations(RSE::PIPELINE_SOURCE_DRAW) + RSG::scene->get_pipeline_compilations(RSE::PIPELINE_SOURCE_DRAW); + } else if (p_info == RSE::RENDERING_INFO_PIPELINE_COMPILATIONS_SPECIALIZATION) { + return RSG::canvas_render->get_pipeline_compilations(RSE::PIPELINE_SOURCE_SPECIALIZATION) + RSG::scene->get_pipeline_compilations(RSE::PIPELINE_SOURCE_SPECIALIZATION); } return RSG::utilities->get_rendering_info(p_info); } @@ -346,7 +346,7 @@ void RenderingServerDefault::set_default_clear_color(const Color &p_color) { } #ifndef DISABLE_DEPRECATED -bool RenderingServerDefault::has_feature(Features p_feature) const { +bool RenderingServerDefault::has_feature(RSE::Features p_feature) const { return false; } #endif diff --git a/servers/rendering/rendering_server_default.h b/servers/rendering/rendering_server_default.h index 077c048f7a..035765bac6 100644 --- a/servers/rendering/rendering_server_default.h +++ b/servers/rendering/rendering_server_default.h @@ -39,6 +39,7 @@ #include "rendering_server_globals.h" #include "servers/rendering/renderer_compositor.h" #include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" #include "servers/server_wrap_mt_common.h" class RenderingServerDefault : public RenderingServer { @@ -209,14 +210,14 @@ public: //these go pass-through, as they can be called from any thread FUNCRIDTEX1(texture_2d, const Ref &) - FUNCRIDTEX2(texture_2d_layered, const Vector> &, TextureLayeredType) + FUNCRIDTEX2(texture_2d_layered, const Vector> &, RSE::TextureLayeredType) FUNCRIDTEX6(texture_3d, Image::Format, int, int, int, bool, const Vector> &) FUNCRIDTEX3(texture_external, int, int, uint64_t) FUNCRIDTEX1(texture_proxy, RID) - FUNCRIDTEX5(texture_drawable, int, int, TextureDrawableFormat, const Color &, bool) + FUNCRIDTEX5(texture_drawable, int, int, RSE::TextureDrawableFormat, const Color &, bool) // Called directly, not through the command queue. - virtual RID texture_create_from_native_handle(TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers = 1, TextureLayeredType p_layered_type = TEXTURE_LAYERED_2D_ARRAY) override { + virtual RID texture_create_from_native_handle(RSE::TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers = 1, RSE::TextureLayeredType p_layered_type = RSE::TEXTURE_LAYERED_2D_ARRAY) override { return RSG::texture_storage->texture_create_from_native_handle(p_type, p_format, p_native_handle, p_width, p_height, p_depth, p_layers, p_layered_type); } @@ -230,7 +231,7 @@ public: //these also go pass-through FUNCRIDTEX0(texture_2d_placeholder) - FUNCRIDTEX1(texture_2d_layered_placeholder, TextureLayeredType) + FUNCRIDTEX1(texture_2d_layered_placeholder, RSE::TextureLayeredType) FUNCRIDTEX0(texture_3d_placeholder) FUNC1RC(Ref, texture_2d_get, RID) @@ -260,7 +261,7 @@ public: FUNC1(texture_debug_usage, List *) FUNC2(texture_set_force_redraw_if_visible, RID, bool) - FUNCRIDTEX2(texture_rd, const RID &, const RS::TextureLayeredType) + FUNCRIDTEX2(texture_rd, const RID &, const RSE::TextureLayeredType) FUNC2RC(RID, texture_get_rd_texture, RID, bool) FUNC2RC(uint64_t, texture_get_native_handle, RID, bool) @@ -391,8 +392,8 @@ public: FUNC1RC(int, mesh_get_blend_shape_count, RID) - FUNC2(mesh_set_blend_shape_mode, RID, BlendShapeMode) - FUNC1RC(BlendShapeMode, mesh_get_blend_shape_mode, RID) + FUNC2(mesh_set_blend_shape_mode, RID, RSE::BlendShapeMode) + FUNC1RC(RSE::BlendShapeMode, mesh_get_blend_shape_mode, RID) FUNC4(mesh_surface_update_vertex_region, RID, int, int, const Vector &) FUNC4(mesh_surface_update_attribute_region, RID, int, int, const Vector &) @@ -423,7 +424,7 @@ public: FUNCRIDSPLIT(multimesh) - FUNC6(multimesh_allocate_data, RID, int, MultimeshTransformFormat, bool, bool, bool) + FUNC6(multimesh_allocate_data, RID, int, RSE::MultimeshTransformFormat, bool, bool, bool) FUNC1RC(int, multimesh_get_instance_count, RID) FUNC2(multimesh_set_mesh, RID, RID) @@ -450,7 +451,7 @@ public: FUNC3(multimesh_set_buffer_interpolated, RID, const Vector &, const Vector &) FUNC2(multimesh_set_physics_interpolated, RID, bool) - FUNC2(multimesh_set_physics_interpolation_quality, RID, MultimeshPhysicsInterpolationQuality) + FUNC2(multimesh_set_physics_interpolation_quality, RID, RSE::MultimeshPhysicsInterpolationQuality) FUNC2(multimesh_instance_reset_physics_interpolation, RID, int) FUNC1(multimesh_instances_reset_physics_interpolation, RID) @@ -480,7 +481,7 @@ public: FUNCRIDSPLIT(spot_light) FUNC2(light_set_color, RID, const Color &) - FUNC3(light_set_param, RID, LightParam, float) + FUNC3(light_set_param, RID, RSE::LightParam, float) FUNC2(light_set_shadow, RID, bool) FUNC2(light_set_projector, RID, RID) FUNC2(light_set_negative, RID, bool) @@ -488,25 +489,25 @@ public: FUNC5(light_set_distance_fade, RID, bool, float, float, float) FUNC2(light_set_reverse_cull_face_mode, RID, bool) FUNC2(light_set_shadow_caster_mask, RID, uint32_t) - FUNC2(light_set_bake_mode, RID, LightBakeMode) + FUNC2(light_set_bake_mode, RID, RSE::LightBakeMode) FUNC2(light_set_max_sdfgi_cascade, RID, uint32_t) - FUNC2(light_omni_set_shadow_mode, RID, LightOmniShadowMode) + FUNC2(light_omni_set_shadow_mode, RID, RSE::LightOmniShadowMode) - FUNC2(light_directional_set_shadow_mode, RID, LightDirectionalShadowMode) + FUNC2(light_directional_set_shadow_mode, RID, RSE::LightDirectionalShadowMode) FUNC2(light_directional_set_blend_splits, RID, bool) - FUNC2(light_directional_set_sky_mode, RID, LightDirectionalSkyMode) + FUNC2(light_directional_set_sky_mode, RID, RSE::LightDirectionalSkyMode) /* PROBE API */ FUNCRIDSPLIT(reflection_probe) - FUNC2(reflection_probe_set_update_mode, RID, ReflectionProbeUpdateMode) + FUNC2(reflection_probe_set_update_mode, RID, RSE::ReflectionProbeUpdateMode) FUNC2(reflection_probe_set_intensity, RID, float) FUNC2(reflection_probe_set_blend_distance, RID, float) FUNC2(reflection_probe_set_ambient_color, RID, const Color &) FUNC2(reflection_probe_set_ambient_energy, RID, float) - FUNC2(reflection_probe_set_ambient_mode, RID, ReflectionProbeAmbientMode) + FUNC2(reflection_probe_set_ambient_mode, RID, RSE::ReflectionProbeAmbientMode) FUNC2(reflection_probe_set_max_distance, RID, float) FUNC2(reflection_probe_set_size, RID, const Vector3 &) FUNC2(reflection_probe_set_origin_offset, RID, const Vector3 &) @@ -534,8 +535,8 @@ public: FUNC1(lightmap_set_probe_capture_update_speed, float) FUNC2(lightmap_set_shadowmask_textures, RID, RID) - FUNC1R(ShadowmaskMode, lightmap_get_shadowmask_mode, RID) - FUNC2(lightmap_set_shadowmask_mode, RID, ShadowmaskMode) + FUNC1R(RSE::ShadowmaskMode, lightmap_get_shadowmask_mode, RID) + FUNC2(lightmap_set_shadowmask_mode, RID, RSE::ShadowmaskMode) /* Shadow Atlas */ FUNC0R(RID, shadow_atlas_create) @@ -555,7 +556,7 @@ public: FUNCRIDSPLIT(decal) FUNC2(decal_set_size, RID, const Vector3 &) - FUNC3(decal_set_texture, RID, DecalTexture, RID) + FUNC3(decal_set_texture, RID, RSE::DecalTexture, RID) FUNC2(decal_set_emission_energy, RID, float) FUNC2(decal_set_albedo_mix, RID, float) FUNC2(decal_set_modulate, RID, const Color &) @@ -606,7 +607,7 @@ public: FUNCRIDSPLIT(particles) - FUNC2(particles_set_mode, RID, ParticlesMode) + FUNC2(particles_set_mode, RID, RSE::ParticlesMode) FUNC2(particles_set_emitting, RID, bool) FUNC1R(bool, particles_get_emitting, RID) FUNC2(particles_set_amount, RID, int) @@ -635,9 +636,9 @@ public: FUNC2(particles_set_subemitter, RID, RID) FUNC2(particles_set_collision_base_size, RID, float) - FUNC2(particles_set_transform_align, RID, RS::ParticlesTransformAlign) + FUNC2(particles_set_transform_align, RID, RSE::ParticlesTransformAlign) - FUNC2(particles_set_draw_order, RID, RS::ParticlesDrawOrder) + FUNC2(particles_set_draw_order, RID, RSE::ParticlesDrawOrder) FUNC2(particles_set_draw_passes, RID, int) FUNC3(particles_set_draw_pass_mesh, RID, int, RID) @@ -651,7 +652,7 @@ public: FUNCRIDSPLIT(particles_collision) - FUNC2(particles_collision_set_collision_type, RID, ParticlesCollisionType) + FUNC2(particles_collision_set_collision_type, RID, RSE::ParticlesCollisionType) FUNC2(particles_collision_set_cull_mask, RID, uint32_t) FUNC2(particles_collision_set_sphere_radius, RID, real_t) FUNC2(particles_collision_set_box_extents, RID, const Vector3 &) @@ -661,7 +662,7 @@ public: FUNC2(particles_collision_set_field_texture, RID, RID) FUNC1(particles_collision_height_field_update, RID) FUNC2(particles_collision_set_height_field_mask, RID, uint32_t) - FUNC2(particles_collision_set_height_field_resolution, RID, ParticlesCollisionHeightfieldResolution) + FUNC2(particles_collision_set_height_field_resolution, RID, RSE::ParticlesCollisionHeightfieldResolution) /* FOG VOLUME */ @@ -673,7 +674,7 @@ public: FUNCRIDSPLIT(fog_volume) - FUNC2(fog_volume_set_shape, RID, FogVolumeShape) + FUNC2(fog_volume_set_shape, RID, RSE::FogVolumeShape) FUNC2(fog_volume_set_size, RID, const Vector3 &) FUNC2(fog_volume_set_material, RID, RID) @@ -731,25 +732,25 @@ public: FUNC2(viewport_set_active, RID, bool) FUNC2(viewport_set_parent_viewport, RID, RID) - FUNC2(viewport_set_clear_mode, RID, ViewportClearMode) + FUNC2(viewport_set_clear_mode, RID, RSE::ViewportClearMode) FUNC3(viewport_attach_to_screen, RID, const Rect2 &, int) FUNC2(viewport_set_render_direct_to_screen, RID, bool) - FUNC2(viewport_set_scaling_3d_mode, RID, ViewportScaling3DMode) + FUNC2(viewport_set_scaling_3d_mode, RID, RSE::ViewportScaling3DMode) FUNC2(viewport_set_scaling_3d_scale, RID, float) FUNC2(viewport_set_fsr_sharpness, RID, float) FUNC2(viewport_set_texture_mipmap_bias, RID, float) - FUNC2(viewport_set_anisotropic_filtering_level, RID, ViewportAnisotropicFiltering) + FUNC2(viewport_set_anisotropic_filtering_level, RID, RSE::ViewportAnisotropicFiltering) - FUNC2(viewport_set_update_mode, RID, ViewportUpdateMode) - FUNC1RC(ViewportUpdateMode, viewport_get_update_mode, RID) + FUNC2(viewport_set_update_mode, RID, RSE::ViewportUpdateMode) + FUNC1RC(RSE::ViewportUpdateMode, viewport_get_update_mode, RID) FUNC1RC(RID, viewport_get_render_target, RID) FUNC1RC(RID, viewport_get_texture, RID) FUNC2(viewport_set_disable_2d, RID, bool) - FUNC2(viewport_set_environment_mode, RID, ViewportEnvironmentMode) + FUNC2(viewport_set_environment_mode, RID, RSE::ViewportEnvironmentMode) FUNC2(viewport_set_disable_3d, RID, bool) FUNC2(viewport_set_canvas_cull_mask, RID, uint32_t) @@ -766,27 +767,27 @@ public: FUNC2(viewport_set_snap_2d_transforms_to_pixel, RID, bool) FUNC2(viewport_set_snap_2d_vertices_to_pixel, RID, bool) - FUNC2(viewport_set_default_canvas_item_texture_filter, RID, CanvasItemTextureFilter) - FUNC2(viewport_set_default_canvas_item_texture_repeat, RID, CanvasItemTextureRepeat) + FUNC2(viewport_set_default_canvas_item_texture_filter, RID, RSE::CanvasItemTextureFilter) + FUNC2(viewport_set_default_canvas_item_texture_repeat, RID, RSE::CanvasItemTextureRepeat) FUNC2(viewport_set_global_canvas_transform, RID, const Transform2D &) FUNC4(viewport_set_canvas_stacking, RID, RID, int, int) FUNC3(viewport_set_positional_shadow_atlas_size, RID, int, bool) - FUNC3(viewport_set_sdf_oversize_and_scale, RID, ViewportSDFOversize, ViewportSDFScale) + FUNC3(viewport_set_sdf_oversize_and_scale, RID, RSE::ViewportSDFOversize, RSE::ViewportSDFScale) FUNC3(viewport_set_positional_shadow_atlas_quadrant_subdivision, RID, int, int) - FUNC2(viewport_set_msaa_2d, RID, ViewportMSAA) - FUNC2(viewport_set_msaa_3d, RID, ViewportMSAA) - FUNC2(viewport_set_screen_space_aa, RID, ViewportScreenSpaceAA) + FUNC2(viewport_set_msaa_2d, RID, RSE::ViewportMSAA) + FUNC2(viewport_set_msaa_3d, RID, RSE::ViewportMSAA) + FUNC2(viewport_set_screen_space_aa, RID, RSE::ViewportScreenSpaceAA) FUNC2(viewport_set_use_taa, RID, bool) FUNC2(viewport_set_use_debanding, RID, bool) FUNC2(viewport_set_force_motion_vectors, RID, bool) FUNC2(viewport_set_use_occlusion_culling, RID, bool) FUNC1(viewport_set_occlusion_rays_per_thread, int) - FUNC1(viewport_set_occlusion_culling_build_quality, ViewportOcclusionCullingBuildQuality) + FUNC1(viewport_set_occlusion_culling_build_quality, RSE::ViewportOcclusionCullingBuildQuality) FUNC2(viewport_set_mesh_lod_threshold, RID, float) - FUNC3R(int, viewport_get_render_info, RID, ViewportRenderInfoType, ViewportRenderInfo) - FUNC2(viewport_set_debug_draw, RID, ViewportDebugDraw) + FUNC3R(int, viewport_get_render_info, RID, RSE::ViewportRenderInfoType, RSE::ViewportRenderInfo) + FUNC2(viewport_set_debug_draw, RID, RSE::ViewportDebugDraw) FUNC2(viewport_set_measure_render_time, RID, bool) FUNC1RC(double, viewport_get_measured_render_time_cpu, RID) @@ -795,8 +796,8 @@ public: FUNC2(call_set_vsync_mode, DisplayServer::VSyncMode, DisplayServer::WindowID) - FUNC2(viewport_set_vrs_mode, RID, ViewportVRSMode) - FUNC2(viewport_set_vrs_update_mode, RID, ViewportVRSUpdateMode) + FUNC2(viewport_set_vrs_mode, RID, RSE::ViewportVRSMode) + FUNC2(viewport_set_vrs_update_mode, RID, RSE::ViewportVRSUpdateMode) FUNC2(viewport_set_vrs_texture, RID, RID) /* COMPOSITOR EFFECT */ @@ -809,8 +810,8 @@ public: FUNCRIDSPLIT(compositor_effect) FUNC2(compositor_effect_set_enabled, RID, bool) - FUNC3(compositor_effect_set_callback, RID, CompositorEffectCallbackType, const Callable &) - FUNC3(compositor_effect_set_flag, RID, CompositorEffectFlags, bool) + FUNC3(compositor_effect_set_callback, RID, RSE::CompositorEffectCallbackType, const Callable &) + FUNC3(compositor_effect_set_flag, RID, RSE::CompositorEffectFlags, bool) /* COMPOSITOR */ @@ -820,13 +821,13 @@ public: /* ENVIRONMENT API */ - FUNC1(voxel_gi_set_quality, VoxelGIQuality) + FUNC1(voxel_gi_set_quality, RSE::VoxelGIQuality) /* SKY API */ FUNCRIDSPLIT(sky) FUNC2(sky_set_radiance_size, RID, int) - FUNC2(sky_set_mode, RID, SkyMode) + FUNC2(sky_set_mode, RID, RSE::SkyMode) FUNC2(sky_set_material, RID, RID) FUNC4R(Ref, sky_bake_panorama, RID, float, bool, const Size2i &) @@ -834,36 +835,36 @@ public: FUNCRIDSPLIT(environment) - FUNC2(environment_set_background, RID, EnvironmentBG) + FUNC2(environment_set_background, RID, RSE::EnvironmentBG) FUNC2(environment_set_sky, RID, RID) FUNC2(environment_set_sky_custom_fov, RID, float) FUNC2(environment_set_sky_orientation, RID, const Basis &) FUNC2(environment_set_bg_color, RID, const Color &) FUNC3(environment_set_bg_energy, RID, float, float) FUNC2(environment_set_canvas_max_layer, RID, int) - FUNC6(environment_set_ambient_light, RID, const Color &, EnvironmentAmbientSource, float, float, EnvironmentReflectionSource) + FUNC6(environment_set_ambient_light, RID, const Color &, RSE::EnvironmentAmbientSource, float, float, RSE::EnvironmentReflectionSource) FUNC2(environment_set_camera_feed_id, RID, int) FUNC6(environment_set_ssr, RID, bool, int, float, float, float) FUNC1(environment_set_ssr_half_size, bool) - FUNC1(environment_set_ssr_roughness_quality, EnvironmentSSRRoughnessQuality) + FUNC1(environment_set_ssr_roughness_quality, RSE::EnvironmentSSRRoughnessQuality) FUNC10(environment_set_ssao, RID, bool, float, float, float, float, float, float, float, float) - FUNC6(environment_set_ssao_quality, EnvironmentSSAOQuality, bool, float, int, float, float) + FUNC6(environment_set_ssao_quality, RSE::EnvironmentSSAOQuality, bool, float, int, float, float) FUNC6(environment_set_ssil, RID, bool, float, float, float, float) - FUNC6(environment_set_ssil_quality, EnvironmentSSILQuality, bool, float, int, float, float) + FUNC6(environment_set_ssil_quality, RSE::EnvironmentSSILQuality, bool, float, int, float, float) - FUNC13(environment_set_glow, RID, bool, Vector, float, float, float, float, EnvironmentGlowBlendMode, float, float, float, float, RID) + FUNC13(environment_set_glow, RID, bool, Vector, float, float, float, float, RSE::EnvironmentGlowBlendMode, float, float, float, float, RID) FUNC1(environment_glow_set_use_bicubic_upscale, bool) - FUNC4(environment_set_tonemap, RID, EnvironmentToneMapper, float, float) + FUNC4(environment_set_tonemap, RID, RSE::EnvironmentToneMapper, float, float) FUNC2(environment_set_tonemap_agx_contrast, RID, float) FUNC7(environment_set_adjustment, RID, bool, float, float, float, bool, RID) - FUNC11(environment_set_fog, RID, bool, const Color &, float, float, float, float, float, float, float, EnvironmentFogMode) + FUNC11(environment_set_fog, RID, bool, const Color &, float, float, float, float, float, float, float, RSE::EnvironmentFogMode) FUNC4(environment_set_fog_depth, RID, float, float, float) FUNC14(environment_set_volumetric_fog, RID, bool, float, const Color &, const Color &, float, float, float, float, float, bool, float, float, float) @@ -871,21 +872,21 @@ public: FUNC2(environment_set_volumetric_fog_volume_size, int, int) FUNC1(environment_set_volumetric_fog_filter_active, bool) - FUNC11(environment_set_sdfgi, RID, bool, int, float, EnvironmentSDFGIYScale, bool, float, bool, float, float, float) - FUNC1(environment_set_sdfgi_ray_count, EnvironmentSDFGIRayCount) - FUNC1(environment_set_sdfgi_frames_to_converge, EnvironmentSDFGIFramesToConverge) - FUNC1(environment_set_sdfgi_frames_to_update_light, EnvironmentSDFGIFramesToUpdateLight) + FUNC11(environment_set_sdfgi, RID, bool, int, float, RSE::EnvironmentSDFGIYScale, bool, float, bool, float, float, float) + FUNC1(environment_set_sdfgi_ray_count, RSE::EnvironmentSDFGIRayCount) + FUNC1(environment_set_sdfgi_frames_to_converge, RSE::EnvironmentSDFGIFramesToConverge) + FUNC1(environment_set_sdfgi_frames_to_update_light, RSE::EnvironmentSDFGIFramesToUpdateLight) FUNC3R(Ref, environment_bake_panorama, RID, bool, const Size2i &) FUNC3(screen_space_roughness_limiter_set_active, bool, float, float) - FUNC1(sub_surface_scattering_set_quality, SubSurfaceScatteringQuality) + FUNC1(sub_surface_scattering_set_quality, RSE::SubSurfaceScatteringQuality) FUNC2(sub_surface_scattering_set_scale, float, float) - FUNC1(positional_soft_shadow_filter_set_quality, ShadowQuality); - FUNC1(directional_soft_shadow_filter_set_quality, ShadowQuality); - FUNC1(decals_set_filter, RS::DecalFilter); - FUNC1(light_projectors_set_filter, RS::LightProjectorFilter); + FUNC1(positional_soft_shadow_filter_set_quality, RSE::ShadowQuality); + FUNC1(directional_soft_shadow_filter_set_quality, RSE::ShadowQuality); + FUNC1(decals_set_filter, RSE::DecalFilter); + FUNC1(light_projectors_set_filter, RSE::LightProjectorFilter); FUNC1(lightmaps_set_bicubic_filter, bool); FUNC1(material_set_use_debanding, bool); @@ -899,8 +900,8 @@ public: FUNCRIDSPLIT(camera_attributes) - FUNC2(camera_attributes_set_dof_blur_quality, DOFBlurQuality, bool) - FUNC1(camera_attributes_set_dof_blur_bokeh_shape, DOFBokehShape) + FUNC2(camera_attributes_set_dof_blur_quality, RSE::DOFBlurQuality, bool) + FUNC1(camera_attributes_set_dof_blur_bokeh_shape, RSE::DOFBokehShape) FUNC8(camera_attributes_set_dof_blur, RID, bool, float, float, bool, float, float, float) FUNC3(camera_attributes_set_exposure, RID, float, float) @@ -950,12 +951,12 @@ public: FUNC3RC(Vector, instances_cull_ray, const Vector3 &, const Vector3 &, RID) FUNC2RC(Vector, instances_cull_convex, const Vector &, RID) - FUNC3(instance_geometry_set_flag, RID, InstanceFlags, bool) - FUNC2(instance_geometry_set_cast_shadows_setting, RID, ShadowCastingSetting) + FUNC3(instance_geometry_set_flag, RID, RSE::InstanceFlags, bool) + FUNC2(instance_geometry_set_cast_shadows_setting, RID, RSE::ShadowCastingSetting) FUNC2(instance_geometry_set_material_override, RID, RID) FUNC2(instance_geometry_set_material_overlay, RID, RID) - FUNC6(instance_geometry_set_visibility_range, RID, float, float, float, float, VisibilityRangeFadeMode) + FUNC6(instance_geometry_set_visibility_range, RID, float, float, float, float, RSE::VisibilityRangeFadeMode) FUNC4(instance_geometry_set_lightmap, RID, RID, const Rect2 &, int) FUNC2(instance_geometry_set_lod_bias, RID, float) FUNC2(instance_geometry_set_transparency, RID, float) @@ -984,17 +985,17 @@ public: FUNC1(canvas_set_disable_scale, bool) FUNCRIDSPLIT(canvas_texture) - FUNC3(canvas_texture_set_channel, RID, CanvasTextureChannel, RID) + FUNC3(canvas_texture_set_channel, RID, RSE::CanvasTextureChannel, RID) FUNC3(canvas_texture_set_shading_parameters, RID, const Color &, float) - FUNC2(canvas_texture_set_texture_filter, RID, CanvasItemTextureFilter) - FUNC2(canvas_texture_set_texture_repeat, RID, CanvasItemTextureRepeat) + FUNC2(canvas_texture_set_texture_filter, RID, RSE::CanvasItemTextureFilter) + FUNC2(canvas_texture_set_texture_repeat, RID, RSE::CanvasItemTextureRepeat) FUNCRIDSPLIT(canvas_item) FUNC2(canvas_item_set_parent, RID, RID) - FUNC2(canvas_item_set_default_texture_filter, RID, CanvasItemTextureFilter) - FUNC2(canvas_item_set_default_texture_repeat, RID, CanvasItemTextureRepeat) + FUNC2(canvas_item_set_default_texture_filter, RID, RSE::CanvasItemTextureFilter) + FUNC2(canvas_item_set_default_texture_repeat, RID, RSE::CanvasItemTextureRepeat) FUNC2(canvas_item_set_visible, RID, bool) FUNC2(canvas_item_set_light_mask, RID, int) @@ -1023,7 +1024,7 @@ public: FUNC7(canvas_item_add_texture_rect_region, RID, const Rect2 &, RID, const Rect2 &, const Color &, bool, bool) FUNC8(canvas_item_add_msdf_texture_rect_region, RID, const Rect2 &, RID, const Rect2 &, const Color &, int, float, float) FUNC5(canvas_item_add_lcd_texture_rect_region, RID, const Rect2 &, RID, const Rect2 &, const Color &) - FUNC10(canvas_item_add_nine_patch, RID, const Rect2 &, const Rect2 &, RID, const Vector2 &, const Vector2 &, NinePatchAxisMode, NinePatchAxisMode, bool, const Color &) + FUNC10(canvas_item_add_nine_patch, RID, const Rect2 &, const Rect2 &, RID, const Vector2 &, const Vector2 &, RSE::NinePatchAxisMode, RSE::NinePatchAxisMode, bool, const Color &) FUNC5(canvas_item_add_primitive, RID, const Vector &, const Vector &, const Vector &, RID) FUNC5(canvas_item_add_polygon, RID, const Vector &, const Vector &, const Vector &, RID) FUNC9(canvas_item_add_triangle_array, RID, const Vector &, const Vector &, const Vector &, const Vector &, const Vector &, const Vector &, RID, int) @@ -1054,7 +1055,7 @@ public: FUNC5(canvas_item_set_visibility_notifier, RID, bool, const Rect2 &, const Callable &, const Callable &) - FUNC6(canvas_item_set_canvas_group_mode, RID, CanvasGroupMode, float, bool, float, bool) + FUNC6(canvas_item_set_canvas_group_mode, RID, RSE::CanvasGroupMode, float, bool, float, bool) FUNC1(canvas_item_set_debug_redraw, bool) FUNC0RC(bool, canvas_item_get_debug_redraw) @@ -1065,7 +1066,7 @@ public: FUNCRIDSPLIT(canvas_light) - FUNC2(canvas_light_set_mode, RID, CanvasLightMode) + FUNC2(canvas_light_set_mode, RID, RSE::CanvasLightMode) FUNC2(canvas_light_attach_to_canvas, RID, RID) FUNC2(canvas_light_set_enabled, RID, bool) @@ -1082,10 +1083,10 @@ public: FUNC2(canvas_light_set_item_shadow_cull_mask, RID, int) FUNC2(canvas_light_set_directional_distance, RID, float) - FUNC2(canvas_light_set_blend_mode, RID, CanvasLightBlendMode) + FUNC2(canvas_light_set_blend_mode, RID, RSE::CanvasLightBlendMode) FUNC2(canvas_light_set_shadow_enabled, RID, bool) - FUNC2(canvas_light_set_shadow_filter, RID, CanvasLightShadowFilter) + FUNC2(canvas_light_set_shadow_filter, RID, RSE::CanvasLightShadowFilter) FUNC2(canvas_light_set_shadow_color, RID, const Color &) FUNC2(canvas_light_set_shadow_smooth, RID, float) @@ -1108,7 +1109,7 @@ public: FUNCRIDSPLIT(canvas_occluder_polygon) FUNC3(canvas_occluder_polygon_set_shape, RID, const Vector &, bool) - FUNC2(canvas_occluder_polygon_set_cull_mode, RID, CanvasOccluderPolygonCullMode) + FUNC2(canvas_occluder_polygon_set_cull_mode, RID, RSE::CanvasOccluderPolygonCullMode) FUNC1(canvas_set_shadow_texture_size, int) @@ -1122,12 +1123,12 @@ public: #define ServerName RendererMaterialStorage #define server_name RSG::material_storage - FUNC3(global_shader_parameter_add, const StringName &, GlobalShaderParameterType, const Variant &) + FUNC3(global_shader_parameter_add, const StringName &, RSE::GlobalShaderParameterType, const Variant &) FUNC1(global_shader_parameter_remove, const StringName &) FUNC0RC(Vector, global_shader_parameter_get_list) FUNC2(global_shader_parameter_set, const StringName &, const Variant &) FUNC2(global_shader_parameter_set_override, const StringName &, const Variant &) - FUNC1RC(GlobalShaderParameterType, global_shader_parameter_get_type, const StringName &) + FUNC1RC(RSE::GlobalShaderParameterType, global_shader_parameter_get_type, const StringName &) FUNC1RC(Variant, global_shader_parameter_get, const StringName &) FUNC1(global_shader_parameters_load_settings, bool) @@ -1140,7 +1141,7 @@ public: #define ServerName RendererCompositor #define server_name RSG::rasterizer - FUNC4S(set_boot_image_with_stretch, const Ref &, const Color &, RenderingServer::SplashStretchMode, bool) + FUNC4S(set_boot_image_with_stretch, const Ref &, const Color &, RSE::SplashStretchMode, bool) /* STATUS INFORMATION */ @@ -1162,7 +1163,7 @@ public: #undef MAIN_THREAD_SYNC_WARN #endif - virtual uint64_t get_rendering_info(RenderingInfo p_info) override; + virtual uint64_t get_rendering_info(RSE::RenderingInfo p_info) override; virtual RenderingDeviceEnums::DeviceType get_video_adapter_type() const override; virtual void set_frame_profiling_enabled(bool p_enable) override; @@ -1219,7 +1220,7 @@ public: virtual void set_default_clear_color(const Color &p_color) override; #ifndef DISABLE_DEPRECATED - virtual bool has_feature(Features p_feature) const override; + virtual bool has_feature(RSE::Features p_feature) const override; #endif virtual bool has_os_feature(const String &p_feature) const override; diff --git a/servers/rendering/rendering_server_enums.h b/servers/rendering/rendering_server_enums.h new file mode 100644 index 0000000000..1a6a379142 --- /dev/null +++ b/servers/rendering/rendering_server_enums.h @@ -0,0 +1,912 @@ +/**************************************************************************/ +/* rendering_server_enums.h */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +#pragma once + +#include + +namespace RenderingServerEnums { + +enum { + NO_INDEX_ARRAY = -1, + ARRAY_WEIGHTS_SIZE = 4, + CANVAS_ITEM_Z_MIN = -4096, + CANVAS_ITEM_Z_MAX = 4096, + CANVAS_LAYER_MIN = -2147483648, + CANVAS_LAYER_MAX = 2147483647, + MAX_GLOW_LEVELS = 7, + MAX_CURSORS = 8, + MAX_2D_DIRECTIONAL_LIGHTS = 8, + MAX_MESH_SURFACES = 256, +}; + +/* TEXTURE API */ + +enum TextureType { + TEXTURE_TYPE_2D, + TEXTURE_TYPE_LAYERED, + TEXTURE_TYPE_3D, +}; + +enum TextureLayeredType { + TEXTURE_LAYERED_2D_ARRAY, + TEXTURE_LAYERED_CUBEMAP, + TEXTURE_LAYERED_CUBEMAP_ARRAY, +}; + +enum CubeMapLayer { + CUBEMAP_LAYER_LEFT, + CUBEMAP_LAYER_RIGHT, + CUBEMAP_LAYER_BOTTOM, + CUBEMAP_LAYER_TOP, + CUBEMAP_LAYER_FRONT, + CUBEMAP_LAYER_BACK, +}; + +enum TextureDrawableFormat { + TEXTURE_DRAWABLE_FORMAT_RGBA8, + TEXTURE_DRAWABLE_FORMAT_RGBA8_SRGB, // Use this if you want to read the result from both 2D (non-hdr) and 3D. + TEXTURE_DRAWABLE_FORMAT_RGBAH, + TEXTURE_DRAWABLE_FORMAT_RGBAF, +}; + +enum TextureDetectRoughnessChannel { + TEXTURE_DETECT_ROUGHNESS_R, + TEXTURE_DETECT_ROUGHNESS_G, + TEXTURE_DETECT_ROUGHNESS_B, + TEXTURE_DETECT_ROUGHNESS_A, + TEXTURE_DETECT_ROUGHNESS_GRAY, +}; + +/* PIPELINES API */ + +enum PipelineSource { + PIPELINE_SOURCE_CANVAS, + PIPELINE_SOURCE_MESH, + PIPELINE_SOURCE_SURFACE, + PIPELINE_SOURCE_DRAW, + PIPELINE_SOURCE_SPECIALIZATION, + PIPELINE_SOURCE_MAX, +}; + +/* SHADER API */ + +enum ShaderMode { + SHADER_SPATIAL, + SHADER_CANVAS_ITEM, + SHADER_PARTICLES, + SHADER_SKY, + SHADER_FOG, + SHADER_TEXTURE_BLIT, + SHADER_MAX, +}; + +enum CullMode { + CULL_MODE_DISABLED, + CULL_MODE_FRONT, + CULL_MODE_BACK, +}; + +/* COMMON MATERIAL API */ + +enum { + MATERIAL_RENDER_PRIORITY_MIN = -128, + MATERIAL_RENDER_PRIORITY_MAX = 127, +}; + +/* MESH API */ + +enum ArrayType { + ARRAY_VERTEX = 0, // RG32F (2D), RGB32F, RGBA16 (compressed) + ARRAY_NORMAL = 1, // RG16 + ARRAY_TANGENT = 2, // BA16 (with normal) or A16 (with vertex, when compressed) + ARRAY_COLOR = 3, // RGBA8 + ARRAY_TEX_UV = 4, // RG32F or RG16 + ARRAY_TEX_UV2 = 5, // RG32F or RG16 + ARRAY_CUSTOM0 = 6, // Depends on ArrayCustomFormat. + ARRAY_CUSTOM1 = 7, + ARRAY_CUSTOM2 = 8, + ARRAY_CUSTOM3 = 9, + ARRAY_BONES = 10, // RGBA16UI (x2 if 8 weights) + ARRAY_WEIGHTS = 11, // RGBA16UNORM (x2 if 8 weights) + ARRAY_INDEX = 12, // 16 or 32 bits depending on length > 0xFFFF. + ARRAY_MAX = 13, +}; + +enum { + ARRAY_CUSTOM_COUNT = ARRAY_BONES - ARRAY_CUSTOM0 +}; + +enum ArrayCustomFormat { + ARRAY_CUSTOM_RGBA8_UNORM, + ARRAY_CUSTOM_RGBA8_SNORM, + ARRAY_CUSTOM_RG_HALF, + ARRAY_CUSTOM_RGBA_HALF, + ARRAY_CUSTOM_R_FLOAT, + ARRAY_CUSTOM_RG_FLOAT, + ARRAY_CUSTOM_RGB_FLOAT, + ARRAY_CUSTOM_RGBA_FLOAT, + ARRAY_CUSTOM_MAX, +}; + +enum ArrayFormat : uint64_t { + /* ARRAY FORMAT FLAGS */ + ARRAY_FORMAT_VERTEX = 1 << ARRAY_VERTEX, + ARRAY_FORMAT_NORMAL = 1 << ARRAY_NORMAL, + ARRAY_FORMAT_TANGENT = 1 << ARRAY_TANGENT, + ARRAY_FORMAT_COLOR = 1 << ARRAY_COLOR, + ARRAY_FORMAT_TEX_UV = 1 << ARRAY_TEX_UV, + ARRAY_FORMAT_TEX_UV2 = 1 << ARRAY_TEX_UV2, + ARRAY_FORMAT_CUSTOM0 = 1 << ARRAY_CUSTOM0, + ARRAY_FORMAT_CUSTOM1 = 1 << ARRAY_CUSTOM1, + ARRAY_FORMAT_CUSTOM2 = 1 << ARRAY_CUSTOM2, + ARRAY_FORMAT_CUSTOM3 = 1 << ARRAY_CUSTOM3, + ARRAY_FORMAT_BONES = 1 << ARRAY_BONES, + ARRAY_FORMAT_WEIGHTS = 1 << ARRAY_WEIGHTS, + ARRAY_FORMAT_INDEX = 1 << ARRAY_INDEX, + + ARRAY_FORMAT_BLEND_SHAPE_MASK = ARRAY_FORMAT_VERTEX | ARRAY_FORMAT_NORMAL | ARRAY_FORMAT_TANGENT, + + ARRAY_FORMAT_CUSTOM_BASE = (ARRAY_INDEX + 1), + ARRAY_FORMAT_CUSTOM_BITS = 3, + ARRAY_FORMAT_CUSTOM_MASK = 0x7, + ARRAY_FORMAT_CUSTOM0_SHIFT = (ARRAY_FORMAT_CUSTOM_BASE + 0), + ARRAY_FORMAT_CUSTOM1_SHIFT = (ARRAY_FORMAT_CUSTOM_BASE + ARRAY_FORMAT_CUSTOM_BITS), + ARRAY_FORMAT_CUSTOM2_SHIFT = (ARRAY_FORMAT_CUSTOM_BASE + ARRAY_FORMAT_CUSTOM_BITS * 2), + ARRAY_FORMAT_CUSTOM3_SHIFT = (ARRAY_FORMAT_CUSTOM_BASE + ARRAY_FORMAT_CUSTOM_BITS * 3), + + ARRAY_COMPRESS_FLAGS_BASE = (ARRAY_INDEX + 1 + 12), + + ARRAY_FLAG_USE_2D_VERTICES = 1 << (ARRAY_COMPRESS_FLAGS_BASE + 0), + ARRAY_FLAG_USE_DYNAMIC_UPDATE = 1 << (ARRAY_COMPRESS_FLAGS_BASE + 1), + ARRAY_FLAG_USE_8_BONE_WEIGHTS = 1 << (ARRAY_COMPRESS_FLAGS_BASE + 2), + + ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY = 1 << (ARRAY_COMPRESS_FLAGS_BASE + 3), + + ARRAY_FLAG_COMPRESS_ATTRIBUTES = 1 << (ARRAY_COMPRESS_FLAGS_BASE + 4), + // We leave enough room for up to 5 more compression flags. + + ARRAY_FLAG_FORMAT_VERSION_BASE = ARRAY_COMPRESS_FLAGS_BASE + 10, + ARRAY_FLAG_FORMAT_VERSION_SHIFT = ARRAY_FLAG_FORMAT_VERSION_BASE, + // When changes are made to the mesh format, add a new version and use it for the CURRENT_VERSION. + ARRAY_FLAG_FORMAT_VERSION_1 = 0, + ARRAY_FLAG_FORMAT_VERSION_2 = 1ULL << ARRAY_FLAG_FORMAT_VERSION_SHIFT, + ARRAY_FLAG_FORMAT_CURRENT_VERSION = ARRAY_FLAG_FORMAT_VERSION_2, + ARRAY_FLAG_FORMAT_VERSION_MASK = 0xFF, // 8 bits version +}; + +static_assert(sizeof(ArrayFormat) == 8, "ArrayFormat should be 64 bits long."); + +enum PrimitiveType { + PRIMITIVE_POINTS, + PRIMITIVE_LINES, + PRIMITIVE_LINE_STRIP, + PRIMITIVE_TRIANGLES, + PRIMITIVE_TRIANGLE_STRIP, + PRIMITIVE_MAX, +}; + +enum BlendShapeMode { + BLEND_SHAPE_MODE_NORMALIZED, + BLEND_SHAPE_MODE_RELATIVE, +}; + +/* MULTIMESH API */ + +enum MultimeshTransformFormat { + MULTIMESH_TRANSFORM_2D, + MULTIMESH_TRANSFORM_3D, +}; + +enum MultimeshPhysicsInterpolationQuality { + MULTIMESH_INTERP_QUALITY_FAST, + MULTIMESH_INTERP_QUALITY_HIGH, +}; + +/* LIGHT API */ + +enum LightType { + LIGHT_DIRECTIONAL, + LIGHT_OMNI, + LIGHT_SPOT, +}; + +enum LightParam { + LIGHT_PARAM_ENERGY, + LIGHT_PARAM_INDIRECT_ENERGY, + LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY, + LIGHT_PARAM_SPECULAR, + LIGHT_PARAM_RANGE, + LIGHT_PARAM_SIZE, + LIGHT_PARAM_ATTENUATION, + LIGHT_PARAM_SPOT_ANGLE, + LIGHT_PARAM_SPOT_ATTENUATION, + LIGHT_PARAM_SHADOW_MAX_DISTANCE, + LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET, + LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET, + LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET, + LIGHT_PARAM_SHADOW_FADE_START, + LIGHT_PARAM_SHADOW_NORMAL_BIAS, + LIGHT_PARAM_SHADOW_BIAS, + LIGHT_PARAM_SHADOW_PANCAKE_SIZE, + LIGHT_PARAM_SHADOW_OPACITY, + LIGHT_PARAM_SHADOW_BLUR, + LIGHT_PARAM_TRANSMITTANCE_BIAS, + LIGHT_PARAM_INTENSITY, + LIGHT_PARAM_MAX, +}; + +enum LightBakeMode { + LIGHT_BAKE_DISABLED, + LIGHT_BAKE_STATIC, + LIGHT_BAKE_DYNAMIC, +}; + +enum LightOmniShadowMode { + LIGHT_OMNI_SHADOW_DUAL_PARABOLOID, + LIGHT_OMNI_SHADOW_CUBE, +}; + +enum LightDirectionalShadowMode { + LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL, + LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS, + LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS, +}; + +enum LightDirectionalSkyMode { + LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY, + LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_ONLY, + LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY, +}; + +enum ShadowQuality { + SHADOW_QUALITY_HARD, + SHADOW_QUALITY_SOFT_VERY_LOW, + SHADOW_QUALITY_SOFT_LOW, + SHADOW_QUALITY_SOFT_MEDIUM, + SHADOW_QUALITY_SOFT_HIGH, + SHADOW_QUALITY_SOFT_ULTRA, + SHADOW_QUALITY_MAX, +}; + +enum LightProjectorFilter { + LIGHT_PROJECTOR_FILTER_NEAREST, + LIGHT_PROJECTOR_FILTER_LINEAR, + LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS, + LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS, + LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC, + LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC, +}; + +/* REFLECTION PROBE API */ + +enum ReflectionProbeUpdateMode { + REFLECTION_PROBE_UPDATE_ONCE, + REFLECTION_PROBE_UPDATE_ALWAYS, +}; + +enum ReflectionProbeAmbientMode { + REFLECTION_PROBE_AMBIENT_DISABLED, + REFLECTION_PROBE_AMBIENT_ENVIRONMENT, + REFLECTION_PROBE_AMBIENT_COLOR, +}; + +/* DECAL API */ + +enum DecalTexture { + DECAL_TEXTURE_ALBEDO, + DECAL_TEXTURE_NORMAL, + DECAL_TEXTURE_ORM, + DECAL_TEXTURE_EMISSION, + DECAL_TEXTURE_MAX, +}; + +enum DecalFilter { + DECAL_FILTER_NEAREST, + DECAL_FILTER_LINEAR, + DECAL_FILTER_NEAREST_MIPMAPS, + DECAL_FILTER_LINEAR_MIPMAPS, + DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC, + DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC, +}; + +/* VOXEL GI API */ + +enum VoxelGIQuality { + VOXEL_GI_QUALITY_LOW, + VOXEL_GI_QUALITY_HIGH, +}; + +/* LIGHTMAP API */ + +enum ShadowmaskMode { + SHADOWMASK_MODE_NONE, + SHADOWMASK_MODE_REPLACE, + SHADOWMASK_MODE_OVERLAY, + SHADOWMASK_MODE_ONLY, +}; + +/* PARTICLES API */ + +enum ParticlesMode { + PARTICLES_MODE_2D, + PARTICLES_MODE_3D, +}; + +enum ParticlesTransformAlign { + PARTICLES_TRANSFORM_ALIGN_DISABLED, + PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD, + PARTICLES_TRANSFORM_ALIGN_Y_TO_VELOCITY, + PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY, +}; + +enum ParticlesEmitFlags { + PARTICLES_EMIT_FLAG_POSITION = 1, + PARTICLES_EMIT_FLAG_ROTATION_SCALE = 2, + PARTICLES_EMIT_FLAG_VELOCITY = 4, + PARTICLES_EMIT_FLAG_COLOR = 8, + PARTICLES_EMIT_FLAG_CUSTOM = 16, +}; + +enum ParticlesDrawOrder { + PARTICLES_DRAW_ORDER_INDEX, + PARTICLES_DRAW_ORDER_LIFETIME, + PARTICLES_DRAW_ORDER_REVERSE_LIFETIME, + PARTICLES_DRAW_ORDER_VIEW_DEPTH, +}; + +/* PARTICLES COLLISION API */ + +enum ParticlesCollisionType { + PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT, + PARTICLES_COLLISION_TYPE_BOX_ATTRACT, + PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT, + PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE, + PARTICLES_COLLISION_TYPE_BOX_COLLIDE, + PARTICLES_COLLISION_TYPE_SDF_COLLIDE, + PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE, +}; + +enum ParticlesCollisionHeightfieldResolution { // Longest axis resolution. + PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_256, + PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_512, + PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_1024, + PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_2048, + PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_4096, + PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_8192, + PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX, +}; + +/* FOG VOLUME API */ + +enum FogVolumeShape { + FOG_VOLUME_SHAPE_ELLIPSOID, + FOG_VOLUME_SHAPE_CONE, + FOG_VOLUME_SHAPE_CYLINDER, + FOG_VOLUME_SHAPE_BOX, + FOG_VOLUME_SHAPE_WORLD, + FOG_VOLUME_SHAPE_MAX, +}; + +/* VIEWPORT API */ + +enum CanvasItemTextureFilter { + CANVAS_ITEM_TEXTURE_FILTER_DEFAULT, // Uses canvas item setting for draw command, uses global setting for canvas item. + CANVAS_ITEM_TEXTURE_FILTER_NEAREST, + CANVAS_ITEM_TEXTURE_FILTER_LINEAR, + CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS, + CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS, + CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC, + CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC, + CANVAS_ITEM_TEXTURE_FILTER_MAX, +}; + +enum CanvasItemTextureRepeat { + CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT, // Uses canvas item setting for draw command, uses global setting for canvas item. + CANVAS_ITEM_TEXTURE_REPEAT_DISABLED, + CANVAS_ITEM_TEXTURE_REPEAT_ENABLED, + CANVAS_ITEM_TEXTURE_REPEAT_MIRROR, + CANVAS_ITEM_TEXTURE_REPEAT_MAX, +}; + +enum ViewportScaling3DMode { + VIEWPORT_SCALING_3D_MODE_BILINEAR, + VIEWPORT_SCALING_3D_MODE_FSR, + VIEWPORT_SCALING_3D_MODE_FSR2, + VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL, + VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL, + VIEWPORT_SCALING_3D_MODE_MAX, + VIEWPORT_SCALING_3D_MODE_OFF = 255, // for internal use only +}; + +enum ViewportAnisotropicFiltering { + VIEWPORT_ANISOTROPY_DISABLED, + VIEWPORT_ANISOTROPY_2X, + VIEWPORT_ANISOTROPY_4X, + VIEWPORT_ANISOTROPY_8X, + VIEWPORT_ANISOTROPY_16X, + VIEWPORT_ANISOTROPY_MAX, +}; + +enum ViewportScaling3DType { + VIEWPORT_SCALING_3D_TYPE_NONE, + VIEWPORT_SCALING_3D_TYPE_TEMPORAL, + VIEWPORT_SCALING_3D_TYPE_SPATIAL, + VIEWPORT_SCALING_3D_TYPE_MAX, +}; + +enum ViewportUpdateMode { + VIEWPORT_UPDATE_DISABLED, + VIEWPORT_UPDATE_ONCE, // Then goes to disabled, must be manually updated. + VIEWPORT_UPDATE_WHEN_VISIBLE, // Default + VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE, + VIEWPORT_UPDATE_ALWAYS, +}; + +enum ViewportClearMode { + VIEWPORT_CLEAR_ALWAYS, + VIEWPORT_CLEAR_NEVER, + VIEWPORT_CLEAR_ONLY_NEXT_FRAME, +}; + +enum ViewportEnvironmentMode { + VIEWPORT_ENVIRONMENT_DISABLED, + VIEWPORT_ENVIRONMENT_ENABLED, + VIEWPORT_ENVIRONMENT_INHERIT, + VIEWPORT_ENVIRONMENT_MAX, +}; + +enum ViewportSDFOversize { + VIEWPORT_SDF_OVERSIZE_100_PERCENT, + VIEWPORT_SDF_OVERSIZE_120_PERCENT, + VIEWPORT_SDF_OVERSIZE_150_PERCENT, + VIEWPORT_SDF_OVERSIZE_200_PERCENT, + VIEWPORT_SDF_OVERSIZE_MAX, +}; + +enum ViewportSDFScale { + VIEWPORT_SDF_SCALE_100_PERCENT, + VIEWPORT_SDF_SCALE_50_PERCENT, + VIEWPORT_SDF_SCALE_25_PERCENT, + VIEWPORT_SDF_SCALE_MAX, +}; + +enum ViewportMSAA { + VIEWPORT_MSAA_DISABLED, + VIEWPORT_MSAA_2X, + VIEWPORT_MSAA_4X, + VIEWPORT_MSAA_8X, + VIEWPORT_MSAA_MAX, +}; + +enum ViewportScreenSpaceAA { + VIEWPORT_SCREEN_SPACE_AA_DISABLED, + VIEWPORT_SCREEN_SPACE_AA_FXAA, + VIEWPORT_SCREEN_SPACE_AA_SMAA, + VIEWPORT_SCREEN_SPACE_AA_MAX, +}; + +enum ViewportOcclusionCullingBuildQuality { + VIEWPORT_OCCLUSION_BUILD_QUALITY_LOW = 0, + VIEWPORT_OCCLUSION_BUILD_QUALITY_MEDIUM = 1, + VIEWPORT_OCCLUSION_BUILD_QUALITY_HIGH = 2, +}; + +enum ViewportRenderInfo { + VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME, + VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME, + VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME, + VIEWPORT_RENDER_INFO_MAX, +}; + +enum ViewportRenderInfoType { + VIEWPORT_RENDER_INFO_TYPE_VISIBLE, + VIEWPORT_RENDER_INFO_TYPE_SHADOW, + VIEWPORT_RENDER_INFO_TYPE_CANVAS, + VIEWPORT_RENDER_INFO_TYPE_MAX, +}; + +enum ViewportDebugDraw { + VIEWPORT_DEBUG_DRAW_DISABLED, + VIEWPORT_DEBUG_DRAW_UNSHADED, + VIEWPORT_DEBUG_DRAW_LIGHTING, + VIEWPORT_DEBUG_DRAW_OVERDRAW, + VIEWPORT_DEBUG_DRAW_WIREFRAME, + VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER, + VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO, + VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING, + VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION, + VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS, + VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS, + VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE, + VIEWPORT_DEBUG_DRAW_SSAO, + VIEWPORT_DEBUG_DRAW_SSIL, + VIEWPORT_DEBUG_DRAW_PSSM_SPLITS, + VIEWPORT_DEBUG_DRAW_DECAL_ATLAS, + VIEWPORT_DEBUG_DRAW_SDFGI, + VIEWPORT_DEBUG_DRAW_SDFGI_PROBES, + VIEWPORT_DEBUG_DRAW_GI_BUFFER, + VIEWPORT_DEBUG_DRAW_DISABLE_LOD, + VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS, + VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS, + VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS, + VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES, + VIEWPORT_DEBUG_DRAW_OCCLUDERS, + VIEWPORT_DEBUG_DRAW_MOTION_VECTORS, + VIEWPORT_DEBUG_DRAW_INTERNAL_BUFFER, +}; + +enum ViewportVRSMode { + VIEWPORT_VRS_DISABLED, + VIEWPORT_VRS_TEXTURE, + VIEWPORT_VRS_XR, + VIEWPORT_VRS_MAX, +}; + +enum ViewportVRSUpdateMode { + VIEWPORT_VRS_UPDATE_DISABLED, + VIEWPORT_VRS_UPDATE_ONCE, + VIEWPORT_VRS_UPDATE_ALWAYS, + VIEWPORT_VRS_UPDATE_MAX, +}; + +/* SKY API */ + +enum SkyMode { + SKY_MODE_AUTOMATIC, + SKY_MODE_QUALITY, + SKY_MODE_INCREMENTAL, + SKY_MODE_REALTIME, +}; + +/* COMPOSITOR EFFECTS API */ + +enum CompositorEffectFlags { + COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR = 1, + COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH = 2, + COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS = 4, + COMPOSITOR_EFFECT_FLAG_NEEDS_ROUGHNESS = 8, + COMPOSITOR_EFFECT_FLAG_NEEDS_SEPARATE_SPECULAR = 16, +}; + +enum CompositorEffectCallbackType { + COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE, + COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE, + COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_SKY, + COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT, + COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_TRANSPARENT, + COMPOSITOR_EFFECT_CALLBACK_TYPE_MAX, + COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY = -1, +}; + +/* ENVIRONMENT API */ + +enum EnvironmentBG { + ENV_BG_CLEAR_COLOR, + ENV_BG_COLOR, + ENV_BG_SKY, + ENV_BG_CANVAS, + ENV_BG_KEEP, + ENV_BG_CAMERA_FEED, + ENV_BG_MAX, +}; + +enum EnvironmentAmbientSource { + ENV_AMBIENT_SOURCE_BG, + ENV_AMBIENT_SOURCE_DISABLED, + ENV_AMBIENT_SOURCE_COLOR, + ENV_AMBIENT_SOURCE_SKY, +}; + +enum EnvironmentReflectionSource { + ENV_REFLECTION_SOURCE_BG, + ENV_REFLECTION_SOURCE_DISABLED, + ENV_REFLECTION_SOURCE_SKY, +}; + +enum EnvironmentGlowBlendMode { + ENV_GLOW_BLEND_MODE_ADDITIVE, + ENV_GLOW_BLEND_MODE_SCREEN, + ENV_GLOW_BLEND_MODE_SOFTLIGHT, + ENV_GLOW_BLEND_MODE_REPLACE, + ENV_GLOW_BLEND_MODE_MIX, +}; + +enum EnvironmentToneMapper { + ENV_TONE_MAPPER_LINEAR, + ENV_TONE_MAPPER_REINHARD, + ENV_TONE_MAPPER_FILMIC, + ENV_TONE_MAPPER_ACES, + ENV_TONE_MAPPER_AGX, +}; + +enum EnvironmentSSRRoughnessQuality { + ENV_SSR_ROUGHNESS_QUALITY_DISABLED, + ENV_SSR_ROUGHNESS_QUALITY_LOW, + ENV_SSR_ROUGHNESS_QUALITY_MEDIUM, + ENV_SSR_ROUGHNESS_QUALITY_HIGH, +}; + +enum EnvironmentSSAOQuality { + ENV_SSAO_QUALITY_VERY_LOW, + ENV_SSAO_QUALITY_LOW, + ENV_SSAO_QUALITY_MEDIUM, + ENV_SSAO_QUALITY_HIGH, + ENV_SSAO_QUALITY_ULTRA, +}; + +enum EnvironmentSSILQuality { + ENV_SSIL_QUALITY_VERY_LOW, + ENV_SSIL_QUALITY_LOW, + ENV_SSIL_QUALITY_MEDIUM, + ENV_SSIL_QUALITY_HIGH, + ENV_SSIL_QUALITY_ULTRA, +}; + +enum EnvironmentSDFGIYScale { + ENV_SDFGI_Y_SCALE_50_PERCENT, + ENV_SDFGI_Y_SCALE_75_PERCENT, + ENV_SDFGI_Y_SCALE_100_PERCENT, +}; + +enum EnvironmentSDFGIRayCount { + ENV_SDFGI_RAY_COUNT_4, + ENV_SDFGI_RAY_COUNT_8, + ENV_SDFGI_RAY_COUNT_16, + ENV_SDFGI_RAY_COUNT_32, + ENV_SDFGI_RAY_COUNT_64, + ENV_SDFGI_RAY_COUNT_96, + ENV_SDFGI_RAY_COUNT_128, + ENV_SDFGI_RAY_COUNT_MAX, +}; + +enum EnvironmentSDFGIFramesToConverge { + ENV_SDFGI_CONVERGE_IN_5_FRAMES, + ENV_SDFGI_CONVERGE_IN_10_FRAMES, + ENV_SDFGI_CONVERGE_IN_15_FRAMES, + ENV_SDFGI_CONVERGE_IN_20_FRAMES, + ENV_SDFGI_CONVERGE_IN_25_FRAMES, + ENV_SDFGI_CONVERGE_IN_30_FRAMES, + ENV_SDFGI_CONVERGE_MAX +}; + +enum EnvironmentSDFGIFramesToUpdateLight { + ENV_SDFGI_UPDATE_LIGHT_IN_1_FRAME, + ENV_SDFGI_UPDATE_LIGHT_IN_2_FRAMES, + ENV_SDFGI_UPDATE_LIGHT_IN_4_FRAMES, + ENV_SDFGI_UPDATE_LIGHT_IN_8_FRAMES, + ENV_SDFGI_UPDATE_LIGHT_IN_16_FRAMES, + ENV_SDFGI_UPDATE_LIGHT_MAX, +}; + +enum EnvironmentFogMode { + ENV_FOG_MODE_EXPONENTIAL, + ENV_FOG_MODE_DEPTH, +}; + +enum SubSurfaceScatteringQuality { + SUB_SURFACE_SCATTERING_QUALITY_DISABLED, + SUB_SURFACE_SCATTERING_QUALITY_LOW, + SUB_SURFACE_SCATTERING_QUALITY_MEDIUM, + SUB_SURFACE_SCATTERING_QUALITY_HIGH, +}; + +/* CAMERA ATTRIBUTES API */ + +enum DOFBlurQuality { + DOF_BLUR_QUALITY_VERY_LOW, + DOF_BLUR_QUALITY_LOW, + DOF_BLUR_QUALITY_MEDIUM, + DOF_BLUR_QUALITY_HIGH, +}; + +enum DOFBokehShape { + DOF_BOKEH_BOX, + DOF_BOKEH_HEXAGON, + DOF_BOKEH_CIRCLE, +}; + +/* INSTANCING API */ + +enum InstanceType { + INSTANCE_NONE, + INSTANCE_MESH, + INSTANCE_MULTIMESH, + INSTANCE_PARTICLES, + INSTANCE_PARTICLES_COLLISION, + INSTANCE_LIGHT, + INSTANCE_REFLECTION_PROBE, + INSTANCE_DECAL, + INSTANCE_VOXEL_GI, + INSTANCE_LIGHTMAP, + INSTANCE_OCCLUDER, + INSTANCE_VISIBLITY_NOTIFIER, // TODO: Fix typo in "VISIBILITY" (in 5.0). + INSTANCE_FOG_VOLUME, + INSTANCE_MAX, + + INSTANCE_GEOMETRY_MASK = (1 << INSTANCE_MESH) | (1 << INSTANCE_MULTIMESH) | (1 << INSTANCE_PARTICLES) +}; + +enum InstanceFlags { + INSTANCE_FLAG_USE_BAKED_LIGHT, + INSTANCE_FLAG_USE_DYNAMIC_GI, + INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE, + INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING, + INSTANCE_FLAG_MAX, +}; + +enum ShadowCastingSetting { + SHADOW_CASTING_SETTING_OFF, + SHADOW_CASTING_SETTING_ON, + SHADOW_CASTING_SETTING_DOUBLE_SIDED, + SHADOW_CASTING_SETTING_SHADOWS_ONLY, +}; + +enum VisibilityRangeFadeMode { + VISIBILITY_RANGE_FADE_DISABLED, + VISIBILITY_RANGE_FADE_SELF, + VISIBILITY_RANGE_FADE_DEPENDENCIES, +}; + +/* BAKE API */ + +enum BakeChannels { + BAKE_CHANNEL_ALBEDO_ALPHA, + BAKE_CHANNEL_NORMAL, + BAKE_CHANNEL_ORM, + BAKE_CHANNEL_EMISSION, +}; + +/* CANVAS TEXTURE API */ + +enum CanvasTextureChannel { + CANVAS_TEXTURE_CHANNEL_DIFFUSE, + CANVAS_TEXTURE_CHANNEL_NORMAL, + CANVAS_TEXTURE_CHANNEL_SPECULAR, +}; + +/* CANVAS ITEM API */ + +enum NinePatchAxisMode { + NINE_PATCH_STRETCH, + NINE_PATCH_TILE, + NINE_PATCH_TILE_FIT, +}; + +enum CanvasGroupMode { + CANVAS_GROUP_MODE_DISABLED, + CANVAS_GROUP_MODE_CLIP_ONLY, + CANVAS_GROUP_MODE_CLIP_AND_DRAW, + CANVAS_GROUP_MODE_TRANSPARENT, +}; + +/* CANVAS LIGHT API */ + +enum CanvasLightMode { + CANVAS_LIGHT_MODE_POINT, + CANVAS_LIGHT_MODE_DIRECTIONAL, +}; + +enum CanvasLightBlendMode { + CANVAS_LIGHT_BLEND_MODE_ADD, + CANVAS_LIGHT_BLEND_MODE_SUB, + CANVAS_LIGHT_BLEND_MODE_MIX, +}; + +enum CanvasLightShadowFilter { + CANVAS_LIGHT_FILTER_NONE, + CANVAS_LIGHT_FILTER_PCF5, + CANVAS_LIGHT_FILTER_PCF13, + CANVAS_LIGHT_FILTER_MAX, +}; + +/* CANVAS OCCLUDER POLYGON API */ + +enum CanvasOccluderPolygonCullMode { + CANVAS_OCCLUDER_POLYGON_CULL_DISABLED, + CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE, + CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE, +}; + +/* GLOBAL SHADER PARAMETERS API */ + +enum GlobalShaderParameterType { + GLOBAL_VAR_TYPE_BOOL, + GLOBAL_VAR_TYPE_BVEC2, + GLOBAL_VAR_TYPE_BVEC3, + GLOBAL_VAR_TYPE_BVEC4, + GLOBAL_VAR_TYPE_INT, + GLOBAL_VAR_TYPE_IVEC2, + GLOBAL_VAR_TYPE_IVEC3, + GLOBAL_VAR_TYPE_IVEC4, + GLOBAL_VAR_TYPE_RECT2I, + GLOBAL_VAR_TYPE_UINT, + GLOBAL_VAR_TYPE_UVEC2, + GLOBAL_VAR_TYPE_UVEC3, + GLOBAL_VAR_TYPE_UVEC4, + GLOBAL_VAR_TYPE_FLOAT, + GLOBAL_VAR_TYPE_VEC2, + GLOBAL_VAR_TYPE_VEC3, + GLOBAL_VAR_TYPE_VEC4, + GLOBAL_VAR_TYPE_COLOR, + GLOBAL_VAR_TYPE_RECT2, + GLOBAL_VAR_TYPE_MAT2, + GLOBAL_VAR_TYPE_MAT3, + GLOBAL_VAR_TYPE_MAT4, + GLOBAL_VAR_TYPE_TRANSFORM_2D, + GLOBAL_VAR_TYPE_TRANSFORM, + GLOBAL_VAR_TYPE_SAMPLER2D, + GLOBAL_VAR_TYPE_SAMPLER2DARRAY, + GLOBAL_VAR_TYPE_SAMPLER3D, + GLOBAL_VAR_TYPE_SAMPLERCUBE, + GLOBAL_VAR_TYPE_SAMPLEREXT, + GLOBAL_VAR_TYPE_MAX, +}; + +/* STATUS INFORMATION */ + +enum RenderingInfo { + RENDERING_INFO_TOTAL_OBJECTS_IN_FRAME, + RENDERING_INFO_TOTAL_PRIMITIVES_IN_FRAME, + RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME, + RENDERING_INFO_TEXTURE_MEM_USED, + RENDERING_INFO_BUFFER_MEM_USED, + RENDERING_INFO_VIDEO_MEM_USED, + RENDERING_INFO_PIPELINE_COMPILATIONS_CANVAS, + RENDERING_INFO_PIPELINE_COMPILATIONS_MESH, + RENDERING_INFO_PIPELINE_COMPILATIONS_SURFACE, + RENDERING_INFO_PIPELINE_COMPILATIONS_DRAW, + RENDERING_INFO_PIPELINE_COMPILATIONS_SPECIALIZATION, + RENDERING_INFO_MAX, +}; + +/* MISC */ + +enum SplashStretchMode { + SPLASH_STRETCH_MODE_DISABLED, + SPLASH_STRETCH_MODE_KEEP, + SPLASH_STRETCH_MODE_KEEP_WIDTH, + SPLASH_STRETCH_MODE_KEEP_HEIGHT, + SPLASH_STRETCH_MODE_COVER, + SPLASH_STRETCH_MODE_IGNORE, +}; + +#ifndef DISABLE_DEPRECATED +// Never actually used, should be removed when we can break compatibility. +enum Features { + FEATURE_SHADERS, + FEATURE_MULTITHREADED, +}; +#endif + +} // namespace RenderingServerEnums + +// Alias to make it easier to use. +#define RSE RenderingServerEnums diff --git a/servers/rendering/shader_compiler.cpp b/servers/rendering/shader_compiler.cpp index 4683045cbd..ec73545253 100644 --- a/servers/rendering/shader_compiler.cpp +++ b/servers/rendering/shader_compiler.cpp @@ -1518,11 +1518,11 @@ String ShaderCompiler::_dump_node_code(const SL::Node *p_node, int p_level, Gene } ShaderLanguage::DataType ShaderCompiler::_get_global_shader_uniform_type(const StringName &p_name) { - RS::GlobalShaderParameterType gvt = RSG::material_storage->global_shader_parameter_get_type(p_name); + RSE::GlobalShaderParameterType gvt = RSG::material_storage->global_shader_parameter_get_type(p_name); return (ShaderLanguage::DataType)RS::global_shader_uniform_type_get_shader_datatype(gvt); } -Error ShaderCompiler::compile(RS::ShaderMode p_mode, const String &p_code, IdentifierActions *p_actions, const String &p_path, GeneratedCode &r_gen_code) { +Error ShaderCompiler::compile(RSE::ShaderMode p_mode, const String &p_code, IdentifierActions *p_actions, const String &p_path, GeneratedCode &r_gen_code) { SL::ShaderCompileInfo info; info.functions = ShaderTypes::get_singleton()->get_functions(p_mode); info.render_modes = ShaderTypes::get_singleton()->get_modes(p_mode); diff --git a/servers/rendering/shader_compiler.h b/servers/rendering/shader_compiler.h index f01c9d102b..93afcd8eee 100644 --- a/servers/rendering/shader_compiler.h +++ b/servers/rendering/shader_compiler.h @@ -31,7 +31,7 @@ #pragma once #include "core/templates/pair.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" #include "servers/rendering/shader_language.h" class ShaderCompiler { @@ -134,7 +134,7 @@ private: static ShaderLanguage::DataType _get_global_shader_uniform_type(const StringName &p_name); public: - Error compile(RS::ShaderMode p_mode, const String &p_code, IdentifierActions *p_actions, const String &p_path, GeneratedCode &r_gen_code); + Error compile(RSE::ShaderMode p_mode, const String &p_code, IdentifierActions *p_actions, const String &p_path, GeneratedCode &r_gen_code); void initialize(DefaultIdentifierActions p_actions); ShaderCompiler(); diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp index de140a7b63..1a4c3ccc3c 100644 --- a/servers/rendering/shader_language.cpp +++ b/servers/rendering/shader_language.cpp @@ -1398,8 +1398,8 @@ void ShaderLanguage::_parse_used_identifier(const StringName &p_identifier, Iden bool ShaderLanguage::_find_identifier(const BlockNode *p_block, bool p_allow_reassign, const FunctionInfo &p_function_info, const StringName &p_identifier, DataType *r_data_type, IdentifierType *r_type, bool *r_is_const, int *r_array_size, StringName *r_struct_name, Vector *r_constant_values) { if (is_shader_inc) { - for (int i = 0; i < RenderingServer::SHADER_MAX; i++) { - for (const KeyValue &E : ShaderTypes::get_singleton()->get_functions(RenderingServer::ShaderMode(i))) { + for (int i = 0; i < RSE::SHADER_MAX; i++) { + for (const KeyValue &E : ShaderTypes::get_singleton()->get_functions(RSE::ShaderMode(i))) { if ((current_function == E.key || E.key == "global" || E.key == "constants") && E.value.built_ins.has(p_identifier)) { if (r_data_type) { *r_data_type = E.value.built_ins[p_identifier].type; @@ -11230,8 +11230,8 @@ Error ShaderLanguage::_parse_shader_mode(bool p_is_stencil, const Vector modes = p_is_stencil ? ShaderTypes::get_singleton()->get_stencil_modes(RenderingServer::ShaderMode(i)) : ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(i)); + for (int i = 0; i < RSE::SHADER_MAX; i++) { + const Vector modes = p_is_stencil ? ShaderTypes::get_singleton()->get_stencil_modes(RSE::ShaderMode(i)) : ShaderTypes::get_singleton()->get_modes(RSE::ShaderMode(i)); for (const ModeInfo &info : modes) { const String name = String(info.name); @@ -11515,8 +11515,8 @@ Error ShaderLanguage::complete(const String &p_code, const ShaderCompileInfo &p_ } break; case COMPLETION_RENDER_MODE: { if (is_shader_inc) { - for (int i = 0; i < RenderingServer::SHADER_MAX; i++) { - const Vector modes = ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(i)); + for (int i = 0; i < RSE::SHADER_MAX; i++) { + const Vector modes = ShaderTypes::get_singleton()->get_modes(RSE::ShaderMode(i)); for (int j = 0; j < modes.size(); j++) { const ModeInfo &info = modes[j]; @@ -11580,8 +11580,8 @@ Error ShaderLanguage::complete(const String &p_code, const ShaderCompileInfo &p_ } break; case COMPLETION_STENCIL_MODE: { if (is_shader_inc) { - for (int i = 0; i < RenderingServer::SHADER_MAX; i++) { - const Vector modes = ShaderTypes::get_singleton()->get_stencil_modes(RenderingServer::ShaderMode(i)); + for (int i = 0; i < RSE::SHADER_MAX; i++) { + const Vector modes = ShaderTypes::get_singleton()->get_stencil_modes(RSE::ShaderMode(i)); for (const ModeInfo &info : modes) { if (!info.options.is_empty()) { @@ -11701,8 +11701,8 @@ Error ShaderLanguage::complete(const String &p_code, const ShaderCompileInfo &p_ if (comp_ident) { if (is_shader_inc) { - for (int i = 0; i < RenderingServer::SHADER_MAX; i++) { - const HashMap &info = ShaderTypes::get_singleton()->get_functions(RenderingServer::ShaderMode(i)); + for (int i = 0; i < RSE::SHADER_MAX; i++) { + const HashMap &info = ShaderTypes::get_singleton()->get_functions(RSE::ShaderMode(i)); if (info.has("global")) { for (const KeyValue &E : info["global"].built_ins) { diff --git a/servers/rendering/shader_types.cpp b/servers/rendering/shader_types.cpp index a8e9f17f5b..b674fdce28 100644 --- a/servers/rendering/shader_types.cpp +++ b/servers/rendering/shader_types.cpp @@ -32,15 +32,15 @@ #include "scene/resources/shader.h" -const HashMap &ShaderTypes::get_functions(RS::ShaderMode p_mode) const { +const HashMap &ShaderTypes::get_functions(RSE::ShaderMode p_mode) const { return shader_modes[p_mode].functions; } -const Vector &ShaderTypes::get_modes(RS::ShaderMode p_mode) const { +const Vector &ShaderTypes::get_modes(RSE::ShaderMode p_mode) const { return shader_modes[p_mode].modes; } -const Vector &ShaderTypes::get_stencil_modes(RS::ShaderMode p_mode) const { +const Vector &ShaderTypes::get_stencil_modes(RSE::ShaderMode p_mode) const { return shader_modes[p_mode].stencil_modes; } @@ -76,248 +76,248 @@ ShaderTypes::ShaderTypes() { ShaderLanguage::Scalar e_scalar; e_scalar.real = Math::E; - shader_modes[RS::SHADER_SPATIAL].functions["global"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SPATIAL].functions["global"].built_ins["EXPOSURE"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SPATIAL].functions["global"].built_ins["IN_SHADOW_PASS"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_SPATIAL].functions["constants"].built_ins["PI"] = constvt(ShaderLanguage::TYPE_FLOAT, { pi_scalar }); - shader_modes[RS::SHADER_SPATIAL].functions["constants"].built_ins["TAU"] = constvt(ShaderLanguage::TYPE_FLOAT, { tau_scalar }); - shader_modes[RS::SHADER_SPATIAL].functions["constants"].built_ins["E"] = constvt(ShaderLanguage::TYPE_FLOAT, { e_scalar }); - shader_modes[RS::SHADER_SPATIAL].functions["constants"].built_ins["OUTPUT_IS_SRGB"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_SPATIAL].functions["constants"].built_ins["CLIP_SPACE_FAR"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SPATIAL].functions["constants"].built_ins["IS_MULTIVIEW"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_SPATIAL].functions["global"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SPATIAL].functions["global"].built_ins["EXPOSURE"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SPATIAL].functions["global"].built_ins["IN_SHADOW_PASS"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_SPATIAL].functions["constants"].built_ins["PI"] = constvt(ShaderLanguage::TYPE_FLOAT, { pi_scalar }); + shader_modes[RSE::SHADER_SPATIAL].functions["constants"].built_ins["TAU"] = constvt(ShaderLanguage::TYPE_FLOAT, { tau_scalar }); + shader_modes[RSE::SHADER_SPATIAL].functions["constants"].built_ins["E"] = constvt(ShaderLanguage::TYPE_FLOAT, { e_scalar }); + shader_modes[RSE::SHADER_SPATIAL].functions["constants"].built_ins["OUTPUT_IS_SRGB"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_SPATIAL].functions["constants"].built_ins["CLIP_SPACE_FAR"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SPATIAL].functions["constants"].built_ins["IS_MULTIVIEW"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["VERTEX"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["NORMAL"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["TANGENT"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["BINORMAL"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["POSITION"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["UV"] = ShaderLanguage::TYPE_VEC2; - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["UV2"] = ShaderLanguage::TYPE_VEC2; - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["POINT_SIZE"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["Z_CLIP_SCALE"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["INSTANCE_ID"] = constt(ShaderLanguage::TYPE_INT); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["INSTANCE_CUSTOM"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["VERTEX_ID"] = constt(ShaderLanguage::TYPE_INT); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["ROUGHNESS"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["BONE_INDICES"] = constt(ShaderLanguage::TYPE_UVEC4); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["BONE_WEIGHTS"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["CUSTOM0"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["CUSTOM1"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["CUSTOM2"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["CUSTOM3"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].can_discard = false; - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].main_function = true; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["VERTEX"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["NORMAL"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["TANGENT"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["BINORMAL"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["POSITION"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["UV"] = ShaderLanguage::TYPE_VEC2; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["UV2"] = ShaderLanguage::TYPE_VEC2; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["POINT_SIZE"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["Z_CLIP_SCALE"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["INSTANCE_ID"] = constt(ShaderLanguage::TYPE_INT); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["INSTANCE_CUSTOM"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["VERTEX_ID"] = constt(ShaderLanguage::TYPE_INT); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["ROUGHNESS"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["BONE_INDICES"] = constt(ShaderLanguage::TYPE_UVEC4); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["BONE_WEIGHTS"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["CUSTOM0"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["CUSTOM1"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["CUSTOM2"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["CUSTOM3"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].can_discard = false; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].main_function = true; //builtins - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["MODEL_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["MODEL_NORMAL_MATRIX"] = constt(ShaderLanguage::TYPE_MAT3); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["VIEW_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["INV_VIEW_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["PROJECTION_MATRIX"] = ShaderLanguage::TYPE_MAT4; - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["INV_PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["MODELVIEW_MATRIX"] = ShaderLanguage::TYPE_MAT4; - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["MODELVIEW_NORMAL_MATRIX"] = ShaderLanguage::TYPE_MAT3; - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["VIEWPORT_SIZE"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["MAIN_CAM_INV_VIEW_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["MODEL_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["MODEL_NORMAL_MATRIX"] = constt(ShaderLanguage::TYPE_MAT3); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["VIEW_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["INV_VIEW_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["PROJECTION_MATRIX"] = ShaderLanguage::TYPE_MAT4; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["INV_PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["MODELVIEW_MATRIX"] = ShaderLanguage::TYPE_MAT4; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["MODELVIEW_NORMAL_MATRIX"] = ShaderLanguage::TYPE_MAT3; + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["VIEWPORT_SIZE"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["MAIN_CAM_INV_VIEW_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["NODE_POSITION_WORLD"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["CAMERA_POSITION_WORLD"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["CAMERA_DIRECTION_WORLD"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["CAMERA_VISIBLE_LAYERS"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["NODE_POSITION_VIEW"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["NODE_POSITION_WORLD"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["CAMERA_POSITION_WORLD"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["CAMERA_DIRECTION_WORLD"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["CAMERA_VISIBLE_LAYERS"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["NODE_POSITION_VIEW"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["VIEW_INDEX"] = constt(ShaderLanguage::TYPE_INT); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["VIEW_MONO_LEFT"] = constt(ShaderLanguage::TYPE_INT); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["VIEW_RIGHT"] = constt(ShaderLanguage::TYPE_INT); - shader_modes[RS::SHADER_SPATIAL].functions["vertex"].built_ins["EYE_OFFSET"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["VIEW_INDEX"] = constt(ShaderLanguage::TYPE_INT); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["VIEW_MONO_LEFT"] = constt(ShaderLanguage::TYPE_INT); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["VIEW_RIGHT"] = constt(ShaderLanguage::TYPE_INT); + shader_modes[RSE::SHADER_SPATIAL].functions["vertex"].built_ins["EYE_OFFSET"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["VERTEX"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["LIGHT_VERTEX"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["FRAGCOORD"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["FRONT_FACING"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["NORMAL"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["TANGENT"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["BINORMAL"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["VIEW"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["NORMAL_MAP"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["NORMAL_MAP_DEPTH"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["BENT_NORMAL_MAP"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["UV2"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["COLOR"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["ALBEDO"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["PREMUL_ALPHA_FACTOR"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["METALLIC"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["SPECULAR"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["ROUGHNESS"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["RIM"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["RIM_TINT"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["CLEARCOAT"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["CLEARCOAT_ROUGHNESS"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["ANISOTROPY"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["ANISOTROPY_FLOW"] = ShaderLanguage::TYPE_VEC2; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["SSS_STRENGTH"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["SSS_TRANSMITTANCE_COLOR"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["SSS_TRANSMITTANCE_DEPTH"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["SSS_TRANSMITTANCE_BOOST"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["BACKLIGHT"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["AO"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["AO_LIGHT_AFFECT"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["EMISSION"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["DEPTH"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["SCREEN_UV"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["POINT_COORD"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["VERTEX"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["LIGHT_VERTEX"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["FRAGCOORD"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["FRONT_FACING"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["NORMAL"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["TANGENT"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["BINORMAL"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["VIEW"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["NORMAL_MAP"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["NORMAL_MAP_DEPTH"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["BENT_NORMAL_MAP"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["UV2"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["COLOR"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["ALBEDO"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["PREMUL_ALPHA_FACTOR"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["METALLIC"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["SPECULAR"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["ROUGHNESS"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["RIM"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["RIM_TINT"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["CLEARCOAT"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["CLEARCOAT_ROUGHNESS"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["ANISOTROPY"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["ANISOTROPY_FLOW"] = ShaderLanguage::TYPE_VEC2; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["SSS_STRENGTH"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["SSS_TRANSMITTANCE_COLOR"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["SSS_TRANSMITTANCE_DEPTH"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["SSS_TRANSMITTANCE_BOOST"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["BACKLIGHT"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["AO"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["AO_LIGHT_AFFECT"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["EMISSION"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["DEPTH"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["SCREEN_UV"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["POINT_COORD"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["NODE_POSITION_WORLD"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["CAMERA_POSITION_WORLD"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["CAMERA_DIRECTION_WORLD"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["CAMERA_VISIBLE_LAYERS"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["NODE_POSITION_VIEW"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["NODE_POSITION_WORLD"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["CAMERA_POSITION_WORLD"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["CAMERA_DIRECTION_WORLD"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["CAMERA_VISIBLE_LAYERS"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["NODE_POSITION_VIEW"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["VIEW_INDEX"] = constt(ShaderLanguage::TYPE_INT); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["VIEW_MONO_LEFT"] = constt(ShaderLanguage::TYPE_INT); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["VIEW_RIGHT"] = constt(ShaderLanguage::TYPE_INT); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["EYE_OFFSET"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["VIEW_INDEX"] = constt(ShaderLanguage::TYPE_INT); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["VIEW_MONO_LEFT"] = constt(ShaderLanguage::TYPE_INT); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["VIEW_RIGHT"] = constt(ShaderLanguage::TYPE_INT); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["EYE_OFFSET"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["MODEL_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["MODEL_NORMAL_MATRIX"] = constt(ShaderLanguage::TYPE_MAT3); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["VIEW_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["INV_VIEW_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["INV_PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["VIEWPORT_SIZE"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["FOG"] = ShaderLanguage::TYPE_VEC4; // TODO consider adding to light shader - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["RADIANCE"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["IRRADIANCE"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].can_discard = true; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].main_function = true; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["MODEL_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["MODEL_NORMAL_MATRIX"] = constt(ShaderLanguage::TYPE_MAT3); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["VIEW_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["INV_VIEW_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["INV_PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["VIEWPORT_SIZE"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["FOG"] = ShaderLanguage::TYPE_VEC4; // TODO consider adding to light shader + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["RADIANCE"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["IRRADIANCE"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].can_discard = true; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].main_function = true; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA_SCISSOR_THRESHOLD"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA_HASH_SCALE"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA_ANTIALIASING_EDGE"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA_TEXTURE_COORDINATE"] = ShaderLanguage::TYPE_VEC2; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA_SCISSOR_THRESHOLD"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA_HASH_SCALE"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA_ANTIALIASING_EDGE"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA_TEXTURE_COORDINATE"] = ShaderLanguage::TYPE_VEC2; - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["MODEL_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["VIEW_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["INV_VIEW_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["INV_PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["VIEWPORT_SIZE"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["MODEL_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["VIEW_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["INV_VIEW_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["INV_PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["VIEWPORT_SIZE"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["FRAGCOORD"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["NORMAL"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["UV2"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["VIEW"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["SPECULAR_AMOUNT"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["LIGHT"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["LIGHT_COLOR"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["LIGHT_IS_DIRECTIONAL"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["ATTENUATION"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["ALBEDO"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["BACKLIGHT"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["METALLIC"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["ROUGHNESS"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["DIFFUSE_LIGHT"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["SPECULAR_LIGHT"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["ALPHA"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SPATIAL].functions["light"].built_ins["SCREEN_UV"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["FRAGCOORD"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["NORMAL"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["UV2"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["VIEW"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["SPECULAR_AMOUNT"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["LIGHT"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["LIGHT_COLOR"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["LIGHT_IS_DIRECTIONAL"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["ATTENUATION"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["ALBEDO"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["BACKLIGHT"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["METALLIC"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["ROUGHNESS"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["DIFFUSE_LIGHT"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["SPECULAR_LIGHT"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["ALPHA"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SPATIAL].functions["light"].built_ins["SCREEN_UV"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_SPATIAL].functions["light"].can_discard = true; - shader_modes[RS::SHADER_SPATIAL].functions["light"].main_function = true; + shader_modes[RSE::SHADER_SPATIAL].functions["light"].can_discard = true; + shader_modes[RSE::SHADER_SPATIAL].functions["light"].main_function = true; // spatial render modes { - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("blend"), "mix", "add", "sub", "mul", "premul_alpha" }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("depth_draw"), "opaque", "always", "never" }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("depth_prepass_alpha") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("depth_test"), { "default", "disabled", "inverted" } }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("sss_mode_skin") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("cull"), "back", "front", "disabled" }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("unshaded") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("wireframe") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("diffuse"), "lambert", "lambert_wrap", "burley", "toon" }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("specular"), "schlick_ggx", "toon", "disabled" }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("skip_vertex_transform") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("world_vertex_coords") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("ensure_correct_normals") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("shadows_disabled") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("ambient_light_disabled") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("shadow_to_opacity") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("vertex_lighting") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("particle_trails") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("alpha_to_coverage") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("alpha_to_coverage_and_one") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("debug_shadow_splits") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("fog_disabled") }); - shader_modes[RS::SHADER_SPATIAL].modes.push_back({ PNAME("specular_occlusion_disabled") }); - shader_modes[RS::SHADER_SPATIAL].stencil_modes.push_back({ PNAME("read") }); - shader_modes[RS::SHADER_SPATIAL].stencil_modes.push_back({ PNAME("write") }); - shader_modes[RS::SHADER_SPATIAL].stencil_modes.push_back({ PNAME("write_depth_fail") }); - shader_modes[RS::SHADER_SPATIAL].stencil_modes.push_back({ PNAME("compare"), { "always", "less", "equal", "less_or_equal", "greater", "not_equal", "greater_or_equal" } }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("blend"), "mix", "add", "sub", "mul", "premul_alpha" }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("depth_draw"), "opaque", "always", "never" }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("depth_prepass_alpha") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("depth_test"), { "default", "disabled", "inverted" } }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("sss_mode_skin") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("cull"), "back", "front", "disabled" }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("unshaded") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("wireframe") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("diffuse"), "lambert", "lambert_wrap", "burley", "toon" }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("specular"), "schlick_ggx", "toon", "disabled" }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("skip_vertex_transform") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("world_vertex_coords") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("ensure_correct_normals") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("shadows_disabled") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("ambient_light_disabled") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("shadow_to_opacity") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("vertex_lighting") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("particle_trails") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("alpha_to_coverage") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("alpha_to_coverage_and_one") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("debug_shadow_splits") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("fog_disabled") }); + shader_modes[RSE::SHADER_SPATIAL].modes.push_back({ PNAME("specular_occlusion_disabled") }); + shader_modes[RSE::SHADER_SPATIAL].stencil_modes.push_back({ PNAME("read") }); + shader_modes[RSE::SHADER_SPATIAL].stencil_modes.push_back({ PNAME("write") }); + shader_modes[RSE::SHADER_SPATIAL].stencil_modes.push_back({ PNAME("write_depth_fail") }); + shader_modes[RSE::SHADER_SPATIAL].stencil_modes.push_back({ PNAME("compare"), { "always", "less", "equal", "less_or_equal", "greater", "not_equal", "greater_or_equal" } }); } /************ CANVAS ITEM **************************/ - shader_modes[RS::SHADER_CANVAS_ITEM].functions["global"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["constants"].built_ins["PI"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["constants"].built_ins["TAU"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["constants"].built_ins["E"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["global"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["constants"].built_ins["PI"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["constants"].built_ins["TAU"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["constants"].built_ins["E"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["VERTEX"] = ShaderLanguage::TYPE_VEC2; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["UV"] = ShaderLanguage::TYPE_VEC2; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["POINT_SIZE"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["VERTEX"] = ShaderLanguage::TYPE_VEC2; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["UV"] = ShaderLanguage::TYPE_VEC2; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["POINT_SIZE"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["MODEL_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["CANVAS_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["SCREEN_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["INSTANCE_CUSTOM"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["INSTANCE_ID"] = constt(ShaderLanguage::TYPE_INT); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["VERTEX_ID"] = constt(ShaderLanguage::TYPE_INT); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["AT_LIGHT_PASS"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["TEXTURE_PIXEL_SIZE"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["CUSTOM0"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["CUSTOM1"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].can_discard = false; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["vertex"].main_function = true; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["MODEL_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["CANVAS_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["SCREEN_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["INSTANCE_CUSTOM"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["INSTANCE_ID"] = constt(ShaderLanguage::TYPE_INT); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["VERTEX_ID"] = constt(ShaderLanguage::TYPE_INT); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["AT_LIGHT_PASS"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["TEXTURE_PIXEL_SIZE"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["CUSTOM0"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["CUSTOM1"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].can_discard = false; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["vertex"].main_function = true; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["VERTEX"] = ShaderLanguage::TYPE_VEC2; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SHADOW_VERTEX"] = ShaderLanguage::TYPE_VEC2; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["LIGHT_VERTEX"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["FRAGCOORD"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["NORMAL"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["NORMAL_MAP"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["NORMAL_MAP_DEPTH"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["TEXTURE"] = constt(ShaderLanguage::TYPE_SAMPLER2D); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["TEXTURE_PIXEL_SIZE"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["NORMAL_TEXTURE"] = constt(ShaderLanguage::TYPE_SAMPLER2D); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SPECULAR_SHININESS_TEXTURE"] = constt(ShaderLanguage::TYPE_SAMPLER2D); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SPECULAR_SHININESS"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SCREEN_UV"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["REGION_RECT"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SCREEN_PIXEL_SIZE"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["POINT_COORD"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["AT_LIGHT_PASS"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].can_discard = true; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].main_function = true; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["VERTEX"] = ShaderLanguage::TYPE_VEC2; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SHADOW_VERTEX"] = ShaderLanguage::TYPE_VEC2; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["LIGHT_VERTEX"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["FRAGCOORD"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["NORMAL"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["NORMAL_MAP"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["NORMAL_MAP_DEPTH"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["TEXTURE"] = constt(ShaderLanguage::TYPE_SAMPLER2D); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["TEXTURE_PIXEL_SIZE"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["NORMAL_TEXTURE"] = constt(ShaderLanguage::TYPE_SAMPLER2D); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SPECULAR_SHININESS_TEXTURE"] = constt(ShaderLanguage::TYPE_SAMPLER2D); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SPECULAR_SHININESS"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SCREEN_UV"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["REGION_RECT"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SCREEN_PIXEL_SIZE"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["POINT_COORD"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["AT_LIGHT_PASS"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].can_discard = true; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].main_function = true; { ShaderLanguage::StageFunctionInfo func; func.skip_function = "vertex"; func.arguments.push_back(ShaderLanguage::StageFunctionInfo::Argument("sdf_pos", ShaderLanguage::TYPE_VEC2)); func.return_type = ShaderLanguage::TYPE_FLOAT; //whether it could emit - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].stage_functions["texture_sdf"] = func; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].stage_functions["texture_sdf"] = func; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].stage_functions["texture_sdf"] = func; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].stage_functions["texture_sdf"] = func; func.return_type = ShaderLanguage::TYPE_VEC2; //whether it could emit - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].stage_functions["sdf_to_screen_uv"] = func; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].stage_functions["sdf_to_screen_uv"] = func; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].stage_functions["texture_sdf_normal"] = func; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].stage_functions["texture_sdf_normal"] = func; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].stage_functions["sdf_to_screen_uv"] = func; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].stage_functions["sdf_to_screen_uv"] = func; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].stage_functions["texture_sdf_normal"] = func; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].stage_functions["texture_sdf_normal"] = func; } { @@ -325,111 +325,111 @@ ShaderTypes::ShaderTypes() { func.skip_function = "vertex"; func.arguments.push_back(ShaderLanguage::StageFunctionInfo::Argument("uv", ShaderLanguage::TYPE_VEC2)); func.return_type = ShaderLanguage::TYPE_VEC2; //whether it could emit - shader_modes[RS::SHADER_CANVAS_ITEM].functions["fragment"].stage_functions["screen_uv_to_sdf"] = func; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].stage_functions["screen_uv_to_sdf"] = func; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["fragment"].stage_functions["screen_uv_to_sdf"] = func; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].stage_functions["screen_uv_to_sdf"] = func; } - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["FRAGCOORD"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["NORMAL"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["COLOR"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["SPECULAR_SHININESS"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_COLOR"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_POSITION"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_DIRECTION"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_ENERGY"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_IS_DIRECTIONAL"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_VERTEX"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["SHADOW_MODULATE"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["SCREEN_UV"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["TEXTURE"] = constt(ShaderLanguage::TYPE_SAMPLER2D); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["TEXTURE_PIXEL_SIZE"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].built_ins["POINT_COORD"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].can_discard = true; - shader_modes[RS::SHADER_CANVAS_ITEM].functions["light"].main_function = true; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["FRAGCOORD"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["NORMAL"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["COLOR"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["SPECULAR_SHININESS"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_COLOR"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_POSITION"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_DIRECTION"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_ENERGY"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_IS_DIRECTIONAL"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_VERTEX"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["SHADOW_MODULATE"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["SCREEN_UV"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["TEXTURE"] = constt(ShaderLanguage::TYPE_SAMPLER2D); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["TEXTURE_PIXEL_SIZE"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].built_ins["POINT_COORD"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].can_discard = true; + shader_modes[RSE::SHADER_CANVAS_ITEM].functions["light"].main_function = true; // canvasitem render modes { - shader_modes[RS::SHADER_CANVAS_ITEM].modes.push_back({ PNAME("skip_vertex_transform") }); - shader_modes[RS::SHADER_CANVAS_ITEM].modes.push_back({ PNAME("blend"), "mix", "add", "sub", "mul", "premul_alpha", "disabled" }); - shader_modes[RS::SHADER_CANVAS_ITEM].modes.push_back({ PNAME("unshaded") }); - shader_modes[RS::SHADER_CANVAS_ITEM].modes.push_back({ PNAME("light_only") }); - shader_modes[RS::SHADER_CANVAS_ITEM].modes.push_back({ PNAME("world_vertex_coords") }); + shader_modes[RSE::SHADER_CANVAS_ITEM].modes.push_back({ PNAME("skip_vertex_transform") }); + shader_modes[RSE::SHADER_CANVAS_ITEM].modes.push_back({ PNAME("blend"), "mix", "add", "sub", "mul", "premul_alpha", "disabled" }); + shader_modes[RSE::SHADER_CANVAS_ITEM].modes.push_back({ PNAME("unshaded") }); + shader_modes[RSE::SHADER_CANVAS_ITEM].modes.push_back({ PNAME("light_only") }); + shader_modes[RSE::SHADER_CANVAS_ITEM].modes.push_back({ PNAME("world_vertex_coords") }); } /************ PARTICLES **************************/ - shader_modes[RS::SHADER_PARTICLES].functions["global"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_PARTICLES].functions["constants"].built_ins["PI"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_PARTICLES].functions["constants"].built_ins["TAU"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_PARTICLES].functions["constants"].built_ins["E"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_PARTICLES].functions["global"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_PARTICLES].functions["constants"].built_ins["PI"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_PARTICLES].functions["constants"].built_ins["TAU"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_PARTICLES].functions["constants"].built_ins["E"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["VELOCITY"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["MASS"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["ACTIVE"] = ShaderLanguage::TYPE_BOOL; - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["CUSTOM"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["USERDATA1"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["USERDATA2"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["USERDATA3"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["USERDATA4"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["USERDATA5"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["USERDATA6"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["TRANSFORM"] = ShaderLanguage::TYPE_MAT4; - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["LIFETIME"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["DELTA"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["NUMBER"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["INDEX"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["EMISSION_TRANSFORM"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["EMITTER_VELOCITY"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["INTERPOLATE_TO_END"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["RANDOM_SEED"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["FLAG_EMIT_POSITION"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["FLAG_EMIT_ROT_SCALE"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["FLAG_EMIT_VELOCITY"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["FLAG_EMIT_COLOR"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["FLAG_EMIT_CUSTOM"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["RESTART_POSITION"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["RESTART_ROT_SCALE"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["RESTART_VELOCITY"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["RESTART_COLOR"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["RESTART_CUSTOM"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_PARTICLES].functions["start"].built_ins["AMOUNT_RATIO"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_PARTICLES].functions["start"].main_function = true; + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["VELOCITY"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["MASS"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["ACTIVE"] = ShaderLanguage::TYPE_BOOL; + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["CUSTOM"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["USERDATA1"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["USERDATA2"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["USERDATA3"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["USERDATA4"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["USERDATA5"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["USERDATA6"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["TRANSFORM"] = ShaderLanguage::TYPE_MAT4; + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["LIFETIME"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["DELTA"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["NUMBER"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["INDEX"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["EMISSION_TRANSFORM"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["EMITTER_VELOCITY"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["INTERPOLATE_TO_END"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["RANDOM_SEED"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["FLAG_EMIT_POSITION"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["FLAG_EMIT_ROT_SCALE"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["FLAG_EMIT_VELOCITY"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["FLAG_EMIT_COLOR"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["FLAG_EMIT_CUSTOM"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["RESTART_POSITION"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["RESTART_ROT_SCALE"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["RESTART_VELOCITY"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["RESTART_COLOR"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["RESTART_CUSTOM"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].built_ins["AMOUNT_RATIO"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_PARTICLES].functions["start"].main_function = true; - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["VELOCITY"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["MASS"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["ACTIVE"] = ShaderLanguage::TYPE_BOOL; - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["RESTART"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["CUSTOM"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["USERDATA1"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["USERDATA2"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["USERDATA3"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["USERDATA4"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["USERDATA5"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["USERDATA6"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["TRANSFORM"] = ShaderLanguage::TYPE_MAT4; - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["LIFETIME"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["DELTA"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["NUMBER"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["INDEX"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["EMISSION_TRANSFORM"] = constt(ShaderLanguage::TYPE_MAT4); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["EMITTER_VELOCITY"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["INTERPOLATE_TO_END"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["RANDOM_SEED"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["FLAG_EMIT_POSITION"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["FLAG_EMIT_ROT_SCALE"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["FLAG_EMIT_VELOCITY"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["FLAG_EMIT_COLOR"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["FLAG_EMIT_CUSTOM"] = constt(ShaderLanguage::TYPE_UINT); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["COLLIDED"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["COLLISION_NORMAL"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["COLLISION_DEPTH"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["ATTRACTOR_FORCE"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_PARTICLES].functions["process"].built_ins["AMOUNT_RATIO"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_PARTICLES].functions["process"].main_function = true; + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["VELOCITY"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["MASS"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["ACTIVE"] = ShaderLanguage::TYPE_BOOL; + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["RESTART"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["CUSTOM"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["USERDATA1"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["USERDATA2"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["USERDATA3"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["USERDATA4"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["USERDATA5"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["USERDATA6"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["TRANSFORM"] = ShaderLanguage::TYPE_MAT4; + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["LIFETIME"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["DELTA"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["NUMBER"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["INDEX"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["EMISSION_TRANSFORM"] = constt(ShaderLanguage::TYPE_MAT4); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["EMITTER_VELOCITY"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["INTERPOLATE_TO_END"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["RANDOM_SEED"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["FLAG_EMIT_POSITION"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["FLAG_EMIT_ROT_SCALE"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["FLAG_EMIT_VELOCITY"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["FLAG_EMIT_COLOR"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["FLAG_EMIT_CUSTOM"] = constt(ShaderLanguage::TYPE_UINT); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["COLLIDED"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["COLLISION_NORMAL"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["COLLISION_DEPTH"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["ATTRACTOR_FORCE"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].built_ins["AMOUNT_RATIO"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_PARTICLES].functions["process"].main_function = true; { ShaderLanguage::StageFunctionInfo emit_vertex_func; @@ -439,108 +439,108 @@ ShaderTypes::ShaderTypes() { emit_vertex_func.arguments.push_back(ShaderLanguage::StageFunctionInfo::Argument("custom", ShaderLanguage::TYPE_VEC4)); emit_vertex_func.arguments.push_back(ShaderLanguage::StageFunctionInfo::Argument("flags", ShaderLanguage::TYPE_UINT)); emit_vertex_func.return_type = ShaderLanguage::TYPE_BOOL; //whether it could emit - shader_modes[RS::SHADER_PARTICLES].functions["start"].stage_functions["emit_subparticle"] = emit_vertex_func; - shader_modes[RS::SHADER_PARTICLES].functions["process"].stage_functions["emit_subparticle"] = emit_vertex_func; + shader_modes[RSE::SHADER_PARTICLES].functions["start"].stage_functions["emit_subparticle"] = emit_vertex_func; + shader_modes[RSE::SHADER_PARTICLES].functions["process"].stage_functions["emit_subparticle"] = emit_vertex_func; } // particles render modes { - shader_modes[RS::SHADER_PARTICLES].modes.push_back({ PNAME("collision_use_scale") }); - shader_modes[RS::SHADER_PARTICLES].modes.push_back({ PNAME("disable_force") }); - shader_modes[RS::SHADER_PARTICLES].modes.push_back({ PNAME("disable_velocity") }); - shader_modes[RS::SHADER_PARTICLES].modes.push_back({ PNAME("keep_data") }); + shader_modes[RSE::SHADER_PARTICLES].modes.push_back({ PNAME("collision_use_scale") }); + shader_modes[RSE::SHADER_PARTICLES].modes.push_back({ PNAME("disable_force") }); + shader_modes[RSE::SHADER_PARTICLES].modes.push_back({ PNAME("disable_velocity") }); + shader_modes[RSE::SHADER_PARTICLES].modes.push_back({ PNAME("keep_data") }); } /************ SKY **************************/ - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SKY].functions["constants"].built_ins["PI"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SKY].functions["constants"].built_ins["TAU"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SKY].functions["constants"].built_ins["E"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["POSITION"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["RADIANCE"] = constt(ShaderLanguage::TYPE_SAMPLERCUBE); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["AT_HALF_RES_PASS"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["AT_QUARTER_RES_PASS"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["AT_CUBEMAP_PASS"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT0_ENABLED"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT0_DIRECTION"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT0_ENERGY"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT0_COLOR"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT0_SIZE"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT1_ENABLED"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT1_DIRECTION"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT1_ENERGY"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT1_COLOR"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT1_SIZE"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT2_ENABLED"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT2_DIRECTION"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT2_ENERGY"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT2_COLOR"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT2_SIZE"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT3_ENABLED"] = constt(ShaderLanguage::TYPE_BOOL); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT3_DIRECTION"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT3_ENERGY"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT3_COLOR"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SKY].functions["global"].built_ins["LIGHT3_SIZE"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SKY].functions["constants"].built_ins["PI"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SKY].functions["constants"].built_ins["TAU"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SKY].functions["constants"].built_ins["E"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["POSITION"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["RADIANCE"] = constt(ShaderLanguage::TYPE_SAMPLERCUBE); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["AT_HALF_RES_PASS"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["AT_QUARTER_RES_PASS"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["AT_CUBEMAP_PASS"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT0_ENABLED"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT0_DIRECTION"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT0_ENERGY"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT0_COLOR"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT0_SIZE"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT1_ENABLED"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT1_DIRECTION"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT1_ENERGY"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT1_COLOR"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT1_SIZE"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT2_ENABLED"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT2_DIRECTION"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT2_ENERGY"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT2_COLOR"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT2_SIZE"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT3_ENABLED"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT3_DIRECTION"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT3_ENERGY"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT3_COLOR"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SKY].functions["global"].built_ins["LIGHT3_SIZE"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_SKY].functions["sky"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_SKY].functions["sky"].built_ins["ALPHA"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_SKY].functions["sky"].built_ins["EYEDIR"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_SKY].functions["sky"].built_ins["SCREEN_UV"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_SKY].functions["sky"].built_ins["FRAGCOORD"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_SKY].functions["sky"].built_ins["SKY_COORDS"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_SKY].functions["sky"].built_ins["HALF_RES_COLOR"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_SKY].functions["sky"].built_ins["QUARTER_RES_COLOR"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_SKY].functions["sky"].built_ins["FOG"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_SKY].functions["sky"].main_function = true; + shader_modes[RSE::SHADER_SKY].functions["sky"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_SKY].functions["sky"].built_ins["ALPHA"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_SKY].functions["sky"].built_ins["EYEDIR"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_SKY].functions["sky"].built_ins["SCREEN_UV"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_SKY].functions["sky"].built_ins["FRAGCOORD"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_SKY].functions["sky"].built_ins["SKY_COORDS"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_SKY].functions["sky"].built_ins["HALF_RES_COLOR"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_SKY].functions["sky"].built_ins["QUARTER_RES_COLOR"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_SKY].functions["sky"].built_ins["FOG"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_SKY].functions["sky"].main_function = true; // sky render modes { - shader_modes[RS::SHADER_SKY].modes.push_back({ PNAME("use_half_res_pass") }); - shader_modes[RS::SHADER_SKY].modes.push_back({ PNAME("use_quarter_res_pass") }); - shader_modes[RS::SHADER_SKY].modes.push_back({ PNAME("disable_fog") }); - shader_modes[RS::SHADER_SKY].modes.push_back({ PNAME("use_debanding") }); + shader_modes[RSE::SHADER_SKY].modes.push_back({ PNAME("use_half_res_pass") }); + shader_modes[RSE::SHADER_SKY].modes.push_back({ PNAME("use_quarter_res_pass") }); + shader_modes[RSE::SHADER_SKY].modes.push_back({ PNAME("disable_fog") }); + shader_modes[RSE::SHADER_SKY].modes.push_back({ PNAME("use_debanding") }); } /************ FOG **************************/ - shader_modes[RS::SHADER_FOG].functions["global"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_FOG].functions["constants"].built_ins["PI"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_FOG].functions["constants"].built_ins["TAU"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_FOG].functions["constants"].built_ins["E"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_FOG].functions["global"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_FOG].functions["constants"].built_ins["PI"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_FOG].functions["constants"].built_ins["TAU"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_FOG].functions["constants"].built_ins["E"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_FOG].functions["fog"].built_ins["WORLD_POSITION"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_FOG].functions["fog"].built_ins["OBJECT_POSITION"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_FOG].functions["fog"].built_ins["UVW"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_FOG].functions["fog"].built_ins["SIZE"] = constt(ShaderLanguage::TYPE_VEC3); - shader_modes[RS::SHADER_FOG].functions["fog"].built_ins["SDF"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_FOG].functions["fog"].built_ins["ALBEDO"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_FOG].functions["fog"].built_ins["DENSITY"] = ShaderLanguage::TYPE_FLOAT; - shader_modes[RS::SHADER_FOG].functions["fog"].built_ins["EMISSION"] = ShaderLanguage::TYPE_VEC3; - shader_modes[RS::SHADER_FOG].functions["fog"].main_function = true; + shader_modes[RSE::SHADER_FOG].functions["fog"].built_ins["WORLD_POSITION"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_FOG].functions["fog"].built_ins["OBJECT_POSITION"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_FOG].functions["fog"].built_ins["UVW"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_FOG].functions["fog"].built_ins["SIZE"] = constt(ShaderLanguage::TYPE_VEC3); + shader_modes[RSE::SHADER_FOG].functions["fog"].built_ins["SDF"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_FOG].functions["fog"].built_ins["ALBEDO"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_FOG].functions["fog"].built_ins["DENSITY"] = ShaderLanguage::TYPE_FLOAT; + shader_modes[RSE::SHADER_FOG].functions["fog"].built_ins["EMISSION"] = ShaderLanguage::TYPE_VEC3; + shader_modes[RSE::SHADER_FOG].functions["fog"].main_function = true; /************ TEXTURE_BLIT **************************/ - shader_modes[RS::SHADER_TEXTURE_BLIT].functions["global"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_TEXTURE_BLIT].functions["constants"].built_ins["PI"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_TEXTURE_BLIT].functions["constants"].built_ins["TAU"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_TEXTURE_BLIT].functions["constants"].built_ins["E"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_TEXTURE_BLIT].functions["global"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_TEXTURE_BLIT].functions["constants"].built_ins["PI"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_TEXTURE_BLIT].functions["constants"].built_ins["TAU"] = constt(ShaderLanguage::TYPE_FLOAT); + shader_modes[RSE::SHADER_TEXTURE_BLIT].functions["constants"].built_ins["E"] = constt(ShaderLanguage::TYPE_FLOAT); - shader_modes[RS::SHADER_TEXTURE_BLIT].functions["blit"].built_ins["FRAGCOORD"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_TEXTURE_BLIT].functions["blit"].built_ins["FRAGCOORD"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_TEXTURE_BLIT].functions["blit"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2); - shader_modes[RS::SHADER_TEXTURE_BLIT].functions["blit"].built_ins["MODULATE"] = constt(ShaderLanguage::TYPE_VEC4); + shader_modes[RSE::SHADER_TEXTURE_BLIT].functions["blit"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2); + shader_modes[RSE::SHADER_TEXTURE_BLIT].functions["blit"].built_ins["MODULATE"] = constt(ShaderLanguage::TYPE_VEC4); - shader_modes[RS::SHADER_TEXTURE_BLIT].functions["blit"].built_ins["COLOR0"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_TEXTURE_BLIT].functions["blit"].built_ins["COLOR1"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_TEXTURE_BLIT].functions["blit"].built_ins["COLOR2"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_TEXTURE_BLIT].functions["blit"].built_ins["COLOR3"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_TEXTURE_BLIT].functions["blit"].built_ins["COLOR0"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_TEXTURE_BLIT].functions["blit"].built_ins["COLOR1"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_TEXTURE_BLIT].functions["blit"].built_ins["COLOR2"] = ShaderLanguage::TYPE_VEC4; + shader_modes[RSE::SHADER_TEXTURE_BLIT].functions["blit"].built_ins["COLOR3"] = ShaderLanguage::TYPE_VEC4; - shader_modes[RS::SHADER_TEXTURE_BLIT].functions["blit"].main_function = true; + shader_modes[RSE::SHADER_TEXTURE_BLIT].functions["blit"].main_function = true; // Texture Blit Modes { - shader_modes[RS::SHADER_TEXTURE_BLIT].modes.push_back({ PNAME("blend"), "mix", "add", "sub", "mul", "disabled" }); + shader_modes[RSE::SHADER_TEXTURE_BLIT].modes.push_back({ PNAME("blend"), "mix", "add", "sub", "mul", "disabled" }); } // Must be kept in sync with the Shader::Mode enum. diff --git a/servers/rendering/shader_types.h b/servers/rendering/shader_types.h index b9dc5b6e31..3c3734ddaf 100644 --- a/servers/rendering/shader_types.h +++ b/servers/rendering/shader_types.h @@ -30,7 +30,7 @@ #pragma once -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" #include "shader_language.h" class ShaderTypes { @@ -40,7 +40,7 @@ class ShaderTypes { Vector stencil_modes; }; - HashMap shader_modes; + HashMap shader_modes; static ShaderTypes *singleton; @@ -50,9 +50,9 @@ class ShaderTypes { public: static ShaderTypes *get_singleton() { return singleton; } - const HashMap &get_functions(RS::ShaderMode p_mode) const; - const Vector &get_modes(RS::ShaderMode p_mode) const; - const Vector &get_stencil_modes(RS::ShaderMode p_mode) const; + const HashMap &get_functions(RSE::ShaderMode p_mode) const; + const Vector &get_modes(RSE::ShaderMode p_mode) const; + const Vector &get_stencil_modes(RSE::ShaderMode p_mode) const; const HashSet &get_types() const; const List &get_types_list() const; diff --git a/servers/rendering/storage/camera_attributes_storage.cpp b/servers/rendering/storage/camera_attributes_storage.cpp index df8fc2c31e..a8f0057239 100644 --- a/servers/rendering/storage/camera_attributes_storage.cpp +++ b/servers/rendering/storage/camera_attributes_storage.cpp @@ -30,6 +30,10 @@ #include "camera_attributes_storage.h" +#ifdef DEBUG_ENABLED +#include "core/os/os.h" +#endif + RendererCameraAttributes *RendererCameraAttributes::singleton = nullptr; uint64_t RendererCameraAttributes::auto_exposure_counter = 2; @@ -53,12 +57,12 @@ void RendererCameraAttributes::camera_attributes_free(RID p_rid) { camera_attributes_owner.free(p_rid); } -void RendererCameraAttributes::camera_attributes_set_dof_blur_quality(RS::DOFBlurQuality p_quality, bool p_use_jitter) { +void RendererCameraAttributes::camera_attributes_set_dof_blur_quality(RSE::DOFBlurQuality p_quality, bool p_use_jitter) { dof_blur_quality = p_quality; dof_blur_use_jitter = p_use_jitter; } -void RendererCameraAttributes::camera_attributes_set_dof_blur_bokeh_shape(RS::DOFBokehShape p_shape) { +void RendererCameraAttributes::camera_attributes_set_dof_blur_bokeh_shape(RSE::DOFBokehShape p_shape) { dof_blur_bokeh_shape = p_shape; } diff --git a/servers/rendering/storage/camera_attributes_storage.h b/servers/rendering/storage/camera_attributes_storage.h index d2de4af549..e8afd98191 100644 --- a/servers/rendering/storage/camera_attributes_storage.h +++ b/servers/rendering/storage/camera_attributes_storage.h @@ -31,7 +31,7 @@ #pragma once #include "core/templates/rid_owner.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class RendererCameraAttributes { private: @@ -58,8 +58,8 @@ private: float dof_blur_amount = 0.1; }; - RS::DOFBlurQuality dof_blur_quality = RS::DOF_BLUR_QUALITY_MEDIUM; - RS::DOFBokehShape dof_blur_bokeh_shape = RS::DOF_BOKEH_HEXAGON; + RSE::DOFBlurQuality dof_blur_quality = RSE::DOF_BLUR_QUALITY_MEDIUM; + RSE::DOFBokehShape dof_blur_bokeh_shape = RSE::DOF_BOKEH_HEXAGON; bool dof_blur_use_jitter = false; static uint64_t auto_exposure_counter; @@ -78,8 +78,8 @@ public: void camera_attributes_initialize(RID p_rid); void camera_attributes_free(RID p_rid); - void camera_attributes_set_dof_blur_quality(RS::DOFBlurQuality p_quality, bool p_use_jitter); - void camera_attributes_set_dof_blur_bokeh_shape(RS::DOFBokehShape p_shape); + void camera_attributes_set_dof_blur_quality(RSE::DOFBlurQuality p_quality, bool p_use_jitter); + void camera_attributes_set_dof_blur_bokeh_shape(RSE::DOFBokehShape p_shape); void camera_attributes_set_dof_blur(RID p_camera_attributes, bool p_far_enable, float p_far_distance, float p_far_transition, bool p_near_enable, float p_near_distance, float p_near_transition, float p_amount); bool camera_attributes_get_dof_far_enabled(RID p_camera_attributes); @@ -112,11 +112,11 @@ public: return cam_attributes && cam_attributes->use_auto_exposure; } - _FORCE_INLINE_ RS::DOFBlurQuality camera_attributes_get_dof_blur_quality() { + _FORCE_INLINE_ RSE::DOFBlurQuality camera_attributes_get_dof_blur_quality() { return dof_blur_quality; } - _FORCE_INLINE_ RS::DOFBokehShape camera_attributes_get_dof_blur_bokeh_shape() { + _FORCE_INLINE_ RSE::DOFBokehShape camera_attributes_get_dof_blur_bokeh_shape() { return dof_blur_bokeh_shape; } diff --git a/servers/rendering/storage/compositor_storage.cpp b/servers/rendering/storage/compositor_storage.cpp index 06b6b4cbca..0d7139aa6e 100644 --- a/servers/rendering/storage/compositor_storage.cpp +++ b/servers/rendering/storage/compositor_storage.cpp @@ -65,14 +65,14 @@ void RendererCompositorStorage::compositor_effect_free(RID p_rid) { } // Update motion vector count if needed. - if (effect->is_enabled && effect->flags.has_flag(RS::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS)) { + if (effect->is_enabled && effect->flags.has_flag(RSE::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS)) { num_compositor_effects_with_motion_vectors--; } compositor_effects_owner.free(p_rid); } -void RendererCompositorStorage::compositor_effect_set_callback(RID p_effect, RS::CompositorEffectCallbackType p_callback_type, const Callable &p_callback) { +void RendererCompositorStorage::compositor_effect_set_callback(RID p_effect, RSE::CompositorEffectCallbackType p_callback_type, const Callable &p_callback) { CompositorEffect *effect = compositor_effects_owner.get_or_null(p_effect); ERR_FAIL_NULL(effect); @@ -84,7 +84,7 @@ void RendererCompositorStorage::compositor_effect_set_enabled(RID p_effect, bool CompositorEffect *effect = compositor_effects_owner.get_or_null(p_effect); ERR_FAIL_NULL(effect); - if (effect->is_enabled != p_enabled && effect->flags.has_flag(RS::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS)) { + if (effect->is_enabled != p_enabled && effect->flags.has_flag(RSE::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS)) { if (p_enabled) { num_compositor_effects_with_motion_vectors++; } else { @@ -102,9 +102,9 @@ bool RendererCompositorStorage::compositor_effect_get_enabled(RID p_effect) cons return effect->is_enabled; } -RS::CompositorEffectCallbackType RendererCompositorStorage::compositor_effect_get_callback_type(RID p_effect) const { +RSE::CompositorEffectCallbackType RendererCompositorStorage::compositor_effect_get_callback_type(RID p_effect) const { CompositorEffect *effect = compositor_effects_owner.get_or_null(p_effect); - ERR_FAIL_NULL_V(effect, RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_MAX); + ERR_FAIL_NULL_V(effect, RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_MAX); return effect->callback_type; } @@ -116,12 +116,12 @@ Callable RendererCompositorStorage::compositor_effect_get_callback(RID p_effect) return effect->callback; } -void RendererCompositorStorage::compositor_effect_set_flag(RID p_effect, RS::CompositorEffectFlags p_flag, bool p_set) { +void RendererCompositorStorage::compositor_effect_set_flag(RID p_effect, RSE::CompositorEffectFlags p_flag, bool p_set) { CompositorEffect *effect = compositor_effects_owner.get_or_null(p_effect); ERR_FAIL_NULL(effect); - if (effect->is_enabled && p_flag == RS::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS) { - bool was_set = effect->flags.has_flag(RS::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS); + if (effect->is_enabled && p_flag == RSE::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS) { + bool was_set = effect->flags.has_flag(RSE::CompositorEffectFlags::COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS); if (was_set != p_set) { if (p_set) { @@ -139,7 +139,7 @@ void RendererCompositorStorage::compositor_effect_set_flag(RID p_effect, RS::Com } } -bool RendererCompositorStorage::compositor_effect_get_flag(RID p_effect, RS::CompositorEffectFlags p_flag) const { +bool RendererCompositorStorage::compositor_effect_get_flag(RID p_effect, RSE::CompositorEffectFlags p_flag) const { CompositorEffect *effect = compositor_effects_owner.get_or_null(p_effect); ERR_FAIL_NULL_V(effect, false); @@ -174,15 +174,15 @@ void RendererCompositorStorage::compositor_set_compositor_effects(RID p_composit } } -Vector RendererCompositorStorage::compositor_get_compositor_effects(RID p_compositor, RS::CompositorEffectCallbackType p_callback_type, bool p_enabled_only) const { +Vector RendererCompositorStorage::compositor_get_compositor_effects(RID p_compositor, RSE::CompositorEffectCallbackType p_callback_type, bool p_enabled_only) const { Compositor *compositor = compositor_owner.get_or_null(p_compositor); ERR_FAIL_NULL_V(compositor, Vector()); - if (p_enabled_only || p_callback_type != RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY) { + if (p_enabled_only || p_callback_type != RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY) { Vector effects; for (RID rid : compositor->compositor_effects) { - if ((!p_enabled_only || compositor_effect_get_enabled(rid)) && (p_callback_type == RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY || compositor_effect_get_callback_type(rid) == p_callback_type)) { + if ((!p_enabled_only || compositor_effect_get_enabled(rid)) && (p_callback_type == RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY || compositor_effect_get_callback_type(rid) == p_callback_type)) { effects.push_back(rid); } } diff --git a/servers/rendering/storage/compositor_storage.h b/servers/rendering/storage/compositor_storage.h index 001b482d8e..539fde8c67 100644 --- a/servers/rendering/storage/compositor_storage.h +++ b/servers/rendering/storage/compositor_storage.h @@ -31,7 +31,7 @@ #pragma once #include "core/templates/rid_owner.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class RendererCompositorStorage { private: @@ -41,10 +41,10 @@ private: // Compositor effect struct CompositorEffect { bool is_enabled = true; - RS::CompositorEffectCallbackType callback_type; + RSE::CompositorEffectCallbackType callback_type; Callable callback; - BitField flags = {}; + BitField flags = {}; }; mutable RID_Owner compositor_effects_owner; @@ -76,12 +76,12 @@ public: void compositor_effect_set_enabled(RID p_effect, bool p_enabled); bool compositor_effect_get_enabled(RID p_effect) const; - void compositor_effect_set_callback(RID p_effect, RS::CompositorEffectCallbackType p_callback_type, const Callable &p_callback); - RS::CompositorEffectCallbackType compositor_effect_get_callback_type(RID p_effect) const; + void compositor_effect_set_callback(RID p_effect, RSE::CompositorEffectCallbackType p_callback_type, const Callable &p_callback); + RSE::CompositorEffectCallbackType compositor_effect_get_callback_type(RID p_effect) const; Callable compositor_effect_get_callback(RID p_effect) const; - void compositor_effect_set_flag(RID p_effect, RS::CompositorEffectFlags p_flag, bool p_set); - bool compositor_effect_get_flag(RID p_effect, RS::CompositorEffectFlags p_flag) const; + void compositor_effect_set_flag(RID p_effect, RSE::CompositorEffectFlags p_flag, bool p_set); + bool compositor_effect_get_flag(RID p_effect, RSE::CompositorEffectFlags p_flag) const; // Compositor RID compositor_allocate(); @@ -93,5 +93,5 @@ public: } void compositor_set_compositor_effects(RID p_compositor, const Vector &p_effects); - Vector compositor_get_compositor_effects(RID p_compositor, RS::CompositorEffectCallbackType p_callback_type = RS::COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY, bool p_enabled_only = true) const; + Vector compositor_get_compositor_effects(RID p_compositor, RSE::CompositorEffectCallbackType p_callback_type = RSE::COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY, bool p_enabled_only = true) const; }; diff --git a/servers/rendering/storage/environment_storage.cpp b/servers/rendering/storage/environment_storage.cpp index 8fd0bc4115..6ad85ed1bf 100644 --- a/servers/rendering/storage/environment_storage.cpp +++ b/servers/rendering/storage/environment_storage.cpp @@ -30,6 +30,10 @@ #include "environment_storage.h" +#ifdef DEBUG_ENABLED +#include "core/os/os.h" +#endif + // Storage RendererEnvironmentStorage *RendererEnvironmentStorage::singleton = nullptr; @@ -58,7 +62,7 @@ void RendererEnvironmentStorage::environment_free(RID p_rid) { // Background -void RendererEnvironmentStorage::environment_set_background(RID p_env, RS::EnvironmentBG p_bg) { +void RendererEnvironmentStorage::environment_set_background(RID p_env, RSE::EnvironmentBG p_bg) { Environment *env = environment_owner.get_or_null(p_env); ERR_FAIL_NULL(env); env->background = p_bg; @@ -101,7 +105,7 @@ void RendererEnvironmentStorage::environment_set_canvas_max_layer(RID p_env, int env->canvas_max_layer = p_max_layer; } -void RendererEnvironmentStorage::environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient, float p_energy, float p_sky_contribution, RS::EnvironmentReflectionSource p_reflection_source) { +void RendererEnvironmentStorage::environment_set_ambient_light(RID p_env, const Color &p_color, RSE::EnvironmentAmbientSource p_ambient, float p_energy, float p_sky_contribution, RSE::EnvironmentReflectionSource p_reflection_source) { Environment *env = environment_owner.get_or_null(p_env); ERR_FAIL_NULL(env); env->ambient_light = p_color; @@ -111,9 +115,9 @@ void RendererEnvironmentStorage::environment_set_ambient_light(RID p_env, const env->reflection_source = p_reflection_source; } -RS::EnvironmentBG RendererEnvironmentStorage::environment_get_background(RID p_env) const { +RSE::EnvironmentBG RendererEnvironmentStorage::environment_get_background(RID p_env) const { Environment *env = environment_owner.get_or_null(p_env); - ERR_FAIL_NULL_V(env, RS::ENV_BG_CLEAR_COLOR); + ERR_FAIL_NULL_V(env, RSE::ENV_BG_CLEAR_COLOR); return env->background; } @@ -159,9 +163,9 @@ int RendererEnvironmentStorage::environment_get_canvas_max_layer(RID p_env) cons return env->canvas_max_layer; } -RS::EnvironmentAmbientSource RendererEnvironmentStorage::environment_get_ambient_source(RID p_env) const { +RSE::EnvironmentAmbientSource RendererEnvironmentStorage::environment_get_ambient_source(RID p_env) const { Environment *env = environment_owner.get_or_null(p_env); - ERR_FAIL_NULL_V(env, RS::ENV_AMBIENT_SOURCE_BG); + ERR_FAIL_NULL_V(env, RSE::ENV_AMBIENT_SOURCE_BG); return env->ambient_source; } @@ -183,9 +187,9 @@ float RendererEnvironmentStorage::environment_get_ambient_sky_contribution(RID p return env->ambient_sky_contribution; } -RS::EnvironmentReflectionSource RendererEnvironmentStorage::environment_get_reflection_source(RID p_env) const { +RSE::EnvironmentReflectionSource RendererEnvironmentStorage::environment_get_reflection_source(RID p_env) const { Environment *env = environment_owner.get_or_null(p_env); - ERR_FAIL_NULL_V(env, RS::ENV_REFLECTION_SOURCE_BG); + ERR_FAIL_NULL_V(env, RSE::ENV_REFLECTION_SOURCE_BG); return env->reflection_source; } @@ -203,7 +207,7 @@ int RendererEnvironmentStorage::environment_get_camera_feed_id(RID p_env) const // Tonemap -void RendererEnvironmentStorage::environment_set_tonemap(RID p_env, RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white) { +void RendererEnvironmentStorage::environment_set_tonemap(RID p_env, RSE::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white) { Environment *env = environment_owner.get_or_null(p_env); ERR_FAIL_NULL(env); env->exposure = p_exposure; @@ -211,9 +215,9 @@ void RendererEnvironmentStorage::environment_set_tonemap(RID p_env, RS::Environm env->white = p_white; } -RS::EnvironmentToneMapper RendererEnvironmentStorage::environment_get_tone_mapper(RID p_env) const { +RSE::EnvironmentToneMapper RendererEnvironmentStorage::environment_get_tone_mapper(RID p_env) const { Environment *env = environment_owner.get_or_null(p_env); - ERR_FAIL_NULL_V(env, RS::ENV_TONE_MAPPER_LINEAR); + ERR_FAIL_NULL_V(env, RSE::ENV_TONE_MAPPER_LINEAR); return env->tone_mapper; } @@ -229,13 +233,13 @@ float RendererEnvironmentStorage::environment_get_white(RID p_env, bool p_limit_ // Glow with screen blend mode does not work when white < 1.0, so make sure // it is at least 1.0 for all tonemappers: - if (env->tone_mapper == RS::ENV_TONE_MAPPER_LINEAR) { + if (env->tone_mapper == RSE::ENV_TONE_MAPPER_LINEAR) { return p_output_max_value; - } else if (env->tone_mapper == RS::ENV_TONE_MAPPER_FILMIC || env->tone_mapper == RS::ENV_TONE_MAPPER_ACES) { + } else if (env->tone_mapper == RSE::ENV_TONE_MAPPER_FILMIC || env->tone_mapper == RSE::ENV_TONE_MAPPER_ACES) { // Filmic and ACES only support SDR; their white is stable regardless // of output_max_value. return MAX(1.0, env->white); - } else if (env->tone_mapper == RS::ENV_TONE_MAPPER_AGX) { + } else if (env->tone_mapper == RSE::ENV_TONE_MAPPER_AGX) { // AgX works best with a high white. 2.0 is the minimum required for // good behavior with Mobile rendering method. if (p_limit_agx_white) { @@ -276,11 +280,11 @@ RendererEnvironmentStorage::TonemapParameters RendererEnvironmentStorage::enviro float white = environment_get_white(p_env, p_limit_agx_white, p_output_max_value); TonemapParameters tonemap_parameters = TonemapParameters(); - if (env->tone_mapper == RS::ENV_TONE_MAPPER_LINEAR) { + if (env->tone_mapper == RSE::ENV_TONE_MAPPER_LINEAR) { // Linear has no tonemapping parameters - } else if (env->tone_mapper == RS::ENV_TONE_MAPPER_REINHARD) { + } else if (env->tone_mapper == RSE::ENV_TONE_MAPPER_REINHARD) { tonemap_parameters.white_squared = (white * white) / p_output_max_value; - } else if (env->tone_mapper == RS::ENV_TONE_MAPPER_FILMIC) { + } else if (env->tone_mapper == RSE::ENV_TONE_MAPPER_FILMIC) { // These constants must match those in the shader code. // exposure_bias: Input scale (color *= bias, white *= bias) to make the brightness consistent with other tonemappers // also useful to scale the input to the range that the tonemapper is designed for (some require very high input values). @@ -294,7 +298,7 @@ RendererEnvironmentStorage::TonemapParameters RendererEnvironmentStorage::enviro const float F = 0.30f; tonemap_parameters.white_tonemapped = ((white * (A * white + C * B) + D * E) / (white * (A * white + B) + D * F)) - E / F; - } else if (env->tone_mapper == RS::ENV_TONE_MAPPER_ACES) { + } else if (env->tone_mapper == RSE::ENV_TONE_MAPPER_ACES) { // These constants must match those in the shader code. const float exposure_bias = 1.8f; const float A = 0.0245786f; @@ -306,7 +310,7 @@ RendererEnvironmentStorage::TonemapParameters RendererEnvironmentStorage::enviro white *= exposure_bias; float white_tonemapped = (white * (white + A) - B) / (white * (C * white + D) + E); tonemap_parameters.white_tonemapped = white_tonemapped; - } else if (env->tone_mapper == RS::ENV_TONE_MAPPER_AGX) { + } else if (env->tone_mapper == RSE::ENV_TONE_MAPPER_AGX) { // Calculate allenwp tonemapping curve parameters on the CPU to improve shader performance. // Source and details: https://allenwp.com/blog/2025/05/29/allenwp-tonemapping-curve/ @@ -341,7 +345,7 @@ RendererEnvironmentStorage::TonemapParameters RendererEnvironmentStorage::enviro // Fog -void RendererEnvironmentStorage::environment_set_fog(RID p_env, bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_fog_aerial_perspective, float p_sky_affect, RS::EnvironmentFogMode p_mode) { +void RendererEnvironmentStorage::environment_set_fog(RID p_env, bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_fog_aerial_perspective, float p_sky_affect, RSE::EnvironmentFogMode p_mode) { Environment *env = environment_owner.get_or_null(p_env); ERR_FAIL_NULL(env); env->fog_enabled = p_enable; @@ -362,9 +366,9 @@ bool RendererEnvironmentStorage::environment_get_fog_enabled(RID p_env) const { return env->fog_enabled; } -RS::EnvironmentFogMode RendererEnvironmentStorage::environment_get_fog_mode(RID p_env) const { +RSE::EnvironmentFogMode RendererEnvironmentStorage::environment_get_fog_mode(RID p_env) const { Environment *env = environment_owner.get_or_null(p_env); - ERR_FAIL_NULL_V(env, RS::ENV_FOG_MODE_EXPONENTIAL); + ERR_FAIL_NULL_V(env, RSE::ENV_FOG_MODE_EXPONENTIAL); return env->fog_mode; } @@ -549,7 +553,7 @@ float RendererEnvironmentStorage::environment_get_volumetric_fog_ambient_inject( // GLOW -void RendererEnvironmentStorage::environment_set_glow(RID p_env, bool p_enable, Vector p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, float p_glow_map_strength, RID p_glow_map) { +void RendererEnvironmentStorage::environment_set_glow(RID p_env, bool p_enable, Vector p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RSE::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, float p_glow_map_strength, RID p_glow_map) { Environment *env = environment_owner.get_or_null(p_env); ERR_FAIL_NULL(env); ERR_FAIL_COND_MSG(p_levels.size() != 7, "Size of array of glow levels must be 7"); @@ -603,9 +607,9 @@ float RendererEnvironmentStorage::environment_get_glow_mix(RID p_env) const { return env->glow_mix; } -RS::EnvironmentGlowBlendMode RendererEnvironmentStorage::environment_get_glow_blend_mode(RID p_env) const { +RSE::EnvironmentGlowBlendMode RendererEnvironmentStorage::environment_get_glow_blend_mode(RID p_env) const { Environment *env = environment_owner.get_or_null(p_env); - ERR_FAIL_NULL_V(env, RS::ENV_GLOW_BLEND_MODE_SCREEN); + ERR_FAIL_NULL_V(env, RSE::ENV_GLOW_BLEND_MODE_SCREEN); return env->glow_blend_mode; } @@ -810,7 +814,7 @@ float RendererEnvironmentStorage::environment_get_ssil_normal_rejection(RID p_en // SDFGI -void RendererEnvironmentStorage::environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) { +void RendererEnvironmentStorage::environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RSE::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias) { Environment *env = environment_owner.get_or_null(p_env); ERR_FAIL_NULL(env); #ifdef DEBUG_ENABLED @@ -884,9 +888,9 @@ float RendererEnvironmentStorage::environment_get_sdfgi_probe_bias(RID p_env) co return env->sdfgi_probe_bias; } -RS::EnvironmentSDFGIYScale RendererEnvironmentStorage::environment_get_sdfgi_y_scale(RID p_env) const { +RSE::EnvironmentSDFGIYScale RendererEnvironmentStorage::environment_get_sdfgi_y_scale(RID p_env) const { Environment *env = environment_owner.get_or_null(p_env); - ERR_FAIL_NULL_V(env, RS::ENV_SDFGI_Y_SCALE_75_PERCENT); + ERR_FAIL_NULL_V(env, RSE::ENV_SDFGI_Y_SCALE_75_PERCENT); return env->sdfgi_y_scale; } diff --git a/servers/rendering/storage/environment_storage.h b/servers/rendering/storage/environment_storage.h index 9dd0d2b5b7..d188204b38 100644 --- a/servers/rendering/storage/environment_storage.h +++ b/servers/rendering/storage/environment_storage.h @@ -31,7 +31,7 @@ #pragma once #include "core/templates/rid_owner.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class RendererEnvironmentStorage { public: @@ -67,7 +67,7 @@ private: // Not all renderers support all effects and should just ignore the bits they don't support. // Background - RS::EnvironmentBG background = RS::ENV_BG_CLEAR_COLOR; + RSE::EnvironmentBG background = RSE::ENV_BG_CLEAR_COLOR; RID sky; float sky_custom_fov = 0.0; Basis sky_orientation; @@ -75,15 +75,15 @@ private: float bg_energy_multiplier = 1.0; float bg_intensity = 1.0; // Measured in nits or candela/m^2. Default to 1.0 so this doesn't impact rendering when Physical Light Units disabled. int canvas_max_layer = 0; - RS::EnvironmentAmbientSource ambient_source = RS::ENV_AMBIENT_SOURCE_BG; + RSE::EnvironmentAmbientSource ambient_source = RSE::ENV_AMBIENT_SOURCE_BG; Color ambient_light; float ambient_light_energy = 1.0; float ambient_sky_contribution = 1.0; - RS::EnvironmentReflectionSource reflection_source = RS::ENV_REFLECTION_SOURCE_BG; + RSE::EnvironmentReflectionSource reflection_source = RSE::ENV_REFLECTION_SOURCE_BG; int camera_feed_id = 0; // Tonemap - RS::EnvironmentToneMapper tone_mapper; + RSE::EnvironmentToneMapper tone_mapper; float exposure = 1.0; float white = 1.0; float tonemap_agx_contrast = 1.25; // Default to approximately Blender's AgX contrast @@ -91,7 +91,7 @@ private: // Fog bool fog_enabled = false; - RS::EnvironmentFogMode fog_mode = RS::EnvironmentFogMode::ENV_FOG_MODE_EXPONENTIAL; + RSE::EnvironmentFogMode fog_mode = RSE::EnvironmentFogMode::ENV_FOG_MODE_EXPONENTIAL; Color fog_light_color = Color(0.518, 0.553, 0.608); float fog_light_energy = 1.0; float fog_sun_scatter = 0.0; @@ -128,7 +128,7 @@ private: float glow_strength = 1.0; float glow_bloom = 0.0; float glow_mix = 0.01; - RS::EnvironmentGlowBlendMode glow_blend_mode = RS::ENV_GLOW_BLEND_MODE_SCREEN; + RSE::EnvironmentGlowBlendMode glow_blend_mode = RSE::ENV_GLOW_BLEND_MODE_SCREEN; float glow_hdr_bleed_threshold = 1.0; float glow_hdr_luminance_cap = 12.0; float glow_hdr_bleed_scale = 2.0; @@ -170,7 +170,7 @@ private: float sdfgi_energy = 1.0; float sdfgi_normal_bias = 1.1; float sdfgi_probe_bias = 1.1; - RS::EnvironmentSDFGIYScale sdfgi_y_scale = RS::ENV_SDFGI_Y_SCALE_75_PERCENT; + RSE::EnvironmentSDFGIYScale sdfgi_y_scale = RSE::ENV_SDFGI_Y_SCALE_75_PERCENT; // Adjustments bool adjustments_enabled = false; @@ -199,18 +199,18 @@ public: } // Background - void environment_set_background(RID p_env, RS::EnvironmentBG p_bg); + void environment_set_background(RID p_env, RSE::EnvironmentBG p_bg); void environment_set_sky(RID p_env, RID p_sky); void environment_set_sky_custom_fov(RID p_env, float p_scale); void environment_set_sky_orientation(RID p_env, const Basis &p_orientation); void environment_set_bg_color(RID p_env, const Color &p_color); void environment_set_bg_energy(RID p_env, float p_multiplier, float p_exposure_value); void environment_set_canvas_max_layer(RID p_env, int p_max_layer); - void environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient = RS::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RS::EnvironmentReflectionSource p_reflection_source = RS::ENV_REFLECTION_SOURCE_BG); + void environment_set_ambient_light(RID p_env, const Color &p_color, RSE::EnvironmentAmbientSource p_ambient = RSE::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RSE::EnvironmentReflectionSource p_reflection_source = RSE::ENV_REFLECTION_SOURCE_BG); void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id); int environment_get_camera_feed_id(RID p_env) const; - RS::EnvironmentBG environment_get_background(RID p_env) const; + RSE::EnvironmentBG environment_get_background(RID p_env) const; RID environment_get_sky(RID p_env) const; float environment_get_sky_custom_fov(RID p_env) const; Basis environment_get_sky_orientation(RID p_env) const; @@ -218,15 +218,15 @@ public: float environment_get_bg_energy_multiplier(RID p_env) const; float environment_get_bg_intensity(RID p_env) const; int environment_get_canvas_max_layer(RID p_env) const; - RS::EnvironmentAmbientSource environment_get_ambient_source(RID p_env) const; + RSE::EnvironmentAmbientSource environment_get_ambient_source(RID p_env) const; Color environment_get_ambient_light(RID p_env) const; float environment_get_ambient_light_energy(RID p_env) const; float environment_get_ambient_sky_contribution(RID p_env) const; - RS::EnvironmentReflectionSource environment_get_reflection_source(RID p_env) const; + RSE::EnvironmentReflectionSource environment_get_reflection_source(RID p_env) const; // Tonemap - void environment_set_tonemap(RID p_env, RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white); - RS::EnvironmentToneMapper environment_get_tone_mapper(RID p_env) const; + void environment_set_tonemap(RID p_env, RSE::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white); + RSE::EnvironmentToneMapper environment_get_tone_mapper(RID p_env) const; float environment_get_exposure(RID p_env) const; float environment_get_white(RID p_env, bool p_limit_agx_white, float p_output_max_value) const; void environment_set_tonemap_agx_contrast(RID p_env, float p_agx_contrast); @@ -234,9 +234,9 @@ public: TonemapParameters environment_get_tonemap_parameters(RID p_env, bool p_limit_agx_white, float p_output_max_value) const; // Fog - void environment_set_fog(RID p_env, bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_aerial_perspective, float p_sky_affect, RS::EnvironmentFogMode p_mode); + void environment_set_fog(RID p_env, bool p_enable, const Color &p_light_color, float p_light_energy, float p_sun_scatter, float p_density, float p_height, float p_height_density, float p_aerial_perspective, float p_sky_affect, RSE::EnvironmentFogMode p_mode); bool environment_get_fog_enabled(RID p_env) const; - RS::EnvironmentFogMode environment_get_fog_mode(RID p_env) const; + RSE::EnvironmentFogMode environment_get_fog_mode(RID p_env) const; Color environment_get_fog_light_color(RID p_env) const; float environment_get_fog_light_energy(RID p_env) const; float environment_get_fog_sun_scatter(RID p_env) const; @@ -269,14 +269,14 @@ public: float environment_get_volumetric_fog_ambient_inject(RID p_env) const; // GLOW - void environment_set_glow(RID p_env, bool p_enable, Vector p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, float p_glow_map_strength, RID p_glow_map); + void environment_set_glow(RID p_env, bool p_enable, Vector p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RSE::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap, float p_glow_map_strength, RID p_glow_map); bool environment_get_glow_enabled(RID p_env) const; Vector environment_get_glow_levels(RID p_env) const; float environment_get_glow_intensity(RID p_env) const; float environment_get_glow_strength(RID p_env) const; float environment_get_glow_bloom(RID p_env) const; float environment_get_glow_mix(RID p_env) const; - RS::EnvironmentGlowBlendMode environment_get_glow_blend_mode(RID p_env) const; + RSE::EnvironmentGlowBlendMode environment_get_glow_blend_mode(RID p_env) const; float environment_get_glow_hdr_bleed_threshold(RID p_env) const; float environment_get_glow_hdr_luminance_cap(RID p_env) const; float environment_get_glow_hdr_bleed_scale(RID p_env) const; @@ -312,7 +312,7 @@ public: float environment_get_ssil_normal_rejection(RID p_env) const; // SDFGI - void environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias); + void environment_set_sdfgi(RID p_env, bool p_enable, int p_cascades, float p_min_cell_size, RSE::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias); bool environment_get_sdfgi_enabled(RID p_env) const; int environment_get_sdfgi_cascades(RID p_env) const; float environment_get_sdfgi_min_cell_size(RID p_env) const; @@ -322,7 +322,7 @@ public: float environment_get_sdfgi_energy(RID p_env) const; float environment_get_sdfgi_normal_bias(RID p_env) const; float environment_get_sdfgi_probe_bias(RID p_env) const; - RS::EnvironmentSDFGIYScale environment_get_sdfgi_y_scale(RID p_env) const; + RSE::EnvironmentSDFGIYScale environment_get_sdfgi_y_scale(RID p_env) const; // Adjustment void environment_set_adjustment(RID p_env, bool p_enable, float p_brightness, float p_contrast, float p_saturation, bool p_use_1d_color_correction, RID p_color_correction); diff --git a/servers/rendering/storage/light_storage.h b/servers/rendering/storage/light_storage.h index 956e632449..18781ff678 100644 --- a/servers/rendering/storage/light_storage.h +++ b/servers/rendering/storage/light_storage.h @@ -31,7 +31,7 @@ #pragma once #include "render_scene_buffers.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class RendererLightStorage { public: @@ -51,7 +51,7 @@ public: virtual void light_free(RID p_rid) = 0; virtual void light_set_color(RID p_light, const Color &p_color) = 0; - virtual void light_set_param(RID p_light, RS::LightParam p_param, float p_value) = 0; + virtual void light_set_param(RID p_light, RSE::LightParam p_param, float p_value) = 0; virtual void light_set_shadow(RID p_light, bool p_enabled) = 0; virtual void light_set_projector(RID p_light, RID p_texture) = 0; virtual void light_set_negative(RID p_light, bool p_enable) = 0; @@ -60,30 +60,30 @@ public: virtual void light_set_reverse_cull_face_mode(RID p_light, bool p_enabled) = 0; virtual void light_set_shadow_caster_mask(RID p_light, uint32_t p_caster_mask) = 0; virtual uint32_t light_get_shadow_caster_mask(RID p_light) const = 0; - virtual void light_set_bake_mode(RID p_light, RS::LightBakeMode p_bake_mode) = 0; + virtual void light_set_bake_mode(RID p_light, RSE::LightBakeMode p_bake_mode) = 0; virtual void light_set_max_sdfgi_cascade(RID p_light, uint32_t p_cascade) = 0; - virtual void light_omni_set_shadow_mode(RID p_light, RS::LightOmniShadowMode p_mode) = 0; + virtual void light_omni_set_shadow_mode(RID p_light, RSE::LightOmniShadowMode p_mode) = 0; - virtual void light_directional_set_shadow_mode(RID p_light, RS::LightDirectionalShadowMode p_mode) = 0; + virtual void light_directional_set_shadow_mode(RID p_light, RSE::LightDirectionalShadowMode p_mode) = 0; virtual void light_directional_set_blend_splits(RID p_light, bool p_enable) = 0; virtual bool light_directional_get_blend_splits(RID p_light) const = 0; - virtual void light_directional_set_sky_mode(RID p_light, RS::LightDirectionalSkyMode p_mode) = 0; - virtual RS::LightDirectionalSkyMode light_directional_get_sky_mode(RID p_light) const = 0; + virtual void light_directional_set_sky_mode(RID p_light, RSE::LightDirectionalSkyMode p_mode) = 0; + virtual RSE::LightDirectionalSkyMode light_directional_get_sky_mode(RID p_light) const = 0; - virtual RS::LightDirectionalShadowMode light_directional_get_shadow_mode(RID p_light) = 0; - virtual RS::LightOmniShadowMode light_omni_get_shadow_mode(RID p_light) = 0; + virtual RSE::LightDirectionalShadowMode light_directional_get_shadow_mode(RID p_light) = 0; + virtual RSE::LightOmniShadowMode light_omni_get_shadow_mode(RID p_light) = 0; virtual bool light_has_shadow(RID p_light) const = 0; virtual bool light_has_projector(RID p_light) const = 0; - virtual RS::LightType light_get_type(RID p_light) const = 0; + virtual RSE::LightType light_get_type(RID p_light) const = 0; virtual AABB light_get_aabb(RID p_light) const = 0; - virtual float light_get_param(RID p_light, RS::LightParam p_param) = 0; + virtual float light_get_param(RID p_light, RSE::LightParam p_param) = 0; virtual Color light_get_color(RID p_light) = 0; virtual bool light_get_reverse_cull_face_mode(RID p_light) const = 0; - virtual RS::LightBakeMode light_get_bake_mode(RID p_light) = 0; + virtual RSE::LightBakeMode light_get_bake_mode(RID p_light) = 0; virtual uint32_t light_get_max_sdfgi_cascade(RID p_light) = 0; virtual uint64_t light_get_version(RID p_light) const = 0; virtual uint32_t light_get_cull_mask(RID p_light) const = 0; @@ -107,11 +107,11 @@ public: virtual void reflection_probe_initialize(RID p_rid) = 0; virtual void reflection_probe_free(RID p_rid) = 0; - virtual void reflection_probe_set_update_mode(RID p_probe, RS::ReflectionProbeUpdateMode p_mode) = 0; + virtual void reflection_probe_set_update_mode(RID p_probe, RSE::ReflectionProbeUpdateMode p_mode) = 0; virtual void reflection_probe_set_resolution(RID p_probe, int p_resolution) = 0; virtual void reflection_probe_set_intensity(RID p_probe, float p_intensity) = 0; virtual void reflection_probe_set_blend_distance(RID p_probe, float p_blend_distance) = 0; - virtual void reflection_probe_set_ambient_mode(RID p_probe, RS::ReflectionProbeAmbientMode p_mode) = 0; + virtual void reflection_probe_set_ambient_mode(RID p_probe, RSE::ReflectionProbeAmbientMode p_mode) = 0; virtual void reflection_probe_set_ambient_color(RID p_probe, const Color &p_color) = 0; virtual void reflection_probe_set_ambient_energy(RID p_probe, float p_energy) = 0; virtual void reflection_probe_set_max_distance(RID p_probe, float p_distance) = 0; @@ -125,7 +125,7 @@ public: virtual void reflection_probe_set_mesh_lod_threshold(RID p_probe, float p_ratio) = 0; virtual AABB reflection_probe_get_aabb(RID p_probe) const = 0; - virtual RS::ReflectionProbeUpdateMode reflection_probe_get_update_mode(RID p_probe) const = 0; + virtual RSE::ReflectionProbeUpdateMode reflection_probe_get_update_mode(RID p_probe) const = 0; virtual uint32_t reflection_probe_get_cull_mask(RID p_probe) const = 0; virtual uint32_t reflection_probe_get_reflection_mask(RID p_probe) const = 0; virtual Vector3 reflection_probe_get_size(RID p_probe) const = 0; @@ -177,8 +177,8 @@ public: virtual float lightmap_get_probe_capture_update_speed() const = 0; virtual void lightmap_set_shadowmask_textures(RID p_lightmap, RID p_shadow) = 0; - virtual RS::ShadowmaskMode lightmap_get_shadowmask_mode(RID p_lightmap) = 0; - virtual void lightmap_set_shadowmask_mode(RID p_lightmap, RS::ShadowmaskMode p_mode) = 0; + virtual RSE::ShadowmaskMode lightmap_get_shadowmask_mode(RID p_lightmap) = 0; + virtual void lightmap_set_shadowmask_mode(RID p_lightmap, RSE::ShadowmaskMode p_mode) = 0; /* LIGHTMAP INSTANCE */ diff --git a/servers/rendering/storage/material_storage.h b/servers/rendering/storage/material_storage.h index c38b6d681a..8e226cda03 100644 --- a/servers/rendering/storage/material_storage.h +++ b/servers/rendering/storage/material_storage.h @@ -31,6 +31,7 @@ #pragma once #include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" #include "utilities.h" class RendererMaterialStorage { @@ -38,14 +39,14 @@ public: virtual ~RendererMaterialStorage() {} /* GLOBAL SHADER UNIFORM API */ - virtual void global_shader_parameter_add(const StringName &p_name, RS::GlobalShaderParameterType p_type, const Variant &p_value) = 0; + virtual void global_shader_parameter_add(const StringName &p_name, RSE::GlobalShaderParameterType p_type, const Variant &p_value) = 0; virtual void global_shader_parameter_remove(const StringName &p_name) = 0; virtual Vector global_shader_parameter_get_list() const = 0; virtual void global_shader_parameter_set(const StringName &p_name, const Variant &p_value) = 0; virtual void global_shader_parameter_set_override(const StringName &p_name, const Variant &p_value) = 0; virtual Variant global_shader_parameter_get(const StringName &p_name) const = 0; - virtual RS::GlobalShaderParameterType global_shader_parameter_get_type(const StringName &p_name) const = 0; + virtual RSE::GlobalShaderParameterType global_shader_parameter_get_type(const StringName &p_name) const = 0; virtual void global_shader_parameters_load_settings(bool p_load_textures = true) = 0; virtual void global_shader_parameters_clear() = 0; @@ -89,7 +90,7 @@ public: virtual bool material_is_animated(RID p_material) = 0; virtual bool material_casts_shadows(RID p_material) = 0; - virtual RS::CullMode material_get_cull_mode(RID p_material) const = 0; + virtual RSE::CullMode material_get_cull_mode(RID p_material) const = 0; struct InstanceShaderParam { PropertyInfo info; diff --git a/servers/rendering/storage/mesh_storage.cpp b/servers/rendering/storage/mesh_storage.cpp index c282981383..44f288e130 100644 --- a/servers/rendering/storage/mesh_storage.cpp +++ b/servers/rendering/storage/mesh_storage.cpp @@ -30,12 +30,9 @@ #include "mesh_storage.h" +#include "core/config/engine.h" #include "core/math/transform_interpolator.h" -#if defined(DEBUG_ENABLED) && defined(TOOLS_ENABLED) -#include "core/config/project_settings.h" -#endif - RID RendererMeshStorage::multimesh_allocate() { return _multimesh_allocate(); } @@ -48,7 +45,7 @@ void RendererMeshStorage::multimesh_free(RID p_rid) { _multimesh_free(p_rid); } -void RendererMeshStorage::multimesh_allocate_data(RID p_multimesh, int p_instances, RS::MultimeshTransformFormat p_transform_format, bool p_use_colors, bool p_use_custom_data, bool p_use_indirect) { +void RendererMeshStorage::multimesh_allocate_data(RID p_multimesh, int p_instances, RSE::MultimeshTransformFormat p_transform_format, bool p_use_colors, bool p_use_custom_data, bool p_use_indirect) { MultiMeshInterpolator *mmi = _multimesh_get_interpolator(p_multimesh); if (mmi) { mmi->_transform_format = p_transform_format; @@ -56,7 +53,7 @@ void RendererMeshStorage::multimesh_allocate_data(RID p_multimesh, int p_instanc mmi->_use_custom_data = p_use_custom_data; mmi->_num_instances = p_instances; - mmi->_vf_size_xform = p_transform_format == RS::MULTIMESH_TRANSFORM_2D ? 8 : 12; + mmi->_vf_size_xform = p_transform_format == RSE::MULTIMESH_TRANSFORM_2D ? 8 : 12; mmi->_vf_size_color = p_use_colors ? 4 : 0; mmi->_vf_size_data = p_use_custom_data ? 4 : 0; @@ -306,7 +303,7 @@ void RendererMeshStorage::multimesh_set_physics_interpolated(RID p_multimesh, bo } } -void RendererMeshStorage::multimesh_set_physics_interpolation_quality(RID p_multimesh, RS::MultimeshPhysicsInterpolationQuality p_quality) { +void RendererMeshStorage::multimesh_set_physics_interpolation_quality(RID p_multimesh, RSE::MultimeshPhysicsInterpolationQuality p_quality) { ERR_FAIL_COND((p_quality < 0) || (p_quality > 1)); MultiMeshInterpolator *mmi = _multimesh_get_interpolator(p_multimesh); if (mmi) { diff --git a/servers/rendering/storage/mesh_storage.h b/servers/rendering/storage/mesh_storage.h index 153750bfbd..97a4806f85 100644 --- a/servers/rendering/storage/mesh_storage.h +++ b/servers/rendering/storage/mesh_storage.h @@ -31,6 +31,7 @@ #pragma once #include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" #include "utilities.h" class RendererMeshStorage { @@ -50,8 +51,8 @@ public: virtual int mesh_get_blend_shape_count(RID p_mesh) const = 0; - virtual void mesh_set_blend_shape_mode(RID p_mesh, RS::BlendShapeMode p_mode) = 0; - virtual RS::BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const = 0; + virtual void mesh_set_blend_shape_mode(RID p_mesh, RSE::BlendShapeMode p_mode) = 0; + virtual RSE::BlendShapeMode mesh_get_blend_shape_mode(RID p_mesh) const = 0; virtual void mesh_surface_update_vertex_region(RID p_mesh, int p_surface, int p_offset, const Vector &p_data) = 0; virtual void mesh_surface_update_attribute_region(RID p_mesh, int p_surface, int p_offset, const Vector &p_data) = 0; @@ -93,7 +94,7 @@ public: /* MULTIMESH API */ struct MultiMeshInterpolator { - RS::MultimeshTransformFormat _transform_format = RS::MULTIMESH_TRANSFORM_3D; + RSE::MultimeshTransformFormat _transform_format = RSE::MULTIMESH_TRANSFORM_3D; bool _use_colors = false; bool _use_custom_data = false; @@ -123,7 +124,7 @@ public: virtual void multimesh_initialize(RID p_rid); virtual void multimesh_free(RID p_rid); - virtual void multimesh_allocate_data(RID p_multimesh, int p_instances, RS::MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false, bool p_use_indirect = false); + virtual void multimesh_allocate_data(RID p_multimesh, int p_instances, RSE::MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false, bool p_use_indirect = false); virtual int multimesh_get_instance_count(RID p_multimesh) const; @@ -150,7 +151,7 @@ public: virtual void multimesh_set_buffer_interpolated(RID p_multimesh, const Vector &p_buffer, const Vector &p_buffer_prev); virtual void multimesh_set_physics_interpolated(RID p_multimesh, bool p_interpolated); - virtual void multimesh_set_physics_interpolation_quality(RID p_multimesh, RS::MultimeshPhysicsInterpolationQuality p_quality); + virtual void multimesh_set_physics_interpolation_quality(RID p_multimesh, RSE::MultimeshPhysicsInterpolationQuality p_quality); virtual void multimesh_instance_reset_physics_interpolation(RID p_multimesh, int p_index); virtual void multimesh_instances_reset_physics_interpolation(RID p_multimesh); @@ -163,7 +164,7 @@ public: virtual void _multimesh_initialize(RID p_rid) = 0; virtual void _multimesh_free(RID p_rid) = 0; - virtual void _multimesh_allocate_data(RID p_multimesh, int p_instances, RS::MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false, bool p_use_indirect = false) = 0; + virtual void _multimesh_allocate_data(RID p_multimesh, int p_instances, RSE::MultimeshTransformFormat p_transform_format, bool p_use_colors = false, bool p_use_custom_data = false, bool p_use_indirect = false) = 0; virtual int _multimesh_get_instance_count(RID p_multimesh) const = 0; diff --git a/servers/rendering/storage/particles_storage.h b/servers/rendering/storage/particles_storage.h index 4570f69d70..e173cb65ab 100644 --- a/servers/rendering/storage/particles_storage.h +++ b/servers/rendering/storage/particles_storage.h @@ -30,7 +30,7 @@ #pragma once -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class RendererParticlesStorage { public: @@ -42,7 +42,7 @@ public: virtual void particles_initialize(RID p_rid) = 0; virtual void particles_free(RID p_rid) = 0; - virtual void particles_set_mode(RID p_particles, RS::ParticlesMode p_mode) = 0; + virtual void particles_set_mode(RID p_particles, RSE::ParticlesMode p_mode) = 0; virtual void particles_set_emitting(RID p_particles, bool p_emitting) = 0; virtual bool particles_get_emitting(RID p_particles) = 0; @@ -65,7 +65,7 @@ public: virtual void particles_set_fractional_delta(RID p_particles, bool p_enable) = 0; virtual void particles_set_collision_base_size(RID p_particles, real_t p_size) = 0; - virtual void particles_set_transform_align(RID p_particles, RS::ParticlesTransformAlign p_transform_align) = 0; + virtual void particles_set_transform_align(RID p_particles, RSE::ParticlesTransformAlign p_transform_align) = 0; virtual void particles_set_seed(RID p_particles, uint32_t p_seed) = 0; @@ -78,7 +78,7 @@ public: virtual bool particles_is_inactive(RID p_particles) const = 0; - virtual void particles_set_draw_order(RID p_particles, RS::ParticlesDrawOrder p_order) = 0; + virtual void particles_set_draw_order(RID p_particles, RSE::ParticlesDrawOrder p_order) = 0; virtual void particles_set_draw_passes(RID p_particles, int p_count) = 0; virtual void particles_set_draw_pass_mesh(RID p_particles, int p_pass, RID p_mesh) = 0; @@ -107,7 +107,7 @@ public: virtual void particles_collision_initialize(RID p_rid) = 0; virtual void particles_collision_free(RID p_rid) = 0; - virtual void particles_collision_set_collision_type(RID p_particles_collision, RS::ParticlesCollisionType p_type) = 0; + virtual void particles_collision_set_collision_type(RID p_particles_collision, RSE::ParticlesCollisionType p_type) = 0; virtual void particles_collision_set_cull_mask(RID p_particles_collision, uint32_t p_cull_mask) = 0; virtual void particles_collision_set_sphere_radius(RID p_particles_collision, real_t p_radius) = 0; //for spheres virtual void particles_collision_set_box_extents(RID p_particles_collision, const Vector3 &p_extents) = 0; //for non-spheres @@ -116,7 +116,7 @@ public: virtual void particles_collision_set_attractor_attenuation(RID p_particles_collision, real_t p_curve) = 0; virtual void particles_collision_set_field_texture(RID p_particles_collision, RID p_texture) = 0; //for SDF and vector field, heightfield is dynamic virtual void particles_collision_height_field_update(RID p_particles_collision) = 0; //for SDF and vector field - virtual void particles_collision_set_height_field_resolution(RID p_particles_collision, RS::ParticlesCollisionHeightfieldResolution p_resolution) = 0; //for SDF and vector field + virtual void particles_collision_set_height_field_resolution(RID p_particles_collision, RSE::ParticlesCollisionHeightfieldResolution p_resolution) = 0; //for SDF and vector field virtual AABB particles_collision_get_aabb(RID p_particles_collision) const = 0; virtual bool particles_collision_is_heightfield(RID p_particles_collision) const = 0; virtual uint32_t particles_collision_get_height_field_mask(RID p_particles_collision) const = 0; diff --git a/servers/rendering/storage/render_scene_buffers.cpp b/servers/rendering/storage/render_scene_buffers.cpp index 67135a4c4b..4e356fe36c 100644 --- a/servers/rendering/storage/render_scene_buffers.cpp +++ b/servers/rendering/storage/render_scene_buffers.cpp @@ -30,6 +30,8 @@ #include "render_scene_buffers.h" +#include "servers/rendering/rendering_server.h" // IWYU pragma: Needed to bind RSE enums. + void RenderSceneBuffersConfiguration::_bind_methods() { ClassDB::bind_method(D_METHOD("get_render_target"), &RenderSceneBuffersConfiguration::get_render_target); ClassDB::bind_method(D_METHOD("set_render_target", "render_target"), &RenderSceneBuffersConfiguration::set_render_target); @@ -96,7 +98,7 @@ void RenderSceneBuffersExtension::set_texture_mipmap_bias(float p_texture_mipmap GDVIRTUAL_CALL(_set_texture_mipmap_bias, p_texture_mipmap_bias); } -void RenderSceneBuffersExtension::set_anisotropic_filtering_level(RS::ViewportAnisotropicFiltering p_anisotropic_filtering_level) { +void RenderSceneBuffersExtension::set_anisotropic_filtering_level(RSE::ViewportAnisotropicFiltering p_anisotropic_filtering_level) { GDVIRTUAL_CALL(_set_anisotropic_filtering_level, p_anisotropic_filtering_level); } diff --git a/servers/rendering/storage/render_scene_buffers.h b/servers/rendering/storage/render_scene_buffers.h index fead81c625..0394fd1408 100644 --- a/servers/rendering/storage/render_scene_buffers.h +++ b/servers/rendering/storage/render_scene_buffers.h @@ -30,8 +30,9 @@ #pragma once +#include "core/object/gdvirtual.gen.h" #include "core/object/ref_counted.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class RenderSceneBuffersConfiguration : public RefCounted { GDCLASS(RenderSceneBuffersConfiguration, RefCounted); @@ -43,10 +44,10 @@ private: Size2i target_size; uint32_t view_count = 1; - RS::ViewportScaling3DMode scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_OFF; - RS::ViewportMSAA msaa_3d = RS::VIEWPORT_MSAA_DISABLED; - RS::ViewportScreenSpaceAA screen_space_aa = RS::VIEWPORT_SCREEN_SPACE_AA_DISABLED; - RS::ViewportAnisotropicFiltering anisotropic_filtering_level = RS::VIEWPORT_ANISOTROPY_4X; + RSE::ViewportScaling3DMode scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_OFF; + RSE::ViewportMSAA msaa_3d = RSE::VIEWPORT_MSAA_DISABLED; + RSE::ViewportScreenSpaceAA screen_space_aa = RSE::VIEWPORT_SCREEN_SPACE_AA_DISABLED; + RSE::ViewportAnisotropicFiltering anisotropic_filtering_level = RSE::VIEWPORT_ANISOTROPY_4X; float fsr_sharpness = 0.0; float texture_mipmap_bias = 0.0; @@ -69,14 +70,14 @@ public: uint32_t get_view_count() const { return view_count; } void set_view_count(uint32_t p_view_count) { view_count = p_view_count; } - RS::ViewportScaling3DMode get_scaling_3d_mode() const { return scaling_3d_mode; } - void set_scaling_3d_mode(RS::ViewportScaling3DMode p_scaling_3d_mode) { scaling_3d_mode = p_scaling_3d_mode; } + RSE::ViewportScaling3DMode get_scaling_3d_mode() const { return scaling_3d_mode; } + void set_scaling_3d_mode(RSE::ViewportScaling3DMode p_scaling_3d_mode) { scaling_3d_mode = p_scaling_3d_mode; } - RS::ViewportMSAA get_msaa_3d() const { return msaa_3d; } - void set_msaa_3d(RS::ViewportMSAA p_msaa_3d) { msaa_3d = p_msaa_3d; } + RSE::ViewportMSAA get_msaa_3d() const { return msaa_3d; } + void set_msaa_3d(RSE::ViewportMSAA p_msaa_3d) { msaa_3d = p_msaa_3d; } - RS::ViewportScreenSpaceAA get_screen_space_aa() const { return screen_space_aa; } - void set_screen_space_aa(RS::ViewportScreenSpaceAA p_screen_space_aa) { screen_space_aa = p_screen_space_aa; } + RSE::ViewportScreenSpaceAA get_screen_space_aa() const { return screen_space_aa; } + void set_screen_space_aa(RSE::ViewportScreenSpaceAA p_screen_space_aa) { screen_space_aa = p_screen_space_aa; } float get_fsr_sharpness() const { return fsr_sharpness; } void set_fsr_sharpness(float p_fsr_sharpness) { fsr_sharpness = p_fsr_sharpness; } @@ -84,8 +85,8 @@ public: float get_texture_mipmap_bias() const { return texture_mipmap_bias; } void set_texture_mipmap_bias(float p_texture_mipmap_bias) { texture_mipmap_bias = p_texture_mipmap_bias; } - RS::ViewportAnisotropicFiltering get_anisotropic_filtering_level() const { return anisotropic_filtering_level; } - void set_anisotropic_filtering_level(RS::ViewportAnisotropicFiltering p_anisotropic_filtering_level) { anisotropic_filtering_level = p_anisotropic_filtering_level; } + RSE::ViewportAnisotropicFiltering get_anisotropic_filtering_level() const { return anisotropic_filtering_level; } + void set_anisotropic_filtering_level(RSE::ViewportAnisotropicFiltering p_anisotropic_filtering_level) { anisotropic_filtering_level = p_anisotropic_filtering_level; } bool get_use_taa() const { return use_taa; } void set_use_taa(bool p_use_taa) { use_taa = p_use_taa; } @@ -112,7 +113,7 @@ public: // for those settings that are unlikely to require buffers to be recreated, we'll add setters virtual void set_fsr_sharpness(float p_fsr_sharpness) = 0; virtual void set_texture_mipmap_bias(float p_texture_mipmap_bias) = 0; - virtual void set_anisotropic_filtering_level(RS::ViewportAnisotropicFiltering p_anisotropic_filtering_level) = 0; + virtual void set_anisotropic_filtering_level(RSE::ViewportAnisotropicFiltering p_anisotropic_filtering_level) = 0; virtual void set_use_debanding(bool p_use_debanding) = 0; }; @@ -135,6 +136,6 @@ public: virtual void set_fsr_sharpness(float p_fsr_sharpness) override; virtual void set_texture_mipmap_bias(float p_texture_mipmap_bias) override; - virtual void set_anisotropic_filtering_level(RS::ViewportAnisotropicFiltering p_anisotropic_filtering_level) override; + virtual void set_anisotropic_filtering_level(RSE::ViewportAnisotropicFiltering p_anisotropic_filtering_level) override; virtual void set_use_debanding(bool p_use_debanding) override; }; diff --git a/servers/rendering/storage/texture_storage.h b/servers/rendering/storage/texture_storage.h index 77a31cc8b3..009a6924d5 100644 --- a/servers/rendering/storage/texture_storage.h +++ b/servers/rendering/storage/texture_storage.h @@ -31,6 +31,7 @@ #pragma once #include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class RendererTextureStorage { private: @@ -51,11 +52,11 @@ public: virtual void canvas_texture_initialize(RID p_rid) = 0; virtual void canvas_texture_free(RID p_rid) = 0; - virtual void canvas_texture_set_channel(RID p_canvas_texture, RS::CanvasTextureChannel p_channel, RID p_texture) = 0; + virtual void canvas_texture_set_channel(RID p_canvas_texture, RSE::CanvasTextureChannel p_channel, RID p_texture) = 0; virtual void canvas_texture_set_shading_parameters(RID p_canvas_texture, const Color &p_base_color, float p_shininess) = 0; - virtual void canvas_texture_set_texture_filter(RID p_item, RS::CanvasItemTextureFilter p_filter) = 0; - virtual void canvas_texture_set_texture_repeat(RID p_item, RS::CanvasItemTextureRepeat p_repeat) = 0; + virtual void canvas_texture_set_texture_filter(RID p_item, RSE::CanvasItemTextureFilter p_filter) = 0; + virtual void canvas_texture_set_texture_repeat(RID p_item, RSE::CanvasItemTextureRepeat p_repeat) = 0; /* Texture API */ @@ -65,13 +66,13 @@ public: virtual void texture_free(RID p_rid) = 0; virtual void texture_2d_initialize(RID p_texture, const Ref &p_image) = 0; - virtual void texture_2d_layered_initialize(RID p_texture, const Vector> &p_layers, RS::TextureLayeredType p_layered_type) = 0; + virtual void texture_2d_layered_initialize(RID p_texture, const Vector> &p_layers, RSE::TextureLayeredType p_layered_type) = 0; virtual void texture_3d_initialize(RID p_texture, Image::Format, int p_width, int p_height, int p_depth, bool p_mipmaps, const Vector> &p_data) = 0; virtual void texture_external_initialize(RID p_texture, int p_width, int p_height, uint64_t p_external_buffer) = 0; virtual void texture_proxy_initialize(RID p_texture, RID p_base) = 0; //all slices, then all the mipmaps, must be coherent - virtual void texture_drawable_initialize(RID p_texture, int p_width, int p_height, RS::TextureDrawableFormat p_format, const Color &p_color, bool p_with_mipmaps) = 0; + virtual void texture_drawable_initialize(RID p_texture, int p_width, int p_height, RSE::TextureDrawableFormat p_format, const Color &p_color, bool p_with_mipmaps) = 0; - virtual RID texture_create_from_native_handle(RS::TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers = 1, RS::TextureLayeredType p_layered_type = RS::TEXTURE_LAYERED_2D_ARRAY) = 0; + virtual RID texture_create_from_native_handle(RSE::TextureType p_type, Image::Format p_format, uint64_t p_native_handle, int p_width, int p_height, int p_depth, int p_layers = 1, RSE::TextureLayeredType p_layered_type = RSE::TEXTURE_LAYERED_2D_ARRAY) = 0; virtual void texture_2d_update(RID p_texture, const Ref &p_image, int p_layer = 0) = 0; virtual void texture_3d_update(RID p_texture, const Vector> &p_data) = 0; @@ -82,7 +83,7 @@ public: //these two APIs can be used together or in combination with the others. virtual void texture_2d_placeholder_initialize(RID p_texture) = 0; - virtual void texture_2d_layered_placeholder_initialize(RID p_texture, RenderingServer::TextureLayeredType p_layered_type) = 0; + virtual void texture_2d_layered_placeholder_initialize(RID p_texture, RSE::TextureLayeredType p_layered_type) = 0; virtual void texture_3d_placeholder_initialize(RID p_texture) = 0; virtual Ref texture_2d_get(RID p_texture) const = 0; @@ -110,7 +111,7 @@ public: virtual Size2 texture_size_with_proxy(RID p_proxy) = 0; - virtual void texture_rd_initialize(RID p_texture, const RID &p_rd_texture, const RS::TextureLayeredType p_layer_type = RS::TEXTURE_LAYERED_2D_ARRAY) = 0; + virtual void texture_rd_initialize(RID p_texture, const RID &p_rd_texture, const RSE::TextureLayeredType p_layer_type = RSE::TEXTURE_LAYERED_2D_ARRAY) = 0; virtual RID texture_get_rd_texture(RID p_texture, bool p_srgb = false) const = 0; virtual uint64_t texture_get_native_handle(RID p_texture, bool p_srgb = false) const = 0; @@ -120,7 +121,7 @@ public: virtual void decal_free(RID p_rid) = 0; virtual void decal_set_size(RID p_decal, const Vector3 &p_size) = 0; - virtual void decal_set_texture(RID p_decal, RS::DecalTexture p_type, RID p_texture) = 0; + virtual void decal_set_texture(RID p_decal, RSE::DecalTexture p_type, RID p_texture) = 0; virtual void decal_set_emission_energy(RID p_decal, float p_energy) = 0; virtual void decal_set_albedo_mix(RID p_decal, float p_mix) = 0; virtual void decal_set_modulate(RID p_decal, const Color &p_modulate) = 0; @@ -157,8 +158,8 @@ public: virtual bool render_target_get_direct_to_screen(RID p_render_target) const = 0; virtual bool render_target_was_used(RID p_render_target) const = 0; virtual void render_target_set_as_unused(RID p_render_target) = 0; - virtual void render_target_set_msaa(RID p_render_target, RS::ViewportMSAA p_msaa) = 0; - virtual RS::ViewportMSAA render_target_get_msaa(RID p_render_target) const = 0; + virtual void render_target_set_msaa(RID p_render_target, RSE::ViewportMSAA p_msaa) = 0; + virtual RSE::ViewportMSAA render_target_get_msaa(RID p_render_target) const = 0; virtual void render_target_set_msaa_needs_resolve(RID p_render_target, bool p_needs_resolve) = 0; virtual bool render_target_get_msaa_needs_resolve(RID p_render_target) const = 0; virtual void render_target_do_msaa_resolve(RID p_render_target) = 0; @@ -173,14 +174,14 @@ public: virtual void render_target_disable_clear_request(RID p_render_target) = 0; virtual void render_target_do_clear_request(RID p_render_target) = 0; - virtual void render_target_set_sdf_size_and_scale(RID p_render_target, RS::ViewportSDFOversize p_size, RS::ViewportSDFScale p_scale) = 0; + virtual void render_target_set_sdf_size_and_scale(RID p_render_target, RSE::ViewportSDFOversize p_size, RSE::ViewportSDFScale p_scale) = 0; virtual Rect2i render_target_get_sdf_rect(RID p_render_target) const = 0; virtual void render_target_mark_sdf_enabled(RID p_render_target, bool p_enabled) = 0; - virtual void render_target_set_vrs_mode(RID p_render_target, RS::ViewportVRSMode p_mode) = 0; - virtual RS::ViewportVRSMode render_target_get_vrs_mode(RID p_render_target) const = 0; - virtual void render_target_set_vrs_update_mode(RID p_render_target, RS::ViewportVRSUpdateMode p_mode) = 0; - virtual RS::ViewportVRSUpdateMode render_target_get_vrs_update_mode(RID p_render_target) const = 0; + virtual void render_target_set_vrs_mode(RID p_render_target, RSE::ViewportVRSMode p_mode) = 0; + virtual RSE::ViewportVRSMode render_target_get_vrs_mode(RID p_render_target) const = 0; + virtual void render_target_set_vrs_update_mode(RID p_render_target, RSE::ViewportVRSUpdateMode p_mode) = 0; + virtual RSE::ViewportVRSUpdateMode render_target_get_vrs_update_mode(RID p_render_target) const = 0; virtual void render_target_set_vrs_texture(RID p_render_target, RID p_texture) = 0; virtual RID render_target_get_vrs_texture(RID p_render_target) const = 0; diff --git a/servers/rendering/storage/utilities.h b/servers/rendering/storage/utilities.h index edccbce7ff..4f94d191cb 100644 --- a/servers/rendering/storage/utilities.h +++ b/servers/rendering/storage/utilities.h @@ -30,7 +30,17 @@ #pragma once -#include "servers/rendering/rendering_server.h" +#include "core/math/aabb.h" +#include "core/math/vector2i.h" +#include "core/string/ustring.h" +#include "core/templates/hash_map.h" +#include "core/templates/hash_set.h" +#include "core/templates/list.h" +#include "core/templates/pair.h" +#include "core/templates/rid.h" +#include "core/variant/callable.h" +#include "servers/rendering/rendering_device_enums.h" +#include "servers/rendering/rendering_server_enums.h" class DependencyTracker; @@ -125,7 +135,7 @@ public: /* INSTANCES */ - virtual RS::InstanceType get_base_type(RID p_rid) const = 0; + virtual RSE::InstanceType get_base_type(RID p_rid) const = 0; virtual bool free(RID p_rid) = 0; /* DEPENDENCIES */ @@ -177,7 +187,7 @@ public: virtual void update_memory_info() = 0; - virtual uint64_t get_rendering_info(RS::RenderingInfo p_info) = 0; + virtual uint64_t get_rendering_info(RSE::RenderingInfo p_info) = 0; virtual String get_video_adapter_name() const = 0; virtual String get_video_adapter_vendor() const = 0; virtual RenderingDeviceEnums::DeviceType get_video_adapter_type() const = 0; diff --git a/servers/xr/xr_vrs.cpp b/servers/xr/xr_vrs.cpp index e45d8b562f..d77c5a9140 100644 --- a/servers/xr/xr_vrs.cpp +++ b/servers/xr/xr_vrs.cpp @@ -170,7 +170,7 @@ RID XRVRS::make_vrs_texture(const Size2 &p_target_size, const PackedVector2Array if (images.size() == 1) { vrs_texture = RS::get_singleton()->texture_2d_create(images[0]); } else { - vrs_texture = RS::get_singleton()->texture_2d_layered_create(images, RS::TEXTURE_LAYERED_2D_ARRAY); + vrs_texture = RS::get_singleton()->texture_2d_layered_create(images, RSE::TEXTURE_LAYERED_2D_ARRAY); } vrs_dirty = false; diff --git a/tests/scene/test_arraymesh.cpp b/tests/scene/test_arraymesh.cpp index 1fe5728af3..05f505fdfd 100644 --- a/tests/scene/test_arraymesh.cpp +++ b/tests/scene/test_arraymesh.cpp @@ -230,13 +230,13 @@ TEST_CASE("[SceneTree][ArrayMesh] Surface metadata tests.") { } SUBCASE("Get the array length of a particular surface.") { - CHECK(mesh->surface_get_array_len(0) == static_cast>(cylinder_array[RenderingServer::ARRAY_VERTEX]).size()); - CHECK(mesh->surface_get_array_len(1) == static_cast>(box_array[RenderingServer::ARRAY_VERTEX]).size()); + CHECK(mesh->surface_get_array_len(0) == static_cast>(cylinder_array[RSE::ARRAY_VERTEX]).size()); + CHECK(mesh->surface_get_array_len(1) == static_cast>(box_array[RSE::ARRAY_VERTEX]).size()); } SUBCASE("Get the index array length of a particular surface.") { - CHECK(mesh->surface_get_array_index_len(0) == static_cast>(cylinder_array[RenderingServer::ARRAY_INDEX]).size()); - CHECK(mesh->surface_get_array_index_len(1) == static_cast>(box_array[RenderingServer::ARRAY_INDEX]).size()); + CHECK(mesh->surface_get_array_index_len(0) == static_cast>(cylinder_array[RSE::ARRAY_INDEX]).size()); + CHECK(mesh->surface_get_array_index_len(1) == static_cast>(box_array[RSE::ARRAY_INDEX]).size()); } SUBCASE("Get correct primitive type") { @@ -247,7 +247,7 @@ TEST_CASE("[SceneTree][ArrayMesh] Surface metadata tests.") { } SUBCASE("Returns correct format for the mesh") { - int format = RS::ARRAY_FORMAT_BLEND_SHAPE_MASK | RS::ARRAY_FORMAT_TEX_UV | RS::ARRAY_FORMAT_INDEX; + int format = RSE::ARRAY_FORMAT_BLEND_SHAPE_MASK | RSE::ARRAY_FORMAT_TEX_UV | RSE::ARRAY_FORMAT_INDEX; CHECK((mesh->surface_get_format(0) & format) != 0); CHECK((mesh->surface_get_format(1) & format) != 0); } diff --git a/tests/scene/test_primitives.cpp b/tests/scene/test_primitives.cpp index 7e1376d67b..530acb74fd 100644 --- a/tests/scene/test_primitives.cpp +++ b/tests/scene/test_primitives.cpp @@ -90,13 +90,13 @@ TEST_CASE("[SceneTree][Primitive][Capsule] Capsule Primitive") { SUBCASE("[Primitive][Capsule] Check mesh is correct") { Array data{}; - data.resize(RS::ARRAY_MAX); + data.resize(RSE::ARRAY_MAX); float radius{ 0.5f }; float height{ 4.f }; int num_radial_segments{ 4 }; int num_rings{ 8 }; CapsuleMesh::create_mesh_array(data, radius, height, num_radial_segments, num_rings); - Vector points = data[RS::ARRAY_VERTEX]; + Vector points = data[RSE::ARRAY_VERTEX]; SUBCASE("[Primitive][Capsule] Ensure all vertices positions are within bounding radius and height") { // Get mesh data @@ -128,7 +128,7 @@ TEST_CASE("[SceneTree][Primitive][Capsule] Capsule Primitive") { } SUBCASE("[Primitive][Capsule] If normal.y == 0, then mesh makes a cylinder.") { - Vector normals = data[RS::ARRAY_NORMAL]; + Vector normals = data[RSE::ARRAY_NORMAL]; for (int ii = 0; ii < points.size(); ++ii) { float point_dist_from_yaxis = Math::sqrt(points[ii].x * points[ii].x + points[ii].z * points[ii].z); Vector3 yaxis_to_point{ points[ii].x / point_dist_from_yaxis, 0.f, points[ii].z / point_dist_from_yaxis }; @@ -184,14 +184,14 @@ TEST_CASE("[SceneTree][Primitive][Box] Box Primitive") { SUBCASE("[Primitive][Box] Check mesh is correct.") { Array data{}; - data.resize(RS::ARRAY_MAX); + data.resize(RSE::ARRAY_MAX); Vector3 size{ 0.5f, 1.2f, .9f }; int subdivide_width{ 3 }; int subdivide_height{ 2 }; int subdivide_depth{ 8 }; BoxMesh::create_mesh_array(data, size, subdivide_width, subdivide_height, subdivide_depth); - Vector points = data[RS::ARRAY_VERTEX]; - Vector normals = data[RS::ARRAY_NORMAL]; + Vector points = data[RSE::ARRAY_VERTEX]; + Vector normals = data[RSE::ARRAY_NORMAL]; SUBCASE("Only 6 distinct normals.") { Vector distinct_normals{}; @@ -276,7 +276,7 @@ TEST_CASE("[SceneTree][Primitive][Cylinder] Cylinder Primitive") { SUBCASE("[Primitive][Cylinder] Actual cylinder mesh tests (top and bottom radius the same).") { Array data{}; - data.resize(RS::ARRAY_MAX); + data.resize(RSE::ARRAY_MAX); real_t radius = .9f; real_t height = 3.2f; int radial_segments = 8; @@ -284,8 +284,8 @@ TEST_CASE("[SceneTree][Primitive][Cylinder] Cylinder Primitive") { bool top_cap = true; bool bottom_cap = true; CylinderMesh::create_mesh_array(data, radius, radius, height, radial_segments, rings, top_cap, bottom_cap); - Vector points = data[RS::ARRAY_VERTEX]; - Vector normals = data[RS::ARRAY_NORMAL]; + Vector points = data[RSE::ARRAY_VERTEX]; + Vector normals = data[RSE::ARRAY_NORMAL]; SUBCASE("[Primitive][Cylinder] Side points are radius away from y-axis.") { bool is_radius_correct{ true }; @@ -344,8 +344,8 @@ TEST_CASE("[SceneTree][Primitive][Cylinder] Cylinder Primitive") { SUBCASE("[Primitive][Cylinder] Does mesh obey cap parameters?") { CylinderMesh::create_mesh_array(data, radius, radius, height, radial_segments, rings, top_cap, false); - points = data[RS::ARRAY_VERTEX]; - normals = data[RS::ARRAY_NORMAL]; + points = data[RSE::ARRAY_VERTEX]; + normals = data[RSE::ARRAY_NORMAL]; bool no_bottom_cap{ true }; for (int index = 0; index < normals.size(); ++index) { @@ -361,8 +361,8 @@ TEST_CASE("[SceneTree][Primitive][Cylinder] Cylinder Primitive") { "Check there is no bottom cap."); CylinderMesh::create_mesh_array(data, radius, radius, height, radial_segments, rings, false, bottom_cap); - points = data[RS::ARRAY_VERTEX]; - normals = data[RS::ARRAY_NORMAL]; + points = data[RSE::ARRAY_VERTEX]; + normals = data[RSE::ARRAY_NORMAL]; bool no_top_cap{ true }; for (int index = 0; index < normals.size(); ++index) { @@ -381,15 +381,15 @@ TEST_CASE("[SceneTree][Primitive][Cylinder] Cylinder Primitive") { SUBCASE("[Primitive][Cylinder] Slanted cylinder mesh (top and bottom radius different).") { Array data{}; - data.resize(RS::ARRAY_MAX); + data.resize(RSE::ARRAY_MAX); real_t top_radius = 2.f; real_t bottom_radius = 1.f; real_t height = 1.f; int radial_segments = 8; int rings = 5; CylinderMesh::create_mesh_array(data, top_radius, bottom_radius, height, radial_segments, rings, false, false); - Vector points = data[RS::ARRAY_VERTEX]; - Vector normals = data[RS::ARRAY_NORMAL]; + Vector points = data[RSE::ARRAY_VERTEX]; + Vector normals = data[RSE::ARRAY_NORMAL]; SUBCASE("[Primitive][Cylinder] Side points lie correct distance from y-axis") { bool is_radius_correct{ true }; @@ -549,13 +549,13 @@ TEST_CASE("[SceneTree][Primitive][Sphere] Sphere Primitive") { SUBCASE("[Primitive][Sphere] Sphere mesh tests.") { Array data{}; - data.resize(RS::ARRAY_MAX); + data.resize(RSE::ARRAY_MAX); real_t radius = 1.1f; int radial_segments = 8; int rings = 5; SphereMesh::create_mesh_array(data, radius, 2 * radius, radial_segments, rings); - Vector points = data[RS::ARRAY_VERTEX]; - Vector normals = data[RS::ARRAY_NORMAL]; + Vector points = data[RSE::ARRAY_VERTEX]; + Vector normals = data[RSE::ARRAY_NORMAL]; SUBCASE("[Primitive][Sphere] All points lie radius away from origin.") { bool is_radius_correct = true; diff --git a/tests/servers/test_navigation_server_3d.cpp b/tests/servers/test_navigation_server_3d.cpp index 677e177587..6f2b9f1704 100644 --- a/tests/servers/test_navigation_server_3d.cpp +++ b/tests/servers/test_navigation_server_3d.cpp @@ -680,7 +680,7 @@ TEST_SUITE("[Navigation3D]") { Ref source_geometry = memnew(NavigationMeshSourceGeometryData3D); Array arr; - arr.resize(RS::ARRAY_MAX); + arr.resize(RSE::ARRAY_MAX); BoxMesh::create_mesh_array(arr, Vector3(10.0, 0.001, 10.0)); source_geometry->add_mesh_array(arr, Transform3D()); navigation_server->bake_from_source_geometry_data(navigation_mesh, source_geometry, Callable()); @@ -819,7 +819,7 @@ TEST_SUITE("[Navigation3D]") { Ref source_geometry = memnew(NavigationMeshSourceGeometryData3D); Array arr; - arr.resize(RS::ARRAY_MAX); + arr.resize(RSE::ARRAY_MAX); BoxMesh::create_mesh_array(arr, Vector3(10.0, 0.001, 10.0)); source_geometry->add_mesh_array(arr, Transform3D()); diff --git a/tests/test_main.cpp b/tests/test_main.cpp index e78ef63725..e775b3b062 100644 --- a/tests/test_main.cpp +++ b/tests/test_main.cpp @@ -37,6 +37,7 @@ #include "scene/main/window.h" #include "scene/theme/theme_db.h" #include "servers/audio/audio_server.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_default.h" #include "tests/display_server_mock.h" #include "tests/force_link.gen.h" From b144637ae133e4570bc118f062cdf851bea78e32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Wed, 18 Feb 2026 20:42:58 +0100 Subject: [PATCH 03/13] Decouple RenderingServer from ServersDebugger This one doesn't seem to have much impact on incremental rebuild time after a change in `rendering_server.h`, but might still be worth it to prevent future heavier coupling. --- servers/debugger/servers_debugger.cpp | 5 +- servers/debugger/servers_debugger.h | 12 ++++- servers/rendering/rendering_server.h | 9 +--- .../rendering/rendering_server_default.cpp | 4 +- servers/rendering/rendering_server_default.h | 5 +- servers/rendering/rendering_server_types.h | 47 +++++++++++++++++++ 6 files changed, 67 insertions(+), 15 deletions(-) create mode 100644 servers/rendering/rendering_server_types.h diff --git a/servers/debugger/servers_debugger.cpp b/servers/debugger/servers_debugger.cpp index 3f443c3602..0b550913ef 100644 --- a/servers/debugger/servers_debugger.cpp +++ b/servers/debugger/servers_debugger.cpp @@ -36,6 +36,7 @@ #include "core/io/resource_loader.h" #include "core/object/script_language.h" #include "servers/display/display_server.h" +#include "servers/rendering/rendering_server.h" #define CHECK_SIZE(arr, expected, what) ERR_FAIL_COND_V_MSG((uint32_t)arr.size() < (uint32_t)(expected), false, String("Malformed ") + what + " message from script debugger, message too short. Expected size: " + itos(expected) + ", actual size: " + itos(arr.size())) #define CHECK_END(arr, expected, what) ERR_FAIL_COND_V_MSG((uint32_t)arr.size() > (uint32_t)expected, false, String("Malformed ") + what + " message from script debugger, message too long. Expected size: " + itos(expected) + ", actual size: " + itos(arr.size())) @@ -170,7 +171,7 @@ bool ServersDebugger::VisualProfilerFrame::deserialize(const Array &p_arr) { CHECK_SIZE(p_arr, size, "VisualProfilerFrame"); int idx = 2; areas.resize(size / 3); - RS::FrameProfileArea *w = areas.ptrw(); + RenderingServerTypes::FrameProfileArea *w = areas.ptrw(); for (int i = 0; i < size / 3; i++) { w[i].name = p_arr[idx]; w[i].cpu_msec = p_arr[idx + 1]; @@ -371,7 +372,7 @@ public: void add(const Array &p_data) {} void tick(double p_frame_time, double p_process_time, double p_physics_time, double p_physics_frame_time) { - Vector profile_areas = RS::get_singleton()->get_frame_profile(); + Vector profile_areas = RS::get_singleton()->get_frame_profile(); ServersDebugger::VisualProfilerFrame frame; if (!profile_areas.size()) { return; diff --git a/servers/debugger/servers_debugger.h b/servers/debugger/servers_debugger.h index 5803dc09f8..a9bf243230 100644 --- a/servers/debugger/servers_debugger.h +++ b/servers/debugger/servers_debugger.h @@ -30,7 +30,15 @@ #pragma once -#include "servers/rendering/rendering_server.h" +#include "core/error/error_list.h" +#include "core/object/ref_counted.h" +#include "core/string/string_name.h" +#include "core/string/ustring.h" +#include "core/templates/list.h" +#include "core/templates/rid.h" +#include "core/templates/vector.h" +#include "core/variant/array.h" +#include "servers/rendering/rendering_server_types.h" class ServersDebugger { public: @@ -97,7 +105,7 @@ public: // Visual Profiler struct VisualProfilerFrame { uint64_t frame_number = 0; - Vector areas; + Vector areas; Array serialize(); bool deserialize(const Array &p_arr); diff --git a/servers/rendering/rendering_server.h b/servers/rendering/rendering_server.h index 0909defacf..17cb68e9da 100644 --- a/servers/rendering/rendering_server.h +++ b/servers/rendering/rendering_server.h @@ -37,6 +37,7 @@ #include "servers/display/display_server.h" #include "servers/rendering/rendering_device_enums.h" #include "servers/rendering/rendering_server_enums.h" +#include "servers/rendering/rendering_server_types.h" namespace Geometry3D { struct MeshData; @@ -1045,14 +1046,8 @@ public: virtual RenderingDeviceEnums::DeviceType get_video_adapter_type() const = 0; virtual String get_video_adapter_api_version() const = 0; - struct FrameProfileArea { - String name; - double gpu_msec; - double cpu_msec; - }; - virtual void set_frame_profiling_enabled(bool p_enable) = 0; - virtual Vector get_frame_profile() = 0; + virtual Vector get_frame_profile() = 0; virtual uint64_t get_frame_profile_frame() = 0; virtual double get_frame_setup_time_cpu() const = 0; diff --git a/servers/rendering/rendering_server_default.cpp b/servers/rendering/rendering_server_default.cpp index 8a86e1631c..515b8dfeff 100644 --- a/servers/rendering/rendering_server_default.cpp +++ b/servers/rendering/rendering_server_default.cpp @@ -129,7 +129,7 @@ void RenderingServerDefault::_draw(bool p_swap_buffers, double frame_step) { if (RSG::utilities->get_captured_timestamps_count()) { GodotProfileZoneGrouped(_profile_zone, "frame_profile"); - Vector new_profile; + Vector new_profile; if (RSG::utilities->capturing_timestamps) { new_profile.resize(RSG::utilities->get_captured_timestamps_count()); } @@ -331,7 +331,7 @@ uint64_t RenderingServerDefault::get_frame_profile_frame() { return frame_profile_frame; } -Vector RenderingServerDefault::get_frame_profile() { +Vector RenderingServerDefault::get_frame_profile() { return frame_profile; } diff --git a/servers/rendering/rendering_server_default.h b/servers/rendering/rendering_server_default.h index 035765bac6..ab14449e62 100644 --- a/servers/rendering/rendering_server_default.h +++ b/servers/rendering/rendering_server_default.h @@ -40,6 +40,7 @@ #include "servers/rendering/renderer_compositor.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_enums.h" +#include "servers/rendering/rendering_server_types.h" #include "servers/server_wrap_mt_common.h" class RenderingServerDefault : public RenderingServer { @@ -65,7 +66,7 @@ class RenderingServerDefault : public RenderingServer { static void _changes_changed() {} uint64_t frame_profile_frame = 0; - Vector frame_profile; + Vector frame_profile; double frame_setup_time = 0; @@ -1167,7 +1168,7 @@ public: virtual RenderingDeviceEnums::DeviceType get_video_adapter_type() const override; virtual void set_frame_profiling_enabled(bool p_enable) override; - virtual Vector get_frame_profile() override; + virtual Vector get_frame_profile() override; virtual uint64_t get_frame_profile_frame() override; virtual RID get_test_cube() override; diff --git a/servers/rendering/rendering_server_types.h b/servers/rendering/rendering_server_types.h new file mode 100644 index 0000000000..34272fbdb6 --- /dev/null +++ b/servers/rendering/rendering_server_types.h @@ -0,0 +1,47 @@ +/**************************************************************************/ +/* rendering_server_types.h */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +#pragma once + +#include "core/string/ustring.h" + +#include + +namespace RenderingServerTypes { + +/* STATUS INFORMATION */ + +struct FrameProfileArea { + String name; + double gpu_msec; + double cpu_msec; +}; + +} // namespace RenderingServerTypes From a3cb56dd388879350e6edf296ec830a8990c69ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Wed, 18 Feb 2026 20:24:47 +0100 Subject: [PATCH 04/13] Decouple RenderingServer from XR/OpenXR headers Move BlitToScreen to RenderingServerTypes. --- drivers/gles3/rasterizer_gles3.cpp | 4 +- drivers/gles3/rasterizer_gles3.h | 4 +- modules/mobile_vr/mobile_vr_interface.cpp | 8 +- modules/mobile_vr/mobile_vr_interface.h | 2 +- .../openxr_composition_layer_extension.cpp | 57 +++++++++++ .../openxr_composition_layer_extension.h | 95 ++++++++----------- .../openxr_fb_foveation_extension.cpp | 14 ++- .../openxr_fb_foveation_extension.h | 8 +- .../platform/openxr_metal_extension.mm | 2 +- .../platform/openxr_opengl_extension.cpp | 4 - modules/openxr/openxr_api.cpp | 63 ++++++++++++ modules/openxr/openxr_api.h | 69 ++------------ modules/openxr/openxr_api_extension.cpp | 2 + modules/openxr/openxr_interface.cpp | 15 +-- modules/openxr/openxr_interface.h | 3 +- modules/webxr/webxr_interface_js.cpp | 6 +- modules/webxr/webxr_interface_js.h | 2 +- scene/main/viewport.cpp | 2 + servers/register_server_types.cpp | 3 + servers/rendering/dummy/rasterizer_dummy.h | 2 +- servers/rendering/renderer_compositor.h | 38 ++------ servers/rendering/renderer_rd/effects/vrs.cpp | 3 +- .../forward_mobile/render_forward_mobile.cpp | 5 + .../renderer_rd/renderer_compositor_rd.cpp | 2 +- .../renderer_rd/renderer_compositor_rd.h | 10 +- servers/rendering/renderer_scene_cull.cpp | 5 + servers/rendering/renderer_viewport.cpp | 26 ++--- servers/rendering/rendering_method.h | 4 +- .../rendering/rendering_server_default.cpp | 4 + servers/rendering/rendering_server_types.h | 28 ++++++ servers/xr/xr_interface.cpp | 2 + servers/xr/xr_interface.h | 15 +-- servers/xr/xr_interface_extension.cpp | 5 +- servers/xr/xr_interface_extension.h | 5 +- servers/xr/xr_server.cpp | 25 +++++ servers/xr/xr_server.h | 27 +----- 36 files changed, 333 insertions(+), 236 deletions(-) diff --git a/drivers/gles3/rasterizer_gles3.cpp b/drivers/gles3/rasterizer_gles3.cpp index 7b52e22de4..becf0cc031 100644 --- a/drivers/gles3/rasterizer_gles3.cpp +++ b/drivers/gles3/rasterizer_gles3.cpp @@ -366,7 +366,7 @@ RasterizerGLES3::RasterizerGLES3() { RasterizerGLES3::~RasterizerGLES3() { } -void RasterizerGLES3::_blit_render_target_to_screen(DisplayServer::WindowID p_screen, const BlitToScreen &p_blit, bool p_first) { +void RasterizerGLES3::_blit_render_target_to_screen(DisplayServer::WindowID p_screen, const RenderingServerTypes::BlitToScreen &p_blit, bool p_first) { GLES3::RenderTarget *rt = GLES3::TextureStorage::get_singleton()->get_render_target(p_blit.render_target); ERR_FAIL_NULL(rt); @@ -441,7 +441,7 @@ void RasterizerGLES3::_blit_render_target_to_screen(DisplayServer::WindowID p_sc } // is this p_screen useless in a multi window environment? -void RasterizerGLES3::blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const BlitToScreen *p_render_targets, int p_amount) { +void RasterizerGLES3::blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount) { for (int i = 0; i < p_amount; i++) { _blit_render_target_to_screen(p_screen, p_render_targets[i], i == 0); } diff --git a/drivers/gles3/rasterizer_gles3.h b/drivers/gles3/rasterizer_gles3.h index 475844d519..18abb214e5 100644 --- a/drivers/gles3/rasterizer_gles3.h +++ b/drivers/gles3/rasterizer_gles3.h @@ -81,7 +81,7 @@ protected: RasterizerSceneGLES3 *scene = nullptr; static RasterizerGLES3 *singleton; - void _blit_render_target_to_screen(DisplayServer::WindowID p_screen, const BlitToScreen &p_blit, bool p_first = true); + void _blit_render_target_to_screen(DisplayServer::WindowID p_screen, const RenderingServerTypes::BlitToScreen &p_blit, bool p_first = true); public: RendererUtilities *get_utilities() { return utilities; } @@ -100,7 +100,7 @@ public: void initialize(); void begin_frame(double frame_step); - void blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const BlitToScreen *p_render_targets, int p_amount); + void blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount); bool is_opengl() { return true; } void gl_end_frame(bool p_swap_buffers); diff --git a/modules/mobile_vr/mobile_vr_interface.cpp b/modules/mobile_vr/mobile_vr_interface.cpp index 9a64df21a9..842fa6f93a 100644 --- a/modules/mobile_vr/mobile_vr_interface.cpp +++ b/modules/mobile_vr/mobile_vr_interface.cpp @@ -33,7 +33,7 @@ #include "core/input/input.h" #include "core/os/os.h" #include "servers/display/display_server.h" -#include "servers/rendering/renderer_compositor.h" +#include "servers/rendering/rendering_server_types.h" StringName MobileVRInterface::get_name() const { return "Native mobile"; @@ -509,10 +509,10 @@ Projection MobileVRInterface::get_projection_for_view(uint32_t p_view, double p_ return eye; } -Vector MobileVRInterface::post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) { +Vector MobileVRInterface::post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) { _THREAD_SAFE_METHOD_ - Vector blit_to_screen; + Vector blit_to_screen; // We must have a valid render target. ERR_FAIL_COND_V(!p_render_target.is_valid(), blit_to_screen); @@ -528,7 +528,7 @@ Vector MobileVRInterface::post_draw_viewport(RID p_render_target, Rect2 modified_screen_rect = Rect2(p_screen_rect.position + offset_rect.position * p_screen_rect.size, p_screen_rect.size * offset_rect.size); // and add our blits - BlitToScreen blit; + RenderingServerTypes::BlitToScreen blit; blit.render_target = p_render_target; blit.multi_view.use_layer = true; blit.lens_distortion.apply = true; diff --git a/modules/mobile_vr/mobile_vr_interface.h b/modules/mobile_vr/mobile_vr_interface.h index f09be9117a..10c8f4de2f 100644 --- a/modules/mobile_vr/mobile_vr_interface.h +++ b/modules/mobile_vr/mobile_vr_interface.h @@ -165,7 +165,7 @@ public: virtual Transform3D get_camera_transform() override; virtual Transform3D get_transform_for_view(uint32_t p_view, const Transform3D &p_cam_transform) override; virtual Projection get_projection_for_view(uint32_t p_view, double p_aspect, double p_z_near, double p_z_far) override; - virtual Vector post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) override; + virtual Vector post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) override; virtual void process() override; diff --git a/modules/openxr/extensions/openxr_composition_layer_extension.cpp b/modules/openxr/extensions/openxr_composition_layer_extension.cpp index 2f8084b1cf..a5413cae7e 100644 --- a/modules/openxr/extensions/openxr_composition_layer_extension.cpp +++ b/modules/openxr/extensions/openxr_composition_layer_extension.cpp @@ -39,10 +39,67 @@ #include "platform/android/api/java_class_wrapper.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_globals.h" +#include "servers/xr/xr_server.h" //////////////////////////////////////////////////////////////////////////// // OpenXRCompositionLayerExtension +#define OPENXR_LAYER_FUNC1_IMPL(m_name, m_arg1) \ + void OpenXRCompositionLayerExtension::_composition_layer_##m_name##_rt(RID p_layer, m_arg1 p1) { \ + CompositionLayer *layer = composition_layer_owner.get_or_null(p_layer); \ + ERR_FAIL_NULL(layer); \ + layer->m_name(p1); \ + } \ + void OpenXRCompositionLayerExtension::composition_layer_##m_name(RID p_layer, m_arg1 p1) { \ + RenderingServer::get_singleton()->call_on_render_thread(callable_mp(this, &OpenXRCompositionLayerExtension::_composition_layer_##m_name##_rt).bind(p_layer, p1)); \ + } + +#define OPENXR_LAYER_FUNC2_IMPL(m_name, m_arg1, m_arg2) \ + void OpenXRCompositionLayerExtension::_composition_layer_##m_name##_rt(RID p_layer, m_arg1 p1, m_arg2 p2) { \ + CompositionLayer *layer = composition_layer_owner.get_or_null(p_layer); \ + ERR_FAIL_NULL(layer); \ + layer->m_name(p1, p2); \ + } \ + void OpenXRCompositionLayerExtension::composition_layer_##m_name(RID p_layer, m_arg1 p1, m_arg2 p2) { \ + RenderingServer::get_singleton()->call_on_render_thread(callable_mp(this, &OpenXRCompositionLayerExtension::_composition_layer_##m_name##_rt).bind(p_layer, p1, p2)); \ + } + +OPENXR_LAYER_FUNC2_IMPL(set_viewport, RID, const Size2i &); +OPENXR_LAYER_FUNC2_IMPL(set_use_android_surface, bool, const Size2i &); +OPENXR_LAYER_FUNC1_IMPL(set_sort_order, int); +OPENXR_LAYER_FUNC1_IMPL(set_alpha_blend, bool); +OPENXR_LAYER_FUNC1_IMPL(set_transform, const Transform3D &); +OPENXR_LAYER_FUNC1_IMPL(set_protected_content, bool); +OPENXR_LAYER_FUNC1_IMPL(set_extension_property_values, Dictionary); + +OPENXR_LAYER_FUNC1_IMPL(set_min_filter, Filter); +OPENXR_LAYER_FUNC1_IMPL(set_mag_filter, Filter); +OPENXR_LAYER_FUNC1_IMPL(set_mipmap_mode, MipmapMode); +OPENXR_LAYER_FUNC1_IMPL(set_horizontal_wrap, Wrap); +OPENXR_LAYER_FUNC1_IMPL(set_vertical_wrap, Wrap); +OPENXR_LAYER_FUNC1_IMPL(set_red_swizzle, Swizzle); +OPENXR_LAYER_FUNC1_IMPL(set_blue_swizzle, Swizzle); +OPENXR_LAYER_FUNC1_IMPL(set_green_swizzle, Swizzle); +OPENXR_LAYER_FUNC1_IMPL(set_alpha_swizzle, Swizzle); +OPENXR_LAYER_FUNC1_IMPL(set_max_anisotropy, float); +OPENXR_LAYER_FUNC1_IMPL(set_border_color, const Color &); +OPENXR_LAYER_FUNC1_IMPL(set_pose_space, PoseSpace); +OPENXR_LAYER_FUNC1_IMPL(set_eye_visibility, EyeVisibility); + +OPENXR_LAYER_FUNC1_IMPL(set_quad_size, const Size2 &); + +OPENXR_LAYER_FUNC1_IMPL(set_cylinder_radius, float); +OPENXR_LAYER_FUNC1_IMPL(set_cylinder_aspect_ratio, float); +OPENXR_LAYER_FUNC1_IMPL(set_cylinder_central_angle, float); + +OPENXR_LAYER_FUNC1_IMPL(set_equirect_radius, float); +OPENXR_LAYER_FUNC1_IMPL(set_equirect_central_horizontal_angle, float); +OPENXR_LAYER_FUNC1_IMPL(set_equirect_upper_vertical_angle, float); +OPENXR_LAYER_FUNC1_IMPL(set_equirect_lower_vertical_angle, float); + +#undef OPENXR_LAYER_FUNC1_IMPL +#undef OPENXR_LAYER_FUNC2_IMPL + OpenXRCompositionLayerExtension *OpenXRCompositionLayerExtension::singleton = nullptr; OpenXRCompositionLayerExtension *OpenXRCompositionLayerExtension::get_singleton() { diff --git a/modules/openxr/extensions/openxr_composition_layer_extension.h b/modules/openxr/extensions/openxr_composition_layer_extension.h index 6940507391..1130baf298 100644 --- a/modules/openxr/extensions/openxr_composition_layer_extension.h +++ b/modules/openxr/extensions/openxr_composition_layer_extension.h @@ -44,28 +44,6 @@ typedef XrResult(XRAPI_PTR *PFN_xrCreateSwapchainAndroidSurfaceKHR)(XrSession se class JavaObject; -// This extension provides access to composition layers for displaying 2D content through the XR compositor. - -#define OPENXR_LAYER_FUNC1(m_name, m_arg1) \ - void _composition_layer_##m_name##_rt(RID p_layer, m_arg1 p1) { \ - CompositionLayer *layer = composition_layer_owner.get_or_null(p_layer); \ - ERR_FAIL_NULL(layer); \ - layer->m_name(p1); \ - } \ - void composition_layer_##m_name(RID p_layer, m_arg1 p1) { \ - RenderingServer::get_singleton()->call_on_render_thread(callable_mp(this, &OpenXRCompositionLayerExtension::_composition_layer_##m_name##_rt).bind(p_layer, p1)); \ - } - -#define OPENXR_LAYER_FUNC2(m_name, m_arg1, m_arg2) \ - void _composition_layer_##m_name##_rt(RID p_layer, m_arg1 p1, m_arg2 p2) { \ - CompositionLayer *layer = composition_layer_owner.get_or_null(p_layer); \ - ERR_FAIL_NULL(layer); \ - layer->m_name(p1, p2); \ - } \ - void composition_layer_##m_name(RID p_layer, m_arg1 p1, m_arg2 p2) { \ - RenderingServer::get_singleton()->call_on_render_thread(callable_mp(this, &OpenXRCompositionLayerExtension::_composition_layer_##m_name##_rt).bind(p_layer, p1, p2)); \ - } - // OpenXRCompositionLayerExtension enables the extensions related to this functionality class OpenXRCompositionLayerExtension : public OpenXRExtensionWrapper { GDCLASS(OpenXRCompositionLayerExtension, OpenXRExtensionWrapper); @@ -155,38 +133,52 @@ public: void composition_layer_register(RID p_layer); void composition_layer_unregister(RID p_layer); - OPENXR_LAYER_FUNC2(set_viewport, RID, const Size2i &); - OPENXR_LAYER_FUNC2(set_use_android_surface, bool, const Size2i &); - OPENXR_LAYER_FUNC1(set_sort_order, int); - OPENXR_LAYER_FUNC1(set_alpha_blend, bool); - OPENXR_LAYER_FUNC1(set_transform, const Transform3D &); - OPENXR_LAYER_FUNC1(set_protected_content, bool); - OPENXR_LAYER_FUNC1(set_extension_property_values, Dictionary); + // This extension provides access to composition layers for displaying 2D content through the XR compositor. + // Declarations are made here, and implementations in the .cpp, to avoid having to include RenderingServer in a header. - OPENXR_LAYER_FUNC1(set_min_filter, Filter); - OPENXR_LAYER_FUNC1(set_mag_filter, Filter); - OPENXR_LAYER_FUNC1(set_mipmap_mode, MipmapMode); - OPENXR_LAYER_FUNC1(set_horizontal_wrap, Wrap); - OPENXR_LAYER_FUNC1(set_vertical_wrap, Wrap); - OPENXR_LAYER_FUNC1(set_red_swizzle, Swizzle); - OPENXR_LAYER_FUNC1(set_blue_swizzle, Swizzle); - OPENXR_LAYER_FUNC1(set_green_swizzle, Swizzle); - OPENXR_LAYER_FUNC1(set_alpha_swizzle, Swizzle); - OPENXR_LAYER_FUNC1(set_max_anisotropy, float); - OPENXR_LAYER_FUNC1(set_border_color, const Color &); - OPENXR_LAYER_FUNC1(set_pose_space, PoseSpace); - OPENXR_LAYER_FUNC1(set_eye_visibility, EyeVisibility); +#define OPENXR_LAYER_FUNC1_DECL(m_name, m_arg1) \ + void _composition_layer_##m_name##_rt(RID p_layer, m_arg1 p1); \ + void composition_layer_##m_name(RID p_layer, m_arg1 p1); - OPENXR_LAYER_FUNC1(set_quad_size, const Size2 &); +#define OPENXR_LAYER_FUNC2_DECL(m_name, m_arg1, m_arg2) \ + void _composition_layer_##m_name##_rt(RID p_layer, m_arg1 p1, m_arg2 p2); \ + void composition_layer_##m_name(RID p_layer, m_arg1 p1, m_arg2 p2); - OPENXR_LAYER_FUNC1(set_cylinder_radius, float); - OPENXR_LAYER_FUNC1(set_cylinder_aspect_ratio, float); - OPENXR_LAYER_FUNC1(set_cylinder_central_angle, float); + OPENXR_LAYER_FUNC2_DECL(set_viewport, RID, const Size2i &); + OPENXR_LAYER_FUNC2_DECL(set_use_android_surface, bool, const Size2i &); + OPENXR_LAYER_FUNC1_DECL(set_sort_order, int); + OPENXR_LAYER_FUNC1_DECL(set_alpha_blend, bool); + OPENXR_LAYER_FUNC1_DECL(set_transform, const Transform3D &); + OPENXR_LAYER_FUNC1_DECL(set_protected_content, bool); + OPENXR_LAYER_FUNC1_DECL(set_extension_property_values, Dictionary); - OPENXR_LAYER_FUNC1(set_equirect_radius, float); - OPENXR_LAYER_FUNC1(set_equirect_central_horizontal_angle, float); - OPENXR_LAYER_FUNC1(set_equirect_upper_vertical_angle, float); - OPENXR_LAYER_FUNC1(set_equirect_lower_vertical_angle, float); + OPENXR_LAYER_FUNC1_DECL(set_min_filter, Filter); + OPENXR_LAYER_FUNC1_DECL(set_mag_filter, Filter); + OPENXR_LAYER_FUNC1_DECL(set_mipmap_mode, MipmapMode); + OPENXR_LAYER_FUNC1_DECL(set_horizontal_wrap, Wrap); + OPENXR_LAYER_FUNC1_DECL(set_vertical_wrap, Wrap); + OPENXR_LAYER_FUNC1_DECL(set_red_swizzle, Swizzle); + OPENXR_LAYER_FUNC1_DECL(set_blue_swizzle, Swizzle); + OPENXR_LAYER_FUNC1_DECL(set_green_swizzle, Swizzle); + OPENXR_LAYER_FUNC1_DECL(set_alpha_swizzle, Swizzle); + OPENXR_LAYER_FUNC1_DECL(set_max_anisotropy, float); + OPENXR_LAYER_FUNC1_DECL(set_border_color, const Color &); + OPENXR_LAYER_FUNC1_DECL(set_pose_space, PoseSpace); + OPENXR_LAYER_FUNC1_DECL(set_eye_visibility, EyeVisibility); + + OPENXR_LAYER_FUNC1_DECL(set_quad_size, const Size2 &); + + OPENXR_LAYER_FUNC1_DECL(set_cylinder_radius, float); + OPENXR_LAYER_FUNC1_DECL(set_cylinder_aspect_ratio, float); + OPENXR_LAYER_FUNC1_DECL(set_cylinder_central_angle, float); + + OPENXR_LAYER_FUNC1_DECL(set_equirect_radius, float); + OPENXR_LAYER_FUNC1_DECL(set_equirect_central_horizontal_angle, float); + OPENXR_LAYER_FUNC1_DECL(set_equirect_upper_vertical_angle, float); + OPENXR_LAYER_FUNC1_DECL(set_equirect_lower_vertical_angle, float); + +#undef OPENXR_LAYER_FUNC1_DECL +#undef OPENXR_LAYER_FUNC2_DECL Ref composition_layer_get_android_surface(RID p_layer); @@ -311,6 +303,3 @@ VARIANT_ENUM_CAST(OpenXRCompositionLayerExtension::Wrap); VARIANT_ENUM_CAST(OpenXRCompositionLayerExtension::Swizzle); VARIANT_ENUM_CAST(OpenXRCompositionLayerExtension::PoseSpace); VARIANT_ENUM_CAST(OpenXRCompositionLayerExtension::EyeVisibility); - -#undef OPENXR_LAYER_FUNC1 -#undef OPENXR_LAYER_FUNC2 diff --git a/modules/openxr/extensions/openxr_fb_foveation_extension.cpp b/modules/openxr/extensions/openxr_fb_foveation_extension.cpp index 25a1498e4e..908d08318e 100644 --- a/modules/openxr/extensions/openxr_fb_foveation_extension.cpp +++ b/modules/openxr/extensions/openxr_fb_foveation_extension.cpp @@ -29,10 +29,12 @@ /**************************************************************************/ #include "openxr_fb_foveation_extension.h" -#include "core/config/project_settings.h" -#include "openxr_eye_gaze_interaction.h" #include "../openxr_platform_inc.h" +#include "openxr_eye_gaze_interaction.h" + +#include "core/config/project_settings.h" +#include "servers/rendering/rendering_server.h" OpenXRFBFoveationExtension *OpenXRFBFoveationExtension::singleton = nullptr; @@ -282,3 +284,11 @@ void OpenXRFBFoveationExtension::_update_profile_rt() { print_line("OpenXR: Unable to destroy the foveation profile [", openxr_api->get_error_string(result), "]"); } } + +void OpenXRFBFoveationExtension::update_profile() { + // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... + RenderingServer *rendering_server = RenderingServer::get_singleton(); + ERR_FAIL_NULL(rendering_server); + + rendering_server->call_on_render_thread(callable_mp(this, &OpenXRFBFoveationExtension::_update_profile_rt)); +} diff --git a/modules/openxr/extensions/openxr_fb_foveation_extension.h b/modules/openxr/extensions/openxr_fb_foveation_extension.h index 3ccd01b8ef..153e046a67 100644 --- a/modules/openxr/extensions/openxr_fb_foveation_extension.h +++ b/modules/openxr/extensions/openxr_fb_foveation_extension.h @@ -92,13 +92,7 @@ private: void _update_profile_rt(); - void update_profile() { - // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... - RenderingServer *rendering_server = RenderingServer::get_singleton(); - ERR_FAIL_NULL(rendering_server); - - rendering_server->call_on_render_thread(callable_mp(this, &OpenXRFBFoveationExtension::_update_profile_rt)); - } + void update_profile(); // Enable foveation on this swapchain XrSwapchainCreateInfoFoveationFB swapchain_create_info_foveation_fb; diff --git a/modules/openxr/extensions/platform/openxr_metal_extension.mm b/modules/openxr/extensions/platform/openxr_metal_extension.mm index 2e12ba9cd6..264687c972 100644 --- a/modules/openxr/extensions/platform/openxr_metal_extension.mm +++ b/modules/openxr/extensions/platform/openxr_metal_extension.mm @@ -34,7 +34,7 @@ #import "drivers/metal/rendering_device_driver_metal.h" #include "servers/rendering/rendering_device.h" -#include "servers/rendering/rendering_server_globals.h" +#include "servers/rendering/rendering_server.h" HashMap OpenXRMetalExtension::get_requested_extensions(XrVersion p_version) { HashMap request_extensions; diff --git a/modules/openxr/extensions/platform/openxr_opengl_extension.cpp b/modules/openxr/extensions/platform/openxr_opengl_extension.cpp index 5e85b37401..560333aaf3 100644 --- a/modules/openxr/extensions/platform/openxr_opengl_extension.cpp +++ b/modules/openxr/extensions/platform/openxr_opengl_extension.cpp @@ -34,11 +34,7 @@ #include "../../openxr_util.h" -#include "core/templates/rb_map.h" -#include "drivers/gles3/effects/copy_effects.h" #include "drivers/gles3/storage/texture_storage.h" -#include "servers/rendering/rendering_server.h" -#include "servers/rendering/rendering_server_globals.h" // OpenXR requires us to submit sRGB textures so that it recognizes the content // as being in sRGB color space. We do fall back on "normal" textures but this diff --git a/modules/openxr/openxr_api.cpp b/modules/openxr/openxr_api.cpp index 11dc7c9ff8..4a3d1b338c 100644 --- a/modules/openxr/openxr_api.cpp +++ b/modules/openxr/openxr_api.cpp @@ -38,6 +38,7 @@ #include "core/os/memory.h" #include "core/profiling/profiling.h" #include "core/version.h" +#include "servers/rendering/rendering_server.h" #include "openxr_platform_inc.h" @@ -2268,6 +2269,68 @@ void OpenXRAPI::_update_main_swapchain_size_rt() { #endif } +void OpenXRAPI::allocate_view_buffers(uint32_t p_view_count, bool p_submit_depth_buffer) { + // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... + RenderingServer *rendering_server = RenderingServer::get_singleton(); + ERR_FAIL_NULL(rendering_server); + + rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_allocate_view_buffers_rt).bind(p_view_count, p_submit_depth_buffer)); +} + +void OpenXRAPI::set_render_session_running(bool p_is_running) { + // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... + RenderingServer *rendering_server = RenderingServer::get_singleton(); + ERR_FAIL_NULL(rendering_server); + + rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_set_render_session_running_rt).bind(p_is_running)); +} + +void OpenXRAPI::set_render_display_info(XrTime p_predicted_display_time, bool p_should_render) { + // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... + RenderingServer *rendering_server = RenderingServer::get_singleton(); + ERR_FAIL_NULL(rendering_server); + + rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_set_render_display_info_rt).bind(p_predicted_display_time, p_should_render)); +} + +void OpenXRAPI::set_render_play_space(XrSpace p_play_space) { + // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... + RenderingServer *rendering_server = RenderingServer::get_singleton(); + ERR_FAIL_NULL(rendering_server); + + rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_set_render_play_space_rt).bind(uint64_t(p_play_space))); +} + +void OpenXRAPI::set_render_environment_blend_mode(XrEnvironmentBlendMode p_mode) { + // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... + RenderingServer *rendering_server = RenderingServer::get_singleton(); + ERR_FAIL_NULL(rendering_server); + + rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_set_render_environment_blend_mode_rt).bind((int32_t)p_mode)); +} + +void OpenXRAPI::set_render_state_multiplier(double p_render_target_size_multiplier) { + // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... + RenderingServer *rendering_server = RenderingServer::get_singleton(); + ERR_FAIL_NULL(rendering_server); + + rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_set_render_state_multiplier_rt).bind(p_render_target_size_multiplier)); +} + +void OpenXRAPI::set_render_state_render_region(const Rect2i &p_render_region) { + RenderingServer *rendering_server = RenderingServer::get_singleton(); + ERR_FAIL_NULL(rendering_server); + + rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_set_render_state_render_region_rt).bind(p_render_region)); +} + +void OpenXRAPI::update_main_swapchain_size() { + RenderingServer *rendering_server = RenderingServer::get_singleton(); + ERR_FAIL_NULL(rendering_server); + + rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_update_main_swapchain_size_rt)); +} + bool OpenXRAPI::process() { ERR_FAIL_COND_V(instance == XR_NULL_HANDLE, false); diff --git a/modules/openxr/openxr_api.h b/modules/openxr/openxr_api.h index 36d948560c..2bc7cd74f6 100644 --- a/modules/openxr/openxr_api.h +++ b/modules/openxr/openxr_api.h @@ -41,7 +41,6 @@ #include "core/string/ustring.h" #include "core/templates/rid_owner.h" #include "core/templates/vector.h" -#include "servers/rendering/rendering_server.h" #include "servers/xr/xr_pose.h" #include @@ -392,68 +391,16 @@ private: static void _set_render_state_render_region_rt(const Rect2i &p_render_region); static void _update_main_swapchain_size_rt(); - _FORCE_INLINE_ void allocate_view_buffers(uint32_t p_view_count, bool p_submit_depth_buffer) { - // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... - RenderingServer *rendering_server = RenderingServer::get_singleton(); - ERR_FAIL_NULL(rendering_server); - - rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_allocate_view_buffers_rt).bind(p_view_count, p_submit_depth_buffer)); - } - - _FORCE_INLINE_ void set_render_session_running(bool p_is_running) { - // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... - RenderingServer *rendering_server = RenderingServer::get_singleton(); - ERR_FAIL_NULL(rendering_server); - - rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_set_render_session_running_rt).bind(p_is_running)); - } - - _FORCE_INLINE_ void set_render_display_info(XrTime p_predicted_display_time, bool p_should_render) { - // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... - RenderingServer *rendering_server = RenderingServer::get_singleton(); - ERR_FAIL_NULL(rendering_server); - - rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_set_render_display_info_rt).bind(p_predicted_display_time, p_should_render)); - } - - _FORCE_INLINE_ void set_render_play_space(XrSpace p_play_space) { - // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... - RenderingServer *rendering_server = RenderingServer::get_singleton(); - ERR_FAIL_NULL(rendering_server); - - rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_set_render_play_space_rt).bind(uint64_t(p_play_space))); - } - - _FORCE_INLINE_ void set_render_environment_blend_mode(XrEnvironmentBlendMode p_mode) { - // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... - RenderingServer *rendering_server = RenderingServer::get_singleton(); - ERR_FAIL_NULL(rendering_server); - - rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_set_render_environment_blend_mode_rt).bind((int32_t)p_mode)); - } - - _FORCE_INLINE_ void set_render_state_multiplier(double p_render_target_size_multiplier) { - // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... - RenderingServer *rendering_server = RenderingServer::get_singleton(); - ERR_FAIL_NULL(rendering_server); - - rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_set_render_state_multiplier_rt).bind(p_render_target_size_multiplier)); - } - - _FORCE_INLINE_ void set_render_state_render_region(const Rect2i &p_render_region) { - RenderingServer *rendering_server = RenderingServer::get_singleton(); - ERR_FAIL_NULL(rendering_server); - - rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_set_render_state_render_region_rt).bind(p_render_region)); - } + void allocate_view_buffers(uint32_t p_view_count, bool p_submit_depth_buffer); + void set_render_session_running(bool p_is_running); + void set_render_display_info(XrTime p_predicted_display_time, bool p_should_render); + void set_render_play_space(XrSpace p_play_space); + void set_render_environment_blend_mode(XrEnvironmentBlendMode p_mode); + void set_render_state_multiplier(double p_render_target_size_multiplier); + void set_render_state_render_region(const Rect2i &p_render_region); public: - _FORCE_INLINE_ void update_main_swapchain_size() { - RenderingServer *rendering_server = RenderingServer::get_singleton(); - ERR_FAIL_NULL(rendering_server); - - rendering_server->call_on_render_thread(callable_mp_static(&OpenXRAPI::_update_main_swapchain_size_rt)); - } + void update_main_swapchain_size(); XrVersion get_openxr_version() const { return openxr_version; } XrInstance get_instance() const { return instance; } diff --git a/modules/openxr/openxr_api_extension.cpp b/modules/openxr/openxr_api_extension.cpp index 0de8e9c805..cbe7293d80 100644 --- a/modules/openxr/openxr_api_extension.cpp +++ b/modules/openxr/openxr_api_extension.cpp @@ -33,6 +33,8 @@ #include "extensions/openxr_extension_wrapper.h" #include "openxr_api_extension.compat.inc" +#include "servers/rendering/rendering_server.h" // ERR_NOT_ON_RENDER_THREAD_V + void OpenXRAPIExtension::_bind_methods() { ClassDB::bind_method(D_METHOD("get_openxr_version"), &OpenXRAPIExtension::get_openxr_version); ClassDB::bind_method(D_METHOD("get_instance"), &OpenXRAPIExtension::get_instance); diff --git a/modules/openxr/openxr_interface.cpp b/modules/openxr/openxr_interface.cpp index d8b90cca87..ade34120a7 100644 --- a/modules/openxr/openxr_interface.cpp +++ b/modules/openxr/openxr_interface.cpp @@ -30,14 +30,15 @@ #include "openxr_interface.h" -#include "core/io/resource_loader.h" -#include "core/io/resource_saver.h" - #include "extensions/openxr_eye_gaze_interaction.h" #include "extensions/openxr_hand_interaction_extension.h" #include "extensions/openxr_performance_settings_extension.h" #include "extensions/openxr_user_presence_extension.h" -#include "servers/rendering/renderer_compositor.h" + +#include "core/io/resource_loader.h" +#include "core/io/resource_saver.h" +#include "servers/display/display_server.h" +#include "servers/rendering/rendering_server_types.h" #include @@ -1253,13 +1254,13 @@ bool OpenXRInterface::pre_draw_viewport(RID p_render_target) { } } -Vector OpenXRInterface::post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) { - Vector blit_to_screen; +Vector OpenXRInterface::post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) { + Vector blit_to_screen; #ifndef ANDROID_ENABLED // If separate HMD we should output one eye to screen if (p_screen_rect != Rect2()) { - BlitToScreen blit; + RenderingServerTypes::BlitToScreen blit; blit.render_target = p_render_target; blit.multi_view.use_layer = true; diff --git a/modules/openxr/openxr_interface.h b/modules/openxr/openxr_interface.h index 1bcf01b1b2..d3fec0d4aa 100644 --- a/modules/openxr/openxr_interface.h +++ b/modules/openxr/openxr_interface.h @@ -59,6 +59,7 @@ #include "servers/xr/xr_controller_tracker.h" #include "servers/xr/xr_interface.h" +#include "servers/xr/xr_vrs.h" // declare some default strings #define INTERACTION_PROFILE_NONE "/interaction_profiles/none" @@ -193,7 +194,7 @@ public: virtual void process() override; virtual void pre_render() override; bool pre_draw_viewport(RID p_render_target) override; - virtual Vector post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) override; + virtual Vector post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) override; virtual void end_frame() override; virtual bool is_passthrough_supported() override; diff --git a/modules/webxr/webxr_interface_js.cpp b/modules/webxr/webxr_interface_js.cpp index 950e2a2cf2..0a78e29f08 100644 --- a/modules/webxr/webxr_interface_js.cpp +++ b/modules/webxr/webxr_interface_js.cpp @@ -40,8 +40,6 @@ #include "scene/main/scene_tree.h" #include "scene/main/window.h" #include "scene/scene_string_names.h" -#include "servers/rendering/renderer_compositor.h" -#include "servers/rendering/rendering_server_globals.h" #include "servers/xr/xr_hand_tracker.h" #include @@ -523,8 +521,8 @@ bool WebXRInterfaceJS::pre_draw_viewport(RID p_render_target) { return true; } -Vector WebXRInterfaceJS::post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) { - Vector blit_to_screen; +Vector WebXRInterfaceJS::post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) { + Vector blit_to_screen; GLES3::TextureStorage *texture_storage = GLES3::TextureStorage::get_singleton(); if (texture_storage == nullptr) { diff --git a/modules/webxr/webxr_interface_js.h b/modules/webxr/webxr_interface_js.h index 19057241c8..be8d55c45b 100644 --- a/modules/webxr/webxr_interface_js.h +++ b/modules/webxr/webxr_interface_js.h @@ -134,7 +134,7 @@ public: virtual Transform3D get_transform_for_view(uint32_t p_view, const Transform3D &p_cam_transform) override; virtual Projection get_projection_for_view(uint32_t p_view, double p_aspect, double p_z_near, double p_z_far) override; virtual bool pre_draw_viewport(RID p_render_target) override; - virtual Vector post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) override; + virtual Vector post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) override; virtual RID get_color_texture() override; virtual RID get_depth_texture() override; virtual RID get_velocity_texture() override; diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index d150d10b1e..b8d1aee2bc 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -74,6 +74,8 @@ STATIC_ASSERT_INCOMPLETE_TYPE(class, RenderingServer); #ifndef XR_DISABLED #include "servers/rendering/rendering_server_globals.h" +#include "servers/xr/xr_interface.h" +#include "servers/xr/xr_server.h" #endif // XR_DISABLED void ViewportTexture::setup_local_to_scene() { diff --git a/servers/register_server_types.cpp b/servers/register_server_types.cpp index bee1701257..723554826d 100644 --- a/servers/register_server_types.cpp +++ b/servers/register_server_types.cpp @@ -99,6 +99,8 @@ #include "servers/physics_3d/physics_server_3d_dummy.h" #include "servers/physics_3d/physics_server_3d_extension.h" #endif // PHYSICS_3D_DISABLED + +// XR #ifndef XR_DISABLED #include "xr/xr_body_tracker.h" #include "xr/xr_controller_tracker.h" @@ -108,6 +110,7 @@ #include "xr/xr_interface_extension.h" #include "xr/xr_positional_tracker.h" #include "xr/xr_server.h" +#include "xr/xr_vrs.h" #endif // XR_DISABLED ShaderTypes *shader_types = nullptr; diff --git a/servers/rendering/dummy/rasterizer_dummy.h b/servers/rendering/dummy/rasterizer_dummy.h index 12b7a27acf..bdda5c6d64 100644 --- a/servers/rendering/dummy/rasterizer_dummy.h +++ b/servers/rendering/dummy/rasterizer_dummy.h @@ -86,7 +86,7 @@ public: time += frame_step; } - void blit_render_targets_to_screen(int p_screen, const BlitToScreen *p_render_targets, int p_amount) override {} + void blit_render_targets_to_screen(int p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount) override {} bool is_opengl() override { return false; } void gl_end_frame(bool p_swap_buffers) override {} diff --git a/servers/rendering/renderer_compositor.h b/servers/rendering/renderer_compositor.h index e16cdc9b5b..074b5dfb85 100644 --- a/servers/rendering/renderer_compositor.h +++ b/servers/rendering/renderer_compositor.h @@ -33,6 +33,8 @@ #include "servers/rendering/environment/renderer_fog.h" #include "servers/rendering/environment/renderer_gi.h" #include "servers/rendering/renderer_canvas_render.h" +#include "servers/rendering/renderer_scene_render.h" +#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/storage/light_storage.h" #include "servers/rendering/storage/material_storage.h" #include "servers/rendering/storage/mesh_storage.h" @@ -40,29 +42,6 @@ #include "servers/rendering/storage/texture_storage.h" #include "servers/rendering/storage/utilities.h" -class RendererSceneRender; -struct BlitToScreen { - RID render_target; - Rect2 src_rect = Rect2(0.0, 0.0, 1.0, 1.0); - Rect2i dst_rect; - - struct { - bool use_layer = false; - uint32_t layer = 0; - } multi_view; - - struct { - //lens distorted parameters for VR - bool apply = false; - Vector2 eye_center; - float k1 = 0.0; - float k2 = 0.0; - - float upscale = 1.0; - float aspect_ratio = 1.0; - } lens_distortion; -}; - class RendererCompositor { private: bool xr_enabled = false; @@ -76,16 +55,17 @@ protected: public: static RendererCompositor *create(); - virtual RendererUtilities *get_utilities() = 0; + virtual RendererCanvasRender *get_canvas() = 0; + virtual RendererSceneRender *get_scene() = 0; + + virtual RendererFog *get_fog() = 0; + virtual RendererGI *get_gi() = 0; virtual RendererLightStorage *get_light_storage() = 0; virtual RendererMaterialStorage *get_material_storage() = 0; virtual RendererMeshStorage *get_mesh_storage() = 0; virtual RendererParticlesStorage *get_particles_storage() = 0; virtual RendererTextureStorage *get_texture_storage() = 0; - virtual RendererGI *get_gi() = 0; - virtual RendererFog *get_fog() = 0; - virtual RendererCanvasRender *get_canvas() = 0; - virtual RendererSceneRender *get_scene() = 0; + virtual RendererUtilities *get_utilities() = 0; virtual void set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RSE::SplashStretchMode p_stretch_mode, bool p_use_filter = true) = 0; virtual void set_boot_image(const Ref &p_image, const Color &p_color, bool p_scale, bool p_use_filter = true); @@ -93,7 +73,7 @@ public: virtual void initialize() = 0; virtual void begin_frame(double frame_step) = 0; - virtual void blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const BlitToScreen *p_render_targets, int p_amount) = 0; + virtual void blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount) = 0; virtual bool is_opengl() = 0; virtual void gl_end_frame(bool p_swap_buffers) = 0; diff --git a/servers/rendering/renderer_rd/effects/vrs.cpp b/servers/rendering/renderer_rd/effects/vrs.cpp index 8cb3a42283..8581e353f1 100644 --- a/servers/rendering/renderer_rd/effects/vrs.cpp +++ b/servers/rendering/renderer_rd/effects/vrs.cpp @@ -34,9 +34,8 @@ #include "../storage_rd/texture_storage.h" #include "../uniform_set_cache_rd.h" -#include "servers/rendering/rendering_server.h" - #ifndef XR_DISABLED +#include "servers/xr/xr_interface.h" #include "servers/xr/xr_server.h" #endif // XR_DISABLED diff --git a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp index 3625a3b4ab..bc508cc3cf 100644 --- a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp +++ b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp @@ -39,6 +39,11 @@ #include "servers/rendering/rendering_device.h" #include "servers/rendering/rendering_server_default.h" +#ifndef XR_DISABLED +#include "servers/xr/xr_interface.h" +#include "servers/xr/xr_server.h" +#endif + #define PRELOAD_PIPELINES_ON_SURFACE_CACHE_CONSTRUCTION 1 using namespace RendererSceneRenderImplementation; diff --git a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp index 8201635d3a..2aeb1b5766 100644 --- a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp @@ -36,7 +36,7 @@ #include "servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h" #include "servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h" -void RendererCompositorRD::blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const BlitToScreen *p_render_targets, int p_amount) { +void RendererCompositorRD::blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount) { Error err = RD::get_singleton()->screen_prepare_for_drawing(p_screen); if (err != OK) { // Window is minimized and does not have valid swapchain, skip drawing without printing errors. diff --git a/servers/rendering/renderer_rd/renderer_compositor_rd.h b/servers/rendering/renderer_rd/renderer_compositor_rd.h index a36ad6330e..4790aca873 100644 --- a/servers/rendering/renderer_rd/renderer_compositor_rd.h +++ b/servers/rendering/renderer_rd/renderer_compositor_rd.h @@ -49,15 +49,17 @@ class RendererCompositorRD : public RendererCompositor { protected: UniformSetCacheRD *uniform_set_cache = nullptr; FramebufferCacheRD *framebuffer_cache = nullptr; + RendererCanvasRenderRD *canvas = nullptr; - RendererRD::Utilities *utilities = nullptr; + RendererSceneRenderRD *scene = nullptr; + + RendererRD::Fog *fog = nullptr; RendererRD::LightStorage *light_storage = nullptr; RendererRD::MaterialStorage *material_storage = nullptr; RendererRD::MeshStorage *mesh_storage = nullptr; RendererRD::ParticlesStorage *particles_storage = nullptr; RendererRD::TextureStorage *texture_storage = nullptr; - RendererRD::Fog *fog = nullptr; - RendererSceneRenderRD *scene = nullptr; + RendererRD::Utilities *utilities = nullptr; enum BlitMode { BLIT_MODE_NORMAL, @@ -134,7 +136,7 @@ public: virtual void initialize() override; virtual void begin_frame(double frame_step) override; - virtual void blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const BlitToScreen *p_render_targets, int p_amount) override; + virtual void blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount) override; virtual bool is_opengl() override { return false; } virtual void gl_end_frame(bool p_swap_buffers) override {} diff --git a/servers/rendering/renderer_scene_cull.cpp b/servers/rendering/renderer_scene_cull.cpp index 23fbff83eb..11878ff3d2 100644 --- a/servers/rendering/renderer_scene_cull.cpp +++ b/servers/rendering/renderer_scene_cull.cpp @@ -42,6 +42,11 @@ #include "scene/main/node.h" #endif +#ifndef XR_DISABLED +#include "servers/xr/xr_interface.h" +#include "servers/xr/xr_server.h" +#endif + /* HALTON SEQUENCE */ #ifndef _3D_DISABLED diff --git a/servers/rendering/renderer_viewport.cpp b/servers/rendering/renderer_viewport.cpp index db2e284f01..41be694eee 100644 --- a/servers/rendering/renderer_viewport.cpp +++ b/servers/rendering/renderer_viewport.cpp @@ -34,14 +34,16 @@ #include "core/math/transform_interpolator.h" #include "core/object/worker_thread_pool.h" #include "core/profiling/profiling.h" -#include "renderer_canvas_cull.h" -#include "renderer_scene_cull.h" -#include "rendering_device.h" -#include "rendering_server_globals.h" -#include "storage/texture_storage.h" +#include "servers/rendering/renderer_canvas_cull.h" +#include "servers/rendering/renderer_scene_cull.h" +#include "servers/rendering/rendering_device.h" +#include "servers/rendering/rendering_server_globals.h" +#include "servers/rendering/rendering_server_types.h" +#include "servers/rendering/storage/texture_storage.h" #ifndef XR_DISABLED #include "servers/xr/xr_interface.h" +#include "servers/xr/xr_server.h" #endif // XR_DISABLED static Transform2D _canvas_get_transform(RendererViewport::Viewport *p_viewport, RendererCanvasCull::Canvas *p_canvas, RendererViewport::Viewport::CanvasData *p_canvas_data, const Vector2 &p_vp_size) { @@ -782,7 +784,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) { sorted_active_viewports_dirty = false; } - HashMap> blit_to_screen_list; + HashMap> blit_to_screen_list; //draw viewports RENDER_TIMESTAMP("> Render Viewports"); @@ -892,7 +894,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) { _draw_viewport(vp); // commit our eyes - Vector blits = xr_interface->post_draw_viewport(vp->render_target, vp->viewport_to_screen_rect); + Vector blits = xr_interface->post_draw_viewport(vp->render_target, vp->viewport_to_screen_rect); if (vp->viewport_to_screen != DisplayServer::INVALID_WINDOW_ID) { if (RSG::rasterizer->is_opengl()) { if (blits.size() > 0) { @@ -901,7 +903,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) { } } else if (blits.size() > 0) { if (!blit_to_screen_list.has(vp->viewport_to_screen)) { - blit_to_screen_list[vp->viewport_to_screen] = Vector(); + blit_to_screen_list[vp->viewport_to_screen] = Vector(); } for (int b = 0; b < blits.size(); b++) { @@ -920,7 +922,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) { if (vp->viewport_to_screen != DisplayServer::INVALID_WINDOW_ID && (!vp->viewport_render_direct_to_screen || !RSG::rasterizer->is_low_end())) { //copy to screen if set as such - BlitToScreen blit; + RenderingServerTypes::BlitToScreen blit; blit.render_target = vp->render_target; if (vp->viewport_to_screen_rect != Rect2()) { blit.dst_rect = vp->viewport_to_screen_rect; @@ -933,9 +935,9 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) { RSG::rasterizer->blit_render_targets_to_screen(vp->viewport_to_screen, &blit, 1); RSG::rasterizer->gl_end_frame(p_swap_buffers); } else { - Vector *blits = blit_to_screen_list.getptr(vp->viewport_to_screen); + Vector *blits = blit_to_screen_list.getptr(vp->viewport_to_screen); if (blits == nullptr) { - blits = &blit_to_screen_list.insert(vp->viewport_to_screen, Vector())->value; + blits = &blit_to_screen_list.insert(vp->viewport_to_screen, Vector())->value; } blits->push_back(blit); } @@ -968,7 +970,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) { GodotProfileZoneGrouped(_profile_zone, "rasterizer->blit_render_targets_to_screen"); if (p_swap_buffers && !blit_to_screen_list.is_empty()) { - for (const KeyValue> &E : blit_to_screen_list) { + for (const KeyValue> &E : blit_to_screen_list) { RSG::rasterizer->blit_render_targets_to_screen(E.key, E.value.ptr(), E.value.size()); } } diff --git a/servers/rendering/rendering_method.h b/servers/rendering/rendering_method.h index 3cf289ab0c..c81a90e277 100644 --- a/servers/rendering/rendering_method.h +++ b/servers/rendering/rendering_method.h @@ -35,11 +35,11 @@ #include "servers/rendering/storage/render_scene_buffers.h" #ifdef XR_DISABLED -// RendererSceneCull::render_camera is empty when 3D is disabled, but +// RendererSceneCull::render_camera is empty when XR is disabled, but // it and RenderingMethod::render_camera have a parameter for XRInterface. #define XRInterface RefCounted #else -#include "servers/xr/xr_interface.h" +class XRInterface; #endif // XR_DISABLED class RenderingMethod { diff --git a/servers/rendering/rendering_server_default.cpp b/servers/rendering/rendering_server_default.cpp index 515b8dfeff..683a74f6c3 100644 --- a/servers/rendering/rendering_server_default.cpp +++ b/servers/rendering/rendering_server_default.cpp @@ -37,6 +37,10 @@ #include "rendering_device.h" #include "rendering_server_globals.h" +#ifndef XR_DISABLED +#include "servers/xr/xr_server.h" +#endif + // careful, these may run in different threads than the rendering server int RenderingServerDefault::changes = 0; diff --git a/servers/rendering/rendering_server_types.h b/servers/rendering/rendering_server_types.h index 34272fbdb6..9c7f235766 100644 --- a/servers/rendering/rendering_server_types.h +++ b/servers/rendering/rendering_server_types.h @@ -30,7 +30,11 @@ #pragma once +#include "core/math/rect2.h" +#include "core/math/rect2i.h" +#include "core/math/vector2.h" #include "core/string/ustring.h" +#include "core/templates/rid.h" #include @@ -44,4 +48,28 @@ struct FrameProfileArea { double cpu_msec; }; +/* COMPOSITOR */ + +struct BlitToScreen { + RID render_target; + Rect2 src_rect = Rect2(0.0, 0.0, 1.0, 1.0); + Rect2i dst_rect; + + struct { + bool use_layer = false; + uint32_t layer = 0; + } multi_view; + + struct { + //lens distorted parameters for VR + bool apply = false; + Vector2 eye_center; + float k1 = 0.0; + float k2 = 0.0; + + float upscale = 1.0; + float aspect_ratio = 1.0; + } lens_distortion; +}; + } // namespace RenderingServerTypes diff --git a/servers/xr/xr_interface.cpp b/servers/xr/xr_interface.cpp index d841cb304b..88feb96979 100644 --- a/servers/xr/xr_interface.cpp +++ b/servers/xr/xr_interface.cpp @@ -30,6 +30,8 @@ #include "xr_interface.h" +#include "servers/xr/xr_server.h" + void XRInterface::_bind_methods() { ADD_SIGNAL(MethodInfo("play_area_changed", PropertyInfo(Variant::INT, "mode"))); diff --git a/servers/xr/xr_interface.h b/servers/xr/xr_interface.h index 5af4f947aa..7e138d6023 100644 --- a/servers/xr/xr_interface.h +++ b/servers/xr/xr_interface.h @@ -30,13 +30,8 @@ #pragma once -#include "core/math/projection.h" +#include "core/object/ref_counted.h" #include "core/os/thread_safe.h" -#include "servers/xr/xr_server.h" -#include "xr_vrs.h" - -// forward declaration -struct BlitToScreen; /** The XR interface is a template class on top of which we build interface to different AR, VR and tracking SDKs. @@ -48,6 +43,12 @@ struct BlitToScreen; Note that we may make this into a fully instantiable class for GDExtension support. */ +struct Projection; + +namespace RenderingServerTypes { +struct BlitToScreen; +} + class XRInterface : public RefCounted { GDCLASS(XRInterface, RefCounted); @@ -148,7 +149,7 @@ public: virtual Rect2i get_render_region(); virtual void pre_render() {} virtual bool pre_draw_viewport(RID p_render_target) { return true; } /* inform XR interface we are about to start our viewport draw process */ - virtual Vector post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) = 0; /* inform XR interface we finished our viewport draw process */ + virtual Vector post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) = 0; /* inform XR interface we finished our viewport draw process */ virtual void end_frame() {} /** passthrough **/ diff --git a/servers/xr/xr_interface_extension.cpp b/servers/xr/xr_interface_extension.cpp index 782c358f61..7a92e70536 100644 --- a/servers/xr/xr_interface_extension.cpp +++ b/servers/xr/xr_interface_extension.cpp @@ -29,6 +29,7 @@ /**************************************************************************/ #include "xr_interface_extension.h" + #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" void XRInterfaceExtension::_bind_methods() { @@ -270,7 +271,7 @@ RID XRInterfaceExtension::get_velocity_texture() { } void XRInterfaceExtension::add_blit(RID p_render_target, Rect2 p_src_rect, Rect2i p_dst_rect, bool p_use_layer, uint32_t p_layer, bool p_apply_lens_distortion, Vector2 p_eye_center, double p_k1, double p_k2, double p_upscale, double p_aspect_ratio) { - BlitToScreen blit; + RenderingServerTypes::BlitToScreen blit; ERR_FAIL_COND_MSG(!can_add_blits, "add_blit can only be called from an XR plugin from within _post_draw_viewport!"); @@ -305,7 +306,7 @@ bool XRInterfaceExtension::pre_draw_viewport(RID p_render_target) { return do_render; // If not implemented we're returning true. } -Vector XRInterfaceExtension::post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) { +Vector XRInterfaceExtension::post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) { // This is just so our XR plugin can add blits... blits.clear(); can_add_blits = true; diff --git a/servers/xr/xr_interface_extension.h b/servers/xr/xr_interface_extension.h index fd427ff68f..aac9328296 100644 --- a/servers/xr/xr_interface_extension.h +++ b/servers/xr/xr_interface_extension.h @@ -30,6 +30,7 @@ #pragma once +#include "core/object/gdvirtual.gen.h" #include "servers/xr/xr_interface.h" class XRInterfaceExtension : public XRInterface { @@ -38,7 +39,7 @@ class XRInterfaceExtension : public XRInterface { public: private: bool can_add_blits = false; - Vector blits; + Vector blits; protected: _THREAD_SAFE_CLASS_ @@ -124,7 +125,7 @@ public: virtual void process() override; virtual void pre_render() override; virtual bool pre_draw_viewport(RID p_render_target) override; - virtual Vector post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) override; + virtual Vector post_draw_viewport(RID p_render_target, const Rect2 &p_screen_rect) override; virtual void end_frame() override; GDVIRTUAL0(_process); diff --git a/servers/xr/xr_server.cpp b/servers/xr/xr_server.cpp index a42ee886f6..00210fe85d 100644 --- a/servers/xr/xr_server.cpp +++ b/servers/xr/xr_server.cpp @@ -32,6 +32,7 @@ #include "xr_server.compat.inc" #include "core/config/project_settings.h" +#include "servers/rendering/rendering_server.h" #include "servers/xr/xr_interface.h" #include "servers/xr/xr_positional_tracker.h" @@ -234,6 +235,30 @@ void XRServer::_set_render_reference_frame(const Transform3D &p_reference_frame) xr_server->render_state.reference_frame = p_reference_frame; } +void XRServer::set_render_world_scale(double p_world_scale) { + // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... + RenderingServer *rendering_server = RenderingServer::get_singleton(); + ERR_FAIL_NULL(rendering_server); + + rendering_server->call_on_render_thread(callable_mp_static(&XRServer::_set_render_world_scale).bind(p_world_scale)); +} + +void XRServer::set_render_world_origin(const Transform3D &p_world_origin) { + // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... + RenderingServer *rendering_server = RenderingServer::get_singleton(); + ERR_FAIL_NULL(rendering_server); + + rendering_server->call_on_render_thread(callable_mp_static(&XRServer::_set_render_world_origin).bind(p_world_origin)); +} + +void XRServer::set_render_reference_frame(const Transform3D &p_reference_frame) { + // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... + RenderingServer *rendering_server = RenderingServer::get_singleton(); + ERR_FAIL_NULL(rendering_server); + + rendering_server->call_on_render_thread(callable_mp_static(&XRServer::_set_render_reference_frame).bind(p_reference_frame)); +} + Transform3D XRServer::get_hmd_transform() { Transform3D hmd_transform; if (primary_interface.is_valid()) { diff --git a/servers/xr/xr_server.h b/servers/xr/xr_server.h index e76c5672e8..a5b50bc107 100644 --- a/servers/xr/xr_server.h +++ b/servers/xr/xr_server.h @@ -33,7 +33,6 @@ #include "core/object/ref_counted.h" #include "core/os/thread_safe.h" #include "core/variant/variant.h" -#include "servers/rendering/rendering_server.h" class XRInterface; class XRTracker; @@ -107,29 +106,9 @@ private: static void _set_render_world_origin(const Transform3D &p_world_origin); static void _set_render_reference_frame(const Transform3D &p_reference_frame); - _FORCE_INLINE_ void set_render_world_scale(double p_world_scale) { - // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... - RenderingServer *rendering_server = RenderingServer::get_singleton(); - ERR_FAIL_NULL(rendering_server); - - rendering_server->call_on_render_thread(callable_mp_static(&XRServer::_set_render_world_scale).bind(p_world_scale)); - } - - _FORCE_INLINE_ void set_render_world_origin(const Transform3D &p_world_origin) { - // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... - RenderingServer *rendering_server = RenderingServer::get_singleton(); - ERR_FAIL_NULL(rendering_server); - - rendering_server->call_on_render_thread(callable_mp_static(&XRServer::_set_render_world_origin).bind(p_world_origin)); - } - - _FORCE_INLINE_ void set_render_reference_frame(const Transform3D &p_reference_frame) { - // If we're rendering on a separate thread, we may still be processing the last frame, don't communicate this till we're ready... - RenderingServer *rendering_server = RenderingServer::get_singleton(); - ERR_FAIL_NULL(rendering_server); - - rendering_server->call_on_render_thread(callable_mp_static(&XRServer::_set_render_reference_frame).bind(p_reference_frame)); - } + void set_render_world_scale(double p_world_scale); + void set_render_world_origin(const Transform3D &p_world_origin); + void set_render_reference_frame(const Transform3D &p_reference_frame); protected: static XRServer *singleton; From 25bfae8ff982c4e8a0089b6045d4ae8142cb3f4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Thu, 19 Feb 2026 12:06:45 +0100 Subject: [PATCH 05/13] Remove `RenderingServer::map_scaling_option_to_stretch_mode` and cleanup boot splash code Removes RS as a dependency in `project_settings.cpp` (which was a bug, `core` shouldn't include `servers`). This doesn't have a big impact on incremental rebuild time by itself. Also move helper `get_splash_stretched_screen_rect` to RenderingServerTypes. --- core/config/project_settings.cpp | 4 +- drivers/gles3/rasterizer_gles3.cpp | 3 +- servers/rendering/dummy/rasterizer_dummy.h | 1 - servers/rendering/renderer_compositor.cpp | 8 +-- servers/rendering/renderer_compositor.h | 1 - .../renderer_rd/renderer_compositor_rd.cpp | 4 +- servers/rendering/rendering_server.cpp | 59 +----------------- servers/rendering/rendering_server.h | 9 ++- servers/rendering/rendering_server_enums.h | 6 +- servers/rendering/rendering_server_types.h | 61 +++++++++++++++++++ 10 files changed, 78 insertions(+), 78 deletions(-) diff --git a/core/config/project_settings.cpp b/core/config/project_settings.cpp index 3ceb13dab0..49eb3e51e5 100644 --- a/core/config/project_settings.cpp +++ b/core/config/project_settings.cpp @@ -44,7 +44,6 @@ #include "core/variant/typed_array.h" #include "core/variant/variant_parser.h" #include "core/version.h" -#include "servers/rendering/rendering_server.h" #ifdef TOOLS_ENABLED #include "modules/modules_enabled.gen.h" // For mono. @@ -636,7 +635,8 @@ void ProjectSettings::_convert_to_last_version(int p_from_version) { } else if (p_from_version <= 6) { // Check if we still have legacy boot splash (removed in 4.6), map it to new project setting, then remove legacy setting. if (has_setting("application/boot_splash/fullsize")) { - set_setting("application/boot_splash/stretch_mode", RenderingServer::map_scaling_option_to_stretch_mode(get_setting("application/boot_splash/fullsize"))); + // See RenderingServerEnums::SplashStretchMode. + set_setting("application/boot_splash/stretch_mode", get_setting("application/boot_splash/fullsize") ? 1 : 0); set_setting("application/boot_splash/fullsize", Variant()); } } diff --git a/drivers/gles3/rasterizer_gles3.cpp b/drivers/gles3/rasterizer_gles3.cpp index becf0cc031..7d762942bd 100644 --- a/drivers/gles3/rasterizer_gles3.cpp +++ b/drivers/gles3/rasterizer_gles3.cpp @@ -37,6 +37,7 @@ #include "core/io/image.h" #include "core/os/os.h" #include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_types.h" #define _EXT_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 #define _EXT_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 @@ -465,7 +466,7 @@ void RasterizerGLES3::set_boot_image_with_stretch(const Ref &p_image, con RID texture = texture_storage->texture_allocate(); texture_storage->texture_2d_initialize(texture, p_image); - Rect2 screenrect = RenderingServer::get_splash_stretched_screen_rect(p_image->get_size(), win_size, p_stretch_mode); + Rect2 screenrect = RenderingServerTypes::get_splash_stretched_screen_rect(p_image->get_size(), win_size, p_stretch_mode); #ifdef WINDOWS_ENABLED if (!screen_flipped_y) diff --git a/servers/rendering/dummy/rasterizer_dummy.h b/servers/rendering/dummy/rasterizer_dummy.h index bdda5c6d64..cbb98b7ccb 100644 --- a/servers/rendering/dummy/rasterizer_dummy.h +++ b/servers/rendering/dummy/rasterizer_dummy.h @@ -77,7 +77,6 @@ public: RendererSceneRender *get_scene() override { return &scene; } void set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RSE::SplashStretchMode p_stretch_mode, bool p_use_filter = true) override {} - void set_boot_image(const Ref &p_image, const Color &p_color, bool p_scale, bool p_use_filter = true) override {} void initialize() override {} void begin_frame(double frame_step) override { diff --git a/servers/rendering/renderer_compositor.cpp b/servers/rendering/renderer_compositor.cpp index b4c9645a74..e9cef62b3a 100644 --- a/servers/rendering/renderer_compositor.cpp +++ b/servers/rendering/renderer_compositor.cpp @@ -30,9 +30,8 @@ #include "renderer_compositor.h" -#include "core/config/project_settings.h" - #ifndef XR_DISABLED +#include "core/config/project_settings.h" #include "servers/xr/xr_server.h" #endif // XR_DISABLED @@ -45,11 +44,6 @@ RendererCompositor *RendererCompositor::create() { return _create_func(); } -void RendererCompositor::set_boot_image(const Ref &p_image, const Color &p_color, bool p_scale, bool p_use_filter) { - RSE::SplashStretchMode stretch_mode = RenderingServer::map_scaling_option_to_stretch_mode(p_scale); - set_boot_image_with_stretch(p_image, p_color, stretch_mode, p_use_filter); -} - bool RendererCompositor::is_xr_enabled() const { return xr_enabled; } diff --git a/servers/rendering/renderer_compositor.h b/servers/rendering/renderer_compositor.h index 074b5dfb85..78091ff309 100644 --- a/servers/rendering/renderer_compositor.h +++ b/servers/rendering/renderer_compositor.h @@ -68,7 +68,6 @@ public: virtual RendererUtilities *get_utilities() = 0; virtual void set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RSE::SplashStretchMode p_stretch_mode, bool p_use_filter = true) = 0; - virtual void set_boot_image(const Ref &p_image, const Color &p_color, bool p_scale, bool p_use_filter = true); virtual void initialize() = 0; virtual void begin_frame(double frame_step) = 0; diff --git a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp index 2aeb1b5766..eb08f59b60 100644 --- a/servers/rendering/renderer_rd/renderer_compositor_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_compositor_rd.cpp @@ -32,9 +32,9 @@ #include "core/config/project_settings.h" #include "core/io/dir_access.h" - #include "servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h" #include "servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h" +#include "servers/rendering/rendering_server_types.h" void RendererCompositorRD::blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const RenderingServerTypes::BlitToScreen *p_render_targets, int p_amount) { Error err = RD::get_singleton()->screen_prepare_for_drawing(p_screen); @@ -245,7 +245,7 @@ void RendererCompositorRD::set_boot_image_with_stretch(const Ref &p_image Size2 window_size = DisplayServer::get_singleton()->window_get_size(); - Rect2 screenrect = RenderingServer::get_splash_stretched_screen_rect(p_image->get_size(), window_size, p_stretch_mode); + Rect2 screenrect = RenderingServerTypes::get_splash_stretched_screen_rect(p_image->get_size(), window_size, p_stretch_mode); screenrect.position /= window_size; screenrect.size /= window_size; diff --git a/servers/rendering/rendering_server.cpp b/servers/rendering/rendering_server.cpp index a46b8f2371..3df3a56fe2 100644 --- a/servers/rendering/rendering_server.cpp +++ b/servers/rendering/rendering_server.cpp @@ -1888,63 +1888,6 @@ int RenderingServer::global_shader_uniform_type_get_shader_datatype(RSE::GlobalS } } -Rect2 RenderingServer::get_splash_stretched_screen_rect(const Size2 &p_image_size, const Size2 &p_window_size, RSE::SplashStretchMode p_stretch_mode) { - Size2 imgsize = p_image_size; - Rect2 screenrect; - switch (p_stretch_mode) { - case RSE::SPLASH_STRETCH_MODE_DISABLED: { - screenrect.size = imgsize; - screenrect.position = ((p_window_size - screenrect.size) / 2.0).floor(); - } break; - case RSE::SPLASH_STRETCH_MODE_KEEP: { - if (p_window_size.width > p_window_size.height) { - // Scale horizontally. - screenrect.size.y = p_window_size.height; - screenrect.size.x = imgsize.width * p_window_size.height / imgsize.height; - screenrect.position.x = (p_window_size.width - screenrect.size.x) / 2; - } else { - // Scale vertically. - screenrect.size.x = p_window_size.width; - screenrect.size.y = imgsize.height * p_window_size.width / imgsize.width; - screenrect.position.y = (p_window_size.height - screenrect.size.y) / 2; - } - } break; - case RSE::SPLASH_STRETCH_MODE_KEEP_WIDTH: { - // Scale vertically. - screenrect.size.x = p_window_size.width; - screenrect.size.y = imgsize.height * p_window_size.width / imgsize.width; - screenrect.position.y = (p_window_size.height - screenrect.size.y) / 2; - } break; - case RSE::SPLASH_STRETCH_MODE_KEEP_HEIGHT: { - // Scale horizontally. - screenrect.size.y = p_window_size.height; - screenrect.size.x = imgsize.width * p_window_size.height / imgsize.height; - screenrect.position.x = (p_window_size.width - screenrect.size.x) / 2; - } break; - case RSE::SPLASH_STRETCH_MODE_COVER: { - double window_aspect = (double)p_window_size.width / p_window_size.height; - double img_aspect = imgsize.width / imgsize.height; - - if (window_aspect > img_aspect) { - // Scale vertically. - screenrect.size.x = p_window_size.width; - screenrect.size.y = imgsize.height * p_window_size.width / imgsize.width; - screenrect.position.y = (p_window_size.height - screenrect.size.y) / 2; - } else { - // Scale horizontally. - screenrect.size.y = p_window_size.height; - screenrect.size.x = imgsize.width * p_window_size.height / imgsize.height; - screenrect.position.x = (p_window_size.width - screenrect.size.x) / 2; - } - } break; - case RSE::SPLASH_STRETCH_MODE_IGNORE: { - screenrect.size.x = p_window_size.width; - screenrect.size.y = p_window_size.height; - } break; - } - return screenrect; -} - RenderingDevice *RenderingServer::get_rendering_device() const { // Return the rendering device we're using globally. return RenderingDevice::get_singleton(); @@ -3662,7 +3605,7 @@ void RenderingServer::mesh_add_surface_from_planes(RID p_mesh, const Vector &p_image, const Color &p_color, bool p_scale, bool p_use_filter) { - RSE::SplashStretchMode stretch_mode = map_scaling_option_to_stretch_mode(p_scale); + RSE::SplashStretchMode stretch_mode = p_scale ? RSE::SPLASH_STRETCH_MODE_KEEP : RSE::SPLASH_STRETCH_MODE_DISABLED; set_boot_image_with_stretch(p_image, p_color, stretch_mode, p_use_filter); } #endif diff --git a/servers/rendering/rendering_server.h b/servers/rendering/rendering_server.h index 17cb68e9da..23de7773fc 100644 --- a/servers/rendering/rendering_server.h +++ b/servers/rendering/rendering_server.h @@ -1068,19 +1068,18 @@ public: virtual void mesh_add_surface_from_mesh_data(RID p_mesh, const Geometry3D::MeshData &p_mesh_data); virtual void mesh_add_surface_from_planes(RID p_mesh, const Vector &p_planes); - /* MISC */ + /* BACKGROUND */ virtual void set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RSE::SplashStretchMode p_stretch_mode, bool p_use_filter = true) = 0; - static Rect2 get_splash_stretched_screen_rect(const Size2 &p_image_size, const Size2 &p_window_size, RSE::SplashStretchMode p_stretch_mode); // Helper for splash screen #ifndef DISABLE_DEPRECATED void set_boot_image(const Ref &p_image, const Color &p_color, bool p_scale, bool p_use_filter = true); // Superseded, but left to preserve compat. #endif - _ALWAYS_INLINE_ static RSE::SplashStretchMode map_scaling_option_to_stretch_mode(bool p_scale) { - return p_scale ? RSE::SplashStretchMode::SPLASH_STRETCH_MODE_KEEP : RSE::SplashStretchMode::SPLASH_STRETCH_MODE_DISABLED; - } + virtual Color get_default_clear_color() = 0; virtual void set_default_clear_color(const Color &p_color) = 0; + /* MISC */ + #ifndef DISABLE_DEPRECATED // Never actually used, should be removed when we can break compatibility. virtual bool has_feature(RSE::Features p_feature) const = 0; diff --git a/servers/rendering/rendering_server_enums.h b/servers/rendering/rendering_server_enums.h index 1a6a379142..6d565ee586 100644 --- a/servers/rendering/rendering_server_enums.h +++ b/servers/rendering/rendering_server_enums.h @@ -887,8 +887,10 @@ enum RenderingInfo { RENDERING_INFO_MAX, }; -/* MISC */ +/* BACKGROUND */ +// If this is modified, review the conversion code in `project_settings.cpp` +// which is hardcoded to avoid coupling `core` with `servers`. enum SplashStretchMode { SPLASH_STRETCH_MODE_DISABLED, SPLASH_STRETCH_MODE_KEEP, @@ -898,6 +900,8 @@ enum SplashStretchMode { SPLASH_STRETCH_MODE_IGNORE, }; +/* MISC */ + #ifndef DISABLE_DEPRECATED // Never actually used, should be removed when we can break compatibility. enum Features { diff --git a/servers/rendering/rendering_server_types.h b/servers/rendering/rendering_server_types.h index 9c7f235766..60c124cdec 100644 --- a/servers/rendering/rendering_server_types.h +++ b/servers/rendering/rendering_server_types.h @@ -35,6 +35,7 @@ #include "core/math/vector2.h" #include "core/string/ustring.h" #include "core/templates/rid.h" +#include "servers/rendering/rendering_server_enums.h" #include @@ -72,4 +73,64 @@ struct BlitToScreen { } lens_distortion; }; +/* BACKGROUND */ + +// Helper for RSE::SplashStretchMode, put here for convenience. +inline Rect2 get_splash_stretched_screen_rect(const Size2 &p_image_size, const Size2 &p_window_size, RSE::SplashStretchMode p_stretch_mode) { + Size2 imgsize = p_image_size; + Rect2 screenrect; + switch (p_stretch_mode) { + case RSE::SPLASH_STRETCH_MODE_DISABLED: { + screenrect.size = imgsize; + screenrect.position = ((p_window_size - screenrect.size) / 2.0).floor(); + } break; + case RSE::SPLASH_STRETCH_MODE_KEEP: { + if (p_window_size.width > p_window_size.height) { + // Scale horizontally. + screenrect.size.y = p_window_size.height; + screenrect.size.x = imgsize.width * p_window_size.height / imgsize.height; + screenrect.position.x = (p_window_size.width - screenrect.size.x) / 2; + } else { + // Scale vertically. + screenrect.size.x = p_window_size.width; + screenrect.size.y = imgsize.height * p_window_size.width / imgsize.width; + screenrect.position.y = (p_window_size.height - screenrect.size.y) / 2; + } + } break; + case RSE::SPLASH_STRETCH_MODE_KEEP_WIDTH: { + // Scale vertically. + screenrect.size.x = p_window_size.width; + screenrect.size.y = imgsize.height * p_window_size.width / imgsize.width; + screenrect.position.y = (p_window_size.height - screenrect.size.y) / 2; + } break; + case RSE::SPLASH_STRETCH_MODE_KEEP_HEIGHT: { + // Scale horizontally. + screenrect.size.y = p_window_size.height; + screenrect.size.x = imgsize.width * p_window_size.height / imgsize.height; + screenrect.position.x = (p_window_size.width - screenrect.size.x) / 2; + } break; + case RSE::SPLASH_STRETCH_MODE_COVER: { + double window_aspect = (double)p_window_size.width / p_window_size.height; + double img_aspect = imgsize.width / imgsize.height; + + if (window_aspect > img_aspect) { + // Scale vertically. + screenrect.size.x = p_window_size.width; + screenrect.size.y = imgsize.height * p_window_size.width / imgsize.width; + screenrect.position.y = (p_window_size.height - screenrect.size.y) / 2; + } else { + // Scale horizontally. + screenrect.size.y = p_window_size.height; + screenrect.size.x = imgsize.width * p_window_size.height / imgsize.height; + screenrect.position.x = (p_window_size.width - screenrect.size.x) / 2; + } + } break; + case RSE::SPLASH_STRETCH_MODE_IGNORE: { + screenrect.size.x = p_window_size.width; + screenrect.size.y = p_window_size.height; + } break; + } + return screenrect; +} + } // namespace RenderingServerTypes From f0a448540e68209257b2743434c71c4c4364e9aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Thu, 19 Feb 2026 10:50:50 +0100 Subject: [PATCH 06/13] Misc dependency improvements for files depending on `rendering_server.h` On my machine, this reduces incremental compilation time after an edit of `rendering_server.h` by 3s. --- drivers/egl/egl_manager.cpp | 3 + drivers/unix/os_unix.cpp | 1 - editor/editor_node.cpp | 63 +++++++++---------- editor/gui/progress_dialog.cpp | 2 - editor/scene/material_editor_plugin.cpp | 2 +- modules/betsy/image_compress_betsy.cpp | 13 +++- modules/betsy/image_compress_betsy.h | 13 +--- modules/csg/csg_shape.cpp | 8 ++- modules/ktx/texture_loader_ktx.cpp | 1 + modules/ktx/texture_loader_ktx.h | 1 - modules/lightmapper_rd/lightmapper_rd.cpp | 1 + .../platform/openxr_vulkan_extension.cpp | 2 +- modules/raycast/raycast_occlusion_cull.cpp | 2 +- modules/raycast/raycast_occlusion_cull.h | 4 +- modules/webxr/webxr_interface_js.h | 4 +- scene/3d/decal.cpp | 1 + scene/3d/physics/collision_shape_3d.cpp | 3 - servers/camera/camera_server.cpp | 1 - servers/camera/camera_server.h | 3 +- servers/rendering/dummy/rasterizer_dummy.h | 13 ++-- .../renderer_rd/effects/bokeh_dof.cpp | 4 +- .../renderer_rd/effects/copy_effects.h | 3 - .../renderer_rd/effects/debug_effects.cpp | 2 + .../effects/motion_vectors_store.h | 3 - servers/rendering/renderer_rd/effects/smaa.h | 3 - .../renderer_rd/effects/ss_effects.h | 1 - .../renderer_rd/effects/tone_mapper.h | 2 - .../renderer_rd/storage_rd/light_storage.cpp | 4 +- .../storage_rd/render_scene_data_rd.cpp | 2 + .../storage_rd/texture_storage.cpp | 1 + .../renderer_rd/storage_rd/texture_storage.h | 2 +- .../renderer_scene_occlusion_cull.cpp | 2 + .../rendering/renderer_scene_occlusion_cull.h | 3 +- servers/xr/xr_vrs.cpp | 2 +- servers/xr/xr_vrs.h | 8 +-- 35 files changed, 91 insertions(+), 92 deletions(-) diff --git a/drivers/egl/egl_manager.cpp b/drivers/egl/egl_manager.cpp index f240c7c867..122bdad662 100644 --- a/drivers/egl/egl_manager.cpp +++ b/drivers/egl/egl_manager.cpp @@ -33,7 +33,10 @@ #include "core/crypto/crypto_core.h" #include "core/io/dir_access.h" #include "core/io/file_access.h" + +#ifdef WINDOWS_ENABLED #include "drivers/gles3/rasterizer_gles3.h" +#endif #ifdef EGL_ENABLED diff --git a/drivers/unix/os_unix.cpp b/drivers/unix/os_unix.cpp index 1e75b60b44..6bcda17854 100644 --- a/drivers/unix/os_unix.cpp +++ b/drivers/unix/os_unix.cpp @@ -40,7 +40,6 @@ #include "drivers/unix/file_access_unix_pipe.h" #include "drivers/unix/net_socket_unix.h" #include "drivers/unix/thread_posix.h" -#include "servers/rendering/rendering_server.h" #if defined(__APPLE__) #include diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 92d2173bd0..f85c983de4 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -45,36 +45,6 @@ #include "core/string/print_string.h" #include "core/string/translation_server.h" #include "core/version.h" -#include "editor/editor_string_names.h" -#include "editor/inspector/editor_context_menu_plugin.h" -#include "editor/plugins/editor_plugin_list.h" -#include "main/main.h" -#include "scene/2d/node_2d.h" -#include "scene/3d/bone_attachment_3d.h" -#include "scene/animation/animation_tree.h" -#include "scene/gui/color_picker.h" -#include "scene/gui/dialogs.h" -#include "scene/gui/file_dialog.h" -#include "scene/gui/menu_bar.h" -#include "scene/gui/menu_button.h" -#include "scene/gui/panel.h" -#include "scene/gui/popup.h" -#include "scene/gui/rich_text_label.h" -#include "scene/gui/split_container.h" -#include "scene/gui/tab_container.h" -#include "scene/main/timer.h" -#include "scene/main/window.h" -#include "scene/property_utils.h" -#include "scene/resources/dpi_texture.h" -#include "scene/resources/image_texture.h" -#include "scene/resources/packed_scene.h" -#include "scene/resources/portable_compressed_texture.h" -#include "scene/theme/theme_db.h" -#include "servers/display/display_server.h" -#include "servers/navigation_2d/navigation_server_2d.h" -#include "servers/navigation_3d/navigation_server_3d.h" -#include "servers/rendering/rendering_server.h" - #include "editor/animation/animation_player_editor_plugin.h" #include "editor/asset_library/asset_library_editor_plugin.h" #include "editor/audio/audio_stream_preview.h" @@ -95,6 +65,7 @@ #include "editor/editor_interface.h" #include "editor/editor_log.h" #include "editor/editor_main_screen.h" +#include "editor/editor_string_names.h" #include "editor/editor_undo_redo_manager.h" #include "editor/export/dedicated_server_export_plugin.h" #include "editor/export/editor_export.h" @@ -133,6 +104,7 @@ #include "editor/import/resource_importer_texture.h" #include "editor/import/resource_importer_texture_atlas.h" #include "editor/import/resource_importer_wav.h" +#include "editor/inspector/editor_context_menu_plugin.h" #include "editor/inspector/editor_inspector.h" #include "editor/inspector/editor_preview_plugins.h" #include "editor/inspector/editor_properties.h" @@ -141,6 +113,7 @@ #include "editor/inspector/editor_resource_preview.h" #include "editor/inspector/multi_node_edit.h" #include "editor/plugins/editor_plugin.h" +#include "editor/plugins/editor_plugin_list.h" #include "editor/plugins/editor_resource_conversion_plugin.h" #include "editor/plugins/plugin_config_dialog.h" #include "editor/project_upgrade/project_upgrade_tool.h" @@ -173,6 +146,32 @@ #include "editor/translations/editor_translation_parser.h" #include "editor/translations/packed_scene_translation_parser_plugin.h" #include "editor/version_control/version_control_editor_plugin.h" +#include "main/main.h" +#include "scene/2d/node_2d.h" +#include "scene/3d/bone_attachment_3d.h" +#include "scene/animation/animation_tree.h" +#include "scene/gui/color_picker.h" +#include "scene/gui/dialogs.h" +#include "scene/gui/file_dialog.h" +#include "scene/gui/menu_bar.h" +#include "scene/gui/menu_button.h" +#include "scene/gui/panel.h" +#include "scene/gui/popup.h" +#include "scene/gui/rich_text_label.h" +#include "scene/gui/split_container.h" +#include "scene/gui/tab_container.h" +#include "scene/main/timer.h" +#include "scene/main/window.h" +#include "scene/property_utils.h" +#include "scene/resources/dpi_texture.h" +#include "scene/resources/image_texture.h" +#include "scene/resources/packed_scene.h" +#include "scene/resources/portable_compressed_texture.h" +#include "scene/theme/theme_db.h" +#include "servers/display/display_server.h" +#include "servers/navigation_2d/navigation_server_2d.h" +#include "servers/navigation_3d/navigation_server_3d.h" +#include "servers/rendering/rendering_server.h" #ifdef VULKAN_ENABLED #include "editor/shader/shader_baker/shader_baker_export_plugin_platform_vulkan.h" @@ -186,8 +185,6 @@ #include "editor/shader/shader_baker/shader_baker_export_plugin_platform_metal.h" #endif -#include "modules/modules_enabled.gen.h" // For gdscript, mono. - #ifndef PHYSICS_2D_DISABLED #include "servers/physics_2d/physics_server_2d.h" #endif // PHYSICS_2D_DISABLED @@ -200,6 +197,8 @@ #include "editor/gui/touch_actions_panel.h" #endif // ANDROID_ENABLED +#include "modules/modules_enabled.gen.h" // For gdscript, mono. + #include EditorNode *EditorNode::singleton = nullptr; diff --git a/editor/gui/progress_dialog.cpp b/editor/gui/progress_dialog.cpp index 490e0c1f4e..9c9d93837a 100644 --- a/editor/gui/progress_dialog.cpp +++ b/editor/gui/progress_dialog.cpp @@ -31,14 +31,12 @@ #include "progress_dialog.h" #include "core/os/os.h" -#include "editor/editor_interface.h" #include "editor/editor_node.h" #include "editor/themes/editor_scale.h" #include "main/main.h" #include "scene/gui/panel_container.h" #include "scene/main/window.h" #include "servers/display/display_server.h" -#include "servers/rendering/rendering_server.h" void BackgroundProgress::_add_task(const String &p_task, const String &p_label, int p_steps) { _THREAD_SAFE_METHOD_ diff --git a/editor/scene/material_editor_plugin.cpp b/editor/scene/material_editor_plugin.cpp index 026b02f5ac..cc9ccb3127 100644 --- a/editor/scene/material_editor_plugin.cpp +++ b/editor/scene/material_editor_plugin.cpp @@ -46,12 +46,12 @@ #include "scene/resources/canvas_item_material.h" #include "scene/resources/particle_process_material.h" #include "scene/resources/sky.h" +#include "servers/rendering/rendering_server.h" // 3D. #include "scene/3d/camera_3d.h" #include "scene/3d/light_3d.h" #include "scene/3d/mesh_instance_3d.h" -#include "servers/rendering/rendering_server.h" Ref MaterialEditor::make_shader_material(const Ref &p_from, bool p_copy_params) { ERR_FAIL_COND_V(p_from.is_null(), Ref()); diff --git a/modules/betsy/image_compress_betsy.cpp b/modules/betsy/image_compress_betsy.cpp index 71b940d242..39f9fc3fbb 100644 --- a/modules/betsy/image_compress_betsy.cpp +++ b/modules/betsy/image_compress_betsy.cpp @@ -30,8 +30,6 @@ #include "image_compress_betsy.h" -#include "core/config/project_settings.h" - #include "betsy_bc1.h" #include "alpha_stitch.glsl.gen.h" @@ -39,9 +37,20 @@ #include "bc4.glsl.gen.h" #include "bc6h.glsl.gen.h" #include "rgb_to_rgba.glsl.gen.h" + +#include "core/config/project_settings.h" #include "servers/display/display_server.h" +#include "servers/rendering/rendering_context_driver.h" +#include "servers/rendering/rendering_device.h" #include "servers/rendering/rendering_server.h" +#if defined(VULKAN_ENABLED) +#include "drivers/vulkan/rendering_context_driver_vulkan.h" +#endif +#if defined(METAL_ENABLED) +#include "drivers/metal/rendering_context_driver_metal.h" +#endif + static Mutex betsy_mutex; static BetsyCompressor *betsy = nullptr; diff --git a/modules/betsy/image_compress_betsy.h b/modules/betsy/image_compress_betsy.h index 15b5889497..393910d02f 100644 --- a/modules/betsy/image_compress_betsy.h +++ b/modules/betsy/image_compress_betsy.h @@ -32,18 +32,11 @@ #include "core/io/image.h" #include "core/object/worker_thread_pool.h" -#include "core/os/thread.h" #include "core/templates/command_queue_mt.h" +#include "servers/rendering/rendering_device_binds.h" // RDShaderFile -#include "servers/rendering/rendering_device_binds.h" -#include "servers/rendering/rendering_server_default.h" - -#if defined(VULKAN_ENABLED) -#include "drivers/vulkan/rendering_context_driver_vulkan.h" -#endif -#if defined(METAL_ENABLED) -#include "drivers/metal/rendering_context_driver_metal.h" -#endif +class RenderingDevice; +class RenderingContextDriver; enum BetsyFormat { BETSY_FORMAT_BC1, diff --git a/modules/csg/csg_shape.cpp b/modules/csg/csg_shape.cpp index 91e092e4da..a70a3a5172 100644 --- a/modules/csg/csg_shape.cpp +++ b/modules/csg/csg_shape.cpp @@ -30,13 +30,15 @@ #include "csg_shape.h" -#ifdef DEV_ENABLED -#include "core/io/json.h" -#endif // DEV_ENABLED #include "core/math/geometry_2d.h" #include "scene/resources/3d/navigation_mesh_source_geometry_data_3d.h" #include "scene/resources/navigation_mesh.h" #include "servers/rendering/rendering_server.h" + +#ifdef DEV_ENABLED +#include "core/io/json.h" +#endif // DEV_ENABLED + #ifndef NAVIGATION_3D_DISABLED #include "servers/navigation_3d/navigation_server_3d.h" #endif // NAVIGATION_3D_DISABLED diff --git a/modules/ktx/texture_loader_ktx.cpp b/modules/ktx/texture_loader_ktx.cpp index f71444f778..cd5b3d979f 100644 --- a/modules/ktx/texture_loader_ktx.cpp +++ b/modules/ktx/texture_loader_ktx.cpp @@ -33,6 +33,7 @@ #include "core/io/file_access.h" #include "core/io/file_access_memory.h" #include "scene/resources/image_texture.h" +#include "scene/resources/texture.h" #include "servers/rendering/rendering_server.h" #include diff --git a/modules/ktx/texture_loader_ktx.h b/modules/ktx/texture_loader_ktx.h index 8da180630e..3eac093b7a 100644 --- a/modules/ktx/texture_loader_ktx.h +++ b/modules/ktx/texture_loader_ktx.h @@ -31,7 +31,6 @@ #pragma once #include "core/io/resource_loader.h" -#include "scene/resources/texture.h" class ResourceFormatKTX : public ResourceFormatLoader { GDSOFTCLASS(ResourceFormatKTX, ResourceFormatLoader); diff --git a/modules/lightmapper_rd/lightmapper_rd.cpp b/modules/lightmapper_rd/lightmapper_rd.cpp index d82e5f9a1d..c28420b86f 100644 --- a/modules/lightmapper_rd/lightmapper_rd.cpp +++ b/modules/lightmapper_rd/lightmapper_rd.cpp @@ -41,6 +41,7 @@ #include "core/math/geometry_3d.h" #include "editor/file_system/editor_paths.h" #include "editor/settings/editor_settings.h" +#include "servers/rendering/rendering_device.h" #include "servers/rendering/rendering_device_binds.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_globals.h" diff --git a/modules/openxr/extensions/platform/openxr_vulkan_extension.cpp b/modules/openxr/extensions/platform/openxr_vulkan_extension.cpp index 1a295ea973..0b29435dd1 100644 --- a/modules/openxr/extensions/platform/openxr_vulkan_extension.cpp +++ b/modules/openxr/extensions/platform/openxr_vulkan_extension.cpp @@ -36,8 +36,8 @@ #include "core/string/print_string.h" #include "servers/rendering/renderer_rd/effects/copy_effects.h" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" +#include "servers/rendering/rendering_device.h" #include "servers/rendering/rendering_server.h" -#include "servers/rendering/rendering_server_globals.h" HashMap OpenXRVulkanExtension::get_requested_extensions(XrVersion p_version) { HashMap request_extensions; diff --git a/modules/raycast/raycast_occlusion_cull.cpp b/modules/raycast/raycast_occlusion_cull.cpp index a3b2465a63..8001201be2 100644 --- a/modules/raycast/raycast_occlusion_cull.cpp +++ b/modules/raycast/raycast_occlusion_cull.cpp @@ -31,8 +31,8 @@ #include "raycast_occlusion_cull.h" #include "core/config/project_settings.h" +#include "core/math/projection.h" #include "core/object/worker_thread_pool.h" -#include "core/templates/local_vector.h" #ifdef __SSE2__ #include diff --git a/modules/raycast/raycast_occlusion_cull.h b/modules/raycast/raycast_occlusion_cull.h index a1c8803d32..4dae3e9299 100644 --- a/modules/raycast/raycast_occlusion_cull.h +++ b/modules/raycast/raycast_occlusion_cull.h @@ -30,13 +30,15 @@ #pragma once -#include "core/math/projection.h" +#include "core/templates/hash_set.h" #include "core/templates/local_vector.h" #include "core/templates/rid_owner.h" #include "servers/rendering/renderer_scene_occlusion_cull.h" #include +struct Projection; + class RaycastOcclusionCull : public RendererSceneOcclusionCull { typedef RTCRayHit16 CameraRayTile; diff --git a/modules/webxr/webxr_interface_js.h b/modules/webxr/webxr_interface_js.h index be8d55c45b..3c6bf3c65c 100644 --- a/modules/webxr/webxr_interface_js.h +++ b/modules/webxr/webxr_interface_js.h @@ -35,8 +35,6 @@ #include "webxr_interface.h" #include "core/templates/rb_map.h" -#include "servers/xr/xr_controller_tracker.h" -#include "servers/xr/xr_hand_tracker.h" /** The WebXR interface is a VR/AR interface that can be used on the web. @@ -46,6 +44,8 @@ namespace GLES3 { class TextureStorage; } +class XRHandTracker; + class WebXRInterfaceJS : public WebXRInterface { GDCLASS(WebXRInterfaceJS, WebXRInterface); diff --git a/scene/3d/decal.cpp b/scene/3d/decal.cpp index b6265450f9..e0d13ce7b5 100644 --- a/scene/3d/decal.cpp +++ b/scene/3d/decal.cpp @@ -29,6 +29,7 @@ /**************************************************************************/ #include "decal.h" + #include "servers/rendering/rendering_server.h" void Decal::set_size(const Vector3 &p_size) { diff --git a/scene/3d/physics/collision_shape_3d.cpp b/scene/3d/physics/collision_shape_3d.cpp index be127b33ac..4f2e27961c 100644 --- a/scene/3d/physics/collision_shape_3d.cpp +++ b/scene/3d/physics/collision_shape_3d.cpp @@ -36,7 +36,6 @@ #include "scene/resources/3d/concave_polygon_shape_3d.h" #include "scene/resources/3d/convex_polygon_shape_3d.h" #include "scene/resources/3d/world_boundary_shape_3d.h" -#include "servers/rendering/rendering_server.h" void CollisionShape3D::make_convex_from_siblings() { Node *p = get_parent(); @@ -321,11 +320,9 @@ void CollisionShape3D::_shape_changed() { #endif // DEBUG_ENABLED CollisionShape3D::CollisionShape3D() { - //indicator = RenderingServer::get_singleton()->mesh_create(); set_notify_local_transform(true); debug_color = _get_default_debug_color(); } CollisionShape3D::~CollisionShape3D() { - //RenderingServer::get_singleton()->free(indicator); } diff --git a/servers/camera/camera_server.cpp b/servers/camera/camera_server.cpp index a44929c0c7..2b501d8396 100644 --- a/servers/camera/camera_server.cpp +++ b/servers/camera/camera_server.cpp @@ -32,7 +32,6 @@ #include "core/variant/typed_array.h" #include "servers/camera/camera_feed.h" -#include "servers/rendering/rendering_server.h" //////////////////////////////////////////////////////// // CameraServer diff --git a/servers/camera/camera_server.h b/servers/camera/camera_server.h index 4f8c9a4e2c..d0bfaaf71a 100644 --- a/servers/camera/camera_server.h +++ b/servers/camera/camera_server.h @@ -30,11 +30,10 @@ #pragma once -#include "core/object/class_db.h" +#include "core/object/object.h" #include "core/object/ref_counted.h" #include "core/os/thread_safe.h" #include "core/templates/rid.h" -#include "core/variant/variant.h" /** The camera server is a singleton object that gives access to the various diff --git a/servers/rendering/dummy/rasterizer_dummy.h b/servers/rendering/dummy/rasterizer_dummy.h index cbb98b7ccb..e95871510b 100644 --- a/servers/rendering/dummy/rasterizer_dummy.h +++ b/servers/rendering/dummy/rasterizer_dummy.h @@ -30,9 +30,6 @@ #pragma once -#include "core/templates/rid_owner.h" -#include "core/templates/self_list.h" -#include "scene/resources/mesh.h" #include "servers/rendering/dummy/environment/fog.h" #include "servers/rendering/dummy/environment/gi.h" #include "servers/rendering/dummy/rasterizer_canvas_dummy.h" @@ -44,7 +41,6 @@ #include "servers/rendering/dummy/storage/texture_storage.h" #include "servers/rendering/dummy/storage/utilities.h" #include "servers/rendering/renderer_compositor.h" -#include "servers/rendering/rendering_server.h" class RasterizerDummy : public RendererCompositor { private: @@ -54,15 +50,16 @@ private: protected: RasterizerCanvasDummy canvas; - RendererDummy::Utilities utilities; + RasterizerSceneDummy scene; + + RendererDummy::Fog fog; + RendererDummy::GI gi; RendererDummy::LightStorage light_storage; RendererDummy::MaterialStorage material_storage; RendererDummy::MeshStorage mesh_storage; RendererDummy::ParticlesStorage particles_storage; RendererDummy::TextureStorage texture_storage; - RendererDummy::GI gi; - RendererDummy::Fog fog; - RasterizerSceneDummy scene; + RendererDummy::Utilities utilities; public: RendererUtilities *get_utilities() override { return &utilities; } diff --git a/servers/rendering/renderer_rd/effects/bokeh_dof.cpp b/servers/rendering/renderer_rd/effects/bokeh_dof.cpp index a3ee89c275..b7b78701c8 100644 --- a/servers/rendering/renderer_rd/effects/bokeh_dof.cpp +++ b/servers/rendering/renderer_rd/effects/bokeh_dof.cpp @@ -29,9 +29,11 @@ /**************************************************************************/ #include "bokeh_dof.h" -#include "copy_effects.h" + +#include "servers/rendering/renderer_rd/effects/copy_effects.h" #include "servers/rendering/renderer_rd/storage_rd/material_storage.h" #include "servers/rendering/renderer_rd/uniform_set_cache_rd.h" +#include "servers/rendering/rendering_server_globals.h" #include "servers/rendering/storage/camera_attributes_storage.h" using namespace RendererRD; diff --git a/servers/rendering/renderer_rd/effects/copy_effects.h b/servers/rendering/renderer_rd/effects/copy_effects.h index db464259c7..4144ce2ab7 100644 --- a/servers/rendering/renderer_rd/effects/copy_effects.h +++ b/servers/rendering/renderer_rd/effects/copy_effects.h @@ -44,9 +44,6 @@ #include "servers/rendering/renderer_rd/shaders/effects/octmap_roughness.glsl.gen.h" #include "servers/rendering/renderer_rd/shaders/effects/octmap_roughness_raster.glsl.gen.h" #include "servers/rendering/renderer_rd/shaders/effects/specular_merge.glsl.gen.h" -#include "servers/rendering/renderer_scene_render.h" - -#include "servers/rendering/rendering_server.h" namespace RendererRD { diff --git a/servers/rendering/renderer_rd/effects/debug_effects.cpp b/servers/rendering/renderer_rd/effects/debug_effects.cpp index e8acf384bd..036826b788 100644 --- a/servers/rendering/renderer_rd/effects/debug_effects.cpp +++ b/servers/rendering/renderer_rd/effects/debug_effects.cpp @@ -29,9 +29,11 @@ /**************************************************************************/ #include "debug_effects.h" + #include "servers/rendering/renderer_rd/storage_rd/light_storage.h" #include "servers/rendering/renderer_rd/storage_rd/material_storage.h" #include "servers/rendering/renderer_rd/uniform_set_cache_rd.h" +#include "servers/rendering/rendering_server_globals.h" using namespace RendererRD; diff --git a/servers/rendering/renderer_rd/effects/motion_vectors_store.h b/servers/rendering/renderer_rd/effects/motion_vectors_store.h index 51e39edea5..fe4110d5ae 100644 --- a/servers/rendering/renderer_rd/effects/motion_vectors_store.h +++ b/servers/rendering/renderer_rd/effects/motion_vectors_store.h @@ -30,11 +30,8 @@ #pragma once -#include "servers/rendering/renderer_rd/pipeline_cache_rd.h" #include "servers/rendering/renderer_rd/shaders/effects/motion_vectors_store.glsl.gen.h" #include "servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h" -#include "servers/rendering/renderer_scene_render.h" -#include "servers/rendering/rendering_server.h" namespace RendererRD { class MotionVectorsStore { diff --git a/servers/rendering/renderer_rd/effects/smaa.h b/servers/rendering/renderer_rd/effects/smaa.h index 509bf1942b..508711d047 100644 --- a/servers/rendering/renderer_rd/effects/smaa.h +++ b/servers/rendering/renderer_rd/effects/smaa.h @@ -35,9 +35,6 @@ #include "servers/rendering/renderer_rd/shaders/effects/smaa_edge_detection.glsl.gen.h" #include "servers/rendering/renderer_rd/shaders/effects/smaa_weight_calculation.glsl.gen.h" #include "servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h" -#include "servers/rendering/renderer_scene_render.h" - -#include "servers/rendering/rendering_server.h" #define RB_SCOPE_SMAA SNAME("rb_smaa") diff --git a/servers/rendering/renderer_rd/effects/ss_effects.h b/servers/rendering/renderer_rd/effects/ss_effects.h index 747b05cd66..de44afa557 100644 --- a/servers/rendering/renderer_rd/effects/ss_effects.h +++ b/servers/rendering/renderer_rd/effects/ss_effects.h @@ -46,7 +46,6 @@ #include "servers/rendering/renderer_rd/shaders/effects/ssil_importance_map.glsl.gen.h" #include "servers/rendering/renderer_rd/shaders/effects/ssil_interleave.glsl.gen.h" #include "servers/rendering/renderer_rd/shaders/effects/subsurface_scattering.glsl.gen.h" -#include "servers/rendering/rendering_server.h" #define RB_SCOPE_SSLF SNAME("rb_sslf") #define RB_SCOPE_SSDS SNAME("rb_ssds") diff --git a/servers/rendering/renderer_rd/effects/tone_mapper.h b/servers/rendering/renderer_rd/effects/tone_mapper.h index d6e982a06e..fc91d5c24a 100644 --- a/servers/rendering/renderer_rd/effects/tone_mapper.h +++ b/servers/rendering/renderer_rd/effects/tone_mapper.h @@ -34,8 +34,6 @@ #include "servers/rendering/renderer_rd/shaders/effects/tonemap.glsl.gen.h" #include "servers/rendering/renderer_rd/shaders/effects/tonemap_mobile.glsl.gen.h" -#include "servers/rendering/rendering_server.h" - namespace RendererRD { class ToneMapper { diff --git a/servers/rendering/renderer_rd/storage_rd/light_storage.cpp b/servers/rendering/renderer_rd/storage_rd/light_storage.cpp index c2b644446e..f2f9a2f170 100644 --- a/servers/rendering/renderer_rd/storage_rd/light_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/light_storage.cpp @@ -29,10 +29,12 @@ /**************************************************************************/ #include "light_storage.h" + #include "core/config/project_settings.h" #include "core/math/geometry_3d.h" #include "servers/rendering/renderer_rd/renderer_scene_render_rd.h" -#include "texture_storage.h" +#include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" +#include "servers/rendering/rendering_server_globals.h" using namespace RendererRD; diff --git a/servers/rendering/renderer_rd/storage_rd/render_scene_data_rd.cpp b/servers/rendering/renderer_rd/storage_rd/render_scene_data_rd.cpp index 53a32bb393..7120d536fa 100644 --- a/servers/rendering/renderer_rd/storage_rd/render_scene_data_rd.cpp +++ b/servers/rendering/renderer_rd/storage_rd/render_scene_data_rd.cpp @@ -29,9 +29,11 @@ /**************************************************************************/ #include "render_scene_data_rd.h" + #include "servers/rendering/renderer_rd/renderer_scene_render_rd.h" #include "servers/rendering/renderer_rd/storage_rd/light_storage.h" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" +#include "servers/rendering/rendering_server_globals.h" Transform3D RenderSceneDataRD::get_cam_transform() const { return cam_transform; diff --git a/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp b/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp index e568343c10..d3bccaa510 100644 --- a/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp @@ -38,6 +38,7 @@ #include "servers/rendering/renderer_rd/storage_rd/material_storage.h" #include "servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h" #include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_globals.h" using namespace RendererRD; diff --git a/servers/rendering/renderer_rd/storage_rd/texture_storage.h b/servers/rendering/renderer_rd/storage_rd/texture_storage.h index f2c9e6e8ea..67260619ed 100644 --- a/servers/rendering/renderer_rd/storage_rd/texture_storage.h +++ b/servers/rendering/renderer_rd/storage_rd/texture_storage.h @@ -35,7 +35,7 @@ #include "servers/rendering/renderer_rd/shaders/canvas_sdf.glsl.gen.h" #include "servers/rendering/renderer_rd/shaders/tex_blit.glsl.gen.h" #include "servers/rendering/renderer_rd/storage_rd/forward_id_storage.h" -#include "servers/rendering/rendering_server_default.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/shader_compiler.h" #include "servers/rendering/storage/texture_storage.h" #include "servers/rendering/storage/utilities.h" diff --git a/servers/rendering/renderer_scene_occlusion_cull.cpp b/servers/rendering/renderer_scene_occlusion_cull.cpp index 6f9f4bf907..0b7bdb0241 100644 --- a/servers/rendering/renderer_scene_occlusion_cull.cpp +++ b/servers/rendering/renderer_scene_occlusion_cull.cpp @@ -30,6 +30,8 @@ #include "renderer_scene_occlusion_cull.h" +#include "servers/rendering/rendering_server.h" + RendererSceneOcclusionCull *RendererSceneOcclusionCull::singleton = nullptr; bool RendererSceneOcclusionCull::HZBuffer::occlusion_jitter_enabled = false; diff --git a/servers/rendering/renderer_scene_occlusion_cull.h b/servers/rendering/renderer_scene_occlusion_cull.h index 957597bf98..21585048b0 100644 --- a/servers/rendering/renderer_scene_occlusion_cull.h +++ b/servers/rendering/renderer_scene_occlusion_cull.h @@ -30,9 +30,10 @@ #pragma once +#include "core/io/image.h" #include "core/math/projection.h" #include "core/templates/local_vector.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" class RendererSceneOcclusionCull { protected: diff --git a/servers/xr/xr_vrs.cpp b/servers/xr/xr_vrs.cpp index d77c5a9140..0a8ad783c6 100644 --- a/servers/xr/xr_vrs.cpp +++ b/servers/xr/xr_vrs.cpp @@ -102,7 +102,7 @@ void XRVRS::set_vrs_render_region(const Rect2i &p_vrs_render_region) { vrs_dirty = true; } -RID XRVRS::make_vrs_texture(const Size2 &p_target_size, const PackedVector2Array &p_eye_foci) { +RID XRVRS::make_vrs_texture(const Size2 &p_target_size, const Vector &p_eye_foci) { ERR_FAIL_COND_V(p_eye_foci.is_empty(), RID()); Size2i texel_size = RD::get_singleton()->vrs_get_texel_size(); diff --git a/servers/xr/xr_vrs.h b/servers/xr/xr_vrs.h index 231124c160..9d5e662105 100644 --- a/servers/xr/xr_vrs.h +++ b/servers/xr/xr_vrs.h @@ -30,10 +30,10 @@ #pragma once -#include "core/object/class_db.h" +#include "core/math/vector2i.h" #include "core/object/object.h" #include "core/templates/rid.h" -#include "core/variant/variant.h" +#include "core/templates/vector.h" /* This is a helper class for generating stereoscopic VRS images */ @@ -48,7 +48,7 @@ private: RID vrs_texture; Size2i target_size; - PackedVector2Array eye_foci; + Vector eye_foci; protected: static void _bind_methods(); @@ -63,5 +63,5 @@ public: Rect2i get_vrs_render_region() const; void set_vrs_render_region(const Rect2i &p_vrs_render_region); - RID make_vrs_texture(const Size2 &p_target_size, const PackedVector2Array &p_eye_foci); + RID make_vrs_texture(const Size2 &p_target_size, const Vector &p_eye_foci); }; From 0ce92073aef12f77f064baf85afbb129811cc720 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Thu, 19 Feb 2026 22:20:30 +0100 Subject: [PATCH 07/13] Move RS::ShaderNativeSourceCode to RenderingServerTypes to reduce dependencies on RS On my machine, this reduces incremental compilation time after an edit of `rendering_server.h` by 1s, and paves the way for more decoupling in rendering code. --- drivers/gles3/effects/feed_effects.cpp | 3 +++ drivers/gles3/shader_gles3.cpp | 8 +++---- drivers/gles3/shader_gles3.h | 4 ++-- drivers/gles3/storage/material_storage.cpp | 19 ++++++++-------- drivers/gles3/storage/material_storage.h | 15 +++++++------ editor/export/shader_baker_export_plugin.cpp | 1 + ...editor_native_shader_source_visualizer.cpp | 5 +++-- .../editor_native_shader_source_visualizer.h | 5 +++-- .../dummy/storage/material_storage.h | 4 ++-- .../rendering/renderer_rd/environment/fog.cpp | 6 ++--- .../rendering/renderer_rd/environment/fog.h | 6 ++--- .../rendering/renderer_rd/environment/sky.cpp | 5 +++-- .../rendering/renderer_rd/environment/sky.h | 6 ++--- .../scene_shader_forward_clustered.cpp | 8 +++---- .../scene_shader_forward_clustered.h | 5 +++-- .../scene_shader_forward_mobile.cpp | 8 +++---- .../scene_shader_forward_mobile.h | 5 +++-- .../renderer_rd/pipeline_hash_map_rd.h | 10 ++++++++- .../renderer_rd/renderer_canvas_render_rd.cpp | 3 +-- .../renderer_rd/renderer_canvas_render_rd.h | 3 ++- servers/rendering/renderer_rd/shader_rd.cpp | 22 +++++++++---------- servers/rendering/renderer_rd/shader_rd.h | 8 +++---- .../storage_rd/material_storage.cpp | 12 +++++----- .../renderer_rd/storage_rd/material_storage.h | 11 +++++----- .../storage_rd/particles_storage.cpp | 4 ++-- .../storage_rd/particles_storage.h | 6 +++-- servers/rendering/rendering_server.h | 13 +---------- servers/rendering/rendering_server_default.h | 2 +- servers/rendering/rendering_server_types.h | 14 ++++++++++++ servers/rendering/shader_language.h | 3 +-- servers/rendering/storage/material_storage.h | 7 +++--- 31 files changed, 129 insertions(+), 102 deletions(-) diff --git a/drivers/gles3/effects/feed_effects.cpp b/drivers/gles3/effects/feed_effects.cpp index 376e1f4bea..59f72e085a 100644 --- a/drivers/gles3/effects/feed_effects.cpp +++ b/drivers/gles3/effects/feed_effects.cpp @@ -32,6 +32,9 @@ #ifdef GLES3_ENABLED +#include "core/os/os.h" +#include "servers/rendering/rendering_server_enums.h" + using namespace GLES3; FeedEffects *FeedEffects::singleton = nullptr; diff --git a/drivers/gles3/shader_gles3.cpp b/drivers/gles3/shader_gles3.cpp index f0b9cbb526..7cad3d8f0e 100644 --- a/drivers/gles3/shader_gles3.cpp +++ b/drivers/gles3/shader_gles3.cpp @@ -466,9 +466,9 @@ void ShaderGLES3::_compile_specialization(Version::Specialization &spec, uint32_ spec.ok = true; } -RS::ShaderNativeSourceCode ShaderGLES3::version_get_native_source_code(RID p_version) { +RenderingServerTypes::ShaderNativeSourceCode ShaderGLES3::version_get_native_source_code(RID p_version) { Version *version = version_owner.get_or_null(p_version); - RS::ShaderNativeSourceCode source_code; + RenderingServerTypes::ShaderNativeSourceCode source_code; ERR_FAIL_NULL_V(version, source_code); source_code.versions.resize(variant_count); @@ -480,7 +480,7 @@ RS::ShaderNativeSourceCode ShaderGLES3::version_get_native_source_code(RID p_ver StringBuilder builder; _build_variant_code(builder, i, version, STAGE_TYPE_VERTEX, specialization_default_mask); - RS::ShaderNativeSourceCode::Version::Stage stage; + RenderingServerTypes::ShaderNativeSourceCode::Version::Stage stage; stage.name = "vertex"; stage.code = builder.as_string(); @@ -492,7 +492,7 @@ RS::ShaderNativeSourceCode ShaderGLES3::version_get_native_source_code(RID p_ver StringBuilder builder; _build_variant_code(builder, i, version, STAGE_TYPE_FRAGMENT, specialization_default_mask); - RS::ShaderNativeSourceCode::Version::Stage stage; + RenderingServerTypes::ShaderNativeSourceCode::Version::Stage stage; stage.name = "fragment"; stage.code = builder.as_string(); diff --git a/drivers/gles3/shader_gles3.h b/drivers/gles3/shader_gles3.h index c0da89a841..24e843b884 100644 --- a/drivers/gles3/shader_gles3.h +++ b/drivers/gles3/shader_gles3.h @@ -36,7 +36,7 @@ #include "core/templates/hash_map.h" #include "core/templates/local_vector.h" #include "core/templates/rid_owner.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_types.h" #include "platform_gl.h" @@ -248,7 +248,7 @@ public: static void set_shader_cache_save_compressed_zstd(bool p_enable); static void set_shader_cache_save_debug(bool p_enable); - RS::ShaderNativeSourceCode version_get_native_source_code(RID p_version); + RenderingServerTypes::ShaderNativeSourceCode version_get_native_source_code(RID p_version); void initialize(const String &p_general_defines = "", int p_base_texture_index = 0); virtual ~ShaderGLES3(); diff --git a/drivers/gles3/storage/material_storage.cpp b/drivers/gles3/storage/material_storage.cpp index c3876d59a8..0f4ea726a0 100644 --- a/drivers/gles3/storage/material_storage.cpp +++ b/drivers/gles3/storage/material_storage.cpp @@ -33,11 +33,12 @@ #ifdef GLES3_ENABLED #include "core/config/project_settings.h" +#include "core/io/resource_loader.h" #include "drivers/gles3/rasterizer_canvas_gles3.h" #include "drivers/gles3/rasterizer_gles3.h" #include "drivers/gles3/storage/config.h" #include "drivers/gles3/storage/texture_storage.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/storage/variant_converters.h" using namespace GLES3; @@ -2388,13 +2389,13 @@ Variant MaterialStorage::shader_get_parameter_default(RID p_shader, const String return Variant(); } -RS::ShaderNativeSourceCode MaterialStorage::shader_get_native_source_code(RID p_shader) const { +RenderingServerTypes::ShaderNativeSourceCode MaterialStorage::shader_get_native_source_code(RID p_shader) const { Shader *shader = shader_owner.get_or_null(p_shader); - ERR_FAIL_NULL_V(shader, RS::ShaderNativeSourceCode()); + ERR_FAIL_NULL_V(shader, RenderingServerTypes::ShaderNativeSourceCode()); if (shader->data) { return shader->data->get_native_source_code(); } - return RS::ShaderNativeSourceCode(); + return RenderingServerTypes::ShaderNativeSourceCode(); } /* MATERIAL API */ @@ -2723,7 +2724,7 @@ bool CanvasShaderData::casts_shadows() const { return false; } -RS::ShaderNativeSourceCode CanvasShaderData::get_native_source_code() const { +RenderingServerTypes::ShaderNativeSourceCode CanvasShaderData::get_native_source_code() const { return MaterialStorage::get_singleton()->shaders.canvas_shader.version_get_native_source_code(version); } @@ -2895,7 +2896,7 @@ bool SkyShaderData::casts_shadows() const { return false; } -RS::ShaderNativeSourceCode SkyShaderData::get_native_source_code() const { +RenderingServerTypes::ShaderNativeSourceCode SkyShaderData::get_native_source_code() const { return MaterialStorage::get_singleton()->shaders.sky_shader.version_get_native_source_code(version); } @@ -3203,7 +3204,7 @@ bool SceneShaderData::casts_shadows() const { return !has_alpha || (uses_depth_prepass_alpha && !(depth_draw == DEPTH_DRAW_DISABLED || depth_test != DEPTH_TEST_ENABLED)); } -RS::ShaderNativeSourceCode SceneShaderData::get_native_source_code() const { +RenderingServerTypes::ShaderNativeSourceCode SceneShaderData::get_native_source_code() const { return MaterialStorage::get_singleton()->shaders.scene_shader.version_get_native_source_code(version); } @@ -3318,7 +3319,7 @@ bool ParticlesShaderData::casts_shadows() const { return false; } -RS::ShaderNativeSourceCode ParticlesShaderData::get_native_source_code() const { +RenderingServerTypes::ShaderNativeSourceCode ParticlesShaderData::get_native_source_code() const { return MaterialStorage::get_singleton()->shaders.particles_process_shader.version_get_native_source_code(version); } @@ -3430,7 +3431,7 @@ bool TexBlitShaderData::casts_shadows() const { return false; } -RS::ShaderNativeSourceCode TexBlitShaderData::get_native_source_code() const { +RenderingServerTypes::ShaderNativeSourceCode TexBlitShaderData::get_native_source_code() const { return MaterialStorage::get_singleton()->shaders.tex_blit_shader.version_get_native_source_code(version); } diff --git a/drivers/gles3/storage/material_storage.h b/drivers/gles3/storage/material_storage.h index 7d36ea7230..a4fd1cf5b9 100644 --- a/drivers/gles3/storage/material_storage.h +++ b/drivers/gles3/storage/material_storage.h @@ -39,6 +39,7 @@ #include "drivers/gles3/shaders/scene.glsl.gen.h" #include "drivers/gles3/shaders/sky.glsl.gen.h" #include "drivers/gles3/shaders/tex_blit.glsl.gen.h" +#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/shader_compiler.h" #include "servers/rendering/shader_language.h" #include "servers/rendering/storage/material_storage.h" @@ -63,7 +64,7 @@ struct ShaderData { virtual void set_code(const String &p_Code) = 0; virtual bool is_animated() const = 0; virtual bool casts_shadows() const = 0; - virtual RS::ShaderNativeSourceCode get_native_source_code() const { return RS::ShaderNativeSourceCode(); } + virtual RenderingServerTypes::ShaderNativeSourceCode get_native_source_code() const { return RenderingServerTypes::ShaderNativeSourceCode(); } virtual ~ShaderData() {} }; @@ -172,7 +173,7 @@ struct CanvasShaderData : public ShaderData { virtual void set_code(const String &p_Code); virtual bool is_animated() const; virtual bool casts_shadows() const; - virtual RS::ShaderNativeSourceCode get_native_source_code() const; + virtual RenderingServerTypes::ShaderNativeSourceCode get_native_source_code() const; CanvasShaderData(); virtual ~CanvasShaderData(); @@ -217,7 +218,7 @@ struct SkyShaderData : public ShaderData { virtual void set_code(const String &p_Code); virtual bool is_animated() const; virtual bool casts_shadows() const; - virtual RS::ShaderNativeSourceCode get_native_source_code() const; + virtual RenderingServerTypes::ShaderNativeSourceCode get_native_source_code() const; SkyShaderData(); virtual ~SkyShaderData(); }; @@ -350,7 +351,7 @@ struct SceneShaderData : public ShaderData { virtual void set_code(const String &p_Code); virtual bool is_animated() const; virtual bool casts_shadows() const; - virtual RS::ShaderNativeSourceCode get_native_source_code() const; + virtual RenderingServerTypes::ShaderNativeSourceCode get_native_source_code() const; SceneShaderData(); virtual ~SceneShaderData(); @@ -402,7 +403,7 @@ struct ParticlesShaderData : public ShaderData { virtual void set_code(const String &p_Code); virtual bool is_animated() const; virtual bool casts_shadows() const; - virtual RS::ShaderNativeSourceCode get_native_source_code() const; + virtual RenderingServerTypes::ShaderNativeSourceCode get_native_source_code() const; ParticlesShaderData() {} virtual ~ParticlesShaderData(); @@ -449,7 +450,7 @@ struct TexBlitShaderData : public ShaderData { virtual void set_code(const String &p_code); virtual bool is_animated() const; virtual bool casts_shadows() const; - virtual RS::ShaderNativeSourceCode get_native_source_code() const; + virtual RenderingServerTypes::ShaderNativeSourceCode get_native_source_code() const; TexBlitShaderData(); virtual ~TexBlitShaderData(); @@ -658,7 +659,7 @@ public: virtual RID shader_get_default_texture_parameter(RID p_shader, const StringName &p_name, int p_index) const override; virtual Variant shader_get_parameter_default(RID p_shader, const StringName &p_name) const override; - virtual RS::ShaderNativeSourceCode shader_get_native_source_code(RID p_shader) const override; + virtual RenderingServerTypes::ShaderNativeSourceCode shader_get_native_source_code(RID p_shader) const override; virtual void shader_embedded_set_lock() override {} virtual const HashSet &shader_embedded_set_get() const override { return dummy_embedded_set; } virtual void shader_embedded_set_unlock() override {} diff --git a/editor/export/shader_baker_export_plugin.cpp b/editor/export/shader_baker_export_plugin.cpp index 34b28fe15f..ff99e1a4b4 100644 --- a/editor/export/shader_baker_export_plugin.cpp +++ b/editor/export/shader_baker_export_plugin.cpp @@ -32,6 +32,7 @@ #include "core/config/project_settings.h" #include "core/io/dir_access.h" +#include "core/string/string_builder.h" #include "core/version.h" #include "editor/editor_node.h" #include "scene/3d/label_3d.h" diff --git a/editor/shader/editor_native_shader_source_visualizer.cpp b/editor/shader/editor_native_shader_source_visualizer.cpp index 17502e3efb..8fc7f11e51 100644 --- a/editor/shader/editor_native_shader_source_visualizer.cpp +++ b/editor/shader/editor_native_shader_source_visualizer.cpp @@ -34,7 +34,8 @@ #include "editor/settings/editor_settings.h" #include "editor/themes/editor_scale.h" #include "scene/gui/code_edit.h" -#include "scene/gui/text_edit.h" +#include "scene/gui/tab_container.h" +#include "scene/resources/syntax_highlighter.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/shader_language.h" @@ -78,7 +79,7 @@ void EditorNativeShaderSourceVisualizer::_inspect_shader(RID p_shader) { versions = nullptr; } - RS::ShaderNativeSourceCode nsc = RS::get_singleton()->shader_get_native_source_code(p_shader); + RenderingServerTypes::ShaderNativeSourceCode nsc = RS::get_singleton()->shader_get_native_source_code(p_shader); _load_theme_settings(); diff --git a/editor/shader/editor_native_shader_source_visualizer.h b/editor/shader/editor_native_shader_source_visualizer.h index f75e165c77..908b7d3e8b 100644 --- a/editor/shader/editor_native_shader_source_visualizer.h +++ b/editor/shader/editor_native_shader_source_visualizer.h @@ -31,8 +31,9 @@ #pragma once #include "scene/gui/dialogs.h" -#include "scene/gui/tab_container.h" -#include "scene/resources/syntax_highlighter.h" + +class CodeHighlighter; +class TabContainer; class EditorNativeShaderSourceVisualizer : public AcceptDialog { GDCLASS(EditorNativeShaderSourceVisualizer, AcceptDialog) diff --git a/servers/rendering/dummy/storage/material_storage.h b/servers/rendering/dummy/storage/material_storage.h index 2622716f96..46ac7b1bd5 100644 --- a/servers/rendering/dummy/storage/material_storage.h +++ b/servers/rendering/dummy/storage/material_storage.h @@ -31,7 +31,7 @@ #pragma once #include "core/templates/rid_owner.h" - +#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/shader_compiler.h" #include "servers/rendering/shader_language.h" #include "servers/rendering/storage/material_storage.h" @@ -103,7 +103,7 @@ public: virtual RID shader_get_default_texture_parameter(RID p_shader, const StringName &p_name, int p_index) const override { return RID(); } virtual Variant shader_get_parameter_default(RID p_material, const StringName &p_param) const override { return Variant(); } - virtual RS::ShaderNativeSourceCode shader_get_native_source_code(RID p_shader) const override { return RS::ShaderNativeSourceCode(); } + virtual RenderingServerTypes::ShaderNativeSourceCode shader_get_native_source_code(RID p_shader) const override { return RenderingServerTypes::ShaderNativeSourceCode(); } virtual void shader_embedded_set_lock() override {} virtual const HashSet &shader_embedded_set_get() const override { return dummy_embedded_set; } virtual void shader_embedded_set_unlock() override {} diff --git a/servers/rendering/renderer_rd/environment/fog.cpp b/servers/rendering/renderer_rd/environment/fog.cpp index eee5c6a86a..6509b08a79 100644 --- a/servers/rendering/renderer_rd/environment/fog.cpp +++ b/servers/rendering/renderer_rd/environment/fog.cpp @@ -30,10 +30,10 @@ #include "fog.h" -#include "servers/rendering/renderer_rd/renderer_compositor_rd.h" +#include "servers/rendering/renderer_rd/cluster_builder_rd.h" +#include "servers/rendering/renderer_rd/renderer_scene_render_rd.h" #include "servers/rendering/renderer_rd/storage_rd/material_storage.h" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" -#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_default.h" using namespace RendererRD; @@ -407,7 +407,7 @@ bool Fog::FogShaderData::casts_shadows() const { return false; } -RS::ShaderNativeSourceCode Fog::FogShaderData::get_native_source_code() const { +RenderingServerTypes::ShaderNativeSourceCode Fog::FogShaderData::get_native_source_code() const { Fog *fog_singleton = Fog::get_singleton(); return fog_singleton->volumetric_fog.shader.version_get_native_source_code(version); diff --git a/servers/rendering/renderer_rd/environment/fog.h b/servers/rendering/renderer_rd/environment/fog.h index dc1897abbe..53b1b4d4df 100644 --- a/servers/rendering/renderer_rd/environment/fog.h +++ b/servers/rendering/renderer_rd/environment/fog.h @@ -30,10 +30,8 @@ #pragma once -#include "core/templates/local_vector.h" #include "core/templates/rid_owner.h" #include "servers/rendering/environment/renderer_fog.h" -#include "servers/rendering/renderer_rd/cluster_builder_rd.h" #include "servers/rendering/renderer_rd/environment/gi.h" #include "servers/rendering/renderer_rd/pipeline_deferred_rd.h" #include "servers/rendering/renderer_rd/shaders/environment/volumetric_fog.glsl.gen.h" @@ -43,6 +41,8 @@ #define RB_SCOPE_FOG SNAME("Fog") +class ClusterBuilderRD; + namespace RendererRD { class Fog : public RendererFog { @@ -216,7 +216,7 @@ private: virtual void set_code(const String &p_Code); virtual bool is_animated() const; virtual bool casts_shadows() const; - virtual RS::ShaderNativeSourceCode get_native_source_code() const; + virtual RenderingServerTypes::ShaderNativeSourceCode get_native_source_code() const; virtual Pair get_native_shader_and_version() const; FogShaderData() {} diff --git a/servers/rendering/renderer_rd/environment/sky.cpp b/servers/rendering/renderer_rd/environment/sky.cpp index aa6f57674e..cbacf2dd19 100644 --- a/servers/rendering/renderer_rd/environment/sky.cpp +++ b/servers/rendering/renderer_rd/environment/sky.cpp @@ -29,6 +29,7 @@ /**************************************************************************/ #include "sky.h" + #include "core/config/project_settings.h" #include "core/math/math_defs.h" #include "servers/rendering/renderer_rd/effects/copy_effects.h" @@ -36,10 +37,10 @@ #include "servers/rendering/renderer_rd/renderer_compositor_rd.h" #include "servers/rendering/renderer_rd/renderer_scene_render_rd.h" #include "servers/rendering/renderer_rd/storage_rd/material_storage.h" +#include "servers/rendering/renderer_rd/storage_rd/render_data_rd.h" #include "servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" #include "servers/rendering/renderer_rd/uniform_set_cache_rd.h" -#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_default.h" #include "servers/rendering/rendering_server_globals.h" @@ -163,7 +164,7 @@ bool SkyRD::SkyShaderData::casts_shadows() const { return false; } -RS::ShaderNativeSourceCode SkyRD::SkyShaderData::get_native_source_code() const { +RenderingServerTypes::ShaderNativeSourceCode SkyRD::SkyShaderData::get_native_source_code() const { RendererSceneRenderRD *scene_singleton = static_cast(RendererSceneRenderRD::singleton); return scene_singleton->sky.sky_shader.shader.version_get_native_source_code(version); diff --git a/servers/rendering/renderer_rd/environment/sky.h b/servers/rendering/renderer_rd/environment/sky.h index dd8971ff66..07801dd750 100644 --- a/servers/rendering/renderer_rd/environment/sky.h +++ b/servers/rendering/renderer_rd/environment/sky.h @@ -31,17 +31,17 @@ #pragma once #include "core/templates/rid_owner.h" -#include "servers/rendering/renderer_compositor.h" #include "servers/rendering/renderer_rd/pipeline_cache_rd.h" #include "servers/rendering/renderer_rd/shaders/environment/sky.glsl.gen.h" #include "servers/rendering/renderer_rd/storage_rd/material_storage.h" -#include "servers/rendering/renderer_rd/storage_rd/render_data_rd.h" #include "servers/rendering/renderer_scene_render.h" #include "servers/rendering/rendering_device.h" +#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/shader_compiler.h" // Forward declare RendererSceneRenderRD so we can pass it into some of our methods, these classes are pretty tightly bound class RendererSceneRenderRD; +class RenderDataRD; class RenderSceneBuffersRD; namespace RendererRD { @@ -127,7 +127,7 @@ private: virtual void set_code(const String &p_Code); virtual bool is_animated() const; virtual bool casts_shadows() const; - virtual RS::ShaderNativeSourceCode get_native_source_code() const; + virtual RenderingServerTypes::ShaderNativeSourceCode get_native_source_code() const; virtual Pair get_native_shader_and_version() const; SkyShaderData() {} diff --git a/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp b/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp index 44bcf7314b..6287585b9a 100644 --- a/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp +++ b/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp @@ -29,12 +29,12 @@ /**************************************************************************/ #include "scene_shader_forward_clustered.h" + #include "core/config/project_settings.h" #include "core/math/math_defs.h" -#include "render_forward_clustered.h" +#include "servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h" #include "servers/rendering/renderer_rd/renderer_compositor_rd.h" #include "servers/rendering/renderer_rd/storage_rd/material_storage.h" -#include "servers/rendering/rendering_server.h" using namespace RendererSceneRenderImplementation; @@ -256,11 +256,11 @@ bool SceneShaderForwardClustered::ShaderData::casts_shadows() const { return !has_alpha || (uses_depth_prepass_alpha && !(depth_draw == DEPTH_DRAW_DISABLED || depth_test != DEPTH_TEST_ENABLED)); } -RS::ShaderNativeSourceCode SceneShaderForwardClustered::ShaderData::get_native_source_code() const { +RenderingServerTypes::ShaderNativeSourceCode SceneShaderForwardClustered::ShaderData::get_native_source_code() const { if (version.is_valid()) { return SceneShaderForwardClustered::singleton->shader.version_get_native_source_code(version); } else { - return RS::ShaderNativeSourceCode(); + return RenderingServerTypes::ShaderNativeSourceCode(); } } diff --git a/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h b/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h index 168d63b7ee..bf708420ee 100644 --- a/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h +++ b/servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h @@ -30,9 +30,10 @@ #pragma once -#include "../storage_rd/material_storage.h" #include "servers/rendering/renderer_rd/pipeline_hash_map_rd.h" #include "servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl.gen.h" +#include "servers/rendering/renderer_rd/storage_rd/material_storage.h" +#include "servers/rendering/rendering_server_types.h" namespace RendererSceneRenderImplementation { @@ -300,7 +301,7 @@ public: virtual bool is_animated() const; virtual bool casts_shadows() const; - virtual RS::ShaderNativeSourceCode get_native_source_code() const; + virtual RenderingServerTypes::ShaderNativeSourceCode get_native_source_code() const; virtual Pair get_native_shader_and_version() const; uint16_t _get_shader_version(PipelineVersion p_pipeline_version, uint32_t p_color_pass_flags, bool p_ubershader) const; RID _get_shader_variant(uint16_t p_shader_version) const; diff --git a/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp b/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp index eaa4b56b91..ba5a174bc5 100644 --- a/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp +++ b/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp @@ -29,12 +29,12 @@ /**************************************************************************/ #include "scene_shader_forward_mobile.h" + #include "core/config/project_settings.h" #include "core/math/math_defs.h" -#include "render_forward_mobile.h" +#include "servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h" #include "servers/rendering/renderer_rd/renderer_compositor_rd.h" #include "servers/rendering/renderer_rd/storage_rd/material_storage.h" -#include "servers/rendering/rendering_server.h" using namespace RendererSceneRenderImplementation; @@ -261,12 +261,12 @@ bool SceneShaderForwardMobile::ShaderData::casts_shadows() const { return !has_alpha || (uses_depth_prepass_alpha && !(depth_draw == DEPTH_DRAW_DISABLED || depth_test != DEPTH_TEST_ENABLED)); } -RS::ShaderNativeSourceCode SceneShaderForwardMobile::ShaderData::get_native_source_code() const { +RenderingServerTypes::ShaderNativeSourceCode SceneShaderForwardMobile::ShaderData::get_native_source_code() const { if (version.is_valid()) { MutexLock lock(SceneShaderForwardMobile::singleton_mutex); return SceneShaderForwardMobile::singleton->shader.version_get_native_source_code(version); } else { - return RS::ShaderNativeSourceCode(); + return RenderingServerTypes::ShaderNativeSourceCode(); } } diff --git a/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h b/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h index f40b38b735..8d018f9ee9 100644 --- a/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h +++ b/servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h @@ -30,9 +30,10 @@ #pragma once -#include "../storage_rd/material_storage.h" #include "servers/rendering/renderer_rd/pipeline_hash_map_rd.h" #include "servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl.gen.h" +#include "servers/rendering/renderer_rd/storage_rd/material_storage.h" +#include "servers/rendering/rendering_server_types.h" namespace RendererSceneRenderImplementation { @@ -303,7 +304,7 @@ public: virtual void set_code(const String &p_Code); virtual bool is_animated() const; virtual bool casts_shadows() const; - virtual RS::ShaderNativeSourceCode get_native_source_code() const; + virtual RenderingServerTypes::ShaderNativeSourceCode get_native_source_code() const; virtual Pair get_native_shader_and_version() const; RD::PolygonCullMode get_cull_mode_from_cull_variant(CullVariant p_cull_variant); void _clear_vertex_input_mask_cache(); diff --git a/servers/rendering/renderer_rd/pipeline_hash_map_rd.h b/servers/rendering/renderer_rd/pipeline_hash_map_rd.h index 96b1c688c0..18a5ef6d7e 100644 --- a/servers/rendering/renderer_rd/pipeline_hash_map_rd.h +++ b/servers/rendering/renderer_rd/pipeline_hash_map_rd.h @@ -30,8 +30,16 @@ #pragma once +#include "core/object/worker_thread_pool.h" +#include "core/os/mutex.h" +#include "core/templates/hash_map.h" +#include "core/templates/local_vector.h" +#include "core/templates/rb_map.h" #include "core/templates/rb_set.h" -#include "servers/rendering/rendering_server.h" +#include "core/templates/rid.h" +#include "core/templates/vector.h" +#include "servers/rendering/rendering_device.h" +#include "servers/rendering/rendering_server_enums.h" #define PRINT_PIPELINE_COMPILATION_KEYS 0 diff --git a/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp b/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp index e92411bca5..97c222245a 100644 --- a/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp @@ -40,7 +40,6 @@ #include "servers/rendering/renderer_rd/storage_rd/mesh_storage.h" #include "servers/rendering/renderer_rd/storage_rd/particles_storage.h" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" -#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_default.h" void RendererCanvasRenderRD::_update_transform_2d_to_mat4(const Transform2D &p_transform, float *p_mat4) { @@ -1629,7 +1628,7 @@ bool RendererCanvasRenderRD::CanvasShaderData::casts_shadows() const { return false; } -RS::ShaderNativeSourceCode RendererCanvasRenderRD::CanvasShaderData::get_native_source_code() const { +RenderingServerTypes::ShaderNativeSourceCode RendererCanvasRenderRD::CanvasShaderData::get_native_source_code() const { RendererCanvasRenderRD *canvas_singleton = static_cast(RendererCanvasRender::singleton); MutexLock lock(canvas_singleton->shader.mutex); return canvas_singleton->shader.canvas_shader.version_get_native_source_code(version); diff --git a/servers/rendering/renderer_rd/renderer_canvas_render_rd.h b/servers/rendering/renderer_rd/renderer_canvas_render_rd.h index 4850a7a6b5..e5c536e2ce 100644 --- a/servers/rendering/renderer_rd/renderer_canvas_render_rd.h +++ b/servers/rendering/renderer_rd/renderer_canvas_render_rd.h @@ -38,6 +38,7 @@ #include "servers/rendering/renderer_rd/shaders/canvas_occlusion.glsl.gen.h" #include "servers/rendering/renderer_rd/storage_rd/material_storage.h" #include "servers/rendering/rendering_device.h" +#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/shader_compiler.h" class RendererCanvasRenderRD : public RendererCanvasRender { @@ -169,7 +170,7 @@ class RendererCanvasRenderRD : public RendererCanvasRender { virtual void set_code(const String &p_Code); virtual bool is_animated() const; virtual bool casts_shadows() const; - virtual RS::ShaderNativeSourceCode get_native_source_code() const; + virtual RenderingServerTypes::ShaderNativeSourceCode get_native_source_code() const; virtual Pair get_native_shader_and_version() const; RID get_shader(ShaderVariant p_shader_variant, bool p_ubershader) const; uint64_t get_vertex_input_mask(ShaderVariant p_shader_variant, bool p_ubershader); diff --git a/servers/rendering/renderer_rd/shader_rd.cpp b/servers/rendering/renderer_rd/shader_rd.cpp index ce96244705..f988d3d2d6 100644 --- a/servers/rendering/renderer_rd/shader_rd.cpp +++ b/servers/rendering/renderer_rd/shader_rd.cpp @@ -33,8 +33,8 @@ #include "core/io/dir_access.h" #include "core/io/file_access.h" #include "core/object/worker_thread_pool.h" +#include "core/string/string_builder.h" #include "core/version.h" -#include "servers/rendering/rendering_device.h" #include "servers/rendering/shader_include_db.h" #define ENABLE_SHADER_CACHE 1 @@ -434,9 +434,9 @@ Vector ShaderRD::version_build_variant_stage_sources(RID p_version, int return _build_variant_stage_sources(p_variant, compile_data); } -RS::ShaderNativeSourceCode ShaderRD::version_get_native_source_code(RID p_version) { +RenderingServerTypes::ShaderNativeSourceCode ShaderRD::version_get_native_source_code(RID p_version) { Version *version = version_owner.get_or_null(p_version); - RS::ShaderNativeSourceCode source_code; + RenderingServerTypes::ShaderNativeSourceCode source_code; ERR_FAIL_NULL_V(version, source_code); MutexLock lock(*version->mutex); @@ -450,7 +450,7 @@ RS::ShaderNativeSourceCode ShaderRD::version_get_native_source_code(RID p_versio StringBuilder builder; _build_variant_code(builder, i, version, stage_templates[STAGE_TYPE_VERTEX]); - RS::ShaderNativeSourceCode::Version::Stage stage; + RenderingServerTypes::ShaderNativeSourceCode::Version::Stage stage; stage.name = "vertex"; stage.code = builder.as_string(); @@ -463,7 +463,7 @@ RS::ShaderNativeSourceCode ShaderRD::version_get_native_source_code(RID p_versio StringBuilder builder; _build_variant_code(builder, i, version, stage_templates[STAGE_TYPE_FRAGMENT]); - RS::ShaderNativeSourceCode::Version::Stage stage; + RenderingServerTypes::ShaderNativeSourceCode::Version::Stage stage; stage.name = "fragment"; stage.code = builder.as_string(); @@ -476,7 +476,7 @@ RS::ShaderNativeSourceCode ShaderRD::version_get_native_source_code(RID p_versio StringBuilder builder; _build_variant_code(builder, i, version, stage_templates[STAGE_TYPE_COMPUTE]); - RS::ShaderNativeSourceCode::Version::Stage stage; + RenderingServerTypes::ShaderNativeSourceCode::Version::Stage stage; stage.name = "compute"; stage.code = builder.as_string(); @@ -489,7 +489,7 @@ RS::ShaderNativeSourceCode ShaderRD::version_get_native_source_code(RID p_versio StringBuilder builder; _build_variant_code(builder, i, version, stage_templates[STAGE_TYPE_RAYGEN]); - RS::ShaderNativeSourceCode::Version::Stage stage; + RenderingServerTypes::ShaderNativeSourceCode::Version::Stage stage; stage.name = "raygen"; stage.code = builder.as_string(); @@ -501,7 +501,7 @@ RS::ShaderNativeSourceCode ShaderRD::version_get_native_source_code(RID p_versio StringBuilder builder; _build_variant_code(builder, i, version, stage_templates[STAGE_TYPE_ANY_HIT]); - RS::ShaderNativeSourceCode::Version::Stage stage; + RenderingServerTypes::ShaderNativeSourceCode::Version::Stage stage; stage.name = "any_hit"; stage.code = builder.as_string(); @@ -513,7 +513,7 @@ RS::ShaderNativeSourceCode ShaderRD::version_get_native_source_code(RID p_versio StringBuilder builder; _build_variant_code(builder, i, version, stage_templates[STAGE_TYPE_CLOSEST_HIT]); - RS::ShaderNativeSourceCode::Version::Stage stage; + RenderingServerTypes::ShaderNativeSourceCode::Version::Stage stage; stage.name = "closest_hit"; stage.code = builder.as_string(); @@ -525,7 +525,7 @@ RS::ShaderNativeSourceCode ShaderRD::version_get_native_source_code(RID p_versio StringBuilder builder; _build_variant_code(builder, i, version, stage_templates[STAGE_TYPE_MISS]); - RS::ShaderNativeSourceCode::Version::Stage stage; + RenderingServerTypes::ShaderNativeSourceCode::Version::Stage stage; stage.name = "miss"; stage.code = builder.as_string(); @@ -537,7 +537,7 @@ RS::ShaderNativeSourceCode ShaderRD::version_get_native_source_code(RID p_versio StringBuilder builder; _build_variant_code(builder, i, version, stage_templates[STAGE_TYPE_INTERSECTION]); - RS::ShaderNativeSourceCode::Version::Stage stage; + RenderingServerTypes::ShaderNativeSourceCode::Version::Stage stage; stage.name = "intersection"; stage.code = builder.as_string(); diff --git a/servers/rendering/renderer_rd/shader_rd.h b/servers/rendering/renderer_rd/shader_rd.h index 1ead979b88..9ec4cbd0c8 100644 --- a/servers/rendering/renderer_rd/shader_rd.h +++ b/servers/rendering/renderer_rd/shader_rd.h @@ -31,13 +31,13 @@ #pragma once #include "core/os/mutex.h" -#include "core/string/string_builder.h" #include "core/templates/hash_map.h" #include "core/templates/local_vector.h" #include "core/templates/rid_owner.h" -#include "core/templates/self_list.h" #include "servers/rendering/rendering_device.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_types.h" + +class StringBuilder; class ShaderRD { public: @@ -263,7 +263,7 @@ public: static PackedByteArray save_shader_cache_bytes(const LocalVector &p_variants, const Vector> &p_variant_data); Vector version_build_variant_stage_sources(RID p_version, int p_variant); - RS::ShaderNativeSourceCode version_get_native_source_code(RID p_version); + RenderingServerTypes::ShaderNativeSourceCode version_get_native_source_code(RID p_version); String version_get_cache_file_relative_path(RID p_version, int p_group, const String &p_api_name); struct DynamicBuffer { diff --git a/servers/rendering/renderer_rd/storage_rd/material_storage.cpp b/servers/rendering/renderer_rd/storage_rd/material_storage.cpp index e6a6a100d7..a4960e0f5a 100644 --- a/servers/rendering/renderer_rd/storage_rd/material_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/material_storage.cpp @@ -29,13 +29,15 @@ /**************************************************************************/ #include "material_storage.h" + #include "core/config/engine.h" #include "core/config/project_settings.h" #include "core/io/resource_loader.h" +#include "core/math/projection.h" +#include "core/templates/local_vector.h" #include "servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.h" #include "servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.h" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" -#include "servers/rendering/rendering_server.h" #include "servers/rendering/storage/variant_converters.h" using namespace RendererRD; @@ -1376,7 +1378,7 @@ bool MaterialStorage::TexBlitShaderData::casts_shadows() const { return false; } -RS::ShaderNativeSourceCode MaterialStorage::TexBlitShaderData::get_native_source_code() const { +RenderingServerTypes::ShaderNativeSourceCode MaterialStorage::TexBlitShaderData::get_native_source_code() const { return TextureStorage::get_singleton()->tex_blit_shader.shader.version_get_native_source_code(version); } @@ -2348,13 +2350,13 @@ MaterialStorage::ShaderData *MaterialStorage::shader_get_data(RID p_shader) cons return shader->data; } -RS::ShaderNativeSourceCode MaterialStorage::shader_get_native_source_code(RID p_shader) const { +RenderingServerTypes::ShaderNativeSourceCode MaterialStorage::shader_get_native_source_code(RID p_shader) const { Shader *shader = shader_owner.get_or_null(p_shader); - ERR_FAIL_NULL_V(shader, RS::ShaderNativeSourceCode()); + ERR_FAIL_NULL_V(shader, RenderingServerTypes::ShaderNativeSourceCode()); if (shader->data) { return shader->data->get_native_source_code(); } - return RS::ShaderNativeSourceCode(); + return RenderingServerTypes::ShaderNativeSourceCode(); } void MaterialStorage::shader_embedded_set_lock() { diff --git a/servers/rendering/renderer_rd/storage_rd/material_storage.h b/servers/rendering/renderer_rd/storage_rd/material_storage.h index 2a3b83ccce..b5e1f0952b 100644 --- a/servers/rendering/renderer_rd/storage_rd/material_storage.h +++ b/servers/rendering/renderer_rd/storage_rd/material_storage.h @@ -32,16 +32,17 @@ #include "texture_storage.h" -#include "core/math/projection.h" -#include "core/templates/local_vector.h" #include "core/templates/rid_owner.h" #include "core/templates/self_list.h" #include "servers/rendering/renderer_rd/pipeline_cache_rd.h" +#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/shader_compiler.h" #include "servers/rendering/shader_language.h" #include "servers/rendering/storage/material_storage.h" #include "servers/rendering/storage/utilities.h" +struct Projection; + namespace RendererRD { class MaterialStorage : public RendererMaterialStorage { @@ -81,7 +82,7 @@ public: virtual void set_code(const String &p_Code) = 0; virtual bool is_animated() const = 0; virtual bool casts_shadows() const = 0; - virtual RS::ShaderNativeSourceCode get_native_source_code() const = 0; + virtual RenderingServerTypes::ShaderNativeSourceCode get_native_source_code() const = 0; virtual Pair get_native_shader_and_version() const = 0; virtual ~ShaderData() {} @@ -155,7 +156,7 @@ public: virtual void set_code(const String &p_Code); virtual bool is_animated() const; virtual bool casts_shadows() const; - virtual RS::ShaderNativeSourceCode get_native_source_code() const; + virtual RenderingServerTypes::ShaderNativeSourceCode get_native_source_code() const; virtual Pair get_native_shader_and_version() const; TexBlitShaderData(); @@ -473,7 +474,7 @@ public: void shader_set_data_request_function(ShaderType p_shader_type, ShaderDataRequestFunction p_function); ShaderData *shader_get_data(RID p_shader) const; - virtual RS::ShaderNativeSourceCode shader_get_native_source_code(RID p_shader) const override; + virtual RenderingServerTypes::ShaderNativeSourceCode shader_get_native_source_code(RID p_shader) const override; virtual void shader_embedded_set_lock() override; virtual const HashSet &shader_embedded_set_get() const override; virtual void shader_embedded_set_unlock() override; diff --git a/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp b/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp index ef2c981254..2fa4696282 100644 --- a/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp @@ -30,9 +30,9 @@ #include "particles_storage.h" +#include "servers/rendering/renderer_rd/effects/sort_effects.h" #include "servers/rendering/renderer_rd/renderer_compositor_rd.h" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" -#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_globals.h" using namespace RendererRD; @@ -1751,7 +1751,7 @@ bool ParticlesStorage::ParticlesShaderData::casts_shadows() const { return false; } -RS::ShaderNativeSourceCode ParticlesStorage::ParticlesShaderData::get_native_source_code() const { +RenderingServerTypes::ShaderNativeSourceCode ParticlesStorage::ParticlesShaderData::get_native_source_code() const { return ParticlesStorage::get_singleton()->particles_shader.shader.version_get_native_source_code(version); } diff --git a/servers/rendering/renderer_rd/storage_rd/particles_storage.h b/servers/rendering/renderer_rd/storage_rd/particles_storage.h index 9a1df1320e..2c5008f000 100644 --- a/servers/rendering/renderer_rd/storage_rd/particles_storage.h +++ b/servers/rendering/renderer_rd/storage_rd/particles_storage.h @@ -33,17 +33,19 @@ #include "core/templates/local_vector.h" #include "core/templates/rid_owner.h" #include "core/templates/self_list.h" -#include "servers/rendering/renderer_rd/effects/sort_effects.h" #include "servers/rendering/renderer_rd/pipeline_deferred_rd.h" #include "servers/rendering/renderer_rd/shaders/particles.glsl.gen.h" #include "servers/rendering/renderer_rd/shaders/particles_copy.glsl.gen.h" #include "servers/rendering/renderer_rd/storage_rd/material_storage.h" +#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/shader_compiler.h" #include "servers/rendering/storage/particles_storage.h" #include "servers/rendering/storage/utilities.h" namespace RendererRD { +class SortEffects; + class ParticlesStorage : public RendererParticlesStorage { private: static ParticlesStorage *singleton; @@ -364,7 +366,7 @@ private: virtual void set_code(const String &p_Code); virtual bool is_animated() const; virtual bool casts_shadows() const; - virtual RS::ShaderNativeSourceCode get_native_source_code() const; + virtual RenderingServerTypes::ShaderNativeSourceCode get_native_source_code() const; virtual Pair get_native_shader_and_version() const; ParticlesShaderData() {} diff --git a/servers/rendering/rendering_server.h b/servers/rendering/rendering_server.h index 23de7773fc..6de785dfa8 100644 --- a/servers/rendering/rendering_server.h +++ b/servers/rendering/rendering_server.h @@ -183,18 +183,7 @@ public: virtual void shader_set_default_texture_parameter(RID p_shader, const StringName &p_name, RID p_texture, int p_index = 0) = 0; virtual RID shader_get_default_texture_parameter(RID p_shader, const StringName &p_name, int p_index = 0) const = 0; - struct ShaderNativeSourceCode { - struct Version { - struct Stage { - String name; - String code; - }; - Vector stages; - }; - Vector versions; - }; - - virtual ShaderNativeSourceCode shader_get_native_source_code(RID p_shader) const = 0; + virtual RenderingServerTypes::ShaderNativeSourceCode shader_get_native_source_code(RID p_shader) const = 0; /* COMMON MATERIAL API */ diff --git a/servers/rendering/rendering_server_default.h b/servers/rendering/rendering_server_default.h index ab14449e62..9677ec375d 100644 --- a/servers/rendering/rendering_server_default.h +++ b/servers/rendering/rendering_server_default.h @@ -314,7 +314,7 @@ public: FUNC3RC(RID, shader_get_default_texture_parameter, RID, const StringName &, int) FUNC2RC(Variant, shader_get_parameter_default, RID, const StringName &) - FUNC1RC(ShaderNativeSourceCode, shader_get_native_source_code, RID) + FUNC1RC(RenderingServerTypes::ShaderNativeSourceCode, shader_get_native_source_code, RID) /* COMMON MATERIAL API */ diff --git a/servers/rendering/rendering_server_types.h b/servers/rendering/rendering_server_types.h index 60c124cdec..c75e286b72 100644 --- a/servers/rendering/rendering_server_types.h +++ b/servers/rendering/rendering_server_types.h @@ -35,12 +35,26 @@ #include "core/math/vector2.h" #include "core/string/ustring.h" #include "core/templates/rid.h" +#include "core/templates/vector.h" #include "servers/rendering/rendering_server_enums.h" #include namespace RenderingServerTypes { +/* SHADER API */ + +struct ShaderNativeSourceCode { + struct Version { + struct Stage { + String name; + String code; + }; + Vector stages; + }; + Vector versions; +}; + /* STATUS INFORMATION */ struct FrameProfileArea { diff --git a/servers/rendering/shader_language.h b/servers/rendering/shader_language.h index 164a1ef467..8c194cb1ba 100644 --- a/servers/rendering/shader_language.h +++ b/servers/rendering/shader_language.h @@ -38,10 +38,9 @@ #include "core/templates/safe_refcount.h" #include "core/typedefs.h" #include "core/variant/variant.h" -#include "scene/resources/shader_include.h" #ifdef DEBUG_ENABLED -#include "shader_warnings.h" +#include "servers/rendering/shader_warnings.h" #endif // DEBUG_ENABLED class ShaderLanguage { diff --git a/servers/rendering/storage/material_storage.h b/servers/rendering/storage/material_storage.h index 8e226cda03..b10b036d1c 100644 --- a/servers/rendering/storage/material_storage.h +++ b/servers/rendering/storage/material_storage.h @@ -30,9 +30,10 @@ #pragma once -#include "servers/rendering/rendering_server.h" +#include "core/object/object.h" #include "servers/rendering/rendering_server_enums.h" -#include "utilities.h" +#include "servers/rendering/rendering_server_types.h" +#include "servers/rendering/storage/utilities.h" class RendererMaterialStorage { public: @@ -69,7 +70,7 @@ public: virtual RID shader_get_default_texture_parameter(RID p_shader, const StringName &p_name, int p_index) const = 0; virtual Variant shader_get_parameter_default(RID p_material, const StringName &p_param) const = 0; - virtual RS::ShaderNativeSourceCode shader_get_native_source_code(RID p_shader) const = 0; + virtual RenderingServerTypes::ShaderNativeSourceCode shader_get_native_source_code(RID p_shader) const = 0; virtual void shader_embedded_set_lock() = 0; virtual const HashSet &shader_embedded_set_get() const = 0; virtual void shader_embedded_set_unlock() = 0; From a85df7cc73892c22a28feb300d982537760126dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Thu, 19 Feb 2026 23:50:20 +0100 Subject: [PATCH 08/13] Minimize includes in `renderer_compositor.h` --- drivers/gles3/environment/fog.cpp | 3 +++ drivers/gles3/environment/gi.cpp | 6 +++++ servers/rendering/dummy/rasterizer_dummy.h | 2 ++ .../rendering/dummy/rasterizer_scene_dummy.h | 2 +- .../dummy/storage/material_storage.h | 3 ++- servers/rendering/dummy/storage/utilities.cpp | 8 +++--- servers/rendering/environment/renderer_fog.h | 6 ++++- servers/rendering/environment/renderer_gi.h | 11 +++++++- servers/rendering/renderer_canvas_cull.h | 6 ++--- servers/rendering/renderer_canvas_render.cpp | 1 + servers/rendering/renderer_canvas_render.h | 3 ++- servers/rendering/renderer_compositor.h | 27 ++++++++++++------- servers/rendering/renderer_scene_render.cpp | 2 ++ servers/rendering/rendering_method.h | 6 +++-- 14 files changed, 62 insertions(+), 24 deletions(-) diff --git a/drivers/gles3/environment/fog.cpp b/drivers/gles3/environment/fog.cpp index 40152c0f18..7435f3a5c7 100644 --- a/drivers/gles3/environment/fog.cpp +++ b/drivers/gles3/environment/fog.cpp @@ -32,6 +32,9 @@ #ifdef GLES3_ENABLED +#include "core/math/aabb.h" +#include "core/templates/rid.h" + using namespace GLES3; /* FOG */ diff --git a/drivers/gles3/environment/gi.cpp b/drivers/gles3/environment/gi.cpp index b18fb172cc..6b6d774ca4 100644 --- a/drivers/gles3/environment/gi.cpp +++ b/drivers/gles3/environment/gi.cpp @@ -32,6 +32,12 @@ #ifdef GLES3_ENABLED +#include "core/math/aabb.h" +#include "core/math/transform_3d.h" +#include "core/math/vector3i.h" +#include "core/templates/rid.h" +#include "core/templates/vector.h" + using namespace GLES3; /* VOXEL GI API */ diff --git a/servers/rendering/dummy/rasterizer_dummy.h b/servers/rendering/dummy/rasterizer_dummy.h index e95871510b..e800f40bd7 100644 --- a/servers/rendering/dummy/rasterizer_dummy.h +++ b/servers/rendering/dummy/rasterizer_dummy.h @@ -30,6 +30,7 @@ #pragma once +#include "servers/display/display_server.h" #include "servers/rendering/dummy/environment/fog.h" #include "servers/rendering/dummy/environment/gi.h" #include "servers/rendering/dummy/rasterizer_canvas_dummy.h" @@ -41,6 +42,7 @@ #include "servers/rendering/dummy/storage/texture_storage.h" #include "servers/rendering/dummy/storage/utilities.h" #include "servers/rendering/renderer_compositor.h" +#include "servers/rendering/rendering_server_enums.h" class RasterizerDummy : public RendererCompositor { private: diff --git a/servers/rendering/dummy/rasterizer_scene_dummy.h b/servers/rendering/dummy/rasterizer_scene_dummy.h index 02f74f72dc..bfc74bea80 100644 --- a/servers/rendering/dummy/rasterizer_scene_dummy.h +++ b/servers/rendering/dummy/rasterizer_scene_dummy.h @@ -31,9 +31,9 @@ #pragma once #include "core/templates/paged_allocator.h" +#include "servers/rendering/dummy/storage/utilities.h" #include "servers/rendering/renderer_scene_render.h" #include "servers/rendering/rendering_server_globals.h" -#include "storage/utilities.h" class RasterizerSceneDummy : public RendererSceneRender { public: diff --git a/servers/rendering/dummy/storage/material_storage.h b/servers/rendering/dummy/storage/material_storage.h index 46ac7b1bd5..3d7e5a9cc9 100644 --- a/servers/rendering/dummy/storage/material_storage.h +++ b/servers/rendering/dummy/storage/material_storage.h @@ -35,7 +35,8 @@ #include "servers/rendering/shader_compiler.h" #include "servers/rendering/shader_language.h" #include "servers/rendering/storage/material_storage.h" -#include "servers/rendering/storage/utilities.h" + +class DependencyTracker; namespace RendererDummy { diff --git a/servers/rendering/dummy/storage/utilities.cpp b/servers/rendering/dummy/storage/utilities.cpp index 2d6babec51..a4c114c3be 100644 --- a/servers/rendering/dummy/storage/utilities.cpp +++ b/servers/rendering/dummy/storage/utilities.cpp @@ -30,10 +30,10 @@ #include "utilities.h" -#include "light_storage.h" -#include "material_storage.h" -#include "mesh_storage.h" -#include "texture_storage.h" +#include "servers/rendering/dummy/storage/light_storage.h" +#include "servers/rendering/dummy/storage/material_storage.h" +#include "servers/rendering/dummy/storage/mesh_storage.h" +#include "servers/rendering/dummy/storage/texture_storage.h" using namespace RendererDummy; diff --git a/servers/rendering/environment/renderer_fog.h b/servers/rendering/environment/renderer_fog.h index 334e562990..693cfcbcd4 100644 --- a/servers/rendering/environment/renderer_fog.h +++ b/servers/rendering/environment/renderer_fog.h @@ -30,7 +30,11 @@ #pragma once -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_enums.h" + +class RID; +struct AABB; +struct Vector3; class RendererFog { public: diff --git a/servers/rendering/environment/renderer_gi.h b/servers/rendering/environment/renderer_gi.h index 7f2c21cb1e..972b12e123 100644 --- a/servers/rendering/environment/renderer_gi.h +++ b/servers/rendering/environment/renderer_gi.h @@ -30,7 +30,16 @@ #pragma once -#include "servers/rendering/rendering_server.h" +#include + +class RID; +struct AABB; +struct Transform3D; +struct Vector3; +struct Vector3i; + +template +class Vector; class RendererGI { public: diff --git a/servers/rendering/renderer_canvas_cull.h b/servers/rendering/renderer_canvas_cull.h index 401e1acb29..7fad91fc24 100644 --- a/servers/rendering/renderer_canvas_cull.h +++ b/servers/rendering/renderer_canvas_cull.h @@ -31,10 +31,10 @@ #pragma once #include "core/templates/paged_allocator.h" -#include "renderer_compositor.h" -#include "renderer_viewport.h" #include "servers/rendering/instance_uniforms.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/renderer_canvas_render.h" +#include "servers/rendering/renderer_compositor.h" +#include "servers/rendering/renderer_viewport.h" #include "servers/rendering/rendering_server_enums.h" class RendererCanvasCull { diff --git a/servers/rendering/renderer_canvas_render.cpp b/servers/rendering/renderer_canvas_render.cpp index 6eb7bab9c9..a6ad263d1d 100644 --- a/servers/rendering/renderer_canvas_render.cpp +++ b/servers/rendering/renderer_canvas_render.cpp @@ -29,6 +29,7 @@ /**************************************************************************/ #include "renderer_canvas_render.h" + #include "servers/rendering/rendering_server_globals.h" RendererCanvasRender *RendererCanvasRender::singleton = nullptr; diff --git a/servers/rendering/renderer_canvas_render.h b/servers/rendering/renderer_canvas_render.h index 2db15b10a1..a810dcc725 100644 --- a/servers/rendering/renderer_canvas_render.h +++ b/servers/rendering/renderer_canvas_render.h @@ -31,9 +31,10 @@ #pragma once #include "servers/rendering/rendering_method.h" -#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_enums.h" +class RenderingServer; + class RendererCanvasRender { public: static RendererCanvasRender *singleton; diff --git a/servers/rendering/renderer_compositor.h b/servers/rendering/renderer_compositor.h index 78091ff309..964af9384a 100644 --- a/servers/rendering/renderer_compositor.h +++ b/servers/rendering/renderer_compositor.h @@ -30,17 +30,24 @@ #pragma once -#include "servers/rendering/environment/renderer_fog.h" -#include "servers/rendering/environment/renderer_gi.h" -#include "servers/rendering/renderer_canvas_render.h" -#include "servers/rendering/renderer_scene_render.h" +#include "servers/display/display_server.h" +#include "servers/rendering/rendering_server_enums.h" #include "servers/rendering/rendering_server_types.h" -#include "servers/rendering/storage/light_storage.h" -#include "servers/rendering/storage/material_storage.h" -#include "servers/rendering/storage/mesh_storage.h" -#include "servers/rendering/storage/particles_storage.h" -#include "servers/rendering/storage/texture_storage.h" -#include "servers/rendering/storage/utilities.h" + +class RendererCanvasRender; +class RendererSceneRender; + +class RendererFog; +class RendererGI; +class RendererLightStorage; +class RendererMaterialStorage; +class RendererMeshStorage; +class RendererParticlesStorage; +class RendererTextureStorage; +class RendererUtilities; + +class Image; +struct Color; class RendererCompositor { private: diff --git a/servers/rendering/renderer_scene_render.cpp b/servers/rendering/renderer_scene_render.cpp index fec5740ea3..597d520c07 100644 --- a/servers/rendering/renderer_scene_render.cpp +++ b/servers/rendering/renderer_scene_render.cpp @@ -30,6 +30,8 @@ #include "renderer_scene_render.h" +#include "core/variant/typed_array.h" + ///////////////////////////////////////////////////////////////////////////// // CameraData diff --git a/servers/rendering/rendering_method.h b/servers/rendering/rendering_method.h index c81a90e277..4e33fab912 100644 --- a/servers/rendering/rendering_method.h +++ b/servers/rendering/rendering_method.h @@ -30,9 +30,8 @@ #pragma once -#include "servers/rendering/rendering_server.h" +#include "core/variant/variant.h" #include "servers/rendering/rendering_server_enums.h" -#include "servers/rendering/storage/render_scene_buffers.h" #ifdef XR_DISABLED // RendererSceneCull::render_camera is empty when XR is disabled, but @@ -42,6 +41,9 @@ class XRInterface; #endif // XR_DISABLED +class Image; +class RenderSceneBuffers; + class RenderingMethod { public: virtual RID camera_allocate() = 0; From cb9b4cff9051e6acfbae06c0553012118117f30a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Wed, 18 Feb 2026 17:44:35 +0100 Subject: [PATCH 09/13] Decouple MeshStorage from RenderingServer By moving RS::SurfaceData and RS::MeshInfo to RenderingServerTypes. This notably allows removing RS dependency from `mesh.h`. --- drivers/gles3/storage/mesh_storage.cpp | 14 ++--- drivers/gles3/storage/mesh_storage.h | 7 +-- scene/2d/polygon_2d.cpp | 6 +- scene/3d/label_3d.cpp | 2 +- scene/3d/physics/soft_body_3d.cpp | 2 +- scene/3d/sprite_3d.cpp | 2 +- scene/3d/voxelizer.cpp | 1 + scene/3d/voxelizer.h | 2 + scene/debugger/runtime_node_select.cpp | 12 ++++ scene/debugger/runtime_node_select.h | 17 ++---- scene/resources/3d/mesh_library.cpp | 1 + scene/resources/immediate_mesh.cpp | 2 +- scene/resources/mesh.cpp | 15 ++--- scene/resources/mesh.h | 4 +- servers/debugger/servers_debugger.cpp | 4 +- .../rendering/dummy/storage/mesh_storage.h | 18 +++--- .../renderer_rd/storage_rd/mesh_storage.cpp | 19 ++++--- .../renderer_rd/storage_rd/mesh_storage.h | 8 +-- servers/rendering/rendering_server.cpp | 53 ++++++++---------- servers/rendering/rendering_server.h | 56 +++---------------- servers/rendering/rendering_server_default.h | 14 ++--- servers/rendering/rendering_server_types.h | 50 +++++++++++++++++ servers/rendering/storage/mesh_storage.cpp | 6 +- servers/rendering/storage/mesh_storage.h | 13 +++-- tests/scene/test_arraymesh.cpp | 3 +- 25 files changed, 172 insertions(+), 159 deletions(-) diff --git a/drivers/gles3/storage/mesh_storage.cpp b/drivers/gles3/storage/mesh_storage.cpp index b45b7f7d5b..6f58fc21c5 100644 --- a/drivers/gles3/storage/mesh_storage.cpp +++ b/drivers/gles3/storage/mesh_storage.cpp @@ -105,7 +105,7 @@ bool MeshStorage::mesh_needs_instance(RID p_mesh, bool p_has_skeleton) { return mesh->blend_shape_count > 0 || (mesh->has_bone_weights && p_has_skeleton); } -void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) { +void MeshStorage::mesh_add_surface(RID p_mesh, const RenderingServerTypes::SurfaceData &p_surface) { Mesh *mesh = mesh_owner.get_or_null(p_mesh); ERR_FAIL_NULL(mesh); @@ -194,7 +194,7 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) #endif uint64_t surface_version = p_surface.format & (uint64_t(RSE::ARRAY_FLAG_FORMAT_VERSION_MASK) << RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT); - RS::SurfaceData new_surface = p_surface; + RenderingServerTypes::SurfaceData new_surface = p_surface; #ifdef DISABLE_DEPRECATED ERR_FAIL_COND_MSG(surface_version != RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION, "Surface version provided (" + itos(int(surface_version >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT)) + ") does not match current version (" + itos(RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT) + ")"); @@ -612,14 +612,14 @@ RID MeshStorage::mesh_surface_get_material(RID p_mesh, int p_surface) const { return mesh->surfaces[p_surface]->material; } -RS::SurfaceData MeshStorage::mesh_get_surface(RID p_mesh, int p_surface) const { +RenderingServerTypes::SurfaceData MeshStorage::mesh_get_surface(RID p_mesh, int p_surface) const { Mesh *mesh = mesh_owner.get_or_null(p_mesh); - ERR_FAIL_NULL_V(mesh, RS::SurfaceData()); - ERR_FAIL_UNSIGNED_INDEX_V((uint32_t)p_surface, mesh->surface_count, RS::SurfaceData()); + ERR_FAIL_NULL_V(mesh, RenderingServerTypes::SurfaceData()); + ERR_FAIL_UNSIGNED_INDEX_V((uint32_t)p_surface, mesh->surface_count, RenderingServerTypes::SurfaceData()); Mesh::Surface &s = *mesh->surfaces[p_surface]; - RS::SurfaceData sd; + RenderingServerTypes::SurfaceData sd; sd.format = s.format; if (s.vertex_buffer != 0) { sd.vertex_data = Utilities::buffer_get_data(GL_ARRAY_BUFFER, s.vertex_buffer, s.vertex_buffer_size); @@ -648,7 +648,7 @@ RS::SurfaceData MeshStorage::mesh_get_surface(RID p_mesh, int p_surface) const { sd.aabb = s.aabb; for (uint32_t i = 0; i < s.lod_count; i++) { - RS::SurfaceData::LOD lod; + RenderingServerTypes::SurfaceData::LOD lod; lod.edge_length = s.lods[i].edge_length; lod.index_data = Utilities::buffer_get_data(GL_ELEMENT_ARRAY_BUFFER, s.lods[i].index_buffer, s.lods[i].index_buffer_size); sd.lods.push_back(lod); diff --git a/drivers/gles3/storage/mesh_storage.h b/drivers/gles3/storage/mesh_storage.h index 60d0ba1050..d19ee9bf08 100644 --- a/drivers/gles3/storage/mesh_storage.h +++ b/drivers/gles3/storage/mesh_storage.h @@ -36,7 +36,6 @@ #include "core/templates/rid_owner.h" #include "core/templates/self_list.h" #include "drivers/gles3/shaders/skeleton.glsl.gen.h" -#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_enums.h" #include "servers/rendering/rendering_server_globals.h" #include "servers/rendering/storage/mesh_storage.h" @@ -305,7 +304,7 @@ public: virtual void mesh_set_blend_shape_count(RID p_mesh, int p_blend_shape_count) override; virtual bool mesh_needs_instance(RID p_mesh, bool p_has_skeleton) override; - virtual void mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) override; + virtual void mesh_add_surface(RID p_mesh, const RenderingServerTypes::SurfaceData &p_surface) override; virtual int mesh_get_blend_shape_count(RID p_mesh) const override; @@ -320,7 +319,7 @@ public: virtual void mesh_surface_set_material(RID p_mesh, int p_surface, RID p_material) override; virtual RID mesh_surface_get_material(RID p_mesh, int p_surface) const override; - virtual RS::SurfaceData mesh_get_surface(RID p_mesh, int p_surface) const override; + virtual RenderingServerTypes::SurfaceData mesh_get_surface(RID p_mesh, int p_surface) const override; virtual int mesh_get_surface_count(RID p_mesh) const override; virtual void mesh_set_custom_aabb(RID p_mesh, const AABB &p_aabb) override; @@ -334,7 +333,7 @@ public: virtual void mesh_clear(RID p_mesh) override; virtual void mesh_surface_remove(RID p_mesh, int p_surface) override; - virtual void mesh_debug_usage(List *r_info) override {} + virtual void mesh_debug_usage(List *r_info) override {} _FORCE_INLINE_ const RID *mesh_get_surface_count_and_materials(RID p_mesh, uint32_t &r_surface_count) { Mesh *mesh = mesh_owner.get_or_null(p_mesh); diff --git a/scene/2d/polygon_2d.cpp b/scene/2d/polygon_2d.cpp index 5cb857671d..97d548f0fd 100644 --- a/scene/2d/polygon_2d.cpp +++ b/scene/2d/polygon_2d.cpp @@ -31,13 +31,13 @@ #include "polygon_2d.h" #include "core/math/geometry_2d.h" -#include "skeleton_2d.h" +#include "scene/2d/skeleton_2d.h" +#include "servers/rendering/rendering_server.h" #ifndef NAVIGATION_2D_DISABLED #include "scene/resources/2d/navigation_mesh_source_geometry_data_2d.h" #include "scene/resources/2d/navigation_polygon.h" #include "servers/navigation_2d/navigation_server_2d.h" -#include "servers/rendering/rendering_server.h" Callable Polygon2D::_navmesh_source_geometry_parsing_callback; RID Polygon2D::_navmesh_source_geometry_parser; @@ -375,7 +375,7 @@ void Polygon2D::_notification(int p_what) { arr[RSE::ARRAY_INDEX] = index_array; - RS::SurfaceData sd; + RenderingServerTypes::SurfaceData sd; if (skeleton_node) { // Compute transform between mesh and skeleton for runtime AABB compute. diff --git a/scene/3d/label_3d.cpp b/scene/3d/label_3d.cpp index 89c1669005..2c2d8c97fc 100644 --- a/scene/3d/label_3d.cpp +++ b/scene/3d/label_3d.cpp @@ -649,7 +649,7 @@ void Label3D::_shape() { mesh_array[RSE::ARRAY_TEX_UV] = E.value.mesh_uvs; mesh_array[RSE::ARRAY_INDEX] = E.value.indices; - RS::SurfaceData sd; + RenderingServerTypes::SurfaceData sd; RS::get_singleton()->mesh_create_surface_data_from_arrays(&sd, RSE::PRIMITIVE_TRIANGLES, mesh_array); sd.material = E.value.material; diff --git a/scene/3d/physics/soft_body_3d.cpp b/scene/3d/physics/soft_body_3d.cpp index 15dd17f894..e95fdd7341 100644 --- a/scene/3d/physics/soft_body_3d.cpp +++ b/scene/3d/physics/soft_body_3d.cpp @@ -44,7 +44,7 @@ void SoftBodyRenderingServerHandler::prepare(RID p_mesh, int p_surface) { mesh = p_mesh; surface = p_surface; - RS::SurfaceData surface_data = RS::get_singleton()->mesh_get_surface(mesh, surface); + RenderingServerTypes::SurfaceData surface_data = RS::get_singleton()->mesh_get_surface(mesh, surface); uint32_t surface_offsets[RSE::ARRAY_MAX]; uint32_t vertex_stride; diff --git a/scene/3d/sprite_3d.cpp b/scene/3d/sprite_3d.cpp index f80f55aa40..737b683b13 100644 --- a/scene/3d/sprite_3d.cpp +++ b/scene/3d/sprite_3d.cpp @@ -770,7 +770,7 @@ SpriteBase3D::SpriteBase3D() { mesh_array[RSE::ARRAY_TEX_UV] = mesh_uvs; mesh_array[RSE::ARRAY_INDEX] = indices; - RS::SurfaceData sd; + RenderingServerTypes::SurfaceData sd; RS::get_singleton()->mesh_create_surface_data_from_arrays(&sd, RSE::PRIMITIVE_TRIANGLES, mesh_array); mesh_surface_format = sd.format; diff --git a/scene/3d/voxelizer.cpp b/scene/3d/voxelizer.cpp index 155c406642..c3742b2757 100644 --- a/scene/3d/voxelizer.cpp +++ b/scene/3d/voxelizer.cpp @@ -31,6 +31,7 @@ #include "voxelizer.h" #include "core/config/project_settings.h" +#include "core/io/image.h" #include "core/math/geometry_3d.h" #include "scene/resources/curve.h" #include "scene/resources/texture.h" diff --git a/scene/3d/voxelizer.h b/scene/3d/voxelizer.h index 13e808cd21..55f870dfe6 100644 --- a/scene/3d/voxelizer.h +++ b/scene/3d/voxelizer.h @@ -32,6 +32,8 @@ #include "scene/resources/multimesh.h" +class Image; + class Voxelizer { public: enum BakeResult { diff --git a/scene/debugger/runtime_node_select.cpp b/scene/debugger/runtime_node_select.cpp index 11ca1e209d..c16cfe2536 100644 --- a/scene/debugger/runtime_node_select.cpp +++ b/scene/debugger/runtime_node_select.cpp @@ -42,6 +42,7 @@ #include "scene/debugger/scene_debugger_object.h" #include "scene/gui/popup_menu.h" #include "scene/main/canvas_layer.h" +#include "scene/resources/mesh.h" #include "scene/theme/theme_db.h" #include "servers/rendering/rendering_server.h" @@ -1155,6 +1156,7 @@ void RuntimeNodeSelect::_update_view_2d() { } #ifndef _3D_DISABLED + void RuntimeNodeSelect::_find_3d_items_at_pos(const Point2 &p_pos, Vector &r_items) { Window *root = SceneTree::get_singleton()->get_root(); @@ -1631,6 +1633,16 @@ void RuntimeNodeSelect::_reset_camera_3d() { override_camera->set_perspective(camera_fov * cursor.fov_scale, camera_znear, camera_zfar); } } + +RuntimeNodeSelect::SelectionBox3D::~SelectionBox3D() { + if (instance.is_valid()) { + RS::get_singleton()->free_rid(instance); + RS::get_singleton()->free_rid(instance_ofs); + RS::get_singleton()->free_rid(instance_xray); + RS::get_singleton()->free_rid(instance_xray_ofs); + } +} + #endif // _3D_DISABLED #endif // DEBUG_ENABLED diff --git a/scene/debugger/runtime_node_select.h b/scene/debugger/runtime_node_select.h index 724d821509..db97f24c90 100644 --- a/scene/debugger/runtime_node_select.h +++ b/scene/debugger/runtime_node_select.h @@ -35,16 +35,16 @@ #include "core/object/object.h" #include "scene/gui/view_panner.h" -#ifndef _3D_DISABLED -#include "scene/resources/mesh.h" -#endif // _3D_DISABLED - class InputEvent; class InputEventMouseMotion; class InputEventWithModifiers; class Node; class PopupMenu; +#ifndef _3D_DISABLED +class ArrayMesh; +#endif + class RuntimeNodeSelect : public Object { GDCLASS(RuntimeNodeSelect, Object); @@ -171,14 +171,7 @@ private: Transform3D transform; AABB bounds; - ~SelectionBox3D() { - if (instance.is_valid()) { - RS::get_singleton()->free_rid(instance); - RS::get_singleton()->free_rid(instance_ofs); - RS::get_singleton()->free_rid(instance_xray); - RS::get_singleton()->free_rid(instance_xray_ofs); - } - } + ~SelectionBox3D(); }; HashMap> selected_3d_nodes; diff --git a/scene/resources/3d/mesh_library.cpp b/scene/resources/3d/mesh_library.cpp index 2073b634d4..8a1b66ea38 100644 --- a/scene/resources/3d/mesh_library.cpp +++ b/scene/resources/3d/mesh_library.cpp @@ -31,6 +31,7 @@ #include "mesh_library.h" #include "scene/resources/texture.h" +#include "servers/rendering/rendering_server.h" // IWYU pragma: Needed to bind RSE enums. #ifndef PHYSICS_3D_DISABLED #include "box_shape_3d.h" diff --git a/scene/resources/immediate_mesh.cpp b/scene/resources/immediate_mesh.cpp index 76532d0d88..71cfacd6b2 100644 --- a/scene/resources/immediate_mesh.cpp +++ b/scene/resources/immediate_mesh.cpp @@ -277,7 +277,7 @@ void ImmediateMesh::surface_end() { } } - RS::SurfaceData sd; + RenderingServerTypes::SurfaceData sd; sd.primitive = RSE::PrimitiveType(active_surface_data.primitive); sd.format = format; diff --git a/scene/resources/mesh.cpp b/scene/resources/mesh.cpp index 8f8e0d3036..bdb0148fda 100644 --- a/scene/resources/mesh.cpp +++ b/scene/resources/mesh.cpp @@ -33,6 +33,7 @@ #include "core/math/convex_hull.h" #include "core/templates/pair.h" #include "scene/resources/surface_tool.h" +#include "servers/rendering/rendering_server.h" #ifndef PHYSICS_3D_DISABLED #include "scene/resources/3d/concave_polygon_shape_3d.h" @@ -1514,7 +1515,7 @@ Array ArrayMesh::_get_surfaces() const { Array ret; for (int i = 0; i < surfaces.size(); i++) { - RenderingServer::SurfaceData surface = RS::get_singleton()->mesh_get_surface(mesh, i); + RenderingServerTypes::SurfaceData surface = RS::get_singleton()->mesh_get_surface(mesh, i); Dictionary data; data["format"] = surface.format; data["primitive"] = surface.primitive; @@ -1583,13 +1584,13 @@ void ArrayMesh::_create_if_empty() const { } void ArrayMesh::_set_surfaces(const Array &p_surfaces) { - Vector surface_data; + Vector surface_data; Vector> surface_materials; Vector surface_names; Vector surface_2d; for (int i = 0; i < p_surfaces.size(); i++) { - RS::SurfaceData surface; + RenderingServerTypes::SurfaceData surface; Dictionary d = p_surfaces[i]; ERR_FAIL_COND(!d.has("format")); ERR_FAIL_COND(!d.has("primitive")); @@ -1622,7 +1623,7 @@ void ArrayMesh::_set_surfaces(const Array &p_surfaces) { Array lods = d["lods"]; ERR_FAIL_COND(lods.size() & 1); //must be even for (int j = 0; j < lods.size(); j += 2) { - RS::SurfaceData::LOD lod; + RenderingServerTypes::SurfaceData::LOD lod; lod.edge_length = lods[j + 0]; lod.index_data = lods[j + 1]; surface.lods.push_back(lod); @@ -1778,7 +1779,7 @@ void ArrayMesh::_recompute_aabb() { } // TODO: Need to add binding to add_surface using future MeshSurfaceData object. -void ArrayMesh::add_surface(BitField p_format, PrimitiveType p_primitive, const Vector &p_array, const Vector &p_attribute_array, const Vector &p_skin_array, int p_vertex_count, const Vector &p_index_array, int p_index_count, const AABB &p_aabb, const Vector &p_blend_shape_data, const Vector &p_bone_aabbs, const Vector &p_lods, const Vector4 p_uv_scale) { +void ArrayMesh::add_surface(BitField p_format, PrimitiveType p_primitive, const Vector &p_array, const Vector &p_attribute_array, const Vector &p_skin_array, int p_vertex_count, const Vector &p_index_array, int p_index_count, const AABB &p_aabb, const Vector &p_blend_shape_data, const Vector &p_bone_aabbs, const Vector &p_lods, const Vector4 p_uv_scale) { ERR_FAIL_COND(surfaces.size() == RSE::MAX_MESH_SURFACES); _create_if_empty(); @@ -1793,7 +1794,7 @@ void ArrayMesh::add_surface(BitField p_format, PrimitiveType p_prim surfaces.push_back(s); _recompute_aabb(); - RS::SurfaceData sd; + RenderingServerTypes::SurfaceData sd; sd.format = p_format; sd.primitive = RSE::PrimitiveType(p_primitive); sd.aabb = p_aabb; @@ -1819,7 +1820,7 @@ void ArrayMesh::add_surface_from_arrays(PrimitiveType p_primitive, const Array & ERR_FAIL_COND(p_blend_shapes.size() != blend_shapes.size()); ERR_FAIL_COND(p_arrays.size() != ARRAY_MAX); - RS::SurfaceData surface; + RenderingServerTypes::SurfaceData surface; Error err = RS::get_singleton()->mesh_create_surface_data_from_arrays(&surface, (RSE::PrimitiveType)p_primitive, p_arrays, p_blend_shapes, p_lods, p_flags); ERR_FAIL_COND(err != OK); diff --git a/scene/resources/mesh.h b/scene/resources/mesh.h index 9aba2e622c..4c28e5cf7b 100644 --- a/scene/resources/mesh.h +++ b/scene/resources/mesh.h @@ -35,8 +35,8 @@ #include "core/math/triangle_mesh.h" #include "core/variant/typed_array.h" #include "scene/resources/material.h" -#include "servers/rendering/rendering_server.h" // Needed for SurfaceData::LOD. #include "servers/rendering/rendering_server_enums.h" +#include "servers/rendering/rendering_server_types.h" #ifndef PHYSICS_3D_DISABLED #include "scene/resources/3d/shape_3d.h" @@ -345,7 +345,7 @@ protected: public: void add_surface_from_arrays(PrimitiveType p_primitive, const Array &p_arrays, const TypedArray &p_blend_shapes = TypedArray(), const Dictionary &p_lods = Dictionary(), BitField p_flags = 0); - void add_surface(BitField p_format, PrimitiveType p_primitive, const Vector &p_array, const Vector &p_attribute_array, const Vector &p_skin_array, int p_vertex_count, const Vector &p_index_array, int p_index_count, const AABB &p_aabb, const Vector &p_blend_shape_data = Vector(), const Vector &p_bone_aabbs = Vector(), const Vector &p_lods = Vector(), const Vector4 p_uv_scale = Vector4()); + void add_surface(BitField p_format, PrimitiveType p_primitive, const Vector &p_array, const Vector &p_attribute_array, const Vector &p_skin_array, int p_vertex_count, const Vector &p_index_array, int p_index_count, const AABB &p_aabb, const Vector &p_blend_shape_data = Vector(), const Vector &p_bone_aabbs = Vector(), const Vector &p_lods = Vector(), const Vector4 p_uv_scale = Vector4()); Array surface_get_arrays(int p_surface) const override; TypedArray surface_get_blend_shape_arrays(int p_surface) const override; diff --git a/servers/debugger/servers_debugger.cpp b/servers/debugger/servers_debugger.cpp index 0b550913ef..77d31538cb 100644 --- a/servers/debugger/servers_debugger.cpp +++ b/servers/debugger/servers_debugger.cpp @@ -462,10 +462,10 @@ void ServersDebugger::_send_resource_usage() { usage.infos.push_back(info); } - List mesh_info; + List mesh_info; RS::get_singleton()->mesh_debug_usage(&mesh_info); - for (const RS::MeshInfo &E : mesh_info) { + for (const RenderingServerTypes::MeshInfo &E : mesh_info) { ServersDebugger::ResourceInfo info; info.path = E.path; // We use 64-bit integers to avoid overflow, if for whatever reason, the sum is bigger than 4GB. diff --git a/servers/rendering/dummy/storage/mesh_storage.h b/servers/rendering/dummy/storage/mesh_storage.h index 2e86112c05..09bbd1f11c 100644 --- a/servers/rendering/dummy/storage/mesh_storage.h +++ b/servers/rendering/dummy/storage/mesh_storage.h @@ -36,7 +36,7 @@ namespace RendererDummy { struct DummyMesh { - Vector surfaces; + Vector surfaces; int blend_shape_count; RSE::BlendShapeMode blend_shape_mode; PackedFloat32Array blend_shape_values; @@ -76,11 +76,11 @@ public: } virtual bool mesh_needs_instance(RID p_mesh, bool p_has_skeleton) override { return false; } - virtual void mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) override { + virtual void mesh_add_surface(RID p_mesh, const RenderingServerTypes::SurfaceData &p_surface) override { DummyMesh *m = mesh_owner.get_or_null(p_mesh); ERR_FAIL_NULL(m); - m->surfaces.push_back(RS::SurfaceData()); - RS::SurfaceData *s = &m->surfaces.write[m->surfaces.size() - 1]; + m->surfaces.push_back(RenderingServerTypes::SurfaceData()); + RenderingServerTypes::SurfaceData *s = &m->surfaces.write[m->surfaces.size() - 1]; s->format = p_surface.format; s->primitive = p_surface.primitive; s->vertex_data = p_surface.vertex_data; @@ -125,11 +125,11 @@ public: virtual void mesh_surface_set_material(RID p_mesh, int p_surface, RID p_material) override {} virtual RID mesh_surface_get_material(RID p_mesh, int p_surface) const override { return RID(); } - virtual RS::SurfaceData mesh_get_surface(RID p_mesh, int p_surface) const override { + virtual RenderingServerTypes::SurfaceData mesh_get_surface(RID p_mesh, int p_surface) const override { DummyMesh *m = mesh_owner.get_or_null(p_mesh); - ERR_FAIL_NULL_V(m, RS::SurfaceData()); - ERR_FAIL_INDEX_V(p_surface, m->surfaces.size(), RS::SurfaceData()); - RS::SurfaceData s = m->surfaces[p_surface]; + ERR_FAIL_NULL_V(m, RenderingServerTypes::SurfaceData()); + ERR_FAIL_INDEX_V(p_surface, m->surfaces.size(), RenderingServerTypes::SurfaceData()); + RenderingServerTypes::SurfaceData s = m->surfaces[p_surface]; return s; } @@ -150,7 +150,7 @@ public: virtual void mesh_surface_remove(RID p_mesh, int p_surface) override; virtual void mesh_clear(RID p_mesh) override; - virtual void mesh_debug_usage(List *r_info) override {} + virtual void mesh_debug_usage(List *r_info) override {} /* MESH INSTANCE */ diff --git a/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp b/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp index 2ea8eafbef..81b6a3d473 100644 --- a/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp @@ -31,6 +31,7 @@ #include "mesh_storage.h" #include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_types.h" using namespace RendererRD; @@ -258,7 +259,7 @@ void MeshStorage::mesh_set_blend_shape_count(RID p_mesh, int p_blend_shape_count } /// Returns stride -void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) { +void MeshStorage::mesh_add_surface(RID p_mesh, const RenderingServerTypes::SurfaceData &p_surface) { Mesh *mesh = mesh_owner.get_or_null(p_mesh); ERR_FAIL_NULL(mesh); @@ -350,7 +351,7 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) #endif uint64_t surface_version = p_surface.format & (uint64_t(RSE::ARRAY_FLAG_FORMAT_VERSION_MASK) << RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT); - RS::SurfaceData new_surface = p_surface; + RenderingServerTypes::SurfaceData new_surface = p_surface; #ifdef DISABLE_DEPRECATED ERR_FAIL_COND_MSG(surface_version != RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION, "Surface version provided (" + itos(int(surface_version >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT)) + ") does not match current version (" + itos(RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT) + ")"); @@ -636,14 +637,14 @@ RID MeshStorage::mesh_surface_get_material(RID p_mesh, int p_surface) const { return mesh->surfaces[p_surface]->material; } -RS::SurfaceData MeshStorage::mesh_get_surface(RID p_mesh, int p_surface) const { +RenderingServerTypes::SurfaceData MeshStorage::mesh_get_surface(RID p_mesh, int p_surface) const { Mesh *mesh = mesh_owner.get_or_null(p_mesh); - ERR_FAIL_NULL_V(mesh, RS::SurfaceData()); - ERR_FAIL_UNSIGNED_INDEX_V((uint32_t)p_surface, mesh->surface_count, RS::SurfaceData()); + ERR_FAIL_NULL_V(mesh, RenderingServerTypes::SurfaceData()); + ERR_FAIL_UNSIGNED_INDEX_V((uint32_t)p_surface, mesh->surface_count, RenderingServerTypes::SurfaceData()); Mesh::Surface &s = *mesh->surfaces[p_surface]; - RS::SurfaceData sd; + RenderingServerTypes::SurfaceData sd; sd.format = s.format; if (s.vertex_buffer.is_valid()) { sd.vertex_data = RD::get_singleton()->buffer_get_data(s.vertex_buffer); @@ -668,7 +669,7 @@ RS::SurfaceData MeshStorage::mesh_get_surface(RID p_mesh, int p_surface) const { sd.aabb = s.aabb; sd.uv_scale = s.uv_scale; for (uint32_t i = 0; i < s.lod_count; i++) { - RS::SurfaceData::LOD lod; + RenderingServerTypes::SurfaceData::LOD lod; lod.edge_length = s.lods[i].edge_length; lod.index_data = RD::get_singleton()->buffer_get_data(s.lods[i].index_buffer); sd.lods.push_back(lod); @@ -939,13 +940,13 @@ void MeshStorage::mesh_surface_remove(RID p_mesh, int p_surface) { } } -void MeshStorage::mesh_debug_usage(List *r_info) { +void MeshStorage::mesh_debug_usage(List *r_info) { for (const RID &mesh_rid : mesh_owner.get_owned_list()) { Mesh *mesh = mesh_owner.get_or_null(mesh_rid); if (!mesh) { continue; } - RS::MeshInfo mesh_info; + RenderingServerTypes::MeshInfo mesh_info; mesh_info.mesh = mesh_rid; mesh_info.path = mesh->path; diff --git a/servers/rendering/renderer_rd/storage_rd/mesh_storage.h b/servers/rendering/renderer_rd/storage_rd/mesh_storage.h index c3d5e70d39..953124ccbc 100644 --- a/servers/rendering/renderer_rd/storage_rd/mesh_storage.h +++ b/servers/rendering/renderer_rd/storage_rd/mesh_storage.h @@ -30,11 +30,11 @@ #pragma once -#include "../../rendering_server_globals.h" #include "core/templates/local_vector.h" #include "core/templates/rid_owner.h" #include "core/templates/self_list.h" #include "servers/rendering/renderer_rd/shaders/skeleton.glsl.gen.h" +#include "servers/rendering/rendering_server_globals.h" #include "servers/rendering/storage/mesh_storage.h" #include "servers/rendering/storage/utilities.h" @@ -374,7 +374,7 @@ public: virtual void mesh_set_blend_shape_count(RID p_mesh, int p_blend_shape_count) override; /// Return stride - virtual void mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) override; + virtual void mesh_add_surface(RID p_mesh, const RenderingServerTypes::SurfaceData &p_surface) override; virtual int mesh_get_blend_shape_count(RID p_mesh) const override; @@ -389,7 +389,7 @@ public: virtual void mesh_surface_set_material(RID p_mesh, int p_surface, RID p_material) override; virtual RID mesh_surface_get_material(RID p_mesh, int p_surface) const override; - virtual RS::SurfaceData mesh_get_surface(RID p_mesh, int p_surface) const override; + virtual RenderingServerTypes::SurfaceData mesh_get_surface(RID p_mesh, int p_surface) const override; virtual int mesh_get_surface_count(RID p_mesh) const override; @@ -405,7 +405,7 @@ public: virtual void mesh_clear(RID p_mesh) override; virtual void mesh_surface_remove(RID p_mesh, int p_surface) override; - virtual void mesh_debug_usage(List *r_info) override; + virtual void mesh_debug_usage(List *r_info) override; virtual bool mesh_needs_instance(RID p_mesh, bool p_has_skeleton) override; diff --git a/servers/rendering/rendering_server.cpp b/servers/rendering/rendering_server.cpp index 3df3a56fe2..175213a0db 100644 --- a/servers/rendering/rendering_server.cpp +++ b/servers/rendering/rendering_server.cpp @@ -35,6 +35,7 @@ #include "core/math/geometry_3d.h" #include "core/variant/typed_array.h" #include "servers/rendering/rendering_device.h" +#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/shader_language.h" #include "servers/rendering/shader_warnings.h" @@ -1173,7 +1174,7 @@ void RenderingServer::mesh_surface_make_offsets_from_format(uint64_t p_format, i } } -Error RenderingServer::mesh_create_surface_data_from_arrays(SurfaceData *r_surface_data, RSE::PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes, const Dictionary &p_lods, uint64_t p_compress_format) { +Error RenderingServer::mesh_create_surface_data_from_arrays(RenderingServerTypes::SurfaceData *r_surface_data, RSE::PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes, const Dictionary &p_lods, uint64_t p_compress_format) { ERR_FAIL_INDEX_V(p_primitive, RSE::PRIMITIVE_MAX, ERR_INVALID_PARAMETER); ERR_FAIL_COND_V(p_arrays.size() != RSE::ARRAY_MAX, ERR_INVALID_PARAMETER); @@ -1331,7 +1332,7 @@ Error RenderingServer::mesh_create_surface_data_from_arrays(SurfaceData *r_surfa blend_shape_data.append_array(vertex_array_shape); } } - Vector lods; + Vector lods; if (index_array_len) { LocalVector keys = p_lods.get_key_list(); keys.sort(); // otherwise lod levels may get skipped @@ -1364,14 +1365,14 @@ Error RenderingServer::mesh_create_surface_data_from_arrays(SurfaceData *r_surfa } } - SurfaceData::LOD lod; + RenderingServerTypes::SurfaceData::LOD lod; lod.edge_length = distance; lod.index_data = data; lods.push_back(lod); } } - SurfaceData &surface_data = *r_surface_data; + RenderingServerTypes::SurfaceData &surface_data = *r_surface_data; surface_data.format = format; surface_data.primitive = p_primitive; surface_data.aabb = aabb; @@ -1390,7 +1391,7 @@ Error RenderingServer::mesh_create_surface_data_from_arrays(SurfaceData *r_surfa } void RenderingServer::mesh_add_surface_from_arrays(RID p_mesh, RSE::PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes, const Dictionary &p_lods, BitField p_compress_format) { - SurfaceData sd; + RenderingServerTypes::SurfaceData sd; Error err = mesh_create_surface_data_from_arrays(&sd, p_primitive, p_arrays, p_blend_shapes, p_lods, p_compress_format); if (err != OK) { return; @@ -1714,12 +1715,12 @@ Array RenderingServer::_get_array_from_surface(uint64_t p_format, Vector RenderingServer::mesh_surface_get_blend_shape_arrays(RID p_mesh, int p_surface) const { - SurfaceData sd = mesh_get_surface(p_mesh, p_surface); + RenderingServerTypes::SurfaceData sd = mesh_get_surface(p_mesh, p_surface); ERR_FAIL_COND_V(sd.vertex_count == 0, Array()); Vector blend_shape_data = sd.blend_shape_data; @@ -1789,7 +1790,7 @@ TypedArray RenderingServer::mesh_surface_get_blend_shape_arrays(RID p_mes } } -Array RenderingServer::mesh_create_arrays_from_surface_data(const SurfaceData &p_data) const { +Array RenderingServer::mesh_create_arrays_from_surface_data(const RenderingServerTypes::SurfaceData &p_data) const { Vector vertex_data = p_data.vertex_data; Vector attrib_data = p_data.attribute_data; Vector skin_data = p_data.skin_data; @@ -1804,16 +1805,6 @@ Array RenderingServer::mesh_create_arrays_from_surface_data(const SurfaceData &p return _get_array_from_surface(format, vertex_data, attrib_data, skin_data, vertex_len, index_data, index_len, p_data.aabb, p_data.uv_scale); } -#if 0 -Array RenderingServer::_mesh_surface_get_skeleton_aabb_bind(RID p_mesh, int p_surface) const { - Vector vec = RS::get_singleton()->mesh_surface_get_skeleton_aabb(p_mesh, p_surface); - Array arr; - for (int i = 0; i < vec.size(); i++) { - arr[i] = vec[i]; - } - return arr; -} -#endif Rect2 RenderingServer::debug_canvas_item_get_rect(RID p_item) { #ifdef TOOLS_ENABLED @@ -1937,14 +1928,14 @@ TypedArray RenderingServer::_shader_get_shader_parameter_list(RID p_ return convert_property_list(&l); } -static RS::SurfaceData _dict_to_surf(const Dictionary &p_dictionary) { - ERR_FAIL_COND_V(!p_dictionary.has("primitive"), RS::SurfaceData()); - ERR_FAIL_COND_V(!p_dictionary.has("format"), RS::SurfaceData()); - ERR_FAIL_COND_V(!p_dictionary.has("vertex_data"), RS::SurfaceData()); - ERR_FAIL_COND_V(!p_dictionary.has("vertex_count"), RS::SurfaceData()); - ERR_FAIL_COND_V(!p_dictionary.has("aabb"), RS::SurfaceData()); +static RenderingServerTypes::SurfaceData _dict_to_surf(const Dictionary &p_dictionary) { + ERR_FAIL_COND_V(!p_dictionary.has("primitive"), RenderingServerTypes::SurfaceData()); + ERR_FAIL_COND_V(!p_dictionary.has("format"), RenderingServerTypes::SurfaceData()); + ERR_FAIL_COND_V(!p_dictionary.has("vertex_data"), RenderingServerTypes::SurfaceData()); + ERR_FAIL_COND_V(!p_dictionary.has("vertex_count"), RenderingServerTypes::SurfaceData()); + ERR_FAIL_COND_V(!p_dictionary.has("aabb"), RenderingServerTypes::SurfaceData()); - RS::SurfaceData sd; + RenderingServerTypes::SurfaceData sd; sd.primitive = RSE::PrimitiveType(int(p_dictionary["primitive"])); sd.format = p_dictionary["format"]; @@ -1960,7 +1951,7 @@ static RS::SurfaceData _dict_to_surf(const Dictionary &p_dictionary) { if (p_dictionary.has("index_data")) { sd.index_data = p_dictionary["index_data"]; - ERR_FAIL_COND_V(!p_dictionary.has("index_count"), RS::SurfaceData()); + ERR_FAIL_COND_V(!p_dictionary.has("index_count"), RenderingServerTypes::SurfaceData()); sd.index_count = p_dictionary["index_count"]; } @@ -1975,7 +1966,7 @@ static RS::SurfaceData _dict_to_surf(const Dictionary &p_dictionary) { Dictionary lod = lods[i]; ERR_CONTINUE(!lod.has("edge_length")); ERR_CONTINUE(!lod.has("index_data")); - RS::SurfaceData::LOD l; + RenderingServerTypes::SurfaceData::LOD l; l.edge_length = lod["edge_length"]; l.index_data = lod["index_data"]; sd.lods.push_back(l); @@ -2001,7 +1992,7 @@ static RS::SurfaceData _dict_to_surf(const Dictionary &p_dictionary) { return sd; } RID RenderingServer::_mesh_create_from_surfaces(const TypedArray &p_surfaces, int p_blend_shape_count) { - Vector surfaces; + Vector surfaces; for (int i = 0; i < p_surfaces.size(); i++) { surfaces.push_back(_dict_to_surf(p_surfaces[i])); } @@ -2011,7 +2002,7 @@ void RenderingServer::_mesh_add_surface(RID p_mesh, const Dictionary &p_surface) mesh_add_surface(p_mesh, _dict_to_surf(p_surface)); } Dictionary RenderingServer::_mesh_get_surface(RID p_mesh, int p_idx) { - RS::SurfaceData sd = mesh_get_surface(p_mesh, p_idx); + RenderingServerTypes::SurfaceData sd = mesh_get_surface(p_mesh, p_idx); Dictionary d; d["primitive"] = sd.primitive; @@ -2165,7 +2156,7 @@ void RenderingServer::set_warn_on_surface_upgrade(bool p_warn) { #endif #ifndef DISABLE_DEPRECATED -void RenderingServer::fix_surface_compatibility(SurfaceData &p_surface, const String &p_path) { +void RenderingServer::fix_surface_compatibility(RenderingServerTypes::SurfaceData &p_surface, const String &p_path) { uint64_t surface_version = p_surface.format & (RSE::ARRAY_FLAG_FORMAT_VERSION_MASK << RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT); ERR_FAIL_COND_MSG(surface_version > RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION, "Cannot convert surface with version provided (" + itos((surface_version >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RSE::ARRAY_FLAG_FORMAT_VERSION_MASK) + ") to current version (" + itos((RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION >> RSE::ARRAY_FLAG_FORMAT_VERSION_SHIFT) & RSE::ARRAY_FLAG_FORMAT_VERSION_MASK) + ")"); diff --git a/servers/rendering/rendering_server.h b/servers/rendering/rendering_server.h index 6de785dfa8..be376a79d7 100644 --- a/servers/rendering/rendering_server.h +++ b/servers/rendering/rendering_server.h @@ -203,37 +203,7 @@ public: /* MESH API */ - struct SurfaceData { - RSE::PrimitiveType primitive = RSE::PRIMITIVE_MAX; - - uint64_t format = RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION; - Vector vertex_data; // Vertex, Normal, Tangent (change with skinning, blendshape). - Vector attribute_data; // Color, UV, UV2, Custom0-3. - Vector skin_data; // Bone index, Bone weight. - uint32_t vertex_count = 0; - Vector index_data; - uint32_t index_count = 0; - - AABB aabb; - struct LOD { - float edge_length = 0.0f; - Vector index_data; - }; - Vector lods; - Vector bone_aabbs; - - // Transforms used in runtime bone AABBs compute. - // Since bone AABBs is saved in Mesh space, but bones is in Skeleton space. - Transform3D mesh_to_skeleton_xform; - - Vector blend_shape_data; - - Vector4 uv_scale; - - RID material; - }; - - virtual RID mesh_create_from_surfaces(const Vector &p_surfaces, int p_blend_shape_count = 0) = 0; + virtual RID mesh_create_from_surfaces(const Vector &p_surfaces, int p_blend_shape_count = 0) = 0; virtual RID mesh_create() = 0; virtual void mesh_set_blend_shape_count(RID p_mesh, int p_blend_shape_count) = 0; @@ -247,14 +217,14 @@ public: /// Returns stride virtual void mesh_surface_make_offsets_from_format(uint64_t p_format, int p_vertex_len, int p_index_len, uint32_t *r_offsets, uint32_t &r_vertex_element_size, uint32_t &r_normal_element_size, uint32_t &r_attrib_element_size, uint32_t &r_skin_element_size) const; - virtual Error mesh_create_surface_data_from_arrays(SurfaceData *r_surface_data, RSE::PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes = Array(), const Dictionary &p_lods = Dictionary(), uint64_t p_compress_format = 0); - Array mesh_create_arrays_from_surface_data(const SurfaceData &p_data) const; + virtual Error mesh_create_surface_data_from_arrays(RenderingServerTypes::SurfaceData *r_surface_data, RSE::PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes = Array(), const Dictionary &p_lods = Dictionary(), uint64_t p_compress_format = 0); + Array mesh_create_arrays_from_surface_data(const RenderingServerTypes::SurfaceData &p_data) const; Array mesh_surface_get_arrays(RID p_mesh, int p_surface) const; TypedArray mesh_surface_get_blend_shape_arrays(RID p_mesh, int p_surface) const; Dictionary mesh_surface_get_lods(RID p_mesh, int p_surface) const; virtual void mesh_add_surface_from_arrays(RID p_mesh, RSE::PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes = Array(), const Dictionary &p_lods = Dictionary(), BitField p_compress_format = 0); - virtual void mesh_add_surface(RID p_mesh, const SurfaceData &p_surface) = 0; + virtual void mesh_add_surface(RID p_mesh, const RenderingServerTypes::SurfaceData &p_surface) = 0; virtual int mesh_get_blend_shape_count(RID p_mesh) const = 0; @@ -269,7 +239,7 @@ public: virtual void mesh_surface_set_material(RID p_mesh, int p_surface, RID p_material) = 0; virtual RID mesh_surface_get_material(RID p_mesh, int p_surface) const = 0; - virtual SurfaceData mesh_get_surface(RID p_mesh, int p_surface) const = 0; + virtual RenderingServerTypes::SurfaceData mesh_get_surface(RID p_mesh, int p_surface) const = 0; virtual int mesh_get_surface_count(RID p_mesh) const = 0; @@ -284,19 +254,7 @@ public: virtual void mesh_surface_remove(RID p_mesh, int p_surface) = 0; virtual void mesh_clear(RID p_mesh) = 0; - struct MeshInfo { - RID mesh; - String path; - uint32_t vertex_buffer_size = 0; - uint32_t attribute_buffer_size = 0; - uint32_t skin_buffer_size = 0; - uint32_t index_buffer_size = 0; - uint32_t blend_shape_buffer_size = 0; - uint32_t lod_index_buffers_size = 0; - uint64_t vertex_count = 0; - }; - - virtual void mesh_debug_usage(List *r_info) = 0; + virtual void mesh_debug_usage(List *r_info) = 0; /* MULTIMESH API */ @@ -1111,7 +1069,7 @@ public: #endif #ifndef DISABLE_DEPRECATED - void fix_surface_compatibility(SurfaceData &p_surface, const String &p_path = ""); + void fix_surface_compatibility(RenderingServerTypes::SurfaceData &p_surface, const String &p_path = ""); #endif private: diff --git a/servers/rendering/rendering_server_default.h b/servers/rendering/rendering_server_default.h index 9677ec375d..b88d8ec06a 100644 --- a/servers/rendering/rendering_server_default.h +++ b/servers/rendering/rendering_server_default.h @@ -34,12 +34,12 @@ #include "core/os/thread.h" #include "core/templates/command_queue_mt.h" #include "core/templates/hash_map.h" -#include "renderer_canvas_cull.h" -#include "renderer_viewport.h" -#include "rendering_server_globals.h" +#include "servers/rendering/renderer_canvas_cull.h" #include "servers/rendering/renderer_compositor.h" +#include "servers/rendering/renderer_viewport.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_enums.h" +#include "servers/rendering/rendering_server_globals.h" #include "servers/rendering/rendering_server_types.h" #include "servers/server_wrap_mt_common.h" @@ -359,7 +359,7 @@ public: #define ServerName RendererMeshStorage #define server_name RSG::mesh_storage - virtual RID mesh_create_from_surfaces(const Vector &p_surfaces, int p_blend_shape_count = 0) override { + virtual RID mesh_create_from_surfaces(const Vector &p_surfaces, int p_blend_shape_count = 0) override { RID mesh = RSG::mesh_storage->mesh_allocate(); bool using_server_thread = Thread::get_caller_id() == server_thread; @@ -389,7 +389,7 @@ public: FUNCRIDSPLIT(mesh) - FUNC2(mesh_add_surface, RID, const SurfaceData &) + FUNC2(mesh_add_surface, RID, const RenderingServerTypes::SurfaceData &) FUNC1RC(int, mesh_get_blend_shape_count, RID) @@ -404,7 +404,7 @@ public: FUNC3(mesh_surface_set_material, RID, int, RID) FUNC2RC(RID, mesh_surface_get_material, RID, int) - FUNC2RC(SurfaceData, mesh_get_surface, RID, int) + FUNC2RC(RenderingServerTypes::SurfaceData, mesh_get_surface, RID, int) FUNC1RC(int, mesh_get_surface_count, RID) @@ -419,7 +419,7 @@ public: FUNC2(mesh_surface_remove, RID, int) FUNC1(mesh_clear, RID) - FUNC1(mesh_debug_usage, List *) + FUNC1(mesh_debug_usage, List *) /* MULTIMESH API */ diff --git a/servers/rendering/rendering_server_types.h b/servers/rendering/rendering_server_types.h index c75e286b72..863553834f 100644 --- a/servers/rendering/rendering_server_types.h +++ b/servers/rendering/rendering_server_types.h @@ -30,9 +30,12 @@ #pragma once +#include "core/math/aabb.h" #include "core/math/rect2.h" #include "core/math/rect2i.h" +#include "core/math/transform_3d.h" #include "core/math/vector2.h" +#include "core/math/vector4.h" #include "core/string/ustring.h" #include "core/templates/rid.h" #include "core/templates/vector.h" @@ -40,6 +43,9 @@ #include +template +class Vector; + namespace RenderingServerTypes { /* SHADER API */ @@ -55,6 +61,50 @@ struct ShaderNativeSourceCode { Vector versions; }; +/* MESH API */ + +struct SurfaceData { + RSE::PrimitiveType primitive = RSE::PRIMITIVE_MAX; + + uint64_t format = RSE::ARRAY_FLAG_FORMAT_CURRENT_VERSION; + Vector vertex_data; // Vertex, Normal, Tangent (change with skinning, blendshape). + Vector attribute_data; // Color, UV, UV2, Custom0-3. + Vector skin_data; // Bone index, Bone weight. + uint32_t vertex_count = 0; + Vector index_data; + uint32_t index_count = 0; + + AABB aabb; + struct LOD { + float edge_length = 0.0f; + Vector index_data; + }; + Vector lods; + Vector bone_aabbs; + + // Transforms used in runtime bone AABBs compute. + // Since bone AABBs is saved in Mesh space, but bones is in Skeleton space. + Transform3D mesh_to_skeleton_xform; + + Vector blend_shape_data; + + Vector4 uv_scale; + + RID material; +}; + +struct MeshInfo { + RID mesh; + String path; + uint32_t vertex_buffer_size = 0; + uint32_t attribute_buffer_size = 0; + uint32_t skin_buffer_size = 0; + uint32_t index_buffer_size = 0; + uint32_t blend_shape_buffer_size = 0; + uint32_t lod_index_buffers_size = 0; + uint64_t vertex_count = 0; +}; + /* STATUS INFORMATION */ struct FrameProfileArea { diff --git a/servers/rendering/storage/mesh_storage.cpp b/servers/rendering/storage/mesh_storage.cpp index 44f288e130..a2ab8d531a 100644 --- a/servers/rendering/storage/mesh_storage.cpp +++ b/servers/rendering/storage/mesh_storage.cpp @@ -234,7 +234,7 @@ Color RendererMeshStorage::multimesh_instance_get_custom_data(RID p_multimesh, i void RendererMeshStorage::multimesh_set_buffer(RID p_multimesh, const Vector &p_buffer) { MultiMeshInterpolator *mmi = _multimesh_get_interpolator(p_multimesh); if (mmi && mmi->interpolated) { - ERR_FAIL_COND_MSG(p_buffer.size() != mmi->_data_curr.size(), vformat("Buffer should have %d elements, got %d instead.", mmi->_data_curr.size(), p_buffer.size())); + ERR_FAIL_COND_MSG(p_buffer.size() != mmi->_data_curr.size(), "Buffer should have " + itos(mmi->_data_curr.size()) + " elements, got " + itos(p_buffer.size()) + " instead."); mmi->_data_curr = p_buffer; _multimesh_add_to_interpolation_lists(p_multimesh, *mmi); @@ -266,8 +266,8 @@ Vector RendererMeshStorage::multimesh_get_buffer(RID p_multimesh) const { void RendererMeshStorage::multimesh_set_buffer_interpolated(RID p_multimesh, const Vector &p_buffer, const Vector &p_buffer_prev) { MultiMeshInterpolator *mmi = _multimesh_get_interpolator(p_multimesh); if (mmi) { - ERR_FAIL_COND_MSG(p_buffer.size() != mmi->_data_curr.size(), vformat("Buffer for current frame should have %d elements, got %d instead.", mmi->_data_curr.size(), p_buffer.size())); - ERR_FAIL_COND_MSG(p_buffer_prev.size() != mmi->_data_prev.size(), vformat("Buffer for previous frame should have %d elements, got %d instead.", mmi->_data_prev.size(), p_buffer_prev.size())); + ERR_FAIL_COND_MSG(p_buffer.size() != mmi->_data_curr.size(), "Buffer for current frame should have " + itos(mmi->_data_curr.size()) + " elements, got " + itos(p_buffer.size()) + " instead."); + ERR_FAIL_COND_MSG(p_buffer_prev.size() != mmi->_data_prev.size(), "Buffer for previous frame should have " + itos(mmi->_data_prev.size()) + " elements, got " + itos(p_buffer_prev.size()) + " instead."); // We are assuming that mmi->interpolated is the case. (Can possibly assert this?) // Even if this flag hasn't been set - just calling this function suggests interpolation is desired. diff --git a/servers/rendering/storage/mesh_storage.h b/servers/rendering/storage/mesh_storage.h index 97a4806f85..bbbaebd6d6 100644 --- a/servers/rendering/storage/mesh_storage.h +++ b/servers/rendering/storage/mesh_storage.h @@ -30,9 +30,12 @@ #pragma once -#include "servers/rendering/rendering_server.h" +#include "core/math/color.h" +#include "core/math/transform_2d.h" +#include "core/templates/local_vector.h" #include "servers/rendering/rendering_server_enums.h" -#include "utilities.h" +#include "servers/rendering/rendering_server_types.h" +#include "servers/rendering/storage/utilities.h" class RendererMeshStorage { public: @@ -47,7 +50,7 @@ public: virtual void mesh_set_blend_shape_count(RID p_mesh, int p_blend_shape_count) = 0; /// Returns stride - virtual void mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface) = 0; + virtual void mesh_add_surface(RID p_mesh, const RenderingServerTypes::SurfaceData &p_surface) = 0; virtual int mesh_get_blend_shape_count(RID p_mesh) const = 0; @@ -62,7 +65,7 @@ public: virtual void mesh_surface_set_material(RID p_mesh, int p_surface, RID p_material) = 0; virtual RID mesh_surface_get_material(RID p_mesh, int p_surface) const = 0; - virtual RS::SurfaceData mesh_get_surface(RID p_mesh, int p_surface) const = 0; + virtual RenderingServerTypes::SurfaceData mesh_get_surface(RID p_mesh, int p_surface) const = 0; virtual int mesh_get_surface_count(RID p_mesh) const = 0; @@ -78,7 +81,7 @@ public: virtual void mesh_surface_remove(RID p_mesh, int p_surface) = 0; virtual void mesh_clear(RID p_mesh) = 0; - virtual void mesh_debug_usage(List *r_info) = 0; + virtual void mesh_debug_usage(List *r_info) = 0; virtual bool mesh_needs_instance(RID p_mesh, bool p_has_skeleton) = 0; diff --git a/tests/scene/test_arraymesh.cpp b/tests/scene/test_arraymesh.cpp index 05f505fdfd..a369ce13ce 100644 --- a/tests/scene/test_arraymesh.cpp +++ b/tests/scene/test_arraymesh.cpp @@ -36,6 +36,7 @@ TEST_FORCE_LINK(test_arraymesh) #include "scene/resources/3d/primitive_meshes.h" #include "scene/resources/mesh.h" +#include "servers/rendering/rendering_server.h" namespace TestArrayMesh { @@ -396,7 +397,7 @@ TEST_CASE("[SceneTree][ArrayMesh] Get/Set mesh metadata and actions") { SUBCASE("Create surface from raw SurfaceData data.") { RID mesh_rid = mesh->get_rid(); - RS::SurfaceData surface_data = RS::get_singleton()->mesh_get_surface(mesh_rid, 0); + RenderingServerTypes::SurfaceData surface_data = RS::get_singleton()->mesh_get_surface(mesh_rid, 0); Ref mesh2; mesh2.instantiate(); mesh2->add_surface(surface_data.format, Mesh::PRIMITIVE_TRIANGLES, surface_data.vertex_data, surface_data.attribute_data, From 671864fb05eb9ea23749d1192632b6451a9d3a6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Fri, 20 Feb 2026 00:37:17 +0100 Subject: [PATCH 10/13] Decouple TextureStorage from RenderingServer By moving RS::TextureDetect(Roughness)Callback and RS::TextureInfo to RenderingServerTypes. --- drivers/gles3/storage/light_storage.cpp | 1 + drivers/gles3/storage/texture_storage.cpp | 12 +++++----- drivers/gles3/storage/texture_storage.h | 18 +++++++-------- servers/debugger/servers_debugger.cpp | 4 ++-- .../rendering/dummy/storage/texture_storage.h | 8 +++---- .../storage_rd/texture_storage.cpp | 11 ++++----- .../renderer_rd/storage_rd/texture_storage.h | 16 ++++++------- servers/rendering/rendering_server.cpp | 4 ++-- servers/rendering/rendering_server.h | 23 ++++--------------- servers/rendering/rendering_server_default.h | 8 +++---- servers/rendering/rendering_server_types.h | 17 ++++++++++++++ servers/rendering/storage/texture_storage.h | 10 ++++---- 12 files changed, 67 insertions(+), 65 deletions(-) diff --git a/drivers/gles3/storage/light_storage.cpp b/drivers/gles3/storage/light_storage.cpp index 635b9d4c77..ad1fee4da6 100644 --- a/drivers/gles3/storage/light_storage.cpp +++ b/drivers/gles3/storage/light_storage.cpp @@ -34,6 +34,7 @@ #include "core/config/project_settings.h" #include "core/math/geometry_3d.h" +#include "core/os/os.h" #include "drivers/gles3/effects/cubemap_filter.h" #include "drivers/gles3/rasterizer_scene_gles3.h" #include "drivers/gles3/rasterizer_util_gles3.h" diff --git a/drivers/gles3/storage/texture_storage.cpp b/drivers/gles3/storage/texture_storage.cpp index d732eb989c..c30f3b7dd2 100644 --- a/drivers/gles3/storage/texture_storage.cpp +++ b/drivers/gles3/storage/texture_storage.cpp @@ -1883,7 +1883,7 @@ String TextureStorage::texture_get_path(RID p_texture) const { return texture->path; } -void TextureStorage::texture_set_detect_3d_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) { +void TextureStorage::texture_set_detect_3d_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata) { Texture *texture = texture_owner.get_or_null(p_texture); ERR_FAIL_NULL(texture); @@ -1891,10 +1891,10 @@ void TextureStorage::texture_set_detect_3d_callback(RID p_texture, RS::TextureDe texture->detect_3d_callback_ud = p_userdata; } -void TextureStorage::texture_set_detect_srgb_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) { +void TextureStorage::texture_set_detect_srgb_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata) { } -void TextureStorage::texture_set_detect_normal_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) { +void TextureStorage::texture_set_detect_normal_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata) { Texture *texture = texture_owner.get_or_null(p_texture); ERR_FAIL_NULL(texture); @@ -1902,7 +1902,7 @@ void TextureStorage::texture_set_detect_normal_callback(RID p_texture, RS::Textu texture->detect_normal_callback_ud = p_userdata; } -void TextureStorage::texture_set_detect_roughness_callback(RID p_texture, RS::TextureDetectRoughnessCallback p_callback, void *p_userdata) { +void TextureStorage::texture_set_detect_roughness_callback(RID p_texture, RenderingServerTypes::TextureDetectRoughnessCallback p_callback, void *p_userdata) { Texture *texture = texture_owner.get_or_null(p_texture); ERR_FAIL_NULL(texture); @@ -1910,13 +1910,13 @@ void TextureStorage::texture_set_detect_roughness_callback(RID p_texture, RS::Te texture->detect_roughness_callback_ud = p_userdata; } -void TextureStorage::texture_debug_usage(List *r_info) { +void TextureStorage::texture_debug_usage(List *r_info) { for (const RID &rid : texture_owner.get_owned_list()) { Texture *t = texture_owner.get_or_null(rid); if (!t) { continue; } - RS::TextureInfo tinfo; + RenderingServerTypes::TextureInfo tinfo; tinfo.path = t->path; tinfo.format = t->format; tinfo.width = t->alloc_width; diff --git a/drivers/gles3/storage/texture_storage.h b/drivers/gles3/storage/texture_storage.h index 019222b11a..f02fc2ecd1 100644 --- a/drivers/gles3/storage/texture_storage.h +++ b/drivers/gles3/storage/texture_storage.h @@ -37,8 +37,8 @@ #include "core/templates/rid_owner.h" #include "drivers/gles3/shaders/canvas_sdf.glsl.gen.h" #include "drivers/gles3/storage/config.h" -#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_enums.h" +#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/storage/texture_storage.h" #include "platform_gl.h" @@ -207,13 +207,13 @@ struct Texture { bool redraw_if_visible = false; - RS::TextureDetectCallback detect_3d_callback = nullptr; + RenderingServerTypes::TextureDetectCallback detect_3d_callback = nullptr; void *detect_3d_callback_ud = nullptr; - RS::TextureDetectCallback detect_normal_callback = nullptr; + RenderingServerTypes::TextureDetectCallback detect_normal_callback = nullptr; void *detect_normal_callback_ud = nullptr; - RS::TextureDetectRoughnessCallback detect_roughness_callback = nullptr; + RenderingServerTypes::TextureDetectRoughnessCallback detect_roughness_callback = nullptr; void *detect_roughness_callback_ud = nullptr; CanvasTexture *canvas_texture = nullptr; @@ -587,12 +587,12 @@ public: virtual void texture_set_path(RID p_texture, const String &p_path) override; virtual String texture_get_path(RID p_texture) const override; - virtual void texture_set_detect_3d_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) override; - void texture_set_detect_srgb_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata); - virtual void texture_set_detect_normal_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) override; - virtual void texture_set_detect_roughness_callback(RID p_texture, RS::TextureDetectRoughnessCallback p_callback, void *p_userdata) override; + virtual void texture_set_detect_3d_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata) override; + void texture_set_detect_srgb_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata); + virtual void texture_set_detect_normal_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata) override; + virtual void texture_set_detect_roughness_callback(RID p_texture, RenderingServerTypes::TextureDetectRoughnessCallback p_callback, void *p_userdata) override; - virtual void texture_debug_usage(List *r_info) override; + virtual void texture_debug_usage(List *r_info) override; virtual void texture_set_force_redraw_if_visible(RID p_texture, bool p_enable) override; diff --git a/servers/debugger/servers_debugger.cpp b/servers/debugger/servers_debugger.cpp index 77d31538cb..bfd0c4352f 100644 --- a/servers/debugger/servers_debugger.cpp +++ b/servers/debugger/servers_debugger.cpp @@ -428,10 +428,10 @@ Error ServersDebugger::_capture(void *p_user, const String &p_cmd, const Array & void ServersDebugger::_send_resource_usage() { ServersDebugger::ResourceUsage usage; - List tinfo; + List tinfo; RS::get_singleton()->texture_debug_usage(&tinfo); - for (const RS::TextureInfo &E : tinfo) { + for (const RenderingServerTypes::TextureInfo &E : tinfo) { ServersDebugger::ResourceInfo info; info.path = E.path; info.vram = E.bytes; diff --git a/servers/rendering/dummy/storage/texture_storage.h b/servers/rendering/dummy/storage/texture_storage.h index 86f7ed7025..adb1ba7ecf 100644 --- a/servers/rendering/dummy/storage/texture_storage.h +++ b/servers/rendering/dummy/storage/texture_storage.h @@ -123,11 +123,11 @@ public: virtual Image::Format texture_get_format(RID p_texture) const override { return Image::FORMAT_MAX; } - virtual void texture_set_detect_3d_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) override {} - virtual void texture_set_detect_normal_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) override {} - virtual void texture_set_detect_roughness_callback(RID p_texture, RS::TextureDetectRoughnessCallback p_callback, void *p_userdata) override {} + virtual void texture_set_detect_3d_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata) override {} + virtual void texture_set_detect_normal_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata) override {} + virtual void texture_set_detect_roughness_callback(RID p_texture, RenderingServerTypes::TextureDetectRoughnessCallback p_callback, void *p_userdata) override {} - virtual void texture_debug_usage(List *r_info) override {} + virtual void texture_debug_usage(List *r_info) override {} virtual void texture_set_force_redraw_if_visible(RID p_texture, bool p_enable) override {} diff --git a/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp b/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp index d3bccaa510..f53426419b 100644 --- a/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/texture_storage.cpp @@ -37,7 +37,6 @@ #include "servers/rendering/renderer_rd/renderer_scene_render_rd.h" #include "servers/rendering/renderer_rd/storage_rd/material_storage.h" #include "servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h" -#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_globals.h" using namespace RendererRD; @@ -2036,7 +2035,7 @@ Image::Format TextureStorage::texture_get_format(RID p_texture) const { return tex->format; } -void TextureStorage::texture_set_detect_3d_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) { +void TextureStorage::texture_set_detect_3d_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata) { Texture *tex = texture_owner.get_or_null(p_texture); ERR_FAIL_NULL(tex); @@ -2044,7 +2043,7 @@ void TextureStorage::texture_set_detect_3d_callback(RID p_texture, RS::TextureDe tex->detect_3d_callback = p_callback; } -void TextureStorage::texture_set_detect_normal_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) { +void TextureStorage::texture_set_detect_normal_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata) { Texture *tex = texture_owner.get_or_null(p_texture); ERR_FAIL_NULL(tex); @@ -2052,7 +2051,7 @@ void TextureStorage::texture_set_detect_normal_callback(RID p_texture, RS::Textu tex->detect_normal_callback = p_callback; } -void TextureStorage::texture_set_detect_roughness_callback(RID p_texture, RS::TextureDetectRoughnessCallback p_callback, void *p_userdata) { +void TextureStorage::texture_set_detect_roughness_callback(RID p_texture, RenderingServerTypes::TextureDetectRoughnessCallback p_callback, void *p_userdata) { Texture *tex = texture_owner.get_or_null(p_texture); ERR_FAIL_NULL(tex); @@ -2060,13 +2059,13 @@ void TextureStorage::texture_set_detect_roughness_callback(RID p_texture, RS::Te tex->detect_roughness_callback = p_callback; } -void TextureStorage::texture_debug_usage(List *r_info) { +void TextureStorage::texture_debug_usage(List *r_info) { for (const RID &rid : texture_owner.get_owned_list()) { Texture *t = texture_owner.get_or_null(rid); if (!t) { continue; } - RS::TextureInfo tinfo; + RenderingServerTypes::TextureInfo tinfo; tinfo.path = t->path; tinfo.format = t->format; tinfo.width = t->width; diff --git a/servers/rendering/renderer_rd/storage_rd/texture_storage.h b/servers/rendering/renderer_rd/storage_rd/texture_storage.h index 67260619ed..e2a8675d5c 100644 --- a/servers/rendering/renderer_rd/storage_rd/texture_storage.h +++ b/servers/rendering/renderer_rd/storage_rd/texture_storage.h @@ -35,7 +35,7 @@ #include "servers/rendering/renderer_rd/shaders/canvas_sdf.glsl.gen.h" #include "servers/rendering/renderer_rd/shaders/tex_blit.glsl.gen.h" #include "servers/rendering/renderer_rd/storage_rd/forward_id_storage.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/shader_compiler.h" #include "servers/rendering/storage/texture_storage.h" #include "servers/rendering/storage/utilities.h" @@ -191,13 +191,13 @@ private: HashSet lightmap_users; - RS::TextureDetectCallback detect_3d_callback = nullptr; + RenderingServerTypes::TextureDetectCallback detect_3d_callback = nullptr; void *detect_3d_callback_ud = nullptr; - RS::TextureDetectCallback detect_normal_callback = nullptr; + RenderingServerTypes::TextureDetectCallback detect_normal_callback = nullptr; void *detect_normal_callback_ud = nullptr; - RS::TextureDetectRoughnessCallback detect_roughness_callback = nullptr; + RenderingServerTypes::TextureDetectRoughnessCallback detect_roughness_callback = nullptr; void *detect_roughness_callback_ud = nullptr; CanvasTexture *canvas_texture = nullptr; @@ -588,11 +588,11 @@ public: virtual Image::Format texture_get_format(RID p_texture) const override; - virtual void texture_set_detect_3d_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) override; - virtual void texture_set_detect_normal_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) override; - virtual void texture_set_detect_roughness_callback(RID p_texture, RS::TextureDetectRoughnessCallback p_callback, void *p_userdata) override; + virtual void texture_set_detect_3d_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata) override; + virtual void texture_set_detect_normal_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata) override; + virtual void texture_set_detect_roughness_callback(RID p_texture, RenderingServerTypes::TextureDetectRoughnessCallback p_callback, void *p_userdata) override; - virtual void texture_debug_usage(List *r_info) override; + virtual void texture_debug_usage(List *r_info) override; virtual void texture_set_force_redraw_if_visible(RID p_texture, bool p_enable) override; diff --git a/servers/rendering/rendering_server.cpp b/servers/rendering/rendering_server.cpp index 175213a0db..bc2871fc34 100644 --- a/servers/rendering/rendering_server.cpp +++ b/servers/rendering/rendering_server.cpp @@ -57,10 +57,10 @@ RenderingServer *RenderingServer::create() { } Array RenderingServer::_texture_debug_usage_bind() { - List list; + List list; texture_debug_usage(&list); Array arr; - for (const TextureInfo &E : list) { + for (const RenderingServerTypes::TextureInfo &E : list) { Dictionary dict; dict["texture"] = E.texture; dict["width"] = E.width; diff --git a/servers/rendering/rendering_server.h b/servers/rendering/rendering_server.h index be376a79d7..4317af7dca 100644 --- a/servers/rendering/rendering_server.h +++ b/servers/rendering/rendering_server.h @@ -141,26 +141,11 @@ public: virtual Image::Format texture_get_format(RID p_texture) const = 0; - typedef void (*TextureDetectCallback)(void *); + virtual void texture_set_detect_3d_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata) = 0; + virtual void texture_set_detect_normal_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata) = 0; + virtual void texture_set_detect_roughness_callback(RID p_texture, RenderingServerTypes::TextureDetectRoughnessCallback p_callback, void *p_userdata) = 0; - virtual void texture_set_detect_3d_callback(RID p_texture, TextureDetectCallback p_callback, void *p_userdata) = 0; - virtual void texture_set_detect_normal_callback(RID p_texture, TextureDetectCallback p_callback, void *p_userdata) = 0; - - typedef void (*TextureDetectRoughnessCallback)(void *, const String &, RSE::TextureDetectRoughnessChannel); - virtual void texture_set_detect_roughness_callback(RID p_texture, TextureDetectRoughnessCallback p_callback, void *p_userdata) = 0; - - struct TextureInfo { - RID texture; - uint32_t width; - uint32_t height; - uint32_t depth; - Image::Format format; - int64_t bytes; - String path; - RSE::TextureType type; - }; - - virtual void texture_debug_usage(List *r_info) = 0; + virtual void texture_debug_usage(List *r_info) = 0; Array _texture_debug_usage_bind(); virtual void texture_set_force_redraw_if_visible(RID p_texture, bool p_enable) = 0; diff --git a/servers/rendering/rendering_server_default.h b/servers/rendering/rendering_server_default.h index b88d8ec06a..8ee70f482c 100644 --- a/servers/rendering/rendering_server_default.h +++ b/servers/rendering/rendering_server_default.h @@ -250,16 +250,16 @@ public: FUNC2(texture_bind, RID, uint32_t) #endif - FUNC3(texture_set_detect_3d_callback, RID, TextureDetectCallback, void *) - FUNC3(texture_set_detect_normal_callback, RID, TextureDetectCallback, void *) - FUNC3(texture_set_detect_roughness_callback, RID, TextureDetectRoughnessCallback, void *) + FUNC3(texture_set_detect_3d_callback, RID, RenderingServerTypes::TextureDetectCallback, void *) + FUNC3(texture_set_detect_normal_callback, RID, RenderingServerTypes::TextureDetectCallback, void *) + FUNC3(texture_set_detect_roughness_callback, RID, RenderingServerTypes::TextureDetectRoughnessCallback, void *) FUNC2(texture_set_path, RID, const String &) FUNC1RC(String, texture_get_path, RID) FUNC1RC(Image::Format, texture_get_format, RID) - FUNC1(texture_debug_usage, List *) + FUNC1(texture_debug_usage, List *) FUNC2(texture_set_force_redraw_if_visible, RID, bool) FUNCRIDTEX2(texture_rd, const RID &, const RSE::TextureLayeredType) diff --git a/servers/rendering/rendering_server_types.h b/servers/rendering/rendering_server_types.h index 863553834f..40b7064238 100644 --- a/servers/rendering/rendering_server_types.h +++ b/servers/rendering/rendering_server_types.h @@ -30,6 +30,7 @@ #pragma once +#include "core/io/image.h" #include "core/math/aabb.h" #include "core/math/rect2.h" #include "core/math/rect2i.h" @@ -48,6 +49,22 @@ class Vector; namespace RenderingServerTypes { +/* TEXTURE API */ + +typedef void (*TextureDetectCallback)(void *); +typedef void (*TextureDetectRoughnessCallback)(void *, const String &, RSE::TextureDetectRoughnessChannel); + +struct TextureInfo { + RID texture; + uint32_t width; + uint32_t height; + uint32_t depth; + Image::Format format; + int64_t bytes; + String path; + RSE::TextureType type; +}; + /* SHADER API */ struct ShaderNativeSourceCode { diff --git a/servers/rendering/storage/texture_storage.h b/servers/rendering/storage/texture_storage.h index 009a6924d5..21a286f885 100644 --- a/servers/rendering/storage/texture_storage.h +++ b/servers/rendering/storage/texture_storage.h @@ -30,8 +30,8 @@ #pragma once -#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_enums.h" +#include "servers/rendering/rendering_server_types.h" class RendererTextureStorage { private: @@ -101,11 +101,11 @@ public: virtual Image::Format texture_get_format(RID p_texture) const = 0; - virtual void texture_set_detect_3d_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) = 0; - virtual void texture_set_detect_normal_callback(RID p_texture, RS::TextureDetectCallback p_callback, void *p_userdata) = 0; - virtual void texture_set_detect_roughness_callback(RID p_texture, RS::TextureDetectRoughnessCallback p_callback, void *p_userdata) = 0; + virtual void texture_set_detect_3d_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata) = 0; + virtual void texture_set_detect_normal_callback(RID p_texture, RenderingServerTypes::TextureDetectCallback p_callback, void *p_userdata) = 0; + virtual void texture_set_detect_roughness_callback(RID p_texture, RenderingServerTypes::TextureDetectRoughnessCallback p_callback, void *p_userdata) = 0; - virtual void texture_debug_usage(List *r_info) = 0; + virtual void texture_debug_usage(List *r_info) = 0; virtual void texture_set_force_redraw_if_visible(RID p_texture, bool p_enable) = 0; From 462f31801d72e3756f826f0b9da8b07e7d4e6287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Fri, 20 Feb 2026 01:48:43 +0100 Subject: [PATCH 11/13] Decouple RasterizerDummy from RenderingServer and DisplayServer Also move some Extension classes to a separate file to avoid including gdvirtual unnecessarily. --- editor/debugger/editor_debugger_plugin.h | 2 + editor/doc/editor_help_search.h | 1 + servers/register_server_types.cpp | 1 + servers/rendering/dummy/rasterizer_dummy.cpp | 109 +++++++++++++ servers/rendering/dummy/rasterizer_dummy.h | 76 ++++----- .../dummy/rasterizer_scene_dummy.cpp | 57 +++++++ .../rendering/dummy/rasterizer_scene_dummy.h | 26 +--- servers/rendering/renderer_scene_render.h | 2 +- servers/rendering/storage/light_storage.h | 2 +- servers/rendering/storage/render_data.cpp | 31 ---- servers/rendering/storage/render_data.h | 22 +-- .../storage/render_data_extension.cpp | 144 ++++++++++++++++++ .../rendering/storage/render_data_extension.h | 103 +++++++++++++ .../storage/render_scene_buffers.cpp | 28 ---- .../rendering/storage/render_scene_buffers.h | 24 --- .../rendering/storage/render_scene_data.cpp | 48 +----- servers/rendering/storage/render_scene_data.h | 29 ---- 17 files changed, 468 insertions(+), 237 deletions(-) create mode 100644 servers/rendering/dummy/rasterizer_dummy.cpp create mode 100644 servers/rendering/dummy/rasterizer_scene_dummy.cpp create mode 100644 servers/rendering/storage/render_data_extension.cpp create mode 100644 servers/rendering/storage/render_data_extension.h diff --git a/editor/debugger/editor_debugger_plugin.h b/editor/debugger/editor_debugger_plugin.h index 1cc4a54e71..bb07757df2 100644 --- a/editor/debugger/editor_debugger_plugin.h +++ b/editor/debugger/editor_debugger_plugin.h @@ -30,6 +30,8 @@ #pragma once +#include "core/object/ref_counted.h" +#include "core/object/script_language.h" #include "scene/gui/control.h" class ScriptEditorDebugger; diff --git a/editor/doc/editor_help_search.h b/editor/doc/editor_help_search.h index b330c5c6c2..f034e26aa9 100644 --- a/editor/doc/editor_help_search.h +++ b/editor/doc/editor_help_search.h @@ -30,6 +30,7 @@ #pragma once +#include "core/doc_data.h" #include "core/templates/rb_set.h" #include "editor/plugins/editor_plugin.h" #include "scene/gui/dialogs.h" diff --git a/servers/register_server_types.cpp b/servers/register_server_types.cpp index 723554826d..e53d52975f 100644 --- a/servers/register_server_types.cpp +++ b/servers/register_server_types.cpp @@ -70,6 +70,7 @@ #include "rendering/rendering_server.h" #include "rendering/shader_include_db.h" #include "rendering/storage/render_data.h" +#include "rendering/storage/render_data_extension.h" #include "rendering/storage/render_scene_buffers.h" #include "rendering/storage/render_scene_data.h" #include "servers/rendering/shader_types.h" diff --git a/servers/rendering/dummy/rasterizer_dummy.cpp b/servers/rendering/dummy/rasterizer_dummy.cpp new file mode 100644 index 0000000000..83f4908668 --- /dev/null +++ b/servers/rendering/dummy/rasterizer_dummy.cpp @@ -0,0 +1,109 @@ +/**************************************************************************/ +/* rasterizer_dummy.cpp */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +#include "rasterizer_dummy.h" + +#include "servers/display/display_server.h" +#include "servers/rendering/dummy/environment/fog.h" +#include "servers/rendering/dummy/environment/gi.h" +#include "servers/rendering/dummy/rasterizer_canvas_dummy.h" +#include "servers/rendering/dummy/rasterizer_scene_dummy.h" +#include "servers/rendering/dummy/storage/light_storage.h" +#include "servers/rendering/dummy/storage/material_storage.h" +#include "servers/rendering/dummy/storage/mesh_storage.h" +#include "servers/rendering/dummy/storage/particles_storage.h" +#include "servers/rendering/dummy/storage/texture_storage.h" +#include "servers/rendering/dummy/storage/utilities.h" + +void RasterizerDummy::end_frame(bool p_present) { + if (p_present) { + DisplayServer::get_singleton()->swap_buffers(); + } +} + +RendererCanvasRender *RasterizerDummy::get_canvas() { + return canvas; +} +RendererSceneRender *RasterizerDummy::get_scene() { + return scene; +} + +RendererFog *RasterizerDummy::get_fog() { + return fog; +} +RendererGI *RasterizerDummy::get_gi() { + return gi; +} +RendererLightStorage *RasterizerDummy::get_light_storage() { + return light_storage; +} +RendererMaterialStorage *RasterizerDummy::get_material_storage() { + return material_storage; +} +RendererMeshStorage *RasterizerDummy::get_mesh_storage() { + return mesh_storage; +} +RendererParticlesStorage *RasterizerDummy::get_particles_storage() { + return particles_storage; +} +RendererTextureStorage *RasterizerDummy::get_texture_storage() { + return texture_storage; +} +RendererUtilities *RasterizerDummy::get_utilities() { + return utilities; +} + +RasterizerDummy::RasterizerDummy() { + canvas = memnew(RasterizerCanvasDummy); + scene = memnew(RasterizerSceneDummy); + + fog = memnew(RendererDummy::Fog); + gi = memnew(RendererDummy::GI); + light_storage = memnew(RendererDummy::LightStorage); + material_storage = memnew(RendererDummy::MaterialStorage); + mesh_storage = memnew(RendererDummy::MeshStorage); + particles_storage = memnew(RendererDummy::ParticlesStorage); + texture_storage = memnew(RendererDummy::TextureStorage); + utilities = memnew(RendererDummy::Utilities); +} + +RasterizerDummy::~RasterizerDummy() { + memdelete(canvas); + memdelete(scene); + + memdelete(fog); + memdelete(gi); + memdelete(light_storage); + memdelete(material_storage); + memdelete(mesh_storage); + memdelete(particles_storage); + memdelete(texture_storage); + memdelete(utilities); +} diff --git a/servers/rendering/dummy/rasterizer_dummy.h b/servers/rendering/dummy/rasterizer_dummy.h index e800f40bd7..397fc23649 100644 --- a/servers/rendering/dummy/rasterizer_dummy.h +++ b/servers/rendering/dummy/rasterizer_dummy.h @@ -30,20 +30,23 @@ #pragma once -#include "servers/display/display_server.h" -#include "servers/rendering/dummy/environment/fog.h" -#include "servers/rendering/dummy/environment/gi.h" -#include "servers/rendering/dummy/rasterizer_canvas_dummy.h" -#include "servers/rendering/dummy/rasterizer_scene_dummy.h" -#include "servers/rendering/dummy/storage/light_storage.h" -#include "servers/rendering/dummy/storage/material_storage.h" -#include "servers/rendering/dummy/storage/mesh_storage.h" -#include "servers/rendering/dummy/storage/particles_storage.h" -#include "servers/rendering/dummy/storage/texture_storage.h" -#include "servers/rendering/dummy/storage/utilities.h" #include "servers/rendering/renderer_compositor.h" #include "servers/rendering/rendering_server_enums.h" +class RasterizerCanvasDummy; +class RasterizerSceneDummy; + +namespace RendererDummy { +class Fog; +class GI; +class LightStorage; +class MaterialStorage; +class MeshStorage; +class ParticlesStorage; +class TextureStorage; +class Utilities; +} //namespace RendererDummy + class RasterizerDummy : public RendererCompositor { private: uint64_t frame = 1; @@ -51,29 +54,30 @@ private: double time = 0.0; protected: - RasterizerCanvasDummy canvas; - RasterizerSceneDummy scene; + RasterizerCanvasDummy *canvas = nullptr; + RasterizerSceneDummy *scene = nullptr; - RendererDummy::Fog fog; - RendererDummy::GI gi; - RendererDummy::LightStorage light_storage; - RendererDummy::MaterialStorage material_storage; - RendererDummy::MeshStorage mesh_storage; - RendererDummy::ParticlesStorage particles_storage; - RendererDummy::TextureStorage texture_storage; - RendererDummy::Utilities utilities; + RendererDummy::Fog *fog = nullptr; + RendererDummy::GI *gi = nullptr; + RendererDummy::LightStorage *light_storage = nullptr; + RendererDummy::MaterialStorage *material_storage = nullptr; + RendererDummy::MeshStorage *mesh_storage = nullptr; + RendererDummy::ParticlesStorage *particles_storage = nullptr; + RendererDummy::TextureStorage *texture_storage = nullptr; + RendererDummy::Utilities *utilities = nullptr; public: - RendererUtilities *get_utilities() override { return &utilities; } - RendererLightStorage *get_light_storage() override { return &light_storage; } - RendererMaterialStorage *get_material_storage() override { return &material_storage; } - RendererMeshStorage *get_mesh_storage() override { return &mesh_storage; } - RendererParticlesStorage *get_particles_storage() override { return &particles_storage; } - RendererTextureStorage *get_texture_storage() override { return &texture_storage; } - RendererGI *get_gi() override { return &gi; } - RendererFog *get_fog() override { return &fog; } - RendererCanvasRender *get_canvas() override { return &canvas; } - RendererSceneRender *get_scene() override { return &scene; } + RendererCanvasRender *get_canvas() override; + RendererSceneRender *get_scene() override; + + RendererFog *get_fog() override; + RendererGI *get_gi() override; + RendererLightStorage *get_light_storage() override; + RendererMaterialStorage *get_material_storage() override; + RendererMeshStorage *get_mesh_storage() override; + RendererParticlesStorage *get_particles_storage() override; + RendererTextureStorage *get_texture_storage() override; + RendererUtilities *get_utilities() override; void set_boot_image_with_stretch(const Ref &p_image, const Color &p_color, RSE::SplashStretchMode p_stretch_mode, bool p_use_filter = true) override {} @@ -89,11 +93,7 @@ public: bool is_opengl() override { return false; } void gl_end_frame(bool p_swap_buffers) override {} - void end_frame(bool p_present) override { - if (p_present) { - DisplayServer::get_singleton()->swap_buffers(); - } - } + void end_frame(bool p_present) override; void finalize() override {} @@ -111,6 +111,6 @@ public: double get_total_time() const override { return time; } bool can_create_resources_async() const override { return false; } - RasterizerDummy() {} - ~RasterizerDummy() {} + RasterizerDummy(); + ~RasterizerDummy(); }; diff --git a/servers/rendering/dummy/rasterizer_scene_dummy.cpp b/servers/rendering/dummy/rasterizer_scene_dummy.cpp new file mode 100644 index 0000000000..3b79e67271 --- /dev/null +++ b/servers/rendering/dummy/rasterizer_scene_dummy.cpp @@ -0,0 +1,57 @@ +/**************************************************************************/ +/* rasterizer_scene_dummy.cpp */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +#include "rasterizer_scene_dummy.h" + +#include "core/io/image.h" +#include "core/variant/typed_array.h" +#include "servers/rendering/rendering_server_globals.h" + +TypedArray RasterizerSceneDummy::bake_render_uv2(RID p_base, const TypedArray &p_material_overrides, const Size2i &p_image_size) { + return TypedArray(); +} + +bool RasterizerSceneDummy::free(RID p_rid) { + if (is_environment(p_rid)) { + environment_free(p_rid); + return true; + } else if (is_compositor(p_rid)) { + compositor_free(p_rid); + return true; + } else if (is_compositor_effect(p_rid)) { + compositor_effect_free(p_rid); + return true; + } else if (RSG::camera_attributes->owns_camera_attributes(p_rid)) { + RSG::camera_attributes->camera_attributes_free(p_rid); + return true; + } else { + return false; + } +} diff --git a/servers/rendering/dummy/rasterizer_scene_dummy.h b/servers/rendering/dummy/rasterizer_scene_dummy.h index bfc74bea80..17dc40b67a 100644 --- a/servers/rendering/dummy/rasterizer_scene_dummy.h +++ b/servers/rendering/dummy/rasterizer_scene_dummy.h @@ -33,7 +33,11 @@ #include "core/templates/paged_allocator.h" #include "servers/rendering/dummy/storage/utilities.h" #include "servers/rendering/renderer_scene_render.h" -#include "servers/rendering/rendering_server_globals.h" + +class Image; + +template +class TypedArray; class RasterizerSceneDummy : public RendererSceneRender { public: @@ -173,25 +177,9 @@ public: void sub_surface_scattering_set_quality(RSE::SubSurfaceScatteringQuality p_quality) override {} void sub_surface_scattering_set_scale(float p_scale, float p_depth_scale) override {} - TypedArray bake_render_uv2(RID p_base, const TypedArray &p_material_overrides, const Size2i &p_image_size) override { return TypedArray(); } + TypedArray bake_render_uv2(RID p_base, const TypedArray &p_material_overrides, const Size2i &p_image_size) override; - bool free(RID p_rid) override { - if (is_environment(p_rid)) { - environment_free(p_rid); - return true; - } else if (is_compositor(p_rid)) { - compositor_free(p_rid); - return true; - } else if (is_compositor_effect(p_rid)) { - compositor_effect_free(p_rid); - return true; - } else if (RSG::camera_attributes->owns_camera_attributes(p_rid)) { - RSG::camera_attributes->camera_attributes_free(p_rid); - return true; - } else { - return false; - } - } + bool free(RID p_rid) override; void update() override {} void sdfgi_set_debug_probe_select(const Vector3 &p_position, const Vector3 &p_dir) override {} diff --git a/servers/rendering/renderer_scene_render.h b/servers/rendering/renderer_scene_render.h index 165c823da5..136472317d 100644 --- a/servers/rendering/renderer_scene_render.h +++ b/servers/rendering/renderer_scene_render.h @@ -36,7 +36,7 @@ #include "servers/rendering/rendering_method.h" #include "servers/rendering/storage/compositor_storage.h" #include "servers/rendering/storage/environment_storage.h" -#include "storage/render_scene_buffers.h" +#include "servers/rendering/storage/render_scene_buffers.h" class RendererSceneRender { private: diff --git a/servers/rendering/storage/light_storage.h b/servers/rendering/storage/light_storage.h index 18781ff678..fb7af2dc94 100644 --- a/servers/rendering/storage/light_storage.h +++ b/servers/rendering/storage/light_storage.h @@ -30,8 +30,8 @@ #pragma once -#include "render_scene_buffers.h" #include "servers/rendering/rendering_server_enums.h" +#include "servers/rendering/storage/render_scene_buffers.h" class RendererLightStorage { public: diff --git a/servers/rendering/storage/render_data.cpp b/servers/rendering/storage/render_data.cpp index fa00a5c672..fca19d7292 100644 --- a/servers/rendering/storage/render_data.cpp +++ b/servers/rendering/storage/render_data.cpp @@ -36,34 +36,3 @@ void RenderData::_bind_methods() { ClassDB::bind_method(D_METHOD("get_environment"), &RenderData::get_environment); ClassDB::bind_method(D_METHOD("get_camera_attributes"), &RenderData::get_camera_attributes); } - -void RenderDataExtension::_bind_methods() { - GDVIRTUAL_BIND(_get_render_scene_buffers); - GDVIRTUAL_BIND(_get_render_scene_data) - GDVIRTUAL_BIND(_get_environment) - GDVIRTUAL_BIND(_get_camera_attributes) -} - -Ref RenderDataExtension::get_render_scene_buffers() const { - Ref ret; - GDVIRTUAL_CALL(_get_render_scene_buffers, ret); - return ret; -} - -RenderSceneData *RenderDataExtension::get_render_scene_data() const { - RenderSceneData *ret = nullptr; - GDVIRTUAL_CALL(_get_render_scene_data, ret); - return ret; -} - -RID RenderDataExtension::get_environment() const { - RID ret; - GDVIRTUAL_CALL(_get_environment, ret); - return ret; -} - -RID RenderDataExtension::get_camera_attributes() const { - RID ret; - GDVIRTUAL_CALL(_get_camera_attributes, ret); - return ret; -} diff --git a/servers/rendering/storage/render_data.h b/servers/rendering/storage/render_data.h index 6afe4dc019..25bddc23f7 100644 --- a/servers/rendering/storage/render_data.h +++ b/servers/rendering/storage/render_data.h @@ -31,8 +31,8 @@ #pragma once #include "core/object/object.h" -#include "render_scene_buffers.h" -#include "render_scene_data.h" +#include "servers/rendering/storage/render_scene_buffers.h" +#include "servers/rendering/storage/render_scene_data.h" class RenderData : public Object { GDCLASS(RenderData, Object); @@ -47,21 +47,3 @@ public: virtual RID get_environment() const = 0; virtual RID get_camera_attributes() const = 0; }; - -class RenderDataExtension : public RenderData { - GDCLASS(RenderDataExtension, RenderData); - -protected: - static void _bind_methods(); - - virtual Ref get_render_scene_buffers() const override; - virtual RenderSceneData *get_render_scene_data() const override; - - virtual RID get_environment() const override; - virtual RID get_camera_attributes() const override; - - GDVIRTUAL0RC(Ref, _get_render_scene_buffers) - GDVIRTUAL0RC(RenderSceneData *, _get_render_scene_data) - GDVIRTUAL0RC(RID, _get_environment) - GDVIRTUAL0RC(RID, _get_camera_attributes) -}; diff --git a/servers/rendering/storage/render_data_extension.cpp b/servers/rendering/storage/render_data_extension.cpp new file mode 100644 index 0000000000..a5b5054bba --- /dev/null +++ b/servers/rendering/storage/render_data_extension.cpp @@ -0,0 +1,144 @@ +/**************************************************************************/ +/* render_data_extension.cpp */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +#include "render_data_extension.h" + +#include "servers/rendering/rendering_server.h" // IWYU pragma: Needed to bind RSE enums. + +// RenderSceneBuffersExtension + +void RenderSceneBuffersExtension::_bind_methods() { + GDVIRTUAL_BIND(_configure, "config"); + GDVIRTUAL_BIND(_set_fsr_sharpness, "fsr_sharpness"); + GDVIRTUAL_BIND(_set_texture_mipmap_bias, "texture_mipmap_bias"); + GDVIRTUAL_BIND(_set_anisotropic_filtering_level, "anisotropic_filtering_level"); + GDVIRTUAL_BIND(_set_use_debanding, "use_debanding"); +} + +void RenderSceneBuffersExtension::configure(const RenderSceneBuffersConfiguration *p_config) { + GDVIRTUAL_CALL(_configure, p_config); +} + +void RenderSceneBuffersExtension::set_fsr_sharpness(float p_fsr_sharpness) { + GDVIRTUAL_CALL(_set_fsr_sharpness, p_fsr_sharpness); +} + +void RenderSceneBuffersExtension::set_texture_mipmap_bias(float p_texture_mipmap_bias) { + GDVIRTUAL_CALL(_set_texture_mipmap_bias, p_texture_mipmap_bias); +} + +void RenderSceneBuffersExtension::set_anisotropic_filtering_level(RSE::ViewportAnisotropicFiltering p_anisotropic_filtering_level) { + GDVIRTUAL_CALL(_set_anisotropic_filtering_level, p_anisotropic_filtering_level); +} + +void RenderSceneBuffersExtension::set_use_debanding(bool p_use_debanding) { + GDVIRTUAL_CALL(_set_use_debanding, p_use_debanding); +} + +// RenderSceneDataExtension + +void RenderSceneDataExtension::_bind_methods() { + GDVIRTUAL_BIND(_get_cam_transform); + GDVIRTUAL_BIND(_get_cam_projection); + GDVIRTUAL_BIND(_get_view_count); + GDVIRTUAL_BIND(_get_view_eye_offset, "view"); + GDVIRTUAL_BIND(_get_view_projection, "view"); + + GDVIRTUAL_BIND(_get_uniform_buffer); +} + +Transform3D RenderSceneDataExtension::get_cam_transform() const { + Transform3D ret; + GDVIRTUAL_CALL(_get_cam_transform, ret); + return ret; +} + +Projection RenderSceneDataExtension::get_cam_projection() const { + Projection ret; + GDVIRTUAL_CALL(_get_cam_projection, ret); + return ret; +} + +uint32_t RenderSceneDataExtension::get_view_count() const { + uint32_t ret = 0; + GDVIRTUAL_CALL(_get_view_count, ret); + return ret; +} + +Vector3 RenderSceneDataExtension::get_view_eye_offset(uint32_t p_view) const { + Vector3 ret; + GDVIRTUAL_CALL(_get_view_eye_offset, p_view, ret); + return ret; +} + +Projection RenderSceneDataExtension::get_view_projection(uint32_t p_view) const { + Projection ret; + GDVIRTUAL_CALL(_get_view_projection, p_view, ret); + return ret; +} + +RID RenderSceneDataExtension::get_uniform_buffer() const { + RID ret; + GDVIRTUAL_CALL(_get_uniform_buffer, ret); + return ret; +} + +// RenderDataExtension + +void RenderDataExtension::_bind_methods() { + GDVIRTUAL_BIND(_get_render_scene_buffers); + GDVIRTUAL_BIND(_get_render_scene_data) + GDVIRTUAL_BIND(_get_environment) + GDVIRTUAL_BIND(_get_camera_attributes) +} + +Ref RenderDataExtension::get_render_scene_buffers() const { + Ref ret; + GDVIRTUAL_CALL(_get_render_scene_buffers, ret); + return ret; +} + +RenderSceneData *RenderDataExtension::get_render_scene_data() const { + RenderSceneData *ret = nullptr; + GDVIRTUAL_CALL(_get_render_scene_data, ret); + return ret; +} + +RID RenderDataExtension::get_environment() const { + RID ret; + GDVIRTUAL_CALL(_get_environment, ret); + return ret; +} + +RID RenderDataExtension::get_camera_attributes() const { + RID ret; + GDVIRTUAL_CALL(_get_camera_attributes, ret); + return ret; +} diff --git a/servers/rendering/storage/render_data_extension.h b/servers/rendering/storage/render_data_extension.h new file mode 100644 index 0000000000..11556f5f54 --- /dev/null +++ b/servers/rendering/storage/render_data_extension.h @@ -0,0 +1,103 @@ +/**************************************************************************/ +/* render_data_extension.h */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +#pragma once + +#include "core/object/gdvirtual.gen.h" +#include "servers/rendering/storage/render_data.h" +#include "servers/rendering/storage/render_scene_buffers.h" +#include "servers/rendering/storage/render_scene_data.h" + +class RenderSceneBuffersExtension : public RenderSceneBuffers { + GDCLASS(RenderSceneBuffersExtension, RenderSceneBuffers); + +protected: + static void _bind_methods(); + + GDVIRTUAL1(_configure, const RenderSceneBuffersConfiguration *) + GDVIRTUAL1(_set_fsr_sharpness, float) + GDVIRTUAL1(_set_texture_mipmap_bias, float) + GDVIRTUAL1(_set_anisotropic_filtering_level, int) + GDVIRTUAL1(_set_use_debanding, bool) + +public: + virtual ~RenderSceneBuffersExtension() {} + + virtual void configure(const RenderSceneBuffersConfiguration *p_config) override; + + virtual void set_fsr_sharpness(float p_fsr_sharpness) override; + virtual void set_texture_mipmap_bias(float p_texture_mipmap_bias) override; + virtual void set_anisotropic_filtering_level(RSE::ViewportAnisotropicFiltering p_anisotropic_filtering_level) override; + virtual void set_use_debanding(bool p_use_debanding) override; +}; + +class RenderSceneDataExtension : public RenderSceneData { + GDCLASS(RenderSceneDataExtension, RenderSceneData); + +protected: + static void _bind_methods(); + +public: + virtual Transform3D get_cam_transform() const override; + virtual Projection get_cam_projection() const override; + + virtual uint32_t get_view_count() const override; + virtual Vector3 get_view_eye_offset(uint32_t p_view) const override; + virtual Projection get_view_projection(uint32_t p_view) const override; + + virtual RID get_uniform_buffer() const override; + + GDVIRTUAL0RC(Transform3D, _get_cam_transform) + GDVIRTUAL0RC(Projection, _get_cam_projection) + + GDVIRTUAL0RC(uint32_t, _get_view_count) + GDVIRTUAL1RC(Vector3, _get_view_eye_offset, uint32_t) + GDVIRTUAL1RC(Projection, _get_view_projection, uint32_t) + + GDVIRTUAL0RC(RID, _get_uniform_buffer) +}; + +class RenderDataExtension : public RenderData { + GDCLASS(RenderDataExtension, RenderData); + +protected: + static void _bind_methods(); + + virtual Ref get_render_scene_buffers() const override; + virtual RenderSceneData *get_render_scene_data() const override; + + virtual RID get_environment() const override; + virtual RID get_camera_attributes() const override; + + GDVIRTUAL0RC(Ref, _get_render_scene_buffers) + GDVIRTUAL0RC(RenderSceneData *, _get_render_scene_data) + GDVIRTUAL0RC(RID, _get_environment) + GDVIRTUAL0RC(RID, _get_camera_attributes) +}; diff --git a/servers/rendering/storage/render_scene_buffers.cpp b/servers/rendering/storage/render_scene_buffers.cpp index 4e356fe36c..c8da5f49fd 100644 --- a/servers/rendering/storage/render_scene_buffers.cpp +++ b/servers/rendering/storage/render_scene_buffers.cpp @@ -77,31 +77,3 @@ void RenderSceneBuffersConfiguration::_bind_methods() { void RenderSceneBuffers::_bind_methods() { ClassDB::bind_method(D_METHOD("configure", "config"), &RenderSceneBuffers::configure); } - -void RenderSceneBuffersExtension::_bind_methods() { - GDVIRTUAL_BIND(_configure, "config"); - GDVIRTUAL_BIND(_set_fsr_sharpness, "fsr_sharpness"); - GDVIRTUAL_BIND(_set_texture_mipmap_bias, "texture_mipmap_bias"); - GDVIRTUAL_BIND(_set_anisotropic_filtering_level, "anisotropic_filtering_level"); - GDVIRTUAL_BIND(_set_use_debanding, "use_debanding"); -} - -void RenderSceneBuffersExtension::configure(const RenderSceneBuffersConfiguration *p_config) { - GDVIRTUAL_CALL(_configure, p_config); -} - -void RenderSceneBuffersExtension::set_fsr_sharpness(float p_fsr_sharpness) { - GDVIRTUAL_CALL(_set_fsr_sharpness, p_fsr_sharpness); -} - -void RenderSceneBuffersExtension::set_texture_mipmap_bias(float p_texture_mipmap_bias) { - GDVIRTUAL_CALL(_set_texture_mipmap_bias, p_texture_mipmap_bias); -} - -void RenderSceneBuffersExtension::set_anisotropic_filtering_level(RSE::ViewportAnisotropicFiltering p_anisotropic_filtering_level) { - GDVIRTUAL_CALL(_set_anisotropic_filtering_level, p_anisotropic_filtering_level); -} - -void RenderSceneBuffersExtension::set_use_debanding(bool p_use_debanding) { - GDVIRTUAL_CALL(_set_use_debanding, p_use_debanding); -} diff --git a/servers/rendering/storage/render_scene_buffers.h b/servers/rendering/storage/render_scene_buffers.h index 0394fd1408..c67a022bf4 100644 --- a/servers/rendering/storage/render_scene_buffers.h +++ b/servers/rendering/storage/render_scene_buffers.h @@ -30,7 +30,6 @@ #pragma once -#include "core/object/gdvirtual.gen.h" #include "core/object/ref_counted.h" #include "servers/rendering/rendering_server_enums.h" @@ -116,26 +115,3 @@ public: virtual void set_anisotropic_filtering_level(RSE::ViewportAnisotropicFiltering p_anisotropic_filtering_level) = 0; virtual void set_use_debanding(bool p_use_debanding) = 0; }; - -class RenderSceneBuffersExtension : public RenderSceneBuffers { - GDCLASS(RenderSceneBuffersExtension, RenderSceneBuffers); - -protected: - static void _bind_methods(); - - GDVIRTUAL1(_configure, const RenderSceneBuffersConfiguration *) - GDVIRTUAL1(_set_fsr_sharpness, float) - GDVIRTUAL1(_set_texture_mipmap_bias, float) - GDVIRTUAL1(_set_anisotropic_filtering_level, int) - GDVIRTUAL1(_set_use_debanding, bool) - -public: - virtual ~RenderSceneBuffersExtension() {} - - virtual void configure(const RenderSceneBuffersConfiguration *p_config) override; - - virtual void set_fsr_sharpness(float p_fsr_sharpness) override; - virtual void set_texture_mipmap_bias(float p_texture_mipmap_bias) override; - virtual void set_anisotropic_filtering_level(RSE::ViewportAnisotropicFiltering p_anisotropic_filtering_level) override; - virtual void set_use_debanding(bool p_use_debanding) override; -}; diff --git a/servers/rendering/storage/render_scene_data.cpp b/servers/rendering/storage/render_scene_data.cpp index a1d8f524b4..0140fd3ad1 100644 --- a/servers/rendering/storage/render_scene_data.cpp +++ b/servers/rendering/storage/render_scene_data.cpp @@ -30,6 +30,8 @@ #include "render_scene_data.h" +#include "core/object/class_db.h" + void RenderSceneData::_bind_methods() { ClassDB::bind_method(D_METHOD("get_cam_transform"), &RenderSceneData::get_cam_transform); ClassDB::bind_method(D_METHOD("get_cam_projection"), &RenderSceneData::get_cam_projection); @@ -40,49 +42,3 @@ void RenderSceneData::_bind_methods() { ClassDB::bind_method(D_METHOD("get_uniform_buffer"), &RenderSceneData::get_uniform_buffer); } - -void RenderSceneDataExtension::_bind_methods() { - GDVIRTUAL_BIND(_get_cam_transform); - GDVIRTUAL_BIND(_get_cam_projection); - GDVIRTUAL_BIND(_get_view_count); - GDVIRTUAL_BIND(_get_view_eye_offset, "view"); - GDVIRTUAL_BIND(_get_view_projection, "view"); - - GDVIRTUAL_BIND(_get_uniform_buffer); -} - -Transform3D RenderSceneDataExtension::get_cam_transform() const { - Transform3D ret; - GDVIRTUAL_CALL(_get_cam_transform, ret); - return ret; -} - -Projection RenderSceneDataExtension::get_cam_projection() const { - Projection ret; - GDVIRTUAL_CALL(_get_cam_projection, ret); - return ret; -} - -uint32_t RenderSceneDataExtension::get_view_count() const { - uint32_t ret = 0; - GDVIRTUAL_CALL(_get_view_count, ret); - return ret; -} - -Vector3 RenderSceneDataExtension::get_view_eye_offset(uint32_t p_view) const { - Vector3 ret; - GDVIRTUAL_CALL(_get_view_eye_offset, p_view, ret); - return ret; -} - -Projection RenderSceneDataExtension::get_view_projection(uint32_t p_view) const { - Projection ret; - GDVIRTUAL_CALL(_get_view_projection, p_view, ret); - return ret; -} - -RID RenderSceneDataExtension::get_uniform_buffer() const { - RID ret; - GDVIRTUAL_CALL(_get_uniform_buffer, ret); - return ret; -} diff --git a/servers/rendering/storage/render_scene_data.h b/servers/rendering/storage/render_scene_data.h index 033f425449..583d5bf420 100644 --- a/servers/rendering/storage/render_scene_data.h +++ b/servers/rendering/storage/render_scene_data.h @@ -30,10 +30,7 @@ #pragma once -#include "core/object/class_db.h" -#include "core/object/gdvirtual.gen.h" #include "core/object/object.h" -#include "core/object/script_language.h" class RenderSceneData : public Object { GDCLASS(RenderSceneData, Object); @@ -51,29 +48,3 @@ public: virtual RID get_uniform_buffer() const = 0; }; - -class RenderSceneDataExtension : public RenderSceneData { - GDCLASS(RenderSceneDataExtension, RenderSceneData); - -protected: - static void _bind_methods(); - -public: - virtual Transform3D get_cam_transform() const override; - virtual Projection get_cam_projection() const override; - - virtual uint32_t get_view_count() const override; - virtual Vector3 get_view_eye_offset(uint32_t p_view) const override; - virtual Projection get_view_projection(uint32_t p_view) const override; - - virtual RID get_uniform_buffer() const override; - - GDVIRTUAL0RC(Transform3D, _get_cam_transform) - GDVIRTUAL0RC(Projection, _get_cam_projection) - - GDVIRTUAL0RC(uint32_t, _get_view_count) - GDVIRTUAL1RC(Vector3, _get_view_eye_offset, uint32_t) - GDVIRTUAL1RC(Projection, _get_view_projection, uint32_t) - - GDVIRTUAL0RC(RID, _get_uniform_buffer) -}; From e3b60a1530627a87b30b00c55ceef8e628c59f27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Fri, 20 Feb 2026 02:58:11 +0100 Subject: [PATCH 12/13] Move RenderingMethod::RenderInfo to RenderingServerTypes Also move RS::scaling_3d_mode_type to RenderingServerEnums. --- drivers/gles3/rasterizer_canvas_gles3.cpp | 7 +++--- drivers/gles3/rasterizer_canvas_gles3.h | 6 ++--- drivers/gles3/rasterizer_scene_gles3.cpp | 5 ++-- drivers/gles3/rasterizer_scene_gles3.h | 7 +++--- drivers/gles3/storage/mesh_storage.cpp | 2 ++ drivers/gles3/storage/mesh_storage.h | 1 + editor/inspector/editor_resource_preview.cpp | 1 + .../openxr_composition_layer_extension.cpp | 11 +++++---- .../rendering/dummy/rasterizer_canvas_dummy.h | 2 +- .../rendering/dummy/rasterizer_scene_dummy.h | 2 +- servers/rendering/renderer_canvas_cull.cpp | 10 ++++---- servers/rendering/renderer_canvas_cull.h | 6 ++--- servers/rendering/renderer_canvas_render.h | 4 ++-- .../render_forward_clustered.cpp | 5 ++-- .../render_forward_clustered.h | 11 +++++---- .../forward_mobile/render_forward_mobile.cpp | 5 ++-- .../forward_mobile/render_forward_mobile.h | 4 ++-- .../renderer_rd/renderer_canvas_render_rd.cpp | 6 ++--- .../renderer_rd/renderer_canvas_render_rd.h | 6 ++--- .../renderer_rd/renderer_scene_render_rd.cpp | 6 ++--- .../renderer_rd/renderer_scene_render_rd.h | 11 +++++---- .../renderer_rd/storage_rd/mesh_storage.cpp | 1 + .../renderer_rd/storage_rd/mesh_storage.h | 1 + .../storage_rd/particles_storage.cpp | 1 + .../renderer_rd/storage_rd/render_data_rd.h | 3 ++- .../storage_rd/render_scene_buffers_rd.cpp | 7 +++--- .../storage_rd/render_scene_buffers_rd.h | 7 +++--- servers/rendering/renderer_scene_cull.cpp | 4 ++-- servers/rendering/renderer_scene_cull.h | 5 ++-- servers/rendering/renderer_scene_render.h | 4 ++-- servers/rendering/renderer_viewport.cpp | 14 +++++------ servers/rendering/renderer_viewport.h | 8 +++---- servers/rendering/rendering_method.h | 7 ++---- servers/rendering/rendering_server.h | 9 -------- servers/rendering/rendering_server_default.h | 1 + servers/rendering/rendering_server_enums.h | 23 +++++++++++++------ servers/rendering/rendering_server_globals.h | 5 ++-- servers/rendering/rendering_server_types.h | 6 +++++ servers/rendering/shader_compiler.cpp | 1 + 39 files changed, 124 insertions(+), 101 deletions(-) diff --git a/drivers/gles3/rasterizer_canvas_gles3.cpp b/drivers/gles3/rasterizer_canvas_gles3.cpp index f88f7cddd0..b34b0f8dff 100644 --- a/drivers/gles3/rasterizer_canvas_gles3.cpp +++ b/drivers/gles3/rasterizer_canvas_gles3.cpp @@ -43,6 +43,7 @@ #include "drivers/gles3/storage/utilities.h" #include "servers/rendering/rendering_server_default.h" #include "servers/rendering/rendering_server_globals.h" +#include "servers/rendering/rendering_server_types.h" void RasterizerCanvasGLES3::_update_transform_2d_to_mat4(const Transform2D &p_transform, float *p_mat4) { p_mat4[0] = p_transform.columns[0][0]; @@ -103,7 +104,7 @@ void RasterizerCanvasGLES3::_update_transform_to_mat4(const Transform3D &p_trans p_mat4[15] = 1; } -void RasterizerCanvasGLES3::canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_light_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info) { +void RasterizerCanvasGLES3::canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_light_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingServerTypes::RenderInfo *r_render_info) { GLES3::TextureStorage *texture_storage = GLES3::TextureStorage::get_singleton(); GLES3::MaterialStorage *material_storage = GLES3::MaterialStorage::get_singleton(); GLES3::MeshStorage *mesh_storage = GLES3::MeshStorage::get_singleton(); @@ -571,7 +572,7 @@ void RasterizerCanvasGLES3::canvas_render_items(RID p_to_render_target, Item *p_ state.current_instance_buffer_index = 0; } -void RasterizerCanvasGLES3::_render_items(RID p_to_render_target, int p_item_count, const Transform2D &p_canvas_transform_inverse, Light *p_lights, bool &r_sdf_used, bool p_to_backbuffer, RenderingMethod::RenderInfo *r_render_info, bool p_backbuffer_has_mipmaps) { +void RasterizerCanvasGLES3::_render_items(RID p_to_render_target, int p_item_count, const Transform2D &p_canvas_transform_inverse, Light *p_lights, bool &r_sdf_used, bool p_to_backbuffer, RenderingServerTypes::RenderInfo *r_render_info, bool p_backbuffer_has_mipmaps) { GLES3::MaterialStorage *material_storage = GLES3::MaterialStorage::get_singleton(); canvas_begin(p_to_render_target, p_to_backbuffer, p_backbuffer_has_mipmaps); @@ -1298,7 +1299,7 @@ _FORCE_INLINE_ static uint32_t _indices_to_primitives(RSE::PrimitiveType p_primi return (p_indices - subtractor[p_primitive]) / divisor[p_primitive]; } -void RasterizerCanvasGLES3::_render_batch(Light *p_lights, uint32_t p_index, RenderingMethod::RenderInfo *r_render_info) { +void RasterizerCanvasGLES3::_render_batch(Light *p_lights, uint32_t p_index, RenderingServerTypes::RenderInfo *r_render_info) { ERR_FAIL_NULL(state.canvas_instance_batches[state.current_batch_index].command); // Used by Polygon and Mesh. diff --git a/drivers/gles3/rasterizer_canvas_gles3.h b/drivers/gles3/rasterizer_canvas_gles3.h index 4f697e4a5e..6874d5d310 100644 --- a/drivers/gles3/rasterizer_canvas_gles3.h +++ b/drivers/gles3/rasterizer_canvas_gles3.h @@ -355,10 +355,10 @@ public: void _bind_canvas_texture(RID p_texture, RSE::CanvasItemTextureFilter p_base_filter, RSE::CanvasItemTextureRepeat p_base_repeat); void _prepare_canvas_texture(RID p_texture, RSE::CanvasItemTextureFilter p_base_filter, RSE::CanvasItemTextureRepeat p_base_repeat, uint32_t &r_index, Size2 &r_texpixel_size); - void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info = nullptr) override; - void _render_items(RID p_to_render_target, int p_item_count, const Transform2D &p_canvas_transform_inverse, Light *p_lights, bool &r_sdf_used, bool p_to_backbuffer = false, RenderingMethod::RenderInfo *r_render_info = nullptr, bool p_backbuffer_has_mipmaps = false); + void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingServerTypes::RenderInfo *r_render_info = nullptr) override; + void _render_items(RID p_to_render_target, int p_item_count, const Transform2D &p_canvas_transform_inverse, Light *p_lights, bool &r_sdf_used, bool p_to_backbuffer = false, RenderingServerTypes::RenderInfo *r_render_info = nullptr, bool p_backbuffer_has_mipmaps = false); void _record_item_commands(const Item *p_item, RID p_render_target, const Transform2D &p_canvas_transform_inverse, Item *¤t_clip, GLES3::CanvasShaderData::BlendMode p_blend_mode, Light *p_lights, uint32_t &r_index, bool &r_break_batch, bool &r_sdf_used, const Point2 &p_repeat_offset); - void _render_batch(Light *p_lights, uint32_t p_index, RenderingMethod::RenderInfo *r_render_info = nullptr); + void _render_batch(Light *p_lights, uint32_t p_index, RenderingServerTypes::RenderInfo *r_render_info = nullptr); bool _bind_material(GLES3::CanvasMaterialData *p_material_data, CanvasShaderGLES3::ShaderVariant p_variant, uint64_t p_specialization); void _new_batch(bool &r_batch_broken); void _add_to_batch(uint32_t &r_index, bool &r_batch_broken); diff --git a/drivers/gles3/rasterizer_scene_gles3.cpp b/drivers/gles3/rasterizer_scene_gles3.cpp index c31bc590d0..3e32e4453e 100644 --- a/drivers/gles3/rasterizer_scene_gles3.cpp +++ b/drivers/gles3/rasterizer_scene_gles3.cpp @@ -49,6 +49,7 @@ #include "servers/camera/camera_server.h" #include "servers/rendering/rendering_server_default.h" #include "servers/rendering/rendering_server_globals.h" +#include "servers/rendering/rendering_server_types.h" RasterizerSceneGLES3 *RasterizerSceneGLES3::singleton = nullptr; @@ -2072,7 +2073,7 @@ void RasterizerSceneGLES3::_render_shadows(const RenderDataGLES3 *p_render_data, } } -void RasterizerSceneGLES3::_render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray &p_instances, float p_lod_distance_multiplier, float p_screen_mesh_lod_threshold, RenderingMethod::RenderInfo *p_render_info, const Size2i &p_viewport_size, const Transform3D &p_main_cam_transform) { +void RasterizerSceneGLES3::_render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray &p_instances, float p_lod_distance_multiplier, float p_screen_mesh_lod_threshold, RenderingServerTypes::RenderInfo *p_render_info, const Size2i &p_viewport_size, const Transform3D &p_main_cam_transform) { GLES3::LightStorage *light_storage = GLES3::LightStorage::get_singleton(); ERR_FAIL_COND(!light_storage->owns_light_instance(p_light)); @@ -2265,7 +2266,7 @@ void RasterizerSceneGLES3::_render_shadow_pass(RID p_light, RID p_shadow_atlas, glBindFramebuffer(GL_FRAMEBUFFER, GLES3::TextureStorage::system_fbo); } -void RasterizerSceneGLES3::render_scene(const Ref &p_render_buffers, const CameraData *p_camera_data, const CameraData *p_prev_camera_data, const PagedArray &p_instances, const PagedArray &p_lights, const PagedArray &p_reflection_probes, const PagedArray &p_voxel_gi_instances, const PagedArray &p_decals, const PagedArray &p_lightmaps, const PagedArray &p_fog_volumes, RID p_environment, RID p_camera_attributes, RID p_compositor, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, float p_window_output_max_value, const RenderSDFGIUpdateData *p_sdfgi_update_data, RenderingMethod::RenderInfo *r_render_info) { +void RasterizerSceneGLES3::render_scene(const Ref &p_render_buffers, const CameraData *p_camera_data, const CameraData *p_prev_camera_data, const PagedArray &p_instances, const PagedArray &p_lights, const PagedArray &p_reflection_probes, const PagedArray &p_voxel_gi_instances, const PagedArray &p_decals, const PagedArray &p_lightmaps, const PagedArray &p_fog_volumes, RID p_environment, RID p_camera_attributes, RID p_compositor, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, float p_window_output_max_value, const RenderSDFGIUpdateData *p_sdfgi_update_data, RenderingServerTypes::RenderInfo *r_render_info) { GLES3::TextureStorage *texture_storage = GLES3::TextureStorage::get_singleton(); GLES3::Config *config = GLES3::Config::get_singleton(); RENDER_TIMESTAMP("Setup 3D Scene"); diff --git a/drivers/gles3/rasterizer_scene_gles3.h b/drivers/gles3/rasterizer_scene_gles3.h index c83db9e8c4..16183f01df 100644 --- a/drivers/gles3/rasterizer_scene_gles3.h +++ b/drivers/gles3/rasterizer_scene_gles3.h @@ -40,6 +40,7 @@ #include "drivers/gles3/storage/material_storage.h" #include "servers/rendering/renderer_scene_render.h" #include "servers/rendering/rendering_server_enums.h" +#include "servers/rendering/rendering_server_types.h" class RenderSceneBuffersGLES3; @@ -137,7 +138,7 @@ struct RenderDataGLES3 { float luminance_multiplier = 1.0; - RenderingMethod::RenderInfo *render_info = nullptr; + RenderingServerTypes::RenderInfo *render_info = nullptr; /* Shadow data */ const RendererSceneRender::RenderShadowData *render_shadows = nullptr; @@ -727,7 +728,7 @@ private: void _setup_environment(const RenderDataGLES3 *p_render_data, bool p_no_fog, const Size2i &p_screen_size, bool p_flip_y, const Color &p_default_bg_color, bool p_pancake_shadows, float p_shadow_bias = 0.0); void _fill_render_list(RenderListType p_render_list, const RenderDataGLES3 *p_render_data, PassMode p_pass_mode, bool p_append = false); void _render_shadows(const RenderDataGLES3 *p_render_data, const Size2i &p_viewport_size = Size2i(1, 1)); - void _render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray &p_instances, float p_lod_distance_multiplier = 0, float p_screen_mesh_lod_threshold = 0.0, RenderingMethod::RenderInfo *p_render_info = nullptr, const Size2i &p_viewport_size = Size2i(1, 1), const Transform3D &p_main_cam_transform = Transform3D()); + void _render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray &p_instances, float p_lod_distance_multiplier = 0, float p_screen_mesh_lod_threshold = 0.0, RenderingServerTypes::RenderInfo *p_render_info = nullptr, const Size2i &p_viewport_size = Size2i(1, 1), const Transform3D &p_main_cam_transform = Transform3D()); void _render_post_processing(const RenderDataGLES3 *p_render_data); template @@ -919,7 +920,7 @@ public: void voxel_gi_set_quality(RSE::VoxelGIQuality) override; - void render_scene(const Ref &p_render_buffers, const CameraData *p_camera_data, const CameraData *p_prev_camera_data, const PagedArray &p_instances, const PagedArray &p_lights, const PagedArray &p_reflection_probes, const PagedArray &p_voxel_gi_instances, const PagedArray &p_decals, const PagedArray &p_lightmaps, const PagedArray &p_fog_volumes, RID p_environment, RID p_camera_attributes, RID p_compositor, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, float p_window_output_max_value, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RenderingMethod::RenderInfo *r_render_info = nullptr) override; + void render_scene(const Ref &p_render_buffers, const CameraData *p_camera_data, const CameraData *p_prev_camera_data, const PagedArray &p_instances, const PagedArray &p_lights, const PagedArray &p_reflection_probes, const PagedArray &p_voxel_gi_instances, const PagedArray &p_decals, const PagedArray &p_lightmaps, const PagedArray &p_fog_volumes, RID p_environment, RID p_camera_attributes, RID p_compositor, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, float p_window_output_max_value, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RenderingServerTypes::RenderInfo *r_render_info = nullptr) override; void render_material(const Transform3D &p_cam_transform, const Projection &p_cam_projection, bool p_cam_orthogonal, const PagedArray &p_instances, RID p_framebuffer, const Rect2i &p_region) override; void render_particle_collider_heightfield(RID p_collider, const Transform3D &p_transform, const PagedArray &p_instances) override; diff --git a/drivers/gles3/storage/mesh_storage.cpp b/drivers/gles3/storage/mesh_storage.cpp index 6f58fc21c5..420702a258 100644 --- a/drivers/gles3/storage/mesh_storage.cpp +++ b/drivers/gles3/storage/mesh_storage.cpp @@ -35,6 +35,8 @@ #include "drivers/gles3/storage/config.h" #include "drivers/gles3/storage/texture_storage.h" #include "drivers/gles3/storage/utilities.h" +#include "servers/rendering/renderer_viewport.h" +#include "servers/rendering/rendering_server.h" using namespace GLES3; diff --git a/drivers/gles3/storage/mesh_storage.h b/drivers/gles3/storage/mesh_storage.h index d19ee9bf08..ad6d217d51 100644 --- a/drivers/gles3/storage/mesh_storage.h +++ b/drivers/gles3/storage/mesh_storage.h @@ -36,6 +36,7 @@ #include "core/templates/rid_owner.h" #include "core/templates/self_list.h" #include "drivers/gles3/shaders/skeleton.glsl.gen.h" +#include "servers/rendering/renderer_compositor.h" #include "servers/rendering/rendering_server_enums.h" #include "servers/rendering/rendering_server_globals.h" #include "servers/rendering/storage/mesh_storage.h" diff --git a/editor/inspector/editor_resource_preview.cpp b/editor/inspector/editor_resource_preview.cpp index fbbcd4002d..55cf23b856 100644 --- a/editor/inspector/editor_resource_preview.cpp +++ b/editor/inspector/editor_resource_preview.cpp @@ -42,6 +42,7 @@ #include "editor/themes/editor_scale.h" #include "scene/main/window.h" #include "scene/resources/image_texture.h" +#include "servers/rendering/renderer_compositor.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_globals.h" diff --git a/modules/openxr/extensions/openxr_composition_layer_extension.cpp b/modules/openxr/extensions/openxr_composition_layer_extension.cpp index a5413cae7e..bd6b816abd 100644 --- a/modules/openxr/extensions/openxr_composition_layer_extension.cpp +++ b/modules/openxr/extensions/openxr_composition_layer_extension.cpp @@ -30,17 +30,18 @@ #include "openxr_composition_layer_extension.h" -#ifdef ANDROID_ENABLED -#include -#include -#endif - #include "openxr_fb_update_swapchain_extension.h" + #include "platform/android/api/java_class_wrapper.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_globals.h" #include "servers/xr/xr_server.h" +#ifdef ANDROID_ENABLED +#include +#include +#endif + //////////////////////////////////////////////////////////////////////////// // OpenXRCompositionLayerExtension diff --git a/servers/rendering/dummy/rasterizer_canvas_dummy.h b/servers/rendering/dummy/rasterizer_canvas_dummy.h index 546e6ea89d..98cf58c253 100644 --- a/servers/rendering/dummy/rasterizer_canvas_dummy.h +++ b/servers/rendering/dummy/rasterizer_canvas_dummy.h @@ -37,7 +37,7 @@ public: PolygonID request_polygon(const Vector &p_indices, const Vector &p_points, const Vector &p_colors, const Vector &p_uvs = Vector(), const Vector &p_bones = Vector(), const Vector &p_weights = Vector(), int p_count = -1) override { return 0; } void free_polygon(PolygonID p_polygon) override {} - void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info = nullptr) override {} + void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingServerTypes::RenderInfo *r_render_info = nullptr) override {} RID light_create() override { return RID(); } void light_set_texture(RID p_rid, RID p_texture) override {} diff --git a/servers/rendering/dummy/rasterizer_scene_dummy.h b/servers/rendering/dummy/rasterizer_scene_dummy.h index 17dc40b67a..19b6b4f11e 100644 --- a/servers/rendering/dummy/rasterizer_scene_dummy.h +++ b/servers/rendering/dummy/rasterizer_scene_dummy.h @@ -160,7 +160,7 @@ public: void voxel_gi_set_quality(RSE::VoxelGIQuality) override {} - void render_scene(const Ref &p_render_buffers, const CameraData *p_camera_data, const CameraData *p_prev_camera_data, const PagedArray &p_instances, const PagedArray &p_lights, const PagedArray &p_reflection_probes, const PagedArray &p_voxel_gi_instances, const PagedArray &p_decals, const PagedArray &p_lightmaps, const PagedArray &p_fog_volumes, RID p_environment, RID p_camera_attributes, RID p_compositor, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, float p_window_output_max_value, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RenderingMethod::RenderInfo *r_info = nullptr) override {} + void render_scene(const Ref &p_render_buffers, const CameraData *p_camera_data, const CameraData *p_prev_camera_data, const PagedArray &p_instances, const PagedArray &p_lights, const PagedArray &p_reflection_probes, const PagedArray &p_voxel_gi_instances, const PagedArray &p_decals, const PagedArray &p_lightmaps, const PagedArray &p_fog_volumes, RID p_environment, RID p_camera_attributes, RID p_compositor, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, float p_window_output_max_value, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RenderingServerTypes::RenderInfo *r_info = nullptr) override {} void render_material(const Transform3D &p_cam_transform, const Projection &p_cam_projection, bool p_cam_orthogonal, const PagedArray &p_instances, RID p_framebuffer, const Rect2i &p_region) override {} void render_particle_collider_heightfield(RID p_collider, const Transform3D &p_transform, const PagedArray &p_instances) override {} diff --git a/servers/rendering/renderer_canvas_cull.cpp b/servers/rendering/renderer_canvas_cull.cpp index 43f236dd86..c6577dd65a 100644 --- a/servers/rendering/renderer_canvas_cull.cpp +++ b/servers/rendering/renderer_canvas_cull.cpp @@ -33,9 +33,9 @@ #include "core/config/project_settings.h" #include "core/math/geometry_2d.h" #include "core/math/transform_interpolator.h" -#include "renderer_viewport.h" -#include "rendering_server_default.h" -#include "rendering_server_globals.h" +#include "servers/rendering/renderer_viewport.h" +#include "servers/rendering/rendering_server_default.h" +#include "servers/rendering/rendering_server_globals.h" #include "servers/rendering/storage/texture_storage.h" // Use the same antialiasing feather size as StyleBoxFlat's default @@ -67,7 +67,7 @@ void RendererCanvasCull::_dependency_deleted(const RID &p_dependency, Dependency _canvas_cull_singleton->_item_queue_update(item, true); } -void RendererCanvasCull::_render_canvas_item_tree(RID p_to_render_target, Canvas::ChildItem *p_child_items, int p_child_item_count, const Transform2D &p_transform, const Rect2 &p_clip_rect, const Color &p_modulate, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, uint32_t p_canvas_cull_mask, RenderingMethod::RenderInfo *r_render_info) { +void RendererCanvasCull::_render_canvas_item_tree(RID p_to_render_target, Canvas::ChildItem *p_child_items, int p_child_item_count, const Transform2D &p_transform, const Rect2 &p_clip_rect, const Color &p_modulate, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, uint32_t p_canvas_cull_mask, RenderingServerTypes::RenderInfo *r_render_info) { RENDER_TIMESTAMP("Cull CanvasItem Tree"); // This is used to avoid passing the camera transform down the rendering @@ -491,7 +491,7 @@ void RendererCanvasCull::_cull_canvas_item(Item *p_canvas_item, const Transform2 } } -void RendererCanvasCull::render_canvas(RID p_render_target, Canvas *p_canvas, const Transform2D &p_transform, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, const Rect2 &p_clip_rect, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_transforms_to_pixel, bool p_snap_2d_vertices_to_pixel, uint32_t canvas_cull_mask, RenderingMethod::RenderInfo *r_render_info) { +void RendererCanvasCull::render_canvas(RID p_render_target, Canvas *p_canvas, const Transform2D &p_transform, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, const Rect2 &p_clip_rect, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_transforms_to_pixel, bool p_snap_2d_vertices_to_pixel, uint32_t canvas_cull_mask, RenderingServerTypes::RenderInfo *r_render_info) { RENDER_TIMESTAMP("> Render Canvas"); sdf_used = false; diff --git a/servers/rendering/renderer_canvas_cull.h b/servers/rendering/renderer_canvas_cull.h index 7fad91fc24..f2ff85dd59 100644 --- a/servers/rendering/renderer_canvas_cull.h +++ b/servers/rendering/renderer_canvas_cull.h @@ -33,9 +33,9 @@ #include "core/templates/paged_allocator.h" #include "servers/rendering/instance_uniforms.h" #include "servers/rendering/renderer_canvas_render.h" -#include "servers/rendering/renderer_compositor.h" #include "servers/rendering/renderer_viewport.h" #include "servers/rendering/rendering_server_enums.h" +#include "servers/rendering/rendering_server_types.h" class RendererCanvasCull { static void _dependency_changed(Dependency::DependencyChangedNotification p_notification, DependencyTracker *p_tracker); @@ -206,7 +206,7 @@ public: _FORCE_INLINE_ void _attach_canvas_item_for_draw(Item *ci, Item *p_canvas_clip, RendererCanvasRender::Item **r_z_list, RendererCanvasRender::Item **r_z_last_list, const Transform2D &p_transform, const Rect2 &p_clip_rect, Rect2 p_global_rect, const Color &modulate, int p_z, RendererCanvasCull::Item *p_material_owner, bool p_use_canvas_group, RendererCanvasRender::Item *r_canvas_group_from); private: - void _render_canvas_item_tree(RID p_to_render_target, Canvas::ChildItem *p_child_items, int p_child_item_count, const Transform2D &p_transform, const Rect2 &p_clip_rect, const Color &p_modulate, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, uint32_t p_canvas_cull_mask, RenderingMethod::RenderInfo *r_render_info = nullptr); + void _render_canvas_item_tree(RID p_to_render_target, Canvas::ChildItem *p_child_items, int p_child_item_count, const Transform2D &p_transform, const Rect2 &p_clip_rect, const Color &p_modulate, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, uint32_t p_canvas_cull_mask, RenderingServerTypes::RenderInfo *r_render_info = nullptr); void _cull_canvas_item(Item *p_canvas_item, const Transform2D &p_parent_xform, const Rect2 &p_clip_rect, const Color &p_modulate, int p_z, RendererCanvasRender::Item **r_z_list, RendererCanvasRender::Item **r_z_last_list, Item *p_canvas_clip, Item *p_material_owner, bool p_is_already_y_sorted, uint32_t p_canvas_cull_mask, const Point2 &p_repeat_size, int p_repeat_times, RendererCanvasRender::Item *p_repeat_source_item); void _collect_ysort_children(RendererCanvasCull::Item *p_canvas_item, RendererCanvasCull::Item *p_material_owner, const Color &p_modulate, RendererCanvasCull::Item **r_items, int &r_index, int &r_ysort_children_count, int p_z, uint32_t p_canvas_cull_mask); @@ -221,7 +221,7 @@ private: Transform2D _current_camera_transform; public: - void render_canvas(RID p_render_target, Canvas *p_canvas, const Transform2D &p_transform, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, const Rect2 &p_clip_rect, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_transforms_to_pixel, bool p_snap_2d_vertices_to_pixel, uint32_t p_canvas_cull_mask, RenderingMethod::RenderInfo *r_render_info = nullptr); + void render_canvas(RID p_render_target, Canvas *p_canvas, const Transform2D &p_transform, RendererCanvasRender::Light *p_lights, RendererCanvasRender::Light *p_directional_lights, const Rect2 &p_clip_rect, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_transforms_to_pixel, bool p_snap_2d_vertices_to_pixel, uint32_t p_canvas_cull_mask, RenderingServerTypes::RenderInfo *r_render_info = nullptr); bool was_sdf_used(); diff --git a/servers/rendering/renderer_canvas_render.h b/servers/rendering/renderer_canvas_render.h index a810dcc725..d452bc3611 100644 --- a/servers/rendering/renderer_canvas_render.h +++ b/servers/rendering/renderer_canvas_render.h @@ -30,8 +30,8 @@ #pragma once -#include "servers/rendering/rendering_method.h" #include "servers/rendering/rendering_server_enums.h" +#include "servers/rendering/rendering_server_types.h" class RenderingServer; @@ -503,7 +503,7 @@ public: } }; - virtual void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info = nullptr) = 0; + virtual void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingServerTypes::RenderInfo *r_render_info = nullptr) = 0; struct LightOccluderInstance { bool enabled : 1; diff --git a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp index 5b1a9fc6d6..678fdc4ad1 100644 --- a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp +++ b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.cpp @@ -29,6 +29,7 @@ /**************************************************************************/ #include "render_forward_clustered.h" + #include "core/config/project_settings.h" #include "servers/rendering/renderer_rd/environment/fog.h" #include "servers/rendering/renderer_rd/framebuffer_cache_rd.h" @@ -2573,7 +2574,7 @@ void RenderForwardClustered::_render_buffers_debug_draw(const RenderDataRD *p_re } } -void RenderForwardClustered::_render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray &p_instances, float p_lod_distance_multiplier, float p_screen_mesh_lod_threshold, bool p_open_pass, bool p_close_pass, bool p_clear_region, RenderingMethod::RenderInfo *p_render_info, const Size2i &p_viewport_size, const Transform3D &p_main_cam_transform) { +void RenderForwardClustered::_render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray &p_instances, float p_lod_distance_multiplier, float p_screen_mesh_lod_threshold, bool p_open_pass, bool p_close_pass, bool p_clear_region, RenderingServerTypes::RenderInfo *p_render_info, const Size2i &p_viewport_size, const Transform3D &p_main_cam_transform) { RendererRD::LightStorage *light_storage = RendererRD::LightStorage::get_singleton(); ERR_FAIL_COND(!light_storage->owns_light_instance(p_light)); @@ -2760,7 +2761,7 @@ void RenderForwardClustered::_render_shadow_begin() { // because _fill_instance_data will do that if it detects p_offset == 0u. } -void RenderForwardClustered::_render_shadow_append(RID p_framebuffer, const PagedArray &p_instances, const Projection &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_reverse_cull_face, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, float p_lod_distance_multiplier, float p_screen_mesh_lod_threshold, const Rect2i &p_rect, bool p_flip_y, bool p_clear_region, bool p_begin, bool p_end, RenderingMethod::RenderInfo *p_render_info, const Size2i &p_viewport_size, const Transform3D &p_main_cam_transform) { +void RenderForwardClustered::_render_shadow_append(RID p_framebuffer, const PagedArray &p_instances, const Projection &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_reverse_cull_face, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, float p_lod_distance_multiplier, float p_screen_mesh_lod_threshold, const Rect2i &p_rect, bool p_flip_y, bool p_clear_region, bool p_begin, bool p_end, RenderingServerTypes::RenderInfo *p_render_info, const Size2i &p_viewport_size, const Transform3D &p_main_cam_transform) { SceneState::ShadowPass shadow_pass; RenderSceneDataRD scene_data; diff --git a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h index 50142737fb..941450ba54 100644 --- a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h +++ b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h @@ -34,9 +34,6 @@ #include "servers/rendering/multi_uma_buffer.h" #include "servers/rendering/renderer_rd/cluster_builder_rd.h" #include "servers/rendering/renderer_rd/effects/fsr2.h" -#ifdef METAL_ENABLED -#include "servers/rendering/renderer_rd/effects/metal_fx.h" -#endif #include "servers/rendering/renderer_rd/effects/motion_vectors_store.h" #include "servers/rendering/renderer_rd/effects/ss_effects.h" #include "servers/rendering/renderer_rd/effects/taa.h" @@ -45,6 +42,10 @@ #include "servers/rendering/renderer_rd/shaders/forward_clustered/best_fit_normal.glsl.gen.h" #include "servers/rendering/renderer_rd/shaders/forward_clustered/integrate_dfg.glsl.gen.h" +#ifdef METAL_ENABLED +#include "servers/rendering/renderer_rd/effects/metal_fx.h" +#endif + #define RB_SCOPE_FORWARD_CLUSTERED SNAME("forward_clustered") #define RB_TEX_SPECULAR SNAME("specular") @@ -760,9 +761,9 @@ private: /* Render shadows */ - void _render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray &p_instances, float p_lod_distance_multiplier = 0, float p_screen_mesh_lod_threshold = 0.0, bool p_open_pass = true, bool p_close_pass = true, bool p_clear_region = true, RenderingMethod::RenderInfo *p_render_info = nullptr, const Size2i &p_viewport_size = Size2i(1, 1), const Transform3D &p_main_cam_transform = Transform3D()); + void _render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray &p_instances, float p_lod_distance_multiplier = 0, float p_screen_mesh_lod_threshold = 0.0, bool p_open_pass = true, bool p_close_pass = true, bool p_clear_region = true, RenderingServerTypes::RenderInfo *p_render_info = nullptr, const Size2i &p_viewport_size = Size2i(1, 1), const Transform3D &p_main_cam_transform = Transform3D()); void _render_shadow_begin(); - void _render_shadow_append(RID p_framebuffer, const PagedArray &p_instances, const Projection &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_reverse_cull_face, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, float p_lod_distance_multiplier = 0.0, float p_screen_mesh_lod_threshold = 0.0, const Rect2i &p_rect = Rect2i(), bool p_flip_y = false, bool p_clear_region = true, bool p_begin = true, bool p_end = true, RenderingMethod::RenderInfo *p_render_info = nullptr, const Size2i &p_viewport_size = Size2i(1, 1), const Transform3D &p_main_cam_transform = Transform3D()); + void _render_shadow_append(RID p_framebuffer, const PagedArray &p_instances, const Projection &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_reverse_cull_face, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, float p_lod_distance_multiplier = 0.0, float p_screen_mesh_lod_threshold = 0.0, const Rect2i &p_rect = Rect2i(), bool p_flip_y = false, bool p_clear_region = true, bool p_begin = true, bool p_end = true, RenderingServerTypes::RenderInfo *p_render_info = nullptr, const Size2i &p_viewport_size = Size2i(1, 1), const Transform3D &p_main_cam_transform = Transform3D()); void _render_shadow_process(); void _render_shadow_end(); diff --git a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp index bc508cc3cf..1232ad3353 100644 --- a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp +++ b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.cpp @@ -29,6 +29,7 @@ /**************************************************************************/ #include "render_forward_mobile.h" + #include "core/config/project_settings.h" #include "servers/rendering/renderer_rd/framebuffer_cache_rd.h" #include "servers/rendering/renderer_rd/storage_rd/light_storage.h" @@ -1369,7 +1370,7 @@ void RenderForwardMobile::_render_scene(RenderDataRD *p_render_data, const Color /* these are being called from RendererSceneRenderRD::_pre_opaque_render */ -void RenderForwardMobile::_render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray &p_instances, float p_lod_distance_multiplier, float p_screen_mesh_lod_threshold, bool p_open_pass, bool p_close_pass, bool p_clear_region, RenderingMethod::RenderInfo *p_render_info, const Transform3D &p_main_cam_transform) { +void RenderForwardMobile::_render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray &p_instances, float p_lod_distance_multiplier, float p_screen_mesh_lod_threshold, bool p_open_pass, bool p_close_pass, bool p_clear_region, RenderingServerTypes::RenderInfo *p_render_info, const Transform3D &p_main_cam_transform) { RendererRD::LightStorage *light_storage = RendererRD::LightStorage::get_singleton(); ERR_FAIL_COND(!light_storage->owns_light_instance(p_light)); @@ -1554,7 +1555,7 @@ void RenderForwardMobile::_render_shadow_begin() { render_list[RENDER_LIST_SECONDARY].clear(); } -void RenderForwardMobile::_render_shadow_append(RID p_framebuffer, const PagedArray &p_instances, const Projection &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, float p_lod_distance_multiplier, float p_screen_mesh_lod_threshold, const Rect2i &p_rect, bool p_flip_y, bool p_clear_region, bool p_begin, bool p_end, RenderingMethod::RenderInfo *p_render_info, const Transform3D &p_main_cam_transform) { +void RenderForwardMobile::_render_shadow_append(RID p_framebuffer, const PagedArray &p_instances, const Projection &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, float p_lod_distance_multiplier, float p_screen_mesh_lod_threshold, const Rect2i &p_rect, bool p_flip_y, bool p_clear_region, bool p_begin, bool p_end, RenderingServerTypes::RenderInfo *p_render_info, const Transform3D &p_main_cam_transform) { SceneState::ShadowPass shadow_pass; if (p_render_info) { diff --git a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h index 68cc1bbd20..23710616c8 100644 --- a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h +++ b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h @@ -154,9 +154,9 @@ private: /* Render shadows */ - void _render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray &p_instances, float p_lod_distance_multiplier = 0, float p_screen_mesh_lod_threshold = 0.0, bool p_open_pass = true, bool p_close_pass = true, bool p_clear_region = true, RenderingMethod::RenderInfo *p_render_info = nullptr, const Transform3D &p_main_cam_transform = Transform3D()); + void _render_shadow_pass(RID p_light, RID p_shadow_atlas, int p_pass, const PagedArray &p_instances, float p_lod_distance_multiplier = 0, float p_screen_mesh_lod_threshold = 0.0, bool p_open_pass = true, bool p_close_pass = true, bool p_clear_region = true, RenderingServerTypes::RenderInfo *p_render_info = nullptr, const Transform3D &p_main_cam_transform = Transform3D()); void _render_shadow_begin(); - void _render_shadow_append(RID p_framebuffer, const PagedArray &p_instances, const Projection &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, float p_lod_distance_multiplier = 0.0, float p_screen_mesh_lod_threshold = 0.0, const Rect2i &p_rect = Rect2i(), bool p_flip_y = false, bool p_clear_region = true, bool p_begin = true, bool p_end = true, RenderingMethod::RenderInfo *p_render_info = nullptr, const Transform3D &p_main_cam_transform = Transform3D()); + void _render_shadow_append(RID p_framebuffer, const PagedArray &p_instances, const Projection &p_projection, const Transform3D &p_transform, float p_zfar, float p_bias, float p_normal_bias, bool p_use_dp, bool p_use_dp_flip, bool p_use_pancake, float p_lod_distance_multiplier = 0.0, float p_screen_mesh_lod_threshold = 0.0, const Rect2i &p_rect = Rect2i(), bool p_flip_y = false, bool p_clear_region = true, bool p_begin = true, bool p_end = true, RenderingServerTypes::RenderInfo *p_render_info = nullptr, const Transform3D &p_main_cam_transform = Transform3D()); void _render_shadow_process(); void _render_shadow_end(); diff --git a/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp b/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp index 97c222245a..7ee3ea3c12 100644 --- a/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp @@ -505,7 +505,7 @@ RID RendererCanvasRenderRD::_get_pipeline_specialization_or_ubershader(CanvasSha return RID(); } -void RendererCanvasRenderRD::canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_light_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info) { +void RendererCanvasRenderRD::canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_light_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingServerTypes::RenderInfo *r_render_info) { RendererRD::TextureStorage *texture_storage = RendererRD::TextureStorage::get_singleton(); RendererRD::MaterialStorage *material_storage = RendererRD::MaterialStorage::get_singleton(); RendererRD::MeshStorage *mesh_storage = RendererRD::MeshStorage::get_singleton(); @@ -2182,7 +2182,7 @@ uint32_t RendererCanvasRenderRD::get_pipeline_compilations(RSE::PipelineSource p return shader.pipeline_compilations[p_source]; } -void RendererCanvasRenderRD::_render_batch_items(RenderTarget p_to_render_target, int p_item_count, const Transform2D &p_canvas_transform_inverse, Light *p_lights, bool &r_sdf_used, bool p_to_backbuffer, RenderingMethod::RenderInfo *r_render_info) { +void RendererCanvasRenderRD::_render_batch_items(RenderTarget p_to_render_target, int p_item_count, const Transform2D &p_canvas_transform_inverse, Light *p_lights, bool &r_sdf_used, bool p_to_backbuffer, RenderingServerTypes::RenderInfo *r_render_info) { // Record batches { RendererRD::MaterialStorage *material_storage = RendererRD::MaterialStorage::get_singleton(); @@ -3003,7 +3003,7 @@ void RendererCanvasRenderRD::_canvas_texture_invalidation_callback(bool p_delete } } -void RendererCanvasRenderRD::_render_batch(RD::DrawListID p_draw_list, CanvasShaderData *p_shader_data, RenderingDevice::FramebufferFormatID p_framebuffer_format, Light *p_lights, Batch const *p_batch, RenderingMethod::RenderInfo *r_render_info) { +void RendererCanvasRenderRD::_render_batch(RD::DrawListID p_draw_list, CanvasShaderData *p_shader_data, RenderingDevice::FramebufferFormatID p_framebuffer_format, Light *p_lights, Batch const *p_batch, RenderingServerTypes::RenderInfo *r_render_info) { { RendererRD::TextureStorage *ts = RendererRD::TextureStorage::get_singleton(); diff --git a/servers/rendering/renderer_rd/renderer_canvas_render_rd.h b/servers/rendering/renderer_rd/renderer_canvas_render_rd.h index e5c536e2ce..dbdddafe62 100644 --- a/servers/rendering/renderer_rd/renderer_canvas_render_rd.h +++ b/servers/rendering/renderer_rd/renderer_canvas_render_rd.h @@ -673,9 +673,9 @@ class RendererCanvasRenderRD : public RendererCanvasRender { }; inline RID _get_pipeline_specialization_or_ubershader(CanvasShaderData *p_shader_data, PipelineKey &r_pipeline_key, PushConstant &r_push_constant, RID p_mesh_instance = RID(), void *p_surface = nullptr, uint32_t p_surface_index = 0, RID *r_vertex_array = nullptr); - void _render_batch_items(RenderTarget p_to_render_target, int p_item_count, const Transform2D &p_canvas_transform_inverse, Light *p_lights, bool &r_sdf_used, bool p_to_backbuffer = false, RenderingMethod::RenderInfo *r_render_info = nullptr); + void _render_batch_items(RenderTarget p_to_render_target, int p_item_count, const Transform2D &p_canvas_transform_inverse, Light *p_lights, bool &r_sdf_used, bool p_to_backbuffer = false, RenderingServerTypes::RenderInfo *r_render_info = nullptr); void _record_item_commands(const Item *p_item, RenderTarget p_render_target, const Transform2D &p_base_transform, Item *&r_current_clip, Light *p_lights, bool &r_batch_broken, bool &r_sdf_used, Batch *&r_current_batch); - void _render_batch(RD::DrawListID p_draw_list, CanvasShaderData *p_shader_data, RenderingDevice::FramebufferFormatID p_framebuffer_format, Light *p_lights, Batch const *p_batch, RenderingMethod::RenderInfo *r_render_info = nullptr); + void _render_batch(RD::DrawListID p_draw_list, CanvasShaderData *p_shader_data, RenderingDevice::FramebufferFormatID p_framebuffer_format, Light *p_lights, Batch const *p_batch, RenderingServerTypes::RenderInfo *r_render_info = nullptr); void _prepare_batch_texture_info(RID p_texture, TextureState &p_state, TextureInfo *p_info); // non-UMA @@ -709,7 +709,7 @@ public: void occluder_polygon_set_shape(RID p_occluder, const Vector &p_points, bool p_closed) override; void occluder_polygon_set_cull_mode(RID p_occluder, RSE::CanvasOccluderPolygonCullMode p_mode) override; - void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_light_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingMethod::RenderInfo *r_render_info = nullptr) override; + void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, Light *p_directional_light_list, const Transform2D &p_canvas_transform, RSE::CanvasItemTextureFilter p_default_filter, RSE::CanvasItemTextureRepeat p_default_repeat, bool p_snap_2d_vertices_to_pixel, bool &r_sdf_used, RenderingServerTypes::RenderInfo *r_render_info = nullptr) override; virtual void set_shadow_texture_size(int p_size) override; diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp index 8910878be9..4680de7463 100644 --- a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp @@ -32,14 +32,14 @@ #include "core/config/project_settings.h" #include "core/io/image.h" -#include "renderer_compositor_rd.h" #include "servers/rendering/renderer_rd/environment/fog.h" +#include "servers/rendering/renderer_rd/renderer_compositor_rd.h" #include "servers/rendering/renderer_rd/shaders/decal_data_inc.glsl.gen.h" #include "servers/rendering/renderer_rd/shaders/light_data_inc.glsl.gen.h" #include "servers/rendering/renderer_rd/shaders/scene_data_inc.glsl.gen.h" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" -#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_default.h" +#include "servers/rendering/rendering_server_enums.h" #include "servers/rendering/shader_include_db.h" #include "servers/rendering/storage/camera_attributes_storage.h" @@ -1337,7 +1337,7 @@ void RendererSceneRenderRD::_post_prepass_render(RenderDataRD *p_render_data, bo } } -void RendererSceneRenderRD::render_scene(const Ref &p_render_buffers, const CameraData *p_camera_data, const CameraData *p_prev_camera_data, const PagedArray &p_instances, const PagedArray &p_lights, const PagedArray &p_reflection_probes, const PagedArray &p_voxel_gi_instances, const PagedArray &p_decals, const PagedArray &p_lightmaps, const PagedArray &p_fog_volumes, RID p_environment, RID p_camera_attributes, RID p_compositor, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, float p_window_output_max_value, const RenderSDFGIUpdateData *p_sdfgi_update_data, RenderingMethod::RenderInfo *r_render_info) { +void RendererSceneRenderRD::render_scene(const Ref &p_render_buffers, const CameraData *p_camera_data, const CameraData *p_prev_camera_data, const PagedArray &p_instances, const PagedArray &p_lights, const PagedArray &p_reflection_probes, const PagedArray &p_voxel_gi_instances, const PagedArray &p_decals, const PagedArray &p_lightmaps, const PagedArray &p_fog_volumes, RID p_environment, RID p_camera_attributes, RID p_compositor, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, float p_window_output_max_value, const RenderSDFGIUpdateData *p_sdfgi_update_data, RenderingServerTypes::RenderInfo *r_render_info) { RendererRD::LightStorage *light_storage = RendererRD::LightStorage::get_singleton(); RendererRD::TextureStorage *texture_storage = RendererRD::TextureStorage::get_singleton(); diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.h b/servers/rendering/renderer_rd/renderer_scene_render_rd.h index d8130297ff..9764e08340 100644 --- a/servers/rendering/renderer_rd/renderer_scene_render_rd.h +++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.h @@ -36,9 +36,6 @@ #include "servers/rendering/renderer_rd/effects/debug_effects.h" #include "servers/rendering/renderer_rd/effects/fsr.h" #include "servers/rendering/renderer_rd/effects/luminance.h" -#ifdef METAL_ENABLED -#include "servers/rendering/renderer_rd/effects/metal_fx.h" -#endif #include "servers/rendering/renderer_rd/effects/resolve.h" #include "servers/rendering/renderer_rd/effects/smaa.h" #include "servers/rendering/renderer_rd/effects/tone_mapper.h" @@ -50,9 +47,13 @@ #include "servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h" #include "servers/rendering/renderer_scene_render.h" #include "servers/rendering/rendering_device.h" -#include "servers/rendering/rendering_method.h" +#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/rendering_shader_library.h" +#ifdef METAL_ENABLED +#include "servers/rendering/renderer_rd/effects/metal_fx.h" +#endif + class RendererSceneRenderRD : public RendererSceneRender, public RenderingShaderLibrary { friend RendererRD::SkyRD; friend RendererRD::GI; @@ -245,7 +246,7 @@ public: virtual void base_uniforms_changed() = 0; - virtual void render_scene(const Ref &p_render_buffers, const CameraData *p_camera_data, const CameraData *p_prev_camera_data, const PagedArray &p_instances, const PagedArray &p_lights, const PagedArray &p_reflection_probes, const PagedArray &p_voxel_gi_instances, const PagedArray &p_decals, const PagedArray &p_lightmaps, const PagedArray &p_fog_volumes, RID p_environment, RID p_camera_attributes, RID p_compositor, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, float p_window_output_max_value, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RenderingMethod::RenderInfo *r_render_info = nullptr) override; + virtual void render_scene(const Ref &p_render_buffers, const CameraData *p_camera_data, const CameraData *p_prev_camera_data, const PagedArray &p_instances, const PagedArray &p_lights, const PagedArray &p_reflection_probes, const PagedArray &p_voxel_gi_instances, const PagedArray &p_decals, const PagedArray &p_lightmaps, const PagedArray &p_fog_volumes, RID p_environment, RID p_camera_attributes, RID p_compositor, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, float p_window_output_max_value, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RenderingServerTypes::RenderInfo *r_render_info = nullptr) override; virtual void render_material(const Transform3D &p_cam_transform, const Projection &p_cam_projection, bool p_cam_orthogonal, const PagedArray &p_instances, RID p_framebuffer, const Rect2i &p_region) override; diff --git a/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp b/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp index 81b6a3d473..b5c69b44bf 100644 --- a/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp @@ -30,6 +30,7 @@ #include "mesh_storage.h" +#include "servers/rendering/renderer_viewport.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_types.h" diff --git a/servers/rendering/renderer_rd/storage_rd/mesh_storage.h b/servers/rendering/renderer_rd/storage_rd/mesh_storage.h index 953124ccbc..b409f94f96 100644 --- a/servers/rendering/renderer_rd/storage_rd/mesh_storage.h +++ b/servers/rendering/renderer_rd/storage_rd/mesh_storage.h @@ -33,6 +33,7 @@ #include "core/templates/local_vector.h" #include "core/templates/rid_owner.h" #include "core/templates/self_list.h" +#include "servers/rendering/renderer_compositor.h" #include "servers/rendering/renderer_rd/shaders/skeleton.glsl.gen.h" #include "servers/rendering/rendering_server_globals.h" #include "servers/rendering/storage/mesh_storage.h" diff --git a/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp b/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp index 2fa4696282..45b465eafa 100644 --- a/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/particles_storage.cpp @@ -33,6 +33,7 @@ #include "servers/rendering/renderer_rd/effects/sort_effects.h" #include "servers/rendering/renderer_rd/renderer_compositor_rd.h" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" +#include "servers/rendering/renderer_viewport.h" #include "servers/rendering/rendering_server_globals.h" using namespace RendererRD; diff --git a/servers/rendering/renderer_rd/storage_rd/render_data_rd.h b/servers/rendering/renderer_rd/storage_rd/render_data_rd.h index 7a82c15a6b..b11ed36661 100644 --- a/servers/rendering/renderer_rd/storage_rd/render_data_rd.h +++ b/servers/rendering/renderer_rd/storage_rd/render_data_rd.h @@ -32,6 +32,7 @@ #include "servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h" #include "servers/rendering/renderer_rd/storage_rd/render_scene_data_rd.h" +#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/storage/render_data.h" class RenderDataRD : public RenderData { @@ -76,7 +77,7 @@ public: float window_output_max_value = 1.0; - RenderingMethod::RenderInfo *render_info = nullptr; + RenderingServerTypes::RenderInfo *render_info = nullptr; /* Viewport data */ bool transparent_bg = false; diff --git a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp index 72c4565bda..2ccf5a174c 100644 --- a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp +++ b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp @@ -32,7 +32,8 @@ #include "render_scene_buffers_rd.compat.inc" #include "servers/rendering/renderer_rd/storage_rd/texture_storage.h" -#include "servers/rendering/rendering_server.h" +#include "servers/rendering/rendering_server.h" // IWYU pragma: Needed to bind RSE enums. +#include "servers/rendering/rendering_server_enums.h" RenderSceneBuffersRD::RenderSceneBuffersRD() { } @@ -103,7 +104,7 @@ void RenderSceneBuffersRD::free_named_texture(NamedTexture &p_named_texture) { void RenderSceneBuffersRD::update_samplers() { float computed_mipmap_bias = texture_mipmap_bias; - if (use_taa || (RS::scaling_3d_mode_type(scaling_3d_mode) == RSE::VIEWPORT_SCALING_3D_TYPE_TEMPORAL)) { + if (use_taa || (RSE::scaling_3d_mode_type(scaling_3d_mode) == RSE::VIEWPORT_SCALING_3D_TYPE_TEMPORAL)) { // Use negative mipmap LOD bias when TAA or FSR2 is enabled to compensate for loss of sharpness. // This restores sharpness in still images to be roughly at the same level as without TAA, // but moving scenes will still be blurrier. @@ -514,7 +515,7 @@ void RenderSceneBuffersRD::allocate_blur_textures() { } Size2i blur_size = internal_size; - if (RS::scaling_3d_mode_type(scaling_3d_mode) == RSE::VIEWPORT_SCALING_3D_TYPE_TEMPORAL) { + if (RSE::scaling_3d_mode_type(scaling_3d_mode) == RSE::VIEWPORT_SCALING_3D_TYPE_TEMPORAL) { // The blur texture should be as big as the target size when using an upscaler. blur_size = target_size; } diff --git a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h index 4993658cd3..e8d9952805 100644 --- a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h +++ b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.h @@ -30,13 +30,14 @@ #pragma once +#include "../effects/vrs.h" #ifdef METAL_ENABLED #include "../effects/metal_fx.h" #endif -#include "../effects/vrs.h" + #include "core/templates/hash_map.h" -#include "material_storage.h" -#include "render_buffer_custom_data_rd.h" +#include "servers/rendering/renderer_rd/storage_rd/material_storage.h" +#include "servers/rendering/renderer_rd/storage_rd/render_buffer_custom_data_rd.h" #include "servers/rendering/rendering_device.h" #include "servers/rendering/rendering_device_binds.h" #include "servers/rendering/storage/render_scene_buffers.h" diff --git a/servers/rendering/renderer_scene_cull.cpp b/servers/rendering/renderer_scene_cull.cpp index 11878ff3d2..be5387b67a 100644 --- a/servers/rendering/renderer_scene_cull.cpp +++ b/servers/rendering/renderer_scene_cull.cpp @@ -2596,7 +2596,7 @@ bool RendererSceneCull::_light_instance_update_shadow(Instance *p_instance, cons return animated_material_found; } -void RendererSceneCull::render_camera(const Ref &p_render_buffers, RID p_camera, RID p_scenario, RID p_viewport, Size2 p_viewport_size, uint32_t p_jitter_phase_count, float p_screen_mesh_lod_threshold, RID p_shadow_atlas, Ref &p_xr_interface, float p_window_output_max_value, RenderInfo *r_render_info) { +void RendererSceneCull::render_camera(const Ref &p_render_buffers, RID p_camera, RID p_scenario, RID p_viewport, Size2 p_viewport_size, uint32_t p_jitter_phase_count, float p_screen_mesh_lod_threshold, RID p_shadow_atlas, Ref &p_xr_interface, float p_window_output_max_value, RenderingServerTypes::RenderInfo *r_render_info) { #ifndef _3D_DISABLED Camera *camera = camera_owner.get_or_null(p_camera); @@ -3196,7 +3196,7 @@ void RendererSceneCull::_scene_particles_set_view_axis(RID p_particles, const Ve RSG::particles_storage->particles_set_view_axis(p_particles, p_axis, p_up_axis); } -void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_camera_data, const Ref &p_render_buffers, RID p_environment, RID p_force_camera_attributes, RID p_compositor, uint32_t p_visible_layers, RID p_scenario, RID p_viewport, RID p_shadow_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, float p_window_output_max_value, bool p_using_shadows, RenderingMethod::RenderInfo *r_render_info) { +void RendererSceneCull::_render_scene(const RendererSceneRender::CameraData *p_camera_data, const Ref &p_render_buffers, RID p_environment, RID p_force_camera_attributes, RID p_compositor, uint32_t p_visible_layers, RID p_scenario, RID p_viewport, RID p_shadow_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, float p_window_output_max_value, bool p_using_shadows, RenderingServerTypes::RenderInfo *r_render_info) { Instance *render_reflection_probe = instance_owner.get_or_null(p_reflection_probe); //if null, not rendering to it // Prepare the light - camera volume culling system. diff --git a/servers/rendering/renderer_scene_cull.h b/servers/rendering/renderer_scene_cull.h index 355cbe2eaa..db572f9d41 100644 --- a/servers/rendering/renderer_scene_cull.h +++ b/servers/rendering/renderer_scene_cull.h @@ -44,6 +44,7 @@ #include "servers/rendering/renderer_scene_render.h" #include "servers/rendering/rendering_method.h" #include "servers/rendering/rendering_server_globals.h" +#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/storage/utilities.h" class RenderingLightCuller; @@ -1153,10 +1154,10 @@ public: bool _render_reflection_probe_step(Instance *p_instance, int p_step); - void _render_scene(const RendererSceneRender::CameraData *p_camera_data, const Ref &p_render_buffers, RID p_environment, RID p_force_camera_attributes, RID p_compositor, uint32_t p_visible_layers, RID p_scenario, RID p_viewport, RID p_shadow_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, float p_window_output_max_value, bool p_using_shadows = true, RenderInfo *r_render_info = nullptr); + void _render_scene(const RendererSceneRender::CameraData *p_camera_data, const Ref &p_render_buffers, RID p_environment, RID p_force_camera_attributes, RID p_compositor, uint32_t p_visible_layers, RID p_scenario, RID p_viewport, RID p_shadow_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, float p_window_output_max_value, bool p_using_shadows = true, RenderingServerTypes::RenderInfo *r_render_info = nullptr); void render_empty_scene(const Ref &p_render_buffers, RID p_scenario, RID p_shadow_atlas, float p_window_output_max_value); - void render_camera(const Ref &p_render_buffers, RID p_camera, RID p_scenario, RID p_viewport, Size2 p_viewport_size, uint32_t p_jitter_phase_count, float p_screen_mesh_lod_threshold, RID p_shadow_atlas, Ref &p_xr_interface, float p_window_output_max_value, RenderingMethod::RenderInfo *r_render_info = nullptr); + void render_camera(const Ref &p_render_buffers, RID p_camera, RID p_scenario, RID p_viewport, Size2 p_viewport_size, uint32_t p_jitter_phase_count, float p_screen_mesh_lod_threshold, RID p_shadow_atlas, Ref &p_xr_interface, float p_window_output_max_value, RenderingServerTypes::RenderInfo *r_render_info = nullptr); void update_dirty_instances() const; void render_particle_colliders(); diff --git a/servers/rendering/renderer_scene_render.h b/servers/rendering/renderer_scene_render.h index 136472317d..fff29a23be 100644 --- a/servers/rendering/renderer_scene_render.h +++ b/servers/rendering/renderer_scene_render.h @@ -33,7 +33,7 @@ #include "core/math/projection.h" #include "core/templates/paged_array.h" #include "servers/rendering/renderer_geometry_instance.h" -#include "servers/rendering/rendering_method.h" +#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/storage/compositor_storage.h" #include "servers/rendering/storage/environment_storage.h" #include "servers/rendering/storage/render_scene_buffers.h" @@ -323,7 +323,7 @@ public: void set_multiview_camera(uint32_t p_view_count, const Transform3D *p_transforms, const Projection *p_projections, bool p_is_orthogonal, bool p_is_frustum, bool p_vaspect, uint32_t p_visible_layers = 0xFFFFFFFF); }; - virtual void render_scene(const Ref &p_render_buffers, const CameraData *p_camera_data, const CameraData *p_prev_camera_data, const PagedArray &p_instances, const PagedArray &p_lights, const PagedArray &p_reflection_probes, const PagedArray &p_voxel_gi_instances, const PagedArray &p_decals, const PagedArray &p_lightmaps, const PagedArray &p_fog_volumes, RID p_environment, RID p_camera_attributes, RID p_compositor, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, float p_window_output_max_value, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RenderingMethod::RenderInfo *r_render_info = nullptr) = 0; + virtual void render_scene(const Ref &p_render_buffers, const CameraData *p_camera_data, const CameraData *p_prev_camera_data, const PagedArray &p_instances, const PagedArray &p_lights, const PagedArray &p_reflection_probes, const PagedArray &p_voxel_gi_instances, const PagedArray &p_decals, const PagedArray &p_lightmaps, const PagedArray &p_fog_volumes, RID p_environment, RID p_camera_attributes, RID p_compositor, RID p_shadow_atlas, RID p_occluder_debug_tex, RID p_reflection_atlas, RID p_reflection_probe, int p_reflection_probe_pass, float p_screen_mesh_lod_threshold, const RenderShadowData *p_render_shadows, int p_render_shadow_count, const RenderSDFGIData *p_render_sdfgi_regions, int p_render_sdfgi_region_count, float p_window_output_max_value, const RenderSDFGIUpdateData *p_sdfgi_update_data = nullptr, RenderingServerTypes::RenderInfo *r_render_info = nullptr) = 0; virtual void render_material(const Transform3D &p_cam_transform, const Projection &p_cam_projection, bool p_cam_orthogonal, const PagedArray &p_instances, RID p_framebuffer, const Rect2i &p_region) = 0; virtual void render_particle_collider_heightfield(RID p_collider, const Transform3D &p_transform, const PagedArray &p_instances) = 0; diff --git a/servers/rendering/renderer_viewport.cpp b/servers/rendering/renderer_viewport.cpp index 41be694eee..70d662718b 100644 --- a/servers/rendering/renderer_viewport.cpp +++ b/servers/rendering/renderer_viewport.cpp @@ -35,10 +35,10 @@ #include "core/object/worker_thread_pool.h" #include "core/profiling/profiling.h" #include "servers/rendering/renderer_canvas_cull.h" +#include "servers/rendering/renderer_compositor.h" #include "servers/rendering/renderer_scene_cull.h" #include "servers/rendering/rendering_device.h" #include "servers/rendering/rendering_server_globals.h" -#include "servers/rendering/rendering_server_types.h" #include "servers/rendering/storage/texture_storage.h" #ifndef XR_DISABLED @@ -138,7 +138,7 @@ void RendererViewport::_configure_3d_render_buffers(Viewport *p_viewport) { float scaling_3d_scale = p_viewport->scaling_3d_scale; RSE::ViewportScaling3DMode scaling_3d_mode = p_viewport->scaling_3d_mode; bool upscaler_available = p_viewport->fsr_enabled; - RSE::ViewportScaling3DType scaling_type = RS::scaling_3d_mode_type(scaling_3d_mode); + RSE::ViewportScaling3DType scaling_type = RSE::scaling_3d_mode_type(scaling_3d_mode); if ((!upscaler_available || (scaling_type == RSE::VIEWPORT_SCALING_3D_TYPE_SPATIAL)) && scaling_3d_scale >= (1.0 - EPSILON) && scaling_3d_scale <= (1.0 + EPSILON)) { // No 3D scaling for spatial modes? Ignore scaling mode, this just introduces overhead. @@ -151,7 +151,7 @@ void RendererViewport::_configure_3d_render_buffers(Viewport *p_viewport) { if (scaling_3d_mode != RSE::VIEWPORT_SCALING_3D_MODE_OFF && scaling_3d_mode != RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR && OS::get_singleton()->get_current_rendering_method() == "gl_compatibility") { scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR; - scaling_type = RS::scaling_3d_mode_type(scaling_3d_mode); + scaling_type = RSE::scaling_3d_mode_type(scaling_3d_mode); WARN_PRINT_ONCE("MetalFX and FSR upscaling are not supported in the Compatibility renderer. Falling back to bilinear scaling."); } @@ -165,7 +165,7 @@ void RendererViewport::_configure_3d_render_buffers(Viewport *p_viewport) { scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_FSR2; WARN_PRINT_ONCE("MetalFX upscaling is not supported by the current renderer or hardware. Falling back to FSR 2 scaling."); } - scaling_type = RS::scaling_3d_mode_type(scaling_3d_mode); + scaling_type = RSE::scaling_3d_mode_type(scaling_3d_mode); } if (scaling_3d_mode == RSE::VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL && !RD::get_singleton()->has_feature(RD::SUPPORTS_METALFX_SPATIAL)) { @@ -196,7 +196,7 @@ void RendererViewport::_configure_3d_render_buffers(Viewport *p_viewport) { // Fall back to bilinear scaling. WARN_PRINT_ONCE("FSR 3D resolution scaling is not designed for downsampling. Falling back to bilinear 3D resolution scaling."); scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR; - scaling_type = RS::scaling_3d_mode_type(scaling_3d_mode); + scaling_type = RSE::scaling_3d_mode_type(scaling_3d_mode); } if (scaling_3d_is_not_bilinear && !upscaler_available) { @@ -204,7 +204,7 @@ void RendererViewport::_configure_3d_render_buffers(Viewport *p_viewport) { // Fall back to bilinear scaling. WARN_PRINT_ONCE("FSR 3D resolution scaling is not available. Falling back to bilinear 3D resolution scaling."); scaling_3d_mode = RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR; - scaling_type = RS::scaling_3d_mode_type(scaling_3d_mode); + scaling_type = RSE::scaling_3d_mode_type(scaling_3d_mode); } if (use_taa && (scaling_type == RSE::VIEWPORT_SCALING_3D_TYPE_TEMPORAL)) { @@ -1111,7 +1111,7 @@ void RendererViewport::_viewport_set_size(Viewport *p_viewport, int p_width, int bool RendererViewport::_viewport_requires_motion_vectors(Viewport *p_viewport) { return p_viewport->use_taa || - RS::scaling_3d_mode_type(p_viewport->scaling_3d_mode) == RSE::VIEWPORT_SCALING_3D_TYPE_TEMPORAL || + RSE::scaling_3d_mode_type(p_viewport->scaling_3d_mode) == RSE::VIEWPORT_SCALING_3D_TYPE_TEMPORAL || p_viewport->debug_draw == RSE::VIEWPORT_DEBUG_DRAW_MOTION_VECTORS || p_viewport->force_motion_vectors; } diff --git a/servers/rendering/renderer_viewport.h b/servers/rendering/renderer_viewport.h index 8514cb46f3..758b308ccf 100644 --- a/servers/rendering/renderer_viewport.h +++ b/servers/rendering/renderer_viewport.h @@ -31,11 +31,11 @@ #pragma once #include "core/templates/rid_owner.h" +#include "servers/display/display_server.h" #include "servers/rendering/renderer_scene_render.h" -#include "servers/rendering/rendering_method.h" -#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_enums.h" -#include "storage/render_scene_buffers.h" +#include "servers/rendering/rendering_server_types.h" +#include "servers/rendering/storage/render_scene_buffers.h" class RendererViewport { public: @@ -152,7 +152,7 @@ public: HashMap canvas_map; - RenderingMethod::RenderInfo render_info; + RenderingServerTypes::RenderInfo render_info; Viewport() { view_count = 1; diff --git a/servers/rendering/rendering_method.h b/servers/rendering/rendering_method.h index 4e33fab912..54f2dc6352 100644 --- a/servers/rendering/rendering_method.h +++ b/servers/rendering/rendering_method.h @@ -32,6 +32,7 @@ #include "core/variant/variant.h" #include "servers/rendering/rendering_server_enums.h" +#include "servers/rendering/rendering_server_types.h" #ifdef XR_DISABLED // RendererSceneCull::render_camera is empty when XR is disabled, but @@ -347,11 +348,7 @@ public: virtual void render_empty_scene(const Ref &p_render_buffers, RID p_scenario, RID p_shadow_atlas, float p_window_output_max_value) = 0; - struct RenderInfo { - int info[RSE::VIEWPORT_RENDER_INFO_TYPE_MAX][RSE::VIEWPORT_RENDER_INFO_MAX] = {}; - }; - - virtual void render_camera(const Ref &p_render_buffers, RID p_camera, RID p_scenario, RID p_viewport, Size2 p_viewport_size, uint32_t p_jitter_phase_count, float p_mesh_lod_threshold, RID p_shadow_atlas, Ref &p_xr_interface, float p_window_output_max_value, RenderInfo *r_render_info = nullptr) = 0; + virtual void render_camera(const Ref &p_render_buffers, RID p_camera, RID p_scenario, RID p_viewport, Size2 p_viewport_size, uint32_t p_jitter_phase_count, float p_mesh_lod_threshold, RID p_shadow_atlas, Ref &p_xr_interface, float p_window_output_max_value, RenderingServerTypes::RenderInfo *r_render_info = nullptr) = 0; virtual void update() = 0; virtual void render_probes() = 0; diff --git a/servers/rendering/rendering_server.h b/servers/rendering/rendering_server.h index 4317af7dca..19b2f54f4e 100644 --- a/servers/rendering/rendering_server.h +++ b/servers/rendering/rendering_server.h @@ -526,15 +526,6 @@ public: virtual RID viewport_create() = 0; - _ALWAYS_INLINE_ static RSE::ViewportScaling3DType scaling_3d_mode_type(RSE::ViewportScaling3DMode p_mode) { - if (p_mode == RSE::VIEWPORT_SCALING_3D_MODE_BILINEAR || p_mode == RSE::VIEWPORT_SCALING_3D_MODE_FSR || p_mode == RSE::VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL) { - return RSE::VIEWPORT_SCALING_3D_TYPE_SPATIAL; - } else if (p_mode == RSE::VIEWPORT_SCALING_3D_MODE_FSR2 || p_mode == RSE::VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL) { - return RSE::VIEWPORT_SCALING_3D_TYPE_TEMPORAL; - } - return RSE::VIEWPORT_SCALING_3D_TYPE_NONE; - } - #ifndef XR_DISABLED virtual void viewport_set_use_xr(RID p_viewport, bool p_use_xr) = 0; #endif // !XR_DISABLED diff --git a/servers/rendering/rendering_server_default.h b/servers/rendering/rendering_server_default.h index 8ee70f482c..968c15696a 100644 --- a/servers/rendering/rendering_server_default.h +++ b/servers/rendering/rendering_server_default.h @@ -37,6 +37,7 @@ #include "servers/rendering/renderer_canvas_cull.h" #include "servers/rendering/renderer_compositor.h" #include "servers/rendering/renderer_viewport.h" +#include "servers/rendering/rendering_method.h" #include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_enums.h" #include "servers/rendering/rendering_server_globals.h" diff --git a/servers/rendering/rendering_server_enums.h b/servers/rendering/rendering_server_enums.h index 6d565ee586..7fcf210ab6 100644 --- a/servers/rendering/rendering_server_enums.h +++ b/servers/rendering/rendering_server_enums.h @@ -446,6 +446,22 @@ enum ViewportScaling3DMode { VIEWPORT_SCALING_3D_MODE_OFF = 255, // for internal use only }; +enum ViewportScaling3DType { + VIEWPORT_SCALING_3D_TYPE_NONE, + VIEWPORT_SCALING_3D_TYPE_TEMPORAL, + VIEWPORT_SCALING_3D_TYPE_SPATIAL, + VIEWPORT_SCALING_3D_TYPE_MAX, +}; + +inline ViewportScaling3DType scaling_3d_mode_type(ViewportScaling3DMode p_mode) { + if (p_mode == VIEWPORT_SCALING_3D_MODE_BILINEAR || p_mode == VIEWPORT_SCALING_3D_MODE_FSR || p_mode == VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL) { + return VIEWPORT_SCALING_3D_TYPE_SPATIAL; + } else if (p_mode == VIEWPORT_SCALING_3D_MODE_FSR2 || p_mode == VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL) { + return VIEWPORT_SCALING_3D_TYPE_TEMPORAL; + } + return VIEWPORT_SCALING_3D_TYPE_NONE; +} + enum ViewportAnisotropicFiltering { VIEWPORT_ANISOTROPY_DISABLED, VIEWPORT_ANISOTROPY_2X, @@ -455,13 +471,6 @@ enum ViewportAnisotropicFiltering { VIEWPORT_ANISOTROPY_MAX, }; -enum ViewportScaling3DType { - VIEWPORT_SCALING_3D_TYPE_NONE, - VIEWPORT_SCALING_3D_TYPE_TEMPORAL, - VIEWPORT_SCALING_3D_TYPE_SPATIAL, - VIEWPORT_SCALING_3D_TYPE_MAX, -}; - enum ViewportUpdateMode { VIEWPORT_UPDATE_DISABLED, VIEWPORT_UPDATE_ONCE, // Then goes to disabled, must be manually updated. diff --git a/servers/rendering/rendering_server_globals.h b/servers/rendering/rendering_server_globals.h index 7c28e33648..9ace869967 100644 --- a/servers/rendering/rendering_server_globals.h +++ b/servers/rendering/rendering_server_globals.h @@ -32,9 +32,6 @@ #include "servers/rendering/environment/renderer_fog.h" #include "servers/rendering/environment/renderer_gi.h" -#include "servers/rendering/renderer_canvas_cull.h" -#include "servers/rendering/renderer_canvas_render.h" -#include "servers/rendering/rendering_method.h" #include "servers/rendering/storage/camera_attributes_storage.h" #include "servers/rendering/storage/light_storage.h" #include "servers/rendering/storage/material_storage.h" @@ -43,7 +40,9 @@ #include "servers/rendering/storage/texture_storage.h" #include "servers/rendering/storage/utilities.h" +class RendererCompositor; class RendererCanvasCull; +class RendererCanvasRender; class RendererViewport; class RenderingMethod; diff --git a/servers/rendering/rendering_server_types.h b/servers/rendering/rendering_server_types.h index 40b7064238..8dab2c28d1 100644 --- a/servers/rendering/rendering_server_types.h +++ b/servers/rendering/rendering_server_types.h @@ -214,4 +214,10 @@ inline Rect2 get_splash_stretched_screen_rect(const Size2 &p_image_size, const S return screenrect; } +/* RENDERING METHOD */ + +struct RenderInfo { + int info[RSE::VIEWPORT_RENDER_INFO_TYPE_MAX][RSE::VIEWPORT_RENDER_INFO_MAX] = {}; +}; + } // namespace RenderingServerTypes diff --git a/servers/rendering/shader_compiler.cpp b/servers/rendering/shader_compiler.cpp index ec73545253..44d933f5a4 100644 --- a/servers/rendering/shader_compiler.cpp +++ b/servers/rendering/shader_compiler.cpp @@ -30,6 +30,7 @@ #include "shader_compiler.h" +#include "servers/rendering/rendering_server.h" #include "servers/rendering/rendering_server_globals.h" #include "servers/rendering/shader_types.h" From 4ad7cedcd0ae0cffa8e0276d2f13189975b9feef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Wed, 25 Feb 2026 14:13:28 +0100 Subject: [PATCH 13/13] Add RenderingServerEnums commit to the git blame ignore list --- .git-blame-ignore-revs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 076bbee057..36c91af991 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -78,3 +78,6 @@ c5df0cb82bc539eff7dcfb2add99d60771fc50c5 # Style: Convert `*.gen.inc` to `*.gen.h` 7dae5da1982f4a55ba91557814905faef9ce461b + +# Move RenderingServer enums to a dedicated RenderingServerEnums (`RSE`) namespace +f5a290ac462765afca34e64dd39f883511510147