diff options
| author | 0scar <qgt268@alumni.ku.dk> | 2024-02-06 11:52:32 +0000 |
|---|---|---|
| committer | 0scar <qgt268@alumni.ku.dk> | 2024-02-06 11:52:32 +0000 |
| commit | c7a3dcdc8a26eb5bf98ce2079abd66fd64534459 (patch) | |
| tree | ff5c572f94c3bf3e11e7f9e75e617d4454cc263a /src/rendering/include | |
| parent | 3705b14a4b2ac0d6baa418f08991424cfad89891 (diff) | |
Fixup window handling & rendering
Diffstat (limited to 'src/rendering/include')
| -rw-r--r-- | src/rendering/include/engine/rendering/rendering.h | 62 | ||||
| -rw-r--r-- | src/rendering/include/engine/rendering/window.h | 43 |
2 files changed, 70 insertions, 35 deletions
diff --git a/src/rendering/include/engine/rendering/rendering.h b/src/rendering/include/engine/rendering/rendering.h index 6ae6535..4bfbf16 100644 --- a/src/rendering/include/engine/rendering/rendering.h +++ b/src/rendering/include/engine/rendering/rendering.h @@ -30,43 +30,42 @@ typedef struct { #include <engine/ui.h> /* Rendering functions */ -void render_begin(Window* w); -void render_present(Window* w); +void render_begin(Window w); +void render_present(Window w); void drawcall_reset(void); -void render(Window* w); +void render(Window w); /* Misc */ -void window_size_callback(GLFWwindow* window, i32 width, i32 height); -void engine_window_resize_pointers(i32* w, i32* h); -void engine_window_resize_pointers_reset(void); +//void window_size_callback(GLFWwindow* window, i32 width, i32 height); +//void engine_window_resize_pointers(i32* w, i32* h); +//void engine_window_resize_pointers_reset(void); /* UI rendering */ /* See rendering_ui.c for implementation */ i64 engine_render_text(i32 font_id, Engine_color fg, char* text, v2_i32* size_out, bool wrapped); -void engine_draw_uitree(UITree* t); void engine_draw_sprite(Sprite* s, v2_i32* pos, f32 scale); void engine_draw_sprite_ex(Sprite* s, v2_i32* pos, f32 scale, Engine_color colormod); Sprite sprite_new(u64 tid, u8 coord); -#ifdef ENGINE_INTERNALS -#include <engine/engine.h> - -//#include <glad/gl.h> -//#define GLFW_INCLUDE_NONE -//#include <GLFW/glfw3.h> - -#define TEXTURES_INCREMENT 512 - +//#ifdef ENGINE_INTERNALS +//#include <engine/engine.h> +// +////#include <glad/gl.h> +////#define GLFW_INCLUDE_NONE +////#include <GLFW/glfw3.h> +// +//#define TEXTURES_INCREMENT 512 +// typedef enum { RenderDrawCallType_UITree, /*RenderDrawCallType_UIButton,*/ RenderDrawCallType_Text, RenderDrawCallType_Sprite, } RenderDrawCallType; - +// typedef struct { RenderDrawCallType type; union { @@ -79,23 +78,16 @@ typedef struct { } sprite; } data; } RenderDrawCall; - -struct RenderObject { - u32 vao; - u32 vbo; - u32 col; - u32 shaderprogram; - f32 g_vertex_buffer_data[9]; -}; - -void render_uitree(Window* w, UITree* t); - -void render_container(Window* w, UITree_container* t); -void render_button(Window* w, UITree_button* t); -void render_title(Window* w, UITree_title* t); -void render_text(Window* w, UITree_text* t); -v2_i32 elem_size(UITree* root); - -#endif +// +//struct RenderObject { +// u32 vao; +// u32 vbo; +// u32 col; +// u32 shaderprogram; +// f32 g_vertex_buffer_data[9]; +//}; +// +// +//#endif #endif diff --git a/src/rendering/include/engine/rendering/window.h b/src/rendering/include/engine/rendering/window.h new file mode 100644 index 0000000..16a0336 --- /dev/null +++ b/src/rendering/include/engine/rendering/window.h @@ -0,0 +1,43 @@ +#ifndef WINDOW_H +#define WINDOW_H + +#include <engine/core/types.h> +#include <cglm/cglm.h> + +enum Window_framework { + WINDOW_FRAMEWORK_NONE = 0, + WINDOW_FRAMEWORK_GLFW, +}; + +typedef enum Window_framework Window_framework; + +enum Window_renderer { + WINDOW_RENDERER_NONE = 0, + WINDOW_RENDERER_OPENGL, +}; + +typedef enum Window_renderer Window_renderer; + +struct Window { + // Specifies the framwork & renderer combo used. + Window_framework framework; + Window_renderer renderer; + // Window *buffer* size, in pixels. + ivec2 windowsize; + + // These are used differently depending on the framework / renderer combo. + // Subject to change to a union of backend-dependent structs + void* window; + void* context; +}; + +typedef struct Window* Window; + +// Window function +Window init_window_glfw(const char* windowtitle, ivec2 windowsize, const u32 flags); +void destroy_window(Window w); + +// Renderer intializer(s) +void init_render_opengl(Window w); + +#endif |
