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
8a7bf0a2
Commit
8a7bf0a2
authored
Oct 24, 2011
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gdi32: Push a path driver on the DC stack when a path is opened.
parent
97a261d5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
10 additions
and
6 deletions
+10
-6
bitmap.c
dlls/gdi32/bitmap.c
+4
-1
dc.c
dlls/gdi32/dc.c
+3
-4
gdi_private.h
dlls/gdi32/gdi_private.h
+3
-1
path.c
dlls/gdi32/path.c
+0
-0
No files found.
dlls/gdi32/bitmap.c
View file @
8a7bf0a2
...
...
@@ -675,7 +675,7 @@ static HGDIOBJ BITMAP_SelectObject( HGDIOBJ handle, HDC hdc )
HGDIOBJ
ret
;
BITMAPOBJ
*
bitmap
;
DC
*
dc
;
PHYSDEV
physdev
=
NULL
,
old_physdev
=
NULL
;
PHYSDEV
physdev
=
NULL
,
old_physdev
=
NULL
,
pathdev
=
NULL
;
if
(
!
(
dc
=
get_dc_ptr
(
hdc
)))
return
0
;
...
...
@@ -701,6 +701,8 @@ static HGDIOBJ BITMAP_SelectObject( HGDIOBJ handle, HDC hdc )
goto
done
;
}
if
(
dc
->
physDev
->
funcs
==
&
path_driver
)
pathdev
=
pop_dc_driver
(
&
dc
->
physDev
);
old_physdev
=
GET_DC_PHYSDEV
(
dc
,
pSelectBitmap
);
if
(
old_physdev
==
dc
->
dibdrv
)
old_physdev
=
pop_dc_driver
(
&
dc
->
physDev
);
...
...
@@ -752,6 +754,7 @@ static HGDIOBJ BITMAP_SelectObject( HGDIOBJ handle, HDC hdc )
if
(
old_physdev
&&
old_physdev
==
dc
->
dibdrv
)
push_dc_driver
(
&
dc
->
physDev
,
old_physdev
,
old_physdev
->
funcs
);
}
if
(
pathdev
)
push_dc_driver
(
&
dc
->
physDev
,
pathdev
,
pathdev
->
funcs
);
release_dc_ptr
(
dc
);
return
ret
;
}
...
...
dlls/gdi32/dc.c
View file @
8a7bf0a2
...
...
@@ -416,8 +416,6 @@ INT nulldrv_SaveDC( PHYSDEV dev )
newdc
->
BoundsRect
=
dc
->
BoundsRect
;
newdc
->
gdiFont
=
dc
->
gdiFont
;
PATH_InitGdiPath
(
&
newdc
->
path
);
/* Get/SetDCState() don't change hVisRgn field ("Undoc. Windows" p.559). */
newdc
->
hVisRgn
=
0
;
...
...
@@ -437,7 +435,7 @@ INT nulldrv_SaveDC( PHYSDEV dev )
/* don't bother recomputing hMetaClipRgn, we'll do that in SetDCState */
if
(
!
PATH_
AssignGdiPath
(
&
newdc
->
path
,
&
dc
->
path
))
if
(
!
PATH_
SavePath
(
newdc
,
dc
))
{
release_dc_ptr
(
dc
);
free_dc_state
(
newdc
);
...
...
@@ -468,7 +466,7 @@ BOOL nulldrv_RestoreDC( PHYSDEV dev, INT level )
/* restore the state */
if
(
!
PATH_
AssignGdiPath
(
&
dc
->
path
,
&
dcs
->
path
))
return
FALSE
;
if
(
!
PATH_
RestorePath
(
dc
,
dcs
))
return
FALSE
;
dc
->
flags
=
dcs
->
flags
;
dc
->
layout
=
dcs
->
layout
;
...
...
@@ -799,6 +797,7 @@ BOOL WINAPI DeleteDC( HDC hdc )
free_dc_state
(
dcs
);
}
AbortPath
(
hdc
);
SelectObject
(
hdc
,
GetStockObject
(
BLACK_PEN
)
);
SelectObject
(
hdc
,
GetStockObject
(
WHITE_BRUSH
)
);
SelectObject
(
hdc
,
GetStockObject
(
SYSTEM_FONT
)
);
...
...
dlls/gdi32/gdi_private.h
View file @
8a7bf0a2
...
...
@@ -270,6 +270,7 @@ extern DWORD blend_bitmapinfo( const BITMAPINFO *src_info, void *src_bits, struc
/* driver.c */
extern
const
struct
gdi_dc_funcs
null_driver
DECLSPEC_HIDDEN
;
extern
const
struct
gdi_dc_funcs
dib_driver
DECLSPEC_HIDDEN
;
extern
const
struct
gdi_dc_funcs
path_driver
DECLSPEC_HIDDEN
;
extern
const
struct
gdi_dc_funcs
*
font_driver
DECLSPEC_HIDDEN
;
extern
const
struct
gdi_dc_funcs
*
DRIVER_load_driver
(
LPCWSTR
name
)
DECLSPEC_HIDDEN
;
extern
BOOL
DRIVER_GetDriverName
(
LPCWSTR
device
,
LPWSTR
driver
,
DWORD
size
)
DECLSPEC_HIDDEN
;
...
...
@@ -321,7 +322,8 @@ extern METAHEADER *MF_CreateMetaHeaderDisk(METAHEADER *mr, LPCVOID filename, BOO
extern
void
PATH_InitGdiPath
(
GdiPath
*
pPath
)
DECLSPEC_HIDDEN
;
extern
void
PATH_DestroyGdiPath
(
GdiPath
*
pPath
)
DECLSPEC_HIDDEN
;
extern
BOOL
PATH_AssignGdiPath
(
GdiPath
*
pPathDest
,
const
GdiPath
*
pPathSrc
)
DECLSPEC_HIDDEN
;
extern
BOOL
PATH_SavePath
(
DC
*
dst
,
DC
*
src
)
DECLSPEC_HIDDEN
;
extern
BOOL
PATH_RestorePath
(
DC
*
dst
,
DC
*
src
)
DECLSPEC_HIDDEN
;
extern
BOOL
PATH_MoveTo
(
DC
*
dc
)
DECLSPEC_HIDDEN
;
extern
BOOL
PATH_LineTo
(
DC
*
dc
,
INT
x
,
INT
y
)
DECLSPEC_HIDDEN
;
...
...
dlls/gdi32/path.c
View file @
8a7bf0a2
This diff is collapsed.
Click to expand it.
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