Re: mswsock.dll, Soc & legal questions
be aware that the easy parts have been started in last year SoC, but weren't applied to the git tree yet, and the other parts are pretty much hard to implement (will require wine server requests changes, and those elements won't be done until some other changes on asynchronous requests are done) Oh OK I didn't know this, I'll have a look on this.
mswsock.dll, Soc & legal questions
Hi, I'm pretty interested in implementing mswsock.dll as a SoC this summer : this dll seems to be used by many apps and it's, I think, the sort of job I can do. As I'm not a Wine dev, I was wondering about how should I work for implementing this lib : should I juste use the MSDN description of the functions and make some tests with some apps to validate the behavior ? Or can I take the original dll, execute some apps with it and try to see how the dll is interacting with other libs, what sort of network traffic is generated, etc ? Is this solution possible with the microsoft license ? Thanks, Ben
Re: DIB Engine & GSoC
You seem to not realize that painting also happens outside of the WM_PAINT handler, moreover some apps do not call EndPaint in WM_PAINT, or call it before they paint anything. Yep effectively I realized it after sending my mail. Anyway, Alexandre think that this project is not a good choice for a GSoC project so I'll perhaps think about another project at least for the moment. However thanks to all for your help and your answers. Ben.
Re: DIB Engine & GSoC
The other thing is that there are many aspects of GDI drawing, you have to take into account region clipping, pens, brushes, line thickness, line style, fill style, and other wonders, and make them work in 1, 4, 8, 16, 24 and 32 bit colour depth pixel-for-pixel exact with the way Windows does them. I see. Effectively the number of parameters to take in account will be a difficulty and the GDI API is huge. Moreover implementing it in a fluent way won't be easy as said Stefan and Rolf. But I asked Alexandre about this, and he said the whole point of the DIB engine is that you shouldn't need the locking. How that would work is beyond me, after all, if you only draw on the client-side, you still have to upload the image to the X server when you want it to become visible, but what about images that aren't double-buffered, and what about mixed drawing with OpenGL? Perhaps should we draw everything asked in memory and just send it to X when the application calls EndPaint, this way we limit the interaction with the X server (and locks).
Re: DIB Engine & GSoC
First thank you for your very complete answer, I'm not really familiar with Wine (and the Windows API) and I don't understand why do you think that it will be such an hard work. For me, the work will consist in redirect the GDI calls from the X11 pseudo-driver to some new functions which will draw circles, lines, etc.. over DIBs. Do I misunderstand the work to do or under evaluate it ? And I've understand by reading this mail-list how important are regression tests and fluent transitions in functionalities for Wine. Stefan Dösinger a écrit : Am Donnerstag 01 März 2007 14:03 schrieb Benoit Pradelle: Hi, I would like participate to the Google Summer Of Code with Wine by implementing a DIB Engine. I've searched a lot of informations about the DIB Engine but i still got one question : for you, how important is a DIB Engine in Wine ? Hard to say, it depends on what applications are needed. If I said now "the most important thing" that would be obviously wrong, otherwise someone would have implemented it already. I'd say it is one of the top ranked items, but it requires a lot of work and a LOT of knowledge by the programmer. From the importance vs work required it is rather low. The DIB engine would help applications which operate on DIB sections with both direct access and GDI commands. For example DirectX games which use IDirect*Surface?::GetDC regularly, or other applications(I think MS powerpoint is one of them). It will not help Direct3D applications which do not use GetDC. It would also allow is a X-Server / independent GDI implementation. Right now our GDI implementation can only do what the X server can do - not more. Another question is if the existing implementation using the X server can't be optimized. One inefficient thing is that always the full DIB section is converted and copied over. That is technically not necessary when a small letter is drawn to the top left corner. Of course optimizations tend to be tricky, and maybe do not compare with the cost/usability of a real DIB engine. Maybe DirectDraw can be optimized too, by moving the depth conversion from GetDC calls to surface locking. This would only shift the problem, but if DDraw can read the state of the DIB section it could choose the most efficient solution depending on the behavior of the game. Another thing that should be checked before starting is if a fluent transition is possible. For example, when a new dibsection DC is created, create a classic dib section and a DC using the server. If the app does something the new code can't do yet, load the data into the server and use the existing X-Server GDI code. This way a fluent transition is possible, with implementing the important calls first, then adding rare things while still keeping full functionality. Just some thoughts from my side. If you want this as a SOC project you will need some menthor, and I think Alexandre is the only one who can do that for implementing a DIB engine :-) ___ Yahoo! Mail réinvente le mail ! Découvrez le nouveau Yahoo! Mail et son interface révolutionnaire. http://fr.mail.yahoo.com
DIB Engine & GSoC
Hi, I would like participate to the Google Summer Of Code with Wine by implementing a DIB Engine. I've searched a lot of informations about the DIB Engine but i still got one question : for you, how important is a DIB Engine in Wine ? Ben.
DIB Engine & GSoC
Hi, I would like participate to the Google Summer Of Code with Wine by implementing a DIB Engine. I've searched a lot of informations about the DIB Engine but i still got one question : for you, how important is a DIB Engine in Wine ? Ben. ___ Yahoo! Mail réinvente le mail ! Découvrez le nouveau Yahoo! Mail et son interface révolutionnaire. http://fr.mail.yahoo.com