[Bf-blender-cvs] [d886fc0f40a] tmp-b28-motionpath-drawing: Merge branch 'blender2.8' into tmp-b28-motionpath-drawing

Joshua Leung noreply at git.blender.org
Fri Jun 1 12:21:20 CEST 2018


Commit: d886fc0f40a9eb4512e72a37a8e642f9061965d3
Author: Joshua Leung
Date:   Fri Jun 1 12:19:59 2018 +0200
Branches: tmp-b28-motionpath-drawing
https://developer.blender.org/rBd886fc0f40a9eb4512e72a37a8e642f9061965d3

Merge branch 'blender2.8' into tmp-b28-motionpath-drawing

# Conflicts:
#	source/blender/draw/intern/DRW_render.h
#	source/blender/draw/intern/draw_manager.c
#	source/blender/draw/intern/draw_manager_data.c
#	source/blender/makesdna/DNA_view3d_types.h
#	source/blender/makesrna/intern/rna_space.c

===================================================================



===================================================================

diff --cc release/scripts/startup/bl_ui/space_view3d.py
index 860333a21ad,542e003c4a9..721fc185631
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@@ -3557,8 -3593,8 +3593,9 @@@ class VIEW3D_PT_overlay(Panel)
          col.prop(overlay, "show_outline_selected")
          col.prop(overlay, "show_all_objects_origin")
          col.prop(overlay, "show_relationship_lines")
 +        col.prop(overlay, "show_motion_paths")
          col.prop(overlay, "show_face_orientation")
+         col.prop(overlay, "show_wireframes")
          col.prop(overlay, "show_backface_culling")
  
          col = layout.column()
