2014-11-03 6:35 GMT+01:00 Sebastian Lackner <sebastian(a)fds-team.de>:
> Based on a patch by David Adam.
>
> For bug 13632.
>
> ---
> dlls/d3dx9_36/d3dx9_36.spec | 2 +-
> dlls/d3dx9_36/mesh.c | 89 +++++++++++++++++++++++++++++++++++++++++++++
> include/d3dx9shape.h | 2 +
> 3 files changed, 92 insertions(+), 1 deletion(-)
>
Hi Sebastian,
I have a few nitpicks:
+ TRACE("(%p, %f, %u, %p, %p)\n", device, length, sides, mesh, adjacency);
Generally you want that to be something like:
TRACE("device %p, length %f, sides %u, mesh %p, adjacency %p.\n",
device, length, sides, mesh, adjacency);
+ if (!device || length < 0.0f || sides == 0 || !mesh)
Probably "!sides" is more in the usual Wine d3d* style. Also, no need
to use brackets for single-line branches.
+ if (FAILED(hr = D3DXCreateMeshFVF(sides, sides + 1, D3DXMESH_MANAGED,
+ D3DFVF_XYZ |
D3DFVF_NORMAL,device, &polygon)))
Line continuation should be indented by 8 blanks. Also, missing
whitespace after a comma.
+ scale = 0.5f * length / sin(D3DX_PI / sides);
You probably want to use sinf() here. Same below.
+ for (i = 0; i < sides; i++)
Not important, but the current wined3d style wants "++i" here.
+ for (i = 0; i < sides; i++)
+ {
+ adjacency_buf[i][0] = i - 1;
+ adjacency_buf[i][1] = -1;
+ adjacency_buf[i][2] = i + 1;
+ }
Really a detail, but adjacency_buf and i are both defined as unsigned
int, so either defining them as plain, signed int or using ~0 instead
of -1 would be nicer.
I haven't seen the test yet but in some other D3DX9 functions the
"out" pointers are set to NULL on error. If this function has the same
behavior you should probably add a "*mesh = NULL;" in the first few
lines of the function.