Re: [PATCH 2/4] d3dx9: Implement ID3DXBaseEffect::SetVector().
Am 13.12.2011 16:10, schrieb Matteo Bruni: Hi Rico, 2011/12/13 Rico Schüller: --- dlls/d3dx9_36/effect.c | 52 +-- 1 files changed, 49 insertions(+), 3 deletions(-) +static void set_vector(struct d3dx_parameter *param, CONST D3DXVECTOR4 *vector) +{ +set_number((float *)param->data, param->type, vector, D3DXPT_FLOAT); +if (param->columns> 1) set_number((FLOAT *)param->data + 1, param->type, (FLOAT *)vector + 1, D3DXPT_FLOAT); +if (param->columns> 2) set_number((FLOAT *)param->data + 2, param->type, (FLOAT *)vector + 2, D3DXPT_FLOAT); +if (param->columns> 3) set_number((FLOAT *)param->data + 3, param->type, (FLOAT *)vector + 3, D3DXPT_FLOAT); +} Can't you use a for loop instead? While you're at it, you should also pick one between "float" and "FLOAT". Yeah, I'll send a new version with a loop. That way the "float" vs "FLOAT" will also be fixed. Thanks Rico
Re: [PATCH 2/4] d3dx9: Implement ID3DXBaseEffect::SetVector().
Hi Rico, 2011/12/13 Rico Schüller : > --- > dlls/d3dx9_36/effect.c | 52 > +-- > 1 files changed, 49 insertions(+), 3 deletions(-) > > +static void set_vector(struct d3dx_parameter *param, CONST D3DXVECTOR4 > *vector) > +{ > +set_number((float *)param->data, param->type, vector, D3DXPT_FLOAT); > +if (param->columns > 1) set_number((FLOAT *)param->data + 1, > param->type, (FLOAT *)vector + 1, D3DXPT_FLOAT); > +if (param->columns > 2) set_number((FLOAT *)param->data + 2, > param->type, (FLOAT *)vector + 2, D3DXPT_FLOAT); > +if (param->columns > 3) set_number((FLOAT *)param->data + 3, > param->type, (FLOAT *)vector + 3, D3DXPT_FLOAT); > +} Can't you use a for loop instead? While you're at it, you should also pick one between "float" and "FLOAT".