/// <summary> /// Generates the mixin. /// </summary> /// <param name="mixinName">Name of the mixin.</param> /// <param name="properties">The properties that the mixin will use.</param> /// <param name="usedProperties">The properties effectively used by the mixin.</param> /// <returns>ShaderMixinSource.</returns> private static ShaderMixinSource GenerateMixin(string mixinName, ParameterCollection properties, out ShaderMixinParameters usedProperties) { var allUsedProperties = new List<ShaderMixinParameters>(); var mixin = ShaderMixinManager.Generate(mixinName, properties); usedProperties = mixin.UsedParameters; // Verify that output used properties are a subset of input properties Assert.That(usedProperties.IsSubsetOf(properties), Is.True); foreach(var usedProps in allUsedProperties) Assert.That(usedProps.IsSubsetOf(properties), Is.True); return mixin; }
/// <summary> /// Generates the mixin. /// </summary> /// <param name="mixinName">Name of the mixin.</param> /// <param name="properties">The properties that the mixin will use.</param> /// <param name="usedProperties">The properties effectively used by the mixin.</param> /// <returns>ShaderMixinSource.</returns> private static ShaderMixinSourceTree GenerateMixin(string mixinName, ParameterCollection properties, out ShaderMixinParameters usedProperties) { var allUsedProperties = new List <ShaderMixinParameters>(); var mixin = ShaderMixinManager.Generate(mixinName, properties, out usedProperties, out allUsedProperties); // Verify that output used properties are a subset of input properties Assert.That(usedProperties.IsSubsetOf(properties), Is.True); foreach (var usedProps in allUsedProperties) { Assert.That(usedProps.IsSubsetOf(properties), Is.True); } return(mixin); }
public void TestShaderParametersSerialization() { // Test serialization var shaderParameters = new ShaderMixinParameters("Test"); shaderParameters.Set(PropertyInt, 5); var subShaderParameters = new ShaderMixinParameters("Sub"); subShaderParameters.Set(PropertyInt, 6); shaderParameters.Set(PropertySub, subShaderParameters); var subShaderParametersArray = new ShaderMixinParameters[1]; var subShaderParametersArray1 = new ShaderMixinParameters("InArray1"); subShaderParametersArray[0] = subShaderParametersArray1; subShaderParametersArray1.Set(PropertyInt, 7); shaderParameters.Set(PropertySubs, subShaderParametersArray); var memoryStream = new MemoryStream(); var writer = new BinarySerializationWriter(memoryStream); writer.Write(shaderParameters); writer.Flush(); memoryStream.Position = 0; var reader = new BinarySerializationReader(memoryStream); var shaderParametersReloaded = reader.Read <ShaderMixinParameters>(); // They should be strictly equal Assert.That(shaderParametersReloaded.IsSubsetOf(shaderParameters), Is.True); Assert.That(shaderParameters.IsSubsetOf(shaderParametersReloaded), Is.True); // Test subset // Check that by removing one key from the original parameters, the reloaded version is // no longer a subset subShaderParametersArray1.Remove(PropertyInt); Assert.That(shaderParametersReloaded.IsSubsetOf(shaderParameters), Is.False); }
public void TestShaderParametersSerialization() { // Test serialization var shaderParameters = new ShaderMixinParameters("Test"); shaderParameters.Set(PropertyInt, 5); var subShaderParameters = new ShaderMixinParameters("Sub"); subShaderParameters.Set(PropertyInt, 6); shaderParameters.Set(PropertySub, subShaderParameters); var subShaderParametersArray = new ShaderMixinParameters[1]; var subShaderParametersArray1 = new ShaderMixinParameters("InArray1"); subShaderParametersArray[0] = subShaderParametersArray1; subShaderParametersArray1.Set(PropertyInt, 7); shaderParameters.Set(PropertySubs, subShaderParametersArray); var memoryStream = new MemoryStream(); var writer = new BinarySerializationWriter(memoryStream); writer.Write(shaderParameters); writer.Flush(); memoryStream.Position = 0; var reader = new BinarySerializationReader(memoryStream); var shaderParametersReloaded = reader.Read<ShaderMixinParameters>(); // They should be strictly equal Assert.That(shaderParametersReloaded.IsSubsetOf(shaderParameters), Is.True); Assert.That(shaderParameters.IsSubsetOf(shaderParametersReloaded), Is.True); // Test subset // Check that by removing one key from the original parameters, the reloaded version is // no longer a subset subShaderParametersArray1.Remove(PropertyInt); Assert.That(shaderParametersReloaded.IsSubsetOf(shaderParameters), Is.False); }