909{
913 IDirect3D9 *d3d;
915
917
919
920
926 {
929 }
931
932 object = heap_alloc_zero(sizeof(*object));
933 if (!object)
934 {
937 }
939 object->ref = 1;
941 object->desc = *
desc;
942
945 {
948 }
949
953 {
957 }
959
961
963 {
968 }
969
971
972 object->texture_size = object->glyph_size;
973 if (
object->glyph_size < 256)
974 object->texture_size =
min(256,
object->texture_size * 16);
975
976 object->glyphs_per_texture = object->texture_size * object->texture_size
977 / (object->glyph_size * object->glyph_size);
978 object->texture_pos = object->glyphs_per_texture;
979
981 *
font = &
object->ID3DXFont_iface;
982
984}
static BOOL heap_free(void *mem)
#define D3DXERR_INVALIDDATA
#define IDirect3DDevice9_GetDirect3D(p, a)
#define IDirect3DDevice9_GetCreationParameters(p, a)
#define IDirect3D9_Release(p)
#define IDirect3D9_CheckDeviceFormat(p, a, b, c, d, e, f)
#define IDirect3DDevice9_AddRef(p)
#define IDirect3DDevice9_GetDisplayMode(p, a, b)
static uint32_t make_pow2(uint32_t num)
static int glyph_rb_compare(const void *key, const struct wine_rb_entry *entry)
static const ID3DXFontVtbl D3DXFont_Vtbl
static void wine_rb_init(struct wine_rb_tree *tree, wine_rb_compare_func_t compare)
IDirect3DDevice9 * device
BOOL WINAPI GetTextMetricsW(_In_ HDC, _Out_ LPTEXTMETRICW)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
HFONT WINAPI CreateFontW(_In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPCWSTR)
#define CLIP_DEFAULT_PRECIS
BOOL WINAPI DeleteDC(_In_ HDC)