[Bf-blender-cvs] [641828bf85] clay-engine: Code Cleanup
Clément Foucault
noreply at git.blender.org
Wed Feb 1 00:29:27 CET 2017
Commit: 641828bf856c0110f05117d66935dbea5383b18d
Author: Clément Foucault
Date: Tue Jan 31 16:15:06 2017 +0100
Branches: clay-engine
https://developer.blender.org/rB641828bf856c0110f05117d66935dbea5383b18d
Code Cleanup
===================================================================
M source/blender/draw/intern/draw_mode_pass.c
===================================================================
diff --git a/source/blender/draw/intern/draw_mode_pass.c b/source/blender/draw/intern/draw_mode_pass.c
index 2156a860c5..41b119e35c 100644
--- a/source/blender/draw/intern/draw_mode_pass.c
+++ b/source/blender/draw/intern/draw_mode_pass.c
@@ -38,12 +38,12 @@
/* Store list of shading group for easy access*/
/* Empties */
-static DRWShadingGroup *empty_wire;
-static DRWShadingGroup *empty_active;
-static DRWShadingGroup *empty_select;
-static DRWShadingGroup *empty_transform;
-static DRWShadingGroup *empty_group;
-static DRWShadingGroup *empty_group_active;
+static DRWShadingGroup *plain_axes_wire;
+static DRWShadingGroup *plain_axes_active;
+static DRWShadingGroup *plain_axes_select;
+static DRWShadingGroup *plain_axes_transform;
+static DRWShadingGroup *plain_axes_group;
+static DRWShadingGroup *plain_axes_group_active;
/* Helpers */
static DRWShadingGroup *relationship_lines;
@@ -53,6 +53,17 @@ static DRWShadingGroup *center_active;
static DRWShadingGroup *center_selected;
static DRWShadingGroup *center_deselected;
+static DRWShadingGroup *shgroup_instance_uniform_color(DRWPass *pass, float color[4])
+{
+ GPUShader *sh_inst = GPU_shader_get_builtin_shader(GPU_SHADER_3D_UNIFORM_COLOR_INSTANCE);
+
+ DRWShadingGroup *grp = DRW_shgroup_create(sh_inst, pass);
+ DRW_shgroup_uniform_vec4(grp, "color", color, 1);
+ DRW_shgroup_dyntype_set(grp, DRW_DYN_INSTANCE);
+
+ return grp;
+}
+
/* This Function setup the passes needed for the mode rendering.
* The passes are populated by the rendering engine using the DRW_shgroup_* functions. */
void DRW_pass_setup_common(DRWPass **wire_overlay, DRWPass **wire_outline, DRWPass **non_meshes, DRWPass **ob_center)
@@ -96,7 +107,6 @@ void DRW_pass_setup_common(DRWPass **wire_overlay, DRWPass **wire_outline, DRWPa
*non_meshes = DRW_pass_create("Non Meshes Pass", state);
GPUShader *sh = GPU_shader_get_builtin_shader(GPU_SHADER_3D_UNIFORM_COLOR);
- GPUShader *sh_inst = GPU_shader_get_builtin_shader(GPU_SHADER_3D_UNIFORM_COLOR_INSTANCE);
/* Solid Wires */
grp = DRW_shgroup_create(sh, *non_meshes);
@@ -105,37 +115,12 @@ void DRW_pass_setup_common(DRWPass **wire_overlay, DRWPass **wire_outline, DRWPa
grp = DRW_shgroup_create(sh, *non_meshes);
/* Empties */
- {
- grp = DRW_shgroup_create(sh_inst, *non_meshes);
- DRW_shgroup_uniform_vec4(grp, "color", colorEmpty, 1);
- DRW_shgroup_dyntype_set(grp, DRW_DYN_INSTANCE);
- empty_wire = grp;
-
- grp = DRW_shgroup_create(sh_inst, *non_meshes);
- DRW_shgroup_uniform_vec4(grp, "color", colorActive, 1);
- DRW_shgroup_dyntype_set(grp, DRW_DYN_INSTANCE);
- empty_active = grp;
-
- grp = DRW_shgroup_create(sh_inst, *non_meshes);
- DRW_shgroup_uniform_vec4(grp, "color", colorSelect, 1);
- DRW_shgroup_dyntype_set(grp, DRW_DYN_INSTANCE);
- empty_select = grp;
-
- grp = DRW_shgroup_create(sh_inst, *non_meshes);
- DRW_shgroup_uniform_vec4(grp, "color", colorTransform, 1);
- DRW_shgroup_dyntype_set(grp, DRW_DYN_INSTANCE);
- empty_transform = grp;
-
- grp = DRW_shgroup_create(sh_inst, *non_meshes);
- DRW_shgroup_uniform_vec4(grp, "color", colorGroup, 1);
- DRW_shgroup_dyntype_set(grp, DRW_DYN_INSTANCE);
- empty_group = grp;
-
- grp = DRW_shgroup_create(sh_inst, *non_meshes);
- DRW_shgroup_uniform_vec4(grp, "color", colorGroupActive, 1);
- DRW_shgroup_dyntype_set(grp, DRW_DYN_INSTANCE);
- empty_group_active = grp;
- }
+ plain_axes_wire = shgroup_instance_uniform_color(*non_meshes, colorEmpty);
+ plain_axes_active = shgroup_instance_uniform_color(*non_meshes, colorActive);
+ plain_axes_select = shgroup_instance_uniform_color(*non_meshes, colorSelect);
+ plain_axes_transform = shgroup_instance_uniform_color(*non_meshes, colorTransform);
+ plain_axes_group = shgroup_instance_uniform_color(*non_meshes, colorGroup);
+ plain_axes_group_active = shgroup_instance_uniform_color(*non_meshes, colorGroupActive);
/* Stipple Wires */
grp = DRW_shgroup_create(sh, *non_meshes);
@@ -332,29 +317,31 @@ static int draw_object_wire_theme(Object *ob)
return theme_id;
}
-void DRW_shgroup_non_meshes(DRWPass *UNUSED(non_meshes), Object *ob)
+static void DRW_draw_lamp(DRWPass *non_meshes, Object *ob)
+{
+ /* TODO */
+}
+
+static void DRW_draw_empty(Object *ob)
{
struct Batch *geom;
DRWShadingGroup *grp;
int theme_id = draw_object_wire_theme(ob);
- switch (ob->type) {
- case OB_LAMP:
- case OB_CAMERA:
- case OB_EMPTY:
- default:
+ switch (ob->empty_drawtype) {
+ case OB_PLAINAXES:
if (theme_id == TH_ACTIVE)
- grp = empty_active;
+ grp = plain_axes_active;
else if (theme_id == TH_SELECT)
- grp = empty_select;
+ grp = plain_axes_select;
else if (theme_id == TH_GROUP_ACTIVE)
- grp = empty_group_active;
+ grp = plain_axes_group_active;
else if (theme_id == TH_GROUP)
- grp = empty_group;
+ grp = plain_axes_group;
else if (theme_id == TH_TRANSFORM)
- grp = empty_transform;
+ grp = plain_axes_transform;
else
- grp = empty_wire;
+ grp = plain_axes_wire;
geom = DRW_cache_plain_axes_get();
DRW_shgroup_call_add(grp, geom, ob->obmat);
@@ -362,6 +349,19 @@ void DRW_shgroup_non_meshes(DRWPass *UNUSED(non_meshes), Object *ob)
}
}
+void DRW_shgroup_non_meshes(DRWPass *UNUSED(non_meshes), Object *ob)
+{
+
+ switch (ob->type) {
+ case OB_LAMP:
+ case OB_CAMERA:
+ case OB_EMPTY:
+ DRW_draw_empty(ob);
+ default:
+ break;
+ }
+}
+
void DRW_shgroup_relationship_lines(DRWPass *UNUSED(non_meshes), Object *ob)
{
if (ob->parent) {
More information about the Bf-blender-cvs
mailing list