Eevee: Cleanup, naming
For functions which will allocate requested data if it does not exist yet "_ensure" is to be used instead of "_get". "_get" functions should return NULL in cases when requested data does not exist yet.
This commit is contained in:
@@ -78,7 +78,7 @@ static void eevee_lightprobe_data_free(void *storage)
|
||||
BLI_freelistN(&ped->captured_object_list);
|
||||
}
|
||||
|
||||
EEVEE_ViewLayerData *EEVEE_view_layer_data_get(void)
|
||||
EEVEE_ViewLayerData *EEVEE_view_layer_data_ensure(void)
|
||||
{
|
||||
EEVEE_ViewLayerData **sldata = (EEVEE_ViewLayerData **)DRW_view_layer_engine_data_get(
|
||||
&draw_engine_eevee_type, &eevee_view_layer_data_free);
|
||||
@@ -90,7 +90,7 @@ EEVEE_ViewLayerData *EEVEE_view_layer_data_get(void)
|
||||
return *sldata;
|
||||
}
|
||||
|
||||
EEVEE_ObjectEngineData *EEVEE_object_data_get(Object *ob)
|
||||
EEVEE_ObjectEngineData *EEVEE_object_data_ensure(Object *ob)
|
||||
{
|
||||
EEVEE_ObjectEngineData **oedata = (EEVEE_ObjectEngineData **)DRW_object_engine_data_get(
|
||||
ob, &draw_engine_eevee_type, NULL);
|
||||
@@ -102,7 +102,7 @@ EEVEE_ObjectEngineData *EEVEE_object_data_get(Object *ob)
|
||||
return *oedata;
|
||||
}
|
||||
|
||||
EEVEE_LightProbeEngineData *EEVEE_lightprobe_data_get(Object *ob)
|
||||
EEVEE_LightProbeEngineData *EEVEE_lightprobe_data_ensure(Object *ob)
|
||||
{
|
||||
EEVEE_LightProbeEngineData **pedata = (EEVEE_LightProbeEngineData **)DRW_object_engine_data_get(
|
||||
ob, &draw_engine_eevee_type, &eevee_lightprobe_data_free);
|
||||
@@ -116,7 +116,7 @@ EEVEE_LightProbeEngineData *EEVEE_lightprobe_data_get(Object *ob)
|
||||
return *pedata;
|
||||
}
|
||||
|
||||
EEVEE_LampEngineData *EEVEE_lamp_data_get(Object *ob)
|
||||
EEVEE_LampEngineData *EEVEE_lamp_data_ensure(Object *ob)
|
||||
{
|
||||
EEVEE_LampEngineData **ledata = (EEVEE_LampEngineData **)DRW_object_engine_data_get(
|
||||
ob, &draw_engine_eevee_type, &eevee_lamp_data_free);
|
||||
|
||||
@@ -50,7 +50,7 @@ static void EEVEE_engine_init(void *ved)
|
||||
EEVEE_TextureList *txl = vedata->txl;
|
||||
EEVEE_FramebufferList *fbl = vedata->fbl;
|
||||
EEVEE_StorageList *stl = ((EEVEE_Data *)vedata)->stl;
|
||||
EEVEE_ViewLayerData *sldata = EEVEE_view_layer_data_get();
|
||||
EEVEE_ViewLayerData *sldata = EEVEE_view_layer_data_ensure();
|
||||
|
||||
if (!stl->g_data) {
|
||||
/* Alloc transient pointers */
|
||||
@@ -85,7 +85,7 @@ static void EEVEE_engine_init(void *ved)
|
||||
static void EEVEE_cache_init(void *vedata)
|
||||
{
|
||||
EEVEE_PassList *psl = ((EEVEE_Data *)vedata)->psl;
|
||||
EEVEE_ViewLayerData *sldata = EEVEE_view_layer_data_get();
|
||||
EEVEE_ViewLayerData *sldata = EEVEE_view_layer_data_ensure();
|
||||
|
||||
EEVEE_bloom_cache_init(sldata, vedata);
|
||||
EEVEE_depth_of_field_cache_init(sldata, vedata);
|
||||
@@ -103,7 +103,7 @@ static void EEVEE_cache_init(void *vedata)
|
||||
|
||||
static void EEVEE_cache_populate(void *vedata, Object *ob)
|
||||
{
|
||||
EEVEE_ViewLayerData *sldata = EEVEE_view_layer_data_get();
|
||||
EEVEE_ViewLayerData *sldata = EEVEE_view_layer_data_ensure();
|
||||
|
||||
const DRWContextState *draw_ctx = DRW_context_state_get();
|
||||
const bool is_active = (ob == draw_ctx->obact);
|
||||
@@ -151,7 +151,7 @@ static void EEVEE_cache_populate(void *vedata, Object *ob)
|
||||
|
||||
static void EEVEE_cache_finish(void *vedata)
|
||||
{
|
||||
EEVEE_ViewLayerData *sldata = EEVEE_view_layer_data_get();
|
||||
EEVEE_ViewLayerData *sldata = EEVEE_view_layer_data_ensure();
|
||||
|
||||
EEVEE_materials_cache_finish(vedata);
|
||||
EEVEE_lights_cache_finish(sldata);
|
||||
@@ -163,7 +163,7 @@ static void EEVEE_draw_scene(void *vedata)
|
||||
EEVEE_PassList *psl = ((EEVEE_Data *)vedata)->psl;
|
||||
EEVEE_StorageList *stl = ((EEVEE_Data *)vedata)->stl;
|
||||
EEVEE_FramebufferList *fbl = ((EEVEE_Data *)vedata)->fbl;
|
||||
EEVEE_ViewLayerData *sldata = EEVEE_view_layer_data_get();
|
||||
EEVEE_ViewLayerData *sldata = EEVEE_view_layer_data_ensure();
|
||||
|
||||
/* Default framebuffer and texture */
|
||||
DefaultTextureList *dtxl = DRW_viewport_texture_list_get();
|
||||
@@ -290,15 +290,15 @@ static void EEVEE_id_update(void *UNUSED(vedata), ID *id)
|
||||
const ID_Type id_type = GS(id->name);
|
||||
if (id_type == ID_OB) {
|
||||
Object *object = (Object *)id;
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_get(object);
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_ensure(object);
|
||||
if (ped != NULL) {
|
||||
ped->need_full_update = true;
|
||||
}
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_get(object);
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_ensure(object);
|
||||
if (led != NULL) {
|
||||
led->need_update = true;
|
||||
}
|
||||
EEVEE_ObjectEngineData *oedata = EEVEE_object_data_get(object);
|
||||
EEVEE_ObjectEngineData *oedata = EEVEE_object_data_ensure(object);
|
||||
if (oedata != NULL) {
|
||||
oedata->need_update = true;
|
||||
}
|
||||
|
||||
@@ -486,7 +486,7 @@ void EEVEE_lightprobes_cache_add(EEVEE_ViewLayerData *sldata, Object *ob)
|
||||
return;
|
||||
}
|
||||
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_get(ob);
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_ensure(ob);
|
||||
|
||||
ped->num_cell = probe->grid_resolution_x * probe->grid_resolution_y * probe->grid_resolution_z;
|
||||
|
||||
@@ -551,7 +551,7 @@ static void EEVEE_planar_reflections_updates(EEVEE_ViewLayerData *sldata, EEVEE_
|
||||
for (int i = 0; (ob = pinfo->probes_planar_ref[i]) && (i < MAX_PLANAR); i++) {
|
||||
LightProbe *probe = (LightProbe *)ob->data;
|
||||
EEVEE_PlanarReflection *eplanar = &pinfo->planar_data[i];
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_get(ob);
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_ensure(ob);
|
||||
|
||||
/* Computing mtx : matrix that mirror position around object's XY plane. */
|
||||
normalize_m4_m4(normat, ob->obmat); /* object > world */
|
||||
@@ -646,7 +646,7 @@ static void EEVEE_lightprobes_updates(EEVEE_ViewLayerData *sldata, EEVEE_PassLis
|
||||
for (int i = 1; (ob = pinfo->probes_cube_ref[i]) && (i < MAX_PROBE); i++) {
|
||||
LightProbe *probe = (LightProbe *)ob->data;
|
||||
EEVEE_LightProbe *eprobe = &pinfo->probe_data[i];
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_get(ob);
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_ensure(ob);
|
||||
|
||||
/* Update transforms */
|
||||
copy_v3_v3(eprobe->position, ob->obmat[3]);
|
||||
@@ -692,7 +692,7 @@ static void EEVEE_lightprobes_updates(EEVEE_ViewLayerData *sldata, EEVEE_PassLis
|
||||
for (int i = 1; (ob = pinfo->probes_grid_ref[i]) && (i < MAX_GRID); i++) {
|
||||
LightProbe *probe = (LightProbe *)ob->data;
|
||||
EEVEE_LightGrid *egrid = &pinfo->grid_data[i];
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_get(ob);
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_ensure(ob);
|
||||
|
||||
/* Add one for level 0 */
|
||||
ped->max_lvl = 1.0f + floorf(log2f((float)MAX3(probe->grid_resolution_x,
|
||||
@@ -802,7 +802,7 @@ void EEVEE_lightprobes_cache_finish(EEVEE_ViewLayerData *sldata, EEVEE_Data *ved
|
||||
pinfo->cache_num_cube = pinfo->num_cube;
|
||||
|
||||
for (int i = 1; (ob = pinfo->probes_cube_ref[i]) && (i < MAX_PROBE); i++) {
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_get(ob);
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_ensure(ob);
|
||||
ped->need_update = true;
|
||||
ped->ready_to_shade = false;
|
||||
ped->probe_id = 0;
|
||||
@@ -835,7 +835,7 @@ void EEVEE_lightprobes_cache_finish(EEVEE_ViewLayerData *sldata, EEVEE_Data *ved
|
||||
e_data.update_world |= PROBE_UPDATE_GRID;
|
||||
|
||||
for (int i = 1; (ob = pinfo->probes_grid_ref[i]) && (i < MAX_PROBE); i++) {
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_get(ob);
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_ensure(ob);
|
||||
ped->need_update = true;
|
||||
ped->updated_cells = 0;
|
||||
}
|
||||
@@ -1340,7 +1340,7 @@ void EEVEE_lightprobes_refresh(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
pinfo->num_render_grid = pinfo->num_grid;
|
||||
|
||||
for (int i = 1; (ob = pinfo->probes_grid_ref[i]) && (i < MAX_GRID); i++) {
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_get(ob);
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_ensure(ob);
|
||||
|
||||
if (ped->need_update) {
|
||||
EEVEE_LightGrid *egrid = &pinfo->grid_data[i];
|
||||
@@ -1440,7 +1440,7 @@ skip_rendering:
|
||||
if (pinfo->updated_bounce < pinfo->num_bounce) {
|
||||
/* Retag all grids to update for next bounce */
|
||||
for (int i = 1; (ob = pinfo->probes_grid_ref[i]) && (i < MAX_GRID); i++) {
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_get(ob);
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_ensure(ob);
|
||||
ped->need_update = true;
|
||||
ped->updated_cells = 0;
|
||||
ped->updated_lvl = 0;
|
||||
@@ -1460,7 +1460,7 @@ skip_rendering:
|
||||
}
|
||||
|
||||
for (int i = 1; (ob = pinfo->probes_cube_ref[i]) && (i < MAX_PROBE); i++) {
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_get(ob);
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_ensure(ob);
|
||||
|
||||
if (ped->need_update) {
|
||||
LightProbe *prb = (LightProbe *)ob->data;
|
||||
@@ -1491,7 +1491,7 @@ skip_rendering:
|
||||
update_planar:
|
||||
|
||||
for (int i = 0; (ob = pinfo->probes_planar_ref[i]) && (i < MAX_PLANAR); i++) {
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_get(ob);
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_ensure(ob);
|
||||
|
||||
if (ped->need_update) {
|
||||
/* Temporary Remove all planar reflections (avoid lag effect). */
|
||||
|
||||
@@ -255,7 +255,7 @@ void EEVEE_lights_cache_add(EEVEE_ViewLayerData *sldata, Object *ob)
|
||||
}
|
||||
else {
|
||||
Lamp *la = (Lamp *)ob->data;
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_get(ob);
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_ensure(ob);
|
||||
|
||||
MEM_SAFE_FREE(led->storage);
|
||||
|
||||
@@ -830,7 +830,7 @@ static void delete_pruned_shadowcaster(EEVEE_LampEngineData *led)
|
||||
static void light_tag_shadow_update(Object *lamp, Object *ob)
|
||||
{
|
||||
Lamp *la = lamp->data;
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_get(lamp);
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_ensure(lamp);
|
||||
|
||||
bool is_inside_range = cube_bbox_intersect(lamp->obmat[3], la->clipend, BKE_object_boundbox_get(ob), ob->obmat);
|
||||
ShadowCaster *ldata = search_object_in_list(&led->shadow_caster_list, ob);
|
||||
@@ -844,7 +844,7 @@ static void light_tag_shadow_update(Object *lamp, Object *ob)
|
||||
led->need_update = true;
|
||||
}
|
||||
else {
|
||||
EEVEE_ObjectEngineData *oedata = EEVEE_object_data_get(ob);
|
||||
EEVEE_ObjectEngineData *oedata = EEVEE_object_data_ensure(ob);
|
||||
if (oedata->need_update) {
|
||||
led->need_update = true;
|
||||
}
|
||||
@@ -868,7 +868,7 @@ static void eevee_lights_shcaster_updated(EEVEE_ViewLayerData *sldata, Object *o
|
||||
for (int i = 0; (lamp = linfo->shadow_cube_ref[i]) && (i < MAX_SHADOW_CUBE); i++) {
|
||||
light_tag_shadow_update(lamp, ob);
|
||||
}
|
||||
EEVEE_ObjectEngineData *oedata = EEVEE_object_data_get(ob);
|
||||
EEVEE_ObjectEngineData *oedata = EEVEE_object_data_ensure(ob);
|
||||
oedata->need_update = false;
|
||||
}
|
||||
|
||||
@@ -881,7 +881,7 @@ void EEVEE_lights_update(EEVEE_ViewLayerData *sldata)
|
||||
/* Prune shadow casters to remove if object does not exists anymore (unprune them if object exists) */
|
||||
Object *lamp;
|
||||
for (i = 0; (lamp = linfo->shadow_cube_ref[i]) && (i < MAX_SHADOW_CUBE); i++) {
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_get(lamp);
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_ensure(lamp);
|
||||
|
||||
if ((linfo->update_flag & LIGHT_UPDATE_SHADOW_CUBE) != 0) {
|
||||
led->need_update = true;
|
||||
@@ -897,12 +897,12 @@ void EEVEE_lights_update(EEVEE_ViewLayerData *sldata)
|
||||
}
|
||||
|
||||
for (i = 0; (ob = linfo->light_ref[i]) && (i < MAX_LIGHT); i++) {
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_get(ob);
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_ensure(ob);
|
||||
eevee_light_setup(ob, linfo, led);
|
||||
}
|
||||
|
||||
for (i = 0; (ob = linfo->shadow_cube_ref[i]) && (i < MAX_SHADOW_CUBE); i++) {
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_get(ob);
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_ensure(ob);
|
||||
eevee_shadow_cube_setup(ob, linfo, led);
|
||||
delete_pruned_shadowcaster(led);
|
||||
}
|
||||
@@ -921,7 +921,7 @@ void EEVEE_draw_shadows(EEVEE_ViewLayerData *sldata, EEVEE_PassList *psl)
|
||||
DRW_framebuffer_texture_attach(sldata->shadow_target_fb, sldata->shadow_cube_target, 0, 0);
|
||||
/* Render each shadow to one layer of the array */
|
||||
for (i = 0; (ob = linfo->shadow_cube_ref[i]) && (i < MAX_SHADOW_CUBE); i++) {
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_get(ob);
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_ensure(ob);
|
||||
Lamp *la = (Lamp *)ob->data;
|
||||
|
||||
float cube_projmat[4][4];
|
||||
@@ -1005,7 +1005,7 @@ void EEVEE_draw_shadows(EEVEE_ViewLayerData *sldata, EEVEE_PassList *psl)
|
||||
DRW_stats_group_start("Cascaded Shadow Maps");
|
||||
DRW_framebuffer_texture_attach(sldata->shadow_target_fb, sldata->shadow_cascade_target, 0, 0);
|
||||
for (i = 0; (ob = linfo->shadow_cascade_ref[i]) && (i < MAX_SHADOW_CASCADE); i++) {
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_get(ob);
|
||||
EEVEE_LampEngineData *led = EEVEE_lamp_data_ensure(ob);
|
||||
Lamp *la = (Lamp *)ob->data;
|
||||
|
||||
EEVEE_ShadowCascadeData *evscd = (EEVEE_ShadowCascadeData *)led->storage;
|
||||
|
||||
@@ -640,10 +640,10 @@ typedef struct EEVEE_PrivateData {
|
||||
} EEVEE_PrivateData; /* Transient data */
|
||||
|
||||
/* eevee_data.c */
|
||||
EEVEE_ViewLayerData *EEVEE_view_layer_data_get(void);
|
||||
EEVEE_ObjectEngineData *EEVEE_object_data_get(Object *ob);
|
||||
EEVEE_LightProbeEngineData *EEVEE_lightprobe_data_get(Object *ob);
|
||||
EEVEE_LampEngineData *EEVEE_lamp_data_get(Object *ob);
|
||||
EEVEE_ViewLayerData *EEVEE_view_layer_data_ensure(void);
|
||||
EEVEE_ObjectEngineData *EEVEE_object_data_ensure(Object *ob);
|
||||
EEVEE_LightProbeEngineData *EEVEE_lightprobe_data_ensure(Object *ob);
|
||||
EEVEE_LampEngineData *EEVEE_lamp_data_ensure(Object *ob);
|
||||
|
||||
/* eevee_materials.c */
|
||||
struct GPUTexture *EEVEE_materials_get_util_tex(void); /* XXX */
|
||||
|
||||
Reference in New Issue
Block a user