Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
a4c3ed02
Commit
a4c3ed02
authored
Nov 15, 2002
by
Huw Davies
Committed by
Alexandre Julliard
Nov 15, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implemented Escapes *_PATH and POSTSCRIPT_IGNORE.
parent
94705862
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
115 additions
and
7 deletions
+115
-7
brush.c
dlls/wineps/brush.c
+3
-0
escape.c
dlls/wineps/escape.c
+77
-5
graphics.c
dlls/wineps/graphics.c
+3
-0
ps.c
dlls/wineps/ps.c
+8
-2
psdrv.h
dlls/wineps/psdrv.h
+3
-0
wingdi16.h
include/wine/wingdi16.h
+21
-0
No files found.
dlls/wineps/brush.c
View file @
a4c3ed02
...
...
@@ -134,6 +134,9 @@ BOOL PSDRV_Brush(PSDRV_PDEVICE *physDev, BOOL EO)
LOGBRUSH
logbrush
;
BOOL
ret
=
TRUE
;
if
(
physDev
->
pathdepth
)
return
FALSE
;
if
(
!
GetObjectA
(
GetCurrentObject
(
physDev
->
hdc
,
OBJ_BRUSH
),
sizeof
(
logbrush
),
&
logbrush
))
{
ERR
(
"Can't get BRUSHOBJ
\n
"
);
...
...
dlls/wineps/escape.c
View file @
a4c3ed02
...
...
@@ -19,6 +19,7 @@
*/
#include "windef.h"
#include "wingdi.h"
#include "wine/wingdi16.h"
#include "wine/winuser16.h"
#include "wownt32.h"
#include "psdrv.h"
...
...
@@ -27,7 +28,6 @@
WINE_DEFAULT_DEBUG_CHANNEL
(
psdrv
);
/**********************************************************************
* ExtEscape (WINEPS.@)
*/
...
...
@@ -56,8 +56,13 @@ INT PSDRV_ExtEscape( PSDRV_PDEVICE *physDev, INT nEscape, INT cbInput, LPCVOID i
case
EXT_DEVICE_CAPS
:
case
SET_BOUNDS
:
case
EPSPRINTING
:
case
POSTSCRIPT_DATA
:
case
PASSTHROUGH
:
case
POSTSCRIPT_PASSTHROUGH
:
case
POSTSCRIPT_IGNORE
:
case
BEGIN_PATH
:
case
CLIP_TO_PATH
:
case
END_PATH
:
return
TRUE
;
default:
...
...
@@ -192,6 +197,8 @@ INT PSDRV_ExtEscape( PSDRV_PDEVICE *physDev, INT nEscape, INT cbInput, LPCVOID i
TRACE
(
"EPS Printing support %sable.
\n
"
,
epsprint
?
"en"
:
"dis"
);
return
1
;
}
case
POSTSCRIPT_DATA
:
case
PASSTHROUGH
:
case
POSTSCRIPT_PASSTHROUGH
:
{
...
...
@@ -204,6 +211,14 @@ INT PSDRV_ExtEscape( PSDRV_PDEVICE *physDev, INT nEscape, INT cbInput, LPCVOID i
return
WriteSpool16
(
physDev
->
job
.
hJob
,((
char
*
)
in_data
)
+
2
,
cbInput
-
2
);
}
case
POSTSCRIPT_IGNORE
:
{
BOOL
ret
=
physDev
->
job
.
quiet
;
TRACE
(
"POSTSCRIPT_IGNORE %d
\n
"
,
*
(
short
*
)
in_data
);
physDev
->
job
.
quiet
=
*
(
short
*
)
in_data
;
return
ret
;
}
case
GETSETPRINTORIENT
:
{
/* If lpInData is present, it is a 20 byte structure, first 32
...
...
@@ -213,6 +228,63 @@ INT PSDRV_ExtEscape( PSDRV_PDEVICE *physDev, INT nEscape, INT cbInput, LPCVOID i
FIXME
(
"GETSETPRINTORIENT not implemented (data %p)!
\n
"
,
in_data
);
return
1
;
}
case
BEGIN_PATH
:
TRACE
(
"BEGIN_PATH
\n
"
);
if
(
physDev
->
pathdepth
)
FIXME
(
"Nested paths not yet handled
\n
"
);
return
++
physDev
->
pathdepth
;
case
END_PATH
:
{
struct
PATH_INFO
*
info
=
(
struct
PATH_INFO
*
)
in_data
;
TRACE
(
"END_PATH
\n
"
);
if
(
!
physDev
->
pathdepth
)
{
ERR
(
"END_PATH called without a BEIGN_PATH
\n
"
);
return
-
1
;
}
TRACE
(
"RenderMode = %d, FillMode = %d, BkMode = %d
\n
"
,
info
->
RenderMode
,
info
->
FillMode
,
info
->
BkMode
);
switch
(
info
->
RenderMode
)
{
case
RENDERMODE_NO_DISPLAY
:
PSDRV_WriteClosePath
(
physDev
);
/* not sure if this is necessary, but it can't hurt */
break
;
case
RENDERMODE_OPEN
:
case
RENDERMODE_CLOSED
:
default:
FIXME
(
"END_PATH: RenderMode %d, not yet supported
\n
"
,
info
->
RenderMode
);
break
;
}
return
--
physDev
->
pathdepth
;
}
case
CLIP_TO_PATH
:
{
WORD
mode
=
*
(
WORD
*
)
in_data
;
switch
(
mode
)
{
case
CLIP_SAVE
:
TRACE
(
"CLIP_TO_PATH: CLIP_SAVE
\n
"
);
PSDRV_WriteGSave
(
physDev
);
return
1
;
case
CLIP_RESTORE
:
TRACE
(
"CLIP_TO_PATH: CLIP_RESTORE
\n
"
);
PSDRV_WriteGRestore
(
physDev
);
return
1
;
case
CLIP_INCLUSIVE
:
TRACE
(
"CLIP_TO_PATH: CLIP_INCLUSIVE
\n
"
);
/* FIXME to clip or eoclip ? (see PATH_INFO.FillMode) */
PSDRV_WriteClip
(
physDev
);
return
1
;
case
CLIP_EXCLUSIVE
:
FIXME
(
"CLIP_EXCLUSIVE: not implemented
\n
"
);
return
0
;
default:
FIXME
(
"Unknown CLIP_TO_PATH mode %d
\n
"
,
mode
);
return
0
;
}
return
0
;
}
default:
FIXME
(
"Unimplemented code 0x%x
\n
"
,
nEscape
);
return
0
;
...
...
@@ -288,6 +360,7 @@ INT PSDRV_StartDoc( PSDRV_PDEVICE *physDev, const DOCINFOA *doc )
*/
INT
PSDRV_EndDoc
(
PSDRV_PDEVICE
*
physDev
)
{
INT
ret
=
1
;
if
(
!
physDev
->
job
.
hJob
)
{
FIXME
(
"hJob == 0. Now what?
\n
"
);
return
0
;
...
...
@@ -297,13 +370,12 @@ INT PSDRV_EndDoc( PSDRV_PDEVICE *physDev )
WARN
(
"Somebody forgot a EndPage
\n
"
);
PSDRV_EndPage
(
physDev
);
}
if
(
!
PSDRV_WriteFooter
(
physDev
))
return
0
;
PSDRV_WriteFooter
(
physDev
);
if
(
CloseJob16
(
physDev
->
job
.
hJob
)
==
SP_ERROR
)
{
WARN
(
"CloseJob error
\n
"
);
ret
urn
0
;
ret
=
0
;
}
physDev
->
job
.
hJob
=
0
;
return
1
;
return
ret
;
}
dlls/wineps/graphics.c
View file @
a4c3ed02
...
...
@@ -361,6 +361,9 @@ COLORREF PSDRV_SetPixel( PSDRV_PDEVICE *physDev, INT x, INT y, COLORREF color )
*/
VOID
PSDRV_DrawLine
(
PSDRV_PDEVICE
*
physDev
)
{
if
(
physDev
->
pathdepth
)
return
;
if
(
physDev
->
pen
.
style
==
PS_NULL
)
PSDRV_WriteNewPath
(
physDev
);
else
...
...
dlls/wineps/ps.c
View file @
a4c3ed02
...
...
@@ -53,7 +53,8 @@ static char psprolog[] =
" r cvi gap idiv gap mul
\n
"
" {t moveto 0 b t sub rlineto}
\n
"
" for
\n
"
"} bind def
\n
"
;
"} bind def
\n
"
"/B {pop pop pop pop} def
\n
"
;
static
char
psbeginsetup
[]
=
"%%BeginSetup
\n
"
;
...
...
@@ -191,9 +192,14 @@ static char psarraydef[] =
int
PSDRV_WriteSpool
(
PSDRV_PDEVICE
*
physDev
,
LPSTR
lpData
,
WORD
cch
)
{
if
(
physDev
->
job
.
quiet
)
{
TRACE
(
"ignoring output
\n
"
);
return
0
;
}
if
(
physDev
->
job
.
OutOfPage
)
{
/* Will get here after NEWFRAME Escape */
if
(
!
PSDRV_StartPage
(
physDev
)
)
return
FALSE
;
return
0
;
}
return
WriteSpool16
(
physDev
->
job
.
hJob
,
lpData
,
cch
);
}
...
...
dlls/wineps/psdrv.h
View file @
a4c3ed02
...
...
@@ -305,6 +305,7 @@ typedef struct {
BOOL
banding
;
/* Have we received a NEXTBAND */
BOOL
OutOfPage
;
/* Page header not sent yet */
INT
PageNo
;
BOOL
quiet
;
/* Don't actually output anything */
}
JOB
;
typedef
struct
{
...
...
@@ -331,6 +332,8 @@ typedef struct {
int
vertSize
;
int
logPixelsX
;
int
logPixelsY
;
int
pathdepth
;
}
PSDRV_PDEVICE
;
typedef
struct
{
...
...
include/wine/wingdi16.h
View file @
a4c3ed02
...
...
@@ -354,6 +354,27 @@ typedef BOOL16 (CALLBACK *ABORTPROC16)(HDC16, INT16);
#define INT_PD_DEFAULT_DEVMODE 1
#define INT_PD_DEFAULT_MODEL 2
/* Escape: CLIP_TO_PATH modes */
#define CLIP_SAVE 0
#define CLIP_RESTORE 1
#define CLIP_INCLUSIVE 2
#define CLIP_EXCLUSIVE 3
/* Escape: END_PATH info */
struct
PATH_INFO
{
short
RenderMode
;
BYTE
FillMode
;
BYTE
BkMode
;
LOGPEN16
Pen
;
LOGBRUSH16
Brush
;
DWORD
BkColor
;
};
/* RenderMode */
#define RENDERMODE_NO_DISPLAY 0
#define RENDERMODE_OPEN 1
#define RENDERMODE_CLOSED 2
#include "poppack.h"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment