[PATCH 1/3] d3dx9_36: Add support for DIB file in D3DXGetImageInfoFromFileInMemory. (try 2)
Rico Schüller
kgbricola at web.de
Tue Apr 23 02:07:18 CDT 2013
On 22.04.2013 23:08, Christian Costa wrote:
> +typedef struct {
> + DWORD bc2Size;
> + DWORD bc2Width;
> + DWORD bc2Height;
> + WORD bc2Planes;
> + WORD bc2BitCount;
> + DWORD bc2Compression;
> + DWORD bc2SizeImage;
> + DWORD bc2XRes;
> + DWORD bc2YRes;
> + DWORD bc2ClrUsed;
> + DWORD bc2ClrImportant;
> + /* same as BITMAPINFOHEADER until this point */
> + WORD bc2ResUnit;
> + WORD bc2Reserved;
> + WORD bc2Orientation;
> + WORD bc2Halftoning;
> + DWORD bc2HalftoneSize1;
> + DWORD bc2HalftoneSize2;
> + DWORD bc2ColorSpace;
> + DWORD bc2AppData;
> +} BITMAPCOREHEADER2;
Do we really need a typedef here? For only locally used structs, I think
we shouldn't use a typedef. Also the struct is only used to determine
the size and for nothing else? There may be a better way to do that...
Maybe something like in dlls/windowscodecs/icoformat.c ?
I think you got inspired by dlls/windowscodecs/bmpdecode.c, there is the
same issue. Why do we need a typedef, if we only use it in one file to
calculate the size?
>
> + BITMAPFILEHEADER *header;
>
> + if ((header_size == sizeof(BITMAPINFOHEADER)) ||
> + (header_size == sizeof(BITMAPV4HEADER)) ||
> + (header_size == sizeof(BITMAPV5HEADER)) ||
> + (header_size == sizeof(BITMAPCOREHEADER2)))
> + {
> + /* All structures have the same memory layout as BITMAPINFOHEADER */
> + BITMAPINFOHEADER*header = (BITMAPINFOHEADER*)*data;
> + ULONG count = header->biClrUsed;
>
> + else if (header_size == sizeof(BITMAPCOREHEADER))
> + {
> + BITMAPCOREHEADER*header = (BITMAPCOREHEADER*)*data;
I don't think it's a good idea to use variable names multiple times.
While this works fine it may be a bit confusing...
Cheers
Rico
More information about the wine-devel
mailing list