MCPcopy Create free account
hub / github.com/MyGUI/mygui / updateCompression

Method updateCompression

MyGUIEngine/src/MyGUI_LayerNode.cpp:267–305  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

265 }
266
267 void LayerNode::updateCompression()
268 {
269 if (mFirstRenderItems.size() <= 1)
270 return;
271
272 bool need_compression = false;
273 for (const auto& firstRenderItem : mFirstRenderItems)
274 {
275 if (firstRenderItem->getNeedCompression())
276 {
277 firstRenderItem->setNeedCompression(false);
278 need_compression = true;
279 break;
280 }
281 }
282
283 if (!need_compression)
284 {
285 mLastNotEmptyItem = mFirstRenderItems.size() - 1;
286 }
287 else
288 {
289 // pushing all empty buffers to the end of buffers list
290 VectorRenderItem nonEmptyItems;
291 nonEmptyItems.reserve(mFirstRenderItems.size());
292 VectorRenderItem emptyItems;
293
294 for (const auto& item : mFirstRenderItems)
295 {
296 if (item->getNeedVertexCount() == 0 && !item->getManualRender())
297 emptyItems.push_back(item);
298 else
299 nonEmptyItems.push_back(item);
300 }
301 mLastNotEmptyItem = nonEmptyItems.size() - 1;
302 nonEmptyItems.insert(nonEmptyItems.end(), emptyItems.begin(), emptyItems.end());
303 std::swap(mFirstRenderItems, nonEmptyItems);
304 }
305 }
306
307 ILayer* LayerNode::getLayer() const
308 {

Callers

nothing calls this directly

Calls 11

getNeedCompressionMethod · 0.80
setNeedCompressionMethod · 0.80
getNeedVertexCountMethod · 0.80
swapFunction · 0.50
sizeMethod · 0.45
reserveMethod · 0.45
getManualRenderMethod · 0.45
push_backMethod · 0.45
insertMethod · 0.45
endMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected