src/blitter/8bpp_optimized.cpp
branchnoai
changeset 11126 72d4c9314c72
parent 11044 097ea3e7ec56
equal deleted inserted replaced
11111:1b984dab8cec 11126:72d4c9314c72
    69 			if (skip_left != 0) continue;
    69 			if (skip_left != 0) continue;
    70 
    70 
    71 			/* Skip transparent pixels */
    71 			/* Skip transparent pixels */
    72 			dst += trans;
    72 			dst += trans;
    73 			width -= trans;
    73 			width -= trans;
    74 			if (width <= 0) continue;
    74 			if (width <= 0 || pixels == 0) continue;
    75 			pixels = min<uint>(pixels, (uint)width);
    75 			pixels = min<uint>(pixels, (uint)width);
    76 			width -= pixels;
    76 			width -= pixels;
    77 
    77 
    78 			switch (mode) {
    78 			switch (mode) {
    79 				case BM_COLOUR_REMAP:
    79 				case BM_COLOUR_REMAP: {
    80 					for (uint x = 0; x < pixels; x++) {
    80 					const uint8 *remap = bp->remap;
    81 						if (bp->remap[*src] != 0) *dst = bp->remap[*src];
    81 					do {
       
    82 						uint m = remap[*src];
       
    83 						if (m != 0) *dst = m;
    82 						dst++; src++;
    84 						dst++; src++;
    83 					}
    85 					} while (--pixels != 0);
    84 					break;
    86 				} break;
    85 
    87 
    86 				case BM_TRANSPARENT:
    88 				case BM_TRANSPARENT: {
    87 					for (uint x = 0; x < pixels; x++) {
    89 					const uint8 *remap = bp->remap;
    88 						*dst = bp->remap[*dst];
    90 					src += pixels;
    89 						dst++; src++;
    91 					do {
    90 					}
    92 						*dst = remap[*dst];
    91 					break;
    93 						dst++;
       
    94 					} while (--pixels != 0);
       
    95 				} break;
    92 
    96 
    93 				default:
    97 				default:
    94 					memcpy(dst, src, pixels);
    98 					memcpy(dst, src, pixels);
    95 					dst += pixels; src += pixels;
    99 					dst += pixels; src += pixels;
    96 					break;
   100 					break;