nngn
Loading...
Searching...
No Matches
glfw.h
Go to the documentation of this file.
1#ifndef NNGN_GRAPHICS_GLFW_H
2#define NNGN_GRAPHICS_GLFW_H
3
4#include "utils/utils.h"
5
6#include "graphics.h"
7
8namespace nngn {
9
10class GLFWBackend : public Graphics {
11 struct CallbackData {
12 Graphics *p = {};
17 void *size_cb_data = {};
18 void *key_cb_data = {};
22protected:
24 GLFWwindow *w = nullptr;
27 bool create_window(void);
28public:
30 GLFWBackend(void) = default;
31 explicit GLFWBackend(const Parameters &p) : params(p) {}
32 ~GLFWBackend(void) override;
33 bool init_glfw(void) const;
34 bool window_closed(void) const final;
35 int swap_interval(void) const final { return this->m_swap_interval; }
36 nngn::uvec2 window_size(void) const override;
37 void get_keys(size_t n, int32_t *keys) const override;
38 ivec2 mouse_pos(void) const override;
39 void set_swap_interval(int i) override;
40 void set_window_title(const char *t) final;
41 void set_cursor_mode(CursorMode m) final;
42 void set_size_callback(void *data, size_callback_f f) override;
43 void set_key_callback(void *data, key_callback_f f) override;
45 void *data, mouse_button_callback_f f) override;
47 void *data, mouse_move_callback_f f) override;
48 void resize(int, int) override {}
49 void set_camera(const Camera &c) override { this->camera = c; }
50 void poll_events(void) const final;
51 bool render(void) override;
52};
53
54}
55
56#endif
Definition: glfw.h:10
void set_key_callback(void *data, key_callback_f f) override
Definition: glfw.cpp:97
void set_mouse_move_callback(void *data, mouse_move_callback_f f) override
Definition: glfw.cpp:122
void set_cursor_mode(CursorMode m) final
Definition: glfw.cpp:78
void set_swap_interval(int i) override
Definition: glfw.cpp:70
void get_keys(size_t n, int32_t *keys) const override
Definition: glfw.cpp:58
~GLFWBackend(void) override
Definition: glfw.cpp:22
struct nngn::GLFWBackend::CallbackData callback_data
bool render(void) override
Definition: glfw.cpp:136
bool init_glfw(void) const
Definition: glfw.cpp:28
void resize(int, int) override
Definition: glfw.h:48
Camera camera
Definition: glfw.h:26
bool create_window(void)
Definition: glfw.cpp:36
void set_size_callback(void *data, size_callback_f f) override
Definition: glfw.cpp:84
void set_mouse_button_callback(void *data, mouse_button_callback_f f) override
Definition: glfw.cpp:108
void set_window_title(const char *t) final
Definition: glfw.cpp:74
nngn::uvec2 window_size(void) const override
Definition: glfw.cpp:52
int m_swap_interval
Definition: glfw.h:23
bool window_closed(void) const final
Definition: glfw.cpp:48
int swap_interval(void) const final
Definition: glfw.h:35
ivec2 mouse_pos(void) const override
Definition: glfw.cpp:64
void set_camera(const Camera &c) override
Definition: glfw.h:49
void poll_events(void) const final
Definition: glfw.cpp:135
GLFWwindow * w
Definition: glfw.h:24
Parameters params
Definition: glfw.h:25
Definition: debug.h:45
m
Definition: input.lua:19
function f()) end
Definition: glfw.h:11
void * size_cb_data
Definition: glfw.h:17
void * key_cb_data
Definition: glfw.h:18
size_callback_f size_cb
Definition: glfw.h:13
mouse_button_callback_f mouse_button_cb
Definition: glfw.h:15
mouse_move_callback_f mouse_move_cb
Definition: glfw.h:16
Graphics * p
Definition: glfw.h:12
void * mouse_move_cb_data
Definition: glfw.h:20
void * mouse_button_cb_data
Definition: glfw.h:19
key_callback_f key_cb
Definition: glfw.h:14
Definition: graphics.h:192
Definition: graphics.h:109
Definition: graphics.h:99
void(*)(void *, int, int, int, int) key_callback_f
Definition: graphics.h:101
void(*)(void *, dvec2) mouse_move_callback_f
Definition: graphics.h:103
CursorMode
Definition: graphics.h:191
void(*)(void *, uvec2) size_callback_f
Definition: graphics.h:100
void(*)(void *, int, int, int) mouse_button_callback_f
Definition: graphics.h:102
#define NNGN_MOVE_ONLY(x)
Definition: utils.h:39