From 39285d843f891208a62e389d364f2b31a4ee0f79 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Philippe=20Bruy=C3=A8re?= Date: Sat, 4 May 2019 03:06:06 +0200 Subject: [PATCH] net.sdk project files --- Crow/Crow.NetStd.csproj | 59 ------ Crow/Crow.csproj | 249 +++++------------------ Crow/packages.config | 9 - Crow/src/CrowVkWin.cs | 215 +++++++++++++++++++ MDCrow/obj/MDCrow.csproj.nuget.cache | 5 - MDCrow/obj/MDCrow.csproj.nuget.g.props | 18 -- MDCrow/obj/MDCrow.csproj.nuget.g.targets | 9 - MDCrow/obj/project.assets.json | 115 ----------- Samples/HelloWorld/main.cs | 211 +------------------ netfx.props | 27 +++ 10 files changed, 294 insertions(+), 623 deletions(-) delete mode 100644 Crow/Crow.NetStd.csproj delete mode 100644 Crow/packages.config create mode 100644 Crow/src/CrowVkWin.cs delete mode 100644 MDCrow/obj/MDCrow.csproj.nuget.cache delete mode 100644 MDCrow/obj/MDCrow.csproj.nuget.g.props delete mode 100644 MDCrow/obj/MDCrow.csproj.nuget.g.targets delete mode 100644 MDCrow/obj/project.assets.json create mode 100644 netfx.props diff --git a/Crow/Crow.NetStd.csproj b/Crow/Crow.NetStd.csproj deleted file mode 100644 index 0421fa3d..00000000 --- a/Crow/Crow.NetStd.csproj +++ /dev/null @@ -1,59 +0,0 @@ - - - - Crow - C.R.O.W. is a widget toolkit and rendering engine entirely developed in C# with templates, styles, compositing, and bindings. - - - netcoreapp2.0 - - $(SolutionDir)build/$(Configuration) - $(SolutionDir)build/obj/$(Configuration) - - DESIGN_MODE - - true - false - false - true - Crow - 0.8.0.1-beta - - JP Bruyère - C# Rapid Open Widget Toolkit - https://opensource.org/licenses/MIT - https://jpbruyere.github.io/Crow/images/crow.png - https://github.com/jpbruyere/Crow/wiki - Crow Widget Interface GUI C# .Net Mono - Copyright 2013-2018 - - JP Bruyère - - - - - TRACE;DESIGN_MODE;DEBUG - - - - - - - Crow.%(Filename).template - - - - - - - - - - - - - - - - - diff --git a/Crow/Crow.csproj b/Crow/Crow.csproj index 7f877da8..16438f4c 100644 --- a/Crow/Crow.csproj +++ b/Crow/Crow.csproj @@ -1,214 +1,61 @@ - - + + - Debug - AnyCPU - {C2980F9B-4798-4C05-99E2-E174810F7C7B} - Library - Properties - Crow + net471;netstandard2.0 Crow - 512 - True - False - False - 4 - False - false - OnBuildSuccess - C# Rapid Open Widget - 4194304 - $(SolutionDir)build\$(Configuration) - $(SolutionDir)build\obj\$(Configuration) - crow.key - 8.0.30703 - 2.0 - v4.6.1 - 0.8.0 + + 0.9.0 + C.R.O.W. is a widget toolkit and rendering engine entirely developed in C# with templates, styles, compositing, and bindings. + + true + false + false + + Jean-Philippe Bruyère + C# Rapid Open Widget Toolkit + Crow.VK + Crow Vulkan Widget Interface GUI + $(AssemblyVersion)-beta + True + false + https://github.com/jpbruyere/Crow/wiki + https://opensource.org/licenses/MIT + https://jpbruyere.github.io/Crow/images/crow.png + Copyright 2013-2019 + Turn on vulkan layer through vkvg + https://github.com/jpbruyere/Crow + + $(SolutionDir)build\$(Configuration)\ + DESIGN_MODE + + - true - full - true - false - $(SolutionDir)build\Debug - TRACE0;DEBUG;DEBUG_BINDING_FUNC_CALLS0;DEBUG_DRAGNDROP0;DEBUG_LOG0;XLIB_BACKEND0;DESIGN_MODE;DEBUG_UPDATE0;DEBUG_FOCUS0;DEBUG_DISPOSE0;MEASURE_TIME0;DEBUG_LOAD0;DEBUG_BINDING0;DEBUG_CLIP_RECTANGLE0 - - - - - - - - true - DESIGN_MODE - $(SolutionDir)build\Release + TRACE;DESIGN_MODE;DEBUG - - - - + + - - - - ..\..\packages\Vulkan.0.1.2.6\lib\netstandard2.0\VK.dll - - - ..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll - - - ..\packages\glTF2Loader.1.1.3-alpha\lib\net35\glTFLoader.dll - - - ..\packages\System.Numerics.Vectors.4.6.0-preview4.19212.13\lib\net46\System.Numerics.Vectors.dll - - - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.6.0-preview4.19212.13\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\CVKL.0.1.2\lib\netstandard2.0\CVKL-dotnet.dll - - - - - - - - - - - - - - - - - - - - + + - - - - Crow.Button.template - - - Crow.CheckBox.template - - - Crow.ComboBox.template - - - Crow.Expandable.template - - - Crow.DirectoryView.template - - - Crow.FileDialog.template - - - Crow.GroupBox.template - - - Crow.ListBox.template - - - Crow.MessageBox.template - - - Crow.Popper.template - - - Crow.RadioButton.template - - - Crow.ScrollBar.template + + + + Crow.%(Filename).template - - Crow.Slider.template - - - Crow.Spinner.template - - - Crow.TabItem.template - - - Crow.TreeView.template - - - Crow.Window.template - - - - Crow.MenuItem.template - - - Crow.Menu.template - - - Crow.ColorPicker.template - - - Crow.ToolWindow.template - - - Crow.FileItems.template - - - Crow.DefaultItem.template - - - Crow.ScrollingListBox.template - - - - Crow.ArrowBut.template - - - - Crow.CheckBox2.template - - - Crow.Tooltip.template - - - Crow.ContextMenu.template - - - Crow.DockWindow.template - - - Crow.HScrollBar.template + + + + Crow.Icons.%(Filename)%(Extension) - - PreserveNewest - - - - - - - - - - - - - - + + + + + + diff --git a/Crow/packages.config b/Crow/packages.config deleted file mode 100644 index c480cd62..00000000 --- a/Crow/packages.config +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/Crow/src/CrowVkWin.cs b/Crow/src/CrowVkWin.cs new file mode 100644 index 00000000..890b461d --- /dev/null +++ b/Crow/src/CrowVkWin.cs @@ -0,0 +1,215 @@ +using System; +using System.Threading; +using Crow; +using CVKL; +using VK; + +namespace Crow +{ + public class CrowVkWin : VkWindow, IValueChange { + bool isRunning; + + protected override void render () { + int idx = swapChain.GetNextImage (); + + if (idx < 0) { + OnResize (); + return; + } + + lock (crow.RenderMutex) { + presentQueue.Submit (cmds[idx], swapChain.presentComplete, drawComplete[idx]); + presentQueue.Present (swapChain, drawComplete[idx]); + presentQueue.WaitIdle (); + } + Thread.Sleep (1); + } + + #region crow + #region IValueChange implementation + public event EventHandler ValueChanged; + public virtual void NotifyValueChanged (string MemberName, object _value) + { + if (ValueChanged != null) + ValueChanged.Invoke (this, new Crow.ValueChangeEventArgs (MemberName, _value)); + } + #endregion + + protected Crow.Interface crow; + + void crow_thread_func () { + vkvgDev = new vkvg.Device (instance.Handle, phy.Handle, dev.VkDev.Handle, presentQueue.qFamIndex, + vkvg.SampleCount.Sample_8, presentQueue.index); + + crow = new Crow.Interface (vkvgDev, 800, 600); + + isRunning = true; + while (isRunning) { + crow.Update (); + Thread.Sleep (3); + } + + crow.Dispose (); + vkvgDev.Dispose (); + + crow = null; + } + #endregion + + + protected CVKL.Image uiImage; + protected vkvg.Device vkvgDev; + + void initUISurface () { + lock (crow.UpdateMutex) { + try { + uiImage?.Dispose (); + uiImage = new CVKL.Image (dev, new VkImage ((ulong)crow.surf.VkImage.ToInt64 ()), VkFormat.B8g8r8a8Unorm, + VkImageUsageFlags.Sampled, swapChain.Width, swapChain.Height); + uiImage.SetName ("uiImage"); + uiImage.CreateView (VkImageViewType.ImageView2D, VkImageAspectFlags.Color); + uiImage.CreateSampler (VkFilter.Nearest, VkFilter.Nearest, VkSamplerMipmapMode.Nearest, VkSamplerAddressMode.ClampToBorder); + uiImage.Descriptor.imageLayout = VkImageLayout.ShaderReadOnlyOptimal; + } catch (Exception ex) { + Console.WriteLine (ex); + } + } + } + + protected CrowVkWin () : base() { + Thread crowThread = new Thread (crow_thread_func); + crowThread.IsBackground = true; + crowThread.Start (); + + while (crow == null) + Thread.Sleep (2); + + initUISurface (); + } + + protected virtual void recordDraw (CommandBuffer cmd, int imageIndex) { } + + void buildCommandBuffers () { + for (int i = 0; i < swapChain.ImageCount; ++i) { + cmds[i]?.Free (); + cmds[i] = cmdPool.AllocateAndStart (); + + CommandBuffer cmd = cmds [i]; + + recordDraw (cmd, i); + + swapChain.images [i].SetLayout (cmd, VkImageAspectFlags.Color, + VkImageLayout.Undefined, VkImageLayout.TransferDstOptimal, + VkPipelineStageFlags.BottomOfPipe, VkPipelineStageFlags.Transfer); + uiImage.SetLayout (cmd, VkImageAspectFlags.Color, + VkImageLayout.ColorAttachmentOptimal, VkImageLayout.TransferSrcOptimal, + VkPipelineStageFlags.ColorAttachmentOutput, VkPipelineStageFlags.Transfer); + + VkImageSubresourceLayers imgSubResLayer = new VkImageSubresourceLayers { + aspectMask = VkImageAspectFlags.Color, + mipLevel = 0, + baseArrayLayer = 0, + layerCount = 1 + }; + VkImageCopy cregion = new VkImageCopy { + srcSubresource = imgSubResLayer, + srcOffset = default (VkOffset3D), + dstSubresource = imgSubResLayer, + dstOffset = default (VkOffset3D), + extent = new VkExtent3D { width = swapChain.Width, height = swapChain.Height } + }; + Vk.vkCmdCopyImage (cmds [i].Handle, uiImage.Handle, VkImageLayout.TransferSrcOptimal, + swapChain.images [i].Handle, VkImageLayout.TransferDstOptimal, 1, ref cregion); + + swapChain.images [i].SetLayout (cmd, VkImageAspectFlags.Color, + VkImageLayout.TransferDstOptimal, VkImageLayout.PresentSrcKHR, + VkPipelineStageFlags.Transfer, VkPipelineStageFlags.BottomOfPipe); + uiImage.SetLayout (cmd, VkImageAspectFlags.Color, + VkImageLayout.TransferSrcOptimal, VkImageLayout.ColorAttachmentOptimal, + VkPipelineStageFlags.Transfer, VkPipelineStageFlags.ColorAttachmentOutput); + + cmds [i].End (); + } + } + + /// + /// rebuild command buffers if needed + /// + public override void Update () { + if (rebuildBuffers) { + buildCommandBuffers (); + rebuildBuffers = false; + } + } + + protected override void OnResize () { + dev.WaitIdle (); + + crow.ProcessResize (new Crow.Rectangle (0, 0, (int)swapChain.Width, (int)swapChain.Height)); + + initUISurface (); + + buildCommandBuffers (); + dev.WaitIdle (); + } + + #region Mouse and keyboard + //protected override void onScroll (double xOffset, double yOffset) + //{ + // if (KeyModifiers.HasFlag (Glfw.Modifier.Shift)) + // crow.ProcessMouseWheelChanged ((float)xOffset); + // else + // crow.ProcessMouseWheelChanged ((float)yOffset); + //} + protected override void onMouseMove (double xPos, double yPos) + { + if (crow.ProcessMouseMove ((int)xPos, (int)yPos)) + return; + } + protected override void onMouseButtonDown (Glfw.MouseButton button) + { + if (crow.ProcessMouseButtonDown ((Crow.MouseButton)button)) + return; + base.onMouseButtonDown (button); + } + protected override void onMouseButtonUp (Glfw.MouseButton button) + { + if (crow.ProcessMouseButtonUp ((Crow.MouseButton)button)) + return; + base.onMouseButtonUp (button); + } + protected override void onKeyDown (Glfw.Key key, int scanCode, Glfw.Modifier modifiers) + { + if (crow.ProcessKeyDown ((Crow.Key)key)) + return; + } + protected override void onKeyUp (Glfw.Key key, int scanCode, Glfw.Modifier modifiers) + { + if (crow.ProcessKeyUp ((Crow.Key)key)) + return; + } + //protected override void onChar (Glfw.CodePoint cp) + //{ + // if (crow.ProcessKeyPress (cp.ToChar ())) + // return; + //} + #endregion + + #region dispose + protected override void Dispose (bool disposing) { + if (disposing) { + if (!isDisposed) { + dev.WaitIdle (); + + isRunning = false; + uiImage?.Dispose (); + while (crow != null) + Thread.Sleep (1); + } + } + + base.Dispose (disposing); + } + #endregion + } +} \ No newline at end of file diff --git a/MDCrow/obj/MDCrow.csproj.nuget.cache b/MDCrow/obj/MDCrow.csproj.nuget.cache deleted file mode 100644 index 879e4168..00000000 --- a/MDCrow/obj/MDCrow.csproj.nuget.cache +++ /dev/null @@ -1,5 +0,0 @@ -{ - "version": 1, - "dgSpecHash": "JR3Npq+qOMR4zqncbQZsp/9dSn2NHwuEQPHQrZBIcsWprf3vSAuB7kmnfnBox0NfgAlDwyqly5A6+chqHs1DDA==", - "success": true -} \ No newline at end of file diff --git a/MDCrow/obj/MDCrow.csproj.nuget.g.props b/MDCrow/obj/MDCrow.csproj.nuget.g.props deleted file mode 100644 index ef7190ed..00000000 --- a/MDCrow/obj/MDCrow.csproj.nuget.g.props +++ /dev/null @@ -1,18 +0,0 @@ - - - - True - NuGet - /mnt/devel/gts/vk.net/crow/MDCrow/obj/project.assets.json - /home/jp/.nuget/packages/ - /home/jp/.nuget/packages/;/usr/share/dotnet/sdk/NuGetFallbackFolder - PackageReference - 4.8.0 - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - - - - - \ No newline at end of file diff --git a/MDCrow/obj/MDCrow.csproj.nuget.g.targets b/MDCrow/obj/MDCrow.csproj.nuget.g.targets deleted file mode 100644 index 175c03f4..00000000 --- a/MDCrow/obj/MDCrow.csproj.nuget.g.targets +++ /dev/null @@ -1,9 +0,0 @@ - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - - - - - \ No newline at end of file diff --git a/MDCrow/obj/project.assets.json b/MDCrow/obj/project.assets.json deleted file mode 100644 index 8c5c0918..00000000 --- a/MDCrow/obj/project.assets.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "version": 3, - "targets": { - ".NETFramework,Version=v4.6.1": { - "MonoDevelop.Addins/0.4.7": { - "type": "package", - "build": { - "build/MonoDevelop.Addins.props": {}, - "build/MonoDevelop.Addins.targets": {} - } - }, - "Crow/1.0.0": { - "type": "project", - "compile": { - "bin/placeholder/Crow.dll": {} - }, - "runtime": { - "bin/placeholder/Crow.dll": {} - } - } - } - }, - "libraries": { - "MonoDevelop.Addins/0.4.7": { - "sha512": "eUqhwtcw224cx8OjkGaCwVsl4UO78X4nE3r1PpQVGaJWopwaUvKbyDfNmGxpDAKO5/+K4v3Dxxuz5zhFpz+6hQ==", - "type": "package", - "path": "monodevelop.addins/0.4.7", - "files": [ - ".signature.p7s", - "build/ICSharpCode.SharpZipLib.dll", - "build/Mono.Addins.CecilReflector.dll", - "build/Mono.Addins.Setup.dll", - "build/Mono.Addins.dll", - "build/Mono.Cecil.Mdb.dll", - "build/Mono.Cecil.Pdb.dll", - "build/Mono.Cecil.Rocks.dll", - "build/Mono.Cecil.dll", - "build/MonoDevelop.Addins.Tasks.dll", - "build/MonoDevelop.Addins.Tasks.pdb", - "build/MonoDevelop.Addins.props", - "build/MonoDevelop.Addins.targets", - "monodevelop.addins.0.4.7.nupkg.sha512", - "monodevelop.addins.nuspec" - ] - }, - "Crow/1.0.0": { - "type": "project", - "path": "../Crow/Crow.csproj", - "msbuildProject": "../Crow/Crow.csproj" - } - }, - "projectFileDependencyGroups": { - ".NETFramework,Version=v4.6.1": [ - "Crow >= 1.0.0", - "MonoDevelop.Addins >= 0.4.7" - ] - }, - "packageFolders": { - "/home/jp/.nuget/packages/": {}, - "/usr/share/dotnet/sdk/NuGetFallbackFolder": {} - }, - "project": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "/mnt/devel/gts/vk.net/crow/MDCrow/MDCrow.csproj", - "projectName": "MDCrow", - "projectPath": "/mnt/devel/gts/vk.net/crow/MDCrow/MDCrow.csproj", - "packagesPath": "/home/jp/.nuget/packages/", - "outputPath": "/mnt/devel/gts/vk.net/crow/MDCrow/obj/", - "projectStyle": "PackageReference", - "fallbackFolders": [ - "/usr/share/dotnet/sdk/NuGetFallbackFolder" - ], - "configFilePaths": [ - "/home/jp/.config/NuGet/NuGet.Config" - ], - "originalTargetFrameworks": [ - "net461" - ], - "sources": { - "/mnt/devel/Crow": {}, - "/mnt/devel/gts/vk.net/VK/bin/Release/": {}, - "/mnt/devel/gts/vk.net/vke/bin/Release": {}, - "/mnt/devel/vkvg.net/vkvg/bin/Release": {}, - "https://api.nuget.org/v3/index.json": {}, - "https://www.myget.org/F/opentk-develop": {}, - "https://www.nuget.org/api/v2/": {} - }, - "frameworks": { - "net461": { - "projectReferences": { - "/mnt/devel/gts/vk.net/crow/Crow/Crow.csproj": { - "projectPath": "/mnt/devel/gts/vk.net/crow/Crow/Crow.csproj" - } - } - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - } - }, - "frameworks": { - "net461": { - "dependencies": { - "MonoDevelop.Addins": { - "target": "Package", - "version": "[0.4.7, )" - } - } - } - } - } -} \ No newline at end of file diff --git a/Samples/HelloWorld/main.cs b/Samples/HelloWorld/main.cs index 6657cc43..633ab13c 100644 --- a/Samples/HelloWorld/main.cs +++ b/Samples/HelloWorld/main.cs @@ -6,218 +6,15 @@ using VK; namespace HelloWorld { - class Program : VkWindow, IValueChange { + class Program : CrowVkWin { static void Main (string[] args) { using (Program vke = new Program ()) { - vke.Run (); - } - } - bool isRunning; - - protected override void render () { - int idx = swapChain.GetNextImage (); - - if (idx < 0) { - OnResize (); - return; - } - - lock (crow.RenderMutex) { - presentQueue.Submit (cmds[idx], swapChain.presentComplete, drawComplete[idx]); - presentQueue.Present (swapChain, drawComplete[idx]); - presentQueue.WaitIdle (); - } - Thread.Sleep (1); - } - - #region crow - #region IValueChange implementation - public event EventHandler ValueChanged; - public virtual void NotifyValueChanged (string MemberName, object _value) - { - if (ValueChanged != null) - ValueChanged.Invoke (this, new Crow.ValueChangeEventArgs (MemberName, _value)); - } - #endregion - - Crow.Interface crow; - - void crow_thread_func () { - vkvgDev = new vkvg.Device (instance.Handle, phy.Handle, dev.VkDev.Handle, presentQueue.qFamIndex, - vkvg.SampleCount.Sample_8, presentQueue.index); - - crow = new Crow.Interface (vkvgDev, 800, 600); - - isRunning = true; - while (isRunning) { - crow.Update (); - Thread.Sleep (5); - } - - crow.Dispose (); - vkvgDev.Dispose (); - - crow = null; - } - #endregion - - - CVKL.Image uiImage; - vkvg.Device vkvgDev; - - void initUISurface () { - lock (crow.UpdateMutex) { - try { - uiImage?.Dispose (); - uiImage = new CVKL.Image (dev, new VkImage ((ulong)crow.surf.VkImage.ToInt64 ()), VkFormat.B8g8r8a8Unorm, - VkImageUsageFlags.Sampled, swapChain.Width, swapChain.Height); - uiImage.SetName ("uiImage"); - uiImage.CreateView (VkImageViewType.ImageView2D, VkImageAspectFlags.Color); - uiImage.CreateSampler (VkFilter.Nearest, VkFilter.Nearest, VkSamplerMipmapMode.Nearest, VkSamplerAddressMode.ClampToBorder); - uiImage.Descriptor.imageLayout = VkImageLayout.ShaderReadOnlyOptimal; - } catch (Exception ex) { - Console.WriteLine (ex); - } - } - } - - - Program () { - Thread crowThread = new Thread (crow_thread_func); - crowThread.IsBackground = true; - crowThread.Start (); - - while (crow == null) - Thread.Sleep (2); - - initUISurface (); + vke.crow.Load ("#HelloWorld.helloworld.crow").DataSource = vke; + vke.crow.LoadIMLFragment (""); - crow.Load ("#HelloWorld.helloworld.crow").DataSource = this; - - crow.LoadIMLFragment (""); - } - - void buildCommandBuffers () { - for (int i = 0; i < swapChain.ImageCount; ++i) { - cmds[i]?.Free (); - cmds[i] = cmdPool.AllocateAndStart (); - - CommandBuffer cmd = cmds [i]; - - swapChain.images [i].SetLayout (cmd, VkImageAspectFlags.Color, - VkImageLayout.Undefined, VkImageLayout.TransferDstOptimal, - VkPipelineStageFlags.BottomOfPipe, VkPipelineStageFlags.Transfer); - uiImage.SetLayout (cmd, VkImageAspectFlags.Color, - VkImageLayout.ColorAttachmentOptimal, VkImageLayout.TransferSrcOptimal, - VkPipelineStageFlags.ColorAttachmentOutput, VkPipelineStageFlags.Transfer); - - VkImageSubresourceLayers imgSubResLayer = new VkImageSubresourceLayers { - aspectMask = VkImageAspectFlags.Color, - mipLevel = 0, - baseArrayLayer = 0, - layerCount = 1 - }; - VkImageCopy cregion = new VkImageCopy { - srcSubresource = imgSubResLayer, - srcOffset = default (VkOffset3D), - dstSubresource = imgSubResLayer, - dstOffset = default (VkOffset3D), - extent = new VkExtent3D { width = swapChain.Width, height = swapChain.Height } - }; - Vk.vkCmdCopyImage (cmds [i].Handle, uiImage.Handle, VkImageLayout.TransferSrcOptimal, - swapChain.images [i].Handle, VkImageLayout.TransferDstOptimal, 1, ref cregion); - - swapChain.images [i].SetLayout (cmd, VkImageAspectFlags.Color, - VkImageLayout.TransferDstOptimal, VkImageLayout.PresentSrcKHR, - VkPipelineStageFlags.Transfer, VkPipelineStageFlags.BottomOfPipe); - uiImage.SetLayout (cmd, VkImageAspectFlags.Color, - VkImageLayout.TransferSrcOptimal, VkImageLayout.ColorAttachmentOptimal, - VkPipelineStageFlags.Transfer, VkPipelineStageFlags.ColorAttachmentOutput); - - cmds [i].End (); - } - } - - - #region update - int frameCount = 0; - - public override void Update () { - if (++frameCount > 20) { - NotifyValueChanged ("fps", fps); - frameCount = 0; + vke.Run (); } } - #endregion - - - protected override void OnResize () { - dev.WaitIdle (); - - crow.ProcessResize (new Crow.Rectangle (0, 0, (int)swapChain.Width, (int)swapChain.Height)); - - initUISurface (); - - buildCommandBuffers (); - dev.WaitIdle (); - } - #region Mouse and keyboard - //protected override void onScroll (double xOffset, double yOffset) - //{ - // if (KeyModifiers.HasFlag (Glfw.Modifier.Shift)) - // crow.ProcessMouseWheelChanged ((float)xOffset); - // else - // crow.ProcessMouseWheelChanged ((float)yOffset); - //} - protected override void onMouseMove (double xPos, double yPos) - { - if (crow.ProcessMouseMove ((int)xPos, (int)yPos)) - return; - } - protected override void onMouseButtonDown (Glfw.MouseButton button) - { - if (crow.ProcessMouseButtonDown ((Crow.MouseButton)button)) - return; - base.onMouseButtonDown (button); - } - protected override void onMouseButtonUp (Glfw.MouseButton button) - { - if (crow.ProcessMouseButtonUp ((Crow.MouseButton)button)) - return; - base.onMouseButtonUp (button); - } - protected override void onKeyDown (Glfw.Key key, int scanCode, Glfw.Modifier modifiers) - { - if (crow.ProcessKeyDown ((Crow.Key)key)) - return; - } - protected override void onKeyUp (Glfw.Key key, int scanCode, Glfw.Modifier modifiers) - { - if (crow.ProcessKeyUp ((Crow.Key)key)) - return; - } - //protected override void onChar (Glfw.CodePoint cp) - //{ - // if (crow.ProcessKeyPress (cp.ToChar ())) - // return; - //} - #endregion - - #region dispose - protected override void Dispose (bool disposing) { - if (disposing) { - if (!isDisposed) { - dev.WaitIdle (); - isRunning = false; - uiImage?.Dispose (); - while (crow != null) - Thread.Sleep (1); - } - } - - base.Dispose (disposing); - } - #endregion } } \ No newline at end of file diff --git a/netfx.props b/netfx.props new file mode 100644 index 00000000..25fdbe09 --- /dev/null +++ b/netfx.props @@ -0,0 +1,27 @@ + + + + + true + + + /Library/Frameworks/Mono.framework/Versions/Current/lib/mono + /usr/lib/mono + /usr/local/lib/mono + + + $(BaseFrameworkPathOverrideForMono)/4.5-api + $(BaseFrameworkPathOverrideForMono)/4.5.1-api + $(BaseFrameworkPathOverrideForMono)/4.5.2-api + $(BaseFrameworkPathOverrideForMono)/4.6-api + $(BaseFrameworkPathOverrideForMono)/4.6.1-api + $(BaseFrameworkPathOverrideForMono)/4.6.2-api + $(BaseFrameworkPathOverrideForMono)/4.7-api + $(BaseFrameworkPathOverrideForMono)/4.7.1-api + true + + + $(FrameworkPathOverride)/Facades;$(AssemblySearchPaths) + + + -- 2.47.3