1996-08-24 20:26:35 +02:00
|
|
|
/*
|
1999-04-01 10:16:08 +02:00
|
|
|
* X11 driver definitions
|
2002-03-10 00:29:33 +01:00
|
|
|
*
|
|
|
|
* Copyright 1996 Alexandre Julliard
|
|
|
|
* Copyright 1999 Patrik Stridvall
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
2006-05-18 14:49:52 +02:00
|
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
1996-08-24 20:26:35 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __WINE_X11DRV_H
|
|
|
|
#define __WINE_X11DRV_H
|
|
|
|
|
2002-06-01 01:06:46 +02:00
|
|
|
#ifndef __WINE_CONFIG_H
|
|
|
|
# error You must include config.h to use this header
|
|
|
|
#endif
|
1998-12-26 13:00:43 +01:00
|
|
|
|
2003-09-06 01:08:26 +02:00
|
|
|
#include <stdarg.h>
|
1998-12-26 13:00:43 +01:00
|
|
|
#include <X11/Xlib.h>
|
|
|
|
#include <X11/Xresource.h>
|
|
|
|
#include <X11/Xutil.h>
|
|
|
|
#include <X11/Xatom.h>
|
2000-04-25 21:55:35 +02:00
|
|
|
#ifdef HAVE_LIBXXSHM
|
|
|
|
# include <X11/extensions/XShm.h>
|
|
|
|
#endif /* defined(HAVE_LIBXXSHM) */
|
2002-09-13 00:28:01 +02:00
|
|
|
|
2005-04-14 14:48:11 +02:00
|
|
|
#define BOOL X_BOOL
|
|
|
|
#define BYTE X_BYTE
|
|
|
|
#define INT8 X_INT8
|
|
|
|
#define INT16 X_INT16
|
|
|
|
#define INT32 X_INT32
|
|
|
|
#define INT64 X_INT64
|
|
|
|
#include <X11/Xmd.h>
|
|
|
|
#include <X11/Xproto.h>
|
|
|
|
#undef BOOL
|
|
|
|
#undef BYTE
|
|
|
|
#undef INT8
|
|
|
|
#undef INT16
|
|
|
|
#undef INT32
|
|
|
|
#undef INT64
|
|
|
|
#undef LONG64
|
|
|
|
|
2002-09-13 00:28:01 +02:00
|
|
|
#undef Status /* avoid conflict with wintrnl.h */
|
|
|
|
typedef int Status;
|
1998-12-07 10:13:40 +01:00
|
|
|
|
1999-03-14 17:35:05 +01:00
|
|
|
#include "windef.h"
|
2000-06-08 06:57:22 +02:00
|
|
|
#include "winbase.h"
|
2005-01-17 20:17:47 +01:00
|
|
|
#include "wingdi.h"
|
|
|
|
#include "winuser.h"
|
2003-09-16 22:24:29 +02:00
|
|
|
#include "ddrawi.h"
|
2005-04-20 18:24:13 +02:00
|
|
|
#include "wine/list.h"
|
1999-02-04 15:05:38 +01:00
|
|
|
|
2000-05-12 22:18:14 +02:00
|
|
|
#define MAX_PIXELFORMATS 8
|
2007-07-19 04:40:24 +02:00
|
|
|
#define MAX_DASHLEN 16
|
1999-09-03 18:49:17 +02:00
|
|
|
|
2010-02-20 09:57:07 +01:00
|
|
|
#define WINE_XDND_VERSION 4
|
|
|
|
|
2008-12-16 14:18:49 +01:00
|
|
|
extern void CDECL wine_tsx11_lock(void);
|
|
|
|
extern void CDECL wine_tsx11_unlock(void);
|
2003-11-21 22:48:36 +01:00
|
|
|
|
1996-08-24 20:26:35 +02:00
|
|
|
/* X physical pen */
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int style;
|
Release 971221
Fri Dec 19 10:50:46 1997 Douglas Ridgway <ridgway@winehq.com>
* [Make.rules.in] [Makefile.in] [documentation/Makefile.in]
[documentation/README.documentation]
First cut at Wine API documentation. No longer install reference
manual by default.
Wed Dec 17 21:32:23 1997 Andreas Mohr <100.30936@germany.net>
* [files/file.c]
Fixed GetTempFileName16() to use current path of requested drive
as needed.
* [if1632/Makefile.in] [if1632/builtin.c] [if1632/dciman32.spec]
[if1632/msvfw32.spec] [if1632/tapi32.spec] [if1632/wow32.spec]
Added misc DLLs needed by various apps.
Wed Dec 17 12:01:50 1997 Morten Eriksen <mortene@sim.no>
* [if1632/gdi32.spec] [include/windows.h] [objects/palette.c]
Inserted empty stub for CreateHalftonePalette.
Tue Dec 16 22:08:06 1997 Huw D M Davies <h.davies1@physics.oxford.ac.uk>
* [windows/mdi.c]
Use VK_TAB instead of VK_SEPARATOR in TranslateMDISysAccel().
* [graphics/metafiledrv/init.c]
DeleteDC() on a MetaDC doesn't do anything - it shouldn't. Therefore
fix cleanup of MetaDCs in CloseMetaFile(); they now actually get
removed from the GDI heap!
* [graphics/x11drv/xfont.c]
Preserve FO_MATCH_XYINDEP flag in XFONT_MatchFIList(). Should reduce
the number of bold-italic matches.
Tue Dec 16 20:11:43 1997 Bertho Stultiens <bertho@panter.soci.aau.dk>
* [graphics/painting.c]
Included an implementation of DrawState
* [if1632/thunk.c]
Changed many fprintfs into dprintf_thunk
* [include/cache.h] [graphics/cache.c]
New files to hold cached handles to regulary used GDI object.
* [include/windows.h]
Added DRAWSTATExx typedefs
Added DSS_DEFAULT define for DrawState
* [objects/text.c]
New implementation of GrayString()
* [controls/uitools.c]
Implemented DrawFrameControl() functions
Changed DrawEdge() behaviour to win95 implementation
Mon Dec 15 23:43:01 1997 Martin Boehme <boehme@informatik.mu-luebeck.de>
* [graphics/path.c] [include/path.h] [graphics/painting.c]
[if1632/gdi32.spec] [include/gdi.h] [include/windows.h]
[objects/dc.c]
Added preliminary support for GDI paths.
* [objects/dc.c]
Added DC_Init_DC_INFO function for initializing WIN_DC_INFO
structure.
* [include/windows.h] [include/gdi.h] [objects/gdiobj.c]
Added DEFAULT_GUI_FONT.
* [include/winerror.h]
Added a few error codes.
* [memory/heap.c]
Changed HeapAlloc to make the correct calls to SetLastError
(now conforms to NT's behaviour).
* [windows/win.c]
Changed WIN_CreateWindowEx to allow child windows with zero
width / height.
Sun Dec 14 12:01:07 1997 Alexandre Julliard <julliard@lrc.epfl.ch>
* [if1632/*] [relay32/*]
Moved all 32-bit relay stuff to relay32/
* [fi1632/thunk.c] [win32/kernel32.c]
Moved all KERNEL32 ordinal functions to kernel32.c
* [memory/selector.c]
Initialize selectors in AllocSelectorArray.
* [tools/build.c]
Generate C instead of assembly for Win32 relays.
Fixed stack corruption in CallTo16 functions, found by Bertho
Stultiens.
Sun Dec 14 10:55:00 1997 Andreas Mohr <100.30936@germany.net>
* [if1632/Makefile.in] [if1632/builtin.c] [if1632/ole2thk.spec]
Added built-in OLE2THK.DLL.
* [if1632/toolhelp.spec] [include/toolhelp.h] [memory/selector.c]
[misc/toolhelp.c]
Added stubs for StackTraceFirst(), StackTraceCSIPFirst(),
StackTraceNext(), UTSelectorOffsetToLinear()
and UTLinearToSelectorOffset().
Sat Dec 13 17:26:41 1997 Alex Korobka <alex@trantor.pharm.sunysb.edu>
* [misc/winsock.c]
32-bit API fixes for reported problems (thanks to Marcus
and David).
* [graphics/x11drv/xfont.c]
Little tweak in point size calculation.
* [windows/defwnd.c] [windows/dce.c] [windows/winhelp.c]
[windows/winproc.c] [windows/win.c]
Bug fixes.
Sat Dec 13 16:35:14 1997 Kai Morich <kai.morich@rhein-neckar.netsurf.de>
* [files/dos_fs.c]
OpenFile with empty filename and OF_PARSE returns current dir.
* [misc/commdlg.c]
Ignore initial dir if bogus.
* [files/file.c]
Locking an identic region in a file must not be an error.
* [misc/lstr.c]
Use wide char ctype functions.
Fri Dec 12 23:46:22 1997 Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
* [file/drive.c]
First attempt for GetDiskFreeSpaceEx.
Fri Dec 12 23:18:41 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>
* [loader/pe_resource.c]
Fixed wrongly appearing menus problem (only use default lookups in
last resource subtree).
* [multimedia/*.c]
Added win32 support for time* and joy* lowlevel drivers,
(not excessively tested), some misc fixes and cleanups.
* [misc/shellord.c][misc/shell.c][ole/folders.c][ole/ifs.c]
[include/interfaces.h][include/shlobj.h]
Added some more undocumented SHELL32 functions, some shell folder
interface stubs added, SHGetMalloc, SHGetDesktopFolder,
SHGetSpecialFolderLocation, SHGetPathFromIDList stubs added,
IMalloc, IUnknown implemented.
* [windows/msgbox.c]
Implemented MessageBoxIndirect*, some internal changes.
* [if1632/thunk.c]
KERNEL_431 implemented.
* [objects/gdiobj.c]
GetCurrentObject implemented.
Wed Dec 3 01:09:17 1997 Gordon Chaffee <chaffee@apu.cs.berkeley.edu>
* [objects/dib.c]
Fix a couple small DIB problems.
* [controls/edit.c]
Fix a typo.
* [files/dos_fs.c]
Try normal readdir in case fs is specified as vfat but isn't.
* [files/profile.c]
Implementation of WritePrivateProfileSection32A from Uwe Bonnes.
* [misc/printdrv.c]
OpenPrinter32A stub, helps Word97 start.
* [objects/text.c]
Fixup implementation of GetTextCharsetInfo.
* [scheduler/process.c]
Fix environment variable expansion.
* [win32/code_page.c]
Make MultiByteToWideChar and WideCharToMultiByte conform in return
values and error conditions to those in Windows NT 4.0.
* [windows/message.c]
Fix broadcasting problems in Win32. The Win32 docs say to use
HWND_TOPMOST to broadcast to all Win32 Windows.
* [memory/virtual.c] [loader/pe_image.c]
Do not map in VirtualAlloc if address is specified and space is
not available. This is required by Win32.
* [include/pen.h] [include/x11drv.h] [objects/dc.c]
[objects/pen.c] [graphics/x11drv/pen.c]
Support for ExtCreatePen.
Tue Dec 2 20:22:06 1997 Morten Welinder <terra@diku.dk>
* [*/*.c] [*/*.h]
Add lots of prototypes.
* [if1632/kernel32.spec][include/windows.h][include/winnt.h]
[misc/cpu.c]
Define IsProcessorFeaturePresent.
* [misc/crtdll.c]
(CRTDLL__getcwd): Allocate enough memory for the terminating zero.
* [misc/ver.c]
Improve check for null component in _find_data[AW]. Plug leaks
in VerQueryValue*.
* [win32/console.c][if1632/kernel32.spec]
Add stubs for GetConsoleCursorInfo32, SetConsoleCursorInfo32.
* [windows/message.c][if1632/user32.spec][include/windows.h]
Define SendMessageTimeout*.
* [graphics/x11drv/xfont.c]
Change algorithm of __genericCheckSum to be alignment safe.
* [misc/main.c] [misc/winsock.c] [misc/winsock_dns.c]
Include winsock.h early to avoid Solaris problem.
* [include/windows.h]
Undef FSHIFT before we define it.
* [rc/winerc.c]
Include <fcntl.h> instead of <sys/fcntl.h>.
* [files/file.c]
Use strerror in FILE_SetDosError if available.
* [include/config.h.in] [configure.in]
Check for strerror.
* [objects/gdiobj.c]
Make static font structures aligned.
Mon Dec 1 10:10:21 1997 Karl Garrison <karlos@eznet.net>
* [win32/console.c] [if1632/kernel32.spec] [include/windows.h]
Added stub for GetNumberOfConsoleMouseButtons.
Added stub for PeekConsoleInput(A,W).
Fixed parameter list for WriteConsole(A,W).
GetNumberOfConsoleInputEvents now returns 0 events instead of 1
(since low-level console functions are not yet supported).
GetConsoleMode no longer returns ENABLE_WINDOW_INPUT and
ENABLE_MOUSE_INPUT since these are not currently implemented.
1997-12-21 20:17:50 +01:00
|
|
|
int endcap;
|
|
|
|
int linejoin;
|
1996-08-24 20:26:35 +02:00
|
|
|
int pixel;
|
|
|
|
int width;
|
2007-07-19 04:40:24 +02:00
|
|
|
char dashes[MAX_DASHLEN];
|
1996-08-24 20:26:35 +02:00
|
|
|
int dash_len;
|
Release 980628
Sun Jun 28 18:37:02 1998 Alexandre Julliard <julliard@lrc.epfl.ch>
* [if1632/signal.c] [miscemu/instr.c] [memory/virtual.c]
Moved page-fault handling to INSTR_EmulateInstruction.
* [scheduler/thread.c]
Added locking and check for own thread in Suspend/ResumeThread.
Sat Jun 27 21:25:21 1998 Ulrich Weigand <weigand@informatik.uni-erlangen.de>
* [objects/dib.c] [objects/bitmap.c] [objects/oembitmap.c]
[graphics/x11drv/bitblt.c] [include/bitmap.h]
Improved DIB section handling using page fault handlers.
(Note: This patch includes code contributed by Matthew J. Francis.)
* [memory/virtual.c] [if1632/signal.c] [include/global.h]
Page Fault handler support added.
* [if1632/signal.c] [loader/signal.c] [tools/build.c] [misc/system.c]
[misc/winsock_dns.c] [include/sig_context.h] [include/thread.h]
16-bit %fs handling improved: Always preserve 16-bit %fs value,
always restore 32-bit %fs value for signal handlers.
* [if1632/thunk.c] [loader/module.c] [misc/callback.c] [windows/user.c]
[loader/ne/resource.c] [include/callback.h] [include/module.h]
[if1632/kernel.spec] [if1632/wprocs.spec]
Resource Handler function pointer stored as 16-bit SEGPTR.
* [loader/task.c] [windows/win.c] [windows/winpos.c] [if1632/user.spec]
[if1632/kernel.spec] [loader/ne/module.c]
Some minor incompatibilities fixed (Win32s relies on those):
GetExePtr, IsWindow16 should set ES on return; WINPOS_SendNCCalcSize
should cope with having the WINDOWPOS structure trashed;
the OFSTRUCT in the NE module image should be placed *last*.
* [include/windows.h]
Missing prototype for FlushViewOfFile.
* [loader/task.c]
Bugfix: Command line should *not* start with a blank.
* [loader/ne/segment.c]
Bugfix: Fixups to offset 0 were never applied.
* [misc/lstr.c]
Use debugstr_a in OutputDebugString16.
* [msdos/dpmi.c]
Stub for int 31 BL=2f AX=7a20 (NetWare: Get VLM Call Address) added.
* [msdos/int21.c]
Stub for int 21 AX=440d CL=6f (get drive map information) added.
Fri Jun 26 18:08:30 1998 Rein Klazes <rklazes@casema.net>
* [windows/winpos.c]
Fix small buglet that mixed up maximized and minimized windows.
* [include/x11drv.h] [objects/dc.c] [graphics/x11drv/pen.c]
[graphics/x11drv/graphics.c]
Fix some bugs with lines joining styles. Draws rectangles
with thick pens now correctly.
Fri Jun 26 16:22:23 1998 James Juran <jrj120@psu.edu>
* [misc/shell.c]
Fixed bug I introduced last release in InternalExtractIcon.
* [win32/file.c]
Added documentation for CreateFile32A.
* [documentation/wine.man]
Updated manpage.
* [ChangeLog]
Added my entry from last release.
Fri Jun 26 13:33:30 1998 Huw D M Davies <daviesh@abacus.physics.ox.ac.uk>
* [graphics/psdrv/*] [if1632/wineps.spec] [include/psdrv.h]
[include/print.h] [objects/gdiobj.c]
First stages of an internal Postscript driver. See
graphics/psdrv/README . Should print text (badly) from win3.1 notepad,
write and winword6.
* [documentation/printing]
Some notes on printing.
* [controls/edit.c]
Strip off WS_BORDER in WM_NCREATE, edit draws its own rectangle.
EC_USEFONTINFO seems to be used as a left/right value for EM_SETMARGINS
and not as an action as the docs say. This actually makes more sense.
Scroll the caret back to zero after a WM_SETTEXT.
Fri Jun 26 10:56:25 1998 Marcus Meissner <marcus@jet.franken.de>
* [if1632/snoop.c]
Added win16 inter-dll snooping.
* [win32/ordinals.c]
KERNEL_485 is GetProcessDword.
* [include/xmalloc.h][include/bitmap.h][misc/xmalloc.c]
Added xcalloc so we 0 initialize XImages.
Fixes/Hides the 'junk around MOPYFish'.
* [misc/ntdll.c]
Some stubs added.
Thu Jun 25 15:22:43 1998 Adrian Harvey <adrian@select.com.au>
* [scheduler/thread.c]
Implemented SuspendThread and ResumeThread.
Thu Jun 25 00:55:03 1998 Peter Hunnisett <hunnise@nortel.ca>
* [include/debug.h,dplay.h,dsound.h][multimedia/dsound.c,dplay.c]
[relay32/dplayx.spec,dplay.spec][multimedia/Makefile.in]
[documentation/status/directplay]
Added preliminary support for DirectPlay & DirectPlayLobby. Moved the
preliminary stubs put in the dsound files into two new files
dplay.h and dplay.c.
Added new debug channel (dplay) for this.
Created new document to keep track of implementation.
* [include/winioctl.h][win32/device.c]
Added some framework in DeviceIoControl to, in the future, support
the "builtin" windows dwIoControlCodes. Added new header file
winioctl.h .
* [multimedia/mmsystem.c]
Added slightly improved debugging information for PlaySound.
Wed Jun 24 12:00:00 1998 Juergen Schmied <juergen.schmied@metronet.de>
* [files/profile.c][graphics/x11drv/xfont.c][loader/module.c]
Changed lstrcmpi32A to strcasecmp, lstrncmpi32A to strncasecmp,
lstrcpy32A to strcpy, lstrlen32A to strlen, lstrcmp32A to strcmp
because it's not necessary to support locale on such places.
It causes a huge overhead and even fails sometimes
* [include/oleauto.h][include/winerror.h]
Added some ole-related constants.
* [misc/shell.c]
SHELL32_DllGetClassObject, SHGetSpecialFolderLocation,
SHGetPathFromIDList improved the stubs
* [ole/folders.c]
IShellFolder* functions rewrote the stubs so don't crash and give
something sensible back, started implementation of.
* [ole/typelib.c][relay32/oleaut32.spec]
LoadTypeLib32, RegisterTypeLib stub.
* [ole/ole2nls.c]
Fixed a buffer overrun in CompareString32A.
Test for a bad pointer in LCMapString32A (happens
in winhlp32 while building a index for searching).
* [relay32/oleaut32.spec] [ole/typelib.c]
Added stub for LoadTypeLib (ole32) to make excel95 happy.
Tue Jun 23 22:47:09 1998 Alex Priem <alexp@sci.kun.nl>
* [files/profile.c] [relay32/kernel32.spec]
Added WritePrivateProfileStructA, GetPrivateProfileStructA,
GetPrivateProfileSectionNames16.
Tue Jun 23 01:34:43 1998 Pascal Cuoq <pcuoq@ens-lyon.fr>
* [ole/ole2nls.c]
GetStringTypeEx32A: Implemented CT_CTYPE2 and CT_CTYPE3 cases.
LCMapString32A: Map final '\0' for '\0'-terminated strings.
* [misc/shellord.c] [files/profile.c] [graphics/driver.c]
[loader/module.c] [msdos/int21.c] [windows/driver.c] [files/drive.c]
Changed lstrcmpi32A -> strcasecmp. Should be OK in these places.
Sat Jun 20 23:40:00 1998 Bertho Stultiens <bertho@akhphd.au.dk>
* [tools/wrc/]
Wrc version 1.0.2 (20-Jun-1998). Please revert to
the file tools/wrc/CHANGES for details.
Sat Jun 20 14:58:00 1998 Marcel Baur <mbaur@g26.ethz.ch>
* [ole/ole2nls.c] [ole/nls/*]
Added the first 57 nls files, most are not yet complete.
Wed Jun 17 11:16:54 1998 David Luyer <luyer@ucs.uwa.edu.au>
* [relay32/relay386.c] [if1632/relay.c]
Move debug_relay_(include|exclude)_list handling into
seperate function RELAY_ShowDebugmsgsRelay(). Include
checking of this for 16 bit calls (originally only
32-bit calls).
* [relay32/snoop.c] [misc/main.c]
Add debug_snoop_(include|exclude)_list as per the relay stuff.
Fix typo and add information on -debugmsg +/-relay=... in
help on -debugmsg. Refer to availability of snoop too.
Tue Jun 10 22:00:18 1998 Eric Kohl <ekohl@abo.rhein-zeitung.de>
* [controls/header.c][include/header.h][include/commctrl.h]
Added owner draw support.
* [windows/nonclient.c][windows/sysmetics.c]
Fixed menu bar height for Win95 look.
Split NC_AdjustRect95() into NC_AdjustRectOuter95() and
NC_AdjustRectInner95 to fix a menu bar bug.
Improved Win95 look.
* [controls/progress.c]
Improved drawing code. Borders will be drawn by non-client code.
* [controls/updown.c]
Changed memory allocation and fixed some bugs.
* [controls/toolbar.c]
Fixed TB_BUTTONSTRUCTSIZE bug in MFC programs.
Several improvements.
* [misc/shell.c]
Added stub for BrowseForFoldersA().
* [misc/shellord.c]
Added stub for SHELL32_147().
* [controls/comctl32undoc.c]
Minor changes.
* [documentation/common_controls]
New File: Documentation about development status, undocumented
features and functions of the common controls.
1998-06-28 20:40:26 +02:00
|
|
|
int type; /* GEOMETRIC || COSMETIC */
|
2007-07-19 04:40:24 +02:00
|
|
|
int ext; /* extended pen - 1, otherwise - 0 */
|
1996-08-24 20:26:35 +02:00
|
|
|
} X_PHYSPEN;
|
|
|
|
|
|
|
|
/* X physical brush */
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int style;
|
|
|
|
int fillStyle;
|
|
|
|
int pixel;
|
|
|
|
Pixmap pixmap;
|
|
|
|
} X_PHYSBRUSH;
|
|
|
|
|
2009-08-06 08:12:22 +02:00
|
|
|
enum x11drv_shm_mode
|
|
|
|
{
|
|
|
|
X11DRV_SHM_NONE = 0,
|
|
|
|
X11DRV_SHM_PIXMAP,
|
|
|
|
X11DRV_SHM_IMAGE,
|
|
|
|
};
|
|
|
|
|
2009-09-01 20:50:48 +02:00
|
|
|
typedef struct {
|
|
|
|
int shift;
|
|
|
|
int scale;
|
|
|
|
int max;
|
|
|
|
} ChannelShift;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
ChannelShift physicalRed, physicalBlue, physicalGreen;
|
|
|
|
ChannelShift logicalRed, logicalBlue, logicalGreen;
|
|
|
|
} ColorShifts;
|
|
|
|
|
2005-03-31 21:13:03 +02:00
|
|
|
/* X physical bitmap */
|
|
|
|
typedef struct
|
|
|
|
{
|
2005-04-12 12:17:55 +02:00
|
|
|
HBITMAP hbitmap;
|
2005-03-31 21:13:03 +02:00
|
|
|
Pixmap pixmap;
|
2005-09-26 13:04:12 +02:00
|
|
|
XID glxpixmap;
|
2005-04-11 20:54:30 +02:00
|
|
|
int pixmap_depth;
|
2009-09-01 21:48:29 +02:00
|
|
|
ColorShifts pixmap_color_shifts;
|
2005-04-13 13:23:24 +02:00
|
|
|
/* the following fields are only used for DIB section bitmaps */
|
|
|
|
int status, p_status; /* mapping status */
|
|
|
|
XImage *image; /* cached XImage */
|
|
|
|
int *colorMap; /* color map info */
|
|
|
|
int nColorMap;
|
2009-09-10 16:00:00 +02:00
|
|
|
BOOL trueColor;
|
2010-03-01 12:39:51 +01:00
|
|
|
BOOL topdown;
|
2005-04-13 13:23:24 +02:00
|
|
|
CRITICAL_SECTION lock; /* GDI access lock */
|
2009-08-06 08:12:22 +02:00
|
|
|
enum x11drv_shm_mode shm_mode;
|
2005-04-13 13:23:24 +02:00
|
|
|
#ifdef HAVE_LIBXXSHM
|
|
|
|
XShmSegmentInfo shminfo; /* shared memory segment info */
|
|
|
|
#endif
|
2005-04-20 18:24:13 +02:00
|
|
|
struct list entry; /* Entry in global DIB list */
|
2005-04-20 20:45:28 +02:00
|
|
|
BYTE *base; /* Base address */
|
2005-04-20 18:24:13 +02:00
|
|
|
SIZE_T size; /* Size in bytes */
|
2005-03-31 21:13:03 +02:00
|
|
|
} X_PHYSBITMAP;
|
|
|
|
|
1996-08-24 20:26:35 +02:00
|
|
|
/* X physical font */
|
1999-02-26 12:11:13 +01:00
|
|
|
typedef UINT X_PHYSFONT;
|
1996-08-24 20:26:35 +02:00
|
|
|
|
2009-10-08 12:10:59 +02:00
|
|
|
struct xrender_info;
|
2002-01-29 04:07:21 +01:00
|
|
|
|
1996-08-24 20:26:35 +02:00
|
|
|
/* X physical device */
|
|
|
|
typedef struct
|
|
|
|
{
|
2002-03-28 23:22:05 +01:00
|
|
|
HDC hdc;
|
1996-08-24 20:26:35 +02:00
|
|
|
GC gc; /* X Window GC */
|
|
|
|
Drawable drawable;
|
2006-12-07 16:43:59 +01:00
|
|
|
RECT dc_rect; /* DC rectangle relative to drawable */
|
|
|
|
RECT drawable_rect; /* Drawable rectangle relative to screen */
|
|
|
|
HRGN region; /* Device region (visible region & clip region) */
|
1996-08-24 20:26:35 +02:00
|
|
|
X_PHYSFONT font;
|
|
|
|
X_PHYSPEN pen;
|
|
|
|
X_PHYSBRUSH brush;
|
2005-04-12 13:59:48 +02:00
|
|
|
X_PHYSBITMAP *bitmap; /* currently selected bitmap for memory DCs */
|
2004-03-04 05:05:04 +01:00
|
|
|
BOOL has_gdi_font; /* is current font a GDI font? */
|
Release 980913
Fri Sep 11 13:14:35 1998 Andreas Mohr <100.30936@germany.net>
* [files/file.c] [include/file.h]
Fixed SetFilePointer to allow negative positions as in DOS.
* [graphics/ddraw.c]
Added some methods to IDirect3D.
* [ole/compobj.c] [if1632/compobj.spec]
Added/implemented CoCreateStandardMalloc16,
CoGetClassObject, CoCreateInstance,
LookupETask, SetETask, CoGetState16.
* [loader/task.c]
MakeProcInstance: return 0 if func == NULL.
* [*/*] [tools/winapi-check]
Added zillions of missing WINAPI's and __cdecl's.
(oops, several caused by myself)
Wrote script for automated checking.
* [if1632/compobj.spec]
Many stub names.
* [misc/ddeml.c] [ole/compobj.c]
Some stubs.
Tue Sep 9 21:36:48 1998 Anders Carlsson <anders.carlsson@linux.nu>
* [dlls/comctl32/Makefile.in] [dlls/comctl32/commctrl.c]
[dlls/comctl32/tab.c] [include/commctrl.h] [include/tab.h]
Added preliminary tab control support.
Sat Sep 5 16:27:20 1998 Huw D M Davies <daviesh@abacus.physics.ox.ac.uk>
* [graphics/psdrv/*]
More changes to the PostScript driver:
Implemented pens and solid brushes.
Colour/greyscale for fonts, pens and brushes.
To get coloured output you need to have *ColorDevice set to true
in your PPD, otherwise you'll get greyscale.
Landscape mode now works, as does non-A4 page sizes.
Encoding of fonts to ANSI is better, Symbol works again.
* [objects/dc.c] [include/gdi.h] [*/*]
Moved dc->w.{text,background}Pixel to X11DRV_PDEVICE where they
belong.
Sat Sep 5 05:12:09 1998 Ove Kaaven <ovek@arcticnet.no>
* [include/dosexe.h] [include/miscemu.h] [include/msdos.h]
[loader/dos/dosvm.c] [loader/dos/module.c] [msdos/dpmi.c]
[msdos/int2f.c] [msdos/interrupts.c]
Fixed portability. Adapted some code to make it easier to
integrate the DOS subsystem with the DPMI subsystem, made
the DPMI simulated real-mode interrupts be handled the V86
way. Added support for .COM files. Made int2f DPMI check
fail, to avoid pkunzip crashing in attempting to use DPMI.
Generally moved stuff around a little.
It is now technically possible to load several DOS programs
into the same memory space. Not tested, though.
Fri Sep 4 21:40:45 1998 Marcus Meissner <marcus@jet.franken.de>
* [if1632/kernel.spec]
Changed 500-53x stubnames accordingly to nt3.51 krnl386.exe.
* [win32/except.c]
Fixed one bad program behaviour, (deleting SEH while in
first walk). RtlUnwind is broken too I think (it should unwind
on success, not while walking the exception chain).
* [ole/ole2nls.c]
Get*DefaultLCID returns 0x400|id. expected by one application.
* [if1632/snoop.c]
Handle non-standard SP returns more graceful.
* [windows/class.c]
hinstances are mostly irrelevant for win32.
* [memory/string.c] [misc/registry.c]
lstrcmpi32W: use toupper for characters < 0x100. (speedup hack
for registry.c)
Some small speedup hacks for registry.c
Thu Sep 3 20:40:16 1998 Eric Kohl <ekohl@abo.rhein-zeitung.de>
* [Makefile.in][configure][configure.in][dlls/Makefile.in]
[dlls/comctl32/Makefile.in]
Created dlls/comctl32 and moved the common controls stuff to it.
* [misc/version.c]
Removed COMCTL32_DllGetVersion. The fixed function is part
of the common controls stuff.
* [dlls/comctl32/*.c][include/commctrl.h]
Added structure size tests.
* [dlls/comctl32/toolbar.c]
Fixed a bug in TOOLBAR_GetMaxWidth().
* [dlls/comctl32/animate.c][include/animate.h]
[dlls/comctl32/comboex.c][include/comboex.h]
[dlls/comctl32/hotkey.c][include/hotkey.h]
[dlls/comctl32/listview.c][include/listview.h]
[dlls/comctl32/commctrl.c][include/commctrl.h]
New files. Added Animation, ComboBoxEx, Hotkey and
Listview control dummies.
* [dlls/comctl32/tooltips.c]
Fixed a display bug and font selection.
* [dlls/comctl32/comctl32undoc.c][include/commctrl.h]
Added missing DPA functions. Fixed bugs and published the
function prototypes.
* [documentation/common_controls]
Updated.
Wed Sep 2 15:43:45 1998 Patrik Stridvall <ps@leissner.se>
* [AUTHORS] [include/authors.h]
Added myself as a Wine author.
* [memory/virtual.c] [objects/dc.c]
Fixed runtime errors for Solaris.
* [misc/ddeml.c] [objects/gdiobj.c]
Minor fixes.
* [win32/device.c]
Added stubs for IFSMgr VxDCall and
a partial implementation of IFSMgr DeviceIo.
* [relay32/Makefile.in] [relay32/builtin32.c] [relay32/imm32.spec]
[relay32/msnet32.spec] [relay32/oledlg.spec]
Added new spec files for IMM32.DLL, MSNET32.DLL, OLEDLG.DLL.
* [misc/Makefile.in] [misc/imm.c] [include/imm.h]
Added news files for implementation of IMM32.DLL.
All functions return 0 as is correct for all Western Languages.
* [ole/Makefile.in] [ole/oledlg.c] [include/oledlg.h]
Added new files for implementation of OLEDLG.DLL.
Added stubs with FIXME:s for all functions.
Wed Sep 2 10:50:00 1998 Juergen Schmied <juergen.schmied@metronet.de>
* [dlls/shell32/contmenu.c][dlls/shell32/shellole.c]
[dlls/shell32/shlfolder.c][dlls/shell32/shlview.c]
[documentation/shell32][include/shell.h]
Clean up, bugfixes.
* [dlls/shell32/enumidlist.c]
Fileattributes implemented.
* [dlls/shell32/pidl.c]
Class pidlmgr splited into functions, structures changed,
some functions rewritten.
* [dlls/shell32/shell32_main.c]
Small changes and bugfixes SHGetFileInfoA, SHGetSpecialFolderLocation.
* [dlls/shell32/shellord.c][relay32/shell32.spec]
Parameter documented, implemented SHCloneSpecialIDList.
Stub improved ShellExecuteEx32A.
New stubs SHFind_InitMenuPopup, FileMenu_InitMenuPopup,
FileMenu_Create, FileMenu_TrackPopupMenuEx, SHWinHelp,
SHRunConrolPanel, DAD_ShowDragImage, FileMenu_Destroy,
SHGetDataFromIDListA, SHFileOperationA.
* [include/winnls.h][include/ole2nls.c]
TIME_FORCE24HOURFORMAT, TIME_NOTIMEMARKER implemented
in OLE_GetFormatA, GetTimeFormat32A.
* [win32/code_page.c]
WideCharToMultiByte: parameter checking and returning of strlen
implemented.
* [windows/keyboard.c][windows/defwnd.c]
Debug messages added.
* [windows/win.c]
WIN_SetWindowLong GWL_STYLE and GWL_EXSTYLE implemented.
* [controls/menu.c]
Missing line added.
* [include/winerror.h]
Macros for SUCCEEDED and FAILED added.
Mon Aug 31 00:55:31 1998 Ulrich Weigand <weigand@informatik.uni-erlangen.de>
* [loader/module.c]
Bugfix: LoadModule16 should *not* call LoadModule32.
* [files/dos_fs.c]
Bugfix: don't crash if given directory doesn't exist.
Sat Aug 29 15:00:49 1998 Turchanov Sergey <turchanov@usa.net>
* [include/mmsystem.h][multimedia/mmsystem.c][relay32/winmm.spec]
Almost completed implementation of [snd]PlaySound (except
flags SND_ALIAS_ID and SND_APPLICATION).
* [if1632/user.spec][windows/winpos.c]
Added SetWindowRgn16 stub.
Sat Aug 29 02:53:31 1998 Alexander Lukyanov <lav@long.yar.ru>
* [files/drive.c]
GetDriveType32A: return DRIVE_DOESNOTEXIST in case of non
existent drive.
* [msdos/int21.c]
INT21_FindFirstFCB: check drive validity to prevent oops.
* [win32/file.c]
CreateFile32A: duplicate STD_{INPUT,OUTPUT}_HANDLE.
* [files/dos_fs.c]
Make DOSFS_OpenDir treat "" as "/".
DOSFS_OpenDevice: duplicate STD_{INPUT,OUTPUT}_HANDLE.
* [windows/dialog.c]
GetNextDlgTabItem32: use last/first item instead of first/last
when hwndCtrl==0. This fixes initial focus.
Sat Aug 29 02:46:32 1998 Adrian Harvey <adrian@select.com.au>
* [include/process.h] [include/process.c]
Renamed PROCESS_SELF to CURRENT_PROCESS_PSEUDOHANDLE in line
with thread constant, and Win32 documentation (which calls it
a pseudohandle.) Made GetCurrentProcess actually use this
constant instead of the value.
* [include/process.h] [include/thread.h] [scheduler/thread.c]
[scheduler/process.c] [scheduler/handle.c]
Modify HANDLE_GetObjPtr to understand about
CURRENT_THREAD_PSEUDOHANDLE and CURRENT_PROCESS_PSEUDOHANDLE.
This allows DuplicateHandle to do the correct thing with these
handles. Removed now duplicate functionality from THREAD_GetPtr
and PROCESS_GetPtr.
* [loader/ne/segment.c]
Fixed two places where HFILE32s were being created and passed to
16-bit code. This should unbreak NE self-loading code.
Added two casts to remove compile time warnings.
Fri Aug 28 21:04:13 1998 Joseph Pranevich <knight@baltimore.wwaves.com>
* [msdos/dosmem.c] [msdos/int2f.c]
Added beginnings of DOS error table.
* [msdos/int1a.c]
Stub for subfunction 0xb0.
* [msdos/int10.c] [loader/dos/dosvm.c]
INT 10 support completely rewritten and lots of debugging
added. Now, DOS apps that use INT 10 to write to the screen will
work. (Beyond Zork does, at least. Somewhat.)
* [include/miscemu.h] [msdos/dosmem.c] [msdos/int21.c]
Another shot at getting MS's generic error message facility
right.
* [msdos/int21.c]
Command.Com wanted to set its own PSP address. I let it.
Wed Aug 26 12:26:20 1998 Matthew Toseland <Matthew.Toseland@btinternet.com>
* [include/file.h] [misc/lzexpand.c]
Fixed LZCopy16 by fixing HFILE16/HFILE32 convertor macros so don't
convert lzw handles.
Tue Aug 25 22:22:55 1998 Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
* [misc/registry.c]
In RegEnumvalue, ivalue == 0 is a legal request and should
return the first entry.
* [msdos/int21.c]
Add handling for Int21-48/49 in Win16. Makes blinker demo work.
* [windows/winproc.c]
Add Msg32A<->Msg32W translation for LB_ADDSTRING.
Tue Aug 25 21:03:31 1998 Kristian Nielsen <kristian.nielsen@risoe.dk>
* [windows/win.c]
Fix for SetParent(): MS Windows 3.11 does not clear the WS_CHILD
flag when a child window is reparented to the desktop window.
Mon Aug 24 20:55:22 1998 Berend Reitsma <berend at asset-control dot com>
* [controls/menu.c]
Menus created with SetMenuItemInfo and InsertMenuItem should
work now.
Sun Aug 23 23:23:23 1998 Alex Korobka <korobka@ams.sunysb.edu>
* [controls/combo.c]
Added CB_GETITEMHEIGHT.
* [windows/winpos.c]
WM_NCHITTEST, SWP_FRAMECHANGED bugfixes.
Sat Aug 22 21:15:29 1998 Alex Priem <alexp@sci.kun.nl>
* [files/profile.c] [include/windows.h]
Added GetPrivateProfileSectionNames[AW],GetPrivateProfileSectionW,
GetPrivateProfileStructW, GetProfileSectionW,
WriteProfileSection[AW], WritePrivateProfileStructW.
1998-09-13 18:32:00 +02:00
|
|
|
int backgroundPixel;
|
|
|
|
int textPixel;
|
2004-01-18 23:20:17 +01:00
|
|
|
int depth; /* bit depth of the DC */
|
2009-09-01 21:48:29 +02:00
|
|
|
ColorShifts *color_shifts; /* color shifts of the DC */
|
2001-06-11 22:24:57 +02:00
|
|
|
int exposures; /* count of graphics exposures operations */
|
2000-05-12 22:18:14 +02:00
|
|
|
int current_pf;
|
2007-09-25 19:20:58 +02:00
|
|
|
Drawable gl_drawable;
|
2007-09-26 17:17:13 +02:00
|
|
|
Pixmap pixmap; /* Pixmap for a GLXPixmap gl_drawable */
|
2008-05-28 17:52:06 +02:00
|
|
|
int gl_copy;
|
2009-10-08 12:10:59 +02:00
|
|
|
struct xrender_info *xrender;
|
1996-08-24 20:26:35 +02:00
|
|
|
} X11DRV_PDEVICE;
|
|
|
|
|
2010-04-14 20:27:17 +02:00
|
|
|
struct bitblt_coords
|
|
|
|
{
|
|
|
|
int x; /* original position and width */
|
|
|
|
int y;
|
|
|
|
int width;
|
|
|
|
int height;
|
|
|
|
RECT visrect; /* rectangle clipped to the visible part */
|
2010-09-02 10:51:31 +02:00
|
|
|
DWORD layout; /* DC layout */
|
2010-04-14 20:27:17 +02:00
|
|
|
};
|
|
|
|
|
1998-10-28 10:53:53 +01:00
|
|
|
|
2005-04-12 13:59:48 +02:00
|
|
|
extern X_PHYSBITMAP BITMAP_stock_phys_bitmap; /* phys bitmap for the default stock bitmap */
|
1998-10-28 10:53:53 +01:00
|
|
|
|
2009-07-09 21:51:05 +02:00
|
|
|
/* Retrieve the GC used for bitmap operations */
|
|
|
|
extern GC get_bitmap_gc(int depth);
|
1998-10-28 10:53:53 +01:00
|
|
|
|
1996-08-24 20:26:35 +02:00
|
|
|
/* Wine driver X11 functions */
|
|
|
|
|
2008-12-16 14:18:49 +01:00
|
|
|
extern BOOL CDECL X11DRV_AlphaBlend( X11DRV_PDEVICE *physDevDst, INT xDst, INT yDst,
|
|
|
|
INT widthDst, INT heightDst,
|
|
|
|
X11DRV_PDEVICE *physDevSrc, INT xSrc, INT ySrc,
|
|
|
|
INT widthSrc, INT heightSrc, BLENDFUNCTION blendfn );
|
|
|
|
extern BOOL CDECL X11DRV_EnumDeviceFonts( X11DRV_PDEVICE *physDev, LPLOGFONTW plf,
|
|
|
|
FONTENUMPROCW dfeproc, LPARAM lp );
|
|
|
|
extern LONG CDECL X11DRV_GetBitmapBits( HBITMAP hbitmap, void *bits, LONG count );
|
|
|
|
extern BOOL CDECL X11DRV_GetCharWidth( X11DRV_PDEVICE *physDev, UINT firstChar,
|
|
|
|
UINT lastChar, LPINT buffer );
|
|
|
|
extern BOOL CDECL X11DRV_GetTextExtentExPoint( X11DRV_PDEVICE *physDev, LPCWSTR str, INT count,
|
|
|
|
INT maxExt, LPINT lpnFit, LPINT alpDx, LPSIZE size );
|
|
|
|
extern BOOL CDECL X11DRV_GetTextMetrics(X11DRV_PDEVICE *physDev, TEXTMETRICW *metrics);
|
|
|
|
extern BOOL CDECL X11DRV_StretchBlt( X11DRV_PDEVICE *physDevDst, INT xDst, INT yDst,
|
|
|
|
INT widthDst, INT heightDst,
|
|
|
|
X11DRV_PDEVICE *physDevSrc, INT xSrc, INT ySrc,
|
|
|
|
INT widthSrc, INT heightSrc, DWORD rop );
|
|
|
|
extern BOOL CDECL X11DRV_LineTo( X11DRV_PDEVICE *physDev, INT x, INT y);
|
|
|
|
extern BOOL CDECL X11DRV_Arc( X11DRV_PDEVICE *physDev, INT left, INT top, INT right,
|
|
|
|
INT bottom, INT xstart, INT ystart, INT xend, INT yend );
|
|
|
|
extern BOOL CDECL X11DRV_Pie( X11DRV_PDEVICE *physDev, INT left, INT top, INT right,
|
|
|
|
INT bottom, INT xstart, INT ystart, INT xend,
|
|
|
|
INT yend );
|
|
|
|
extern BOOL CDECL X11DRV_Chord( X11DRV_PDEVICE *physDev, INT left, INT top,
|
|
|
|
INT right, INT bottom, INT xstart,
|
|
|
|
INT ystart, INT xend, INT yend );
|
|
|
|
extern BOOL CDECL X11DRV_Ellipse( X11DRV_PDEVICE *physDev, INT left, INT top,
|
|
|
|
INT right, INT bottom );
|
|
|
|
extern BOOL CDECL X11DRV_Rectangle(X11DRV_PDEVICE *physDev, INT left, INT top,
|
|
|
|
INT right, INT bottom);
|
|
|
|
extern BOOL CDECL X11DRV_RoundRect( X11DRV_PDEVICE *physDev, INT left, INT top,
|
|
|
|
INT right, INT bottom, INT ell_width,
|
|
|
|
INT ell_height );
|
|
|
|
extern COLORREF CDECL X11DRV_SetPixel( X11DRV_PDEVICE *physDev, INT x, INT y, COLORREF color );
|
|
|
|
extern COLORREF CDECL X11DRV_GetPixel( X11DRV_PDEVICE *physDev, INT x, INT y);
|
|
|
|
extern BOOL CDECL X11DRV_PaintRgn( X11DRV_PDEVICE *physDev, HRGN hrgn );
|
|
|
|
extern BOOL CDECL X11DRV_Polyline( X11DRV_PDEVICE *physDev,const POINT* pt,INT count);
|
|
|
|
extern BOOL CDECL X11DRV_Polygon( X11DRV_PDEVICE *physDev, const POINT* pt, INT count );
|
|
|
|
extern BOOL CDECL X11DRV_PolyPolygon( X11DRV_PDEVICE *physDev, const POINT* pt,
|
|
|
|
const INT* counts, UINT polygons);
|
|
|
|
extern BOOL CDECL X11DRV_PolyPolyline( X11DRV_PDEVICE *physDev, const POINT* pt,
|
|
|
|
const DWORD* counts, DWORD polylines);
|
|
|
|
|
|
|
|
extern COLORREF CDECL X11DRV_SetBkColor( X11DRV_PDEVICE *physDev, COLORREF color );
|
|
|
|
extern COLORREF CDECL X11DRV_SetTextColor( X11DRV_PDEVICE *physDev, COLORREF color );
|
|
|
|
extern BOOL CDECL X11DRV_ExtFloodFill( X11DRV_PDEVICE *physDev, INT x, INT y,
|
|
|
|
COLORREF color, UINT fillType );
|
|
|
|
extern BOOL CDECL X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y,
|
|
|
|
UINT flags, const RECT *lprect,
|
|
|
|
LPCWSTR str, UINT count, const INT *lpDx );
|
|
|
|
extern LONG CDECL X11DRV_SetBitmapBits( HBITMAP hbitmap, const void *bits, LONG count );
|
|
|
|
extern void CDECL X11DRV_SetDeviceClipping( X11DRV_PDEVICE *physDev, HRGN vis_rgn, HRGN clip_rgn );
|
|
|
|
extern INT CDECL X11DRV_SetDIBitsToDevice( X11DRV_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 );
|
|
|
|
extern BOOL CDECL X11DRV_GetDeviceGammaRamp( X11DRV_PDEVICE *physDev, LPVOID ramp );
|
|
|
|
extern BOOL CDECL X11DRV_SetDeviceGammaRamp( X11DRV_PDEVICE *physDev, LPVOID ramp );
|
1998-12-02 11:29:04 +01:00
|
|
|
|
2000-05-12 22:18:14 +02:00
|
|
|
/* OpenGL / X11 driver functions */
|
2008-12-16 14:18:49 +01:00
|
|
|
extern int CDECL X11DRV_ChoosePixelFormat(X11DRV_PDEVICE *physDev,
|
2002-04-09 00:43:58 +02:00
|
|
|
const PIXELFORMATDESCRIPTOR *pppfd);
|
2008-12-16 14:18:49 +01:00
|
|
|
extern int CDECL X11DRV_DescribePixelFormat(X11DRV_PDEVICE *physDev,
|
2002-04-09 00:43:58 +02:00
|
|
|
int iPixelFormat, UINT nBytes,
|
|
|
|
PIXELFORMATDESCRIPTOR *ppfd);
|
2008-12-16 14:18:49 +01:00
|
|
|
extern int CDECL X11DRV_GetPixelFormat(X11DRV_PDEVICE *physDev);
|
|
|
|
extern BOOL CDECL X11DRV_SwapBuffers(X11DRV_PDEVICE *physDev);
|
2009-05-26 00:52:05 +02:00
|
|
|
extern void X11DRV_OpenGL_Cleanup(void);
|
2000-05-12 22:18:14 +02:00
|
|
|
|
1997-02-02 20:01:52 +01:00
|
|
|
/* X11 driver internal functions */
|
|
|
|
|
2007-03-22 20:06:19 +01:00
|
|
|
extern void X11DRV_Xcursor_Init(void);
|
2004-07-13 05:49:52 +02:00
|
|
|
extern void X11DRV_BITMAP_Init(void);
|
2004-08-26 20:24:49 +02:00
|
|
|
extern void X11DRV_FONT_Init( int log_pixels_x, int log_pixels_y );
|
1997-02-02 20:01:52 +01:00
|
|
|
|
2008-05-02 13:43:14 +02:00
|
|
|
extern int bitmap_info_size( const BITMAPINFO * info, WORD coloruse );
|
2001-05-11 02:17:47 +02:00
|
|
|
extern XImage *X11DRV_DIB_CreateXImage( int width, int height, int depth );
|
2008-08-29 13:34:11 +02:00
|
|
|
extern void X11DRV_DIB_DestroyXImage( XImage *image );
|
2004-01-14 00:31:46 +01:00
|
|
|
extern HGLOBAL X11DRV_DIB_CreateDIBFromBitmap(HDC hdc, HBITMAP hBmp);
|
2005-03-28 12:06:06 +02:00
|
|
|
extern HGLOBAL X11DRV_DIB_CreateDIBFromPixmap(Pixmap pixmap, HDC hdc);
|
1999-09-20 17:42:47 +02:00
|
|
|
extern Pixmap X11DRV_DIB_CreatePixmapFromDIB( HGLOBAL hPackedDIB, HDC hdc );
|
2005-03-31 21:13:03 +02:00
|
|
|
extern X_PHYSBITMAP *X11DRV_get_phys_bitmap( HBITMAP hbitmap );
|
2005-04-11 20:54:30 +02:00
|
|
|
extern X_PHYSBITMAP *X11DRV_init_phys_bitmap( HBITMAP hbitmap );
|
2005-03-27 20:30:51 +02:00
|
|
|
extern Pixmap X11DRV_get_pixmap( HBITMAP hbitmap );
|
1998-10-28 10:53:53 +01:00
|
|
|
|
2002-05-26 00:16:12 +02:00
|
|
|
extern RGNDATA *X11DRV_GetRegionData( HRGN hrgn, HDC hdc_lptodp );
|
2001-06-04 23:55:17 +02:00
|
|
|
|
2002-03-28 23:22:05 +01:00
|
|
|
extern BOOL X11DRV_SetupGCForPatBlt( X11DRV_PDEVICE *physDev, GC gc, BOOL fMapColors );
|
|
|
|
extern BOOL X11DRV_SetupGCForBrush( X11DRV_PDEVICE *physDev );
|
|
|
|
extern BOOL X11DRV_SetupGCForText( X11DRV_PDEVICE *physDev );
|
2004-01-15 07:19:35 +01:00
|
|
|
extern INT X11DRV_XWStoDS( X11DRV_PDEVICE *physDev, INT width );
|
|
|
|
extern INT X11DRV_YWStoDS( X11DRV_PDEVICE *physDev, INT height );
|
1998-11-22 18:45:06 +01:00
|
|
|
|
|
|
|
extern const int X11DRV_XROPfunction[];
|
|
|
|
|
Release 980601
Sun May 31 13:40:13 1998 Alexandre Julliard <julliard@lrc.epfl.ch>
* [if1632/signal.c]
Added display of exception name.
* [loader/task.c]
Yet another attempt at fixing SwitchStackTo/SwitchStackBack.
* [memory/selector.c] [relay32/builtin32.c] [tools/build.c]
[win32/kernel32.c]
Generate an assembly stub for Win32 register functions to make
their names available at link time.
* [programs/*/Makefile.in]
Added hacks to support old resource compiler.
Fri May 29 16:27:14 1998 Marcus Meissner <marcus@jet.franken.de>
* [tools/testrun]
Merge of my testscripts at home into one single perl program
(tested with perl5). Works only on Linux due to 'ps' and 'ipcs'
magic.
* [controls/menu.c]
Added some DefaultMenuItem stubs.
* [debugger/stabs.c]
Fixed stabs loading, now supports (int,int) typeinfo format used
by gcc-2.8 and egcs-1. If it still crashes, please mail me.
* [if1632/][relay32/]
Added msvideo.dll (stubs only)
Replaced some ptr by str for stringcases
Added some new stubs (VxDCall, FindCloseNotif....)
* [misc/network.c]
Some argument fixes.
* [misc/registry.c][misc/cpu.c]
Registry initialization partially rewritten and enhanced.
* [scheduler/*.c]
Some additions so we don't do kill(0,SIGUSR1) (kill processgroup
instead of targeted thread)
Added SetThreadContext.
Thu May 28 23:59:59 1998 Bertho Stultiens <bertho@akhphd.au.dk>
* [tools/wrc/*]
New resource compiler version 1.0.0 (28-May-1998)
* [Make.rules.in] [Makefile.in]
Changed and added rc rules to point to tools/wrc/wrc.
* [configure.in] [include/config.h.in]
Added check for function 'stricmp'.
* [include/resource.h]
Commented out the old resource structure to catch references.
It also includes wrc_rsc.h.
* [include/wrc_rsc.h]
New file. Definitions for the resources generated with wrc.
* [include/windows.h]
Added #ifdef RC_INVOKED to exclude stdarg.h.
Added SS_NOTIFY flag.
* [include/winnls.h]
Added SUBLANG_* definitions and corrected some defaults.
* [loader/libres.c]
Changed the sysres load functions to support wrc generated
resources.
* [resource/sysres_*.rc]
Added #include <windows.h>
* [resource/sysres.c]
Changed declarations to match wrc's output
* [resource/Makefile.in]
Changed rules to work with wrc.
* [tools/makedep.c]
Changed generation of .rc file dependencies to .s target.
Thu May 28 22:28:39 1998 Eric Kohl <ekohl@abo.rhein-zeitung.de>
* [files/file.c][include/windows.c][relay32/kernel32.spec]
Implemented GetFileAttributesEx32A/W.
* [misc/imagelist.h][include/commctrl.h][relay32/comctl32.spec]
Added ImageList_Read and ImageList_Write stubs.
Added ImageList_AddIcon function.
Added ImageList_LoadImage. It is the same as ImageList_LoadImage32A.
* [controls/header.c]
Fixed bitmap drawing bug.
Added full bitmap support.
* [include/commctrl.h]
Added missing header macros.
* [controls/toolbar.c][include/toolbar.h][include/commctrl.h]
[controls/commctrl.c] [relay32/comctl32.spec]
First implementation of toolbar control.
Implemented CreateToolbar, CreateToolbarEx and CreateMappedBitmap.
* [controls/progress.c][controls/status.c]
Some code cleanup.
* [controls/commctrl.c][include/commctrl.h][relay32/comctl32.spec]
Removed CreateStatusWindow16 and DrawStatusText16.
CreateStatusWindow is the same as CreateStatusWindow32A.
DrawStatusText is the same as DrawStatusText32A.
Thu May 28 16:01:28 1998 Matthew J. Francis <asbel@dial.pipex.com>
* [objects/bitmap.c] [objects/bitmap.h] [objects/oembitmap.c]
[objects/dc.c] [graphics/x11drv/bitblt.c]
Added partial implementation of CreateDIBSection, with great thanks
to Ulrich Weigand <weigand@informatik.uni-erlangen.de> for
contributing the bulk of the patch.
Wed May 27 19:04:31 1998 Ulrich Weigand <weigand@informatik.uni-erlangen.de>
* [win32/kernel32.c] [if1632/thunk.c] [include/flatthunk.h]
ThunkConnect16 and related functions moved to emulator.
* [loader/ne/segment.c]
Call DllEntryPoint with correct arguments.
* [relay32/builtin32.c]
Bugfix: Relay debugging did not work for multiple processes.
* [controls/menu.c]
Bugfix: dwItemData was not set for MF_OWNERDRAW menus.
* [if1632/relay.c] [relay32/relay386.c]
Relay messages converted to use DPRINTF.
* [controls/desktop.c] [relay32/user32.spec]
Implemented PaintDesktop.
* [files/profile.c] [if1632/kernel.spec] [misc/network.c]
[misc/printdrv.c] [relay32/winspool.spec]
[win32/ordinals.c] [relay32/kernel32.spec]
Some stubs added.
* [relay32/mpr.spec]
All ordinals were off by one.
Tue May 26 13:32:57 1998 Bill Hawes <whawes@star.net>
* [misc/lstr.c] [include/casemap.h] [tools/unimap.pl]
Added Unicode case conversion routines towupper/towlower,
with mapping tables casemap.h created by tools/unimap.pl.
* [misc/ntdll.c] [include/winnls.h] [relay32/ntdll.spec]
[relay32/advapi.spec]
Minimal implementation of IsTextUnicode, just enough to get
NT4 notepad to open ascii/unicode files.
* [Make.rules.in] [resources/sysres_En.rc]
Added include file dlgs.h for building resource files, so that
resources can refer to defined values (e.g. pshHelp).
* [misc/crtdll.c] [relay32/crtdll.spec]
Use towupper/towlower for 32W case conversions.
* [memory/string.c]
Use towupper for 32W case conversions.
* [ole/ole2nls.c]
Use towupper for 32W case conversions; fix mem leak; minor cleanup
* [controls/edit.c]
Added soft break flag to edit state. Print unknown action values
for WM_VSCROLL (action 190 occurs when running NT4 notepad.)
Mon May 25 22:42:40 1998 Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
* [files/file.c]
Care for a pathological case in SetFilePointer.
* [graphics/x11drv/xfont.c]
Handle longer Font names in LFD_ComposeLFD and try to catch errors.
* [loader/pe_image.c]
Unload Dummymodule when PE_LoadLibraryEx32A fails with
PE_LoadImage (makes Encarta 98 installer proceed).
* [misc/registry.c]
Move a check for a special case in RegCreateKeyEx32W after the
check for existence.
Tue May 25 20:18:26 1998 Matthew Becker <mbecker@glasscity.net>
* [misc/ntdll.c]
Added some stubs, just guessing at the size of their param lists.
* [misc/registry.c]
Added stubs for RegUnLoadKey, RegSetKeySecurity, RegSaveKey,
RegRestoreKey, and RegReplaceKey
* [programs/regtest/regtest.c]
Updated registry testing program.
Sun May 24 18:11:40 1998 Alex Priem <alexp@sci.kun.nl>
* [file/profile.c]
Added flag 'return_values' to PROFILE_GetSection.
Sun May 24 13:41:10 1998 James Juran <jrj120@psu.edu>
* [misc/shell.c] [files/directory.c]
Documentation/debugging info additions.
* [*/*.c] [include/*.h]
Moved many extern function definitions to appropriate header files.
Cleaned up a few compile warnings.
If #include "debug.h" is present, removed #include <stdio.h>.
debug.h includes stdio.h, so it is not necessary to include both.
* [graphics/*.c] [if1632/signal.c] [ipc/*.c] [scheduler/*.c]
[win32/*.c] [windows/*.c]
Final patch to convert fprintf statements to new debugging interface.
Some fprintfs are still left, especially in the debugger/ directory.
However, IMHO, it's not worth the effort to change the rest.
Fri May 22 21:58:35 1998 Morten Welinder <terra@diku.dk>
* [windows/keyboard.c]
Correct handling of keys "`-=[]\;',./".
Fri May 22 12:06:00 1998 Per Lindstrm <pelinstr@algonet.se>
* [include/windows.h] [relay32/kernel32.spec] [win32/console.c]
Added stub for ReadConsoleOutputCharacter32A.
Thu May 21 16:45:48 1998 Pascal Cuoq <pcuoq@ens-lyon.fr>
* [ole/ole2nls.c]
Began better implementation of LCMapString32A.
Not very well tested yet, and still need improvements.
* [controls/scroll.c]
Documented functions.
Wed May 20 21:37:56 1998 Peter Hunnisett <hunnise@nortel.ca>
* [include/windows.h][misc/main.c]
Change SystemParameterInfo to support SPI_GETHIGHCONTRAST. Also
include some missing SPI_ definitions.
* [include/dsound.h][multimedia/dsound.c][relay32/dplayx.spec]
Added stubs for DirectPlayLobbyCreate[AW]. Not sure if these
should go into a new files dplayx.c? Anyone care?
* [include/winnls.h]
Added two missing flags for the CompareString32 functions.
1998-06-01 12:44:35 +02:00
|
|
|
extern void _XInitImageFuncPtrs(XImage *);
|
|
|
|
|
2002-11-14 23:31:34 +01:00
|
|
|
extern int client_side_with_core;
|
|
|
|
extern int client_side_with_render;
|
|
|
|
extern int client_side_antialias_with_core;
|
|
|
|
extern int client_side_antialias_with_render;
|
|
|
|
extern int using_client_side_fonts;
|
2002-01-29 04:07:21 +01:00
|
|
|
extern void X11DRV_XRender_Init(void);
|
|
|
|
extern void X11DRV_XRender_Finalize(void);
|
2002-03-28 23:22:05 +01:00
|
|
|
extern BOOL X11DRV_XRender_SelectFont(X11DRV_PDEVICE*, HFONT);
|
2009-10-14 12:33:40 +02:00
|
|
|
extern void X11DRV_XRender_SetDeviceClipping(X11DRV_PDEVICE *physDev, const RGNDATA *data);
|
2002-03-28 23:22:05 +01:00
|
|
|
extern void X11DRV_XRender_DeleteDC(X11DRV_PDEVICE*);
|
2009-09-10 10:41:51 +02:00
|
|
|
extern void X11DRV_XRender_CopyBrush(X11DRV_PDEVICE *physDev, X_PHYSBITMAP *physBitmap, int width, int height);
|
2002-03-28 23:22:05 +01:00
|
|
|
extern BOOL X11DRV_XRender_ExtTextOut(X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags,
|
2002-01-29 04:07:21 +01:00
|
|
|
const RECT *lprect, LPCWSTR wstr,
|
2005-08-23 11:38:58 +02:00
|
|
|
UINT count, const INT *lpDx);
|
2010-04-06 19:07:25 +02:00
|
|
|
extern BOOL X11DRV_XRender_SetPhysBitmapDepth(X_PHYSBITMAP *physBitmap, int bits_pixel, const DIBSECTION *dib);
|
2009-07-09 21:20:12 +02:00
|
|
|
BOOL X11DRV_XRender_GetSrcAreaStretch(X11DRV_PDEVICE *physDevSrc, X11DRV_PDEVICE *physDevDst,
|
|
|
|
Pixmap pixmap, GC gc,
|
2010-04-14 20:27:17 +02:00
|
|
|
const struct bitblt_coords *src, const struct bitblt_coords *dst );
|
2002-03-28 23:22:05 +01:00
|
|
|
extern void X11DRV_XRender_UpdateDrawable(X11DRV_PDEVICE *physDev);
|
2010-04-14 20:41:18 +02:00
|
|
|
extern BOOL XRender_AlphaBlend( X11DRV_PDEVICE *devDst, X11DRV_PDEVICE *devSrc,
|
|
|
|
struct bitblt_coords *dst, struct bitblt_coords *src,
|
|
|
|
BLENDFUNCTION blendfn );
|
2002-01-29 04:07:21 +01:00
|
|
|
|
2006-06-23 13:13:55 +02:00
|
|
|
extern Drawable get_glxdrawable(X11DRV_PDEVICE *physDev);
|
2007-09-26 10:03:39 +02:00
|
|
|
extern BOOL destroy_glxpixmap(Display *display, XID glxpixmap);
|
2002-11-15 05:16:38 +01:00
|
|
|
|
2008-04-02 17:13:59 +02:00
|
|
|
/* IME support */
|
2008-05-01 10:56:34 +02:00
|
|
|
extern void IME_UnregisterClasses(void);
|
2010-02-18 15:06:31 +01:00
|
|
|
extern void IME_SetOpenStatus(BOOL fOpen, BOOL force);
|
2009-10-07 12:24:53 +02:00
|
|
|
extern INT IME_GetCursorPos(void);
|
2008-04-18 02:48:31 +02:00
|
|
|
extern void IME_SetCursorPos(DWORD pos);
|
2008-04-02 17:13:59 +02:00
|
|
|
extern void IME_UpdateAssociation(HWND focus);
|
|
|
|
extern BOOL IME_SetCompositionString(DWORD dwIndex, LPCVOID lpComp,
|
|
|
|
DWORD dwCompLen, LPCVOID lpRead,
|
|
|
|
DWORD dwReadLen);
|
2010-02-16 10:51:43 +01:00
|
|
|
extern void IME_SetResultString(LPWSTR lpResult, DWORD dwResultlen);
|
2004-01-21 03:22:26 +01:00
|
|
|
|
2005-03-01 12:52:02 +01:00
|
|
|
extern void X11DRV_XDND_EnterEvent( HWND hWnd, XClientMessageEvent *event );
|
|
|
|
extern void X11DRV_XDND_PositionEvent( HWND hWnd, XClientMessageEvent *event );
|
|
|
|
extern void X11DRV_XDND_DropEvent( HWND hWnd, XClientMessageEvent *event );
|
|
|
|
extern void X11DRV_XDND_LeaveEvent( HWND hWnd, XClientMessageEvent *event );
|
2003-11-20 23:09:51 +01:00
|
|
|
|
1998-11-06 12:03:00 +01:00
|
|
|
/* exported dib functions for now */
|
|
|
|
|
2004-01-14 00:31:46 +01:00
|
|
|
/* DIB Section sync state */
|
2005-04-13 13:23:24 +02:00
|
|
|
enum { DIB_Status_None, DIB_Status_InSync, DIB_Status_GdiMod, DIB_Status_AppMod };
|
2004-01-14 00:31:46 +01:00
|
|
|
|
2005-03-09 17:45:23 +01:00
|
|
|
typedef struct {
|
|
|
|
void (*Convert_5x5_asis)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_555_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_555_to_565_asis)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_555_to_565_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_555_to_888_asis)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_555_to_888_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_555_to_0888_asis)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_555_to_0888_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_5x5_to_any0888)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
WORD rsrc, WORD gsrc, WORD bsrc,
|
|
|
|
void* dstbits, int dstlinebytes,
|
|
|
|
DWORD rdst, DWORD gdst, DWORD bdst);
|
|
|
|
void (*Convert_565_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_565_to_555_asis)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_565_to_555_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_565_to_888_asis)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_565_to_888_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_565_to_0888_asis)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_565_to_0888_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_888_asis)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_888_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_888_to_555_asis)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_888_to_555_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_888_to_565_asis)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_888_to_565_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_888_to_0888_asis)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_888_to_0888_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_rgb888_to_any0888)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes,
|
|
|
|
DWORD rdst, DWORD gdst, DWORD bdst);
|
|
|
|
void (*Convert_bgr888_to_any0888)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes,
|
|
|
|
DWORD rdst, DWORD gdst, DWORD bdst);
|
|
|
|
void (*Convert_0888_asis)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_0888_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_0888_any)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
DWORD rsrc, DWORD gsrc, DWORD bsrc,
|
|
|
|
void* dstbits, int dstlinebytes,
|
|
|
|
DWORD rdst, DWORD gdst, DWORD bdst);
|
|
|
|
void (*Convert_0888_to_555_asis)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_0888_to_555_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_0888_to_565_asis)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_0888_to_565_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_any0888_to_5x5)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
DWORD rsrc, DWORD gsrc, DWORD bsrc,
|
|
|
|
void* dstbits, int dstlinebytes,
|
|
|
|
WORD rdst, WORD gdst, WORD bdst);
|
|
|
|
void (*Convert_0888_to_888_asis)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_0888_to_888_reverse)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_any0888_to_rgb888)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
DWORD rsrc, DWORD gsrc, DWORD bsrc,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
void (*Convert_any0888_to_bgr888)(int width, int height,
|
|
|
|
const void* srcbits, int srclinebytes,
|
|
|
|
DWORD rsrc, DWORD gsrc, DWORD bsrc,
|
|
|
|
void* dstbits, int dstlinebytes);
|
|
|
|
} dib_conversions;
|
|
|
|
|
|
|
|
extern const dib_conversions dib_normal, dib_src_byteswap, dib_dst_byteswap;
|
|
|
|
|
|
|
|
extern INT X11DRV_DIB_MaskToShift(DWORD mask);
|
2007-10-12 17:44:13 +02:00
|
|
|
extern INT X11DRV_CoerceDIBSection(X11DRV_PDEVICE *physDev,INT);
|
|
|
|
extern INT X11DRV_LockDIBSection(X11DRV_PDEVICE *physDev,INT);
|
2002-03-28 23:22:05 +01:00
|
|
|
extern void X11DRV_UnlockDIBSection(X11DRV_PDEVICE *physDev,BOOL);
|
1999-04-01 10:16:08 +02:00
|
|
|
|
2005-04-13 13:23:24 +02:00
|
|
|
extern void X11DRV_DIB_DeleteDIBSection(X_PHYSBITMAP *physBitmap, DIBSECTION *dib);
|
2005-06-12 12:41:39 +02:00
|
|
|
extern void X11DRV_DIB_CopyDIBSection(X11DRV_PDEVICE *physDevSrc, X11DRV_PDEVICE *physDevDst,
|
|
|
|
DWORD xSrc, DWORD ySrc, DWORD xDest, DWORD yDest,
|
|
|
|
DWORD width, DWORD height);
|
2001-07-29 22:25:14 +02:00
|
|
|
struct _DCICMD;
|
|
|
|
extern INT X11DRV_DCICommand(INT cbInput, const struct _DCICMD *lpCmd, LPVOID lpOutData);
|
2001-03-20 02:24:08 +01:00
|
|
|
|
1999-04-01 10:16:08 +02:00
|
|
|
/**************************************************************************
|
|
|
|
* X11 GDI driver
|
|
|
|
*/
|
|
|
|
|
2004-07-13 05:49:52 +02:00
|
|
|
extern void X11DRV_GDI_Finalize(void);
|
1999-04-01 10:16:08 +02:00
|
|
|
|
2001-05-11 02:17:47 +02:00
|
|
|
extern Display *gdi_display; /* display to use for all GDI functions */
|
|
|
|
|
1999-04-01 10:16:08 +02:00
|
|
|
/* X11 GDI palette driver */
|
|
|
|
|
2000-09-23 00:37:56 +02:00
|
|
|
#define X11DRV_PALETTE_FIXED 0x0001 /* read-only colormap - have to use XAllocColor (if not virtual) */
|
1999-04-01 10:16:08 +02:00
|
|
|
#define X11DRV_PALETTE_VIRTUAL 0x0002 /* no mapping needed - pixel == pixel color */
|
|
|
|
|
|
|
|
#define X11DRV_PALETTE_PRIVATE 0x1000 /* private colormap, identity mapping */
|
|
|
|
#define X11DRV_PALETTE_WHITESET 0x2000
|
|
|
|
|
|
|
|
extern Colormap X11DRV_PALETTE_PaletteXColormap;
|
|
|
|
extern UINT16 X11DRV_PALETTE_PaletteFlags;
|
|
|
|
|
|
|
|
extern int *X11DRV_PALETTE_PaletteToXPixel;
|
|
|
|
extern int *X11DRV_PALETTE_XPixelToPalette;
|
2009-09-01 21:48:29 +02:00
|
|
|
extern ColorShifts X11DRV_PALETTE_default_shifts;
|
1999-04-01 10:16:08 +02:00
|
|
|
|
|
|
|
extern int X11DRV_PALETTE_mapEGAPixel[16];
|
|
|
|
|
2001-07-28 02:18:02 +02:00
|
|
|
extern int X11DRV_PALETTE_Init(void);
|
1999-04-01 10:16:08 +02:00
|
|
|
extern void X11DRV_PALETTE_Cleanup(void);
|
2002-05-02 03:39:48 +02:00
|
|
|
extern BOOL X11DRV_IsSolidColor(COLORREF color);
|
1999-04-01 10:16:08 +02:00
|
|
|
|
2009-09-01 22:05:40 +02:00
|
|
|
extern COLORREF X11DRV_PALETTE_ToLogical(X11DRV_PDEVICE *physDev, int pixel);
|
2002-03-28 23:22:05 +01:00
|
|
|
extern int X11DRV_PALETTE_ToPhysical(X11DRV_PDEVICE *physDev, COLORREF color);
|
2010-02-16 00:25:40 +01:00
|
|
|
extern int X11DRV_PALETTE_LookupPixel(ColorShifts *shifts, COLORREF color);
|
2009-09-05 16:49:05 +02:00
|
|
|
extern void X11DRV_PALETTE_ComputeColorShifts(ColorShifts *shifts, unsigned long redMask, unsigned long greenMask, unsigned long blueMask);
|
1999-04-01 10:16:08 +02:00
|
|
|
|
2008-02-04 14:36:18 +01:00
|
|
|
extern unsigned int depth_to_bpp( unsigned int depth );
|
|
|
|
|
2002-03-23 22:43:56 +01:00
|
|
|
/* GDI escapes */
|
|
|
|
|
|
|
|
#define X11DRV_ESCAPE 6789
|
|
|
|
enum x11drv_escape_codes
|
|
|
|
{
|
2004-01-14 05:53:11 +01:00
|
|
|
X11DRV_GET_DISPLAY, /* get X11 display for a DC */
|
|
|
|
X11DRV_GET_DRAWABLE, /* get current drawable for a DC */
|
|
|
|
X11DRV_GET_FONT, /* get current X font for a DC */
|
|
|
|
X11DRV_SET_DRAWABLE, /* set current drawable for a DC */
|
|
|
|
X11DRV_START_EXPOSURES, /* start graphics exposures */
|
|
|
|
X11DRV_END_EXPOSURES, /* end graphics exposures */
|
2008-02-18 11:25:14 +01:00
|
|
|
X11DRV_GET_DCE, /* no longer used */
|
|
|
|
X11DRV_SET_DCE, /* no longer used */
|
2006-02-02 13:23:55 +01:00
|
|
|
X11DRV_GET_GLX_DRAWABLE, /* get current glx drawable for a DC */
|
2007-10-10 17:33:35 +02:00
|
|
|
X11DRV_SYNC_PIXMAP, /* sync the dibsection to its pixmap */
|
|
|
|
X11DRV_FLUSH_GL_DRAWABLE /* flush changes made to the gl drawable */
|
2004-01-14 05:53:11 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
struct x11drv_escape_set_drawable
|
|
|
|
{
|
|
|
|
enum x11drv_escape_codes code; /* escape code (X11DRV_SET_DRAWABLE) */
|
|
|
|
Drawable drawable; /* X drawable */
|
|
|
|
int mode; /* ClipByChildren or IncludeInferiors */
|
2006-12-07 16:43:59 +01:00
|
|
|
RECT dc_rect; /* DC rectangle relative to drawable */
|
|
|
|
RECT drawable_rect;/* Drawable rectangle relative to screen */
|
2007-09-15 22:02:32 +02:00
|
|
|
XID fbconfig_id; /* fbconfig id used by the GL drawable */
|
2007-09-25 19:20:58 +02:00
|
|
|
Drawable gl_drawable; /* GL drawable */
|
2007-09-26 17:17:13 +02:00
|
|
|
Pixmap pixmap; /* Pixmap for a GLXPixmap gl_drawable */
|
2008-05-28 17:52:06 +02:00
|
|
|
int gl_copy; /* whether the GL contents need explicit copying */
|
2002-03-23 22:43:56 +01:00
|
|
|
};
|
|
|
|
|
1999-04-01 10:16:08 +02:00
|
|
|
/**************************************************************************
|
|
|
|
* X11 USER driver
|
|
|
|
*/
|
|
|
|
|
2001-05-16 21:52:29 +02:00
|
|
|
struct x11drv_thread_data
|
|
|
|
{
|
|
|
|
Display *display;
|
2008-03-13 13:35:02 +01:00
|
|
|
XEvent *current_event; /* event currently being processed */
|
2005-03-27 19:58:41 +02:00
|
|
|
Window grab_window; /* window that currently grabs the mouse */
|
2002-09-19 01:09:50 +02:00
|
|
|
HWND last_focus; /* last window that had focus */
|
2003-01-23 02:28:12 +01:00
|
|
|
XIM xim; /* input method */
|
2010-07-23 15:21:58 +02:00
|
|
|
HWND last_xic_hwnd; /* last xic window */
|
2008-10-18 16:03:48 +02:00
|
|
|
XFontSet font_set; /* international text drawing font set */
|
2005-03-07 20:31:46 +01:00
|
|
|
Window selection_wnd; /* window used for selection interactions */
|
2008-12-17 17:12:51 +01:00
|
|
|
HKL kbd_layout; /* active keyboard layout */
|
2001-05-16 21:52:29 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
extern struct x11drv_thread_data *x11drv_init_thread_data(void);
|
2005-06-01 13:08:39 +02:00
|
|
|
extern DWORD thread_data_tls_index;
|
2001-05-16 21:52:29 +02:00
|
|
|
|
2007-03-17 11:47:28 +01:00
|
|
|
static inline struct x11drv_thread_data *x11drv_thread_data(void)
|
2001-05-16 21:52:29 +02:00
|
|
|
{
|
2008-06-26 15:08:08 +02:00
|
|
|
return TlsGetValue( thread_data_tls_index );
|
2001-05-16 21:52:29 +02:00
|
|
|
}
|
|
|
|
|
2008-06-26 16:47:42 +02:00
|
|
|
/* retrieve the thread display, or NULL if not created yet */
|
|
|
|
static inline Display *thread_display(void)
|
|
|
|
{
|
|
|
|
struct x11drv_thread_data *data = x11drv_thread_data();
|
|
|
|
if (!data) return NULL;
|
|
|
|
return data->display;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* retrieve the thread display, creating it if needed */
|
|
|
|
static inline Display *thread_init_display(void)
|
|
|
|
{
|
|
|
|
return x11drv_init_thread_data()->display;
|
|
|
|
}
|
2001-05-16 21:52:29 +02:00
|
|
|
|
2008-04-07 11:41:54 +02:00
|
|
|
static inline size_t get_property_size( int format, unsigned long count )
|
|
|
|
{
|
|
|
|
/* format==32 means long, which can be 64 bits... */
|
|
|
|
if (format == 32) return count * sizeof(long);
|
|
|
|
return count * (format / 8);
|
|
|
|
}
|
|
|
|
|
2000-03-25 15:05:06 +01:00
|
|
|
extern Visual *visual;
|
|
|
|
extern Window root_window;
|
2000-08-01 01:32:47 +02:00
|
|
|
extern unsigned int screen_width;
|
|
|
|
extern unsigned int screen_height;
|
2007-12-16 14:00:45 +01:00
|
|
|
extern unsigned int screen_bpp;
|
2000-08-01 01:32:47 +02:00
|
|
|
extern unsigned int screen_depth;
|
2006-10-23 14:37:17 +02:00
|
|
|
extern RECT virtual_screen_rect;
|
2002-04-03 23:18:50 +02:00
|
|
|
extern unsigned int text_caps;
|
2006-12-29 20:26:35 +01:00
|
|
|
extern int dxgrab;
|
2003-03-23 21:07:55 +01:00
|
|
|
extern int use_xkb;
|
2002-09-19 01:09:50 +02:00
|
|
|
extern int use_take_focus;
|
2005-04-21 19:31:50 +02:00
|
|
|
extern int use_primary_selection;
|
2010-10-18 12:16:28 +02:00
|
|
|
extern int use_system_cursors;
|
2008-04-23 15:32:58 +02:00
|
|
|
extern int usexcomposite;
|
2002-05-23 18:32:32 +02:00
|
|
|
extern int managed_mode;
|
2008-04-10 21:53:45 +02:00
|
|
|
extern int decorated_mode;
|
2005-06-14 20:12:15 +02:00
|
|
|
extern int private_color_map;
|
2006-10-23 14:37:17 +02:00
|
|
|
extern int primary_monitor;
|
2005-06-14 20:12:15 +02:00
|
|
|
extern int copy_default_colors;
|
|
|
|
extern int alloc_system_colors;
|
2006-04-01 14:21:31 +02:00
|
|
|
extern int xrender_error_base;
|
2008-05-01 10:56:34 +02:00
|
|
|
extern HMODULE x11drv_module;
|
2000-03-25 15:05:06 +01:00
|
|
|
|
2005-03-09 17:45:23 +01:00
|
|
|
extern BYTE key_state_table[256];
|
|
|
|
extern POINT cursor_pos;
|
|
|
|
|
2003-11-20 05:24:18 +01:00
|
|
|
/* atoms */
|
2001-06-04 23:55:17 +02:00
|
|
|
|
2003-11-20 05:24:18 +01:00
|
|
|
enum x11drv_atoms
|
2003-06-24 01:02:02 +02:00
|
|
|
{
|
2003-11-20 05:24:18 +01:00
|
|
|
FIRST_XATOM = XA_LAST_PREDEFINED + 1,
|
|
|
|
XATOM_CLIPBOARD = FIRST_XATOM,
|
|
|
|
XATOM_COMPOUND_TEXT,
|
2008-10-31 04:18:00 +01:00
|
|
|
XATOM_INCR,
|
2003-11-20 05:24:18 +01:00
|
|
|
XATOM_MULTIPLE,
|
|
|
|
XATOM_SELECTION_DATA,
|
|
|
|
XATOM_TARGETS,
|
|
|
|
XATOM_TEXT,
|
|
|
|
XATOM_UTF8_STRING,
|
|
|
|
XATOM_RAW_ASCENT,
|
|
|
|
XATOM_RAW_DESCENT,
|
|
|
|
XATOM_RAW_CAP_HEIGHT,
|
|
|
|
XATOM_WM_PROTOCOLS,
|
|
|
|
XATOM_WM_DELETE_WINDOW,
|
2008-02-27 19:11:43 +01:00
|
|
|
XATOM_WM_STATE,
|
2003-11-20 05:24:18 +01:00
|
|
|
XATOM_WM_TAKE_FOCUS,
|
|
|
|
XATOM_DndProtocol,
|
|
|
|
XATOM_DndSelection,
|
2008-03-05 15:57:39 +01:00
|
|
|
XATOM__ICC_PROFILE,
|
2003-11-20 05:24:18 +01:00
|
|
|
XATOM__MOTIF_WM_HINTS,
|
2009-01-06 19:59:07 +01:00
|
|
|
XATOM__NET_STARTUP_INFO_BEGIN,
|
|
|
|
XATOM__NET_STARTUP_INFO,
|
2008-03-12 17:29:28 +01:00
|
|
|
XATOM__NET_SUPPORTED,
|
2006-08-23 02:14:11 +02:00
|
|
|
XATOM__NET_SYSTEM_TRAY_OPCODE,
|
|
|
|
XATOM__NET_SYSTEM_TRAY_S0,
|
2010-04-16 16:23:33 +02:00
|
|
|
XATOM__NET_WM_ICON,
|
2004-08-19 01:47:48 +02:00
|
|
|
XATOM__NET_WM_MOVERESIZE,
|
2006-06-19 19:25:54 +02:00
|
|
|
XATOM__NET_WM_NAME,
|
2003-11-20 05:24:18 +01:00
|
|
|
XATOM__NET_WM_PID,
|
|
|
|
XATOM__NET_WM_PING,
|
2006-06-19 19:25:54 +02:00
|
|
|
XATOM__NET_WM_STATE,
|
2007-10-31 18:13:20 +01:00
|
|
|
XATOM__NET_WM_STATE_ABOVE,
|
2006-06-19 19:25:54 +02:00
|
|
|
XATOM__NET_WM_STATE_FULLSCREEN,
|
2008-03-01 13:30:58 +01:00
|
|
|
XATOM__NET_WM_STATE_MAXIMIZED_HORZ,
|
|
|
|
XATOM__NET_WM_STATE_MAXIMIZED_VERT,
|
2007-10-11 11:40:55 +02:00
|
|
|
XATOM__NET_WM_STATE_SKIP_PAGER,
|
|
|
|
XATOM__NET_WM_STATE_SKIP_TASKBAR,
|
2010-06-29 11:08:51 +02:00
|
|
|
XATOM__NET_WM_USER_TIME,
|
|
|
|
XATOM__NET_WM_USER_TIME_WINDOW,
|
2008-09-12 15:54:02 +02:00
|
|
|
XATOM__NET_WM_WINDOW_OPACITY,
|
2003-12-04 22:54:13 +01:00
|
|
|
XATOM__NET_WM_WINDOW_TYPE,
|
2006-10-11 17:32:22 +02:00
|
|
|
XATOM__NET_WM_WINDOW_TYPE_DIALOG,
|
|
|
|
XATOM__NET_WM_WINDOW_TYPE_NORMAL,
|
2003-12-04 22:54:13 +01:00
|
|
|
XATOM__NET_WM_WINDOW_TYPE_UTILITY,
|
2008-10-01 21:00:18 +02:00
|
|
|
XATOM__NET_WORKAREA,
|
2006-08-23 02:14:11 +02:00
|
|
|
XATOM__XEMBED_INFO,
|
2003-11-20 23:09:51 +01:00
|
|
|
XATOM_XdndAware,
|
|
|
|
XATOM_XdndEnter,
|
|
|
|
XATOM_XdndPosition,
|
|
|
|
XATOM_XdndStatus,
|
|
|
|
XATOM_XdndLeave,
|
|
|
|
XATOM_XdndFinished,
|
|
|
|
XATOM_XdndDrop,
|
|
|
|
XATOM_XdndActionCopy,
|
|
|
|
XATOM_XdndActionMove,
|
|
|
|
XATOM_XdndActionLink,
|
|
|
|
XATOM_XdndActionAsk,
|
|
|
|
XATOM_XdndActionPrivate,
|
|
|
|
XATOM_XdndSelection,
|
|
|
|
XATOM_XdndTarget,
|
|
|
|
XATOM_XdndTypeList,
|
2009-11-22 21:30:18 +01:00
|
|
|
XATOM_HTML_Format,
|
2004-02-20 06:43:00 +01:00
|
|
|
XATOM_WCF_DIB,
|
2003-11-20 05:24:18 +01:00
|
|
|
XATOM_image_gif,
|
2009-06-19 20:54:33 +02:00
|
|
|
XATOM_image_jpeg,
|
2009-06-19 20:46:57 +02:00
|
|
|
XATOM_image_png,
|
2003-11-20 23:09:51 +01:00
|
|
|
XATOM_text_html,
|
|
|
|
XATOM_text_plain,
|
2003-11-20 05:24:18 +01:00
|
|
|
XATOM_text_rtf,
|
|
|
|
XATOM_text_richtext,
|
2007-06-27 09:50:35 +02:00
|
|
|
XATOM_text_uri_list,
|
2003-11-20 05:24:18 +01:00
|
|
|
NB_XATOMS
|
|
|
|
};
|
2003-06-24 01:02:02 +02:00
|
|
|
|
2003-11-20 05:24:18 +01:00
|
|
|
extern Atom X11DRV_Atoms[NB_XATOMS - FIRST_XATOM];
|
|
|
|
|
|
|
|
#define x11drv_atom(name) (X11DRV_Atoms[XATOM_##name - FIRST_XATOM])
|
|
|
|
|
1998-12-07 10:13:40 +01:00
|
|
|
/* X11 event driver */
|
|
|
|
|
2005-02-26 18:49:38 +01:00
|
|
|
typedef void (*x11drv_event_handler)( HWND hwnd, XEvent *event );
|
|
|
|
|
|
|
|
extern void X11DRV_register_event_handler( int type, x11drv_event_handler handler );
|
|
|
|
|
|
|
|
extern void X11DRV_ButtonPress( HWND hwnd, XEvent *event );
|
|
|
|
extern void X11DRV_ButtonRelease( HWND hwnd, XEvent *event );
|
|
|
|
extern void X11DRV_MotionNotify( HWND hwnd, XEvent *event );
|
|
|
|
extern void X11DRV_EnterNotify( HWND hwnd, XEvent *event );
|
|
|
|
extern void X11DRV_KeyEvent( HWND hwnd, XEvent *event );
|
|
|
|
extern void X11DRV_KeymapNotify( HWND hwnd, XEvent *event );
|
2008-03-05 16:51:09 +01:00
|
|
|
extern void X11DRV_DestroyNotify( HWND hwnd, XEvent *event );
|
2005-02-26 18:49:38 +01:00
|
|
|
extern void X11DRV_SelectionRequest( HWND hWnd, XEvent *event );
|
|
|
|
extern void X11DRV_SelectionClear( HWND hWnd, XEvent *event );
|
|
|
|
extern void X11DRV_MappingNotify( HWND hWnd, XEvent *event );
|
1999-12-12 20:42:47 +01:00
|
|
|
|
2005-01-14 18:06:40 +01:00
|
|
|
extern DWORD EVENT_x11_time_to_win32_time(Time time);
|
2004-01-09 01:03:00 +01:00
|
|
|
|
2005-03-07 20:31:46 +01:00
|
|
|
/* X11 driver private messages, must be in the range 0x80001000..0x80001fff */
|
|
|
|
enum x11drv_window_messages
|
|
|
|
{
|
2005-03-09 19:46:13 +01:00
|
|
|
WM_X11DRV_ACQUIRE_SELECTION = 0x80001000,
|
2008-01-17 19:53:59 +01:00
|
|
|
WM_X11DRV_SET_WIN_FORMAT,
|
2008-09-08 15:51:08 +02:00
|
|
|
WM_X11DRV_SET_WIN_REGION,
|
2010-04-29 02:23:05 +02:00
|
|
|
WM_X11DRV_RESIZE_DESKTOP,
|
|
|
|
WM_X11DRV_SET_CURSOR
|
2005-03-07 20:31:46 +01:00
|
|
|
};
|
|
|
|
|
2007-10-11 11:38:59 +02:00
|
|
|
/* _NET_WM_STATE properties that we keep track of */
|
2008-02-27 18:01:31 +01:00
|
|
|
enum x11drv_net_wm_state
|
2007-10-11 11:38:59 +02:00
|
|
|
{
|
2008-02-27 18:01:31 +01:00
|
|
|
NET_WM_STATE_FULLSCREEN,
|
|
|
|
NET_WM_STATE_ABOVE,
|
2008-03-01 13:30:58 +01:00
|
|
|
NET_WM_STATE_MAXIMIZED,
|
2008-02-27 18:01:31 +01:00
|
|
|
NET_WM_STATE_SKIP_PAGER,
|
|
|
|
NET_WM_STATE_SKIP_TASKBAR,
|
|
|
|
NB_NET_WM_STATES
|
2007-10-11 11:38:59 +02:00
|
|
|
};
|
|
|
|
|
2001-06-04 23:55:17 +02:00
|
|
|
/* x11drv private window data */
|
|
|
|
struct x11drv_win_data
|
|
|
|
{
|
2005-03-25 17:47:04 +01:00
|
|
|
HWND hwnd; /* hwnd that this private data belongs to */
|
|
|
|
Window whole_window; /* X window for the complete window */
|
2008-02-21 12:29:36 +01:00
|
|
|
Window client_window; /* X window for the client area */
|
2005-03-25 17:47:04 +01:00
|
|
|
Window icon_window; /* X window for the icon */
|
2008-02-21 20:23:32 +01:00
|
|
|
Colormap colormap; /* Colormap for this window */
|
2008-05-13 10:43:48 +02:00
|
|
|
VisualID visualid; /* visual id of the client window */
|
2007-09-15 22:02:32 +02:00
|
|
|
XID fbconfig_id; /* fbconfig id for the GL drawable this hwnd uses */
|
2007-09-25 19:20:58 +02:00
|
|
|
Drawable gl_drawable; /* Optional GL drawable for rendering the client area */
|
2007-09-26 17:17:13 +02:00
|
|
|
Pixmap pixmap; /* Base pixmap for if gl_drawable is a GLXPixmap */
|
2005-03-25 17:47:04 +01:00
|
|
|
RECT window_rect; /* USER window rectangle relative to parent */
|
|
|
|
RECT whole_rect; /* X window rectangle for the whole window relative to parent */
|
2008-01-22 20:08:56 +01:00
|
|
|
RECT client_rect; /* client area relative to parent */
|
2005-03-25 17:47:04 +01:00
|
|
|
XIC xic; /* X input context */
|
2010-04-20 20:52:17 +02:00
|
|
|
HCURSOR cursor; /* current cursor */
|
2007-08-16 23:27:37 +02:00
|
|
|
XWMHints *wm_hints; /* window manager hints */
|
2008-01-23 12:28:32 +01:00
|
|
|
BOOL managed : 1; /* is window managed? */
|
|
|
|
BOOL mapped : 1; /* is window mapped? (in either normal or iconic state) */
|
2008-02-28 17:01:10 +01:00
|
|
|
BOOL iconic : 1; /* is window in iconic state? */
|
2008-04-09 15:46:33 +02:00
|
|
|
BOOL embedded : 1; /* is window an XEMBED client? */
|
2008-04-29 12:46:16 +02:00
|
|
|
BOOL shaped : 1; /* is window using a custom region shape? */
|
2008-02-27 19:11:43 +01:00
|
|
|
int wm_state; /* current value of the WM_STATE property */
|
2008-02-27 18:01:31 +01:00
|
|
|
DWORD net_wm_state; /* bit mask of active x11drv_net_wm_state values */
|
2010-01-04 17:56:32 +01:00
|
|
|
unsigned long configure_serial; /* serial number of last configure request */
|
2005-03-25 17:47:04 +01:00
|
|
|
HBITMAP hWMIconBitmap;
|
|
|
|
HBITMAP hWMIconMask;
|
2001-06-04 23:55:17 +02:00
|
|
|
};
|
|
|
|
|
2005-01-17 20:17:47 +01:00
|
|
|
extern struct x11drv_win_data *X11DRV_get_win_data( HWND hwnd );
|
2008-01-24 10:20:51 +01:00
|
|
|
extern struct x11drv_win_data *X11DRV_create_win_data( HWND hwnd );
|
2001-06-04 23:55:17 +02:00
|
|
|
extern Window X11DRV_get_whole_window( HWND hwnd );
|
2003-01-23 02:28:12 +01:00
|
|
|
extern XIC X11DRV_get_ic( HWND hwnd );
|
2007-09-15 22:02:32 +02:00
|
|
|
|
|
|
|
extern int pixelformat_from_fbconfig_id( XID fbconfig_id );
|
2007-09-26 07:43:38 +02:00
|
|
|
extern XVisualInfo *visual_from_fbconfig_id( XID fbconfig_id );
|
2007-09-26 16:15:52 +02:00
|
|
|
extern void mark_drawable_dirty( Drawable old, Drawable new );
|
2007-09-26 17:17:13 +02:00
|
|
|
extern Drawable create_glxpixmap( Display *display, XVisualInfo *vis, Pixmap parent );
|
2007-10-10 17:33:35 +02:00
|
|
|
extern void flush_gl_drawable( X11DRV_PDEVICE *physDev );
|
2001-06-04 23:55:17 +02:00
|
|
|
|
2008-03-05 16:52:22 +01:00
|
|
|
extern void wait_for_withdrawn_state( Display *display, struct x11drv_win_data *data, BOOL set );
|
2010-06-29 11:08:51 +02:00
|
|
|
extern void update_user_time( Time time );
|
2008-04-23 15:22:17 +02:00
|
|
|
extern void update_net_wm_states( Display *display, struct x11drv_win_data *data );
|
2008-04-09 15:46:33 +02:00
|
|
|
extern void make_window_embedded( Display *display, struct x11drv_win_data *data );
|
2008-02-27 19:13:09 +01:00
|
|
|
|
2010-10-04 20:41:11 +02:00
|
|
|
static inline void mirror_rect( const RECT *window_rect, RECT *rect )
|
|
|
|
{
|
|
|
|
int width = window_rect->right - window_rect->left;
|
|
|
|
int tmp = rect->left;
|
|
|
|
rect->left = width - rect->right;
|
|
|
|
rect->right = width - tmp;
|
|
|
|
}
|
|
|
|
|
2005-01-28 18:25:50 +01:00
|
|
|
/* X context to associate a hwnd to an X window */
|
|
|
|
extern XContext winContext;
|
|
|
|
|
2005-02-25 22:01:15 +01:00
|
|
|
extern void X11DRV_InitClipboard(void);
|
2008-12-16 15:32:08 +01:00
|
|
|
extern int CDECL X11DRV_AcquireClipboard(HWND hWndClipWindow);
|
2009-12-29 20:03:40 +01:00
|
|
|
extern void X11DRV_Clipboard_Cleanup(void);
|
2006-06-05 17:55:14 +02:00
|
|
|
extern void X11DRV_ResetSelectionOwner(void);
|
2008-12-16 15:32:08 +01:00
|
|
|
extern void CDECL X11DRV_SetFocus( HWND hwnd );
|
2010-04-29 02:23:05 +02:00
|
|
|
extern void set_window_cursor( HWND hwnd, HCURSOR handle );
|
2008-12-16 15:32:08 +01:00
|
|
|
extern BOOL CDECL X11DRV_ClipCursor( LPCRECT clip );
|
2008-02-06 20:37:41 +01:00
|
|
|
extern void X11DRV_InitKeyboard( Display *display );
|
2005-03-09 17:45:23 +01:00
|
|
|
extern void X11DRV_send_keyboard_input( WORD wVk, WORD wScan, DWORD dwFlags, DWORD time,
|
|
|
|
DWORD dwExtraInfo, UINT injected_flags );
|
|
|
|
extern void X11DRV_send_mouse_input( HWND hwnd, DWORD flags, DWORD x, DWORD y,
|
|
|
|
DWORD data, DWORD time, DWORD extra_info, UINT injected_flags );
|
2008-12-16 15:32:08 +01:00
|
|
|
extern DWORD CDECL X11DRV_MsgWaitForMultipleObjectsEx( DWORD count, const HANDLE *handles, DWORD timeout,
|
|
|
|
DWORD mask, DWORD flags );
|
2001-05-16 21:52:29 +02:00
|
|
|
|
2002-04-24 23:32:11 +02:00
|
|
|
typedef int (*x11drv_error_callback)( Display *display, XErrorEvent *event, void *arg );
|
|
|
|
|
|
|
|
extern void X11DRV_expect_error( Display *display, x11drv_error_callback callback, void *arg );
|
2001-06-04 23:55:17 +02:00
|
|
|
extern int X11DRV_check_error(void);
|
2005-02-01 19:53:59 +01:00
|
|
|
extern void X11DRV_X_to_window_rect( struct x11drv_win_data *data, RECT *rect );
|
2008-01-17 19:59:22 +01:00
|
|
|
extern void xinerama_init( unsigned int width, unsigned int height );
|
2001-04-25 01:28:52 +02:00
|
|
|
|
2006-03-28 16:55:03 +02:00
|
|
|
extern void X11DRV_init_desktop( Window win, unsigned int width, unsigned int height );
|
2008-01-17 19:53:59 +01:00
|
|
|
extern void X11DRV_resize_desktop(unsigned int width, unsigned int height);
|
2003-10-16 02:21:42 +02:00
|
|
|
extern void X11DRV_Settings_AddDepthModes(void);
|
|
|
|
extern void X11DRV_Settings_AddOneMode(unsigned int width, unsigned int height, unsigned int bpp, unsigned int freq);
|
|
|
|
extern int X11DRV_Settings_CreateDriver(LPDDHALINFO info);
|
|
|
|
extern LPDDHALMODEINFO X11DRV_Settings_CreateModes(unsigned int max_modes, int reserve_depths);
|
|
|
|
unsigned int X11DRV_Settings_GetModeCount(void);
|
|
|
|
void X11DRV_Settings_Init(void);
|
2007-02-22 12:42:20 +01:00
|
|
|
LPDDHALMODEINFO X11DRV_Settings_SetHandlers(const char *name,
|
|
|
|
int (*pNewGCM)(void),
|
|
|
|
LONG (*pNewSCM)(int),
|
|
|
|
unsigned int nmodes,
|
2003-10-16 02:21:42 +02:00
|
|
|
int reserve_depths);
|
|
|
|
|
2006-08-02 13:21:58 +02:00
|
|
|
extern void X11DRV_DDHAL_SwitchMode(DWORD dwModeIndex, LPVOID fb_addr, LPVIDMEM fb_mem);
|
|
|
|
|
2008-04-04 13:44:36 +02:00
|
|
|
/* XIM support */
|
2008-12-16 15:02:52 +01:00
|
|
|
extern BOOL X11DRV_InitXIM( const char *input_style ) DECLSPEC_HIDDEN;
|
|
|
|
extern XIC X11DRV_CreateIC(XIM xim, struct x11drv_win_data *data) DECLSPEC_HIDDEN;
|
|
|
|
extern void X11DRV_SetupXIM(void) DECLSPEC_HIDDEN;
|
|
|
|
extern void X11DRV_XIMLookupChars( const char *str, DWORD count ) DECLSPEC_HIDDEN;
|
|
|
|
extern void X11DRV_ForceXIMReset(HWND hwnd) DECLSPEC_HIDDEN;
|
2010-02-18 15:06:31 +01:00
|
|
|
extern BOOL X11DRV_SetPreeditState(HWND hwnd, BOOL fOpen);
|
2008-04-04 13:44:36 +02:00
|
|
|
|
2008-02-29 13:44:55 +01:00
|
|
|
/* FIXME: private functions imported from user32 */
|
|
|
|
extern LRESULT HOOK_CallHooks( INT id, INT code, WPARAM wparam, LPARAM lparam, BOOL unicode );
|
|
|
|
|
2008-04-09 15:46:33 +02:00
|
|
|
#define XEMBED_MAPPED (1 << 0)
|
|
|
|
|
1998-12-07 10:13:40 +01:00
|
|
|
#endif /* __WINE_X11DRV_H */
|