Fling Engine  0.00.1
Fling Engine is a game engine written in Vulkan
FlingWindow.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "pch.h"
4 #include "FlingTypes.h"
5 #include "NonCopyable.hpp"
6 
7 namespace Fling
8 {
10  struct WindowProps
11  {
12  UINT32 m_Width = 800;
14  std::string m_Title = "Fling Engine";
15  };
16 
20  class FlingWindow : public NonCopyable
21  {
22  public:
23 
25  static FlingWindow* Create(const WindowProps& t_Props);
26 
27  virtual ~FlingWindow() = default;
28 
30  virtual void Update() = 0;
31 
33  virtual void CreateSurface(void* t_GraphicsInstance, void* t_SurfData) = 0;
34 
36  virtual void RecreateSwapChain() = 0;
37 
39  virtual UINT32 GetWidth() const = 0;
40 
42  virtual UINT32 GetHeight() const = 0;
43 
45  virtual float GetAspectRatio() const = 0;
46 
48  virtual int ShouldClose() = 0;
49 
54  virtual bool IsMinimized() const = 0;
55  };
56 } // namespace Fling
UINT32 m_Height
Definition: FlingWindow.h:13
UINT32 m_Width
Definition: FlingWindow.h:12
Window creation data.
Definition: FlingWindow.h:10
Base class that represents a window to the Fling Engine.
Definition: FlingWindow.h:20
std::string m_Title
Definition: FlingWindow.h:14
Class that removes the copy operator and constructor.
Definition: NonCopyable.hpp:10
uint32_t UINT32
Definition: FlingTypes.h:10
Definition: Engine.h:13