Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
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