VEX Engine
Retro looking game engine made in vulkan mostly because i wanted to understand it better.
Loading...
Searching...
No Matches
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123]
 Cvex::AssetBrowserResponsible for displaying and navigating project assets within an ImGUI window
 Cvex::AudioClip
 Cvex::AudioSourceComponent
 Cvex::AudioSystemSystem responsible for managing audio playback, mixing, and spatialization
 CBasicEditorWindowDefines the structure for a basic, detachable editor window
 Cvex::BatchedTextureDataHelper struct for batching texture loading
 Cvex::BillboardComponentA component for rendering a 2D quad that always faces the camera
 Cvex::BillboardItemStruct to hold information about a billboard render item
 Cvex::BillboardPushDataStruct to hold push data for billboard rendering
 CJPH::BodyActivationListener
 CJPH::BodyDrawFilter
 CJPH::BodyFilter
 Cvex::BodyIDHasherHasher for JPH::BodyID
 CJPH::BroadPhaseLayerInterface
 Cvex::BrowserIconsStructure holding texture IDs for various asset types displayed in the browser
 Cvex::CameraComponentStruct that contains camera properties. Used by build in CameraObject, but needed for any custom one for engine to recognise object as valid CameraObject
 Cvex::CharacterComponentCharacter component for player or NPC characters
 Cvex::CollisionHitStructure representing a collision hit
 Cvex::ComponentRegistryRegistering GameComponents mainly used to load them in SceneManager
 Cvex::ComponentTypeManages unique type IDs for component types in the ECS system
 CJPH::ContactListener
 Cvex::Editor::CopiedObjectData
 Cvex::DebugConsole
 Cvex::DebugVertexRepresents a vertex used for debugging purposes
 Cvex::EditorBillboardComponentA component for rendering a 2D quad that always faces the camera
 Cvex::EditorBillboardItem
 CEditorMenuBarImGUI component responsible for drawing the main editor menu bar and handling its actions
 CEditorPropertiesStructure to hold all configurable editor settings and properties
 Cvex::EngineFor interaction with engine systems
 Cvex::environmentThis struct is used to hold all environment settings. eg. shading details or lighting setup
 Cvex::VirtualFileSystem::FileDataSimple struct needed to represent loaded file with data and size
 Cvex::FlexValueLightweight struct to hold parsed sizes safely away from VexUI dependencies
 Cvex::FogComponentStruct containing fog properties
 Cvex::FontAtlasFont atlas structure
 Cvex::FrustumRepresents a frustum in 3D space
 Cvex::FrustumSoA
 Cvex::GameInfoThis struct contains information about the game. like project name and version
 Cvex::GameObjectIts base class for all game objects, eg. Player, Enemy, Weapon. Your Class needs to inherit from it
 Cvex::GameObjectFactoryResponsible for registering and then creating GameObjects eg. Player, CameraObject. It is needed to load GameObjects from scene files but not all GameObjects can be registered. It requires your GameObject to not change constructor parameters
 Cvex::GamepadAxisBindingStruct for Gamepad Axis bindings (Joysticks/Triggers)
 Cvex::GamepadButtonBindingStruct for Gamepad Button bindings
 Cvex::HardwareInfoUtility class for retrieving and storing hardware and driver information
 Cvex::ICommandBase Command Interface
 Cvex::IComponentStorageAbstract base class for component storage implementations
 Cvex::ImGUIWrapperThis class provides an interface template for ImGui Implementation. Every backend should implement this class
 Cvex::InputBindingStruct representing an input binding. SDL_Scancode, state and std::function containing the action to be performed
 Cvex::InputComponentComponent you add to your GameObject to handle input, eg. add input bindings and mouse axis bindings
 Cvex::InputSystemInput system class responsible for handling input events and updating input components
 Cvex::InterfaceInterface Class for vulkan backend
 Cvex::PhysicsSystem::InterpCache
 CAssimp::IOStream
 CAssimp::IOSystem
 Cstd::istream
 Cvex::InputSystem::KeyStateKey state structure. Used to track the state of keyboard keys needed forr held state
 Cvex::LayoutNodeLayout node representing a single UI element in the layout tree
 Cvex::LifetimeComponentDestroys the entity after a set amount of time. Useful for temporary effects
 Cvex::LightLight struct for shader
 Cvex::LightComponentStruct containing light properties
 Cvex::VirtualFileSystem::LoadedVPKStruct holding data of loaded vpk file
 Cvex::DebugConsole::LogEntry
 Cvex::LogEntry
 Cvex::MeshComponentStruct containing raw meshData, mesh id, texture paths and material properties. It just template and data for rendering backend to load/convert this data to its acceptible format. This is made weirdly cause its made in mind for multiple backends. IDK i hate this system but i have no better idea
 Cvex::MeshDataMesh data structure for loading and managing mesh data
 Cvex::MeshManager
 Cvex::MouseAxisBindingStruct representing an axis binding. Axis and std::function containing the action to be performed
 Cvex::NameComponentStruct that simply contains name of the entity. It is used to identify entity and needs to be unique
 CJPH::ObjectLayerPairFilter
 CJPH::ObjectVsBroadPhaseLayerFilter
 Cvex::OscillatorComponentMoves an entity back and forth using a sine wave without physics overhead
 Cvex::ParticleCPU-side representation of a single particle during its lifetime
 Cvex::ParticleEmitterComponentComponent that emits and manages a system of particles
 Cvex::ParticleGPUDataStructure passed to the GPU containing per-particle rendering data
 Cvex::PersistentTagTag for entities that should persist across scene changes. Like editor camera
 Cvex::PhysicsComponentStructure representing a physics component
 Cvex::PhysicsSystemRepresenting a physics system
 Cvex::PlaneRepresents a plane in 3D space
 Cvex::ProjectMetadataMetadata structure for a recently used project
 CProjectPropertiesStructure to hold all configurable project settings and properties
 CProjectVersion
 Cvex::PushConstantsPush constants, holds model information
 Cvex::RaycastHitStructure representing a raycast hit
 Cvex::RegistryCentral registry for managing entities and their components in the ECS system
 Cvex::RendererResponsible for rendering the scene using Vulkan backend
 Cvex::RenderItemStruct to hold information about a render item
 Cvex::ResolutionManagerResponsible for managing resolution settings, calculating render resolution based on selected mode
 Cvex::SceneScene class implements scene functionality like loading and holding game objects
 CSceneActionStructure to define an action to be performed on a scene object outside of the hierarchy drawing loop
 Cvex::SceneLightsUBOScene lights uniform buffer object
 Cvex::SceneManagerSceneManager class implements scene management functionality like loading and unloading scenes, holding game objects
 Cvex::SceneRenderDataData structure to pass state between render stages
 Cvex::SceneUBOScene uniform buffer object. Holds data that is bind once per scene
 Cvex::SerializedObjectSerialized object data for recreation on undo
 Cvex::SkipInit
 Cvex::AudioSystem::StandaloneAudio
 Cstd::streambuf
 Cstd::string
 Cvex::SubmeshSubmesh structure for mesh data, its made like this cause some file formats hold multiple meshes in one file, but engine supports only one mesh per file
 Cvex::VulkanMesh::SubmeshBuffersStruct used to hold buffers and allocations for each submesh in single object
 Cvex::ThreadPool
 Cvex::TransformComponentStruct containing transform data and methods
 Cvex::TransparentTriangleStruct used to held transparent triangles data for sorting and special rendering
 Cvex::TweenComponentSmoothly interpolates an entity's local position over time
 Cvex::UiComponentStruct containing VexUI class
 Cvex::UIPushConstantsPush constants for UI rendering
 Cvex::UIQuadQuad component needed for rendering
 Cvex::UIStyleBasic UI styling component
 Cvex::UIUnitValueStruct storing unit value logic natively
 Cvex::UIUnitVec22D representation of UIUnitValue to replace glm::vec2 size safely
 Cvex::UIVertexRepresents a vertex for a UI element
 Cglm::vec3
 Cglm::vec4
 Cvex::VertexVertex structure for mesh data
 Cvex::VexUIDefining VexUI, it initializes the UI system, loads, renders, converts ui data, essentially managing ui from file to reneering
 Cvex::View< Components >Provides iteration over entities that have all specified component types
 Cvex::VirtualFileSystemThis class provides abstraction of file system needed for loading packed and unpacked assets
 Cvex::VirtualFileSystem::VPKFileEntryStruct defining virtual file "header", used to identify files in the virtual file system
 Cvex::VirtualFileSystem::VPKHeaderStruct defining vpak file header data, used to validate file integrity
 Cvex::VulkanContextStruct holding all vulkan data, like device, surface, swapchain, images, views, and more
 Cvex::VulkanFeaturesHolds the status of various Vulkan features
 Cvex::VulkanMeshDefining mesh object with vulkan specific data and methods
 Cvex::VulkanPipelineA class managing creating vulkan pipelines. Both form meshes and UI elements
 Cvex::VulkanResourcesThis class manages resources like textures, descriptor sets, and uniform buffers
 Cvex::VulkanSwapchainManagerManages Vulkan swapchain resources
 Cvex::WidgetStruct defining widget component, it has a lot of redundancy and probably will need cleanup before expanding on a feature
 Cvex::WindowThis class esentially abstracts SDL_Window