[2/5] d3dx9: Generate effect instances from materials for mesh loading.

Matteo Bruni matteo.mystral at gmail.com
Tue May 24 19:07:17 CDT 2011


2011/5/24 Dylan Smith <dylan.ah.smith at gmail.com>:
> ---
>  dlls/d3dx9_36/mesh.c |  117 +++++++++++++++++++++++++++++++++++++++++++++++--
>  1 files changed, 112 insertions(+), 5 deletions(-)
>
> diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c
> index fa32797..20b3262 100644
> --- a/dlls/d3dx9_36/mesh.c
> +++ b/dlls/d3dx9_36/mesh.c
...
> +        strcpy(defaults->pParamName, diffuse_paramname);
> +        defaults->pValue = defaults->pParamName + sizeof(diffuse_paramname);
> +        defaults->Type = D3DXEDT_FLOATS;
> +        defaults->NumBytes = sizeof(D3DCOLORVALUE);
> +        memcpy(defaults->pValue, &material_ptr->MatD3D.Diffuse, sizeof(D3DCOLORVALUE));
> +        (defaults + 1)->pParamName = (LPSTR)((D3DCOLORVALUE*)defaults->pValue + 1);
> +        defaults++;
> +
> +        strcpy(defaults->pParamName, power_paramname);
> +        defaults->pValue = defaults->pParamName + sizeof(power_paramname);
> +        defaults->Type = D3DXEDT_FLOATS;
> +        defaults->NumBytes = sizeof(FLOAT);
> +        *(FLOAT*)defaults->pValue = material_ptr->MatD3D.Power;
> +        (defaults + 1)->pParamName = (LPSTR)((FLOAT*)defaults->pValue + 1);
> +        defaults++;
...

A nitpick maybe, but I think you could avoid to repeat the same code
for each parameter by means of a loop driven by a table. It may be
worth a try if it doesn't become more cumbersome than the current
approach.



More information about the wine-patches mailing list