diff options
| -rw-r--r-- | Backends/CairoBackend/CairoBackend.csproj | 18 | ||||
| -rw-r--r-- | Backends/CairoBackend/src/CairoBackendBase.cs | 2 | ||||
| -rw-r--r-- | Backends/CairoBackend/src/DefaultBackend.cs | 2 | ||||
| -rw-r--r-- | Backends/CairoBackend/src/ImageBackend.cs | 4 | ||||
| -rw-r--r-- | Crow/src/Interface.cs | 23 | ||||
| -rw-r--r-- | Directory.Build.props | 3 | ||||
| -rw-r--r-- | Drawing2D/Drawing2D.csproj | 2 | ||||
| -rw-r--r-- | Drawing2D/src/Point.cs | 3 | ||||
| -rw-r--r-- | Drawing2D/src/PointD.cs | 2 | ||||
| -rw-r--r-- | Samples/HelloWorld/main.cs | 9 | ||||
| -rw-r--r-- | Samples/PerfTests/Program.cs | 2 | ||||
| -rw-r--r-- | Samples/ShowCase/ShowCase.cs | 3 | ||||
| -rw-r--r-- | Samples/common/src/SampleBase.cs | 2 |
13 files changed, 52 insertions, 23 deletions
diff --git a/Backends/CairoBackend/CairoBackend.csproj b/Backends/CairoBackend/CairoBackend.csproj index 986ad859..8e724258 100644 --- a/Backends/CairoBackend/CairoBackend.csproj +++ b/Backends/CairoBackend/CairoBackend.csproj @@ -2,11 +2,29 @@ <PropertyGroup> <TargetFramework>netcoreapp3.0</TargetFramework> + + <AssemblyVersion>0.0.1</AssemblyVersion> + <PackageVersion>$(AssemblyVersion)-beta</PackageVersion> + + <Title>C.R.O.W Cairo Backend</Title> + <Description>C.R.O.W. is a widget toolkit and rendering engine developed in C# with templates, styles, compositing, and bindings.</Description> + <RepositoryUrl>https://github.com/jpbruyere/Crow</RepositoryUrl> + <PackageTags>Crow GUI Backend cairo</PackageTags> + <PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance> + <PackageProjectUrl>https://github.com/jpbruyere/Crow/wiki</PackageProjectUrl> + <PackageLicenseExpression>MIT</PackageLicenseExpression> + <PackageIcon>crow.png</PackageIcon> + <PackageCopyright>Copyright 2021</PackageCopyright> + <PackageReleaseNotes> + </PackageReleaseNotes> + <GeneratePackageOnBuild>True</GeneratePackageOnBuild> + <GenerateDocumentationFile>true</GenerateDocumentationFile> <EnableDefaultCompileItems>false</EnableDefaultCompileItems> </PropertyGroup> <ItemGroup> <Compile Include="src\**\*.cs" Exclude="src\NativeMethods-internal.cs" /> + <Content Include="..\..\Images\crow.png" Pack="true" PackagePath="" /> </ItemGroup> <ItemGroup> diff --git a/Backends/CairoBackend/src/CairoBackendBase.cs b/Backends/CairoBackend/src/CairoBackendBase.cs index 1e1b2e82..db6895c2 100644 --- a/Backends/CairoBackend/src/CairoBackendBase.cs +++ b/Backends/CairoBackend/src/CairoBackendBase.cs @@ -114,7 +114,7 @@ namespace Crow.CairoBackend ctx.Dispose (); clipping = null; } - public void ResizeMainSurface (int width, int height) + public virtual void ResizeMainSurface (int width, int height) { surf.Resize (width, height); } diff --git a/Backends/CairoBackend/src/DefaultBackend.cs b/Backends/CairoBackend/src/DefaultBackend.cs index 7f805063..24d719da 100644 --- a/Backends/CairoBackend/src/DefaultBackend.cs +++ b/Backends/CairoBackend/src/DefaultBackend.cs @@ -3,7 +3,7 @@ using Crow.CairoBackend; namespace Crow.Backends { - public class DefaultBackend : EglBackend { + public class DefaultBackend : ImageBackend { /// <summary> /// Create a new generic backend bound to the application surface /// </summary> diff --git a/Backends/CairoBackend/src/ImageBackend.cs b/Backends/CairoBackend/src/ImageBackend.cs index 0181451a..d8518f31 100644 --- a/Backends/CairoBackend/src/ImageBackend.cs +++ b/Backends/CairoBackend/src/ImageBackend.cs @@ -56,6 +56,10 @@ namespace Crow.CairoBackend public ImageBackend (int width, int height) : base () { surf = new ImageSurface (Format.ARGB32, width, height); } + public ImageBackend (IntPtr surfaceBitmapData, int width, int height, int stride) : base () { + surf = new ImageSurface (surfaceBitmapData, Format.ARGB32, width, height, stride); + } + public override ISurface CreateSurface(int width, int height) => new ImageSurface (Format.ARGB32, width, height); public override ISurface CreateSurface(byte[] data, int width, int height) diff --git a/Crow/src/Interface.cs b/Crow/src/Interface.cs index 9a1ab102..74d0ed94 100644 --- a/Crow/src/Interface.cs +++ b/Crow/src/Interface.cs @@ -217,7 +217,7 @@ namespace Crow /// <param name="height">the height of the window</param> /// <param name="glfwWindowHandle">A valid GLFW window handle</param> /// <returns></returns> - public Interface (int width, int height, IntPtr glfwWindowHandle) : this (width, height, true, false) + public Interface (int width, int height, IntPtr glfwWindowHandle) : this (width, height, true) { hWin = glfwWindowHandle; PerformanceMeasure.InitMeasures (); @@ -229,23 +229,13 @@ namespace Crow /// <param name="height">the height of the native window</param> /// <param name="singleThreaded">If 'false' start the ui update (InterfaceThread method) in a dedicated thread</param> /// <param name="createSurface">If 'yes', create the main rendering surface on the native window</param> - public Interface (int width = 800, int height = 600, bool singleThreaded = false, bool createSurface = true) + public Interface (int width = 800, int height = 600, bool singleThreaded = false) { CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture; //CurrentInterface = this; clientRectangle = new Rectangle (0, 0, width, height); SingleThreaded = singleThreaded; - - initBackend (); - PerformanceMeasure.InitMeasures (); - - if (!SingleThreaded) { - Thread t = new Thread (InterfaceThread) { - IsBackground = true - }; - t.Start (); - } } #endregion @@ -606,6 +596,15 @@ namespace Crow /// call Init() then enter the running loop performing ProcessEvents until running==false. /// </summary> public virtual void Run () { + initBackend (); + + if (!SingleThreaded) { + Thread t = new Thread (InterfaceThread) { + IsBackground = true + }; + t.Start (); + } + Init (); if (SingleThreaded) { diff --git a/Directory.Build.props b/Directory.Build.props index 76dad08e..15fef0b4 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -23,9 +23,6 @@ <!-- Used only by CrowIDE and CrowEdit--> <CrowDesignModeEnabled>false</CrowDesignModeEnabled> - <!-- Experimental vkvg backend, testing only--> - <CrowVkvgBackend>false</CrowVkvgBackend> - <GlfwSharpVersion>0.2.14</GlfwSharpVersion> </PropertyGroup> </Project> diff --git a/Drawing2D/Drawing2D.csproj b/Drawing2D/Drawing2D.csproj index 33b36ca2..bd40f7a5 100644 --- a/Drawing2D/Drawing2D.csproj +++ b/Drawing2D/Drawing2D.csproj @@ -1,7 +1,7 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> - <TargetFramework>netcoreapp3.0</TargetFramework> + <TargetFramework>netstandard2.1</TargetFramework> <EnableDefaultCompileItems>false</EnableDefaultCompileItems> <AssemblyVersion>1.0.0</AssemblyVersion> diff --git a/Drawing2D/src/Point.cs b/Drawing2D/src/Point.cs index 72bb2232..8f4066a5 100644 --- a/Drawing2D/src/Point.cs +++ b/Drawing2D/src/Point.cs @@ -8,6 +8,9 @@ namespace Drawing2D { public struct Point : IEquatable<Point>, IEquatable<int> { + public static readonly Point UnitX = new Point (1,0); + public static readonly Point UnitY = new Point (0,1); + public int X, Y; #region CTOR diff --git a/Drawing2D/src/PointD.cs b/Drawing2D/src/PointD.cs index e873c72f..7737cbfc 100644 --- a/Drawing2D/src/PointD.cs +++ b/Drawing2D/src/PointD.cs @@ -6,6 +6,8 @@ using System; namespace Drawing2D { public struct PointD : IEquatable<PointD>, IEquatable<double> { + public static readonly PointD UnitX = new PointD (1,0); + public static readonly PointD UnitY = new PointD (0,1); public double X; public double Y; public PointD (double x, double y) diff --git a/Samples/HelloWorld/main.cs b/Samples/HelloWorld/main.cs index 20fa9a27..fd70a2b9 100644 --- a/Samples/HelloWorld/main.cs +++ b/Samples/HelloWorld/main.cs @@ -6,12 +6,17 @@ using Samples; namespace HelloWorld { class Program : Interface { - Program() : base (800, 600, true, true) {} + Program() : base (800, 600, true) {} static void Main (string[] args) { using (Program app = new Program ()) { - app.Initialized += (sender, e) => app.LoadIMLFragment (@"<Label Text='Hello World'/>"); + //app.Initialized += (sender, e) => app.LoadIMLFragment (@"<Label Text='Hello World' Background='Red' Top='50' Margin='0'/>"); + //app.Initialized += (sender, e) => app.LoadIMLFragment (@"<Window Caption='hello world'/>"); app.Run (); } } + protected override void OnInitialized() + { + Load ("/mnt/devel/crow/Samples/HelloWorld/ui/helloworld.crow"); + } } } diff --git a/Samples/PerfTests/Program.cs b/Samples/PerfTests/Program.cs index b4ec4bb1..b1c6d950 100644 --- a/Samples/PerfTests/Program.cs +++ b/Samples/PerfTests/Program.cs @@ -64,7 +64,7 @@ namespace PerfTests } public TestInterface (string[] args, int width = 800, int height = 600) - : base (width, height, true, false) + : base (width, height, true) { string outDir = null; diff --git a/Samples/ShowCase/ShowCase.cs b/Samples/ShowCase/ShowCase.cs index 9096ebe6..958a6b13 100644 --- a/Samples/ShowCase/ShowCase.cs +++ b/Samples/ShowCase/ShowCase.cs @@ -35,7 +35,6 @@ namespace ShowCase Environment.SetEnvironmentVariable ("FONTCONFIG_PATH", @"C:\Users\Jean-Philippe\source\vcpkg\installed\x64-windows\tools\fontconfig\fonts"); using (Showcase app = new Showcase ()) { - app.WindowTitle = "C.R.O.W Showcase"; //app.SetWindowIcon ("#Crow.Icons.crow.png"); //app.Theme = @"C:\Users\Jean-Philippe\source\Crow\Themes\TestTheme"; CurrentProgramInstance = app; @@ -127,6 +126,8 @@ namespace ShowCase protected override void OnInitialized () { base.OnInitialized (); + WindowTitle = "C.R.O.W Showcase"; + Load ("#ShowCase.showcase.crow").DataSource = this; crowContainer = FindByName ("CrowContainer") as Container; editor = FindByName ("tb") as Editor; diff --git a/Samples/common/src/SampleBase.cs b/Samples/common/src/SampleBase.cs index 2e7440a1..e469016c 100644 --- a/Samples/common/src/SampleBase.cs +++ b/Samples/common/src/SampleBase.cs @@ -19,7 +19,7 @@ namespace Samples public class SampleBase : Interface { public SampleBase(IntPtr hWin) : base(800, 600, hWin) { } - public SampleBase() : base(800, 600, true, true) { } + public SampleBase() : base (800, 600, true) { } public Version CrowVersion => Assembly.GetAssembly(typeof(Widget)).GetName().Version; |