[Bf-blender-cvs] [9a207356caf] tmp-overlay-engine: Cleanup: Naming conventions, code clarity mentionned in review
Clément Foucault
noreply at git.blender.org
Tue Nov 26 12:45:31 CET 2019
Commit: 9a207356caf09f78e2857d620b4c77d00172f145
Author: Clément Foucault
Date: Tue Nov 26 13:15:39 2019 +0100
Branches: tmp-overlay-engine
https://developer.blender.org/rB9a207356caf09f78e2857d620b4c77d00172f145
Cleanup: Naming conventions, code clarity mentionned in review
===================================================================
M source/blender/draw/engines/overlay/overlay_antialiasing.c
M source/blender/draw/engines/overlay/overlay_engine.c
M source/blender/draw/engines/overlay/overlay_extra.c
M source/blender/draw/engines/overlay/overlay_metaball.c
M source/blender/draw/engines/overlay/overlay_motion_path.c
M source/blender/draw/engines/overlay/overlay_outline.c
M source/blender/draw/engines/overlay/overlay_private.h
M source/blender/draw/engines/overlay/overlay_shader.c
M source/blender/draw/engines/overlay/shaders/edit_lattice_wire_vert.glsl
M source/blender/draw/engines/overlay/shaders/edit_mesh_geom.glsl
M source/blender/draw/engines/overlay/shaders/edit_particle_strand_vert.glsl
M source/blender/draw/engines/overlay/shaders/wireframe_geom.glsl
M source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl
M source/blender/draw/intern/draw_cache_impl_lattice.c
M source/blender/draw/intern/shaders/common_view_lib.glsl
M source/blender/gpu/intern/gpu_shader.c
===================================================================
diff --git a/source/blender/draw/engines/overlay/overlay_antialiasing.c b/source/blender/draw/engines/overlay/overlay_antialiasing.c
index b7edc4c7800..d79633c14f8 100644
--- a/source/blender/draw/engines/overlay/overlay_antialiasing.c
+++ b/source/blender/draw/engines/overlay/overlay_antialiasing.c
@@ -26,6 +26,12 @@
#include "overlay_private.h"
+void OVERLAY_antialiasing_reset(OVERLAY_Data *vedata)
+{
+ OVERLAY_PrivateData *pd = vedata->stl->pd;
+ pd->antialiasing.sample = 0;
+}
+
void OVERLAY_antialiasing_init(OVERLAY_Data *vedata)
{
OVERLAY_FramebufferList *fbl = vedata->fbl;
@@ -102,7 +108,7 @@ void OVERLAY_antialiasing_init(OVERLAY_Data *vedata)
}
else {
/* FXAA */
- pd->antialiasing.sample = 0;
+ OVERLAY_antialiasing_reset(vedata);
/* Use default view */
pd->view_default = (DRWView *)DRW_view_default_get();
}
diff --git a/source/blender/draw/engines/overlay/overlay_engine.c b/source/blender/draw/engines/overlay/overlay_engine.c
index 2a400e48d9e..e0f3ea4b0b1 100644
--- a/source/blender/draw/engines/overlay/overlay_engine.c
+++ b/source/blender/draw/engines/overlay/overlay_engine.c
@@ -154,10 +154,10 @@ static void OVERLAY_cache_init(void *vedata)
OVERLAY_wireframe_cache_init(vedata);
}
-BLI_INLINE OVERLAY_DupliData *OVERLAY_duplidata_get(Object *ob, void *vedata, bool *init)
+BLI_INLINE OVERLAY_DupliData *OVERLAY_duplidata_get(Object *ob, void *vedata, bool *do_init)
{
OVERLAY_DupliData **dupli_data = (OVERLAY_DupliData **)DRW_duplidata_get(vedata);
- *init = false;
+ *do_init = false;
if (!ELEM(ob->type, OB_MESH, OB_SURF, OB_LATTICE, OB_CURVE, OB_FONT)) {
return NULL;
}
@@ -165,11 +165,11 @@ BLI_INLINE OVERLAY_DupliData *OVERLAY_duplidata_get(Object *ob, void *vedata, bo
if (dupli_data) {
if (*dupli_data == NULL) {
*dupli_data = MEM_callocN(sizeof(OVERLAY_DupliData), __func__);
- *init = true;
+ *do_init = true;
}
else if ((*dupli_data)->base_flag != ob->base_flag) {
/* Select state might have change, reinit. */
- *init = true;
+ *do_init = true;
}
return *dupli_data;
}
@@ -185,7 +185,7 @@ static void OVERLAY_cache_populate(void *vedata, Object *ob)
const bool renderable = DRW_object_is_renderable(ob);
const bool in_pose_mode = ob->type == OB_ARMATURE && OVERLAY_armature_is_pose_mode(ob, draw_ctx);
const bool in_edit_mode = BKE_object_is_in_editmode(ob);
- const bool in_part_edit_mode = ob->mode == OB_MODE_PARTICLE_EDIT;
+ const bool in_particle_edit_mode = ob->mode == OB_MODE_PARTICLE_EDIT;
const bool in_paint_mode = (ob == draw_ctx->obact) &&
(draw_ctx->object_mode & OB_MODE_ALL_PAINT);
const bool in_sculpt_mode = (ob == draw_ctx->obact) && (ob->sculpt != NULL);
@@ -207,17 +207,17 @@ static void OVERLAY_cache_populate(void *vedata, Object *ob)
const bool draw_motion_paths = (pd->overlay.flag & V3D_OVERLAY_HIDE_MOTION_PATHS) == 0;
- bool init;
- OVERLAY_DupliData *dupli = OVERLAY_duplidata_get(ob, vedata, &init);
+ bool do_init;
+ OVERLAY_DupliData *dupli = OVERLAY_duplidata_get(ob, vedata, &do_init);
if (draw_facing) {
OVERLAY_facing_cache_populate(vedata, ob);
}
if (draw_wires) {
- OVERLAY_wireframe_cache_populate(vedata, ob, dupli, init);
+ OVERLAY_wireframe_cache_populate(vedata, ob, dupli, do_init);
}
if (draw_outlines) {
- OVERLAY_outline_cache_populate(vedata, ob, dupli, init);
+ OVERLAY_outline_cache_populate(vedata, ob, dupli, do_init);
}
if (draw_bone_selection) {
OVERLAY_pose_cache_populate(vedata, ob);
@@ -266,7 +266,7 @@ static void OVERLAY_cache_populate(void *vedata, Object *ob)
break;
}
}
- else if (in_part_edit_mode) {
+ else if (in_particle_edit_mode) {
OVERLAY_edit_particle_cache_populate(vedata, ob);
}
@@ -351,8 +351,6 @@ static void OVERLAY_cache_finish(void *vedata)
OVERLAY_image_cache_finish(vedata);
}
-#include "GPU_draw.h"
-
static void OVERLAY_draw_scene(void *vedata)
{
OVERLAY_Data *data = vedata;
@@ -394,6 +392,7 @@ static void OVERLAY_draw_scene(void *vedata)
OVERLAY_wireframe_in_front_draw(vedata);
OVERLAY_armature_in_front_draw(vedata);
OVERLAY_extra_in_front_draw(vedata);
+ OVERLAY_metaball_in_front_draw(vedata);
OVERLAY_image_in_front_draw(vedata);
if (DRW_state_is_fbo()) {
@@ -460,9 +459,7 @@ static void OVERLAY_view_update(void *vedata)
{
OVERLAY_Data *data = vedata;
if (data->stl && data->stl->pd) {
- OVERLAY_PrivateData *pd = data->stl->pd;
- /* Reset TAA */
- pd->antialiasing.sample = 0;
+ OVERLAY_antialiasing_reset(data);
}
}
diff --git a/source/blender/draw/engines/overlay/overlay_extra.c b/source/blender/draw/engines/overlay/overlay_extra.c
index e32fdc20e34..a1ce8de8b5d 100644
--- a/source/blender/draw/engines/overlay/overlay_extra.c
+++ b/source/blender/draw/engines/overlay/overlay_extra.c
@@ -80,38 +80,6 @@ void OVERLAY_extra_cache_init(OVERLAY_Data *vedata)
DRWPass *extra_ps = *p_extra_ps;
-#if 0
- /* Wires (for loose edges) */
- sh = GPU_shader_get_builtin_shader_with_config(GPU_SHADER_3D_UNIFORM_COLOR, draw_ctx->sh_cfg);
- cb->wire = shgroup_wire(cb->non_meshes, gb->colorWire, sh, draw_ctx->sh_cfg);
- cb->wire_select = shgroup_wire(cb->non_meshes, gb->colorSelect, sh, draw_ctx->sh_cfg);
- cb->wire_transform = shgroup_wire(cb->non_meshes, gb->colorTransform, sh, draw_ctx->sh_cfg);
- cb->wire_active = shgroup_wire(cb->non_meshes, gb->colorActive, sh, draw_ctx->sh_cfg);
- /* Wire (duplicator) */
- cb->wire_dupli = shgroup_wire(cb->non_meshes, gb->colorDupli, sh, draw_ctx->sh_cfg);
- cb->wire_dupli_select = shgroup_wire(
- cb->non_meshes, gb->colorDupliSelect, sh, draw_ctx->sh_cfg);
-
- /* Points (loose points) */
- sh = sh_data->loose_points;
- cb->points = shgroup_points(cb->non_meshes, gb->colorWire, sh, draw_ctx->sh_cfg);
- cb->points_select = shgroup_points(cb->non_meshes, gb->colorSelect, sh, draw_ctx->sh_cfg);
- cb->points_transform = shgroup_points(
- cb->non_meshes, gb->colorTransform, sh, draw_ctx->sh_cfg);
- cb->points_active = shgroup_points(cb->non_meshes, gb->colorActive, sh, draw_ctx->sh_cfg);
- /* Points (duplicator) */
- cb->points_dupli = shgroup_points(cb->non_meshes, gb->colorDupli, sh, draw_ctx->sh_cfg);
- cb->points_dupli_select = shgroup_points(
- cb->non_meshes, gb->colorDupliSelect, sh, draw_ctx->sh_cfg);
- DRW_shgroup_state_disable(cb->points, DRW_STATE_BLEND_ALPHA);
- DRW_shgroup_state_disable(cb->points_select, DRW_STATE_BLEND_ALPHA);
- DRW_shgroup_state_disable(cb->points_transform, DRW_STATE_BLEND_ALPHA);
- DRW_shgroup_state_disable(cb->points_active, DRW_STATE_BLEND_ALPHA);
- DRW_shgroup_state_disable(cb->points_dupli, DRW_STATE_BLEND_ALPHA);
- DRW_shgroup_state_disable(cb->points_dupli_select, DRW_STATE_BLEND_ALPHA);
-
-#endif
-
#define BUF_INSTANCE DRW_shgroup_call_buffer_instance
#define BUF_POINT(grp, format) DRW_shgroup_call_buffer(grp, format, GPU_PRIM_POINTS)
#define BUF_LINE(grp, format) DRW_shgroup_call_buffer(grp, format, GPU_PRIM_LINES)
@@ -270,11 +238,7 @@ void OVERLAY_extra_loose_points(OVERLAY_ExtraCallBuffers *cb,
const float color[4])
{
float draw_mat[4][4];
- copy_m4_m4(draw_mat, mat);
- draw_mat[0][3] = color[0];
- draw_mat[1][3] = color[1];
- draw_mat[2][3] = color[2];
- draw_mat[3][3] = color[3];
+ pack_v4_in_mat4(draw_mat, mat, color);
DRW_shgroup_call_obmat(cb->extra_loose_points, geom, draw_mat);
}
@@ -284,11 +248,7 @@ void OVERLAY_extra_wire(OVERLAY_ExtraCallBuffers *cb,
const float color[4])
{
float draw_mat[4][4];
- copy_m4_m4(draw_mat, mat);
- draw_mat[0][3] = color[0];
- draw_mat[1][3] = color[1];
- draw_mat[2][3] = color[2];
- draw_mat[3][3] = color[3];
+ pack_v4_in_mat4(draw_mat, mat, color);
DRW_shgroup_call_obmat(cb->extra_wire, geom, draw_mat);
}
@@ -303,8 +263,7 @@ void OVERLAY_empty_shape(OVERLAY_ExtraCallBuffers *cb,
const float color[4])
{
float instdata[4][4];
- copy_m4_m4(instdata, mat);
- instdata[3][3] = draw_size;
+ pack_fl_in_mat4(instdata, mat, draw_size);
switch (draw_type) {
case OB_PLAINAXES:
@@ -345,9 +304,7 @@ void OVERLAY_empty_cache_populate(OVERLAY_Data *vedata, Object *ob)
OVERLAY_ExtraCallBuffers *cb = OVERLAY_extra_call_buffer_get(vedata, ob);
const DRWContextState *draw_ctx = DRW_context_state_get();
ViewLayer *view_layer = draw_ctx->view_layer;
-
float *color;
- DRW_object_wire_theme_get(ob, view_layer, &color);
switch (ob->empty_drawtype) {
case OB_PLAINAXES:
@@ -357,6 +314,7 @@ void OVERLAY_empty_cache_populate(OVERLAY_Data *vedata, Object *ob)
case OB_EMPTY_SPHERE:
case OB_EMPTY_CONE:
case OB_ARROWS:
+ DRW_object_wire_theme_get(ob, view_layer, &color);
OVERLAY_empty_shape(cb, ob->obmat, ob->empty_drawsize, ob->empty_drawtype, color);
break;
case OB_EMPTY_IMAGE:
@@ -377,15 +335,7 @@ static void OVERLAY_bounds(
BoundBox *bb = BKE_object_boundbox_get(ob);
- if (!ELEM(ob->type,
- OB_MESH,
- OB_CURVE,
- OB_SURF,
- OB_FONT,
- OB_MBALL,
- OB_ARMATURE,
- OB_LATTICE,
- OB_GPENCIL)) {
+ if (bb == NULL) {
const float min[3] = {-1.0f, -1.0f, -1.0f}, max[3] = {1.0f, 1.0f, 1.0f};
bb = &bb_local;
BKE_boundbox_init_from_minmax(bb, min, max);
diff --git a/source/blender/draw/engines/overlay/overlay_metaball.c b/source/blender/draw/engines/overlay/overlay_metaball.c
index 74201d5b389..34a44f0c4fa 100644
--- a/source/blender/draw/engines/overlay/overlay_metaball.c
+++ b/source/blender/draw/engines/overlay/overlay_metaball.c
@@ -132,5 +132,11 @@ void OVERLAY_metaball_draw(OVERLAY_Data *vedata)
OVERLAY_PassList *psl = vedata->psl;
DRW_draw_pass(psl->metaball_ps[0]);
+}
+
+void OVERLAY_metaball_in_front_draw(OVERLAY_Data *vedata)
+{
+ OVERLAY_PassList *psl = vedata->psl;
+
DRW_draw_pass(psl->metaball_ps[1]);
}
diff --git a/source/blender/draw/engines/overlay/overlay_motion_path.c b/s
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list