From d913744f1eff5002b50be0cf1b20a2352c09d8ea Mon Sep 17 00:00:00 2001 From: =?utf8?q?Stefan=20D=C3=B6singer?= Date: Wed, 25 Apr 2007 00:38:32 +0200 Subject: [PATCH] d3d: Calculate the size of WINED3DFVF_XYZBx FVFs. --- dlls/ddraw/utils.c | 9 +++++++-- dlls/wined3d/utils.c | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/dlls/ddraw/utils.c b/dlls/ddraw/utils.c index 204342a1b95..07b386c51fc 100644 --- a/dlls/ddraw/utils.c +++ b/dlls/ddraw/utils.c @@ -894,9 +894,14 @@ get_flexible_vertex_size(DWORD d3dvtVertexType) if (d3dvtVertexType & D3DFVF_RESERVED1) size += sizeof(DWORD); switch (d3dvtVertexType & D3DFVF_POSITION_MASK) { - case D3DFVF_XYZ: size += 3 * sizeof(D3DVALUE); break; + case D3DFVF_XYZ: size += 3 * sizeof(D3DVALUE); break; case D3DFVF_XYZRHW: size += 4 * sizeof(D3DVALUE); break; - default: TRACE(" matrix weighting not handled yet...\n"); + case D3DFVF_XYZB1: size += 4 * sizeof(D3DVALUE); break; + case D3DFVF_XYZB2: size += 5 * sizeof(D3DVALUE); break; + case D3DFVF_XYZB3: size += 6 * sizeof(D3DVALUE); break; + case D3DFVF_XYZB4: size += 7 * sizeof(D3DVALUE); break; + case D3DFVF_XYZB5: size += 8 * sizeof(D3DVALUE); break; + default: ERR("Unexpected position mask\n"); } for (i = 0; i < GET_TEXCOUNT_FROM_FVF(d3dvtVertexType); i++) { diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c index b39f6488d60..9ab4e767c59 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c @@ -2488,9 +2488,14 @@ DWORD get_flexible_vertex_size(DWORD d3dvtVertexType) { if (d3dvtVertexType & WINED3DFVF_SPECULAR) size += sizeof(DWORD); if (d3dvtVertexType & WINED3DFVF_PSIZE) size += sizeof(DWORD); switch (d3dvtVertexType & WINED3DFVF_POSITION_MASK) { - case WINED3DFVF_XYZ: size += 3 * sizeof(float); break; + case WINED3DFVF_XYZ: size += 3 * sizeof(float); break; case WINED3DFVF_XYZRHW: size += 4 * sizeof(float); break; - default: TRACE(" matrix weighting not handled yet...\n"); + case WINED3DFVF_XYZB1: size += 4 * sizeof(float); break; + case WINED3DFVF_XYZB2: size += 5 * sizeof(float); break; + case WINED3DFVF_XYZB3: size += 6 * sizeof(float); break; + case WINED3DFVF_XYZB4: size += 7 * sizeof(float); break; + case WINED3DFVF_XYZB5: size += 8 * sizeof(float); break; + default: ERR("Unexpected position mask\n"); } for (i = 0; i < numTextures; i++) { size += GET_TEXCOORD_SIZE_FROM_FVF(d3dvtVertexType, i) * sizeof(float); -- 2.11.4.GIT