Tony Wasserka : d3dx9: Implement ID3DXFont_GetDesc.

Alexandre Julliard julliard at winehq.org
Wed Jun 24 09:22:57 CDT 2009


Module: wine
Branch: master
Commit: 05843d47707a8224a1f8470337cb24173d1eee29
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=05843d47707a8224a1f8470337cb24173d1eee29

Author: Tony Wasserka <tony.wasserka at freenet.de>
Date:   Fri Jun  5 13:26:11 2009 +0200

d3dx9: Implement ID3DXFont_GetDesc.

---

 dlls/d3dx9_36/d3dx9_36_private.h |    1 +
 dlls/d3dx9_36/font.c             |   14 ++++++++++++--
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/dlls/d3dx9_36/d3dx9_36_private.h b/dlls/d3dx9_36/d3dx9_36_private.h
index 5891794..5d3d329 100644
--- a/dlls/d3dx9_36/d3dx9_36_private.h
+++ b/dlls/d3dx9_36/d3dx9_36_private.h
@@ -42,6 +42,7 @@ typedef struct ID3DXFontImpl
 
     /* ID3DXFont fields */
     IDirect3DDevice9 *device;
+    D3DXFONT_DESCW desc;
 } ID3DXFontImpl;
 
 
diff --git a/dlls/d3dx9_36/font.c b/dlls/d3dx9_36/font.c
index e7f770c..1de0634 100644
--- a/dlls/d3dx9_36/font.c
+++ b/dlls/d3dx9_36/font.c
@@ -76,14 +76,23 @@ static HRESULT WINAPI ID3DXFontImpl_GetDevice(LPD3DXFONT iface, LPDIRECT3DDEVICE
 static HRESULT WINAPI ID3DXFontImpl_GetDescA(LPD3DXFONT iface, D3DXFONT_DESCA *desc)
 {
     ID3DXFontImpl *This=(ID3DXFontImpl*)iface;
-    FIXME("(%p): stub\n", This);
+    TRACE("(%p)\n", This);
+
+    if( !desc ) return D3DERR_INVALIDCALL;
+    memcpy(desc, &This->desc, FIELD_OFFSET(D3DXFONT_DESCA, FaceName));
+    WideCharToMultiByte(CP_ACP, 0, This->desc.FaceName, -1, desc->FaceName, sizeof(desc->FaceName) / sizeof(CHAR), NULL, NULL);
+
     return D3D_OK;
 }
 
 static HRESULT WINAPI ID3DXFontImpl_GetDescW(LPD3DXFONT iface, D3DXFONT_DESCW *desc)
 {
     ID3DXFontImpl *This=(ID3DXFontImpl*)iface;
-    FIXME("(%p): stub\n", This);
+    TRACE("(%p)\n", This);
+
+    if( !desc ) return D3DERR_INVALIDCALL;
+    *desc = This->desc;
+
     return D3D_OK;
 }
 
@@ -289,6 +298,7 @@ HRESULT WINAPI D3DXCreateFontIndirectW(LPDIRECT3DDEVICE9 device, CONST D3DXFONT_
     object->lpVtbl=&D3DXFont_Vtbl;
     object->ref=1;
     object->device=device;
+    object->desc=*desc;
 
     IDirect3DDevice9_AddRef(device);
     *font=(LPD3DXFONT)object;




More information about the wine-cvs mailing list