private void DrawHierarchy(List<ObjectNode> nodes, int materialIndex, SharpDX.Direct3D11.DeviceContext devContext, int depth) { if (depth > 1212) { return; } foreach (ObjectNode node in nodes) { if (node.DrawGroup != null && node.Enabled) { foreach (Group group in node.DrawGroup) { if (group.materialIndex == materialIndex) { devContext.DrawIndexed(group.indexCount, group.startIndex, 0); } } } DrawHierarchy(node.Children, materialIndex, devContext, depth + 1); } }