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_renderpasses.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_renderpasses.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_renderpasses.c | 58 |
1 files changed, 57 insertions, 1 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_renderpasses.c b/source/blender/draw/engines/eevee/eevee_renderpasses.c index 927ff70a52b..e3cdf98925c 100644 --- a/source/blender/draw/engines/eevee/eevee_renderpasses.c +++ b/source/blender/draw/engines/eevee/eevee_renderpasses.c @@ -23,6 +23,10 @@ #include "DRW_engine.h" #include "DRW_render.h" +#include "draw_color_management.h" /* TODO remove dependency. */ + +#include "BKE_global.h" /* for G.debug_value */ + #include "BLI_string_utils.h" #include "DEG_depsgraph_query.h" @@ -239,6 +243,7 @@ void EEVEE_renderpasses_draw(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) bool is_valid = (render_pass & EEVEE_RENDERPASSES_ALL) > 0; bool needs_color_transfer = (render_pass & EEVEE_RENDERPASSES_COLOR_PASS) > 0 && DRW_state_is_opengl_render(); + UNUSED_VARS(needs_color_transfer); /* When SSS isn't available, but the pass is requested, we mark it as invalid */ if ((render_pass & EEVEE_RENDERPASSES_SUBSURFACE) != 0 && @@ -261,7 +266,7 @@ void EEVEE_renderpasses_draw(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) if (is_valid) { EEVEE_renderpasses_postprocess(sldata, vedata, render_pass); GPU_framebuffer_bind(dfbl->default_fb); - DRW_transform_to_display(txl->renderpass, needs_color_transfer, false); + DRW_transform_none(txl->renderpass); } else { /* Draw state is not valid for this pass, clear the buffer */ @@ -276,3 +281,54 @@ void EEVEE_renderpasses_free(void) { DRW_SHADER_FREE_SAFE(e_data.postprocess_sh); } + +void EEVEE_renderpasses_draw_debug(EEVEE_Data *vedata) +{ + EEVEE_TextureList *txl = vedata->txl; + EEVEE_StorageList *stl = vedata->stl; + EEVEE_EffectsInfo *effects = stl->effects; + + GPUTexture *tx = NULL; + /* Debug : Output buffer to view. */ + switch (G.debug_value) { + case 1: + tx = txl->maxzbuffer; + break; + case 2: + tx = effects->ssr_pdf_output; + break; + case 3: + tx = effects->ssr_normal_input; + break; + case 4: + tx = effects->ssr_specrough_input; + break; + case 5: + tx = txl->color_double_buffer; + break; + case 6: + tx = effects->gtao_horizons; + break; + case 7: + tx = effects->gtao_horizons; + break; + case 8: + tx = effects->sss_irradiance; + break; + case 9: + tx = effects->sss_radius; + break; + case 10: + tx = effects->sss_albedo; + break; + case 11: + tx = effects->velocity_tx; + break; + default: + break; + } + + if (tx) { + DRW_transform_none(tx); + } +}
\ No newline at end of file |