6#include "LkEngine/Version.h"
11#include "LkEngine/Core/LObject/ObjectPtr.h"
12#include "LkEngine/Core/ApplicationConfig.h"
16#include "LkEngine/Core/CrashHandler.h"
18#include "LkEngine/Core/IO/File.h"
19#include "LkEngine/Core/IO/FileSystem.h"
21#include "LkEngine/Core/MetadataRegistry.h"
22#include "LkEngine/Core/Memory/GarbageCollector.h"
23#include "LkEngine/Core/Event/KeyEvent.h"
24#include "LkEngine/Core/Event/MouseEvent.h"
25#include "LkEngine/Core/Event/EventQueue.h"
26#include "LkEngine/Core/Input/Input.h"
27#include "LkEngine/Core/Input/Mouse.h"
28#include "LkEngine/Core/Input/Keyboard.h"
30#include "LkEngine/Renderer/UI/UILayer.h"
32#include "LkEngine/Asset/AssetManager.h"
34#include "LkEngine/Renderer/Renderer.h"
35#include "LkEngine/Renderer/SceneRenderer.h"
37#include "LkEngine/Serialization/FileStream.h"
39#include "LkEngine/Scene/Scene.h"
40#include "LkEngine/Scene/Entity.h"
41#include "LkEngine/Scene/Components.h"
42#include "LkEngine/Scene/SceneSerializer.h"
44#include "LkEngine/Physics/PhysicsSystem.h"
48 LK_DECLARE_MULTICAST_DELEGATE(FOnEngineShutdown);
63 extern FOnEngineShutdown OnEngineShutdown;
68 void Setup(
const int Argc,
char* Argv[]);
84 virtual void Shutdown();
86 FORCEINLINE
static LApplication& Get() {
return *Instance; }
93 static const char* GetPlatformName();
94 static const char* GetConfigurationName();
101 void OnEvent(
LEvent& Event);
103 template<
typename TEvent,
bool DispatchImmediately =
false,
typename... TEventArgs>
104 void DispatchEvent(TEventArgs&&... Args)
106 std::shared_ptr<TEvent> Event = std::make_shared<TEvent>(std::forward<TEventArgs>(Args)...);
107 if constexpr (DispatchImmediately)
114 CoreEventQueue.
Add([Event]() { LApplication::Get().OnEvent(*Event); });
118 FORCEINLINE
LWindow& GetWindow() {
return *Window; }
119 uint32_t GetCurrentFrameIndex()
const {
return CurrentFrameIndex; }
125 FORCEINLINE
float GetDeltaTime()
const {
return LastDeltaTime; }
126 std::string GenerateCrashDump();
129 bool bRunning =
false;
133 float LastDeltaTime = 0.0f;
141 uint32_t CurrentFrameIndex = 0;
146 std::unordered_map<const char*, LPerformanceProfiler::FFrameData> ProfilerPreviousFrameData;
Mathematics used by the engine.
Definition Application.h:77
virtual void Initialize()
Initialize object.
Definition Application.cpp:45
Definition EventQueue.h:74
FORCEINLINE void Add(EventArgs &&... Args)
Definition EventQueue.h:182
Definition LayerStack.h:25
FORCEINLINE void PushLayer(LLayer *Layer)
Push a layer to top of the layer stack.
Definition LayerStack.h:38
Definition ObjectPtr.h:102
#define LCLASS(Class)
Definition CoreMacros.h:226
Definition ApplicationConfig.h:10