Monday, May 25, 2015

GSoC 2015 WineHQ projects

This is from the WineHQ developers mailing list.

Matteo Bruni 

Hey all,

tomorrow the coding period of the Summer of Code begins and I though it might be a nice idea to let the community know about the projects we've got this year. Actually, I though it would be even better if the student themselves wrote a short summary of their own project for the mailing list.

So, with no authority backing me, I'm kindly asking that. No need to write anything too fancy, just a few lines explaining what are you going to work on over the summer and maybe what are the expected benefits for Wine.

Thank you!

Aaryaman Vasishta

Thank you for inviting me to this opportunity! I will try my best to keep it short, though it might be a bit long for some. There's a TL;DR at the end, though. :)
A bit about myself. My name is Aaryaman Vasishta and I'm currently studying in my third year of Computer Engineering in Pune Institute of Computer Technology, India. My interests lie in game programming and computer graphics.

My project focuses on implementing the rendering backend for the D3DRM API [1].

D3DRM (Direct3D Retained Mode) is basically a scene graph API running on top of Direct3D's Immediate Mode API. You can say it's more like a rendering engine API which encapsulates Immediate Mode functionality in order to make it easier for programmers to develop 3D scenes using it, making it a possible competitor to OpenGL at the time.

At the moment wine's implementation of this API is mostly full of stubs, and there's quite a bit of work left before something can be drawn on the screen. My role here mainly focuses on implementing object Creation/Initialization functions for some of the main interfaces, mainly devices, textures and viewports, all of which are COM based. If time permits, I will also work on implementing some frequently used frames and lighting functions.
The API is quite old (it has been removed since DX 8 SDK, and the dll doesn't come included with vista onwards) but there are a few popular games that used it. Namely, Lego Rock Raiders and Steel Beasts, and applications as well, like FMS (Flying Model Simulator). So there is some merit in working on this. Implementing these functions will help accelerate further development of this API to get some long-awaited apps to run on wine (I can see quite a few threads on google of people trying to get FMS running, and a couple for LRR too, so there is some demand for it). As an added bonus, I also get to interact with wine's ddraw implementation for this one, which could potentially help ddraw's implementation via possible bug detection/fixes and implementing any ddraw functionality that d3drm requires.

TL;DR: I'm implementing a main chunk of a graphics API called Direct3D Retained Mode, which is based on Direct3D Immediate Mode. The API is mostly a stub in wine and this project should help get things going.

Thank you!
Aaryaman Vasishta

Zhenbo Li


I'm glad to working on Wine GSoC this year. My project's focus is IHMLTXMLHttpRequest. Many websites would use hacks to determine whether the browser was IE6.0 or IE 7+. As XMLHttpRequest object identifier was shipped in IE 7.0[0], the web developers would use ActiveX to access IXMLHttpRequest object. Wine IE implements some new features, so it is common that Wine IE is treated as a IE 7+ browser(like Firebug Lite[1])

Mozilla has implemented nsIXMLHttpRequest[2], and my approach is to call the wine-gecko functions from wine code. I can't tell how many applications' status on appdb will change from "garbage" to "silver/gold", but IMHO, implementing XMLHttpRequest is necessary to make wine IE more usable.


 Iván Matellanes

 Hi all!

I'm looking forward to contributing to Wine.
My project consists on implementing part of the legacy Visual C++ iostream runtime, which was shipped with Visual Studio versions up to 6.0 and is currently a stub. I'll work on as many functions as time permits, and one of the key points is to reuse code from the modern Visual C++ runtime library that is already implemented.

Some old applications and games (like MS Reader and Tron 2.0) would benefit from this, as they would run with the built-in library. A quick search on Bugzilla for 'msvcirt' shows several bugs related to unimplemented functions.


YongHao Hu

 Hi, all.

Sorry for the late reply. I am happy to join this discussion.

My project focuses on implementing all the functions from tr2 namespace, which was included in the header and being proposed for standardization. Though there are many methods to implement the functions like _File_size and _Equivalent etc, the hard part is finding the most appropriate one.

New applications like MSVC12[1] would benefit from this.

Thank you!


Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

No comments: