godot/servers/rendering/renderer_rd/environment/fog.cpp

/**************************************************************************/
/*  fog.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 "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() {}

/* FOG VOLUMES */

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 {}

////////////////////////////////////////////////////////////////////////////////
// Fog material

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));
};

////////////////////////////////////////////////////////////////////////////////
// FOG VOLUMES INSTANCE

RID Fog::fog_volume_instance_create(RID p_fog_volume) {}

void Fog::fog_instance_free(RID p_rid) {}

////////////////////////////////////////////////////////////////////////////////
// Volumetric Fog Shader

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() {}

////////////////////////////////////////////////////////////////////////////////
// Volumetric Fog

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) {}