From: <ma...@us...> - 2009-02-24 19:41:45
|
Revision: 6021 http://exult.svn.sourceforge.net/exult/?rev=6021&view=rev Author: marzojr Date: 2009-02-24 19:41:41 +0000 (Tue, 24 Feb 2009) Log Message: ----------- * Fixed recent ES performance hit when toggling frames display. * Fixed condition check for shape right-click in ES. * Fixed hash_utils.h once and for all, and added proper check in configure.ac. Modified Paths: -------------- exult/trunk/ChangeLog exult/trunk/configure.ac exult/trunk/exult_constants.h exult/trunk/hash_utils.h exult/trunk/mapedit/shapelst.cc exult/trunk/shapes/vgafile.cc Modified: exult/trunk/ChangeLog =================================================================== --- exult/trunk/ChangeLog 2009-02-24 00:27:35 UTC (rev 6020) +++ exult/trunk/ChangeLog 2009-02-24 19:41:41 UTC (rev 6021) @@ -1,3 +1,8 @@ +2009-02-24 Marzo Sette Torres Junior <ma...@ya...> + * Fixed recent ES performance hit when toggling frames display. + * Fixed condition check for shape right-click in ES. + * Fixed hash_utils.h once and for all, and added proper check in configure.ac. + 2009-02-23 Marzo Sette Torres Junior <ma...@ya...> * Fixed several bugs from the tracker: #1559936, #1851478, #2121276, #2127362, #2127508, #2122907, #2454975 Modified: exult/trunk/configure.ac =================================================================== --- exult/trunk/configure.ac 2009-02-24 00:27:35 UTC (rev 6020) +++ exult/trunk/configure.ac 2009-02-24 19:41:41 UTC (rev 6021) @@ -202,7 +202,7 @@ AC_CHECK_HEADERS(png.h, AM_CONDITIONAL(HAVE_PNG,true)) AC_CHECK_ALPHA_LINUX_CXX AC_LANG_CPLUSPLUS -AC_CHECK_HEADERS(hash_map hash_set ext/hash_map ext/hash_set sstream) +AC_CHECK_HEADERS(hash_map hash_set ext/hash_map ext/hash_set tr1/unordered_map tr1/unordered_set sstream) AC_LANG_C # --------------------------------------------------------------------- Modified: exult/trunk/exult_constants.h =================================================================== --- exult/trunk/exult_constants.h 2009-02-24 00:27:35 UTC (rev 6020) +++ exult/trunk/exult_constants.h 2009-02-24 19:41:41 UTC (rev 6021) @@ -27,7 +27,8 @@ * Sizes: */ const int c_basetilesize = 8; // A tile (shape) is 8x8 pixels. -const int c_tilesize = c_basetilesize; // A tile (shape) is 8x8 pixels. +const int c_tilesize = 8; // A tile (shape) is 8x8 pixels. +const int c_num_tile_bytes = c_tilesize * c_tilesize; // Total pixels per tile. const int c_screen_tile_size = 320/c_basetilesize; // Number of tiles in a 'screen'. const int c_tiles_per_chunk = 16; // A chunk is 16x16 tiles. const int c_chunksize = 16 * 8; // A chunk has 16 8x8 shapes. Modified: exult/trunk/hash_utils.h =================================================================== --- exult/trunk/hash_utils.h 2009-02-24 00:27:35 UTC (rev 6020) +++ exult/trunk/hash_utils.h 2009-02-24 19:41:41 UTC (rev 6021) @@ -26,48 +26,48 @@ #ifdef DONT_HAVE_HASH_MAP # include <map> #else -#if HAVE_EXT_HASH_MAP -# if (defined(__GNUC__) && (__GNUC__ >= 4) && ( __GNUC_MINOR__ >= 3)) -# include <tr1/unordered_map> - using std::tr1::unordered_map; -# elif (defined(__GNUC__) && (__GNUC__ >= 3) && ( __GNUC_MINOR__ >= 0)) -# include <ext/hash_map> - using __gnu_cxx::hash_map; - #define unordered_map __gnu_cxx::hash_map +# if HAVE_TR1_UNORDERED_MAP +# include <tr1/unordered_map> + using std::tr1::unordered_map; +# elif HAVE_EXT_HASH_MAP +# include <ext/hash_map> +# define unordered_map hash_map +# if (defined(__GNUC__) && (__GNUC__ >= 3) && ( __GNUC_MINOR__ >= 0)) + using __gnu_cxx::hash_map; +# else + using std::hash_map; +# endif # else - using std::hash_map; - #define unordered_map std::hash_map +# include <hash_map> +# define unordered_map hash_map # endif -#else -# include <hash_map> -#endif # ifdef MACOS - using Metrowerks::hash_map; - #define unordered_map Metrowerks::hash_map + using Metrowerks::hash_map; +# define unordered_map hash_map # endif #endif #ifdef DONT_HAVE_HASH_SET # include <set> #else -#if HAVE_EXT_HASH_SET -# if (defined(__GNUC__) && (__GNUC__ >= 4) && ( __GNUC_MINOR__ >= 3)) -# include <tr1/unordered_set> - using std::tr1::unordered_set; -# elif (defined(__GNUC__) && (__GNUC__ >= 3) && ( __GNUC_MINOR__ >= 0)) -# include <ext/hash_set> - using __gnu_cxx::hash_set; - #define unordered_set __gnu_cxx::hash_set +# if HAVE_TR1_UNORDERED_SET +# include <tr1/unordered_set> + using std::tr1::unordered_set; +# elif HAVE_EXT_HASH_SET +# include <ext/hash_set> +# define unordered_set hash_set +# if (defined(__GNUC__) && (__GNUC__ >= 3) && ( __GNUC_MINOR__ >= 0)) + using __gnu_cxx::hash_set; +# else + using std::hash_set; +# endif # else - using std::hash_set; - #define unordered_set std::hash_set +# include <hash_set> +# define unordered_map hash_map # endif -#else -# include <hash_set> -#endif # ifdef MACOS - using Metrowerks::hash_set; - #define unordered_set Metrowerks::hash_set + using Metrowerks::hash_set; + #define unordered_set hash_set # endif #endif Modified: exult/trunk/mapedit/shapelst.cc =================================================================== --- exult/trunk/mapedit/shapelst.cc 2009-02-24 00:27:35 UTC (rev 6020) +++ exult/trunk/mapedit/shapelst.cc 2009-02-24 19:41:41 UTC (rev 6021) @@ -1208,7 +1208,7 @@ else { x = frnum%dim0_cnt; y = frnum/dim0_cnt; } unsigned char *src = pixels + w*c_tilesize*y + c_tilesize*x; - unsigned char buf[c_tilesize*c_tilesize]; // Move tile to buffer. + unsigned char buf[c_num_tile_bytes]; // Move tile to buffer. unsigned char *ptr = &buf[0]; for (int row = 0; row < c_tilesize; row++) { // Write it out. @@ -2421,8 +2421,8 @@ } if (ifile->is_flex()) // Multiple-shapes file (.vga)? { - if (selected >= 0 && !IS_FLAT(info[selected].shapenum) || - file_info != studio->get_vgafile()) + if (selected >= 0 && (!IS_FLAT(info[selected].shapenum) || + file_info != studio->get_vgafile())) { // Separator. Add_menu_item(popup); Modified: exult/trunk/shapes/vgafile.cc =================================================================== --- exult/trunk/shapes/vgafile.cc 2009-02-24 00:27:35 UTC (rev 6020) +++ exult/trunk/shapes/vgafile.cc 2009-02-24 19:41:41 UTC (rev 6021) @@ -337,9 +337,9 @@ if (!rle) { assert(w == c_tilesize && h == c_tilesize); - datalen = c_tilesize*c_tilesize; - data = new unsigned char[c_tilesize*c_tilesize]; - memcpy(data, pixels, c_tilesize*c_tilesize); + datalen = c_num_tile_bytes; + data = new unsigned char[c_num_tile_bytes]; + memcpy(data, pixels, c_num_tile_bytes); } else data = encode_rle(pixels, w, h, xleft, yabove, datalen); @@ -399,11 +399,11 @@ framenum &= 31; // !!!Guessing here. xleft = yabove = c_tilesize; // Just an 8x8 bitmap. xright= ybelow = -1; - shapes->seek(shapeoff + framenum*c_tilesize*c_tilesize); - data = new unsigned char[c_tilesize*c_tilesize]; // Read in 8x8 pixels. - datalen = c_tilesize*c_tilesize; - shapes->read((char *) data, c_tilesize*c_tilesize); - return (shapelen/c_tilesize*c_tilesize); // That's how many frames. + shapes->seek(shapeoff + framenum*c_num_tile_bytes); + data = new unsigned char[c_num_tile_bytes]; // Read in 8x8 pixels. + datalen = c_num_tile_bytes; + shapes->read((char *) data, c_num_tile_bytes); + return (shapelen/c_num_tile_bytes); // That's how many frames. } /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |