Fix nsImageXlib.cpp to compile again and pull calls to xlib_get_shift_from_mask out of loop (as suggested by tor). r=blizzard@mozilla.org sr=tor@cs.brown.edu b=64518

This commit is contained in:
dbaron%fas.harvard.edu 2001-01-07 14:37:37 +00:00
Родитель 3544084f92
Коммит 6399880e31
1 изменённых файлов: 14 добавлений и 9 удалений

Просмотреть файл

@ -430,6 +430,10 @@ nsImageXlib::DrawComposited16(PRBool isLSB, PRBool flipBytes,
unsigned *blueScale = (xlib_get_prec_from_mask(visual->blue_mask) == 5)
? scaled5 : scaled6;
unsigned long redShift = xlib_get_shift_from_mask(visual->red_mask);
unsigned long greenShift = xlib_get_shift_from_mask(visual->green_mask);
unsigned long blueShift = xlib_get_shift_from_mask(visual->blue_mask);
for (unsigned y=0; y<height; y++) {
unsigned char *baseRow = (unsigned char *)ximage->data
+y*ximage->bytes_per_line;
@ -448,13 +452,13 @@ nsImageXlib::DrawComposited16(PRBool isLSB, PRBool flipBytes,
pix = *((short *)baseRow);
unsigned alpha = *alphaRow;
MOZ_BLEND(targetRow[0],
redScale[(pix&visual->red_mask)>>visual->red_shift],
redScale[(pix&visual->red_mask) >> redShift],
imageRow[0], alpha);
MOZ_BLEND(targetRow[1],
greenScale[(pix&visual->green_mask)>>visual->green_shift],
greenScale[(pix&visual->green_mask) >> greenShift],
imageRow[1], alpha);
MOZ_BLEND(targetRow[2],
blueScale[(pix&visual->blue_mask)>>visual->blue_shift],
blueScale[(pix&visual->blue_mask) >> blueShift],
imageRow[2], alpha);
}
}
@ -523,6 +527,10 @@ nsImageXlib::DrawCompositedGeneral(PRBool isLSB, PRBool flipBytes,
greenFill = 0xff>>xlib_get_prec_from_mask(visual->green_mask);
blueFill = 0xff>>xlib_get_prec_from_mask(visual->blue_mask);
unsigned long redShift = xlib_get_shift_from_mask(visual->red_mask);
unsigned long greenShift = xlib_get_shift_from_mask(visual->green_mask);
unsigned long blueShift = xlib_get_shift_from_mask(visual->blue_mask);
for (int row=0; row<ximage->height; row++) {
unsigned char *ptr =
(unsigned char *)ximage->data + row*ximage->bytes_per_line;
@ -560,14 +568,11 @@ nsImageXlib::DrawCompositedGeneral(PRBool isLSB, PRBool flipBytes,
}
*target++ =
redFill|((pix&visual->red_mask) >>
xlib_get_shift_from_mask(visual->red_mask))<<redScale;
redFill|((pix&visual->red_mask) >> redShift)<<redScale;
*target++ =
greenFill|((pix&visual->green_mask) >>
xlib_get_shift_from_mask(visual->green_mask))<<greenScale;
greenFill|((pix&visual->green_mask) >> greenShift)<<greenScale;
*target++ =
blueFill|((pix&visual->blue_mask) >>
xlib_get_shift_from_mask(visual->blue_mask))<<blueScale;
blueFill|((pix&visual->blue_mask) >> blueShift)<<blueScale;
}
}