Hello,
What is the current state of affairs regarding DirectX (8) support in wine. With Transgaming producing a version which appears to work well from what I read on the Internet, what is happening about getting support for it in the wine tree - Is the intention to wait and see what Transgaming do?
The reason I ask - Not to start a political debate with pros and cons of Transgaming, but more because as a learning exercise with regard to 3d graphics, I started fiddling with Direct X 8 support and have some sample code which runs some simple Direct3D samples and most of a sequence of tutorials. (9 out of 11 work reasonably well).
I dont have a problem with the code remaining personal to me and probably archived, as I have learnt a lot by doing it (which was my original aim), but if it is agreed that adding directx 8 support completely different to the Transgaming code is ok, then I may try to submit some patches.
Note the current code is nowhere near ideal, so dont get your hopes up. Specifically, it exports X11DRV_get_client_window from X11DRV as a means of getting the X window from the HWND, which is not clean. It does not use a HAL (which is where the current ddraw code was starting to head), it calls all the opengl calls inline. I have only tested on one machine with one level of mesa (tough! thats all I have). It also has all the c parts in the d3d8 directory, completely seperate (and in some cases duplicating code from the ddraw code), which may or may not be desired. I also dont have a clue about the configure tests and makefile.in, so I have just a basic structure which works enough for me. I'm also relatively certain I havent necessarily used the highest performing code everywhere, I have done the best I could with my limited knowledge.
The way I look at it would be a starting point for others to work from. I could make a drop of the code on a website if anyone wants to see how bad it is first :-)
Anyway, thoughts please? Jason
"Ann and Jason Edmeades" us@the-edmeades.demon.co.uk writes:
I dont have a problem with the code remaining personal to me and probably archived, as I have learnt a lot by doing it (which was my original aim), but if it is agreed that adding directx 8 support completely different to the Transgaming code is ok, then I may try to submit some patches.
We are not waiting for Transgaming code, we need to develop our own, so by all means submit anything you like. Even if it's to hackish to be included in the tree right now, it can serve as a starting point for others.
Ok, what I'll try to do is tidy up parts and submit them, such as the headers and the skeleton of the com objects. Once thats all committed, I can start filling in the gaps which I guess is where the real discussion will start! In the meantime, I'll carry on playing as well.
However, I will need answers to the following few questions fairly quickly:
1. To get this working without a low level driver, I have currently added the following line to x11drv.spec: # Hack for now, d3d @ cdecl d3dhack(long) X11DRV_get_client_window Unfortunately I couldnt find anyway to get a GL context from a HWND as it stood. Without this line, nothing is going to appear, but long term I realize it will need fixing. Does anyone have any thoughts as to how to handle this, or would this hack be acceptable until a better solution is found?
2. Currently I have all my modules in the d3d8 directory: d3d8_main.c d3d8.dll.dbg.c d3d8.spec.c IDirect3D8.c IDirect3DDevice8.c IDirect3DResource8.c IDirect3DVertexBuffer8.c IDirect3DVolume8.c IDirect3DSwapChain8.c IDirect3DSurface8.c IDirect3DIndexBuffer8.c IDirect3DBaseTexture8.c IDirect3DCubeTexture8.c IDirect3DTexture8.c IDirect3DVolumeTexture8.c This does not tie in with the direct draw code - Do you want me to try and put implementations into the ddraw directories, so that a common implementation can be attempted (will require us to somehow bridge the d3d8.dll / ddraw.dll gap), or carry on as I have done, which will minimize the code size pulled in for directx8 programs? Note that long term if we do go to a HAL route, I guess one hal fits all, so the amount of code duplication would be severly reduced anyway. I know nothing about the hal interface (if there is a documented one?)
I have far too many other questions, but perhaps once I start to get code into the beginnings of a submittable form then I'll ask them!
Finally Can anyone point me at VERY basic, free programs which use directx 8.? - As examples, I was working through: http://www.two-kings.de/tutorials/d3d03/d3d03.html (Tutorials 3->13, most produce something except 9 and 13 although 7 is wrong) http://www.codeguru.com/directx/UDirect3D8.html Lighting is wrong but it sort of appears http://www.flipcode.com/tutorials/tut_dx8adv2d.shtml Looks about right Please do this via private email, so as not to clutter the wine-devel forum.
Jason
"Ann and Jason Edmeades" us@the-edmeades.demon.co.uk writes:
- To get this working without a low level driver, I have currently added
the following line to x11drv.spec: # Hack for now, d3d @ cdecl d3dhack(long) X11DRV_get_client_window Unfortunately I couldnt find anyway to get a GL context from a HWND as it stood. Without this line, nothing is going to appear, but long term I realize it will need fixing. Does anyone have any thoughts as to how to handle this, or would this hack be acceptable until a better solution is found?
You should be able to use the x11drv escape mechanism that opengl is using too (look at wgl.c). It's not very clean either but at least it doesn't require exporting new functions.
- Currently I have all my modules in the d3d8 directory: d3d8_main.c d3d8.dll.dbg.c d3d8.spec.c IDirect3D8.c IDirect3DDevice8.c IDirect3DResource8.c IDirect3DVertexBuffer8.c IDirect3DVolume8.c IDirect3DSwapChain8.c IDirect3DSurface8.c IDirect3DIndexBuffer8.c IDirect3DBaseTexture8.c IDirect3DCubeTexture8.c IDirect3DTexture8.c IDirect3DVolumeTexture8.c
This does not tie in with the direct draw code - Do you want me to try and put implementations into the ddraw directories, so that a common implementation can be attempted (will require us to somehow bridge the d3d8.dll / ddraw.dll gap), or carry on as I have done, which will minimize the code size pulled in for directx8 programs?
I think it's fine to leave them in d3d8. That seems to be where they belong if I understand this stuff correctly (but I don't claim to really know anything about d3d8...)
Hello,
great job to start coding Direct3D! Keep on the work. Just another input: You certainly have heard about the x-box linux project.http://xbox-linux.sourceforge.net/
Well, Linux already runs on the Xbox, and the Xbox uses Direct3D. I suppose that there will be some hackers interested in writing Linux games to run on the Xbox, so it might be a good idea to join efforts, or to find some other programmers also interested in helping out implementing Direct3D in Wine.
Now another point: I'm willing to help Wine trough advertising: I could regularly post a message to some Newsgroups asking for more developers to join the Wine effort. Do you want this kind of advertising? If yes, just tell me which Newsgroups you would like me to post and I will start posting.
I was thinking about posting in the Linux/Windows developer Forums.
All suggestions welcome, also about how the ads should look like...
Roland
Roland,
--- Roland roland@netquant.com.br wrote: [skipped]
Now another point: I'm willing to help Wine trough advertising: I could regularly post a message to some Newsgroups asking for more developers to join the Wine effort.
maybe you do not know, but some people call this form of advertising "spam" ;-)
Do you want this kind of advertising? If yes, just tell me which Newsgroups you would like me to post and I will start posting.
Many people on this list strongly disapprove this approach. Search the list archives for "spam" keyword.
Imagine all the Windows and Linux projects on Sourceforge posted requests for help to wine-devel? Or Windows developers asking questions about Windows?
Andriy Boston, MA
As an employee of an oil company, let me assure you that nothing, and I mean NOTHING scares a big company more than a noisy, smelly, obnoxious, disaffected pressure group. Now go away and chain yourself to someone important's front door.
TheRegister. Unknown
__________________________________________________ Yahoo! - We Remember 9-11: A tribute to the more than 3,000 lives lost http://dir.remember.yahoo.com/tribute
At 05:39 AM 11/9/02 -0700, Andriy Palamarchuk wrote:
Roland, Many people on this list strongly disapprove this approach. Search the list archives for "spam" keyword.
Imagine all the Windows and Linux projects on Sourceforge posted requests for help to wine-devel? Or Windows developers asking questions about Windows?
Ok, I understand your point of view, thats why I asked. So what do you think about this approach: I will hang-out in newsgroups like comp.os.linux.development.* and wait for someone asking which project he should join/start(this happens every now and then). Then I will have an opportunity to direct him to the Wine project.
I think there are more Linux fans out there that don't know about the Wine project than we realize. We need to get the word out...
Roland
--- Roland roland@netquant.com.br wrote:
So what do you think about this approach: I will hang-out in newsgroups like comp.os.linux.development.* and wait for someone asking which project he should join/start(this happens every now and then). Then I will have an opportunity to direct him to the Wine project.
I would not spend time on the mailing lists only for this, but if you are already subscribed on the lists - that's fine.
I think there are more Linux fans out there that don't know about the Wine project than we realize. We need to get the word out...
Completely agree - the advocacy of the project is very needed. We should target not only Linux developers, but also Windows developers. What about articles to developers sites, magazines? Posting requests for help on the electronic boards which are specifically created for this? E.g. I know Sourceforge has a section "Help Wanted".
Andriy Boston, MA
__________________________________________________ Yahoo! - We Remember 9-11: A tribute to the more than 3,000 lives lost http://dir.remember.yahoo.com/tribute
On September 11, 2002 09:49 am, Andriy Palamarchuk wrote:
Completely agree - the advocacy of the project is very needed. We should target not only Linux developers, but also Windows developers.
In fact, I think it's the Windows users that we need to worry about since: (1) 90% of Wine develeopment is done in Win32, and (2) they are the most likely to need Wine.
On Wednesday 11 September 2002 09:06 am, Dimitrie O. Paun wrote:
On September 11, 2002 09:49 am, Andriy Palamarchuk wrote:
Completely agree - the advocacy of the project is very needed. We should target not only Linux developers, but also Windows developers.
In fact, I think it's the Windows users that we need to worry about since: (1) 90% of Wine develeopment is done in Win32, and (2) they are the most likely to need Wine.
Is there a good HOWTO or FAQ about how to add functionality to Wine / how everything fits together? Does one need to be an experienced programmer to add stuff to Wine/fix bugs, or can a relative beginner do it? Where does one start?
I think there should be a webpage answering at least some of these questions, _directly_.
On Thu, 12 Sep 2002, Igor Izyumin wrote:
On Wednesday 11 September 2002 09:06 am, Dimitrie O. Paun wrote:
On September 11, 2002 09:49 am, Andriy Palamarchuk wrote:
Completely agree - the advocacy of the project is very needed. We should target not only Linux developers, but also Windows developers.
In fact, I think it's the Windows users that we need to worry about since: (1) 90% of Wine develeopment is done in Win32, and (2) they are the most likely to need Wine.
Is there a good HOWTO or FAQ about how to add functionality to Wine / how everything fits together? Does one need to be an experienced programmer to add stuff to Wine/fix bugs, or can a relative beginner do it? Where does one start?
One good place to start is over there: http://www.winehq.com/about/index.php?contrib
This lists items that you can help Wine with. For the development side it references 3 Bugzilla tasklists and in particular the Tasklets one which lists things that should be easy to get into for someone new to Wine.
So whether you need to be an experienced programmer to add stuff to Wine really depends on the problem you want to tackle. But you can contribute to Wine in very meaningful ways even if you are not an experienced programmer, or not a programmer at all. One of the things I'm doing is updating this page to provide better descriptions of these other tasks.
I think there should be a webpage answering at least some of these questions, _directly_.
There is: the above web page. Unfortunately it is really buried and non-obvious to find. Does anyone feel like reorganizing the web site so that this page is more prominent? I feel very much like it but I'm not familiar with PHP and don't have enough free time to start a big reorganization.
-- Francois Gouget fgouget@free.fr http://fgouget.free.fr/ La terre est une bĂȘta...
On Thursday 12 September 2002 04:02 pm, Francois Gouget wrote:
On Thu, 12 Sep 2002, Igor Izyumin wrote:
I think there should be a webpage answering at least some of these questions, _directly_.
There is: the above web page. Unfortunately it is really buried and non-obvious to find. Does anyone feel like reorganizing the web site so that this page is more prominent? I feel very much like it but I'm not familiar with PHP and don't have enough free time to start a big reorganization.
I know PHP and I suppose I could help with the website. What part needs to be reorganized? The stuff on the "development" section is quite scattered, is that what you're referring to? Is there some mailing list/person who decides what needs to be done?
On Thu, 12 Sep 2002, Igor Izyumin wrote: [...]
I know PHP and I suppose I could help with the website. What part needs to be reorganized? The stuff on the "development" section is quite scattered, is that what you're referring to? Is there some mailing list/person who decides what needs to be done?
You can check out the following Bugzilla tasks: * 608 - Reorganize the Web site See the comment fields from (much) more details. Basically a lot of stuff (e.g. how to contribute) is hard to find, some others are duplicated, others too old (well, that would be the documentation), and yet others missing (screenshots). http://bugs.winehq.com/show_bug.cgi?id=608
* 600 - Add a Site Map http://bugs.winehq.com/show_bug.cgi?id=600
* 601 - Add drop-down menus The site must be navigable without, but they would simplify navigation http://bugs.winehq.com/show_bug.cgi?id=601
* 605 - Add 'tables of contents' http://bugs.winehq.com/show_bug.cgi?id=605
* 607 - Add screenshots The first thing I look at when I try to evaluate software. http://bugs.winehq.com/show_bug.cgi?id=607
* 597 - How to get the web site files The instructions are duplicated (-> inconsistencies). http://bugs.winehq.com/show_bug.cgi?id=597
* 594 - Getting wine-cvs patches in text format This is somewhat related to the web site. Not a major item but it would come in handy from time to time. http://bugs.winehq.com/show_bug.cgi?id=594
On September 16, 2002 02:27 am, Francois Gouget wrote:
- 594 - Getting wine-cvs patches in text format This is somewhat related to the web site. Not a major item but it
would come in handy from time to time. http://bugs.winehq.com/show_bug.cgi?id=594
I can do that. I have other improvements that are worth upgrading to, I just have to dig out the changes I made to patch.py...
On Monday 16 September 2002 01:27 am, Francois Gouget wrote:
On Thu, 12 Sep 2002, Igor Izyumin wrote: [...]
I know PHP and I suppose I could help with the website. What part needs to be reorganized? The stuff on the "development" section is quite scattered, is that what you're referring to? Is there some mailing list/person who decides what needs to be done?
You can check out the following Bugzilla tasks:
- 608 - Reorganize the Web site See the comment fields from (much) more details. Basically a lot of
stuff (e.g. how to contribute) is hard to find, some others are duplicated, others too old (well, that would be the documentation), and yet others missing (screenshots). http://bugs.winehq.com/show_bug.cgi?id=608
OK, great. Thanks. However, who do the site patches go through? I don't think that it would be good to just make one huge patch that reorganizes all the pages, do I need to somehow coordinate that stuff with someone? I see that the bug has already been assigned to someone - do I need to tell them? Sorry for bothering you, I'm a relative newbie to the open-source development process.
On Mon, 16 Sep 2002, Igor Izyumin wrote: [...]
OK, great. Thanks. However, who do the site patches go through? I don't think that it would be good to just make one huge patch that reorganizes all the pages, do I need to somehow coordinate that stuff with someone? I see that the bug has already been assigned to someone - do I need to tell them?
Patches for the WineHQ web site are normally sent to the web-admin 'mailing list'. However, it may be worth discussing such big changes on wine-dev first (ideally we would need a web site that demonstrates the planned changes).
To get the web site sources or get commit access to the web sources, see http://www.winehq.com/development/
I'm thinking that this process should be changed too: * web-admin is not a really milaing list, just an alias. I would feel more confortable with a regular public mailing list for discussing web site changes (maybe called wine-web)`. Now this may be low volume so it may be better to discuss this on wine-devel, or maybe group it with documentation issues. * there should be a public mailing list where one could send patches to apply to the web site. Then one of the persons with CVS access could commit them. Again, we may not need a dedicated mailing list for this. This list could be wine-web too, or maybe it could piggy-back on wine-patches. * having all persons having access to CVS use the same wineowner account seems wrong. For one when you commit you don't know who did the commit. And if there's a problem involving wineowner then you don't know who's responsible.
Well, I'm open to comments and ideas (newman?).
Sorry for bothering you, I'm a relative newbie to the open-source development process.
Hey, no problem. Welcome :-)
Well, Linux already runs on the Xbox, and the Xbox uses Direct3D. I suppose that there will be some hackers interested in writing Linux games to run on the Xbox, so it might be a good idea to join efforts, or to find some other programmers also interested in helping out implementing Direct3D in Wine.
I really do not understand your way of thinking... We are NOT implementing Direct3D support in Wine to encourage people to use this API (they should use OpenGL) but only to enable people to play existing Windows games on Linux.
Care to enlighten me as to how Direct3D support in Wine would help them ?
Lionel
At 10:04 PM 11/9/02 +0200, Lionel Ulmer wrote:
Well, Linux already runs on the Xbox, and the Xbox uses Direct3D. I
suppose
that there will be some hackers interested in writing Linux games to
run on
the Xbox, so it might be a good idea to join efforts, or to find some
other
programmers also interested in helping out implementing Direct3D in Wine.
I really do not understand your way of thinking... We are NOT implementing Direct3D support in Wine to encourage people to use this API (they should use OpenGL) but only to enable people to play existing Windows games on Linux.
Care to enlighten me as to how Direct3D support in Wine would help them ?
I don't understand that much myself, so feel free to correct me. AFAIK the whole graphics system of the XBox look like this:
D3D -> Hardwaredrivers -> Proprietary graphic hardware.
If we manage to make a D3D implementation we can make them run games on Xbox. Also keep in mind, that maybe some folks would like to run Windows games on Xbox. That would be possible if they have Wine + d3d running on Xbox Linux.
Roland