diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:17:24 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:21:24 +0300 |
commit | e12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch) | |
tree | 8cf3453d12edb177a218ef8009357518ec6cab6a /source/blender/draw/engines/eevee/eevee_mist.c | |
parent | b3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff) |
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211.
For details on usage and instructions for migrating branches
without conflicts, see:
https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_mist.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_mist.c | 160 |
1 files changed, 79 insertions, 81 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_mist.c b/source/blender/draw/engines/eevee/eevee_mist.c index 9a75ba91fa5..1ea1e086aea 100644 --- a/source/blender/draw/engines/eevee/eevee_mist.c +++ b/source/blender/draw/engines/eevee/eevee_mist.c @@ -38,99 +38,97 @@ extern char datatoc_bsdf_common_lib_glsl[]; extern char datatoc_effect_mist_frag_glsl[]; static struct { - struct GPUShader *mist_sh; + struct GPUShader *mist_sh; } e_data = {NULL}; /* Engine data */ void EEVEE_mist_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) { - const DRWContextState *draw_ctx = DRW_context_state_get(); - EEVEE_FramebufferList *fbl = vedata->fbl; - DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); - EEVEE_TextureList *txl = vedata->txl; - EEVEE_StorageList *stl = vedata->stl; - EEVEE_PassList *psl = vedata->psl; - EEVEE_PrivateData *g_data = stl->g_data; - Scene *scene = draw_ctx->scene; - - float clear[4] = {0.0f, 0.0f, 0.0f, 0.0f}; - - if (e_data.mist_sh == NULL) { - char *frag_str = BLI_string_joinN( - datatoc_common_view_lib_glsl, - datatoc_common_uniforms_lib_glsl, - datatoc_bsdf_common_lib_glsl, - datatoc_effect_mist_frag_glsl); - - e_data.mist_sh = DRW_shader_create_fullscreen(frag_str, "#define FIRST_PASS\n"); - - MEM_freeN(frag_str); - } - - /* Create FrameBuffer. */ - DRW_texture_ensure_fullscreen_2d(&txl->mist_accum, GPU_R32F, 0); /* Should be enough precision for many samples. */ - - GPU_framebuffer_ensure_config(&fbl->mist_accum_fb, { - GPU_ATTACHMENT_NONE, - GPU_ATTACHMENT_TEXTURE(txl->mist_accum) - }); - - /* Clear texture. */ - GPU_framebuffer_bind(fbl->mist_accum_fb); - GPU_framebuffer_clear_color(fbl->mist_accum_fb, clear); - - /* Mist settings. */ - if (scene && scene->world) { - g_data->mist_start = scene->world->miststa; - g_data->mist_inv_dist = (scene->world->mistdist > 0.0f) ? 1.0f / scene->world->mistdist : 0.0f; - - switch (scene->world->mistype) { - case WO_MIST_QUADRATIC: - g_data->mist_falloff = 2.0f; - break; - case WO_MIST_LINEAR: - g_data->mist_falloff = 1.0f; - break; - case WO_MIST_INVERSE_QUADRATIC: - g_data->mist_falloff = 0.5f; - break; - } - } - else { - float near = -sldata->common_data.view_vecs[0][2]; - float range = sldata->common_data.view_vecs[1][2]; - /* Fallback */ - g_data->mist_start = near; - g_data->mist_inv_dist = 1.0f / fabsf(range); - g_data->mist_falloff = 1.0f; - } - - /* XXX ??!! WHY? If not it does not match cycles. */ - g_data->mist_falloff *= 0.5f; - - /* Create Pass and shgroup. */ - psl->mist_accum_ps = DRW_pass_create("Mist Accum", DRW_STATE_WRITE_COLOR | DRW_STATE_ADDITIVE); - DRWShadingGroup *grp = DRW_shgroup_create(e_data.mist_sh, psl->mist_accum_ps); - DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &dtxl->depth); - DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo); - DRW_shgroup_uniform_vec3(grp, "mistSettings", &g_data->mist_start, 1); - DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL); + const DRWContextState *draw_ctx = DRW_context_state_get(); + EEVEE_FramebufferList *fbl = vedata->fbl; + DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); + EEVEE_TextureList *txl = vedata->txl; + EEVEE_StorageList *stl = vedata->stl; + EEVEE_PassList *psl = vedata->psl; + EEVEE_PrivateData *g_data = stl->g_data; + Scene *scene = draw_ctx->scene; + + float clear[4] = {0.0f, 0.0f, 0.0f, 0.0f}; + + if (e_data.mist_sh == NULL) { + char *frag_str = BLI_string_joinN(datatoc_common_view_lib_glsl, + datatoc_common_uniforms_lib_glsl, + datatoc_bsdf_common_lib_glsl, + datatoc_effect_mist_frag_glsl); + + e_data.mist_sh = DRW_shader_create_fullscreen(frag_str, "#define FIRST_PASS\n"); + + MEM_freeN(frag_str); + } + + /* Create FrameBuffer. */ + DRW_texture_ensure_fullscreen_2d( + &txl->mist_accum, GPU_R32F, 0); /* Should be enough precision for many samples. */ + + GPU_framebuffer_ensure_config(&fbl->mist_accum_fb, + {GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE(txl->mist_accum)}); + + /* Clear texture. */ + GPU_framebuffer_bind(fbl->mist_accum_fb); + GPU_framebuffer_clear_color(fbl->mist_accum_fb, clear); + + /* Mist settings. */ + if (scene && scene->world) { + g_data->mist_start = scene->world->miststa; + g_data->mist_inv_dist = (scene->world->mistdist > 0.0f) ? 1.0f / scene->world->mistdist : 0.0f; + + switch (scene->world->mistype) { + case WO_MIST_QUADRATIC: + g_data->mist_falloff = 2.0f; + break; + case WO_MIST_LINEAR: + g_data->mist_falloff = 1.0f; + break; + case WO_MIST_INVERSE_QUADRATIC: + g_data->mist_falloff = 0.5f; + break; + } + } + else { + float near = -sldata->common_data.view_vecs[0][2]; + float range = sldata->common_data.view_vecs[1][2]; + /* Fallback */ + g_data->mist_start = near; + g_data->mist_inv_dist = 1.0f / fabsf(range); + g_data->mist_falloff = 1.0f; + } + + /* XXX ??!! WHY? If not it does not match cycles. */ + g_data->mist_falloff *= 0.5f; + + /* Create Pass and shgroup. */ + psl->mist_accum_ps = DRW_pass_create("Mist Accum", DRW_STATE_WRITE_COLOR | DRW_STATE_ADDITIVE); + DRWShadingGroup *grp = DRW_shgroup_create(e_data.mist_sh, psl->mist_accum_ps); + DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &dtxl->depth); + DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo); + DRW_shgroup_uniform_vec3(grp, "mistSettings", &g_data->mist_start, 1); + DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL); } void EEVEE_mist_output_accumulate(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata) { - EEVEE_FramebufferList *fbl = vedata->fbl; - EEVEE_PassList *psl = vedata->psl; + EEVEE_FramebufferList *fbl = vedata->fbl; + EEVEE_PassList *psl = vedata->psl; - if (fbl->mist_accum_fb != NULL) { - GPU_framebuffer_bind(fbl->mist_accum_fb); - DRW_draw_pass(psl->mist_accum_ps); + if (fbl->mist_accum_fb != NULL) { + GPU_framebuffer_bind(fbl->mist_accum_fb); + DRW_draw_pass(psl->mist_accum_ps); - /* Restore */ - GPU_framebuffer_bind(fbl->main_fb); - } + /* Restore */ + GPU_framebuffer_bind(fbl->main_fb); + } } void EEVEE_mist_free(void) { - DRW_SHADER_FREE_SAFE(e_data.mist_sh); + DRW_SHADER_FREE_SAFE(e_data.mist_sh); } |