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:
authorClément Foucault <foucault.clem@gmail.com>2019-05-01 11:51:27 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-05-01 13:09:18 +0300
commit47717060af0944560ebed11e6995c8536ff689c7 (patch)
tree00691a5a094dc4c1d2fa1d0cdd14de2ad9542c9a /source/blender/draw/intern/draw_view.c
parente6705fad3393867d2e3fea040f61931edf9d5709 (diff)
DRW: Draw checkerboard alpha pattern for Cycles
Add checkerboard alpha pattern like it was in 2.79
Diffstat (limited to 'source/blender/draw/intern/draw_view.c')
-rw-r--r--source/blender/draw/intern/draw_view.c29
1 files changed, 23 insertions, 6 deletions
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);
}
}