# --- T2-COPYRIGHT-BEGIN --- # t2/package/*/tinyx/add-shadow.patch # Copyright (C) 2026 The T2 SDE Project # SPDX-License-Identifier: GPL-2.0 or patched project license # --- T2-COPYRIGHT-END --- diff --git a/kdrive/fbdev/fbdev.c b/kdrive/fbdev/fbdev.c index ae89381..3f8666d 100644 --- a/kdrive/fbdev/fbdev.c +++ b/kdrive/fbdev/fbdev.c @@ -32,6 +32,7 @@ extern int KdTsPhyScreen; const char *fbdevDevicePath = NULL; +Bool fbdevForceShadow = FALSE; static Bool fbdevMapFramebuffer(KdScreenInfo * screen); @@ -317,7 +318,7 @@ static Bool fbdevMapFramebuffer(KdScreenInfo * screen) KdMouseMatrix m; FbdevPriv *priv = screen->card->driver; - if (scrpriv->randr != RR_Rotate_0 || + if (fbdevForceShadow || scrpriv->randr != RR_Rotate_0 || priv->fix.type != FB_TYPE_PACKED_PIXELS) scrpriv->shadow = TRUE; else diff --git a/kdrive/fbdev/fbdev.h b/kdrive/fbdev/fbdev.h index ae4cb91..fa06625 100644 --- a/kdrive/fbdev/fbdev.h +++ b/kdrive/fbdev/fbdev.h @@ -48,6 +48,7 @@ typedef struct _fbdevScrPriv { } FbdevScrPriv; extern const char *fbdevDevicePath; +extern Bool fbdevForceShadow; Bool fbdevCardInit(KdCardInfo * card); diff --git a/kdrive/fbdev/fbinit.c b/kdrive/fbdev/fbinit.c index 7be0190..f3da344 100644 --- a/kdrive/fbdev/fbinit.c +++ b/kdrive/fbdev/fbinit.c @@ -76,6 +76,8 @@ void ddxUseMsg(void) ErrorF("\nXfbdev Device Usage:\n"); ErrorF ("-fb path Framebuffer device to use. Defaults to /dev/fb0\n"); + ErrorF + ("-shadow Render to a cached shadow buffer, flush dirty rects to fb\n"); ErrorF("\n"); } @@ -96,5 +98,10 @@ int ddxProcessArgument(int argc, char **argv, int i) exit(1); } + if (!strcmp(argv[i], "-shadow")) { + fbdevForceShadow = TRUE; + return 1; + } + return KdProcessArgument(argc, argv, i); }