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
dec2cee2
Commit
dec2cee2
authored
May 02, 2002
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removed some direct accesses to the DC structure.
parent
acd1c148
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
131 additions
and
114 deletions
+131
-114
dc.c
dlls/ttydrv/dc.c
+0
-9
ttydrv.h
dlls/ttydrv/ttydrv.h
+0
-1
ttydrv.spec
dlls/ttydrv/ttydrv.spec
+0
-1
bitblt.c
dlls/wineps/bitblt.c
+9
-6
bitmap.c
dlls/wineps/bitmap.c
+10
-5
clipping.c
dlls/wineps/clipping.c
+3
-10
font.c
dlls/wineps/font.c
+1
-0
graphics.c
dlls/wineps/graphics.c
+93
-61
pen.c
dlls/wineps/pen.c
+1
-0
psdrv.h
dlls/wineps/psdrv.h
+1
-5
text.c
dlls/wineps/text.c
+3
-6
wineps.spec
dlls/wineps/wineps.spec
+1
-1
x11drv.spec
dlls/x11drv/x11drv.spec
+1
-1
clipping.c
graphics/x11drv/clipping.c
+4
-5
gdi.h
include/gdi.h
+1
-1
x11drv.h
include/x11drv.h
+1
-1
clipping.c
objects/clipping.c
+2
-1
No files found.
dlls/ttydrv/dc.c
View file @
dec2cee2
...
...
@@ -202,12 +202,3 @@ INT TTYDRV_GetDeviceCaps( TTYDRV_PDEVICE *physDev, INT cap )
return
0
;
}
}
/***********************************************************************
* TTYDRV_DC_SetDeviceClipping
*/
void
TTYDRV_DC_SetDeviceClipping
(
TTYDRV_PDEVICE
*
physDev
)
{
TRACE
(
"(%x)
\n
"
,
physDev
->
hdc
);
}
dlls/ttydrv/ttydrv.h
View file @
dec2cee2
...
...
@@ -107,7 +107,6 @@ extern BOOL TTYDRV_DC_PolyPolygon(TTYDRV_PDEVICE *physDev, const POINT* pt, cons
extern
BOOL
TTYDRV_DC_PolyPolyline
(
TTYDRV_PDEVICE
*
physDev
,
const
POINT
*
pt
,
const
DWORD
*
counts
,
DWORD
polylines
);
extern
BOOL
TTYDRV_DC_Rectangle
(
TTYDRV_PDEVICE
*
physDev
,
INT
left
,
INT
top
,
INT
right
,
INT
bottom
);
extern
BOOL
TTYDRV_DC_RoundRect
(
TTYDRV_PDEVICE
*
physDev
,
INT
left
,
INT
top
,
INT
right
,
INT
bottom
,
INT
ell_width
,
INT
ell_height
);
extern
void
TTYDRV_DC_SetDeviceClipping
(
TTYDRV_PDEVICE
*
physDev
);
extern
COLORREF
TTYDRV_DC_SetPixel
(
TTYDRV_PDEVICE
*
physDev
,
INT
x
,
INT
y
,
COLORREF
color
);
extern
BOOL
TTYDRV_DC_StretchBlt
(
TTYDRV_PDEVICE
*
physDevDst
,
INT
xDst
,
INT
yDst
,
INT
widthDst
,
INT
heightDst
,
TTYDRV_PDEVICE
*
physDevSrc
,
INT
xSrc
,
INT
ySrc
,
INT
widthSrc
,
INT
heightSrc
,
DWORD
rop
);
INT
TTYDRV_DC_SetDIBitsToDevice
(
TTYDRV_PDEVICE
*
physDev
,
INT
xDest
,
INT
yDest
,
DWORD
cx
,
DWORD
cy
,
INT
xSrc
,
INT
ySrc
,
UINT
startscan
,
UINT
lines
,
LPCVOID
bits
,
const
BITMAPINFO
*
info
,
UINT
coloruse
);
...
...
dlls/ttydrv/ttydrv.spec
View file @
dec2cee2
...
...
@@ -40,7 +40,6 @@ debug_channels (ttydrv)
@ cdecl SelectBitmap(ptr long) TTYDRV_SelectBitmap
@ cdecl SelectFont(ptr long) TTYDRV_SelectFont
@ cdecl SetDIBitsToDevice(ptr long long long long long long long long ptr ptr long) TTYDRV_DC_SetDIBitsToDevice
@ cdecl SetDeviceClipping(ptr) TTYDRV_DC_SetDeviceClipping
@ cdecl SetPixel(ptr long long long) TTYDRV_DC_SetPixel
@ cdecl StretchBlt(ptr long long long long ptr long long long long long) TTYDRV_DC_StretchBlt
...
...
dlls/wineps/bitblt.c
View file @
dec2cee2
...
...
@@ -18,7 +18,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "gdi.h"
#include "psdrv.h"
#include "wine/debug.h"
#include "winbase.h"
...
...
@@ -32,13 +31,18 @@ WINE_DEFAULT_DEBUG_CHANNEL(psdrv);
*/
BOOL
PSDRV_PatBlt
(
PSDRV_PDEVICE
*
physDev
,
INT
x
,
INT
y
,
INT
width
,
INT
height
,
DWORD
dwRop
)
{
DC
*
dc
=
physDev
->
dc
;
POINT
pt
[
2
];
pt
[
0
].
x
=
x
;
pt
[
0
].
y
=
y
;
pt
[
1
].
x
=
x
+
width
;
pt
[
1
].
y
=
y
+
height
;
LPtoDP
(
physDev
->
hdc
,
pt
,
2
);
switch
(
dwRop
)
{
case
PATCOPY
:
PSDRV_WriteGSave
(
physDev
);
PSDRV_WriteRectangle
(
physDev
,
XLPTODP
(
dc
,
x
),
YLPTODP
(
dc
,
y
),
XLSTODS
(
dc
,
width
),
YLSTODS
(
dc
,
height
));
PSDRV_WriteRectangle
(
physDev
,
pt
[
0
].
x
,
pt
[
0
].
y
,
pt
[
1
].
x
-
pt
[
0
].
x
,
pt
[
1
].
y
-
pt
[
0
].
y
);
PSDRV_Brush
(
physDev
,
FALSE
);
PSDRV_WriteGRestore
(
physDev
);
return
TRUE
;
...
...
@@ -49,8 +53,7 @@ BOOL PSDRV_PatBlt(PSDRV_PDEVICE *physDev, INT x, INT y, INT width, INT height, D
PSCOLOR
pscol
;
PSDRV_WriteGSave
(
physDev
);
PSDRV_WriteRectangle
(
physDev
,
XLPTODP
(
dc
,
x
),
YLPTODP
(
dc
,
y
),
XLSTODS
(
dc
,
width
),
YLSTODS
(
dc
,
height
));
PSDRV_WriteRectangle
(
physDev
,
pt
[
0
].
x
,
pt
[
0
].
y
,
pt
[
1
].
x
-
pt
[
0
].
x
,
pt
[
1
].
y
-
pt
[
0
].
y
);
PSDRV_CreateColor
(
physDev
,
&
pscol
,
(
dwRop
==
BLACKNESS
)
?
RGB
(
0
,
0
,
0
)
:
RGB
(
0xff
,
0xff
,
0xff
)
);
PSDRV_WriteSetColor
(
physDev
,
&
pscol
);
...
...
dlls/wineps/bitmap.c
View file @
dec2cee2
...
...
@@ -171,7 +171,7 @@ INT PSDRV_StretchDIBits( PSDRV_PDEVICE *physDev, INT xDst, INT yDst, INT widthDs
WORD
bpp
,
compression
;
const
char
*
ptr
;
INT
line
;
DC
*
dc
=
physDev
->
dc
;
POINT
pt
[
2
]
;
TRACE
(
"%08x (%d,%d %dx%d) -> (%d,%d %dx%d)
\n
"
,
physDev
->
hdc
,
xSrc
,
ySrc
,
widthSrc
,
heightSrc
,
xDst
,
yDst
,
widthDst
,
heightDst
);
...
...
@@ -189,10 +189,15 @@ INT PSDRV_StretchDIBits( PSDRV_PDEVICE *physDev, INT xDst, INT yDst, INT widthDs
return
FALSE
;
}
xDst
=
XLPTODP
(
dc
,
xDst
);
yDst
=
YLPTODP
(
dc
,
yDst
);
widthDst
=
XLSTODS
(
dc
,
widthDst
);
heightDst
=
YLSTODS
(
dc
,
heightDst
);
pt
[
0
].
x
=
xDst
;
pt
[
0
].
y
=
yDst
;
pt
[
1
].
x
=
xDst
+
widthDst
;
pt
[
1
].
y
=
yDst
+
heightDst
;
LPtoDP
(
physDev
->
hdc
,
pt
,
2
);
xDst
=
pt
[
0
].
x
;
yDst
=
pt
[
0
].
y
;
widthDst
=
pt
[
1
].
x
-
pt
[
0
].
x
;
heightDst
=
pt
[
1
].
y
-
pt
[
0
].
y
;
switch
(
bpp
)
{
...
...
dlls/wineps/clipping.c
View file @
dec2cee2
...
...
@@ -18,7 +18,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "gdi.h"
#include "psdrv.h"
#include "wine/debug.h"
#include "winbase.h"
...
...
@@ -28,21 +27,15 @@ WINE_DEFAULT_DEBUG_CHANNEL(psdrv);
/***********************************************************************
* PSDRV_SetDeviceClipping
*/
VOID
PSDRV_SetDeviceClipping
(
PSDRV_PDEVICE
*
physDev
)
VOID
PSDRV_SetDeviceClipping
(
PSDRV_PDEVICE
*
physDev
,
HRGN
hrgn
)
{
CHAR
szArrayName
[]
=
"clippath"
;
DWORD
size
;
RGNDATA
*
rgndata
;
DC
*
dc
=
physDev
->
dc
;
TRACE
(
"hdc=%04x
\n
"
,
physDev
->
hdc
);
if
(
dc
->
hGCClipRgn
==
0
)
{
ERR
(
"Rgn is 0. Please report this.
\n
"
);
return
;
}
size
=
GetRegionData
(
dc
->
hGCClipRgn
,
0
,
NULL
);
size
=
GetRegionData
(
hrgn
,
0
,
NULL
);
if
(
!
size
)
{
ERR
(
"Invalid region
\n
"
);
return
;
...
...
@@ -54,7 +47,7 @@ VOID PSDRV_SetDeviceClipping( PSDRV_PDEVICE *physDev )
return
;
}
GetRegionData
(
dc
->
hGCClipR
gn
,
size
,
rgndata
);
GetRegionData
(
hr
gn
,
size
,
rgndata
);
PSDRV_WriteInitClip
(
physDev
);
...
...
dlls/wineps/font.c
View file @
dec2cee2
...
...
@@ -20,6 +20,7 @@
#include <string.h>
#include <stdlib.h>
/* for bsearch() */
#include "winspool.h"
#include "gdi.h"
#include "psdrv.h"
#include "wine/debug.h"
#include "winerror.h"
...
...
dlls/wineps/graphics.c
View file @
dec2cee2
...
...
@@ -40,15 +40,18 @@ WINE_DEFAULT_DEBUG_CHANNEL(psdrv);
*/
BOOL
PSDRV_LineTo
(
PSDRV_PDEVICE
*
physDev
,
INT
x
,
INT
y
)
{
DC
*
dc
=
physDev
->
dc
;
POINT
pt
[
2
]
;
TRACE
(
"%d %d
\n
"
,
x
,
y
);
GetCurrentPositionEx
(
physDev
->
hdc
,
pt
);
pt
[
1
].
x
=
x
;
pt
[
1
].
y
=
y
;
LPtoDP
(
physDev
->
hdc
,
pt
,
2
);
PSDRV_SetPen
(
physDev
);
PSDRV_WriteMoveTo
(
physDev
,
INTERNAL_XWPTODP
(
dc
,
dc
->
CursPosX
,
dc
->
CursPosY
),
INTERNAL_YWPTODP
(
dc
,
dc
->
CursPosX
,
dc
->
CursPosY
));
PSDRV_WriteLineTo
(
physDev
,
INTERNAL_XWPTODP
(
dc
,
x
,
y
),
INTERNAL_YWPTODP
(
dc
,
x
,
y
));
PSDRV_WriteMoveTo
(
physDev
,
pt
[
0
].
x
,
pt
[
0
].
y
);
PSDRV_WriteLineTo
(
physDev
,
pt
[
1
].
x
,
pt
[
1
].
y
);
PSDRV_DrawLine
(
physDev
);
return
TRUE
;
...
...
@@ -60,15 +63,18 @@ BOOL PSDRV_LineTo(PSDRV_PDEVICE *physDev, INT x, INT y)
*/
BOOL
PSDRV_Rectangle
(
PSDRV_PDEVICE
*
physDev
,
INT
left
,
INT
top
,
INT
right
,
INT
bottom
)
{
INT
width
;
INT
height
;
DC
*
dc
=
physDev
->
dc
;
RECT
rect
;
TRACE
(
"%d %d - %d %d
\n
"
,
left
,
top
,
right
,
bottom
);
width
=
INTERNAL_XWSTODS
(
dc
,
right
-
left
);
height
=
INTERNAL_YWSTODS
(
dc
,
bottom
-
top
);
PSDRV_WriteRectangle
(
physDev
,
INTERNAL_XWPTODP
(
dc
,
left
,
top
),
INTERNAL_YWPTODP
(
dc
,
left
,
top
),
width
,
height
);
rect
.
left
=
left
;
rect
.
top
=
top
;
rect
.
right
=
right
;
rect
.
bottom
=
bottom
;
LPtoDP
(
physDev
->
hdc
,
(
POINT
*
)
&
rect
,
2
);
PSDRV_WriteRectangle
(
physDev
,
rect
.
left
,
rect
.
top
,
rect
.
right
-
rect
.
left
,
rect
.
bottom
-
rect
.
top
);
PSDRV_Brush
(
physDev
,
0
);
PSDRV_SetPen
(
physDev
);
PSDRV_DrawLine
(
physDev
);
...
...
@@ -82,20 +88,29 @@ BOOL PSDRV_Rectangle( PSDRV_PDEVICE *physDev, INT left, INT top, INT right, INT
BOOL
PSDRV_RoundRect
(
PSDRV_PDEVICE
*
physDev
,
INT
left
,
INT
top
,
INT
right
,
INT
bottom
,
INT
ell_width
,
INT
ell_height
)
{
DC
*
dc
=
physDev
->
dc
;
left
=
XLPTODP
(
dc
,
left
);
right
=
XLPTODP
(
dc
,
right
);
top
=
YLPTODP
(
dc
,
top
);
bottom
=
YLPTODP
(
dc
,
bottom
);
ell_width
=
XLSTODS
(
dc
,
ell_width
);
ell_height
=
YLSTODS
(
dc
,
ell_height
);
if
(
left
>
right
)
{
INT
tmp
=
left
;
left
=
right
;
right
=
tmp
;
}
if
(
top
>
bottom
)
{
INT
tmp
=
top
;
top
=
bottom
;
bottom
=
tmp
;
}
if
(
ell_width
>
right
-
left
)
ell_width
=
right
-
left
;
if
(
ell_height
>
bottom
-
top
)
ell_height
=
bottom
-
top
;
RECT
rect
[
2
];
rect
[
0
].
left
=
left
;
rect
[
0
].
top
=
top
;
rect
[
0
].
right
=
right
;
rect
[
0
].
bottom
=
bottom
;
rect
[
1
].
left
=
0
;
rect
[
1
].
top
=
0
;
rect
[
1
].
right
=
ell_width
;
rect
[
1
].
bottom
=
ell_height
;
LPtoDP
(
physDev
->
hdc
,
(
POINT
*
)
rect
,
4
);
left
=
rect
[
0
].
left
;
top
=
rect
[
0
].
top
;
right
=
rect
[
0
].
right
;
bottom
=
rect
[
0
].
bottom
;
if
(
left
>
right
)
{
INT
tmp
=
left
;
left
=
right
;
right
=
tmp
;
}
if
(
top
>
bottom
)
{
INT
tmp
=
top
;
top
=
bottom
;
bottom
=
tmp
;
}
ell_width
=
rect
[
1
].
right
-
rect
[
1
].
left
;
ell_height
=
rect
[
1
].
bottom
-
rect
[
1
].
top
;
if
(
ell_width
>
right
-
left
)
ell_width
=
right
-
left
;
if
(
ell_height
>
bottom
-
top
)
ell_height
=
bottom
-
top
;
PSDRV_WriteMoveTo
(
physDev
,
left
,
top
+
ell_height
/
2
);
PSDRV_WriteArc
(
physDev
,
left
+
ell_width
/
2
,
top
+
ell_height
/
2
,
ell_width
,
...
...
@@ -126,15 +141,20 @@ static BOOL PSDRV_DrawArc( PSDRV_PDEVICE *physDev, INT left, INT top,
INT
right
,
INT
bottom
,
INT
xstart
,
INT
ystart
,
INT
xend
,
INT
yend
,
int
lines
)
{
DC
*
dc
=
physDev
->
dc
;
INT
x
,
y
,
h
,
w
;
double
start_angle
,
end_angle
,
ratio
;
RECT
rect
;
x
=
XLPTODP
(
dc
,
(
left
+
right
)
/
2
);
y
=
YLPTODP
(
dc
,
(
top
+
bottom
)
/
2
);
rect
.
left
=
left
;
rect
.
top
=
top
;
rect
.
right
=
right
;
rect
.
bottom
=
bottom
;
LPtoDP
(
physDev
->
hdc
,
(
POINT
*
)
&
rect
,
2
);
w
=
XLSTODS
(
dc
,
(
right
-
left
));
h
=
YLSTODS
(
dc
,
(
bottom
-
top
));
x
=
(
rect
.
left
+
rect
.
right
)
/
2
;
y
=
(
rect
.
top
+
rect
.
bottom
)
/
2
;
w
=
rect
.
right
-
rect
.
left
;
h
=
rect
.
bottom
-
rect
.
top
;
if
(
w
<
0
)
w
=
-
w
;
if
(
h
<
0
)
h
=
-
h
;
...
...
@@ -200,15 +220,20 @@ BOOL PSDRV_Pie( PSDRV_PDEVICE *physDev, INT left, INT top, INT right, INT bottom
BOOL
PSDRV_Ellipse
(
PSDRV_PDEVICE
*
physDev
,
INT
left
,
INT
top
,
INT
right
,
INT
bottom
)
{
INT
x
,
y
,
w
,
h
;
DC
*
dc
=
physDev
->
dc
;
RECT
rect
;
TRACE
(
"%d %d - %d %d
\n
"
,
left
,
top
,
right
,
bottom
);
x
=
XLPTODP
(
dc
,
(
left
+
right
)
/
2
);
y
=
YLPTODP
(
dc
,
(
top
+
bottom
)
/
2
);
rect
.
left
=
left
;
rect
.
top
=
top
;
rect
.
right
=
right
;
rect
.
bottom
=
bottom
;
LPtoDP
(
physDev
->
hdc
,
(
POINT
*
)
&
rect
,
2
);
w
=
XLSTODS
(
dc
,
(
right
-
left
));
h
=
YLSTODS
(
dc
,
(
bottom
-
top
));
x
=
(
rect
.
left
+
rect
.
right
)
/
2
;
y
=
(
rect
.
top
+
rect
.
bottom
)
/
2
;
w
=
rect
.
right
-
rect
.
left
;
h
=
rect
.
bottom
-
rect
.
top
;
PSDRV_WriteNewPath
(
physDev
);
PSDRV_WriteArc
(
physDev
,
x
,
y
,
w
,
h
,
0
.
0
,
360
.
0
);
...
...
@@ -224,27 +249,30 @@ BOOL PSDRV_Ellipse( PSDRV_PDEVICE *physDev, INT left, INT top, INT right, INT bo
* PSDRV_PolyPolyline
*/
BOOL
PSDRV_PolyPolyline
(
PSDRV_PDEVICE
*
physDev
,
const
POINT
*
pts
,
const
DWORD
*
counts
,
DWORD
polylines
)
DWORD
polylines
)
{
DWORD
polyline
,
line
;
const
POINT
*
pt
;
DC
*
dc
=
physDev
->
dc
;
DWORD
polyline
,
line
,
total
;
POINT
*
dev_pts
,
*
pt
;
TRACE
(
"
\n
"
);
pt
=
pts
;
for
(
polyline
=
total
=
0
;
polyline
<
polylines
;
polyline
++
)
total
+=
counts
[
polyline
];
if
(
!
(
dev_pts
=
HeapAlloc
(
GetProcessHeap
(),
0
,
total
*
sizeof
(
*
dev_pts
)
)))
return
FALSE
;
memcpy
(
dev_pts
,
pts
,
total
*
sizeof
(
*
dev_pts
)
);
LPtoDP
(
physDev
->
hdc
,
dev_pts
,
total
);
pt
=
dev_pts
;
for
(
polyline
=
0
;
polyline
<
polylines
;
polyline
++
)
{
PSDRV_WriteMoveTo
(
physDev
,
INTERNAL_XWPTODP
(
dc
,
pt
->
x
,
pt
->
y
),
INTERNAL_YWPTODP
(
dc
,
pt
->
x
,
pt
->
y
)
);
PSDRV_WriteMoveTo
(
physDev
,
pt
->
x
,
pt
->
y
);
pt
++
;
for
(
line
=
1
;
line
<
counts
[
polyline
];
line
++
)
{
PSDRV_WriteLineTo
(
physDev
,
INTERNAL_XWPTODP
(
dc
,
pt
->
x
,
pt
->
y
),
INTERNAL_YWPTODP
(
dc
,
pt
->
x
,
pt
->
y
));
pt
++
;
}
for
(
line
=
1
;
line
<
counts
[
polyline
];
line
++
,
pt
++
)
PSDRV_WriteLineTo
(
physDev
,
pt
->
x
,
pt
->
y
);
}
HeapFree
(
GetProcessHeap
(),
0
,
dev_pts
);
PSDRV_SetPen
(
physDev
);
PSDRV_DrawLine
(
physDev
);
return
TRUE
;
}
}
/***********************************************************************
...
...
@@ -260,24 +288,27 @@ BOOL PSDRV_Polyline( PSDRV_PDEVICE *physDev, const POINT* pt, INT count )
* PSDRV_PolyPolygon
*/
BOOL
PSDRV_PolyPolygon
(
PSDRV_PDEVICE
*
physDev
,
const
POINT
*
pts
,
const
INT
*
counts
,
UINT
polygons
)
UINT
polygons
)
{
DWORD
polygon
,
line
;
const
POINT
*
pt
;
DC
*
dc
=
physDev
->
dc
;
DWORD
polygon
,
line
,
total
;
POINT
*
dev_pts
,
*
pt
;
TRACE
(
"
\n
"
);
pt
=
pts
;
for
(
polygon
=
total
=
0
;
polygon
<
polygons
;
polygon
++
)
total
+=
counts
[
polygon
];
if
(
!
(
dev_pts
=
HeapAlloc
(
GetProcessHeap
(),
0
,
total
*
sizeof
(
*
dev_pts
)
)))
return
FALSE
;
memcpy
(
dev_pts
,
pts
,
total
*
sizeof
(
*
dev_pts
)
);
LPtoDP
(
physDev
->
hdc
,
dev_pts
,
total
);
pt
=
dev_pts
;
for
(
polygon
=
0
;
polygon
<
polygons
;
polygon
++
)
{
PSDRV_WriteMoveTo
(
physDev
,
INTERNAL_XWPTODP
(
dc
,
pt
->
x
,
pt
->
y
),
INTERNAL_YWPTODP
(
dc
,
pt
->
x
,
pt
->
y
)
);
PSDRV_WriteMoveTo
(
physDev
,
pt
->
x
,
pt
->
y
);
pt
++
;
for
(
line
=
1
;
line
<
counts
[
polygon
];
line
++
)
{
PSDRV_WriteLineTo
(
physDev
,
INTERNAL_XWPTODP
(
dc
,
pt
->
x
,
pt
->
y
),
INTERNAL_YWPTODP
(
dc
,
pt
->
x
,
pt
->
y
));
pt
++
;
}
for
(
line
=
1
;
line
<
counts
[
polygon
];
line
++
,
pt
++
)
PSDRV_WriteLineTo
(
physDev
,
pt
->
x
,
pt
->
y
);
PSDRV_WriteClosePath
(
physDev
);
}
HeapFree
(
GetProcessHeap
(),
0
,
dev_pts
);
if
(
GetPolyFillMode
(
physDev
->
hdc
)
==
ALTERNATE
)
PSDRV_Brush
(
physDev
,
1
);
...
...
@@ -304,12 +335,13 @@ BOOL PSDRV_Polygon( PSDRV_PDEVICE *physDev, const POINT* pt, INT count )
COLORREF
PSDRV_SetPixel
(
PSDRV_PDEVICE
*
physDev
,
INT
x
,
INT
y
,
COLORREF
color
)
{
PSCOLOR
pscolor
;
DC
*
dc
=
physDev
->
dc
;
POINT
pt
;
x
=
INTERNAL_XWPTODP
(
dc
,
x
,
y
);
y
=
INTERNAL_YWPTODP
(
dc
,
x
,
y
);
pt
.
x
=
x
;
pt
.
y
=
y
;
LPtoDP
(
physDev
->
hdc
,
&
pt
,
1
);
PSDRV_WriteRectangle
(
physDev
,
x
,
y
,
0
,
0
);
PSDRV_WriteRectangle
(
physDev
,
pt
.
x
,
pt
.
y
,
0
,
0
);
PSDRV_CreateColor
(
physDev
,
&
pscolor
,
color
);
PSDRV_WriteSetColor
(
physDev
,
&
pscolor
);
PSDRV_WriteFill
(
physDev
);
...
...
dlls/wineps/pen.c
View file @
dec2cee2
...
...
@@ -18,6 +18,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "gdi.h"
#include "psdrv.h"
#include "wine/debug.h"
...
...
dlls/wineps/psdrv.h
View file @
dec2cee2
...
...
@@ -23,7 +23,6 @@
#include "windef.h"
#include "wingdi.h"
#include "gdi.h"
#include "wine/wingdi16.h"
#include "winspool.h"
...
...
@@ -268,7 +267,7 @@ typedef struct {
typedef
struct
{
HDC
hdc
;
DC
*
dc
;
struct
tagDC
*
dc
;
PSFONT
font
;
/* Current PS font */
PSPEN
pen
;
PSBRUSH
brush
;
...
...
@@ -401,8 +400,6 @@ extern BOOL PSDRV_Ellipse( PSDRV_PDEVICE *physDev, INT left, INT top, INT right,
INT
bottom
);
extern
INT
PSDRV_EndDoc
(
PSDRV_PDEVICE
*
physDev
);
extern
INT
PSDRV_EndPage
(
PSDRV_PDEVICE
*
physDev
);
extern
BOOL
PSDRV_EnumDeviceFonts
(
PSDRV_PDEVICE
*
physDev
,
LPLOGFONTW
plf
,
DEVICEFONTENUMPROC
proc
,
LPARAM
lp
);
extern
BOOL
PSDRV_ExtTextOut
(
PSDRV_PDEVICE
*
physDev
,
INT
x
,
INT
y
,
UINT
flags
,
const
RECT
*
lprect
,
LPCWSTR
str
,
UINT
count
,
const
INT
*
lpDx
);
...
...
@@ -428,7 +425,6 @@ extern BOOL PSDRV_Rectangle( PSDRV_PDEVICE *physDev, INT left, INT top, INT righ
extern
BOOL
PSDRV_RoundRect
(
PSDRV_PDEVICE
*
physDev
,
INT
left
,
INT
top
,
INT
right
,
INT
bottom
,
INT
ell_width
,
INT
ell_height
);
extern
COLORREF
PSDRV_SetBkColor
(
PSDRV_PDEVICE
*
physDev
,
COLORREF
color
);
extern
VOID
PSDRV_SetDeviceClipping
(
PSDRV_PDEVICE
*
physDev
);
extern
COLORREF
PSDRV_SetPixel
(
PSDRV_PDEVICE
*
physDev
,
INT
x
,
INT
y
,
COLORREF
color
);
extern
COLORREF
PSDRV_SetTextColor
(
PSDRV_PDEVICE
*
physDev
,
COLORREF
color
);
extern
INT
PSDRV_StartDoc
(
PSDRV_PDEVICE
*
physDev
,
const
DOCINFOA
*
doc
);
...
...
dlls/wineps/text.c
View file @
dec2cee2
...
...
@@ -18,6 +18,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <string.h>
#include "gdi.h"
#include "psdrv.h"
#include "wine/debug.h"
#include "winspool.h"
...
...
@@ -38,7 +39,6 @@ BOOL PSDRV_ExtTextOut( PSDRV_PDEVICE *physDev, INT x, INT y, UINT flags,
BOOL
bClipped
=
FALSE
;
BOOL
bOpaque
=
FALSE
;
RECT
rect
;
DC
*
dc
=
physDev
->
dc
;
TRACE
(
"(x=%d, y=%d, flags=0x%08x, str=%s, count=%d, lpDx=%p)
\n
"
,
x
,
y
,
flags
,
debugstr_wn
(
str
,
count
),
count
,
lpDx
);
...
...
@@ -49,11 +49,8 @@ BOOL PSDRV_ExtTextOut( PSDRV_PDEVICE *physDev, INT x, INT y, UINT flags,
/* set clipping and/or draw background */
if
((
flags
&
(
ETO_CLIPPED
|
ETO_OPAQUE
))
&&
(
lprect
!=
NULL
))
{
rect
.
left
=
INTERNAL_XWPTODP
(
dc
,
lprect
->
left
,
lprect
->
top
);
rect
.
right
=
INTERNAL_XWPTODP
(
dc
,
lprect
->
right
,
lprect
->
bottom
);
rect
.
top
=
INTERNAL_YWPTODP
(
dc
,
lprect
->
left
,
lprect
->
top
);
rect
.
bottom
=
INTERNAL_YWPTODP
(
dc
,
lprect
->
right
,
lprect
->
bottom
);
rect
=
*
lprect
;
LPtoDP
(
physDev
->
hdc
,
(
POINT
*
)
&
rect
,
2
);
PSDRV_WriteGSave
(
physDev
);
PSDRV_WriteRectangle
(
physDev
,
rect
.
left
,
rect
.
top
,
rect
.
right
-
rect
.
left
,
rect
.
bottom
-
rect
.
top
);
...
...
dlls/wineps/wineps.spec
View file @
dec2cee2
...
...
@@ -45,7 +45,7 @@ debug_channels (psdrv)
@ cdecl SelectFont(ptr long) PSDRV_SelectFont
@ cdecl SelectPen(ptr long) PSDRV_SelectPen
@ cdecl SetBkColor(ptr long) PSDRV_SetBkColor
@ cdecl SetDeviceClipping(ptr) PSDRV_SetDeviceClipping
@ cdecl SetDeviceClipping(ptr
long
) PSDRV_SetDeviceClipping
@ cdecl SetPixel(ptr long long long) PSDRV_SetPixel
@ cdecl SetTextColor(ptr long) PSDRV_SetTextColor
@ cdecl StartDoc(ptr ptr) PSDRV_StartDoc
...
...
dlls/x11drv/x11drv.spec
View file @
dec2cee2
...
...
@@ -57,7 +57,7 @@ debug_channels (bitblt bitmap clipboard cursor dinput event font gdi graphics
@ cdecl SetDIBColorTable(ptr long long ptr) X11DRV_SetDIBColorTable
@ cdecl SetDIBits(ptr long long long ptr ptr long) X11DRV_SetDIBits
@ cdecl SetDIBitsToDevice(ptr long long long long long long long long ptr ptr long) X11DRV_SetDIBitsToDevice
@ cdecl SetDeviceClipping(ptr) X11DRV_SetDeviceClipping
@ cdecl SetDeviceClipping(ptr
long
) X11DRV_SetDeviceClipping
@ cdecl SetDeviceGammaRamp(ptr ptr) X11DRV_SetDeviceGammaRamp
@ cdecl SetPixel(ptr long long long) X11DRV_SetPixel
@ cdecl SetPixelFormat(ptr long ptr) X11DRV_SetPixelFormat
...
...
graphics/x11drv/clipping.c
View file @
dec2cee2
...
...
@@ -38,12 +38,11 @@ WINE_DEFAULT_DEBUG_CHANNEL(x11drv);
*
* Could write using GetRegionData but this would be slower.
*/
void
X11DRV_SetDeviceClipping
(
X11DRV_PDEVICE
*
physDev
)
void
X11DRV_SetDeviceClipping
(
X11DRV_PDEVICE
*
physDev
,
HRGN
hrgn
)
{
XRectangle
*
pXrect
;
DC
*
dc
=
physDev
->
dc
;
RGNOBJ
*
obj
=
(
RGNOBJ
*
)
GDI_GetObjPtr
(
dc
->
hGCClipR
gn
,
REGION_MAGIC
);
RGNOBJ
*
obj
=
(
RGNOBJ
*
)
GDI_GetObjPtr
(
hr
gn
,
REGION_MAGIC
);
if
(
!
obj
)
{
ERR
(
"Rgn is 0. Please report this.
\n
"
);
...
...
@@ -61,7 +60,7 @@ void X11DRV_SetDeviceClipping( X11DRV_PDEVICE *physDev )
if
(
!
pXrect
)
{
WARN
(
"Can't alloc buffer
\n
"
);
GDI_ReleaseObj
(
dc
->
hGCClipR
gn
);
GDI_ReleaseObj
(
hr
gn
);
return
;
}
...
...
@@ -82,7 +81,7 @@ void X11DRV_SetDeviceClipping( X11DRV_PDEVICE *physDev )
if
(
pXrect
)
HeapFree
(
GetProcessHeap
(),
0
,
pXrect
);
GDI_ReleaseObj
(
dc
->
hGCClipR
gn
);
GDI_ReleaseObj
(
hr
gn
);
}
...
...
include/gdi.h
View file @
dec2cee2
...
...
@@ -221,7 +221,7 @@ typedef struct tagDC_FUNCS
INT
(
*
pSetDIBits
)(
PHYSDEV
,
HBITMAP
,
UINT
,
UINT
,
LPCVOID
,
const
BITMAPINFO
*
,
UINT
);
INT
(
*
pSetDIBitsToDevice
)(
PHYSDEV
,
INT
,
INT
,
DWORD
,
DWORD
,
INT
,
INT
,
UINT
,
UINT
,
LPCVOID
,
const
BITMAPINFO
*
,
UINT
);
VOID
(
*
pSetDeviceClipping
)(
PHYSDEV
);
VOID
(
*
pSetDeviceClipping
)(
PHYSDEV
,
HRGN
);
BOOL
(
*
pSetDeviceGammaRamp
)(
PHYSDEV
,
LPVOID
);
INT
(
*
pSetMapMode
)(
PHYSDEV
,
INT
);
DWORD
(
*
pSetMapperFlags
)(
PHYSDEV
,
DWORD
);
...
...
include/x11drv.h
View file @
dec2cee2
...
...
@@ -118,7 +118,6 @@ extern BOOL X11DRV_GetTextExtentPoint( X11DRV_PDEVICE *physDev, LPCWSTR str,
extern
BOOL
X11DRV_GetTextMetrics
(
X11DRV_PDEVICE
*
physDev
,
TEXTMETRICW
*
metrics
);
extern
BOOL
X11DRV_PatBlt
(
X11DRV_PDEVICE
*
physDev
,
INT
left
,
INT
top
,
INT
width
,
INT
height
,
DWORD
rop
);
extern
VOID
X11DRV_SetDeviceClipping
(
X11DRV_PDEVICE
*
physDev
);
extern
BOOL
X11DRV_StretchBlt
(
X11DRV_PDEVICE
*
physDevDst
,
INT
xDst
,
INT
yDst
,
INT
widthDst
,
INT
heightDst
,
X11DRV_PDEVICE
*
physDevSrc
,
INT
xSrc
,
INT
ySrc
,
...
...
@@ -303,6 +302,7 @@ extern int X11DRV_PALETTE_mapEGAPixel[16];
extern
int
X11DRV_PALETTE_Init
(
void
);
extern
void
X11DRV_PALETTE_Cleanup
(
void
);
extern
BOOL
X11DRV_IsSolidColor
(
COLORREF
color
);
extern
COLORREF
X11DRV_PALETTE_ToLogical
(
int
pixel
);
extern
int
X11DRV_PALETTE_ToPhysical
(
X11DRV_PDEVICE
*
physDev
,
COLORREF
color
);
...
...
objects/clipping.c
View file @
dec2cee2
...
...
@@ -50,7 +50,8 @@ void CLIPPING_UpdateGCRegion( DC * dc )
CombineRgn
(
dc
->
hGCClipRgn
,
dc
->
hVisRgn
,
0
,
RGN_COPY
);
else
CombineRgn
(
dc
->
hGCClipRgn
,
dc
->
hClipRgn
,
dc
->
hVisRgn
,
RGN_AND
);
if
(
dc
->
funcs
->
pSetDeviceClipping
)
dc
->
funcs
->
pSetDeviceClipping
(
dc
->
physDev
);
if
(
dc
->
funcs
->
pSetDeviceClipping
)
dc
->
funcs
->
pSetDeviceClipping
(
dc
->
physDev
,
dc
->
hGCClipRgn
);
}
...
...
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