MCPcopy Create free account
hub / github.com/defold/defold / CollectClippers

Function CollectClippers

engine/gui/src/gui.cpp:1593–1614  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1591 }
1592
1593 static void CollectClippers(HScene scene, uint16_t start_index, uint16_t bit_field_offset, uint16_t inv_clipper_count, dmArray<InternalClippingNode>& clippers, uint16_t parent_index)
1594 {
1595 ScopeContext context;
1596 context.m_BitFieldOffset = bit_field_offset;
1597 context.m_InvClipperCount = inv_clipper_count;
1598 CollectInvClippers(scene, start_index, clippers, context, parent_index);
1599 uint16_t non_inv_clipper_index = context.m_NonInvClipperHead;
1600 uint16_t index = 0;
1601 while (non_inv_clipper_index != INVALID_INDEX) {
1602 InternalClippingNode* non_inv_clipper = &clippers[non_inv_clipper_index];
1603 StencilScope* parent_scope = 0x0;
1604 if (non_inv_clipper->m_ParentIndex != INVALID_INDEX) {
1605 parent_scope = &clippers[non_inv_clipper->m_ParentIndex].m_ChildScope;
1606 }
1607 InternalNode* node = &scene->m_Nodes[non_inv_clipper->m_NodeIndex];
1608 UpdateScope(node, non_inv_clipper->m_Scope, non_inv_clipper->m_ChildScope, parent_scope, index, context.m_ClipperCount, context.m_InvClipperCount, bit_field_offset);
1609 uint16_t bit_range = CalcBitRange(context.m_ClipperCount);
1610 CollectClippers(scene, node->m_ChildHead, context.m_BitFieldOffset + bit_range, context.m_InvClipperCount, clippers, non_inv_clipper_index);
1611 non_inv_clipper_index = non_inv_clipper->m_NextNonInvIndex;
1612 ++index;
1613 }
1614 }
1615
1616 static uint16_t CollectRenderEntries(HScene scene, uint16_t start_index, uint16_t order, dmArray<InternalClippingNode>& clippers, dmArray<RenderEntry>& render_entries) {
1617 #define PUSH_RENDER_ENTRY(e) \

Callers 1

CollectNodesFunction · 0.85

Calls 3

CollectInvClippersFunction · 0.85
UpdateScopeFunction · 0.85
CalcBitRangeFunction · 0.85

Tested by

no test coverage detected