Hi Matteo,
please see the attached patch.
On 25.07.2013 16:13, Matteo Bruni wrote:
2013/7/24 Rico Schüller kgbricola@web.de:
dlls/d3dx9_36/tests/shader.c | 308 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 308 insertions(+)
This is okay, but as a followup can you add some tests with mixed-type structs? Something like:
struct { float f; int i; bool b; };
If you have already written tests of this kind, I'd like to know what does the compiler do in this case :)
Single variables could only have the tested types (I was not able to generate other conversions than bool->bool, int->int, int->float, bool->float, float->float). But I found a way to do it with structs and there I found some issues. Hence this has to be fixed in wine, too. Thanks for the nice question. :-)
Basically you got these for the struct: 1. D3DXRS_FLOAT4: if one variable is used as float or a float variable is used or an int variable is used as bool (the compiler may do some optimization), else #2 2. D3DXRS_BOOL: if a bool variable is used as bool (in an if clause), else #3 3. D3DXRS_INT4
It looks like you could only do it that way with unused variables. I'm not sure if this makes sense at all. Why would someone set an unused variable? Maybe I missed something? Do you know anything else?
Cheers Rico