2 * Direct3D X 8 main file
4 * Copyright (C) 2002 Raphael Junqueira
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
23 #include "wine/port.h"
31 #include "wine/debug.h"
32 #include "wine/unicode.h"
33 #include "d3dx8core.h"
34 #include "d3dx8core_private.h"
36 WINE_DEFAULT_DEBUG_CHANNEL(d3d
);
38 HRESULT WINAPI
D3DXCreateBuffer(DWORD NumBytes
, LPD3DXBUFFER
* ppBuffer
) {
39 ID3DXBufferImpl
*object
;
41 object
= HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, sizeof(ID3DXBufferImpl
));
43 *ppBuffer
= (LPD3DXBUFFER
)NULL
;
46 object
->lpVtbl
= &D3DXBuffer_Vtbl
;
48 object
->bufferSize
= NumBytes
;
49 object
->buffer
= HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, NumBytes
);
50 if (NULL
== object
->buffer
) {
51 HeapFree(GetProcessHeap(), 0, object
);
52 *ppBuffer
= (LPD3DXBUFFER
)NULL
;
55 *ppBuffer
= (LPD3DXBUFFER
)object
;
59 HRESULT WINAPI
D3DXCreateFont(LPDIRECT3DDEVICE8 pDevice
, HFONT hFont
, LPD3DXFONT
* ppFont
) {
60 FIXME("(void): stub\n");
64 UINT WINAPI
D3DXGetFVFVertexSize(DWORD FVF
) {
65 FIXME("(void): stub\n");
69 HRESULT WINAPI
D3DXAssembleShader(LPCVOID pSrcData
, UINT SrcDataLen
, DWORD Flags
,
70 LPD3DXBUFFER
* ppConstants
,
71 LPD3DXBUFFER
* ppCompiledShader
,
72 LPD3DXBUFFER
* ppCompilationErrors
) {
73 FIXME("(void): stub\n");
77 HRESULT WINAPI
D3DXAssembleShaderFromFileA(LPSTR pSrcFile
, DWORD Flags
,
78 LPD3DXBUFFER
* ppConstants
,
79 LPD3DXBUFFER
* ppCompiledShader
,
80 LPD3DXBUFFER
* ppCompilationErrors
) {
81 LPWSTR pSrcFileW
= NULL
;
85 if (!pSrcFile
) return D3DXERR_INVALIDDATA
;
87 len
= MultiByteToWideChar( CP_ACP
, 0, pSrcFile
, -1, NULL
, 0 );
88 pSrcFileW
= HeapAlloc( GetProcessHeap(), 0, len
* sizeof(WCHAR
) );
89 MultiByteToWideChar( CP_ACP
, 0, pSrcFile
, -1, pSrcFileW
, len
);
90 ret
=D3DXAssembleShaderFromFileW(pSrcFileW
, Flags
, ppConstants
, ppCompiledShader
, ppCompilationErrors
);
91 HeapFree( GetProcessHeap(), 0, pSrcFileW
);
95 HRESULT WINAPI
D3DXAssembleShaderFromFileW(LPWSTR pSrcFile
, DWORD Flags
,
96 LPD3DXBUFFER
* ppConstants
,
97 LPD3DXBUFFER
* ppCompiledShader
,
98 LPD3DXBUFFER
* ppCompilationErrors
) {
99 FIXME("(void): stub\n");
103 /***********************************************************************
106 BOOL WINAPI
DllMain(HINSTANCE inst
, DWORD reason
, LPVOID reserved
)
110 case DLL_WINE_PREATTACH
:
111 return FALSE
; /* prefer native version */
112 case DLL_PROCESS_ATTACH
:
113 DisableThreadLibraryCalls(inst
);
115 case DLL_PROCESS_DETACH
: