diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-02-11 17:18:55 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-02-11 17:19:04 +0300 |
commit | 804e90b42d728ecb1073af8d0bae15a91b13a469 (patch) | |
tree | 309de25d99c92286b10c9d27e547fd43a69299c1 /source/blender/draw/engines/eevee/eevee_engine.c | |
parent | 58cdab8b9759dd59b55895f2f76b9624addbb324 (diff) |
DRW: Color Management improvement
Reviewed By: brecht sergey jbakker
Differential Revision: http://developer.blender.org/D6729
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_engine.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_engine.c | 80 |
1 files changed, 7 insertions, 73 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_engine.c b/source/blender/draw/engines/eevee/eevee_engine.c index 420249ab930..e3b50bb2142 100644 --- a/source/blender/draw/engines/eevee/eevee_engine.c +++ b/source/blender/draw/engines/eevee/eevee_engine.c @@ -22,10 +22,11 @@ #include "DRW_render.h" +#include "draw_color_management.h" /* TODO remove dependency */ + #include "BLI_rand.h" #include "BKE_object.h" -#include "BKE_global.h" /* for G.debug_value */ #include "DEG_depsgraph_query.h" @@ -183,13 +184,11 @@ static void eevee_cache_finish(void *vedata) * the background and the scene pass are visible. * Note: we could break it up in two passes using some depth test * to reduce the fillrate */ -static void eevee_draw_background(void *vedata) +static void eevee_draw_scene(void *vedata) { EEVEE_PassList *psl = ((EEVEE_Data *)vedata)->psl; - EEVEE_TextureList *txl = ((EEVEE_Data *)vedata)->txl; EEVEE_StorageList *stl = ((EEVEE_Data *)vedata)->stl; EEVEE_FramebufferList *fbl = ((EEVEE_Data *)vedata)->fbl; - EEVEE_EffectsInfo *effects = stl->effects; EEVEE_ViewLayerData *sldata = EEVEE_view_layer_data_ensure(); /* Default framebuffer and texture */ @@ -338,79 +337,15 @@ static void eevee_draw_background(void *vedata) } if ((stl->g_data->render_passes & SCE_PASS_COMBINED) > 0) { - /* Tonemapping and transfer result to default framebuffer. */ - bool use_render_settings = stl->g_data->use_color_render_settings; - + /* Transfer result to default framebuffer. */ GPU_framebuffer_bind(dfbl->default_fb); - DRW_transform_to_display(stl->effects->final_tx, true, use_render_settings); - - /* Draw checkerboard with alpha under. */ - EEVEE_draw_alpha_checker(vedata); + DRW_transform_none(stl->effects->final_tx); } else { EEVEE_renderpasses_draw(sldata, vedata); } - /* Debug : Output buffer to view. */ - switch (G.debug_value) { - case 1: - if (txl->maxzbuffer) { - DRW_transform_to_display(txl->maxzbuffer, false, false); - } - break; - case 2: - if (effects->ssr_pdf_output) { - DRW_transform_to_display(effects->ssr_pdf_output, false, false); - } - break; - case 3: - if (effects->ssr_normal_input) { - DRW_transform_to_display(effects->ssr_normal_input, false, false); - } - break; - case 4: - if (effects->ssr_specrough_input) { - DRW_transform_to_display(effects->ssr_specrough_input, false, false); - } - break; - case 5: - if (txl->color_double_buffer) { - DRW_transform_to_display(txl->color_double_buffer, false, false); - } - break; - case 6: - if (effects->gtao_horizons_debug) { - DRW_transform_to_display(effects->gtao_horizons_debug, false, false); - } - break; - case 7: - if (effects->gtao_horizons) { - DRW_transform_to_display(effects->gtao_horizons, false, false); - } - break; - case 8: - if (effects->sss_irradiance) { - DRW_transform_to_display(effects->sss_irradiance, false, false); - } - break; - case 9: - if (effects->sss_radius) { - DRW_transform_to_display(effects->sss_radius, false, false); - } - break; - case 10: - if (effects->sss_albedo) { - DRW_transform_to_display(effects->sss_albedo, false, false); - } - break; - case 11: - if (effects->velocity_tx) { - DRW_transform_to_display(effects->velocity_tx, false, false); - } - break; - default: - break; - } + EEVEE_renderpasses_draw_debug(vedata); EEVEE_volumes_free_smoke_textures(); @@ -525,8 +460,7 @@ DrawEngineType draw_engine_eevee_type = { &eevee_cache_init, &EEVEE_cache_populate, &eevee_cache_finish, - &eevee_draw_background, - NULL, /* Everything is drawn in the background pass (see comment on function) */ + &eevee_draw_scene, &eevee_view_update, &eevee_id_update, &eevee_render_to_image, |