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 "winbase.h"
#include "ntgdi.h"
#include "win32u_private.h"
#include "wine/unixlib.h"
extern void *__wine_syscall_dispatcher DECLSPEC_HIDDEN;

View file

@ -28,7 +28,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(psdrv);
*
* 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) {
case PATCOPY:

View file

@ -147,7 +147,7 @@ static inline DWORD max_ascii85_size(DWORD size)
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 );
}
@ -184,13 +184,13 @@ static void PSDRV_WriteImageBits( print_ctx *ctx, const BITMAPINFO *info, BOOL g
* PSDRV_PutImage
*/
DWORD CDECL PSDRV_PutImage( print_ctx *ctx, HRGN clip, BITMAPINFO *info,
const struct gdi_image_bits *bits, struct bitblt_coords *src,
struct bitblt_coords *dst, DWORD rop )
const struct ps_image_bits *bits, struct ps_bitblt_coords *src,
struct ps_bitblt_coords *dst, DWORD rop )
{
int src_stride, dst_stride, size, x, y, width, height, bit_offset;
int dst_x, dst_y, dst_width, dst_height;
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;
if (info->bmiHeader.biPlanes != 1) goto update_format;

View file

@ -27,7 +27,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(psdrv);
/***********************************************************************
* 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;

View file

@ -37,7 +37,7 @@ static const DWORD PEN_alternate[] = { 1 };
/***********************************************************************
* 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;
EXTLOGPEN *elp = NULL;

View file

@ -45,7 +45,7 @@ struct pp_data
print_ctx *ctx;
struct brush_pattern *patterns;
struct ps_brush_pattern *patterns;
BOOL path;
INT break_extra;
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;
@ -299,8 +299,8 @@ static void clip_visrect(HDC hdc, RECT *dst, const RECT *src)
DeleteObject(hrgn);
}
static void get_vis_rectangles(HDC hdc, struct bitblt_coords *dst,
const XFORM *xform, DWORD width, DWORD height, struct bitblt_coords *src)
static void get_vis_rectangles(HDC hdc, struct ps_bitblt_coords *dst,
const XFORM *xform, DWORD width, DWORD height, struct ps_bitblt_coords *src)
{
RECT rect;
@ -347,8 +347,8 @@ static int stretch_blt(print_ctx *ctx, const EMRSTRETCHBLT *blt,
{
char dst_buffer[FIELD_OFFSET(BITMAPINFO, bmiColors[256])];
BITMAPINFO *dst_info = (BITMAPINFO *)dst_buffer;
struct bitblt_coords src, dst;
struct gdi_image_bits bits;
struct ps_bitblt_coords src, dst;
struct ps_image_bits bits;
DWORD err;
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])];
BITMAPINFO *info = (BITMAPINFO *)buffer;
struct bitblt_coords src, dst;
struct gdi_image_bits bits;
struct ps_bitblt_coords src, dst;
struct ps_image_bits bits;
HBITMAP bmp, old_bmp;
BOOL ret = FALSE;
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,
DWORD i, struct brush_pattern **pattern)
DWORD i, struct ps_brush_pattern **pattern)
{
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)
{
struct brush_pattern *pattern = NULL;
struct ps_brush_pattern *pattern = NULL;
int 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)
{
struct brush_pattern *pattern;
struct ps_brush_pattern *pattern;
HBRUSH hbrush;
int ret;
@ -2297,7 +2297,7 @@ static int WINAPI hmf_proc(HDC hdc, HANDLETABLE *htable,
case EMR_SELECTOBJECT:
{
const EMRSELECTOBJECT *so = (const EMRSELECTOBJECT *)rec;
struct brush_pattern *pattern;
struct ps_brush_pattern *pattern;
UINT aa_flags;
HGDIOBJ obj;

View file

@ -25,14 +25,41 @@
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "ntgdi.h"
#include "winspool.h"
#include "unixlib.h"
#include "wine/gdi_driver.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 {
INT index;
LPCSTR sz;
@ -292,9 +319,9 @@ typedef struct {
} PSFONT;
typedef struct {
PSCOLOR color;
BOOL set;
struct brush_pattern pattern;
PSCOLOR color;
BOOL set;
struct ps_brush_pattern pattern;
} PSBRUSH;
#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_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_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,
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;
@ -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_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,
const struct gdi_image_bits *bits, struct bitblt_coords *src,
struct bitblt_coords *dst, DWORD rop ) DECLSPEC_HIDDEN;
const struct ps_image_bits *bits, struct ps_bitblt_coords *src,
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_RoundRect( print_ctx *ctx, INT left, INT top, INT right,
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 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_SetDCBrushColor( 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
#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 "ntuser.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 */
#ifdef WINE_UNIX_LIB
struct window_surface;
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 int win32u_get_window_pixel_format( HWND hwnd );
#endif /* WINE_UNIX_LIB */
#endif /* __WINE_WINE_GDI_DRIVER_H */