[Bf-blender-cvs] [c4e4b6872a9] master: DRW: Fix issue introduce in removal of DRW_STATE_POINT
Clément Foucault
noreply at git.blender.org
Tue May 28 17:19:50 CEST 2019
Commit: c4e4b6872a918e8e58ff2d01306f96a17c65b9f5
Author: Clément Foucault
Date: Tue May 28 17:18:39 2019 +0200
Branches: master
https://developer.blender.org/rBc4e4b6872a918e8e58ff2d01306f96a17c65b9f5
DRW: Fix issue introduce in removal of DRW_STATE_POINT
Fix issue raised by mano-wii in rB97d22e12b521
Fix T65050 knife tool snapping indicator not visible
===================================================================
M source/blender/draw/intern/DRW_render.h
M source/blender/draw/intern/draw_manager_data.c
M source/blender/draw/intern/draw_manager_exec.c
===================================================================
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h
index 09144e0ceeb..406635297ab 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -350,6 +350,8 @@ typedef enum {
DRW_STATE_CLIP_PLANES = (1 << 22),
DRW_STATE_WIRE_SMOOTH = (1 << 23),
DRW_STATE_FIRST_VERTEX_CONVENTION = (1 << 24),
+ /** DO NOT USE. Assumed always enabled. Only used internally. */
+ DRW_STATE_PROGRAM_POINT_SIZE = (1 << 25),
} DRWState;
#define DRW_STATE_DEFAULT \
diff --git a/source/blender/draw/intern/draw_manager_data.c b/source/blender/draw/intern/draw_manager_data.c
index c3b905323cc..5674ebd3a60 100644
--- a/source/blender/draw/intern/draw_manager_data.c
+++ b/source/blender/draw/intern/draw_manager_data.c
@@ -1541,7 +1541,7 @@ void DRW_view_persmat_get(const DRWView *view, float mat[4][4], bool inverse)
DRWPass *DRW_pass_create(const char *name, DRWState state)
{
DRWPass *pass = BLI_memblock_alloc(DST.vmempool->passes);
- pass->state = state;
+ pass->state = state | DRW_STATE_PROGRAM_POINT_SIZE;
if (((G.debug_value > 20) && (G.debug_value < 30)) || (G.debug & G_DEBUG)) {
BLI_strncpy(pass->name, name, MAX_PASS_NAME);
}
@@ -1564,7 +1564,7 @@ bool DRW_pass_is_empty(DRWPass *pass)
void DRW_pass_state_set(DRWPass *pass, DRWState state)
{
- pass->state = state;
+ pass->state = state | DRW_STATE_PROGRAM_POINT_SIZE;
}
void DRW_pass_state_add(DRWPass *pass, DRWState state)
diff --git a/source/blender/draw/intern/draw_manager_exec.c b/source/blender/draw/intern/draw_manager_exec.c
index ae0239a7e49..85490e2f81d 100644
--- a/source/blender/draw/intern/draw_manager_exec.c
+++ b/source/blender/draw/intern/draw_manager_exec.c
@@ -251,6 +251,19 @@ void drw_state_set(DRWState state)
}
}
+ /* Program Points Size */
+ {
+ int test;
+ if ((test = CHANGED_TO(DRW_STATE_PROGRAM_POINT_SIZE))) {
+ if (test == 1) {
+ GPU_program_point_size(true);
+ }
+ else {
+ GPU_program_point_size(false);
+ }
+ }
+ }
+
/* Stencil */
{
DRWState test;
@@ -355,7 +368,6 @@ void DRW_state_reset(void)
DRW_state_reset_ex(DRW_STATE_DEFAULT);
GPU_point_size(5);
- GPU_program_point_size(true);
/* Reset blending function */
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
More information about the Bf-blender-cvs
mailing list