bluecore/engine/RenderWindow.h

71 lignes
1.6 KiB
C++

#ifndef BLUECORE_RENDER_WINDOW_H
#define BLUECORE_RENDER_WINDOW_H
// system includes
#include <vector>
// library includes
#include "GL/glew.h"
#include "GL/glfw.h"
// project includes
#include "Math/Vector.h"
#include "Utilities/sigslot.h"
#include "Utilities/Referenced.h"
namespace BlueCore
{
class RenderWindow : public Referenced
{
private:
static void WindowSizeCallback(int width, int height);
static int WindowCloseCallback();
static void WindowRefreshCallback();
static void MousePosCallback(int x, int y);
static void MouseButtonCallback(int button, int action);
static void MouseWheelCallback(int pos);
static void KeyCallback(int key, int action);
static void CharCallback(int character, int action);
bool _Resized;
bool _Initialized;
bool _Closed;
int _Width, _Height;
void resizeWindow(int width, int height);
public:
sigslot::signal0<> WindowCloseSignal;
sigslot::signal2<int, int> WindowResizeSignal;
sigslot::signal0<> WindowRefreshSignal;
sigslot::signal2<int, int> MouseMoveSignal;
sigslot::signal2<int, int> MouseButtonSignal;
sigslot::signal1<int> MouseWheelSignal;
sigslot::signal2<int, int> KeySignal;
sigslot::signal1<int> CharSignal;
public:
RenderWindow();
~RenderWindow();
bool create(int width, int height, int pixelbits, int depthbits,
int stencilbits, bool fullscreen);
void destroy();
void closeWindow();
int getWidth();
int getHeight();
bool isOpen();
};
}
#endif