[Devel] user32dll: cursoricon.c. Fix 16b BMP handling with BT_BITFIELD.
Vitaly Lipatov
lav на etersoft.ru
Чт Фев 21 23:01:44 MSK 2008
В сообщении от 20 февраля 2008 Вы написали:
> {
> int colors;
> -
> + int result;
Здесь "съел" пустую строку после определения переменных.
> if (info->bmiHeader.biSize == sizeof(BITMAPCOREHEADER))
> {
> const BITMAPCOREHEADER *core = (const BITMAPCOREHEADER *)info;
> @@ -241,9 +241,13 @@ static int bitmap_info_size( const BITMA
> colors = 256;
> if (!colors && (info->bmiHeader.biBitCount <= 8))
> colors = 1 << info->bmiHeader.biBitCount;
> - return sizeof(BITMAPINFOHEADER) + colors *
> + /* Add 12b for images with BI_BITFIELDS */
Комментарий не перед той строкой. И вряд стоит писать 12b, это не очень
понятно.
> + result = sizeof(BITMAPINFOHEADER) + colors *
> ((coloruse == DIB_RGB_COLORS) ? sizeof(RGBQUAD) :
> sizeof(WORD));
> + if ( info->bmiHeader.biCompression == BI_BITFIELDS )
Если это флаг, его надо проверять через & BI_BITFIELDS
> + result += 3*sizeof(DWORD);
Они всегда 12 или маска именно 3 DWORD?
> }
> + return result;
> }
--
С уважением,
Виталий Липатов
Россия, Санкт-Петербург. www.etersoft.ru
GNU! ALT Linux Team! WINE! WIKI! LaTeX! LyX!
Подробная информация о списке рассылки devel