mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-12 01:26:31 +01:00
experimental drawing optimization.
Q: is bounding_box(); etc more complex than queuing draw? either way, canvas should eventually switch to use an optimized OptimizingLookupTable.
This commit is contained in:
parent
587dc283ea
commit
9266e7524a
1 changed files with 12 additions and 1 deletions
|
|
@ -41,11 +41,22 @@ DumbLookupTable::DumbLookupTable (Item const & item)
|
||||||
}
|
}
|
||||||
|
|
||||||
vector<Item *>
|
vector<Item *>
|
||||||
DumbLookupTable::get (Rect const &)
|
DumbLookupTable::get (Rect const &area)
|
||||||
{
|
{
|
||||||
list<Item *> const & items = _item.items ();
|
list<Item *> const & items = _item.items ();
|
||||||
vector<Item *> vitems;
|
vector<Item *> vitems;
|
||||||
|
#if 1
|
||||||
|
for (list<Item *>::const_iterator i = items.begin(); i != items.end(); ++i) {
|
||||||
|
boost::optional<Rect> item_bbox = (*i)->bounding_box ();
|
||||||
|
if (!item_bbox) continue;
|
||||||
|
Rect item = (*i)->item_to_window (item_bbox.get());
|
||||||
|
if (item.intersection (area)) {
|
||||||
|
vitems.push_back (*i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
copy (items.begin(), items.end(), back_inserter (vitems));
|
copy (items.begin(), items.end(), back_inserter (vitems));
|
||||||
|
#endif
|
||||||
return vitems;
|
return vitems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue