2022-12-21 07:09:29 +01:00
|
|
|
#ifndef GUARD_F247452E0BF1EC9CD9131C2A6FD281CA
|
|
|
|
#define GUARD_F247452E0BF1EC9CD9131C2A6FD281CA
|
|
|
|
|
2023-01-12 06:10:47 +01:00
|
|
|
#include "framebuffer.h"
|
2023-03-08 19:38:58 +01:00
|
|
|
#include "renderer.h"
|
2023-01-12 06:10:47 +01:00
|
|
|
#include "types.h"
|
2022-12-21 07:09:29 +01:00
|
|
|
#include "vec2i.h"
|
|
|
|
|
2023-03-22 05:12:14 +01:00
|
|
|
#define SW_WINDOW_TRANS 0x01
|
|
|
|
|
2022-12-21 07:26:51 +01:00
|
|
|
struct GLFWwindow;
|
2022-12-21 07:09:29 +01:00
|
|
|
|
2022-12-22 10:05:39 +01:00
|
|
|
struct sw_window {
|
2023-01-14 05:48:58 +01:00
|
|
|
struct sw_vec2i game_size;
|
|
|
|
struct sw_vec2i window_size;
|
2023-01-12 06:10:47 +01:00
|
|
|
i32 scaler;
|
2022-12-21 07:09:29 +01:00
|
|
|
|
2022-12-21 07:26:51 +01:00
|
|
|
struct GLFWwindow *_window;
|
2023-01-12 06:10:47 +01:00
|
|
|
struct sw_framebuffer *_scaler_fb;
|
2023-03-08 19:38:58 +01:00
|
|
|
|
|
|
|
struct sw_renderer **_renderers;
|
|
|
|
u32 _renderer_count;
|
2022-12-21 07:09:29 +01:00
|
|
|
};
|
|
|
|
|
2023-03-22 05:12:14 +01:00
|
|
|
struct sw_window *
|
|
|
|
sw_window_create(struct sw_vec2i size, char *title, u32 flags);
|
2022-12-21 07:09:29 +01:00
|
|
|
|
2023-03-08 19:38:58 +01:00
|
|
|
void sw_window_run(struct sw_window *window);
|
|
|
|
void sw_window_add_renderer(
|
|
|
|
struct sw_window *window, struct sw_renderer *renderer, sw_render_cb cb
|
|
|
|
);
|
2022-12-22 05:52:59 +01:00
|
|
|
|
2022-12-21 07:09:29 +01:00
|
|
|
#endif /* GUARD_F247452E0BF1EC9CD9131C2A6FD281CA */
|