diff --git a/.gitignore b/.gitignore index d59a2112272..b2ca69765f7 100644 --- a/.gitignore +++ b/.gitignore @@ -216,6 +216,7 @@ include/propsys.h include/pstore.h include/qedit.h include/richole.h +include/rmxftmpl.h include/sensevts.h include/servprov.h include/shdeprecated.h diff --git a/include/Makefile.in b/include/Makefile.in index 0bd54f7ee52..590d5d07568 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -107,6 +107,9 @@ PUBLIC_IDL_H_SRCS = \ IDL_TLB_SRCS = \ stdole2.idl +XTEMPLATE_SRCS = \ + rmxftmpl.x + SRCDIR_INCLUDES = \ $(IDL_TLB_SRCS) \ $(PUBLIC_IDL_H_SRCS) \ @@ -580,6 +583,9 @@ OBJDIR_INCLUDES = $(PUBLIC_IDL_H_SRCS:.idl=.h) $(XTEMPLATE_SRCS:.x=.h) all: $(IDL_H_SRCS:.idl=.h) $(IDL_TLB_SRCS:.idl=.tlb) $(XTEMPLATE_SRCS:.x=.h) +rmxftmpl.h: rmxftmpl.x $(MAKEXFTMPL) + $(MAKEXFTMPL) -i D3DRM_XTEMPLATES -s D3DRM_XTEMPLATE_BYTES -o $@ $(srcdir)/rmxftmpl.x + install install-dev:: $(OBJDIR_INCLUDES) $(INSTALLDIRS) for f in $(SRCDIR_INCLUDES); do case $$f in \ wine/*) $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(includedir)/`expr $$f : 'wine/\(.*\)'` ;; \ diff --git a/include/rmxftmpl.x b/include/rmxftmpl.x new file mode 100644 index 00000000000..e7144b0914c --- /dev/null +++ b/include/rmxftmpl.x @@ -0,0 +1,268 @@ +xof 0302txt 0064 +// Copyright (C) 2011 Dylan Smith +// +// 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 + +template Header +{ + <3D82AB43-62DA-11CF-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector +{ + <3D82AB5E-62DA-11CF-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d +{ + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 +{ + + array FLOAT matrix[16]; +} + +template ColorRGBA +{ + <35FF44E0-6C7C-11CF-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB +{ + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template IndexedColor +{ + <1630B820-7842-11CF-8F52-0040333594A3> + DWORD index; + ColorRGBA indexColor; +} + +template Boolean +{ + <537DA6A0-CA37-11D0-941C-0080C80CFA7B> + DWORD truefalse; +} + +template Boolean2d +{ + <4885AE63-78E8-11CF-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template MaterialWrap +{ + <4885AE60-78E8-11CF-8F52-0040333594A3> + Boolean u; + Boolean v; +} + +template TextureFilename +{ + + STRING filename; +} + +template Material +{ + <3D82AB4D-62DA-11CF-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [ ... ] +} + +template MeshFace +{ + <3D82AB5F-62DA-11CF-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshFaceWraps +{ + + DWORD nFaceWrapValues; + array Boolean2d faceWrapValues[nFaceWrapValues]; +} + +template MeshTextureCoords +{ + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList +{ + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [ Material ] +} + +template MeshNormals +{ + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template MeshVertexColors +{ + <1630B821-7842-11CF-8F52-0040333594A3> + DWORD nVertexColors; + array IndexedColor vertexColors[nVertexColors]; +} + +template Mesh +{ + <3D82AB44-62DA-11CF-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [ ... ] +} + +template FrameTransformMatrix +{ + + Matrix4x4 frameMatrix; +} + +template Frame +{ + <3D82AB46-62DA-11CF-AB39-0020AF71E433> + [ ... ] +} + +template FloatKeys +{ + <10DD46A9-775B-11CF-8F52-0040333594A3> + DWORD nValues; + array FLOAT values[nValues]; +} + +template TimedFloatKeys +{ + + DWORD time; + FloatKeys tfkeys; +} + +template AnimationKey +{ + <10DD46A8-775B-11CF-8F52-0040333594A3> + DWORD keyType; + DWORD nKeys; + array TimedFloatKeys keys[nKeys]; +} + +template AnimationOptions +{ + + DWORD openclosed; + DWORD positionquality; +} + +template Animation +{ + <3D82AB4F-62DA-11CF-AB39-0020AF71E433> + [ ... ] +} + +template AnimationSet +{ + <3D82AB50-62DA-11CF-AB39-0020AF71E433> + [ Animation ] +} + +template InlineData +{ + <3A23EEA0-94B1-11D0-AB39-0020AF71E433> + [ BINARY ] +} + +template Url +{ + <3A23EEA1-94B1-11D0-AB39-0020AF71E433> + DWORD nUrls; + array STRING urls[nUrls]; +} + +template ProgressiveMesh +{ + <8A63C360-997D-11D0-941C-0080C80CFA7B> + [ Url, InlineData ] +} + +template Guid +{ + + DWORD data1; + WORD data2; + WORD data3; + array UCHAR data4[8]; +} + +template StringProperty +{ + <7F0F21E0-BFE1-11D1-82C0-00A0C9697271> + STRING key; + STRING value; +} + +template PropertyBag +{ + <7F0F21E1-BFE1-11D1-82C0-00A0C9697271> + [ StringProperty ] +} + +template ExternalVisual +{ + <98116AA0-BDBA-11D1-82C0-00A0C9697271> + Guid guidExternalVisual; + [ ... ] +} + +template RightHanded +{ + <7F5D5EA0-D53A-11D1-82C0-00A0C9697271> + DWORD bRightHanded; +}