Ajout de Jolt Physics + 1ere version des factory entitecomposants - camera, transform, rigidbody, collider, renderer
This commit is contained in:
38
lib/All/JoltPhysics/TestFramework/Window/ApplicationWindow.h
Normal file
38
lib/All/JoltPhysics/TestFramework/Window/ApplicationWindow.h
Normal file
@@ -0,0 +1,38 @@
|
||||
// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
|
||||
// SPDX-FileCopyrightText: 2024 Jorrit Rouwe
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <functional>
|
||||
|
||||
// Responsible for opening the main window
|
||||
class ApplicationWindow
|
||||
{
|
||||
public:
|
||||
/// Destructor
|
||||
virtual ~ApplicationWindow() = default;
|
||||
|
||||
/// Initialize the window
|
||||
virtual void Initialize(const char *inTitle) = 0;
|
||||
|
||||
/// Get window size
|
||||
int GetWindowWidth() { return mWindowWidth; }
|
||||
int GetWindowHeight() { return mWindowHeight; }
|
||||
|
||||
/// Set callback when the window resizes
|
||||
using WindowResizeListener = std::function<void()>;
|
||||
void SetWindowResizeListener(const WindowResizeListener &inListener) { mWindowResizeListener = inListener; }
|
||||
|
||||
/// Enter the main loop and keep rendering frames until the window is closed
|
||||
using RenderCallback = std::function<bool()>;
|
||||
virtual void MainLoop(RenderCallback inRenderCallback) = 0;
|
||||
|
||||
/// Function that will trigger the callback
|
||||
void OnWindowResized(int inWidth, int inHeight) { mWindowWidth = inWidth; mWindowHeight = inHeight; if (mWindowResizeListener) { mWindowResizeListener(); } }
|
||||
|
||||
protected:
|
||||
int mWindowWidth = 1920;
|
||||
int mWindowHeight = 1080;
|
||||
WindowResizeListener mWindowResizeListener;
|
||||
};
|
||||
Reference in New Issue
Block a user