diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2013-11-12 21:42:05 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2013-11-12 21:42:05 +0100 |
commit | d56a6fadc5118e7fddba6294245a355ef2d3def9 (patch) | |
tree | 1a1044396fac969735fbaf3490c504f4ff6e8c1a /sys/src/libmemdraw/draw.c | |
parent | def87d60167d13c92328b6f0f81800787eedf03a (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.c | 26 |
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] */ |