Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
EffectInputSignature.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 using System.Collections.Generic;
4 using SiliconStudio.Core.Storage;
5 
6 namespace SiliconStudio.Paradox.Graphics
7 {
8  /// <summary>
9  /// Describes an input signature for an <see cref="Effect"/>.
10  /// </summary>
11  public partial class EffectInputSignature
12  {
13  private static readonly Dictionary<ObjectId, EffectInputSignature> RegisteredSignatures = new Dictionary<ObjectId, EffectInputSignature>();
14 
15  public readonly ObjectId Id;
16 
17  private EffectInputSignature()
18  {
19  }
20 
21  /// <summary>
22  /// Gets the original create signature.
23  /// </summary>
24  /// <param name="signature">The signature.</param>
25  /// <returns>VertexArrayLayout.</returns>
26  internal static EffectInputSignature GetOrCreateLayout(EffectInputSignature signature)
27  {
28  EffectInputSignature registeredLayout;
29  lock (RegisteredSignatures)
30  {
31  if (!RegisteredSignatures.TryGetValue(signature.Id, out registeredLayout))
32  {
33  RegisteredSignatures.Add(signature.Id, signature);
34  registeredLayout = signature;
35  }
36  }
37  return registeredLayout;
38  }
39  }
40 }
Describes an input signature for an Effect.
A hash to uniquely identify data.
Definition: ObjectId.cs:13