From 9dea69149ab54e59c8c3e2d341d0fc73c7a99527 Mon Sep 17 00:00:00 2001 From: Antonioya Date: Wed, 26 Jun 2019 13:28:26 +0200 Subject: DRW: New function to retry stencil_mask value This function is a workaround to use the stencil in grease pencil and reduce the number of clears. Reviewed by @fclem. Note: This function will be removed when draw manager supports stencil clearing by group. --- source/blender/draw/intern/DRW_render.h | 4 ++++ source/blender/draw/intern/draw_manager_data.c | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h index aae1ad42860..392362e73c5 100644 --- a/source/blender/draw/intern/DRW_render.h +++ b/source/blender/draw/intern/DRW_render.h @@ -531,7 +531,11 @@ void DRW_shgroup_uniform_float_copy(DRWShadingGroup *shgroup, const char *name, void DRW_shgroup_uniform_vec2_copy(DRWShadingGroup *shgroup, const char *name, const float *value); bool DRW_shgroup_is_empty(DRWShadingGroup *shgroup); + +/* TODO: workaround functions waiting for the clearing operation to be available inside the + * shgroups. */ DRWShadingGroup *DRW_shgroup_get_next(DRWShadingGroup *shgroup); +uint DRW_shgroup_stencil_mask_get(DRWShadingGroup *shgroup); /* Passes */ DRWPass *DRW_pass_create(const char *name, DRWState state); diff --git a/source/blender/draw/intern/draw_manager_data.c b/source/blender/draw/intern/draw_manager_data.c index 10d16021b27..99ab25645d2 100644 --- a/source/blender/draw/intern/draw_manager_data.c +++ b/source/blender/draw/intern/draw_manager_data.c @@ -1003,6 +1003,13 @@ DRWShadingGroup *DRW_shgroup_get_next(DRWShadingGroup *shgroup) return shgroup->next; } +/* This is a workaround function waiting for the clearing operation to be available inside the + * shgroups. */ +uint DRW_shgroup_stencil_mask_get(DRWShadingGroup *shgroup) +{ + return shgroup->stencil_mask; +} + DRWShadingGroup *DRW_shgroup_create_sub(DRWShadingGroup *shgroup) { DRWShadingGroup *shgroup_new = BLI_memblock_alloc(DST.vmempool->shgroups); -- cgit v1.2.3