diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2012-08-05 16:16:18 +0100 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2012-08-05 16:16:18 +0100 |
commit | 25f1acb504ee7de4690fb83ba4a39a75c8539273 (patch) | |
tree | 0af47a9874d79e975df03c9b2ffd8a3cec2f5c61 /amiga/bitmap.c | |
parent | 59af85e0b50f7343fe7c867cdb8cb868d7aac58f (diff) | |
download | netsurf-25f1acb504ee7de4690fb83ba4a39a75c8539273.tar.gz netsurf-25f1acb504ee7de4690fb83ba4a39a75c8539273.tar.bz2 |
Don't re-layout if this has already been performed
Diffstat (limited to 'amiga/bitmap.c')
-rw-r--r-- | amiga/bitmap.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/amiga/bitmap.c b/amiga/bitmap.c index d8f11b8ed..61d56033c 100644 --- a/amiga/bitmap.c +++ b/amiga/bitmap.c @@ -480,25 +480,27 @@ struct BitMap *ami_bitmap_get_palettemapped(struct bitmap *bitmap, bitmap->dto = NULL; } - if(bitmap->dto == NULL) + if(bitmap->dto == NULL) { bitmap->dto = ami_datatype_object_from_bitmap(bitmap); - SetDTAttrs(bitmap->dto, NULL, NULL, - PDTA_Screen, scrn, - PDTA_ScaleQuality, nsoption_bool(scale_quality), - TAG_DONE); + SetDTAttrs(bitmap->dto, NULL, NULL, + PDTA_Screen, scrn, + PDTA_ScaleQuality, nsoption_bool(scale_quality), + TAG_DONE); - if((bitmap->width != width) || (bitmap->height != height)) { - IDoMethod(bitmap->dto, PDTM_SCALE, width, height, 0); + if((bitmap->width != width) || (bitmap->height != height)) { + IDoMethod(bitmap->dto, PDTM_SCALE, width, height, 0); + } + + if((DoDTMethod(bitmap->dto, 0, 0, DTM_PROCLAYOUT, 0, 1)) == 0) + return NULL; } - if(DoDTMethod(bitmap->dto, 0, 0, DTM_PROCLAYOUT, 0, 1)) { - GetDTAttrs(bitmap->dto, - PDTA_DestBitMap, &dtbm, - PDTA_MaskPlane, &bitmap->native_mask, - TAG_END); - } - + GetDTAttrs(bitmap->dto, + PDTA_DestBitMap, &dtbm, + PDTA_MaskPlane, &bitmap->native_mask, + TAG_END); + bitmap->nativebmwidth = width; bitmap->nativebmheight = height; |