From 47717060af0944560ebed11e6995c8536ff689c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Wed, 1 May 2019 10:51:27 +0200 Subject: DRW: Draw checkerboard alpha pattern for Cycles Add checkerboard alpha pattern like it was in 2.79 --- source/blender/draw/intern/draw_view.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) (limited to 'source/blender/draw/intern/draw_view.c') diff --git a/source/blender/draw/intern/draw_view.c b/source/blender/draw/intern/draw_view.c index 1543e381d8c..7aa2e007f79 100644 --- a/source/blender/draw/intern/draw_view.c +++ b/source/blender/draw/intern/draw_view.c @@ -61,19 +61,35 @@ void DRW_draw_region_info(void) /* ************************* Background ************************** */ -void DRW_draw_background(void) +void DRW_draw_background(bool do_alpha_checker) { /* Just to make sure */ glDepthMask(GL_TRUE); glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); glStencilMask(0xFF); - if (UI_GetThemeValue(TH_SHOW_BACK_GRAD)) { + if (do_alpha_checker) { + /* Transparent render, do alpha checker. */ + GPU_depth_test(false); + + GPU_matrix_push(); + GPU_matrix_identity_set(); + GPU_matrix_identity_projection_set(); + + imm_draw_box_checker_2d(-1.0f, -1.0f, 1.0f, 1.0f); + + GPU_matrix_pop(); + + GPU_clear(GPU_DEPTH_BIT | GPU_STENCIL_BIT); + + GPU_depth_test(true); + } + else if (UI_GetThemeValue(TH_SHOW_BACK_GRAD)) { float m[4][4]; unit_m4(m); /* Gradient background Color */ - glDisable(GL_DEPTH_TEST); + GPU_depth_test(false); GPUVertFormat *format = immVertexFormat(); uint pos = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT); @@ -104,14 +120,15 @@ void DRW_draw_background(void) GPU_matrix_pop(); - glClear(GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); + GPU_clear(GPU_DEPTH_BIT | GPU_STENCIL_BIT); - glEnable(GL_DEPTH_TEST); + GPU_depth_test(true); } else { /* Solid background Color */ UI_ThemeClearColorAlpha(TH_BACK, 1.0f); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); + + GPU_clear(GPU_COLOR_BIT | GPU_DEPTH_BIT | GPU_STENCIL_BIT); } } -- cgit v1.2.3