From fbad0cc670fc12f135af2a60f4af2aa9bd93cf9c Mon Sep 17 00:00:00 2001

From: =?UTF-8?q?Jaakko=20Ker=C3=A4nen?= jaakko.keranen@iki.fi

Date: Sun, 29 Aug 2021 15:52:06 +0300

Subject: [PATCH 1/1] Fixed running under KMSDRM video driver on Linux

SDL2 works fine without a window system, but it seems the DPI-querying

API will crash so let's not call that.

Should still add command line options to control the screen resolution,

i.e., overriding the window size.


src/app.c | 14 +++++++++++++-

src/app.h | 2 ++

src/ui/window.c | 13 ++++++++-----

3 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/src/app.c b/src/app.c

index bf781c03..f8dc5697 100644

--- a/src/app.c

+++ b/src/app.c

@@ -122,6 +122,7 @@ struct Impl_App {

 uint32_t     lastTickerTime;

 uint32_t     elapsedSinceLastTicker;

 iBool        isRunning;

#if defined (LAGRANGE_ENABLE_IDLE_SLEEP)

 iBool        isIdling;

 uint32_t     lastEventTime;

@@ -626,6 +627,12 @@ static iBool hasCommandLineOpenableScheme_(const iRangecc uri) {

}

static void init_App_(iApp *d, int argc, char **argv) {

+#if defined (iPlatformLinux)

+#else

+#endif

 init_CommandLine(&d->args, argc, argv);

 /* Where was the app started from? We ask SDL first because the command line alone is

    not a reliable source of this information, particularly when it comes to different

@@ -749,7 +756,8 @@ static void init_App_(iApp *d, int argc, char **argv) {

 mulfv_I2(&d->initialWindowRect.size, desktopDPI_Win32());

#endif

#if defined (iPlatformLinux)

     float vdpi;

     SDL_GetDisplayDPI(0, NULL, NULL, &vdpi);

     const float factor = vdpi / 96.0f;

@@ -1582,6 +1590,10 @@ enum iAppDeviceType deviceType_App(void) {

#endif

}

+iBool isRunningUnderWindowSystem_App(void) {

+}

iGmCerts *certs_App(void) {

 return app_.certs;

}

diff --git a/src/app.h b/src/app.h

index 5d1d42e1..55bec5a6 100644

--- a/src/app.h

+++ b/src/app.h

@@ -87,6 +87,8 @@ iBool isLandscape_App (void);

iLocalDef iBool isPortrait_App (void) { return !isLandscape_App(); }

enum iAppDeviceType deviceType_App (void);

iLocalDef iBool isPortraitPhone_App (void) { return isPortrait_App() && deviceType_App() == phone_AppDeviceType; }

+iBool isRunningUnderWindowSystem_App (void);

iGmCerts * certs_App (void);

iVisited * visited_App (void);

iBookmarks * bookmarks_App (void);

diff --git a/src/ui/window.c b/src/ui/window.c

index ebb4d1a8..f8391ed9 100644

--- a/src/ui/window.c

+++ b/src/ui/window.c

@@ -278,11 +278,14 @@ static float displayScale_Window_(const iWindow *d) {

 iUnused(d);

 return desktopDPI_Win32();

#else

-// printf("DPI: %f\n", vdpi);

+// printf("DPI: %f\n", vdpi);

#endif

}

--

2.25.1

Proxy Information
Original URL
gemini://git.skyjake.fi/lagrange/work%2Fv1.10/patch/fbad0cc670fc12f135af2a60f4af2aa9bd93cf9c.patch
Status Code
Success (20)
Meta
text/plain
Capsule Response Time
157.453754 milliseconds
Gemini-to-HTML Time
1.238347 milliseconds

This content has been proxied by September (ba2dc).