summaryrefslogtreecommitdiff
path: root/sys/dev/syscons/warp
diff options
context:
space:
mode:
authorPhilip Paeps <philip@FreeBSD.org>2007-02-21 12:27:12 +0000
committerPhilip Paeps <philip@FreeBSD.org>2007-02-21 12:27:12 +0000
commit0754972c5c72adff156ec736d2f4ebc57776e1ae (patch)
tree8f2df30a1e9c79b8e09d7dc29d55cee093923b96 /sys/dev/syscons/warp
parent9fad4c2a128e0db65a32641d74158bb00269b082 (diff)
Notes
Diffstat (limited to 'sys/dev/syscons/warp')
-rw-r--r--sys/dev/syscons/warp/warp_saver.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/dev/syscons/warp/warp_saver.c b/sys/dev/syscons/warp/warp_saver.c
index 050790d8a391..aba2439534c3 100644
--- a/sys/dev/syscons/warp/warp_saver.c
+++ b/sys/dev/syscons/warp/warp_saver.c
@@ -44,6 +44,12 @@
#define SPP 15
#define STARS (SPP * (1 + 2 + 4 + 8))
+#define SET_ORIGIN(adp, o) do { \
+ int oo = o; \
+ if (oo != last_origin) \
+ set_origin(adp, last_origin = oo); \
+ } while (0)
+
static u_char *vid;
static int banksize, scrmode, bpsl, scrw, scrh;
static int blanked;
@@ -61,6 +67,7 @@ static void
warp_update(video_adapter_t *adp)
{
int i, j, k, n, o, p;
+ int last_origin = -1;
for (i = 1, k = 0, n = SPP*8; i < 5; i++, n /= 2) {
for (j = 0; j < n; j++, k++) {
@@ -70,7 +77,7 @@ warp_update(video_adapter_t *adp)
p -= banksize;
o += banksize;
}
- set_origin(adp, o);
+ SET_ORIGIN(adp, o);
vid[p] = 0;
star[k] += i;
if (star[k] > scrw*scrh)
@@ -81,7 +88,7 @@ warp_update(video_adapter_t *adp)
p -= banksize;
o += banksize;
}
- set_origin(adp, o);
+ SET_ORIGIN(adp, o);
vid[p] = i;
}
}