This is the mail archive of the win32-x11@sources.redhat.com mailing list for the win32-x11 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Architecture


Jean-Claude Gervais wrote:

>Hi again,
>
>
> I've been doing some thinking, and here's what I've arrived at, feel free
>to give me feedback.
>
>
> Essentially, the XOpenWin application should act as a loader, meaning it
>loads the requested Windows program we would like to redirect and injects a
>DLL into it that will perform the function hooking. It can then exit. Its
>job will be accomplished.
>
>
> The DLL, on startup, (meaning during the DLLMain's PROCESS ATTACH
>notification) must hook the app's GDI and USER calls, and establish a link
>to a third entity that we can call the XOpenWin server. The DLL needs to
>manage the state of its application's display, so that if the app ever
>closes, the DLL and whatever it had accumulated, as task information will go
>away.
>
>
Yup, this all makes sense.

> On the other hand, the DLL might be able to "talk" to Cygwin-XFree by
>itself, or it might not.
>
> Cygwin XFree is a unique resource on the system, like a serial port would
>be, if you like. So I don't think it can be "shared". We'd probably need an
>"XOpenWin Server", that would be the access point for all XOpenWin client
>app's ingress to X. Alternatively, the code to service the X requests could
>also cohabitate within the DLL, whatever is decided should be selected on a
>basis of flexibility and robustness.
>
No, this isn't how it works. The X server is a separate application, and
client applications
use a library called Xlib. This library then communicates over the
network to the X server
which displays what the clients send. We don't need a central access
point as this role is
fulfilled by the X server. It also means we can have different apps
connected to different
X server is fe want.

>
> Should this module be a part of Cygwin-XFree? Probably not; adding huge
>chunks into existing modules just makes them more complicated, it would
>probably be best to have an XOpenWin Server, that would serve as interface
>to Cygwin-XFree.
>
Certainly at the moment this project serves a different role to
Cygwin-Xfree. But when it
gets mature we could add it as a package to cygwin so people could
install it as part of that
(just like they install Cygwin-Xfree).

David



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]