Browse Source

Added Emgu.CV.Platform.Maui.UI project.

pull/788/head
Canming Huang 3 years ago
parent
commit
43a687c225
  1. 4
      Emgu.CV.Example/MAUI/MauiDemoApp/MauiDemoApp.csproj
  2. 3
      Emgu.CV.Example/MAUI/MauiDemoApp/Properties/launchSettings.json
  3. 3
      Emgu.CV.NativeImage/WriteableBitmapExtension.cs
  4. 2
      Emgu.CV.Platform/Emgu.CV.Wpf/Emgu.CV.Wpf.csproj
  5. 80
      Emgu.CV.Platform/Maui/UI/ButtonTextImagePage.cs
  6. 8
      Emgu.CV.Platform/Maui/UI/CvImageView.cs
  7. 47
      Emgu.CV.Platform/Maui/UI/Emgu.CV.Platform.Maui.UI.csproj
  8. 7
      Emgu.CV.Platform/Maui/UI/Platforms/Android/PlatformClass1.cs
  9. 7
      Emgu.CV.Platform/Maui/UI/Platforms/MacCatalyst/PlatformClass1.cs
  10. 9
      Emgu.CV.Platform/Maui/UI/Platforms/Tizen/PlatformClass1.cs
  11. 92
      Emgu.CV.Platform/Maui/UI/Platforms/Windows/WritableBitmapExtension.cs
  12. 7
      Emgu.CV.Platform/Maui/UI/Platforms/iOS/PlatformClass1.cs
  13. 0
      Emgu.CV.Platform/Maui/UI/ProcessAndRenderPage.cs
  14. 0
      Emgu.CV.Platform/Maui/UI/apple/AvCaptureSessionPage.cs
  15. 0
      Emgu.CV.Platform/Maui/UI/apple/CMSampleBufferExtensions.cs
  16. 0
      Emgu.CV.Platform/Maui/UI/apple/OutputRecorder.cs
  17. 14
      Solution/Android/Emgu.CV.Android.Example.sln
  18. 58
      Solution/CrossPlatform/Emgu.CV.CrossPlatform.sln

4
Emgu.CV.Example/MAUI/MauiDemoApp/MauiDemoApp.csproj

@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFrameworks>net6.0-android;net6.0-ios;net6.0-maccatalyst</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net6.0-windows10.0.19041.0</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net6.0-windows10.0.20348.0</TargetFrameworks>
<!-- Uncomment to also build the tizen app. You will need to install tizen by following this: https://github.com/Samsung/Tizen.NET -->
<!-- <TargetFrameworks>$(TargetFrameworks);net6.0-tizen</TargetFrameworks> -->
<OutputType>Exe</OutputType>
@ -10,6 +10,7 @@
<UseMaui>true</UseMaui>
<SingleProject>true</SingleProject>
<ImplicitUsings>enable</ImplicitUsings>
<!-- <WindowsPackageType>None</WindowsPackageType> -->
<!-- Display name -->
<ApplicationTitle>MauiDemoApp</ApplicationTitle>
@ -77,6 +78,7 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Emgu.CV.Platform\Maui\UI\Emgu.CV.Platform.Maui.UI.csproj" />
<ProjectReference Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios' Or $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'" Include="..\..\..\Emgu.CV.Platform\NetStandard_iOS\Emgu.CV.Platform.NetStandard.IOS.csproj" />
<ProjectReference Condition="!($([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios' Or $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst')" Include="..\..\..\Emgu.CV.Platform\NetStandard\Emgu.CV.Platform.NetStandard.csproj" />

3
Emgu.CV.Example/MAUI/MauiDemoApp/Properties/launchSettings.json

@ -3,6 +3,9 @@
"Windows Machine": {
"commandName": "MsixPackage",
"nativeDebugging": false
},
"MauiDemoApp": {
"commandName": "Project"
}
}
}

3
Emgu.CV.NativeImage/WriteableBitmapExtension.cs

@ -2,7 +2,7 @@
// Copyright (C) 2004-2022 by EMGU Corporation. All rights reserved.
//----------------------------------------------------------------------------
#if NETFX_CORE
using System;
using System.Drawing;
using System.IO;
@ -190,4 +190,3 @@ namespace Emgu.CV
}
}
#endif

