15 #include <vsg/io/FileSystem.h>
16 #include <vsg/io/Options.h>
17 #include <vsg/nodes/Node.h>
18 #include <vsg/vk/Semaphore.h>
40 template<
class N,
class V>
41 static void t_traverse(N& node, V& visitor)
43 for (
auto& child : node.children)
45 if (child.node) child.node->accept(visitor);
49 void traverse(
Visitor& visitor)
override { t_traverse(*
this, visitor); }
50 void traverse(
ConstVisitor& visitor)
const override { t_traverse(*
this, visitor); }
51 void traverse(
RecordTraversal& visitor)
const override { t_traverse(*
this, visitor); }
53 void read(
Input& input)
override;
54 void write(
Output& output)
const override;
58 double minimumScreenHeightRatio = 0.0;
66 mutable std::atomic<double> priority{0.0};
70 using Children = std::array<Child, 2>;
73 bool highResActive(uint64_t frameCount)
const
75 return (frameCount - frameHighResLastUsed.load()) <= 1;
82 ref_ptr<const Options> options;
84 mutable std::atomic_uint64_t frameHighResLastUsed{0};
85 mutable std::atomic_uint requestCount{0};
87 enum RequestStatus :
unsigned int
99 mutable std::atomic<RequestStatus> requestStatus{NoRequest};
100 mutable uint32_t index = 0;
102 ref_ptr<Node> pending;
120 uint32_t previous = 0;
123 List* list =
nullptr;
126 using Elements = std::vector<Element>;
133 void resize(uint32_t new_size);
135 void inactive(
const PagedLOD* plod);
142 bool check(
const List& list);
144 void print(std::ostream& out);
Definition: ConstVisitor.h:140
Definition: PagedLOD.h:36
RecordTraversal traverses a scene graph doing view frustum culling and invoking state/commands to rec...
Definition: RecordTraversal.h:59
Definition: Visitor.h:140
Definition: PagedLOD.h:119
Definition: PagedLOD.h:111
Definition: PagedLOD.h:107
Definition: PagedLOD.h:57