summaryrefslogtreecommitdiff
path: root/sys/dev/rasops
diff options
context:
space:
mode:
authorrin <rin@NetBSD.org>2019-07-25 03:02:44 +0000
committerrin <rin@NetBSD.org>2019-07-25 03:02:44 +0000
commite6abe4ecdf35b5691b18cd1aa5c3b26e55cdf0f0 (patch)
tree909260f94eafda1aeabf85e33da7669f6265b7c7 /sys/dev/rasops
parent4274cea59ee06df299366be565d53489f281b017 (diff)
Provide and use FONT_GLYPH macro, tiny optimization version of WSFONT_GLYPH.
Diffstat (limited to 'sys/dev/rasops')
-rw-r--r--sys/dev/rasops/rasops.h6
-rw-r--r--sys/dev/rasops/rasops1.c13
-rw-r--r--sys/dev/rasops/rasops15.c18
-rw-r--r--sys/dev/rasops/rasops2.c16
-rw-r--r--sys/dev/rasops/rasops24.c16
-rw-r--r--sys/dev/rasops/rasops32.c8
-rw-r--r--sys/dev/rasops/rasops4.c16
-rw-r--r--sys/dev/rasops/rasops8.c14
8 files changed, 46 insertions, 61 deletions
diff --git a/sys/dev/rasops/rasops.h b/sys/dev/rasops/rasops.h
index 4a8cc1cc0f5..3b6c8239ac4 100644
--- a/sys/dev/rasops/rasops.h
+++ b/sys/dev/rasops/rasops.h
@@ -1,4 +1,4 @@
-/* $NetBSD: rasops.h,v 1.35 2019/07/24 18:33:49 rin Exp $ */
+/* $NetBSD: rasops.h,v 1.36 2019/07/25 03:02:44 rin Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -149,6 +149,10 @@ struct rasops_info {
(ri->ri_optfont.data != NULL)) ? \
&ri->ri_optfont : ri->ri_font
+#define FONT_GLYPH(uc, font, ri) \
+ ((uint8_t *)(font)->data + ((uc) - ((font)->firstchar)) * \
+ (ri)->ri_fontscale)
+
/*
* rasops_init().
*
diff --git a/sys/dev/rasops/rasops1.c b/sys/dev/rasops/rasops1.c
index 55d38c2c04d..2af5f459fe6 100644
--- a/sys/dev/rasops/rasops1.c
+++ b/sys/dev/rasops/rasops1.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rasops1.c,v 1.27 2019/07/25 02:26:32 rin Exp $ */
+/* $NetBSD: rasops1.c,v 1.28 2019/07/25 03:02:44 rin Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rasops1.c,v 1.27 2019/07/25 02:26:32 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rasops1.c,v 1.28 2019/07/25 03:02:44 rin Exp $");
#include "opt_rasops.h"
@@ -123,8 +123,7 @@ rasops1_putchar(void *cookie, int row, int col, u_int uc, long attr)
fr = 0; /* shutup gcc */
fs = 0; /* shutup gcc */
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc * ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
}
@@ -314,8 +313,7 @@ rasops1_putchar8(void *cookie, int row, int col, u_int uc, long attr)
}
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc * ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
/* NOT fontbits if bg is white */
@@ -394,8 +392,7 @@ rasops1_putchar16(void *cookie, int row, int col, u_int uc, long attr)
}
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc * ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
/* NOT fontbits if bg is white */
diff --git a/sys/dev/rasops/rasops15.c b/sys/dev/rasops/rasops15.c
index 98f431dbd32..90586b478d0 100644
--- a/sys/dev/rasops/rasops15.c
+++ b/sys/dev/rasops/rasops15.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rasops15.c,v 1.26 2019/07/25 02:26:32 rin Exp $ */
+/* $NetBSD: rasops15.c,v 1.27 2019/07/25 03:02:44 rin Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rasops15.c,v 1.26 2019/07/25 02:26:32 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rasops15.c,v 1.27 2019/07/25 03:02:44 rin Exp $");
#include "opt_rasops.h"
@@ -164,8 +164,7 @@ rasops15_putchar(void *cookie, int row, int col, u_int uc, long attr)
}
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc * ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
while (height--) {
dp = rp;
@@ -254,7 +253,7 @@ rasops15_putchar_aa(void *cookie, int row, int col, u_int uc, long attr)
memcpy(dp, buffer, width << 1);
}
} else {
- fr = WSFONT_GLYPH(uc, font);
+ fr = FONT_GLYPH(uc, font, ri);
fgo = ((attr >> 24) & 0xf) * 3;
bgo = ((attr >> 16) & 0xf) * 3;
@@ -383,8 +382,7 @@ rasops15_putchar8(void *cookie, int row, int col, u_int uc, long attr)
}
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc*ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
@@ -481,8 +479,7 @@ rasops15_putchar12(void *cookie, int row, int col, u_int uc, long attr)
}
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc*ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
@@ -587,8 +584,7 @@ rasops15_putchar16(void *cookie, int row, int col, u_int uc, long attr)
}
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc*ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
diff --git a/sys/dev/rasops/rasops2.c b/sys/dev/rasops/rasops2.c
index aeba82d6cd1..9db67b50ffa 100644
--- a/sys/dev/rasops/rasops2.c
+++ b/sys/dev/rasops/rasops2.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rasops2.c,v 1.22 2019/07/25 02:26:32 rin Exp $ */
+/* $NetBSD: rasops2.c,v 1.23 2019/07/25 03:02:44 rin Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rasops2.c,v 1.22 2019/07/25 02:26:32 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rasops2.c,v 1.23 2019/07/25 03:02:44 rin Exp $");
#include "opt_rasops.h"
@@ -133,8 +133,7 @@ rasops2_putchar(void *cookie, int row, int col, u_int uc, long attr)
fr = 0; /* shutup gcc */
fs = 0; /* shutup gcc */
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc * ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
}
@@ -296,8 +295,7 @@ rasops2_putchar8(void *cookie, int row, int col, u_int uc, long attr)
rp += rs;
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc * ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
@@ -360,8 +358,7 @@ rasops2_putchar12(void *cookie, int row, int col, u_int uc, long attr)
rp += rs;
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc * ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
@@ -427,8 +424,7 @@ rasops2_putchar16(void *cookie, int row, int col, u_int uc, long attr)
rp += rs;
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc * ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
diff --git a/sys/dev/rasops/rasops24.c b/sys/dev/rasops/rasops24.c
index de0f6e57572..a673007ca98 100644
--- a/sys/dev/rasops/rasops24.c
+++ b/sys/dev/rasops/rasops24.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rasops24.c,v 1.33 2019/07/25 02:26:32 rin Exp $ */
+/* $NetBSD: rasops24.c,v 1.34 2019/07/25 03:02:44 rin Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rasops24.c,v 1.33 2019/07/25 02:26:32 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rasops24.c,v 1.34 2019/07/25 03:02:44 rin Exp $");
#include "opt_rasops.h"
@@ -153,8 +153,7 @@ rasops24_putchar(void *cookie, int row, int col, u_int uc, long attr)
}
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc * ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
while (height--) {
dp = rp;
@@ -278,8 +277,7 @@ rasops24_putchar8(void *cookie, int row, int col, u_int uc, long attr)
DELTA(rp, ri->ri_stride, uint32_t *);
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc*ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
@@ -352,8 +350,7 @@ rasops24_putchar12(void *cookie, int row, int col, u_int uc, long attr)
DELTA(rp, ri->ri_stride, uint32_t *);
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc*ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
@@ -433,8 +430,7 @@ rasops24_putchar16(void *cookie, int row, int col, u_int uc, long attr)
DELTA(rp, ri->ri_stride, uint32_t *);
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc*ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
diff --git a/sys/dev/rasops/rasops32.c b/sys/dev/rasops/rasops32.c
index a90b5c26bbd..7078e770cc2 100644
--- a/sys/dev/rasops/rasops32.c
+++ b/sys/dev/rasops/rasops32.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rasops32.c,v 1.34 2019/07/24 18:33:49 rin Exp $ */
+/* $NetBSD: rasops32.c,v 1.35 2019/07/25 03:02:44 rin Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rasops32.c,v 1.34 2019/07/24 18:33:49 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rasops32.c,v 1.35 2019/07/25 03:02:44 rin Exp $");
#include "opt_rasops.h"
@@ -122,7 +122,7 @@ rasops32_putchar(void *cookie, int row, int col, u_int uc, long attr)
}
}
} else {
- fr = WSFONT_GLYPH(uc, font);
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
@@ -203,7 +203,7 @@ rasops32_putchar_aa(void *cookie, int row, int col, u_int uc, long attr)
memcpy(dp, buffer, width << 2);
}
} else {
- fr = WSFONT_GLYPH(uc, font);
+ fr = FONT_GLYPH(uc, font, ri);
r0 = (clr[0] >> 16) & 0xff;
r1 = (clr[1] >> 16) & 0xff;
diff --git a/sys/dev/rasops/rasops4.c b/sys/dev/rasops/rasops4.c
index 3937ff5abb0..1b5df4d8e9b 100644
--- a/sys/dev/rasops/rasops4.c
+++ b/sys/dev/rasops/rasops4.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rasops4.c,v 1.16 2019/07/25 02:26:32 rin Exp $ */
+/* $NetBSD: rasops4.c,v 1.17 2019/07/25 03:02:44 rin Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rasops4.c,v 1.16 2019/07/25 02:26:32 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rasops4.c,v 1.17 2019/07/25 03:02:44 rin Exp $");
#include "opt_rasops.h"
@@ -133,8 +133,7 @@ rasops4_putchar(void *cookie, int row, int col, u_int uc, long attr)
fr = 0; /* shutup gcc */
fs = 0; /* shutup gcc */
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc * ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
}
@@ -298,8 +297,7 @@ rasops4_putchar8(void *cookie, int row, int col, u_int uc, long attr)
rp += rs;
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc * ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
@@ -366,8 +364,7 @@ rasops4_putchar12(void *cookie, int row, int col, u_int uc, long attr)
rp += rs;
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc * ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
@@ -435,8 +432,7 @@ rasops4_putchar16(void *cookie, int row, int col, u_int uc, long attr)
rp += rs;
}
} else {
- uc -= font->firstchar;
- fr = (uint8_t *)font->data + uc * ri->ri_fontscale;
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
diff --git a/sys/dev/rasops/rasops8.c b/sys/dev/rasops/rasops8.c
index 00a7e7b6344..15ca78cac59 100644
--- a/sys/dev/rasops/rasops8.c
+++ b/sys/dev/rasops/rasops8.c
@@ -1,4 +1,4 @@
-/* $NetBSD: rasops8.c,v 1.40 2019/07/25 02:26:32 rin Exp $ */
+/* $NetBSD: rasops8.c,v 1.41 2019/07/25 03:02:44 rin Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rasops8.c,v 1.40 2019/07/25 02:26:32 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rasops8.c,v 1.41 2019/07/25 03:02:44 rin Exp $");
#include "opt_rasops.h"
@@ -152,7 +152,7 @@ rasops8_putchar(void *cookie, int row, int col, u_int uc, long attr)
rp += ri->ri_stride;
}
} else {
- fr = WSFONT_GLYPH(uc, font);
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
@@ -236,7 +236,7 @@ rasops8_putchar_aa(void *cookie, int row, int col, u_int uc, long attr)
rp += ri->ri_stride;
}
} else {
- fr = WSFONT_GLYPH(uc, font);
+ fr = FONT_GLYPH(uc, font, ri);
/*
* we need the RGB colours here, get offsets into rasops_cmap
*/
@@ -385,7 +385,7 @@ rasops8_putchar8(void *cookie, int row, int col, u_int uc, long attr)
}
}
} else {
- fr = WSFONT_GLYPH(uc, font);
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
@@ -474,7 +474,7 @@ rasops8_putchar12(void *cookie, int row, int col, u_int uc, long attr)
}
}
} else {
- fr = WSFONT_GLYPH(uc, font);
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {
@@ -566,7 +566,7 @@ rasops8_putchar16(void *cookie, int row, int col, u_int uc, long attr)
}
}
} else {
- fr = WSFONT_GLYPH(uc, font);
+ fr = FONT_GLYPH(uc, font, ri);
fs = font->stride;
while (height--) {