public static RegisterType GetRegisterType(HLSLType codeType) { switch (codeType) { case HLSLType.Float: case HLSLType.Float2: case HLSLType.Float3: case HLSLType.Float4: case HLSLType.Xform_2d: case HLSLType.Xform_3d: return(RegisterType.Vector); case HLSLType.Sampler: case HLSLType.sampler2D: case HLSLType.sampler3D: return(RegisterType.Sampler); case HLSLType.Bool: case HLSLType.Bool2: case HLSLType.Bool3: case HLSLType.Bool4: return(RegisterType.Boolean); case HLSLType.Int: case HLSLType.Int2: case HLSLType.Int3: case HLSLType.Int4: return(RegisterType.Integer); default: return(RegisterType.Vector); } }
// TODO: add default values public ShaderParameter(string parameterName, string registerName, HLSLType type, RenderMethodExtern renderMethodExtern = RenderMethodExtern.none, ShaderParameterFlags flags = ShaderParameterFlags.None) { ParameterName = parameterName; RegisterName = registerName; CodeType = type; RegisterType = GetRegisterType(type); RenderMethodExtern = renderMethodExtern; Flags = flags; }