Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
ParameterCollectionHashSerializer.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 SiliconStudio.Core.Serialization;
4 
5 namespace SiliconStudio.Paradox.Effects.Data
6 {
7  public class ParameterCollectionHashSerializer : ClassDataSerializer<ParameterCollection>, IDataSerializerInitializer
8  {
9  private DataSerializer<ParameterKey> parameterKeySerializer;
10 
11  public void Initialize(SerializerSelector serializerSelector)
12  {
13  parameterKeySerializer = serializerSelector.GetSerializer<ParameterKey>();
14  }
15 
16  public override void Serialize(ref ParameterCollection parameterCollection, ArchiveMode mode, SerializationStream stream)
17  {
18  foreach (var parameter in parameterCollection.InternalValues)
19  {
20  if (parameterCollection.IsValueOwner(parameter.Value))
21  {
22  parameterKeySerializer.Serialize(parameter.Key, stream);
23  parameter.Value.SerializeHash(stream);
24  }
25  }
26  }
27  }
28 }
Key of an effect parameter.
Definition: ParameterKey.cs:15
void Initialize(SerializerSelector serializerSelector)
Initializes the specified serializer.
Base class for implementation of SerializationStream.
Adds initialization feature to a DataSerializer.
Serializer context. It holds DataSerializer{T} objects and their factories.
override void Serialize(ref ParameterCollection parameterCollection, ArchiveMode mode, SerializationStream stream)
ArchiveMode
Enumerates the different mode of serialization (either serialization or deserialization).
Definition: ArchiveMode.cs:8
A container to handle a hierarchical collection of effect variables.