Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/eevee/eevee_depth_of_field.c
| Show First 20 Lines • Show All 68 Lines • ▼ Show 20 Lines | static void eevee_create_shader_depth_of_field(void) | ||||
| e_data.dof_downsample_sh = DRW_shader_create(datatoc_effect_dof_vert_glsl, NULL, | e_data.dof_downsample_sh = DRW_shader_create(datatoc_effect_dof_vert_glsl, NULL, | ||||
| datatoc_effect_dof_frag_glsl, "#define STEP_DOWNSAMPLE\n"); | datatoc_effect_dof_frag_glsl, "#define STEP_DOWNSAMPLE\n"); | ||||
| e_data.dof_scatter_sh = DRW_shader_create(datatoc_effect_dof_vert_glsl, NULL, | e_data.dof_scatter_sh = DRW_shader_create(datatoc_effect_dof_vert_glsl, NULL, | ||||
| datatoc_effect_dof_frag_glsl, "#define STEP_SCATTER\n"); | datatoc_effect_dof_frag_glsl, "#define STEP_SCATTER\n"); | ||||
| e_data.dof_resolve_sh = DRW_shader_create(datatoc_effect_dof_vert_glsl, NULL, | e_data.dof_resolve_sh = DRW_shader_create(datatoc_effect_dof_vert_glsl, NULL, | ||||
| datatoc_effect_dof_frag_glsl, "#define STEP_RESOLVE\n"); | datatoc_effect_dof_frag_glsl, "#define STEP_RESOLVE\n"); | ||||
| } | } | ||||
| int EEVEE_depth_of_field_init(EEVEE_SceneLayerData *UNUSED(sldata), EEVEE_Data *vedata) | int EEVEE_depth_of_field_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata) | ||||
| { | { | ||||
| EEVEE_StorageList *stl = vedata->stl; | EEVEE_StorageList *stl = vedata->stl; | ||||
| EEVEE_FramebufferList *fbl = vedata->fbl; | EEVEE_FramebufferList *fbl = vedata->fbl; | ||||
| EEVEE_TextureList *txl = vedata->txl; | EEVEE_TextureList *txl = vedata->txl; | ||||
| EEVEE_EffectsInfo *effects = stl->effects; | EEVEE_EffectsInfo *effects = stl->effects; | ||||
| const DRWContextState *draw_ctx = DRW_context_state_get(); | const DRWContextState *draw_ctx = DRW_context_state_get(); | ||||
| SceneLayer *scene_layer = draw_ctx->scene_layer; | ViewLayer *view_layer = draw_ctx->view_layer; | ||||
| IDProperty *props = BKE_scene_layer_engine_evaluated_get(scene_layer, COLLECTION_MODE_NONE, RE_engine_id_BLENDER_EEVEE); | IDProperty *props = BKE_view_layer_engine_evaluated_get(view_layer, COLLECTION_MODE_NONE, RE_engine_id_BLENDER_EEVEE); | ||||
| if (BKE_collection_engine_property_value_get_bool(props, "dof_enable")) { | if (BKE_collection_engine_property_value_get_bool(props, "dof_enable")) { | ||||
| Scene *scene = draw_ctx->scene; | Scene *scene = draw_ctx->scene; | ||||
| View3D *v3d = draw_ctx->v3d; | View3D *v3d = draw_ctx->v3d; | ||||
| RegionView3D *rv3d = draw_ctx->rv3d; | RegionView3D *rv3d = draw_ctx->rv3d; | ||||
| if (!e_data.dof_downsample_sh) { | if (!e_data.dof_downsample_sh) { | ||||
| eevee_create_shader_depth_of_field(); | eevee_create_shader_depth_of_field(); | ||||
| ▲ Show 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | int EEVEE_depth_of_field_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata) | ||||
| DRW_TEXTURE_FREE_SAFE(txl->dof_near_blur); | DRW_TEXTURE_FREE_SAFE(txl->dof_near_blur); | ||||
| DRW_FRAMEBUFFER_FREE_SAFE(fbl->dof_down_fb); | DRW_FRAMEBUFFER_FREE_SAFE(fbl->dof_down_fb); | ||||
| DRW_FRAMEBUFFER_FREE_SAFE(fbl->dof_scatter_far_fb); | DRW_FRAMEBUFFER_FREE_SAFE(fbl->dof_scatter_far_fb); | ||||
| DRW_FRAMEBUFFER_FREE_SAFE(fbl->dof_scatter_near_fb); | DRW_FRAMEBUFFER_FREE_SAFE(fbl->dof_scatter_near_fb); | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| void EEVEE_depth_of_field_cache_init(EEVEE_SceneLayerData *UNUSED(sldata), EEVEE_Data *vedata) | void EEVEE_depth_of_field_cache_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata) | ||||
| { | { | ||||
| EEVEE_PassList *psl = vedata->psl; | EEVEE_PassList *psl = vedata->psl; | ||||
| EEVEE_StorageList *stl = vedata->stl; | EEVEE_StorageList *stl = vedata->stl; | ||||
| EEVEE_TextureList *txl = vedata->txl; | EEVEE_TextureList *txl = vedata->txl; | ||||
| EEVEE_EffectsInfo *effects = stl->effects; | EEVEE_EffectsInfo *effects = stl->effects; | ||||
| DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); | DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); | ||||
| if ((effects->enabled_effects & EFFECT_DOF) != 0) { | if ((effects->enabled_effects & EFFECT_DOF) != 0) { | ||||
| ▲ Show 20 Lines • Show All 96 Lines • Show Last 20 Lines | |||||