]> O.S.I.I.S - jp/vke.net.git/commitdiff
wip
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Mon, 7 Oct 2019 06:34:17 +0000 (08:34 +0200)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Mon, 7 Oct 2019 06:34:17 +0000 (08:34 +0200)
12 files changed:
addons/Directory.Build.props
addons/DistanceFieldFont/DistanceFieldFont.csproj
addons/VkvgPipeline/VkvgPipeline.csproj
addons/gltfLoader/gltfLoader.csproj
samples/Directory.Build.props
samples/TexturedCube/main.cs
samples/deferred/deferred.csproj
samples/pbr/main.cs
samples/pbr/pbr.csproj
vke/src/VkWindow.cs
vke/src/base/Image.cs
vke/src/base/RenderPass.cs

index c86d07ccb44dd58b058489824eca1948d19ea76c..a165eeeb1d693bf61618356c6717147cf96dc002 100644 (file)
        <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
                <DefineConstants>NETSTANDARD;NETSTANDARD2_0;WITH_SHADOWS;_WITH_VKVG</DefineConstants>    
        </PropertyGroup>        
+
+       <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">    
+               <ProjectReference Include="..\..\vke\vke.csproj" />
+       </ItemGroup>
+       <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+               <PackageReference Include="vke" Version="0.1.8-beta" />
+       </ItemGroup>    
        
        <ItemGroup>
-                               <!--<PackageReference Include="vke" Version="0.1.8-beta" />-->
-    <ProjectReference Include="..\..\vke\vke.csproj" />
                <PackageReference Include="SpirVTasks" Version="0.1.11-beta" />         
        </ItemGroup>    
 
index 69eb42c8e4bca1c5a221f9e1926cd4c997b546b5..d94083979d1d5a1a02a451a09db7205c46d346ab 100644 (file)
@@ -1,15 +1,15 @@
 <Project Sdk="Microsoft.NET.Sdk">
   
   <PropertyGroup>
-    <AssemblyName>CVKL.DistanceFieldFont</AssemblyName>
-    <PackageId>CVKL.DistanceFieldFont</PackageId>
+    <AssemblyName>vke.DistanceFieldFont</AssemblyName>
+    <PackageId>vke.DistanceFieldFont</PackageId>
     <AssemblyVersion>0.1.0</AssemblyVersion>
-    <Description>CVKL signed distance field font addons, BMFont file format</Description>
+    <Description>vke.net signed distance field font addons, BMFont file format</Description>
     <PackageTags>C# vulkan CVKL gltf</PackageTags>    
     <PackageVersion>$(AssemblyVersion)-beta</PackageVersion>
     <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
     <PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
-    <PackageProjectUrl>https://github.com/jpbruyere/vk.net/blob/master/README.md</PackageProjectUrl>
+    <PackageProjectUrl>https://github.com/jpbruyere/vke.net/blob/master/README.md</PackageProjectUrl>
     <License>MIT</License>
     <PackageReleaseNotes></PackageReleaseNotes>
     <SynchReleaseVersion>false</SynchReleaseVersion>
index 0afcfa266460b9d69d8e9440f926fb4fb0a0a66e..16c1daa39fcb367964f3a9c71184212654f5227e 100644 (file)
@@ -1,11 +1,11 @@
 <Project Sdk="Microsoft.NET.Sdk">
   
   <PropertyGroup>
-    <AssemblyName>CVKL.vkvgPipeline</AssemblyName>
-    <PackageId>CVKL.vkvgPipeline</PackageId>
+    <AssemblyName>vke.vkvgPipeline</AssemblyName>
+    <PackageId>vke.vkvgPipeline</PackageId>
     <AssemblyVersion>0.1.0</AssemblyVersion>
     <Description>CVKL vkvg addons, vectorial drawing with cairo like api.</Description>
-    <PackageTags>C# vulkan CVKL gltf</PackageTags>    
+    <PackageTags>vulkan c# vke.net gltf</PackageTags>    
     <PackageVersion>$(AssemblyVersion)-beta</PackageVersion>
     <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
     <PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
index 543c3bf9bc53296143c09493eddf102c51c45bc0..0e9ebb40ad6d80a3b087e5df7404558dd6add06b 100644 (file)
@@ -1,15 +1,15 @@
 <Project Sdk="Microsoft.NET.Sdk">
   
   <PropertyGroup>
-    <AssemblyName>CVKL.gltfLoader</AssemblyName>
-    <PackageId>CVKL.gltfLoader</PackageId>
-    <AssemblyVersion>0.1.6</AssemblyVersion>
-    <Description>CVKL gltf addons</Description>
+    <AssemblyName>vke.gltfLoader</AssemblyName>
+    <PackageId>vke.gltfLoader</PackageId>
+    <AssemblyVersion>0.1.7</AssemblyVersion>
+    <Description>vke.net gltf addons</Description>
     <PackageTags>C# vulkan CVKL gltf</PackageTags>    
     <PackageVersion>$(AssemblyVersion)-beta</PackageVersion>
     <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
     <PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
