Removed more TSX functions.
This commit is contained in:
parent
720af28ea4
commit
8a7fbf542d
|
@ -4,40 +4,19 @@
|
|||
# To add a new call, put it on this list and run tools/make_X11wrappers.
|
||||
# Also read the comments at the top of tools/make_X11wrappers.
|
||||
#
|
||||
XChangeGC
|
||||
XChangeProperty
|
||||
XDrawArc
|
||||
XDrawLine
|
||||
XDrawLines
|
||||
XDrawString16
|
||||
XDrawText16
|
||||
XFillArc
|
||||
XFillRectangle
|
||||
XFree
|
||||
XFreeFont
|
||||
XFreePixmap
|
||||
XGetAtomName
|
||||
XGetFontProperty
|
||||
XGetGeometry
|
||||
XGetSelectionOwner
|
||||
XGetWindowProperty
|
||||
XInternAtom
|
||||
XKeycodeToKeysym
|
||||
XKeysymToKeycode
|
||||
XKeysymToString
|
||||
XMapWindow
|
||||
XQueryPointer
|
||||
XQueryTree
|
||||
XSetArcMode
|
||||
XSetClipRectangles
|
||||
XSetDashes
|
||||
XSetForeground
|
||||
XSetFunction
|
||||
XSetLineAttributes
|
||||
XSetSelectionOwner
|
||||
XSetSubwindowMode
|
||||
XStoreColor
|
||||
XSync
|
||||
XTextExtents16
|
||||
XTextWidth16
|
||||
XUnmapWindow
|
||||
|
|
|
@ -31,15 +31,6 @@ char * TSXKeysymToString(KeySym a0)
|
|||
return r;
|
||||
}
|
||||
|
||||
Atom TSXInternAtom(Display* a0, const char* a1, int a2)
|
||||
{
|
||||
Atom r;
|
||||
wine_tsx11_lock();
|
||||
r = XInternAtom(a0, a1, a2);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
Window TSXGetSelectionOwner(Display* a0, Atom a1)
|
||||
{
|
||||
Window r;
|
||||
|
@ -58,15 +49,6 @@ KeySym TSXKeycodeToKeysym(Display* a0, unsigned int a1, int a2)
|
|||
return r;
|
||||
}
|
||||
|
||||
int TSXChangeGC(Display* a0, GC a1, unsigned long a2, XGCValues* a3)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XChangeGC(a0, a1, a2, a3);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXChangeProperty(Display* a0, Window a1, Atom a2, Atom a3, int a4, int a5, const unsigned char* a6, int a7)
|
||||
{
|
||||
int r;
|
||||
|
@ -76,69 +58,6 @@ int TSXChangeProperty(Display* a0, Window a1, Atom a2, Atom a3, int a4, int a5,
|
|||
return r;
|
||||
}
|
||||
|
||||
int TSXDrawArc(Display* a0, Drawable a1, GC a2, int a3, int a4, unsigned int a5, unsigned int a6, int a7, int a8)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XDrawArc(a0, a1, a2, a3, a4, a5, a6, a7, a8);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXDrawLine(Display* a0, Drawable a1, GC a2, int a3, int a4, int a5, int a6)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XDrawLine(a0, a1, a2, a3, a4, a5, a6);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXDrawLines(Display* a0, Drawable a1, GC a2, XPoint* a3, int a4, int a5)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XDrawLines(a0, a1, a2, a3, a4, a5);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXDrawString16(Display* a0, Drawable a1, GC a2, int a3, int a4, const XChar2b* a5, int a6)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XDrawString16(a0, a1, a2, a3, a4, a5, a6);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXDrawText16(Display* a0, Drawable a1, GC a2, int a3, int a4, XTextItem16* a5, int a6)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XDrawText16(a0, a1, a2, a3, a4, a5, a6);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXFillArc(Display* a0, Drawable a1, GC a2, int a3, int a4, unsigned int a5, unsigned int a6, int a7, int a8)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XFillArc(a0, a1, a2, a3, a4, a5, a6, a7, a8);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXFillRectangle(Display* a0, Drawable a1, GC a2, int a3, int a4, unsigned int a5, unsigned int a6)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XFillRectangle(a0, a1, a2, a3, a4, a5, a6);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXFree(void* a0)
|
||||
{
|
||||
int r;
|
||||
|
@ -157,15 +76,6 @@ int TSXFreeFont(Display* a0, XFontStruct* a1)
|
|||
return r;
|
||||
}
|
||||
|
||||
int TSXFreePixmap(Display* a0, Pixmap a1)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XFreePixmap(a0, a1);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXGetFontProperty(XFontStruct* a0, Atom a1, unsigned long* a2)
|
||||
{
|
||||
int r;
|
||||
|
@ -175,15 +85,6 @@ int TSXGetFontProperty(XFontStruct* a0, Atom a1, unsigned long* a2)
|
|||
return r;
|
||||
}
|
||||
|
||||
int TSXGetGeometry(Display* a0, Drawable a1, Window* a2, int* a3, int* a4, unsigned int* a5, unsigned int* a6, unsigned int* a7, unsigned int* a8)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XGetGeometry(a0, a1, a2, a3, a4, a5, a6, a7, a8);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXGetWindowProperty(Display* a0, Window a1, Atom a2, long a3, long a4, int a5, Atom a6, Atom* a7, int* a8, unsigned long* a9, unsigned long* a10, unsigned char** a11)
|
||||
{
|
||||
int r;
|
||||
|
@ -229,60 +130,6 @@ int TSXQueryTree(Display* a0, Window a1, Window* a2, Window* a3, Window** a4, u
|
|||
return r;
|
||||
}
|
||||
|
||||
int TSXSetArcMode(Display* a0, GC a1, int a2)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XSetArcMode(a0, a1, a2);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXSetClipRectangles(Display* a0, GC a1, int a2, int a3, XRectangle* a4, int a5, int a6)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XSetClipRectangles(a0, a1, a2, a3, a4, a5, a6);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXSetDashes(Display* a0, GC a1, int a2, const char* a3, int a4)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XSetDashes(a0, a1, a2, a3, a4);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXSetForeground(Display* a0, GC a1, unsigned long a2)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XSetForeground(a0, a1, a2);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXSetFunction(Display* a0, GC a1, int a2)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XSetFunction(a0, a1, a2);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXSetLineAttributes(Display* a0, GC a1, unsigned int a2, int a3, int a4, int a5)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XSetLineAttributes(a0, a1, a2, a3, a4, a5);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXSetSelectionOwner(Display* a0, Atom a1, Window a2, Time a3)
|
||||
{
|
||||
int r;
|
||||
|
@ -292,24 +139,6 @@ int TSXSetSelectionOwner(Display* a0, Atom a1, Window a2, Time a3)
|
|||
return r;
|
||||
}
|
||||
|
||||
int TSXSetSubwindowMode(Display* a0, GC a1, int a2)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XSetSubwindowMode(a0, a1, a2);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXStoreColor(Display* a0, Colormap a1, XColor* a2)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XStoreColor(a0, a1, a2);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXSync(Display* a0, int a1)
|
||||
{
|
||||
int r;
|
||||
|
@ -319,24 +148,6 @@ int TSXSync(Display* a0, int a1)
|
|||
return r;
|
||||
}
|
||||
|
||||
int TSXTextExtents16(XFontStruct* a0, const XChar2b* a1, int a2, int* a3, int* a4, int* a5, XCharStruct* a6)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XTextExtents16(a0, a1, a2, a3, a4, a5, a6);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXTextWidth16(XFontStruct* a0, const XChar2b* a1, int a2)
|
||||
{
|
||||
int r;
|
||||
wine_tsx11_lock();
|
||||
r = XTextWidth16(a0, a1, a2);
|
||||
wine_tsx11_unlock();
|
||||
return r;
|
||||
}
|
||||
|
||||
int TSXUnmapWindow(Display* a0, Window a1)
|
||||
{
|
||||
int r;
|
||||
|
|
|
@ -21,40 +21,19 @@ extern void wine_tsx11_unlock(void);
|
|||
|
||||
extern char * TSXGetAtomName(Display*, Atom);
|
||||
extern char * TSXKeysymToString(KeySym);
|
||||
extern Atom TSXInternAtom(Display*, const char*, int);
|
||||
extern Window TSXGetSelectionOwner(Display*, Atom);
|
||||
extern KeySym TSXKeycodeToKeysym(Display*, unsigned int, int);
|
||||
extern int TSXChangeGC(Display*, GC, unsigned long, XGCValues*);
|
||||
extern int TSXChangeProperty(Display*, Window, Atom, Atom, int, int, const unsigned char*, int);
|
||||
extern int TSXDrawArc(Display*, Drawable, GC, int, int, unsigned int, unsigned int, int, int);
|
||||
extern int TSXDrawLine(Display*, Drawable, GC, int, int, int, int);
|
||||
extern int TSXDrawLines(Display*, Drawable, GC, XPoint*, int, int);
|
||||
extern int TSXDrawString16(Display*, Drawable, GC, int, int, const XChar2b*, int);
|
||||
extern int TSXDrawText16(Display*, Drawable, GC, int, int, XTextItem16*, int);
|
||||
extern int TSXFillArc(Display*, Drawable, GC, int, int, unsigned int, unsigned int, int, int);
|
||||
extern int TSXFillRectangle(Display*, Drawable, GC, int, int, unsigned int, unsigned int);
|
||||
extern int TSXFree(void*);
|
||||
extern int TSXFreeFont(Display*, XFontStruct*);
|
||||
extern int TSXFreePixmap(Display*, Pixmap);
|
||||
extern int TSXGetFontProperty(XFontStruct*, Atom, unsigned long*);
|
||||
extern int TSXGetGeometry(Display*, Drawable, Window*, int*, int*, unsigned int*, unsigned int*, unsigned int*, unsigned int*);
|
||||
extern int TSXGetWindowProperty(Display*, Window, Atom, long, long, int, Atom, Atom*, int*, unsigned long*, unsigned long*, unsigned char**);
|
||||
extern KeyCode TSXKeysymToKeycode(Display*, KeySym);
|
||||
extern int TSXMapWindow(Display*, Window);
|
||||
extern int TSXQueryPointer(Display*, Window, Window*, Window*, int*, int*, int*, int*, unsigned int*);
|
||||
extern int TSXQueryTree(Display*, Window, Window*, Window*, Window**, unsigned int*);
|
||||
extern int TSXSetArcMode(Display*, GC, int);
|
||||
extern int TSXSetClipRectangles(Display*, GC, int, int, XRectangle*, int, int);
|
||||
extern int TSXSetDashes(Display*, GC, int, const char*, int);
|
||||
extern int TSXSetForeground(Display*, GC, unsigned long);
|
||||
extern int TSXSetFunction(Display*, GC, int);
|
||||
extern int TSXSetLineAttributes(Display*, GC, unsigned int, int, int, int);
|
||||
extern int TSXSetSelectionOwner(Display*, Atom, Window, Time);
|
||||
extern int TSXSetSubwindowMode(Display*, GC, int);
|
||||
extern int TSXStoreColor(Display*, Colormap, XColor*);
|
||||
extern int TSXSync(Display*, int);
|
||||
extern int TSXTextExtents16(XFontStruct*, const XChar2b*, int, int*, int*, int*, XCharStruct*);
|
||||
extern int TSXTextWidth16(XFontStruct*, const XChar2b*, int);
|
||||
extern int TSXUnmapWindow(Display*, Window);
|
||||
|
||||
#endif /* defined(HAVE_X11_XLIB_H) */
|
||||
|
|
|
@ -1004,8 +1004,9 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
|
|||
xgcval.function = GXcopy;
|
||||
xgcval.background = physDev->backgroundPixel;
|
||||
xgcval.fill_style = FillSolid;
|
||||
TSXChangeGC( gdi_display, physDev->gc,
|
||||
GCFunction | GCBackground | GCFillStyle, &xgcval );
|
||||
wine_tsx11_lock();
|
||||
XChangeGC( gdi_display, physDev->gc, GCFunction | GCBackground | GCFillStyle, &xgcval );
|
||||
wine_tsx11_unlock();
|
||||
|
||||
X11DRV_LockDIBSection( physDev, DIB_Status_GdiMod, FALSE );
|
||||
|
||||
|
@ -1023,10 +1024,12 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
|
|||
}
|
||||
|
||||
if(flags & ETO_OPAQUE) {
|
||||
TSXSetForeground( gdi_display, physDev->gc, backgroundPixel );
|
||||
TSXFillRectangle( gdi_display, physDev->drawable, physDev->gc,
|
||||
wine_tsx11_lock();
|
||||
XSetForeground( gdi_display, physDev->gc, backgroundPixel );
|
||||
XFillRectangle( gdi_display, physDev->drawable, physDev->gc,
|
||||
physDev->org.x + rc.left, physDev->org.y + rc.top,
|
||||
rc.right - rc.left, rc.bottom - rc.top );
|
||||
wine_tsx11_unlock();
|
||||
}
|
||||
|
||||
if(count == 0) {
|
||||
|
@ -1159,10 +1162,12 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
|
|||
if(!((flags & ETO_CLIPPED) && (flags & ETO_OPAQUE))) {
|
||||
if(!(flags & ETO_OPAQUE) || x < rc.left || x + width >= rc.right ||
|
||||
y - tm.tmAscent < rc.top || y + tm.tmDescent >= rc.bottom) {
|
||||
TSXSetForeground( gdi_display, physDev->gc, backgroundPixel );
|
||||
TSXFillRectangle( gdi_display, physDev->drawable, physDev->gc,
|
||||
wine_tsx11_lock();
|
||||
XSetForeground( gdi_display, physDev->gc, backgroundPixel );
|
||||
XFillRectangle( gdi_display, physDev->drawable, physDev->gc,
|
||||
physDev->org.x + x, physDev->org.y + y - tm.tmAscent,
|
||||
width, tm.tmAscent + tm.tmDescent );
|
||||
wine_tsx11_unlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -425,8 +425,10 @@ BOOL X11DRV_DeleteBitmap( HBITMAP hbitmap )
|
|||
BITMAPOBJ *bmp = (BITMAPOBJ *) GDI_GetObjPtr( hbitmap, BITMAP_MAGIC );
|
||||
if (bmp)
|
||||
{
|
||||
if (bmp->physBitmap) TSXFreePixmap( gdi_display, (Pixmap)bmp->physBitmap );
|
||||
wine_tsx11_lock();
|
||||
if (bmp->physBitmap) XFreePixmap( gdi_display, (Pixmap)bmp->physBitmap );
|
||||
bmp->physBitmap = NULL;
|
||||
wine_tsx11_unlock();
|
||||
if (bmp->dib) X11DRV_DIB_DeleteDIBSection( bmp );
|
||||
GDI_ReleaseObj( hbitmap );
|
||||
}
|
||||
|
@ -450,9 +452,11 @@ HBITMAP X11DRV_BITMAP_CreateBitmapHeaderFromPixmap(Pixmap pixmap)
|
|||
unsigned int depth, width, height;
|
||||
|
||||
/* Get the Pixmap dimensions and bit depth */
|
||||
if ( 0 == TSXGetGeometry(gdi_display, pixmap, &root, &x, &y, &width, &height,
|
||||
&border_width, &depth) )
|
||||
goto END;
|
||||
wine_tsx11_lock();
|
||||
if (!XGetGeometry(gdi_display, pixmap, &root, &x, &y, &width, &height,
|
||||
&border_width, &depth)) depth = 0;
|
||||
wine_tsx11_unlock();
|
||||
if (!depth) goto END;
|
||||
|
||||
TRACE("\tPixmap properties: width=%d, height=%d, depth=%d\n",
|
||||
width, height, depth);
|
||||
|
|
|
@ -235,7 +235,9 @@ HBRUSH X11DRV_SelectBrush( X11DRV_PDEVICE *physDev, HBRUSH hbrush )
|
|||
|
||||
if (physDev->brush.pixmap)
|
||||
{
|
||||
TSXFreePixmap( gdi_display, physDev->brush.pixmap );
|
||||
wine_tsx11_lock();
|
||||
XFreePixmap( gdi_display, physDev->brush.pixmap );
|
||||
wine_tsx11_unlock();
|
||||
physDev->brush.pixmap = 0;
|
||||
}
|
||||
physDev->brush.style = logbrush.lbStyle;
|
||||
|
|
|
@ -117,8 +117,10 @@ void X11DRV_SetDeviceClipping( X11DRV_PDEVICE *physDev, HRGN hrgn )
|
|||
RGNDATA *data;
|
||||
|
||||
if (!(data = X11DRV_GetRegionData( hrgn, 0 ))) return;
|
||||
TSXSetClipRectangles( gdi_display, physDev->gc, physDev->org.x, physDev->org.y,
|
||||
wine_tsx11_lock();
|
||||
XSetClipRectangles( gdi_display, physDev->gc, physDev->org.x, physDev->org.y,
|
||||
(XRectangle *)data->Buffer, data->rdh.nCount, YXBanded );
|
||||
wine_tsx11_unlock();
|
||||
HeapFree( GetProcessHeap(), 0, data );
|
||||
}
|
||||
|
||||
|
@ -142,7 +144,9 @@ void X11DRV_SetDrawable( HDC hdc, Drawable drawable, int mode, const POINT *org,
|
|||
physDev->org = *org;
|
||||
physDev->drawable = drawable;
|
||||
physDev->drawable_org = *drawable_org;
|
||||
TSXSetSubwindowMode( gdi_display, physDev->gc, mode );
|
||||
wine_tsx11_lock();
|
||||
XSetSubwindowMode( gdi_display, physDev->gc, mode );
|
||||
wine_tsx11_unlock();
|
||||
GDI_ReleaseObj( hdc );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -409,19 +409,27 @@ static void X11DRV_DrawString_normal( fontObject* pfo, Display* pdisp,
|
|||
Drawable d, GC gc, int x, int y,
|
||||
XChar2b* pstr, int count )
|
||||
{
|
||||
TSXDrawString16( pdisp, d, gc, x, y, pstr, count );
|
||||
wine_tsx11_lock();
|
||||
XDrawString16( pdisp, d, gc, x, y, pstr, count );
|
||||
wine_tsx11_unlock();
|
||||
}
|
||||
|
||||
static int X11DRV_TextWidth_normal( fontObject* pfo, XChar2b* pstr, int count )
|
||||
{
|
||||
return TSXTextWidth16( pfo->fs, pstr, count );
|
||||
int ret;
|
||||
wine_tsx11_lock();
|
||||
ret = XTextWidth16( pfo->fs, pstr, count );
|
||||
wine_tsx11_unlock();
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void X11DRV_DrawText_normal( fontObject* pfo, Display* pdisp, Drawable d,
|
||||
GC gc, int x, int y, XTextItem16* pitems,
|
||||
int count )
|
||||
{
|
||||
TSXDrawText16( pdisp, d, gc, x, y, pitems, count );
|
||||
wine_tsx11_lock();
|
||||
XDrawText16( pdisp, d, gc, x, y, pitems, count );
|
||||
wine_tsx11_unlock();
|
||||
}
|
||||
|
||||
static void X11DRV_TextExtents_normal( fontObject* pfo, XChar2b* pstr, int count,
|
||||
|
@ -430,7 +438,9 @@ static void X11DRV_TextExtents_normal( fontObject* pfo, XChar2b* pstr, int count
|
|||
{
|
||||
XCharStruct info;
|
||||
|
||||
TSXTextExtents16( pfo->fs, pstr, count, pdir, pascent, pdescent, &info );
|
||||
wine_tsx11_lock();
|
||||
XTextExtents16( pfo->fs, pstr, count, pdir, pascent, pdescent, &info );
|
||||
wine_tsx11_unlock();
|
||||
*pwidth = info.width;
|
||||
}
|
||||
|
||||
|
@ -519,13 +529,14 @@ int X11DRV_TextWidth_dbcs_2fonts( fontObject* pfo, XChar2b* pstr, int count )
|
|||
if ( pfos[0] == NULL ) pfos[0] = pfo;
|
||||
|
||||
width = 0;
|
||||
wine_tsx11_lock();
|
||||
for ( i = 0; i < count; i++ )
|
||||
{
|
||||
curfont = ( pstr->byte1 != 0 ) ? 1 : 0;
|
||||
width += TSXTextWidth16( pfos[curfont]->fs, pstr, 1 );
|
||||
width += XTextWidth16( pfos[curfont]->fs, pstr, 1 );
|
||||
pstr ++;
|
||||
}
|
||||
|
||||
wine_tsx11_unlock();
|
||||
return width;
|
||||
}
|
||||
|
||||
|
@ -576,7 +587,9 @@ void X11DRV_DrawText_dbcs_2fonts( fontObject* pfo, Display* pdisp, Drawable d,
|
|||
pti->nchars = pstr - pti->chars;
|
||||
pitems ++; pti ++;
|
||||
}
|
||||
TSXDrawText16( pdisp, d, gc, x, y, ptibuf, pti - ptibuf );
|
||||
wine_tsx11_lock();
|
||||
XDrawText16( pdisp, d, gc, x, y, ptibuf, pti - ptibuf );
|
||||
wine_tsx11_unlock();
|
||||
HeapFree( GetProcessHeap(), 0, ptibuf );
|
||||
}
|
||||
|
||||
|
@ -598,18 +611,18 @@ void X11DRV_TextExtents_dbcs_2fonts( fontObject* pfo, XChar2b* pstr, int count,
|
|||
width = 0;
|
||||
*pascent = 0;
|
||||
*pdescent = 0;
|
||||
wine_tsx11_lock();
|
||||
for ( i = 0; i < count; i++ )
|
||||
{
|
||||
curfont = ( pstr->byte1 != 0 ) ? 1 : 0;
|
||||
TSXTextExtents16( pfos[curfont]->fs, pstr, 1, pdir,
|
||||
&ascent, &descent, &info );
|
||||
XTextExtents16( pfos[curfont]->fs, pstr, 1, pdir, &ascent, &descent, &info );
|
||||
if ( *pascent < ascent ) *pascent = ascent;
|
||||
if ( *pdescent < descent ) *pdescent = descent;
|
||||
width += info.width;
|
||||
|
||||
pstr ++;
|
||||
}
|
||||
|
||||
wine_tsx11_unlock();
|
||||
*pwidth = width;
|
||||
}
|
||||
|
||||
|
|
|
@ -4825,7 +4825,9 @@ INT X11DRV_SetDIBitsToDevice( X11DRV_PDEVICE *physDev, INT xDest, INT yDest, DWO
|
|||
if (!cx || !cy) return lines;
|
||||
|
||||
X11DRV_SetupGCForText( physDev ); /* To have the correct colors */
|
||||
TSXSetFunction(gdi_display, physDev->gc, X11DRV_XROPfunction[dc->ROPmode-1]);
|
||||
wine_tsx11_lock();
|
||||
XSetFunction(gdi_display, physDev->gc, X11DRV_XROPfunction[dc->ROPmode-1]);
|
||||
wine_tsx11_unlock();
|
||||
|
||||
switch (descr.infoBpp)
|
||||
{
|
||||
|
|
|
@ -222,14 +222,6 @@ BOOL X11DRV_SetupGCForPen( X11DRV_PDEVICE *physDev )
|
|||
}
|
||||
val.background = physDev->backgroundPixel;
|
||||
val.fill_style = FillSolid;
|
||||
if ((physDev->pen.width <= 1) &&
|
||||
(physDev->pen.style != PS_SOLID) &&
|
||||
(physDev->pen.style != PS_INSIDEFRAME))
|
||||
{
|
||||
TSXSetDashes( gdi_display, physDev->gc, 0, physDev->pen.dashes, physDev->pen.dash_len );
|
||||
val.line_style = (GetBkMode(physDev->hdc) == OPAQUE) ? LineDoubleDash : LineOnOffDash;
|
||||
}
|
||||
else val.line_style = LineSolid;
|
||||
val.line_width = physDev->pen.width;
|
||||
if (val.line_width <= 1) {
|
||||
val.cap_style = CapNotLast;
|
||||
|
@ -259,9 +251,20 @@ BOOL X11DRV_SetupGCForPen( X11DRV_PDEVICE *physDev )
|
|||
default:
|
||||
val.join_style = JoinRound;
|
||||
}
|
||||
TSXChangeGC( gdi_display, physDev->gc,
|
||||
wine_tsx11_lock();
|
||||
if ((physDev->pen.width <= 1) &&
|
||||
(physDev->pen.style != PS_SOLID) &&
|
||||
(physDev->pen.style != PS_INSIDEFRAME))
|
||||
{
|
||||
XSetDashes( gdi_display, physDev->gc, 0, physDev->pen.dashes, physDev->pen.dash_len );
|
||||
val.line_style = (GetBkMode(physDev->hdc) == OPAQUE) ? LineDoubleDash : LineOnOffDash;
|
||||
}
|
||||
else val.line_style = LineSolid;
|
||||
|
||||
XChangeGC( gdi_display, physDev->gc,
|
||||
GCFunction | GCForeground | GCBackground | GCLineWidth |
|
||||
GCLineStyle | GCCapStyle | GCJoinStyle | GCFillStyle, &val );
|
||||
wine_tsx11_unlock();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -286,9 +289,11 @@ BOOL X11DRV_SetupGCForText( X11DRV_PDEVICE *physDev )
|
|||
val.fill_style = FillSolid;
|
||||
val.font = xfs->fid;
|
||||
|
||||
TSXChangeGC( gdi_display, physDev->gc,
|
||||
wine_tsx11_lock();
|
||||
XChangeGC( gdi_display, physDev->gc,
|
||||
GCFunction | GCForeground | GCBackground | GCFillStyle |
|
||||
GCFont, &val );
|
||||
wine_tsx11_unlock();
|
||||
return TRUE;
|
||||
}
|
||||
WARN("Physical font failure\n" );
|
||||
|
@ -312,9 +317,11 @@ X11DRV_LineTo( X11DRV_PDEVICE *physDev, INT x, INT y )
|
|||
pt[1].y = y;
|
||||
LPtoDP( physDev->hdc, pt, 2 );
|
||||
|
||||
TSXDrawLine(gdi_display, physDev->drawable, physDev->gc,
|
||||
wine_tsx11_lock();
|
||||
XDrawLine(gdi_display, physDev->drawable, physDev->gc,
|
||||
physDev->org.x + pt[0].x, physDev->org.y + pt[0].y,
|
||||
physDev->org.x + pt[1].x, physDev->org.y + pt[1].y );
|
||||
wine_tsx11_unlock();
|
||||
|
||||
/* Update the DIBSection from the pixmap */
|
||||
X11DRV_UnlockDIBSection(physDev, TRUE);
|
||||
|
@ -404,17 +411,21 @@ X11DRV_DrawArc( X11DRV_PDEVICE *physDev, INT left, INT top, INT right,
|
|||
/* Fill arc with brush if Chord() or Pie() */
|
||||
|
||||
if ((lines > 0) && X11DRV_SetupGCForBrush( physDev )) {
|
||||
TSXSetArcMode( gdi_display, physDev->gc, (lines==1) ? ArcChord : ArcPieSlice);
|
||||
TSXFillArc( gdi_display, physDev->drawable, physDev->gc,
|
||||
wine_tsx11_lock();
|
||||
XSetArcMode( gdi_display, physDev->gc, (lines==1) ? ArcChord : ArcPieSlice);
|
||||
XFillArc( gdi_display, physDev->drawable, physDev->gc,
|
||||
physDev->org.x + rc.left, physDev->org.y + rc.top,
|
||||
rc.right-rc.left-1, rc.bottom-rc.top-1, istart_angle, idiff_angle );
|
||||
wine_tsx11_unlock();
|
||||
update = TRUE;
|
||||
}
|
||||
|
||||
/* Draw arc and lines */
|
||||
|
||||
if (X11DRV_SetupGCForPen( physDev )){
|
||||
TSXDrawArc( gdi_display, physDev->drawable, physDev->gc,
|
||||
if (X11DRV_SetupGCForPen( physDev ))
|
||||
{
|
||||
wine_tsx11_lock();
|
||||
XDrawArc( gdi_display, physDev->drawable, physDev->gc,
|
||||
physDev->org.x + rc.left, physDev->org.y + rc.top,
|
||||
rc.right-rc.left-1, rc.bottom-rc.top-1, istart_angle, idiff_angle );
|
||||
if (lines) {
|
||||
|
@ -470,9 +481,10 @@ X11DRV_DrawArc( X11DRV_PDEVICE *physDev, INT left, INT top, INT right,
|
|||
}
|
||||
lines++;
|
||||
}
|
||||
TSXDrawLines( gdi_display, physDev->drawable, physDev->gc,
|
||||
XDrawLines( gdi_display, physDev->drawable, physDev->gc,
|
||||
points, lines+1, CoordModeOrigin );
|
||||
}
|
||||
wine_tsx11_unlock();
|
||||
update = TRUE;
|
||||
}
|
||||
|
||||
|
@ -558,16 +570,20 @@ X11DRV_Ellipse( X11DRV_PDEVICE *physDev, INT left, INT top, INT right, INT botto
|
|||
|
||||
if (X11DRV_SetupGCForBrush( physDev ))
|
||||
{
|
||||
TSXFillArc( gdi_display, physDev->drawable, physDev->gc,
|
||||
wine_tsx11_lock();
|
||||
XFillArc( gdi_display, physDev->drawable, physDev->gc,
|
||||
physDev->org.x + rc.left, physDev->org.y + rc.top,
|
||||
rc.right-rc.left-1, rc.bottom-rc.top-1, 0, 360*64 );
|
||||
wine_tsx11_unlock();
|
||||
update = TRUE;
|
||||
}
|
||||
if (X11DRV_SetupGCForPen( physDev ))
|
||||
{
|
||||
TSXDrawArc( gdi_display, physDev->drawable, physDev->gc,
|
||||
wine_tsx11_lock();
|
||||
XDrawArc( gdi_display, physDev->drawable, physDev->gc,
|
||||
physDev->org.x + rc.left, physDev->org.y + rc.top,
|
||||
rc.right-rc.left-1, rc.bottom-rc.top-1, 0, 360*64 );
|
||||
wine_tsx11_unlock();
|
||||
update = TRUE;
|
||||
}
|
||||
|
||||
|
@ -997,13 +1013,11 @@ X11DRV_Polyline( X11DRV_PDEVICE *physDev, const POINT* pt, INT count )
|
|||
|
||||
if (X11DRV_SetupGCForPen ( physDev ))
|
||||
{
|
||||
/* Update the pixmap from the DIB section */
|
||||
X11DRV_LockDIBSection(physDev, DIB_Status_GdiMod, FALSE);
|
||||
|
||||
TSXDrawLines( gdi_display, physDev->drawable, physDev->gc,
|
||||
wine_tsx11_lock();
|
||||
XDrawLines( gdi_display, physDev->drawable, physDev->gc,
|
||||
points, count, CoordModeOrigin );
|
||||
|
||||
/* Update the DIBSection from the pixmap */
|
||||
wine_tsx11_unlock();
|
||||
X11DRV_UnlockDIBSection(physDev, TRUE);
|
||||
}
|
||||
|
||||
|
@ -1107,8 +1121,10 @@ X11DRV_PolyPolygon( X11DRV_PDEVICE *physDev, const POINT* pt, const INT* counts,
|
|||
pt++;
|
||||
}
|
||||
points[j] = points[0];
|
||||
TSXDrawLines( gdi_display, physDev->drawable, physDev->gc,
|
||||
wine_tsx11_lock();
|
||||
XDrawLines( gdi_display, physDev->drawable, physDev->gc,
|
||||
points, j + 1, CoordModeOrigin );
|
||||
wine_tsx11_unlock();
|
||||
}
|
||||
|
||||
/* Update the DIBSection of the dc's bitmap */
|
||||
|
@ -1150,8 +1166,10 @@ X11DRV_PolyPolyline( X11DRV_PDEVICE *physDev, const POINT* pt, const DWORD* coun
|
|||
points[j].y = physDev->org.y + tmp.y;
|
||||
pt++;
|
||||
}
|
||||
TSXDrawLines( gdi_display, physDev->drawable, physDev->gc,
|
||||
wine_tsx11_lock();
|
||||
XDrawLines( gdi_display, physDev->drawable, physDev->gc,
|
||||
points, j, CoordModeOrigin );
|
||||
wine_tsx11_unlock();
|
||||
}
|
||||
|
||||
/* Update the DIBSection of the dc's bitmap */
|
||||
|
|
|
@ -333,6 +333,7 @@ static BOOL X11DRV_PALETTE_BuildPrivateMap( const PALETTEENTRY *sys_pal_template
|
|||
|
||||
/* Allocate system palette colors */
|
||||
|
||||
wine_tsx11_lock();
|
||||
for( i=0; i < palette_size; i++ )
|
||||
{
|
||||
if( i < NB_RESERVED_COLORS/2 )
|
||||
|
@ -355,7 +356,7 @@ static BOOL X11DRV_PALETTE_BuildPrivateMap( const PALETTEENTRY *sys_pal_template
|
|||
|
||||
color.flags = DoRed | DoGreen | DoBlue;
|
||||
color.pixel = i;
|
||||
TSXStoreColor(gdi_display, X11DRV_PALETTE_PaletteXColormap, &color);
|
||||
XStoreColor(gdi_display, X11DRV_PALETTE_PaletteXColormap, &color);
|
||||
|
||||
/* Set EGA mapping if color is from the first or last eight */
|
||||
|
||||
|
@ -364,6 +365,7 @@ static BOOL X11DRV_PALETTE_BuildPrivateMap( const PALETTEENTRY *sys_pal_template
|
|||
else if (i >= palette_size - 8 )
|
||||
X11DRV_PALETTE_mapEGAPixel[i - (palette_size - 16)] = color.pixel;
|
||||
}
|
||||
wine_tsx11_unlock();
|
||||
|
||||
X11DRV_PALETTE_XPixelToPalette = X11DRV_PALETTE_PaletteToXPixel = NULL;
|
||||
|
||||
|
@ -1138,7 +1140,9 @@ static UINT X11DRV_PALETTE_SetMapping( PALETTEOBJ* palPtr, UINT uStart, UINT uNu
|
|||
color.green = palPtr->logpalette.palPalEntry[uStart].peGreen << 8;
|
||||
color.blue = palPtr->logpalette.palPalEntry[uStart].peBlue << 8;
|
||||
color.flags = DoRed | DoGreen | DoBlue;
|
||||
TSXStoreColor(gdi_display, X11DRV_PALETTE_PaletteXColormap, &color);
|
||||
wine_tsx11_lock();
|
||||
XStoreColor(gdi_display, X11DRV_PALETTE_PaletteXColormap, &color);
|
||||
wine_tsx11_unlock();
|
||||
|
||||
COLOR_sysPal[index] = palPtr->logpalette.palPalEntry[uStart];
|
||||
COLOR_sysPal[index].peFlags = flag;
|
||||
|
|
|
@ -139,10 +139,12 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags,
|
|||
{
|
||||
X11DRV_LockDIBSection( physDev, DIB_Status_GdiMod, FALSE );
|
||||
dibUpdateFlag = TRUE;
|
||||
TSXSetForeground( gdi_display, physDev->gc, physDev->backgroundPixel );
|
||||
TSXFillRectangle( gdi_display, physDev->drawable, physDev->gc,
|
||||
wine_tsx11_lock();
|
||||
XSetForeground( gdi_display, physDev->gc, physDev->backgroundPixel );
|
||||
XFillRectangle( gdi_display, physDev->drawable, physDev->gc,
|
||||
physDev->org.x + rect.left, physDev->org.y + rect.top,
|
||||
rect.right-rect.left, rect.bottom-rect.top );
|
||||
wine_tsx11_unlock();
|
||||
}
|
||||
if (!count) goto END; /* Nothing more to do */
|
||||
|
||||
|
@ -245,10 +247,12 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags,
|
|||
(y - ascent < rect.top) ||
|
||||
(y + descent >= rect.bottom))
|
||||
{
|
||||
TSXSetForeground( gdi_display, physDev->gc, physDev->backgroundPixel );
|
||||
TSXFillRectangle( gdi_display, physDev->drawable, physDev->gc,
|
||||
wine_tsx11_lock();
|
||||
XSetForeground( gdi_display, physDev->gc, physDev->backgroundPixel );
|
||||
XFillRectangle( gdi_display, physDev->drawable, physDev->gc,
|
||||
physDev->org.x + x, physDev->org.y + y - ascent,
|
||||
width, ascent + descent );
|
||||
wine_tsx11_unlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -257,7 +261,9 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags,
|
|||
if (!(str2b = X11DRV_cptable[pfo->fi->cptable].punicode_to_char2b( pfo, wstr, count )))
|
||||
goto FAIL;
|
||||
|
||||
TSXSetForeground( gdi_display, physDev->gc, physDev->textPixel );
|
||||
wine_tsx11_lock();
|
||||
XSetForeground( gdi_display, physDev->gc, physDev->textPixel );
|
||||
wine_tsx11_unlock();
|
||||
if(!rotated)
|
||||
{
|
||||
if (!dc->charExtra && !dc->breakExtra && !lpDx)
|
||||
|
@ -378,34 +384,36 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags,
|
|||
|
||||
/* Draw underline and strike-out if needed */
|
||||
|
||||
wine_tsx11_lock();
|
||||
if (lfUnderline)
|
||||
{
|
||||
long linePos, lineWidth;
|
||||
|
||||
if (!TSXGetFontProperty( font, XA_UNDERLINE_POSITION, &linePos ))
|
||||
if (!XGetFontProperty( font, XA_UNDERLINE_POSITION, &linePos ))
|
||||
linePos = descent - 1;
|
||||
if (!TSXGetFontProperty( font, XA_UNDERLINE_THICKNESS, &lineWidth ))
|
||||
if (!XGetFontProperty( font, XA_UNDERLINE_THICKNESS, &lineWidth ))
|
||||
lineWidth = 0;
|
||||
else if (lineWidth == 1) lineWidth = 0;
|
||||
TSXSetLineAttributes( gdi_display, physDev->gc, lineWidth,
|
||||
XSetLineAttributes( gdi_display, physDev->gc, lineWidth,
|
||||
LineSolid, CapRound, JoinBevel );
|
||||
TSXDrawLine( gdi_display, physDev->drawable, physDev->gc,
|
||||
XDrawLine( gdi_display, physDev->drawable, physDev->gc,
|
||||
physDev->org.x + x, physDev->org.y + y + linePos,
|
||||
physDev->org.x + x + width, physDev->org.y + y + linePos );
|
||||
}
|
||||
if (lfStrikeOut)
|
||||
{
|
||||
long lineAscent, lineDescent;
|
||||
if (!TSXGetFontProperty( font, XA_STRIKEOUT_ASCENT, &lineAscent ))
|
||||
if (!XGetFontProperty( font, XA_STRIKEOUT_ASCENT, &lineAscent ))
|
||||
lineAscent = ascent / 2;
|
||||
if (!TSXGetFontProperty( font, XA_STRIKEOUT_DESCENT, &lineDescent ))
|
||||
if (!XGetFontProperty( font, XA_STRIKEOUT_DESCENT, &lineDescent ))
|
||||
lineDescent = -lineAscent * 2 / 3;
|
||||
TSXSetLineAttributes( gdi_display, physDev->gc, lineAscent + lineDescent,
|
||||
XSetLineAttributes( gdi_display, physDev->gc, lineAscent + lineDescent,
|
||||
LineSolid, CapRound, JoinBevel );
|
||||
TSXDrawLine( gdi_display, physDev->drawable, physDev->gc,
|
||||
XDrawLine( gdi_display, physDev->drawable, physDev->gc,
|
||||
physDev->org.x + x, physDev->org.y + y - lineAscent,
|
||||
physDev->org.x + x + width, physDev->org.y + y - lineAscent );
|
||||
}
|
||||
wine_tsx11_unlock();
|
||||
|
||||
if (flags & ETO_CLIPPED) RestoreVisRgn16( HDC_16(dc->hSelf) );
|
||||
goto END;
|
||||
|
|
Loading…
Reference in New Issue