wineps: Don't include gdi_driver.h from PE module.

This commit is contained in:
Jacek Caban 2023-05-31 10:41:38 +02:00 committed by Alexandre Julliard
parent 56cfbf6b86
commit 7aa109501c
8 changed files with 62 additions and 34 deletions

View file

@ -25,7 +25,6 @@
#include "windef.h" #include "windef.h"
#include "winbase.h" #include "winbase.h"
#include "ntgdi.h" #include "ntgdi.h"
#include "win32u_private.h"
#include "wine/unixlib.h" #include "wine/unixlib.h"
extern void *__wine_syscall_dispatcher DECLSPEC_HIDDEN; extern void *__wine_syscall_dispatcher DECLSPEC_HIDDEN;

View file

@ -28,7 +28,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(psdrv);
* *
* PSDRV_PatBlt * PSDRV_PatBlt
*/ */
BOOL CDECL PSDRV_PatBlt(print_ctx *ctx, struct bitblt_coords *dst, DWORD dwRop) BOOL CDECL PSDRV_PatBlt(print_ctx *ctx, struct ps_bitblt_coords *dst, DWORD dwRop)
{ {
switch(dwRop) { switch(dwRop) {
case PATCOPY: case PATCOPY:

View file

@ -147,7 +147,7 @@ static inline DWORD max_ascii85_size(DWORD size)
return (size + 3) / 4 * 5; return (size + 3) / 4 * 5;
} }
static void CDECL free_heap_bits( struct gdi_image_bits *bits ) static void free_heap_bits( struct ps_image_bits *bits )
{ {
HeapFree( GetProcessHeap(), 0, bits->ptr ); HeapFree( GetProcessHeap(), 0, bits->ptr );
} }
@ -184,13 +184,13 @@ static void PSDRV_WriteImageBits( print_ctx *ctx, const BITMAPINFO *info, BOOL g
* PSDRV_PutImage * PSDRV_PutImage
*/ */
DWORD CDECL PSDRV_PutImage( print_ctx *ctx, HRGN clip, BITMAPINFO *info, DWORD CDECL PSDRV_PutImage( print_ctx *ctx, HRGN clip, BITMAPINFO *info,
const struct gdi_image_bits *bits, struct bitblt_coords *src, const struct ps_image_bits *bits, struct ps_bitblt_coords *src,
struct bitblt_coords *dst, DWORD rop ) struct ps_bitblt_coords *dst, DWORD rop )
{ {
int src_stride, dst_stride, size, x, y, width, height, bit_offset; int src_stride, dst_stride, size, x, y, width, height, bit_offset;
int dst_x, dst_y, dst_width, dst_height; int dst_x, dst_y, dst_width, dst_height;
unsigned char *src_ptr, *dst_ptr; unsigned char *src_ptr, *dst_ptr;
struct gdi_image_bits dst_bits; struct ps_image_bits dst_bits;
BOOL grayscale = info->bmiHeader.biBitCount == 24 && ctx->pi->ppd->ColorDevice == CD_False; BOOL grayscale = info->bmiHeader.biBitCount == 24 && ctx->pi->ppd->ColorDevice == CD_False;
if (info->bmiHeader.biPlanes != 1) goto update_format; if (info->bmiHeader.biPlanes != 1) goto update_format;

View file

@ -27,7 +27,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(psdrv);
/*********************************************************************** /***********************************************************************
* SelectBrush (WINEPS.@) * SelectBrush (WINEPS.@)
*/ */
HBRUSH CDECL PSDRV_SelectBrush( print_ctx *ctx, HBRUSH hbrush, const struct brush_pattern *pattern ) HBRUSH CDECL PSDRV_SelectBrush( print_ctx *ctx, HBRUSH hbrush, const struct ps_brush_pattern *pattern )
{ {
LOGBRUSH logbrush; LOGBRUSH logbrush;

View file

@ -37,7 +37,7 @@ static const DWORD PEN_alternate[] = { 1 };
/*********************************************************************** /***********************************************************************
* SelectPen (WINEPS.@) * SelectPen (WINEPS.@)
*/ */
HPEN CDECL PSDRV_SelectPen( print_ctx *ctx, HPEN hpen, const struct brush_pattern *pattern ) HPEN CDECL PSDRV_SelectPen( print_ctx *ctx, HPEN hpen, const struct ps_brush_pattern *pattern )
{ {
LOGPEN logpen; LOGPEN logpen;
EXTLOGPEN *elp = NULL; EXTLOGPEN *elp = NULL;

View file

@ -45,7 +45,7 @@ struct pp_data
print_ctx *ctx; print_ctx *ctx;
struct brush_pattern *patterns; struct ps_brush_pattern *patterns;
BOOL path; BOOL path;
INT break_extra; INT break_extra;
INT break_rem; INT break_rem;
@ -210,7 +210,7 @@ static inline void order_rect(RECT *rect)
} }
} }
static BOOL intersect_vis_rectangles(struct bitblt_coords *dst, struct bitblt_coords *src) static BOOL intersect_vis_rectangles(struct ps_bitblt_coords *dst, struct ps_bitblt_coords *src)
{ {
RECT rect; RECT rect;
@ -299,8 +299,8 @@ static void clip_visrect(HDC hdc, RECT *dst, const RECT *src)
DeleteObject(hrgn); DeleteObject(hrgn);
} }
static void get_vis_rectangles(HDC hdc, struct bitblt_coords *dst, static void get_vis_rectangles(HDC hdc, struct ps_bitblt_coords *dst,
const XFORM *xform, DWORD width, DWORD height, struct bitblt_coords *src) const XFORM *xform, DWORD width, DWORD height, struct ps_bitblt_coords *src)
{ {
RECT rect; RECT rect;
@ -347,8 +347,8 @@ static int stretch_blt(print_ctx *ctx, const EMRSTRETCHBLT *blt,
{ {
char dst_buffer[FIELD_OFFSET(BITMAPINFO, bmiColors[256])]; char dst_buffer[FIELD_OFFSET(BITMAPINFO, bmiColors[256])];
BITMAPINFO *dst_info = (BITMAPINFO *)dst_buffer; BITMAPINFO *dst_info = (BITMAPINFO *)dst_buffer;
struct bitblt_coords src, dst; struct ps_bitblt_coords src, dst;
struct gdi_image_bits bits; struct ps_image_bits bits;
DWORD err; DWORD err;
dst.log_x = blt->xDest; dst.log_x = blt->xDest;
@ -968,8 +968,8 @@ static BOOL gradient_fill(print_ctx *ctx, const TRIVERTEX *vert_array, DWORD nve
{ {
char buffer[FIELD_OFFSET(BITMAPINFO, bmiColors[256])]; char buffer[FIELD_OFFSET(BITMAPINFO, bmiColors[256])];
BITMAPINFO *info = (BITMAPINFO *)buffer; BITMAPINFO *info = (BITMAPINFO *)buffer;
struct bitblt_coords src, dst; struct ps_bitblt_coords src, dst;
struct gdi_image_bits bits; struct ps_image_bits bits;
HBITMAP bmp, old_bmp; HBITMAP bmp, old_bmp;
BOOL ret = FALSE; BOOL ret = FALSE;
TRIVERTEX *pts; TRIVERTEX *pts;
@ -1084,7 +1084,7 @@ static BOOL gradient_fill(print_ctx *ctx, const TRIVERTEX *vert_array, DWORD nve
} }
static HGDIOBJ get_object_handle(struct pp_data *data, HANDLETABLE *handletable, static HGDIOBJ get_object_handle(struct pp_data *data, HANDLETABLE *handletable,
DWORD i, struct brush_pattern **pattern) DWORD i, struct ps_brush_pattern **pattern)
{ {
if (i & 0x80000000) if (i & 0x80000000)
{ {
@ -1097,7 +1097,7 @@ static HGDIOBJ get_object_handle(struct pp_data *data, HANDLETABLE *handletable,
static BOOL select_hbrush(struct pp_data *data, HANDLETABLE *htable, int handle_count, HBRUSH brush) static BOOL select_hbrush(struct pp_data *data, HANDLETABLE *htable, int handle_count, HBRUSH brush)
{ {
struct brush_pattern *pattern = NULL; struct ps_brush_pattern *pattern = NULL;
int i; int i;
for (i = 0; i < handle_count; i++) for (i = 0; i < handle_count; i++)
@ -2090,7 +2090,7 @@ done:
static BOOL fill_rgn(struct pp_data *data, HANDLETABLE *htable, int handle_count, DWORD brush, HRGN rgn) static BOOL fill_rgn(struct pp_data *data, HANDLETABLE *htable, int handle_count, DWORD brush, HRGN rgn)
{ {
struct brush_pattern *pattern; struct ps_brush_pattern *pattern;
HBRUSH hbrush; HBRUSH hbrush;
int ret; int ret;
@ -2297,7 +2297,7 @@ static int WINAPI hmf_proc(HDC hdc, HANDLETABLE *htable,
case EMR_SELECTOBJECT: case EMR_SELECTOBJECT:
{ {
const EMRSELECTOBJECT *so = (const EMRSELECTOBJECT *)rec; const EMRSELECTOBJECT *so = (const EMRSELECTOBJECT *)rec;
struct brush_pattern *pattern; struct ps_brush_pattern *pattern;
UINT aa_flags; UINT aa_flags;
HGDIOBJ obj; HGDIOBJ obj;

View file

@ -25,14 +25,41 @@
#include "windef.h" #include "windef.h"
#include "winbase.h" #include "winbase.h"
#include "wingdi.h" #include "ntgdi.h"
#include "winspool.h" #include "winspool.h"
#include "unixlib.h" #include "unixlib.h"
#include "wine/gdi_driver.h"
#include "wine/list.h" #include "wine/list.h"
struct ps_bitblt_coords
{
int log_x; /* original position and size, in logical coords */
int log_y;
int log_width;
int log_height;
int x; /* mapped position and size, in device coords */
int y;
int width;
int height;
RECT visrect; /* rectangle clipped to the visible part, in device coords */
DWORD layout; /* DC layout */
};
struct ps_image_bits
{
void *ptr; /* pointer to the bits */
BOOL is_copy; /* whether this is a copy of the bits that can be modified */
void (*free)(struct ps_image_bits *); /* callback for freeing the bits */
};
struct ps_brush_pattern
{
BITMAPINFO *info; /* DIB info */
struct ps_image_bits bits; /* DIB bits */
UINT usage; /* color usage for DIB info */
};
typedef struct { typedef struct {
INT index; INT index;
LPCSTR sz; LPCSTR sz;
@ -292,9 +319,9 @@ typedef struct {
} PSFONT; } PSFONT;
typedef struct { typedef struct {
PSCOLOR color; PSCOLOR color;
BOOL set; BOOL set;
struct brush_pattern pattern; struct ps_brush_pattern pattern;
} PSBRUSH; } PSBRUSH;
#define MAX_DASHLEN 16 #define MAX_DASHLEN 16
@ -384,7 +411,7 @@ extern BOOL CDECL PSDRV_ExtTextOut( print_ctx *ctx, INT x, INT y, UINT flags,
extern BOOL CDECL PSDRV_FillPath( print_ctx *ctx ) DECLSPEC_HIDDEN; extern BOOL CDECL PSDRV_FillPath( print_ctx *ctx ) DECLSPEC_HIDDEN;
extern BOOL CDECL PSDRV_LineTo(print_ctx *ctx, INT x, INT y) DECLSPEC_HIDDEN; extern BOOL CDECL PSDRV_LineTo(print_ctx *ctx, INT x, INT y) DECLSPEC_HIDDEN;
extern BOOL CDECL PSDRV_PaintRgn( print_ctx *ctx, HRGN hrgn ) DECLSPEC_HIDDEN; extern BOOL CDECL PSDRV_PaintRgn( print_ctx *ctx, HRGN hrgn ) DECLSPEC_HIDDEN;
extern BOOL CDECL PSDRV_PatBlt(print_ctx *ctx, struct bitblt_coords *dst, DWORD dwRop) DECLSPEC_HIDDEN; extern BOOL CDECL PSDRV_PatBlt(print_ctx *ctx, struct ps_bitblt_coords *dst, DWORD dwRop) DECLSPEC_HIDDEN;
extern BOOL CDECL PSDRV_Pie( print_ctx *ctx, INT left, INT top, INT right, INT bottom, extern BOOL CDECL PSDRV_Pie( print_ctx *ctx, INT left, INT top, INT right, INT bottom,
INT xstart, INT ystart, INT xend, INT yend ) DECLSPEC_HIDDEN; INT xstart, INT ystart, INT xend, INT yend ) DECLSPEC_HIDDEN;
extern BOOL CDECL PSDRV_PolyBezier( print_ctx *ctx, const POINT *pts, DWORD count ) DECLSPEC_HIDDEN; extern BOOL CDECL PSDRV_PolyBezier( print_ctx *ctx, const POINT *pts, DWORD count ) DECLSPEC_HIDDEN;
@ -392,14 +419,16 @@ extern BOOL CDECL PSDRV_PolyBezierTo( print_ctx *ctx, const POINT *pts, DWORD co
extern BOOL CDECL PSDRV_PolyPolygon( print_ctx *ctx, const POINT* pts, const INT* counts, UINT polygons ) DECLSPEC_HIDDEN; extern BOOL CDECL PSDRV_PolyPolygon( print_ctx *ctx, const POINT* pts, const INT* counts, UINT polygons ) DECLSPEC_HIDDEN;
extern BOOL CDECL PSDRV_PolyPolyline( print_ctx *ctx, const POINT* pts, const DWORD* counts, DWORD polylines ) DECLSPEC_HIDDEN; extern BOOL CDECL PSDRV_PolyPolyline( print_ctx *ctx, const POINT* pts, const DWORD* counts, DWORD polylines ) DECLSPEC_HIDDEN;
extern DWORD CDECL PSDRV_PutImage( print_ctx *ctx, HRGN clip, BITMAPINFO *info, extern DWORD CDECL PSDRV_PutImage( print_ctx *ctx, HRGN clip, BITMAPINFO *info,
const struct gdi_image_bits *bits, struct bitblt_coords *src, const struct ps_image_bits *bits, struct ps_bitblt_coords *src,
struct bitblt_coords *dst, DWORD rop ) DECLSPEC_HIDDEN; struct ps_bitblt_coords *dst, DWORD rop ) DECLSPEC_HIDDEN;
extern BOOL CDECL PSDRV_Rectangle( print_ctx *ctx, INT left, INT top, INT right, INT bottom ) DECLSPEC_HIDDEN; extern BOOL CDECL PSDRV_Rectangle( print_ctx *ctx, INT left, INT top, INT right, INT bottom ) DECLSPEC_HIDDEN;
extern BOOL CDECL PSDRV_RoundRect( print_ctx *ctx, INT left, INT top, INT right, extern BOOL CDECL PSDRV_RoundRect( print_ctx *ctx, INT left, INT top, INT right,
INT bottom, INT ell_width, INT ell_height ) DECLSPEC_HIDDEN; INT bottom, INT ell_width, INT ell_height ) DECLSPEC_HIDDEN;
extern HBRUSH CDECL PSDRV_SelectBrush( print_ctx *ctx, HBRUSH hbrush, const struct brush_pattern *pattern ) DECLSPEC_HIDDEN; extern HBRUSH CDECL PSDRV_SelectBrush( print_ctx *ctx, HBRUSH hbrush,
const struct ps_brush_pattern *pattern ) DECLSPEC_HIDDEN;
extern HFONT CDECL PSDRV_SelectFont( print_ctx *ctx, HFONT hfont, UINT *aa_flags ) DECLSPEC_HIDDEN; extern HFONT CDECL PSDRV_SelectFont( print_ctx *ctx, HFONT hfont, UINT *aa_flags ) DECLSPEC_HIDDEN;
extern HPEN CDECL PSDRV_SelectPen( print_ctx *ctx, HPEN hpen, const struct brush_pattern *pattern ) DECLSPEC_HIDDEN; extern HPEN CDECL PSDRV_SelectPen( print_ctx *ctx, HPEN hpen,
const struct ps_brush_pattern *pattern ) DECLSPEC_HIDDEN;
extern COLORREF CDECL PSDRV_SetBkColor( print_ctx *ctx, COLORREF color ) DECLSPEC_HIDDEN; extern COLORREF CDECL PSDRV_SetBkColor( print_ctx *ctx, COLORREF color ) DECLSPEC_HIDDEN;
extern COLORREF CDECL PSDRV_SetDCBrushColor( print_ctx *ctx, COLORREF color ) DECLSPEC_HIDDEN; extern COLORREF CDECL PSDRV_SetDCBrushColor( print_ctx *ctx, COLORREF color ) DECLSPEC_HIDDEN;
extern COLORREF CDECL PSDRV_SetDCPenColor( print_ctx *ctx, COLORREF color ) DECLSPEC_HIDDEN; extern COLORREF CDECL PSDRV_SetDCPenColor( print_ctx *ctx, COLORREF color ) DECLSPEC_HIDDEN;

View file

@ -21,6 +21,10 @@
#ifndef __WINE_WINE_GDI_DRIVER_H #ifndef __WINE_WINE_GDI_DRIVER_H
#define __WINE_WINE_GDI_DRIVER_H #define __WINE_WINE_GDI_DRIVER_H
#ifndef WINE_UNIX_LIB
#error The GDI driver can only be used on the Unix side
#endif
#include "winternl.h" #include "winternl.h"
#include "ntuser.h" #include "ntuser.h"
#include "immdev.h" #include "immdev.h"
@ -197,8 +201,6 @@ static inline void push_dc_driver( PHYSDEV *dev, PHYSDEV physdev, const struct g
/* support for window surfaces */ /* support for window surfaces */
#ifdef WINE_UNIX_LIB
struct window_surface; struct window_surface;
struct window_surface_funcs struct window_surface_funcs
@ -348,6 +350,4 @@ extern void __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT
extern BOOL win32u_set_window_pixel_format( HWND hwnd, int format, BOOL internal ); extern BOOL win32u_set_window_pixel_format( HWND hwnd, int format, BOOL internal );
extern int win32u_get_window_pixel_format( HWND hwnd ); extern int win32u_get_window_pixel_format( HWND hwnd );
#endif /* WINE_UNIX_LIB */
#endif /* __WINE_WINE_GDI_DRIVER_H */ #endif /* __WINE_WINE_GDI_DRIVER_H */