diff options
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 |