diff options
Diffstat (limited to 'src/rendering.c')
| -rw-r--r-- | src/rendering.c | 93 |
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}, }}; } |
