Blend state ABI break
							parent
							
								
									9028a8b1a0
								
							
						
					
					
						commit
						32b269526f
					
				|  | @ -1 +1 @@ | ||||||
| Subproject commit 5a411e482ebe619a7e85c44584faa5bd71b7ee3b | Subproject commit 61ec63b71f9fc3163ef5a8d985fbb53e3f02dbf9 | ||||||
|  | @ -154,5 +154,6 @@ namespace MoonWorks.Graphics | ||||||
| 	{ | 	{ | ||||||
| 		public TextureFormat Format; | 		public TextureFormat Format; | ||||||
| 		public SampleCount SampleCount; | 		public SampleCount SampleCount; | ||||||
|  | 		public ColorAttachmentBlendState BlendState; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -49,15 +49,6 @@ namespace MoonWorks.Graphics | ||||||
| 				GCHandleType.Pinned | 				GCHandleType.Pinned | ||||||
| 			); | 			); | ||||||
| 
 | 
 | ||||||
| 			var colorTargetBlendStates = stackalloc Refresh.ColorTargetBlendState[ |  | ||||||
| 				colorBlendState.ColorTargetBlendStates.Length |  | ||||||
| 			]; |  | ||||||
| 
 |  | ||||||
| 			for (var i = 0; i < colorBlendState.ColorTargetBlendStates.Length; i += 1) |  | ||||||
| 			{ |  | ||||||
| 				colorTargetBlendStates[i] = colorBlendState.ColorTargetBlendStates[i].ToRefreshColorTargetBlendState(); |  | ||||||
| 			} |  | ||||||
| 
 |  | ||||||
