mirror of
https://github.com/maxartz15/MoonWorksDearImGuiScaffold.git
synced 2024-11-25 17:15:33 +01:00
Refresh2 changes
This commit is contained in:
parent
9d8f4f6089
commit
0cbf877de3
@ -8,19 +8,19 @@
|
|||||||
<ItemGroup Condition="$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Windows)))">
|
<ItemGroup Condition="$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Windows)))">
|
||||||
<Content Include=".\moonlibs\x64\**\*.*">
|
<Content Include=".\moonlibs\x64\**\*.*">
|
||||||
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
|
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition="$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))">
|
<ItemGroup Condition="$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))">
|
||||||
<Content Include=".\moonlibs\lib64\**\*.*">
|
<Content Include=".\moonlibs\lib64\**\*.*">
|
||||||
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
|
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition="$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))">
|
<ItemGroup Condition="$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))">
|
||||||
<Content Include=".\moonlibs\osx\**\*.*" >
|
<Content Include=".\moonlibs\osx\**\*.*" >
|
||||||
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
|
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 4dbd5a2cbeab38f78274644f3b44fe1fa727f304
|
Subproject commit 178a5ea3cfa4ce4ccbcd9e0b6726a8cda791c810
|
BIN
moonlibs/x64/Refresh.dll
(Stored with Git LFS)
BIN
moonlibs/x64/Refresh.dll
(Stored with Git LFS)
Binary file not shown.
@ -19,11 +19,13 @@ class MoonWorksDearImGuiScaffoldGame : Game
|
|||||||
|
|
||||||
private uint VertexCount = 0;
|
private uint VertexCount = 0;
|
||||||
private uint IndexCount = 0;
|
private uint IndexCount = 0;
|
||||||
private MoonWorks.Graphics.Buffer ImGuiVertexBuffer = null;
|
private GpuBuffer ImGuiVertexBuffer = null;
|
||||||
private MoonWorks.Graphics.Buffer ImGuiIndexBuffer = null;
|
private GpuBuffer ImGuiIndexBuffer = null;
|
||||||
|
|
||||||
private TextureStorage TextureStorage;
|
private TextureStorage TextureStorage;
|
||||||
|
|
||||||
|
private ResourceUploader ResourceUploader;
|
||||||
|
|
||||||
public MoonWorksDearImGuiScaffoldGame(
|
public MoonWorksDearImGuiScaffoldGame(
|
||||||
WindowCreateInfo windowCreateInfo,
|
WindowCreateInfo windowCreateInfo,
|
||||||
FrameLimiterSettings frameLimiterSettings,
|
FrameLimiterSettings frameLimiterSettings,
|
||||||
@ -31,6 +33,7 @@ class MoonWorksDearImGuiScaffoldGame : Game
|
|||||||
) : base(windowCreateInfo, frameLimiterSettings, 60, debugMode)
|
) : base(windowCreateInfo, frameLimiterSettings, 60, debugMode)
|
||||||
{
|
{
|
||||||
TextureStorage = new TextureStorage();
|
TextureStorage = new TextureStorage();
|
||||||
|
ResourceUploader = new ResourceUploader(GraphicsDevice);
|
||||||
|
|
||||||
ImGui.CreateContext();
|
ImGui.CreateContext();
|
||||||
|
|
||||||
@ -177,7 +180,7 @@ class MoonWorksDearImGuiScaffoldGame : Game
|
|||||||
ImGuiVertexBuffer?.Dispose();
|
ImGuiVertexBuffer?.Dispose();
|
||||||
|
|
||||||
VertexCount = (uint)(drawDataPtr.TotalVtxCount * 1.5f);
|
VertexCount = (uint)(drawDataPtr.TotalVtxCount * 1.5f);
|
||||||
ImGuiVertexBuffer = MoonWorks.Graphics.Buffer.Create<Position2DTextureColorVertex>(
|
ImGuiVertexBuffer = GpuBuffer.Create<Position2DTextureColorVertex>(
|
||||||
GraphicsDevice,
|
GraphicsDevice,
|
||||||
BufferUsageFlags.Vertex,
|
BufferUsageFlags.Vertex,
|
||||||
VertexCount
|
VertexCount
|
||||||
@ -189,7 +192,7 @@ class MoonWorksDearImGuiScaffoldGame : Game
|
|||||||
ImGuiIndexBuffer?.Dispose();
|
ImGuiIndexBuffer?.Dispose();
|
||||||
|
|
||||||
IndexCount = (uint)(drawDataPtr.TotalIdxCount * 1.5f);
|
IndexCount = (uint)(drawDataPtr.TotalIdxCount * 1.5f);
|
||||||
ImGuiIndexBuffer = MoonWorks.Graphics.Buffer.Create<ushort>(
|
ImGuiIndexBuffer = GpuBuffer.Create<ushort>(
|
||||||
GraphicsDevice,
|
GraphicsDevice,
|
||||||
BufferUsageFlags.Index,
|
BufferUsageFlags.Index,
|
||||||
IndexCount
|
IndexCount
|
||||||
@ -203,24 +206,24 @@ class MoonWorksDearImGuiScaffoldGame : Game
|
|||||||
{
|
{
|
||||||
var cmdList = drawDataPtr.CmdLists[n];
|
var cmdList = drawDataPtr.CmdLists[n];
|
||||||
|
|
||||||
commandBuffer.SetBufferData<Position2DTextureColorVertex>(
|
ResourceUploader.SetBufferData(
|
||||||
ImGuiVertexBuffer,
|
ImGuiVertexBuffer,
|
||||||
cmdList.VtxBuffer.Data,
|
|
||||||
vertexOffset,
|
vertexOffset,
|
||||||
(uint)cmdList.VtxBuffer.Size
|
new Span<Position2DTextureColorVertex>((void*) cmdList.VtxBuffer.Data, cmdList.VtxBuffer.Size)
|
||||||
);
|
);
|
||||||
|
|
||||||
commandBuffer.SetBufferData<ushort>(
|
ResourceUploader.SetBufferData(
|
||||||
ImGuiIndexBuffer,
|
ImGuiIndexBuffer,
|
||||||
cmdList.IdxBuffer.Data,
|
|
||||||
indexOffset,
|
indexOffset,
|
||||||
(uint)cmdList.IdxBuffer.Size
|
new Span<ushort>((void*) cmdList.IdxBuffer.Data, cmdList.IdxBuffer.Size)
|
||||||
);
|
);
|
||||||
|
|
||||||
vertexOffset += (uint) cmdList.VtxBuffer.Size;
|
vertexOffset += (uint) cmdList.VtxBuffer.Size;
|
||||||
indexOffset += (uint) cmdList.IdxBuffer.Size;
|
indexOffset += (uint) cmdList.IdxBuffer.Size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ResourceUploader.Upload();
|
||||||
|
|
||||||
GraphicsDevice.Submit(commandBuffer);
|
GraphicsDevice.Submit(commandBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -249,7 +252,7 @@ class MoonWorksDearImGuiScaffoldGame : Game
|
|||||||
|
|
||||||
commandBuffer.BindGraphicsPipeline(ImGuiPipeline);
|
commandBuffer.BindGraphicsPipeline(ImGuiPipeline);
|
||||||
|
|
||||||
var vertexUniformOffset = commandBuffer.PushVertexShaderUniforms(
|
commandBuffer.PushVertexShaderUniforms(
|
||||||
Matrix4x4.CreateOrthographicOffCenter(0, ioPtr.DisplaySize.X, ioPtr.DisplaySize.Y, 0, -1, 1)
|
Matrix4x4.CreateOrthographicOffCenter(0, ioPtr.DisplaySize.X, ioPtr.DisplaySize.Y, 0, -1, 1)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -294,9 +297,7 @@ class MoonWorksDearImGuiScaffoldGame : Game
|
|||||||
commandBuffer.DrawIndexedPrimitives(
|
commandBuffer.DrawIndexedPrimitives(
|
||||||
vertexOffset,
|
vertexOffset,
|
||||||
indexOffset,
|
indexOffset,
|
||||||
drawCmd.ElemCount / 3,
|
drawCmd.ElemCount / 3
|
||||||
vertexUniformOffset,
|
|
||||||
0
|
|
||||||
);
|
);
|
||||||
|
|
||||||
indexOffset += drawCmd.ElemCount;
|
indexOffset += drawCmd.ElemCount;
|
||||||
@ -308,9 +309,9 @@ class MoonWorksDearImGuiScaffoldGame : Game
|
|||||||
commandBuffer.EndRenderPass();
|
commandBuffer.EndRenderPass();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BuildFontAtlas()
|
private unsafe void BuildFontAtlas()
|
||||||
{
|
{
|
||||||
var commandBuffer = GraphicsDevice.AcquireCommandBuffer();
|
var resourceUploader = new ResourceUploader(GraphicsDevice);
|
||||||
|
|
||||||
var io = ImGui.GetIO();
|
var io = ImGui.GetIO();
|
||||||
|
|
||||||
@ -321,17 +322,14 @@ class MoonWorksDearImGuiScaffoldGame : Game
|
|||||||
out int bytesPerPixel
|
out int bytesPerPixel
|
||||||
);
|
);
|
||||||
|
|
||||||
var fontTexture = Texture.CreateTexture2D(
|
var fontTexture = resourceUploader.CreateTexture2D(
|
||||||
GraphicsDevice,
|
new Span<byte>((void*) pixelData, width * height * bytesPerPixel),
|
||||||
(uint) width,
|
(uint) width,
|
||||||
(uint)height,
|
(uint) height
|
||||||
TextureFormat.R8G8B8A8,
|
|
||||||
TextureUsageFlags.Sampler
|
|
||||||
);
|
);
|
||||||
|
|
||||||
commandBuffer.SetTextureData(fontTexture, pixelData, (uint)(width * height * bytesPerPixel));
|
resourceUploader.Upload();
|
||||||
|
resourceUploader.Dispose();
|
||||||
GraphicsDevice.Submit(commandBuffer);
|
|
||||||
|
|
||||||
io.Fonts.SetTexID(fontTexture.Handle);
|
io.Fonts.SetTexID(fontTexture.Handle);
|
||||||
io.Fonts.ClearTexData();
|
io.Fonts.ClearTexData();
|
||||||
|
Loading…
Reference in New Issue
Block a user