From 9c990cb9b38a00ed79ab12e25e450d8e49a3f2d5 Mon Sep 17 00:00:00 2001 From: Peter Tribe Date: Tue, 4 Dec 2018 08:07:08 -0800 Subject: [PATCH 01/10] Fixed: root solution + removed duplicate --- VeldridNSViewExample.sln | 2 +- VeldridNSViewExample/VeldridNSViewExample.sln | 17 ----------------- 2 files changed, 1 insertion(+), 18 deletions(-) delete mode 100644 VeldridNSViewExample/VeldridNSViewExample.sln diff --git a/VeldridNSViewExample.sln b/VeldridNSViewExample.sln index 81ce819..09caa43 100644 --- a/VeldridNSViewExample.sln +++ b/VeldridNSViewExample.sln @@ -1,7 +1,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VeldridNSViewExample", "metal-layer-test\VeldridNSViewExample.csproj", "{A23FD9D1-BA74-4036-AD30-E245EC55E39A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VeldridNSViewExample", "VeldridNSViewExample\VeldridNSViewExample.csproj", "{A23FD9D1-BA74-4036-AD30-E245EC55E39A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/VeldridNSViewExample/VeldridNSViewExample.sln b/VeldridNSViewExample/VeldridNSViewExample.sln deleted file mode 100644 index 00bf804..0000000 --- a/VeldridNSViewExample/VeldridNSViewExample.sln +++ /dev/null @@ -1,17 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VeldridNSViewExample", "VeldridNSViewExample.csproj", "{A23FD9D1-BA74-4036-AD30-E245EC55E39A}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x86 = Debug|x86 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|x86.ActiveCfg = Debug|x86 - {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|x86.Build.0 = Debug|x86 - {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|x86.ActiveCfg = Release|x86 - {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|x86.Build.0 = Release|x86 - EndGlobalSection -EndGlobal From b3c5703897ec9461a40ff9b9dfcecda89013f14f Mon Sep 17 00:00:00 2001 From: Peter Tribe Date: Tue, 4 Dec 2018 08:15:23 -0800 Subject: [PATCH 02/10] Fixed: packages path --- VeldridNSViewExample/VeldridNSViewExample.csproj | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/VeldridNSViewExample/VeldridNSViewExample.csproj b/VeldridNSViewExample/VeldridNSViewExample.csproj index 549054e..2d8b119 100644 --- a/VeldridNSViewExample/VeldridNSViewExample.csproj +++ b/VeldridNSViewExample/VeldridNSViewExample.csproj @@ -83,17 +83,17 @@ ..\packages\SharpDX.Direct3D11.4.0.1\lib\netstandard1.1\SharpDX.Direct3D11.dll + + ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll - packages\Veldrid.MetalBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.MetalBindings.dll - - - packages\Veldrid.OpenGLBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.MetalBindings.dll - packages\Veldrid.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.dll + ..\packages\Veldrid.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.dll From 2a573f757d0da54ad52b160d3c8eaa4ad3a2c7fc Mon Sep 17 00:00:00 2001 From: Peter Tribe Date: Tue, 4 Dec 2018 08:41:33 -0800 Subject: [PATCH 03/10] Added: iOS example (causes JIT error) --- VeldridNSViewExample.sln | 17 -- .../VeldridNSViewExample.csproj | 53 ++--- VeldridNSViewExample/packages.config | 40 ++-- VeldridUIViewExample/AppDelegate.cs | 59 +++++ VeldridUIViewExample/AppGlobals.cs | 32 +++ .../AppIcon.appiconset/Contents.json | 202 ++++++++++++++++++ .../Assets.xcassets/Contents.json | 6 + VeldridUIViewExample/Entitlements.plist | 6 + VeldridUIViewExample/Info.plist | 40 ++++ VeldridUIViewExample/LaunchScreen.storyboard | 27 +++ VeldridUIViewExample/Main.cs | 17 ++ VeldridUIViewExample/Main.storyboard | 26 +++ .../VeldridUIViewExample.csproj | 165 ++++++++++++++ VeldridUIViewExample/ViewController.cs | 85 ++++++++ .../ViewController.designer.cs | 17 ++ VeldridUIViewExample/packages.config | 65 ++++++ VeldridViewExamples.sln | 43 ++++ 17 files changed, 837 insertions(+), 63 deletions(-) delete mode 100644 VeldridNSViewExample.sln create mode 100644 VeldridUIViewExample/AppDelegate.cs create mode 100644 VeldridUIViewExample/AppGlobals.cs create mode 100644 VeldridUIViewExample/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 VeldridUIViewExample/Assets.xcassets/Contents.json create mode 100644 VeldridUIViewExample/Entitlements.plist create mode 100644 VeldridUIViewExample/Info.plist create mode 100644 VeldridUIViewExample/LaunchScreen.storyboard create mode 100644 VeldridUIViewExample/Main.cs create mode 100644 VeldridUIViewExample/Main.storyboard create mode 100644 VeldridUIViewExample/VeldridUIViewExample.csproj create mode 100644 VeldridUIViewExample/ViewController.cs create mode 100644 VeldridUIViewExample/ViewController.designer.cs create mode 100644 VeldridUIViewExample/packages.config create mode 100644 VeldridViewExamples.sln diff --git a/VeldridNSViewExample.sln b/VeldridNSViewExample.sln deleted file mode 100644 index 09caa43..0000000 --- a/VeldridNSViewExample.sln +++ /dev/null @@ -1,17 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VeldridNSViewExample", "VeldridNSViewExample\VeldridNSViewExample.csproj", "{A23FD9D1-BA74-4036-AD30-E245EC55E39A}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x86 = Debug|x86 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|x86.ActiveCfg = Debug|x86 - {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|x86.Build.0 = Debug|x86 - {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|x86.ActiveCfg = Release|x86 - {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|x86.Build.0 = Release|x86 - EndGlobalSection -EndGlobal diff --git a/VeldridNSViewExample/VeldridNSViewExample.csproj b/VeldridNSViewExample/VeldridNSViewExample.csproj index 2d8b119..92e76b7 100644 --- a/VeldridNSViewExample/VeldridNSViewExample.csproj +++ b/VeldridNSViewExample/VeldridNSViewExample.csproj @@ -51,49 +51,49 @@ - - ..\packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll - - - ..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.4.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.OpenGLBindings.dll - - ..\packages\Microsoft.DotNet.PlatformAbstractions.2.0.3\lib\netstandard1.3\Microsoft.DotNet.PlatformAbstractions.dll + + ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll - - ..\packages\Microsoft.Extensions.DependencyModel.2.0.3\lib\netstandard1.6\Microsoft.Extensions.DependencyModel.dll + + ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.MetalBindings.dll - - ..\packages\NativeLibraryLoader.1.0.10\lib\netstandard2.0\NativeLibraryLoader.dll + + ..\packages\Veldrid.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.dll + + + ..\packages\Newtonsoft.Json.12.0.1\lib\netstandard2.0\Newtonsoft.Json.dll - ..\packages\SharpDX.4.0.1\lib\netstandard1.1\SharpDX.dll + ..\packages\SharpDX.4.2.0\lib\netstandard1.1\SharpDX.dll - ..\packages\SharpDX.D3DCompiler.4.0.1\lib\netstandard1.1\SharpDX.D3DCompiler.dll + ..\packages\SharpDX.D3DCompiler.4.2.0\lib\netstandard1.1\SharpDX.D3DCompiler.dll - ..\packages\SharpDX.DXGI.4.0.1\lib\netstandard1.1\SharpDX.DXGI.dll + ..\packages\SharpDX.DXGI.4.2.0\lib\netstandard1.1\SharpDX.DXGI.dll - ..\packages\SharpDX.Direct3D11.4.0.1\lib\netstandard1.1\SharpDX.Direct3D11.dll + ..\packages\SharpDX.Direct3D11.4.2.0\lib\netstandard1.1\SharpDX.Direct3D11.dll - - ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + + ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll - - ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.MetalBindings.dll + + ..\packages\Microsoft.DotNet.PlatformAbstractions.2.1.0\lib\netstandard1.3\Microsoft.DotNet.PlatformAbstractions.dll - - ..\packages\Veldrid.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.dll + + ..\packages\Microsoft.Extensions.DependencyModel.2.1.0\lib\netstandard1.6\Microsoft.Extensions.DependencyModel.dll + + + ..\packages\NativeLibraryLoader.1.0.12\lib\netstandard2.0\NativeLibraryLoader.dll @@ -131,4 +131,5 @@ + \ No newline at end of file diff --git a/VeldridNSViewExample/packages.config b/VeldridNSViewExample/packages.config index a95468f..05080e9 100644 --- a/VeldridNSViewExample/packages.config +++ b/VeldridNSViewExample/packages.config @@ -1,25 +1,25 @@  - - - + + + - - - - - - - + + + + + + + - + - + - + @@ -29,34 +29,34 @@ - + - + - + - + - + - + - + diff --git a/VeldridUIViewExample/AppDelegate.cs b/VeldridUIViewExample/AppDelegate.cs new file mode 100644 index 0000000..f49e536 --- /dev/null +++ b/VeldridUIViewExample/AppDelegate.cs @@ -0,0 +1,59 @@ +using Foundation; +using UIKit; + +namespace VeldridUIViewExample +{ + // The UIApplicationDelegate for the application. This class is responsible for launching the + // User Interface of the application, as well as listening (and optionally responding) to application events from iOS. + [Register("AppDelegate")] + public class AppDelegate : UIApplicationDelegate + { + // class-level declarations + + public override UIWindow Window + { + get; + set; + } + + public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) + { + // Override point for customization after application launch. + // If not required for your application you can safely delete this method + + return true; + } + + public override void OnResignActivation(UIApplication application) + { + // Invoked when the application is about to move from active to inactive state. + // This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) + // or when the user quits the application and it begins the transition to the background state. + // Games should use this method to pause the game. + } + + public override void DidEnterBackground(UIApplication application) + { + // Use this method to release shared resources, save user data, invalidate timers and store the application state. + // If your application supports background exection this method is called instead of WillTerminate when the user quits. + } + + public override void WillEnterForeground(UIApplication application) + { + // Called as part of the transiton from background to active state. + // Here you can undo many of the changes made on entering the background. + } + + public override void OnActivated(UIApplication application) + { + // Restart any tasks that were paused (or not yet started) while the application was inactive. + // If the application was previously in the background, optionally refresh the user interface. + } + + public override void WillTerminate(UIApplication application) + { + // Called when the application is about to terminate. Save data, if needed. See also DidEnterBackground. + } + } +} + diff --git a/VeldridUIViewExample/AppGlobals.cs b/VeldridUIViewExample/AppGlobals.cs new file mode 100644 index 0000000..e8b923b --- /dev/null +++ b/VeldridUIViewExample/AppGlobals.cs @@ -0,0 +1,32 @@ +using Veldrid; + +namespace VeldridUIViewExample +{ + // Using Veldrid, only a single GraphicsDevice needs to be created, + // even when rendering to many Swapchains in an application. + // A Veldrid GraphicsDevice is responsible for creating all useful graphics + // resources, including Swapchains. The GraphicsDevice in this class is used + // to create a Swapchain in ViewController.ViewDidLoad. + public static class AppGlobals + { + public static GraphicsDevice Device { get; private set; } + + public static void InitDevice() + { + GraphicsDeviceOptions options = new GraphicsDeviceOptions( + debug: false, + swapchainDepthFormat: null, + syncToVerticalBlank: false, + resourceBindingModel: ResourceBindingModel.Improved, + preferDepthRangeZeroToOne: true, + preferStandardClipSpaceYDirection: true); + + Device = GraphicsDevice.CreateMetal(options); + } + + internal static void DisposeDevice() + { + Device.Dispose(); + } + } +} diff --git a/VeldridUIViewExample/Assets.xcassets/AppIcon.appiconset/Contents.json b/VeldridUIViewExample/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..64d0e3d --- /dev/null +++ b/VeldridUIViewExample/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,202 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + }, + { + "size" : "24x24", + "idiom" : "watch", + "scale" : "2x", + "role" : "notificationCenter", + "subtype" : "38mm" + }, + { + "size" : "27.5x27.5", + "idiom" : "watch", + "scale" : "2x", + "role" : "notificationCenter", + "subtype" : "42mm" + }, + { + "size" : "29x29", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "watch", + "scale" : "2x", + "role" : "appLauncher", + "subtype" : "38mm" + }, + { + "size" : "44x44", + "idiom" : "watch", + "scale" : "2x", + "role" : "longLook", + "subtype" : "42mm" + }, + { + "size" : "86x86", + "idiom" : "watch", + "scale" : "2x", + "role" : "quickLook", + "subtype" : "38mm" + }, + { + "size" : "98x98", + "idiom" : "watch", + "scale" : "2x", + "role" : "quickLook", + "subtype" : "42mm" + }, + { + "idiom" : "mac", + "size" : "16x16", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "16x16", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "32x32", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "32x32", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "128x128", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "128x128", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "256x256", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "256x256", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "512x512", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "512x512", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/VeldridUIViewExample/Assets.xcassets/Contents.json b/VeldridUIViewExample/Assets.xcassets/Contents.json new file mode 100644 index 0000000..4caf392 --- /dev/null +++ b/VeldridUIViewExample/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/VeldridUIViewExample/Entitlements.plist b/VeldridUIViewExample/Entitlements.plist new file mode 100644 index 0000000..9ae5993 --- /dev/null +++ b/VeldridUIViewExample/Entitlements.plist @@ -0,0 +1,6 @@ + + + + + + diff --git a/VeldridUIViewExample/Info.plist b/VeldridUIViewExample/Info.plist new file mode 100644 index 0000000..e408ed0 --- /dev/null +++ b/VeldridUIViewExample/Info.plist @@ -0,0 +1,40 @@ + + + + + CFBundleName + VeldridUIViewExample + CFBundleIdentifier + mellinoe.VeldridUIViewExample + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + MinimumOSVersion + 12.1 + UIDeviceFamily + + 1 + 2 + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + XSAppIconAssets + Assets.xcassets/AppIcon.appiconset + + diff --git a/VeldridUIViewExample/LaunchScreen.storyboard b/VeldridUIViewExample/LaunchScreen.storyboard new file mode 100644 index 0000000..5d2e905 --- /dev/null +++ b/VeldridUIViewExample/LaunchScreen.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VeldridUIViewExample/Main.cs b/VeldridUIViewExample/Main.cs new file mode 100644 index 0000000..aaafa50 --- /dev/null +++ b/VeldridUIViewExample/Main.cs @@ -0,0 +1,17 @@ +using UIKit; + +namespace VeldridUIViewExample +{ + public class Application + { + // This is the main entry point of the application. + static void Main(string[] args) + { + // if you want to use a different Application Delegate class from "AppDelegate" + // you can specify it here. + AppGlobals.InitDevice(); + UIApplication.Main(args, null, "AppDelegate"); + AppGlobals.DisposeDevice(); + } + } +} diff --git a/VeldridUIViewExample/Main.storyboard b/VeldridUIViewExample/Main.storyboard new file mode 100644 index 0000000..cb656be --- /dev/null +++ b/VeldridUIViewExample/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VeldridUIViewExample/VeldridUIViewExample.csproj b/VeldridUIViewExample/VeldridUIViewExample.csproj new file mode 100644 index 0000000..41e1e7a --- /dev/null +++ b/VeldridUIViewExample/VeldridUIViewExample.csproj @@ -0,0 +1,165 @@ + + + + Debug + iPhoneSimulator + {9D6F56E8-BA48-4C66-822A-2B0B840AB672} + {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Exe + VeldridUIViewExample + VeldridUIViewExample + Resources + + + true + full + false + bin\iPhoneSimulator\Debug + DEBUG;ENABLE_TEST_CLOUD; + prompt + 4 + iPhone Developer + true + true + true + true + 34669 + None + x86_64 + NSUrlSessionHandler + x86 + false + + + + pdbonly + true + bin\iPhone\Release + + prompt + 4 + iPhone Developer + true + true + Entitlements.plist + SdkOnly + ARM64 + NSUrlSessionHandler + x86 + + + + pdbonly + true + bin\iPhoneSimulator\Release + + prompt + 4 + iPhone Developer + true + None + x86_64 + NSUrlSessionHandler + x86 + + + + true + full + false + bin\iPhone\Debug + DEBUG;ENABLE_TEST_CLOUD; + prompt + 4 + iPhone Developer + true + true + true + true + true + true + Entitlements.plist + 46381 + SdkOnly + ARM64 + NSUrlSessionHandler + x86 + + + + + + + + + ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.4.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.MetalBindings.dll + + + ..\packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll + + + ..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + + + ..\packages\Microsoft.DotNet.PlatformAbstractions.2.0.3\lib\netstandard1.3\Microsoft.DotNet.PlatformAbstractions.dll + + + ..\packages\Microsoft.Extensions.DependencyModel.2.0.3\lib\netstandard1.6\Microsoft.Extensions.DependencyModel.dll + + + ..\packages\NativeLibraryLoader.1.0.10\lib\netstandard2.0\NativeLibraryLoader.dll + + + ..\packages\SharpDX.4.0.1\lib\netstandard1.1\SharpDX.dll + + + ..\packages\SharpDX.D3DCompiler.4.0.1\lib\netstandard1.1\SharpDX.D3DCompiler.dll + + + ..\packages\SharpDX.DXGI.4.0.1\lib\netstandard1.1\SharpDX.DXGI.dll + + + ..\packages\SharpDX.Direct3D11.4.0.1\lib\netstandard1.1\SharpDX.Direct3D11.dll + + + ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll + + + ..\packages\Veldrid.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.dll + + + + + + + + + + + + + + + + + + + + + + + + ViewController.cs + + + + + \ No newline at end of file diff --git a/VeldridUIViewExample/ViewController.cs b/VeldridUIViewExample/ViewController.cs new file mode 100644 index 0000000..6f2fa98 --- /dev/null +++ b/VeldridUIViewExample/ViewController.cs @@ -0,0 +1,85 @@ +using System; +using UIKit; +using CoreVideo; +using Foundation; +using Veldrid; +using CoreAnimation; + +namespace VeldridUIViewExample +{ + public partial class ViewController : UIViewController + { + private readonly GraphicsDevice _gd; + private Swapchain _sc; + private CommandList _cl; + private int _frameIndex = 0; + private RgbaFloat[] _clearColors = + { + RgbaFloat.Red, + RgbaFloat.Orange, + RgbaFloat.Yellow, + RgbaFloat.Green, + RgbaFloat.Blue, + new RgbaFloat(0.8f, 0.1f, 0.3f, 1f), + new RgbaFloat(0.8f, 0.1f, 0.9f, 1f), + }; + private bool _resized; + private (uint Width, uint Height) _size; + private readonly int _frameRepeatCount = 20; + + public ViewController(IntPtr handle) : base(handle) + { + _frameIndex = new Random().Next(0, _clearColors.Length * _frameRepeatCount); + _gd = AppGlobals.Device; + } + + public override void ViewDidLoad() + { + base.ViewDidLoad(); + + var ss = SwapchainSource.CreateUIView(View.Handle); + SwapchainDescription scDesc = new SwapchainDescription( + ss, (uint)View.Frame.Width, (uint)View.Frame.Height, null, true, true); + _sc = AppGlobals.Device.ResourceFactory.CreateSwapchain(scDesc); + _cl = AppGlobals.Device.ResourceFactory.CreateCommandList(); + + // To render at a steady rate, we create a display link which will invoke our Render function. + CADisplayLink displayLink = CADisplayLink.Create(HandleDisplayLinkOutputCallback); + displayLink.AddToRunLoop(NSRunLoop.Current, NSRunLoopMode.Default); + } + + private void Render() + { + // If we've detected a resize event, we handle it now. + if (_resized) + { + _resized = false; + _sc.Resize(_size.Width, _size.Height); + } + + // Each frame, we clear the Swapchain's color target. + // Several different colors are cycled. + _cl.Begin(); + _cl.SetFramebuffer(_sc.Framebuffer); + _cl.ClearColorTarget(0, _clearColors[(_frameIndex / _frameRepeatCount)]); + _cl.End(); + _gd.SubmitCommands(_cl); + _gd.SwapBuffers(_sc); + + // Do some math to loop our color picker index. + _frameIndex = (_frameIndex + 1) % (_clearColors.Length * _frameRepeatCount); + } + + private void HandleDisplayLinkOutputCallback() + { + Render(); + } + + public override void ViewDidLayoutSubviews() + { + base.ViewDidLayoutSubviews(); + _resized = true; + _size = ((uint)View.Frame.Width, (uint)View.Frame.Height); + } + } +} diff --git a/VeldridUIViewExample/ViewController.designer.cs b/VeldridUIViewExample/ViewController.designer.cs new file mode 100644 index 0000000..d3f525a --- /dev/null +++ b/VeldridUIViewExample/ViewController.designer.cs @@ -0,0 +1,17 @@ +// +// This file has been generated automatically by MonoDevelop to store outlets and +// actions made in the Xcode designer. If it is removed, they will be lost. +// Manual changes to this file may not be handled correctly. +// +using Foundation; + +namespace VeldridUIViewExample +{ + [Register("ViewController")] + partial class ViewController + { + void ReleaseDesignerOutlets() + { + } + } +} diff --git a/VeldridUIViewExample/packages.config b/VeldridUIViewExample/packages.config new file mode 100644 index 0000000..44247a4 --- /dev/null +++ b/VeldridUIViewExample/packages.config @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VeldridViewExamples.sln b/VeldridViewExamples.sln new file mode 100644 index 0000000..d813b26 --- /dev/null +++ b/VeldridViewExamples.sln @@ -0,0 +1,43 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VeldridNSViewExample", "VeldridNSViewExample\VeldridNSViewExample.csproj", "{A23FD9D1-BA74-4036-AD30-E245EC55E39A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VeldridUIViewExample", "VeldridUIViewExample\VeldridUIViewExample.csproj", "{9D6F56E8-BA48-4C66-822A-2B0B840AB672}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + Debug|iPhoneSimulator = Debug|iPhoneSimulator + Release|iPhone = Release|iPhone + Release|iPhoneSimulator = Release|iPhoneSimulator + Debug|iPhone = Debug|iPhone + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|x86.ActiveCfg = Debug|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|x86.Build.0 = Debug|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|x86.ActiveCfg = Release|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|x86.Build.0 = Release|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|iPhoneSimulator.Build.0 = Debug|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|iPhone.ActiveCfg = Release|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|iPhone.Build.0 = Release|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|iPhoneSimulator.ActiveCfg = Release|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|iPhoneSimulator.Build.0 = Release|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|iPhone.ActiveCfg = Debug|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|iPhone.Build.0 = Debug|x86 + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|x86.Build.0 = Debug|iPhoneSimulator + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|x86.ActiveCfg = Release|iPhone + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|x86.Build.0 = Release|iPhone + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|iPhone.ActiveCfg = Release|iPhone + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|iPhone.Build.0 = Release|iPhone + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|iPhone.ActiveCfg = Debug|iPhone + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|iPhone.Build.0 = Debug|iPhone + EndGlobalSection +EndGlobal From 55cd161af75ed3d297e1d8def7ebf4d1346d5627 Mon Sep 17 00:00:00 2001 From: Peter Tribe Date: Tue, 4 Dec 2018 12:15:44 -0800 Subject: [PATCH 04/10] Added: initial android example --- VeldridViewExamples.sln | 14 + mellinoe.VeldridActivityExample/AppGlobals.cs | 32 + .../Assets/AboutAssets.txt | 19 + .../MainActivity.cs | 113 + .../Properties/AndroidManifest.xml | 6 + .../Properties/AssemblyInfo.cs | 27 + .../Resources/AboutResources.txt | 44 + .../Resources/Resource.designer.cs | 5104 +++++++++++++++++ .../Resources/layout/Main.axml | 11 + .../Resources/mipmap-hdpi/Icon.png | Bin 0 -> 2201 bytes .../Resources/mipmap-mdpi/Icon.png | Bin 0 -> 1410 bytes .../Resources/mipmap-xhdpi/Icon.png | Bin 0 -> 3237 bytes .../Resources/mipmap-xxhdpi/Icon.png | Bin 0 -> 5414 bytes .../Resources/mipmap-xxxhdpi/Icon.png | Bin 0 -> 7825 bytes .../Resources/values/Strings.xml | 5 + .../mellinoe.VeldridActivityExample.csproj | 168 + .../packages.config | 77 + 17 files changed, 5620 insertions(+) create mode 100644 mellinoe.VeldridActivityExample/AppGlobals.cs create mode 100644 mellinoe.VeldridActivityExample/Assets/AboutAssets.txt create mode 100644 mellinoe.VeldridActivityExample/MainActivity.cs create mode 100644 mellinoe.VeldridActivityExample/Properties/AndroidManifest.xml create mode 100644 mellinoe.VeldridActivityExample/Properties/AssemblyInfo.cs create mode 100644 mellinoe.VeldridActivityExample/Resources/AboutResources.txt create mode 100644 mellinoe.VeldridActivityExample/Resources/Resource.designer.cs create mode 100644 mellinoe.VeldridActivityExample/Resources/layout/Main.axml create mode 100644 mellinoe.VeldridActivityExample/Resources/mipmap-hdpi/Icon.png create mode 100644 mellinoe.VeldridActivityExample/Resources/mipmap-mdpi/Icon.png create mode 100644 mellinoe.VeldridActivityExample/Resources/mipmap-xhdpi/Icon.png create mode 100644 mellinoe.VeldridActivityExample/Resources/mipmap-xxhdpi/Icon.png create mode 100644 mellinoe.VeldridActivityExample/Resources/mipmap-xxxhdpi/Icon.png create mode 100644 mellinoe.VeldridActivityExample/Resources/values/Strings.xml create mode 100644 mellinoe.VeldridActivityExample/mellinoe.VeldridActivityExample.csproj create mode 100644 mellinoe.VeldridActivityExample/packages.config diff --git a/VeldridViewExamples.sln b/VeldridViewExamples.sln index d813b26..90fad1e 100644 --- a/VeldridViewExamples.sln +++ b/VeldridViewExamples.sln @@ -5,6 +5,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VeldridNSViewExample", "Vel EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VeldridUIViewExample", "VeldridUIViewExample\VeldridUIViewExample.csproj", "{9D6F56E8-BA48-4C66-822A-2B0B840AB672}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mellinoe.VeldridActivityExample", "mellinoe.VeldridActivityExample\mellinoe.VeldridActivityExample.csproj", "{4180FD58-2015-4FAF-8210-0BC0C03A7C10}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x86 = Debug|x86 @@ -39,5 +41,17 @@ Global {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|iPhone.ActiveCfg = Debug|iPhone {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|iPhone.Build.0 = Debug|iPhone + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|x86.ActiveCfg = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|x86.Build.0 = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|x86.ActiveCfg = Release|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|x86.Build.0 = Release|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|iPhone.ActiveCfg = Release|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|iPhone.Build.0 = Release|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|iPhone.Build.0 = Debug|Any CPU EndGlobalSection EndGlobal diff --git a/mellinoe.VeldridActivityExample/AppGlobals.cs b/mellinoe.VeldridActivityExample/AppGlobals.cs new file mode 100644 index 0000000..094ae12 --- /dev/null +++ b/mellinoe.VeldridActivityExample/AppGlobals.cs @@ -0,0 +1,32 @@ +using Veldrid; + +namespace mellinoe.VeldridActivityExample +{ + // Using Veldrid, only a single GraphicsDevice needs to be created, + // even when rendering to many Swapchains in an application. + // A Veldrid GraphicsDevice is responsible for creating all useful graphics + // resources, including Swapchains. The GraphicsDevice in this class is used + // to create a Swapchain in ViewController.ViewDidLoad. + public static class AppGlobals + { + public static GraphicsDevice Device { get; private set; } + + public static void InitDevice() + { + GraphicsDeviceOptions options = new GraphicsDeviceOptions( + debug: false, + swapchainDepthFormat: null, + syncToVerticalBlank: false, + resourceBindingModel: ResourceBindingModel.Improved, + preferDepthRangeZeroToOne: true, + preferStandardClipSpaceYDirection: true); + + Device = GraphicsDevice.CreateVulkan(options); + } + + internal static void DisposeDevice() + { + Device.Dispose(); + } + } +} diff --git a/mellinoe.VeldridActivityExample/Assets/AboutAssets.txt b/mellinoe.VeldridActivityExample/Assets/AboutAssets.txt new file mode 100644 index 0000000..a9b0638 --- /dev/null +++ b/mellinoe.VeldridActivityExample/Assets/AboutAssets.txt @@ -0,0 +1,19 @@ +Any raw assets you want to be deployed with your application can be placed in +this directory (and child directories) and given a Build Action of "AndroidAsset". + +These files will be deployed with your package and will be accessible using Android's +AssetManager, like this: + +public class ReadAsset : Activity +{ + protected override void OnCreate (Bundle bundle) + { + base.OnCreate (bundle); + + InputStream input = Assets.Open ("my_asset.txt"); + } +} + +Additionally, some Android functions will automatically load asset files: + +Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); diff --git a/mellinoe.VeldridActivityExample/MainActivity.cs b/mellinoe.VeldridActivityExample/MainActivity.cs new file mode 100644 index 0000000..b3b3c11 --- /dev/null +++ b/mellinoe.VeldridActivityExample/MainActivity.cs @@ -0,0 +1,113 @@ +using Android.App; +using Android.OS; +using Veldrid; +using System; +using Android.Views; +using Android.Runtime; +using Java.Util; + +namespace mellinoe.VeldridActivityExample +{ + public class RenderTimer : TimerTask + { + private readonly Action _action; + + public RenderTimer(Action action) + { + _action = action; + } + + public override void Run() + { + _action?.Invoke(); + } + } + + [Activity(Label = "mellinoe.VeldridActivityExample", MainLauncher = true, Icon = "@mipmap/icon")] + public class MainActivity : Activity, View.IOnLayoutChangeListener + { + private GraphicsDevice _gd; + private Swapchain _sc; + private CommandList _cl; + private int _frameIndex = 0; + private RgbaFloat[] _clearColors = + { + RgbaFloat.Red, + RgbaFloat.Orange, + RgbaFloat.Yellow, + RgbaFloat.Green, + RgbaFloat.Blue, + new RgbaFloat(0.8f, 0.1f, 0.3f, 1f), + new RgbaFloat(0.8f, 0.1f, 0.9f, 1f), + }; + private bool _resized; + private (uint Width, uint Height) _size; + private readonly int _frameRepeatCount = 20; + + public MainActivity() + { + } + + protected override void OnCreate(Bundle savedInstanceState) + { + base.OnCreate(savedInstanceState); + + AppGlobals.InitDevice(); + _frameIndex = new System.Random().Next(0, _clearColors.Length * _frameRepeatCount); + _gd = AppGlobals.Device; + + // Set our view from the "main" layout resource + SetContentView(Resource.Layout.Main); + + // Get our button from the layout resource, + // and attach an event to it + SurfaceView surfaceView = FindViewById(Resource.Id.surfaceView); + surfaceView.AddOnLayoutChangeListener(this); + + var ss = SwapchainSource.CreateAndroidSurface(surfaceView.Handle, JNIEnv.Handle); + SwapchainDescription scDesc = new SwapchainDescription( + ss, (uint)surfaceView.Width, (uint)surfaceView.Height, null, true, true); + _sc = AppGlobals.Device.ResourceFactory.CreateSwapchain(scDesc); + _cl = AppGlobals.Device.ResourceFactory.CreateCommandList(); + + // To render at a steady rate, we create a timer which will invoke our Render function. + Timer timer = new Timer(); + timer.ScheduleAtFixedRate(new RenderTimer(Render), 0, 1000 / 30); + } + + protected override void OnDestroy() + { + base.OnDestroy(); + AppGlobals.DisposeDevice(); + } + + private void Render() + { + // If we've detected a resize event, we handle it now. + if (_resized) + { + _resized = false; + _sc.Resize(_size.Width, _size.Height); + } + + // Each frame, we clear the Swapchain's color target. + // Several different colors are cycled. + _cl.Begin(); + _cl.SetFramebuffer(_sc.Framebuffer); + _cl.ClearColorTarget(0, _clearColors[(_frameIndex / _frameRepeatCount)]); + _cl.End(); + _gd.SubmitCommands(_cl); + _gd.SwapBuffers(_sc); + + // Do some math to loop our color picker index. + _frameIndex = (_frameIndex + 1) % (_clearColors.Length * _frameRepeatCount); + } + + public void OnLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) + { + _resized = true; + _size = ((uint)v.Width, (uint)v.Height); + } + } +} + diff --git a/mellinoe.VeldridActivityExample/Properties/AndroidManifest.xml b/mellinoe.VeldridActivityExample/Properties/AndroidManifest.xml new file mode 100644 index 0000000..9f93ad4 --- /dev/null +++ b/mellinoe.VeldridActivityExample/Properties/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/mellinoe.VeldridActivityExample/Properties/AssemblyInfo.cs b/mellinoe.VeldridActivityExample/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..50d274f --- /dev/null +++ b/mellinoe.VeldridActivityExample/Properties/AssemblyInfo.cs @@ -0,0 +1,27 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using Android.App; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle("mellinoe.VeldridActivityExample")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("${AuthorCopyright}")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion("1.0.0")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] diff --git a/mellinoe.VeldridActivityExample/Resources/AboutResources.txt b/mellinoe.VeldridActivityExample/Resources/AboutResources.txt new file mode 100644 index 0000000..10f52d4 --- /dev/null +++ b/mellinoe.VeldridActivityExample/Resources/AboutResources.txt @@ -0,0 +1,44 @@ +Images, layout descriptions, binary blobs and string dictionaries can be included +in your application as resource files. Various Android APIs are designed to +operate on the resource IDs instead of dealing with images, strings or binary blobs +directly. + +For example, a sample Android app that contains a user interface layout (main.axml), +an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) +would keep its resources in the "Resources" directory of the application: + +Resources/ + drawable/ + icon.png + + layout/ + main.axml + + values/ + strings.xml + +In order to get the build system to recognize Android resources, set the build action to +"AndroidResource". The native Android APIs do not operate directly with filenames, but +instead operate on resource IDs. When you compile an Android application that uses resources, +the build system will package the resources for distribution and generate a class called "R" +(this is an Android convention) that contains the tokens for each one of the resources +included. For example, for the above Resources layout, this is what the R class would expose: + +public class R { + public class drawable { + public const int icon = 0x123; + } + + public class layout { + public const int main = 0x456; + } + + public class strings { + public const int first_string = 0xabc; + public const int second_string = 0xbcd; + } +} + +You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main +to reference the layout/main.axml file, or R.strings.first_string to reference the first +string in the dictionary file values/strings.xml. diff --git a/mellinoe.VeldridActivityExample/Resources/Resource.designer.cs b/mellinoe.VeldridActivityExample/Resources/Resource.designer.cs new file mode 100644 index 0000000..3c1e7b6 --- /dev/null +++ b/mellinoe.VeldridActivityExample/Resources/Resource.designer.cs @@ -0,0 +1,5104 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::Android.Runtime.ResourceDesignerAttribute("mellinoe.VeldridActivityExample.Resource", IsApplication=true)] + +namespace mellinoe.VeldridActivityExample +{ + + + [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")] + public partial class Resource + { + + static Resource() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + public static void UpdateIdValues() + { + } + + public partial class Animation + { + + // aapt resource value: 0x7f050000 + public const int abc_fade_in = 2131034112; + + // aapt resource value: 0x7f050001 + public const int abc_fade_out = 2131034113; + + // aapt resource value: 0x7f050002 + public const int abc_grow_fade_in_from_bottom = 2131034114; + + // aapt resource value: 0x7f050003 + public const int abc_popup_enter = 2131034115; + + // aapt resource value: 0x7f050004 + public const int abc_popup_exit = 2131034116; + + // aapt resource value: 0x7f050005 + public const int abc_shrink_fade_out_from_bottom = 2131034117; + + // aapt resource value: 0x7f050006 + public const int abc_slide_in_bottom = 2131034118; + + // aapt resource value: 0x7f050007 + public const int abc_slide_in_top = 2131034119; + + // aapt resource value: 0x7f050008 + public const int abc_slide_out_bottom = 2131034120; + + // aapt resource value: 0x7f050009 + public const int abc_slide_out_top = 2131034121; + + // aapt resource value: 0x7f05000a + public const int tooltip_enter = 2131034122; + + // aapt resource value: 0x7f05000b + public const int tooltip_exit = 2131034123; + + static Animation() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Animation() + { + } + } + + public partial class Attribute + { + + // aapt resource value: 0x7f010049 + public const int actionBarDivider = 2130772041; + + // aapt resource value: 0x7f01004a + public const int actionBarItemBackground = 2130772042; + + // aapt resource value: 0x7f010043 + public const int actionBarPopupTheme = 2130772035; + + // aapt resource value: 0x7f010048 + public const int actionBarSize = 2130772040; + + // aapt resource value: 0x7f010045 + public const int actionBarSplitStyle = 2130772037; + + // aapt resource value: 0x7f010044 + public const int actionBarStyle = 2130772036; + + // aapt resource value: 0x7f01003f + public const int actionBarTabBarStyle = 2130772031; + + // aapt resource value: 0x7f01003e + public const int actionBarTabStyle = 2130772030; + + // aapt resource value: 0x7f010040 + public const int actionBarTabTextStyle = 2130772032; + + // aapt resource value: 0x7f010046 + public const int actionBarTheme = 2130772038; + + // aapt resource value: 0x7f010047 + public const int actionBarWidgetTheme = 2130772039; + + // aapt resource value: 0x7f010064 + public const int actionButtonStyle = 2130772068; + + // aapt resource value: 0x7f010060 + public const int actionDropDownStyle = 2130772064; + + // aapt resource value: 0x7f0100bb + public const int actionLayout = 2130772155; + + // aapt resource value: 0x7f01004b + public const int actionMenuTextAppearance = 2130772043; + + // aapt resource value: 0x7f01004c + public const int actionMenuTextColor = 2130772044; + + // aapt resource value: 0x7f01004f + public const int actionModeBackground = 2130772047; + + // aapt resource value: 0x7f01004e + public const int actionModeCloseButtonStyle = 2130772046; + + // aapt resource value: 0x7f010051 + public const int actionModeCloseDrawable = 2130772049; + + // aapt resource value: 0x7f010053 + public const int actionModeCopyDrawable = 2130772051; + + // aapt resource value: 0x7f010052 + public const int actionModeCutDrawable = 2130772050; + + // aapt resource value: 0x7f010057 + public const int actionModeFindDrawable = 2130772055; + + // aapt resource value: 0x7f010054 + public const int actionModePasteDrawable = 2130772052; + + // aapt resource value: 0x7f010059 + public const int actionModePopupWindowStyle = 2130772057; + + // aapt resource value: 0x7f010055 + public const int actionModeSelectAllDrawable = 2130772053; + + // aapt resource value: 0x7f010056 + public const int actionModeShareDrawable = 2130772054; + + // aapt resource value: 0x7f010050 + public const int actionModeSplitBackground = 2130772048; + + // aapt resource value: 0x7f01004d + public const int actionModeStyle = 2130772045; + + // aapt resource value: 0x7f010058 + public const int actionModeWebSearchDrawable = 2130772056; + + // aapt resource value: 0x7f010041 + public const int actionOverflowButtonStyle = 2130772033; + + // aapt resource value: 0x7f010042 + public const int actionOverflowMenuStyle = 2130772034; + + // aapt resource value: 0x7f0100bd + public const int actionProviderClass = 2130772157; + + // aapt resource value: 0x7f0100bc + public const int actionViewClass = 2130772156; + + // aapt resource value: 0x7f01006c + public const int activityChooserViewStyle = 2130772076; + + // aapt resource value: 0x7f010091 + public const int alertDialogButtonGroupStyle = 2130772113; + + // aapt resource value: 0x7f010092 + public const int alertDialogCenterButtons = 2130772114; + + // aapt resource value: 0x7f010090 + public const int alertDialogStyle = 2130772112; + + // aapt resource value: 0x7f010093 + public const int alertDialogTheme = 2130772115; + + // aapt resource value: 0x7f0100a9 + public const int allowStacking = 2130772137; + + // aapt resource value: 0x7f0100aa + public const int alpha = 2130772138; + + // aapt resource value: 0x7f0100b8 + public const int alphabeticModifiers = 2130772152; + + // aapt resource value: 0x7f0100b1 + public const int arrowHeadLength = 2130772145; + + // aapt resource value: 0x7f0100b2 + public const int arrowShaftLength = 2130772146; + + // aapt resource value: 0x7f010098 + public const int autoCompleteTextViewStyle = 2130772120; + + // aapt resource value: 0x7f010032 + public const int autoSizeMaxTextSize = 2130772018; + + // aapt resource value: 0x7f010031 + public const int autoSizeMinTextSize = 2130772017; + + // aapt resource value: 0x7f010030 + public const int autoSizePresetSizes = 2130772016; + + // aapt resource value: 0x7f01002f + public const int autoSizeStepGranularity = 2130772015; + + // aapt resource value: 0x7f01002e + public const int autoSizeTextType = 2130772014; + + // aapt resource value: 0x7f01000c + public const int background = 2130771980; + + // aapt resource value: 0x7f01000e + public const int backgroundSplit = 2130771982; + + // aapt resource value: 0x7f01000d + public const int backgroundStacked = 2130771981; + + // aapt resource value: 0x7f0100f4 + public const int backgroundTint = 2130772212; + + // aapt resource value: 0x7f0100f5 + public const int backgroundTintMode = 2130772213; + + // aapt resource value: 0x7f0100b3 + public const int barLength = 2130772147; + + // aapt resource value: 0x7f010069 + public const int borderlessButtonStyle = 2130772073; + + // aapt resource value: 0x7f010066 + public const int buttonBarButtonStyle = 2130772070; + + // aapt resource value: 0x7f010096 + public const int buttonBarNegativeButtonStyle = 2130772118; + + // aapt resource value: 0x7f010097 + public const int buttonBarNeutralButtonStyle = 2130772119; + + // aapt resource value: 0x7f010095 + public const int buttonBarPositiveButtonStyle = 2130772117; + + // aapt resource value: 0x7f010065 + public const int buttonBarStyle = 2130772069; + + // aapt resource value: 0x7f0100e9 + public const int buttonGravity = 2130772201; + + // aapt resource value: 0x7f010021 + public const int buttonPanelSideLayout = 2130772001; + + // aapt resource value: 0x7f010099 + public const int buttonStyle = 2130772121; + + // aapt resource value: 0x7f01009a + public const int buttonStyleSmall = 2130772122; + + // aapt resource value: 0x7f0100ab + public const int buttonTint = 2130772139; + + // aapt resource value: 0x7f0100ac + public const int buttonTintMode = 2130772140; + + // aapt resource value: 0x7f01009b + public const int checkboxStyle = 2130772123; + + // aapt resource value: 0x7f01009c + public const int checkedTextViewStyle = 2130772124; + + // aapt resource value: 0x7f0100cc + public const int closeIcon = 2130772172; + + // aapt resource value: 0x7f01001e + public const int closeItemLayout = 2130771998; + + // aapt resource value: 0x7f0100eb + public const int collapseContentDescription = 2130772203; + + // aapt resource value: 0x7f0100ea + public const int collapseIcon = 2130772202; + + // aapt resource value: 0x7f0100ad + public const int color = 2130772141; + + // aapt resource value: 0x7f010088 + public const int colorAccent = 2130772104; + + // aapt resource value: 0x7f01008f + public const int colorBackgroundFloating = 2130772111; + + // aapt resource value: 0x7f01008c + public const int colorButtonNormal = 2130772108; + + // aapt resource value: 0x7f01008a + public const int colorControlActivated = 2130772106; + + // aapt resource value: 0x7f01008b + public const int colorControlHighlight = 2130772107; + + // aapt resource value: 0x7f010089 + public const int colorControlNormal = 2130772105; + + // aapt resource value: 0x7f0100a8 + public const int colorError = 2130772136; + + // aapt resource value: 0x7f010086 + public const int colorPrimary = 2130772102; + + // aapt resource value: 0x7f010087 + public const int colorPrimaryDark = 2130772103; + + // aapt resource value: 0x7f01008d + public const int colorSwitchThumbNormal = 2130772109; + + // aapt resource value: 0x7f0100d1 + public const int commitIcon = 2130772177; + + // aapt resource value: 0x7f0100be + public const int contentDescription = 2130772158; + + // aapt resource value: 0x7f010017 + public const int contentInsetEnd = 2130771991; + + // aapt resource value: 0x7f01001b + public const int contentInsetEndWithActions = 2130771995; + + // aapt resource value: 0x7f010018 + public const int contentInsetLeft = 2130771992; + + // aapt resource value: 0x7f010019 + public const int contentInsetRight = 2130771993; + + // aapt resource value: 0x7f010016 + public const int contentInsetStart = 2130771990; + + // aapt resource value: 0x7f01001a + public const int contentInsetStartWithNavigation = 2130771994; + + // aapt resource value: 0x7f01008e + public const int controlBackground = 2130772110; + + // aapt resource value: 0x7f01000f + public const int customNavigationLayout = 2130771983; + + // aapt resource value: 0x7f0100cb + public const int defaultQueryHint = 2130772171; + + // aapt resource value: 0x7f01005e + public const int dialogPreferredPadding = 2130772062; + + // aapt resource value: 0x7f01005d + public const int dialogTheme = 2130772061; + + // aapt resource value: 0x7f010005 + public const int displayOptions = 2130771973; + + // aapt resource value: 0x7f01000b + public const int divider = 2130771979; + + // aapt resource value: 0x7f01006b + public const int dividerHorizontal = 2130772075; + + // aapt resource value: 0x7f0100b7 + public const int dividerPadding = 2130772151; + + // aapt resource value: 0x7f01006a + public const int dividerVertical = 2130772074; + + // aapt resource value: 0x7f0100af + public const int drawableSize = 2130772143; + + // aapt resource value: 0x7f010000 + public const int drawerArrowStyle = 2130771968; + + // aapt resource value: 0x7f01007d + public const int dropDownListViewStyle = 2130772093; + + // aapt resource value: 0x7f010061 + public const int dropdownListPreferredItemHeight = 2130772065; + + // aapt resource value: 0x7f010072 + public const int editTextBackground = 2130772082; + + // aapt resource value: 0x7f010071 + public const int editTextColor = 2130772081; + + // aapt resource value: 0x7f01009d + public const int editTextStyle = 2130772125; + + // aapt resource value: 0x7f01001c + public const int elevation = 2130771996; + + // aapt resource value: 0x7f010020 + public const int expandActivityOverflowButtonDrawable = 2130772000; + + // aapt resource value: 0x7f0100fd + public const int font = 2130772221; + + // aapt resource value: 0x7f010033 + public const int fontFamily = 2130772019; + + // aapt resource value: 0x7f0100f6 + public const int fontProviderAuthority = 2130772214; + + // aapt resource value: 0x7f0100f9 + public const int fontProviderCerts = 2130772217; + + // aapt resource value: 0x7f0100fa + public const int fontProviderFetchStrategy = 2130772218; + + // aapt resource value: 0x7f0100fb + public const int fontProviderFetchTimeout = 2130772219; + + // aapt resource value: 0x7f0100f7 + public const int fontProviderPackage = 2130772215; + + // aapt resource value: 0x7f0100f8 + public const int fontProviderQuery = 2130772216; + + // aapt resource value: 0x7f0100fc + public const int fontStyle = 2130772220; + + // aapt resource value: 0x7f0100fe + public const int fontWeight = 2130772222; + + // aapt resource value: 0x7f0100b0 + public const int gapBetweenBars = 2130772144; + + // aapt resource value: 0x7f0100cd + public const int goIcon = 2130772173; + + // aapt resource value: 0x7f010001 + public const int height = 2130771969; + + // aapt resource value: 0x7f010015 + public const int hideOnContentScroll = 2130771989; + + // aapt resource value: 0x7f010063 + public const int homeAsUpIndicator = 2130772067; + + // aapt resource value: 0x7f010010 + public const int homeLayout = 2130771984; + + // aapt resource value: 0x7f010009 + public const int icon = 2130771977; + + // aapt resource value: 0x7f0100c0 + public const int iconTint = 2130772160; + + // aapt resource value: 0x7f0100c1 + public const int iconTintMode = 2130772161; + + // aapt resource value: 0x7f0100c9 + public const int iconifiedByDefault = 2130772169; + + // aapt resource value: 0x7f010073 + public const int imageButtonStyle = 2130772083; + + // aapt resource value: 0x7f010012 + public const int indeterminateProgressStyle = 2130771986; + + // aapt resource value: 0x7f01001f + public const int initialActivityCount = 2130771999; + + // aapt resource value: 0x7f010002 + public const int isLightTheme = 2130771970; + + // aapt resource value: 0x7f010014 + public const int itemPadding = 2130771988; + + // aapt resource value: 0x7f0100c8 + public const int layout = 2130772168; + + // aapt resource value: 0x7f010085 + public const int listChoiceBackgroundIndicator = 2130772101; + + // aapt resource value: 0x7f01005f + public const int listDividerAlertDialog = 2130772063; + + // aapt resource value: 0x7f010025 + public const int listItemLayout = 2130772005; + + // aapt resource value: 0x7f010022 + public const int listLayout = 2130772002; + + // aapt resource value: 0x7f0100a5 + public const int listMenuViewStyle = 2130772133; + + // aapt resource value: 0x7f01007e + public const int listPopupWindowStyle = 2130772094; + + // aapt resource value: 0x7f010078 + public const int listPreferredItemHeight = 2130772088; + + // aapt resource value: 0x7f01007a + public const int listPreferredItemHeightLarge = 2130772090; + + // aapt resource value: 0x7f010079 + public const int listPreferredItemHeightSmall = 2130772089; + + // aapt resource value: 0x7f01007b + public const int listPreferredItemPaddingLeft = 2130772091; + + // aapt resource value: 0x7f01007c + public const int listPreferredItemPaddingRight = 2130772092; + + // aapt resource value: 0x7f01000a + public const int logo = 2130771978; + + // aapt resource value: 0x7f0100ee + public const int logoDescription = 2130772206; + + // aapt resource value: 0x7f0100e8 + public const int maxButtonHeight = 2130772200; + + // aapt resource value: 0x7f0100b5 + public const int measureWithLargestChild = 2130772149; + + // aapt resource value: 0x7f010023 + public const int multiChoiceItemLayout = 2130772003; + + // aapt resource value: 0x7f0100ed + public const int navigationContentDescription = 2130772205; + + // aapt resource value: 0x7f0100ec + public const int navigationIcon = 2130772204; + + // aapt resource value: 0x7f010004 + public const int navigationMode = 2130771972; + + // aapt resource value: 0x7f0100b9 + public const int numericModifiers = 2130772153; + + // aapt resource value: 0x7f0100c4 + public const int overlapAnchor = 2130772164; + + // aapt resource value: 0x7f0100c6 + public const int paddingBottomNoButtons = 2130772166; + + // aapt resource value: 0x7f0100f2 + public const int paddingEnd = 2130772210; + + // aapt resource value: 0x7f0100f1 + public const int paddingStart = 2130772209; + + // aapt resource value: 0x7f0100c7 + public const int paddingTopNoTitle = 2130772167; + + // aapt resource value: 0x7f010082 + public const int panelBackground = 2130772098; + + // aapt resource value: 0x7f010084 + public const int panelMenuListTheme = 2130772100; + + // aapt resource value: 0x7f010083 + public const int panelMenuListWidth = 2130772099; + + // aapt resource value: 0x7f01006f + public const int popupMenuStyle = 2130772079; + + // aapt resource value: 0x7f01001d + public const int popupTheme = 2130771997; + + // aapt resource value: 0x7f010070 + public const int popupWindowStyle = 2130772080; + + // aapt resource value: 0x7f0100c2 + public const int preserveIconSpacing = 2130772162; + + // aapt resource value: 0x7f010013 + public const int progressBarPadding = 2130771987; + + // aapt resource value: 0x7f010011 + public const int progressBarStyle = 2130771985; + + // aapt resource value: 0x7f0100d3 + public const int queryBackground = 2130772179; + + // aapt resource value: 0x7f0100ca + public const int queryHint = 2130772170; + + // aapt resource value: 0x7f01009e + public const int radioButtonStyle = 2130772126; + + // aapt resource value: 0x7f01009f + public const int ratingBarStyle = 2130772127; + + // aapt resource value: 0x7f0100a0 + public const int ratingBarStyleIndicator = 2130772128; + + // aapt resource value: 0x7f0100a1 + public const int ratingBarStyleSmall = 2130772129; + + // aapt resource value: 0x7f0100cf + public const int searchHintIcon = 2130772175; + + // aapt resource value: 0x7f0100ce + public const int searchIcon = 2130772174; + + // aapt resource value: 0x7f010077 + public const int searchViewStyle = 2130772087; + + // aapt resource value: 0x7f0100a2 + public const int seekBarStyle = 2130772130; + + // aapt resource value: 0x7f010067 + public const int selectableItemBackground = 2130772071; + + // aapt resource value: 0x7f010068 + public const int selectableItemBackgroundBorderless = 2130772072; + + // aapt resource value: 0x7f0100ba + public const int showAsAction = 2130772154; + + // aapt resource value: 0x7f0100b6 + public const int showDividers = 2130772150; + + // aapt resource value: 0x7f0100df + public const int showText = 2130772191; + + // aapt resource value: 0x7f010026 + public const int showTitle = 2130772006; + + // aapt resource value: 0x7f010024 + public const int singleChoiceItemLayout = 2130772004; + + // aapt resource value: 0x7f0100ae + public const int spinBars = 2130772142; + + // aapt resource value: 0x7f010062 + public const int spinnerDropDownItemStyle = 2130772066; + + // aapt resource value: 0x7f0100a3 + public const int spinnerStyle = 2130772131; + + // aapt resource value: 0x7f0100de + public const int splitTrack = 2130772190; + + // aapt resource value: 0x7f010027 + public const int srcCompat = 2130772007; + + // aapt resource value: 0x7f0100c5 + public const int state_above_anchor = 2130772165; + + // aapt resource value: 0x7f0100c3 + public const int subMenuArrow = 2130772163; + + // aapt resource value: 0x7f0100d4 + public const int submitBackground = 2130772180; + + // aapt resource value: 0x7f010006 + public const int subtitle = 2130771974; + + // aapt resource value: 0x7f0100e1 + public const int subtitleTextAppearance = 2130772193; + + // aapt resource value: 0x7f0100f0 + public const int subtitleTextColor = 2130772208; + + // aapt resource value: 0x7f010008 + public const int subtitleTextStyle = 2130771976; + + // aapt resource value: 0x7f0100d2 + public const int suggestionRowLayout = 2130772178; + + // aapt resource value: 0x7f0100dc + public const int switchMinWidth = 2130772188; + + // aapt resource value: 0x7f0100dd + public const int switchPadding = 2130772189; + + // aapt resource value: 0x7f0100a4 + public const int switchStyle = 2130772132; + + // aapt resource value: 0x7f0100db + public const int switchTextAppearance = 2130772187; + + // aapt resource value: 0x7f01002d + public const int textAllCaps = 2130772013; + + // aapt resource value: 0x7f01005a + public const int textAppearanceLargePopupMenu = 2130772058; + + // aapt resource value: 0x7f01007f + public const int textAppearanceListItem = 2130772095; + + // aapt resource value: 0x7f010080 + public const int textAppearanceListItemSecondary = 2130772096; + + // aapt resource value: 0x7f010081 + public const int textAppearanceListItemSmall = 2130772097; + + // aapt resource value: 0x7f01005c + public const int textAppearancePopupMenuHeader = 2130772060; + + // aapt resource value: 0x7f010075 + public const int textAppearanceSearchResultSubtitle = 2130772085; + + // aapt resource value: 0x7f010074 + public const int textAppearanceSearchResultTitle = 2130772084; + + // aapt resource value: 0x7f01005b + public const int textAppearanceSmallPopupMenu = 2130772059; + + // aapt resource value: 0x7f010094 + public const int textColorAlertDialogListItem = 2130772116; + + // aapt resource value: 0x7f010076 + public const int textColorSearchUrl = 2130772086; + + // aapt resource value: 0x7f0100f3 + public const int theme = 2130772211; + + // aapt resource value: 0x7f0100b4 + public const int thickness = 2130772148; + + // aapt resource value: 0x7f0100da + public const int thumbTextPadding = 2130772186; + + // aapt resource value: 0x7f0100d5 + public const int thumbTint = 2130772181; + + // aapt resource value: 0x7f0100d6 + public const int thumbTintMode = 2130772182; + + // aapt resource value: 0x7f01002a + public const int tickMark = 2130772010; + + // aapt resource value: 0x7f01002b + public const int tickMarkTint = 2130772011; + + // aapt resource value: 0x7f01002c + public const int tickMarkTintMode = 2130772012; + + // aapt resource value: 0x7f010028 + public const int tint = 2130772008; + + // aapt resource value: 0x7f010029 + public const int tintMode = 2130772009; + + // aapt resource value: 0x7f010003 + public const int title = 2130771971; + + // aapt resource value: 0x7f0100e2 + public const int titleMargin = 2130772194; + + // aapt resource value: 0x7f0100e6 + public const int titleMarginBottom = 2130772198; + + // aapt resource value: 0x7f0100e4 + public const int titleMarginEnd = 2130772196; + + // aapt resource value: 0x7f0100e3 + public const int titleMarginStart = 2130772195; + + // aapt resource value: 0x7f0100e5 + public const int titleMarginTop = 2130772197; + + // aapt resource value: 0x7f0100e7 + public const int titleMargins = 2130772199; + + // aapt resource value: 0x7f0100e0 + public const int titleTextAppearance = 2130772192; + + // aapt resource value: 0x7f0100ef + public const int titleTextColor = 2130772207; + + // aapt resource value: 0x7f010007 + public const int titleTextStyle = 2130771975; + + // aapt resource value: 0x7f01006e + public const int toolbarNavigationButtonStyle = 2130772078; + + // aapt resource value: 0x7f01006d + public const int toolbarStyle = 2130772077; + + // aapt resource value: 0x7f0100a7 + public const int tooltipForegroundColor = 2130772135; + + // aapt resource value: 0x7f0100a6 + public const int tooltipFrameBackground = 2130772134; + + // aapt resource value: 0x7f0100bf + public const int tooltipText = 2130772159; + + // aapt resource value: 0x7f0100d7 + public const int track = 2130772183; + + // aapt resource value: 0x7f0100d8 + public const int trackTint = 2130772184; + + // aapt resource value: 0x7f0100d9 + public const int trackTintMode = 2130772185; + + // aapt resource value: 0x7f0100d0 + public const int voiceIcon = 2130772176; + + // aapt resource value: 0x7f010034 + public const int windowActionBar = 2130772020; + + // aapt resource value: 0x7f010036 + public const int windowActionBarOverlay = 2130772022; + + // aapt resource value: 0x7f010037 + public const int windowActionModeOverlay = 2130772023; + + // aapt resource value: 0x7f01003b + public const int windowFixedHeightMajor = 2130772027; + + // aapt resource value: 0x7f010039 + public const int windowFixedHeightMinor = 2130772025; + + // aapt resource value: 0x7f010038 + public const int windowFixedWidthMajor = 2130772024; + + // aapt resource value: 0x7f01003a + public const int windowFixedWidthMinor = 2130772026; + + // aapt resource value: 0x7f01003c + public const int windowMinWidthMajor = 2130772028; + + // aapt resource value: 0x7f01003d + public const int windowMinWidthMinor = 2130772029; + + // aapt resource value: 0x7f010035 + public const int windowNoTitle = 2130772021; + + static Attribute() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Attribute() + { + } + } + + public partial class Boolean + { + + // aapt resource value: 0x7f090000 + public const int abc_action_bar_embed_tabs = 2131296256; + + // aapt resource value: 0x7f090001 + public const int abc_allow_stacked_button_bar = 2131296257; + + // aapt resource value: 0x7f090002 + public const int abc_config_actionMenuItemAllCaps = 2131296258; + + // aapt resource value: 0x7f090003 + public const int abc_config_closeDialogWhenTouchOutside = 2131296259; + + // aapt resource value: 0x7f090004 + public const int abc_config_showMenuShortcutsWhenKeyboardPresent = 2131296260; + + static Boolean() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Boolean() + { + } + } + + public partial class Color + { + + // aapt resource value: 0x7f0a003e + public const int abc_background_cache_hint_selector_material_dark = 2131361854; + + // aapt resource value: 0x7f0a003f + public const int abc_background_cache_hint_selector_material_light = 2131361855; + + // aapt resource value: 0x7f0a0040 + public const int abc_btn_colored_borderless_text_material = 2131361856; + + // aapt resource value: 0x7f0a0041 + public const int abc_btn_colored_text_material = 2131361857; + + // aapt resource value: 0x7f0a0042 + public const int abc_color_highlight_material = 2131361858; + + // aapt resource value: 0x7f0a0043 + public const int abc_hint_foreground_material_dark = 2131361859; + + // aapt resource value: 0x7f0a0044 + public const int abc_hint_foreground_material_light = 2131361860; + + // aapt resource value: 0x7f0a0000 + public const int abc_input_method_navigation_guard = 2131361792; + + // aapt resource value: 0x7f0a0045 + public const int abc_primary_text_disable_only_material_dark = 2131361861; + + // aapt resource value: 0x7f0a0046 + public const int abc_primary_text_disable_only_material_light = 2131361862; + + // aapt resource value: 0x7f0a0047 + public const int abc_primary_text_material_dark = 2131361863; + + // aapt resource value: 0x7f0a0048 + public const int abc_primary_text_material_light = 2131361864; + + // aapt resource value: 0x7f0a0049 + public const int abc_search_url_text = 2131361865; + + // aapt resource value: 0x7f0a0001 + public const int abc_search_url_text_normal = 2131361793; + + // aapt resource value: 0x7f0a0002 + public const int abc_search_url_text_pressed = 2131361794; + + // aapt resource value: 0x7f0a0003 + public const int abc_search_url_text_selected = 2131361795; + + // aapt resource value: 0x7f0a004a + public const int abc_secondary_text_material_dark = 2131361866; + + // aapt resource value: 0x7f0a004b + public const int abc_secondary_text_material_light = 2131361867; + + // aapt resource value: 0x7f0a004c + public const int abc_tint_btn_checkable = 2131361868; + + // aapt resource value: 0x7f0a004d + public const int abc_tint_default = 2131361869; + + // aapt resource value: 0x7f0a004e + public const int abc_tint_edittext = 2131361870; + + // aapt resource value: 0x7f0a004f + public const int abc_tint_seek_thumb = 2131361871; + + // aapt resource value: 0x7f0a0050 + public const int abc_tint_spinner = 2131361872; + + // aapt resource value: 0x7f0a0051 + public const int abc_tint_switch_track = 2131361873; + + // aapt resource value: 0x7f0a0004 + public const int accent_material_dark = 2131361796; + + // aapt resource value: 0x7f0a0005 + public const int accent_material_light = 2131361797; + + // aapt resource value: 0x7f0a0006 + public const int background_floating_material_dark = 2131361798; + + // aapt resource value: 0x7f0a0007 + public const int background_floating_material_light = 2131361799; + + // aapt resource value: 0x7f0a0008 + public const int background_material_dark = 2131361800; + + // aapt resource value: 0x7f0a0009 + public const int background_material_light = 2131361801; + + // aapt resource value: 0x7f0a000a + public const int bright_foreground_disabled_material_dark = 2131361802; + + // aapt resource value: 0x7f0a000b + public const int bright_foreground_disabled_material_light = 2131361803; + + // aapt resource value: 0x7f0a000c + public const int bright_foreground_inverse_material_dark = 2131361804; + + // aapt resource value: 0x7f0a000d + public const int bright_foreground_inverse_material_light = 2131361805; + + // aapt resource value: 0x7f0a000e + public const int bright_foreground_material_dark = 2131361806; + + // aapt resource value: 0x7f0a000f + public const int bright_foreground_material_light = 2131361807; + + // aapt resource value: 0x7f0a0010 + public const int button_material_dark = 2131361808; + + // aapt resource value: 0x7f0a0011 + public const int button_material_light = 2131361809; + + // aapt resource value: 0x7f0a0012 + public const int dim_foreground_disabled_material_dark = 2131361810; + + // aapt resource value: 0x7f0a0013 + public const int dim_foreground_disabled_material_light = 2131361811; + + // aapt resource value: 0x7f0a0014 + public const int dim_foreground_material_dark = 2131361812; + + // aapt resource value: 0x7f0a0015 + public const int dim_foreground_material_light = 2131361813; + + // aapt resource value: 0x7f0a0016 + public const int error_color_material = 2131361814; + + // aapt resource value: 0x7f0a0017 + public const int foreground_material_dark = 2131361815; + + // aapt resource value: 0x7f0a0018 + public const int foreground_material_light = 2131361816; + + // aapt resource value: 0x7f0a0019 + public const int highlighted_text_material_dark = 2131361817; + + // aapt resource value: 0x7f0a001a + public const int highlighted_text_material_light = 2131361818; + + // aapt resource value: 0x7f0a001b + public const int material_blue_grey_800 = 2131361819; + + // aapt resource value: 0x7f0a001c + public const int material_blue_grey_900 = 2131361820; + + // aapt resource value: 0x7f0a001d + public const int material_blue_grey_950 = 2131361821; + + // aapt resource value: 0x7f0a001e + public const int material_deep_teal_200 = 2131361822; + + // aapt resource value: 0x7f0a001f + public const int material_deep_teal_500 = 2131361823; + + // aapt resource value: 0x7f0a0020 + public const int material_grey_100 = 2131361824; + + // aapt resource value: 0x7f0a0021 + public const int material_grey_300 = 2131361825; + + // aapt resource value: 0x7f0a0022 + public const int material_grey_50 = 2131361826; + + // aapt resource value: 0x7f0a0023 + public const int material_grey_600 = 2131361827; + + // aapt resource value: 0x7f0a0024 + public const int material_grey_800 = 2131361828; + + // aapt resource value: 0x7f0a0025 + public const int material_grey_850 = 2131361829; + + // aapt resource value: 0x7f0a0026 + public const int material_grey_900 = 2131361830; + + // aapt resource value: 0x7f0a003c + public const int notification_action_color_filter = 2131361852; + + // aapt resource value: 0x7f0a003d + public const int notification_icon_bg_color = 2131361853; + + // aapt resource value: 0x7f0a003b + public const int notification_material_background_media_default_color = 2131361851; + + // aapt resource value: 0x7f0a0027 + public const int primary_dark_material_dark = 2131361831; + + // aapt resource value: 0x7f0a0028 + public const int primary_dark_material_light = 2131361832; + + // aapt resource value: 0x7f0a0029 + public const int primary_material_dark = 2131361833; + + // aapt resource value: 0x7f0a002a + public const int primary_material_light = 2131361834; + + // aapt resource value: 0x7f0a002b + public const int primary_text_default_material_dark = 2131361835; + + // aapt resource value: 0x7f0a002c + public const int primary_text_default_material_light = 2131361836; + + // aapt resource value: 0x7f0a002d + public const int primary_text_disabled_material_dark = 2131361837; + + // aapt resource value: 0x7f0a002e + public const int primary_text_disabled_material_light = 2131361838; + + // aapt resource value: 0x7f0a002f + public const int ripple_material_dark = 2131361839; + + // aapt resource value: 0x7f0a0030 + public const int ripple_material_light = 2131361840; + + // aapt resource value: 0x7f0a0031 + public const int secondary_text_default_material_dark = 2131361841; + + // aapt resource value: 0x7f0a0032 + public const int secondary_text_default_material_light = 2131361842; + + // aapt resource value: 0x7f0a0033 + public const int secondary_text_disabled_material_dark = 2131361843; + + // aapt resource value: 0x7f0a0034 + public const int secondary_text_disabled_material_light = 2131361844; + + // aapt resource value: 0x7f0a0035 + public const int switch_thumb_disabled_material_dark = 2131361845; + + // aapt resource value: 0x7f0a0036 + public const int switch_thumb_disabled_material_light = 2131361846; + + // aapt resource value: 0x7f0a0052 + public const int switch_thumb_material_dark = 2131361874; + + // aapt resource value: 0x7f0a0053 + public const int switch_thumb_material_light = 2131361875; + + // aapt resource value: 0x7f0a0037 + public const int switch_thumb_normal_material_dark = 2131361847; + + // aapt resource value: 0x7f0a0038 + public const int switch_thumb_normal_material_light = 2131361848; + + // aapt resource value: 0x7f0a0039 + public const int tooltip_background_dark = 2131361849; + + // aapt resource value: 0x7f0a003a + public const int tooltip_background_light = 2131361850; + + static Color() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Color() + { + } + } + + public partial class Dimension + { + + // aapt resource value: 0x7f07000c + public const int abc_action_bar_content_inset_material = 2131165196; + + // aapt resource value: 0x7f07000d + public const int abc_action_bar_content_inset_with_nav = 2131165197; + + // aapt resource value: 0x7f070001 + public const int abc_action_bar_default_height_material = 2131165185; + + // aapt resource value: 0x7f07000e + public const int abc_action_bar_default_padding_end_material = 2131165198; + + // aapt resource value: 0x7f07000f + public const int abc_action_bar_default_padding_start_material = 2131165199; + + // aapt resource value: 0x7f070011 + public const int abc_action_bar_elevation_material = 2131165201; + + // aapt resource value: 0x7f070012 + public const int abc_action_bar_icon_vertical_padding_material = 2131165202; + + // aapt resource value: 0x7f070013 + public const int abc_action_bar_overflow_padding_end_material = 2131165203; + + // aapt resource value: 0x7f070014 + public const int abc_action_bar_overflow_padding_start_material = 2131165204; + + // aapt resource value: 0x7f070002 + public const int abc_action_bar_progress_bar_size = 2131165186; + + // aapt resource value: 0x7f070015 + public const int abc_action_bar_stacked_max_height = 2131165205; + + // aapt resource value: 0x7f070016 + public const int abc_action_bar_stacked_tab_max_width = 2131165206; + + // aapt resource value: 0x7f070017 + public const int abc_action_bar_subtitle_bottom_margin_material = 2131165207; + + // aapt resource value: 0x7f070018 + public const int abc_action_bar_subtitle_top_margin_material = 2131165208; + + // aapt resource value: 0x7f070019 + public const int abc_action_button_min_height_material = 2131165209; + + // aapt resource value: 0x7f07001a + public const int abc_action_button_min_width_material = 2131165210; + + // aapt resource value: 0x7f07001b + public const int abc_action_button_min_width_overflow_material = 2131165211; + + // aapt resource value: 0x7f070000 + public const int abc_alert_dialog_button_bar_height = 2131165184; + + // aapt resource value: 0x7f07001c + public const int abc_button_inset_horizontal_material = 2131165212; + + // aapt resource value: 0x7f07001d + public const int abc_button_inset_vertical_material = 2131165213; + + // aapt resource value: 0x7f07001e + public const int abc_button_padding_horizontal_material = 2131165214; + + // aapt resource value: 0x7f07001f + public const int abc_button_padding_vertical_material = 2131165215; + + // aapt resource value: 0x7f070020 + public const int abc_cascading_menus_min_smallest_width = 2131165216; + + // aapt resource value: 0x7f070005 + public const int abc_config_prefDialogWidth = 2131165189; + + // aapt resource value: 0x7f070021 + public const int abc_control_corner_material = 2131165217; + + // aapt resource value: 0x7f070022 + public const int abc_control_inset_material = 2131165218; + + // aapt resource value: 0x7f070023 + public const int abc_control_padding_material = 2131165219; + + // aapt resource value: 0x7f070006 + public const int abc_dialog_fixed_height_major = 2131165190; + + // aapt resource value: 0x7f070007 + public const int abc_dialog_fixed_height_minor = 2131165191; + + // aapt resource value: 0x7f070008 + public const int abc_dialog_fixed_width_major = 2131165192; + + // aapt resource value: 0x7f070009 + public const int abc_dialog_fixed_width_minor = 2131165193; + + // aapt resource value: 0x7f070024 + public const int abc_dialog_list_padding_bottom_no_buttons = 2131165220; + + // aapt resource value: 0x7f070025 + public const int abc_dialog_list_padding_top_no_title = 2131165221; + + // aapt resource value: 0x7f07000a + public const int abc_dialog_min_width_major = 2131165194; + + // aapt resource value: 0x7f07000b + public const int abc_dialog_min_width_minor = 2131165195; + + // aapt resource value: 0x7f070026 + public const int abc_dialog_padding_material = 2131165222; + + // aapt resource value: 0x7f070027 + public const int abc_dialog_padding_top_material = 2131165223; + + // aapt resource value: 0x7f070028 + public const int abc_dialog_title_divider_material = 2131165224; + + // aapt resource value: 0x7f070029 + public const int abc_disabled_alpha_material_dark = 2131165225; + + // aapt resource value: 0x7f07002a + public const int abc_disabled_alpha_material_light = 2131165226; + + // aapt resource value: 0x7f07002b + public const int abc_dropdownitem_icon_width = 2131165227; + + // aapt resource value: 0x7f07002c + public const int abc_dropdownitem_text_padding_left = 2131165228; + + // aapt resource value: 0x7f07002d + public const int abc_dropdownitem_text_padding_right = 2131165229; + + // aapt resource value: 0x7f07002e + public const int abc_edit_text_inset_bottom_material = 2131165230; + + // aapt resource value: 0x7f07002f + public const int abc_edit_text_inset_horizontal_material = 2131165231; + + // aapt resource value: 0x7f070030 + public const int abc_edit_text_inset_top_material = 2131165232; + + // aapt resource value: 0x7f070031 + public const int abc_floating_window_z = 2131165233; + + // aapt resource value: 0x7f070032 + public const int abc_list_item_padding_horizontal_material = 2131165234; + + // aapt resource value: 0x7f070033 + public const int abc_panel_menu_list_width = 2131165235; + + // aapt resource value: 0x7f070034 + public const int abc_progress_bar_height_material = 2131165236; + + // aapt resource value: 0x7f070035 + public const int abc_search_view_preferred_height = 2131165237; + + // aapt resource value: 0x7f070036 + public const int abc_search_view_preferred_width = 2131165238; + + // aapt resource value: 0x7f070037 + public const int abc_seekbar_track_background_height_material = 2131165239; + + // aapt resource value: 0x7f070038 + public const int abc_seekbar_track_progress_height_material = 2131165240; + + // aapt resource value: 0x7f070039 + public const int abc_select_dialog_padding_start_material = 2131165241; + + // aapt resource value: 0x7f070010 + public const int abc_switch_padding = 2131165200; + + // aapt resource value: 0x7f07003a + public const int abc_text_size_body_1_material = 2131165242; + + // aapt resource value: 0x7f07003b + public const int abc_text_size_body_2_material = 2131165243; + + // aapt resource value: 0x7f07003c + public const int abc_text_size_button_material = 2131165244; + + // aapt resource value: 0x7f07003d + public const int abc_text_size_caption_material = 2131165245; + + // aapt resource value: 0x7f07003e + public const int abc_text_size_display_1_material = 2131165246; + + // aapt resource value: 0x7f07003f + public const int abc_text_size_display_2_material = 2131165247; + + // aapt resource value: 0x7f070040 + public const int abc_text_size_display_3_material = 2131165248; + + // aapt resource value: 0x7f070041 + public const int abc_text_size_display_4_material = 2131165249; + + // aapt resource value: 0x7f070042 + public const int abc_text_size_headline_material = 2131165250; + + // aapt resource value: 0x7f070043 + public const int abc_text_size_large_material = 2131165251; + + // aapt resource value: 0x7f070044 + public const int abc_text_size_medium_material = 2131165252; + + // aapt resource value: 0x7f070045 + public const int abc_text_size_menu_header_material = 2131165253; + + // aapt resource value: 0x7f070046 + public const int abc_text_size_menu_material = 2131165254; + + // aapt resource value: 0x7f070047 + public const int abc_text_size_small_material = 2131165255; + + // aapt resource value: 0x7f070048 + public const int abc_text_size_subhead_material = 2131165256; + + // aapt resource value: 0x7f070003 + public const int abc_text_size_subtitle_material_toolbar = 2131165187; + + // aapt resource value: 0x7f070049 + public const int abc_text_size_title_material = 2131165257; + + // aapt resource value: 0x7f070004 + public const int abc_text_size_title_material_toolbar = 2131165188; + + // aapt resource value: 0x7f07005f + public const int compat_button_inset_horizontal_material = 2131165279; + + // aapt resource value: 0x7f070060 + public const int compat_button_inset_vertical_material = 2131165280; + + // aapt resource value: 0x7f070061 + public const int compat_button_padding_horizontal_material = 2131165281; + + // aapt resource value: 0x7f070062 + public const int compat_button_padding_vertical_material = 2131165282; + + // aapt resource value: 0x7f070063 + public const int compat_control_corner_material = 2131165283; + + // aapt resource value: 0x7f07004a + public const int disabled_alpha_material_dark = 2131165258; + + // aapt resource value: 0x7f07004b + public const int disabled_alpha_material_light = 2131165259; + + // aapt resource value: 0x7f07004c + public const int highlight_alpha_material_colored = 2131165260; + + // aapt resource value: 0x7f07004d + public const int highlight_alpha_material_dark = 2131165261; + + // aapt resource value: 0x7f07004e + public const int highlight_alpha_material_light = 2131165262; + + // aapt resource value: 0x7f07004f + public const int hint_alpha_material_dark = 2131165263; + + // aapt resource value: 0x7f070050 + public const int hint_alpha_material_light = 2131165264; + + // aapt resource value: 0x7f070051 + public const int hint_pressed_alpha_material_dark = 2131165265; + + // aapt resource value: 0x7f070052 + public const int hint_pressed_alpha_material_light = 2131165266; + + // aapt resource value: 0x7f070064 + public const int notification_action_icon_size = 2131165284; + + // aapt resource value: 0x7f070065 + public const int notification_action_text_size = 2131165285; + + // aapt resource value: 0x7f070066 + public const int notification_big_circle_margin = 2131165286; + + // aapt resource value: 0x7f07005c + public const int notification_content_margin_start = 2131165276; + + // aapt resource value: 0x7f070067 + public const int notification_large_icon_height = 2131165287; + + // aapt resource value: 0x7f070068 + public const int notification_large_icon_width = 2131165288; + + // aapt resource value: 0x7f07005d + public const int notification_main_column_padding_top = 2131165277; + + // aapt resource value: 0x7f07005e + public const int notification_media_narrow_margin = 2131165278; + + // aapt resource value: 0x7f070069 + public const int notification_right_icon_size = 2131165289; + + // aapt resource value: 0x7f07005b + public const int notification_right_side_padding_top = 2131165275; + + // aapt resource value: 0x7f07006a + public const int notification_small_icon_background_padding = 2131165290; + + // aapt resource value: 0x7f07006b + public const int notification_small_icon_size_as_large = 2131165291; + + // aapt resource value: 0x7f07006c + public const int notification_subtext_size = 2131165292; + + // aapt resource value: 0x7f07006d + public const int notification_top_pad = 2131165293; + + // aapt resource value: 0x7f07006e + public const int notification_top_pad_large_text = 2131165294; + + // aapt resource value: 0x7f070053 + public const int tooltip_corner_radius = 2131165267; + + // aapt resource value: 0x7f070054 + public const int tooltip_horizontal_padding = 2131165268; + + // aapt resource value: 0x7f070055 + public const int tooltip_margin = 2131165269; + + // aapt resource value: 0x7f070056 + public const int tooltip_precise_anchor_extra_offset = 2131165270; + + // aapt resource value: 0x7f070057 + public const int tooltip_precise_anchor_threshold = 2131165271; + + // aapt resource value: 0x7f070058 + public const int tooltip_vertical_padding = 2131165272; + + // aapt resource value: 0x7f070059 + public const int tooltip_y_offset_non_touch = 2131165273; + + // aapt resource value: 0x7f07005a + public const int tooltip_y_offset_touch = 2131165274; + + static Dimension() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Dimension() + { + } + } + + public partial class Drawable + { + + // aapt resource value: 0x7f020000 + public const int abc_ab_share_pack_mtrl_alpha = 2130837504; + + // aapt resource value: 0x7f020001 + public const int abc_action_bar_item_background_material = 2130837505; + + // aapt resource value: 0x7f020002 + public const int abc_btn_borderless_material = 2130837506; + + // aapt resource value: 0x7f020003 + public const int abc_btn_check_material = 2130837507; + + // aapt resource value: 0x7f020004 + public const int abc_btn_check_to_on_mtrl_000 = 2130837508; + + // aapt resource value: 0x7f020005 + public const int abc_btn_check_to_on_mtrl_015 = 2130837509; + + // aapt resource value: 0x7f020006 + public const int abc_btn_colored_material = 2130837510; + + // aapt resource value: 0x7f020007 + public const int abc_btn_default_mtrl_shape = 2130837511; + + // aapt resource value: 0x7f020008 + public const int abc_btn_radio_material = 2130837512; + + // aapt resource value: 0x7f020009 + public const int abc_btn_radio_to_on_mtrl_000 = 2130837513; + + // aapt resource value: 0x7f02000a + public const int abc_btn_radio_to_on_mtrl_015 = 2130837514; + + // aapt resource value: 0x7f02000b + public const int abc_btn_switch_to_on_mtrl_00001 = 2130837515; + + // aapt resource value: 0x7f02000c + public const int abc_btn_switch_to_on_mtrl_00012 = 2130837516; + + // aapt resource value: 0x7f02000d + public const int abc_cab_background_internal_bg = 2130837517; + + // aapt resource value: 0x7f02000e + public const int abc_cab_background_top_material = 2130837518; + + // aapt resource value: 0x7f02000f + public const int abc_cab_background_top_mtrl_alpha = 2130837519; + + // aapt resource value: 0x7f020010 + public const int abc_control_background_material = 2130837520; + + // aapt resource value: 0x7f020011 + public const int abc_dialog_material_background = 2130837521; + + // aapt resource value: 0x7f020012 + public const int abc_edit_text_material = 2130837522; + + // aapt resource value: 0x7f020013 + public const int abc_ic_ab_back_material = 2130837523; + + // aapt resource value: 0x7f020014 + public const int abc_ic_arrow_drop_right_black_24dp = 2130837524; + + // aapt resource value: 0x7f020015 + public const int abc_ic_clear_material = 2130837525; + + // aapt resource value: 0x7f020016 + public const int abc_ic_commit_search_api_mtrl_alpha = 2130837526; + + // aapt resource value: 0x7f020017 + public const int abc_ic_go_search_api_material = 2130837527; + + // aapt resource value: 0x7f020018 + public const int abc_ic_menu_copy_mtrl_am_alpha = 2130837528; + + // aapt resource value: 0x7f020019 + public const int abc_ic_menu_cut_mtrl_alpha = 2130837529; + + // aapt resource value: 0x7f02001a + public const int abc_ic_menu_overflow_material = 2130837530; + + // aapt resource value: 0x7f02001b + public const int abc_ic_menu_paste_mtrl_am_alpha = 2130837531; + + // aapt resource value: 0x7f02001c + public const int abc_ic_menu_selectall_mtrl_alpha = 2130837532; + + // aapt resource value: 0x7f02001d + public const int abc_ic_menu_share_mtrl_alpha = 2130837533; + + // aapt resource value: 0x7f02001e + public const int abc_ic_search_api_material = 2130837534; + + // aapt resource value: 0x7f02001f + public const int abc_ic_star_black_16dp = 2130837535; + + // aapt resource value: 0x7f020020 + public const int abc_ic_star_black_36dp = 2130837536; + + // aapt resource value: 0x7f020021 + public const int abc_ic_star_black_48dp = 2130837537; + + // aapt resource value: 0x7f020022 + public const int abc_ic_star_half_black_16dp = 2130837538; + + // aapt resource value: 0x7f020023 + public const int abc_ic_star_half_black_36dp = 2130837539; + + // aapt resource value: 0x7f020024 + public const int abc_ic_star_half_black_48dp = 2130837540; + + // aapt resource value: 0x7f020025 + public const int abc_ic_voice_search_api_material = 2130837541; + + // aapt resource value: 0x7f020026 + public const int abc_item_background_holo_dark = 2130837542; + + // aapt resource value: 0x7f020027 + public const int abc_item_background_holo_light = 2130837543; + + // aapt resource value: 0x7f020028 + public const int abc_list_divider_mtrl_alpha = 2130837544; + + // aapt resource value: 0x7f020029 + public const int abc_list_focused_holo = 2130837545; + + // aapt resource value: 0x7f02002a + public const int abc_list_longpressed_holo = 2130837546; + + // aapt resource value: 0x7f02002b + public const int abc_list_pressed_holo_dark = 2130837547; + + // aapt resource value: 0x7f02002c + public const int abc_list_pressed_holo_light = 2130837548; + + // aapt resource value: 0x7f02002d + public const int abc_list_selector_background_transition_holo_dark = 2130837549; + + // aapt resource value: 0x7f02002e + public const int abc_list_selector_background_transition_holo_light = 2130837550; + + // aapt resource value: 0x7f02002f + public const int abc_list_selector_disabled_holo_dark = 2130837551; + + // aapt resource value: 0x7f020030 + public const int abc_list_selector_disabled_holo_light = 2130837552; + + // aapt resource value: 0x7f020031 + public const int abc_list_selector_holo_dark = 2130837553; + + // aapt resource value: 0x7f020032 + public const int abc_list_selector_holo_light = 2130837554; + + // aapt resource value: 0x7f020033 + public const int abc_menu_hardkey_panel_mtrl_mult = 2130837555; + + // aapt resource value: 0x7f020034 + public const int abc_popup_background_mtrl_mult = 2130837556; + + // aapt resource value: 0x7f020035 + public const int abc_ratingbar_indicator_material = 2130837557; + + // aapt resource value: 0x7f020036 + public const int abc_ratingbar_material = 2130837558; + + // aapt resource value: 0x7f020037 + public const int abc_ratingbar_small_material = 2130837559; + + // aapt resource value: 0x7f020038 + public const int abc_scrubber_control_off_mtrl_alpha = 2130837560; + + // aapt resource value: 0x7f020039 + public const int abc_scrubber_control_to_pressed_mtrl_000 = 2130837561; + + // aapt resource value: 0x7f02003a + public const int abc_scrubber_control_to_pressed_mtrl_005 = 2130837562; + + // aapt resource value: 0x7f02003b + public const int abc_scrubber_primary_mtrl_alpha = 2130837563; + + // aapt resource value: 0x7f02003c + public const int abc_scrubber_track_mtrl_alpha = 2130837564; + + // aapt resource value: 0x7f02003d + public const int abc_seekbar_thumb_material = 2130837565; + + // aapt resource value: 0x7f02003e + public const int abc_seekbar_tick_mark_material = 2130837566; + + // aapt resource value: 0x7f02003f + public const int abc_seekbar_track_material = 2130837567; + + // aapt resource value: 0x7f020040 + public const int abc_spinner_mtrl_am_alpha = 2130837568; + + // aapt resource value: 0x7f020041 + public const int abc_spinner_textfield_background_material = 2130837569; + + // aapt resource value: 0x7f020042 + public const int abc_switch_thumb_material = 2130837570; + + // aapt resource value: 0x7f020043 + public const int abc_switch_track_mtrl_alpha = 2130837571; + + // aapt resource value: 0x7f020044 + public const int abc_tab_indicator_material = 2130837572; + + // aapt resource value: 0x7f020045 + public const int abc_tab_indicator_mtrl_alpha = 2130837573; + + // aapt resource value: 0x7f020046 + public const int abc_text_cursor_material = 2130837574; + + // aapt resource value: 0x7f020047 + public const int abc_text_select_handle_left_mtrl_dark = 2130837575; + + // aapt resource value: 0x7f020048 + public const int abc_text_select_handle_left_mtrl_light = 2130837576; + + // aapt resource value: 0x7f020049 + public const int abc_text_select_handle_middle_mtrl_dark = 2130837577; + + // aapt resource value: 0x7f02004a + public const int abc_text_select_handle_middle_mtrl_light = 2130837578; + + // aapt resource value: 0x7f02004b + public const int abc_text_select_handle_right_mtrl_dark = 2130837579; + + // aapt resource value: 0x7f02004c + public const int abc_text_select_handle_right_mtrl_light = 2130837580; + + // aapt resource value: 0x7f02004d + public const int abc_textfield_activated_mtrl_alpha = 2130837581; + + // aapt resource value: 0x7f02004e + public const int abc_textfield_default_mtrl_alpha = 2130837582; + + // aapt resource value: 0x7f02004f + public const int abc_textfield_search_activated_mtrl_alpha = 2130837583; + + // aapt resource value: 0x7f020050 + public const int abc_textfield_search_default_mtrl_alpha = 2130837584; + + // aapt resource value: 0x7f020051 + public const int abc_textfield_search_material = 2130837585; + + // aapt resource value: 0x7f020052 + public const int abc_vector_test = 2130837586; + + // aapt resource value: 0x7f020053 + public const int notification_action_background = 2130837587; + + // aapt resource value: 0x7f020054 + public const int notification_bg = 2130837588; + + // aapt resource value: 0x7f020055 + public const int notification_bg_low = 2130837589; + + // aapt resource value: 0x7f020056 + public const int notification_bg_low_normal = 2130837590; + + // aapt resource value: 0x7f020057 + public const int notification_bg_low_pressed = 2130837591; + + // aapt resource value: 0x7f020058 + public const int notification_bg_normal = 2130837592; + + // aapt resource value: 0x7f020059 + public const int notification_bg_normal_pressed = 2130837593; + + // aapt resource value: 0x7f02005a + public const int notification_icon_background = 2130837594; + + // aapt resource value: 0x7f02005f + public const int notification_template_icon_bg = 2130837599; + + // aapt resource value: 0x7f020060 + public const int notification_template_icon_low_bg = 2130837600; + + // aapt resource value: 0x7f02005b + public const int notification_tile_bg = 2130837595; + + // aapt resource value: 0x7f02005c + public const int notify_panel_notification_icon_bg = 2130837596; + + // aapt resource value: 0x7f02005d + public const int tooltip_frame_dark = 2130837597; + + // aapt resource value: 0x7f02005e + public const int tooltip_frame_light = 2130837598; + + static Drawable() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Drawable() + { + } + } + + public partial class Id + { + + // aapt resource value: 0x7f0b0024 + public const int ALT = 2131427364; + + // aapt resource value: 0x7f0b0025 + public const int CTRL = 2131427365; + + // aapt resource value: 0x7f0b0026 + public const int FUNCTION = 2131427366; + + // aapt resource value: 0x7f0b0027 + public const int META = 2131427367; + + // aapt resource value: 0x7f0b0028 + public const int SHIFT = 2131427368; + + // aapt resource value: 0x7f0b0029 + public const int SYM = 2131427369; + + // aapt resource value: 0x7f0b006a + public const int action0 = 2131427434; + + // aapt resource value: 0x7f0b0057 + public const int action_bar = 2131427415; + + // aapt resource value: 0x7f0b0000 + public const int action_bar_activity_content = 2131427328; + + // aapt resource value: 0x7f0b0056 + public const int action_bar_container = 2131427414; + + // aapt resource value: 0x7f0b0052 + public const int action_bar_root = 2131427410; + + // aapt resource value: 0x7f0b0001 + public const int action_bar_spinner = 2131427329; + + // aapt resource value: 0x7f0b0036 + public const int action_bar_subtitle = 2131427382; + + // aapt resource value: 0x7f0b0035 + public const int action_bar_title = 2131427381; + + // aapt resource value: 0x7f0b0067 + public const int action_container = 2131427431; + + // aapt resource value: 0x7f0b0058 + public const int action_context_bar = 2131427416; + + // aapt resource value: 0x7f0b006e + public const int action_divider = 2131427438; + + // aapt resource value: 0x7f0b0068 + public const int action_image = 2131427432; + + // aapt resource value: 0x7f0b0002 + public const int action_menu_divider = 2131427330; + + // aapt resource value: 0x7f0b0003 + public const int action_menu_presenter = 2131427331; + + // aapt resource value: 0x7f0b0054 + public const int action_mode_bar = 2131427412; + + // aapt resource value: 0x7f0b0053 + public const int action_mode_bar_stub = 2131427411; + + // aapt resource value: 0x7f0b0037 + public const int action_mode_close_button = 2131427383; + + // aapt resource value: 0x7f0b0069 + public const int action_text = 2131427433; + + // aapt resource value: 0x7f0b0077 + public const int actions = 2131427447; + + // aapt resource value: 0x7f0b0038 + public const int activity_chooser_view_content = 2131427384; + + // aapt resource value: 0x7f0b0019 + public const int add = 2131427353; + + // aapt resource value: 0x7f0b004b + public const int alertTitle = 2131427403; + + // aapt resource value: 0x7f0b002a + public const int always = 2131427370; + + // aapt resource value: 0x7f0b0031 + public const int async = 2131427377; + + // aapt resource value: 0x7f0b0021 + public const int beginning = 2131427361; + + // aapt resource value: 0x7f0b0032 + public const int blocking = 2131427378; + + // aapt resource value: 0x7f0b002f + public const int bottom = 2131427375; + + // aapt resource value: 0x7f0b003e + public const int buttonPanel = 2131427390; + + // aapt resource value: 0x7f0b006b + public const int cancel_action = 2131427435; + + // aapt resource value: 0x7f0b004e + public const int checkbox = 2131427406; + + // aapt resource value: 0x7f0b0073 + public const int chronometer = 2131427443; + + // aapt resource value: 0x7f0b002b + public const int collapseActionView = 2131427371; + + // aapt resource value: 0x7f0b0041 + public const int contentPanel = 2131427393; + + // aapt resource value: 0x7f0b0048 + public const int custom = 2131427400; + + // aapt resource value: 0x7f0b0047 + public const int customPanel = 2131427399; + + // aapt resource value: 0x7f0b0055 + public const int decor_content_parent = 2131427413; + + // aapt resource value: 0x7f0b003b + public const int default_activity_button = 2131427387; + + // aapt resource value: 0x7f0b0012 + public const int disableHome = 2131427346; + + // aapt resource value: 0x7f0b0059 + public const int edit_query = 2131427417; + + // aapt resource value: 0x7f0b0022 + public const int end = 2131427362; + + // aapt resource value: 0x7f0b0079 + public const int end_padder = 2131427449; + + // aapt resource value: 0x7f0b0039 + public const int expand_activities_button = 2131427385; + + // aapt resource value: 0x7f0b004d + public const int expanded_menu = 2131427405; + + // aapt resource value: 0x7f0b0033 + public const int forever = 2131427379; + + // aapt resource value: 0x7f0b0004 + public const int home = 2131427332; + + // aapt resource value: 0x7f0b0013 + public const int homeAsUp = 2131427347; + + // aapt resource value: 0x7f0b003d + public const int icon = 2131427389; + + // aapt resource value: 0x7f0b0078 + public const int icon_group = 2131427448; + + // aapt resource value: 0x7f0b002c + public const int ifRoom = 2131427372; + + // aapt resource value: 0x7f0b003a + public const int image = 2131427386; + + // aapt resource value: 0x7f0b0074 + public const int info = 2131427444; + + // aapt resource value: 0x7f0b0034 + public const int italic = 2131427380; + + // aapt resource value: 0x7f0b0009 + public const int line1 = 2131427337; + + // aapt resource value: 0x7f0b000a + public const int line3 = 2131427338; + + // aapt resource value: 0x7f0b000f + public const int listMode = 2131427343; + + // aapt resource value: 0x7f0b003c + public const int list_item = 2131427388; + + // aapt resource value: 0x7f0b006d + public const int media_actions = 2131427437; + + // aapt resource value: 0x7f0b007a + public const int message = 2131427450; + + // aapt resource value: 0x7f0b0023 + public const int middle = 2131427363; + + // aapt resource value: 0x7f0b001a + public const int multiply = 2131427354; + + // aapt resource value: 0x7f0b002d + public const int never = 2131427373; + + // aapt resource value: 0x7f0b0014 + public const int none = 2131427348; + + // aapt resource value: 0x7f0b0010 + public const int normal = 2131427344; + + // aapt resource value: 0x7f0b0076 + public const int notification_background = 2131427446; + + // aapt resource value: 0x7f0b0070 + public const int notification_main_column = 2131427440; + + // aapt resource value: 0x7f0b006f + public const int notification_main_column_container = 2131427439; + + // aapt resource value: 0x7f0b0040 + public const int parentPanel = 2131427392; + + // aapt resource value: 0x7f0b0005 + public const int progress_circular = 2131427333; + + // aapt resource value: 0x7f0b0006 + public const int progress_horizontal = 2131427334; + + // aapt resource value: 0x7f0b0050 + public const int radio = 2131427408; + + // aapt resource value: 0x7f0b0075 + public const int right_icon = 2131427445; + + // aapt resource value: 0x7f0b0071 + public const int right_side = 2131427441; + + // aapt resource value: 0x7f0b001b + public const int screen = 2131427355; + + // aapt resource value: 0x7f0b0046 + public const int scrollIndicatorDown = 2131427398; + + // aapt resource value: 0x7f0b0042 + public const int scrollIndicatorUp = 2131427394; + + // aapt resource value: 0x7f0b0043 + public const int scrollView = 2131427395; + + // aapt resource value: 0x7f0b005b + public const int search_badge = 2131427419; + + // aapt resource value: 0x7f0b005a + public const int search_bar = 2131427418; + + // aapt resource value: 0x7f0b005c + public const int search_button = 2131427420; + + // aapt resource value: 0x7f0b0061 + public const int search_close_btn = 2131427425; + + // aapt resource value: 0x7f0b005d + public const int search_edit_frame = 2131427421; + + // aapt resource value: 0x7f0b0063 + public const int search_go_btn = 2131427427; + + // aapt resource value: 0x7f0b005e + public const int search_mag_icon = 2131427422; + + // aapt resource value: 0x7f0b005f + public const int search_plate = 2131427423; + + // aapt resource value: 0x7f0b0060 + public const int search_src_text = 2131427424; + + // aapt resource value: 0x7f0b0064 + public const int search_voice_btn = 2131427428; + + // aapt resource value: 0x7f0b0065 + public const int select_dialog_listview = 2131427429; + + // aapt resource value: 0x7f0b004f + public const int shortcut = 2131427407; + + // aapt resource value: 0x7f0b0015 + public const int showCustom = 2131427349; + + // aapt resource value: 0x7f0b0016 + public const int showHome = 2131427350; + + // aapt resource value: 0x7f0b0017 + public const int showTitle = 2131427351; + + // aapt resource value: 0x7f0b003f + public const int spacer = 2131427391; + + // aapt resource value: 0x7f0b0007 + public const int split_action_bar = 2131427335; + + // aapt resource value: 0x7f0b001c + public const int src_atop = 2131427356; + + // aapt resource value: 0x7f0b001d + public const int src_in = 2131427357; + + // aapt resource value: 0x7f0b001e + public const int src_over = 2131427358; + + // aapt resource value: 0x7f0b006c + public const int status_bar_latest_event_content = 2131427436; + + // aapt resource value: 0x7f0b0051 + public const int submenuarrow = 2131427409; + + // aapt resource value: 0x7f0b0062 + public const int submit_area = 2131427426; + + // aapt resource value: 0x7f0b0066 + public const int surfaceView = 2131427430; + + // aapt resource value: 0x7f0b0011 + public const int tabMode = 2131427345; + + // aapt resource value: 0x7f0b000b + public const int tag_transition_group = 2131427339; + + // aapt resource value: 0x7f0b000c + public const int text = 2131427340; + + // aapt resource value: 0x7f0b000d + public const int text2 = 2131427341; + + // aapt resource value: 0x7f0b0045 + public const int textSpacerNoButtons = 2131427397; + + // aapt resource value: 0x7f0b0044 + public const int textSpacerNoTitle = 2131427396; + + // aapt resource value: 0x7f0b0072 + public const int time = 2131427442; + + // aapt resource value: 0x7f0b000e + public const int title = 2131427342; + + // aapt resource value: 0x7f0b004c + public const int titleDividerNoCustom = 2131427404; + + // aapt resource value: 0x7f0b004a + public const int title_template = 2131427402; + + // aapt resource value: 0x7f0b0030 + public const int top = 2131427376; + + // aapt resource value: 0x7f0b0049 + public const int topPanel = 2131427401; + + // aapt resource value: 0x7f0b001f + public const int uniform = 2131427359; + + // aapt resource value: 0x7f0b0008 + public const int up = 2131427336; + + // aapt resource value: 0x7f0b0018 + public const int useLogo = 2131427352; + + // aapt resource value: 0x7f0b002e + public const int withText = 2131427374; + + // aapt resource value: 0x7f0b0020 + public const int wrap_content = 2131427360; + + static Id() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Id() + { + } + } + + public partial class Integer + { + + // aapt resource value: 0x7f0c0000 + public const int abc_config_activityDefaultDur = 2131492864; + + // aapt resource value: 0x7f0c0001 + public const int abc_config_activityShortDur = 2131492865; + + // aapt resource value: 0x7f0c0002 + public const int cancel_button_image_alpha = 2131492866; + + // aapt resource value: 0x7f0c0003 + public const int config_tooltipAnimTime = 2131492867; + + // aapt resource value: 0x7f0c0004 + public const int status_bar_notification_info_maxnum = 2131492868; + + static Integer() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Integer() + { + } + } + + public partial class Layout + { + + // aapt resource value: 0x7f040000 + public const int abc_action_bar_title_item = 2130968576; + + // aapt resource value: 0x7f040001 + public const int abc_action_bar_up_container = 2130968577; + + // aapt resource value: 0x7f040002 + public const int abc_action_menu_item_layout = 2130968578; + + // aapt resource value: 0x7f040003 + public const int abc_action_menu_layout = 2130968579; + + // aapt resource value: 0x7f040004 + public const int abc_action_mode_bar = 2130968580; + + // aapt resource value: 0x7f040005 + public const int abc_action_mode_close_item_material = 2130968581; + + // aapt resource value: 0x7f040006 + public const int abc_activity_chooser_view = 2130968582; + + // aapt resource value: 0x7f040007 + public const int abc_activity_chooser_view_list_item = 2130968583; + + // aapt resource value: 0x7f040008 + public const int abc_alert_dialog_button_bar_material = 2130968584; + + // aapt resource value: 0x7f040009 + public const int abc_alert_dialog_material = 2130968585; + + // aapt resource value: 0x7f04000a + public const int abc_alert_dialog_title_material = 2130968586; + + // aapt resource value: 0x7f04000b + public const int abc_dialog_title_material = 2130968587; + + // aapt resource value: 0x7f04000c + public const int abc_expanded_menu_layout = 2130968588; + + // aapt resource value: 0x7f04000d + public const int abc_list_menu_item_checkbox = 2130968589; + + // aapt resource value: 0x7f04000e + public const int abc_list_menu_item_icon = 2130968590; + + // aapt resource value: 0x7f04000f + public const int abc_list_menu_item_layout = 2130968591; + + // aapt resource value: 0x7f040010 + public const int abc_list_menu_item_radio = 2130968592; + + // aapt resource value: 0x7f040011 + public const int abc_popup_menu_header_item_layout = 2130968593; + + // aapt resource value: 0x7f040012 + public const int abc_popup_menu_item_layout = 2130968594; + + // aapt resource value: 0x7f040013 + public const int abc_screen_content_include = 2130968595; + + // aapt resource value: 0x7f040014 + public const int abc_screen_simple = 2130968596; + + // aapt resource value: 0x7f040015 + public const int abc_screen_simple_overlay_action_mode = 2130968597; + + // aapt resource value: 0x7f040016 + public const int abc_screen_toolbar = 2130968598; + + // aapt resource value: 0x7f040017 + public const int abc_search_dropdown_item_icons_2line = 2130968599; + + // aapt resource value: 0x7f040018 + public const int abc_search_view = 2130968600; + + // aapt resource value: 0x7f040019 + public const int abc_select_dialog_material = 2130968601; + + // aapt resource value: 0x7f04001a + public const int Main = 2130968602; + + // aapt resource value: 0x7f04001b + public const int notification_action = 2130968603; + + // aapt resource value: 0x7f04001c + public const int notification_action_tombstone = 2130968604; + + // aapt resource value: 0x7f04001d + public const int notification_media_action = 2130968605; + + // aapt resource value: 0x7f04001e + public const int notification_media_cancel_action = 2130968606; + + // aapt resource value: 0x7f04001f + public const int notification_template_big_media = 2130968607; + + // aapt resource value: 0x7f040020 + public const int notification_template_big_media_custom = 2130968608; + + // aapt resource value: 0x7f040021 + public const int notification_template_big_media_narrow = 2130968609; + + // aapt resource value: 0x7f040022 + public const int notification_template_big_media_narrow_custom = 2130968610; + + // aapt resource value: 0x7f040023 + public const int notification_template_custom_big = 2130968611; + + // aapt resource value: 0x7f040024 + public const int notification_template_icon_group = 2130968612; + + // aapt resource value: 0x7f040025 + public const int notification_template_lines_media = 2130968613; + + // aapt resource value: 0x7f040026 + public const int notification_template_media = 2130968614; + + // aapt resource value: 0x7f040027 + public const int notification_template_media_custom = 2130968615; + + // aapt resource value: 0x7f040028 + public const int notification_template_part_chronometer = 2130968616; + + // aapt resource value: 0x7f040029 + public const int notification_template_part_time = 2130968617; + + // aapt resource value: 0x7f04002a + public const int select_dialog_item_material = 2130968618; + + // aapt resource value: 0x7f04002b + public const int select_dialog_multichoice_material = 2130968619; + + // aapt resource value: 0x7f04002c + public const int select_dialog_singlechoice_material = 2130968620; + + // aapt resource value: 0x7f04002d + public const int support_simple_spinner_dropdown_item = 2130968621; + + // aapt resource value: 0x7f04002e + public const int tooltip = 2130968622; + + static Layout() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Layout() + { + } + } + + public partial class Mipmap + { + + // aapt resource value: 0x7f030000 + public const int Icon = 2130903040; + + static Mipmap() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Mipmap() + { + } + } + + public partial class String + { + + // aapt resource value: 0x7f060000 + public const int abc_action_bar_home_description = 2131099648; + + // aapt resource value: 0x7f060001 + public const int abc_action_bar_up_description = 2131099649; + + // aapt resource value: 0x7f060002 + public const int abc_action_menu_overflow_description = 2131099650; + + // aapt resource value: 0x7f060003 + public const int abc_action_mode_done = 2131099651; + + // aapt resource value: 0x7f060004 + public const int abc_activity_chooser_view_see_all = 2131099652; + + // aapt resource value: 0x7f060005 + public const int abc_activitychooserview_choose_application = 2131099653; + + // aapt resource value: 0x7f060006 + public const int abc_capital_off = 2131099654; + + // aapt resource value: 0x7f060007 + public const int abc_capital_on = 2131099655; + + // aapt resource value: 0x7f060012 + public const int abc_font_family_body_1_material = 2131099666; + + // aapt resource value: 0x7f060013 + public const int abc_font_family_body_2_material = 2131099667; + + // aapt resource value: 0x7f060014 + public const int abc_font_family_button_material = 2131099668; + + // aapt resource value: 0x7f060015 + public const int abc_font_family_caption_material = 2131099669; + + // aapt resource value: 0x7f060016 + public const int abc_font_family_display_1_material = 2131099670; + + // aapt resource value: 0x7f060017 + public const int abc_font_family_display_2_material = 2131099671; + + // aapt resource value: 0x7f060018 + public const int abc_font_family_display_3_material = 2131099672; + + // aapt resource value: 0x7f060019 + public const int abc_font_family_display_4_material = 2131099673; + + // aapt resource value: 0x7f06001a + public const int abc_font_family_headline_material = 2131099674; + + // aapt resource value: 0x7f06001b + public const int abc_font_family_menu_material = 2131099675; + + // aapt resource value: 0x7f06001c + public const int abc_font_family_subhead_material = 2131099676; + + // aapt resource value: 0x7f06001d + public const int abc_font_family_title_material = 2131099677; + + // aapt resource value: 0x7f060008 + public const int abc_search_hint = 2131099656; + + // aapt resource value: 0x7f060009 + public const int abc_searchview_description_clear = 2131099657; + + // aapt resource value: 0x7f06000a + public const int abc_searchview_description_query = 2131099658; + + // aapt resource value: 0x7f06000b + public const int abc_searchview_description_search = 2131099659; + + // aapt resource value: 0x7f06000c + public const int abc_searchview_description_submit = 2131099660; + + // aapt resource value: 0x7f06000d + public const int abc_searchview_description_voice = 2131099661; + + // aapt resource value: 0x7f06000e + public const int abc_shareactionprovider_share_with = 2131099662; + + // aapt resource value: 0x7f06000f + public const int abc_shareactionprovider_share_with_application = 2131099663; + + // aapt resource value: 0x7f060010 + public const int abc_toolbar_collapse_description = 2131099664; + + // aapt resource value: 0x7f060020 + public const int app_name = 2131099680; + + // aapt resource value: 0x7f06001f + public const int hello = 2131099679; + + // aapt resource value: 0x7f060011 + public const int search_menu_title = 2131099665; + + // aapt resource value: 0x7f06001e + public const int status_bar_notification_info_overflow = 2131099678; + + static String() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private String() + { + } + } + + public partial class Style + { + + // aapt resource value: 0x7f080095 + public const int AlertDialog_AppCompat = 2131230869; + + // aapt resource value: 0x7f080096 + public const int AlertDialog_AppCompat_Light = 2131230870; + + // aapt resource value: 0x7f080097 + public const int Animation_AppCompat_Dialog = 2131230871; + + // aapt resource value: 0x7f080098 + public const int Animation_AppCompat_DropDownUp = 2131230872; + + // aapt resource value: 0x7f080099 + public const int Animation_AppCompat_Tooltip = 2131230873; + + // aapt resource value: 0x7f08009a + public const int Base_AlertDialog_AppCompat = 2131230874; + + // aapt resource value: 0x7f08009b + public const int Base_AlertDialog_AppCompat_Light = 2131230875; + + // aapt resource value: 0x7f08009c + public const int Base_Animation_AppCompat_Dialog = 2131230876; + + // aapt resource value: 0x7f08009d + public const int Base_Animation_AppCompat_DropDownUp = 2131230877; + + // aapt resource value: 0x7f08009e + public const int Base_Animation_AppCompat_Tooltip = 2131230878; + + // aapt resource value: 0x7f08009f + public const int Base_DialogWindowTitle_AppCompat = 2131230879; + + // aapt resource value: 0x7f0800a0 + public const int Base_DialogWindowTitleBackground_AppCompat = 2131230880; + + // aapt resource value: 0x7f080039 + public const int Base_TextAppearance_AppCompat = 2131230777; + + // aapt resource value: 0x7f08003a + public const int Base_TextAppearance_AppCompat_Body1 = 2131230778; + + // aapt resource value: 0x7f08003b + public const int Base_TextAppearance_AppCompat_Body2 = 2131230779; + + // aapt resource value: 0x7f080027 + public const int Base_TextAppearance_AppCompat_Button = 2131230759; + + // aapt resource value: 0x7f08003c + public const int Base_TextAppearance_AppCompat_Caption = 2131230780; + + // aapt resource value: 0x7f08003d + public const int Base_TextAppearance_AppCompat_Display1 = 2131230781; + + // aapt resource value: 0x7f08003e + public const int Base_TextAppearance_AppCompat_Display2 = 2131230782; + + // aapt resource value: 0x7f08003f + public const int Base_TextAppearance_AppCompat_Display3 = 2131230783; + + // aapt resource value: 0x7f080040 + public const int Base_TextAppearance_AppCompat_Display4 = 2131230784; + + // aapt resource value: 0x7f080041 + public const int Base_TextAppearance_AppCompat_Headline = 2131230785; + + // aapt resource value: 0x7f08000b + public const int Base_TextAppearance_AppCompat_Inverse = 2131230731; + + // aapt resource value: 0x7f080042 + public const int Base_TextAppearance_AppCompat_Large = 2131230786; + + // aapt resource value: 0x7f08000c + public const int Base_TextAppearance_AppCompat_Large_Inverse = 2131230732; + + // aapt resource value: 0x7f080043 + public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131230787; + + // aapt resource value: 0x7f080044 + public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131230788; + + // aapt resource value: 0x7f080045 + public const int Base_TextAppearance_AppCompat_Medium = 2131230789; + + // aapt resource value: 0x7f08000d + public const int Base_TextAppearance_AppCompat_Medium_Inverse = 2131230733; + + // aapt resource value: 0x7f080046 + public const int Base_TextAppearance_AppCompat_Menu = 2131230790; + + // aapt resource value: 0x7f0800a1 + public const int Base_TextAppearance_AppCompat_SearchResult = 2131230881; + + // aapt resource value: 0x7f080047 + public const int Base_TextAppearance_AppCompat_SearchResult_Subtitle = 2131230791; + + // aapt resource value: 0x7f080048 + public const int Base_TextAppearance_AppCompat_SearchResult_Title = 2131230792; + + // aapt resource value: 0x7f080049 + public const int Base_TextAppearance_AppCompat_Small = 2131230793; + + // aapt resource value: 0x7f08000e + public const int Base_TextAppearance_AppCompat_Small_Inverse = 2131230734; + + // aapt resource value: 0x7f08004a + public const int Base_TextAppearance_AppCompat_Subhead = 2131230794; + + // aapt resource value: 0x7f08000f + public const int Base_TextAppearance_AppCompat_Subhead_Inverse = 2131230735; + + // aapt resource value: 0x7f08004b + public const int Base_TextAppearance_AppCompat_Title = 2131230795; + + // aapt resource value: 0x7f080010 + public const int Base_TextAppearance_AppCompat_Title_Inverse = 2131230736; + + // aapt resource value: 0x7f0800a2 + public const int Base_TextAppearance_AppCompat_Tooltip = 2131230882; + + // aapt resource value: 0x7f080086 + public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131230854; + + // aapt resource value: 0x7f08004c + public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131230796; + + // aapt resource value: 0x7f08004d + public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131230797; + + // aapt resource value: 0x7f08004e + public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title = 2131230798; + + // aapt resource value: 0x7f08004f + public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131230799; + + // aapt resource value: 0x7f080050 + public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131230800; + + // aapt resource value: 0x7f080051 + public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Title = 2131230801; + + // aapt resource value: 0x7f080052 + public const int Base_TextAppearance_AppCompat_Widget_Button = 2131230802; + + // aapt resource value: 0x7f08008d + public const int Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131230861; + + // aapt resource value: 0x7f08008e + public const int Base_TextAppearance_AppCompat_Widget_Button_Colored = 2131230862; + + // aapt resource value: 0x7f080087 + public const int Base_TextAppearance_AppCompat_Widget_Button_Inverse = 2131230855; + + // aapt resource value: 0x7f0800a3 + public const int Base_TextAppearance_AppCompat_Widget_DropDownItem = 2131230883; + + // aapt resource value: 0x7f080053 + public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131230803; + + // aapt resource value: 0x7f080054 + public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131230804; + + // aapt resource value: 0x7f080055 + public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131230805; + + // aapt resource value: 0x7f080056 + public const int Base_TextAppearance_AppCompat_Widget_Switch = 2131230806; + + // aapt resource value: 0x7f080057 + public const int Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131230807; + + // aapt resource value: 0x7f0800a4 + public const int Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131230884; + + // aapt resource value: 0x7f080058 + public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131230808; + + // aapt resource value: 0x7f080059 + public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Title = 2131230809; + + // aapt resource value: 0x7f08005a + public const int Base_Theme_AppCompat = 2131230810; + + // aapt resource value: 0x7f0800a5 + public const int Base_Theme_AppCompat_CompactMenu = 2131230885; + + // aapt resource value: 0x7f080011 + public const int Base_Theme_AppCompat_Dialog = 2131230737; + + // aapt resource value: 0x7f080012 + public const int Base_Theme_AppCompat_Dialog_Alert = 2131230738; + + // aapt resource value: 0x7f0800a6 + public const int Base_Theme_AppCompat_Dialog_FixedSize = 2131230886; + + // aapt resource value: 0x7f080013 + public const int Base_Theme_AppCompat_Dialog_MinWidth = 2131230739; + + // aapt resource value: 0x7f080001 + public const int Base_Theme_AppCompat_DialogWhenLarge = 2131230721; + + // aapt resource value: 0x7f08005b + public const int Base_Theme_AppCompat_Light = 2131230811; + + // aapt resource value: 0x7f0800a7 + public const int Base_Theme_AppCompat_Light_DarkActionBar = 2131230887; + + // aapt resource value: 0x7f080014 + public const int Base_Theme_AppCompat_Light_Dialog = 2131230740; + + // aapt resource value: 0x7f080015 + public const int Base_Theme_AppCompat_Light_Dialog_Alert = 2131230741; + + // aapt resource value: 0x7f0800a8 + public const int Base_Theme_AppCompat_Light_Dialog_FixedSize = 2131230888; + + // aapt resource value: 0x7f080016 + public const int Base_Theme_AppCompat_Light_Dialog_MinWidth = 2131230742; + + // aapt resource value: 0x7f080002 + public const int Base_Theme_AppCompat_Light_DialogWhenLarge = 2131230722; + + // aapt resource value: 0x7f0800a9 + public const int Base_ThemeOverlay_AppCompat = 2131230889; + + // aapt resource value: 0x7f0800aa + public const int Base_ThemeOverlay_AppCompat_ActionBar = 2131230890; + + // aapt resource value: 0x7f0800ab + public const int Base_ThemeOverlay_AppCompat_Dark = 2131230891; + + // aapt resource value: 0x7f0800ac + public const int Base_ThemeOverlay_AppCompat_Dark_ActionBar = 2131230892; + + // aapt resource value: 0x7f080017 + public const int Base_ThemeOverlay_AppCompat_Dialog = 2131230743; + + // aapt resource value: 0x7f080018 + public const int Base_ThemeOverlay_AppCompat_Dialog_Alert = 2131230744; + + // aapt resource value: 0x7f0800ad + public const int Base_ThemeOverlay_AppCompat_Light = 2131230893; + + // aapt resource value: 0x7f080019 + public const int Base_V11_Theme_AppCompat_Dialog = 2131230745; + + // aapt resource value: 0x7f08001a + public const int Base_V11_Theme_AppCompat_Light_Dialog = 2131230746; + + // aapt resource value: 0x7f08001b + public const int Base_V11_ThemeOverlay_AppCompat_Dialog = 2131230747; + + // aapt resource value: 0x7f080023 + public const int Base_V12_Widget_AppCompat_AutoCompleteTextView = 2131230755; + + // aapt resource value: 0x7f080024 + public const int Base_V12_Widget_AppCompat_EditText = 2131230756; + + // aapt resource value: 0x7f08005c + public const int Base_V21_Theme_AppCompat = 2131230812; + + // aapt resource value: 0x7f08005d + public const int Base_V21_Theme_AppCompat_Dialog = 2131230813; + + // aapt resource value: 0x7f08005e + public const int Base_V21_Theme_AppCompat_Light = 2131230814; + + // aapt resource value: 0x7f08005f + public const int Base_V21_Theme_AppCompat_Light_Dialog = 2131230815; + + // aapt resource value: 0x7f080060 + public const int Base_V21_ThemeOverlay_AppCompat_Dialog = 2131230816; + + // aapt resource value: 0x7f080084 + public const int Base_V22_Theme_AppCompat = 2131230852; + + // aapt resource value: 0x7f080085 + public const int Base_V22_Theme_AppCompat_Light = 2131230853; + + // aapt resource value: 0x7f080088 + public const int Base_V23_Theme_AppCompat = 2131230856; + + // aapt resource value: 0x7f080089 + public const int Base_V23_Theme_AppCompat_Light = 2131230857; + + // aapt resource value: 0x7f080091 + public const int Base_V26_Theme_AppCompat = 2131230865; + + // aapt resource value: 0x7f080092 + public const int Base_V26_Theme_AppCompat_Light = 2131230866; + + // aapt resource value: 0x7f080093 + public const int Base_V26_Widget_AppCompat_Toolbar = 2131230867; + + // aapt resource value: 0x7f0800ae + public const int Base_V7_Theme_AppCompat = 2131230894; + + // aapt resource value: 0x7f0800af + public const int Base_V7_Theme_AppCompat_Dialog = 2131230895; + + // aapt resource value: 0x7f0800b0 + public const int Base_V7_Theme_AppCompat_Light = 2131230896; + + // aapt resource value: 0x7f0800b1 + public const int Base_V7_Theme_AppCompat_Light_Dialog = 2131230897; + + // aapt resource value: 0x7f0800b2 + public const int Base_V7_ThemeOverlay_AppCompat_Dialog = 2131230898; + + // aapt resource value: 0x7f0800b3 + public const int Base_V7_Widget_AppCompat_AutoCompleteTextView = 2131230899; + + // aapt resource value: 0x7f0800b4 + public const int Base_V7_Widget_AppCompat_EditText = 2131230900; + + // aapt resource value: 0x7f0800b5 + public const int Base_V7_Widget_AppCompat_Toolbar = 2131230901; + + // aapt resource value: 0x7f0800b6 + public const int Base_Widget_AppCompat_ActionBar = 2131230902; + + // aapt resource value: 0x7f0800b7 + public const int Base_Widget_AppCompat_ActionBar_Solid = 2131230903; + + // aapt resource value: 0x7f0800b8 + public const int Base_Widget_AppCompat_ActionBar_TabBar = 2131230904; + + // aapt resource value: 0x7f080061 + public const int Base_Widget_AppCompat_ActionBar_TabText = 2131230817; + + // aapt resource value: 0x7f080062 + public const int Base_Widget_AppCompat_ActionBar_TabView = 2131230818; + + // aapt resource value: 0x7f080063 + public const int Base_Widget_AppCompat_ActionButton = 2131230819; + + // aapt resource value: 0x7f080064 + public const int Base_Widget_AppCompat_ActionButton_CloseMode = 2131230820; + + // aapt resource value: 0x7f080065 + public const int Base_Widget_AppCompat_ActionButton_Overflow = 2131230821; + + // aapt resource value: 0x7f0800b9 + public const int Base_Widget_AppCompat_ActionMode = 2131230905; + + // aapt resource value: 0x7f0800ba + public const int Base_Widget_AppCompat_ActivityChooserView = 2131230906; + + // aapt resource value: 0x7f080025 + public const int Base_Widget_AppCompat_AutoCompleteTextView = 2131230757; + + // aapt resource value: 0x7f080066 + public const int Base_Widget_AppCompat_Button = 2131230822; + + // aapt resource value: 0x7f080067 + public const int Base_Widget_AppCompat_Button_Borderless = 2131230823; + + // aapt resource value: 0x7f080068 + public const int Base_Widget_AppCompat_Button_Borderless_Colored = 2131230824; + + // aapt resource value: 0x7f0800bb + public const int Base_Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131230907; + + // aapt resource value: 0x7f08008a + public const int Base_Widget_AppCompat_Button_Colored = 2131230858; + + // aapt resource value: 0x7f080069 + public const int Base_Widget_AppCompat_Button_Small = 2131230825; + + // aapt resource value: 0x7f08006a + public const int Base_Widget_AppCompat_ButtonBar = 2131230826; + + // aapt resource value: 0x7f0800bc + public const int Base_Widget_AppCompat_ButtonBar_AlertDialog = 2131230908; + + // aapt resource value: 0x7f08006b + public const int Base_Widget_AppCompat_CompoundButton_CheckBox = 2131230827; + + // aapt resource value: 0x7f08006c + public const int Base_Widget_AppCompat_CompoundButton_RadioButton = 2131230828; + + // aapt resource value: 0x7f0800bd + public const int Base_Widget_AppCompat_CompoundButton_Switch = 2131230909; + + // aapt resource value: 0x7f080000 + public const int Base_Widget_AppCompat_DrawerArrowToggle = 2131230720; + + // aapt resource value: 0x7f0800be + public const int Base_Widget_AppCompat_DrawerArrowToggle_Common = 2131230910; + + // aapt resource value: 0x7f08006d + public const int Base_Widget_AppCompat_DropDownItem_Spinner = 2131230829; + + // aapt resource value: 0x7f080026 + public const int Base_Widget_AppCompat_EditText = 2131230758; + + // aapt resource value: 0x7f08006e + public const int Base_Widget_AppCompat_ImageButton = 2131230830; + + // aapt resource value: 0x7f0800bf + public const int Base_Widget_AppCompat_Light_ActionBar = 2131230911; + + // aapt resource value: 0x7f0800c0 + public const int Base_Widget_AppCompat_Light_ActionBar_Solid = 2131230912; + + // aapt resource value: 0x7f0800c1 + public const int Base_Widget_AppCompat_Light_ActionBar_TabBar = 2131230913; + + // aapt resource value: 0x7f08006f + public const int Base_Widget_AppCompat_Light_ActionBar_TabText = 2131230831; + + // aapt resource value: 0x7f080070 + public const int Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131230832; + + // aapt resource value: 0x7f080071 + public const int Base_Widget_AppCompat_Light_ActionBar_TabView = 2131230833; + + // aapt resource value: 0x7f080072 + public const int Base_Widget_AppCompat_Light_PopupMenu = 2131230834; + + // aapt resource value: 0x7f080073 + public const int Base_Widget_AppCompat_Light_PopupMenu_Overflow = 2131230835; + + // aapt resource value: 0x7f0800c2 + public const int Base_Widget_AppCompat_ListMenuView = 2131230914; + + // aapt resource value: 0x7f080074 + public const int Base_Widget_AppCompat_ListPopupWindow = 2131230836; + + // aapt resource value: 0x7f080075 + public const int Base_Widget_AppCompat_ListView = 2131230837; + + // aapt resource value: 0x7f080076 + public const int Base_Widget_AppCompat_ListView_DropDown = 2131230838; + + // aapt resource value: 0x7f080077 + public const int Base_Widget_AppCompat_ListView_Menu = 2131230839; + + // aapt resource value: 0x7f080078 + public const int Base_Widget_AppCompat_PopupMenu = 2131230840; + + // aapt resource value: 0x7f080079 + public const int Base_Widget_AppCompat_PopupMenu_Overflow = 2131230841; + + // aapt resource value: 0x7f0800c3 + public const int Base_Widget_AppCompat_PopupWindow = 2131230915; + + // aapt resource value: 0x7f08001c + public const int Base_Widget_AppCompat_ProgressBar = 2131230748; + + // aapt resource value: 0x7f08001d + public const int Base_Widget_AppCompat_ProgressBar_Horizontal = 2131230749; + + // aapt resource value: 0x7f08007a + public const int Base_Widget_AppCompat_RatingBar = 2131230842; + + // aapt resource value: 0x7f08008b + public const int Base_Widget_AppCompat_RatingBar_Indicator = 2131230859; + + // aapt resource value: 0x7f08008c + public const int Base_Widget_AppCompat_RatingBar_Small = 2131230860; + + // aapt resource value: 0x7f0800c4 + public const int Base_Widget_AppCompat_SearchView = 2131230916; + + // aapt resource value: 0x7f0800c5 + public const int Base_Widget_AppCompat_SearchView_ActionBar = 2131230917; + + // aapt resource value: 0x7f08007b + public const int Base_Widget_AppCompat_SeekBar = 2131230843; + + // aapt resource value: 0x7f0800c6 + public const int Base_Widget_AppCompat_SeekBar_Discrete = 2131230918; + + // aapt resource value: 0x7f08007c + public const int Base_Widget_AppCompat_Spinner = 2131230844; + + // aapt resource value: 0x7f080003 + public const int Base_Widget_AppCompat_Spinner_Underlined = 2131230723; + + // aapt resource value: 0x7f08007d + public const int Base_Widget_AppCompat_TextView_SpinnerItem = 2131230845; + + // aapt resource value: 0x7f080094 + public const int Base_Widget_AppCompat_Toolbar = 2131230868; + + // aapt resource value: 0x7f08007e + public const int Base_Widget_AppCompat_Toolbar_Button_Navigation = 2131230846; + + // aapt resource value: 0x7f08001e + public const int Platform_AppCompat = 2131230750; + + // aapt resource value: 0x7f08001f + public const int Platform_AppCompat_Light = 2131230751; + + // aapt resource value: 0x7f08007f + public const int Platform_ThemeOverlay_AppCompat = 2131230847; + + // aapt resource value: 0x7f080080 + public const int Platform_ThemeOverlay_AppCompat_Dark = 2131230848; + + // aapt resource value: 0x7f080081 + public const int Platform_ThemeOverlay_AppCompat_Light = 2131230849; + + // aapt resource value: 0x7f080020 + public const int Platform_V11_AppCompat = 2131230752; + + // aapt resource value: 0x7f080021 + public const int Platform_V11_AppCompat_Light = 2131230753; + + // aapt resource value: 0x7f080028 + public const int Platform_V14_AppCompat = 2131230760; + + // aapt resource value: 0x7f080029 + public const int Platform_V14_AppCompat_Light = 2131230761; + + // aapt resource value: 0x7f080082 + public const int Platform_V21_AppCompat = 2131230850; + + // aapt resource value: 0x7f080083 + public const int Platform_V21_AppCompat_Light = 2131230851; + + // aapt resource value: 0x7f08008f + public const int Platform_V25_AppCompat = 2131230863; + + // aapt resource value: 0x7f080090 + public const int Platform_V25_AppCompat_Light = 2131230864; + + // aapt resource value: 0x7f080022 + public const int Platform_Widget_AppCompat_Spinner = 2131230754; + + // aapt resource value: 0x7f08002b + public const int RtlOverlay_DialogWindowTitle_AppCompat = 2131230763; + + // aapt resource value: 0x7f08002c + public const int RtlOverlay_Widget_AppCompat_ActionBar_TitleItem = 2131230764; + + // aapt resource value: 0x7f08002d + public const int RtlOverlay_Widget_AppCompat_DialogTitle_Icon = 2131230765; + + // aapt resource value: 0x7f08002e + public const int RtlOverlay_Widget_AppCompat_PopupMenuItem = 2131230766; + + // aapt resource value: 0x7f08002f + public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup = 2131230767; + + // aapt resource value: 0x7f080030 + public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_Text = 2131230768; + + // aapt resource value: 0x7f080031 + public const int RtlOverlay_Widget_AppCompat_Search_DropDown = 2131230769; + + // aapt resource value: 0x7f080032 + public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 = 2131230770; + + // aapt resource value: 0x7f080033 + public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 = 2131230771; + + // aapt resource value: 0x7f080034 + public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Query = 2131230772; + + // aapt resource value: 0x7f080035 + public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Text = 2131230773; + + // aapt resource value: 0x7f080036 + public const int RtlOverlay_Widget_AppCompat_SearchView_MagIcon = 2131230774; + + // aapt resource value: 0x7f080037 + public const int RtlUnderlay_Widget_AppCompat_ActionButton = 2131230775; + + // aapt resource value: 0x7f080038 + public const int RtlUnderlay_Widget_AppCompat_ActionButton_Overflow = 2131230776; + + // aapt resource value: 0x7f0800c7 + public const int TextAppearance_AppCompat = 2131230919; + + // aapt resource value: 0x7f0800c8 + public const int TextAppearance_AppCompat_Body1 = 2131230920; + + // aapt resource value: 0x7f0800c9 + public const int TextAppearance_AppCompat_Body2 = 2131230921; + + // aapt resource value: 0x7f0800ca + public const int TextAppearance_AppCompat_Button = 2131230922; + + // aapt resource value: 0x7f0800cb + public const int TextAppearance_AppCompat_Caption = 2131230923; + + // aapt resource value: 0x7f0800cc + public const int TextAppearance_AppCompat_Display1 = 2131230924; + + // aapt resource value: 0x7f0800cd + public const int TextAppearance_AppCompat_Display2 = 2131230925; + + // aapt resource value: 0x7f0800ce + public const int TextAppearance_AppCompat_Display3 = 2131230926; + + // aapt resource value: 0x7f0800cf + public const int TextAppearance_AppCompat_Display4 = 2131230927; + + // aapt resource value: 0x7f0800d0 + public const int TextAppearance_AppCompat_Headline = 2131230928; + + // aapt resource value: 0x7f0800d1 + public const int TextAppearance_AppCompat_Inverse = 2131230929; + + // aapt resource value: 0x7f0800d2 + public const int TextAppearance_AppCompat_Large = 2131230930; + + // aapt resource value: 0x7f0800d3 + public const int TextAppearance_AppCompat_Large_Inverse = 2131230931; + + // aapt resource value: 0x7f0800d4 + public const int TextAppearance_AppCompat_Light_SearchResult_Subtitle = 2131230932; + + // aapt resource value: 0x7f0800d5 + public const int TextAppearance_AppCompat_Light_SearchResult_Title = 2131230933; + + // aapt resource value: 0x7f0800d6 + public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131230934; + + // aapt resource value: 0x7f0800d7 + public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131230935; + + // aapt resource value: 0x7f0800d8 + public const int TextAppearance_AppCompat_Medium = 2131230936; + + // aapt resource value: 0x7f0800d9 + public const int TextAppearance_AppCompat_Medium_Inverse = 2131230937; + + // aapt resource value: 0x7f0800da + public const int TextAppearance_AppCompat_Menu = 2131230938; + + // aapt resource value: 0x7f0800db + public const int TextAppearance_AppCompat_SearchResult_Subtitle = 2131230939; + + // aapt resource value: 0x7f0800dc + public const int TextAppearance_AppCompat_SearchResult_Title = 2131230940; + + // aapt resource value: 0x7f0800dd + public const int TextAppearance_AppCompat_Small = 2131230941; + + // aapt resource value: 0x7f0800de + public const int TextAppearance_AppCompat_Small_Inverse = 2131230942; + + // aapt resource value: 0x7f0800df + public const int TextAppearance_AppCompat_Subhead = 2131230943; + + // aapt resource value: 0x7f0800e0 + public const int TextAppearance_AppCompat_Subhead_Inverse = 2131230944; + + // aapt resource value: 0x7f0800e1 + public const int TextAppearance_AppCompat_Title = 2131230945; + + // aapt resource value: 0x7f0800e2 + public const int TextAppearance_AppCompat_Title_Inverse = 2131230946; + + // aapt resource value: 0x7f08002a + public const int TextAppearance_AppCompat_Tooltip = 2131230762; + + // aapt resource value: 0x7f0800e3 + public const int TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131230947; + + // aapt resource value: 0x7f0800e4 + public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131230948; + + // aapt resource value: 0x7f0800e5 + public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131230949; + + // aapt resource value: 0x7f0800e6 + public const int TextAppearance_AppCompat_Widget_ActionBar_Title = 2131230950; + + // aapt resource value: 0x7f0800e7 + public const int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131230951; + + // aapt resource value: 0x7f0800e8 + public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131230952; + + // aapt resource value: 0x7f0800e9 + public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse = 2131230953; + + // aapt resource value: 0x7f0800ea + public const int TextAppearance_AppCompat_Widget_ActionMode_Title = 2131230954; + + // aapt resource value: 0x7f0800eb + public const int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse = 2131230955; + + // aapt resource value: 0x7f0800ec + public const int TextAppearance_AppCompat_Widget_Button = 2131230956; + + // aapt resource value: 0x7f0800ed + public const int TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131230957; + + // aapt resource value: 0x7f0800ee + public const int TextAppearance_AppCompat_Widget_Button_Colored = 2131230958; + + // aapt resource value: 0x7f0800ef + public const int TextAppearance_AppCompat_Widget_Button_Inverse = 2131230959; + + // aapt resource value: 0x7f0800f0 + public const int TextAppearance_AppCompat_Widget_DropDownItem = 2131230960; + + // aapt resource value: 0x7f0800f1 + public const int TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131230961; + + // aapt resource value: 0x7f0800f2 + public const int TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131230962; + + // aapt resource value: 0x7f0800f3 + public const int TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131230963; + + // aapt resource value: 0x7f0800f4 + public const int TextAppearance_AppCompat_Widget_Switch = 2131230964; + + // aapt resource value: 0x7f0800f5 + public const int TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131230965; + + // aapt resource value: 0x7f08015b + public const int TextAppearance_Compat_Notification = 2131231067; + + // aapt resource value: 0x7f08015c + public const int TextAppearance_Compat_Notification_Info = 2131231068; + + // aapt resource value: 0x7f080156 + public const int TextAppearance_Compat_Notification_Info_Media = 2131231062; + + // aapt resource value: 0x7f080161 + public const int TextAppearance_Compat_Notification_Line2 = 2131231073; + + // aapt resource value: 0x7f08015a + public const int TextAppearance_Compat_Notification_Line2_Media = 2131231066; + + // aapt resource value: 0x7f080157 + public const int TextAppearance_Compat_Notification_Media = 2131231063; + + // aapt resource value: 0x7f08015d + public const int TextAppearance_Compat_Notification_Time = 2131231069; + + // aapt resource value: 0x7f080158 + public const int TextAppearance_Compat_Notification_Time_Media = 2131231064; + + // aapt resource value: 0x7f08015e + public const int TextAppearance_Compat_Notification_Title = 2131231070; + + // aapt resource value: 0x7f080159 + public const int TextAppearance_Compat_Notification_Title_Media = 2131231065; + + // aapt resource value: 0x7f0800f6 + public const int TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131230966; + + // aapt resource value: 0x7f0800f7 + public const int TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131230967; + + // aapt resource value: 0x7f0800f8 + public const int TextAppearance_Widget_AppCompat_Toolbar_Title = 2131230968; + + // aapt resource value: 0x7f0800f9 + public const int Theme_AppCompat = 2131230969; + + // aapt resource value: 0x7f0800fa + public const int Theme_AppCompat_CompactMenu = 2131230970; + + // aapt resource value: 0x7f080004 + public const int Theme_AppCompat_DayNight = 2131230724; + + // aapt resource value: 0x7f080005 + public const int Theme_AppCompat_DayNight_DarkActionBar = 2131230725; + + // aapt resource value: 0x7f080006 + public const int Theme_AppCompat_DayNight_Dialog = 2131230726; + + // aapt resource value: 0x7f080007 + public const int Theme_AppCompat_DayNight_Dialog_Alert = 2131230727; + + // aapt resource value: 0x7f080008 + public const int Theme_AppCompat_DayNight_Dialog_MinWidth = 2131230728; + + // aapt resource value: 0x7f080009 + public const int Theme_AppCompat_DayNight_DialogWhenLarge = 2131230729; + + // aapt resource value: 0x7f08000a + public const int Theme_AppCompat_DayNight_NoActionBar = 2131230730; + + // aapt resource value: 0x7f0800fb + public const int Theme_AppCompat_Dialog = 2131230971; + + // aapt resource value: 0x7f0800fc + public const int Theme_AppCompat_Dialog_Alert = 2131230972; + + // aapt resource value: 0x7f0800fd + public const int Theme_AppCompat_Dialog_MinWidth = 2131230973; + + // aapt resource value: 0x7f0800fe + public const int Theme_AppCompat_DialogWhenLarge = 2131230974; + + // aapt resource value: 0x7f0800ff + public const int Theme_AppCompat_Light = 2131230975; + + // aapt resource value: 0x7f080100 + public const int Theme_AppCompat_Light_DarkActionBar = 2131230976; + + // aapt resource value: 0x7f080101 + public const int Theme_AppCompat_Light_Dialog = 2131230977; + + // aapt resource value: 0x7f080102 + public const int Theme_AppCompat_Light_Dialog_Alert = 2131230978; + + // aapt resource value: 0x7f080103 + public const int Theme_AppCompat_Light_Dialog_MinWidth = 2131230979; + + // aapt resource value: 0x7f080104 + public const int Theme_AppCompat_Light_DialogWhenLarge = 2131230980; + + // aapt resource value: 0x7f080105 + public const int Theme_AppCompat_Light_NoActionBar = 2131230981; + + // aapt resource value: 0x7f080106 + public const int Theme_AppCompat_NoActionBar = 2131230982; + + // aapt resource value: 0x7f080107 + public const int ThemeOverlay_AppCompat = 2131230983; + + // aapt resource value: 0x7f080108 + public const int ThemeOverlay_AppCompat_ActionBar = 2131230984; + + // aapt resource value: 0x7f080109 + public const int ThemeOverlay_AppCompat_Dark = 2131230985; + + // aapt resource value: 0x7f08010a + public const int ThemeOverlay_AppCompat_Dark_ActionBar = 2131230986; + + // aapt resource value: 0x7f08010b + public const int ThemeOverlay_AppCompat_Dialog = 2131230987; + + // aapt resource value: 0x7f08010c + public const int ThemeOverlay_AppCompat_Dialog_Alert = 2131230988; + + // aapt resource value: 0x7f08010d + public const int ThemeOverlay_AppCompat_Light = 2131230989; + + // aapt resource value: 0x7f08010e + public const int Widget_AppCompat_ActionBar = 2131230990; + + // aapt resource value: 0x7f08010f + public const int Widget_AppCompat_ActionBar_Solid = 2131230991; + + // aapt resource value: 0x7f080110 + public const int Widget_AppCompat_ActionBar_TabBar = 2131230992; + + // aapt resource value: 0x7f080111 + public const int Widget_AppCompat_ActionBar_TabText = 2131230993; + + // aapt resource value: 0x7f080112 + public const int Widget_AppCompat_ActionBar_TabView = 2131230994; + + // aapt resource value: 0x7f080113 + public const int Widget_AppCompat_ActionButton = 2131230995; + + // aapt resource value: 0x7f080114 + public const int Widget_AppCompat_ActionButton_CloseMode = 2131230996; + + // aapt resource value: 0x7f080115 + public const int Widget_AppCompat_ActionButton_Overflow = 2131230997; + + // aapt resource value: 0x7f080116 + public const int Widget_AppCompat_ActionMode = 2131230998; + + // aapt resource value: 0x7f080117 + public const int Widget_AppCompat_ActivityChooserView = 2131230999; + + // aapt resource value: 0x7f080118 + public const int Widget_AppCompat_AutoCompleteTextView = 2131231000; + + // aapt resource value: 0x7f080119 + public const int Widget_AppCompat_Button = 2131231001; + + // aapt resource value: 0x7f08011a + public const int Widget_AppCompat_Button_Borderless = 2131231002; + + // aapt resource value: 0x7f08011b + public const int Widget_AppCompat_Button_Borderless_Colored = 2131231003; + + // aapt resource value: 0x7f08011c + public const int Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131231004; + + // aapt resource value: 0x7f08011d + public const int Widget_AppCompat_Button_Colored = 2131231005; + + // aapt resource value: 0x7f08011e + public const int Widget_AppCompat_Button_Small = 2131231006; + + // aapt resource value: 0x7f08011f + public const int Widget_AppCompat_ButtonBar = 2131231007; + + // aapt resource value: 0x7f080120 + public const int Widget_AppCompat_ButtonBar_AlertDialog = 2131231008; + + // aapt resource value: 0x7f080121 + public const int Widget_AppCompat_CompoundButton_CheckBox = 2131231009; + + // aapt resource value: 0x7f080122 + public const int Widget_AppCompat_CompoundButton_RadioButton = 2131231010; + + // aapt resource value: 0x7f080123 + public const int Widget_AppCompat_CompoundButton_Switch = 2131231011; + + // aapt resource value: 0x7f080124 + public const int Widget_AppCompat_DrawerArrowToggle = 2131231012; + + // aapt resource value: 0x7f080125 + public const int Widget_AppCompat_DropDownItem_Spinner = 2131231013; + + // aapt resource value: 0x7f080126 + public const int Widget_AppCompat_EditText = 2131231014; + + // aapt resource value: 0x7f080127 + public const int Widget_AppCompat_ImageButton = 2131231015; + + // aapt resource value: 0x7f080128 + public const int Widget_AppCompat_Light_ActionBar = 2131231016; + + // aapt resource value: 0x7f080129 + public const int Widget_AppCompat_Light_ActionBar_Solid = 2131231017; + + // aapt resource value: 0x7f08012a + public const int Widget_AppCompat_Light_ActionBar_Solid_Inverse = 2131231018; + + // aapt resource value: 0x7f08012b + public const int Widget_AppCompat_Light_ActionBar_TabBar = 2131231019; + + // aapt resource value: 0x7f08012c + public const int Widget_AppCompat_Light_ActionBar_TabBar_Inverse = 2131231020; + + // aapt resource value: 0x7f08012d + public const int Widget_AppCompat_Light_ActionBar_TabText = 2131231021; + + // aapt resource value: 0x7f08012e + public const int Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131231022; + + // aapt resource value: 0x7f08012f + public const int Widget_AppCompat_Light_ActionBar_TabView = 2131231023; + + // aapt resource value: 0x7f080130 + public const int Widget_AppCompat_Light_ActionBar_TabView_Inverse = 2131231024; + + // aapt resource value: 0x7f080131 + public const int Widget_AppCompat_Light_ActionButton = 2131231025; + + // aapt resource value: 0x7f080132 + public const int Widget_AppCompat_Light_ActionButton_CloseMode = 2131231026; + + // aapt resource value: 0x7f080133 + public const int Widget_AppCompat_Light_ActionButton_Overflow = 2131231027; + + // aapt resource value: 0x7f080134 + public const int Widget_AppCompat_Light_ActionMode_Inverse = 2131231028; + + // aapt resource value: 0x7f080135 + public const int Widget_AppCompat_Light_ActivityChooserView = 2131231029; + + // aapt resource value: 0x7f080136 + public const int Widget_AppCompat_Light_AutoCompleteTextView = 2131231030; + + // aapt resource value: 0x7f080137 + public const int Widget_AppCompat_Light_DropDownItem_Spinner = 2131231031; + + // aapt resource value: 0x7f080138 + public const int Widget_AppCompat_Light_ListPopupWindow = 2131231032; + + // aapt resource value: 0x7f080139 + public const int Widget_AppCompat_Light_ListView_DropDown = 2131231033; + + // aapt resource value: 0x7f08013a + public const int Widget_AppCompat_Light_PopupMenu = 2131231034; + + // aapt resource value: 0x7f08013b + public const int Widget_AppCompat_Light_PopupMenu_Overflow = 2131231035; + + // aapt resource value: 0x7f08013c + public const int Widget_AppCompat_Light_SearchView = 2131231036; + + // aapt resource value: 0x7f08013d + public const int Widget_AppCompat_Light_Spinner_DropDown_ActionBar = 2131231037; + + // aapt resource value: 0x7f08013e + public const int Widget_AppCompat_ListMenuView = 2131231038; + + // aapt resource value: 0x7f08013f + public const int Widget_AppCompat_ListPopupWindow = 2131231039; + + // aapt resource value: 0x7f080140 + public const int Widget_AppCompat_ListView = 2131231040; + + // aapt resource value: 0x7f080141 + public const int Widget_AppCompat_ListView_DropDown = 2131231041; + + // aapt resource value: 0x7f080142 + public const int Widget_AppCompat_ListView_Menu = 2131231042; + + // aapt resource value: 0x7f080143 + public const int Widget_AppCompat_PopupMenu = 2131231043; + + // aapt resource value: 0x7f080144 + public const int Widget_AppCompat_PopupMenu_Overflow = 2131231044; + + // aapt resource value: 0x7f080145 + public const int Widget_AppCompat_PopupWindow = 2131231045; + + // aapt resource value: 0x7f080146 + public const int Widget_AppCompat_ProgressBar = 2131231046; + + // aapt resource value: 0x7f080147 + public const int Widget_AppCompat_ProgressBar_Horizontal = 2131231047; + + // aapt resource value: 0x7f080148 + public const int Widget_AppCompat_RatingBar = 2131231048; + + // aapt resource value: 0x7f080149 + public const int Widget_AppCompat_RatingBar_Indicator = 2131231049; + + // aapt resource value: 0x7f08014a + public const int Widget_AppCompat_RatingBar_Small = 2131231050; + + // aapt resource value: 0x7f08014b + public const int Widget_AppCompat_SearchView = 2131231051; + + // aapt resource value: 0x7f08014c + public const int Widget_AppCompat_SearchView_ActionBar = 2131231052; + + // aapt resource value: 0x7f08014d + public const int Widget_AppCompat_SeekBar = 2131231053; + + // aapt resource value: 0x7f08014e + public const int Widget_AppCompat_SeekBar_Discrete = 2131231054; + + // aapt resource value: 0x7f08014f + public const int Widget_AppCompat_Spinner = 2131231055; + + // aapt resource value: 0x7f080150 + public const int Widget_AppCompat_Spinner_DropDown = 2131231056; + + // aapt resource value: 0x7f080151 + public const int Widget_AppCompat_Spinner_DropDown_ActionBar = 2131231057; + + // aapt resource value: 0x7f080152 + public const int Widget_AppCompat_Spinner_Underlined = 2131231058; + + // aapt resource value: 0x7f080153 + public const int Widget_AppCompat_TextView_SpinnerItem = 2131231059; + + // aapt resource value: 0x7f080154 + public const int Widget_AppCompat_Toolbar = 2131231060; + + // aapt resource value: 0x7f080155 + public const int Widget_AppCompat_Toolbar_Button_Navigation = 2131231061; + + // aapt resource value: 0x7f08015f + public const int Widget_Compat_NotificationActionContainer = 2131231071; + + // aapt resource value: 0x7f080160 + public const int Widget_Compat_NotificationActionText = 2131231072; + + static Style() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Style() + { + } + } + + public partial class Styleable + { + + public static int[] ActionBar = new int[] { + 2130771969, + 2130771971, + 2130771972, + 2130771973, + 2130771974, + 2130771975, + 2130771976, + 2130771977, + 2130771978, + 2130771979, + 2130771980, + 2130771981, + 2130771982, + 2130771983, + 2130771984, + 2130771985, + 2130771986, + 2130771987, + 2130771988, + 2130771989, + 2130771990, + 2130771991, + 2130771992, + 2130771993, + 2130771994, + 2130771995, + 2130771996, + 2130771997, + 2130772067}; + + // aapt resource value: 10 + public const int ActionBar_background = 10; + + // aapt resource value: 12 + public const int ActionBar_backgroundSplit = 12; + + // aapt resource value: 11 + public const int ActionBar_backgroundStacked = 11; + + // aapt resource value: 21 + public const int ActionBar_contentInsetEnd = 21; + + // aapt resource value: 25 + public const int ActionBar_contentInsetEndWithActions = 25; + + // aapt resource value: 22 + public const int ActionBar_contentInsetLeft = 22; + + // aapt resource value: 23 + public const int ActionBar_contentInsetRight = 23; + + // aapt resource value: 20 + public const int ActionBar_contentInsetStart = 20; + + // aapt resource value: 24 + public const int ActionBar_contentInsetStartWithNavigation = 24; + + // aapt resource value: 13 + public const int ActionBar_customNavigationLayout = 13; + + // aapt resource value: 3 + public const int ActionBar_displayOptions = 3; + + // aapt resource value: 9 + public const int ActionBar_divider = 9; + + // aapt resource value: 26 + public const int ActionBar_elevation = 26; + + // aapt resource value: 0 + public const int ActionBar_height = 0; + + // aapt resource value: 19 + public const int ActionBar_hideOnContentScroll = 19; + + // aapt resource value: 28 + public const int ActionBar_homeAsUpIndicator = 28; + + // aapt resource value: 14 + public const int ActionBar_homeLayout = 14; + + // aapt resource value: 7 + public const int ActionBar_icon = 7; + + // aapt resource value: 16 + public const int ActionBar_indeterminateProgressStyle = 16; + + // aapt resource value: 18 + public const int ActionBar_itemPadding = 18; + + // aapt resource value: 8 + public const int ActionBar_logo = 8; + + // aapt resource value: 2 + public const int ActionBar_navigationMode = 2; + + // aapt resource value: 27 + public const int ActionBar_popupTheme = 27; + + // aapt resource value: 17 + public const int ActionBar_progressBarPadding = 17; + + // aapt resource value: 15 + public const int ActionBar_progressBarStyle = 15; + + // aapt resource value: 4 + public const int ActionBar_subtitle = 4; + + // aapt resource value: 6 + public const int ActionBar_subtitleTextStyle = 6; + + // aapt resource value: 1 + public const int ActionBar_title = 1; + + // aapt resource value: 5 + public const int ActionBar_titleTextStyle = 5; + + public static int[] ActionBarLayout = new int[] { + 16842931}; + + // aapt resource value: 0 + public const int ActionBarLayout_android_layout_gravity = 0; + + public static int[] ActionMenuItemView = new int[] { + 16843071}; + + // aapt resource value: 0 + public const int ActionMenuItemView_android_minWidth = 0; + + public static int[] ActionMenuView; + + public static int[] ActionMode = new int[] { + 2130771969, + 2130771975, + 2130771976, + 2130771980, + 2130771982, + 2130771998}; + + // aapt resource value: 3 + public const int ActionMode_background = 3; + + // aapt resource value: 4 + public const int ActionMode_backgroundSplit = 4; + + // aapt resource value: 5 + public const int ActionMode_closeItemLayout = 5; + + // aapt resource value: 0 + public const int ActionMode_height = 0; + + // aapt resource value: 2 + public const int ActionMode_subtitleTextStyle = 2; + + // aapt resource value: 1 + public const int ActionMode_titleTextStyle = 1; + + public static int[] ActivityChooserView = new int[] { + 2130771999, + 2130772000}; + + // aapt resource value: 1 + public const int ActivityChooserView_expandActivityOverflowButtonDrawable = 1; + + // aapt resource value: 0 + public const int ActivityChooserView_initialActivityCount = 0; + + public static int[] AlertDialog = new int[] { + 16842994, + 2130772001, + 2130772002, + 2130772003, + 2130772004, + 2130772005, + 2130772006}; + + // aapt resource value: 0 + public const int AlertDialog_android_layout = 0; + + // aapt resource value: 1 + public const int AlertDialog_buttonPanelSideLayout = 1; + + // aapt resource value: 5 + public const int AlertDialog_listItemLayout = 5; + + // aapt resource value: 2 + public const int AlertDialog_listLayout = 2; + + // aapt resource value: 3 + public const int AlertDialog_multiChoiceItemLayout = 3; + + // aapt resource value: 6 + public const int AlertDialog_showTitle = 6; + + // aapt resource value: 4 + public const int AlertDialog_singleChoiceItemLayout = 4; + + public static int[] AppCompatImageView = new int[] { + 16843033, + 2130772007, + 2130772008, + 2130772009}; + + // aapt resource value: 0 + public const int AppCompatImageView_android_src = 0; + + // aapt resource value: 1 + public const int AppCompatImageView_srcCompat = 1; + + // aapt resource value: 2 + public const int AppCompatImageView_tint = 2; + + // aapt resource value: 3 + public const int AppCompatImageView_tintMode = 3; + + public static int[] AppCompatSeekBar = new int[] { + 16843074, + 2130772010, + 2130772011, + 2130772012}; + + // aapt resource value: 0 + public const int AppCompatSeekBar_android_thumb = 0; + + // aapt resource value: 1 + public const int AppCompatSeekBar_tickMark = 1; + + // aapt resource value: 2 + public const int AppCompatSeekBar_tickMarkTint = 2; + + // aapt resource value: 3 + public const int AppCompatSeekBar_tickMarkTintMode = 3; + + public static int[] AppCompatTextHelper = new int[] { + 16842804, + 16843117, + 16843118, + 16843119, + 16843120, + 16843666, + 16843667}; + + // aapt resource value: 2 + public const int AppCompatTextHelper_android_drawableBottom = 2; + + // aapt resource value: 6 + public const int AppCompatTextHelper_android_drawableEnd = 6; + + // aapt resource value: 3 + public const int AppCompatTextHelper_android_drawableLeft = 3; + + // aapt resource value: 4 + public const int AppCompatTextHelper_android_drawableRight = 4; + + // aapt resource value: 5 + public const int AppCompatTextHelper_android_drawableStart = 5; + + // aapt resource value: 1 + public const int AppCompatTextHelper_android_drawableTop = 1; + + // aapt resource value: 0 + public const int AppCompatTextHelper_android_textAppearance = 0; + + public static int[] AppCompatTextView = new int[] { + 16842804, + 2130772013, + 2130772014, + 2130772015, + 2130772016, + 2130772017, + 2130772018, + 2130772019}; + + // aapt resource value: 0 + public const int AppCompatTextView_android_textAppearance = 0; + + // aapt resource value: 6 + public const int AppCompatTextView_autoSizeMaxTextSize = 6; + + // aapt resource value: 5 + public const int AppCompatTextView_autoSizeMinTextSize = 5; + + // aapt resource value: 4 + public const int AppCompatTextView_autoSizePresetSizes = 4; + + // aapt resource value: 3 + public const int AppCompatTextView_autoSizeStepGranularity = 3; + + // aapt resource value: 2 + public const int AppCompatTextView_autoSizeTextType = 2; + + // aapt resource value: 7 + public const int AppCompatTextView_fontFamily = 7; + + // aapt resource value: 1 + public const int AppCompatTextView_textAllCaps = 1; + + public static int[] AppCompatTheme = new int[] { + 16842839, + 16842926, + 2130772020, + 2130772021, + 2130772022, + 2130772023, + 2130772024, + 2130772025, + 2130772026, + 2130772027, + 2130772028, + 2130772029, + 2130772030, + 2130772031, + 2130772032, + 2130772033, + 2130772034, + 2130772035, + 2130772036, + 2130772037, + 2130772038, + 2130772039, + 2130772040, + 2130772041, + 2130772042, + 2130772043, + 2130772044, + 2130772045, + 2130772046, + 2130772047, + 2130772048, + 2130772049, + 2130772050, + 2130772051, + 2130772052, + 2130772053, + 2130772054, + 2130772055, + 2130772056, + 2130772057, + 2130772058, + 2130772059, + 2130772060, + 2130772061, + 2130772062, + 2130772063, + 2130772064, + 2130772065, + 2130772066, + 2130772067, + 2130772068, + 2130772069, + 2130772070, + 2130772071, + 2130772072, + 2130772073, + 2130772074, + 2130772075, + 2130772076, + 2130772077, + 2130772078, + 2130772079, + 2130772080, + 2130772081, + 2130772082, + 2130772083, + 2130772084, + 2130772085, + 2130772086, + 2130772087, + 2130772088, + 2130772089, + 2130772090, + 2130772091, + 2130772092, + 2130772093, + 2130772094, + 2130772095, + 2130772096, + 2130772097, + 2130772098, + 2130772099, + 2130772100, + 2130772101, + 2130772102, + 2130772103, + 2130772104, + 2130772105, + 2130772106, + 2130772107, + 2130772108, + 2130772109, + 2130772110, + 2130772111, + 2130772112, + 2130772113, + 2130772114, + 2130772115, + 2130772116, + 2130772117, + 2130772118, + 2130772119, + 2130772120, + 2130772121, + 2130772122, + 2130772123, + 2130772124, + 2130772125, + 2130772126, + 2130772127, + 2130772128, + 2130772129, + 2130772130, + 2130772131, + 2130772132, + 2130772133, + 2130772134, + 2130772135, + 2130772136}; + + // aapt resource value: 23 + public const int AppCompatTheme_actionBarDivider = 23; + + // aapt resource value: 24 + public const int AppCompatTheme_actionBarItemBackground = 24; + + // aapt resource value: 17 + public const int AppCompatTheme_actionBarPopupTheme = 17; + + // aapt resource value: 22 + public const int AppCompatTheme_actionBarSize = 22; + + // aapt resource value: 19 + public const int AppCompatTheme_actionBarSplitStyle = 19; + + // aapt resource value: 18 + public const int AppCompatTheme_actionBarStyle = 18; + + // aapt resource value: 13 + public const int AppCompatTheme_actionBarTabBarStyle = 13; + + // aapt resource value: 12 + public const int AppCompatTheme_actionBarTabStyle = 12; + + // aapt resource value: 14 + public const int AppCompatTheme_actionBarTabTextStyle = 14; + + // aapt resource value: 20 + public const int AppCompatTheme_actionBarTheme = 20; + + // aapt resource value: 21 + public const int AppCompatTheme_actionBarWidgetTheme = 21; + + // aapt resource value: 50 + public const int AppCompatTheme_actionButtonStyle = 50; + + // aapt resource value: 46 + public const int AppCompatTheme_actionDropDownStyle = 46; + + // aapt resource value: 25 + public const int AppCompatTheme_actionMenuTextAppearance = 25; + + // aapt resource value: 26 + public const int AppCompatTheme_actionMenuTextColor = 26; + + // aapt resource value: 29 + public const int AppCompatTheme_actionModeBackground = 29; + + // aapt resource value: 28 + public const int AppCompatTheme_actionModeCloseButtonStyle = 28; + + // aapt resource value: 31 + public const int AppCompatTheme_actionModeCloseDrawable = 31; + + // aapt resource value: 33 + public const int AppCompatTheme_actionModeCopyDrawable = 33; + + // aapt resource value: 32 + public const int AppCompatTheme_actionModeCutDrawable = 32; + + // aapt resource value: 37 + public const int AppCompatTheme_actionModeFindDrawable = 37; + + // aapt resource value: 34 + public const int AppCompatTheme_actionModePasteDrawable = 34; + + // aapt resource value: 39 + public const int AppCompatTheme_actionModePopupWindowStyle = 39; + + // aapt resource value: 35 + public const int AppCompatTheme_actionModeSelectAllDrawable = 35; + + // aapt resource value: 36 + public const int AppCompatTheme_actionModeShareDrawable = 36; + + // aapt resource value: 30 + public const int AppCompatTheme_actionModeSplitBackground = 30; + + // aapt resource value: 27 + public const int AppCompatTheme_actionModeStyle = 27; + + // aapt resource value: 38 + public const int AppCompatTheme_actionModeWebSearchDrawable = 38; + + // aapt resource value: 15 + public const int AppCompatTheme_actionOverflowButtonStyle = 15; + + // aapt resource value: 16 + public const int AppCompatTheme_actionOverflowMenuStyle = 16; + + // aapt resource value: 58 + public const int AppCompatTheme_activityChooserViewStyle = 58; + + // aapt resource value: 95 + public const int AppCompatTheme_alertDialogButtonGroupStyle = 95; + + // aapt resource value: 96 + public const int AppCompatTheme_alertDialogCenterButtons = 96; + + // aapt resource value: 94 + public const int AppCompatTheme_alertDialogStyle = 94; + + // aapt resource value: 97 + public const int AppCompatTheme_alertDialogTheme = 97; + + // aapt resource value: 1 + public const int AppCompatTheme_android_windowAnimationStyle = 1; + + // aapt resource value: 0 + public const int AppCompatTheme_android_windowIsFloating = 0; + + // aapt resource value: 102 + public const int AppCompatTheme_autoCompleteTextViewStyle = 102; + + // aapt resource value: 55 + public const int AppCompatTheme_borderlessButtonStyle = 55; + + // aapt resource value: 52 + public const int AppCompatTheme_buttonBarButtonStyle = 52; + + // aapt resource value: 100 + public const int AppCompatTheme_buttonBarNegativeButtonStyle = 100; + + // aapt resource value: 101 + public const int AppCompatTheme_buttonBarNeutralButtonStyle = 101; + + // aapt resource value: 99 + public const int AppCompatTheme_buttonBarPositiveButtonStyle = 99; + + // aapt resource value: 51 + public const int AppCompatTheme_buttonBarStyle = 51; + + // aapt resource value: 103 + public const int AppCompatTheme_buttonStyle = 103; + + // aapt resource value: 104 + public const int AppCompatTheme_buttonStyleSmall = 104; + + // aapt resource value: 105 + public const int AppCompatTheme_checkboxStyle = 105; + + // aapt resource value: 106 + public const int AppCompatTheme_checkedTextViewStyle = 106; + + // aapt resource value: 86 + public const int AppCompatTheme_colorAccent = 86; + + // aapt resource value: 93 + public const int AppCompatTheme_colorBackgroundFloating = 93; + + // aapt resource value: 90 + public const int AppCompatTheme_colorButtonNormal = 90; + + // aapt resource value: 88 + public const int AppCompatTheme_colorControlActivated = 88; + + // aapt resource value: 89 + public const int AppCompatTheme_colorControlHighlight = 89; + + // aapt resource value: 87 + public const int AppCompatTheme_colorControlNormal = 87; + + // aapt resource value: 118 + public const int AppCompatTheme_colorError = 118; + + // aapt resource value: 84 + public const int AppCompatTheme_colorPrimary = 84; + + // aapt resource value: 85 + public const int AppCompatTheme_colorPrimaryDark = 85; + + // aapt resource value: 91 + public const int AppCompatTheme_colorSwitchThumbNormal = 91; + + // aapt resource value: 92 + public const int AppCompatTheme_controlBackground = 92; + + // aapt resource value: 44 + public const int AppCompatTheme_dialogPreferredPadding = 44; + + // aapt resource value: 43 + public const int AppCompatTheme_dialogTheme = 43; + + // aapt resource value: 57 + public const int AppCompatTheme_dividerHorizontal = 57; + + // aapt resource value: 56 + public const int AppCompatTheme_dividerVertical = 56; + + // aapt resource value: 75 + public const int AppCompatTheme_dropDownListViewStyle = 75; + + // aapt resource value: 47 + public const int AppCompatTheme_dropdownListPreferredItemHeight = 47; + + // aapt resource value: 64 + public const int AppCompatTheme_editTextBackground = 64; + + // aapt resource value: 63 + public const int AppCompatTheme_editTextColor = 63; + + // aapt resource value: 107 + public const int AppCompatTheme_editTextStyle = 107; + + // aapt resource value: 49 + public const int AppCompatTheme_homeAsUpIndicator = 49; + + // aapt resource value: 65 + public const int AppCompatTheme_imageButtonStyle = 65; + + // aapt resource value: 83 + public const int AppCompatTheme_listChoiceBackgroundIndicator = 83; + + // aapt resource value: 45 + public const int AppCompatTheme_listDividerAlertDialog = 45; + + // aapt resource value: 115 + public const int AppCompatTheme_listMenuViewStyle = 115; + + // aapt resource value: 76 + public const int AppCompatTheme_listPopupWindowStyle = 76; + + // aapt resource value: 70 + public const int AppCompatTheme_listPreferredItemHeight = 70; + + // aapt resource value: 72 + public const int AppCompatTheme_listPreferredItemHeightLarge = 72; + + // aapt resource value: 71 + public const int AppCompatTheme_listPreferredItemHeightSmall = 71; + + // aapt resource value: 73 + public const int AppCompatTheme_listPreferredItemPaddingLeft = 73; + + // aapt resource value: 74 + public const int AppCompatTheme_listPreferredItemPaddingRight = 74; + + // aapt resource value: 80 + public const int AppCompatTheme_panelBackground = 80; + + // aapt resource value: 82 + public const int AppCompatTheme_panelMenuListTheme = 82; + + // aapt resource value: 81 + public const int AppCompatTheme_panelMenuListWidth = 81; + + // aapt resource value: 61 + public const int AppCompatTheme_popupMenuStyle = 61; + + // aapt resource value: 62 + public const int AppCompatTheme_popupWindowStyle = 62; + + // aapt resource value: 108 + public const int AppCompatTheme_radioButtonStyle = 108; + + // aapt resource value: 109 + public const int AppCompatTheme_ratingBarStyle = 109; + + // aapt resource value: 110 + public const int AppCompatTheme_ratingBarStyleIndicator = 110; + + // aapt resource value: 111 + public const int AppCompatTheme_ratingBarStyleSmall = 111; + + // aapt resource value: 69 + public const int AppCompatTheme_searchViewStyle = 69; + + // aapt resource value: 112 + public const int AppCompatTheme_seekBarStyle = 112; + + // aapt resource value: 53 + public const int AppCompatTheme_selectableItemBackground = 53; + + // aapt resource value: 54 + public const int AppCompatTheme_selectableItemBackgroundBorderless = 54; + + // aapt resource value: 48 + public const int AppCompatTheme_spinnerDropDownItemStyle = 48; + + // aapt resource value: 113 + public const int AppCompatTheme_spinnerStyle = 113; + + // aapt resource value: 114 + public const int AppCompatTheme_switchStyle = 114; + + // aapt resource value: 40 + public const int AppCompatTheme_textAppearanceLargePopupMenu = 40; + + // aapt resource value: 77 + public const int AppCompatTheme_textAppearanceListItem = 77; + + // aapt resource value: 78 + public const int AppCompatTheme_textAppearanceListItemSecondary = 78; + + // aapt resource value: 79 + public const int AppCompatTheme_textAppearanceListItemSmall = 79; + + // aapt resource value: 42 + public const int AppCompatTheme_textAppearancePopupMenuHeader = 42; + + // aapt resource value: 67 + public const int AppCompatTheme_textAppearanceSearchResultSubtitle = 67; + + // aapt resource value: 66 + public const int AppCompatTheme_textAppearanceSearchResultTitle = 66; + + // aapt resource value: 41 + public const int AppCompatTheme_textAppearanceSmallPopupMenu = 41; + + // aapt resource value: 98 + public const int AppCompatTheme_textColorAlertDialogListItem = 98; + + // aapt resource value: 68 + public const int AppCompatTheme_textColorSearchUrl = 68; + + // aapt resource value: 60 + public const int AppCompatTheme_toolbarNavigationButtonStyle = 60; + + // aapt resource value: 59 + public const int AppCompatTheme_toolbarStyle = 59; + + // aapt resource value: 117 + public const int AppCompatTheme_tooltipForegroundColor = 117; + + // aapt resource value: 116 + public const int AppCompatTheme_tooltipFrameBackground = 116; + + // aapt resource value: 2 + public const int AppCompatTheme_windowActionBar = 2; + + // aapt resource value: 4 + public const int AppCompatTheme_windowActionBarOverlay = 4; + + // aapt resource value: 5 + public const int AppCompatTheme_windowActionModeOverlay = 5; + + // aapt resource value: 9 + public const int AppCompatTheme_windowFixedHeightMajor = 9; + + // aapt resource value: 7 + public const int AppCompatTheme_windowFixedHeightMinor = 7; + + // aapt resource value: 6 + public const int AppCompatTheme_windowFixedWidthMajor = 6; + + // aapt resource value: 8 + public const int AppCompatTheme_windowFixedWidthMinor = 8; + + // aapt resource value: 10 + public const int AppCompatTheme_windowMinWidthMajor = 10; + + // aapt resource value: 11 + public const int AppCompatTheme_windowMinWidthMinor = 11; + + // aapt resource value: 3 + public const int AppCompatTheme_windowNoTitle = 3; + + public static int[] ButtonBarLayout = new int[] { + 2130772137}; + + // aapt resource value: 0 + public const int ButtonBarLayout_allowStacking = 0; + + public static int[] ColorStateListItem = new int[] { + 16843173, + 16843551, + 2130772138}; + + // aapt resource value: 2 + public const int ColorStateListItem_alpha = 2; + + // aapt resource value: 1 + public const int ColorStateListItem_android_alpha = 1; + + // aapt resource value: 0 + public const int ColorStateListItem_android_color = 0; + + public static int[] CompoundButton = new int[] { + 16843015, + 2130772139, + 2130772140}; + + // aapt resource value: 0 + public const int CompoundButton_android_button = 0; + + // aapt resource value: 1 + public const int CompoundButton_buttonTint = 1; + + // aapt resource value: 2 + public const int CompoundButton_buttonTintMode = 2; + + public static int[] DrawerArrowToggle = new int[] { + 2130772141, + 2130772142, + 2130772143, + 2130772144, + 2130772145, + 2130772146, + 2130772147, + 2130772148}; + + // aapt resource value: 4 + public const int DrawerArrowToggle_arrowHeadLength = 4; + + // aapt resource value: 5 + public const int DrawerArrowToggle_arrowShaftLength = 5; + + // aapt resource value: 6 + public const int DrawerArrowToggle_barLength = 6; + + // aapt resource value: 0 + public const int DrawerArrowToggle_color = 0; + + // aapt resource value: 2 + public const int DrawerArrowToggle_drawableSize = 2; + + // aapt resource value: 3 + public const int DrawerArrowToggle_gapBetweenBars = 3; + + // aapt resource value: 1 + public const int DrawerArrowToggle_spinBars = 1; + + // aapt resource value: 7 + public const int DrawerArrowToggle_thickness = 7; + + public static int[] FontFamily = new int[] { + 2130772214, + 2130772215, + 2130772216, + 2130772217, + 2130772218, + 2130772219}; + + // aapt resource value: 0 + public const int FontFamily_fontProviderAuthority = 0; + + // aapt resource value: 3 + public const int FontFamily_fontProviderCerts = 3; + + // aapt resource value: 4 + public const int FontFamily_fontProviderFetchStrategy = 4; + + // aapt resource value: 5 + public const int FontFamily_fontProviderFetchTimeout = 5; + + // aapt resource value: 1 + public const int FontFamily_fontProviderPackage = 1; + + // aapt resource value: 2 + public const int FontFamily_fontProviderQuery = 2; + + public static int[] FontFamilyFont = new int[] { + 16844082, + 16844083, + 16844095, + 2130772220, + 2130772221, + 2130772222}; + + // aapt resource value: 0 + public const int FontFamilyFont_android_font = 0; + + // aapt resource value: 2 + public const int FontFamilyFont_android_fontStyle = 2; + + // aapt resource value: 1 + public const int FontFamilyFont_android_fontWeight = 1; + + // aapt resource value: 4 + public const int FontFamilyFont_font = 4; + + // aapt resource value: 3 + public const int FontFamilyFont_fontStyle = 3; + + // aapt resource value: 5 + public const int FontFamilyFont_fontWeight = 5; + + public static int[] LinearLayoutCompat = new int[] { + 16842927, + 16842948, + 16843046, + 16843047, + 16843048, + 2130771979, + 2130772149, + 2130772150, + 2130772151}; + + // aapt resource value: 2 + public const int LinearLayoutCompat_android_baselineAligned = 2; + + // aapt resource value: 3 + public const int LinearLayoutCompat_android_baselineAlignedChildIndex = 3; + + // aapt resource value: 0 + public const int LinearLayoutCompat_android_gravity = 0; + + // aapt resource value: 1 + public const int LinearLayoutCompat_android_orientation = 1; + + // aapt resource value: 4 + public const int LinearLayoutCompat_android_weightSum = 4; + + // aapt resource value: 5 + public const int LinearLayoutCompat_divider = 5; + + // aapt resource value: 8 + public const int LinearLayoutCompat_dividerPadding = 8; + + // aapt resource value: 6 + public const int LinearLayoutCompat_measureWithLargestChild = 6; + + // aapt resource value: 7 + public const int LinearLayoutCompat_showDividers = 7; + + public static int[] LinearLayoutCompat_Layout = new int[] { + 16842931, + 16842996, + 16842997, + 16843137}; + + // aapt resource value: 0 + public const int LinearLayoutCompat_Layout_android_layout_gravity = 0; + + // aapt resource value: 2 + public const int LinearLayoutCompat_Layout_android_layout_height = 2; + + // aapt resource value: 3 + public const int LinearLayoutCompat_Layout_android_layout_weight = 3; + + // aapt resource value: 1 + public const int LinearLayoutCompat_Layout_android_layout_width = 1; + + public static int[] ListPopupWindow = new int[] { + 16843436, + 16843437}; + + // aapt resource value: 0 + public const int ListPopupWindow_android_dropDownHorizontalOffset = 0; + + // aapt resource value: 1 + public const int ListPopupWindow_android_dropDownVerticalOffset = 1; + + public static int[] MenuGroup = new int[] { + 16842766, + 16842960, + 16843156, + 16843230, + 16843231, + 16843232}; + + // aapt resource value: 5 + public const int MenuGroup_android_checkableBehavior = 5; + + // aapt resource value: 0 + public const int MenuGroup_android_enabled = 0; + + // aapt resource value: 1 + public const int MenuGroup_android_id = 1; + + // aapt resource value: 3 + public const int MenuGroup_android_menuCategory = 3; + + // aapt resource value: 4 + public const int MenuGroup_android_orderInCategory = 4; + + // aapt resource value: 2 + public const int MenuGroup_android_visible = 2; + + public static int[] MenuItem = new int[] { + 16842754, + 16842766, + 16842960, + 16843014, + 16843156, + 16843230, + 16843231, + 16843233, + 16843234, + 16843235, + 16843236, + 16843237, + 16843375, + 2130772152, + 2130772153, + 2130772154, + 2130772155, + 2130772156, + 2130772157, + 2130772158, + 2130772159, + 2130772160, + 2130772161}; + + // aapt resource value: 16 + public const int MenuItem_actionLayout = 16; + + // aapt resource value: 18 + public const int MenuItem_actionProviderClass = 18; + + // aapt resource value: 17 + public const int MenuItem_actionViewClass = 17; + + // aapt resource value: 13 + public const int MenuItem_alphabeticModifiers = 13; + + // aapt resource value: 9 + public const int MenuItem_android_alphabeticShortcut = 9; + + // aapt resource value: 11 + public const int MenuItem_android_checkable = 11; + + // aapt resource value: 3 + public const int MenuItem_android_checked = 3; + + // aapt resource value: 1 + public const int MenuItem_android_enabled = 1; + + // aapt resource value: 0 + public const int MenuItem_android_icon = 0; + + // aapt resource value: 2 + public const int MenuItem_android_id = 2; + + // aapt resource value: 5 + public const int MenuItem_android_menuCategory = 5; + + // aapt resource value: 10 + public const int MenuItem_android_numericShortcut = 10; + + // aapt resource value: 12 + public const int MenuItem_android_onClick = 12; + + // aapt resource value: 6 + public const int MenuItem_android_orderInCategory = 6; + + // aapt resource value: 7 + public const int MenuItem_android_title = 7; + + // aapt resource value: 8 + public const int MenuItem_android_titleCondensed = 8; + + // aapt resource value: 4 + public const int MenuItem_android_visible = 4; + + // aapt resource value: 19 + public const int MenuItem_contentDescription = 19; + + // aapt resource value: 21 + public const int MenuItem_iconTint = 21; + + // aapt resource value: 22 + public const int MenuItem_iconTintMode = 22; + + // aapt resource value: 14 + public const int MenuItem_numericModifiers = 14; + + // aapt resource value: 15 + public const int MenuItem_showAsAction = 15; + + // aapt resource value: 20 + public const int MenuItem_tooltipText = 20; + + public static int[] MenuView = new int[] { + 16842926, + 16843052, + 16843053, + 16843054, + 16843055, + 16843056, + 16843057, + 2130772162, + 2130772163}; + + // aapt resource value: 4 + public const int MenuView_android_headerBackground = 4; + + // aapt resource value: 2 + public const int MenuView_android_horizontalDivider = 2; + + // aapt resource value: 5 + public const int MenuView_android_itemBackground = 5; + + // aapt resource value: 6 + public const int MenuView_android_itemIconDisabledAlpha = 6; + + // aapt resource value: 1 + public const int MenuView_android_itemTextAppearance = 1; + + // aapt resource value: 3 + public const int MenuView_android_verticalDivider = 3; + + // aapt resource value: 0 + public const int MenuView_android_windowAnimationStyle = 0; + + // aapt resource value: 7 + public const int MenuView_preserveIconSpacing = 7; + + // aapt resource value: 8 + public const int MenuView_subMenuArrow = 8; + + public static int[] PopupWindow = new int[] { + 16843126, + 16843465, + 2130772164}; + + // aapt resource value: 1 + public const int PopupWindow_android_popupAnimationStyle = 1; + + // aapt resource value: 0 + public const int PopupWindow_android_popupBackground = 0; + + // aapt resource value: 2 + public const int PopupWindow_overlapAnchor = 2; + + public static int[] PopupWindowBackgroundState = new int[] { + 2130772165}; + + // aapt resource value: 0 + public const int PopupWindowBackgroundState_state_above_anchor = 0; + + public static int[] RecycleListView = new int[] { + 2130772166, + 2130772167}; + + // aapt resource value: 0 + public const int RecycleListView_paddingBottomNoButtons = 0; + + // aapt resource value: 1 + public const int RecycleListView_paddingTopNoTitle = 1; + + public static int[] SearchView = new int[] { + 16842970, + 16843039, + 16843296, + 16843364, + 2130772168, + 2130772169, + 2130772170, + 2130772171, + 2130772172, + 2130772173, + 2130772174, + 2130772175, + 2130772176, + 2130772177, + 2130772178, + 2130772179, + 2130772180}; + + // aapt resource value: 0 + public const int SearchView_android_focusable = 0; + + // aapt resource value: 3 + public const int SearchView_android_imeOptions = 3; + + // aapt resource value: 2 + public const int SearchView_android_inputType = 2; + + // aapt resource value: 1 + public const int SearchView_android_maxWidth = 1; + + // aapt resource value: 8 + public const int SearchView_closeIcon = 8; + + // aapt resource value: 13 + public const int SearchView_commitIcon = 13; + + // aapt resource value: 7 + public const int SearchView_defaultQueryHint = 7; + + // aapt resource value: 9 + public const int SearchView_goIcon = 9; + + // aapt resource value: 5 + public const int SearchView_iconifiedByDefault = 5; + + // aapt resource value: 4 + public const int SearchView_layout = 4; + + // aapt resource value: 15 + public const int SearchView_queryBackground = 15; + + // aapt resource value: 6 + public const int SearchView_queryHint = 6; + + // aapt resource value: 11 + public const int SearchView_searchHintIcon = 11; + + // aapt resource value: 10 + public const int SearchView_searchIcon = 10; + + // aapt resource value: 16 + public const int SearchView_submitBackground = 16; + + // aapt resource value: 14 + public const int SearchView_suggestionRowLayout = 14; + + // aapt resource value: 12 + public const int SearchView_voiceIcon = 12; + + public static int[] Spinner = new int[] { + 16842930, + 16843126, + 16843131, + 16843362, + 2130771997}; + + // aapt resource value: 3 + public const int Spinner_android_dropDownWidth = 3; + + // aapt resource value: 0 + public const int Spinner_android_entries = 0; + + // aapt resource value: 1 + public const int Spinner_android_popupBackground = 1; + + // aapt resource value: 2 + public const int Spinner_android_prompt = 2; + + // aapt resource value: 4 + public const int Spinner_popupTheme = 4; + + public static int[] SwitchCompat = new int[] { + 16843044, + 16843045, + 16843074, + 2130772181, + 2130772182, + 2130772183, + 2130772184, + 2130772185, + 2130772186, + 2130772187, + 2130772188, + 2130772189, + 2130772190, + 2130772191}; + + // aapt resource value: 1 + public const int SwitchCompat_android_textOff = 1; + + // aapt resource value: 0 + public const int SwitchCompat_android_textOn = 0; + + // aapt resource value: 2 + public const int SwitchCompat_android_thumb = 2; + + // aapt resource value: 13 + public const int SwitchCompat_showText = 13; + + // aapt resource value: 12 + public const int SwitchCompat_splitTrack = 12; + + // aapt resource value: 10 + public const int SwitchCompat_switchMinWidth = 10; + + // aapt resource value: 11 + public const int SwitchCompat_switchPadding = 11; + + // aapt resource value: 9 + public const int SwitchCompat_switchTextAppearance = 9; + + // aapt resource value: 8 + public const int SwitchCompat_thumbTextPadding = 8; + + // aapt resource value: 3 + public const int SwitchCompat_thumbTint = 3; + + // aapt resource value: 4 + public const int SwitchCompat_thumbTintMode = 4; + + // aapt resource value: 5 + public const int SwitchCompat_track = 5; + + // aapt resource value: 6 + public const int SwitchCompat_trackTint = 6; + + // aapt resource value: 7 + public const int SwitchCompat_trackTintMode = 7; + + public static int[] TextAppearance = new int[] { + 16842901, + 16842902, + 16842903, + 16842904, + 16842906, + 16842907, + 16843105, + 16843106, + 16843107, + 16843108, + 16843692, + 2130772013, + 2130772019}; + + // aapt resource value: 10 + public const int TextAppearance_android_fontFamily = 10; + + // aapt resource value: 6 + public const int TextAppearance_android_shadowColor = 6; + + // aapt resource value: 7 + public const int TextAppearance_android_shadowDx = 7; + + // aapt resource value: 8 + public const int TextAppearance_android_shadowDy = 8; + + // aapt resource value: 9 + public const int TextAppearance_android_shadowRadius = 9; + + // aapt resource value: 3 + public const int TextAppearance_android_textColor = 3; + + // aapt resource value: 4 + public const int TextAppearance_android_textColorHint = 4; + + // aapt resource value: 5 + public const int TextAppearance_android_textColorLink = 5; + + // aapt resource value: 0 + public const int TextAppearance_android_textSize = 0; + + // aapt resource value: 2 + public const int TextAppearance_android_textStyle = 2; + + // aapt resource value: 1 + public const int TextAppearance_android_typeface = 1; + + // aapt resource value: 12 + public const int TextAppearance_fontFamily = 12; + + // aapt resource value: 11 + public const int TextAppearance_textAllCaps = 11; + + public static int[] Toolbar = new int[] { + 16842927, + 16843072, + 2130771971, + 2130771974, + 2130771978, + 2130771990, + 2130771991, + 2130771992, + 2130771993, + 2130771994, + 2130771995, + 2130771997, + 2130772192, + 2130772193, + 2130772194, + 2130772195, + 2130772196, + 2130772197, + 2130772198, + 2130772199, + 2130772200, + 2130772201, + 2130772202, + 2130772203, + 2130772204, + 2130772205, + 2130772206, + 2130772207, + 2130772208}; + + // aapt resource value: 0 + public const int Toolbar_android_gravity = 0; + + // aapt resource value: 1 + public const int Toolbar_android_minHeight = 1; + + // aapt resource value: 21 + public const int Toolbar_buttonGravity = 21; + + // aapt resource value: 23 + public const int Toolbar_collapseContentDescription = 23; + + // aapt resource value: 22 + public const int Toolbar_collapseIcon = 22; + + // aapt resource value: 6 + public const int Toolbar_contentInsetEnd = 6; + + // aapt resource value: 10 + public const int Toolbar_contentInsetEndWithActions = 10; + + // aapt resource value: 7 + public const int Toolbar_contentInsetLeft = 7; + + // aapt resource value: 8 + public const int Toolbar_contentInsetRight = 8; + + // aapt resource value: 5 + public const int Toolbar_contentInsetStart = 5; + + // aapt resource value: 9 + public const int Toolbar_contentInsetStartWithNavigation = 9; + + // aapt resource value: 4 + public const int Toolbar_logo = 4; + + // aapt resource value: 26 + public const int Toolbar_logoDescription = 26; + + // aapt resource value: 20 + public const int Toolbar_maxButtonHeight = 20; + + // aapt resource value: 25 + public const int Toolbar_navigationContentDescription = 25; + + // aapt resource value: 24 + public const int Toolbar_navigationIcon = 24; + + // aapt resource value: 11 + public const int Toolbar_popupTheme = 11; + + // aapt resource value: 3 + public const int Toolbar_subtitle = 3; + + // aapt resource value: 13 + public const int Toolbar_subtitleTextAppearance = 13; + + // aapt resource value: 28 + public const int Toolbar_subtitleTextColor = 28; + + // aapt resource value: 2 + public const int Toolbar_title = 2; + + // aapt resource value: 14 + public const int Toolbar_titleMargin = 14; + + // aapt resource value: 18 + public const int Toolbar_titleMarginBottom = 18; + + // aapt resource value: 16 + public const int Toolbar_titleMarginEnd = 16; + + // aapt resource value: 15 + public const int Toolbar_titleMarginStart = 15; + + // aapt resource value: 17 + public const int Toolbar_titleMarginTop = 17; + + // aapt resource value: 19 + public const int Toolbar_titleMargins = 19; + + // aapt resource value: 12 + public const int Toolbar_titleTextAppearance = 12; + + // aapt resource value: 27 + public const int Toolbar_titleTextColor = 27; + + public static int[] View = new int[] { + 16842752, + 16842970, + 2130772209, + 2130772210, + 2130772211}; + + // aapt resource value: 1 + public const int View_android_focusable = 1; + + // aapt resource value: 0 + public const int View_android_theme = 0; + + // aapt resource value: 3 + public const int View_paddingEnd = 3; + + // aapt resource value: 2 + public const int View_paddingStart = 2; + + // aapt resource value: 4 + public const int View_theme = 4; + + public static int[] ViewBackgroundHelper = new int[] { + 16842964, + 2130772212, + 2130772213}; + + // aapt resource value: 0 + public const int ViewBackgroundHelper_android_background = 0; + + // aapt resource value: 1 + public const int ViewBackgroundHelper_backgroundTint = 1; + + // aapt resource value: 2 + public const int ViewBackgroundHelper_backgroundTintMode = 2; + + public static int[] ViewStubCompat = new int[] { + 16842960, + 16842994, + 16842995}; + + // aapt resource value: 0 + public const int ViewStubCompat_android_id = 0; + + // aapt resource value: 2 + public const int ViewStubCompat_android_inflatedId = 2; + + // aapt resource value: 1 + public const int ViewStubCompat_android_layout = 1; + + static Styleable() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Styleable() + { + } + } + } +} +#pragma warning restore 1591 diff --git a/mellinoe.VeldridActivityExample/Resources/layout/Main.axml b/mellinoe.VeldridActivityExample/Resources/layout/Main.axml new file mode 100644 index 0000000..1c8d78f --- /dev/null +++ b/mellinoe.VeldridActivityExample/Resources/layout/Main.axml @@ -0,0 +1,11 @@ + + + + diff --git a/mellinoe.VeldridActivityExample/Resources/mipmap-hdpi/Icon.png b/mellinoe.VeldridActivityExample/Resources/mipmap-hdpi/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f4c804644c5e47daffed8e8573b5da99d0939bc0 GIT binary patch literal 2201 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 literal 0 HcmV?d00001 diff --git a/mellinoe.VeldridActivityExample/Resources/mipmap-xhdpi/Icon.png b/mellinoe.VeldridActivityExample/Resources/mipmap-xhdpi/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b7e2e57aa90f8687bdfa19d82ff6bda71535b8d5 GIT binary patch literal 3237 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 Xx9ez7Rf!D(00000NkvXXu0mjfmS|-l literal 0 HcmV?d00001 diff --git a/mellinoe.VeldridActivityExample/Resources/mipmap-xxhdpi/Icon.png b/mellinoe.VeldridActivityExample/Resources/mipmap-xxhdpi/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8d20a38d1782921964638e873ffc98d148ebda6a GIT binary patch literal 5414 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 c0$sN|hZ~f>0q(p1ua5js-$bwSo@3 + + Hello World, Click Me! + mellinoe.VeldridActivityExample + diff --git a/mellinoe.VeldridActivityExample/mellinoe.VeldridActivityExample.csproj b/mellinoe.VeldridActivityExample/mellinoe.VeldridActivityExample.csproj new file mode 100644 index 0000000..ab92853 --- /dev/null +++ b/mellinoe.VeldridActivityExample/mellinoe.VeldridActivityExample.csproj @@ -0,0 +1,168 @@ + + + + Debug + AnyCPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10} + {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + mellinoe.VeldridActivityExample + mellinoe.VeldridActivityExample + v9.0 + True + Resources\Resource.designer.cs + Resource + Properties\AndroidManifest.xml + Resources + Assets + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + None + + arm64-v8a;armeabi;armeabi-v7a;x86 + + + true + pdbonly + true + bin\Release + prompt + 4 + true + false + + + + + + + + + + + ..\packages\Veldrid.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.dll + + + ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.MetalBindings.dll + + + ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + + + ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll + + + ..\packages\Newtonsoft.Json.12.0.1\lib\netstandard2.0\Newtonsoft.Json.dll + + + ..\packages\SharpDX.4.2.0\lib\netstandard1.1\SharpDX.dll + + + ..\packages\SharpDX.D3DCompiler.4.2.0\lib\netstandard1.1\SharpDX.D3DCompiler.dll + + + ..\packages\SharpDX.DXGI.4.2.0\lib\netstandard1.1\SharpDX.DXGI.dll + + + ..\packages\SharpDX.Direct3D11.4.2.0\lib\netstandard1.1\SharpDX.Direct3D11.dll + + + ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\Microsoft.DotNet.PlatformAbstractions.2.1.0\lib\netstandard1.3\Microsoft.DotNet.PlatformAbstractions.dll + + + ..\packages\Microsoft.Extensions.DependencyModel.2.1.0\lib\netstandard1.6\Microsoft.Extensions.DependencyModel.dll + + + ..\packages\NativeLibraryLoader.1.0.12\lib\netstandard2.0\NativeLibraryLoader.dll + + + ..\packages\Xamarin.Android.Support.Annotations.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Annotations.dll + + + ..\packages\Xamarin.Android.Arch.Core.Common.1.0.0.1\lib\MonoAndroid80\Xamarin.Android.Arch.Core.Common.dll + + + ..\packages\Xamarin.Android.Arch.Lifecycle.Common.1.0.3.1\lib\MonoAndroid80\Xamarin.Android.Arch.Lifecycle.Common.dll + + + ..\packages\Xamarin.Android.Arch.Lifecycle.Runtime.1.0.3.1\lib\MonoAndroid80\Xamarin.Android.Arch.Lifecycle.Runtime.dll + + + ..\packages\Xamarin.Android.Support.Compat.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Compat.dll + + + ..\packages\Xamarin.Android.Support.Core.UI.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Core.UI.dll + + + ..\packages\Xamarin.Android.Support.Core.Utils.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Core.Utils.dll + + + ..\packages\Xamarin.Android.Support.Fragment.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Fragment.dll + + + ..\packages\Xamarin.Android.Support.Media.Compat.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Media.Compat.dll + + + ..\packages\Xamarin.Android.Support.Vector.Drawable.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Vector.Drawable.dll + + + ..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Animated.Vector.Drawable.dll + + + ..\packages\Xamarin.Android.Support.v7.AppCompat.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.v7.AppCompat.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mellinoe.VeldridActivityExample/packages.config b/mellinoe.VeldridActivityExample/packages.config new file mode 100644 index 0000000..2f0927e --- /dev/null +++ b/mellinoe.VeldridActivityExample/packages.config @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From c7fc6cdc0b69d9ab01cbd377b4942a0205c4e52f Mon Sep 17 00:00:00 2001 From: Peter Tribe Date: Wed, 5 Dec 2018 10:22:44 -0800 Subject: [PATCH 05/10] Update: android working for vulkan + ios metal --- .../VeldridNSViewExample.csproj | 18 +- VeldridNSViewExample/packages.config | 6 +- .../VeldridUIViewExample.csproj | 57 +++--- VeldridUIViewExample/packages.config | 46 ++--- VeldridViewExamples.sln | 2 +- mellinoe.VeldridActivityExample/AppGlobals.cs | 5 +- .../MainActivity.cs | 99 ++++------ .../Properties/AndroidManifest.xml | 10 +- .../Resources/Resource.designer.cs | 4 +- ...e.csproj => VeldridActivityExample.csproj} | 23 +-- .../VeldridSurfaceView.cs | 172 ++++++++++++++++++ .../packages.config | 6 +- 12 files changed, 297 insertions(+), 151 deletions(-) rename mellinoe.VeldridActivityExample/{mellinoe.VeldridActivityExample.csproj => VeldridActivityExample.csproj} (95%) create mode 100644 mellinoe.VeldridActivityExample/VeldridSurfaceView.cs diff --git a/VeldridNSViewExample/VeldridNSViewExample.csproj b/VeldridNSViewExample/VeldridNSViewExample.csproj index 92e76b7..0600e47 100644 --- a/VeldridNSViewExample/VeldridNSViewExample.csproj +++ b/VeldridNSViewExample/VeldridNSViewExample.csproj @@ -53,18 +53,9 @@ - - ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.OpenGLBindings.dll - ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll - - ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.MetalBindings.dll - - - ..\packages\Veldrid.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.dll - ..\packages\Newtonsoft.Json.12.0.1\lib\netstandard2.0\Newtonsoft.Json.dll @@ -95,6 +86,15 @@ ..\packages\NativeLibraryLoader.1.0.12\lib\netstandard2.0\NativeLibraryLoader.dll + + ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.MetalBindings.dll + + + ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + + + ..\packages\Veldrid.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.dll + diff --git a/VeldridNSViewExample/packages.config b/VeldridNSViewExample/packages.config index 05080e9..c629c8f 100644 --- a/VeldridNSViewExample/packages.config +++ b/VeldridNSViewExample/packages.config @@ -58,8 +58,8 @@ - - - + + + \ No newline at end of file diff --git a/VeldridUIViewExample/VeldridUIViewExample.csproj b/VeldridUIViewExample/VeldridUIViewExample.csproj index 41e1e7a..d08535a 100644 --- a/VeldridUIViewExample/VeldridUIViewExample.csproj +++ b/VeldridUIViewExample/VeldridUIViewExample.csproj @@ -91,49 +91,49 @@ - - ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + + + + ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.4.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\Newtonsoft.Json.12.0.1\lib\netstandard2.0\Newtonsoft.Json.dll - - ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.MetalBindings.dll + + ..\packages\SharpDX.4.2.0\lib\netstandard1.1\SharpDX.dll - - ..\packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll + + ..\packages\SharpDX.D3DCompiler.4.2.0\lib\netstandard1.1\SharpDX.D3DCompiler.dll + + + ..\packages\SharpDX.DXGI.4.2.0\lib\netstandard1.1\SharpDX.DXGI.dll + + + ..\packages\SharpDX.Direct3D11.4.2.0\lib\netstandard1.1\SharpDX.Direct3D11.dll - ..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\Microsoft.DotNet.PlatformAbstractions.2.0.3\lib\netstandard1.3\Microsoft.DotNet.PlatformAbstractions.dll + ..\packages\Microsoft.DotNet.PlatformAbstractions.2.1.0\lib\netstandard1.3\Microsoft.DotNet.PlatformAbstractions.dll - ..\packages\Microsoft.Extensions.DependencyModel.2.0.3\lib\netstandard1.6\Microsoft.Extensions.DependencyModel.dll + ..\packages\Microsoft.Extensions.DependencyModel.2.1.0\lib\netstandard1.6\Microsoft.Extensions.DependencyModel.dll - ..\packages\NativeLibraryLoader.1.0.10\lib\netstandard2.0\NativeLibraryLoader.dll - - - ..\packages\SharpDX.4.0.1\lib\netstandard1.1\SharpDX.dll - - - ..\packages\SharpDX.D3DCompiler.4.0.1\lib\netstandard1.1\SharpDX.D3DCompiler.dll + ..\packages\NativeLibraryLoader.1.0.12\lib\netstandard2.0\NativeLibraryLoader.dll - - ..\packages\SharpDX.DXGI.4.0.1\lib\netstandard1.1\SharpDX.DXGI.dll - - - ..\packages\SharpDX.Direct3D11.4.0.1\lib\netstandard1.1\SharpDX.Direct3D11.dll + + ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.MetalBindings.dll - - ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll + + ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.OpenGLBindings.dll - ..\packages\Veldrid.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.dll + ..\packages\Veldrid.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.dll @@ -162,4 +162,5 @@ + \ No newline at end of file diff --git a/VeldridUIViewExample/packages.config b/VeldridUIViewExample/packages.config index 44247a4..3cb5935 100644 --- a/VeldridUIViewExample/packages.config +++ b/VeldridUIViewExample/packages.config @@ -1,25 +1,25 @@  - - - + + + - - - - - - - + + + + + + + - + - + - + @@ -29,37 +29,37 @@ - + - + - + - + - + - + - + - - - + + + \ No newline at end of file diff --git a/VeldridViewExamples.sln b/VeldridViewExamples.sln index 90fad1e..01f18ac 100644 --- a/VeldridViewExamples.sln +++ b/VeldridViewExamples.sln @@ -5,7 +5,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VeldridNSViewExample", "Vel EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VeldridUIViewExample", "VeldridUIViewExample\VeldridUIViewExample.csproj", "{9D6F56E8-BA48-4C66-822A-2B0B840AB672}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mellinoe.VeldridActivityExample", "mellinoe.VeldridActivityExample\mellinoe.VeldridActivityExample.csproj", "{4180FD58-2015-4FAF-8210-0BC0C03A7C10}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VeldridActivityExample", "mellinoe.VeldridActivityExample\VeldridActivityExample.csproj", "{4180FD58-2015-4FAF-8210-0BC0C03A7C10}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/mellinoe.VeldridActivityExample/AppGlobals.cs b/mellinoe.VeldridActivityExample/AppGlobals.cs index 094ae12..4b6180e 100644 --- a/mellinoe.VeldridActivityExample/AppGlobals.cs +++ b/mellinoe.VeldridActivityExample/AppGlobals.cs @@ -11,7 +11,7 @@ public static class AppGlobals { public static GraphicsDevice Device { get; private set; } - public static void InitDevice() + public static void InitDevice(SwapchainDescription swapchainDescription) { GraphicsDeviceOptions options = new GraphicsDeviceOptions( debug: false, @@ -21,7 +21,8 @@ public static void InitDevice() preferDepthRangeZeroToOne: true, preferStandardClipSpaceYDirection: true); - Device = GraphicsDevice.CreateVulkan(options); + //Device = GraphicsDevice.CreateVulkan(options); + Device = GraphicsDevice.CreateOpenGLES(options, swapchainDescription); } internal static void DisposeDevice() diff --git a/mellinoe.VeldridActivityExample/MainActivity.cs b/mellinoe.VeldridActivityExample/MainActivity.cs index b3b3c11..c3b06e6 100644 --- a/mellinoe.VeldridActivityExample/MainActivity.cs +++ b/mellinoe.VeldridActivityExample/MainActivity.cs @@ -1,33 +1,19 @@ using Android.App; +using Android.Content.PM; using Android.OS; +using System.Diagnostics; using Veldrid; -using System; -using Android.Views; -using Android.Runtime; -using Java.Util; namespace mellinoe.VeldridActivityExample { - public class RenderTimer : TimerTask + [Activity(Label = "VeldridActivityExample", MainLauncher = true, Icon = "@mipmap/icon", ConfigurationChanges = ConfigChanges.KeyboardHidden | ConfigChanges.Orientation | ConfigChanges.ScreenSize)] + public class MainActivity : Activity { - private readonly Action _action; + private GraphicsDeviceOptions _options; + private VeldridSurfaceView _view; + private ResourceFactory _disposeFactory; + private Stopwatch _sw; - public RenderTimer(Action action) - { - _action = action; - } - - public override void Run() - { - _action?.Invoke(); - } - } - - [Activity(Label = "mellinoe.VeldridActivityExample", MainLauncher = true, Icon = "@mipmap/icon")] - public class MainActivity : Activity, View.IOnLayoutChangeListener - { - private GraphicsDevice _gd; - private Swapchain _sc; private CommandList _cl; private int _frameIndex = 0; private RgbaFloat[] _clearColors = @@ -40,74 +26,59 @@ public class MainActivity : Activity, View.IOnLayoutChangeListener new RgbaFloat(0.8f, 0.1f, 0.3f, 1f), new RgbaFloat(0.8f, 0.1f, 0.9f, 1f), }; - private bool _resized; - private (uint Width, uint Height) _size; - private readonly int _frameRepeatCount = 20; - public MainActivity() - { - } + private readonly int _frameRepeatCount = 20; protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); - AppGlobals.InitDevice(); - _frameIndex = new System.Random().Next(0, _clearColors.Length * _frameRepeatCount); - _gd = AppGlobals.Device; + _options = new GraphicsDeviceOptions(false, PixelFormat.R16_UNorm, false); + //GraphicsBackend backend = GraphicsDevice.IsBackendSupported(GraphicsBackend.Vulkan) ? GraphicsBackend.Vulkan : GraphicsBackend.OpenGLES; + GraphicsBackend backend = GraphicsBackend.OpenGLES; - // Set our view from the "main" layout resource - SetContentView(Resource.Layout.Main); - // Get our button from the layout resource, - // and attach an event to it - SurfaceView surfaceView = FindViewById(Resource.Id.surfaceView); - surfaceView.AddOnLayoutChangeListener(this); + _view = new VeldridSurfaceView(this, backend, _options); + _view.Rendering += OnViewRendering; + _view.DeviceCreated += OnViewCreatedDevice; + _sw = Stopwatch.StartNew(); - var ss = SwapchainSource.CreateAndroidSurface(surfaceView.Handle, JNIEnv.Handle); - SwapchainDescription scDesc = new SwapchainDescription( - ss, (uint)surfaceView.Width, (uint)surfaceView.Height, null, true, true); - _sc = AppGlobals.Device.ResourceFactory.CreateSwapchain(scDesc); - _cl = AppGlobals.Device.ResourceFactory.CreateCommandList(); + SetContentView(_view); + } - // To render at a steady rate, we create a timer which will invoke our Render function. - Timer timer = new Timer(); - timer.ScheduleAtFixedRate(new RenderTimer(Render), 0, 1000 / 30); + protected override void OnPause() + { + base.OnPause(); + _view.OnPause(); } - protected override void OnDestroy() + protected override void OnResume() { - base.OnDestroy(); - AppGlobals.DisposeDevice(); + base.OnResume(); + _view.OnResume(); } - private void Render() + private void OnViewCreatedDevice() { - // If we've detected a resize event, we handle it now. - if (_resized) - { - _resized = false; - _sc.Resize(_size.Width, _size.Height); - } + _disposeFactory = _view.GraphicsDevice.ResourceFactory; + _cl = _disposeFactory.CreateCommandList(); + _view.RunContinuousRenderLoop(); + } + private void OnViewRendering() + { // Each frame, we clear the Swapchain's color target. // Several different colors are cycled. _cl.Begin(); - _cl.SetFramebuffer(_sc.Framebuffer); + _cl.SetFramebuffer(_view.MainSwapchain.Framebuffer); _cl.ClearColorTarget(0, _clearColors[(_frameIndex / _frameRepeatCount)]); _cl.End(); - _gd.SubmitCommands(_cl); - _gd.SwapBuffers(_sc); + _view.GraphicsDevice.SubmitCommands(_cl); + _view.GraphicsDevice.SwapBuffers(_view.MainSwapchain); // Do some math to loop our color picker index. _frameIndex = (_frameIndex + 1) % (_clearColors.Length * _frameRepeatCount); } - - public void OnLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) - { - _resized = true; - _size = ((uint)v.Width, (uint)v.Height); - } } } diff --git a/mellinoe.VeldridActivityExample/Properties/AndroidManifest.xml b/mellinoe.VeldridActivityExample/Properties/AndroidManifest.xml index 9f93ad4..c29f759 100644 --- a/mellinoe.VeldridActivityExample/Properties/AndroidManifest.xml +++ b/mellinoe.VeldridActivityExample/Properties/AndroidManifest.xml @@ -1,6 +1,6 @@  - - - - - + + + + + \ No newline at end of file diff --git a/mellinoe.VeldridActivityExample/Resources/Resource.designer.cs b/mellinoe.VeldridActivityExample/Resources/Resource.designer.cs index 3c1e7b6..1e83ace 100644 --- a/mellinoe.VeldridActivityExample/Resources/Resource.designer.cs +++ b/mellinoe.VeldridActivityExample/Resources/Resource.designer.cs @@ -9,9 +9,9 @@ // //------------------------------------------------------------------------------ -[assembly: global::Android.Runtime.ResourceDesignerAttribute("mellinoe.VeldridActivityExample.Resource", IsApplication=true)] +[assembly: global::Android.Runtime.ResourceDesignerAttribute("VeldridActivityExample.Resource", IsApplication=true)] -namespace mellinoe.VeldridActivityExample +namespace VeldridActivityExample { diff --git a/mellinoe.VeldridActivityExample/mellinoe.VeldridActivityExample.csproj b/mellinoe.VeldridActivityExample/VeldridActivityExample.csproj similarity index 95% rename from mellinoe.VeldridActivityExample/mellinoe.VeldridActivityExample.csproj rename to mellinoe.VeldridActivityExample/VeldridActivityExample.csproj index ab92853..57539b3 100644 --- a/mellinoe.VeldridActivityExample/mellinoe.VeldridActivityExample.csproj +++ b/mellinoe.VeldridActivityExample/VeldridActivityExample.csproj @@ -6,8 +6,8 @@ {4180FD58-2015-4FAF-8210-0BC0C03A7C10} {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} Library - mellinoe.VeldridActivityExample - mellinoe.VeldridActivityExample + VeldridActivityExample + VeldridActivityExample v9.0 True Resources\Resource.designer.cs @@ -46,15 +46,6 @@ - - ..\packages\Veldrid.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.dll - - - ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.MetalBindings.dll - - - ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0111-g69f1bc0f54\lib\netstandard2.0\Veldrid.OpenGLBindings.dll - ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll @@ -124,12 +115,22 @@ ..\packages\Xamarin.Android.Support.v7.AppCompat.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.v7.AppCompat.dll + + ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.MetalBindings.dll + + + ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + + + ..\packages\Veldrid.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.dll + + diff --git a/mellinoe.VeldridActivityExample/VeldridSurfaceView.cs b/mellinoe.VeldridActivityExample/VeldridSurfaceView.cs new file mode 100644 index 0000000..19d53be --- /dev/null +++ b/mellinoe.VeldridActivityExample/VeldridSurfaceView.cs @@ -0,0 +1,172 @@ +using Android.Content; +using Android.Graphics; +using Android.Runtime; +using Android.Views; +using System; +using System.Diagnostics; +using System.Threading.Tasks; +using Veldrid; + +namespace mellinoe.VeldridActivityExample +{ + public class VeldridSurfaceView : SurfaceView, ISurfaceHolderCallback + { + private readonly GraphicsBackend _backend; + protected GraphicsDeviceOptions DeviceOptions { get; } + private bool _surfaceDestroyed; + private bool _paused; + private bool _enabled; + private bool _needsResize; + private bool _surfaceCreated; + + public GraphicsDevice GraphicsDevice { get; protected set; } + public Swapchain MainSwapchain { get; protected set; } + + public event Action Rendering; + public event Action DeviceCreated; + public event Action DeviceDisposed; + public event Action Resized; + + public VeldridSurfaceView(Context context, GraphicsBackend backend) + : this(context, backend, new GraphicsDeviceOptions()) + { + } + + public VeldridSurfaceView(Context context, GraphicsBackend backend, GraphicsDeviceOptions deviceOptions) : base(context) + { + if (!(backend == GraphicsBackend.Vulkan || backend == GraphicsBackend.OpenGLES)) + { + throw new NotSupportedException($"{backend} is not supported on Android."); + } + + _backend = backend; + DeviceOptions = deviceOptions; + Holder.AddCallback(this); + } + + public void Disable() + { + _enabled = false; + } + + public void SurfaceCreated(ISurfaceHolder holder) + { + bool deviceCreated = false; + if (_backend == GraphicsBackend.Vulkan) + { + if (GraphicsDevice == null) + { + GraphicsDevice = GraphicsDevice.CreateVulkan(DeviceOptions); + deviceCreated = true; + } + + Debug.Assert(MainSwapchain == null); + SwapchainSource ss = SwapchainSource.CreateAndroidSurface(holder.Surface.Handle, JNIEnv.Handle); + SwapchainDescription sd = new SwapchainDescription( + ss, + (uint)Width, + (uint)Height, + DeviceOptions.SwapchainDepthFormat, + DeviceOptions.SyncToVerticalBlank); + MainSwapchain = GraphicsDevice.ResourceFactory.CreateSwapchain(sd); + } + else + { + Debug.Assert(GraphicsDevice == null && MainSwapchain == null); + SwapchainSource ss = SwapchainSource.CreateAndroidSurface(holder.Surface.Handle, JNIEnv.Handle); + SwapchainDescription sd = new SwapchainDescription( + ss, + (uint)Width, + (uint)Height, + DeviceOptions.SwapchainDepthFormat, + DeviceOptions.SyncToVerticalBlank); + GraphicsDevice = GraphicsDevice.CreateOpenGLES(DeviceOptions, sd); + MainSwapchain = GraphicsDevice.MainSwapchain; + deviceCreated = true; + } + + if (deviceCreated) + { + DeviceCreated?.Invoke(); + } + + _surfaceCreated = true; + } + + public void RunContinuousRenderLoop() + { + Task.Factory.StartNew(RenderLoop, TaskCreationOptions.LongRunning); + } + + public void SurfaceDestroyed(ISurfaceHolder holder) + { + _surfaceDestroyed = true; + } + + public void SurfaceChanged(ISurfaceHolder holder, [GeneratedEnum] Format format, int width, int height) + { + _needsResize = true; + } + + private void RenderLoop() + { + _enabled = true; + while (_enabled) + { + try + { + if (_paused || !_surfaceCreated) { continue; } + + if (_surfaceDestroyed) + { + HandleSurfaceDestroyed(); + continue; + } + + if (_needsResize) + { + _needsResize = false; + MainSwapchain.Resize((uint)Width, (uint)Height); + Resized?.Invoke(); + } + + if (GraphicsDevice != null) + { + Rendering?.Invoke(); + } + } + catch (Exception e) + { + Debug.WriteLine("Encountered an error while rendering: " + e); + throw; + } + } + } + + private void HandleSurfaceDestroyed() + { + if (_backend == GraphicsBackend.Vulkan) + { + MainSwapchain.Dispose(); + MainSwapchain = null; + } + else + { + GraphicsDevice.Dispose(); + GraphicsDevice = null; + MainSwapchain = null; + DeviceDisposed?.Invoke(); + } + } + + public void OnPause() + { + _paused = true; + } + + public void OnResume() + { + _paused = false; + } + } +} diff --git a/mellinoe.VeldridActivityExample/packages.config b/mellinoe.VeldridActivityExample/packages.config index 2f0927e..eb28f2f 100644 --- a/mellinoe.VeldridActivityExample/packages.config +++ b/mellinoe.VeldridActivityExample/packages.config @@ -58,9 +58,9 @@ - - - + + + From d90b1f867bccfd871e86ed1d6deacba1ede6e4ca Mon Sep 17 00:00:00 2001 From: Peter Tribe Date: Sat, 8 Dec 2018 18:07:11 -0800 Subject: [PATCH 06/10] Update: example tidy --- .../AppGlobals.cs | 0 .../Assets/AboutAssets.txt | 0 .../MainActivity.cs | 0 .../Properties/AndroidManifest.xml | 0 .../Properties/AssemblyInfo.cs | 0 .../Resources/AboutResources.txt | 0 .../Resources/Resource.designer.cs | 0 .../Resources/layout/Main.axml | 0 .../Resources/mipmap-hdpi/Icon.png | Bin .../Resources/mipmap-mdpi/Icon.png | Bin .../Resources/mipmap-xhdpi/Icon.png | Bin .../Resources/mipmap-xxhdpi/Icon.png | Bin .../Resources/mipmap-xxxhdpi/Icon.png | Bin .../Resources/values/Strings.xml | 0 .../Veldrid.Android.csproj | 336 ++++++++--------- .../VeldridSurfaceView.cs | 0 .../packages.config | 0 Veldrid.Forms/App.config | 18 + Veldrid.Forms/AppGlobals.cs | 33 ++ Veldrid.Forms/MainForm.Designer.cs | 47 +++ Veldrid.Forms/MainForm.cs | 79 ++++ Veldrid.Forms/MainForm.resx | 120 +++++++ Veldrid.Forms/Program.cs | 22 ++ Veldrid.Forms/Properties/AssemblyInfo.cs | 36 ++ .../Properties/Resources.Designer.cs | 63 ++++ Veldrid.Forms/Properties/Resources.resx | 117 ++++++ Veldrid.Forms/Properties/Settings.Designer.cs | 26 ++ Veldrid.Forms/Properties/Settings.settings | 7 + Veldrid.Forms/Veldrid.Forms.csproj | 222 ++++++++++++ Veldrid.Forms/VeldridControl.cs | 293 +++++++++++++++ Veldrid.Forms/VeldridControl.resx | 120 +++++++ Veldrid.Forms/packages.config | 64 ++++ .../AppDelegate.cs | 0 .../AppGlobals.cs | 0 .../AppIcon.appiconset/AppIcon-128.png | Bin .../AppIcon.appiconset/AppIcon-128@2x.png | Bin .../AppIcon.appiconset/AppIcon-16.png | Bin .../AppIcon.appiconset/AppIcon-16@2x.png | Bin .../AppIcon.appiconset/AppIcon-256.png | Bin .../AppIcon.appiconset/AppIcon-256@2x.png | Bin .../AppIcon.appiconset/AppIcon-32.png | Bin .../AppIcon.appiconset/AppIcon-32@2x.png | Bin .../AppIcon.appiconset/AppIcon-512.png | Bin .../AppIcon.appiconset/AppIcon-512@2x.png | Bin .../AppIcon.appiconset/Contents.json | 0 .../Assets.xcassets/Contents.json | 0 .../Entitlements.plist | 0 .../Info.plist | 0 {VeldridNSViewExample => Veldrid.Mac}/Main.cs | 0 .../Main.storyboard | 0 .../Veldrid.Mac.csproj | 268 +++++++------- .../ViewController.cs | 0 .../ViewController.designer.cs | 0 .../packages.config | 0 Veldrid.WPF/App.config | 18 + Veldrid.WPF/App.xaml | 9 + Veldrid.WPF/App.xaml.cs | 17 + Veldrid.WPF/MainWindow.xaml | 13 + Veldrid.WPF/MainWindow.xaml.cs | 28 ++ Veldrid.WPF/Properties/AssemblyInfo.cs | 55 +++ Veldrid.WPF/Properties/Resources.Designer.cs | 63 ++++ Veldrid.WPF/Properties/Resources.resx | 117 ++++++ Veldrid.WPF/Properties/Settings.Designer.cs | 26 ++ Veldrid.WPF/Properties/Settings.settings | 7 + Veldrid.WPF/Veldrid.WPF.csproj | 229 ++++++++++++ Veldrid.WPF/VeldridComponent.cs | 116 ++++++ Veldrid.WPF/Win32HwndControl.cs | 284 +++++++++++++++ Veldrid.WPF/packages.config | 64 ++++ .../AppDelegate.cs | 0 .../AppGlobals.cs | 0 .../AppIcon.appiconset/Contents.json | 0 .../Assets.xcassets/Contents.json | 0 .../Entitlements.plist | 0 .../Info.plist | 0 .../LaunchScreen.storyboard | 0 {VeldridUIViewExample => Veldrid.iOS}/Main.cs | 0 .../Main.storyboard | 0 .../Veldrid.iOS.csproj | 340 +++++++++--------- .../ViewController.cs | 0 .../ViewController.designer.cs | 0 .../packages.config | 0 VeldridViewExamples.sln | 145 ++++++-- 82 files changed, 2910 insertions(+), 492 deletions(-) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/AppGlobals.cs (100%) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/Assets/AboutAssets.txt (100%) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/MainActivity.cs (100%) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/Properties/AndroidManifest.xml (100%) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/Properties/AssemblyInfo.cs (100%) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/Resources/AboutResources.txt (100%) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/Resources/Resource.designer.cs (100%) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/Resources/layout/Main.axml (100%) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/Resources/mipmap-hdpi/Icon.png (100%) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/Resources/mipmap-mdpi/Icon.png (100%) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/Resources/mipmap-xhdpi/Icon.png (100%) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/Resources/mipmap-xxhdpi/Icon.png (100%) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/Resources/mipmap-xxxhdpi/Icon.png (100%) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/Resources/values/Strings.xml (100%) rename mellinoe.VeldridActivityExample/VeldridActivityExample.csproj => Veldrid.Android/Veldrid.Android.csproj (98%) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/VeldridSurfaceView.cs (100%) rename {mellinoe.VeldridActivityExample => Veldrid.Android}/packages.config (100%) create mode 100644 Veldrid.Forms/App.config create mode 100644 Veldrid.Forms/AppGlobals.cs create mode 100644 Veldrid.Forms/MainForm.Designer.cs create mode 100644 Veldrid.Forms/MainForm.cs create mode 100644 Veldrid.Forms/MainForm.resx create mode 100644 Veldrid.Forms/Program.cs create mode 100644 Veldrid.Forms/Properties/AssemblyInfo.cs create mode 100644 Veldrid.Forms/Properties/Resources.Designer.cs create mode 100644 Veldrid.Forms/Properties/Resources.resx create mode 100644 Veldrid.Forms/Properties/Settings.Designer.cs create mode 100644 Veldrid.Forms/Properties/Settings.settings create mode 100644 Veldrid.Forms/Veldrid.Forms.csproj create mode 100644 Veldrid.Forms/VeldridControl.cs create mode 100644 Veldrid.Forms/VeldridControl.resx create mode 100644 Veldrid.Forms/packages.config rename {VeldridNSViewExample => Veldrid.Mac}/AppDelegate.cs (100%) rename {VeldridNSViewExample => Veldrid.Mac}/AppGlobals.cs (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Assets.xcassets/Contents.json (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Entitlements.plist (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Info.plist (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Main.cs (100%) rename {VeldridNSViewExample => Veldrid.Mac}/Main.storyboard (100%) rename VeldridNSViewExample/VeldridNSViewExample.csproj => Veldrid.Mac/Veldrid.Mac.csproj (98%) rename {VeldridNSViewExample => Veldrid.Mac}/ViewController.cs (100%) rename {VeldridNSViewExample => Veldrid.Mac}/ViewController.designer.cs (100%) rename {VeldridNSViewExample => Veldrid.Mac}/packages.config (100%) create mode 100644 Veldrid.WPF/App.config create mode 100644 Veldrid.WPF/App.xaml create mode 100644 Veldrid.WPF/App.xaml.cs create mode 100644 Veldrid.WPF/MainWindow.xaml create mode 100644 Veldrid.WPF/MainWindow.xaml.cs create mode 100644 Veldrid.WPF/Properties/AssemblyInfo.cs create mode 100644 Veldrid.WPF/Properties/Resources.Designer.cs create mode 100644 Veldrid.WPF/Properties/Resources.resx create mode 100644 Veldrid.WPF/Properties/Settings.Designer.cs create mode 100644 Veldrid.WPF/Properties/Settings.settings create mode 100644 Veldrid.WPF/Veldrid.WPF.csproj create mode 100644 Veldrid.WPF/VeldridComponent.cs create mode 100644 Veldrid.WPF/Win32HwndControl.cs create mode 100644 Veldrid.WPF/packages.config rename {VeldridUIViewExample => Veldrid.iOS}/AppDelegate.cs (100%) rename {VeldridUIViewExample => Veldrid.iOS}/AppGlobals.cs (100%) rename {VeldridUIViewExample => Veldrid.iOS}/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {VeldridUIViewExample => Veldrid.iOS}/Assets.xcassets/Contents.json (100%) rename {VeldridUIViewExample => Veldrid.iOS}/Entitlements.plist (100%) rename {VeldridUIViewExample => Veldrid.iOS}/Info.plist (100%) rename {VeldridUIViewExample => Veldrid.iOS}/LaunchScreen.storyboard (100%) rename {VeldridUIViewExample => Veldrid.iOS}/Main.cs (100%) rename {VeldridUIViewExample => Veldrid.iOS}/Main.storyboard (100%) rename VeldridUIViewExample/VeldridUIViewExample.csproj => Veldrid.iOS/Veldrid.iOS.csproj (94%) rename {VeldridUIViewExample => Veldrid.iOS}/ViewController.cs (100%) rename {VeldridUIViewExample => Veldrid.iOS}/ViewController.designer.cs (100%) rename {VeldridUIViewExample => Veldrid.iOS}/packages.config (100%) diff --git a/mellinoe.VeldridActivityExample/AppGlobals.cs b/Veldrid.Android/AppGlobals.cs similarity index 100% rename from mellinoe.VeldridActivityExample/AppGlobals.cs rename to Veldrid.Android/AppGlobals.cs diff --git a/mellinoe.VeldridActivityExample/Assets/AboutAssets.txt b/Veldrid.Android/Assets/AboutAssets.txt similarity index 100% rename from mellinoe.VeldridActivityExample/Assets/AboutAssets.txt rename to Veldrid.Android/Assets/AboutAssets.txt diff --git a/mellinoe.VeldridActivityExample/MainActivity.cs b/Veldrid.Android/MainActivity.cs similarity index 100% rename from mellinoe.VeldridActivityExample/MainActivity.cs rename to Veldrid.Android/MainActivity.cs diff --git a/mellinoe.VeldridActivityExample/Properties/AndroidManifest.xml b/Veldrid.Android/Properties/AndroidManifest.xml similarity index 100% rename from mellinoe.VeldridActivityExample/Properties/AndroidManifest.xml rename to Veldrid.Android/Properties/AndroidManifest.xml diff --git a/mellinoe.VeldridActivityExample/Properties/AssemblyInfo.cs b/Veldrid.Android/Properties/AssemblyInfo.cs similarity index 100% rename from mellinoe.VeldridActivityExample/Properties/AssemblyInfo.cs rename to Veldrid.Android/Properties/AssemblyInfo.cs diff --git a/mellinoe.VeldridActivityExample/Resources/AboutResources.txt b/Veldrid.Android/Resources/AboutResources.txt similarity index 100% rename from mellinoe.VeldridActivityExample/Resources/AboutResources.txt rename to Veldrid.Android/Resources/AboutResources.txt diff --git a/mellinoe.VeldridActivityExample/Resources/Resource.designer.cs b/Veldrid.Android/Resources/Resource.designer.cs similarity index 100% rename from mellinoe.VeldridActivityExample/Resources/Resource.designer.cs rename to Veldrid.Android/Resources/Resource.designer.cs diff --git a/mellinoe.VeldridActivityExample/Resources/layout/Main.axml b/Veldrid.Android/Resources/layout/Main.axml similarity index 100% rename from mellinoe.VeldridActivityExample/Resources/layout/Main.axml rename to Veldrid.Android/Resources/layout/Main.axml diff --git a/mellinoe.VeldridActivityExample/Resources/mipmap-hdpi/Icon.png b/Veldrid.Android/Resources/mipmap-hdpi/Icon.png similarity index 100% rename from mellinoe.VeldridActivityExample/Resources/mipmap-hdpi/Icon.png rename to Veldrid.Android/Resources/mipmap-hdpi/Icon.png diff --git a/mellinoe.VeldridActivityExample/Resources/mipmap-mdpi/Icon.png b/Veldrid.Android/Resources/mipmap-mdpi/Icon.png similarity index 100% rename from mellinoe.VeldridActivityExample/Resources/mipmap-mdpi/Icon.png rename to Veldrid.Android/Resources/mipmap-mdpi/Icon.png diff --git a/mellinoe.VeldridActivityExample/Resources/mipmap-xhdpi/Icon.png b/Veldrid.Android/Resources/mipmap-xhdpi/Icon.png similarity index 100% rename from mellinoe.VeldridActivityExample/Resources/mipmap-xhdpi/Icon.png rename to Veldrid.Android/Resources/mipmap-xhdpi/Icon.png diff --git a/mellinoe.VeldridActivityExample/Resources/mipmap-xxhdpi/Icon.png b/Veldrid.Android/Resources/mipmap-xxhdpi/Icon.png similarity index 100% rename from mellinoe.VeldridActivityExample/Resources/mipmap-xxhdpi/Icon.png rename to Veldrid.Android/Resources/mipmap-xxhdpi/Icon.png diff --git a/mellinoe.VeldridActivityExample/Resources/mipmap-xxxhdpi/Icon.png b/Veldrid.Android/Resources/mipmap-xxxhdpi/Icon.png similarity index 100% rename from mellinoe.VeldridActivityExample/Resources/mipmap-xxxhdpi/Icon.png rename to Veldrid.Android/Resources/mipmap-xxxhdpi/Icon.png diff --git a/mellinoe.VeldridActivityExample/Resources/values/Strings.xml b/Veldrid.Android/Resources/values/Strings.xml similarity index 100% rename from mellinoe.VeldridActivityExample/Resources/values/Strings.xml rename to Veldrid.Android/Resources/values/Strings.xml diff --git a/mellinoe.VeldridActivityExample/VeldridActivityExample.csproj b/Veldrid.Android/Veldrid.Android.csproj similarity index 98% rename from mellinoe.VeldridActivityExample/VeldridActivityExample.csproj rename to Veldrid.Android/Veldrid.Android.csproj index 57539b3..a9a5136 100644 --- a/mellinoe.VeldridActivityExample/VeldridActivityExample.csproj +++ b/Veldrid.Android/Veldrid.Android.csproj @@ -1,169 +1,169 @@ - - - - Debug - AnyCPU - {4180FD58-2015-4FAF-8210-0BC0C03A7C10} - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library - VeldridActivityExample - VeldridActivityExample - v9.0 - True - Resources\Resource.designer.cs - Resource - Properties\AndroidManifest.xml - Resources - Assets - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - None - - arm64-v8a;armeabi;armeabi-v7a;x86 - - - true - pdbonly - true - bin\Release - prompt - 4 - true - false - - - - - - - - - - - ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll - - - ..\packages\Newtonsoft.Json.12.0.1\lib\netstandard2.0\Newtonsoft.Json.dll - - - ..\packages\SharpDX.4.2.0\lib\netstandard1.1\SharpDX.dll - - - ..\packages\SharpDX.D3DCompiler.4.2.0\lib\netstandard1.1\SharpDX.D3DCompiler.dll - - - ..\packages\SharpDX.DXGI.4.2.0\lib\netstandard1.1\SharpDX.DXGI.dll - - - ..\packages\SharpDX.Direct3D11.4.2.0\lib\netstandard1.1\SharpDX.Direct3D11.dll - - - ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\Microsoft.DotNet.PlatformAbstractions.2.1.0\lib\netstandard1.3\Microsoft.DotNet.PlatformAbstractions.dll - - - ..\packages\Microsoft.Extensions.DependencyModel.2.1.0\lib\netstandard1.6\Microsoft.Extensions.DependencyModel.dll - - - ..\packages\NativeLibraryLoader.1.0.12\lib\netstandard2.0\NativeLibraryLoader.dll - - - ..\packages\Xamarin.Android.Support.Annotations.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Annotations.dll - - - ..\packages\Xamarin.Android.Arch.Core.Common.1.0.0.1\lib\MonoAndroid80\Xamarin.Android.Arch.Core.Common.dll - - - ..\packages\Xamarin.Android.Arch.Lifecycle.Common.1.0.3.1\lib\MonoAndroid80\Xamarin.Android.Arch.Lifecycle.Common.dll - - - ..\packages\Xamarin.Android.Arch.Lifecycle.Runtime.1.0.3.1\lib\MonoAndroid80\Xamarin.Android.Arch.Lifecycle.Runtime.dll - - - ..\packages\Xamarin.Android.Support.Compat.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Compat.dll - - - ..\packages\Xamarin.Android.Support.Core.UI.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Core.UI.dll - - - ..\packages\Xamarin.Android.Support.Core.Utils.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Core.Utils.dll - - - ..\packages\Xamarin.Android.Support.Fragment.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Fragment.dll - - - ..\packages\Xamarin.Android.Support.Media.Compat.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Media.Compat.dll - - - ..\packages\Xamarin.Android.Support.Vector.Drawable.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Vector.Drawable.dll - - - ..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Animated.Vector.Drawable.dll - - - ..\packages\Xamarin.Android.Support.v7.AppCompat.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.v7.AppCompat.dll - - - ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.MetalBindings.dll - - - ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.OpenGLBindings.dll - - - ..\packages\Veldrid.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Debug + AnyCPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10} + {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + VeldridActivityExample + VeldridActivityExample + v9.0 + True + Resources\Resource.designer.cs + Resource + Properties\AndroidManifest.xml + Resources + Assets + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + None + + arm64-v8a;armeabi;armeabi-v7a;x86 + + + true + pdbonly + true + bin\Release + prompt + 4 + true + false + + + + + + + + + + + ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll + + + ..\packages\Newtonsoft.Json.12.0.1\lib\netstandard2.0\Newtonsoft.Json.dll + + + ..\packages\SharpDX.4.2.0\lib\netstandard1.1\SharpDX.dll + + + ..\packages\SharpDX.D3DCompiler.4.2.0\lib\netstandard1.1\SharpDX.D3DCompiler.dll + + + ..\packages\SharpDX.DXGI.4.2.0\lib\netstandard1.1\SharpDX.DXGI.dll + + + ..\packages\SharpDX.Direct3D11.4.2.0\lib\netstandard1.1\SharpDX.Direct3D11.dll + + + ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\Microsoft.DotNet.PlatformAbstractions.2.1.0\lib\netstandard1.3\Microsoft.DotNet.PlatformAbstractions.dll + + + ..\packages\Microsoft.Extensions.DependencyModel.2.1.0\lib\netstandard1.6\Microsoft.Extensions.DependencyModel.dll + + + ..\packages\NativeLibraryLoader.1.0.12\lib\netstandard2.0\NativeLibraryLoader.dll + + + ..\packages\Xamarin.Android.Support.Annotations.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Annotations.dll + + + ..\packages\Xamarin.Android.Arch.Core.Common.1.0.0.1\lib\MonoAndroid80\Xamarin.Android.Arch.Core.Common.dll + + + ..\packages\Xamarin.Android.Arch.Lifecycle.Common.1.0.3.1\lib\MonoAndroid80\Xamarin.Android.Arch.Lifecycle.Common.dll + + + ..\packages\Xamarin.Android.Arch.Lifecycle.Runtime.1.0.3.1\lib\MonoAndroid80\Xamarin.Android.Arch.Lifecycle.Runtime.dll + + + ..\packages\Xamarin.Android.Support.Compat.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Compat.dll + + + ..\packages\Xamarin.Android.Support.Core.UI.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Core.UI.dll + + + ..\packages\Xamarin.Android.Support.Core.Utils.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Core.Utils.dll + + + ..\packages\Xamarin.Android.Support.Fragment.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Fragment.dll + + + ..\packages\Xamarin.Android.Support.Media.Compat.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Media.Compat.dll + + + ..\packages\Xamarin.Android.Support.Vector.Drawable.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Vector.Drawable.dll + + + ..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.Animated.Vector.Drawable.dll + + + ..\packages\Xamarin.Android.Support.v7.AppCompat.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.v7.AppCompat.dll + + + ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.MetalBindings.dll + + + ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + + + ..\packages\Veldrid.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mellinoe.VeldridActivityExample/VeldridSurfaceView.cs b/Veldrid.Android/VeldridSurfaceView.cs similarity index 100% rename from mellinoe.VeldridActivityExample/VeldridSurfaceView.cs rename to Veldrid.Android/VeldridSurfaceView.cs diff --git a/mellinoe.VeldridActivityExample/packages.config b/Veldrid.Android/packages.config similarity index 100% rename from mellinoe.VeldridActivityExample/packages.config rename to Veldrid.Android/packages.config diff --git a/Veldrid.Forms/App.config b/Veldrid.Forms/App.config new file mode 100644 index 0000000..af59f14 --- /dev/null +++ b/Veldrid.Forms/App.config @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Veldrid.Forms/AppGlobals.cs b/Veldrid.Forms/AppGlobals.cs new file mode 100644 index 0000000..40aa911 --- /dev/null +++ b/Veldrid.Forms/AppGlobals.cs @@ -0,0 +1,33 @@ +using System; +using Veldrid; + +namespace Veldrid.Forms +{ + // Using Veldrid, only a single GraphicsDevice needs to be created, + // even when rendering to many Swapchains in an application. + // A Veldrid GraphicsDevice is responsible for creating all useful graphics + // resources, including Swapchains. The GraphicsDevice in this class is used + // to create a Swapchain in ViewController.ViewDidLoad. + public static class AppGlobals + { + public static GraphicsDevice Device { get; private set; } + + public static void InitDevice(SwapchainDescription swapchainDescription) + { + GraphicsDeviceOptions options = new GraphicsDeviceOptions( + debug: false, + swapchainDepthFormat: null, + syncToVerticalBlank: false, + resourceBindingModel: ResourceBindingModel.Improved, + preferDepthRangeZeroToOne: true, + preferStandardClipSpaceYDirection: true); + + Device = GraphicsDevice.CreateOpenGLES(options, swapchainDescription); + } + + internal static void DisposeDevice() + { + Device.Dispose(); + } + } +} diff --git a/Veldrid.Forms/MainForm.Designer.cs b/Veldrid.Forms/MainForm.Designer.cs new file mode 100644 index 0000000..2ce94c9 --- /dev/null +++ b/Veldrid.Forms/MainForm.Designer.cs @@ -0,0 +1,47 @@ +namespace Veldrid.Forms +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.SuspendLayout(); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Name = "MainForm"; + this.Text = "Veldrid Windows Forms Example"; + this.ResumeLayout(false); + + } + + #endregion + } +} + diff --git a/Veldrid.Forms/MainForm.cs b/Veldrid.Forms/MainForm.cs new file mode 100644 index 0000000..65ae64a --- /dev/null +++ b/Veldrid.Forms/MainForm.cs @@ -0,0 +1,79 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; +using Veldrid; + +namespace Veldrid.Forms +{ + public partial class MainForm : Form + { + private VeldridControl _veldridControl; + private CommandList _cl; + + private int _frameIndex = 0; + private RgbaFloat[] _clearColors = + { + RgbaFloat.Red, + RgbaFloat.Orange, + RgbaFloat.Yellow, + RgbaFloat.Green, + RgbaFloat.Blue, + new RgbaFloat(0.8f, 0.1f, 0.3f, 1f), + new RgbaFloat(0.8f, 0.1f, 0.9f, 1f), + }; + private readonly int _frameRepeatCount = 20; + + public MainForm() + { + InitializeComponent(); + + GraphicsDeviceOptions options = new GraphicsDeviceOptions( + debug: false, + swapchainDepthFormat: null, + syncToVerticalBlank: false, + resourceBindingModel: ResourceBindingModel.Improved, + preferDepthRangeZeroToOne: true, + preferStandardClipSpaceYDirection: true); + + _veldridControl = new VeldridControl(GraphicsBackend.Direct3D11, options) + { + Width = 300, + Height = 300, + BackColor = Color.Red, + Location = new Point(8, 8) + }; + _veldridControl.Rendering += VeldridControlOnRendering; + Controls.Add(_veldridControl); + + _veldridControl.MouseDown += (sender, args) => + { + var a = 1; + }; + + _frameIndex = new Random().Next(0, _clearColors.Length * _frameRepeatCount); + _cl = _veldridControl.GraphicsDevice.ResourceFactory.CreateCommandList(); + _veldridControl.Start(); + } + + private void VeldridControlOnRendering() + { + _cl.Begin(); + _cl.SetFramebuffer(_veldridControl.MainSwapchain.Framebuffer); + _cl.ClearColorTarget(0, _clearColors[_frameIndex / _frameRepeatCount]); + _cl.ClearDepthStencil(1); + _cl.End(); + _veldridControl.GraphicsDevice.SubmitCommands(_cl); + _veldridControl.GraphicsDevice.SwapBuffers(_veldridControl.MainSwapchain); + + // Do some math to loop our color picker index. + _frameIndex = (_frameIndex + 1) % (_clearColors.Length * _frameRepeatCount); + } + + protected override void OnClosing(CancelEventArgs e) + { + base.OnClosing(e); + _veldridControl.Dispose(); + } + } +} diff --git a/Veldrid.Forms/MainForm.resx b/Veldrid.Forms/MainForm.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Veldrid.Forms/MainForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Veldrid.Forms/Program.cs b/Veldrid.Forms/Program.cs new file mode 100644 index 0000000..a93dd71 --- /dev/null +++ b/Veldrid.Forms/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Veldrid.Forms +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new MainForm()); + } + } +} diff --git a/Veldrid.Forms/Properties/AssemblyInfo.cs b/Veldrid.Forms/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c374e23 --- /dev/null +++ b/Veldrid.Forms/Properties/AssemblyInfo.cs @@ -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("VeldridFormsExample")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("VeldridFormsExample")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[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("643eb67c-20c9-4de5-95f8-b2acc4471c44")] + +// 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")] diff --git a/Veldrid.Forms/Properties/Resources.Designer.cs b/Veldrid.Forms/Properties/Resources.Designer.cs new file mode 100644 index 0000000..f1f06a2 --- /dev/null +++ b/Veldrid.Forms/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Veldrid.Forms.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Veldrid.Forms.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Veldrid.Forms/Properties/Resources.resx b/Veldrid.Forms/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Veldrid.Forms/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Veldrid.Forms/Properties/Settings.Designer.cs b/Veldrid.Forms/Properties/Settings.Designer.cs new file mode 100644 index 0000000..ca588af --- /dev/null +++ b/Veldrid.Forms/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Veldrid.Forms.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.8.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Veldrid.Forms/Properties/Settings.settings b/Veldrid.Forms/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Veldrid.Forms/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Veldrid.Forms/Veldrid.Forms.csproj b/Veldrid.Forms/Veldrid.Forms.csproj new file mode 100644 index 0000000..9c0af8b --- /dev/null +++ b/Veldrid.Forms/Veldrid.Forms.csproj @@ -0,0 +1,222 @@ + + + + + Debug + AnyCPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44} + WinExe + Veldrid.Forms + Veldrid.Forms + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\Microsoft.DotNet.PlatformAbstractions.2.0.3\lib\net45\Microsoft.DotNet.PlatformAbstractions.dll + + + ..\packages\Microsoft.Extensions.DependencyModel.2.0.3\lib\net451\Microsoft.Extensions.DependencyModel.dll + + + ..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll + + + ..\packages\NativeLibraryLoader.1.0.10\lib\netstandard2.0\NativeLibraryLoader.dll + + + ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll + + + ..\packages\SharpDX.4.0.1\lib\net45\SharpDX.dll + + + ..\packages\SharpDX.D3DCompiler.4.0.1\lib\net45\SharpDX.D3DCompiler.dll + + + ..\packages\SharpDX.Direct3D11.4.0.1\lib\net45\SharpDX.Direct3D11.dll + + + ..\packages\SharpDX.DXGI.4.0.1\lib\net45\SharpDX.DXGI.dll + + + + ..\packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll + True + True + + + ..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + + ..\packages\System.Console.4.3.0\lib\net46\System.Console.dll + True + True + + + + ..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll + True + True + + + ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll + True + True + + + + ..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll + True + True + + + ..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll + True + True + + + ..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll + True + True + + + ..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll + True + True + + + ..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll + True + True + + + + ..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.4.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + True + True + + + ..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net461\System.Security.Cryptography.Algorithms.dll + True + True + + + ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + True + True + + + ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + True + True + + + ..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + True + True + + + + + + + + + + + ..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll + True + True + + + ..\packages\Veldrid.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.dll + + + ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.MetalBindings.dll + + + ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + + + ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll + + + + + + Form + + + MainForm.cs + + + UserControl + + + + + MainForm.cs + + + VeldridControl.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + Designer + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file diff --git a/Veldrid.Forms/VeldridControl.cs b/Veldrid.Forms/VeldridControl.cs new file mode 100644 index 0000000..2c2e709 --- /dev/null +++ b/Veldrid.Forms/VeldridControl.cs @@ -0,0 +1,293 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.Linq; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using Veldrid; +using Veldrid.OpenGL; + +namespace Veldrid.Forms +{ + public class VeldridControl : UserControl + { + private readonly GraphicsBackend _backend; + protected GraphicsDeviceOptions DeviceOptions { get; } + protected IntPtr HWND { get; } + protected IntPtr HInstance { get; } + + private bool _paused; + private bool _enabled; + + public GraphicsDevice GraphicsDevice { get; protected set; } + + public Swapchain MainSwapchain { get; protected set; } + + public event Action Rendering; + public event Action Resized; + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + + const double dpiScale = 1; + uint width = (uint)(Width < 0 ? 0 : Math.Ceiling(Width * dpiScale)); + uint height = (uint)(Height < 0 ? 0 : Math.Ceiling(Height * dpiScale)); + + NativeMethods.MoveWindow(HWND, 0, 0, Width, Height, true); + MainSwapchain.Resize(width, height); + + Resized?.Invoke(); + } + + public VeldridControl(GraphicsBackend backend, GraphicsDeviceOptions deviceOptions) + { + if (!(backend == GraphicsBackend.Vulkan || backend == GraphicsBackend.OpenGL || backend == GraphicsBackend.Direct3D11)) + { + throw new NotSupportedException($"{backend} is not supported on windows."); + } + + if (backend == GraphicsBackend.OpenGL) + { + throw new NotSupportedException($"{backend} is not currently implemented in this demo."); + } + + _backend = backend; + DeviceOptions = deviceOptions; + + SetStyle(ControlStyles.Opaque, true); + SetStyle(ControlStyles.UserPaint, true); + SetStyle(ControlStyles.AllPaintingInWmPaint, true); + DoubleBuffered = false; + + NativeMethods.CreateWindow(Handle, MessageHandler, Width, Height, out var hwnd, out var hinstance); + + HWND = hwnd; + HInstance = hinstance; + + if (_backend == GraphicsBackend.Vulkan) + { + GraphicsDevice = GraphicsDevice.CreateVulkan(deviceOptions); + } + else + { + GraphicsDevice = GraphicsDevice.CreateD3D11(deviceOptions); + } + + const double dpiScale = 1; + uint width = (uint)(Width < 0 ? 0 : Math.Ceiling(Width * dpiScale)); + uint height = (uint)(Height < 0 ? 0 : Math.Ceiling(Height * dpiScale)); + + SwapchainSource swapchainSource = SwapchainSource.CreateWin32(HWND, HInstance); + SwapchainDescription swapchainDescription = new SwapchainDescription(swapchainSource, width, height, PixelFormat.R32_Float, true); + MainSwapchain = GraphicsDevice.ResourceFactory.CreateSwapchain(swapchainDescription); + + Disposed += OnDisposed; + } + + private void OnMouseDown(object sender, MouseEventArgs e) + { + base.OnMouseDown(e); + } + + public void Start() + { + Task.Factory.StartNew(RenderLoop, TaskCreationOptions.LongRunning); + } + + public void Stop() + { + _enabled = false; + } + + private void RenderLoop() + { + _enabled = true; + while (_enabled) + { + try + { + if (_paused) + { + continue; + } + if (GraphicsDevice != null) + { + Rendering?.Invoke(); + } + } + catch (Exception e) + { + Debug.WriteLine("Encountered an error while rendering: " + e); + throw; + } + } + } + + private void OnDisposed(object sender, EventArgs e) + { + Disposed -= OnDisposed; + Stop(); + NativeMethods.DestroyWindow(HWND); + } + + public void Pause() + { + _paused = true; + } + + public void Resume() + { + _paused = false; + } + + private bool _mouseInClient; + + private IntPtr MessageHandler(IntPtr hwnd, uint msg, IntPtr wParam, IntPtr lParam) + { + Point point = new Point(lParam.ToInt32()); + Point wheel = new Point(wParam.ToInt32()); + + switch (msg) + { + case NativeMethods.WM_LBUTTONDOWN: + base.OnMouseDown(new MouseEventArgs(MouseButtons.Left, 1, point.X, point.Y, 0)); + break; + case NativeMethods.WM_LBUTTONUP: + base.OnMouseUp(new MouseEventArgs(MouseButtons.Left, 1, point.X, point.Y, 0)); + break; + case NativeMethods.WM_RBUTTONDOWN: + base.OnMouseDown(new MouseEventArgs(MouseButtons.Right, 1, point.X, point.Y, 0)); + break; + case NativeMethods.WM_RBUTTONUP: + base.OnMouseUp(new MouseEventArgs(MouseButtons.Right, 1, point.X, point.Y, 0)); + break; + case NativeMethods.WM_MOUSEWHEEL: + base.OnMouseWheel(new MouseEventArgs(MouseButtons.Right, 1, point.X, point.Y, wheel.Y)); + break; + case NativeMethods.WM_MOUSEMOVE: + { + if (!_mouseInClient) + { + base.OnMouseEnter(new EventArgs()); + } + _mouseInClient = true; + base.OnMouseMove(new MouseEventArgs(MouseButtons.None, 1, point.X, point.Y, 0)); + break; + } + case NativeMethods.WM_MOUSELEAVE: + { + _mouseInClient = false; + base.OnMouseLeave(new EventArgs()); + break; + } + } + + return NativeMethods.DefWindowProc(hwnd, msg, wParam, lParam); + } + + internal class NativeMethods + { + + public static void CreateWindow(IntPtr hwndParent, WndProc handler, int width, int height, out IntPtr hwnd, out IntPtr hinstance) + { + const string WindowClass = "VeldridHwndWrapper"; + hinstance = GetModuleHandle(null); + var wndClass = new WndClassEx(); + wndClass.cbSize = (uint)Marshal.SizeOf(wndClass); + wndClass.hInstance = hinstance; + wndClass.lpfnWndProc = handler; + wndClass.lpszClassName = WindowClass; + wndClass.hCursor = LoadCursor(IntPtr.Zero, IDC_ARROW); + RegisterClassEx(ref wndClass); + hwnd = CreateWindowEx(0, WindowClass, "", WS_CHILD | WS_VISIBLE, 0, 0, width, height, hwndParent, IntPtr.Zero, IntPtr.Zero, 0); + } + + + + public const int WS_CHILD = 0x40000000; + public const int WS_VISIBLE = 0x10000000; + public const int WM_LBUTTONDOWN = 0x0201; + public const int WM_LBUTTONUP = 0x0202; + public const int WM_RBUTTONDOWN = 0x0204; + public const int WM_RBUTTONUP = 0x0205; + public const int WM_MOUSEWHEEL = 0x020A; + public const int WM_MOUSELEAVE = 0x02A3; + public const int WM_MOUSEMOVE = 0x0200; + + public const int IDC_ARROW = 32512; + public const int IDC_CROSS = 32515; + + + + //public enum Cursor + //{ + // AppStarting = 32650, + // Arrow = 32512, + // Cross = 32515, + // Hand = 32649, + // Help = 32651, + // IBeam = 32513, + // No = 32648, + // SizeAll = 32646, + // SizeSW = 32643, + // SizeNS = 32645, + // SizeWSE = 32642, + // SizeWE = 32644, + // UpArrow = 32516, + // Wait = 32514 + //} + + + + [StructLayout(LayoutKind.Sequential)] + public struct WndClassEx + { + public uint cbSize; + public uint style; + [MarshalAs(UnmanagedType.FunctionPtr)] + public WndProc lpfnWndProc; + public int cbClsExtra; + public int cbWndExtra; + public IntPtr hInstance; + public IntPtr hIcon; + public IntPtr hCursor; + public IntPtr hbrBackground; + public string lpszMenuName; + public string lpszClassName; + public IntPtr hIconSm; + } + + [DllImport("user32.dll")] + public static extern IntPtr DefWindowProc(IntPtr hWnd, uint uMsg, IntPtr wParam, IntPtr lParam); + public delegate IntPtr WndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam); + + [DllImport("user32.dll")] + public static extern IntPtr SetCursor(IntPtr handle); + + [DllImport("user32.dll")] + public static extern bool MoveWindow(IntPtr handle, int x, int y, int width, int height, bool redraw); + + [DllImport("user32.dll", EntryPoint = "CreateWindowEx", CharSet = CharSet.Auto)] + public static extern IntPtr CreateWindowEx(int exStyle, string className, string windowName, int style, int x, int y, int width, int height, IntPtr hwndParent, IntPtr hMenu, IntPtr hInstance, [MarshalAs(UnmanagedType.AsAny)] object pvParam); + + [DllImport("user32.dll", EntryPoint = "DestroyWindow", CharSet = CharSet.Auto)] + public static extern bool DestroyWindow(IntPtr hwnd); + + [DllImport("kernel32.dll")] + public static extern IntPtr GetModuleHandle(string module); + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.U2)] + public static extern short RegisterClassEx([In] ref WndClassEx lpwcx); + + [DllImport("user32.dll")] + public static extern IntPtr LoadCursor(IntPtr hInstance, int lpCursorName); + } + + } +} diff --git a/Veldrid.Forms/VeldridControl.resx b/Veldrid.Forms/VeldridControl.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Veldrid.Forms/VeldridControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Veldrid.Forms/packages.config b/Veldrid.Forms/packages.config new file mode 100644 index 0000000..21b9b25 --- /dev/null +++ b/Veldrid.Forms/packages.config @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VeldridNSViewExample/AppDelegate.cs b/Veldrid.Mac/AppDelegate.cs similarity index 100% rename from VeldridNSViewExample/AppDelegate.cs rename to Veldrid.Mac/AppDelegate.cs diff --git a/VeldridNSViewExample/AppGlobals.cs b/Veldrid.Mac/AppGlobals.cs similarity index 100% rename from VeldridNSViewExample/AppGlobals.cs rename to Veldrid.Mac/AppGlobals.cs diff --git a/VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png b/Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png similarity index 100% rename from VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png rename to Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png diff --git a/VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png b/Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png similarity index 100% rename from VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png rename to Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png diff --git a/VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png b/Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png similarity index 100% rename from VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png rename to Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png diff --git a/VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png b/Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png similarity index 100% rename from VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png rename to Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png diff --git a/VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png b/Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png similarity index 100% rename from VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png rename to Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png diff --git a/VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png b/Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png similarity index 100% rename from VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png rename to Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png diff --git a/VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png b/Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png similarity index 100% rename from VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png rename to Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png diff --git a/VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png b/Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png similarity index 100% rename from VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png rename to Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png diff --git a/VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png b/Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png similarity index 100% rename from VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png rename to Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png diff --git a/VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png b/Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png similarity index 100% rename from VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png rename to Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png diff --git a/VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/Contents.json b/Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from VeldridNSViewExample/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Veldrid.Mac/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/VeldridNSViewExample/Assets.xcassets/Contents.json b/Veldrid.Mac/Assets.xcassets/Contents.json similarity index 100% rename from VeldridNSViewExample/Assets.xcassets/Contents.json rename to Veldrid.Mac/Assets.xcassets/Contents.json diff --git a/VeldridNSViewExample/Entitlements.plist b/Veldrid.Mac/Entitlements.plist similarity index 100% rename from VeldridNSViewExample/Entitlements.plist rename to Veldrid.Mac/Entitlements.plist diff --git a/VeldridNSViewExample/Info.plist b/Veldrid.Mac/Info.plist similarity index 100% rename from VeldridNSViewExample/Info.plist rename to Veldrid.Mac/Info.plist diff --git a/VeldridNSViewExample/Main.cs b/Veldrid.Mac/Main.cs similarity index 100% rename from VeldridNSViewExample/Main.cs rename to Veldrid.Mac/Main.cs diff --git a/VeldridNSViewExample/Main.storyboard b/Veldrid.Mac/Main.storyboard similarity index 100% rename from VeldridNSViewExample/Main.storyboard rename to Veldrid.Mac/Main.storyboard diff --git a/VeldridNSViewExample/VeldridNSViewExample.csproj b/Veldrid.Mac/Veldrid.Mac.csproj similarity index 98% rename from VeldridNSViewExample/VeldridNSViewExample.csproj rename to Veldrid.Mac/Veldrid.Mac.csproj index 0600e47..60e4f4a 100644 --- a/VeldridNSViewExample/VeldridNSViewExample.csproj +++ b/Veldrid.Mac/Veldrid.Mac.csproj @@ -1,135 +1,135 @@ - - - - Debug - x86 - {A23FD9D1-BA74-4036-AD30-E245EC55E39A} - {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Exe - VeldridNSViewExample - VeldridNSViewExample - v2.0 - Xamarin.Mac - Resources - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - Mac Developer - false - false - false - true - true - x86 - None - 3rd Party Mac Developer Installer - - - pdbonly - true - bin\Release - prompt - 4 - false - true - false - true - true - true - SdkOnly - x86 - None - - - - - - - - - ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll - - - ..\packages\Newtonsoft.Json.12.0.1\lib\netstandard2.0\Newtonsoft.Json.dll - - - ..\packages\SharpDX.4.2.0\lib\netstandard1.1\SharpDX.dll - - - ..\packages\SharpDX.D3DCompiler.4.2.0\lib\netstandard1.1\SharpDX.D3DCompiler.dll - - - ..\packages\SharpDX.DXGI.4.2.0\lib\netstandard1.1\SharpDX.DXGI.dll - - - ..\packages\SharpDX.Direct3D11.4.2.0\lib\netstandard1.1\SharpDX.Direct3D11.dll - - - ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\Microsoft.DotNet.PlatformAbstractions.2.1.0\lib\netstandard1.3\Microsoft.DotNet.PlatformAbstractions.dll - - - ..\packages\Microsoft.Extensions.DependencyModel.2.1.0\lib\netstandard1.6\Microsoft.Extensions.DependencyModel.dll - - - ..\packages\NativeLibraryLoader.1.0.12\lib\netstandard2.0\NativeLibraryLoader.dll - - - ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.MetalBindings.dll - - - ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.OpenGLBindings.dll - - - ..\packages\Veldrid.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ViewController.cs - - - - - - - - + + + + Debug + x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A} + {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Exe + VeldridNSViewExample + VeldridNSViewExample + v2.0 + Xamarin.Mac + Resources + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + Mac Developer + false + false + false + true + true + x86 + None + 3rd Party Mac Developer Installer + + + pdbonly + true + bin\Release + prompt + 4 + false + true + false + true + true + true + SdkOnly + x86 + None + + + + + + + + + ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll + + + ..\packages\Newtonsoft.Json.12.0.1\lib\netstandard2.0\Newtonsoft.Json.dll + + + ..\packages\SharpDX.4.2.0\lib\netstandard1.1\SharpDX.dll + + + ..\packages\SharpDX.D3DCompiler.4.2.0\lib\netstandard1.1\SharpDX.D3DCompiler.dll + + + ..\packages\SharpDX.DXGI.4.2.0\lib\netstandard1.1\SharpDX.DXGI.dll + + + ..\packages\SharpDX.Direct3D11.4.2.0\lib\netstandard1.1\SharpDX.Direct3D11.dll + + + ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\Microsoft.DotNet.PlatformAbstractions.2.1.0\lib\netstandard1.3\Microsoft.DotNet.PlatformAbstractions.dll + + + ..\packages\Microsoft.Extensions.DependencyModel.2.1.0\lib\netstandard1.6\Microsoft.Extensions.DependencyModel.dll + + + ..\packages\NativeLibraryLoader.1.0.12\lib\netstandard2.0\NativeLibraryLoader.dll + + + ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.MetalBindings.dll + + + ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + + + ..\packages\Veldrid.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ViewController.cs + + + + + + + + \ No newline at end of file diff --git a/VeldridNSViewExample/ViewController.cs b/Veldrid.Mac/ViewController.cs similarity index 100% rename from VeldridNSViewExample/ViewController.cs rename to Veldrid.Mac/ViewController.cs diff --git a/VeldridNSViewExample/ViewController.designer.cs b/Veldrid.Mac/ViewController.designer.cs similarity index 100% rename from VeldridNSViewExample/ViewController.designer.cs rename to Veldrid.Mac/ViewController.designer.cs diff --git a/VeldridNSViewExample/packages.config b/Veldrid.Mac/packages.config similarity index 100% rename from VeldridNSViewExample/packages.config rename to Veldrid.Mac/packages.config diff --git a/Veldrid.WPF/App.config b/Veldrid.WPF/App.config new file mode 100644 index 0000000..af59f14 --- /dev/null +++ b/Veldrid.WPF/App.config @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Veldrid.WPF/App.xaml b/Veldrid.WPF/App.xaml new file mode 100644 index 0000000..8f46d5a --- /dev/null +++ b/Veldrid.WPF/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/Veldrid.WPF/App.xaml.cs b/Veldrid.WPF/App.xaml.cs new file mode 100644 index 0000000..909eaa5 --- /dev/null +++ b/Veldrid.WPF/App.xaml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace WpfApp1 +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/Veldrid.WPF/MainWindow.xaml b/Veldrid.WPF/MainWindow.xaml new file mode 100644 index 0000000..d10c0d9 --- /dev/null +++ b/Veldrid.WPF/MainWindow.xaml @@ -0,0 +1,13 @@ + + + + + diff --git a/Veldrid.WPF/MainWindow.xaml.cs b/Veldrid.WPF/MainWindow.xaml.cs new file mode 100644 index 0000000..be51a15 --- /dev/null +++ b/Veldrid.WPF/MainWindow.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Veldrid.WPF +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + } + } +} diff --git a/Veldrid.WPF/Properties/AssemblyInfo.cs b/Veldrid.WPF/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..74bf457 --- /dev/null +++ b/Veldrid.WPF/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// 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("WpfApp1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("WpfApp1")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[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)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// 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")] diff --git a/Veldrid.WPF/Properties/Resources.Designer.cs b/Veldrid.WPF/Properties/Resources.Designer.cs new file mode 100644 index 0000000..c74ccac --- /dev/null +++ b/Veldrid.WPF/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Veldrid.WPF.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Veldrid.WPF.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Veldrid.WPF/Properties/Resources.resx b/Veldrid.WPF/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Veldrid.WPF/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Veldrid.WPF/Properties/Settings.Designer.cs b/Veldrid.WPF/Properties/Settings.Designer.cs new file mode 100644 index 0000000..4824f1b --- /dev/null +++ b/Veldrid.WPF/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Veldrid.WPF.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.8.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Veldrid.WPF/Properties/Settings.settings b/Veldrid.WPF/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/Veldrid.WPF/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Veldrid.WPF/Veldrid.WPF.csproj b/Veldrid.WPF/Veldrid.WPF.csproj new file mode 100644 index 0000000..f88c659 --- /dev/null +++ b/Veldrid.WPF/Veldrid.WPF.csproj @@ -0,0 +1,229 @@ + + + + + Debug + AnyCPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5} + WinExe + Veldrid.WPF + Veldrid.WPF + v4.6.1 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\Microsoft.DotNet.PlatformAbstractions.2.0.3\lib\net45\Microsoft.DotNet.PlatformAbstractions.dll + + + ..\packages\Microsoft.Extensions.DependencyModel.2.0.3\lib\net451\Microsoft.Extensions.DependencyModel.dll + + + ..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll + + + ..\packages\NativeLibraryLoader.1.0.10\lib\netstandard2.0\NativeLibraryLoader.dll + + + ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll + + + ..\packages\SharpDX.4.0.1\lib\net45\SharpDX.dll + + + ..\packages\SharpDX.D3DCompiler.4.0.1\lib\net45\SharpDX.D3DCompiler.dll + + + ..\packages\SharpDX.Direct3D11.4.0.1\lib\net45\SharpDX.Direct3D11.dll + + + ..\packages\SharpDX.DXGI.4.0.1\lib\net45\SharpDX.DXGI.dll + + + + ..\packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll + True + True + + + ..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + + ..\packages\System.Console.4.3.0\lib\net46\System.Console.dll + True + True + + + + ..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll + True + True + + + ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll + True + True + + + + ..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll + True + True + + + ..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll + True + True + + + ..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll + True + True + + + ..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll + True + True + + + ..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll + True + True + + + + ..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.4.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + True + True + + + ..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net461\System.Security.Cryptography.Algorithms.dll + True + True + + + ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + True + True + + + ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + True + True + + + ..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + True + True + + + + + + + + 4.0 + + + ..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll + True + True + + + ..\packages\Veldrid.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.dll + + + ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.MetalBindings.dll + + + ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + + + ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/Veldrid.WPF/VeldridComponent.cs b/Veldrid.WPF/VeldridComponent.cs new file mode 100644 index 0000000..5079972 --- /dev/null +++ b/Veldrid.WPF/VeldridComponent.cs @@ -0,0 +1,116 @@ +using System; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Windows; +using System.Windows.Media; +using Veldrid; + +namespace Veldrid.WPF +{ + public class VeldridComponent : Win32HwndControl + { + private Swapchain _sc; + private CommandList _cl; + private GraphicsDevice _gd; + + private int _frameIndex = 0; + private RgbaFloat[] _clearColors = +{ + RgbaFloat.Red, + RgbaFloat.Orange, + RgbaFloat.Yellow, + RgbaFloat.Green, + RgbaFloat.Blue, + new RgbaFloat(0.8f, 0.1f, 0.3f, 1f), + new RgbaFloat(0.8f, 0.1f, 0.9f, 1f), + }; + private readonly int _frameRepeatCount = 20; + + public bool Rendering { get; private set; } + + protected override sealed void Initialize() + { + _frameIndex = new Random().Next(0, _clearColors.Length * _frameRepeatCount); + + _gd = GraphicsDevice.CreateD3D11(new GraphicsDeviceOptions()); + _cl = _gd.ResourceFactory.CreateCommandList(); + CreateSwapchain(); + + Rendering = true; + CompositionTarget.Rendering += OnCompositionTargetRendering; + } + + protected override sealed void Uninitialize() + { + Rendering = false; + CompositionTarget.Rendering -= OnCompositionTargetRendering; + + DestroySwapchain(); + } + + protected sealed override void Resized() + { + ResizeSwapchain(); + } + + private void OnCompositionTargetRendering(object sender, EventArgs eventArgs) + { + if (!Rendering) + return; + + Render(); + } + + private double GetDpiScale() + { + PresentationSource source = PresentationSource.FromVisual(this); + + return source.CompositionTarget.TransformToDevice.M11; + } + + protected virtual void CreateSwapchain() + { + double dpiScale = GetDpiScale(); + uint width = (uint)(ActualWidth < 0 ? 0 : Math.Ceiling(ActualWidth * dpiScale)); + uint height = (uint)(ActualHeight < 0 ? 0 : Math.Ceiling(ActualHeight * dpiScale)); + + Module mainModule = typeof(VeldridComponent).Module; + IntPtr hinstance = Marshal.GetHINSTANCE(mainModule); + SwapchainSource win32Source = SwapchainSource.CreateWin32(Hwnd, hinstance); + SwapchainDescription scDesc = new SwapchainDescription(win32Source, width, height, Veldrid.PixelFormat.R32_Float, true); + + _sc = _gd.ResourceFactory.CreateSwapchain(scDesc); + } + + protected virtual void DestroySwapchain() + { + _sc.Dispose(); + } + + private void ResizeSwapchain() + { + double dpiScale = GetDpiScale(); + uint width = (uint)(ActualWidth < 0 ? 0 : Math.Ceiling(ActualWidth * dpiScale)); + uint height = (uint)(ActualHeight < 0 ? 0 : Math.Ceiling(ActualHeight * dpiScale)); + _sc.Resize(width, height); + } + + protected virtual void Render() + { + _cl.Begin(); + _cl.SetFramebuffer(_sc.Framebuffer); + Random r = new Random(); + _cl.ClearColorTarget(0, _clearColors[(_frameIndex / _frameRepeatCount)]); + _cl.ClearDepthStencil(1); + + // Do your rendering here (or call a subclass, etc.) + + _cl.End(); + _gd.SubmitCommands(_cl); + _gd.SwapBuffers(_sc); + + // Do some math to loop our color picker index. + _frameIndex = (_frameIndex + 1) % (_clearColors.Length * _frameRepeatCount); + } + } +} diff --git a/Veldrid.WPF/Win32HwndControl.cs b/Veldrid.WPF/Win32HwndControl.cs new file mode 100644 index 0000000..0bf2b11 --- /dev/null +++ b/Veldrid.WPF/Win32HwndControl.cs @@ -0,0 +1,284 @@ +using System; +using System.Windows.Interop; +using System.Runtime.InteropServices; +using System.Windows; +using System.Windows.Input; + +namespace Veldrid.WPF +{ + /// + /// Creates internal Hwnd to host DirectXComponent within a control in the window. + /// + + public abstract class Win32HwndControl : HwndHost + { + + protected IntPtr Hwnd { get; private set; } + + protected bool HwndInitialized { get; private set; } + + private const string WindowClass = "HwndWrapper"; + + protected Win32HwndControl() + { + Loaded += OnLoaded; + Unloaded += OnUnloaded; + } + + private void OnLoaded(object sender, RoutedEventArgs routedEventArgs) + { + Initialize(); + HwndInitialized = true; + Loaded -= OnLoaded; + } + + private void OnUnloaded(object sender, RoutedEventArgs routedEventArgs) + { + Uninitialize(); + HwndInitialized = false; + Unloaded -= OnUnloaded; + Dispose(); + } + + protected abstract void Initialize(); + + protected abstract void Uninitialize(); + + protected abstract void Resized(); + + protected override HandleRef BuildWindowCore(HandleRef hwndParent) + { + var wndClass = new NativeMethods.WndClassEx(); + wndClass.cbSize = (uint)Marshal.SizeOf(wndClass); + wndClass.hInstance = NativeMethods.GetModuleHandle(null); + wndClass.lpfnWndProc = NativeMethods.DefaultWindowProc; + wndClass.lpszClassName = WindowClass; + wndClass.hCursor = NativeMethods.LoadCursor(IntPtr.Zero, NativeMethods.IDC_ARROW); + + NativeMethods.RegisterClassEx(ref wndClass); + + Hwnd = NativeMethods.CreateWindowEx( + 0, WindowClass, "", NativeMethods.WS_CHILD | NativeMethods.WS_VISIBLE, + 0, 0, (int)Width, (int)Height, hwndParent.Handle, IntPtr.Zero, IntPtr.Zero, 0); + + return new HandleRef(this, Hwnd); + } + + protected override void DestroyWindowCore(HandleRef hwnd) + { + NativeMethods.DestroyWindow(hwnd.Handle); + Hwnd = IntPtr.Zero; + } + + protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo) + { + UpdateWindowPos(); + + base.OnRenderSizeChanged(sizeInfo); + + if (HwndInitialized) + { + Resized(); + } + + } + + + + protected override IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) + { + + switch (msg) + + { + + case NativeMethods.WM_LBUTTONDOWN: + + RaiseMouseEvent(MouseButton.Left, Mouse.MouseDownEvent); + + break; + + + + case NativeMethods.WM_LBUTTONUP: + + RaiseMouseEvent(MouseButton.Left, Mouse.MouseUpEvent); + + break; + + + + case NativeMethods.WM_RBUTTONDOWN: + + RaiseMouseEvent(MouseButton.Right, Mouse.MouseDownEvent); + + break; + + + + case NativeMethods.WM_RBUTTONUP: + + RaiseMouseEvent(MouseButton.Right, Mouse.MouseUpEvent); + + break; + + } + + + + return base.WndProc(hwnd, msg, wParam, lParam, ref handled); + + } + + + + private void RaiseMouseEvent(MouseButton button, RoutedEvent @event) + + { + + RaiseEvent(new MouseButtonEventArgs(Mouse.PrimaryDevice, 0, button) + + { + + RoutedEvent = @event, + + Source = this, + + }); + + } + + } + + + + internal class NativeMethods + + { + + // ReSharper disable InconsistentNaming + + public const int WS_CHILD = 0x40000000; + + public const int WS_VISIBLE = 0x10000000; + + + + public const int WM_LBUTTONDOWN = 0x0201; + + public const int WM_LBUTTONUP = 0x0202; + + public const int WM_RBUTTONDOWN = 0x0204; + + public const int WM_RBUTTONUP = 0x0205; + + + + public const int IDC_ARROW = 32512; + + + + [StructLayout(LayoutKind.Sequential)] + + public struct WndClassEx + + { + + public uint cbSize; + + public uint style; + + [MarshalAs(UnmanagedType.FunctionPtr)] + + public WndProc lpfnWndProc; + + public int cbClsExtra; + + public int cbWndExtra; + + public IntPtr hInstance; + + public IntPtr hIcon; + + public IntPtr hCursor; + + public IntPtr hbrBackground; + + public string lpszMenuName; + + public string lpszClassName; + + public IntPtr hIconSm; + + } + + + + [DllImport("user32.dll")] + + public static extern IntPtr DefWindowProc(IntPtr hWnd, uint uMsg, IntPtr wParam, IntPtr lParam); + + + + public delegate IntPtr WndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam); + + + + public static readonly WndProc DefaultWindowProc = DefWindowProc; + + + [DllImport("user32.dll", EntryPoint = "CreateWindowEx", CharSet = CharSet.Auto)] + + public static extern IntPtr CreateWindowEx( + + int exStyle, + + string className, + + string windowName, + + int style, + + int x, int y, + + int width, int height, + + IntPtr hwndParent, + + IntPtr hMenu, + + IntPtr hInstance, + + [MarshalAs(UnmanagedType.AsAny)] object pvParam); + + + + [DllImport("user32.dll", EntryPoint = "DestroyWindow", CharSet = CharSet.Auto)] + + public static extern bool DestroyWindow(IntPtr hwnd); + + + + [DllImport("kernel32.dll")] + + public static extern IntPtr GetModuleHandle(string module); + + + + [DllImport("user32.dll")] + + [return: MarshalAs(UnmanagedType.U2)] + + public static extern short RegisterClassEx([In] ref WndClassEx lpwcx); + + + + [DllImport("user32.dll")] + + public static extern IntPtr LoadCursor(IntPtr hInstance, int lpCursorName); + + // ReSharper restore InconsistentNaming + + } + +} \ No newline at end of file diff --git a/Veldrid.WPF/packages.config b/Veldrid.WPF/packages.config new file mode 100644 index 0000000..21b9b25 --- /dev/null +++ b/Veldrid.WPF/packages.config @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VeldridUIViewExample/AppDelegate.cs b/Veldrid.iOS/AppDelegate.cs similarity index 100% rename from VeldridUIViewExample/AppDelegate.cs rename to Veldrid.iOS/AppDelegate.cs diff --git a/VeldridUIViewExample/AppGlobals.cs b/Veldrid.iOS/AppGlobals.cs similarity index 100% rename from VeldridUIViewExample/AppGlobals.cs rename to Veldrid.iOS/AppGlobals.cs diff --git a/VeldridUIViewExample/Assets.xcassets/AppIcon.appiconset/Contents.json b/Veldrid.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from VeldridUIViewExample/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Veldrid.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/VeldridUIViewExample/Assets.xcassets/Contents.json b/Veldrid.iOS/Assets.xcassets/Contents.json similarity index 100% rename from VeldridUIViewExample/Assets.xcassets/Contents.json rename to Veldrid.iOS/Assets.xcassets/Contents.json diff --git a/VeldridUIViewExample/Entitlements.plist b/Veldrid.iOS/Entitlements.plist similarity index 100% rename from VeldridUIViewExample/Entitlements.plist rename to Veldrid.iOS/Entitlements.plist diff --git a/VeldridUIViewExample/Info.plist b/Veldrid.iOS/Info.plist similarity index 100% rename from VeldridUIViewExample/Info.plist rename to Veldrid.iOS/Info.plist diff --git a/VeldridUIViewExample/LaunchScreen.storyboard b/Veldrid.iOS/LaunchScreen.storyboard similarity index 100% rename from VeldridUIViewExample/LaunchScreen.storyboard rename to Veldrid.iOS/LaunchScreen.storyboard diff --git a/VeldridUIViewExample/Main.cs b/Veldrid.iOS/Main.cs similarity index 100% rename from VeldridUIViewExample/Main.cs rename to Veldrid.iOS/Main.cs diff --git a/VeldridUIViewExample/Main.storyboard b/Veldrid.iOS/Main.storyboard similarity index 100% rename from VeldridUIViewExample/Main.storyboard rename to Veldrid.iOS/Main.storyboard diff --git a/VeldridUIViewExample/VeldridUIViewExample.csproj b/Veldrid.iOS/Veldrid.iOS.csproj similarity index 94% rename from VeldridUIViewExample/VeldridUIViewExample.csproj rename to Veldrid.iOS/Veldrid.iOS.csproj index d08535a..5df4c51 100644 --- a/VeldridUIViewExample/VeldridUIViewExample.csproj +++ b/Veldrid.iOS/Veldrid.iOS.csproj @@ -1,166 +1,176 @@ - - - - Debug - iPhoneSimulator - {9D6F56E8-BA48-4C66-822A-2B0B840AB672} - {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Exe - VeldridUIViewExample - VeldridUIViewExample - Resources - - - true - full - false - bin\iPhoneSimulator\Debug - DEBUG;ENABLE_TEST_CLOUD; - prompt - 4 - iPhone Developer - true - true - true - true - 34669 - None - x86_64 - NSUrlSessionHandler - x86 - false - - - - pdbonly - true - bin\iPhone\Release - - prompt - 4 - iPhone Developer - true - true - Entitlements.plist - SdkOnly - ARM64 - NSUrlSessionHandler - x86 - - - - pdbonly - true - bin\iPhoneSimulator\Release - - prompt - 4 - iPhone Developer - true - None - x86_64 - NSUrlSessionHandler - x86 - - - - true - full - false - bin\iPhone\Debug - DEBUG;ENABLE_TEST_CLOUD; - prompt - 4 - iPhone Developer - true - true - true - true - true - true - Entitlements.plist - 46381 - SdkOnly - ARM64 - NSUrlSessionHandler - x86 - - - - - - - - - - - ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll - - - ..\packages\Newtonsoft.Json.12.0.1\lib\netstandard2.0\Newtonsoft.Json.dll - - - ..\packages\SharpDX.4.2.0\lib\netstandard1.1\SharpDX.dll - - - ..\packages\SharpDX.D3DCompiler.4.2.0\lib\netstandard1.1\SharpDX.D3DCompiler.dll - - - ..\packages\SharpDX.DXGI.4.2.0\lib\netstandard1.1\SharpDX.DXGI.dll - - - ..\packages\SharpDX.Direct3D11.4.2.0\lib\netstandard1.1\SharpDX.Direct3D11.dll - - - ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\Microsoft.DotNet.PlatformAbstractions.2.1.0\lib\netstandard1.3\Microsoft.DotNet.PlatformAbstractions.dll - - - ..\packages\Microsoft.Extensions.DependencyModel.2.1.0\lib\netstandard1.6\Microsoft.Extensions.DependencyModel.dll - - - ..\packages\NativeLibraryLoader.1.0.12\lib\netstandard2.0\NativeLibraryLoader.dll - - - ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.MetalBindings.dll - - - ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.OpenGLBindings.dll - - - ..\packages\Veldrid.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.dll - - - - - - - - - - - - - - - - - - - - - - - - ViewController.cs - - - - - + + + + Debug + iPhoneSimulator + {9D6F56E8-BA48-4C66-822A-2B0B840AB672} + {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Exe + VeldridUIViewExample + VeldridUIViewExample + Resources + + + true + full + false + bin\iPhoneSimulator\Debug + DEBUG;ENABLE_TEST_CLOUD; + prompt + 4 + iPhone Developer + true + true + true + true + 34669 + None + x86_64 + NSUrlSessionHandler + x86 + false + + + + + pdbonly + true + bin\iPhone\Release + + + prompt + 4 + iPhone Developer + true + true + Entitlements.plist + SdkOnly + ARM64 + NSUrlSessionHandler + x86 + + + + + pdbonly + true + bin\iPhoneSimulator\Release + + + prompt + 4 + iPhone Developer + true + None + x86_64 + NSUrlSessionHandler + x86 + + + + + true + full + false + bin\iPhone\Debug + DEBUG;ENABLE_TEST_CLOUD; + prompt + 4 + iPhone Developer + true + true + true + true + true + true + Entitlements.plist + 46381 + SdkOnly + ARM64 + NSUrlSessionHandler + x86 + + + + + + + + + + + + ..\packages\Vk.1.0.21\lib\netstandard1.4\vk.dll + + + ..\packages\Newtonsoft.Json.12.0.1\lib\netstandard2.0\Newtonsoft.Json.dll + + + ..\packages\SharpDX.4.2.0\lib\netstandard1.1\SharpDX.dll + + + ..\packages\SharpDX.D3DCompiler.4.2.0\lib\netstandard1.1\SharpDX.D3DCompiler.dll + + + ..\packages\SharpDX.DXGI.4.2.0\lib\netstandard1.1\SharpDX.DXGI.dll + + + ..\packages\SharpDX.Direct3D11.4.2.0\lib\netstandard1.1\SharpDX.Direct3D11.dll + + + ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\Microsoft.DotNet.PlatformAbstractions.2.1.0\lib\netstandard1.3\Microsoft.DotNet.PlatformAbstractions.dll + + + ..\packages\Microsoft.Extensions.DependencyModel.2.1.0\lib\netstandard1.6\Microsoft.Extensions.DependencyModel.dll + + + ..\packages\NativeLibraryLoader.1.0.12\lib\netstandard2.0\NativeLibraryLoader.dll + + + ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.MetalBindings.dll + + + ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + + + ..\packages\Veldrid.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.dll + + + + + false + + + false + + + + + + + + + + + + + + + + + + + + ViewController.cs + + + + + \ No newline at end of file diff --git a/VeldridUIViewExample/ViewController.cs b/Veldrid.iOS/ViewController.cs similarity index 100% rename from VeldridUIViewExample/ViewController.cs rename to Veldrid.iOS/ViewController.cs diff --git a/VeldridUIViewExample/ViewController.designer.cs b/Veldrid.iOS/ViewController.designer.cs similarity index 100% rename from VeldridUIViewExample/ViewController.designer.cs rename to Veldrid.iOS/ViewController.designer.cs diff --git a/VeldridUIViewExample/packages.config b/Veldrid.iOS/packages.config similarity index 100% rename from VeldridUIViewExample/packages.config rename to Veldrid.iOS/packages.config diff --git a/VeldridViewExamples.sln b/VeldridViewExamples.sln index 01f18ac..2851083 100644 --- a/VeldridViewExamples.sln +++ b/VeldridViewExamples.sln @@ -1,57 +1,152 @@ - Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VeldridNSViewExample", "VeldridNSViewExample\VeldridNSViewExample.csproj", "{A23FD9D1-BA74-4036-AD30-E245EC55E39A}" +VisualStudioVersion = 15.0.28010.2016 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Veldrid.Mac", "Veldrid.Mac\Veldrid.Mac.csproj", "{A23FD9D1-BA74-4036-AD30-E245EC55E39A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VeldridUIViewExample", "VeldridUIViewExample\VeldridUIViewExample.csproj", "{9D6F56E8-BA48-4C66-822A-2B0B840AB672}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Veldrid.iOS", "Veldrid.iOS\Veldrid.iOS.csproj", "{9D6F56E8-BA48-4C66-822A-2B0B840AB672}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VeldridActivityExample", "mellinoe.VeldridActivityExample\VeldridActivityExample.csproj", "{4180FD58-2015-4FAF-8210-0BC0C03A7C10}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Veldrid.Android", "Veldrid.Android\Veldrid.Android.csproj", "{4180FD58-2015-4FAF-8210-0BC0C03A7C10}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Veldrid.Forms", "Veldrid.Forms\Veldrid.Forms.csproj", "{643EB67C-20C9-4DE5-95F8-B2ACC4471C44}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Veldrid.WPF", "Veldrid.WPF\Veldrid.WPF.csproj", "{7C522CB8-2BC2-4512-A491-37E61A8D3EB5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x86 = Debug|x86 - Release|x86 = Release|x86 + Debug|Any CPU = Debug|Any CPU + Debug|ARM = Debug|ARM + Debug|iPhone = Debug|iPhone Debug|iPhoneSimulator = Debug|iPhoneSimulator + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM Release|iPhone = Release|iPhone Release|iPhoneSimulator = Release|iPhoneSimulator - Debug|iPhone = Debug|iPhone + Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|x86.ActiveCfg = Debug|x86 - {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|x86.Build.0 = Debug|x86 - {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|x86.ActiveCfg = Release|x86 - {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|x86.Build.0 = Release|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|Any CPU.ActiveCfg = Debug|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|ARM.ActiveCfg = Debug|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|iPhone.ActiveCfg = Debug|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|iPhone.Build.0 = Debug|x86 {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|iPhoneSimulator.Build.0 = Debug|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|x64.ActiveCfg = Debug|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|x86.ActiveCfg = Debug|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|x86.Build.0 = Debug|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|Any CPU.ActiveCfg = Release|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|ARM.ActiveCfg = Release|x86 {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|iPhone.ActiveCfg = Release|x86 {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|iPhone.Build.0 = Release|x86 {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|iPhoneSimulator.ActiveCfg = Release|x86 {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|iPhoneSimulator.Build.0 = Release|x86 - {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|iPhone.ActiveCfg = Debug|x86 - {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Debug|iPhone.Build.0 = Debug|x86 - {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator - {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|x86.Build.0 = Debug|iPhoneSimulator - {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|x86.ActiveCfg = Release|iPhone - {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|x86.Build.0 = Release|iPhone + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|x64.ActiveCfg = Release|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|x86.ActiveCfg = Release|x86 + {A23FD9D1-BA74-4036-AD30-E245EC55E39A}.Release|x86.Build.0 = Release|x86 + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|ARM.ActiveCfg = Debug|iPhone + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|iPhone.ActiveCfg = Debug|iPhone + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|iPhone.Build.0 = Debug|iPhone {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|x64.ActiveCfg = Debug|iPhone + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|x86.Build.0 = Debug|iPhoneSimulator + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|ARM.ActiveCfg = Release|iPhone {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|iPhone.ActiveCfg = Release|iPhone {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|iPhone.Build.0 = Release|iPhone {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator - {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|iPhone.ActiveCfg = Debug|iPhone - {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Debug|iPhone.Build.0 = Debug|iPhone - {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|x86.ActiveCfg = Debug|Any CPU - {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|x86.Build.0 = Debug|Any CPU - {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|x86.ActiveCfg = Release|Any CPU - {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|x86.Build.0 = Release|Any CPU + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|x64.ActiveCfg = Release|iPhone + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|x86.ActiveCfg = Release|iPhone + {9D6F56E8-BA48-4C66-822A-2B0B840AB672}.Release|x86.Build.0 = Release|iPhone + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|ARM.ActiveCfg = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|ARM.Build.0 = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|ARM.Deploy.0 = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|iPhone.Build.0 = Debug|Any CPU {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|x64.ActiveCfg = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|x64.Build.0 = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|x64.Deploy.0 = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|x86.ActiveCfg = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|x86.Build.0 = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|Any CPU.Build.0 = Release|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|Any CPU.Deploy.0 = Release|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|ARM.ActiveCfg = Release|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|ARM.Build.0 = Release|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|ARM.Deploy.0 = Release|Any CPU {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|iPhone.ActiveCfg = Release|Any CPU {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|iPhone.Build.0 = Release|Any CPU {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Debug|iPhone.Build.0 = Debug|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|x64.ActiveCfg = Release|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|x64.Build.0 = Release|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|x64.Deploy.0 = Release|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|x86.ActiveCfg = Release|Any CPU + {4180FD58-2015-4FAF-8210-0BC0C03A7C10}.Release|x86.Build.0 = Release|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Debug|Any CPU.Build.0 = Debug|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Debug|ARM.ActiveCfg = Debug|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Debug|ARM.Build.0 = Debug|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Debug|iPhone.Build.0 = Debug|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Debug|x64.ActiveCfg = Debug|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Debug|x64.Build.0 = Debug|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Debug|x86.ActiveCfg = Debug|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Debug|x86.Build.0 = Debug|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Release|Any CPU.ActiveCfg = Release|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Release|Any CPU.Build.0 = Release|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Release|ARM.ActiveCfg = Release|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Release|ARM.Build.0 = Release|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Release|iPhone.ActiveCfg = Release|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Release|iPhone.Build.0 = Release|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Release|x64.ActiveCfg = Release|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Release|x64.Build.0 = Release|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Release|x86.ActiveCfg = Release|Any CPU + {643EB67C-20C9-4DE5-95F8-B2ACC4471C44}.Release|x86.Build.0 = Release|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Debug|ARM.ActiveCfg = Debug|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Debug|ARM.Build.0 = Debug|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Debug|iPhone.Build.0 = Debug|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Debug|x64.ActiveCfg = Debug|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Debug|x64.Build.0 = Debug|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Debug|x86.ActiveCfg = Debug|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Debug|x86.Build.0 = Debug|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Release|Any CPU.Build.0 = Release|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Release|ARM.ActiveCfg = Release|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Release|ARM.Build.0 = Release|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Release|iPhone.ActiveCfg = Release|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Release|iPhone.Build.0 = Release|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Release|x64.ActiveCfg = Release|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Release|x64.Build.0 = Release|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Release|x86.ActiveCfg = Release|Any CPU + {7C522CB8-2BC2-4512-A491-37E61A8D3EB5}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BCF54AEC-6363-4A85-A71A-A71E4678E0A6} EndGlobalSection EndGlobal From 1ed0309a1693d457dc00709cf6e96d3f886be9b4 Mon Sep 17 00:00:00 2001 From: Peter Tribe Date: Wed, 12 Dec 2018 00:22:23 -0800 Subject: [PATCH 07/10] Update: mac example --- .../Properties/AndroidManifest.xml | 2 +- Veldrid.Mac/AppGlobals.cs | 32 ----- Veldrid.Mac/Main.cs | 2 - Veldrid.Mac/Veldrid.Mac.csproj | 11 +- Veldrid.Mac/VeldridView.cs | 123 ++++++++++++++++++ Veldrid.Mac/ViewController.cs | 83 +++++------- Veldrid.Mac/ViewController.designer.cs | 18 --- Veldrid.Mac/packages.config | 6 +- 8 files changed, 164 insertions(+), 113 deletions(-) delete mode 100644 Veldrid.Mac/AppGlobals.cs create mode 100644 Veldrid.Mac/VeldridView.cs delete mode 100644 Veldrid.Mac/ViewController.designer.cs diff --git a/Veldrid.Android/Properties/AndroidManifest.xml b/Veldrid.Android/Properties/AndroidManifest.xml index c29f759..befd4b9 100644 --- a/Veldrid.Android/Properties/AndroidManifest.xml +++ b/Veldrid.Android/Properties/AndroidManifest.xml @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/Veldrid.Mac/AppGlobals.cs b/Veldrid.Mac/AppGlobals.cs deleted file mode 100644 index b143da9..0000000 --- a/Veldrid.Mac/AppGlobals.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Veldrid; - -namespace VeldridNSViewExample -{ - // Using Veldrid, only a single GraphicsDevice needs to be created, - // even when rendering to many Swapchains in an application. - // A Veldrid GraphicsDevice is responsible for creating all useful graphics - // resources, including Swapchains. The GraphicsDevice in this class is used - // to create a Swapchain in ViewController.ViewDidLoad. - public static class AppGlobals - { - public static GraphicsDevice Device { get; private set; } - - public static void InitDevice() - { - GraphicsDeviceOptions options = new GraphicsDeviceOptions( - debug: false, - swapchainDepthFormat: null, - syncToVerticalBlank: false, - resourceBindingModel: ResourceBindingModel.Improved, - preferDepthRangeZeroToOne: true, - preferStandardClipSpaceYDirection: true); - - Device = GraphicsDevice.CreateMetal(options); - } - - internal static void DisposeDevice() - { - Device.Dispose(); - } - } -} diff --git a/Veldrid.Mac/Main.cs b/Veldrid.Mac/Main.cs index 064ff8d..d79f271 100644 --- a/Veldrid.Mac/Main.cs +++ b/Veldrid.Mac/Main.cs @@ -7,9 +7,7 @@ static class MainClass static void Main(string[] args) { NSApplication.Init(); - AppGlobals.InitDevice(); NSApplication.Main(args); - AppGlobals.DisposeDevice(); } } } diff --git a/Veldrid.Mac/Veldrid.Mac.csproj b/Veldrid.Mac/Veldrid.Mac.csproj index 60e4f4a..5562b84 100644 --- a/Veldrid.Mac/Veldrid.Mac.csproj +++ b/Veldrid.Mac/Veldrid.Mac.csproj @@ -87,13 +87,13 @@ ..\packages\NativeLibraryLoader.1.0.12\lib\netstandard2.0\NativeLibraryLoader.dll - ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.MetalBindings.dll + ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0115-gc6e10f9598\lib\netstandard2.0\Veldrid.MetalBindings.dll - ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0115-gc6e10f9598\lib\netstandard2.0\Veldrid.OpenGLBindings.dll - ..\packages\Veldrid.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.dll + ..\packages\Veldrid.4.5.0-beta1-0115-gc6e10f9598\lib\netstandard2.0\Veldrid.dll @@ -122,10 +122,7 @@ - - ViewController.cs - - + diff --git a/Veldrid.Mac/VeldridView.cs b/Veldrid.Mac/VeldridView.cs new file mode 100644 index 0000000..5f35076 --- /dev/null +++ b/Veldrid.Mac/VeldridView.cs @@ -0,0 +1,123 @@ +using System; +using System.Diagnostics; +using AppKit; +using CoreVideo; +using Veldrid; + +namespace VeldridNSViewExample +{ + public class VeldridView : NSView + { + private readonly GraphicsBackend _backend; + private readonly GraphicsDeviceOptions _deviceOptions; + + private CVDisplayLink _displayLink; + private bool _paused; + private bool _resized; + private uint _width; + private uint _height; + private bool _disposed; + + public GraphicsDevice GraphicsDevice { get; protected set; } + public Swapchain MainSwapchain { get; protected set; } + + public event Action DeviceReady; + public event Action Rendering; + public event Action Resized; + + public VeldridView(GraphicsBackend backend, GraphicsDeviceOptions deviceOptions) + { + if (!(backend == GraphicsBackend.Metal || backend == GraphicsBackend.OpenGL)) + { + throw new NotSupportedException($"{backend} is not supported on windows."); + } + + _backend = backend; + _deviceOptions = deviceOptions; + } + + protected override void Dispose(bool disposing) + { + if (_disposed) + { + return; + } + if (disposing) + { + _displayLink.Stop(); + GraphicsDevice.Dispose(); + } + _disposed = true; + base.Dispose(disposing); + } + + public override void ViewDidMoveToWindow() + { + base.ViewDidMoveToWindow(); + + var swapchainSource = SwapchainSource.CreateNSView(Handle); + var swapchainDescription = new SwapchainDescription(swapchainSource, (uint)Frame.Width, (uint)Frame.Height, null, true, true); + + if (_backend == GraphicsBackend.Metal) + { + GraphicsDevice = GraphicsDevice.CreateMetal(_deviceOptions); + } + + MainSwapchain = GraphicsDevice.ResourceFactory.CreateSwapchain(swapchainDescription); + + DeviceReady?.Invoke(); + + _displayLink = new CVDisplayLink(); + _displayLink.SetOutputCallback(HandleDisplayLinkOutputCallback); + _displayLink.Start(); + } + + public override void Layout() + { + base.Layout(); + + _resized = true; + + const double dpiScale = 1; + _width = (uint)(Frame.Width < 0 ? 0 : Math.Ceiling(Frame.Width * dpiScale)); + _height = (uint)(Frame.Height < 0 ? 0 : Math.Ceiling(Frame.Height * dpiScale)); + } + + private CVReturn HandleDisplayLinkOutputCallback(CVDisplayLink displayLink, ref CVTimeStamp inNow, ref CVTimeStamp inOutputTime, CVOptionFlags flagsIn, ref CVOptionFlags flagsOut) + { + try + { + if (_paused) + { + return CVReturn.Success; + } + if (GraphicsDevice != null) + { + if (_resized) + { + _resized = false; + MainSwapchain.Resize(_width, _height); + Resized?.Invoke(); + } + Rendering?.Invoke(); + } + } + catch (Exception e) + { + Debug.WriteLine("Encountered an error while rendering: " + e); + throw; + } + return CVReturn.Success; + } + + public void Pause() + { + _paused = true; + } + + public void Resume() + { + _paused = false; + } + } +} diff --git a/Veldrid.Mac/ViewController.cs b/Veldrid.Mac/ViewController.cs index 16c52a8..d7ee115 100644 --- a/Veldrid.Mac/ViewController.cs +++ b/Veldrid.Mac/ViewController.cs @@ -1,15 +1,16 @@ using System; using AppKit; -using CoreVideo; +using Foundation; using Veldrid; namespace VeldridNSViewExample { - public partial class ViewController : NSSplitViewController + [Register("ViewController")] + public class ViewController : NSSplitViewController { - private readonly GraphicsDevice _gd; - private Swapchain _sc; - private CommandList _cl; + private VeldridView _veldridView; + private CommandList _commandList; + private int _frameIndex = 0; private RgbaFloat[] _clearColors = { @@ -21,71 +22,53 @@ public partial class ViewController : NSSplitViewController new RgbaFloat(0.8f, 0.1f, 0.3f, 1f), new RgbaFloat(0.8f, 0.1f, 0.9f, 1f), }; - private bool _resized; - private (uint Width, uint Height) _size; private readonly int _frameRepeatCount = 20; public ViewController(IntPtr handle) : base(handle) { - _frameIndex = new Random().Next(0, _clearColors.Length * _frameRepeatCount); - _gd = AppGlobals.Device; } public override void ViewDidLoad() { base.ViewDidLoad(); - var ss = SwapchainSource.CreateNSView(View.Handle); - SwapchainDescription scDesc = new SwapchainDescription( - ss, (uint)View.Frame.Width, (uint)View.Frame.Height, null, true, true); - _sc = AppGlobals.Device.ResourceFactory.CreateSwapchain(scDesc); - _cl = AppGlobals.Device.ResourceFactory.CreateCommandList(); - - // To render at a steady rate, we create a display link which will invoke our Render function. - CVDisplayLink displayLink = new CVDisplayLink(); - displayLink.SetOutputCallback(HandleDisplayLinkOutputCallback); - displayLink.Start(); - } + var graphicsDeviceOptions = new GraphicsDeviceOptions(false, null, false, ResourceBindingModel.Improved, true, true); - private void Render() - { - // If we've detected a resize event, we handle it now. - if (_resized) + _veldridView = new VeldridView(GraphicsBackend.Metal, graphicsDeviceOptions) { - _resized = false; - _sc.Resize(_size.Width, _size.Height); - } - - // Each frame, we clear the Swapchain's color target. - // Several different colors are cycled. - _cl.Begin(); - _cl.SetFramebuffer(_sc.Framebuffer); - _cl.ClearColorTarget(0, _clearColors[(_frameIndex / _frameRepeatCount)]); - _cl.End(); - _gd.SubmitCommands(_cl); - _gd.SwapBuffers(_sc); + TranslatesAutoresizingMaskIntoConstraints = false + }; + View.AddSubview(_veldridView); + _veldridView.LeftAnchor.ConstraintEqualToAnchor(View.LeftAnchor, 16).Active = true; + _veldridView.RightAnchor.ConstraintEqualToAnchor(View.RightAnchor, -16).Active = true; + _veldridView.TopAnchor.ConstraintEqualToAnchor(View.TopAnchor, 16).Active = true; + _veldridView.BottomAnchor.ConstraintEqualToAnchor(View.BottomAnchor, -16).Active = true; - // Do some math to loop our color picker index. - _frameIndex = (_frameIndex + 1) % (_clearColors.Length * _frameRepeatCount); + _veldridView.DeviceReady += VeldridView_DeviceReady; + _veldridView.Resized += VeldridView_Resized; + _veldridView.Rendering += VeldridView_Rendering; } - private CVReturn HandleDisplayLinkOutputCallback( - CVDisplayLink displayLink, - ref CVTimeStamp inNow, - ref CVTimeStamp inOutputTime, - CVOptionFlags flagsIn, - ref CVOptionFlags flagsOut) + void VeldridView_DeviceReady() { - Render(); - return CVReturn.Success; + _commandList = _veldridView.GraphicsDevice.ResourceFactory.CreateCommandList(); } + void VeldridView_Resized() + { + } - public override void ViewDidLayout() + void VeldridView_Rendering() { - base.ViewDidLayout(); - _resized = true; - _size = ((uint)View.Frame.Width, (uint)View.Frame.Height); + _commandList.Begin(); + _commandList.SetFramebuffer(_veldridView.MainSwapchain.Framebuffer); + _commandList.ClearColorTarget(0, _clearColors[_frameIndex / _frameRepeatCount]); + _commandList.End(); + _veldridView.GraphicsDevice.SubmitCommands(_commandList); + _veldridView.GraphicsDevice.SwapBuffers(_veldridView.MainSwapchain); + + _frameIndex = (_frameIndex + 1) % (_clearColors.Length * _frameRepeatCount); } + } } diff --git a/Veldrid.Mac/ViewController.designer.cs b/Veldrid.Mac/ViewController.designer.cs deleted file mode 100644 index 6252f43..0000000 --- a/Veldrid.Mac/ViewController.designer.cs +++ /dev/null @@ -1,18 +0,0 @@ -// WARNING -// -// This file has been generated automatically by Xamarin Studio to store outlets and -// actions made in the UI designer. If it is removed, they will be lost. -// Manual changes to this file may not be handled correctly. -// -using Foundation; - -namespace VeldridNSViewExample -{ - [Register("ViewController")] - partial class ViewController - { - void ReleaseDesignerOutlets() - { - } - } -} diff --git a/Veldrid.Mac/packages.config b/Veldrid.Mac/packages.config index c629c8f..8adc681 100644 --- a/Veldrid.Mac/packages.config +++ b/Veldrid.Mac/packages.config @@ -58,8 +58,8 @@ - - - + + + \ No newline at end of file From d5c7e704951540ae26c219a32afa0838b2fbe248 Mon Sep 17 00:00:00 2001 From: Peter Tribe Date: Wed, 12 Dec 2018 21:57:36 -0800 Subject: [PATCH 08/10] Update: ios demo --- Veldrid.Mac/ViewController.cs | 1 - Veldrid.iOS/Veldrid.iOS.csproj | 10 +- Veldrid.iOS/VeldridView.cs | 123 +++++++++++++++++++++++++ Veldrid.iOS/ViewController.cs | 72 +++++++-------- Veldrid.iOS/ViewController.designer.cs | 37 ++++---- Veldrid.iOS/packages.config | 6 +- 6 files changed, 181 insertions(+), 68 deletions(-) create mode 100644 Veldrid.iOS/VeldridView.cs diff --git a/Veldrid.Mac/ViewController.cs b/Veldrid.Mac/ViewController.cs index d7ee115..e733ed1 100644 --- a/Veldrid.Mac/ViewController.cs +++ b/Veldrid.Mac/ViewController.cs @@ -69,6 +69,5 @@ void VeldridView_Rendering() _frameIndex = (_frameIndex + 1) % (_clearColors.Length * _frameRepeatCount); } - } } diff --git a/Veldrid.iOS/Veldrid.iOS.csproj b/Veldrid.iOS/Veldrid.iOS.csproj index 5df4c51..3182abe 100644 --- a/Veldrid.iOS/Veldrid.iOS.csproj +++ b/Veldrid.iOS/Veldrid.iOS.csproj @@ -133,13 +133,13 @@ ..\packages\NativeLibraryLoader.1.0.12\lib\netstandard2.0\NativeLibraryLoader.dll - ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.MetalBindings.dll + ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0115-gc6e10f9598\lib\netstandard2.0\Veldrid.MetalBindings.dll - ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0115-gc6e10f9598\lib\netstandard2.0\Veldrid.OpenGLBindings.dll - ..\packages\Veldrid.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.dll + ..\packages\Veldrid.4.5.0-beta1-0115-gc6e10f9598\lib\netstandard2.0\Veldrid.dll @@ -166,10 +166,8 @@ - - ViewController.cs - + diff --git a/Veldrid.iOS/VeldridView.cs b/Veldrid.iOS/VeldridView.cs new file mode 100644 index 0000000..d567356 --- /dev/null +++ b/Veldrid.iOS/VeldridView.cs @@ -0,0 +1,123 @@ +using System; +using System.Diagnostics; +using CoreAnimation; +using CoreVideo; +using Foundation; +using UIKit; +using Veldrid; + +namespace VeldridUIViewExample +{ + public class VeldridView : UIView + { + private readonly GraphicsBackend _backend; + private readonly GraphicsDeviceOptions _deviceOptions; + + private CADisplayLink _displayLink; + private bool _paused; + private bool _resized; + private uint _width; + private uint _height; + private bool _disposed; + + public GraphicsDevice GraphicsDevice { get; protected set; } + public Swapchain MainSwapchain { get; protected set; } + + public event Action DeviceReady; + public event Action Rendering; + public event Action Resized; + + public VeldridView(GraphicsBackend backend, GraphicsDeviceOptions deviceOptions) + { + if (!(backend == GraphicsBackend.Metal || backend == GraphicsBackend.OpenGL)) + { + throw new NotSupportedException($"{backend} is not supported on windows."); + } + + _backend = backend; + _deviceOptions = deviceOptions; + } + + protected override void Dispose(bool disposing) + { + if (_disposed) + { + return; + } + if (disposing) + { + _displayLink.RemoveFromRunLoop(NSRunLoop.Current, NSRunLoopMode.Default); + GraphicsDevice.Dispose(); + } + _disposed = true; + base.Dispose(disposing); + } + + public override void MovedToWindow() + { + base.MovedToWindow(); + + var swapchainSource = SwapchainSource.CreateUIView(Handle); + var swapchainDescription = new SwapchainDescription(swapchainSource, (uint)Frame.Width, (uint)Frame.Height, null, true, true); + + if (_backend == GraphicsBackend.Metal) + { + GraphicsDevice = GraphicsDevice.CreateMetal(_deviceOptions); + } + + MainSwapchain = GraphicsDevice.ResourceFactory.CreateSwapchain(swapchainDescription); + + DeviceReady?.Invoke(); + + _displayLink = CADisplayLink.Create(HandleDisplayLinkOutputCallback); + _displayLink.AddToRunLoop(NSRunLoop.Current, NSRunLoopMode.Default); + } + + public override void LayoutSubviews() + { + base.LayoutSubviews(); + + _resized = true; + + const double dpiScale = 1; + _width = (uint)(Frame.Width < 0 ? 0 : Math.Ceiling(Frame.Width * dpiScale)); + _height = (uint)(Frame.Height < 0 ? 0 : Math.Ceiling(Frame.Height * dpiScale)); + } + + private void HandleDisplayLinkOutputCallback() + { + try + { + if (_paused) + { + return; + } + if (GraphicsDevice != null) + { + if (_resized) + { + _resized = false; + MainSwapchain.Resize(_width / 2, _height); + Resized?.Invoke(); + } + Rendering?.Invoke(); + } + } + catch (Exception e) + { + Debug.WriteLine("Encountered an error while rendering: " + e); + throw; + } + } + + public void Pause() + { + _paused = true; + } + + public void Resume() + { + _paused = false; + } + } +} diff --git a/Veldrid.iOS/ViewController.cs b/Veldrid.iOS/ViewController.cs index 6f2fa98..6cef9dc 100644 --- a/Veldrid.iOS/ViewController.cs +++ b/Veldrid.iOS/ViewController.cs @@ -7,11 +7,12 @@ namespace VeldridUIViewExample { - public partial class ViewController : UIViewController + [Register("ViewController")] + public class ViewController : UIViewController { - private readonly GraphicsDevice _gd; - private Swapchain _sc; - private CommandList _cl; + private VeldridView _veldridView; + private CommandList _commandList; + private int _frameIndex = 0; private RgbaFloat[] _clearColors = { @@ -23,63 +24,52 @@ public partial class ViewController : UIViewController new RgbaFloat(0.8f, 0.1f, 0.3f, 1f), new RgbaFloat(0.8f, 0.1f, 0.9f, 1f), }; - private bool _resized; - private (uint Width, uint Height) _size; private readonly int _frameRepeatCount = 20; public ViewController(IntPtr handle) : base(handle) { - _frameIndex = new Random().Next(0, _clearColors.Length * _frameRepeatCount); - _gd = AppGlobals.Device; } public override void ViewDidLoad() { base.ViewDidLoad(); - var ss = SwapchainSource.CreateUIView(View.Handle); - SwapchainDescription scDesc = new SwapchainDescription( - ss, (uint)View.Frame.Width, (uint)View.Frame.Height, null, true, true); - _sc = AppGlobals.Device.ResourceFactory.CreateSwapchain(scDesc); - _cl = AppGlobals.Device.ResourceFactory.CreateCommandList(); - - // To render at a steady rate, we create a display link which will invoke our Render function. - CADisplayLink displayLink = CADisplayLink.Create(HandleDisplayLinkOutputCallback); - displayLink.AddToRunLoop(NSRunLoop.Current, NSRunLoopMode.Default); - } + var graphicsDeviceOptions = new GraphicsDeviceOptions(false, null, false, ResourceBindingModel.Improved, true, true); - private void Render() - { - // If we've detected a resize event, we handle it now. - if (_resized) + _veldridView = new VeldridView(GraphicsBackend.Metal, graphicsDeviceOptions) { - _resized = false; - _sc.Resize(_size.Width, _size.Height); - } + TranslatesAutoresizingMaskIntoConstraints = false + }; + View.AddSubview(_veldridView); + _veldridView.LeftAnchor.ConstraintEqualTo(View.LeftAnchor, 16).Active = true; + _veldridView.RightAnchor.ConstraintEqualTo(View.RightAnchor, -16).Active = true; + _veldridView.TopAnchor.ConstraintEqualTo(View.TopAnchor, 16).Active = true; + _veldridView.BottomAnchor.ConstraintEqualTo(View.BottomAnchor, -16).Active = true; - // Each frame, we clear the Swapchain's color target. - // Several different colors are cycled. - _cl.Begin(); - _cl.SetFramebuffer(_sc.Framebuffer); - _cl.ClearColorTarget(0, _clearColors[(_frameIndex / _frameRepeatCount)]); - _cl.End(); - _gd.SubmitCommands(_cl); - _gd.SwapBuffers(_sc); + _veldridView.DeviceReady += VeldridView_DeviceReady; + _veldridView.Resized += VeldridView_Resized; + _veldridView.Rendering += VeldridView_Rendering; + } - // Do some math to loop our color picker index. - _frameIndex = (_frameIndex + 1) % (_clearColors.Length * _frameRepeatCount); + void VeldridView_DeviceReady() + { + _commandList = _veldridView.GraphicsDevice.ResourceFactory.CreateCommandList(); } - private void HandleDisplayLinkOutputCallback() + void VeldridView_Resized() { - Render(); } - public override void ViewDidLayoutSubviews() + void VeldridView_Rendering() { - base.ViewDidLayoutSubviews(); - _resized = true; - _size = ((uint)View.Frame.Width, (uint)View.Frame.Height); + _commandList.Begin(); + _commandList.SetFramebuffer(_veldridView.MainSwapchain.Framebuffer); + _commandList.ClearColorTarget(0, _clearColors[_frameIndex / _frameRepeatCount]); + _commandList.End(); + _veldridView.GraphicsDevice.SubmitCommands(_commandList); + _veldridView.GraphicsDevice.SwapBuffers(_veldridView.MainSwapchain); + + _frameIndex = (_frameIndex + 1) % (_clearColors.Length * _frameRepeatCount); } } } diff --git a/Veldrid.iOS/ViewController.designer.cs b/Veldrid.iOS/ViewController.designer.cs index d3f525a..c547fae 100644 --- a/Veldrid.iOS/ViewController.designer.cs +++ b/Veldrid.iOS/ViewController.designer.cs @@ -1,17 +1,20 @@ -// -// This file has been generated automatically by MonoDevelop to store outlets and -// actions made in the Xcode designer. If it is removed, they will be lost. -// Manual changes to this file may not be handled correctly. -// -using Foundation; - -namespace VeldridUIViewExample -{ - [Register("ViewController")] - partial class ViewController - { - void ReleaseDesignerOutlets() - { - } - } -} +// WARNING +// +// This file has been generated automatically by Visual Studio from the outlets and +// actions declared in your storyboard file. +// Manual changes to this file will not be maintained. +// +using Foundation; +using System; +using System.CodeDom.Compiler; + +namespace VeldridUIViewExample +{ + [Register ("ViewController")] + partial class ViewController + { + void ReleaseDesignerOutlets () + { + } + } +} \ No newline at end of file diff --git a/Veldrid.iOS/packages.config b/Veldrid.iOS/packages.config index 3cb5935..9da0ce0 100644 --- a/Veldrid.iOS/packages.config +++ b/Veldrid.iOS/packages.config @@ -58,8 +58,8 @@ - - - + + + \ No newline at end of file From cb3eabfbef4556b70704900cc3a4451ae685689e Mon Sep 17 00:00:00 2001 From: Peter Tribe Date: Wed, 12 Dec 2018 23:05:39 -0800 Subject: [PATCH 09/10] Fixed: check --- Veldrid.iOS/VeldridView.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Veldrid.iOS/VeldridView.cs b/Veldrid.iOS/VeldridView.cs index d567356..c2d0296 100644 --- a/Veldrid.iOS/VeldridView.cs +++ b/Veldrid.iOS/VeldridView.cs @@ -29,7 +29,7 @@ public class VeldridView : UIView public VeldridView(GraphicsBackend backend, GraphicsDeviceOptions deviceOptions) { - if (!(backend == GraphicsBackend.Metal || backend == GraphicsBackend.OpenGL)) + if (!(backend == GraphicsBackend.Metal || backend == GraphicsBackend.OpenGLES)) { throw new NotSupportedException($"{backend} is not supported on windows."); } From ee4cedc2bbe63fd117acc06874b59b456c61c61b Mon Sep 17 00:00:00 2001 From: Peter Tribe Date: Sun, 16 Dec 2018 15:56:23 -0800 Subject: [PATCH 10/10] Update: nuget --- Veldrid.Android/Veldrid.Android.csproj | 6 +++--- Veldrid.Android/packages.config | 6 +++--- Veldrid.Mac/Veldrid.Mac.csproj | 6 +++--- Veldrid.Mac/packages.config | 6 +++--- Veldrid.iOS/Veldrid.iOS.csproj | 6 +++--- Veldrid.iOS/packages.config | 6 +++--- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Veldrid.Android/Veldrid.Android.csproj b/Veldrid.Android/Veldrid.Android.csproj index a9a5136..c94f588 100644 --- a/Veldrid.Android/Veldrid.Android.csproj +++ b/Veldrid.Android/Veldrid.Android.csproj @@ -116,13 +116,13 @@ ..\packages\Xamarin.Android.Support.v7.AppCompat.27.0.2.1\lib\MonoAndroid81\Xamarin.Android.Support.v7.AppCompat.dll - ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.MetalBindings.dll + ..\packages\Veldrid.MetalBindings.4.5.0\lib\netstandard2.0\Veldrid.MetalBindings.dll - ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + ..\packages\Veldrid.OpenGLBindings.4.5.0\lib\netstandard2.0\Veldrid.OpenGLBindings.dll - ..\packages\Veldrid.4.5.0-beta1-0113-g7f18acfea8\lib\netstandard2.0\Veldrid.dll + ..\packages\Veldrid.4.5.0\lib\netstandard2.0\Veldrid.dll diff --git a/Veldrid.Android/packages.config b/Veldrid.Android/packages.config index eb28f2f..7f88206 100644 --- a/Veldrid.Android/packages.config +++ b/Veldrid.Android/packages.config @@ -58,9 +58,9 @@ - - - + + + diff --git a/Veldrid.Mac/Veldrid.Mac.csproj b/Veldrid.Mac/Veldrid.Mac.csproj index 5562b84..eda2c36 100644 --- a/Veldrid.Mac/Veldrid.Mac.csproj +++ b/Veldrid.Mac/Veldrid.Mac.csproj @@ -87,13 +87,13 @@ ..\packages\NativeLibraryLoader.1.0.12\lib\netstandard2.0\NativeLibraryLoader.dll - ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0115-gc6e10f9598\lib\netstandard2.0\Veldrid.MetalBindings.dll + ..\packages\Veldrid.MetalBindings.4.5.0\lib\netstandard2.0\Veldrid.MetalBindings.dll - ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0115-gc6e10f9598\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + ..\packages\Veldrid.OpenGLBindings.4.5.0\lib\netstandard2.0\Veldrid.OpenGLBindings.dll - ..\packages\Veldrid.4.5.0-beta1-0115-gc6e10f9598\lib\netstandard2.0\Veldrid.dll + ..\packages\Veldrid.4.5.0\lib\netstandard2.0\Veldrid.dll diff --git a/Veldrid.Mac/packages.config b/Veldrid.Mac/packages.config index 8adc681..e0bb6d9 100644 --- a/Veldrid.Mac/packages.config +++ b/Veldrid.Mac/packages.config @@ -58,8 +58,8 @@ - - - + + + \ No newline at end of file diff --git a/Veldrid.iOS/Veldrid.iOS.csproj b/Veldrid.iOS/Veldrid.iOS.csproj index 3182abe..13fb456 100644 --- a/Veldrid.iOS/Veldrid.iOS.csproj +++ b/Veldrid.iOS/Veldrid.iOS.csproj @@ -133,13 +133,13 @@ ..\packages\NativeLibraryLoader.1.0.12\lib\netstandard2.0\NativeLibraryLoader.dll - ..\packages\Veldrid.MetalBindings.4.5.0-beta1-0115-gc6e10f9598\lib\netstandard2.0\Veldrid.MetalBindings.dll + ..\packages\Veldrid.MetalBindings.4.5.0\lib\netstandard2.0\Veldrid.MetalBindings.dll - ..\packages\Veldrid.OpenGLBindings.4.5.0-beta1-0115-gc6e10f9598\lib\netstandard2.0\Veldrid.OpenGLBindings.dll + ..\packages\Veldrid.OpenGLBindings.4.5.0\lib\netstandard2.0\Veldrid.OpenGLBindings.dll - ..\packages\Veldrid.4.5.0-beta1-0115-gc6e10f9598\lib\netstandard2.0\Veldrid.dll + ..\packages\Veldrid.4.5.0\lib\netstandard2.0\Veldrid.dll diff --git a/Veldrid.iOS/packages.config b/Veldrid.iOS/packages.config index 9da0ce0..a784163 100644 --- a/Veldrid.iOS/packages.config +++ b/Veldrid.iOS/packages.config @@ -58,8 +58,8 @@ - - - + + + \ No newline at end of file