Commit 2a5cabc2 authored by Alexandre Julliard's avatar Alexandre Julliard

gdi32: Move DIB driver definitions to dibdrv.h.

parent d12d9851
......@@ -18,6 +18,88 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
enum dib_info_flags
{
private_color_table = 1
};
typedef struct
{
int bit_count, width, height;
int stride; /* stride in bytes. Will be -ve for bottom-up dibs (see bits). */
struct gdi_image_bits bits; /* bits.ptr points to the top-left corner of the dib. */
DWORD red_mask, green_mask, blue_mask;
int red_shift, green_shift, blue_shift;
int red_len, green_len, blue_len;
RGBQUAD *color_table;
DWORD color_table_size;
enum dib_info_flags flags;
const struct primitive_funcs *funcs;
} dib_info;
typedef struct
{
DWORD count;
DWORD dashes[16]; /* 16 is the maximum number for a PS_USERSTYLE pen */
DWORD total_len; /* total length of the dashes, should be multiplied by 2 if there are an odd number of dash lengths */
} dash_pattern;
typedef struct
{
int left_in_dash;
int cur_dash;
BOOL mark;
} dash_pos;
typedef struct
{
DWORD and;
DWORD xor;
} rop_mask;
typedef struct
{
void *and;
void *xor;
} rop_mask_bits;
typedef struct dibdrv_physdev
{
struct gdi_physdev dev;
dib_info dib;
HRGN clip;
DWORD defer;
/* pen */
COLORREF pen_colorref;
DWORD pen_color, pen_and, pen_xor;
dash_pattern pen_pattern;
dash_pos dash_pos;
BOOL (* pen_lines)(struct dibdrv_physdev *pdev, int num, POINT *pts);
/* brush */
UINT brush_style;
UINT brush_hatch;
INT brush_rop; /* PatBlt, for example, can override the DC's rop2 */
COLORREF brush_colorref;
DWORD brush_color, brush_and, brush_xor;
dib_info brush_dib;
void *brush_and_bits, *brush_xor_bits;
BOOL (* brush_rects)(struct dibdrv_physdev *pdev, dib_info *dib, int num, const RECT *rects, HRGN clip);
/* background */
DWORD bkgnd_color, bkgnd_and, bkgnd_xor;
} dibdrv_physdev;
#define DEFER_FORMAT 1
#define DEFER_PEN 2
#define DEFER_BRUSH 4
extern DWORD dibdrv_GetImage( PHYSDEV dev, HBITMAP hbitmap, BITMAPINFO *info,
struct gdi_image_bits *bits, struct bitblt_coords *src ) DECLSPEC_HIDDEN;
extern BOOL dibdrv_LineTo( PHYSDEV dev, INT x, INT y ) DECLSPEC_HIDDEN;
......
......@@ -72,90 +72,6 @@ typedef struct tagGDIOBJHDR
struct hdc_list *hdcs;
} GDIOBJHDR;
/* Device functions for the Wine driver interface */
enum dib_info_flags
{
private_color_table = 1
};
typedef struct
{
int bit_count, width, height;
int stride; /* stride in bytes. Will be -ve for bottom-up dibs (see bits). */
struct gdi_image_bits bits; /* bits.ptr points to the top-left corner of the dib. */
DWORD red_mask, green_mask, blue_mask;
int red_shift, green_shift, blue_shift;
int red_len, green_len, blue_len;
RGBQUAD *color_table;
DWORD color_table_size;
enum dib_info_flags flags;
const struct primitive_funcs *funcs;
} dib_info;
typedef struct
{
DWORD count;
DWORD dashes[16]; /* 16 is the maximum number for a PS_USERSTYLE pen */
DWORD total_len; /* total length of the dashes, should be multiplied by 2 if there are an odd number of dash lengths */
} dash_pattern;
typedef struct
{
int left_in_dash;
int cur_dash;
BOOL mark;
} dash_pos;
typedef struct
{
DWORD and;
DWORD xor;
} rop_mask;
typedef struct
{
void *and;
void *xor;
} rop_mask_bits;
typedef struct dibdrv_physdev
{
struct gdi_physdev dev;
dib_info dib;
HRGN clip;
DWORD defer;
/* pen */
COLORREF pen_colorref;
DWORD pen_color, pen_and, pen_xor;
dash_pattern pen_pattern;
dash_pos dash_pos;
BOOL (* pen_lines)(struct dibdrv_physdev *pdev, int num, POINT *pts);
/* brush */
UINT brush_style;
UINT brush_hatch;
INT brush_rop; /* PatBlt, for example, can override the DC's rop2 */
COLORREF brush_colorref;
DWORD brush_color, brush_and, brush_xor;
dib_info brush_dib;
void *brush_and_bits, *brush_xor_bits;
BOOL (* brush_rects)(struct dibdrv_physdev *pdev, dib_info *dib, int num, const RECT *rects, HRGN clip);
/* background */
DWORD bkgnd_color, bkgnd_and, bkgnd_xor;
} dibdrv_physdev;
#define DEFER_FORMAT 1
#define DEFER_PEN 2
#define DEFER_BRUSH 4
typedef struct gdi_dc_funcs DC_FUNCTIONS;
/* It should not be necessary to access the contents of the GdiPath
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment