PDA

View Full Version : Vista WPF emulation?


Emu of Doom
21st October 2006, 03:22 AM
I'm putting this here because the only possible vista programs I'd like to be able to run on linux will be games; however it could just as easily be something else I suppose. (DISCLAIMER: I'm not that knowledgable about what I'm talking about, read my sources yourselves and if you draw different conclusions or think I made mistakes please post!) Here's my rant/query/musing:

As most of us know, Wine emulates the windows api as a sort of compatibility layer. I believe Cedega and other such programs do the same sort of thing. More info here (http://www.winehq.com/site/wine_features). It's a work in progress but it's a big help in breaking the m$ monopoly (in my opinion). Vista introduces something new, though. I've been reading this article (http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9003898) that details the WPF, the new graphical subsystem, as it will be implemented in Vista. Here's the quote from this article that prompted this thread:

With WPF, developers can do 2-D, 3-D, animation, imaging, video, audio, special effects and text rendering using a single API that works consistently no matter what type of object the developer is working with. This greatly simplifies user interface programming, resulting in more robust applications that are delivered to market faster than ever.

It would seem that Vista is doing things a little differently by centralizing tasks using WPF. Now I'm not a developer by any means, but it seems to me that maybe this centralization will be very helpful to emulation projects like Wine. Here's yet another quote from the aforementioned computerworld.com article:

Before WPF, developers had to work with a rather alarming number of technologies and application programming interfaces (API). For example, to draw a simple 2-D shape, they called on the Graphics Device Interface (GDI); for 3-D objects, they used Direct3D or OpenGL; for media objects, they used DirectShow; and for user interface objects, they used USER32 or Windows Forms, to name just a few.

If this has all been replaced by a single API, then compatibility using Wine ought to (theoretically) become much easier. And hopefully this will lead to much better overall compatibility with programs making use of this technology.

However, as I mentioned, I'm not a developer. I don't know that much about API or WPF or how Wine or Cedega actually work. So I ask the rest of you, what do you think about this? Is it a possibility that we'll actually see Halo 2 (a Vista-only program) running in Linux under emulation? Or do I not know at all what I'm talking about?

Thetargos
21st October 2006, 10:17 AM
While WPF aims at making things simpler in apperance, the implementation is rather complex. Also bear in mind that Wine and Cedega and Cross Over Office will still have to provide legacy support as most likely Vista will not be fully backwards compatible. While this is good news for Windows devolpers, as they won't have to deal with a broken mess of API calls and what not, it does not necessarily mean that implementing such technology into Wine will be easy just by knowing the API, as it would be required to know what exactly does WPF does behind the scenes.

IIRC WPF is just the name DirectX 10 will take, so it actually is a refinement of DirectX, and since Vista itself will use DirectX (WPF) as its only method to interface with the users, with a fall back "legacy" compatibility win32 mode. However in Aero, most likely all the GDI and old DirectX and OpenGL and Windows Forms and Win32, et al API calls will have to be interpreted by WPF (I'm guessing here too, so don't take my word for granted) or the legacy support will take care of those (I'd lean more towards WPF doing it, though), that same functionality would have to be implemented into Wine.

Now, as to the games that are going to be available for Vista-only, I'm not sure that they will be easily supported under any of the Windows API implementations we currently have. I'm not saying they won't eventually be supported, but I'm sure they won't be supported for some time after Vista is released.