15#include <vsg/app/Window.h>
16#include <vsg/core/Object.h>
17#include <vsg/nodes/Bin.h>
18#include <vsg/nodes/Group.h>
19#include <vsg/state/BufferInfo.h>
20#include <vsg/state/Descriptor.h>
21#include <vsg/state/ResourceHints.h>
22#include <vsg/utils/Instrumentation.h>
23#include <vsg/vk/CommandPool.h>
24#include <vsg/vk/Context.h>
25#include <vsg/vk/DescriptorPool.h>
26#include <vsg/vk/Fence.h>
27#include <vsg/vk/ResourceRequirements.h>
43 VkQueueFlags queueFlags = VK_QUEUE_GRAPHICS_BIT;
44 uint32_t queueFamilyIndex = 1;
70 Instrumentation* getInstrumentation()
override {
return instrumentation.get(); }
72 virtual bool record();
73 virtual void waitForCompletion();
79 object->accept(*
this);
80 if (record() && wait) waitForCompletion();
84 void apply(
Object&
object)
override;
86 void apply(
Commands& commands)
override;
87 void apply(
Geometry& geometry)
override;
91 void apply(
View& view)
override;
CommandGraph is a group node that sits at the top of the scene graph and manages the recording of its...
Definition CommandGraph.h:28
Base class for encapsulating nodes that have Vulkan objects associated with them that will need compi...
Definition Compilable.h:23
CompileTraversal traverses a scene graph and invokes all the StateCommand/Commandcompile(....
Definition CompileTraversal.h:34
void add(Framebuffer &framebuffer, ref_ptr< View > view, const ResourceRequirements &resourceRequirements={})
add a compile Context for Framebuffer and associated View
void compile(T object, bool wait=true)
convenience method that compiles an object/subgraph
Definition CompileTraversal.h:77
void add(const Viewer &viewer, const ResourceRequirements &resourceRequirements={})
add a compile Context for all the Views assigned to a Viewer
std::list< ref_ptr< Context > > contexts
list of Context that Vulkan objects should be compiled for.
Definition CompileTraversal.h:47
ref_ptr< Instrumentation > instrumentation
Hook for assigning Instrumentation to enable profiling.
Definition CompileTraversal.h:50
void add(Window &window, ref_ptr< ViewportState > viewport={}, const ResourceRequirements &resourceRequirements={})
add a compile Context for Window and associated viewport.
void assignInstrumentation(ref_ptr< Instrumentation > in_instrumentation)
assign Instrumentation to all Context
void add(Window &window, ref_ptr< View > view, const ResourceRequirements &resourceRequirements={})
add a compile Context for Window and associated View
void add(ref_ptr< Device > device, const ResourceRequirements &resourceRequirements={})
add a compile Context for device
Framebuffer encapsulates VkFramebuffer, used as a rendering target associated with a Window or for re...
Definition Framebuffer.h:23
base class for Instrumentation implentations
Definition Instrumentation.h:51
Definition RenderGraph.h:28
ResourceRequirements provides a container for various Vulkan resource requirements that can be used t...
Definition ResourceRequirements.h:30
SecondaryCommandGraph is a specialization of CommandGraph that provides Vulkan secondary command buff...
Definition SecondaryCommandGraph.h:25
Definition ViewDependentState.h:105
View is a Group class that pairs a Camera that defines the view with a subgraph that defines the scen...
Definition View.h:36