Remove direct displist creation from drawing code
It was some kind of workaround for DAG glitch in 2009
(commit hash 8c5c7ebb0) and according to the comment
was needed to make select outline show immediately.
After some tests it appears DAG behaves almost fine now
(just needed to make it so layer is flushed properly to
the set scene) and no reason to have rather confusing
call in the code.
This commit is contained in:
@@ -2146,6 +2146,9 @@ void DAG_on_visible_update(Main *bmain, const short do_time)
|
||||
* note armature poses or object matrices are preserved and do not
|
||||
* require updates, so we skip those */
|
||||
dag_scene_flush_layers(scene, lay);
|
||||
if (scene->set) {
|
||||
dag_scene_flush_layers(scene->set, lay);
|
||||
}
|
||||
BKE_main_id_tag_idcode(bmain, ID_GR, false);
|
||||
|
||||
for (SETLOOPER(scene, sce_iter, base)) {
|
||||
|
||||
@@ -6789,14 +6789,6 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
|
||||
}
|
||||
|
||||
if (!particle_skip_object) {
|
||||
/* bad exception, solve this! otherwise outline shows too late */
|
||||
if (ELEM3(ob->type, OB_CURVE, OB_SURF, OB_FONT)) {
|
||||
/* still needed for curves hidden in other layers. depgraph doesnt handle that yet */
|
||||
if (ELEM(NULL, ob->curve_cache, ob->curve_cache->disp.first)) {
|
||||
BKE_displist_make_curveTypes(scene, ob, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* draw outline for selected objects, mesh does itself */
|
||||
if ((v3d->flag & V3D_SELECT_OUTLINE) && !render_override && ob->type != OB_MESH) {
|
||||
if (dt > OB_WIRE && (ob->mode & OB_MODE_EDIT) == 0 && (dflag & DRAW_SCENESET) == 0) {
|
||||
|
||||
Reference in New Issue
Block a user