diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-06-08 22:48:50 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-06-09 02:15:17 +0300 |
commit | 974c0cc7b68da305a21c551c4298e38940e301ad (patch) | |
tree | b714d69c7de01b73e84bf54ae0f390bc400f5d11 /source/blender/draw/engines/eevee/eevee_data.c | |
parent | cadb950490871c51a6de5b5f538bac78a865b4e2 (diff) |
Eevee: First commit of Probe support.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_data.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_data.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_data.c b/source/blender/draw/engines/eevee/eevee_data.c index 66cb82ae277..514953f3d51 100644 --- a/source/blender/draw/engines/eevee/eevee_data.c +++ b/source/blender/draw/engines/eevee/eevee_data.c @@ -70,6 +70,13 @@ static void eevee_lamp_data_free(void *storage) BLI_freelistN(&led->shadow_caster_list); } +static void eevee_probe_data_free(void *storage) +{ + EEVEE_ProbeEngineData *ped = (EEVEE_ProbeEngineData *)storage; + + BLI_freelistN(&ped->captured_object_list); +} + EEVEE_SceneLayerData *EEVEE_scene_layer_data_get(void) { EEVEE_SceneLayerData **sldata = (EEVEE_SceneLayerData **)DRW_scene_layer_engine_data_get(&draw_engine_eevee_type, &eevee_scene_layer_data_free); @@ -92,6 +99,18 @@ EEVEE_ObjectEngineData *EEVEE_object_data_get(Object *ob) return *oedata; } +EEVEE_ProbeEngineData *EEVEE_probe_data_get(Object *ob) +{ + EEVEE_ProbeEngineData **pedata = (EEVEE_ProbeEngineData **)DRW_object_engine_data_get(ob, &draw_engine_eevee_type, &eevee_probe_data_free); + + if (*pedata == NULL) { + *pedata = MEM_callocN(sizeof(**pedata), "EEVEE_ProbeEngineData"); + (*pedata)->need_update = true; + } + + return *pedata; +} + EEVEE_LampEngineData *EEVEE_lamp_data_get(Object *ob) { EEVEE_LampEngineData **ledata = (EEVEE_LampEngineData **)DRW_object_engine_data_get(ob, &draw_engine_eevee_type, &eevee_lamp_data_free); |