pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/x11/mlterm x11/mlterm: Add support for 8-/4-bpp planar...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/4d4c522f344e
branches:  trunk
changeset: 381423:4d4c522f344e
user:      rin <rin%pkgsrc.org@localhost>
date:      Thu Jul 07 00:04:42 2022 +0000

description:
x11/mlterm: Add support for 8-/4-bpp planar fb found on NetBSD/amiga.

Requires amidisplaycc(4) driver from NetBSD-current. With older
drivers, automatically falls back to monochrome mode.

Bump revision.

diffstat:

 x11/mlterm/Makefile                                         |   4 +-
 x11/mlterm/distinfo                                         |   3 +-
 x11/mlterm/patches/patch-uitoolkit_fb_ui__display__wscons.c |  68 +++++++++++++
 3 files changed, 72 insertions(+), 3 deletions(-)

diffs (101 lines):

diff -r 64e7731cbaca -r 4d4c522f344e x11/mlterm/Makefile
--- a/x11/mlterm/Makefile       Wed Jul 06 23:23:10 2022 +0000
+++ b/x11/mlterm/Makefile       Thu Jul 07 00:04:42 2022 +0000
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.171 2022/07/02 03:17:04 rin Exp $
+# $NetBSD: Makefile,v 1.172 2022/07/07 00:04:42 rin Exp $
 
 DISTNAME=      mlterm-3.9.2
 DIST_SUBDIR=   ${PKGNAME_NOREV}        # for re-tagged 3.9.2
-PKGREVISION=   2
+PKGREVISION=   3
 CATEGORIES=    x11
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=arakiken/}
 GITHUB_PROJECT= ${PKGBASE}
diff -r 64e7731cbaca -r 4d4c522f344e x11/mlterm/distinfo
--- a/x11/mlterm/distinfo       Wed Jul 06 23:23:10 2022 +0000
+++ b/x11/mlterm/distinfo       Thu Jul 07 00:04:42 2022 +0000
@@ -1,9 +1,10 @@
-$NetBSD: distinfo,v 1.91 2022/07/02 03:17:04 rin Exp $
+$NetBSD: distinfo,v 1.92 2022/07/07 00:04:42 rin Exp $
 
 BLAKE2s (mlterm-3.9.2/mlterm-3.9.2.tar.gz) = 3bd490eb661bc802cb05ebbb17a73956f5a62ca3838dcf5cb7baad0c01c3ebdb
 SHA512 (mlterm-3.9.2/mlterm-3.9.2.tar.gz) = 3076dafbc98a01738d88acf0e0f52e15d33862b3e9b7a851a4496f1be07ee9e51103daf7842954bcae1f1ba62bd6645b0bd60af7f66ee98721bdf3786b9fcbaf
 Size (mlterm-3.9.2/mlterm-3.9.2.tar.gz) = 4259208 bytes
 SHA1 (patch-configure) = 266b3e8383c425c7ef8cd180f07e1199890521ba
 SHA1 (patch-etc_font-fb) = 52c18f512c67ff530c0c326394fdf43956d71cb0
+SHA1 (patch-uitoolkit_fb_ui__display__wscons.c) = 56916dbbd9ab9a4eef7eeaff15fe23f2b8b96843
 SHA1 (patch-uitoolkit_xlib_ui__imagelib.c) = 310558eb0796486aa1d2acab2c9e9a2d204ce0f0
 SHA1 (patch-vtemu_Makefile.in) = 172f12f73408489f782d63c8b0b7915af441d368
diff -r 64e7731cbaca -r 4d4c522f344e x11/mlterm/patches/patch-uitoolkit_fb_ui__display__wscons.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/x11/mlterm/patches/patch-uitoolkit_fb_ui__display__wscons.c       Thu Jul 07 00:04:42 2022 +0000
@@ -0,0 +1,68 @@
+$NetBSD: patch-uitoolkit_fb_ui__display__wscons.c,v 1.5 2022/07/07 00:04:42 rin Exp $
+
+Add support for 8- and 4-bpp planar fb found on NetBSD/amiga.
+
+Requires amidisplaycc(4) driver from NetBSD-current. With older
+drivers, automatically falls back to monochrome mode.
+
+XXX
+Only tested for 8-bpp mode. As 4-bpp mode requires ancient
+analogue monitors.
+
+XXX
+Logic to detect planar fb is not very elegant...
+
+This has been pull-requested to upstream:
+https://github.com/arakiken/mlterm/pull/46
+
+--- uitoolkit/fb/ui_display_wscons.c.orig      2022-01-17 00:20:31.000000000 +0900
++++ uitoolkit/fb/ui_display_wscons.c   2022-07-07 05:22:09.475716704 +0900
+@@ -380,8 +380,17 @@ static int open_display(u_int depth /* u
+   _display.height = _disp.height = vinfo.height;
+   _disp.depth = vinfo.depth;
+ 
+-#ifdef WSDISPLAY_TYPE_LUNA
+-  if (wstype == WSDISPLAY_TYPE_LUNA) {
++#if defined(WSDISPLAY_TYPE_LUNA) && defined(WSDISPLAY_TYPE_AMIGACC)
++#define       WSTYPE_PLANAR(wstype)   \
++  ((wstype) == WSDISPLAY_TYPE_LUNA || (wstype) == WSDISPLAY_TYPE_AMIGACC)
++#elif defined(WSDISPLAY_TYPE_LUNA)
++#define       WSTYPE_PLANAR(wstype)   ((wstype) == WSDISPLAY_TYPE_LUNA)
++#elif defined(WSDISPLAY_TYPE_AMIGACC)
++#define       WSTYPE_PLANAR(wstype)   ((wstype) == WSDISPLAY_TYPE_AMIGACC)
++#endif
++
++#ifdef WSTYPE_PLANAR
++  if (WSTYPE_PLANAR(wstype)) {
+     /* always 8 or less bpp */
+ 
+     if (_disp.depth > 8) {
+@@ -394,7 +403,7 @@ static int open_display(u_int depth /* u
+     _display.shift_0 = 7;
+     _display.mask = 1;
+   } else
+-#endif
++#endif
+       if (_disp.depth < 8) {
+ #ifdef ENABLE_2_4_PPB
+     _display.pixels_per_byte = 8 / _disp.depth;
+@@ -444,6 +453,19 @@ static int open_display(u_int depth /* u
+     }
+   } else
+ #endif
++#ifdef WSDISPLAY_TYPE_AMIGACC
++  if (wstype == WSDISPLAY_TYPE_AMIGACC &&
++      (_disp.depth == 4 || _disp.depth == 8)) {
++    u_int len_per_plane, plane;
++
++    len_per_plane = _display.line_length * _display.height;
++    _display.smem_len = fboffset + len_per_plane * _disp.depth;
++
++    for (plane = 0; plane < _disp.depth; plane++) {
++      _display.plane_offset[plane] = len_per_plane * plane;
++    }
++  } else
++#endif
+   {
+     _display.smem_len = fboffset + _display.line_length * _display.height;
+   }



Home | Main Index | Thread Index | Old Index