forked from MoonsideGames/MoonWorks
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