le3d - LightEngine 3D
A straightforward C++ 3D software engine for real-time graphics
window.h
Go to the documentation of this file.
1 
33 #ifndef LE_WINDOW_H
34 #define LE_WINDOW_H
35 
36 #include "global.h"
37 #include "config.h"
38 
39 /*****************************************************************************/
44 typedef enum {
51 
56 typedef enum {
63 
64 typedef enum {
77 
78 #if LE_WINDOW_EXTENDED_KEYS == 1
79  LE_WINDOW_KEYCODE_INSERT = 12,
80  LE_WINDOW_KEYCODE_DELETE = 13,
81  LE_WINDOW_KEYCODE_HOME = 14,
82  LE_WINDOW_KEYCODE_END = 15,
83  LE_WINDOW_KEYCODE_PAGEUP = 16,
84  LE_WINDOW_KEYCODE_PAGEDOWN = 17,
85 #endif
86 
88 
89 /*****************************************************************************/
94 typedef struct {
99 
100 /*****************************************************************************/
105 class LeWindow
106 {
107 public:
108  LeWindow(const char * name, int width = LE_RESOX_DEFAULT, int height = LE_RESOY_DEFAULT, bool fullscreen = false);
109  ~LeWindow();
110 
111  void update();
112 
113  void setFullScreen();
114  void setWindowed();
115 
118 
119  typedef void (* KeyCallback) (int key, int state);
120  typedef void (* MouseCallback) (int x, int y, int buttons);
121 
122  void registerKeyCallback(KeyCallback callback);
123  void registerMouseCallback(MouseCallback callback);
124 
125  void sendKeyEvent(int code, int state);
126  void sendMouseEvent(int x, int y, int buttons);
127 
128  int width;
129  int height;
130  bool fullScreen;
131  bool visible;
133 private:
134  char * title;
135  LeHandle handle;
136  LeDrawingContext dc;
138  KeyCallback keyCallback;
139  MouseCallback mouseCallback;
140 };
141 
142 #endif // LE_WINDOW_H
Definition: window.h:46
Definition: window.h:76
Definition: window.h:47
Represent an OS specific drawing context.
Definition: window.h:94
Definition: window.h:66
Definition: window.h:58
Definition: window.h:74
Definition: window.h:73
void registerKeyCallback(KeyCallback callback)
Register a callback to receive keyboard events associated to the window.
Definition: window_win.cpp:173
LeHandle window
Definition: window.h:96
void setFullScreen()
Set the window to fullscreen mode.
Definition: window_win.cpp:310
Create and handle an OS native window.
Definition: window.h:105
LightEngine 3D: General engine configuration file.
void(* KeyCallback)(int key, int state)
Definition: window.h:119
LightEngine 3D: Global helpers and definitions.
int width
Definition: window.h:128
LeWindow(const char *name, int width=LE_RESOX_DEFAULT, int height=LE_RESOY_DEFAULT, bool fullscreen=false)
Definition: window_win.cpp:57
LeHandle display
Definition: window.h:95
LeHandle getHandle()
Retrieve the native OS window handle.
Definition: window_win.cpp:152
Definition: window.h:75
void setWindowed()
Set the window to windowed mode.
Definition: window_win.cpp:343
Definition: window.h:71
Definition: window.h:48
LeDrawingContext getContext()
Retrieve the native OS window graphic context.
Definition: window_win.cpp:162
void registerMouseCallback(MouseCallback callback)
Register a callback to receive mouse events associated to the window.
Definition: window_win.cpp:183
LeHandle gc
Definition: window.h:97
Definition: window.h:72
Definition: window.h:70
#define LE_RESOX_DEFAULT
Definition: config.h:37
Definition: window.h:59
Definition: window.h:57
#define LE_RESOY_DEFAULT
Definition: config.h:38
LE_WINDOW_KEY_CODES
Definition: window.h:64
bool fullScreen
Definition: window.h:130
unsigned long long LeHandle
Definition: global.h:41
void sendKeyEvent(int code, int state)
Send a keyboard event to the window.
Definition: window_win.cpp:195
void sendMouseEvent(int x, int y, int buttons)
Send a mouse event to the window.
Definition: window_win.cpp:208
Definition: window.h:45
LE_WINDOW_KEY_STATES
Definition: window.h:56
int height
Definition: window.h:129
~LeWindow()
Definition: window_win.cpp:92
void update()
Update window state and process events.
Definition: window_win.cpp:141
bool visible
Definition: window.h:131
Definition: window.h:67
void(* MouseCallback)(int x, int y, int buttons)
Definition: window.h:120
Definition: window.h:68
Definition: window.h:69
Definition: window.h:65
Definition: window.h:61
Definition: window.h:60
LE_WINDOW_MOUSE_BUTTONS
mouse buttons identifiers
Definition: window.h:44
Definition: window.h:49