[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