public ShaderType(MatrixParameter matrixParam, ShaderGpuProgramType programType) { ShaderVariableClass = ShaderVariableClass.MatrixColumns; ShaderVariableType = GetVariableType(matrixParam.Type); Rows = matrixParam.RowCount; Columns = matrixParam.ColumnCount; ElementCount = (ushort)matrixParam.ArraySize; MemberCount = 0; MemberOffset = 0; this.programType = programType; }
public ShaderType(MatrixParameter matrixParam, ShaderGpuProgramType programType) { ShaderVariableClass = ShaderVariableClass.MatrixColumns; //TODO: matrix colums or rows? ShaderVariableType = GetVariableType(matrixParam.Type); Rows = matrixParam.RowCount; Columns = matrixParam.RowCount; ElementCount = 0; MemberCount = 0; MemberOffset = 0; this.programType = programType; }
public ShaderType(VectorParameter vectorParam, ShaderGpuProgramType programType) { ShaderVariableClass = vectorParam.Dim > 1 ? ShaderVariableClass.Vector : ShaderVariableClass.Scalar; ShaderVariableType = GetVariableType(vectorParam.Type); Rows = 1; Columns = vectorParam.Dim; ElementCount = 0; MemberCount = 0; MemberOffset = 0; this.programType = programType; }
public ShaderType(StructParameter structParameter, ShaderGpuProgramType programType) { members.AddRange(structParameter.VectorMembers.Select(p => new ShaderTypeMember(p, programType))); members.AddRange(structParameter.MatrixMembers.Select(p => new ShaderTypeMember(p, programType))); members = members .OrderBy(v => v.Index) .ToList(); ShaderVariableClass = ShaderVariableClass.Struct; //TODO: matrix colums or rows? ShaderVariableType = ShaderVariableType.Void; Rows = 0; Columns = 0; ElementCount = 0; MemberCount = (ushort)members.Count(); MemberOffset = 0; this.programType = programType; }
static ParameterDescription ParamDesc(string name, string semanticName, ShaderVariableType type, ShaderVariableClass @class, int rows, int columns, SharpDX.Direct3D.InterpolationMode interpolationMode, ParameterFlags flags, int firstInRegister, int firstInComponent, int firstOutRegister, int firstOutComponent) { return(new ParameterDescription() { Name = name, SemanticName = semanticName, Type = type, Class = @class, Rows = rows, Columns = columns, InterpolationMode = interpolationMode, Flags = flags, FirstInRegister = firstInRegister, FirstInComponent = firstInComponent, FirstOutRegister = firstOutRegister, FirstOutComponent = firstOutComponent }); }