46 if (ob_key->
id[i] != 0) {
62 if (key_a->
ob != key_b->
ob) {
68 if (memcmp(key_a->
id, key_b->
id,
sizeof(key_a->
id)) != 0) {
86 for (
int i = 0; i < 2; i++) {
104 for (
int i = 0; i < 2; i++) {
130 key.
ob = (
void *)((
char *)ob + is_psys);
138 memset(key.
id, 0,
sizeof(key.
id));
142 if (ob_step ==
NULL) {
144 memcpy(key_p, &key,
sizeof(*key_p));
199 GPU_FRAMEBUFFER_FREE_SAFE(sldata->
shadow_fb);
202 for (
int i = 0; i < 2; i++) {
226 for (
int aov_index = 0; aov_index <
MAX_AOVS; aov_index++) {
251 if (*sldata ==
NULL) {
252 *sldata =
MEM_callocN(
sizeof(**sldata),
"EEVEE_ViewLayerData");
264 if (*sldata ==
NULL) {
265 *sldata =
MEM_callocN(
sizeof(**sldata),
"EEVEE_ViewLayerData");
General operations, lookup, etc. for blender objects.
size_t BLI_ghashutil_combine_hash(size_t hash_a, size_t hash_b)
unsigned int BLI_ghashutil_ptrhash(const void *key)
GHash * BLI_ghash_new(GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void(* GHashValFreeFP)(void *val)
void * BLI_ghash_lookup(const GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
bool BLI_ghashutil_ptrcmp(const void *a, const void *b)
void BLI_ghash_insert(GHash *gh, void *key, void *val)
void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
#define BLI_ghashutil_inthash(key)
int BLI_listbase_count(const struct ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void BLI_memblock_destroy(BLI_memblock *mblk, MemblockValFreeFP free_callback) ATTR_NONNULL(1)
#define DRW_UBO_FREE_SAFE(ubo)
#define DRW_TEXTURE_FREE_SAFE(tex)
void GPU_vertbuf_discard(GPUVertBuf *)
struct Object * DRW_object_get_dupli_parent(const Object *UNUSED(ob))
DrawData * DRW_drawdata_ensure(ID *id, DrawEngineType *engine_type, size_t size, DrawDataInitCb init_cb, DrawDataFreeCb free_cb)
void * DRW_view_layer_engine_data_get(DrawEngineType *engine_type)
void ** DRW_view_layer_engine_data_ensure(DrawEngineType *engine_type, void(*callback)(void *storage))
void ** DRW_view_layer_engine_data_ensure_ex(ViewLayer *view_layer, DrawEngineType *engine_type, void(*callback)(void *storage))
struct DupliObject * DRW_object_get_dupli(const Object *UNUSED(ob))
DrawData * DRW_drawdata_get(ID *id, DrawEngineType *engine_type)
void DRW_texture_free(GPUTexture *tex)
EEVEE_LightProbeEngineData * EEVEE_lightprobe_data_get(Object *ob)
static void eevee_lightprobe_data_init(DrawData *dd)
EEVEE_LightEngineData * EEVEE_light_data_get(Object *ob)
static bool eevee_object_key_cmp(const void *a, const void *b)
EEVEE_ViewLayerData * EEVEE_view_layer_data_get(void)
static void eevee_world_data_init(DrawData *dd)
EEVEE_ViewLayerData * EEVEE_view_layer_data_ensure(void)
EEVEE_ObjectEngineData * EEVEE_object_data_ensure(Object *ob)
static void eevee_view_layer_init(EEVEE_ViewLayerData *sldata)
EEVEE_WorldEngineData * EEVEE_world_data_ensure(World *wo)
void EEVEE_motion_blur_data_init(EEVEE_MotionBlurData *mb)
static uint eevee_object_key_hash(const void *key)
EEVEE_GeometryMotionData * EEVEE_motion_blur_geometry_data_get(EEVEE_ObjectMotionData *mb_data)
EEVEE_ObjectEngineData * EEVEE_object_data_get(Object *ob)
static void eevee_light_data_init(DrawData *dd)
void EEVEE_motion_hair_step_free(EEVEE_HairMotionStepData *step_data)
static void eevee_motion_blur_mesh_data_free(void *val)
EEVEE_LightEngineData * EEVEE_light_data_ensure(Object *ob)
EEVEE_HairMotionData * EEVEE_motion_blur_curves_data_get(EEVEE_ObjectMotionData *mb_data)
EEVEE_HairMotionData * EEVEE_motion_blur_hair_data_get(EEVEE_ObjectMotionData *mb_data, Object *ob)
EEVEE_ViewLayerData * EEVEE_view_layer_data_ensure_ex(struct ViewLayer *view_layer)
void EEVEE_view_layer_data_free(void *storage)
void EEVEE_motion_blur_data_free(EEVEE_MotionBlurData *mb)
static void eevee_object_data_init(DrawData *dd)
EEVEE_ObjectMotionData * EEVEE_motion_blur_object_data_get(EEVEE_MotionBlurData *mb, Object *ob, bool is_psys)
EEVEE_LightProbeEngineData * EEVEE_lightprobe_data_ensure(Object *ob)
EEVEE_WorldEngineData * EEVEE_world_data_get(World *wo)
DrawEngineType draw_engine_eevee_type
void EEVEE_lightcache_free(LightCache *lcache)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
static void hair_step(ParticleSimulationData *sim, float cfra, const bool use_render_params)
struct GPUTexture * hair_pos_tx
struct GPUVertBuf * hair_pos
struct GHash * hair_motion_step_cache[2]
struct GHash * position_vbo_cache[2]
EEVEE_GeometryMotionData * geometry_data
EEVEE_HairMotionData * hair_data
struct EEVEE_CommonUniformBuffer common_data
struct GPUTexture * shadow_cube_pool
struct GPUUniformBuf * combined
struct GPUUniformBuf * diff_light
struct GPUUniformBuf * shadow_ubo
struct GPUUniformBuf * probe_ubo
struct GPUUniformBuf * grid_ubo
struct GPUUniformBuf * emit
struct GPUFrameBuffer * shadow_fb
struct GPUUniformBuf * planar_ubo
struct EEVEE_ViewLayerData::@210 renderpass_ubo
struct GPUUniformBuf * spec_color
struct GPUUniformBuf * environment
struct LightCache * fallback_lightcache
struct GPUUniformBuf * diff_color
struct GPUUniformBuf * spec_light
struct GPUUniformBuf * common_ubo
struct BLI_memblock * material_cache
struct GPUUniformBuf * light_ubo
struct GPUUniformBuf * aovs[MAX_AOVS]
struct GPUTexture * shadow_cascade_pool
struct EEVEE_ShadowCasterBuffer shcasters_buffers[2]
struct EEVEE_LightsInfo * lights
struct EEVEE_LightProbesInfo * probes