Blender V2.61 - r43446
|
#include <light.h>
Public Member Functions | |
LightManager () | |
~LightManager () | |
void | device_update (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress) |
void | device_free (Device *device, DeviceScene *dscene) |
void | tag_update (Scene *scene) |
Public Attributes | |
bool | need_update |
Protected Member Functions | |
void | device_update_points (Device *device, DeviceScene *dscene, Scene *scene) |
void | device_update_distribution (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress) |
LightManager::LightManager | ( | ) |
Definition at line 58 of file light.cpp.
References need_update.
void LightManager::device_free | ( | Device * | device, |
DeviceScene * | dscene | ||
) |
Definition at line 294 of file light.cpp.
References device_vector< T >::clear(), DeviceScene::light_data, DeviceScene::light_distribution, and Device::tex_free().
Referenced by device_update(), and Scene::~Scene().
void LightManager::device_update | ( | Device * | device, |
DeviceScene * | dscene, | ||
Scene * | scene, | ||
Progress & | progress | ||
) |
Definition at line 278 of file light.cpp.
References device_free(), device_update_distribution(), device_update_points(), and need_update.
Referenced by Scene::device_update().
void LightManager::device_update_distribution | ( | Device * | device, |
DeviceScene * | dscene, | ||
Scene * | scene, | ||
Progress & | progress | ||
) | [protected] |
Definition at line 67 of file light.cpp.
References __int_as_float(), device_vector< T >::clear(), DeviceScene::data, Shader::has_surface_emission, i, KernelData::integrator, DeviceScene::light_distribution, Scene::lights, KernelIntegrator::num_all_lights, KernelIntegrator::num_distribution, Scene::objects, KernelIntegrator::pdf_lights, KernelIntegrator::pdf_triangles, device_vector< T >::resize(), Shader::sample_as_light, Mesh::shader, Scene::shaders, Device::tex_alloc(), transform(), Mesh::transform_applied, Mesh::tri_offset, triangle_area(), Mesh::triangles, KernelIntegrator::use_direct_light, Mesh::used_shaders, Mesh::Triangle::v, Mesh::verts, float4::w, float4::x, float4::y, and float4::z.
Referenced by device_update().
void LightManager::device_update_points | ( | Device * | device, |
DeviceScene * | dscene, | ||
Scene * | scene | ||
) | [protected] |
Definition at line 232 of file light.cpp.
References __int_as_float(), Light::axisu, Light::axisv, Light::cast_shadow, co, Light::co, Light::dir, ShaderManager::get_shader_id(), i, LIGHT_AREA, DeviceScene::light_data, LIGHT_DISTANT, LIGHT_POINT, LIGHT_SIZE, Scene::lights, make_float4(), normalize(), device_vector< T >::resize(), SHADER_AREA_LIGHT, SHADER_CAST_SHADOW, Scene::shader_manager, Light::size, Light::sizeu, Light::sizev, Device::tex_alloc(), Light::type, float3::x, float3::y, and float3::z.
Referenced by device_update().
void LightManager::tag_update | ( | Scene * | scene | ) |
Definition at line 303 of file light.cpp.
References need_update.
Definition at line 58 of file light.h.
Referenced by SVMShaderManager::device_update(), device_update(), LightManager(), Scene::need_reset(), Shader::tag_update(), Light::tag_update(), Object::tag_update(), tag_update(), Mesh::tag_update(), and ObjectManager::tag_update().