ATI has released software called HLSL2GLSL which converts D3D9 High Level Shader Language (HLSL) into the OpenGL equivalent GLSL.
It's open source, and appears to be under a BSD license, so may be possible to integrate into WINE (I'm not sure if it's old or new BSD license).
The source code is here: http://sourceforge.net/projects/hlsl2glsl
Press releases and news about it are here: http://www.macworld.com/news/2006/11/10/hlsl2glsl/index.php http://www.theinquirer.net/default.aspx?article=35742
Hope this is of interest,
Regards,
Ian
ps: Sorry if this comes through more than once - I didn't subscribe before sending this the first time and it looks like it didn't get through.
Hi,
Unfortunately ATI's project is not that usefull for Wine. In case of Direct3D9 the hlsl shader part is implemented by the d3dx9_xx dlls. For instance you let the helper dll open a shader file and then later on it outputs directx shader assembly. A programmer then feeds this data to standard d3d9.
Our d3d9 code translates this directx asm to opengl arb asm or glsl. You could say that a hlslglsl dll could directly provide us with the glsl but in all cases we still need directx asm for the non-glsl backend. Further there are various things for which the library can be used for which we can't figure out if a helper dll was used or not. Third the hlslglsl library is c++ which complicates things a bit more more (perhaps we would have to fork it).
The whole point of using the ati library is to save us work but in the end it won't help that much as we still need to output directx asm (so one extra backend), we would need a way to sent glsl code to wined3d and it can't detected in all cases. So while initially it looked like this library could help a lot it actually makes work more complicated and not that usefull. (note d3dx9_xx.dll can be downloaded for free, dx10 is a different case though)
Regards, Roderick Colenbrander
ATI has released software called HLSL2GLSL which converts D3D9 High Level Shader Language (HLSL) into the OpenGL equivalent GLSL.
It's open source, and appears to be under a BSD license, so may be possible to integrate into WINE (I'm not sure if it's old or new BSD license).
The source code is here: http://sourceforge.net/projects/hlsl2glsl
Press releases and news about it are here: http://www.macworld.com/news/2006/11/10/hlsl2glsl/index.php http://www.theinquirer.net/default.aspx?article=35742
Hope this is of interest,
Regards,
Ian
ps: Sorry if this comes through more than once - I didn't subscribe before sending this the first time and it looks like it didn't get through.