diff options
| author | Fabrice <fabrice@schaub-dev.xyz> | 2026-02-12 12:14:51 +0100 |
|---|---|---|
| committer | Fabrice <fabrice@schaub-dev.xyz> | 2026-02-12 12:14:51 +0100 |
| commit | 6e6a000b28880d0163ee5769dd571e3287f35b14 (patch) | |
| tree | f3cd9340b868167832c4a03dbb12b36cd6dcb84a /src/graphics.cc | |
| parent | 2c799d944d1f2e4daa2a67d8fb435ddfbfe3946c (diff) | |
weird
Diffstat (limited to 'src/graphics.cc')
| -rw-r--r-- | src/graphics.cc | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/graphics.cc b/src/graphics.cc index 44a4333..40e67ab 100644 --- a/src/graphics.cc +++ b/src/graphics.cc @@ -117,6 +117,9 @@ enum renderer_error_e wayc_renderer_init(struct renderer_s* renderer, return RENDERER_ERROR_SURFACE_CREATION; } + sg_desc desc = {}; + sg_setup(&desc); + renderer->graphics = graphics; renderer->ewindow = ewindow; renderer->esurface = esurface; @@ -132,6 +135,34 @@ enum renderer_error_e wayc_renderer_init(struct renderer_s* renderer, return RENDERER_ERROR_NONE; } +void wayc_renderer_begin(struct renderer_s* renderer) { + wayc_notnull(renderer); + + sg_gl_swapchain gl_swap = {}; + gl_swap.framebuffer = 0; + + sg_swapchain swap = {}; + swap.gl = gl_swap; + swap.width = renderer->width; + swap.height = renderer->height; + + sg_pass pass = {}; + pass.swapchain = swap; + + sg_begin_pass(&pass); +} + +void wayc_renderer_end(struct renderer_s* renderer) { + wayc_notnull(renderer); + + struct graphics_s* graphics = renderer->graphics; + + sg_end_pass(); + sg_commit(); + + eglSwapBuffers(graphics->display, renderer->esurface); +} + void wayc_renderer_deinit(struct renderer_s* renderer) { wayc_notnull(renderer); @@ -139,6 +170,8 @@ void wayc_renderer_deinit(struct renderer_s* renderer) { renderer->ewindow == nullptr) return; + sg_shutdown(); + eglDestroySurface(renderer->graphics->display, renderer->esurface); wl_egl_window_destroy(renderer->ewindow); |
