From 73d03f850ad2f624019847e54cf30addc241777e Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Wed, 15 Jul 2015 13:37:50 +1000 Subject: [PATCH] d3dx10_43: Add ID3DX10ThreadPump interface. --- include/Makefile.in | 1 + include/d3dx10core.idl | 66 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 include/d3dx10core.idl diff --git a/include/Makefile.in b/include/Makefile.in index b1104eee42c..84a63818b3e 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -32,6 +32,7 @@ PUBLIC_IDL_H_SRCS = \ d3d11_1.idl \ d3d11sdklayers.idl \ d3dcommon.idl \ + d3dx10core.idl \ ddstream.idl \ devicetopology.idl \ dimm.idl \ diff --git a/include/d3dx10core.idl b/include/d3dx10core.idl new file mode 100644 index 00000000000..f0d8ff60738 --- /dev/null +++ b/include/d3dx10core.idl @@ -0,0 +1,66 @@ +/* + * Copyright 2015 Alistair Leslie-Hughes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +import "oaidl.idl"; +import "ocidl.idl"; +import "dxgi.idl"; +import "d3dcommon.idl"; + +[ + object, + local, + pointer_default(unique) +] +interface ID3DX10DataLoader +{ + HRESULT Load(); + HRESULT Decompress([out] void **data, [in] SIZE_T *bytes); + HRESULT Destroy(); +}; + +[ + object, + local, + pointer_default(unique) +] +interface ID3DX10DataProcessor +{ + HRESULT Process([in] void *data, [in] SIZE_T bytes); + HRESULT CreateDeviceObject([out] void **dataobject); + HRESULT Destroy(); +}; + + +[ + object, + local, + pointer_default(unique), + uuid(c93fecfa-6967-478a-abbc-402d90621fcb) +] +interface ID3DX10ThreadPump : IUnknown +{ + HRESULT AddWorkItem([in] ID3DX10DataLoader *loader, [in] ID3DX10DataProcessor *processor, + [in] HRESULT *result, [out] void **object); + UINT GetWorkItemCount(); + + HRESULT WaitForAllItems(); + HRESULT ProcessDeviceWorkItems([in] UINT count); + + HRESULT PurgeAllItems(); + HRESULT GetQueueStatus([in] UINT *queue, [in] UINT *processqueue, [in] UINT *devicequeue); +};