Commit a42e6aef authored by Marcus Meissner's avatar Marcus Meissner Committed by Alexandre Julliard

Added DRAWPATTERNRECT Escape() 16<->32 mapper and stub in WINEPS.

parent f0db7ab0
......@@ -646,11 +646,24 @@ INT16 WINAPI Escape16( HDC16 hdc, INT16 escape, INT16 in_count, SEGPTR in_data,
rc16->bottom = rc.bottom;
return ret;
}
/* Escape(hdc,DRAWPATTERNRECT,PRECT_STRUCT*,NULL); */
case DRAWPATTERNRECT:
{
DRAWPATRECT pr;
DRAWPATRECT16 *pr16 = (DRAWPATRECT16*)MapSL(in_data);
pr.ptPosition.x = pr16->ptPosition.x;
pr.ptPosition.y = pr16->ptPosition.y;
pr.ptSize.x = pr16->ptSize.x;
pr.ptSize.y = pr16->ptSize.y;
pr.wStyle = pr16->wStyle;
pr.wPattern = pr16->wPattern;
return Escape( HDC_32(hdc), escape, sizeof(pr), (LPCSTR)&pr, NULL );
}
/* Escape(hdc,ABORTDOC,NULL,NULL); */
/* Escape(hdc,BANDINFO,BANDINFOSTRUCT*,BANDINFOSTRUCT*); */
/* Escape(hdc,BEGIN_PATH,NULL,NULL); */
/* Escape(hdc,DRAWPATTERNRECT,PRECT_STRUCT*,NULL); */
/* Escape(hdc,ENDDOC,NULL,NULL); */
/* Escape(hdc,END_PATH,PATHINFO,NULL); */
/* Escape(hdc,EXTTEXTOUT,EXTTEXT_STRUCT*,NULL); */
......@@ -674,7 +687,6 @@ INT16 WINAPI Escape16( HDC16 hdc, INT16 escape, INT16 in_count, SEGPTR in_data,
case ABORTDOC:
case BANDINFO:
case BEGIN_PATH:
case DRAWPATTERNRECT:
case ENDDOC:
case END_PATH:
case EXTTEXTOUT:
......
......@@ -54,6 +54,7 @@ INT PSDRV_ExtEscape( PSDRV_PDEVICE *physDev, INT nEscape, INT cbInput, LPCVOID i
switch(num) {
case NEXTBAND:
/*case BANDINFO:*/
case SETCOPYCOUNT:
case GETTECHNOLOGY:
case SETLINECAP:
......@@ -70,13 +71,50 @@ INT PSDRV_ExtEscape( PSDRV_PDEVICE *physDev, INT nEscape, INT cbInput, LPCVOID i
case BEGIN_PATH:
case CLIP_TO_PATH:
case END_PATH:
/*case DRAWPATTERNRECT:*/
return TRUE;
default:
FIXME("QUERYESCSUPPORT(%d) - not supported.\n", num);
return FALSE;
}
}
case MFCOMMENT:
{
int i;
FIXME("MFCOMMENT(%p, %d)\n", in_data, cbInput);
for (i=0;i<cbInput;i++) MESSAGE("%02x ", ((LPBYTE)in_data)[i]);
MESSAGE("\n");
return 1;
}
case DRAWPATTERNRECT:
{
DRAWPATRECT *dpr = (DRAWPATRECT*)in_data;
FIXME("DRAWPATTERNRECT(pos (%ld,%ld), size %ldx%ld, style %d, pattern %x), stub!\n",
dpr->ptPosition.x, dpr->ptPosition.y,
dpr->ptSize.x, dpr->ptSize.y,
dpr->wStyle, dpr->wPattern
);
return 1;
}
case BANDINFO:
{
BANDINFOSTRUCT *ibi = (BANDINFOSTRUCT*)in_data;
BANDINFOSTRUCT *obi = (BANDINFOSTRUCT*)out_data;
FIXME("BANDINFO(graphics %d, text %d, rect [%ldx%ld-%ldx%ld]), stub!\n",
ibi->GraphicsFlag,
ibi->TextFlag,
ibi->GraphicsRect.top,
ibi->GraphicsRect.bottom,
ibi->GraphicsRect.left,
ibi->GraphicsRect.right
);
memcpy (obi, ibi, sizeof(*ibi));
return 1;
}
case NEXTBAND:
{
RECT *r = out_data;
......
......@@ -141,6 +141,14 @@ typedef struct _tagPAGESIZE {
} PAGESIZE;
/* For BANDINFO Escape */
typedef struct _BANDINFOSTRUCT
{
BOOL GraphicsFlag;
BOOL TextFlag;
RECT GraphicsRect;
} BANDINFOSTRUCT, *PBANDINFOSTRUCT;
typedef struct _tagOPTIONENTRY {
char *Name; /* eg "True" */
char *FullName; /* eg "Installed" */
......
......@@ -355,6 +355,15 @@ struct PATH_INFO {
#define RENDERMODE_OPEN 1
#define RENDERMODE_CLOSED 2
/* For DRAWPATTERNRECT Escape, 16bit mode */
typedef struct _DRAWPATRECT16
{
POINT16 ptPosition;
POINT16 ptSize;
WORD wStyle;
WORD wPattern;
} DRAWPATRECT16, *PDRAWPATRECT16;
#include <poppack.h>
......
......@@ -3204,6 +3204,14 @@ typedef struct _BLENDFUNCTION
#define LAYOUT_BITMAPORIENTATIONPRESERVED 0x00000008
#define NOMIRRORBITMAP 0x80000000
/* For DRAWPATTERNRECT Escape */
typedef struct _DRAWPATRECT
{
POINT ptPosition;
POINT ptSize;
WORD wStyle;
WORD wPattern;
} DRAWPATRECT, *PDRAWPATRECT;
INT WINAPI AbortDoc(HDC);
BOOL WINAPI AbortPath(HDC);
......
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