import tables
, ../drawable/[ shape_object
, text_types
, plane
]
, ../deshn_entity/[ being
]
, ../vk/[ vulkan
, vkTypes
, depth_stencil
, buffer
]
type
Scene_Object = object of RootObj
device*: ptr VkDevice
entities*: TableRef[string, int]
shapes*: seq[Shape]
#texts*: seq[SDFText]
planes*: seq[Plane]
deshn_beings*: seq[Deshn_Being]
current_entity_id*: int
vertex_buffer*: Buffer
index_buffer*: Buffer
staging_vertex_buffer*: Buffer
staging_index_buffer*: Buffer
#render_pass_begin_info*: VkRenderPassBeginInfo
#scissor*: VkRect2D
#render_pass*: VkRenderPass
#depth_stencil*: Depth_Stencil
present_info*: VkPresentInfoKHR
# TODO: a better way , instead of having to redundantly copy vertices and indices
the_vertices*: seq[float32]
the_indices*: seq[uint32]
indirect_commands*: seq[VkDrawIndexedIndirectCommand]
Scene* = ref object of Scene_Object