60 lines
1.3 KiB
C#
60 lines
1.3 KiB
C#
|
using System;
|
|||
|
|
|||
|
// This file is part of the ANX.Framework created by the
|
|||
|
// "ANX.Framework developer group" and released under the Ms-PL license.
|
|||
|
// For details see: http://anxframework.codeplex.com/license
|
|||
|
|
|||
|
namespace ANX.Framework.Content.Pipeline.Helpers.HLSLParser
|
|||
|
{
|
|||
|
public class EffectBuffer : IShaderElement
|
|||
|
{
|
|||
|
#region Public
|
|||
|
public string Name
|
|||
|
{
|
|||
|
get;
|
|||
|
private set;
|
|||
|
}
|
|||
|
|
|||
|
public string Type
|
|||
|
{
|
|||
|
get;
|
|||
|
private set;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region Constructor
|
|||
|
public EffectBuffer(ParseTextWalker walker)
|
|||
|
{
|
|||
|
string text = walker.Text;
|
|||
|
|
|||
|
int typeStartIndex = text.IndexOf('<') + 1;
|
|||
|
int typeEndIndex = text.IndexOf('>');
|
|||
|
Type = text.Substring(typeStartIndex, typeEndIndex - typeStartIndex);
|
|||
|
|
|||
|
typeEndIndex++;
|
|||
|
|
|||
|
int semicolonIndex = text.IndexOf(';');
|
|||
|
Name = text.Substring(typeEndIndex, semicolonIndex - typeEndIndex).Trim();
|
|||
|
|
|||
|
walker.Seek(semicolonIndex + 1);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region TryParse
|
|||
|
public static EffectBuffer TryParse(ParseTextWalker walker)
|
|||
|
{
|
|||
|
return walker.Text.StartsWith("Buffer") ?
|
|||
|
new EffectBuffer(walker) :
|
|||
|
null;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region ToString
|
|||
|
public override string ToString()
|
|||
|
{
|
|||
|
return "Buffer<" + Type + "> " + Name + ";";
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
}
|