IWineD3DDeviceImpl_SetRenderState
Chris Ahrendt
celticht32 at aol.com
Mon Jul 28 07:49:57 CDT 2008
H. Verbeet wrote:
> Unrelated to the patch, but if you intend to work on Wine, I'd
> strongly recommend you setup git first.
Got git yesterday and the repository just wanted to make sure the add
was correct before I comitted and worked with git.
> You shouldn't use d3d8 or d3d9 definitions in wined3d.
> WINED3DBLEND_INVSRCCOLOR is already defined in
> include/wine/wined3d_types.h
I will double check but one of the problems I had was when compiling it
was it said this and the below were missing.. but I will double check again.
>
>> +#define WINED3DDMT_ENABLE 0
>> +#define WINED3DDMT_DISABLE 1
>> +#define WINED3DBLEND_INVSRCCOLOR2 17
>> +#define WINED3DBLEND_SRCCOLOR2 16
> These should be enums, and they should be declared in
> include/wine/wined3d_types.h. You should also make sure the
> corresponding definitions exist in ddraw/d3d8/d3d9.
Ok will move them there.... and will make sure they are in those as well.
>
>> + if ((Value == TRUE) ||
>> + (Value == FALSE)) break;
> Comparing booleans like that is questionable.
>
Removed.
>> + if ((Value == WINED3DBLEND_ZERO) ||
>> + (Value == WINED3DBLEND_ONE) ||
>> + (Value == WINED3DBLEND_SRCCOLOR) ||
>> + (Value == WINED3DBLEND_INVSRCCOLOR) ||
>> + (Value == WINED3DBLEND_SRCALPHA) ||
>> + (Value == WINED3DBLEND_INVSRCALPHA) ||
>> + (Value == WINED3DBLEND_DESTALPHA) ||
>> + (Value == WINED3DBLEND_INVDESTALPHA) ||
>> + (Value == WINED3DBLEND_DESTCOLOR) ||
>> + (Value == WINED3DBLEND_INVDESTCOLOR) ||
>> + (Value == WINED3DBLEND_SRCALPHASAT) ||
>> + (Value == WINED3DBLEND_BOTHSRCALPHA) ||
>> + (Value == WINED3DBLEND_BOTHINVSRCALPHA) ||
>> + (Value == WINED3DBLEND_BLENDFACTOR) ||
>> + (Value == WINED3DBLEND_INVBLENDFACTOR) ||
>> + (Value == WINED3DBLEND_SRCCOLOR2) ||
>> + (Value == WINED3DBLEND_INVSRCCOLOR2)) break;
>> + return WINED3DERR_INVALIDCALL;
> Considering these are enum values, I think it makes more sense to test
> the range, rather every individual value within it.
>
Problem with this is if any of the above values change for whatever
reason then it breaks the verification. I agree for the most part that
testing the range makes sense but I think in this case it is safer to do
it this way. But if the general consensus is to use the range that is an
easy change.
>> + if ((Value >= 0) ||
> Since DWORDs are unsigned, this will always evaluate as true.
>
>> + if ((Value >= 0) ||
>> + (Value <=0xFFFFFFFF)) break;
> This doesn't make sense.
>
Removed
>> + Default:
> Did you try to compile your code?
>
Yes and got warnings but no errors... and that leads to another question
I have.. why would I get the warnings on the switch statement about the
case items being unhandled? I looked it up and the suggested thing to
fix the warnings was to add the default which was already there.
That warning didn't make sense to me...
> As a general comment, you're not going to get a patch like this in
> without appropriate test cases in ddraw, d3d8 and d3d9.
So I need to write the test cases for d3d9 since this is the module
which would be effected.
Chris
More information about the wine-devel
mailing list