-    <PackageProjectUrl>https://github.com/jpbruyere/vk.net/blob/master/README.md</PackageProjectUrl>
+    <PackageProjectUrl>https://github.com/jpbruyere/vke.net/blob/master/README.md</PackageProjectUrl>
     <License>MIT</License>
     <PackageReleaseNotes></PackageReleaseNotes>
     <SynchReleaseVersion>false</SynchReleaseVersion>
index 3648b3c401f0ca038615a1ebd840be428c0e3888..cd8006047e1fb6ed76cbdfbb0651d9c941176904 100644 (file)
@@ -3,7 +3,7 @@
                <RootDirectory>$(MSBuildThisFileDirectory)../</RootDirectory>
                <Deterministic>true</Deterministic>
 
-               <TargetFrameworks>net471</TargetFrameworks>
+               <TargetFrameworks>net472</TargetFrameworks>
 
                <RepositoryUrl>https://github.com/jpbruyere/vke.net</RepositoryUrl>
                <License>MIT</License>
                <DefineConstants>NETSTANDARD;NETSTANDARD2_0;WITH_SHADOWS;_WITH_VKVG</DefineConstants>    
        </PropertyGroup>
                
+       <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">    
+               <ProjectReference Include="..\..\vke\vke.csproj" />
+       </ItemGroup>
+       <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+               <PackageReference Include="vke" Version="0.1.8-beta" />
+       </ItemGroup>
+                       
        <ItemGroup>
-               <!--<PackageReference Include="vke" Version="0.1.8-beta" />-->
-    <ProjectReference Include="..\..\vke\vke.csproj" />
-               <PackageReference Include="SpirVTasks" Version="0.1.11-beta" />
-               <!--<PackageReference Include="Vulkan" Version="0.1.4" />        -->
+               <PackageReference Include="SpirVTasks" Version="0.1.11-beta" />         
        </ItemGroup>    
 
        <ItemGroup>    
index db810c41e1c00e14dad07ab46c40c45ae163b362..186817a57b66c48ef2148906affd4235ba0ae7e3 100644 (file)
@@ -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);
                        }
                }
index d6d3df9ab164cc0bcffd28fa2642181307c8d366..855e49d268ff123d8d7ff2e7451efbb55f87bb88 100644 (file)
@@ -17,7 +17,6 @@
 
 
   <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugCrow|AnyCPU' ">    
-    <Compile Include="../common/CrowWin.cs" />
     <Compile Include="main-crow.cs" />
     <EmbeddedResource Include="ui\**\*.*">
       <LogicalName>deferred.%(Filename)%(Extension)</LogicalName>
@@ -30,7 +29,7 @@
     
     
   <ItemGroup>
-    <PackageReference Include="Crow.VK" Version="0.9.0-beta" />
+<!--    <PackageReference Include="Crow.VK" Version="0.9.0-beta" />-->
   </ItemGroup>
     
   <ItemGroup>
index b3b84ee9c86bd435c2968a83d1d502026d677a3c..7cd64f1807e247531af086c5e29b7aad01920780 100644 (file)
@@ -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);
index c7e287b7308a0108a66465e850dc88467bdcde2e..5a79334342823b00d6add3964f8063269c94c6ef 100644 (file)
@@ -3,6 +3,9 @@
     <EnableDefaultNoneItems>false</EnableDefaultNoneItems>    
   </PropertyGroup>
                 
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DefineConstants>NETSTANDARD;NETSTANDARD2_0;_WITH_SHADOWS;WITH_VKVG;TRACE;DEBUG;NETFRAMEWORK;NET471</DefineConstants>
+  </PropertyGroup>
   <ItemGroup>
     <GLSLShader Update="shaders/simpletexture.frag">
                   <LogicalName>vke.simpletexture.frag.spv</LogicalName>                
index 5a8b76171e57e172111075c91573160206fa3520..f03f66b33d3db54b7ca0affce061c3e839a973fd 100644 (file)
@@ -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<string> instExts = new List<string> (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);
index c84fadb61e0f1ea643d965170f33ce42ed0d4519..05276745c1e23afeebfc0ab71cdc2a7a584be35a 100644 (file)
@@ -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")}]");
                }
index 95c0baf13afd86a2358729d89dd4f04adbaffdb9..6fba72d4f27c6e0ba00e6e370584b9b954a39368 100644 (file)
@@ -19,6 +19,9 @@ namespace vke {
         internal List<SubPass> subpasses = new List<SubPass> ();
         List<VkSubpassDependency> dependencies = new List<VkSubpassDependency> ();
 
+               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);
         }
-
+               /// <summary>
+               /// 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.
+               /// </summary>
+               /// <returns>A collection of FrameBuffer</returns>
+               /// <param name="swapChain">Swap chain.</param>
                public FrameBuffers CreateFrameBuffers (SwapChain swapChain) {
                        FrameBuffers fbs = new FrameBuffers();
                        Image[] images = new Image[attachments.Count];