forked from MoonsideGames/MoonWorks
Refresh 1.2.0
parent
40d9cdd33a
commit
527f47436a
|
@ -1 +1 @@
|
||||||
Subproject commit 4531e04911e10e2e28f7241b59d05defb8a2a7f3
|
Subproject commit 5fe9dd8587b05ac2b766a0218a33667aed4c113d
|
|
@ -311,6 +311,24 @@ namespace MoonWorks.Graphics
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetViewport(Viewport viewport)
|
||||||
|
{
|
||||||
|
Refresh.Refresh_SetViewport(
|
||||||
|
Device.Handle,
|
||||||
|
Handle,
|
||||||
|
viewport.ToRefresh()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetScissor(Rect scissor)
|
||||||
|
{
|
||||||
|
Refresh.Refresh_SetScissor(
|
||||||
|
Device.Handle,
|
||||||
|
Handle,
|
||||||
|
scissor.ToRefresh()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Binds vertex buffers to be used by subsequent draw calls.
|
/// Binds vertex buffers to be used by subsequent draw calls.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -105,6 +105,19 @@ namespace MoonWorks.Graphics
|
||||||
MinDepth = minDepth;
|
MinDepth = minDepth;
|
||||||
MaxDepth = maxDepth;
|
MaxDepth = maxDepth;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Refresh.Viewport ToRefresh()
|
||||||
|
{
|
||||||
|
return new Refresh.Viewport
|
||||||
|
{
|
||||||
|
x = X,
|
||||||
|
y = Y,
|
||||||
|
w = W,
|
||||||
|
h = H,
|
||||||
|
minDepth = MinDepth,
|
||||||
|
maxDepth = MaxDepth
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
|
|
@ -27,7 +27,6 @@ namespace MoonWorks.Graphics
|
||||||
RasterizerState rasterizerState = graphicsPipelineCreateInfo.RasterizerState;
|
RasterizerState rasterizerState = graphicsPipelineCreateInfo.RasterizerState;
|
||||||
PrimitiveType primitiveType = graphicsPipelineCreateInfo.PrimitiveType;
|
PrimitiveType primitiveType = graphicsPipelineCreateInfo.PrimitiveType;
|
||||||
VertexInputState vertexInputState = graphicsPipelineCreateInfo.VertexInputState;
|
VertexInputState vertexInputState = graphicsPipelineCreateInfo.VertexInputState;
|
||||||
ViewportState viewportState = graphicsPipelineCreateInfo.ViewportState;
|
|
||||||
GraphicsPipelineAttachmentInfo attachmentInfo = graphicsPipelineCreateInfo.AttachmentInfo;
|
GraphicsPipelineAttachmentInfo attachmentInfo = graphicsPipelineCreateInfo.AttachmentInfo;
|
||||||
BlendConstants blendConstants = graphicsPipelineCreateInfo.BlendConstants;
|
BlendConstants blendConstants = graphicsPipelineCreateInfo.BlendConstants;
|
||||||
|
|
||||||
|
@ -39,14 +38,6 @@ namespace MoonWorks.Graphics
|
||||||
vertexInputState.VertexBindings,
|
vertexInputState.VertexBindings,
|
||||||
GCHandleType.Pinned
|
GCHandleType.Pinned
|
||||||
);
|
);
|
||||||
var viewportHandle = GCHandle.Alloc(
|
|
||||||
viewportState.Viewports,
|
|
||||||
GCHandleType.Pinned
|
|
||||||
);
|
|
||||||
var scissorHandle = GCHandle.Alloc(
|
|
||||||
viewportState.Scissors,
|
|
||||||
GCHandleType.Pinned
|
|
||||||
);
|
|
||||||
|
|
||||||
var colorAttachmentDescriptions = stackalloc Refresh.ColorAttachmentDescription[
|
var colorAttachmentDescriptions = stackalloc Refresh.ColorAttachmentDescription[
|
||||||
(int) attachmentInfo.ColorAttachmentDescriptions.Length
|
(int) attachmentInfo.ColorAttachmentDescriptions.Length
|
||||||
|
@ -104,11 +95,6 @@ namespace MoonWorks.Graphics
|
||||||
refreshGraphicsPipelineCreateInfo.vertexInputState.vertexBindings = vertexBindingsHandle.AddrOfPinnedObject();
|
refreshGraphicsPipelineCreateInfo.vertexInputState.vertexBindings = vertexBindingsHandle.AddrOfPinnedObject();
|
||||||
refreshGraphicsPipelineCreateInfo.vertexInputState.vertexBindingCount = (uint) vertexInputState.VertexBindings.Length;
|
refreshGraphicsPipelineCreateInfo.vertexInputState.vertexBindingCount = (uint) vertexInputState.VertexBindings.Length;
|
||||||
|
|
||||||
refreshGraphicsPipelineCreateInfo.viewportState.viewports = viewportHandle.AddrOfPinnedObject();
|
|
||||||
refreshGraphicsPipelineCreateInfo.viewportState.viewportCount = (uint) viewportState.Viewports.Length;
|
|
||||||
refreshGraphicsPipelineCreateInfo.viewportState.scissors = scissorHandle.AddrOfPinnedObject();
|
|
||||||
refreshGraphicsPipelineCreateInfo.viewportState.scissorCount = (uint) viewportState.Scissors.Length;
|
|
||||||
|
|
||||||
refreshGraphicsPipelineCreateInfo.primitiveType = (Refresh.PrimitiveType) primitiveType;
|
refreshGraphicsPipelineCreateInfo.primitiveType = (Refresh.PrimitiveType) primitiveType;
|
||||||
|
|
||||||
refreshGraphicsPipelineCreateInfo.attachmentInfo.colorAttachmentCount = (uint) attachmentInfo.ColorAttachmentDescriptions.Length;
|
refreshGraphicsPipelineCreateInfo.attachmentInfo.colorAttachmentCount = (uint) attachmentInfo.ColorAttachmentDescriptions.Length;
|
||||||
|
@ -120,8 +106,6 @@ namespace MoonWorks.Graphics
|
||||||
|
|
||||||
vertexAttributesHandle.Free();
|
vertexAttributesHandle.Free();
|
||||||
vertexBindingsHandle.Free();
|
vertexBindingsHandle.Free();
|
||||||
viewportHandle.Free();
|
|
||||||
scissorHandle.Free();
|
|
||||||
|
|
||||||
VertexShaderInfo = vertexShaderInfo;
|
VertexShaderInfo = vertexShaderInfo;
|
||||||
FragmentShaderInfo = fragmentShaderInfo;
|
FragmentShaderInfo = fragmentShaderInfo;
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
public RasterizerState RasterizerState;
|
public RasterizerState RasterizerState;
|
||||||
public PrimitiveType PrimitiveType;
|
public PrimitiveType PrimitiveType;
|
||||||
public VertexInputState VertexInputState;
|
public VertexInputState VertexInputState;
|
||||||
public ViewportState ViewportState;
|
|
||||||
public GraphicsPipelineAttachmentInfo AttachmentInfo;
|
public GraphicsPipelineAttachmentInfo AttachmentInfo;
|
||||||
public BlendConstants BlendConstants;
|
public BlendConstants BlendConstants;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
namespace MoonWorks.Graphics
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Describes the dimensions of viewports and scissor areas.
|
|
||||||
/// </summary>
|
|
||||||
public struct ViewportState
|
|
||||||
{
|
|
||||||
public Viewport[] Viewports;
|
|
||||||
public Rect[] Scissors;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// A default single viewport with no scissor area.
|
|
||||||
/// </summary>
|
|
||||||
public ViewportState(int width, int height)
|
|
||||||
{
|
|
||||||
Viewports = new Viewport[] { new Viewport(width, height) };
|
|
||||||
Scissors = new Rect[] { new Rect(width, height) };
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue