summaryrefslogtreecommitdiff
path: root/sys/src/libmemdraw/draw.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2013-11-12 21:42:05 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2013-11-12 21:42:05 +0100
commitd56a6fadc5118e7fddba6294245a355ef2d3def9 (patch)
tree1a1044396fac969735fbaf3490c504f4ff6e8c1a /sys/src/libmemdraw/draw.c
parentdef87d60167d13c92328b6f0f81800787eedf03a (diff)
libmemdraw: change memimageinit() to return integer error (for kernel), minor cleanups
Diffstat (limited to 'sys/src/libmemdraw/draw.c')
-rw-r--r--sys/src/libmemdraw/draw.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/sys/src/libmemdraw/draw.c b/sys/src/libmemdraw/draw.c
index 5a15e4dae..96cb01e44 100644
--- a/sys/src/libmemdraw/draw.c
+++ b/sys/src/libmemdraw/draw.c
@@ -6,7 +6,6 @@
extern Pool* imagmem;
int drawdebug;
-static int tablesbuilt;
/* perfect approximation to NTSC = .299r+.587g+.114b when 0 ≤ r,g,b < 256 */
#define RGB2K(r,g,b) ((156763*(r)+307758*(g)+59769*(b))>>19)
@@ -54,16 +53,15 @@ Memimage *memopaque;
int _ifmt(Fmt*);
-void
+int
memimageinit(void)
{
static int didinit = 0;
if(didinit)
- return;
-
- didinit = 1;
+ return 0;
+ if(imagmem != nil)
if(strcmp(imagmem->name, "Image") == 0 || strcmp(imagmem->name, "image") == 0)
imagmem->move = memimagemove;
@@ -75,22 +73,25 @@ memimageinit(void)
fmtinstall('b', _ifmt);
memones = allocmemimage(Rect(0,0,1,1), GREY1);
+ memzeros = allocmemimage(Rect(0,0,1,1), GREY1);
+ if(memones == nil || memzeros == nil)
+ return -1;
+
memones->flags |= Frepl;
memones->clipr = Rect(-0x3FFFFFF, -0x3FFFFFF, 0x3FFFFFF, 0x3FFFFFF);
*byteaddr(memones, ZP) = ~0;
- memzeros = allocmemimage(Rect(0,0,1,1), GREY1);
memzeros->flags |= Frepl;
memzeros->clipr = Rect(-0x3FFFFFF, -0x3FFFFFF, 0x3FFFFFF, 0x3FFFFFF);
*byteaddr(memzeros, ZP) = 0;
- if(memones == nil || memzeros == nil)
- assert(0 /*cannot initialize memimage library */); /* RSC BUG */
-
memwhite = memones;
memblack = memzeros;
memopaque = memones;
memtransparent = memzeros;
+
+ didinit = 1;
+ return 0;
}
static ulong imgtorgba(Memimage*, ulong);
@@ -354,13 +355,6 @@ mktables(void)
{
int i, j, mask, sh, small;
- if(tablesbuilt)
- return;
-
- fmtinstall('R', Rfmt);
- fmtinstall('P', Pfmt);
- tablesbuilt = 1;
-
/* bit replication up to 8 bits */
for(i=0; i<256; i++){
for(j=0; j<=8; j++){ /* j <= 8 [sic] */