|
Vesper 0.5.1
Vesper is short form for the Latin word for "Bat", as Vesper is designed to be small, lightweight, and easily handle things like particles and flocking behaviors in accordance with the nature of bats. \n It is meant to be a particle simulation, VFX editor, and CAN be used secondarily as a small game engine. GitHub | Vesper Updates | Creator |
TEMPORARY. More...
Namespaces | |
| namespace | Math |
| namespace | Key |
| Namespace for keyboard key codes. | |
| namespace | Random |
| namespace | Color |
| Provides commonly used colors and color manipulation functions. | |
| namespace | Mouse |
| Namespace for mouse button codes. | |
Classes | |
| class | Input |
| Base input class for querying input states. More... | |
| struct | ApplicationSettings |
| WIP. More... | |
| class | Application |
| The core application class that manages the main loop, window, layers, and event handling. More... | |
| class | FileDialogs |
| Cross-platform file dialog utilities. More... | |
| class | FileSystem |
| class | WindowsWindow |
| class | WindowResizeEvent |
| Event for registering window resize. More... | |
| class | WindowCloseEvent |
| Event for registering window close. More... | |
| class | AppTickEvent |
| Event for registering application tick. More... | |
| class | AppUpdateEvent |
| Event for registering application update. More... | |
| class | AppRenderEvent |
| Event for registering application render. More... | |
| class | MouseMovedEvent |
| Event for registering mouse movement. More... | |
| class | MouseScrolledEvent |
| Event for registering mouse scroll wheel movement. More... | |
| class | MouseButtonEvent |
| Base class for mouse button events. More... | |
| class | MouseButtonPressedEvent |
| Event for registering mouse button presses. More... | |
| class | MouseButtonReleasedEvent |
| Event for registering mouse button releases. More... | |
| class | KeyEvent |
| Base class for keyboard events. More... | |
| class | KeyPressedEvent |
| Event for registering key press. More... | |
| class | KeyReleasedEvent |
| Event for registering key release. More... | |
| class | KeyTypedEvent |
| Event for registering key typing. More... | |
| class | OpenGLContext |
| class | GraphicsContext |
| Abstract class representing a graphics context. More... | |
| class | OpenGLFramebuffer |
| class | OpenGLImGuiLayer |
| class | RendererAPI |
| An abstract class defining the interface for a rendering API. More... | |
| class | OpenGLRendererAPI |
| An implementation of the RendererAPI for OpenGL. More... | |
| class | OpenGLShader |
| class | OpenGLTexture2D |
| class | OpenGLUniformBuffer |
| class | OpenGLVertexArray |
| class | Layer |
| Represents a reusable application layer that receives lifecycle callbacks (attach, detach, update, events, render, and ImGui render). Intended as a base class for concrete layers. More... | |
| class | LayerStack |
| Manages an ordered stack of Layer pointers. Layers can be pushed or popped and the stack can be iterated in forward or reverse order. More... | |
| class | Log |
| A logging utility class for the Vesper engine. More... | |
| class | ImGuiLayer |
| struct | ParticleProps |
| class | ParticleSystem |
| class | Renderer2D |
| A 2D renderer for drawing quads and sprites. More... | |
| class | OrthographicCamera |
| struct | BufferElement |
| Represents a single element in a buffer layout. More... | |
| class | BufferLayout |
| Represents the layout of a buffer, consisting of multiple BufferElements. More... | |
| class | VertexBuffer |
| Abstract base class for a vertex buffer. More... | |
| class | IndexBuffer |
| Abstract base class for an index buffer. More... | |
| class | OpenGLVertexBuffer |
| class | OpenGLIndexBuffer |
| class | EditorCamera |
| struct | FramebufferSpecification |
| Specification for creating a Framebuffer. More... | |
| class | Framebuffer |
| Abstract class representing a framebuffer. More... | |
| class | Renderer |
| The main renderer class responsible for managing rendering operations. More... | |
| struct | ProfileResult |
| struct | InstrumentationSession |
| class | Instrumentor |
| class | InstrumentationTimer |
| struct | OrthographicCameraBounds |
| class | OrthographicCameraController |
| class | RenderCommand |
| A static class that provides an interface for issuing rendering commands. More... | |
| class | Shader |
| An abstraction for a shader program. More... | |
| class | ShaderLibrary |
| A library for managing and storing shaders. More... | |
| class | Texture |
| An abstraction for a texture. More... | |
| class | Texture2D |
| An abstraction for a 2D texture. More... | |
| class | TextureLibrary |
| A library for managing and storing textures. More... | |
| class | SubTexture2D |
| Represents a sub-region of a 2D texture, useful for sprite sheets. More... | |
| class | Camera |
| class | Timestep |
| Represents a time step in seconds. More... | |
| class | Event |
| Abstract base class for all events. More... | |
| class | EventDispatcher |
| Stack-based templated event dispatcher. More... | |
| struct | QuadVertex |
| struct | Renderer2DData |
| class | UniformBuffer |
| An abstraction for a uniform buffer object (UBO). More... | |
| class | VertexArray |
| An abstraction for a vertex array object (VAO). More... | |
| class | Entity |
| Represents an entity in a scene. More... | |
| class | Scene |
| class | ScriptableEntity |
| Base class for scriptable entities within a scene. More... | |
| class | SceneCamera |
| class | EditorLayer |
| class | SceneSerializer |
| class | SceneHierarchyPanel |
| struct | UUID |
| Universally Unique Identifier. More... | |
| struct | UUIDComponent |
| Component that holds a UUID. More... | |
| struct | NameComponent |
| Component that holds the name of an entity. More... | |
| struct | TransformComponent |
| Component that holds the transform of an entity. More... | |
| struct | SpriteRendererComponent |
| Component that holds sprite rendering data. More... | |
| struct | SubTextureComponent |
| Component that holds sub-texture data for sprites. More... | |
| struct | TextureAnimationComponent |
| Animates through a series of sub textures. More... | |
| struct | CameraComponent |
| Component that holds camera data. More... | |
| struct | NativeScriptComponent |
| Component that holds scripting data for an entity. More... | |
| class | VesperEditor |
| struct | WindowProps |
| Holds the data for window configuration. More... | |
| class | Window |
| Abstract interface representing an application window. More... | |
Typedefs | |
| using | FloatingPointMicroseconds = std::chrono::duration<double, std::micro> |
| using | KeyCode = uint16_t |
| Alias for keyboard key code type. | |
| using | MouseCode = uint8_t |
| Alias for mouse button code type. | |
| template<typename T> | |
| using | Scope = std::unique_ptr<T> |
| A smart pointer type representing exclusive ownership of an object. | |
| template<typename T> | |
| using | Ref = std::shared_ptr<T> |
| A smart pointer type representing shared ownership of an object. | |
Enumerations | |
| enum class | ShaderDataType { None = 0 , Float , Float2 , Float3 , Float4 , Mat3 , Mat4 , Int , Int2 , Int3 , Int4 , Bool } |
| The different data types that can be used in shaders. More... | |
| enum class | EventType { None = 0 , WindowClose , WindowResize , WindowFocus , WindowLostFocus , WindowMoved , AppTick , AppUpdate , AppRender , KeyPressed , KeyReleased , KeyTyped , MouseButtonPressed , MouseButtonReleased , MouseMoved , MouseScrolled } |
| Enumeration of event types. More... | |
| enum | EventCategory { None = 0 , EventCategoryApplication = BIT(0) , EventCategoryInput = BIT(1) , EventCategoryKeyboard = BIT(2) , EventCategoryMouse = BIT(3) , EventCategoryMouseButton = BIT(4) } |
| Enumeration of event categories. More... | |
| enum class | WindowMode { Windowed = 0 , Fullscreen = 1 , Borderless = 2 } |
| WIP. More... | |
Functions | |
| Application * | CreateApplication () |
| static void | GLFWErrorCallback (int error, const char *description) |
| static GLenum | ShaderTypeFromString (const std::string &type) |
| static GLenum | ShaderDataTypeToOpenGLBaseType (ShaderDataType type) |
| static uint32_t | ShaderDataTypeSize (ShaderDataType type) |
| Returns the size in bytes of the given ShaderDataType. | |
| std::string | format_as (const Event &e) |
| Format an event as a string. | |
| static void | SerializeEntity (YAML::Emitter &out, Entity entity) |
| static void | DisplayVesperInfo_ImGui () |
| static void | DrawVec3Control (const std::string &label, glm::vec3 &values, float resetValue=0.0f, float columnWidth=100.0f) |
| static void | DrawVec2Control (const std::string &label, glm::vec2 &values, float resetValue=0.0f, float columnWidth=100.0f) |
| static void | SubTextureEdit (const std::string &label, SubTextureComponent &subTexture) |
| template<typename T, typename UIFunction> | |
| static void | DrawComponent (const std::string &name, Entity entity, UIFunction uiFunction) |
| template<typename T, typename... Args> | |
| constexpr Scope< T > | CreateScope (Args &&... args) |
| Creates a Scope (unique_ptr) for the given type and constructor arguments. | |
| template<typename T, typename... Args> | |
| constexpr Ref< T > | CreateRef (Args &&... args) |
| Creates a Ref (shared_ptr) for the given type and constructor arguments. | |
Variables | |
| static bool | s_GLFWInitialized = false |
| static const uint32_t | s_MaxFramebufferSize = 8192 |
| TODO: Get the actual maximum size from the GPU! | |
| static Renderer2DData | s_Data |
TEMPORARY.
The main namespace for the Vesper engine.
Temporary.
TODO: Abstract this to OpenGL/DirectX/Vulkan etc ImGui layers.
| struct Vesper::ApplicationSettings |
WIP.
| Class Members | ||
|---|---|---|
| string | ApplicationName = "Vesper Application" | |
| bool | EnableImGui = true | |
| bool | EnableVSync = false | |
| uint32_t | Height = 720 | |
| WindowMode | Mode = WindowMode::Windowed | |
| API | RendererAPI = RendererAPI::API::OpenGL | |
| uint32_t | Width = 1280 | |
| string | WorkingDirectory | |
| struct Vesper::ParticleProps |
| struct Vesper::FramebufferSpecification |
Specification for creating a Framebuffer.
| Class Members | ||
|---|---|---|
| uint32_t | Height | |
| uint32_t | Samples = 1 | |
| bool | SwapChainTarget = false | |
| uint32_t | Width | |
| struct Vesper::ProfileResult |
| struct Vesper::QuadVertex |
| using Vesper::FloatingPointMicroseconds = std::chrono::duration<double, std::micro> |
| using Vesper::KeyCode = uint16_t |
Alias for keyboard key code type.
| using Vesper::MouseCode = uint8_t |
Alias for mouse button code type.
| using Vesper::Ref = std::shared_ptr<T> |
A smart pointer type representing shared ownership of an object.
| T | The type of object to manage. |
| using Vesper::Scope = std::unique_ptr<T> |
A smart pointer type representing exclusive ownership of an object.
| T | The type of object to manage. |
Enumeration of event categories.
| Enumerator | |
|---|---|
| None | |
| EventCategoryApplication | |
| EventCategoryInput | |
| EventCategoryKeyboard | |
| EventCategoryMouse | |
| EventCategoryMouseButton | |
|
strong |
Enumeration of event types.
|
strong |
|
strong |
WIP.
| Enumerator | |
|---|---|
| Windowed | |
| Fullscreen | |
| Borderless | |
| Application * Vesper::CreateApplication | ( | ) |
References Vesper::VesperEditor::VesperEditor().
|
constexpr |
Creates a Ref (shared_ptr) for the given type and constructor arguments.
| T | The type of object to create. |
| Args | The types of constructor arguments. |
| args | The constructor arguments. |
|
constexpr |
Creates a Scope (unique_ptr) for the given type and constructor arguments.
| T | The type of object to create. |
| Args | The types of constructor arguments. |
| args | The constructor arguments. |
|
static |
Referenced by Vesper::EditorLayer::OnImGuiRender().
|
static |
|
static |
|
static |
|
inline |
Format an event as a string.
|
static |
Referenced by Vesper::WindowsWindow::Init().
|
static |
|
static |
Returns the size in bytes of the given ShaderDataType.
| type | The ShaderDataType to get the size of. |
References Bool, Float, Float2, Float3, Float4, Int, Int2, Int3, Int4, Mat3, and Mat4.
Referenced by Vesper::BufferElement::BufferElement().
|
static |
|
static |
|
static |
|
static |
Referenced by Vesper::Renderer2D::BeginScene(), Vesper::Renderer2D::BeginScene(), Vesper::Renderer2D::BeginScene(), Vesper::Renderer2D::DrawQuad(), Vesper::Renderer2D::DrawQuadRotated(), Vesper::Renderer2D::DrawQuadRotatedWithTexture(), Vesper::Renderer2D::DrawQuadRotatedWithTexture(), Vesper::Renderer2D::DrawQuadWithTexture(), Vesper::Renderer2D::DrawQuadWithTexture(), Vesper::Renderer2D::EndScene(), Vesper::Renderer2D::Flush(), Vesper::Renderer2D::FlushAndReset(), Vesper::Renderer2D::GetStats(), Vesper::Renderer2D::GetWhiteTexture(), Vesper::Renderer2D::Init(), Vesper::Renderer2D::ResetStats(), Vesper::Renderer2D::Shutdown(), and Vesper::Renderer2D::StartBatch().
|
static |
Referenced by Vesper::WindowsWindow::Init().
|
static |
TODO: Get the actual maximum size from the GPU!