From 6e6a000b28880d0163ee5769dd571e3287f35b14 Mon Sep 17 00:00:00 2001 From: Fabrice Date: Thu, 12 Feb 2026 12:14:51 +0100 Subject: weird --- src/graphics.cc | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/graphics.cc') 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); -- cgit v1.2.3