Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_renderpasses.c')
-rw-r--r--source/blender/draw/engines/eevee/eevee_renderpasses.c58
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