From cefc849a9521c9d5ba85d5aa88526d0f4b059db9 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Wed, 30 Jan 2019 18:22:52 +0100 Subject: 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. --- sys/src/9/omap/screen.c | 11 ++++++++--- sys/src/9/omap/screen.h | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'sys/src/9/omap') diff --git a/sys/src/9/omap/screen.c b/sys/src/9/omap/screen.c index 7d36a0fe4..0a4e005c5 100644 --- a/sys/src/9/omap/screen.c +++ b/sys/src/9/omap/screen.c @@ -436,15 +436,20 @@ flushmemscreen(Rectangle r) /* * export screen to devdraw */ -uchar* -attachscreen(Rectangle *r, ulong *chan, int *d, int *width, int *softscreen) +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 = (landscape == 0); - return (uchar *)gscreen->data->bdata; + + gscreen->data->ref++; + return gscreen->data; } void diff --git a/sys/src/9/omap/screen.h b/sys/src/9/omap/screen.h index 882428056..d06f83863 100644 --- a/sys/src/9/omap/screen.h +++ b/sys/src/9/omap/screen.h @@ -23,7 +23,7 @@ extern void mouseresize(void); extern void mouseredraw(void); /* screen.c */ -extern uchar* attachscreen(Rectangle*, ulong*, int*, int*, int*); +extern Memdata* attachscreen(Rectangle*, ulong*, int*, int*, int*); extern void flushmemscreen(Rectangle); extern void cursoron(void); extern void cursoroff(void); -- cgit v1.2.3