Reign.Video.D3D11.Shader.getReflections C# (CSharp) Method

getReflections() private method

private getReflections ( string filename ) : System.Threading.Tasks.Task
filename string
return System.Threading.Tasks.Task
		private async Task getReflections(string filename)
		{
			vsVariableNames = new List<string>();
			vsVariableByteOffsets = new List<int>();
			vsResourceNames = new List<string>();
			vsResourceIndices = new List<int>();

			psVariableNames = new List<string>();
			psVariableByteOffsets = new List<int>();
			psResourceNames = new List<string>();
			psResourceIndices = new List<int>();

			vsVariableBufferSize = 0;
			vsResourceCount = 0;
			psVariableBufferSize = 0;
			psResourceCount = 0;

			using (var file = await Streams.OpenFile(Streams.StripFileExt(filename) + ".ref"))
			using (var reader = new System.IO.StreamReader(file))
			{
				var value = reader.ReadLine();
				while (value != null)
				{
					var values = value.Split(' ');

					bool vsVar = false, psVar = false, vsRes = false, psRes = false;
					switch (values[0])
					{
						case "gVar":
							vsVar = true;
							psVar = true;
							break;

						case "gRes":
							vsRes = true;
							psRes = true;
							break;

						case "vsVar": vsVar = true; break;
						case "psVar": psVar = true; break;
						case "vsRes": vsRes = true; break;
						case "psRes": psRes = true; break;
					}

					if (vsVar)
					{
						vsVariableNames.Add(values[1]);
						vsVariableByteOffsets.Add(int.Parse(values[2]));
						vsVariableBufferSize += int.Parse(values[3]);
					}

					if (psVar)
					{
						psVariableNames.Add(values[1]);
						psVariableByteOffsets.Add(int.Parse(values[2]));
						psVariableBufferSize += int.Parse(values[3]);
					}

					if (vsRes)
					{
						vsResourceNames.Add(values[1]);
						vsResourceIndices.Add(int.Parse(values[2]));
						++vsResourceCount;
					}
				
					if (psRes)
					{
						psResourceNames.Add(values[1]);
						psResourceIndices.Add(int.Parse(values[2]));
						++psResourceCount;
					}

					value = reader.ReadLine();
				}
			}

			// make sure padding is a multiple of 16
			int percent = vsVariableBufferSize % 16;
			if (percent != 0) vsVariableBufferSize += 16 - percent;
			percent = psVariableBufferSize % 16;
			if (percent != 0) psVariableBufferSize += 16 - percent;
		}
		#endif