2
Emgu.CV.Platform/Emgu.CV.Wpf/Emgu.CV.Wpf.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>

80
Emgu.CV.Example/MAUI/MauiDemoApp/ButtonTextImagePage.cs → Emgu.CV.Platform/Maui/UI/ButtonTextImagePage.cs

@ -20,6 +20,8 @@ using System.Runtime.InteropServices;
using Microsoft.Maui.Controls.PlatformConfiguration;
using Emgu.CV.Platform.Maui.UI;
#if __MACCATALYST__
using AppKit;
using CoreGraphics;
@ -410,83 +412,5 @@ namespace MauiDemoApp
}
#if WINDOWS
public static class WriteableBitmapExtension
{
/*
public static void ToArray(this Microsoft.UI.Xaml.Media.Imaging.WriteableBitmap writeableBitmap, IOutputArray outputArray)
{
byte[] data = new byte[writeableBitmap.PixelWidth * writeableBitmap.PixelHeight * 4];
writeableBitmap.PixelBuffer.CopyTo(data);
GCHandle dataHandle = GCHandle.Alloc(data, GCHandleType.Pinned);
try
{
using (Mat image = new Mat(
new System.Drawing.Size(writeableBitmap.PixelWidth, writeableBitmap.PixelHeight),
DepthType.Cv8U,
4,
dataHandle.AddrOfPinnedObject(),
writeableBitmap.PixelWidth * 4
))
{
CvInvoke.CvtColor(image, outputArray, ColorConversion.Bgra2Bgr);
}
}
finally
{
dataHandle.Free();
}
}*/
public static Microsoft.UI.Xaml.Media.Imaging.WriteableBitmap ToWritableBitmap(this IInputArray array)
{
using (InputArray ia = array.GetInputArray())
{
System.Drawing.Size size = ia.GetSize();
Microsoft.UI.Xaml.Media.Imaging.WriteableBitmap bmp = new Microsoft.UI.Xaml.Media.Imaging.WriteableBitmap(size.Width, size.Height);
byte[] buffer = new byte[bmp.PixelWidth * bmp.PixelHeight * 4];
GCHandle handle = GCHandle.Alloc(buffer, GCHandleType.Pinned);
using (Mat resultImage = new Mat(
new System.Drawing.Size(bmp.PixelWidth, bmp.PixelHeight),
DepthType.Cv8U,
4,
handle.AddrOfPinnedObject(),
bmp.PixelWidth * 4))
{
int channels = ia.GetChannels();
switch (channels)
{
case 1:
CvInvoke.CvtColor(array, resultImage, ColorConversion.Gray2Bgra);
break;
case 3:
CvInvoke.CvtColor(array, resultImage, ColorConversion.Bgr2Bgra);
break;
case 4:
using (Mat m = ia.GetMat())
m.CopyTo(resultImage);
break;
default:
throw new NotImplementedException(String.Format(
"Conversion from {0} channel IInputArray to WritableBitmap is not supported",
channels));
}
}
handle.Free();
using (Stream resultStream = System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBufferExtensions.AsStream(bmp.PixelBuffer))
//using (Stream resultStream = bmp.PixelBuffer.AsStream())
{
resultStream.Write(buffer, 0, buffer.Length);
}
return bmp;
}
}
}
#endif
}

8
Emgu.CV.Example/MAUI/MauiDemoApp/CvImageView.cs → Emgu.CV.Platform/Maui/UI/CvImageView.cs

