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; - } - } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs