[Bf-blender-cvs] [6fb08f6fb39] custom-manipulators: Merge branch 'blender2.8' into custom-manipulators

Campbell Barton noreply at git.blender.org
Fri Mar 31 10:09:38 CEST 2017


Commit: 6fb08f6fb39167fb91c375c64d3ded4c52a12a1c
Author: Campbell Barton
Date:   Fri Mar 31 19:10:28 2017 +1100
Branches: custom-manipulators
https://developer.blender.org/rB6fb08f6fb39167fb91c375c64d3ded4c52a12a1c

Merge branch 'blender2.8' into custom-manipulators

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



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

diff --cc source/blender/editors/include/ED_view3d.h
index ff20f4f1015,b192a6c5c08..7643cacda51
--- a/source/blender/editors/include/ED_view3d.h
+++ b/source/blender/editors/include/ED_view3d.h
@@@ -340,10 -336,9 +340,10 @@@ int ED_view3d_scene_layer_set(int lay, 
  
  void *ED_view3d_mats_rv3d_backup(struct RegionView3D *rv3d);
  void  ED_view3d_mats_rv3d_restore(struct RegionView3D *rv3d, void *rv3dmat_pt);
 +void  ED_draw_object_facemap(struct Scene *scene, struct Object *ob, const float col[4], const int facemap);
  
  bool ED_view3d_context_activate(struct bContext *C);
- void ED_view3d_draw_offscreen_init(struct Scene *scene, struct View3D *v3d);
+ void ED_view3d_draw_offscreen_init(struct Scene *scene, struct SceneLayer *sl, struct View3D *v3d);
  void ED_view3d_draw_offscreen(
          struct Scene *scene, struct View3D *v3d, struct ARegion *ar, int winx, int winy, float viewmat[4][4],
          float winmat[4][4], bool do_bgpic, bool do_sky, bool is_persp, const char *viewname,
diff --cc source/blender/editors/space_view3d/drawarmature.c
index 2b5ca8fcbe3,752a2a6423c..ac3c123862e
--- a/source/blender/editors/space_view3d/drawarmature.c
+++ b/source/blender/editors/space_view3d/drawarmature.c
@@@ -1943,15 -1943,8 +1943,15 @@@ static void bone_matrix_translate_y(flo
  	add_v3_v3(mat[3], trans);
  }
  
 +BLI_INLINE bool pchan_is_draw_fmap_only(const Scene *scene, const bPoseChannel *pchan)
 +{
 +	return ((scene->basact && scene->basact->object->mode & OB_MODE_POSE) &&
 +	        (pchan->fmap != NULL) &&
 +	        (pchan->bone->flag & BONE_DRAW_FMAP_ONLY));
 +}
 +
  /* assumes object is Armature with pose */
- static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, BaseLegacy *base,
+ static void draw_pose_bones(Scene *scene, SceneLayer *sl, View3D *v3d, ARegion *ar, Base *base,
                              const short dt, const unsigned char ob_wire_col[4],
                              const bool do_const_color, const bool is_outline)
  {
diff --cc source/blender/editors/space_view3d/drawobject.c
index a6877fc1578,968d5706870..6a9a7b86def
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@@ -9296,52 -9297,7 +9298,53 @@@ static void draw_object_mesh_instance(S
  	if (dm) dm->release(dm);
  }
  
++
 +void ED_draw_object_facemap(Scene *scene, Object *ob, const float col[4], const int facemap)
 +{
 +	DerivedMesh *dm = NULL;
 +
 +	/* happens on undo */
 +	if (ob->type != OB_MESH || !ob->data)
 +		return;
 +
 +	dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH);
 +	if (!dm || !CustomData_has_layer(&dm->polyData, CD_FACEMAP))
 +		return;
 +
 +	DM_update_materials(dm, ob);
 +
 +	glFrontFace((ob->transflag & OB_NEG_SCALE) ? GL_CW : GL_CCW);
 +	
 +	/* add polygon offset so we draw above the original surface */
 +	glPolygonOffset(1.0, 1.0);
 +
 +	dm->totfmaps = BLI_listbase_count(&ob->fmaps);
 +
 +	GPU_facemap_setup(dm);
 +
 +	glColor4fv(col);
 +
 +	glPushAttrib(GL_ENABLE_BIT);
 +	glEnable(GL_BLEND);
 +	glDisable(GL_LIGHTING);
 +
 +	/* always draw using backface culling */
 +	glEnable(GL_CULL_FACE);
 +	glCullFace(GL_BACK);
 +
 +	if (dm->drawObject->facemapindices) {
 +		glDrawElements(GL_TRIANGLES, dm->drawObject->facemap_count[facemap] * 3, GL_UNSIGNED_INT,
 +		               (int *)NULL + dm->drawObject->facemap_start[facemap] * 3);
 +	}
 +	glPopAttrib();
 +
 +	GPU_buffers_unbind();
 +
 +	glPolygonOffset(0.0, 0.0);
 +	dm->release(dm);
 +}
 +
- void draw_object_instance(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, const char dt, int outline, float wire_col[4])
+ void draw_object_instance(Scene *scene, SceneLayer *sl, View3D *v3d, RegionView3D *rv3d, Object *ob, const char dt, int outline, float wire_col[4])
  {
  	if (ob == NULL)
  		return;




More information about the Bf-blender-cvs mailing list