summaryrefslogtreecommitdiff
path: root/src/rendering/include/engine
diff options
context:
space:
mode:
author0scar <qgt268@alumni.ku.dk>2024-02-06 11:52:32 +0000
committer0scar <qgt268@alumni.ku.dk>2024-02-06 11:52:32 +0000
commitc7a3dcdc8a26eb5bf98ce2079abd66fd64534459 (patch)
treeff5c572f94c3bf3e11e7f9e75e617d4454cc263a /src/rendering/include/engine
parent3705b14a4b2ac0d6baa418f08991424cfad89891 (diff)
Fixup window handling & rendering
Diffstat (limited to 'src/rendering/include/engine')
-rw-r--r--src/rendering/include/engine/rendering/rendering.h62
-rw-r--r--src/rendering/include/engine/rendering/window.h43
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