From 796b2dd0a597da3b9bf1481da93a07db04415a48 Mon Sep 17 00:00:00 2001 From: David Adam Date: Mon, 17 Dec 2007 23:12:33 +0100 Subject: [PATCH] d3dx8: Implement D3DXCreateMatrixStack. --- dlls/d3dx8/d3dx8.spec | 2 +- dlls/d3dx8/math.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/dlls/d3dx8/d3dx8.spec b/dlls/d3dx8/d3dx8.spec index 28b772e688c..0ccfdf26e55 100644 --- a/dlls/d3dx8/d3dx8.spec +++ b/dlls/d3dx8/d3dx8.spec @@ -68,7 +68,7 @@ @ stdcall D3DXPlaneTransform(ptr ptr ptr) @ stdcall D3DXColorAdjustSaturation(ptr ptr long) @ stdcall D3DXColorAdjustContrast(ptr ptr long) -@ stub D3DXCreateMatrixStack +@ stdcall D3DXCreateMatrixStack(long ptr) @ stdcall D3DXCreateFont(ptr ptr ptr) @ stub D3DXCreateFontIndirect @ stub D3DXCreateSprite diff --git a/dlls/d3dx8/math.c b/dlls/d3dx8/math.c index 33a24fca4b0..0446198062f 100644 --- a/dlls/d3dx8/math.c +++ b/dlls/d3dx8/math.c @@ -587,6 +587,23 @@ D3DXMATRIX* WINAPI D3DXMatrixTranspose(D3DXMATRIX *pout, CONST D3DXMATRIX *pm) /*_________________D3DXMatrixStack____________________*/ +HRESULT WINAPI D3DXCreateMatrixStack(DWORD flags, LPD3DXMATRIXSTACK* ppstack) +{ + ID3DXMatrixStackImpl* object; + + object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(ID3DXMatrixStackImpl)); + if ( object == NULL ) + { + *ppstack = NULL; + return E_OUTOFMEMORY; + } + object->lpVtbl = &ID3DXMatrixStack_Vtbl; + object->ref = 1; + object->current = 0; + *ppstack = (LPD3DXMATRIXSTACK)object; + return D3D_OK; +} + static HRESULT WINAPI ID3DXMatrixStackImpl_QueryInterface(ID3DXMatrixStack *iface, REFIID riid, void **ppobj) { ID3DXMatrixStackImpl *This = (ID3DXMatrixStackImpl *)iface;