Mercurial > mm7
diff Texture.cpp @ 2127:400f3db2e4e5
Screenshot continue
author | Ritor1 |
---|---|
date | Fri, 27 Dec 2013 17:52:31 +0600 |
parents | 259df09dfb50 |
children | 23dbcaa651cc |
line wrap: on
line diff
--- a/Texture.cpp Thu Dec 26 22:58:54 2013 +0000 +++ b/Texture.cpp Fri Dec 27 17:52:31 2013 +0600 @@ -690,7 +690,8 @@ unsigned int num_g_bits = 6; unsigned int b_mask = 0x001F; unsigned int num_b_bits = 5; - + //При сохранении изображения подряд идущие пиксели одинакового цвета объединяются и вместо указания цвета для каждого пикселя + //указывается цвет группы пикселей и их количество. read_offset = 128; if (psx_head2.planes != 3) return 0; @@ -709,25 +710,23 @@ { test_byte = pPcx[read_offset]; ++read_offset; - if ((test_byte & 0xC0) == 0xC0) + if ((test_byte & 0xC0) == 0xC0)//имеется ли объединение { value = pPcx[read_offset]; ++read_offset; if ((test_byte & 0x3F) > 0) { - count = test_byte & 0x3F; + count = test_byte & 0x3F;//количество одинаковых пикселей do { - ++row_position; //*temp_dec_position =0xFF000000; - //*temp_dec_position|=(unsigned long)value<<16; + //*temp_dec_position|=(unsigned long)value<<16; *temp_dec_position |= r_mask & ((unsigned __int8)value << (num_g_bits + num_r_bits + num_b_bits - 8)); - - temp_dec_position++; - if (row_position == psx_head2.pitch) - break; + temp_dec_position++; + if (row_position == psx_head2.pitch) + break; } while (count-- != 1); }