summaryrefslogtreecommitdiff
path: root/src/rendering.c
diff options
context:
space:
mode:
author0scar <qgt268@alumni.ku.dk>2024-02-01 21:27:06 +0000
committer0scar <qgt268@alumni.ku.dk>2024-02-05 07:04:09 +0000
commit37a9f55ecd39f99aa800adc875555ecd613722c4 (patch)
treed7f5913db2cb11804c2d5aa564207678932ee5be /src/rendering.c
parentd8b46657425c6b806584d10fa50b11d49ba03850 (diff)
Fixme!
Diffstat (limited to 'src/rendering.c')
-rw-r--r--src/rendering.c93
1 files changed, 41 insertions, 52 deletions
diff --git a/src/rendering.c b/src/rendering.c
index 100a19b..5d078fa 100644
--- a/src/rendering.c
+++ b/src/rendering.c
@@ -1,9 +1,11 @@
#include <stdio.h>
#include <string.h>
-#include <SDL2/SDL.h>
-#include <SDL2/SDL_image.h>
-#include <SDL2/SDL_ttf.h>
+#define GLAD_GL_IMPLEMENTATION
+#include <glad/gl.h>
+//#define GLFW_INCLUDE_NONE
+#include <GLFW/glfw3.h>
+
#define ENGINE_INTERNALS
#include <engine/engine.h>
@@ -17,64 +19,51 @@ extern Platform* GLOBAL_PLATFORM;
RenderDrawCall drawcalls[drawcall_limit];
i32 drawcall_len = 0;
+//struct RenderObject;
+
/* Implementations */
/* Clear the screen,
* To be used inbetween draw calls */
void render_begin(Window* w) {
-#ifdef _DEBUG
- SDL_SetRenderDrawColor(w->renderer, 0x10, 0x0a, 0x33, 0x00);
-#else
- SDL_SetRenderDrawColor(w->renderer, 0x00, 0x00, 0x00, 0x00);
-#endif
- SDL_RenderClear(w->renderer);
+ //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glClear(GL_COLOR_BUFFER_BIT );
}
void render_present(Window* w) {
- for (i32 i = 0; i < drawcall_len; i++) {
- RenderDrawCall dc = drawcalls[i];
- switch (dc.type) {
- case RenderDrawCallType_UITree:
- render_uitree(w, dc.data.data);
- break;
- case RenderDrawCallType_Text:
- LOG("RenderDrawCallType_Text rendering not implemented!");
- break;
- case RenderDrawCallType_Sprite: {
-#ifdef _DEBUG
- if (dc.data.sprite.sprite == NULL) {
- __asm__("int3;");
- WARN("Sprite %lx in drawcall %d/%d had NULL reference",
- dc.data.sprite.sprite, i, drawcall_len);
-
- drawcall_len = 0;
- SDL_RenderPresent(w->renderer);
- exit(EXIT_FAILURE);
- }
-#endif
- Sprite s = *dc.data.sprite.sprite;
- Texture* t =
- ((struct Resources*)GLOBAL_PLATFORM->data)->textures[s.texture_id];
- i32 ts = t->tilesize;
- SDL_Rect src = {s.coord.x, s.coord.y, ts, ts};
- SDL_Rect dst = {
- dc.data.sprite.x,
- dc.data.sprite.y,
- ts * dc.data.sprite.scale,
- ts * dc.data.sprite.scale,
- };
- SDL_SetTextureColorMod(t->texture, dc.data.sprite.mod.r,
- dc.data.sprite.mod.g, dc.data.sprite.mod.b);
- SDL_RenderCopy(w->renderer, t->texture, &src, &dst);
- } break;
- default:
- break;
- }
- }
+// for (i32 i = 0; i < drawcall_len; i++) {
+// RenderDrawCall dc = drawcalls[i];
+// switch (dc.type) {
+// case RenderDrawCallType_UITree:
+// render_uitree(w, dc.data.data);
+// break;
+// case RenderDrawCallType_Text:
+// LOG("RenderDrawCallType_Text rendering not implemented!");
+// break;
+// case RenderDrawCallType_Sprite: {
+//#ifdef _DEBUG
+// if (dc.data.sprite.sprite == NULL) {
+// __asm__("int3;");
+// WARN("Sprite %lx in drawcall %d/%d had NULL reference",
+// dc.data.sprite.sprite, i, drawcall_len);
+//
+// drawcall_len = 0;
+// exit(EXIT_FAILURE);
+// }
+//#endif
+// Sprite s = *dc.data.sprite.sprite;
+// Texture* t =
+// ((struct Resources*)GLOBAL_PLATFORM->data)->textures[s.texture_id];
+// i32 ts = t->tilesize;
+// } break;
+// default:
+// break;
+// }
+// }
drawcall_len = 0;
- SDL_RenderPresent(w->renderer);
+ glfwSwapBuffers(w->window);
}
void drawcall_reset(void) { drawcall_len = 0; }
@@ -107,7 +96,7 @@ void engine_draw_sprite(Sprite* s, v2_i32* pos, f32 scale) {
.x = pos->x,
.y = pos->y,
.scale = scale,
- .mod = {0xFF, 0xFF, 0xFF, 0xFF},
+ //.mod = {0xFF, 0xFF, 0xFF, 0xFF},
}};
}
@@ -124,7 +113,7 @@ void engine_draw_sprite_ex(Sprite* s, v2_i32* pos, f32 scale,
.x = pos->x,
.y = pos->y,
.scale = scale,
- .mod = {colormod.r, colormod.g, colormod.b, colormod.a},
+ //.mod = {colormod.r, colormod.g, colormod.b, colormod.a},
}};
}