From: Jean-Philippe Bruyère Date: Mon, 7 Oct 2019 06:34:17 +0000 (+0200) Subject: wip X-Git-Tag: v0.1.21~30 X-Git-Url: https://git.osiis.dedyn.io/?a=commitdiff_plain;h=aeef8735d53efa45222db32bee5508ec82887c8a;p=jp%2Fvke.net.git wip --- diff --git a/addons/Directory.Build.props b/addons/Directory.Build.props index c86d07c..a165eee 100644 --- a/addons/Directory.Build.props +++ b/addons/Directory.Build.props @@ -25,10 +25,15 @@ NETSTANDARD;NETSTANDARD2_0;WITH_SHADOWS;_WITH_VKVG + + + + + + + - - diff --git a/addons/DistanceFieldFont/DistanceFieldFont.csproj b/addons/DistanceFieldFont/DistanceFieldFont.csproj index 69eb42c..d940839 100644 --- a/addons/DistanceFieldFont/DistanceFieldFont.csproj +++ b/addons/DistanceFieldFont/DistanceFieldFont.csproj @@ -1,15 +1,15 @@ - CVKL.DistanceFieldFont - CVKL.DistanceFieldFont + vke.DistanceFieldFont + vke.DistanceFieldFont 0.1.0 - CVKL signed distance field font addons, BMFont file format + vke.net signed distance field font addons, BMFont file format C# vulkan CVKL gltf $(AssemblyVersion)-beta True False - https://github.com/jpbruyere/vk.net/blob/master/README.md + https://github.com/jpbruyere/vke.net/blob/master/README.md MIT false diff --git a/addons/VkvgPipeline/VkvgPipeline.csproj b/addons/VkvgPipeline/VkvgPipeline.csproj index 0afcfa2..16c1daa 100644 --- a/addons/VkvgPipeline/VkvgPipeline.csproj +++ b/addons/VkvgPipeline/VkvgPipeline.csproj @@ -1,11 +1,11 @@ - CVKL.vkvgPipeline - CVKL.vkvgPipeline + vke.vkvgPipeline + vke.vkvgPipeline 0.1.0 CVKL vkvg addons, vectorial drawing with cairo like api. - C# vulkan CVKL gltf + vulkan c# vke.net gltf $(AssemblyVersion)-beta True False diff --git a/addons/gltfLoader/gltfLoader.csproj b/addons/gltfLoader/gltfLoader.csproj index 543c3bf..0e9ebb4 100644 --- a/addons/gltfLoader/gltfLoader.csproj +++ b/addons/gltfLoader/gltfLoader.csproj @@ -1,15 +1,15 @@ - CVKL.gltfLoader - CVKL.gltfLoader - 0.1.6 - CVKL gltf addons + vke.gltfLoader + vke.gltfLoader + 0.1.7 + vke.net gltf addons C# vulkan CVKL gltf $(AssemblyVersion)-beta True False - https://github.com/jpbruyere/vk.net/blob/master/README.md + https://github.com/jpbruyere/vke.net/blob/master/README.md MIT false diff --git a/samples/Directory.Build.props b/samples/Directory.Build.props index 3648b3c..cd80060 100644 --- a/samples/Directory.Build.props +++ b/samples/Directory.Build.props @@ -3,7 +3,7 @@ $(MSBuildThisFileDirectory)../ true - net471 + net472 https://github.com/jpbruyere/vke.net MIT @@ -25,11 +25,15 @@ NETSTANDARD;NETSTANDARD2_0;WITH_SHADOWS;_WITH_VKVG + + + + + + + - - - - + diff --git a/samples/TexturedCube/main.cs b/samples/TexturedCube/main.cs index db810c4..186817a 100644 --- a/samples/TexturedCube/main.cs +++ b/samples/TexturedCube/main.cs @@ -101,9 +101,7 @@ namespace TextureCube { void vkvgDraw () { using (vkvg.Context ctx = vkvgPipeline.CreateContext()) { - ctx.Operator = vkvg.Operator.Clear; - ctx.Paint (); - ctx.Operator = vkvg.Operator.Over; + ctx.Clear (); vkvgPipeline.DrawResources (ctx, (int)swapChain.Width, (int)swapChain.Height); } } diff --git a/samples/deferred/deferred.csproj b/samples/deferred/deferred.csproj index d6d3df9..855e49d 100644 --- a/samples/deferred/deferred.csproj +++ b/samples/deferred/deferred.csproj @@ -17,7 +17,6 @@ - deferred.%(Filename)%(Extension) @@ -30,7 +29,7 @@ - + diff --git a/samples/pbr/main.cs b/samples/pbr/main.cs index b3b84ee..7cd64f1 100644 --- a/samples/pbr/main.cs +++ b/samples/pbr/main.cs @@ -69,9 +69,7 @@ namespace pbrSample { void vkvgDraw () { using (vkvg.Context ctx = vkvgPipeline.CreateContext ()) { - ctx.Operator = vkvg.Operator.Clear; - ctx.Paint (); - ctx.Operator = vkvg.Operator.Over; + ctx.Clear (); ctx.LineWidth = 1; ctx.SetSource (0.1, 0.1, 0.1, 0.8); diff --git a/samples/pbr/pbr.csproj b/samples/pbr/pbr.csproj index c7e287b..5a79334 100644 --- a/samples/pbr/pbr.csproj +++ b/samples/pbr/pbr.csproj @@ -3,6 +3,9 @@ false + + NETSTANDARD;NETSTANDARD2_0;_WITH_SHADOWS;WITH_VKVG;TRACE;DEBUG;NETFRAMEWORK;NET471 + vke.simpletexture.frag.spv diff --git a/vke/src/VkWindow.cs b/vke/src/VkWindow.cs index 5a8b761..f03f66b 100644 --- a/vke/src/VkWindow.cs +++ b/vke/src/VkWindow.cs @@ -44,7 +44,7 @@ namespace vke { bool[] buttons = new bool[10]; public Modifier KeyModifiers = 0; - + IntPtr currentCursor; uint frameCount; Stopwatch frameChrono; @@ -97,13 +97,17 @@ namespace vke { initVulkan (vSync); } - IntPtr currentCursor; + public void SetCursor (CursorShape cursor) { if (currentCursor != IntPtr.Zero) Glfw3.DestroyCursor (currentCursor); currentCursor = Glfw3.CreateStandardCursor (cursor); Glfw3.SetCursor (hWin, currentCursor); } + public void Close () + { + Glfw3.SetWindowShouldClose (hWin, 1); + } void initVulkan (bool vSync) { List instExts = new List (Glfw3.GetRequiredInstanceExtensions ()); @@ -203,7 +207,7 @@ namespace vke { Glfw3.SetWindowShouldClose (hWin, 1); break; case Key.Escape: - Glfw3.SetWindowShouldClose (hWin, 1); + Close (); break; case Key.Up: camera.Move (0, 0, 1); diff --git a/vke/src/base/Image.cs b/vke/src/base/Image.cs index c84fadb..0527674 100644 --- a/vke/src/base/Image.cs +++ b/vke/src/base/Image.cs @@ -621,6 +621,16 @@ namespace vke { }; vkCmdBlitImage (cmd.Handle, handle, VkImageLayout.TransferSrcOptimal, dest.handle, VkImageLayout.TransferDstOptimal, 1, ref imageBlit, VkFilter.Linear); } + public VkSubresourceLayout GetSubresourceLayout (VkImageAspectFlags aspectMask = VkImageAspectFlags.Color, uint mipLevel = 0, uint arrayLayer = 0) { + VkImageSubresource subresource = new VkImageSubresource { + aspectMask = aspectMask, + mipLevel = mipLevel, + arrayLayer = arrayLayer + }; + vkGetImageSubresourceLayout (Dev.VkDev, this.handle, ref subresource, out VkSubresourceLayout result); + return result; + } + public override string ToString () { return string.Format ($"{base.ToString ()}[0x{handle.Handle.ToString("x")}]"); } diff --git a/vke/src/base/RenderPass.cs b/vke/src/base/RenderPass.cs index 95c0baf..6fba72d 100644 --- a/vke/src/base/RenderPass.cs +++ b/vke/src/base/RenderPass.cs @@ -19,6 +19,9 @@ namespace vke { internal List subpasses = new List (); List dependencies = new List (); + public VkAttachmentDescription [] Attachments => attachments.ToArray (); + public SubPass [] SubPasses => subpasses.ToArray (); + protected override VkDebugMarkerObjectNameInfoEXT DebugMarkerInfo => new VkDebugMarkerObjectNameInfoEXT(VkDebugReportObjectTypeEXT.RenderPassEXT, handle.Handle); @@ -216,7 +219,13 @@ namespace vke { public void End (CommandBuffer cmd) { vkCmdEndRenderPass (cmd.Handle); } - + /// + /// Create a one framebuffer per swapchain images of the supplied swapChain. + /// The presentable attachment of this renderpass is found searching for its final layout that could be + /// PresentSrcKHR or SharedPresentKHR. + /// + /// A collection of FrameBuffer + /// Swap chain. public FrameBuffers CreateFrameBuffers (SwapChain swapChain) { FrameBuffers fbs = new FrameBuffers(); Image[] images = new Image[attachments.Count];