summaryrefslogtreecommitdiff
path: root/atari
diff options
context:
space:
mode:
authorOle Loots <ole@monochrom.net>2012-04-26 22:21:02 +0000
committerOle Loots <ole@monochrom.net>2012-04-26 22:21:02 +0000
commit6a9038de3c5db49fc4453662e37849f8f75d82f7 (patch)
treed1d196be36e60570d1a9e5d60fe30bff29bb2b99 /atari
parentf804cff67bf1a8f6877eb95a5e1eaaae1b2e4146 (diff)
downloadnetsurf-6a9038de3c5db49fc4453662e37849f8f75d82f7.tar.gz
netsurf-6a9038de3c5db49fc4453662e37849f8f75d82f7.tar.bz2
Only check transparent pixels when transparency is enabled.
svn path=/trunk/netsurf/; revision=13891
Diffstat (limited to 'atari')
-rwxr-xr-xatari/bitmap.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/atari/bitmap.c b/atari/bitmap.c
index 3b3f58654..97fa37484 100755
--- a/atari/bitmap.c
+++ b/atari/bitmap.c
@@ -102,25 +102,23 @@ void * bitmap_realloc( int w, int h, short bpp, int rowstride, unsigned int stat
return( NULL );
}
- if( bitmap->pixdata == NULL ) {
- assert( 1 == 0 );
- /* add some buffer for bad code */
- bitmap->pixdata = malloc( newsize + 128 );
- bitmap->opaque = false;
- } else {
- int oldsize = bitmap->rowstride * bitmap->height;
- bool doalloc = (state & BITMAP_GROW) ? (newsize > oldsize) : (newsize != oldsize);
- if( newsize > oldsize )
- assert( doalloc == true );
- if( doalloc ) {
- bitmap->pixdata = realloc( bitmap->pixdata, newsize + 128 );
- if( bitmap->pixdata == NULL )
- return( NULL );
- }
+ assert( bitmap->pixdata != NULL );
+ int oldsize = bitmap->rowstride * bitmap->height;
+ bool doalloc = (state & BITMAP_GROW) ? (newsize > oldsize) : (newsize != oldsize);
+ if( newsize > oldsize )
+ assert( doalloc == true );
+ if( doalloc ) {
+ // TODO: set red band to a specific value and check the red band
+ // on bitmap_destroy()
+ bitmap->pixdata = realloc( bitmap->pixdata, newsize + 128 );
+ if( bitmap->pixdata == NULL )
+ return( NULL );
}
+
if( state & BITMAP_CLEAR ){
memset( bitmap->pixdata, 0x00, newsize + 128 );
}
+
bitmap->width = w;
bitmap->height = h;
bitmap->bpp = bpp;
@@ -329,6 +327,10 @@ bool bitmap_test_opaque(void *bitmap)
LOG(("NULL bitmap!"));
return false;
}
+
+ if( nsoption_int(atari_transparency) == 0 ){
+ return( true );
+ }
tst = bm->width * bm->height;