/// <summary> /// Create shader using reflector to get buffer mapping directly from shader codes. /// <para>Actual creation happened when calling <see cref="CreateShader(Device, IConstantBufferPool, LogWrapper)"/></para> /// </summary> /// <param name="name"></param> /// <param name="type"></param> /// <param name="reflector"></param> /// <param name="byteCode"></param> public ShaderDescription(string name, ShaderStage type, IShaderReflector reflector, byte[] byteCode) { Name = name; ShaderType = type; ByteCode = byteCode; ShaderReflector = reflector; }
/// <summary> /// Initializes a new instance of the <see cref="ShaderDescription"/> class. Pass <see cref="IShaderByteCodeReader"/> to read external custom shader bytecodes. /// </summary> /// <param name="name">The name.</param> /// <param name="type">The type.</param> /// <param name="reflector">The reflector.</param> /// <param name="byteCodeName">Name of the byte code.</param> /// <param name="byteCodeReader">Used to read external custom shader byte codes</param> public ShaderDescription(string name, ShaderStage type, IShaderReflector reflector, string byteCodeName, IShaderByteCodeReader byteCodeReader = null) { Name = name; ShaderType = type; ByteCodeName = byteCodeName; ShaderReflector = reflector; this.byteCodeReader = byteCodeReader ?? UWPShaderBytePool.InternalByteCodeReader; }
/// <summary> /// Create a empty description /// </summary> public ShaderDescription() { ShaderReflector = new ShaderReflector(); }
/// <summary> /// Create shader using reflector to get buffer mapping directly from shader codes. /// <para>Actual creation happened when calling <see cref="CreateShader(Device, IConstantBufferPool)"/></para> /// </summary> /// <param name="name"></param> /// <param name="type"></param> /// <param name="reflector"></param> /// <param name="byteCode"></param> public ShaderDescription(string name, ShaderStage type, IShaderReflector reflector, byte[] byteCode) : this(name, type, byteCode) { shaderReflector = reflector; }