41 changed files with 1539 additions and 420 deletions
@ -0,0 +1,4 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<packages> |
|||
<package id="SkiaSharp" version="1.49.2.0-beta" targetFramework="monoandroid60" /> |
|||
</packages> |
|||
@ -0,0 +1,14 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<configuration> |
|||
<startup> |
|||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" /> |
|||
</startup> |
|||
<runtime> |
|||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> |
|||
<dependentAssembly> |
|||
<assemblyIdentity name="Mono.Cairo" publicKeyToken="0738eb9f132ed756" culture="neutral" /> |
|||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> |
|||
</dependentAssembly> |
|||
</assemblyBinding> |
|||
</runtime> |
|||
</configuration> |
|||
@ -0,0 +1,209 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> |
|||
<PropertyGroup> |
|||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
|||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
|||
<ProjectGuid>{383168DF-5A4E-45E5-A239-FB54D40D4F5C}</ProjectGuid> |
|||
<OutputType>WinExe</OutputType> |
|||
<AppDesignerFolder>Properties</AppDesignerFolder> |
|||
<RootNamespace>Perspex.Skia.Desktop.TestApp</RootNamespace> |
|||
<AssemblyName>Perspex.Skia.Desktop.TestApp</AssemblyName> |
|||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion> |
|||
<FileAlignment>512</FileAlignment> |
|||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> |
|||
<NuGetPackageImportStamp> |
|||
</NuGetPackageImportStamp> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
|||
<PlatformTarget>AnyCPU</PlatformTarget> |
|||
<DebugSymbols>true</DebugSymbols> |
|||
<DebugType>full</DebugType> |
|||
<Optimize>false</Optimize> |
|||
<OutputPath>bin\Debug\</OutputPath> |
|||
<DefineConstants>DEBUG;TRACE</DefineConstants> |
|||
<ErrorReport>prompt</ErrorReport> |
|||
<WarningLevel>4</WarningLevel> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
|||
<PlatformTarget>AnyCPU</PlatformTarget> |
|||
<DebugType>pdbonly</DebugType> |
|||
<Optimize>true</Optimize> |
|||
<OutputPath>bin\Release\</OutputPath> |
|||
<DefineConstants>TRACE</DefineConstants> |
|||
<ErrorReport>prompt</ErrorReport> |
|||
<WarningLevel>4</WarningLevel> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'"> |
|||
<DebugSymbols>true</DebugSymbols> |
|||
<OutputPath>bin\x86\Debug\</OutputPath> |
|||
<DefineConstants>DEBUG;TRACE</DefineConstants> |
|||
<DebugType>full</DebugType> |
|||
<PlatformTarget>x86</PlatformTarget> |
|||
<ErrorReport>prompt</ErrorReport> |
|||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> |
|||
<Prefer32Bit>true</Prefer32Bit> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'"> |
|||
<OutputPath>bin\x86\Release\</OutputPath> |
|||
<DefineConstants>TRACE</DefineConstants> |
|||
<Optimize>true</Optimize> |
|||
<DebugType>pdbonly</DebugType> |
|||
<PlatformTarget>x86</PlatformTarget> |
|||
<ErrorReport>prompt</ErrorReport> |
|||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> |
|||
<Prefer32Bit>true</Prefer32Bit> |
|||
</PropertyGroup> |
|||
<ItemGroup> |
|||
<Reference Include="Serilog, Version=1.5.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL"> |
|||
<HintPath>..\..\..\packages\Serilog.1.5.14\lib\net45\Serilog.dll</HintPath> |
|||
<Private>True</Private> |
|||
</Reference> |
|||
<Reference Include="Serilog.FullNetFx, Version=1.5.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL"> |
|||
<HintPath>..\..\..\packages\Serilog.1.5.14\lib\net45\Serilog.FullNetFx.dll</HintPath> |
|||
<Private>True</Private> |
|||
</Reference> |
|||
<Reference Include="SkiaSharp, Version=1.49.0.0, Culture=neutral, processorArchitecture=MSIL"> |
|||
<HintPath>..\..\..\packages\SkiaSharp.1.49.2.0-beta\lib\net45\SkiaSharp.dll</HintPath> |
|||
<Private>True</Private> |
|||
</Reference> |
|||
<Reference Include="System" /> |
|||
<Reference Include="System.Core" /> |
|||
<Reference Include="System.Reactive.Core, Version=2.2.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> |
|||
<HintPath>..\..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll</HintPath> |
|||
<Private>True</Private> |
|||
</Reference> |
|||
<Reference Include="System.Reactive.Interfaces, Version=2.2.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> |
|||
<HintPath>..\..\..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll</HintPath> |
|||
<Private>True</Private> |
|||
</Reference> |
|||
<Reference Include="System.Reactive.Linq, Version=2.2.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> |
|||
<HintPath>..\..\..\packages\Rx-Linq.2.2.5\lib\net45\System.Reactive.Linq.dll</HintPath> |
|||
<Private>True</Private> |
|||
</Reference> |
|||
<Reference Include="System.Reactive.PlatformServices, Version=2.2.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> |
|||
<HintPath>..\..\..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll</HintPath> |
|||
<Private>True</Private> |
|||
</Reference> |
|||
<Reference Include="System.Reactive.Windows.Threading, Version=2.2.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> |
|||
<HintPath>..\..\..\packages\Rx-XAML.2.2.5\lib\net45\System.Reactive.Windows.Threading.dll</HintPath> |
|||
<Private>True</Private> |
|||
</Reference> |
|||
<Reference Include="System.Xml.Linq" /> |
|||
<Reference Include="System.Data.DataSetExtensions" /> |
|||
<Reference Include="Microsoft.CSharp" /> |
|||
<Reference Include="System.Data" /> |
|||
<Reference Include="System.Deployment" /> |
|||
<Reference Include="System.Drawing" /> |
|||
<Reference Include="System.Net.Http" /> |
|||
<Reference Include="System.Windows.Forms" /> |
|||
<Reference Include="System.Xml" /> |
|||
<Reference Include="WindowsBase" /> |
|||
</ItemGroup> |
|||
<ItemGroup> |
|||
<Compile Include="Program.cs" /> |
|||
<Compile Include="Properties\AssemblyInfo.cs" /> |
|||
<None Include="packages.config" /> |
|||
</ItemGroup> |
|||
<ItemGroup> |
|||
<None Include="App.config" /> |
|||
</ItemGroup> |
|||
<ItemGroup> |
|||
<ProjectReference Include="..\..\Gtk\Perspex.Cairo\Perspex.Cairo.csproj"> |
|||
<Project>{FB05AC90-89BA-4F2F-A924-F37875FB547C}</Project> |
|||
<Name>Perspex.Cairo</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Gtk\Perspex.Gtk\Perspex.Gtk.csproj"> |
|||
<Project>{54F237D5-A70A-4752-9656-0C70B1A7B047}</Project> |
|||
<Name>Perspex.Gtk</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Markup\Perspex.Markup.Xaml\Perspex.Markup.Xaml.csproj"> |
|||
<Project>{3E53A01A-B331-47F3-B828-4A5717E77A24}</Project> |
|||
<Name>Perspex.Markup.Xaml</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Markup\Perspex.Markup\Perspex.Markup.csproj"> |
|||
<Project>{6417E941-21BC-467B-A771-0DE389353CE6}</Project> |
|||
<Name>Perspex.Markup</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Perspex.Animation\Perspex.Animation.csproj"> |
|||
<Project>{D211E587-D8BC-45B9-95A4-F297C8FA5200}</Project> |
|||
<Name>Perspex.Animation</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Perspex.DesignerSupport\Perspex.DesignerSupport.csproj"> |
|||
<Project>{799A7BB5-3C2C-48B6-85A7-406A12C420DA}</Project> |
|||
<Name>Perspex.Application</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Perspex.Base\Perspex.Base.csproj"> |
|||
<Project>{B09B78D8-9B26-48B0-9149-D64A2F120F3F}</Project> |
|||
<Name>Perspex.Base</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Perspex.Controls\Perspex.Controls.csproj"> |
|||
<Project>{D2221C82-4A25-4583-9B43-D791E3F6820C}</Project> |
|||
<Name>Perspex.Controls</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Perspex.Diagnostics\Perspex.Diagnostics.csproj"> |
|||
<Project>{7062AE20-5DCC-4442-9645-8195BDECE63E}</Project> |
|||
<Name>Perspex.Diagnostics</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Perspex.HtmlRenderer\Perspex.HtmlRenderer.csproj"> |
|||
<Project>{5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}</Project> |
|||
<Name>Perspex.HtmlRenderer</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Perspex.Input\Perspex.Input.csproj"> |
|||
<Project>{62024B2D-53EB-4638-B26B-85EEAA54866E}</Project> |
|||
<Name>Perspex.Input</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Perspex.Interactivity\Perspex.Interactivity.csproj"> |
|||
<Project>{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}</Project> |
|||
<Name>Perspex.Interactivity</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Perspex.Layout\Perspex.Layout.csproj"> |
|||
<Project>{42472427-4774-4C81-8AFF-9F27B8E31721}</Project> |
|||
<Name>Perspex.Layout</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Perspex.ReactiveUI\Perspex.ReactiveUI.csproj"> |
|||
<Project>{6417B24E-49C2-4985-8DB2-3AB9D898EC91}</Project> |
|||
<Name>Perspex.ReactiveUI</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Perspex.SceneGraph\Perspex.SceneGraph.csproj"> |
|||
<Project>{EB582467-6ABB-43A1-B052-E981BA910E3A}</Project> |
|||
<Name>Perspex.SceneGraph</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Perspex.Styling\Perspex.Styling.csproj"> |
|||
<Project>{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}</Project> |
|||
<Name>Perspex.Styling</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Perspex.Themes.Default\Perspex.Themes.Default.csproj"> |
|||
<Project>{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}</Project> |
|||
<Name>Perspex.Themes.Default</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Windows\Perspex.Direct2D1\Perspex.Direct2D1.csproj"> |
|||
<Project>{3E908F67-5543-4879-A1DC-08EACE79B3CD}</Project> |
|||
<Name>Perspex.Direct2D1</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\..\Windows\Perspex.Win32\Perspex.Win32.csproj"> |
|||
<Project>{811A76CF-1CF6-440F-963B-BBE31BD72A82}</Project> |
|||
<Name>Perspex.Win32</Name> |
|||
</ProjectReference> |
|||
<ProjectReference Include="..\Perspex.Skia.Desktop\Perspex.Skia.Desktop.csproj"> |
|||
<Project>{925dd807-b651-475f-9f7c-cbeb974ce43d}</Project> |
|||
<Name>Perspex.Skia.Desktop</Name> |
|||
</ProjectReference> |
|||
</ItemGroup> |
|||
<Import Project="..\..\..\samples\TestApplicationShared\TestApplicationShared.projitems" Label="Shared" /> |
|||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
|||
<Import Project="..\..\..\packages\SkiaSharp.1.49.2.0-beta\build\net45\SkiaSharp.targets" Condition="Exists('..\..\..\packages\SkiaSharp.1.49.2.0-beta\build\net45\SkiaSharp.targets')" /> |
|||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> |
|||
<PropertyGroup> |
|||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> |
|||
</PropertyGroup> |
|||
<Error Condition="!Exists('..\..\..\packages\SkiaSharp.1.49.2.0-beta\build\net45\SkiaSharp.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\SkiaSharp.1.49.2.0-beta\build\net45\SkiaSharp.targets'))" /> |
|||
</Target> |
|||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. |
|||
Other similar extension points exist, see Microsoft.Common.targets. |
|||
<Target Name="BeforeBuild"> |
|||
</Target> |
|||
<Target Name="AfterBuild"> |
|||
</Target> |
|||
--> |
|||
</Project> |
|||
@ -0,0 +1,91 @@ |
|||
// Copyright (c) The Perspex Project. All rights reserved.
|
|||
// Licensed under the MIT license. See licence.md file in the project root for full license information.
|
|||
|
|||
using System; |
|||
using System.Linq; |
|||
using System.IO; |
|||
using System.Reactive.Linq; |
|||
using Perspex; |
|||
using Perspex.Animation; |
|||
using Perspex.Collections; |
|||
using Perspex.Controls; |
|||
using Perspex.Controls.Html; |
|||
using Perspex.Controls.Primitives; |
|||
using Perspex.Controls.Shapes; |
|||
using Perspex.Controls.Templates; |
|||
using Perspex.Diagnostics; |
|||
using Perspex.Layout; |
|||
using Perspex.Media; |
|||
using Perspex.Media.Imaging; |
|||
using TestApplication; |
|||
using Perspex.Rendering; |
|||
#if PERSPEX_GTK
|
|||
using Perspex.Gtk; |
|||
#endif
|
|||
using ReactiveUI; |
|||
|
|||
namespace Perspex.Skia.Desktop.TestApp |
|||
{ |
|||
internal class Program |
|||
{ |
|||
private static void Main(string[] args) |
|||
{ |
|||
// The version of ReactiveUI currently included is for WPF and so expects a WPF
|
|||
// dispatcher. This makes sure it's initialized.
|
|||
System.Windows.Threading.Dispatcher foo = System.Windows.Threading.Dispatcher.CurrentDispatcher; |
|||
new SkiaApp(); |
|||
|
|||
//RendererMixin.DrawFpsCounter = true;
|
|||
|
|||
MainWindow.RootNamespace = "Perspex.Skia.Desktop.TestApp"; |
|||
var wnd = MainWindow.Create(); |
|||
|
|||
// let's start small :)
|
|||
//var wnd = SimpleWindow.Create();
|
|||
|
|||
DevTools.Attach(wnd); |
|||
Application.Current.Run(wnd); |
|||
} |
|||
} |
|||
|
|||
internal class SkiaApp : App |
|||
{ |
|||
protected override void PlatformInitialization() |
|||
{ |
|||
SkiaPlatform.Initialize(); |
|||
InitializeSubsystem("Perspex.Win32"); |
|||
} |
|||
} |
|||
|
|||
internal class SimpleWindow |
|||
{ |
|||
public static Window Create() |
|||
{ |
|||
Border container; |
|||
|
|||
Window window = new Window |
|||
{ |
|||
Title = "Perspex Test Application", |
|||
Content = (container = new Border |
|||
{ |
|||
Background = Brushes.Green, |
|||
BorderBrush = Brushes.Yellow, |
|||
BorderThickness = 12, |
|||
Padding = new Thickness(5), |
|||
Child = new Rectangle |
|||
{ |
|||
Fill = Brushes.Blue, |
|||
Width = 200, |
|||
Height = 200, |
|||
Margin = new Thickness(50) |
|||
} |
|||
}) |
|||
|
|||
}; |
|||
|
|||
window.Show(); |
|||
return window; |
|||
} |
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,36 @@ |
|||
using System.Reflection; |
|||
using System.Runtime.CompilerServices; |
|||
using System.Runtime.InteropServices; |
|||
|
|||
// General Information about an assembly is controlled through the following
|
|||
// set of attributes. Change these attribute values to modify the information
|
|||
// associated with an assembly.
|
|||
[assembly: AssemblyTitle("Perspex.Skia.Desktop.TestApp")] |
|||
[assembly: AssemblyDescription("")] |
|||
[assembly: AssemblyConfiguration("")] |
|||
[assembly: AssemblyCompany("")] |
|||
[assembly: AssemblyProduct("Perspex.Skia.Desktop.TestApp")] |
|||
[assembly: AssemblyCopyright("Copyright © 2016")] |
|||
[assembly: AssemblyTrademark("")] |
|||
[assembly: AssemblyCulture("")] |
|||
|
|||
// Setting ComVisible to false makes the types in this assembly not visible
|
|||
// to COM components. If you need to access a type in this assembly from
|
|||
// COM, set the ComVisible attribute to true on that type.
|
|||
[assembly: ComVisible(false)] |
|||
|
|||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
|||
[assembly: Guid("383168df-5a4e-45e5-a239-fb54d40d4f5c")] |
|||
|
|||
// Version information for an assembly consists of the following four values:
|
|||
//
|
|||
// Major Version
|
|||
// Minor Version
|
|||
// Build Number
|
|||
// Revision
|
|||
//
|
|||
// You can specify all the values or you can default the Build and Revision Numbers
|
|||
// by using the '*' as shown below:
|
|||
// [assembly: AssemblyVersion("1.0.*")]
|
|||
[assembly: AssemblyVersion("1.0.0.0")] |
|||
[assembly: AssemblyFileVersion("1.0.0.0")] |
|||
@ -0,0 +1,11 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<packages> |
|||
<package id="Rx-Core" version="2.2.5" targetFramework="net46" /> |
|||
<package id="Rx-Interfaces" version="2.2.5" targetFramework="net46" /> |
|||
<package id="Rx-Linq" version="2.2.5" targetFramework="net46" /> |
|||
<package id="Rx-Main" version="2.2.5" targetFramework="net46" /> |
|||
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="net46" /> |
|||
<package id="Rx-XAML" version="2.2.5" targetFramework="net46" /> |
|||
<package id="Serilog" version="1.5.14" targetFramework="net46" /> |
|||
<package id="SkiaSharp" version="1.49.2.0-beta" targetFramework="net46" /> |
|||
</packages> |
|||
@ -0,0 +1,4 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<packages> |
|||
<package id="SkiaSharp" version="1.49.2.0-beta" targetFramework="net45" /> |
|||
</packages> |
|||
@ -0,0 +1,4 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<packages> |
|||
<package id="SkiaSharp" version="1.49.2.0-beta" targetFramework="xamarinios10" /> |
|||
</packages> |
|||
@ -1,10 +1,12 @@ |
|||
using System.Runtime.InteropServices; |
|||
|
|||
/* No longer needed with SkiaSharp |
|||
namespace Perspex.Skia |
|||
{ |
|||
[StructLayout(LayoutKind.Sequential)] |
|||
struct NativeDrawingContextSettings |
|||
{ |
|||
public double Opacity; |
|||
} |
|||
} |
|||
[StructLayout(LayoutKind.Sequential)] |
|||
struct NativeDrawingContextSettings |
|||
{ |
|||
public double Opacity; |
|||
} |
|||
} |
|||
*/ |
|||
@ -0,0 +1,57 @@ |
|||
using SkiaSharp; |
|||
|
|||
|
|||
namespace Perspex.Skia |
|||
{ |
|||
public static class SkiaSharpExtensions |
|||
{ |
|||
public static SKPoint ToSKPoint(this Point p) |
|||
{ |
|||
return new SKPoint((float)p.X, (float)p.Y); |
|||
} |
|||
|
|||
public static SKRect ToSKRect(this Rect r) |
|||
{ |
|||
return new SKRect((float)r.X, (float)r.Y, (float)r.Right, (float)r.Bottom); |
|||
} |
|||
|
|||
public static Rect ToPerspexRect(this SKRect r) |
|||
{ |
|||
return new Rect(r.Left, r.Top, r.Right - r.Left, r.Bottom - r.Top); |
|||
} |
|||
|
|||
public static SKMatrix ToSKMatrix(this Matrix m) |
|||
{ |
|||
var sm = new SKMatrix |
|||
{ |
|||
ScaleX = (float)m.M11, |
|||
SkewX = (float)m.M21, |
|||
TransX = (float)m.M31, |
|||
SkewY = (float)m.M12, |
|||
ScaleY = (float)m.M22, |
|||
TransY = (float)m.M32, |
|||
Persp0 = 0, |
|||
Persp1 = 0, |
|||
Persp2 = 1 |
|||
}; |
|||
|
|||
return sm; |
|||
} |
|||
|
|||
public static SKColor ToSKColor(this Media.Color c) |
|||
{ |
|||
return new SKColor(c.R, c.G, c.B, c.A); |
|||
} |
|||
|
|||
public static SKShaderTileMode ToSKShaderTileMode(this Media.GradientSpreadMethod m) |
|||
{ |
|||
switch (m) |
|||
{ |
|||
default: |
|||
case Media.GradientSpreadMethod.Pad: return SKShaderTileMode.Clamp; |
|||
case Media.GradientSpreadMethod.Reflect: return SKShaderTileMode.Mirror; |
|||
case Media.GradientSpreadMethod.Repeat: return SKShaderTileMode.Repeat; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,42 @@ |
|||
TODO: |
|||
|
|||
BitmapImpl |
|||
- constructor from Width/Height |
|||
- Save |
|||
|
|||
DrawingContextImpl |
|||
- DrawRoundRect is not properly implemented due to lack of support in Skia |
|||
- Alpha support missing as SkiaSharp does not expose this |
|||
- Gradient Shader caching? |
|||
- TileBrushes |
|||
- Pen Dash styles |
|||
|
|||
Formatted Text Rendering |
|||
- still needs a lot of work once SkiaSharp implementation is better |
|||
|
|||
RenderTarget |
|||
- Figure out a cleaner implementation across all platforms |
|||
- HW accelerated working? |
|||
|
|||
StreamGeometry |
|||
- Paths within Paths may not work right |
|||
- Paths cannot be Cloned (lack of SkiaSupport) |
|||
- Paths cannot be transformed (lack of SkiaSupport) |
|||
- ArcTo |
|||
|
|||
App Bootstrapping |
|||
- Cleanup the testapplications across all platforms |
|||
- Add a cleaner Fluent API for the subsystems |
|||
- ie. app.UseDirect2D() (via platform specific extension methods) |
|||
|
|||
Android |
|||
- Testing & fixes |
|||
|
|||
iOS |
|||
- Get GLView working again? |
|||
|
|||
|
|||
General |
|||
- Cleanup/eliminate obsolete files |
|||
- Cleanup the many Test Applications |
|||
- Get Skia Unit Tests passing |
|||
@ -1,34 +1,38 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
|||
<plist version="1.0"> |
|||
<dict> |
|||
<key>CFBundleDisplayName</key> |
|||
<string>Perspex.iOSTestApplication</string> |
|||
<key>CFBundleIdentifier</key> |
|||
<string>com.your-company.Perspex.iOSTestApplication</string> |
|||
<key>CFBundleShortVersionString</key> |
|||
<string>1.0</string> |
|||
<key>CFBundleVersion</key> |
|||
<string>1.0</string> |
|||
<key>UIDeviceFamily</key> |
|||
<array> |
|||
<integer>1</integer> |
|||
<integer>2</integer> |
|||
</array> |
|||
<key>UISupportedInterfaceOrientations</key> |
|||
<array> |
|||
<string>UIInterfaceOrientationPortrait</string> |
|||
<string>UIInterfaceOrientationLandscapeLeft</string> |
|||
<string>UIInterfaceOrientationLandscapeRight</string> |
|||
</array> |
|||
<key>UISupportedInterfaceOrientations~ipad</key> |
|||
<array> |
|||
<string>UIInterfaceOrientationPortrait</string> |
|||
<string>UIInterfaceOrientationPortraitUpsideDown</string> |
|||
<string>UIInterfaceOrientationLandscapeLeft</string> |
|||
<string>UIInterfaceOrientationLandscapeRight</string> |
|||
</array> |
|||
<key>MinimumOSVersion</key> |
|||
<string>7.0</string> |
|||
</dict> |
|||
</plist> |
|||
<dict> |
|||
<key>CFBundleDisplayName</key> |
|||
<string>Perspex.iOSTestApplication</string> |
|||
<key>CFBundleIdentifier</key> |
|||
<string>com.your-company.Perspex.iOSTestApplication</string> |
|||
<key>CFBundleShortVersionString</key> |
|||
<string>1.0</string> |
|||
<key>CFBundleVersion</key> |
|||
<string>1.0</string> |
|||
<key>UIDeviceFamily</key> |
|||
<array> |
|||
<integer>1</integer> |
|||
<integer>2</integer> |
|||
</array> |
|||
<key>UISupportedInterfaceOrientations</key> |
|||
<array> |
|||
<string>UIInterfaceOrientationPortrait</string> |
|||
<string>UIInterfaceOrientationLandscapeLeft</string> |
|||
<string>UIInterfaceOrientationLandscapeRight</string> |
|||
</array> |
|||
<key>UISupportedInterfaceOrientations~ipad</key> |
|||
<array> |
|||
<string>UIInterfaceOrientationPortrait</string> |
|||
<string>UIInterfaceOrientationPortraitUpsideDown</string> |
|||
<string>UIInterfaceOrientationLandscapeLeft</string> |
|||
<string>UIInterfaceOrientationLandscapeRight</string> |
|||
</array> |
|||
<key>MinimumOSVersion</key> |
|||
<string>8.0</string> |
|||
<key>CFBundleIconFiles</key> |
|||
<array> |
|||
<string>Default-568h@2x.png</string> |
|||
</array> |
|||
</dict> |
|||
</plist> |
|||
|
|||
Loading…
Reference in new issue