summaryrefslogtreecommitdiff
path: root/sys/arch/atari/dev
diff options
context:
space:
mode:
authorleo <leo@NetBSD.org>1995-05-21 11:00:13 +0000
committerleo <leo@NetBSD.org>1995-05-21 11:00:13 +0000
commita1006d16dd76f4550e894f51d4c8d1697d801c53 (patch)
tree7e73fc0db268c44aa00112d3d83cdd609658b6a2 /sys/arch/atari/dev
parentc8ca7ae526967166ee7d00f870b40a4ab892d9c4 (diff)
ite_newsize(): Do not reallocate a display when the actual display mode
will be the same. Fixes a nasty bug where ite0 and ite1 share the same bitmap.
Diffstat (limited to 'sys/arch/atari/dev')
-rw-r--r--sys/arch/atari/dev/view.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/sys/arch/atari/dev/view.c b/sys/arch/atari/dev/view.c
index b27954be909..76ece56cd89 100644
--- a/sys/arch/atari/dev/view.c
+++ b/sys/arch/atari/dev/view.c
@@ -1,4 +1,4 @@
-/* $NetBSD: view.c,v 1.3 1995/04/10 09:13:20 mycroft Exp $ */
+/* $NetBSD: view.c,v 1.4 1995/05/21 11:00:13 leo Exp $ */
/*
* Copyright (c) 1994 Christian E. Hopps
@@ -171,9 +171,10 @@ view_setsize(vu, vs)
struct view_softc *vu;
struct view_size *vs;
{
- view_t *new, *old;
+ view_t *new, *old;
+ dmode_t *dmode;
dimen_t ns;
- int co, cs;
+ int co, cs;
co = 0;
cs = 0;
@@ -190,7 +191,14 @@ view_setsize(vu, vs)
ns.width = vs->width;
ns.height = vs->height;
- new = grf_alloc_view(NULL, &ns, vs->depth);
+ if((dmode = grf_get_best_mode(&ns, vs->depth)) != NULL) {
+ /*
+ * If we can't do better, leave it
+ */
+ if(dmode == vu->view->mode)
+ return(0);
+ }
+ new = grf_alloc_view(dmode, &ns, vs->depth);
if (new == NULL)
return(ENOMEM);
@@ -201,8 +209,6 @@ view_setsize(vu, vs)
vu->size.width = new->display.width;
vu->size.height = new->display.height;
vu->size.depth = new->bitmap->depth;
- vu->size.x = vs->x;
- vu->size.y = vs->y;
/*
* we need a custom remove here to avoid letting
@@ -294,7 +300,6 @@ int flags;
size.width = vu->size.width = view_default_width;
size.height = vu->size.height = view_default_height;
vu->size.depth = view_default_depth;
-
vu->view = grf_alloc_view(NULL, &size, vu->size.depth);
if (vu->view == NULL)
return(ENOMEM);