diff --git a/Veldrid.Android/AppGlobals.cs b/Veldrid.Android/AppGlobals.cs
new file mode 100644
index 0000000..4b6180e
--- /dev/null
+++ b/Veldrid.Android/AppGlobals.cs
@@ -0,0 +1,33 @@
+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(SwapchainDescription swapchainDescription)
+ {
+ GraphicsDeviceOptions options = new GraphicsDeviceOptions(
+ debug: false,
+ swapchainDepthFormat: null,
+ syncToVerticalBlank: false,
+ resourceBindingModel: ResourceBindingModel.Improved,
+ preferDepthRangeZeroToOne: true,
+ preferStandardClipSpaceYDirection: true);
+
+ //Device = GraphicsDevice.CreateVulkan(options);
+ Device = GraphicsDevice.CreateOpenGLES(options, swapchainDescription);
+ }
+
+ internal static void DisposeDevice()
+ {
+ Device.Dispose();
+ }
+ }
+}
diff --git a/Veldrid.Android/Assets/AboutAssets.txt b/Veldrid.Android/Assets/AboutAssets.txt
new file mode 100644
index 0000000..a9b0638
--- /dev/null
+++ b/Veldrid.Android/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/Veldrid.Android/MainActivity.cs b/Veldrid.Android/MainActivity.cs
new file mode 100644
index 0000000..c3b06e6
--- /dev/null
+++ b/Veldrid.Android/MainActivity.cs
@@ -0,0 +1,84 @@
+using Android.App;
+using Android.Content.PM;
+using Android.OS;
+using System.Diagnostics;
+using Veldrid;
+
+namespace mellinoe.VeldridActivityExample
+{
+ [Activity(Label = "VeldridActivityExample", MainLauncher = true, Icon = "@mipmap/icon", ConfigurationChanges = ConfigChanges.KeyboardHidden | ConfigChanges.Orientation | ConfigChanges.ScreenSize)]
+ public class MainActivity : Activity
+ {
+ private GraphicsDeviceOptions _options;
+ private VeldridSurfaceView _view;
+ private ResourceFactory _disposeFactory;
+ private Stopwatch _sw;
+
+ 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;
+
+ protected override void OnCreate(Bundle savedInstanceState)
+ {
+ base.OnCreate(savedInstanceState);
+
+ _options = new GraphicsDeviceOptions(false, PixelFormat.R16_UNorm, false);
+ //GraphicsBackend backend = GraphicsDevice.IsBackendSupported(GraphicsBackend.Vulkan) ? GraphicsBackend.Vulkan : GraphicsBackend.OpenGLES;
+ GraphicsBackend backend = GraphicsBackend.OpenGLES;
+
+
+ _view = new VeldridSurfaceView(this, backend, _options);
+ _view.Rendering += OnViewRendering;
+ _view.DeviceCreated += OnViewCreatedDevice;
+ _sw = Stopwatch.StartNew();
+
+ SetContentView(_view);
+ }
+
+ protected override void OnPause()
+ {
+ base.OnPause();
+ _view.OnPause();
+ }
+
+ protected override void OnResume()
+ {
+ base.OnResume();
+ _view.OnResume();
+ }
+
+ private void OnViewCreatedDevice()
+ {
+ _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(_view.MainSwapchain.Framebuffer);
+ _cl.ClearColorTarget(0, _clearColors[(_frameIndex / _frameRepeatCount)]);
+ _cl.End();
+ _view.GraphicsDevice.SubmitCommands(_cl);
+ _view.GraphicsDevice.SwapBuffers(_view.MainSwapchain);
+
+ // Do some math to loop our color picker index.
+ _frameIndex = (_frameIndex + 1) % (_clearColors.Length * _frameRepeatCount);
+ }
+ }
+}
+
diff --git a/Veldrid.Android/Properties/AndroidManifest.xml b/Veldrid.Android/Properties/AndroidManifest.xml
new file mode 100644
index 0000000..befd4b9
--- /dev/null
+++ b/Veldrid.Android/Properties/AndroidManifest.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Veldrid.Android/Properties/AssemblyInfo.cs b/Veldrid.Android/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..50d274f
--- /dev/null
+++ b/Veldrid.Android/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/Veldrid.Android/Resources/AboutResources.txt b/Veldrid.Android/Resources/AboutResources.txt
new file mode 100644
index 0000000..10f52d4
--- /dev/null
+++ b/Veldrid.Android/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/Veldrid.Android/Resources/Resource.designer.cs b/Veldrid.Android/Resources/Resource.designer.cs
new file mode 100644
index 0000000..1e83ace
--- /dev/null
+++ b/Veldrid.Android/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("VeldridActivityExample.Resource", IsApplication=true)]
+
+namespace 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/Veldrid.Android/Resources/layout/Main.axml b/Veldrid.Android/Resources/layout/Main.axml
new file mode 100644
index 0000000..1c8d78f
--- /dev/null
+++ b/Veldrid.Android/Resources/layout/Main.axml
@@ -0,0 +1,11 @@
+
+
+
+
diff --git a/Veldrid.Android/Resources/mipmap-hdpi/Icon.png b/Veldrid.Android/Resources/mipmap-hdpi/Icon.png
new file mode 100644
index 0000000..f4c8046
Binary files /dev/null and b/Veldrid.Android/Resources/mipmap-hdpi/Icon.png differ
diff --git a/Veldrid.Android/Resources/mipmap-mdpi/Icon.png b/Veldrid.Android/Resources/mipmap-mdpi/Icon.png
new file mode 100644
index 0000000..ef1e1ee
Binary files /dev/null and b/Veldrid.Android/Resources/mipmap-mdpi/Icon.png differ
diff --git a/Veldrid.Android/Resources/mipmap-xhdpi/Icon.png b/Veldrid.Android/Resources/mipmap-xhdpi/Icon.png
new file mode 100644
index 0000000..b7e2e57
Binary files /dev/null and b/Veldrid.Android/Resources/mipmap-xhdpi/Icon.png differ
diff --git a/Veldrid.Android/Resources/mipmap-xxhdpi/Icon.png b/Veldrid.Android/Resources/mipmap-xxhdpi/Icon.png
new file mode 100644
index 0000000..8d20a38
Binary files /dev/null and b/Veldrid.Android/Resources/mipmap-xxhdpi/Icon.png differ
diff --git a/Veldrid.Android/Resources/mipmap-xxxhdpi/Icon.png b/Veldrid.Android/Resources/mipmap-xxxhdpi/Icon.png
new file mode 100644
index 0000000..6d9919c
Binary files /dev/null and b/Veldrid.Android/Resources/mipmap-xxxhdpi/Icon.png differ
diff --git a/Veldrid.Android/Resources/values/Strings.xml b/Veldrid.Android/Resources/values/Strings.xml
new file mode 100644
index 0000000..b9087e1
--- /dev/null
+++ b/Veldrid.Android/Resources/values/Strings.xml
@@ -0,0 +1,5 @@
+
+
+ Hello World, Click Me!
+ mellinoe.VeldridActivityExample
+
diff --git a/Veldrid.Android/Veldrid.Android.csproj b/Veldrid.Android/Veldrid.Android.csproj
new file mode 100644
index 0000000..c94f588
--- /dev/null
+++ b/Veldrid.Android/Veldrid.Android.csproj
@@ -0,0 +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\lib\netstandard2.0\Veldrid.MetalBindings.dll
+
+
+ ..\packages\Veldrid.OpenGLBindings.4.5.0\lib\netstandard2.0\Veldrid.OpenGLBindings.dll
+
+
+ ..\packages\Veldrid.4.5.0\lib\netstandard2.0\Veldrid.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Veldrid.Android/VeldridSurfaceView.cs b/Veldrid.Android/VeldridSurfaceView.cs
new file mode 100644
index 0000000..19d53be
--- /dev/null
+++ b/Veldrid.Android/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/Veldrid.Android/packages.config b/Veldrid.Android/packages.config
new file mode 100644
index 0000000..7f88206
--- /dev/null
+++ b/Veldrid.Android/packages.config
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
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/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 74%
rename from VeldridNSViewExample/Main.cs
rename to Veldrid.Mac/Main.cs
index 064ff8d..d79f271 100644
--- a/VeldridNSViewExample/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/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 80%
rename from VeldridNSViewExample/VeldridNSViewExample.csproj
rename to Veldrid.Mac/Veldrid.Mac.csproj
index 549054e..eda2c36 100644
--- a/VeldridNSViewExample/VeldridNSViewExample.csproj
+++ b/Veldrid.Mac/Veldrid.Mac.csproj
@@ -1,134 +1,132 @@
-
-
-
- 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\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\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.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.4.5.0-beta1-0111-g69f1bc0f54\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\lib\netstandard2.0\Veldrid.MetalBindings.dll
+
+
+ ..\packages\Veldrid.OpenGLBindings.4.5.0\lib\netstandard2.0\Veldrid.OpenGLBindings.dll
+
+
+ ..\packages\Veldrid.4.5.0\lib\netstandard2.0\Veldrid.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
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
new file mode 100644
index 0000000..e733ed1
--- /dev/null
+++ b/Veldrid.Mac/ViewController.cs
@@ -0,0 +1,73 @@
+using System;
+using AppKit;
+using Foundation;
+using Veldrid;
+
+namespace VeldridNSViewExample
+{
+ [Register("ViewController")]
+ public class ViewController : NSSplitViewController
+ {
+ private VeldridView _veldridView;
+ private CommandList _commandList;
+
+ 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 ViewController(IntPtr handle) : base(handle)
+ {
+ }
+
+ public override void ViewDidLoad()
+ {
+ base.ViewDidLoad();
+
+ var graphicsDeviceOptions = new GraphicsDeviceOptions(false, null, false, ResourceBindingModel.Improved, true, true);
+
+ _veldridView = new VeldridView(GraphicsBackend.Metal, graphicsDeviceOptions)
+ {
+ 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;
+
+ _veldridView.DeviceReady += VeldridView_DeviceReady;
+ _veldridView.Resized += VeldridView_Resized;
+ _veldridView.Rendering += VeldridView_Rendering;
+ }
+
+ void VeldridView_DeviceReady()
+ {
+ _commandList = _veldridView.GraphicsDevice.ResourceFactory.CreateCommandList();
+ }
+
+ void VeldridView_Resized()
+ {
+ }
+
+ void VeldridView_Rendering()
+ {
+ _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/VeldridNSViewExample/packages.config b/Veldrid.Mac/packages.config
similarity index 73%
rename from VeldridNSViewExample/packages.config
rename to Veldrid.Mac/packages.config
index a95468f..e0bb6d9 100644
--- a/VeldridNSViewExample/packages.config
+++ b/Veldrid.Mac/packages.config
@@ -1,25 +1,25 @@
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
+
-
+
@@ -29,37 +29,37 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
\ No newline at end of file
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/Veldrid.iOS/AppDelegate.cs b/Veldrid.iOS/AppDelegate.cs
new file mode 100644
index 0000000..f49e536
--- /dev/null
+++ b/Veldrid.iOS/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/VeldridNSViewExample/AppGlobals.cs b/Veldrid.iOS/AppGlobals.cs
similarity index 97%
rename from VeldridNSViewExample/AppGlobals.cs
rename to Veldrid.iOS/AppGlobals.cs
index b143da9..e8b923b 100644
--- a/VeldridNSViewExample/AppGlobals.cs
+++ b/Veldrid.iOS/AppGlobals.cs
@@ -1,6 +1,6 @@
using Veldrid;
-namespace VeldridNSViewExample
+namespace VeldridUIViewExample
{
// Using Veldrid, only a single GraphicsDevice needs to be created,
// even when rendering to many Swapchains in an application.
diff --git a/Veldrid.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/Veldrid.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..64d0e3d
--- /dev/null
+++ b/Veldrid.iOS/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/Veldrid.iOS/Assets.xcassets/Contents.json b/Veldrid.iOS/Assets.xcassets/Contents.json
new file mode 100644
index 0000000..4caf392
--- /dev/null
+++ b/Veldrid.iOS/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/Veldrid.iOS/Entitlements.plist b/Veldrid.iOS/Entitlements.plist
new file mode 100644
index 0000000..9ae5993
--- /dev/null
+++ b/Veldrid.iOS/Entitlements.plist
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Veldrid.iOS/Info.plist b/Veldrid.iOS/Info.plist
new file mode 100644
index 0000000..e408ed0
--- /dev/null
+++ b/Veldrid.iOS/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/Veldrid.iOS/LaunchScreen.storyboard b/Veldrid.iOS/LaunchScreen.storyboard
new file mode 100644
index 0000000..5d2e905
--- /dev/null
+++ b/Veldrid.iOS/LaunchScreen.storyboard
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Veldrid.iOS/Main.cs b/Veldrid.iOS/Main.cs
new file mode 100644
index 0000000..aaafa50
--- /dev/null
+++ b/Veldrid.iOS/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/Veldrid.iOS/Main.storyboard b/Veldrid.iOS/Main.storyboard
new file mode 100644
index 0000000..cb656be
--- /dev/null
+++ b/Veldrid.iOS/Main.storyboard
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Veldrid.iOS/Veldrid.iOS.csproj b/Veldrid.iOS/Veldrid.iOS.csproj
new file mode 100644
index 0000000..13fb456
--- /dev/null
+++ b/Veldrid.iOS/Veldrid.iOS.csproj
@@ -0,0 +1,174 @@
+
+
+
+ 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\lib\netstandard2.0\Veldrid.MetalBindings.dll
+
+
+ ..\packages\Veldrid.OpenGLBindings.4.5.0\lib\netstandard2.0\Veldrid.OpenGLBindings.dll
+
+
+ ..\packages\Veldrid.4.5.0\lib\netstandard2.0\Veldrid.dll
+
+
+
+
+ false
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Veldrid.iOS/VeldridView.cs b/Veldrid.iOS/VeldridView.cs
new file mode 100644
index 0000000..c2d0296
--- /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.OpenGLES))
+ {
+ 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
new file mode 100644
index 0000000..6cef9dc
--- /dev/null
+++ b/Veldrid.iOS/ViewController.cs
@@ -0,0 +1,75 @@
+using System;
+using UIKit;
+using CoreVideo;
+using Foundation;
+using Veldrid;
+using CoreAnimation;
+
+namespace VeldridUIViewExample
+{
+ [Register("ViewController")]
+ public class ViewController : UIViewController
+ {
+ private VeldridView _veldridView;
+ private CommandList _commandList;
+
+ 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 ViewController(IntPtr handle) : base(handle)
+ {
+ }
+
+ public override void ViewDidLoad()
+ {
+ base.ViewDidLoad();
+
+ var graphicsDeviceOptions = new GraphicsDeviceOptions(false, null, false, ResourceBindingModel.Improved, true, true);
+
+ _veldridView = new VeldridView(GraphicsBackend.Metal, graphicsDeviceOptions)
+ {
+ 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;
+
+ _veldridView.DeviceReady += VeldridView_DeviceReady;
+ _veldridView.Resized += VeldridView_Resized;
+ _veldridView.Rendering += VeldridView_Rendering;
+ }
+
+ void VeldridView_DeviceReady()
+ {
+ _commandList = _veldridView.GraphicsDevice.ResourceFactory.CreateCommandList();
+ }
+
+ void VeldridView_Resized()
+ {
+ }
+
+ void VeldridView_Rendering()
+ {
+ _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
new file mode 100644
index 0000000..c547fae
--- /dev/null
+++ b/Veldrid.iOS/ViewController.designer.cs
@@ -0,0 +1,20 @@
+// 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
new file mode 100644
index 0000000..a784163
--- /dev/null
+++ b/Veldrid.iOS/packages.config
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VeldridNSViewExample.sln b/VeldridNSViewExample.sln
deleted file mode 100644
index 81ce819..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", "metal-layer-test\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.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
diff --git a/VeldridNSViewExample/ViewController.cs b/VeldridNSViewExample/ViewController.cs
deleted file mode 100644
index 16c52a8..0000000
--- a/VeldridNSViewExample/ViewController.cs
+++ /dev/null
@@ -1,91 +0,0 @@
-using System;
-using AppKit;
-using CoreVideo;
-using Veldrid;
-
-namespace VeldridNSViewExample
-{
- public partial class ViewController : NSSplitViewController
- {
- 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.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();
- }
-
- 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 CVReturn HandleDisplayLinkOutputCallback(
- CVDisplayLink displayLink,
- ref CVTimeStamp inNow,
- ref CVTimeStamp inOutputTime,
- CVOptionFlags flagsIn,
- ref CVOptionFlags flagsOut)
- {
- Render();
- return CVReturn.Success;
- }
-
-
- public override void ViewDidLayout()
- {
- base.ViewDidLayout();
- _resized = true;
- _size = ((uint)View.Frame.Width, (uint)View.Frame.Height);
- }
- }
-}
diff --git a/VeldridNSViewExample/ViewController.designer.cs b/VeldridNSViewExample/ViewController.designer.cs
deleted file mode 100644
index 6252f43..0000000
--- a/VeldridNSViewExample/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/VeldridViewExamples.sln b/VeldridViewExamples.sln
new file mode 100644
index 0000000..2851083
--- /dev/null
+++ b/VeldridViewExamples.sln
@@ -0,0 +1,152 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+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}") = "Veldrid.iOS", "Veldrid.iOS\Veldrid.iOS.csproj", "{9D6F56E8-BA48-4C66-822A-2B0B840AB672}"
+EndProject
+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|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
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {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}.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}.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}.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