Page MenuHome

Fix High Priority T54686: Multi-Object-Mode: EditMesh GL selection objects don't occlude eachother

Authored by Germano Cavalcante (mano-wii) on May 15 2019, 3:18 PM.



Fix T54686.

The solution is to draw all edited objects with an initial offset index for each object.
Thus there are no repeated indexes and it is possible to identify the base by ranges of indices.

  • draw_object_select_id has been moved from view_3d_inter.h / drawobject.c to draw_manager.c.
  • Circle Select and similar were not affected and therefore still ignore occlusion.

We can optimize a bit more on mixed selections by drawing all the selection elements within the same range of indices. But that may be for another patch.

Diff Detail

rB Blender
Build Status
Buildable 3596
Build 3596: arc lint + arc unit

Event Timeline

  • fix bad ViewContext pointer.
  • Fix use evaluated object to select
  • Fix base_index return

Remnant from hack to refresh selection buffer needed to be removed:
(ED_view3d_viewcontext_init_object was setting V3D_INVALID_BACKBUF on each call)
causing border select to generate all objects selection id's - for each object.

Also removed unused arguments.

Rename variables, comments

This revision is now accepted and ready to land.May 16 2019, 1:41 AM