summaryrefslogtreecommitdiff
path: root/sys/src/9/sgi
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2019-01-30 18:22:52 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2019-01-30 18:22:52 +0100
commitcefc849a9521c9d5ba85d5aa88526d0f4b059db9 (patch)
treeb5f42fb9651de5734abc2e23647ca9ec7ea49c25 /sys/src/9/sgi
parent8e1218acebcb87bcf16e6bca5b5f213ff2a1df3a (diff)
devdraw: get rid of softscreen==0xa110c hack and make attachscreen() return Memdata*
all screen implementations use a Memimage* internally for the framebuffer, so we can return a shared reference to its Memdata structure in attachscreen() instead of a framebuffer data pointer. this eleminates the softscreen == 0xa110c hack as we always use shared Memdata* now.
Diffstat (limited to 'sys/src/9/sgi')
-rw-r--r--sys/src/9/sgi/screen.c11
-rw-r--r--sys/src/9/sgi/screen.h2
2 files changed, 7 insertions, 6 deletions
diff --git a/sys/src/9/sgi/screen.c b/sys/src/9/sgi/screen.c
index 6d1829315..c5b96837c 100644
--- a/sys/src/9/sgi/screen.c
+++ b/sys/src/9/sgi/screen.c
@@ -600,19 +600,20 @@ screeninit(void)
mouseaccelerate(3);
}
-uchar*
+Memdata*
attachscreen(Rectangle *r, ulong *chan, int* d, int *width, int *softscreen)
{
+ if(gscreen == nil)
+ return nil;
+
*r = gscreen->r;
*d = gscreen->depth;
*chan = gscreen->chan;
*width = gscreen->width;
+ *softscreen = 1;
- /* make devdraw use gscreen->data */
- *softscreen = 0xa110c;
gscreen->data->ref++;
-
- return gscreen->data->bdata;
+ return gscreen->data;
}
void
diff --git a/sys/src/9/sgi/screen.h b/sys/src/9/sgi/screen.h
index 0633fbe74..b5ab1c9ba 100644
--- a/sys/src/9/sgi/screen.h
+++ b/sys/src/9/sgi/screen.h
@@ -26,7 +26,7 @@ extern void mouseredraw(void);
/* screen.c */
extern void blankscreen(int);
extern void flushmemscreen(Rectangle);
-extern uchar* attachscreen(Rectangle*, ulong*, int*, int*, int*);
+extern Memdata* attachscreen(Rectangle*, ulong*, int*, int*, int*);
extern void cursoron(void);
extern void cursoroff(void);
extern void setcursor(Cursor*);