This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 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: X client wrapper for Win apps?


Alexander Gottwald wrote:
On Thu, 19 Sep 2002, Jehan wrote:


4. Give me valid point (like the hardware thing) and I'll just up. API
compatibility isn't a valid one since it can be easily fix (more easily
that writing a new GDI driver).

Just explain the design you have in mind. Is it

Application      User32.dll          User32-orig.dll     XWin

    ------------>LineTo(x,y)----+---->LineTo(x,y)
                                |
                                +-------------------->shadowDrawLine

If so, then you must call the xserver drawing function directly
Application      User32.dll          User32-orig.dll     XLib

    ------------>LineTo(x,y)----+---->LineTo(x,y)
                                |
                                +-------------------->XDrawLine

In this case you have the X11 Protocol overhead again.

And of course the problem with the replaced User32.dll

My proposal was

Application    User32.dll          GDI            DisplayGDI       XLib

    ---------->LineTo(x,y)---->gdiLineTo(x,y)--->gdiLineTo(x,y)
                                     |
                                     +-------------------------->XDrawLine

This requires the same work as replacing user32 since all exported functions
from the library must be replace with stubs calling the original functions
and the code for converting the calls to X11 or the Xserver functions
must be written.

Ok, if I read correctly between the lines, I think I know where my problem is. Is user32.dll and the "GDI driver" the same thing? Or is the "GDI driver" like my video card driver or my audio card driver?

Because, actually, my biggest problem is to have the User32.dll being replaced. From the way I see it, it's one of the core dll from Windows. My fear then is that, if we replace that DLL, Windows will start to fall apart because (1) the dll isn't 100% compatible or (2) the next Windows update will refuse to work because the checksum won't match anymore or (3) the update will "patch" the DLL but makes it completely unusable because function entries are not at the address or something like. In short, that since the DLL won't be the same, something will break sooner or later and make my system unusable. A dll, in theory, is supposed to be replacable by another one having the same API, in pratice, it's not. If XFree replaces my User32.dll, I don't think I'll to use it anymore. Too risky.

A driver, in the other hand, seems to be more easily replacable. I haven't heard yet of Windows keeping several versions of a driver and using the one that matches a given application.

Jehan




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