Improve type display in constant buffer previewer

This commit is contained in:
baldurk
2014-09-13 18:48:37 +01:00
parent 1a2831a52e
commit 475c0dab7c
5 changed files with 54 additions and 16 deletions
+31 -16
View File
@@ -81,18 +81,21 @@ namespace renderdoc
[CustomMarshalAs(CustomUnmanagedType.Union)]
public ValueUnion value;
public bool isStruct;
[CustomMarshalAs(CustomUnmanagedType.TemplatedArray)]
public ShaderVariable[] members;
public override string ToString()
{
if(members.Length > 0) return String.Format("struct[{0}]", members.Length);
if(rows == 1) return Row(0);
public override string ToString()
{
if (members.Length > 0)
return "";
if (rows == 1) return Row(0);
string ret = "";
for (int i = 0; i < (int)rows; i++)
for (int i = 0; i < (int)rows; i++)
{
if(i > 0) ret += ", ";
if (i > 0) ret += ", ";
ret += "{" + Row(i) + "}";
}
@@ -101,24 +104,36 @@ namespace renderdoc
public string RowTypeString()
{
if (members.Length > 0) return "struct";
if (members.Length > 0)
{
if (isStruct)
return "struct";
else
return "flibbertygibbet";
}
if(rows == 0 && columns == 0)
if (rows == 0 && columns == 0)
return "-";
if(columns == 1)
if (columns == 1)
return type.Str();
return String.Format("{0}{1}", type.Str(), columns);
return String.Format("{0}{1}", type.Str(), columns);
}
public string TypeString()
{
if (members.Length > 0) return "struct";
if (members.Length > 0)
{
if (isStruct)
return "struct";
else
return String.Format("{0}[{1}]", members[0].TypeString(), members.Length);
}
if (rows == 1 && columns == 1) return type.Str();
if (rows == 1) return String.Format("{0}{1}", type.Str(), columns);
else return String.Format("{0}{1}x{2}", type.Str(), rows, columns);
if (rows == 1 && columns == 1) return type.Str();
if (rows == 1) return String.Format("{0}{1}", type.Str(), columns);
else return String.Format("{0}{1}x{2}", type.Str(), rows, columns);
}
public string RowValuesToString(int cols, double x, double y)