Module: wine Branch: master Commit: 75d2c807d61a5db79ee7c08b8f33b1ecb8381527 URL: http://source.winehq.org/git/wine.git/?a=commit;h=75d2c807d61a5db79ee7c08b8f...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Wed Feb 25 08:39:01 2009 +0100
d3d10: Add the ID3D10EffectType interface.
---
include/Makefile.in | 2 + include/d3d10.idl | 6 ++-- include/d3d10effect.h | 54 +++++++++++++++++++++++++++++++++++++ include/d3d10shader.h | 70 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 129 insertions(+), 3 deletions(-)
diff --git a/include/Makefile.in b/include/Makefile.in index 5411cc0..f3dc4ff 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -121,7 +121,9 @@ SRCDIR_INCLUDES = \ custcntl.h \ cvconst.h \ d3d.h \ + d3d10effect.h \ d3d10misc.h \ + d3d10shader.h \ d3d8.h \ d3d8caps.h \ d3d8types.h \ diff --git a/include/d3d10.idl b/include/d3d10.idl index ad90ede..6205917 100644 --- a/include/d3d10.idl +++ b/include/d3d10.idl @@ -1533,7 +1533,7 @@ interface ID3D10Multithread : IUnknown BOOL GetMultithreadProtected(); }
-cpp_quote("#include <d3d10misc.h>") -/* TODO: Include "d310effect.h" as soon as it exists */ -/* TODO: Include "d310shader.h" as soon as it exists */ +cpp_quote("#include "d3d10misc.h"") +cpp_quote("#include "d3d10shader.h"") +cpp_quote("#include "d3d10effect.h"") /* TODO: Include "d310sdklayers.h" as soon as it exists */ diff --git a/include/d3d10effect.h b/include/d3d10effect.h new file mode 100644 index 0000000..2ebca68 --- /dev/null +++ b/include/d3d10effect.h @@ -0,0 +1,54 @@ +/* + * Copyright 2009 Henri Verbeet for CodeWeavers + * + * 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 + * + */ + +#ifndef __WINE_D3D10EFFECT_H +#define __WINE_D3D10EFFECT_H + +#include "d3d10.h" + +typedef struct _D3D10_EFFECT_TYPE_DESC +{ + LPCSTR TypeName; + D3D10_SHADER_VARIABLE_CLASS Class; + D3D10_SHADER_VARIABLE_TYPE Type; + UINT Elements; + UINT Members; + UINT Rows; + UINT Columns; + UINT PackedSize; + UINT UnpackedSize; + UINT Stride; +} D3D10_EFFECT_TYPE_DESC; + +DEFINE_GUID(IID_ID3D10EffectType, 0x4e9e1ddc, 0xcd9d, 0x4772, 0xa8, 0x37, 0x00, 0x18, 0x0b, 0x9b, 0x88, 0xfd); + +#define INTERFACE ID3D10EffectType +DECLARE_INTERFACE(ID3D10EffectType) +{ + STDMETHOD_(BOOL, IsValid)(THIS) PURE; + STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_TYPE_DESC *desc) PURE; + STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeByIndex)(THIS_ UINT index) PURE; + STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeByName)(THIS_ LPCSTR name) PURE; + STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeBySemantic)(THIS_ LPCSTR semantic) PURE; + STDMETHOD_(LPCSTR, GetMemberName)(THIS_ UINT index) PURE; + STDMETHOD_(LPCSTR, GetMemberSemantic)(THIS_ UINT index) PURE; +}; +#undef INTERFACE + +#endif /* __WINE_D3D10EFFECT_H */ diff --git a/include/d3d10shader.h b/include/d3d10shader.h new file mode 100644 index 0000000..8564c03 --- /dev/null +++ b/include/d3d10shader.h @@ -0,0 +1,70 @@ +/* + * Copyright 2009 Henri Verbeet for CodeWeavers + * + * 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 + * + */ + +#ifndef __WINE_D3D10SHADER_H +#define __WINE_D3D10SHADER_H + +#include "d3d10.h" + +typedef enum _D3D10_SHADER_VARIABLE_CLASS +{ + D3D10_SVC_SCALAR, + D3D10_SVC_VECTOR, + D3D10_SVC_MATRIX_ROWS, + D3D10_SVC_MATRIX_COLUMNS, + D3D10_SVC_OBJECT, + D3D10_SVC_STRUCT, + D3D10_SVC_FORCE_DWORD = 0x7fffffff +} D3D10_SHADER_VARIABLE_CLASS, *LPD3D10_SHADER_VARIABLE_CLASS; + +typedef enum _D3D10_SHADER_VARIABLE_TYPE +{ + D3D10_SVT_VOID = 0, + D3D10_SVT_BOOL = 1, + D3D10_SVT_INT = 2, + D3D10_SVT_FLOAT = 3, + D3D10_SVT_STRING = 4, + D3D10_SVT_TEXTURE = 5, + D3D10_SVT_TEXTURE1D = 6, + D3D10_SVT_TEXTURE2D = 7, + D3D10_SVT_TEXTURE3D = 8, + D3D10_SVT_TEXTURECUBE = 9, + D3D10_SVT_SAMPLER = 10, + D3D10_SVT_PIXELSHADER = 15, + D3D10_SVT_VERTEXSHADER = 16, + D3D10_SVT_UINT = 19, + D3D10_SVT_UINT8 = 20, + D3D10_SVT_GEOMETRYSHADER = 21, + D3D10_SVT_RASTERIZER = 22, + D3D10_SVT_DEPTHSTENCIL = 23, + D3D10_SVT_BLEND = 24, + D3D10_SVT_BUFFER = 25, + D3D10_SVT_CBUFFER = 26, + D3D10_SVT_TBUFFER = 27, + D3D10_SVT_TEXTURE1DARRAY = 28, + D3D10_SVT_TEXTURE2DARRAY = 29, + D3D10_SVT_RENDERTARGETVIEW = 30, + D3D10_SVT_DEPTHSTENCILVIEW = 31, + D3D10_SVT_TEXTURE2DMS = 32, + D3D10_SVT_TEXTURE2DMSARRAY = 33, + D3D10_SVT_TEXTURECUBEARRAY = 34, + D3D10_SVT_FORCE_DWORD = 0x7fffffff +} D3D10_SHADER_VARIABLE_TYPE, *LPD3D10_SHADER_VARIABLE_TYPE; + +#endif /* __WINE_D3D10SHADER_H */