Module: wine
Branch: master
Commit: 75d2c807d61a5db79ee7c08b8f33b1ecb8381527
URL: http://source.winehq.org/git/wine.git/?a=commit;h=75d2c807d61a5db79ee7c08b8…
Author: Henri Verbeet <hverbeet(a)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 */
Module: wine
Branch: master
Commit: 4817fbc362daa4474e72874eb714dc387ed2e3f8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4817fbc362daa4474e72874eb…
Author: Juan Lang <juan.lang(a)gmail.com>
Date: Tue Feb 24 16:55:00 2009 -0800
crypt32: Avoid reading freed memory when encountering a cyclic chain.
---
dlls/crypt32/chain.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/dlls/crypt32/chain.c b/dlls/crypt32/chain.c
index 5943117..2e414cd 100644
--- a/dlls/crypt32/chain.c
+++ b/dlls/crypt32/chain.c
@@ -306,7 +306,13 @@ static BOOL CRYPT_AddCertToSimpleChain(PCertificateChainEngine engine,
= subjectInfoStatus;
/* FIXME: initialize the rest of element */
if (!(chain->cElement % engine->CycleDetectionModulus))
+ {
CRYPT_CheckSimpleChainForCycles(chain);
+ /* Reinitialize the element pointer in case the chain is
+ * cyclic, in which case the chain is truncated.
+ */
+ element = chain->rgpElement[chain->cElement - 1];
+ }
CRYPT_CombineTrustStatus(&chain->TrustStatus,
&element->TrustStatus);
ret = TRUE;