diff --cc source/blender/draw/intern/DRW_render.h
index 6756a8d7cc8,44fb71a231b..081bae944d8
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@@ -336,9 -344,12 +344,14 @@@ void DRW_shgroup_instance_batch(DRWShad
  
  void DRW_shgroup_free(struct DRWShadingGroup *shgroup);
  void DRW_shgroup_call_add(DRWShadingGroup *shgroup, struct Gwn_Batch *geom, float (*obmat)[4]);
 +void DRW_shgroup_call_range_add(
 +        DRWShadingGroup *shgroup, struct Gwn_Batch *geom, float (*obmat)[4], uint v_sta, uint v_count);
- void DRW_shgroup_call_object_add(DRWShadingGroup *shgroup, struct Gwn_Batch *geom, struct Object *ob);
+ void DRW_shgroup_call_procedural_points_add(DRWShadingGroup *shgroup, unsigned int point_count, float (*obmat)[4]);
+ void DRW_shgroup_call_procedural_lines_add(DRWShadingGroup *shgroup, unsigned int line_count, float (*obmat)[4]);
+ void DRW_shgroup_call_procedural_triangles_add(DRWShadingGroup *shgroup, unsigned int tria_count, float (*obmat)[4]);
+ void DRW_shgroup_call_object_add_ex(DRWShadingGroup *shgroup, struct Gwn_Batch *geom, struct Object *ob, bool bypass_culling);
+ #define DRW_shgroup_call_object_add(shgroup, geom, ob) DRW_shgroup_call_object_add_ex(shgroup, geom, ob, false)
+ #define DRW_shgroup_call_object_add_no_cull(shgroup, geom, ob) DRW_shgroup_call_object_add_ex(shgroup, geom, ob, true)
  void DRW_shgroup_call_object_add_with_callback(
          DRWShadingGroup *shgroup, struct Gwn_Batch *geom, struct Object *ob,
          DRWCallVisibilityFn *callback, void *user_data);
diff --cc source/blender/draw/intern/draw_manager.c
index 2517df6f876,99fb14246bb..3bd44a2bdb0
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@@ -1337,9 -1345,9 +1347,11 @@@ void DRW_draw_render_loop_ex
  
  	DRW_state_reset();
  
+ 	drw_debug_draw();
+ 
 +	glDisable(GL_DEPTH_TEST);
  	drw_engines_draw_text();
 +	glEnable(GL_DEPTH_TEST);
  
  	if (DST.draw_ctx.evil_C) {
  		/* needed so manipulator isn't obscured */
diff --cc source/blender/draw/intern/draw_manager.h
index 09494d6e5e2,b24a8458de2..ae485ba9489
--- a/source/blender/draw/intern/draw_manager.h
+++ b/source/blender/draw/intern/draw_manager.h
@@@ -125,9 -126,9 +126,10 @@@ typedef struct DRWCallState 
  
  typedef enum {
  	DRW_CALL_SINGLE,                 /* A single batch */
 +	DRW_CALL_RANGE,                  /* Like single but only draw a range of vertices/indices. */
  	DRW_CALL_INSTANCES,              /* Draw instances without any instancing attribs. */
  	DRW_CALL_GENERATE,               /* Uses a callback to draw with any number of batches. */
+ 	DRW_CALL_PROCEDURAL,             /* Generate a drawcall without any Gwn_Batch. */
  } DRWCallType;
  
  typedef struct DRWCall {
diff --cc source/blender/draw/intern/draw_manager_data.c
index 02aa73be67b,25d720abc71..9b707a81761
--- a/source/blender/draw/intern/draw_manager_data.c
+++ b/source/blender/draw/intern/draw_manager_data.c
@@@ -366,30 -366,44 +366,62 @@@ void DRW_shgroup_call_add(DRWShadingGro
  	BLI_LINKS_APPEND(&shgroup->calls, call);
  }
  
 +void DRW_shgroup_call_range_add(DRWShadingGroup *shgroup, Gwn_Batch *geom, float (*obmat)[4], uint v_sta, uint v_count)
 +{
 +	BLI_assert(geom != NULL);
 +	BLI_assert(ELEM(shgroup->type, DRW_SHG_NORMAL, DRW_SHG_FEEDBACK_TRANSFORM));
 +	BLI_assert(v_count);
 +
 +	DRWCall *call = BLI_mempool_alloc(DST.vmempool->calls);
 +	call->state = drw_call_state_create(shgroup, obmat, NULL);
 +	call->type = DRW_CALL_RANGE;
 +	call->range.geometry = geom;
 +	call->range.start = v_sta;
 +	call->range.count = v_count;
 +#ifdef USE_GPU_SELECT
 +	call->select_id = DST.select_id;
 +#endif
 +
 +	BLI_LINKS_APPEND(&shgroup->calls, call);
 +}
 +
+ static void drw_shgroup_call_procedural_add_ex(
+         DRWShadingGroup *shgroup, Gwn_PrimType prim_type, uint vert_count, float (*obmat)[4])
+ {
+ 	BLI_assert(ELEM(shgroup->type, DRW_SHG_NORMAL, DRW_SHG_FEEDBACK_TRANSFORM));
+ 
+ 	DRWCall *call = BLI_mempool_alloc(DST.vmempool->calls);
+ 	call->state = drw_call_state_create(shgroup, obmat, NULL);
+ 	call->type = DRW_CALL_PROCEDURAL;
+ 	call->procedural.prim_type = prim_type;
+ 	call->procedural.vert_count = vert_count;
+ #ifdef USE_GPU_SELECT
+ 	call->select_id = DST.select_id;
+ #endif
+ 
+ 	BLI_LINKS_APPEND(&shgroup->calls, call);
+ }
+ 
+ void DRW_shgroup_call_procedural_points_add(DRWShadingGroup *shgroup, uint point_count, float (*obmat)[4])
+ {
+ 	drw_shgroup_call_procedural_add_ex(shgroup, GWN_PRIM_POINTS, point_count, obmat);
+ }
+ 
+ void DRW_shgroup_call_procedural_lines_add(DRWShadingGroup *shgroup, uint line_count, float (*obmat)[4])
+ {
+ 	drw_shgroup_call_procedural_add_ex(shgroup, GWN_PRIM_LINES, line_count * 2, obmat);
+ }
+ 
+ void DRW_shgroup_call_procedural_triangles_add(DRWShadingGroup *shgroup, uint tria_count, float (*obmat)[4])
+ {
+ 	drw_shgroup_call_procedural_add_ex(shgroup, GWN_PRIM_TRIS, tria_count * 3, obmat);
+ }
+ 
 -
  /* These calls can be culled and are optimized for redraw */
- void DRW_shgroup_call_object_add(DRWShadingGroup *shgroup, Gwn_Batch *geom, Object *ob)
+ void DRW_shgroup_call_object_add_ex(DRWShadingGroup *shgroup, Gwn_Batch *geom, Object *ob, bool bypass_culling)
  {
  	BLI_assert(geom != NULL);
 -	BLI_assert(shgroup->type == DRW_SHG_NORMAL);
 +	BLI_assert(ELEM(shgroup->type, DRW_SHG_NORMAL, DRW_SHG_FEEDBACK_TRANSFORM));
  
  	DRWCall *call = BLI_mempool_alloc(DST.vmempool->calls);
  	call->state = drw_call_state_object(shgroup, ob->obmat, ob);
diff --cc source/blender/makesdna/DNA_view3d_types.h
index 44973f17de9,7ce19b92aae..979b180e7e1
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@@ -351,7 -356,9 +356,10 @@@ enum 
  	V3D_OVERLAY_FACE_ORIENTATION  = (1 << 0),
  	V3D_OVERLAY_HIDE_CURSOR       = (1 << 1),
  	V3D_OVERLAY_BONE_SELECTION    = (1 << 2),
- 	V3D_OVERLAY_MOTION_PATHS      = (1 << 3),
+ 	V3D_OVERLAY_LOOK_DEV          = (1 << 3),
+ 	V3D_OVERLAY_WIREFRAMES        = (1 << 4),
+ 	V3D_OVERLAY_HIDE_TEXT         = (1 << 5),
++	V3D_OVERLAY_MOTION_PATHS      = (1 << 6),
  };
  
  /* View3DOverlay->edit_flag */
diff --cc source/blender/makesrna/intern/rna_space.c
index aeb84f7fcfb,845fe4f89bc..63b8b95de4b
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@@ -2415,12 -2489,18 +2489,24 @@@ static void rna_def_space_view3d_overla
  	RNA_def_property_ui_text(prop, "Bone Selection", "Show the Bone Selection Overlay");
  	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
  
 +	prop = RNA_def_property(srna, "show_motion_paths", PROP_BOOLEAN, PROP_NONE);
 +	RNA_def_property_boolean_sdna(prop, NULL, "overlay.flag", V3D_OVERLAY_MOTION_PATHS);
 +	RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
 +	RNA_def_property_ui_text(prop, "Motion Paths", "Show the Motion Paths Overlay");
 +	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
 +
+ 	prop = RNA_def_property(srna, "show_look_dev", PROP_BOOLEAN, PROP_NONE);
+ 	RNA_def_property_boolean_sdna(prop, NULL, "overlay.flag", V3D_OVERLAY_LOOK_DEV);
+ 	RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
+ 	RNA_def_property_ui_text(prop, "Look Dev", "Show Look Development Balls and Palette");
+ 	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
+ 
+ 	prop = RNA_def_property(srna, "show_wireframes", PROP_BOOLEAN, PROP_NONE);
+ 	RNA_def_property_boolean_sdna(prop, NULL, "overlay.flag", V3D_OVERLAY_WIREFRAMES);
+ 	RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
+ 	RNA_def_property_ui_text(prop, "Wireframes", "Show face edges wires");
+ 	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
+ 
  	prop = RNA_def_property(srna, "show_paint_wire", PROP_BOOLEAN, PROP_NONE);
  	RNA_def_property_boolean_sdna(prop, NULL, "overlay.paint_flag", V3D_OVERLAY_PAINT_WIRE);
  	RNA_def_property_ui_text(prop, "Show Wire", "Use wireframe display in painting modes");



More information about the Bf-blender-cvs mailing list