46 lines
1.1 KiB
C++
Executable File
46 lines
1.1 KiB
C++
Executable File
#pragma once
|
|
#include "DeerRender/Events/Event.h"
|
|
#include "Deer/Path.h"
|
|
|
|
#include <string>
|
|
#include <functional>
|
|
|
|
namespace Deer {
|
|
struct WindowProps {
|
|
std::string title;
|
|
unsigned int width;
|
|
unsigned int height;
|
|
|
|
WindowProps(const std::string& _title = "Deer Engine",
|
|
unsigned int _width = 1280,
|
|
unsigned int _height = 720)
|
|
: title(_title), width(_width), height(_height) {
|
|
}
|
|
};
|
|
|
|
class Window {
|
|
public:
|
|
virtual ~Window() = default;
|
|
virtual void initWindow() = 0;
|
|
|
|
virtual void onRender() = 0;
|
|
virtual void clear() = 0;
|
|
virtual void resolveEvents() = 0;
|
|
|
|
inline virtual int getWitdth() const = 0;
|
|
inline virtual int getHeight() const = 0;
|
|
|
|
virtual void setEventCallback(std::function<void(Event&)>) = 0;
|
|
virtual void setVSync(bool enabled) = 0;
|
|
inline virtual bool isVSync() const = 0;
|
|
|
|
virtual bool getKeyPressed(unsigned int key) = 0;
|
|
virtual bool getMouseButton(int button) = 0;
|
|
virtual void getMousePos(float& x, float& y) = 0;
|
|
virtual void initImGUI() = 0;
|
|
|
|
virtual Path folderDialog(const char*) = 0;
|
|
|
|
static Window* create(const WindowProps& props = WindowProps());
|
|
};
|
|
} |