=?UTF-8?Q?Rico=20Sch=C3=BCller=20?=: d3dx9: Fix initialization of D3DXPC_OBJECTs.
Alexandre Julliard
julliard at winehq.org
Sat Jul 27 13:23:35 CDT 2013
Module: wine
Branch: master
Commit: 55a4be12f85caa5b12f35845e24500cebc158431
URL: http://source.winehq.org/git/wine.git/?a=commit;h=55a4be12f85caa5b12f35845e24500cebc158431
Author: Rico Schüller <kgbricola at web.de>
Date: Wed Jul 24 09:51:39 2013 +0200
d3dx9: Fix initialization of D3DXPC_OBJECTs.
---
dlls/d3dx9_36/effect.c | 22 +++++++++++++++++++---
1 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
index 30ed36c..777a429 100644
--- a/dlls/d3dx9_36/effect.c
+++ b/dlls/d3dx9_36/effect.c
@@ -4637,15 +4637,31 @@ static HRESULT d3dx9_parse_init_value(struct d3dx_parameter *param, const char *
if (size)
{
- value = HeapAlloc(GetProcessHeap(), 0, size);
+ value = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
if (!value)
{
ERR("Failed to allocate data memory.\n");
return E_OUTOFMEMORY;
}
- TRACE("Data: %s.\n", debugstr_an(ptr, size));
- memcpy(value, ptr, size);
+ switch(param->class)
+ {
+ case D3DXPC_OBJECT:
+ break;
+
+ case D3DXPC_SCALAR:
+ case D3DXPC_VECTOR:
+ case D3DXPC_MATRIX_ROWS:
+ case D3DXPC_MATRIX_COLUMNS:
+ case D3DXPC_STRUCT:
+ TRACE("Data: %s.\n", debugstr_an(ptr, size));
+ memcpy(value, ptr, size);
+ break;
+
+ default:
+ FIXME("Unhandled class %s\n", debug_d3dxparameter_class(param->class));
+ break;
+ }
}
hr = d3dx9_parse_value(param, value, data, &ptr, objects);
More information about the wine-cvs
mailing list