▼Nvenom | Contains the entirety of the code of the VenomEngine project |
►Ncommon | High-Level Frontend of the VenomEngine project. It also contains all the code shared between every APIs/Dynamic Libraries. But most importantly, that is where the abstraction is setup for the different APIs contained in this project. Use the alias 'vc' to access the namespace |
CBindlessTexturesIdManager | |
CCamera | Camera class Classic layout with position, rotation and projection matrices |
CCameraImpl | |
CConfig | |
CContext | |
CDLL | Contains a shared library handle and provides a way to get symbols from it, can only be created through DLL::Create() |
CDLL_Cache | Holds all DLLs loaded in memory unless explicitly unloaded/deleted. Only instantiable by VenomEngine as it must not be deleted before all DLLs are unloaded. And also to centralize every wannabe singletons into one |
CECS | Entity Component System Will mainly encapsulate the fabulous flecs library (https://github.com/SanderMertens/flecs.git) This class will be contained in the VenomEngine class |
CEXR_TextureLoader | |
CFpsCounter | |
CGraphicsApplication | |
CGraphicsCachedResource | Base class for cached resources |
CGraphicsCachedResourceHolder | Base class for cached resource holders |
CGraphicsPlugin | |
CGraphicsPluginObject | Base class for graphics plugin objects |
CGraphicsSettings | |
CGUI | |
CIPluginObject | |
CLight | |
CLightManager | |
CLightShaderStruct | |
CLog | |
CMaterial | |
CMaterialComponent | MaterialComponent Contains all the data of a material component |
►CMaterialImpl | |
CMaterialComponentResourceTable | |
CMaterialResourceTable | |
CMemoryPool | MemoryPool class to manage memory allocation and deallocation. For now, it's just a wrapper around memory C functions |
CMesh | Contains all the mesh's data and is the main high-level interface for the user |
CMeshImpl | |
CModel | Contains all the mesh's data and is the main high-level interface for the user |
CModelImpl | |
CModelResource | |
CPlugin | |
CPluginManager | |
CPluginObject | Base class for all the plugin objects Objects that will be loaded from the plugins as their implementations lie there As a user of VenomEngine, you should not care about that, unless you plan to create your own plugin |
CPluginObjectContainer | Container for the PluginObjectImplWrapper Important to avoid it from loading the PluginObjectImpl if not needed e.g. if the object is optional |
CPluginObjectImpl | Interface for the PluginObject different implementations |
CPluginObjectImplWrapper | Wrapper for the PluginObjectImpl, inherited by classes like Model or Mesh to make them usable as components (for ECS) and hold the Graphics API specific implementation |
CRenderingPipeline | Interface with shader pipelines and shader settings |
CRenderingPipelineImpl | |
CResources | |
CShaderPipeline | |
►CShaderPipelineImpl | |
CVertexBufferLayout | |
CShaderResource | |
►CShaderResourceTable | |
CDescriptor | |
CSkybox | |
CSkyboxImpl | |
CStbi_TextureLoader | |
CTexture | |
CTextureImpl | |
CTextureLoader | |
CTextureResource | |
CTimer | |
CTransform3D | |
CVenomEngine | Main class of the engine This class will be the main entry point of the engine. It will contain all the main components of the engine, as singleton are harder to manage, especially for unit tests and memory management |
CVenomSettings | |
►Nvulkan | Encapsulation of Vulkan for the front end of VenomEngine |
CAllocator | |
CAttachmentsManager | |
CBuffer | |
CCommandBuffer | Command Buffer class, only instanciable by VulkanCommandPool. To use them, you need to create a VulkanCommandPool and then create/access them via VulkanCommandPool. To make sure destruction and memory is handled in a correct way for command buffers, only VulkanCommandPool should own them |
CCommandPool | |
CCommandPoolManager | |
CDebugApplication | |
CDescriptorPool | |
CDescriptorSet | |
CDescriptorSetGroup | Regroups descriptor sets by frame, so if updates have to be done by group, they will be done on the group directly |
CDescriptorSetGroupAllocator | |
CDescriptorSetLayout | |
CFence | |
CFramebuffer | |
CImage | |
CImageView | |
CInstance | |
CLogicalDevice | |
CMappedQueueFamilies | |
CPhysicalDevice | |
CQueue | |
CQueueFamily | |
CQueueManager | |
CQueueManagerSettings | |
CRenderPass | |
CSampler | |
CSemaphore | |
CSingleTimeCommandBuffer | |
CStorageBuffer | |
CSurface | |
CSwapChain | |
CUniformBuffer | |
CVertexBuffer | |
CVulkanApplication | |
CVulkanCamera | |
CVulkanGraphicsPlugin | |
CVulkanGUI | |
CVulkanMaterial | |
►CVulkanMesh | |
CBoundVkBuffer | |
CVulkanModel | |
CVulkanModelResource | |
CVulkanRenderingPipeline | |
CVulkanShaderPipeline | |
CVulkanShaderResource | |
CVulkanShaderResourceTable | |
CVulkanSkybox | |
CVulkanTexture | |
CVulkanTextureResource | |