+ for(SortedArray::iterator i=sorted_cache.begin(), j=i; i!=sorted_cache.end(); ++i)
+ if(i->in_frustum)
+ {
+ if(i!=j)
+ swap(*i, *j);
+
+ if(j!=sorted_cache.begin() && *j<*(j-1))
+ {
+ SortedRenderable sr = *j;
+ SortedArray::iterator k = j-1;
+ *j = *k;
+ while(k!=sorted_cache.begin() && sr<*(k-1))
+ {
+ *k = *(k-1);
+ --k;
+ }
+ *k = sr;
+ }
+
+ ++j;
+ }