| 			var colorAttachmentDescriptions = stackalloc Refresh.ColorAttachmentDescription[ | 			var colorAttachmentDescriptions = stackalloc Refresh.ColorAttachmentDescription[ | ||||||
| 				(int) attachmentInfo.ColorAttachmentDescriptions.Length | 				(int) attachmentInfo.ColorAttachmentDescriptions.Length | ||||||
| 			]; | 			]; | ||||||
|  | @ -66,14 +57,13 @@ namespace MoonWorks.Graphics | ||||||
| 			{ | 			{ | ||||||
| 				colorAttachmentDescriptions[i].format = (Refresh.TextureFormat) attachmentInfo.ColorAttachmentDescriptions[i].Format; | 				colorAttachmentDescriptions[i].format = (Refresh.TextureFormat) attachmentInfo.ColorAttachmentDescriptions[i].Format; | ||||||
| 				colorAttachmentDescriptions[i].sampleCount = (Refresh.SampleCount) attachmentInfo.ColorAttachmentDescriptions[i].SampleCount; | 				colorAttachmentDescriptions[i].sampleCount = (Refresh.SampleCount) attachmentInfo.ColorAttachmentDescriptions[i].SampleCount; | ||||||
|  | 				colorAttachmentDescriptions[i].blendState = attachmentInfo.ColorAttachmentDescriptions[i].BlendState.ToRefresh(); | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			Refresh.GraphicsPipelineCreateInfo refreshGraphicsPipelineCreateInfo; | 			Refresh.GraphicsPipelineCreateInfo refreshGraphicsPipelineCreateInfo; | ||||||
| 
 | 
 | ||||||
| 			refreshGraphicsPipelineCreateInfo.colorBlendState.logicOpEnable = Conversions.BoolToByte(colorBlendState.LogicOpEnable); | 			refreshGraphicsPipelineCreateInfo.colorBlendState.logicOpEnable = Conversions.BoolToByte(colorBlendState.LogicOpEnable); | ||||||
| 			refreshGraphicsPipelineCreateInfo.colorBlendState.logicOp = (Refresh.LogicOp) colorBlendState.LogicOp; | 			refreshGraphicsPipelineCreateInfo.colorBlendState.logicOp = (Refresh.LogicOp) colorBlendState.LogicOp; | ||||||
| 			refreshGraphicsPipelineCreateInfo.colorBlendState.blendStates = (IntPtr) colorTargetBlendStates; |  | ||||||
| 			refreshGraphicsPipelineCreateInfo.colorBlendState.blendStateCount = (uint) colorBlendState.ColorTargetBlendStates.Length; |  | ||||||
| 			refreshGraphicsPipelineCreateInfo.colorBlendState.blendConstants[0] = colorBlendState.BlendConstants.R; | 			refreshGraphicsPipelineCreateInfo.colorBlendState.blendConstants[0] = colorBlendState.BlendConstants.R; | ||||||
| 			refreshGraphicsPipelineCreateInfo.colorBlendState.blendConstants[1] = colorBlendState.BlendConstants.G; | 			refreshGraphicsPipelineCreateInfo.colorBlendState.blendConstants[1] = colorBlendState.BlendConstants.G; | ||||||
| 			refreshGraphicsPipelineCreateInfo.colorBlendState.blendConstants[2] = colorBlendState.BlendConstants.B; | 			refreshGraphicsPipelineCreateInfo.colorBlendState.blendConstants[2] = colorBlendState.BlendConstants.B; | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| 
 | 
 | ||||||
| namespace MoonWorks.Graphics | namespace MoonWorks.Graphics | ||||||
| { | { | ||||||
| 	public struct ColorTargetBlendState | 	public struct ColorAttachmentBlendState | ||||||
| 	{ | 	{ | ||||||
| 		/// <summary> | 		/// <summary> | ||||||
| 		/// If disabled, no blending will occur. | 		/// If disabled, no blending will occur. | ||||||
|  | @ -43,7 +43,7 @@ namespace MoonWorks.Graphics | ||||||
| 		/// </summary> | 		/// </summary> | ||||||
| 		public BlendFactor SourceColorBlendFactor; | 		public BlendFactor SourceColorBlendFactor; | ||||||
| 
 | 
 | ||||||
| 		public static readonly ColorTargetBlendState Additive = new ColorTargetBlendState | 		public static readonly ColorAttachmentBlendState Additive = new ColorAttachmentBlendState | ||||||
| 		{ | 		{ | ||||||
| 			BlendEnable = true, | 			BlendEnable = true, | ||||||
| 			AlphaBlendOp = BlendOp.Add, | 			AlphaBlendOp = BlendOp.Add, | ||||||
|  | @ -55,7 +55,7 @@ namespace MoonWorks.Graphics | ||||||
| 			DestinationAlphaBlendFactor = BlendFactor.One | 			DestinationAlphaBlendFactor = BlendFactor.One | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		public static readonly ColorTargetBlendState AlphaBlend = new ColorTargetBlendState | 		public static readonly ColorAttachmentBlendState AlphaBlend = new ColorAttachmentBlendState | ||||||
| 		{ | 		{ | ||||||
| 			BlendEnable = true, | 			BlendEnable = true, | ||||||
| 			AlphaBlendOp = BlendOp.Add, | 			AlphaBlendOp = BlendOp.Add, | ||||||
|  | @ -67,7 +67,7 @@ namespace MoonWorks.Graphics | ||||||
| 			DestinationAlphaBlendFactor = BlendFactor.OneMinusSourceAlpha | 			DestinationAlphaBlendFactor = BlendFactor.OneMinusSourceAlpha | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		public static readonly ColorTargetBlendState NonPremultiplied = new ColorTargetBlendState | 		public static readonly ColorAttachmentBlendState NonPremultiplied = new ColorAttachmentBlendState | ||||||
| 		{ | 		{ | ||||||
| 			BlendEnable = true, | 			BlendEnable = true, | ||||||
| 			AlphaBlendOp = BlendOp.Add, | 			AlphaBlendOp = BlendOp.Add, | ||||||
|  | @ -79,7 +79,7 @@ namespace MoonWorks.Graphics | ||||||
| 			DestinationAlphaBlendFactor = BlendFactor.OneMinusSourceAlpha | 			DestinationAlphaBlendFactor = BlendFactor.OneMinusSourceAlpha | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		public static readonly ColorTargetBlendState Opaque = new ColorTargetBlendState | 		public static readonly ColorAttachmentBlendState Opaque = new ColorAttachmentBlendState | ||||||
| 		{ | 		{ | ||||||
| 			BlendEnable = true, | 			BlendEnable = true, | ||||||
| 			AlphaBlendOp = BlendOp.Add, | 			AlphaBlendOp = BlendOp.Add, | ||||||
|  | @ -91,21 +91,21 @@ namespace MoonWorks.Graphics | ||||||
| 			DestinationAlphaBlendFactor = BlendFactor.Zero | 			DestinationAlphaBlendFactor = BlendFactor.Zero | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		public static readonly ColorTargetBlendState None = new ColorTargetBlendState | 		public static readonly ColorAttachmentBlendState None = new ColorAttachmentBlendState | ||||||
| 		{ | 		{ | ||||||
| 			BlendEnable = false, | 			BlendEnable = false, | ||||||
| 			ColorWriteMask = ColorComponentFlags.RGBA | 			ColorWriteMask = ColorComponentFlags.RGBA | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		public static readonly ColorTargetBlendState Disable = new ColorTargetBlendState | 		public static readonly ColorAttachmentBlendState Disable = new ColorAttachmentBlendState | ||||||
| 		{ | 		{ | ||||||
| 			BlendEnable = false, | 			BlendEnable = false, | ||||||
| 			ColorWriteMask = ColorComponentFlags.None | 			ColorWriteMask = ColorComponentFlags.None | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		public Refresh.ColorTargetBlendState ToRefreshColorTargetBlendState() | 		public Refresh.ColorAttachmentBlendState ToRefresh() | ||||||
| 		{ | 		{ | ||||||
| 			return new Refresh.ColorTargetBlendState | 			return new Refresh.ColorAttachmentBlendState | ||||||
| 			{ | 			{ | ||||||
| 				blendEnable = Conversions.BoolToByte(BlendEnable), | 				blendEnable = Conversions.BoolToByte(BlendEnable), | ||||||
| 				alphaBlendOp = (Refresh.BlendOp) AlphaBlendOp, | 				alphaBlendOp = (Refresh.BlendOp) AlphaBlendOp, | ||||||
|  | @ -2,13 +2,11 @@ | ||||||
| { | { | ||||||
| 	/// <summary> | 	/// <summary> | ||||||
| 	/// Describes how the graphics pipeline will blend colors. | 	/// Describes how the graphics pipeline will blend colors. | ||||||
| 	/// You must provide one ColorTargetBlendState per color target in the pipeline. |  | ||||||
| 	/// </summary> | 	/// </summary> | ||||||
| 	public unsafe struct ColorBlendState | 	public unsafe struct ColorBlendState | ||||||
| 	{ | 	{ | ||||||
| 		public bool LogicOpEnable; | 		public bool LogicOpEnable; | ||||||
| 		public LogicOp LogicOp; | 		public LogicOp LogicOp; | ||||||
| 		public BlendConstants BlendConstants; | 		public BlendConstants BlendConstants; | ||||||
| 		public ColorTargetBlendState[] ColorTargetBlendStates; |  | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue