From 78f912d5d347038d66d2f61d8079549848081926 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Sat, 27 Dec 2008 18:32:20 +0000 Subject: Handle opaqueness a bit svn path=/trunk/netsurf/; revision=5935 --- amiga/bitmap.c | 29 +++++++++++++++++++++++------ amiga/bitmap.h | 1 + 2 files changed, 24 insertions(+), 6 deletions(-) (limited to 'amiga') diff --git a/amiga/bitmap.c b/amiga/bitmap.c index 372d241a0..77f85d1df 100644 --- a/amiga/bitmap.c +++ b/amiga/bitmap.c @@ -34,12 +34,17 @@ void *bitmap_create(int width, int height, unsigned int state) { struct bitmap *bitmap; - bitmap = AllocVec(sizeof(struct bitmap),MEMF_PRIVATE | MEMF_CLEAR); + bitmap = AllocVec(sizeof(struct bitmap),MEMF_PRIVATE); if(bitmap) { - bitmap->pixdata = AllocVec(width*height*4*2,MEMF_PRIVATE | MEMF_CLEAR); + bitmap->pixdata = AllocVecTags(width*height*4, + AVT_Type,MEMF_PRIVATE, + AVT_ClearWithValue,0xff, + TAG_DONE); bitmap->width = width; bitmap->height = height; + if(state & BITMAP_OPAQUE) bitmap->opaque = true; + else bitmap->opaque = false; } return bitmap; } @@ -147,8 +152,9 @@ void bitmap_set_suspendable(void *bitmap, void *private_word, */ void bitmap_set_opaque(void *bitmap, bool opaque) { + struct bitmap *bm = bitmap; assert(bitmap); -/* todo: set bitmap as opaque */ + bm->opaque = opaque; } @@ -160,9 +166,19 @@ void bitmap_set_opaque(void *bitmap, bool opaque) */ bool bitmap_test_opaque(void *bitmap) { + struct bitmap *bm = bitmap; + uint32 p = bm->width * bm->height; + uint32 a = 0; + uint32 *bmi = bm->pixdata; + assert(bitmap); -/* todo: test if bitmap as opaque */ - return false; + + for(a=0;aopaque; } int bitmap_get_width(void *bitmap) diff --git a/amiga/bitmap.h b/amiga/bitmap.h index 1b77b6b19..48cc0c125 100755 --- a/amiga/bitmap.h +++ b/amiga/bitmap.h @@ -23,6 +23,7 @@ struct bitmap { int width; int height; UBYTE *pixdata; + bool opaque; }; #endif -- cgit v1.2.3