1
0
Fork 0

(svn r2512) Small cleanup

release/0.4.5
tron 2005-07-03 10:22:20 +00:00
parent ae032390e2
commit 6c5df28d7c
2 changed files with 59 additions and 85 deletions

131
gfx.c
View File

@ -765,7 +765,8 @@ static void GfxBlitZoomInUncomp(BlitterParams *bp)
} else { } else {
do { do {
int n = width; int n = width;
while (n >= 4) {
for (; n >= 4; n -= 4) {
if (src[0] != 0) dst[0] = src[0]; if (src[0] != 0) dst[0] = src[0];
if (src[1] != 0) dst[1] = src[1]; if (src[1] != 0) dst[1] = src[1];
if (src[2] != 0) dst[2] = src[2]; if (src[2] != 0) dst[2] = src[2];
@ -773,19 +774,16 @@ static void GfxBlitZoomInUncomp(BlitterParams *bp)
dst += 4; dst += 4;
src += 4; src += 4;
n -= 4;
} }
while (n) { for (; n != 0; n--) {
if (src[0] != 0) dst[0] = src[0]; if (src[0] != 0) dst[0] = src[0];
src++; src++;
dst++; dst++;
n--;
} }
src += bp->width_org - width; src += bp->width_org - width;
dst += bp->pitch - width; dst += bp->pitch - width;
} while (--height); } while (--height);
} }
} }
@ -815,8 +813,7 @@ static void GfxBlitTileZoomMedium(BlitterParams *bp)
if (skip & 1) { if (skip & 1) {
skip++; skip++;
src++; src++;
if (!--num) if (--num == 0) continue;
continue;
} }
if ( (skip -= bp->start_x) > 0) { if ( (skip -= bp->start_x) > 0) {
@ -845,8 +842,7 @@ static void GfxBlitTileZoomMedium(BlitterParams *bp)
} }
} while (!(done & 0x80)); } while (!(done & 0x80));
bp->dst += bp->pitch; bp->dst += bp->pitch;
if (!--bp->height) if (--bp->height == 0) return;
return;
do { do {
done = src_o[0]; done = src_o[0];
@ -866,8 +862,7 @@ static void GfxBlitTileZoomMedium(BlitterParams *bp)
if (skip & 1) { if (skip & 1) {
skip++; skip++;
if (!--num) if (--num == 0) continue;
continue;
} }
if ( (skip -= bp->start_x) > 0) { if ( (skip -= bp->start_x) > 0) {
@ -894,8 +889,7 @@ static void GfxBlitTileZoomMedium(BlitterParams *bp)
} }
} while (!(done & 0x80)); } while (!(done & 0x80));
bp->dst += bp->pitch; bp->dst += bp->pitch;
if (!--bp->height) if (--bp->height == 0) return;
return;
do { do {
done = src_o[0]; done = src_o[0];
@ -918,8 +912,7 @@ static void GfxBlitTileZoomMedium(BlitterParams *bp)
if (skip & 1) { if (skip & 1) {
skip++; skip++;
src++; src++;
if (!--num) if (--num == 0) continue;
continue;
} }
if ( (skip -= bp->start_x) > 0) { if ( (skip -= bp->start_x) > 0) {
@ -950,8 +943,7 @@ static void GfxBlitTileZoomMedium(BlitterParams *bp)
} while (!(done & 0x80)); } while (!(done & 0x80));
bp->dst += bp->pitch; bp->dst += bp->pitch;
if (!--bp->height) if (--bp->height == 0) return;
return;
do { do {
done = src_o[0]; done = src_o[0];
@ -1034,15 +1026,14 @@ static void GfxBlitTileZoomOut(BlitterParams *bp)
if (skip & 1) { if (skip & 1) {
skip++; skip++;
src++; src++;
if (!--num) if (--num == 0) continue;
continue;
} }
if (skip & 2) { if (skip & 2) {
skip+=2; skip += 2;
src+=2; src += 2;
if ((num-=2) <= 0) num -= 2;
continue; if (num <= 0) continue;
} }
if ( (skip -= bp->start_x) > 0) { if ( (skip -= bp->start_x) > 0) {
@ -1050,16 +1041,14 @@ static void GfxBlitTileZoomOut(BlitterParams *bp)
} else { } else {
src -= skip; src -= skip;
num += skip; num += skip;
if (num <= 0) if (num <= 0) continue;
continue;
skip = 0; skip = 0;
} }
skip = skip + num - bp->width; skip = skip + num - bp->width;
if (skip > 0) { if (skip > 0) {
num -= skip; num -= skip;
if (num <= 0) if (num <= 0) continue;
continue;
} }
ctab = _color_remap_ptr; ctab = _color_remap_ptr;
@ -1071,29 +1060,25 @@ static void GfxBlitTileZoomOut(BlitterParams *bp)
} }
} while (!(done & 0x80)); } while (!(done & 0x80));
bp->dst += bp->pitch; bp->dst += bp->pitch;
if (!--bp->height) if (--bp->height == 0) return;
return;
do { do {
done = src_o[0]; done = src_o[0];
src_o += (done & 0x7F) + 2; src_o += (done & 0x7F) + 2;
} while (!(done & 0x80)); } while (!(done & 0x80));
if (!--bp->height) if (--bp->height == 0) return;
return;
do { do {
done = src_o[0]; done = src_o[0];
src_o += (done & 0x7F) + 2; src_o += (done & 0x7F) + 2;
} while (!(done & 0x80)); } while (!(done & 0x80));
if (!--bp->height) if (--bp->height == 0) return;
return;
do { do {
done = src_o[0]; done = src_o[0];
src_o += (done & 0x7F) + 2; src_o += (done & 0x7F) + 2;
} while (!(done & 0x80)); } while (!(done & 0x80));
if (!--bp->height) if (--bp->height == 0) return;
return;
} }
} else if (bp->mode & 2) { } else if (bp->mode & 2) {
src_o += READ_LE_UINT16(src_o + bp->start_y * 2); src_o += READ_LE_UINT16(src_o + bp->start_y * 2);
@ -1108,30 +1093,27 @@ static void GfxBlitTileZoomOut(BlitterParams *bp)
if (skip & 1) { if (skip & 1) {
skip++; skip++;
if (!--num) if (--num == 0) continue;
continue;
} }
if (skip & 2) { if (skip & 2) {
skip+=2; skip += 2;
if ((num-=2) <= 0) num -= 2;
continue; if (num <= 0) continue;
} }
if ( (skip -= bp->start_x) > 0) { if ( (skip -= bp->start_x) > 0) {
dst += skip >> 2; dst += skip >> 2;
} else { } else {
num += skip; num += skip;
if (num <= 0) if (num <= 0) continue;
continue;
skip = 0; skip = 0;
} }
skip = skip + num - bp->width; skip = skip + num - bp->width;
if (skip > 0) { if (skip > 0) {
num -= skip; num -= skip;
if (num <= 0) if (num <= 0) continue;
continue;
} }
ctab = _color_remap_ptr; ctab = _color_remap_ptr;
@ -1143,29 +1125,25 @@ static void GfxBlitTileZoomOut(BlitterParams *bp)
} while (!(done & 0x80)); } while (!(done & 0x80));
bp->dst += bp->pitch; bp->dst += bp->pitch;
if (!--bp->height) if (--bp->height == 0) return;
return;
do { do {
done = src_o[0]; done = src_o[0];
src_o += (done & 0x7F) + 2; src_o += (done & 0x7F) + 2;
} while (!(done & 0x80)); } while (!(done & 0x80));
if (!--bp->height) if (--bp->height == 0) return;
return;
do { do {
done = src_o[0]; done = src_o[0];
src_o += (done & 0x7F) + 2; src_o += (done & 0x7F) + 2;
} while (!(done & 0x80)); } while (!(done & 0x80));
if (!--bp->height) if (--bp->height == 0) return;
return;
do { do {
done = src_o[0]; done = src_o[0];
src_o += (done & 0x7F) + 2; src_o += (done & 0x7F) + 2;
} while (!(done & 0x80)); } while (!(done & 0x80));
if (!--bp->height) if (--bp->height == 0) return;
return;
} }
} else { } else {
src_o += READ_LE_UINT16(src_o + bp->start_y * 2); src_o += READ_LE_UINT16(src_o + bp->start_y * 2);
@ -1182,15 +1160,14 @@ static void GfxBlitTileZoomOut(BlitterParams *bp)
if (skip & 1) { if (skip & 1) {
skip++; skip++;
src++; src++;
if (!--num) if (--num == 0) continue;
continue;
} }
if (skip & 2) { if (skip & 2) {
skip+=2; skip += 2;
src+=2; src += 2;
if ((num-=2) <= 0) num -= 2;
continue; if (num <= 0) continue;
} }
if ( (skip -= bp->start_x) > 0) { if ( (skip -= bp->start_x) > 0) {
@ -1198,16 +1175,14 @@ static void GfxBlitTileZoomOut(BlitterParams *bp)
} else { } else {
src -= skip; src -= skip;
num += skip; num += skip;
if (num <= 0) if (num <= 0) continue;
continue;
skip = 0; skip = 0;
} }
skip = skip + num - bp->width; skip = skip + num - bp->width;
if (skip > 0) { if (skip > 0) {
num -= skip; num -= skip;
if (num <= 0) if (num <= 0) continue;
continue;
} }
num = (num + 3) >> 2; num = (num + 3) >> 2;
@ -1220,29 +1195,25 @@ static void GfxBlitTileZoomOut(BlitterParams *bp)
} while (!(done & 0x80)); } while (!(done & 0x80));
bp->dst += bp->pitch; bp->dst += bp->pitch;
if (!--bp->height) if (--bp->height == 0) return;
return;
do { do {
done = src_o[0]; done = src_o[0];
src_o += (done & 0x7F) + 2; src_o += (done & 0x7F) + 2;
} while (!(done & 0x80)); } while (!(done & 0x80));
if (!--bp->height) if (--bp->height == 0) return;
return;
do { do {
done = src_o[0]; done = src_o[0];
src_o += (done & 0x7F) + 2; src_o += (done & 0x7F) + 2;
} while (!(done & 0x80)); } while (!(done & 0x80));
if (!--bp->height) if (--bp->height == 0) return;
return;
do { do {
done = src_o[0]; done = src_o[0];
src_o += (done & 0x7F) + 2; src_o += (done & 0x7F) + 2;
} while (!(done & 0x80)); } while (!(done & 0x80));
if (!--bp->height) if (--bp->height == 0) return;
return;
} }
} }
} }
@ -1423,27 +1394,29 @@ static void GfxMainBlitter(const Sprite* sprite, int x, int y, int mode)
int totpix = bp.height_org * bp.width_org; int totpix = bp.height_org * bp.width_org;
byte *dst = (byte*)alloca(totpix); byte *dst = (byte*)alloca(totpix);
const byte *src = bp.sprite_org; const byte *src = bp.sprite_org;
signed char b;
bp.sprite = dst + (bp.sprite - bp.sprite_org); bp.sprite = dst + (bp.sprite - bp.sprite_org);
while (totpix != 0) { while (totpix != 0) {
signed char b;
assert(totpix > 0); assert(totpix > 0);
b = *src++; b = *src++;
if (b >= 0) { if (b >= 0) {
int i, count=b; uint count = b;
for(i=0; i!=count; i++) uint i;
dst[i] = src[i];
for (i = 0; i != count; i++) dst[i] = src[i];
dst += count; dst += count;
src += count; src += count;
totpix -= count; totpix -= count;
} else { } else {
byte *tmp = dst- (((b&7)<<8)|(*src++)); const byte *tmp = dst - (((b & 7) << 8) | *src++);
int i; uint count = -(b >> 3);
int count = -(b >> 3); uint i;
for(i=0; i!=count; i++) for (i = 0; i != count; i++) dst[i] = tmp[i];
dst[i] = tmp[i];
dst += count; dst += count;
totpix -= count; totpix -= count;
} }

View File

@ -330,14 +330,15 @@ static bool MakePCXImage(const char *name, ScreenshotCallback *callb, void *user
// write them to pcx // write them to pcx
for (i = 0; i != n; i++) { for (i = 0; i != n; i++) {
int runcount = 1; const byte* bufp = buff + i * w;
byte *bufp = buff + i * w; byte runchar = bufp[0];
byte runchar = *bufp++; uint runcount = 1;
uint left; uint j;
// for each pixel... // for each pixel...
for (left = w - 1; left > 0; --left) { for (j = 1; j < w; j++) {
byte ch = *bufp++; byte ch = bufp[j];
if (ch != runchar || runcount >= 0x3f) { if (ch != runchar || runcount >= 0x3f) {
if (runcount > 1 || (runchar & 0xC0) == 0xC0) if (runcount > 1 || (runchar & 0xC0) == 0xC0)
if (fputc(0xC0 | runcount, f) == EOF) { if (fputc(0xC0 | runcount, f) == EOF) {