/// <summary> /// Adds a VertexFormat change to the device. /// </summary> /// <param name="vertexFormat">VertexFormat</param> /// <returns>Device Option Instance</returns> public DeviceOption AddVertexFormat(VertexFormat vertexFormat) { Use.Add(DeviceOptionIdentity.VertexFormat, true); var oldFormat = Device.VertexFormat; VertexFormat = new[] { vertexFormat, oldFormat }; return(this); }
/// <summary> /// Adds a PixelShader change to the device. /// </summary> /// <param name="pixelShader">PixelShader</param> /// <returns>Device Option Instance</returns> public DeviceOption AddPixelShader(PixelShader pixelShader) { Use.Add(DeviceOptionIdentity.PixelShader, true); var oldShader = Device.PixelShader; PixelShader = new[] { pixelShader, oldShader }; return(this); }
/// <summary> /// Adds a Texture change to the device based on texture stage. /// </summary> /// <param name="stage">Stage</param> /// <param name="texture">Texture</param> /// <returns>Device Option Instance</returns> public DeviceOption AddTexture(int stage, BaseTexture texture) { Use.Add(DeviceOptionIdentity.Texture, true); var oldTexture = Device.GetTexture(stage); TextureStage = stage; Texture = new[] { texture, oldTexture }; return(this); }
/// <summary> /// Adds a Stream Source change to the device. /// </summary> /// <param name="streamNumber">Stream Number</param> /// <param name="buffer">VertexBuffer</param> /// <param name="offsetInBytes">Offset In Bytes</param> /// <param name="stride">Stride</param> /// <returns>Device Option Instance</returns> public DeviceOption AddStreamSource(int streamNumber, VertexBuffer buffer, int offsetInBytes, int stride) { Use.Add(DeviceOptionIdentity.StreamSource, true); VertexBuffer oldBuffer; int oldOffsetInBytes; int oldStride; Device.GetStreamSource(streamNumber, out oldBuffer, out oldOffsetInBytes, out oldStride); StreamNumber = streamNumber; Buffer = new[] { buffer, oldBuffer }; BufferOffsetInBytes = new[] { offsetInBytes, oldOffsetInBytes }; BufferStride = new[] { stride, oldStride }; return(this); }