From dd4a0db47f18afeeed0d3146219a16cf3654e198 Mon Sep 17 00:00:00 2001 From: Kp Date: Sun, 30 Nov 2014 22:09:17 +0000 Subject: [PATCH] Pass rle_expand_texture arg as const & --- common/2d/rle.cpp | 14 +++++++------- common/include/rle.h | 2 +- common/texmap/ntmap.cpp | 2 +- similar/main/collide.cpp | 3 +-- similar/main/fvi.cpp | 2 +- similar/main/texmerge.cpp | 8 ++++---- 6 files changed, 15 insertions(+), 16 deletions(-) diff --git a/common/2d/rle.cpp b/common/2d/rle.cpp index 85df53318..df7f9c893 100644 --- a/common/2d/rle.cpp +++ b/common/2d/rle.cpp @@ -339,7 +339,7 @@ int gr_bitmap_rle_compress( grs_bitmap * bmp ) struct rle_cache_element { - grs_bitmap * rle_bitmap; + const grs_bitmap *rle_bitmap; ubyte * rle_data; grs_bitmap_ptr expanded_bitmap; int last_used; @@ -397,14 +397,14 @@ static void rle_expand_texture_sub(const grs_bitmap &bmp, grs_bitmap &rle_temp_b } -grs_bitmap * rle_expand_texture( grs_bitmap * bmp ) +grs_bitmap * rle_expand_texture(const grs_bitmap &bmp) { int lowest_count, lc; int least_recently_used; if (!rle_cache_initialized) rle_cache_init(); - Assert( !(bmp->bm_flags & BM_FLAG_PAGED_OUT) ); + Assert( !(bmp.bm_flags & BM_FLAG_PAGED_OUT) ); lc = rle_counter; rle_counter++; @@ -427,7 +427,7 @@ grs_bitmap * rle_expand_texture( grs_bitmap * bmp ) rle_next = 0; for (int i=0; ibm_w, bmp->bm_h); - rle_expand_texture_sub(*bmp, *rle_cache[least_recently_used].expanded_bitmap.get()); - rle_cache[least_recently_used].rle_bitmap = bmp; + rle_cache[least_recently_used].expanded_bitmap = gr_create_bitmap(bmp.bm_w, bmp.bm_h); + rle_expand_texture_sub(bmp, *rle_cache[least_recently_used].expanded_bitmap.get()); + rle_cache[least_recently_used].rle_bitmap = &bmp; rle_cache[least_recently_used].last_used = rle_counter; return rle_cache[least_recently_used].expanded_bitmap.get(); } diff --git a/common/include/rle.h b/common/include/rle.h index f22c8adec..08265e4fd 100644 --- a/common/include/rle.h +++ b/common/include/rle.h @@ -67,7 +67,7 @@ ubyte * gr_rle_find_xth_pixel( ubyte *src, int x,int * count, ubyte color ); int gr_bitmap_rle_compress( grs_bitmap * bmp ); void gr_rle_expand_scanline_masked( ubyte *dest, ubyte *src, int x1, int x2 ); void gr_rle_expand_scanline( ubyte *dest, ubyte *src, int x1, int x2 ); -grs_bitmap * rle_expand_texture( grs_bitmap * bmp ); +grs_bitmap * rle_expand_texture(const grs_bitmap &bmp); void rle_cache_close(); void rle_cache_flush(); void rle_swap_0_255(grs_bitmap *bmp); diff --git a/common/texmap/ntmap.cpp b/common/texmap/ntmap.cpp index e6e3b4d94..69d9340b3 100644 --- a/common/texmap/ntmap.cpp +++ b/common/texmap/ntmap.cpp @@ -809,7 +809,7 @@ void draw_tmap(grs_bitmap *bp,int nverts,const g3s_point *const *vertbuf) } if ( bp->bm_flags & BM_FLAG_RLE ) - bp = rle_expand_texture( bp ); // Expand if rle'd + bp = rle_expand_texture(*bp); // Expand if rle'd Transparency_on = bp->bm_flags & BM_FLAG_TRANSPARENT; if (bp->bm_flags & BM_FLAG_NO_LIGHTING) diff --git a/similar/main/collide.cpp b/similar/main/collide.cpp index c52f00500..c64ddf7fc 100644 --- a/similar/main/collide.cpp +++ b/similar/main/collide.cpp @@ -586,9 +586,8 @@ int check_effect_blowup(const vsegptridx_t seg,int side,const vms_vector &pnt, _ case 0x8000: y=bm->bm_h-y-1; x=bm->bm_w-x-1; break; case 0xc000: t=x; x=y; y=bm->bm_h-t-1; break; } - if (bm->bm_flags & BM_FLAG_RLE) - bm = rle_expand_texture(bm); + bm = rle_expand_texture(*bm); } #if defined(DXX_BUILD_DESCENT_I) diff --git a/similar/main/fvi.cpp b/similar/main/fvi.cpp index a69bf7988..4858f4109 100644 --- a/similar/main/fvi.cpp +++ b/similar/main/fvi.cpp @@ -1185,7 +1185,7 @@ int check_trans_wall(const vms_vector &pnt,const vcsegptridx_t seg,int sidenum,i } if (bm->bm_flags & BM_FLAG_RLE) - bm = rle_expand_texture(bm); + bm = rle_expand_texture(*bm); bmx = ((unsigned) f2i(u*bm->bm_w)) % bm->bm_w; bmy = ((unsigned) f2i(v*bm->bm_h)) % bm->bm_h; diff --git a/similar/main/texmerge.cpp b/similar/main/texmerge.cpp index d56637d09..c6bb2d92d 100644 --- a/similar/main/texmerge.cpp +++ b/similar/main/texmerge.cpp @@ -178,10 +178,10 @@ void merge_textures_new( int type, grs_bitmap * bottom_bmp, grs_bitmap * top_bmp int wh; if ( top_bmp->bm_flags & BM_FLAG_RLE ) - top_bmp = rle_expand_texture(top_bmp); + top_bmp = rle_expand_texture(*top_bmp); if ( bottom_bmp->bm_flags & BM_FLAG_RLE ) - bottom_bmp = rle_expand_texture(bottom_bmp); + bottom_bmp = rle_expand_texture(*bottom_bmp); top_data = top_bmp->bm_data; bottom_data = bottom_bmp->bm_data; @@ -237,10 +237,10 @@ void merge_textures_super_xparent( int type, grs_bitmap * bottom_bmp, grs_bitmap int wh; if ( top_bmp->bm_flags & BM_FLAG_RLE ) - top_bmp = rle_expand_texture(top_bmp); + top_bmp = rle_expand_texture(*top_bmp); if ( bottom_bmp->bm_flags & BM_FLAG_RLE ) - bottom_bmp = rle_expand_texture(bottom_bmp); + bottom_bmp = rle_expand_texture(*bottom_bmp); top_data = top_bmp->bm_data; bottom_data = bottom_bmp->bm_data;