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
d08fbfc3
Commit
d08fbfc3
authored
Sep 21, 2007
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winex11.drv: Don't call GDI functions while holding the xrender lock.
parent
1b8d9e03
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
10 deletions
+10
-10
xrender.c
dlls/winex11.drv/xrender.c
+10
-10
No files found.
dlls/winex11.drv/xrender.c
View file @
d08fbfc3
...
...
@@ -1130,7 +1130,6 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
{
RGNDATA
*
data
;
XGCValues
xgcval
;
int
render_op
=
PictOpOver
;
gsCacheEntry
*
entry
;
gsCacheEntryFormat
*
formatEntry
;
BOOL
retv
=
FALSE
;
...
...
@@ -1215,8 +1214,6 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
DeleteObject
(
clip_region
);
}
EnterCriticalSection
(
&
xrender_cs
);
if
(
X11DRV_XRender_Installed
)
{
if
(
!
physDev
->
xrender
->
pict
)
{
XRenderPictureAttributes
pa
;
...
...
@@ -1245,15 +1242,10 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
wine_tsx11_unlock
();
HeapFree
(
GetProcessHeap
(),
0
,
data
);
}
tile_pict
=
get_tile_pict
(
depth_type
,
physDev
->
textPixel
);
/* FIXME the mapping of Text/BkColor onto 1 or 0 needs investigation.
*/
if
((
depth_type
==
mono_drawable
)
&&
(
textPixel
==
0
))
render_op
=
PictOpOutReverse
;
/* This gives us 'black' text */
}
EnterCriticalSection
(
&
xrender_cs
);
entry
=
glyphsetCache
+
physDev
->
xrender
->
cache_index
;
if
(
disable_antialias
==
FALSE
)
aa_type
=
entry
->
aa_default
;
...
...
@@ -1285,6 +1277,7 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
XGlyphElt16
*
elts
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
XGlyphElt16
)
*
count
);
INT
offset
=
0
;
POINT
desired
,
current
;
int
render_op
=
PictOpOver
;
/* There's a bug in XRenderCompositeText that ignores the xDst and yDst parameters.
So we pass zeros to the function and move to our starting position using the first
...
...
@@ -1294,6 +1287,13 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
desired
.
y
=
physDev
->
dc_rect
.
top
+
y
;
current
.
x
=
current
.
y
=
0
;
tile_pict
=
get_tile_pict
(
depth_type
,
physDev
->
textPixel
);
/* FIXME the mapping of Text/BkColor onto 1 or 0 needs investigation.
*/
if
((
depth_type
==
mono_drawable
)
&&
(
textPixel
==
0
))
render_op
=
PictOpOutReverse
;
/* This gives us 'black' text */
for
(
idx
=
0
;
idx
<
count
;
idx
++
)
{
elts
[
idx
].
glyphset
=
formatEntry
->
glyphset
;
...
...
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