@ -25,7 +25,7 @@ using CoreGraphics;
using Visibility = Microsoft.UI.Xaml.Visibility;
#endif
namespace MauiDemoApp
namespace Emgu.CV.Platform.Maui.UI
{
public class CvImageView : Image
@ -118,11 +118,7 @@ namespace MauiDemoApp
if (this.ImageView != null)
{
Android.Graphics.Bitmap bitmap;
if (image == null)
bitmap = null;
else
bitmap = image.ToBitmap();
var bitmap = image?.ToBitmap();
this.Dispatcher.Dispatch(
() =>

47
Emgu.CV.Platform/Maui/UI/Emgu.CV.Platform.Maui.UI.csproj

@ -0,0 +1,47 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net6.0-android;net6.0-ios;net6.0-maccatalyst</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net6.0-windows10.0.20348.0</TargetFrameworks>
<!-- Uncomment to also build the tizen app. You will need to install tizen by following this: https://github.com/Samsung/Tizen.NET -->
<!-- <TargetFrameworks>$(TargetFrameworks);net6.0-tizen</TargetFrameworks> -->
<UseMaui>true</UseMaui>
<SingleProject>true</SingleProject>
<ImplicitUsings>enable</ImplicitUsings>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">14.2</SupportedOSPlatformVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">14.0</SupportedOSPlatformVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">21.0</SupportedOSPlatformVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</SupportedOSPlatformVersion>
<TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</TargetPlatformMinVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tizen'">6.5</SupportedOSPlatformVersion>
</PropertyGroup>
<PropertyGroup>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net6.0-windows10.0.20348.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<ProjectReference Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios' Or $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'" Include="..\..\..\Emgu.CV.Platform\NetStandard_iOS\Emgu.CV.Platform.NetStandard.IOS.csproj" />
<ProjectReference Condition="!($([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios' Or $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst')" Include="..\..\..\Emgu.CV.Platform\NetStandard\Emgu.CV.Platform.NetStandard.csproj" />
<ProjectReference Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios' Or $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'" Include="..\..\..\Emgu.CV.Models\Emgu.CV.Models.IOS\Emgu.CV.Models.IOS.csproj" />
<ProjectReference Condition="!($([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios' Or $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst')" Include="..\..\..\Emgu.CV.Models\Emgu.CV.Models.NetStandard\Emgu.CV.Models.NetStandard.csproj" />
<ProjectReference Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'" Include="..\..\..\Emgu.CV.Platform\Emgu.CV.Bitmap\Emgu.CV.Bitmap.csproj" />
<ProjectReference Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'" Include="..\..\..\Emgu.CV.Platform\Emgu.CV.Wpf\Emgu.CV.Wpf.csproj" />
<ProjectReference Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'" Include="..\..\..\Emgu.CV.Platform\Maui\Android\Emgu.CV.Platform.Maui.Android.csproj" />
<ProjectReference Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'" Include="..\..\..\Emgu.CV.Platform\Maui\iOS\Emgu.CV.Platform.Maui.iOS.csproj" />
<ProjectReference Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'" Include="..\..\..\Emgu.CV.Platform\Maui\Mac\Emgu.CV.Platform.Maui.Mac.csproj" />
</ItemGroup>
<ItemGroup>
<!-- <PackageReference Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'" Include="Microsoft.UI.Xaml" Version="2.7.1" /> -->
<!-- <PackageReference Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'" Include="Microsoft.WindowsAppSDK" Version="1.1.3" /> -->
<PackageReference Include="System.Drawing.Primitives" Version="4.3.0" />
<PackageReference Include="System.Runtime.InteropServices" Version="4.3.0" />
<PackageReference Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'" Include="System.Runtime.InteropServices.WindowsRuntime" Version="4.3.0" />
</ItemGroup>
</Project>

7
Emgu.CV.Platform/Maui/UI/Platforms/Android/PlatformClass1.cs

@ -0,0 +1,7 @@
namespace Emgu.CV.Platform.Maui.UI
{
// All the code in this file is only included on Android.
public class PlatformClass1
{
}
}

7
Emgu.CV.Platform/Maui/UI/Platforms/MacCatalyst/PlatformClass1.cs

@ -0,0 +1,7 @@
namespace Emgu.CV.Platform.Maui.UI
{
// All the code in this file is only included on Mac Catalyst.
public class PlatformClass1
{
}
}

9
Emgu.CV.Platform/Maui/UI/Platforms/Tizen/PlatformClass1.cs

@ -0,0 +1,9 @@
using System;
namespace Emgu.CV.Platform.Maui.UI
{
// All the code in this file is only included on Tizen.
public class PlatformClass1
{
}
}

92
Emgu.CV.Platform/Maui/UI/Platforms/Windows/WritableBitmapExtension.cs

@ -0,0 +1,92 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using Emgu.CV;
using Emgu.CV.CvEnum;
namespace Emgu.CV.Platform.Maui.UI
{
public static class WriteableBitmapExtension
{
/*
public static void ToArray(this Microsoft.UI.Xaml.Media.Imaging.WriteableBitmap writeableBitmap, IOutputArray outputArray)
{
byte[] data = new byte[writeableBitmap.PixelWidth * writeableBitmap.PixelHeight * 4];
writeableBitmap.PixelBuffer.CopyTo(data);
GCHandle dataHandle = GCHandle.Alloc(data, GCHandleType.Pinned);
try
{
using (Mat image = new Mat(
new System.Drawing.Size(writeableBitmap.PixelWidth, writeableBitmap.PixelHeight),
DepthType.Cv8U,
4,
dataHandle.AddrOfPinnedObject(),
writeableBitmap.PixelWidth * 4
))
{
CvInvoke.CvtColor(image, outputArray, ColorConversion.Bgra2Bgr);
}
}
finally
{
dataHandle.Free();
}
}*/
public static Microsoft.UI.Xaml.Media.Imaging.WriteableBitmap ToWritableBitmap(this IInputArray array)
{
using (InputArray ia = array.GetInputArray())
{
System.Drawing.Size size = ia.GetSize();
Microsoft.UI.Xaml.Media.Imaging.WriteableBitmap bmp = new Microsoft.UI.Xaml.Media.Imaging.WriteableBitmap(size.Width, size.Height);
byte[] buffer = new byte[bmp.PixelWidth * bmp.PixelHeight * 4];
GCHandle handle = GCHandle.Alloc(buffer, GCHandleType.Pinned);
using (Mat resultImage = new Mat(
new System.Drawing.Size(bmp.PixelWidth, bmp.PixelHeight),
DepthType.Cv8U,
4,
handle.AddrOfPinnedObject(),
bmp.PixelWidth * 4))
{
int channels = ia.GetChannels();
switch (channels)
{
case 1:
CvInvoke.CvtColor(array, resultImage, ColorConversion.Gray2Bgra);
break;
case 3:
CvInvoke.CvtColor(array, resultImage, ColorConversion.Bgr2Bgra);
break;
case 4:
using (Mat m = ia.GetMat())
m.CopyTo(resultImage);
break;
default:
throw new NotImplementedException(String.Format(
"Conversion from {0} channel IInputArray to WritableBitmap is not supported",
channels));
}
}
handle.Free();
using (Stream resultStream = System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBufferExtensions.AsStream(bmp.PixelBuffer))
//using (Stream resultStream = bmp.PixelBuffer.AsStream())
{
resultStream.Write(buffer, 0, buffer.Length);
}
return bmp;
}
}
}
}

7
Emgu.CV.Platform/Maui/UI/Platforms/iOS/PlatformClass1.cs

@ -0,0 +1,7 @@
namespace Emgu.CV.Platform.Maui.UI
{
// All the code in this file is only included on iOS.
public class PlatformClass1
{
}
}

0
Emgu.CV.Example/MAUI/MauiDemoApp/ProcessAndRenderPage.cs → Emgu.CV.Platform/Maui/UI/ProcessAndRenderPage.cs

0
Emgu.CV.Example/MAUI/MauiDemoApp/apple/AvCaptureSessionPage.cs → Emgu.CV.Platform/Maui/UI/apple/AvCaptureSessionPage.cs

0
Emgu.CV.Example/MAUI/MauiDemoApp/apple/CMSampleBufferExtensions.cs → Emgu.CV.Platform/Maui/UI/apple/CMSampleBufferExtensions.cs

0
Emgu.CV.Example/MAUI/MauiDemoApp/apple/OutputRecorder.cs → Emgu.CV.Platform/Maui/UI/apple/OutputRecorder.cs

14
Solution/Android/Emgu.CV.Android.Example.sln

@ -29,6 +29,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MauiDemoApp", "..\..\Emgu.C
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Emgu.CV.Platform.Maui.Android", "..\..\Emgu.CV.Platform\Maui\Android\Emgu.CV.Platform.Maui.Android.csproj", "{BA546848-FFBD-4420-B42C-C850EF9E1EB1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Emgu.CV.Platform.Maui.UI", "..\..\Emgu.CV.Platform\Maui\UI\Emgu.CV.Platform.Maui.UI.csproj", "{FBE53348-4346-4DA0-B7CF-8B90BB072441}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -123,6 +125,18 @@ Global
{BA546848-FFBD-4420-B42C-C850EF9E1EB1}.Release|x64.Build.0 = Release|Any CPU
{BA546848-FFBD-4420-B42C-C850EF9E1EB1}.Release|x86.ActiveCfg = Release|Any CPU
{BA546848-FFBD-4420-B42C-C850EF9E1EB1}.Release|x86.Build.0 = Release|Any CPU
{FBE53348-4346-4DA0-B7CF-8B90BB072441}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FBE53348-4346-4DA0-B7CF-8B90BB072441}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FBE53348-4346-4DA0-B7CF-8B90BB072441}.Debug|x64.ActiveCfg = Debug|Any CPU
{FBE53348-4346-4DA0-B7CF-8B90BB072441}.Debug|x64.Build.0 = Debug|Any CPU
{FBE53348-4346-4DA0-B7CF-8B90BB072441}.Debug|x86.ActiveCfg = Debug|Any CPU
{FBE53348-4346-4DA0-B7CF-8B90BB072441}.Debug|x86.Build.0 = Debug|Any CPU
{FBE53348-4346-4DA0-B7CF-8B90BB072441}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FBE53348-4346-4DA0-B7CF-8B90BB072441}.Release|Any CPU.Build.0 = Release|Any CPU
{FBE53348-4346-4DA0-B7CF-8B90BB072441}.Release|x64.ActiveCfg = Release|Any CPU
{FBE53348-4346-4DA0-B7CF-8B90BB072441}.Release|x64.Build.0 = Release|Any CPU
{FBE53348-4346-4DA0-B7CF-8B90BB072441}.Release|x86.ActiveCfg = Release|Any CPU
{FBE53348-4346-4DA0-B7CF-8B90BB072441}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

58
Solution/CrossPlatform/Emgu.CV.CrossPlatform.sln

@ -75,6 +75,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Emgu.CV.Wpf", "..\..\Emgu.C
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Emgu.CV.Platform.Maui.Mac", "..\..\Emgu.CV.Platform\Maui\Mac\Emgu.CV.Platform.Maui.Mac.csproj", "{4DC6CC43-96E8-459F-9ADD-094DBE126A64}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Emgu.CV.Platform.Maui.UI", "..\..\Emgu.CV.Platform\Maui\UI\Emgu.CV.Platform.Maui.UI.csproj", "{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
@ -1767,6 +1769,62 @@ Global
{4DC6CC43-96E8-459F-9ADD-094DBE126A64}.Release|x64.Build.0 = Release|Any CPU
{4DC6CC43-96E8-459F-9ADD-094DBE126A64}.Release|x86.ActiveCfg = Release|Any CPU
{4DC6CC43-96E8-459F-9ADD-094DBE126A64}.Release|x86.Build.0 = Release|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.AppStore|ARM.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.AppStore|ARM.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.AppStore|ARM64.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.AppStore|ARM64.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.AppStore|iPhone.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.AppStore|x64.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.AppStore|x64.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.AppStore|x86.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.AppStore|x86.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Debug|Any CPU.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Debug|ARM.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Debug|ARM.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Debug|ARM64.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Debug|iPhone.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Debug|x64.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Debug|x64.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Debug|x86.ActiveCfg = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Debug|x86.Build.0 = Debug|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Release|Any CPU.ActiveCfg = Release|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Release|Any CPU.Build.0 = Release|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Release|ARM.ActiveCfg = Release|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Release|ARM.Build.0 = Release|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Release|ARM64.ActiveCfg = Release|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Release|ARM64.Build.0 = Release|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Release|iPhone.ActiveCfg = Release|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Release|iPhone.Build.0 = Release|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Release|x64.ActiveCfg = Release|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Release|x64.Build.0 = Release|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Release|x86.ActiveCfg = Release|Any CPU
{468DDBE8-59D6-4B63-B4FE-F7C7926EE244}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

Loading…
Cancel
Save