lmgl 1.0.0
A lightweight OpenGL graphics engine library written in C++
Loading...
Searching...
No Matches
lmgl.hpp
Go to the documentation of this file.
1
12
13#pragma once
14
15// Core
16#include "lmgl/core/engine.hpp"
17#include "lmgl/input.hpp"
18
19// Scene
20#include "lmgl/scene/camera.hpp"
21#include "lmgl/scene/light.hpp"
23#include "lmgl/scene/mesh.hpp"
24#include "lmgl/scene/node.hpp"
25#include "lmgl/scene/scene.hpp"
26#include "lmgl/scene/skybox.hpp"
27
28// Assets
31
32// Renderer (commonly used)
35
36// UI
37#include "lmgl/ui/button.hpp"
38#include "lmgl/ui/canvas.hpp"
39#include "lmgl/ui/panel.hpp"
40#include "lmgl/ui/slider.hpp"
41#include "lmgl/ui/text.hpp"
42#include "lmgl/ui/toggle.hpp"
43#include "lmgl/ui/ui_loader.hpp"
44
45// Namespace aliases for convenience
46namespace lmgl {
47
48// Core types
49using Engine = core::Engine;
50using Key = core::Key;
51
52// Scene types
53using Scene = scene::Scene;
54using Camera = scene::Camera;
55using Mesh = scene::Mesh;
56using Node = scene::Node;
57using Light = scene::Light;
58using Material = scene::Material;
59using Skybox = scene::Skybox;
60
61// Asset types
62using ModelLoader = assets::ModelLoader;
63using TextureLibrary = assets::TextureLibrary;
64
65// Renderer types
66using Shader = renderer::Shader;
67using Texture = renderer::Texture;
68
69// UI namespace remains as-is (ui::)
70// This allows: lmgl::ui::Button, lmgl::ui::Canvas, etc.
71
72} // namespace lmgl
73
Button UI element with callback support.
Declaration of the Camera class for managing viewport and projection.
Canvas for 2D UI rendering with orthographic projection.
Class for loading 3D models using Assimp.
Definition model_loader.hpp:60
Manages loading and caching of textures.
Definition texture_library.hpp:34
A singleton class that manages the main application loop using GLFW.
Definition engine.hpp:153
Represents a shader program used in rendering.
Definition shader.hpp:34
Manages an OpenGL texture.
Definition texture.hpp:29
Represents a camera for viewing the 3D scene.
Definition camera.hpp:28
Class representing a light source in a 3D scene.
Definition light.hpp:40
Represents a material with various properties and textures for 3D rendering.
Definition material.hpp:36
Represents a 3D mesh with associated vertex array and shader.
Definition mesh.hpp:77
Represents a node in a scene graph.
Definition node.hpp:41
Represents a 3D scene graph with a root node.
Definition scene.hpp:39
Represents a skybox in a 3D scene.
Definition skybox.hpp:122
Declaration of the Engine class for managing the main application loop using GLFW.
Key
Input key codes.
Definition engine.hpp:43
Static input wrapper for convenient input handling.
Definition of the Light class and LightType enumeration.
Definition of the Material class for 3D rendering.
Defines the Mesh class for managing 3D mesh data.
Model loading utilities using Assimp library.
Forward declarations for Assimp Material structure.
Definition model_loader.cpp:12
Defines the Node class for managing scene graph nodes in a 3D environment.
Panel UI element for displaying colored rectangles.
Defines the Scene class for managing a 3D scene graph.
Declaration of the Shader class for managing shader programs in OpenGL.
Skybox rendering system with cubemap support.
Slider UI element for value selection.
Text UI element for rendering text strings.
Texture class for managing OpenGL textures.
Texture caching and management system.
Toggle (checkbox) UI element.
JSON-based UI loader for declarative UI creation.