Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/eevee/eevee_effects.c
| Show First 20 Lines • Show All 104 Lines • ▼ Show 20 Lines | static void eevee_create_shader_downsample(void) | ||||
| e_data.maxz_copydepth_sh = DRW_shader_create_fullscreen( | e_data.maxz_copydepth_sh = DRW_shader_create_fullscreen( | ||||
| datatoc_effect_minmaxz_frag_glsl, | datatoc_effect_minmaxz_frag_glsl, | ||||
| "#define MAX_PASS\n" | "#define MAX_PASS\n" | ||||
| "#define COPY_DEPTH\n"); | "#define COPY_DEPTH\n"); | ||||
| } | } | ||||
| #define SETUP_BUFFER(tex, fb, fb_color) { \ | #define SETUP_BUFFER(tex, fb, fb_color) { \ | ||||
| eGPUTextureFormat format = (DRW_state_is_scene_render()) ? GPU_RGBA32F : GPU_RGBA16F; \ | eGPUTextureFormat format = (DRW_state_is_scene_render()) ? GPU_RGBA32F : GPU_RGBA16F; \ | ||||
| DRW_texture_ensure_fullscreen_2d(&tex, format, DRW_TEX_FILTER | DRW_TEX_MIPMAP); \ | DRW_texture_ensure_render_fullscreen_2d(&tex, format, DRW_TEX_FILTER | DRW_TEX_MIPMAP); \ | ||||
| GPU_framebuffer_ensure_config(&fb, { \ | GPU_framebuffer_ensure_config(&fb, { \ | ||||
| GPU_ATTACHMENT_TEXTURE(dtxl->depth), \ | GPU_ATTACHMENT_TEXTURE(txl->depth ? txl->depth : dtxl->depth), \ | ||||
| GPU_ATTACHMENT_TEXTURE(tex), \ | GPU_ATTACHMENT_TEXTURE(tex), \ | ||||
| }); \ | }); \ | ||||
| GPU_framebuffer_ensure_config(&fb_color, { \ | GPU_framebuffer_ensure_config(&fb_color, { \ | ||||
| GPU_ATTACHMENT_NONE, \ | GPU_ATTACHMENT_NONE, \ | ||||
| GPU_ATTACHMENT_TEXTURE(tex), \ | GPU_ATTACHMENT_TEXTURE(tex), \ | ||||
| }); \ | }); \ | ||||
| } | } | ||||
| Show All 10 Lines | void EEVEE_effects_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *camera, const bool minimal) | ||||
| 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; | EEVEE_EffectsInfo *effects; | ||||
| DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); | DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); | ||||
| const DRWContextState *draw_ctx = DRW_context_state_get(); | const DRWContextState *draw_ctx = DRW_context_state_get(); | ||||
| ViewLayer *view_layer = draw_ctx->view_layer; | ViewLayer *view_layer = draw_ctx->view_layer; | ||||
| const float *viewport_size = DRW_viewport_size_get(); | const float *viewport_size = DRW_viewport_render_size_get(); | ||||
| int size_fs[2] = {(int)viewport_size[0], (int)viewport_size[1]}; | int size_fs[2] = {(int)viewport_size[0], (int)viewport_size[1]}; | ||||
| /* Shaders */ | /* Shaders */ | ||||
| if (!e_data.downsample_sh) { | if (!e_data.downsample_sh) { | ||||
| eevee_create_shader_downsample(); | eevee_create_shader_downsample(); | ||||
| } | } | ||||
| if (!stl->effects) { | if (!stl->effects) { | ||||
| ▲ Show 20 Lines • Show All 93 Lines • ▼ Show 20 Lines | void EEVEE_effects_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *camera, const bool minimal) | ||||
| else { | else { | ||||
| effects->velocity_tx = NULL; | effects->velocity_tx = NULL; | ||||
| } | } | ||||
| /** | /** | ||||
| * Setup depth double buffer. | * Setup depth double buffer. | ||||
| */ | */ | ||||
| if ((effects->enabled_effects & EFFECT_DEPTH_DOUBLE_BUFFER) != 0) { | if ((effects->enabled_effects & EFFECT_DEPTH_DOUBLE_BUFFER) != 0) { | ||||
| DRW_texture_ensure_fullscreen_2d(&txl->depth_double_buffer, GPU_DEPTH24_STENCIL8, 0); | DRW_texture_ensure_render_fullscreen_2d(&txl->depth_double_buffer, GPU_DEPTH24_STENCIL8, 0); | ||||
| GPU_framebuffer_ensure_config(&fbl->double_buffer_depth_fb, { | GPU_framebuffer_ensure_config(&fbl->double_buffer_depth_fb, { | ||||
| GPU_ATTACHMENT_TEXTURE(txl->depth_double_buffer) | GPU_ATTACHMENT_TEXTURE(txl->depth_double_buffer) | ||||
| }); | }); | ||||
| } | } | ||||
| else { | else { | ||||
| /* Cleanup to release memory */ | /* Cleanup to release memory */ | ||||
| DRW_TEXTURE_FREE_SAFE(txl->depth_double_buffer); | DRW_TEXTURE_FREE_SAFE(txl->depth_double_buffer); | ||||
| ▲ Show 20 Lines • Show All 313 Lines • Show Last 20 Lines | |||||