/// <summary> /// 複数の頂点要素を合成する /// </summary> /// <param name="graphicsDevice">頂点宣言を生成する為のGraphicsDevice</param> /// <param name="originalElements">元の頂点要素</param> /// <param name="extraElements">追加する頂点要素</param> /// <returns>新要素追加後の頂点宣言</returns> public static VertexDeclaration ExtendVertexDeclaration( GraphicsDevice graphicsDevice, VertexElement[] originalElements, VertexElement[] extraElements) { int length = originalElements.Length + extraElements.Length; VertexElement[] elements = new VertexElement[length]; originalElements.CopyTo( elements, 0 ); extraElements.CopyTo( elements, originalElements.Length ); return new VertexDeclaration( graphicsDevice, elements ); }
/// <summary> /// Modifies vertex declaration to include additional channels /// </summary> /// <param name="extraElements"></param> void ExtendVertexDeclaration(VertexElement[] extraElements) { vertexDeclaration.Dispose(); int length = originalVertexDeclaration.Length + extraElements.Length; VertexElement[] elements = new VertexElement[length]; originalVertexDeclaration.CopyTo(elements, 0); extraElements.CopyTo(elements, originalVertexDeclaration.Length); // Create vertexDeclaration = new VertexDeclaration(device, elements); }