2 * Copyright 2015 Alistair Leslie-Hughes
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 import
"d3dcommon.idl";
27 pointer_default(unique)
29 interface ID3DX10DataLoader
32 HRESULT Decompress
([out] void **data
, [in] SIZE_T
*bytes
);
39 pointer_default(unique)
41 interface ID3DX10DataProcessor
43 HRESULT Process
([in] void *data
, [in] SIZE_T bytes
);
44 HRESULT CreateDeviceObject
([out] void **dataobject
);
52 pointer_default(unique),
53 uuid(c93fecfa
-6967-478a
-abbc
-402d90621fcb
)
55 interface ID3DX10ThreadPump
: IUnknown
57 HRESULT AddWorkItem
([in] ID3DX10DataLoader
*loader
, [in] ID3DX10DataProcessor
*processor
,
58 [in] HRESULT *result
, [out] void **object);
59 UINT GetWorkItemCount
();
61 HRESULT WaitForAllItems
();
62 HRESULT ProcessDeviceWorkItems
([in] UINT count
);
64 HRESULT PurgeAllItems
();
65 HRESULT GetQueueStatus
([in] UINT
*queue
, [in] UINT
*processqueue
, [in] UINT
*devicequeue
);
68 cpp_quote
("HRESULT WINAPI D3DX10UnsetAllDeviceObjects(ID3D10Device *device);")
69 cpp_quote
("HRESULT WINAPI D3DX10CreateDevice(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type,")
70 cpp_quote
(" HMODULE swrast, unsigned int flags, ID3D10Device **device);")
71 cpp_quote
("HRESULT WINAPI D3DX10GetFeatureLevel1(ID3D10Device *device, ID3D10Device1 **device1);")