[PATCH 3/4] d3dx9_36: Cast DWORDs to WORDs when accssing 16 bit index data.
Stefan Dösinger
stefan at codeweavers.com
Tue Feb 18 03:46:15 CST 2014
All cases have an explicit check for 16 bit indices.
---
dlls/d3dx9_36/mesh.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c
index 118baf7..0a8061f 100644
--- a/dlls/d3dx9_36/mesh.c
+++ b/dlls/d3dx9_36/mesh.c
@@ -747,7 +747,7 @@ static HRESULT WINAPI d3dx9_mesh_CloneMesh(struct ID3DXMesh *iface, DWORD option
((DWORD*)data_out)[i] = ((WORD*)data_in)[i];
} else {
for (i = 0; i < This->numfaces * 3; i++)
- ((WORD*)data_out)[i] = ((DWORD*)data_in)[i];
+ ((WORD*)data_out)[i] = (WORD)((DWORD*)data_in)[i];
}
} else {
memcpy(data_out, data_in, This->numfaces * 3 * (options & D3DXMESH_32BIT ? 4 : 2));
@@ -1776,9 +1776,9 @@ static HRESULT WINAPI d3dx9_mesh_OptimizeInplace(ID3DXMesh *iface, DWORD flags,
for (i = 0; i < This->numfaces; i++) {
DWORD new_pos = face_remap[i] * 3;
DWORD old_pos = i * 3;
- word_indices[new_pos++] = dword_indices[old_pos++];
- word_indices[new_pos++] = dword_indices[old_pos++];
- word_indices[new_pos] = dword_indices[old_pos];
+ word_indices[new_pos++] = (WORD)dword_indices[old_pos++];
+ word_indices[new_pos++] = (WORD)dword_indices[old_pos++];
+ word_indices[new_pos] = (WORD)dword_indices[old_pos];
}
}
@@ -1794,7 +1794,7 @@ static HRESULT WINAPI d3dx9_mesh_OptimizeInplace(ID3DXMesh *iface, DWORD flags,
} else {
WORD *word_indices = indices;
for (i = 0; i < This->numfaces * 3; i++)
- *word_indices++ = dword_indices[i];
+ *word_indices++ = (WORD)dword_indices[i];
}
}
@@ -4360,7 +4360,7 @@ HRESULT WINAPI D3DXLoadMeshFromXInMemory(const void *memory, DWORD memory_size,
WORD *dest = concat_indices;
const WORD *src = mesh_indices;
for (i = 0; i < num_mesh_faces * 3; i++)
- *dest++ = index_offset + *src++;
+ *dest++ = (WORD)index_offset + *src++;
concat_indices = dest;
}
mesh->lpVtbl->UnlockIndexBuffer(mesh);
@@ -6637,7 +6637,7 @@ static inline void write_ib(void *index_buffer, BOOL indices_are_32bit,
else
{
WORD *indices = index_buffer;
- indices[index] = value;
+ indices[index] = (WORD)value;
}
}
--
1.8.3.2
More information about the wine-patches
mailing list