void SortRegions(vector<PSMILRegionElement*>& regions, PSMILElement* parent) { ASSERT(0); #if 0 UPOSITION pos = parent->m_childList.GetHeadPosition(); while (pos) { CPSMILElementImpl* pElement = (CPSMILElementImpl*)parent->m_childList.GetNext(pos); CComQIPtr<ILSMILRegionElement> region = pElement->m_pNode; if (region) { CPSMILRegionElement* pRegionElement = (CPSMILRegionElement*)pElement; CComBSTR bstrZIndex; region->getAttribute(L"z-index", &bstrZIndex); if (bstrZIndex.Length()) { pRegionElement->m_computedZIndex = (long)_variant_t(bstrZIndex); } else { pRegionElement->m_computedZIndex = 0; // ? that of parent } // Insert sorted for (int i = 0; i < regions.GetSize(); i++) { if (pRegionElement->m_computedZIndex < regions[i]->m_computedZIndex) { //regions.InsertAt(i, pRegionElement); break; } /* the rule concerning time priority is maintained, meaning that in the case of a z-index conflict, the media visible in the overlap will be determined by the region that is rendering the media that has most recently begun in time. If the conflicting media began at the same time, then the rule using the textual order of the media elements in the SMIL document is applied */ else if (pRegionElement->m_computedZIndex == regions[i]->m_computedZIndex) { //static_cast<SMILRegionElement*>(region.p)->m_p } } regions.InsertAt(i, pRegionElement); } } #endif }