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

Campbell Barton noreply at git.blender.org
Fri Mar 31 12:20:11 CEST 2017


Commit: 3fe1a05032a6f192b1140e42bf95d66a455e8586
Author: Campbell Barton
Date:   Fri Mar 31 21:21:47 2017 +1100
Branches: custom-manipulators
https://developer.blender.org/rB3fe1a05032a6f192b1140e42bf95d66a455e8586

Merge branch 'blender2.8' into custom-manipulators

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



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

diff --cc source/blender/CMakeLists.txt
index b13fc475951,9b27f780075..448e66ec540
--- a/source/blender/CMakeLists.txt
+++ b/source/blender/CMakeLists.txt
@@@ -54,9 -54,9 +54,10 @@@ set(SRC_DNA_IN
  	${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_key_types.h
  	${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_lamp_types.h
  	${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_lattice_types.h
+ 	${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_layer_types.h
  	${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_linestyle_types.h
  	${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_listBase.h
 +	${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_manipulator_types.h
  	${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_material_types.h
  	${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_mesh_types.h
  	${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_meshdata_types.h
diff --cc source/blender/editors/space_view3d/drawobject.c
index 6ef8194015c,ed6229238d6..24b400f0bfc
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@@ -9634,71 -9669,25 +9670,71 @@@ static void draw_object_mesh_instance(S
  	if (dm) dm->release(dm);
  }
  
+ void draw_object_instance(Scene *scene, SceneLayer *sl, View3D *v3d, RegionView3D *rv3d, Object *ob, const char dt, int outline, const float wire_col[4])
+ {
+ 	if (ob == NULL)
+ 		return;
+ 
+ 	unsigned char bcol[4];
+ 	rgba_float_to_uchar(bcol, wire_col);
+ 
+ 	switch (ob->type) {
+ 		case OB_MESH:
+ 			draw_object_mesh_instance(scene, sl, v3d, rv3d, ob, dt, outline, bcol);
+ 			break;
+ 		case OB_EMPTY:
+ 			if (ob->empty_drawtype == OB_EMPTY_IMAGE) {
+ 				draw_empty_image(ob, 0, bcol, v3d->multiview_eye);
+ 			}
+ 			else {
+ 				drawaxes(rv3d->viewmatob, ob->empty_drawsize, ob->empty_drawtype, bcol);
+ 			}
+ 			break;
+ 	}
+ }
 +
 +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, SceneLayer *sl, View3D *v3d, RegionView3D *rv3d, Object *ob, const char dt, int outline, float wire_col[4])
- {
- 	if (ob == NULL)
- 		return;
- 
- 	glColor4fv(wire_col);
- 
- 	switch (ob->type) {
- 		case OB_MESH:
- 			draw_object_mesh_instance(scene, sl, v3d, rv3d, ob, dt, outline);
- 			break;
- 		case OB_EMPTY:
- 			if (ob->empty_drawtype == OB_EMPTY_IMAGE) {
- 				/* CONSTCOLOR == no wire outline */
- 				draw_empty_image(ob, DRAW_CONSTCOLOR, NULL, v3d->multiview_eye);
- 			}
- 			else {
- 				drawaxes(rv3d->viewmatob, ob->empty_drawsize, ob->empty_drawtype, NULL); /* TODO: use proper color */
- 			}
- 			break;
- 	}
- }




More information about the Bf-blender-cvs mailing list