2 * GDI bitmap definitions
4 * Copyright 1993, 1994 Alexandre Julliard
7 #ifndef __WINE_BITMAP_H
8 #define __WINE_BITMAP_H
12 struct tagGDI_BITMAP_DRIVER
;
14 /* Flags used for BitmapBits. We only use the first two at the moment */
19 #define DDB_SETWITHFILLER 8
22 const struct tagDC_FUNCS
*funcs
; /* DC function table */
23 void *physBitmap
; /* ptr to device specific data */
26 /* GDI logical bitmap object */
27 typedef struct tagBITMAPOBJ
31 SIZE size
; /* For SetBitmapDimension() */
35 /* For device-independent bitmaps: */
39 typedef struct tagBITMAP_DRIVER
41 INT (*pSetDIBits
)(struct tagBITMAPOBJ
*,struct tagDC
*,UINT
,UINT
,LPCVOID
,const BITMAPINFO
*,UINT
,HBITMAP
);
42 INT (*pGetDIBits
)(struct tagBITMAPOBJ
*,struct tagDC
*,UINT
,UINT
,LPVOID
,BITMAPINFO
*,UINT
,HBITMAP
);
43 VOID (*pDeleteDIBSection
)(struct tagBITMAPOBJ
*);
46 extern BITMAP_DRIVER
*BITMAP_Driver
;
48 /* objects/bitmap.c */
49 extern INT16
BITMAP_GetObject16( BITMAPOBJ
* bmp
, INT16 count
, LPVOID buffer
);
50 extern INT
BITMAP_GetObject( BITMAPOBJ
* bmp
, INT count
, LPVOID buffer
);
51 extern BOOL
BITMAP_DeleteObject( HBITMAP16 hbitmap
, BITMAPOBJ
* bitmap
);
52 extern INT
BITMAP_GetWidthBytes( INT width
, INT depth
);
53 extern HBITMAP
BITMAP_CopyBitmap( HBITMAP hbitmap
);
56 extern int DIB_GetDIBWidthBytes( int width
, int depth
);
57 extern int DIB_GetDIBImageBytes( int width
, int height
, int depth
);
58 extern int DIB_BitmapInfoSize( const BITMAPINFO
* info
, WORD coloruse
);
59 extern int DIB_GetBitmapInfo( const BITMAPINFOHEADER
*header
, DWORD
*width
,
60 int *height
, WORD
*bpp
, WORD
*compr
);
61 extern void DIB_UpdateDIBSection( DC
*dc
, BOOL toDIB
);
62 extern void DIB_DeleteDIBSection( BITMAPOBJ
*bmp
);
63 extern void DIB_SelectDIBSection( DC
*dc
, BITMAPOBJ
*bmp
);
64 extern void DIB_FixColorsToLoadflags(BITMAPINFO
* bmi
, UINT loadflags
, BYTE pix
);
65 extern HGLOBAL
DIB_CreateDIBFromBitmap(HDC hdc
, HBITMAP hBmp
);
67 #endif /* __WINE_BITMAP_H */