mirror of
https://github.com/netsurf-browser/netsurf
synced 2025-02-27 03:44:23 +03:00
Handle opaqueness a bit
svn path=/trunk/netsurf/; revision=5935
This commit is contained in:
parent
d27a1c625f
commit
78f912d5d3
@ -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;a<p;a+=4)
|
||||
{
|
||||
if ((*bmi & 0xff000000U) != 0xff000000U) return false;
|
||||
bmi++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -173,9 +189,10 @@ bool bitmap_test_opaque(void *bitmap)
|
||||
*/
|
||||
bool bitmap_get_opaque(void *bitmap)
|
||||
{
|
||||
struct bitmap *bm = bitmap;
|
||||
assert(bitmap);
|
||||
/* todo: get whether bitmap is opaque */
|
||||
return false;
|
||||
return bm->opaque;
|
||||
}
|
||||
|
||||
int bitmap_get_width(void *bitmap)
|
||||
|
@ -23,6 +23,7 @@ struct bitmap {
|
||||
int width;
|
||||
int height;
|
||||
UBYTE *pixdata;
|
||||
bool opaque;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user