diff options
Diffstat (limited to 'src/sfwk-wpe.c')
| -rw-r--r-- | src/sfwk-wpe.c | 35 |
1 files changed, 11 insertions, 24 deletions
diff --git a/src/sfwk-wpe.c b/src/sfwk-wpe.c index ee6281e..f967278 100644 --- a/src/sfwk-wpe.c +++ b/src/sfwk-wpe.c @@ -5,8 +5,8 @@ #include "glib-object.h" #include "glib.h" +#include "glibconfig.h" #include "saffron_api.h" -#include "wpe/wpe-platform.h" #include <EGL/egl.h> #include <SDL3/SDL_video.h> #include <saffron.h> @@ -43,11 +43,11 @@ static void on_load_changed(WebKitWebView *web_view, WebKitLoadEvent load_event, case WEBKIT_LOAD_COMMITTED: event_str = "COMMITTED"; break; case WEBKIT_LOAD_FINISHED: event_str = "FINISHED"; break; } - g_debug("=== WEBKIT LOAD EVENT: %s ===", event_str); + g_debug("[sfwk] WebKit load event: %s", event_str); } static void on_load_failed(WebKitWebView *web_view, WebKitLoadEvent load_event, const char *failing_uri, GError *error, gpointer userdata) { - g_warning("=== WEBKIT LOAD FAILED === URI: %s, Error: %s", failing_uri, error->message); + g_warning("[sfwk] WebKit load failed (T_T): URI: %s, Error: %s", failing_uri, error->message); } static void @@ -122,16 +122,9 @@ wpe_toplevel_sdl3_render(WPEToplevelSDL3 *self, SDL_Renderer* renderer, WPEView if (image != EGL_NO_IMAGE) display->destroyImage(display->egl_display, image); - // At this point the SDL_Texture contains the data to render. - if (!SDL_RenderTexture(renderer, self->texture, NULL, NULL)) { - g_set_error(error, WPE_VIEW_ERROR, WPE_VIEW_ERROR_RENDER_FAILED, - "Cannot render SDL texture: %s", SDL_GetError()); - return FALSE; - } + // don't render here because draw function does stuff } else { - g_debug("SFWK: No buffer found, clearing to white"); - SDL_SetRenderDrawColor(renderer, 255, 255, 255, SDL_ALPHA_OPAQUE); - SDL_RenderClear(renderer); + g_debug("SFWK: no buffer found T_T"); } return TRUE; @@ -567,17 +560,6 @@ static bool sfwk_webview_ensure_initialized(SFWKWebView* webview) { WPEDisplaySDL3 *display_impl = WPE_DISPLAY_SDL3(webview->context->display); display_impl->egl_display = saved_egl_display; - // webview->wpe.toplevel = wpe_toplevel_sdl3_new(webview->context->display); - // webview->wpe.wpeview = wpe_view_sdl3_new(webview->context->display); - // ((WPEViewSDL3*)webview->wpe.wpeview)->userdata = webview; - // wpe_view_set_toplevel(webview->wpe.wpeview, webview->wpe.toplevel); - // - // g_debug("Setting toplevel size to %dx%d", webview->w, webview->h); - // wpe_toplevel_resize(webview->wpe.toplevel, webview->w, webview->h); - // - // webview->wpe.wkwebview = g_object_new(WEBKIT_TYPE_WEB_VIEW, "display", webview->context->display, NULL); - // g_debug("sfwk: WebKitWebView created: %p", webview->wpe.wkwebview); - webview->wpe.wkwebview = g_object_new(WEBKIT_TYPE_WEB_VIEW, "display", webview->context->display, NULL); webview->wpe.wpeview = webkit_web_view_get_wpe_view(webview->wpe.wkwebview); ((WPEViewSDL3*)webview->wpe.wpeview)->userdata = webview; @@ -586,6 +568,10 @@ static bool sfwk_webview_ensure_initialized(SFWKWebView* webview) { wpe_toplevel_resize(webview->wpe.toplevel, webview->w, webview->h); + // TODO: Add audio handlers around here + WebKitSettings* settings = webkit_web_view_get_settings(webview->wpe.wkwebview); + webkit_settings_set_enable_webaudio(settings, TRUE); + g_signal_connect(webview->wpe.wkwebview, "load-changed", G_CALLBACK(on_load_changed), webview); g_signal_connect(webview->wpe.wkwebview, "load-failed", G_CALLBACK(on_load_failed), webview); if (webview->url) { @@ -766,6 +752,7 @@ SFWKWebView* sfwk_webview_new(SFWKContext* context, const char* url, int w, int saffron_widget_init((SaffronWidget*)webview); ((SaffronWidget*)webview)->type = SAFFRON_WIDGET_UNKNOWN; // saffron does not have a builtin for webviews, and i cant be bothered to add one because "if you have to edit the library, it's not extensible" - arslaan 2026 + // TODO for saffron: Maybe instead of checking type enums, just have the objects themselves have pre-layout/post-layout functions. thats PEAK ((SaffronWidget*)webview)->w = webview->w = w; ((SaffronWidget*)webview)->h = webview->h = h; ((SaffronWidget*)webview)->draw = sfwk_webview_draw; @@ -777,7 +764,7 @@ SFWKWebView* sfwk_webview_new(SFWKContext* context, const char* url, int w, int webview->wpe.initialized = FALSE; webview->window = NULL; - // ensure initialized will init this later + // ensure initialized will init this later ^_^ return webview; } |
