private void ReadCanvasKind(YamlMappingNode mapping) { if (mapping.TryGetNode("light_mode", out var node)) { switch (node.AsString()) { case "normal": LightMode = LightModeEnum.Normal; break; case "unshaded": LightMode = LightModeEnum.Unshaded; break; case "light_only": LightMode = LightModeEnum.LightOnly; break; default: throw new InvalidOperationException($"Invalid light mode: '{node.AsString()}'"); } } if (mapping.TryGetNode("blend_mode", out node)) { switch (node.AsString()) { case "mix": BlendMode = BlendModeEnum.Mix; break; case "add": BlendMode = BlendModeEnum.Add; break; case "subtract": BlendMode = BlendModeEnum.Subtract; break; case "multiply": BlendMode = BlendModeEnum.Multiply; break; case "premultiplied_alpha": BlendMode = BlendModeEnum.PremultipliedAlpha; break; default: throw new InvalidOperationException($"Invalid blend mode: '{node.AsString()}'"); } } }
/// <summary> /// 解析処理 /// </summary> /// <param name="data">解析対象バイト配列</param> /// <param name="startIndex">解析開始インデックス</param> /// <returns>解析済みインデックス</returns> public override int Analyze(byte[] data, int startIndex) { int retVal = 0; int index = startIndex; int value = BitConverter.ToInt32(data, index); this.Mode = (LightModeEnum)value; index += sizeof(int); retVal = index; return(retVal); }