#include "fog.h"
#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_default.h"
usingnamespaceRendererRD;
Fog *Fog::singleton = …;
Fog::Fog() { … }
Fog::~Fog() { … }
RID Fog::fog_volume_allocate() { … }
void Fog::fog_volume_initialize(RID p_rid) { … }
void Fog::fog_volume_free(RID p_rid) { … }
Dependency *Fog::fog_volume_get_dependency(RID p_fog_volume) const { … }
void Fog::fog_volume_set_shape(RID p_fog_volume, RS::FogVolumeShape p_shape) { … }
void Fog::fog_volume_set_size(RID p_fog_volume, const Vector3 &p_size) { … }
void Fog::fog_volume_set_material(RID p_fog_volume, RID p_material) { … }
RID Fog::fog_volume_get_material(RID p_fog_volume) const { … }
RS::FogVolumeShape Fog::fog_volume_get_shape(RID p_fog_volume) const { … }
AABB Fog::fog_volume_get_aabb(RID p_fog_volume) const { … }
Vector3 Fog::fog_volume_get_size(RID p_fog_volume) const { … }
bool Fog::FogMaterialData::update_parameters(const HashMap<StringName, Variant> &p_parameters, bool p_uniform_dirty, bool p_textures_dirty) { … }
Fog::FogMaterialData::~FogMaterialData() { … }
RendererRD::MaterialStorage::ShaderData *Fog::_create_fog_shader_func() { … }
RendererRD::MaterialStorage::ShaderData *Fog::_create_fog_shader_funcs() {
return Fog::get_singleton()->_create_fog_shader_func();
};
RendererRD::MaterialStorage::MaterialData *Fog::_create_fog_material_func(FogShaderData *p_shader) { … }
RendererRD::MaterialStorage::MaterialData *Fog::_create_fog_material_funcs(RendererRD::MaterialStorage::ShaderData *p_shader) {
return Fog::get_singleton()->_create_fog_material_func(static_cast<FogShaderData *>(p_shader));
};
RID Fog::fog_volume_instance_create(RID p_fog_volume) { … }
void Fog::fog_instance_free(RID p_rid) { … }
void Fog::init_fog_shader(uint32_t p_max_directional_lights, int p_roughness_layers, bool p_is_using_radiance_cubemap_array) { … }
void Fog::free_fog_shader() { … }
void Fog::FogShaderData::set_code(const String &p_code) { … }
bool Fog::FogShaderData::is_animated() const { … }
bool Fog::FogShaderData::casts_shadows() const { … }
RS::ShaderNativeSourceCode Fog::FogShaderData::get_native_source_code() const { … }
Fog::FogShaderData::~FogShaderData() { … }
bool Fog::VolumetricFog::sync_gi_dependent_sets_validity(bool p_ensure_freed) { … }
void Fog::VolumetricFog::init(const Vector3i &fog_size, RID p_sky_shader) { … }
Fog::VolumetricFog::~VolumetricFog() { … }
Vector3i Fog::_point_get_position_in_froxel_volume(const Vector3 &p_point, float fog_end, const Vector2 &fog_near_size, const Vector2 &fog_far_size, float volumetric_fog_detail_spread, const Vector3 &fog_size, const Transform3D &p_cam_transform) { … }
void Fog::volumetric_fog_update(const VolumetricFogSettings &p_settings, const Projection &p_cam_projection, const Transform3D &p_cam_transform, const Transform3D &p_prev_cam_inv_transform, RID p_shadow_atlas, int p_directional_light_count, bool p_use_directional_shadows, int p_positional_light_count, int p_voxel_gi_count, const PagedArray<RID> &p_fog_volumes) { … }