diff --git a/Samples/SkiaSampleProject/.gitignore b/Samples/SkiaSampleProject/.gitignore
new file mode 100644
index 000000000..a43f7588e
--- /dev/null
+++ b/Samples/SkiaSampleProject/.gitignore
@@ -0,0 +1,22 @@
+*.user
+*.user.*
+*.aeproperties
+.vs/
+*.tmp
+*.Generated.cs
+*.Generated.Event.cs
+*.generatedpreview.png
+*.ods#
+TiledObjects.Generated.xml
+*.cachefile
+*.csvSettings
+*.sln.metaproj
+packages/
+SkiaSampleProject/SkiaSampleProject/bin/
+SkiaSampleProject/bin/
+SkiaSampleProject/SkiaSampleProject/obj/
+SkiaSampleProject/obj/
+SkiaSampleProject/Content/obj/
+!SkiaSampleProject/x64
+!SkiaSampleProject/x86
+!SkiaSampleProject/Libraries
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject.sln b/Samples/SkiaSampleProject/SkiaSampleProject.sln
new file mode 100644
index 000000000..23a74bf66
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject.sln
@@ -0,0 +1,65 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.2.32519.379
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSampleProject", "SkiaSampleProject\SkiaSampleProject.csproj", "{D7079294-70C6-4204-B29E-C505EC181815}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StateInterpolation.DesktopNet6", "..\..\Engines\Forms\FlatRedBall.Forms\StateInterpolation\StateInterpolation.DesktopGlNet6\StateInterpolation.DesktopNet6.csproj", "{C79854D9-3E5B-4FDF-8B05-1C4FF017C9D9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlatRedBallDesktopGLNet6", "..\..\Engines\FlatRedBallXNA\FlatRedBallDesktopGLNet6\FlatRedBallDesktopGLNet6.csproj", "{CCE9859C-88F7-4DFC-A744-A6E1FDD596EA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlatRedBall.Forms.DesktopGlNet6", "..\..\Engines\Forms\FlatRedBall.Forms\FlatRedBall.Forms.DesktopGlNet6\FlatRedBall.Forms.DesktopGlNet6.csproj", "{C8F9BFCE-F1B2-434E-8915-61AF84FB6345}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GumCore.DesktopGlNet6", "..\..\..\Gum\GumCore\GumCoreXnaPc\GumCore.DesktopGlNet6\GumCore.DesktopGlNet6.csproj", "{D5F65C84-043B-452E-A862-9A7089D3955F}"
+EndProject
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "FlatRedBallShared", "..\..\Engines\FlatRedBallXNA\FlatRedBall\FlatRedBallShared.shproj", "{0BB8CBE3-8503-46C1-9272-D98E153A230E}"
+EndProject
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "FlatRedBall.Forms.Shared", "..\..\Engines\Forms\FlatRedBall.Forms\FlatRedBall.Forms.Shared\FlatRedBall.Forms.Shared.shproj", "{728151F0-03E0-4253-94FE-46B9C77EDEA6}"
+EndProject
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "GumCoreShared", "..\..\..\Gum\GumCoreShared.shproj", "{F919C045-EAC7-4806-9A1F-CE421F923E97}"
+EndProject
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "GumCoreShared.FlatRedBall", "..\..\FRBDK\Glue\GumPlugin\GumPlugin\GumCoreShared.FlatRedBall.shproj", "{0EE8A96C-A754-453D-9E65-19A24E9A5E76}"
+EndProject
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "StateInterpolationShared", "..\..\FRBDK\Glue\StateInterpolationPlugin\StateInterpolationPlugin\StateInterpolationShared.shproj", "{D00D287D-385B-42FB-BF5F-04401E7D37D0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaInGum", "..\..\..\Gum\SvgPlugin\SkiaInGumShared\SkiaInGum.csproj", "{90EA4899-F086-44EC-BD64-2C10236EE07E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D7079294-70C6-4204-B29E-C505EC181815}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D7079294-70C6-4204-B29E-C505EC181815}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D7079294-70C6-4204-B29E-C505EC181815}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D7079294-70C6-4204-B29E-C505EC181815}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C79854D9-3E5B-4FDF-8B05-1C4FF017C9D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C79854D9-3E5B-4FDF-8B05-1C4FF017C9D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C79854D9-3E5B-4FDF-8B05-1C4FF017C9D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C79854D9-3E5B-4FDF-8B05-1C4FF017C9D9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CCE9859C-88F7-4DFC-A744-A6E1FDD596EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CCE9859C-88F7-4DFC-A744-A6E1FDD596EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CCE9859C-88F7-4DFC-A744-A6E1FDD596EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CCE9859C-88F7-4DFC-A744-A6E1FDD596EA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C8F9BFCE-F1B2-434E-8915-61AF84FB6345}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C8F9BFCE-F1B2-434E-8915-61AF84FB6345}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C8F9BFCE-F1B2-434E-8915-61AF84FB6345}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C8F9BFCE-F1B2-434E-8915-61AF84FB6345}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D5F65C84-043B-452E-A862-9A7089D3955F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D5F65C84-043B-452E-A862-9A7089D3955F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D5F65C84-043B-452E-A862-9A7089D3955F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D5F65C84-043B-452E-A862-9A7089D3955F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {90EA4899-F086-44EC-BD64-2C10236EE07E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {90EA4899-F086-44EC-BD64-2C10236EE07E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {90EA4899-F086-44EC-BD64-2C10236EE07E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {90EA4899-F086-44EC-BD64-2C10236EE07E}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {19F0E96B-A930-4730-AD7A-3E93D29343B5}
+ EndGlobalSection
+EndGlobal
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/.config/dotnet-tools.json b/Samples/SkiaSampleProject/SkiaSampleProject/.config/dotnet-tools.json
new file mode 100644
index 000000000..efabe22ef
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/.config/dotnet-tools.json
@@ -0,0 +1,36 @@
+{
+ "version": 1,
+ "isRoot": true,
+ "tools": {
+ "dotnet-mgcb": {
+ "version": "3.8.1.303",
+ "commands": [
+ "mgcb"
+ ]
+ },
+ "dotnet-mgcb-editor": {
+ "version": "3.8.1.303",
+ "commands": [
+ "mgcb-editor"
+ ]
+ },
+ "dotnet-mgcb-editor-linux": {
+ "version": "3.8.1.303",
+ "commands": [
+ "mgcb-editor-linux"
+ ]
+ },
+ "dotnet-mgcb-editor-windows": {
+ "version": "3.8.1.303",
+ "commands": [
+ "mgcb-editor-windows"
+ ]
+ },
+ "dotnet-mgcb-editor-mac": {
+ "version": "3.8.1.303",
+ "commands": [
+ "mgcb-editor-mac"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumLastChangeFilePath.txt b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumLastChangeFilePath.txt
new file mode 100644
index 000000000..5d008d8d9
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumLastChangeFilePath.txt
@@ -0,0 +1 @@
+2024-02-12T14:25:04.9198000Z
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ButtonBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ButtonBehavior.behx
new file mode 100644
index 000000000..a3f7d427b
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ButtonBehavior.behx
@@ -0,0 +1,32 @@
+
+
+ ButtonBehavior
+
+
+ ButtonCategory
+
+ Enabled
+
+
+ Disabled
+
+
+ Highlighted
+
+
+ Pushed
+
+
+ HighlightedFocused
+
+
+ Focused
+
+
+ DisabledFocused
+
+
+
+
+ Controls/ButtonStandard
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/CheckBoxBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/CheckBoxBehavior.behx
new file mode 100644
index 000000000..30b9251cb
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/CheckBoxBehavior.behx
@@ -0,0 +1,52 @@
+
+
+ CheckBoxBehavior
+
+
+ CheckBoxCategory
+
+ EnabledOn
+
+
+ EnabledOff
+
+
+ DisabledOn
+
+
+ DisabledOff
+
+
+ HighlightedOn
+
+
+ HighlightedOff
+
+
+ PushedOn
+
+
+ PushedOff
+
+
+ FocusedOn
+
+
+ FocusedOff
+
+
+ HighlightedFocusedOn
+
+
+ HighlightedFocusedOff
+
+
+ DisabledFocusedOn
+
+
+ DisabledFocusedOff
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ComboBoxBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ComboBoxBehavior.behx
new file mode 100644
index 000000000..d595e2398
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ComboBoxBehavior.behx
@@ -0,0 +1,47 @@
+
+
+ ComboBoxBehavior
+
+
+ ComboBoxCategory
+
+ Enabled
+
+
+ Disabled
+
+
+ Highlighted
+
+
+ Pushed
+
+
+ HighlightedFocused
+
+
+ Focused
+
+
+ DisabledFocused
+
+
+
+
+ ListBoxInstance
+ false
+
+
+ ListBoxBehavior
+
+
+
+
+ TextInstance
+ Text
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/DialogBoxBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/DialogBoxBehavior.behx
new file mode 100644
index 000000000..a8d23339a
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/DialogBoxBehavior.behx
@@ -0,0 +1,7 @@
+
+
+ DialogBoxBehavior
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/LabelBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/LabelBehavior.behx
new file mode 100644
index 000000000..09d4c1cbb
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/LabelBehavior.behx
@@ -0,0 +1,14 @@
+
+
+ LabelBehavior
+
+
+
+ TextInstance
+ Text
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ListBoxBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ListBoxBehavior.behx
new file mode 100644
index 000000000..a4f6cb755
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ListBoxBehavior.behx
@@ -0,0 +1,42 @@
+
+
+ ListBoxBehavior
+
+
+ ListBoxCategory
+
+ Enabled
+
+
+ Disabled
+
+
+ Focused
+
+
+ DisabledFocused
+
+
+
+
+ VerticalScrollBarInstance
+ false
+
+
+ ScrollBarBehavior
+
+
+
+
+ InnerPanelInstance
+ false
+
+
+
+ ClipContainerInstance
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ListBoxItemBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ListBoxItemBehavior.behx
new file mode 100644
index 000000000..fb1d4f484
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ListBoxItemBehavior.behx
@@ -0,0 +1,22 @@
+
+
+ ListBoxItemBehavior
+
+
+ ListBoxItemCategory
+
+ Enabled
+
+
+ Highlighted
+
+
+ Selected
+
+
+ Focused
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/OnScreenKeyboardBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/OnScreenKeyboardBehavior.behx
new file mode 100644
index 000000000..1d04f694a
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/OnScreenKeyboardBehavior.behx
@@ -0,0 +1,7 @@
+
+
+ OnScreenKeyboardBehavior
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/PasswordBoxBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/PasswordBoxBehavior.behx
new file mode 100644
index 000000000..034a72026
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/PasswordBoxBehavior.behx
@@ -0,0 +1,22 @@
+
+
+ PasswordBoxBehavior
+
+
+ PasswordBoxCategory
+
+ Enabled
+
+
+ Disabled
+
+
+ Highlighted
+
+
+ Selected
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/PlayerJoinViewBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/PlayerJoinViewBehavior.behx
new file mode 100644
index 000000000..988dbcc5c
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/PlayerJoinViewBehavior.behx
@@ -0,0 +1,13 @@
+
+
+ PlayerJoinViewBehavior
+
+
+
+ InnerPanelInstance
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/PlayerJoinViewItemBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/PlayerJoinViewItemBehavior.behx
new file mode 100644
index 000000000..406e25aa3
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/PlayerJoinViewItemBehavior.behx
@@ -0,0 +1,52 @@
+
+
+ PlayerJoinViewItemBehavior
+
+
+ PlayerJoinCategory
+
+ NotConnected
+
+
+ Connected
+
+
+ ConnectedAndJoined
+
+
+
+ GamepadLayoutCategory
+
+ Unknown
+
+
+ Keyboard
+
+
+ NES
+
+
+ SuperNintendo
+
+
+ Nintendo64
+
+
+ GameCube
+
+
+ SwitchPro
+
+
+ Genesis
+
+
+ Xbox360
+
+
+ PlayStationDualShock
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/RadioButtonBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/RadioButtonBehavior.behx
new file mode 100644
index 000000000..354337391
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/RadioButtonBehavior.behx
@@ -0,0 +1,64 @@
+
+
+ RadioButtonBehavior
+
+
+ RadioButtonCategory
+
+ EnabledOn
+
+
+ EnabledOff
+
+
+ DisabledOn
+
+
+ DisabledOff
+
+
+ HighlightedOn
+
+
+ HighlightedOff
+
+
+ PushedOn
+
+
+ PushedOff
+
+
+ FocusedOn
+
+
+ FocusedOff
+
+
+ HighlightedFocusedOn
+
+
+ HighlightedFocusedOff
+
+
+ DisabledFocusedOn
+
+
+ DisabledFocusedOff
+
+
+
+
+ TextInstance
+ Text
+ false
+
+
+
+ CaretInstance
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ScrollBarBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ScrollBarBehavior.behx
new file mode 100644
index 000000000..3aa95ddc3
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ScrollBarBehavior.behx
@@ -0,0 +1,38 @@
+
+
+ ScrollBarBehavior
+
+
+ ScrollBarCategory
+
+
+
+ UpButtonInstance
+ false
+
+
+ ButtonBehavior
+
+
+
+
+ DownButtonInstance
+ false
+
+
+ ButtonBehavior
+
+
+
+
+ ThumbInstance
+ false
+
+
+ ButtonBehavior
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ScrollViewerBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ScrollViewerBehavior.behx
new file mode 100644
index 000000000..d1feab10a
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ScrollViewerBehavior.behx
@@ -0,0 +1,36 @@
+
+
+ ScrollViewerBehavior
+
+
+ ScrollBarVisibility
+
+ NoScrollBar
+
+
+ VerticalScrollVisible
+
+
+
+
+ VerticalScrollBarInstance
+ false
+
+
+ ScrollBarBehavior
+
+
+
+
+ InnerPanelInstance
+ false
+
+
+
+ ClipContainerInstance
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/SettingsViewBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/SettingsViewBehavior.behx
new file mode 100644
index 000000000..9cabc8fca
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/SettingsViewBehavior.behx
@@ -0,0 +1,7 @@
+
+
+ SettingsViewBehavior
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/SliderBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/SliderBehavior.behx
new file mode 100644
index 000000000..3feba5732
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/SliderBehavior.behx
@@ -0,0 +1,33 @@
+
+
+ SliderBehavior
+
+
+ SliderCategory
+ false
+
+ Enabled
+
+
+ Focused
+
+
+ Highlighted
+
+
+ HighlightedFocused
+
+
+
+
+ ThumbInstance
+ false
+
+
+ ButtonBehavior
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/TextBoxBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/TextBoxBehavior.behx
new file mode 100644
index 000000000..8ecef1109
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/TextBoxBehavior.behx
@@ -0,0 +1,43 @@
+
+
+ TextBoxBehavior
+
+
+ TextBoxCategory
+
+ Enabled
+
+
+ Disabled
+
+
+ Highlighted
+
+
+ Selected
+
+
+
+ LineModeCategory
+
+ Single
+
+
+ Multi
+
+
+
+
+ TextInstance
+ Text
+ false
+
+
+
+ CaretInstance
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ToastBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ToastBehavior.behx
new file mode 100644
index 000000000..a6a372a2f
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ToastBehavior.behx
@@ -0,0 +1,14 @@
+
+
+ ToastBehavior
+
+
+
+ TextInstance
+ Text
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ToggleBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ToggleBehavior.behx
new file mode 100644
index 000000000..b6fb4e8af
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/ToggleBehavior.behx
@@ -0,0 +1,34 @@
+
+
+ ToggleBehavior
+
+
+ ToggleCategory
+
+ EnabledOn
+
+
+ EnabledOff
+
+
+ DisabledOn
+
+
+ DisabledOff
+
+
+ HighlightedOn
+
+
+ HighlightedOff
+
+
+ PushedOn
+
+
+ PushedOff
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/TreeViewBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/TreeViewBehavior.behx
new file mode 100644
index 000000000..bdfd8bd5d
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/TreeViewBehavior.behx
@@ -0,0 +1,42 @@
+
+
+ TreeViewBehavior
+
+
+ TreeViewCategory
+
+ Enabled
+
+
+ Disabled
+
+
+ Focused
+
+
+ DisabledFocused
+
+
+
+
+ VerticalScrollBarInstance
+ false
+
+
+ ScrollBarBehavior
+
+
+
+
+ InnerPanelInstance
+ false
+
+
+
+ ClipContainerInstance
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/TreeViewItemBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/TreeViewItemBehavior.behx
new file mode 100644
index 000000000..f9ac41c70
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/TreeViewItemBehavior.behx
@@ -0,0 +1,13 @@
+
+
+ TreeViewItemBehavior
+
+
+
+ InnerPanelInstance
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/UserControlBehavior.behx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/UserControlBehavior.behx
new file mode 100644
index 000000000..f91fdf8d2
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Behaviors/UserControlBehavior.behx
@@ -0,0 +1,7 @@
+
+
+ UserControlBehavior
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonClose.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonClose.gucx
new file mode 100644
index 000000000..140f909be
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonClose.gucx
@@ -0,0 +1,356 @@
+
+
+ Controls/ButtonClose
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ Danger
+ true
+
+
+ float
+ Background.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Height Units
+ 2
+ true
+
+
+ string
+ Background.Parent
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Bordered
+ true
+
+
+ float
+ Background.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Width Units
+ 2
+ true
+
+
+ float
+ Background.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ Background.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.X Units
+ 6
+ true
+
+
+ float
+ Background.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ Background.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.Y Units
+ 7
+ true
+
+
+ ButtonCategory
+ ButtonCategoryState
+ false
+
+
+ bool
+ ExposeChildrenEvents
+ false
+ true
+
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 32
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 0
+ true
+
+
+ IconCategory
+ Icon.IconCategoryState
+ Close
+ true
+
+
+ State
+ State
+ true
+
+
+ float
+ Width
+ 32
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 0
+ true
+
+
+
+ ButtonCategory
+ false
+
+ Enabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ Danger
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ White
+ IconColor
+ true
+
+
+
+ Disabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ string
+ Icon.IconColor
+ Gray
+ true
+
+
+
+ Highlighted
+
+ ColorCategory
+ Background.ColorCategoryState
+ Warning
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ White
+ IconColor
+ true
+
+
+
+ Pushed
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ White
+ IconColor
+ true
+
+
+
+ HighlightedFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ Warning
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ White
+ IconColor
+ true
+
+
+
+ Focused
+
+ ColorCategory
+ Background.ColorCategoryState
+ Danger
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ White
+ IconColor
+ true
+
+
+
+ DisabledFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ Gray
+ IconColor
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ Icon
+ Elements/Icon
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+
+ ButtonBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonConfirm.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonConfirm.gucx
new file mode 100644
index 000000000..a454e2988
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonConfirm.gucx
@@ -0,0 +1,375 @@
+
+
+ Controls/ButtonConfirm
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ Success
+ true
+
+
+ float
+ Background.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Height Units
+ 2
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Bordered
+ true
+
+
+ float
+ Background.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Width Units
+ 2
+ true
+
+
+ float
+ Background.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ Background.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.X Units
+ 6
+ true
+
+
+ float
+ Background.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ Background.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.Y Units
+ 7
+ true
+
+
+ ButtonCategory
+ ButtonCategoryState
+ false
+
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 32
+ true
+
+
+ State
+ State
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+ DimensionUnitType
+ TextInstance.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ TextInstance.HorizontalAlignment
+ 1
+ true
+
+
+ SizeCategory
+ TextInstance.SizeCategoryState
+ Strong
+ true
+
+
+ StyleCategory
+ TextInstance.StyleCategoryState
+ Strong
+ true
+
+
+ string
+ TextInstance.Text
+ Okay
+ ButtonDisplayText
+ true
+
+
+ VerticalAlignment
+ TextInstance.VerticalAlignment
+ 1
+ true
+
+
+ DimensionUnitType
+ TextInstance.Width Units
+ 2
+ true
+
+
+ float
+ Width
+ 128
+ true
+
+
+
+ ButtonCategory
+ false
+
+ Enabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ Success
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Disabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+ Highlighted
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Pushed
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryDark
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ HighlightedFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Focused
+
+ ColorCategory
+ Background.ColorCategoryState
+ Success
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ DisabledFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ TextInstance
+ Text
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+
+ ButtonBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonDeny.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonDeny.gucx
new file mode 100644
index 000000000..52138e221
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonDeny.gucx
@@ -0,0 +1,375 @@
+
+
+ Controls/ButtonDeny
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ Danger
+ true
+
+
+ float
+ Background.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Height Units
+ 2
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Bordered
+ true
+
+
+ float
+ Background.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Width Units
+ 2
+ true
+
+
+ float
+ Background.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ Background.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.X Units
+ 6
+ true
+
+
+ float
+ Background.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ Background.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.Y Units
+ 7
+ true
+
+
+ ButtonCategory
+ ButtonCategoryState
+ false
+
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 32
+ true
+
+
+ State
+ State
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+ DimensionUnitType
+ TextInstance.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ TextInstance.HorizontalAlignment
+ 1
+ true
+
+
+ SizeCategory
+ TextInstance.SizeCategoryState
+ Strong
+ true
+
+
+ StyleCategory
+ TextInstance.StyleCategoryState
+ Strong
+ true
+
+
+ string
+ TextInstance.Text
+ Cancel
+ ButtonDisplayText
+ true
+
+
+ VerticalAlignment
+ TextInstance.VerticalAlignment
+ 1
+ true
+
+
+ DimensionUnitType
+ TextInstance.Width Units
+ 2
+ true
+
+
+ float
+ Width
+ 128
+ true
+
+
+
+ ButtonCategory
+ false
+
+ Enabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ Danger
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Disabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+ Highlighted
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Pushed
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryDark
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ HighlightedFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Focused
+
+ ColorCategory
+ Background.ColorCategoryState
+ Danger
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ DisabledFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ TextInstance
+ Text
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+
+ ButtonBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonIcon.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonIcon.gucx
new file mode 100644
index 000000000..fa5b1a310
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonIcon.gucx
@@ -0,0 +1,409 @@
+
+
+ Controls/ButtonIcon
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ float
+ Background.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Height Units
+ 2
+ true
+
+
+ string
+ Background.Parent
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Bordered
+ true
+
+
+ float
+ Background.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Width Units
+ 2
+ true
+
+
+ float
+ Background.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ Background.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.X Units
+ 6
+ true
+
+
+ float
+ Background.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ Background.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.Y Units
+ 7
+ true
+
+
+ ButtonCategory
+ ButtonCategoryState
+ false
+
+
+ bool
+ ExposeChildrenEvents
+ false
+ true
+
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 32
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 0
+ true
+
+
+ float
+ Icon.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Icon.Height Units
+ 2
+ true
+
+
+ IconCategory
+ Icon.IconCategoryState
+ IconCategory
+ false
+
+
+ float
+ Icon.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Icon.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ Icon.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Icon.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ Icon.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Icon.Y Units
+ 7
+ true
+
+
+ State
+ State
+ true
+
+
+ float
+ Width
+ 32
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 0
+ true
+
+
+
+ ButtonCategory
+ false
+
+ Enabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ White
+ IconColor
+ true
+
+
+
+ Disabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ string
+ Icon.IconColor
+ Gray
+ true
+
+
+
+ Highlighted
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ White
+ IconColor
+ true
+
+
+
+ Pushed
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryDark
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ White
+ IconColor
+ true
+
+
+
+ HighlightedFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ White
+ IconColor
+ true
+
+
+
+ Focused
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ White
+ IconColor
+ true
+
+
+
+ DisabledFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ Gray
+ IconColor
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ Icon
+ Elements/Icon
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+
+ ButtonBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonStandard.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonStandard.gucx
new file mode 100644
index 000000000..9cc7f81d6
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonStandard.gucx
@@ -0,0 +1,375 @@
+
+
+ Controls/ButtonStandard
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ float
+ Background.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Height Units
+ 2
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Bordered
+ true
+
+
+ float
+ Background.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Width Units
+ 2
+ true
+
+
+ float
+ Background.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ Background.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.X Units
+ 6
+ true
+
+
+ float
+ Background.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ Background.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.Y Units
+ 7
+ true
+
+
+ ButtonCategory
+ ButtonCategoryState
+ false
+
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 32
+ true
+
+
+ State
+ State
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+ DimensionUnitType
+ TextInstance.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ TextInstance.HorizontalAlignment
+ 1
+ true
+
+
+ SizeCategory
+ TextInstance.SizeCategoryState
+ Strong
+ true
+
+
+ StyleCategory
+ TextInstance.StyleCategoryState
+ Strong
+ true
+
+
+ string
+ TextInstance.Text
+ Click Me
+ ButtonDisplayText
+ true
+
+
+ VerticalAlignment
+ TextInstance.VerticalAlignment
+ 1
+ true
+
+
+ DimensionUnitType
+ TextInstance.Width Units
+ 2
+ true
+
+
+ float
+ Width
+ 128
+ true
+
+
+
+ ButtonCategory
+ false
+
+ Enabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Disabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+ Highlighted
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Pushed
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryDark
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ HighlightedFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Focused
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ DisabledFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ TextInstance
+ Text
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+
+ ButtonBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonStandardIcon.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonStandardIcon.gucx
new file mode 100644
index 000000000..eae328d6c
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonStandardIcon.gucx
@@ -0,0 +1,472 @@
+
+
+ Controls/ButtonStandardIcon
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ float
+ Background.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Height Units
+ 2
+ true
+
+
+ string
+ Background.Parent
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Bordered
+ true
+
+
+ float
+ Background.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Width Units
+ 2
+ true
+
+
+ float
+ Background.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ Background.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.X Units
+ 6
+ true
+
+
+ float
+ Background.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ Background.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.Y Units
+ 7
+ true
+
+
+ ButtonCategory
+ ButtonCategoryState
+ false
+
+
+ bool
+ ExposeChildrenEvents
+ false
+ true
+
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 32
+ true
+
+
+ IconCategory
+ Icon.IconCategoryState
+ ButtonIcon
+ false
+
+
+ ColorCategory
+ Icon.IconColor
+ PrimaryDark
+ true
+
+
+ string
+ Icon.Parent
+ true
+
+
+ State
+ State
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+ DimensionUnitType
+ TextInstance.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ TextInstance.HorizontalAlignment
+ 0
+ true
+
+
+ string
+ TextInstance.Parent
+ true
+
+
+ SizeCategory
+ TextInstance.SizeCategoryState
+ Strong
+ true
+
+
+ StyleCategory
+ TextInstance.StyleCategoryState
+ Strong
+ true
+
+
+ string
+ TextInstance.Text
+ ButtonDisplayText
+ false
+
+
+ VerticalAlignment
+ TextInstance.VerticalAlignment
+ 1
+ true
+
+
+ float
+ TextInstance.Width
+ -32
+ true
+
+
+ DimensionUnitType
+ TextInstance.Width Units
+ 2
+ true
+
+
+ float
+ TextInstance.X
+ 32
+ true
+
+
+ float
+ Width
+ 128
+ true
+
+
+
+ ButtonCategory
+ false
+
+ Enabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ PrimaryDark
+ IconColor
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Disabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ string
+ Icon.IconColor
+ Gray
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+ Highlighted
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ Primary
+ IconColor
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Pushed
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryDark
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ Primary
+ IconColor
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ HighlightedFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ Primary
+ IconColor
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Focused
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ PrimaryDark
+ IconColor
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ DisabledFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ Icon.IconColor
+ Gray
+ IconColor
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ TextInstance
+ Text
+ false
+
+
+ Icon
+ Elements/Icon
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+
+ ButtonBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonTab.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonTab.gucx
new file mode 100644
index 000000000..05edb3305
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ButtonTab.gucx
@@ -0,0 +1,376 @@
+
+
+ Controls/ButtonTab
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ TabBordered
+ true
+
+
+ float
+ Background.Width
+ 32
+ true
+
+
+ DimensionUnitType
+ Background.Width Units
+ 4
+ true
+
+
+ ButtonCategory
+ ButtonCategoryState
+ false
+
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ Background
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Width
+ -8
+ true
+
+
+ float
+ FocusedIndicator.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 32
+ true
+
+
+ State
+ State
+ true
+
+
+ ColorCategory
+ TabText.ColorCategoryState
+ White
+ true
+
+
+ DimensionUnitType
+ TabText.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ TabText.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ TabText.Parent
+ Background
+ true
+
+
+ StyleCategory
+ TabText.StyleCategoryState
+ Strong
+ true
+
+
+ string
+ TabText.Text
+ Tab 1
+ TabDisplayText
+ true
+
+
+ VerticalAlignment
+ TabText.VerticalAlignment
+ 1
+ true
+
+
+ HorizontalAlignment
+ TabText.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TabText.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ TabText.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TabText.Y Units
+ 7
+ true
+
+
+ float
+ Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 4
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ Y Origin
+ 2
+ true
+
+
+
+ ButtonCategory
+ false
+
+ Enabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TabText.ColorCategoryState
+ White
+ true
+
+
+
+ Disabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TabText.ColorCategoryState
+ Gray
+ true
+
+
+
+ Highlighted
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TabText.ColorCategoryState
+ White
+ true
+
+
+
+ Pushed
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryDark
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TabText.ColorCategoryState
+ White
+ true
+
+
+
+ HighlightedFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TabText.ColorCategoryState
+ White
+ true
+
+
+
+ Focused
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TabText.ColorCategoryState
+ White
+ true
+
+
+
+ DisabledFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TabText.ColorCategoryState
+ Gray
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ TabText
+ Text
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+
+ ButtonBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/CheckBox.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/CheckBox.gucx
new file mode 100644
index 000000000..595eadc5f
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/CheckBox.gucx
@@ -0,0 +1,749 @@
+
+
+ Controls/CheckBox
+ Container
+
+ Default
+
+ float
+ Check.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Check.Height Units
+ 2
+ true
+
+
+ IconCategory
+ Check.IconCategoryState
+ Check
+ true
+
+
+ ColorCategory
+ Check.IconColor
+ White
+ true
+
+
+ string
+ Check.Parent
+ CheckboxBackground
+ true
+
+
+ float
+ Check.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Check.Width Units
+ 2
+ true
+
+
+ ColorCategory
+ CheckboxBackground.ColorCategoryState
+ Primary
+ true
+
+
+ float
+ CheckboxBackground.Height
+ 24
+ true
+
+
+ DimensionUnitType
+ CheckboxBackground.Height Units
+ 0
+ true
+
+
+ StyleCategory
+ CheckboxBackground.StyleCategoryState
+ Bordered
+ true
+
+
+ float
+ CheckboxBackground.Width
+ 24
+ true
+
+
+ DimensionUnitType
+ CheckboxBackground.Width Units
+ 0
+ true
+
+
+ HorizontalAlignment
+ CheckboxBackground.X Origin
+ 0
+ true
+
+
+ PositionUnitType
+ CheckboxBackground.X Units
+ 0
+ true
+
+
+ CheckBoxCategory
+ CheckBoxCategoryState
+ false
+
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 24
+ true
+
+
+ State
+ State
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+ float
+ TextInstance.Height
+ 32
+ true
+
+
+ DimensionUnitType
+ TextInstance.Height Units
+ 0
+ true
+
+
+ HorizontalAlignment
+ TextInstance.HorizontalAlignment
+ 0
+ true
+
+
+ SizeCategory
+ TextInstance.SizeCategoryState
+ Normal
+ true
+
+
+ StyleCategory
+ TextInstance.StyleCategoryState
+ Normal
+ true
+
+
+ string
+ TextInstance.Text
+ Checkbox Label
+ CheckboxDisplayText
+ true
+
+
+ VerticalAlignment
+ TextInstance.VerticalAlignment
+ 1
+ true
+
+
+ float
+ TextInstance.Width
+ -28
+ true
+
+
+ DimensionUnitType
+ TextInstance.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ TextInstance.X Origin
+ 2
+ true
+
+
+ PositionUnitType
+ TextInstance.X Units
+ 4
+ true
+
+
+ VerticalAlignment
+ TextInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TextInstance.Y Units
+ 7
+ true
+
+
+ float
+ Width
+ 128
+ true
+
+
+
+ CheckBoxCategory
+ false
+
+ EnabledOn
+
+ ColorCategory
+ Check.IconColor
+ White
+ true
+
+
+ bool
+ Check.Visible
+ true
+ true
+
+
+ ColorCategory
+ CheckboxBackground.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ EnabledOff
+
+ ColorCategory
+ Check.IconColor
+ White
+ true
+
+
+ bool
+ Check.Visible
+ false
+ true
+
+
+ ColorCategory
+ CheckboxBackground.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ DisabledOn
+
+ ColorCategory
+ Check.IconColor
+ Gray
+ true
+
+
+ bool
+ Check.Visible
+ true
+ true
+
+
+ ColorCategory
+ CheckboxBackground.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+ DisabledOff
+
+ ColorCategory
+ Check.IconColor
+ White
+ true
+
+
+ bool
+ Check.Visible
+ false
+ true
+
+
+ ColorCategory
+ CheckboxBackground.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+ HighlightedOn
+
+ ColorCategory
+ Check.IconColor
+ White
+ true
+
+
+ bool
+ Check.Visible
+ true
+ true
+
+
+ ColorCategory
+ CheckboxBackground.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ HighlightedOff
+
+ ColorCategory
+ Check.IconColor
+ White
+ true
+
+
+ bool
+ Check.Visible
+ false
+ true
+
+
+ ColorCategory
+ CheckboxBackground.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ PushedOn
+
+ ColorCategory
+ Check.IconColor
+ White
+ true
+
+
+ bool
+ Check.Visible
+ true
+ true
+
+
+ ColorCategory
+ CheckboxBackground.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ PushedOff
+
+ ColorCategory
+ Check.IconColor
+ White
+ true
+
+
+ bool
+ Check.Visible
+ false
+ true
+
+
+ ColorCategory
+ CheckboxBackground.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ FocusedOn
+
+ ColorCategory
+ Check.IconColor
+ White
+ true
+
+
+ bool
+ Check.Visible
+ true
+ true
+
+
+ ColorCategory
+ CheckboxBackground.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ FocusedOff
+
+ ColorCategory
+ Check.IconColor
+ White
+ true
+
+
+ bool
+ Check.Visible
+ false
+ true
+
+
+ ColorCategory
+ CheckboxBackground.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ HighlightedFocusedOn
+
+ ColorCategory
+ Check.IconColor
+ White
+ true
+
+
+ bool
+ Check.Visible
+ true
+ true
+
+
+ ColorCategory
+ CheckboxBackground.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ HighlightedFocusedOff
+
+ ColorCategory
+ Check.IconColor
+ White
+ true
+
+
+ bool
+ Check.Visible
+ false
+ true
+
+
+ ColorCategory
+ CheckboxBackground.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ DisabledFocusedOn
+
+ ColorCategory
+ Check.IconColor
+ Gray
+ true
+
+
+ bool
+ Check.Visible
+ true
+ true
+
+
+ ColorCategory
+ CheckboxBackground.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+ DisabledFocusedOff
+
+ ColorCategory
+ Check.IconColor
+ White
+ true
+
+
+ bool
+ Check.Visible
+ false
+ true
+
+
+ ColorCategory
+ CheckboxBackground.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+
+ CheckboxBackground
+ NineSlice
+ false
+
+
+ TextInstance
+ Text
+ false
+
+
+ Check
+ Elements/Icon
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+
+ CheckBoxBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ComboBox.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ComboBox.gucx
new file mode 100644
index 000000000..d88ee10c0
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ComboBox.gucx
@@ -0,0 +1,498 @@
+
+
+ Controls/ComboBox
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ float
+ Background.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Height Units
+ 2
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Solid
+ true
+
+
+ float
+ Background.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Width Units
+ 2
+ true
+
+
+ float
+ Background.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ Background.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.X Units
+ 6
+ true
+
+
+ float
+ Background.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ Background.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.Y Units
+ 7
+ true
+
+
+ ComboBoxCategory
+ ComboBoxCategoryState
+ false
+
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 24
+ true
+
+
+ bool
+ IconInstance.ExposeChildrenEvents
+ false
+ true
+
+
+ bool
+ IconInstance.HasEvents
+ false
+ true
+
+
+ float
+ IconInstance.Height
+ 24
+ true
+
+
+ IconCategory
+ IconInstance.IconCategoryState
+ Arrow2
+ true
+
+
+ ColorCategory
+ IconInstance.IconColor
+ Primary
+ true
+
+
+ float
+ IconInstance.Rotation
+ -90
+ true
+
+
+ float
+ IconInstance.Width
+ 24
+ true
+
+
+ HorizontalAlignment
+ IconInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ IconInstance.X Units
+ 4
+ true
+
+
+ VerticalAlignment
+ IconInstance.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ IconInstance.Y Units
+ 7
+ true
+
+
+ float
+ ListBoxInstance.Height
+ 128
+ true
+
+
+ bool
+ ListBoxInstance.Visible
+ false
+ true
+
+
+ float
+ ListBoxInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ ListBoxInstance.Width Units
+ 2
+ true
+
+
+ float
+ ListBoxInstance.Y
+ 28
+ true
+
+
+ State
+ State
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+ DimensionUnitType
+ TextInstance.Height Units
+ 2
+ true
+
+
+ StyleCategory
+ TextInstance.StyleCategoryState
+ Strong
+ true
+
+
+ string
+ TextInstance.Text
+ Selected Item
+ true
+
+
+ VerticalAlignment
+ TextInstance.VerticalAlignment
+ 1
+ true
+
+
+ float
+ TextInstance.Width
+ -8
+ true
+
+
+ DimensionUnitType
+ TextInstance.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ TextInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TextInstance.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ TextInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TextInstance.Y Units
+ 7
+ true
+
+
+ float
+ Width
+ 256
+ true
+
+
+
+ ComboBoxCategory
+ false
+
+ Enabled
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ IconInstance.IconColor
+ Primary
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Disabled
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ IconInstance.IconColor
+ Gray
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+ Highlighted
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ IconInstance.IconColor
+ PrimaryLight
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ PrimaryLight
+ true
+
+
+
+ Pushed
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ IconInstance.IconColor
+ PrimaryDark
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ PrimaryDark
+ true
+
+
+
+ HighlightedFocused
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ IconInstance.IconColor
+ Primary
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Focused
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ IconInstance.IconColor
+ Primary
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ DisabledFocused
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ IconInstance.IconColor
+ Primary
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ TextInstance
+ Text
+ false
+
+
+ ListBoxInstance
+ Controls/ListBox
+ false
+
+
+ IconInstance
+ Elements/Icon
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+
+ ComboBoxBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/DialogBox.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/DialogBox.gucx
new file mode 100644
index 000000000..bc3ee8f35
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/DialogBox.gucx
@@ -0,0 +1,189 @@
+
+
+ Controls/DialogBox
+ Container
+
+ Default
+
+ float
+ ContinueIndicatorInstance.Height
+ 24
+ true
+
+
+ IconCategory
+ ContinueIndicatorInstance.IconCategory
+ Arrow3
+ true
+
+
+ IconCategory
+ ContinueIndicatorInstance.IconCategoryState
+ Arrow2
+ true
+
+
+ float
+ ContinueIndicatorInstance.Rotation
+ -90
+ true
+
+
+ float
+ ContinueIndicatorInstance.Width
+ 24
+ true
+
+
+ float
+ ContinueIndicatorInstance.X
+ -8
+ true
+
+
+ HorizontalAlignment
+ ContinueIndicatorInstance.X Origin
+ 2
+ true
+
+
+ PositionUnitType
+ ContinueIndicatorInstance.X Units
+ 4
+ true
+
+
+ float
+ ContinueIndicatorInstance.Y
+ -8
+ true
+
+
+ VerticalAlignment
+ ContinueIndicatorInstance.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ ContinueIndicatorInstance.Y Units
+ 5
+ true
+
+
+ bool
+ ExposeChildrenEvents
+ false
+ true
+
+
+ float
+ Height
+ 128
+ true
+
+
+ ColorCategory
+ NineSliceInstance.ColorCategoryState
+ Primary
+ true
+
+
+ StyleCategory
+ NineSliceInstance.StyleCategoryState
+ Panel
+ true
+
+
+ State
+ State
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+ float
+ TextInstance.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ TextInstance.Height Units
+ 4
+ true
+
+
+ StyleCategory
+ TextInstance.StyleCategoryState
+ Normal
+ true
+
+
+ string
+ TextInstance.Text
+ This is a dialog box. This text will be displayed one character at a time. Typically a dialog box is added to a Screen such as the GameScreen, but it defaults to being invisible.
+ true
+
+
+ float
+ TextInstance.Width
+ -16
+ true
+
+
+ DimensionUnitType
+ TextInstance.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ TextInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TextInstance.X Units
+ 6
+ true
+
+
+ float
+ TextInstance.Y
+ 8
+ true
+
+
+ float
+ Width
+ 256
+ true
+
+
+
+ NineSliceInstance
+ NineSlice
+ false
+
+
+ TextInstance
+ Text
+ false
+
+
+ ContinueIndicatorInstance
+ Elements/Icon
+ false
+
+
+
+ DialogBoxBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/Keyboard.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/Keyboard.gucx
new file mode 100644
index 000000000..b16abe3c5
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/Keyboard.gucx
@@ -0,0 +1,4435 @@
+
+
+ Controls/Keyboard
+ Container
+
+ Default
+
+ ChildrenLayout
+ AllRows.Children Layout
+ 1
+ true
+
+
+ float
+ AllRows.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ AllRows.Height Units
+ 2
+ true
+
+
+ float
+ AllRows.Width
+ 90
+ true
+
+
+ DimensionUnitType
+ AllRows.Width Units
+ 1
+ true
+
+
+ float
+ AllRows.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ AllRows.X Origin
+ 0
+ true
+
+
+ PositionUnitType
+ AllRows.X Units
+ 0
+ true
+
+
+ float
+ AllRows.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ AllRows.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ AllRows.Y Units
+ 7
+ true
+
+
+ CursorMoveCategory
+ CursorMoveCategoryState
+ false
+
+
+ float
+ Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 2
+ true
+
+
+ int
+ HighlightRectangle.Blue
+ 0
+ true
+
+
+ int
+ HighlightRectangle.Green
+ 128
+ true
+
+
+ float
+ HighlightRectangle.Height
+ -6
+ true
+
+
+ DimensionUnitType
+ HighlightRectangle.Height Units
+ 2
+ true
+
+
+ int
+ HighlightRectangle.Red
+ 0
+ true
+
+
+ bool
+ HighlightRectangle.Visible
+ false
+ true
+
+
+ float
+ HighlightRectangle.Width
+ -6
+ true
+
+
+ DimensionUnitType
+ HighlightRectangle.Width Units
+ 2
+ true
+
+
+ float
+ HighlightRectangle.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ HighlightRectangle.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ HighlightRectangle.X Units
+ 6
+ true
+
+
+ float
+ HighlightRectangle.Y
+ -1
+ true
+
+
+ VerticalAlignment
+ HighlightRectangle.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ HighlightRectangle.Y Units
+ 7
+ true
+
+
+ IconCategory
+ IconInstance.IconCategoryState
+ Delete
+ true
+
+
+ string
+ IconInstance.Parent
+ KeyBackspace
+ true
+
+
+ HorizontalAlignment
+ IconInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ IconInstance.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ IconInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ IconInstance.Y Units
+ 7
+ true
+
+
+ IconCategory
+ IconInstance1.IconCategoryState
+ Enter
+ true
+
+
+ string
+ IconInstance1.Parent
+ KeyReturn
+ true
+
+
+ HorizontalAlignment
+ IconInstance1.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ IconInstance1.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ IconInstance1.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ IconInstance1.Y Units
+ 7
+ true
+
+
+ bool
+ IconInstance2.FlipHorizontal
+ true
+ true
+
+
+ IconCategory
+ IconInstance2.IconCategoryState
+ Arrow1
+ true
+
+
+ string
+ IconInstance2.Parent
+ KeyLeft
+ true
+
+
+ HorizontalAlignment
+ IconInstance2.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ IconInstance2.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ IconInstance2.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ IconInstance2.Y Units
+ 7
+ true
+
+
+ bool
+ IconInstance3.FlipHorizontal
+ false
+ true
+
+
+ IconCategory
+ IconInstance3.IconCategoryState
+ Arrow1
+ true
+
+
+ string
+ IconInstance3.Parent
+ KeyRight
+ true
+
+
+ HorizontalAlignment
+ IconInstance3.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ IconInstance3.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ IconInstance3.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ IconInstance3.Y Units
+ 7
+ true
+
+
+ bool
+ IsXamarinFormsControl
+ false
+ true
+
+
+ ColorCategory
+ Key0.ColorCategoryState
+ White
+ true
+
+
+ float
+ Key0.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Key0.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ Key0.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ Key0.Parent
+ Row1Keys
+ true
+
+
+ SizeCategoryState
+ Key0.SizeCategoryState
+ Small
+ true
+
+
+ string
+ Key0.Text
+ 0
+ true
+
+
+ VerticalAlignment
+ Key0.VerticalAlignment
+ 1
+ true
+
+
+ float
+ Key0.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ Key0.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ Key0.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Key0.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ Key1.ColorCategoryState
+ White
+ true
+
+
+ float
+ Key1.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Key1.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ Key1.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ Key1.Parent
+ Row1Keys
+ true
+
+
+ SizeCategoryState
+ Key1.SizeCategoryState
+ Small
+ true
+
+
+ string
+ Key1.Text
+ 1
+ true
+
+
+ VerticalAlignment
+ Key1.VerticalAlignment
+ 1
+ true
+
+
+ float
+ Key1.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ Key1.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ Key1.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Key1.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ Key2.ColorCategoryState
+ White
+ true
+
+
+ float
+ Key2.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Key2.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ Key2.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ Key2.Parent
+ Row1Keys
+ true
+
+
+ SizeCategoryState
+ Key2.SizeCategoryState
+ Small
+ true
+
+
+ string
+ Key2.Text
+ 2
+ true
+
+
+ VerticalAlignment
+ Key2.VerticalAlignment
+ 1
+ true
+
+
+ float
+ Key2.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ Key2.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ Key2.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Key2.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ Key3.ColorCategoryState
+ White
+ true
+
+
+ float
+ Key3.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Key3.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ Key3.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ Key3.Parent
+ Row1Keys
+ true
+
+
+ SizeCategoryState
+ Key3.SizeCategoryState
+ Small
+ true
+
+
+ string
+ Key3.Text
+ 3
+ true
+
+
+ VerticalAlignment
+ Key3.VerticalAlignment
+ 1
+ true
+
+
+ float
+ Key3.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ Key3.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ Key3.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Key3.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ Key4.ColorCategoryState
+ White
+ true
+
+
+ float
+ Key4.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Key4.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ Key4.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ Key4.Parent
+ Row1Keys
+ true
+
+
+ SizeCategoryState
+ Key4.SizeCategoryState
+ Small
+ true
+
+
+ string
+ Key4.Text
+ 4
+ true
+
+
+ VerticalAlignment
+ Key4.VerticalAlignment
+ 1
+ true
+
+
+ float
+ Key4.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ Key4.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ Key4.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Key4.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ Key5.ColorCategoryState
+ White
+ true
+
+
+ float
+ Key5.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Key5.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ Key5.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ Key5.Parent
+ Row1Keys
+ true
+
+
+ SizeCategoryState
+ Key5.SizeCategoryState
+ Small
+ true
+
+
+ string
+ Key5.Text
+ 5
+ true
+
+
+ VerticalAlignment
+ Key5.VerticalAlignment
+ 1
+ true
+
+
+ float
+ Key5.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ Key5.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ Key5.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Key5.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ Key6.ColorCategoryState
+ White
+ true
+
+
+ float
+ Key6.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Key6.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ Key6.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ Key6.Parent
+ Row1Keys
+ true
+
+
+ SizeCategoryState
+ Key6.SizeCategoryState
+ Small
+ true
+
+
+ string
+ Key6.Text
+ 6
+ true
+
+
+ VerticalAlignment
+ Key6.VerticalAlignment
+ 1
+ true
+
+
+ float
+ Key6.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ Key6.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ Key6.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Key6.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ Key7.ColorCategoryState
+ White
+ true
+
+
+ float
+ Key7.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Key7.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ Key7.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ Key7.Parent
+ Row1Keys
+ true
+
+
+ SizeCategoryState
+ Key7.SizeCategoryState
+ Small
+ true
+
+
+ string
+ Key7.Text
+ 7
+ true
+
+
+ VerticalAlignment
+ Key7.VerticalAlignment
+ 1
+ true
+
+
+ float
+ Key7.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ Key7.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ Key7.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Key7.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ Key8.ColorCategoryState
+ White
+ true
+
+
+ float
+ Key8.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Key8.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ Key8.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ Key8.Parent
+ Row1Keys
+ true
+
+
+ SizeCategoryState
+ Key8.SizeCategoryState
+ Small
+ true
+
+
+ string
+ Key8.Text
+ 8
+ true
+
+
+ VerticalAlignment
+ Key8.VerticalAlignment
+ 1
+ true
+
+
+ float
+ Key8.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ Key8.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ Key8.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Key8.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ Key9.ColorCategoryState
+ White
+ true
+
+
+ float
+ Key9.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Key9.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ Key9.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ Key9.Parent
+ Row1Keys
+ true
+
+
+ SizeCategoryState
+ Key9.SizeCategoryState
+ Small
+ true
+
+
+ string
+ Key9.Text
+ 9
+ true
+
+
+ VerticalAlignment
+ Key9.VerticalAlignment
+ 1
+ true
+
+
+ float
+ Key9.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ Key9.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ Key9.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Key9.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyA.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyA.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyA.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyA.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyA.Parent
+ Row3Keys
+ true
+
+
+ SizeCategoryState
+ KeyA.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyA.Text
+ A
+ true
+
+
+ VerticalAlignment
+ KeyA.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyA.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyA.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyA.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyA.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyAmpersand.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyAmpersand.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyAmpersand.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyAmpersand.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyAmpersand.Parent
+ Row5Keys
+ true
+
+
+ SizeCategoryState
+ KeyAmpersand.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyAmpersand.Text
+ &
+ true
+
+
+ VerticalAlignment
+ KeyAmpersand.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyAmpersand.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyAmpersand.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyAmpersand.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyAmpersand.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyB.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyB.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyB.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyB.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyB.Parent
+ Row4Keys
+ true
+
+
+ SizeCategoryState
+ KeyB.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyB.Text
+ B
+ true
+
+
+ VerticalAlignment
+ KeyB.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyB.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyB.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyB.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyB.Y Units
+ 7
+ true
+
+
+ string
+ KeyBackspace.ButtonDisplayText
+
+ true
+
+
+ float
+ KeyBackspace.Height
+ 20
+ true
+
+
+ DimensionUnitType
+ KeyBackspace.Height Units
+ 1
+ true
+
+
+ string
+ KeyBackspace.Parent
+ true
+
+
+ string
+ KeyBackspace.Text
+
+ true
+
+
+ float
+ KeyBackspace.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyBackspace.Width Units
+ 1
+ true
+
+
+ HorizontalAlignment
+ KeyBackspace.X Origin
+ 2
+ true
+
+
+ PositionUnitType
+ KeyBackspace.X Units
+ 4
+ true
+
+
+ ColorCategory
+ KeyBang.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyBang.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyBang.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyBang.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyBang.Parent
+ Row5Keys
+ true
+
+
+ SizeCategoryState
+ KeyBang.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyBang.Text
+ !
+ true
+
+
+ VerticalAlignment
+ KeyBang.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyBang.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyBang.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyBang.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyBang.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyC.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyC.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyC.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyC.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyC.Parent
+ Row4Keys
+ true
+
+
+ SizeCategoryState
+ KeyC.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyC.Text
+ C
+ true
+
+
+ VerticalAlignment
+ KeyC.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyC.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyC.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyC.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyC.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyComma.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyComma.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyComma.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyComma.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyComma.Parent
+ Row4Keys
+ true
+
+
+ SizeCategoryState
+ KeyComma.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyComma.Text
+ ,
+ true
+
+
+ VerticalAlignment
+ KeyComma.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyComma.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyComma.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyComma.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyComma.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyD.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyD.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyD.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyD.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyD.Parent
+ Row3Keys
+ true
+
+
+ SizeCategoryState
+ KeyD.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyD.Text
+ D
+ true
+
+
+ VerticalAlignment
+ KeyD.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyD.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyD.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyD.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyD.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyE.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyE.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyE.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyE.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyE.Parent
+ Row2Keys
+ true
+
+
+ SizeCategoryState
+ KeyE.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyE.Text
+ E
+ true
+
+
+ VerticalAlignment
+ KeyE.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyE.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyE.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyE.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyE.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyF.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyF.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyF.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyF.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyF.Parent
+ Row3Keys
+ true
+
+
+ SizeCategoryState
+ KeyF.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyF.Text
+ F
+ true
+
+
+ VerticalAlignment
+ KeyF.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyF.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyF.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyF.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyF.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyG.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyG.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyG.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyG.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyG.Parent
+ Row3Keys
+ true
+
+
+ SizeCategoryState
+ KeyG.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyG.Text
+ G
+ true
+
+
+ VerticalAlignment
+ KeyG.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyG.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyG.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyG.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyG.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyH.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyH.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyH.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyH.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyH.Parent
+ Row3Keys
+ true
+
+
+ SizeCategoryState
+ KeyH.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyH.Text
+ H
+ true
+
+
+ VerticalAlignment
+ KeyH.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyH.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyH.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyH.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyH.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyHyphen.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyHyphen.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyHyphen.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyHyphen.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyHyphen.Parent
+ Row4Keys
+ true
+
+
+ SizeCategoryState
+ KeyHyphen.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyHyphen.Text
+ -
+ true
+
+
+ VerticalAlignment
+ KeyHyphen.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyHyphen.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyHyphen.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyHyphen.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyHyphen.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyI.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyI.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyI.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyI.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyI.Parent
+ Row2Keys
+ true
+
+
+ SizeCategoryState
+ KeyI.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyI.Text
+ I
+ true
+
+
+ VerticalAlignment
+ KeyI.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyI.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyI.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyI.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyI.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyJ.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyJ.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyJ.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyJ.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyJ.Parent
+ Row3Keys
+ true
+
+
+ SizeCategoryState
+ KeyJ.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyJ.Text
+ J
+ true
+
+
+ VerticalAlignment
+ KeyJ.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyJ.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyJ.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyJ.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyJ.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyK.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyK.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyK.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyK.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyK.Parent
+ Row3Keys
+ true
+
+
+ SizeCategoryState
+ KeyK.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyK.Text
+ K
+ true
+
+
+ VerticalAlignment
+ KeyK.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyK.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyK.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyK.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyK.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyL.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyL.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyL.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyL.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyL.Parent
+ Row3Keys
+ true
+
+
+ SizeCategoryState
+ KeyL.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyL.Text
+ L
+ true
+
+
+ VerticalAlignment
+ KeyL.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyL.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyL.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyL.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyL.Y Units
+ 7
+ true
+
+
+ DimensionUnitType
+ KeyLeft.Height Units
+ 1
+ true
+
+
+ string
+ KeyLeft.Text
+
+ true
+
+
+ float
+ KeyLeft.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyLeft.Width Units
+ 1
+ true
+
+
+ float
+ KeyLeft.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ KeyLeft.X Origin
+ 2
+ true
+
+
+ PositionUnitType
+ KeyLeft.X Units
+ 4
+ true
+
+
+ float
+ KeyLeft.Y
+ 20
+ true
+
+
+ PositionUnitType
+ KeyLeft.Y Units
+ 3
+ true
+
+
+ ColorCategory
+ KeyM.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyM.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyM.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyM.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyM.Parent
+ Row4Keys
+ true
+
+
+ SizeCategoryState
+ KeyM.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyM.Text
+ M
+ true
+
+
+ VerticalAlignment
+ KeyM.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyM.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyM.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyM.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyM.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyN.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyN.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyN.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyN.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyN.Parent
+ Row4Keys
+ true
+
+
+ SizeCategoryState
+ KeyN.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyN.Text
+ N
+ true
+
+
+ VerticalAlignment
+ KeyN.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyN.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyN.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyN.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyN.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyO.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyO.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyO.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyO.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyO.Parent
+ Row2Keys
+ true
+
+
+ SizeCategoryState
+ KeyO.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyO.Text
+ O
+ true
+
+
+ VerticalAlignment
+ KeyO.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyO.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyO.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyO.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyO.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyP.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyP.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyP.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyP.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyP.Parent
+ Row2Keys
+ true
+
+
+ SizeCategoryState
+ KeyP.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyP.Text
+ P
+ true
+
+
+ VerticalAlignment
+ KeyP.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyP.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyP.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyP.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyP.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyParenLeft.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyParenLeft.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyParenLeft.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyParenLeft.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyParenLeft.Parent
+ Row5Keys
+ true
+
+
+ SizeCategoryState
+ KeyParenLeft.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyParenLeft.Text
+ (
+ true
+
+
+ VerticalAlignment
+ KeyParenLeft.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyParenLeft.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyParenLeft.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyParenLeft.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyParenLeft.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyParenRight.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyParenRight.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyParenRight.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyParenRight.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyParenRight.Parent
+ Row5Keys
+ true
+
+
+ SizeCategoryState
+ KeyParenRight.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyParenRight.Text
+ )
+ true
+
+
+ VerticalAlignment
+ KeyParenRight.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyParenRight.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyParenRight.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyParenRight.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyParenRight.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyPeriod.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyPeriod.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyPeriod.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyPeriod.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyPeriod.Parent
+ Row4Keys
+ true
+
+
+ SizeCategoryState
+ KeyPeriod.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyPeriod.Text
+ .
+ true
+
+
+ VerticalAlignment
+ KeyPeriod.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyPeriod.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyPeriod.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyPeriod.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyPeriod.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyQ.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyQ.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyQ.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyQ.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyQ.Parent
+ Row2Keys
+ true
+
+
+ SizeCategoryState
+ KeyQ.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyQ.Text
+ Q
+ true
+
+
+ VerticalAlignment
+ KeyQ.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyQ.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyQ.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyQ.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyQ.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyQuestion.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyQuestion.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyQuestion.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyQuestion.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyQuestion.Parent
+ Row5Keys
+ true
+
+
+ SizeCategoryState
+ KeyQuestion.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyQuestion.Text
+ ?
+ true
+
+
+ VerticalAlignment
+ KeyQuestion.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyQuestion.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyQuestion.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyQuestion.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyQuestion.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyR.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyR.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyR.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyR.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyR.Parent
+ Row2Keys
+ true
+
+
+ SizeCategoryState
+ KeyR.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyR.Text
+ R
+ true
+
+
+ VerticalAlignment
+ KeyR.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyR.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyR.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyR.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyR.Y Units
+ 7
+ true
+
+
+ float
+ KeyReturn.Height
+ 40
+ true
+
+
+ DimensionUnitType
+ KeyReturn.Height Units
+ 1
+ true
+
+
+ string
+ KeyReturn.Text
+
+ true
+
+
+ float
+ KeyReturn.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyReturn.Width Units
+ 1
+ true
+
+
+ HorizontalAlignment
+ KeyReturn.X Origin
+ 2
+ true
+
+
+ PositionUnitType
+ KeyReturn.X Units
+ 4
+ true
+
+
+ VerticalAlignment
+ KeyReturn.Y Origin
+ 2
+ true
+
+
+ PositionUnitType
+ KeyReturn.Y Units
+ 5
+ true
+
+
+ DimensionUnitType
+ KeyRight.Height Units
+ 1
+ true
+
+
+ string
+ KeyRight.Text
+
+ true
+
+
+ float
+ KeyRight.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyRight.Width Units
+ 1
+ true
+
+
+ float
+ KeyRight.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ KeyRight.X Origin
+ 2
+ true
+
+
+ PositionUnitType
+ KeyRight.X Units
+ 4
+ true
+
+
+ float
+ KeyRight.Y
+ 40
+ true
+
+
+ PositionUnitType
+ KeyRight.Y Units
+ 3
+ true
+
+
+ ColorCategory
+ KeyS.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyS.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyS.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyS.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyS.Parent
+ Row3Keys
+ true
+
+
+ SizeCategoryState
+ KeyS.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyS.Text
+ S
+ true
+
+
+ VerticalAlignment
+ KeyS.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyS.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyS.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyS.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyS.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeySpace.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeySpace.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeySpace.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeySpace.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeySpace.Parent
+ Row5Keys
+ true
+
+
+ SizeCategoryState
+ KeySpace.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeySpace.Text
+ SPACE
+ true
+
+
+ VerticalAlignment
+ KeySpace.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeySpace.Width
+ 50
+ true
+
+
+ DimensionUnitType
+ KeySpace.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeySpace.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeySpace.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyT.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyT.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyT.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyT.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyT.Parent
+ Row2Keys
+ true
+
+
+ SizeCategoryState
+ KeyT.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyT.Text
+ T
+ true
+
+
+ VerticalAlignment
+ KeyT.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyT.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyT.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyT.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyT.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyU.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyU.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyU.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyU.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyU.Parent
+ Row2Keys
+ true
+
+
+ SizeCategoryState
+ KeyU.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyU.Text
+ U
+ true
+
+
+ VerticalAlignment
+ KeyU.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyU.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyU.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyU.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyU.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyUnderscore.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyUnderscore.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyUnderscore.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyUnderscore.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyUnderscore.Parent
+ Row3Keys
+ true
+
+
+ SizeCategoryState
+ KeyUnderscore.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyUnderscore.Text
+ _
+ true
+
+
+ VerticalAlignment
+ KeyUnderscore.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyUnderscore.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyUnderscore.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyUnderscore.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyUnderscore.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyV.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyV.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyV.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyV.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyV.Parent
+ Row4Keys
+ true
+
+
+ SizeCategoryState
+ KeyV.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyV.Text
+ V
+ true
+
+
+ VerticalAlignment
+ KeyV.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyV.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyV.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyV.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyV.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyW.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyW.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyW.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyW.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyW.Parent
+ Row2Keys
+ true
+
+
+ SizeCategoryState
+ KeyW.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyW.Text
+ W
+ true
+
+
+ VerticalAlignment
+ KeyW.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyW.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyW.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyW.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyW.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyX.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyX.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyX.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyX.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyX.Parent
+ Row4Keys
+ true
+
+
+ SizeCategoryState
+ KeyX.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyX.Text
+ X
+ true
+
+
+ VerticalAlignment
+ KeyX.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyX.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyX.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyX.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyX.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyY.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyY.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyY.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyY.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyY.Parent
+ Row2Keys
+ true
+
+
+ SizeCategoryState
+ KeyY.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyY.Text
+ Y
+ true
+
+
+ VerticalAlignment
+ KeyY.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyY.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyY.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyY.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyY.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ KeyZ.ColorCategoryState
+ White
+ true
+
+
+ float
+ KeyZ.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ KeyZ.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ KeyZ.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ KeyZ.Parent
+ Row4Keys
+ true
+
+
+ SizeCategoryState
+ KeyZ.SizeCategoryState
+ Small
+ true
+
+
+ string
+ KeyZ.Text
+ Z
+ true
+
+
+ VerticalAlignment
+ KeyZ.VerticalAlignment
+ 1
+ true
+
+
+ float
+ KeyZ.Width
+ 10
+ true
+
+
+ DimensionUnitType
+ KeyZ.Width Units
+ 1
+ true
+
+
+ VerticalAlignment
+ KeyZ.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ KeyZ.Y Units
+ 7
+ true
+
+
+ ChildrenLayout
+ Row1Keys.Children Layout
+ 2
+ true
+
+
+ float
+ Row1Keys.Height
+ 20
+ true
+
+
+ DimensionUnitType
+ Row1Keys.Height Units
+ 1
+ true
+
+
+ string
+ Row1Keys.Parent
+ AllRows
+ true
+
+
+ float
+ Row1Keys.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Row1Keys.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ Row1Keys.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Row1Keys.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ Row1Keys.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ Row1Keys.Y Units
+ 1
+ true
+
+
+ ChildrenLayout
+ Row2Keys.Children Layout
+ 2
+ true
+
+
+ float
+ Row2Keys.Height
+ 20
+ true
+
+
+ DimensionUnitType
+ Row2Keys.Height Units
+ 1
+ true
+
+
+ string
+ Row2Keys.Parent
+ AllRows
+ true
+
+
+ float
+ Row2Keys.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Row2Keys.Width Units
+ 2
+ true
+
+
+ ChildrenLayout
+ Row3Keys.Children Layout
+ 2
+ true
+
+
+ float
+ Row3Keys.Height
+ 20
+ true
+
+
+ DimensionUnitType
+ Row3Keys.Height Units
+ 1
+ true
+
+
+ string
+ Row3Keys.Parent
+ AllRows
+ true
+
+
+ float
+ Row3Keys.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Row3Keys.Width Units
+ 2
+ true
+
+
+ ChildrenLayout
+ Row4Keys.Children Layout
+ 2
+ true
+
+
+ float
+ Row4Keys.Height
+ 20
+ true
+
+
+ DimensionUnitType
+ Row4Keys.Height Units
+ 1
+ true
+
+
+ string
+ Row4Keys.Parent
+ AllRows
+ true
+
+
+ float
+ Row4Keys.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Row4Keys.Width Units
+ 2
+ true
+
+
+ ChildrenLayout
+ Row5Keys.Children Layout
+ 2
+ true
+
+
+ float
+ Row5Keys.Height
+ 20
+ true
+
+
+ DimensionUnitType
+ Row5Keys.Height Units
+ 1
+ true
+
+
+ string
+ Row5Keys.Parent
+ AllRows
+ true
+
+
+ float
+ Row5Keys.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Row5Keys.Width Units
+ 2
+ true
+
+
+ State
+ State
+ true
+
+
+ float
+ Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 0
+ true
+
+
+
+ CursorMoveCategory
+ false
+
+ LeftRightMoveSupported
+
+ bool
+ KeyLeft.Visible
+ true
+ true
+
+
+ bool
+ KeyRight.Visible
+ true
+ true
+
+
+
+ NoMovement
+
+ bool
+ KeyLeft.Visible
+ false
+ true
+
+
+ bool
+ KeyRight.Visible
+ false
+ true
+
+
+
+
+ Row1Keys
+ Container
+ false
+
+
+ AllRows
+ Container
+ false
+
+
+ Key1
+ Controls/KeyboardKey
+ false
+
+
+ KeyQ
+ Controls/KeyboardKey
+ false
+
+
+ KeyA
+ Controls/KeyboardKey
+ false
+
+
+ KeyZ
+ Controls/KeyboardKey
+ false
+
+
+ KeyParenLeft
+ Controls/KeyboardKey
+ false
+
+
+ KeyW
+ Controls/KeyboardKey
+ false
+
+
+ KeyS
+ Controls/KeyboardKey
+ false
+
+
+ KeyX
+ Controls/KeyboardKey
+ false
+
+
+ KeyParenRight
+ Controls/KeyboardKey
+ false
+
+
+ KeyE
+ Controls/KeyboardKey
+ false
+
+
+ KeyD
+ Controls/KeyboardKey
+ false
+
+
+ KeyC
+ Controls/KeyboardKey
+ false
+
+
+ KeySpace
+ Controls/KeyboardKey
+ false
+
+
+ KeyR
+ Controls/KeyboardKey
+ false
+
+
+ KeyF
+ Controls/KeyboardKey
+ false
+
+
+ KeyV
+ Controls/KeyboardKey
+ false
+
+
+ KeyT
+ Controls/KeyboardKey
+ false
+
+
+ KeyG
+ Controls/KeyboardKey
+ false
+
+
+ KeyB
+ Controls/KeyboardKey
+ false
+
+
+ KeyY
+ Controls/KeyboardKey
+ false
+
+
+ KeyH
+ Controls/KeyboardKey
+ false
+
+
+ KeyN
+ Controls/KeyboardKey
+ false
+
+
+ KeyU
+ Controls/KeyboardKey
+ false
+
+
+ KeyJ
+ Controls/KeyboardKey
+ false
+
+
+ KeyM
+ Controls/KeyboardKey
+ false
+
+
+ KeyI
+ Controls/KeyboardKey
+ false
+
+
+ KeyK
+ Controls/KeyboardKey
+ false
+
+
+ KeyComma
+ Controls/KeyboardKey
+ false
+
+
+ KeyQuestion
+ Controls/KeyboardKey
+ false
+
+
+ KeyO
+ Controls/KeyboardKey
+ false
+
+
+ KeyL
+ Controls/KeyboardKey
+ false
+
+
+ KeyPeriod
+ Controls/KeyboardKey
+ false
+
+
+ KeyBang
+ Controls/KeyboardKey
+ false
+
+
+ KeyP
+ Controls/KeyboardKey
+ false
+
+
+ KeyUnderscore
+ Controls/KeyboardKey
+ false
+
+
+ KeyHyphen
+ Controls/KeyboardKey
+ false
+
+
+ KeyAmpersand
+ Controls/KeyboardKey
+ false
+
+
+ Key2
+ Controls/KeyboardKey
+ false
+
+
+ Key3
+ Controls/KeyboardKey
+ false
+
+
+ Key4
+ Controls/KeyboardKey
+ false
+
+
+ Key5
+ Controls/KeyboardKey
+ false
+
+
+ Key6
+ Controls/KeyboardKey
+ false
+
+
+ Key7
+ Controls/KeyboardKey
+ false
+
+
+ Key8
+ Controls/KeyboardKey
+ false
+
+
+ Key9
+ Controls/KeyboardKey
+ false
+
+
+ Key0
+ Controls/KeyboardKey
+ false
+
+
+ Row2Keys
+ Container
+ false
+
+
+ Row3Keys
+ Container
+ false
+
+
+ Row4Keys
+ Container
+ false
+
+
+ Row5Keys
+ Container
+ false
+
+
+ KeyBackspace
+ Controls/KeyboardKey
+ false
+
+
+ KeyReturn
+ Controls/KeyboardKey
+ false
+
+
+ KeyLeft
+ Controls/KeyboardKey
+ false
+
+
+ KeyRight
+ Controls/KeyboardKey
+ false
+
+
+ HighlightRectangle
+ Rectangle
+ false
+
+
+ IconInstance
+ Elements/Icon
+ false
+
+
+ IconInstance1
+ Elements/Icon
+ false
+
+
+ IconInstance2
+ Elements/Icon
+ false
+
+
+ IconInstance3
+ Elements/Icon
+ false
+
+
+
+ OnScreenKeyboardBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/KeyboardKey.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/KeyboardKey.gucx
new file mode 100644
index 000000000..78ca5517f
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/KeyboardKey.gucx
@@ -0,0 +1,393 @@
+
+
+ Controls/KeyboardKey
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ float
+ Background.Height
+ -2
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Bordered
+ true
+
+
+ float
+ Background.Width
+ -2
+ true
+
+
+ ButtonCategory
+ ButtonCategoryState
+ false
+
+
+ bool
+ ExposeChildrenEvents
+ false
+ true
+
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Width
+ -4
+ true
+
+
+ float
+ FocusedIndicator.Y
+ -4
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 20
+ true
+
+
+ bool
+ IsXamarinFormsControl
+ false
+ true
+
+
+ State
+ State
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+ float
+ TextInstance.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ TextInstance.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ TextInstance.HorizontalAlignment
+ 1
+ true
+
+
+ SizeCategoryState
+ TextInstance.SizeCategoryState
+ Small
+ true
+
+
+ StyleCategory
+ TextInstance.StyleCategoryState
+ Normal
+ true
+
+
+ string
+ TextInstance.Text
+ A
+ Text
+ true
+
+
+ VerticalAlignment
+ TextInstance.VerticalAlignment
+ 1
+ true
+
+
+ float
+ TextInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ TextInstance.Width Units
+ 2
+ true
+
+
+ float
+ TextInstance.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ TextInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TextInstance.X Units
+ 6
+ true
+
+
+ float
+ TextInstance.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ TextInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TextInstance.Y Units
+ 7
+ true
+
+
+ float
+ Width
+ 20
+ true
+
+
+
+ ButtonCategory
+ false
+
+ Enabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Disabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+ Highlighted
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Pushed
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryDark
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Focused
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ HighlightedFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ DisabledFocused
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ TextInstance
+ Text
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+
+ ButtonBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ListBox.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ListBox.gucx
new file mode 100644
index 000000000..34dc0051a
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ListBox.gucx
@@ -0,0 +1,363 @@
+
+
+ Controls/ListBox
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ float
+ Background.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Height Units
+ 2
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Bordered
+ true
+
+
+ float
+ Background.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Width Units
+ 2
+ true
+
+
+ float
+ Background.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ Background.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.X Units
+ 6
+ true
+
+
+ float
+ Background.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ Background.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.Y Units
+ 7
+ true
+
+
+ bool
+ ClipContainerInstance.Clips Children
+ true
+ true
+
+
+ float
+ ClipContainerInstance.Height
+ -4
+ true
+
+
+ DimensionUnitType
+ ClipContainerInstance.Height Units
+ 2
+ true
+
+
+ float
+ ClipContainerInstance.Width
+ -27
+ true
+
+
+ DimensionUnitType
+ ClipContainerInstance.Width Units
+ 2
+ true
+
+
+ float
+ ClipContainerInstance.X
+ 2
+ true
+
+
+ float
+ ClipContainerInstance.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ ClipContainerInstance.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ ClipContainerInstance.Y Units
+ 1
+ true
+
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 256
+ true
+
+
+ ChildrenLayout
+ InnerPanelInstance.Children Layout
+ 1
+ true
+
+
+ float
+ InnerPanelInstance.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ InnerPanelInstance.Height Units
+ 4
+ true
+
+
+ string
+ InnerPanelInstance.Parent
+ ClipContainerInstance
+ true
+
+
+ float
+ InnerPanelInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ InnerPanelInstance.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ InnerPanelInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ InnerPanelInstance.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ InnerPanelInstance.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ InnerPanelInstance.Y Units
+ 1
+ true
+
+
+ ListBoxCategory
+ ListBoxCategoryState
+ false
+
+
+ State
+ State
+ true
+
+
+ HorizontalAlignment
+ VerticalScrollBarInstance.X Origin
+ 2
+ true
+
+
+ PositionUnitType
+ VerticalScrollBarInstance.X Units
+ 4
+ true
+
+
+ VerticalAlignment
+ VerticalScrollBarInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ VerticalScrollBarInstance.Y Units
+ 7
+ true
+
+
+ float
+ Width
+ 256
+ true
+
+
+
+ ListBoxCategory
+ false
+
+ Enabled
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+
+ Disabled
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+
+ Focused
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+
+ DisabledFocused
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ VerticalScrollBarInstance
+ Controls/ScrollBar
+ false
+
+
+ ClipContainerInstance
+ Container
+ false
+
+
+ InnerPanelInstance
+ Container
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+
+ ListBoxBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ListBoxItem.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ListBoxItem.gucx
new file mode 100644
index 000000000..7930aee0f
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ListBoxItem.gucx
@@ -0,0 +1,354 @@
+
+
+ Controls/ListBoxItem
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ float
+ Background.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Height Units
+ 2
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Solid
+ true
+
+
+ float
+ Background.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Width Units
+ 2
+ true
+
+
+ float
+ Background.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ Background.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.X Units
+ 6
+ true
+
+
+ float
+ Background.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ Background.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Y
+ -2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 4
+ true
+
+
+ ListBoxItemCategory
+ ListBoxItemCategoryState
+ false
+
+
+ State
+ State
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+ float
+ TextInstance.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ TextInstance.Height Units
+ 4
+ true
+
+
+ HorizontalAlignment
+ TextInstance.HorizontalAlignment
+ 0
+ true
+
+
+ StyleCategory
+ TextInstance.StyleCategoryState
+ Normal
+ true
+
+
+ string
+ TextInstance.Text
+ ListBox Item
+ ListItemDisplayText
+ true
+
+
+ VerticalAlignment
+ TextInstance.VerticalAlignment
+ 1
+ true
+
+
+ float
+ TextInstance.Width
+ -8
+ true
+
+
+ DimensionUnitType
+ TextInstance.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ TextInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TextInstance.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ TextInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TextInstance.Y Units
+ 7
+ true
+
+
+ float
+ Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 2
+ true
+
+
+
+ ListBoxItemCategory
+ false
+
+ Enabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ Background.Visible
+ false
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+
+ Highlighted
+
+ ColorCategory
+ Background.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ bool
+ Background.Visible
+ true
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+
+ Selected
+
+ ColorCategory
+ Background.ColorCategoryState
+ Accent
+ true
+
+
+ bool
+ Background.Visible
+ true
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+
+ Focused
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ Background.Visible
+ false
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ TextInstance
+ Text
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+
+ ListBoxItemBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/PasswordBox.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/PasswordBox.gucx
new file mode 100644
index 000000000..cf127dc9a
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/PasswordBox.gucx
@@ -0,0 +1,555 @@
+
+
+ Controls/PasswordBox
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Bordered
+ true
+
+
+ ColorCategory
+ CaretInstance.ColorCategoryState
+ Primary
+ true
+
+
+ float
+ CaretInstance.Height
+ 14
+ true
+
+
+ DimensionUnitType
+ CaretInstance.Height Units
+ 0
+ true
+
+
+ IconCategory
+ CaretInstance.IconCategoryState
+ CursorText
+ true
+
+
+ ColorCategory
+ CaretInstance.IconColor
+ Primary
+ true
+
+
+ string
+ CaretInstance.Parent
+ true
+
+
+ true
+ string
+ CaretInstance.SourceFile
+ UISpriteSheet.png
+ true
+
+
+ TextureAddress
+ CaretInstance.Texture Address
+ 1
+ true
+
+
+ int
+ CaretInstance.Texture Height
+ 24
+ true
+
+
+ int
+ CaretInstance.Texture Left
+ 0
+ true
+
+
+ int
+ CaretInstance.Texture Top
+ 48
+ true
+
+
+ int
+ CaretInstance.Texture Width
+ 24
+ true
+
+
+ float
+ CaretInstance.Width
+ 1
+ true
+
+
+ DimensionUnitType
+ CaretInstance.Width Units
+ 0
+ true
+
+
+ float
+ CaretInstance.X
+ 4
+ true
+
+
+ HorizontalAlignment
+ CaretInstance.X Origin
+ 0
+ true
+
+
+ PositionUnitType
+ CaretInstance.X Units
+ 0
+ true
+
+
+ float
+ CaretInstance.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ CaretInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ CaretInstance.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 24
+ true
+
+
+ PasswordBoxCategory
+ PasswordBoxCategoryState
+ false
+
+
+ ColorCategory
+ PlaceholderTextInstance.ColorCategoryState
+ Gray
+ true
+
+
+ float
+ PlaceholderTextInstance.Height
+ -4
+ true
+
+
+ DimensionUnitType
+ PlaceholderTextInstance.Height Units
+ 2
+ true
+
+
+ string
+ PlaceholderTextInstance.Text
+ Password
+ PlaceholderText
+ true
+
+
+ VerticalAlignment
+ PlaceholderTextInstance.VerticalAlignment
+ 1
+ true
+
+
+ float
+ PlaceholderTextInstance.Width
+ -8
+ true
+
+
+ DimensionUnitType
+ PlaceholderTextInstance.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ PlaceholderTextInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ PlaceholderTextInstance.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ PlaceholderTextInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ PlaceholderTextInstance.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ SelectionInstance.ColorCategoryState
+ Accent
+ true
+
+
+ float
+ SelectionInstance.Height
+ -4
+ true
+
+
+ float
+ SelectionInstance.Width
+ 7
+ true
+
+
+ DimensionUnitType
+ SelectionInstance.Width Units
+ 0
+ true
+
+
+ float
+ SelectionInstance.X
+ 15
+ true
+
+
+ HorizontalAlignment
+ SelectionInstance.X Origin
+ 0
+ true
+
+
+ PositionUnitType
+ SelectionInstance.X Units
+ 0
+ true
+
+
+ float
+ SelectionInstance.Y
+ 0
+ true
+
+
+ State
+ State
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+ float
+ TextInstance.Height
+ -4
+ true
+
+
+ DimensionUnitType
+ TextInstance.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ TextInstance.HorizontalAlignment
+ 0
+ true
+
+
+ string
+ TextInstance.Parent
+ true
+
+
+ StyleCategory
+ TextInstance.StyleCategoryState
+ Normal
+ true
+
+
+ string
+ TextInstance.Text
+
+ true
+
+
+ VerticalAlignment
+ TextInstance.VerticalAlignment
+ 1
+ true
+
+
+ float
+ TextInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ TextInstance.Width Units
+ 4
+ true
+
+
+ float
+ TextInstance.X
+ 4
+ true
+
+
+ HorizontalAlignment
+ TextInstance.X Origin
+ 0
+ true
+
+
+ PositionUnitType
+ TextInstance.X Units
+ 0
+ true
+
+
+ float
+ TextInstance.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ TextInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TextInstance.Y Units
+ 7
+ true
+
+
+ float
+ Width
+ 256
+ true
+
+
+ string
+ CaretInstance.AnimationFrames
+ false
+ false
+
+
+
+
+ PasswordBoxCategory
+ false
+
+ Enabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ PlaceholderTextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+ Disabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ PlaceholderTextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+ Highlighted
+
+ ColorCategory
+ Background.ColorCategoryState
+ Gray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ PlaceholderTextInstance.ColorCategoryState
+ DarkGray
+ true
+
+
+
+ Selected
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ PlaceholderTextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ SelectionInstance
+ NineSlice
+ false
+
+
+ TextInstance
+ Text
+ false
+
+
+ PlaceholderTextInstance
+ Text
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+ CaretInstance
+ Sprite
+ false
+
+
+
+ PasswordBoxBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/PlayerJoinView.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/PlayerJoinView.gucx
new file mode 100644
index 000000000..5e47580a8
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/PlayerJoinView.gucx
@@ -0,0 +1,175 @@
+
+
+ Controls/PlayerJoinView
+ Container
+
+ Default
+
+ float
+ Height
+ 463
+ true
+
+
+ ChildrenLayout
+ InnerPanelInstance.Children Layout
+ 1
+ true
+
+
+ float
+ InnerPanelInstance.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ InnerPanelInstance.Height Units
+ 2
+ true
+
+
+ float
+ InnerPanelInstance.StackSpacing
+ 32
+ true
+
+
+ float
+ InnerPanelInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ InnerPanelInstance.Width Units
+ 2
+ true
+
+
+ float
+ InnerPanelInstance.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ InnerPanelInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ InnerPanelInstance.X Units
+ 6
+ true
+
+
+ float
+ InnerPanelInstance.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ InnerPanelInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ InnerPanelInstance.Y Units
+ 7
+ true
+
+
+ string
+ PlayerJoinControlInstance.Parent
+ InnerPanelInstance
+ true
+
+
+ string
+ PlayerJoinControlInstance1.Parent
+ InnerPanelInstance
+ true
+
+
+ string
+ PlayerJoinControlInstance2.Parent
+ InnerPanelInstance
+ true
+
+
+ string
+ PlayerJoinControlInstance3.Parent
+ InnerPanelInstance
+ true
+
+
+ string
+ PlayerJoinViewItem1.Parent
+ InnerPanelInstance
+ true
+
+
+ string
+ PlayerJoinViewItem2.Parent
+ InnerPanelInstance
+ true
+
+
+ string
+ PlayerJoinViewItem3.Parent
+ InnerPanelInstance
+ true
+
+
+ string
+ PlayerJoinViewItem4.Parent
+ InnerPanelInstance
+ true
+
+
+ State
+ State
+ true
+
+
+ float
+ Width
+ 144
+ true
+
+
+
+ InnerPanelInstance
+ Container
+ false
+
+
+ PlayerJoinViewItem1
+ Controls/PlayerJoinViewItem
+ false
+
+
+ PlayerJoinViewItem2
+ Controls/PlayerJoinViewItem
+ false
+
+
+ PlayerJoinViewItem3
+ Controls/PlayerJoinViewItem
+ false
+
+
+ PlayerJoinViewItem4
+ Controls/PlayerJoinViewItem
+ false
+
+
+
+ PlayerJoinViewBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/PlayerJoinViewItem.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/PlayerJoinViewItem.gucx
new file mode 100644
index 000000000..0467a79bd
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/PlayerJoinViewItem.gucx
@@ -0,0 +1,468 @@
+
+
+ Controls/PlayerJoinViewItem
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ Black
+ true
+
+
+ float
+ Background.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Height Units
+ 2
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Panel
+ true
+
+
+ VerticalAlignment
+ Background.Y Origin
+ 2
+ true
+
+
+ PositionUnitType
+ Background.Y Units
+ 5
+ true
+
+
+ ColorCategory
+ ControllerDisplayNameTextInstance.ColorCategoryState
+ White
+ true
+
+
+ float
+ ControllerDisplayNameTextInstance.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ ControllerDisplayNameTextInstance.Height Units
+ 4
+ true
+
+
+ HorizontalAlignment
+ ControllerDisplayNameTextInstance.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ ControllerDisplayNameTextInstance.Parent
+ true
+
+
+ StyleCategory
+ ControllerDisplayNameTextInstance.StyleCategoryState
+ Tiny
+ true
+
+
+ string
+ ControllerDisplayNameTextInstance.Text
+ <Controller Type>
+ true
+
+
+ VerticalAlignment
+ ControllerDisplayNameTextInstance.VerticalAlignment
+ 0
+ true
+
+
+ float
+ ControllerDisplayNameTextInstance.Width
+ -16
+ true
+
+
+ DimensionUnitType
+ ControllerDisplayNameTextInstance.Width Units
+ 2
+ true
+
+
+ float
+ ControllerDisplayNameTextInstance.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ ControllerDisplayNameTextInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ ControllerDisplayNameTextInstance.X Units
+ 6
+ true
+
+
+ float
+ ControllerDisplayNameTextInstance.Y
+ -29
+ true
+
+
+ VerticalAlignment
+ ControllerDisplayNameTextInstance.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ ControllerDisplayNameTextInstance.Y Units
+ 5
+ true
+
+
+ GamepadLayoutCategory
+ GamepadLayoutCategoryState
+ false
+
+
+ float
+ Height
+ 80
+ true
+
+
+ IconCategory
+ InputDeviceIcon.IconCategoryState
+ GamepadXbox
+ true
+
+
+ float
+ InputDeviceIcon.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ InputDeviceIcon.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ InputDeviceIcon.X Units
+ 6
+ true
+
+
+ float
+ InputDeviceIcon.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ InputDeviceIcon.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ InputDeviceIcon.Y Units
+ 7
+ true
+
+
+ JoinCategory
+ JoinCategoryState
+ false
+
+
+ PlayerCategory
+ PlayerCategoryState
+ false
+
+
+ PlayerIndexCategory
+ PlayerIndexCategoryState
+ false
+
+
+ PlayerJoinCategory
+ PlayerJoinCategoryState
+ false
+
+
+ PlayerJoinCategory
+ PlayerJoinCategoryStateState
+ false
+
+
+ State
+ State
+ true
+
+
+ string
+ PlayerSprite.AnimationFrames
+ false
+ false
+
+
+
+
+ PlayerJoinCategory
+ false
+
+ NotConnected
+
+ ColorCategory
+ Background.ColorCategoryState
+ Gray
+ true
+
+
+ bool
+ ControllerDisplayNameTextInstance.Visible
+ false
+ true
+
+
+
+ Connected
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ bool
+ ControllerDisplayNameTextInstance.Visible
+ true
+ true
+
+
+
+ ConnectedAndJoined
+
+ ColorCategory
+ Background.ColorCategoryState
+ Success
+ true
+
+
+ bool
+ ControllerDisplayNameTextInstance.Visible
+ true
+ true
+
+
+
+
+ PlayerIndexCategory
+ false
+
+ Player1
+
+
+ Player2
+
+
+ Player3
+
+
+ Player4
+
+
+
+ GamepadLayoutCategory
+ false
+
+ Unknown
+
+ IconCategory
+ InputDeviceIcon.IconCategoryState
+ GamepadXbox
+ true
+
+
+ bool
+ InputDeviceIcon.Visible
+ false
+ true
+
+
+
+ Keyboard
+
+ IconCategory
+ InputDeviceIcon.IconCategoryState
+ Keyboard
+ true
+
+
+ bool
+ InputDeviceIcon.Visible
+ true
+ true
+
+
+
+ NES
+
+ IconCategory
+ InputDeviceIcon.IconCategoryState
+ GamepadNES
+ true
+
+
+ bool
+ InputDeviceIcon.Visible
+ true
+ true
+
+
+
+ SuperNintendo
+
+ IconCategory
+ InputDeviceIcon.IconCategoryState
+ GamepadSNES
+ true
+
+
+ bool
+ InputDeviceIcon.Visible
+ true
+ true
+
+
+
+ Nintendo64
+
+ IconCategory
+ InputDeviceIcon.IconCategoryState
+ GamepadNintendo64
+ true
+
+
+ bool
+ InputDeviceIcon.Visible
+ true
+ true
+
+
+
+ GameCube
+
+ IconCategory
+ InputDeviceIcon.IconCategoryState
+ GamepadGamecube
+ true
+
+
+ bool
+ InputDeviceIcon.Visible
+ true
+ true
+
+
+
+ SwitchPro
+
+ IconCategory
+ InputDeviceIcon.IconCategoryState
+ GamepadSwitchPro
+ true
+
+
+ bool
+ InputDeviceIcon.Visible
+ true
+ true
+
+
+
+ Genesis
+
+ IconCategory
+ InputDeviceIcon.IconCategoryState
+ GamepadSegaGenesis
+ true
+
+
+ bool
+ InputDeviceIcon.Visible
+ true
+ true
+
+
+
+ Xbox360
+
+ IconCategory
+ InputDeviceIcon.IconCategoryState
+ GamepadXbox
+ true
+
+
+ bool
+ InputDeviceIcon.Visible
+ true
+ true
+
+
+
+ PlayStationDualShock
+
+ IconCategory
+ InputDeviceIcon.IconCategoryState
+ GamepadPlaystationDualShock
+ true
+
+
+ bool
+ InputDeviceIcon.Visible
+ true
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ ControllerDisplayNameTextInstance
+ Text
+ false
+
+
+ InputDeviceIcon
+ Elements/Icon
+ false
+
+
+
+ PlayerJoinViewItemBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/RadioButton.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/RadioButton.gucx
new file mode 100644
index 000000000..d80191c06
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/RadioButton.gucx
@@ -0,0 +1,731 @@
+
+
+ Controls/RadioButton
+ Container
+
+ Default
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 24
+ true
+
+
+ float
+ Radio.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Radio.Height Units
+ 2
+ true
+
+
+ IconCategory
+ Radio.IconCategoryState
+ Circle2
+ true
+
+
+ ColorCategory
+ Radio.IconColor
+ White
+ true
+
+
+ string
+ Radio.Parent
+ RadioBackground
+ true
+
+
+ float
+ Radio.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Radio.Width Units
+ 2
+ true
+
+
+ ColorCategory
+ RadioBackground.ColorCategoryState
+ Primary
+ true
+
+
+ float
+ RadioBackground.Height
+ 24
+ true
+
+
+ DimensionUnitType
+ RadioBackground.Height Units
+ 0
+ true
+
+
+ StyleCategory
+ RadioBackground.StyleCategoryState
+ Bordered
+ true
+
+
+ float
+ RadioBackground.Width
+ 24
+ true
+
+
+ DimensionUnitType
+ RadioBackground.Width Units
+ 0
+ true
+
+
+ HorizontalAlignment
+ RadioBackground.X Origin
+ 0
+ true
+
+
+ PositionUnitType
+ RadioBackground.X Units
+ 0
+ true
+
+
+ VerticalAlignment
+ RadioBackground.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ RadioBackground.Y Units
+ 7
+ true
+
+
+ RadioButtonCategory
+ RadioButtonCategoryState
+ false
+
+
+ State
+ State
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+ DimensionUnitType
+ TextInstance.Height Units
+ 2
+ true
+
+
+ StyleCategory
+ TextInstance.StyleCategoryState
+ Normal
+ true
+
+
+ string
+ TextInstance.Text
+ Radio Label
+ RadioDisplayText
+ true
+
+
+ VerticalAlignment
+ TextInstance.VerticalAlignment
+ 1
+ true
+
+
+ float
+ TextInstance.Width
+ -28
+ true
+
+
+ DimensionUnitType
+ TextInstance.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ TextInstance.X Origin
+ 2
+ true
+
+
+ PositionUnitType
+ TextInstance.X Units
+ 4
+ true
+
+
+ float
+ Width
+ 128
+ true
+
+
+
+ RadioButtonCategory
+ false
+
+ EnabledOn
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Radio.IconColor
+ White
+ true
+
+
+ bool
+ Radio.Visible
+ true
+ true
+
+
+ ColorCategory
+ RadioBackground.ColorCategoryState
+ Primary
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ EnabledOff
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Radio.IconColor
+ White
+ true
+
+
+ bool
+ Radio.Visible
+ false
+ true
+
+
+ ColorCategory
+ RadioBackground.ColorCategoryState
+ Primary
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ DisabledOn
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Radio.IconColor
+ Gray
+ true
+
+
+ bool
+ Radio.Visible
+ true
+ true
+
+
+ ColorCategory
+ RadioBackground.ColorCategoryState
+ DarkGray
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+ DisabledOff
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Radio.IconColor
+ Gray
+ true
+
+
+ bool
+ Radio.Visible
+ false
+ true
+
+
+ ColorCategory
+ RadioBackground.ColorCategoryState
+ DarkGray
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+ HighlightedOn
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Radio.IconColor
+ White
+ true
+
+
+ bool
+ Radio.Visible
+ true
+ true
+
+
+ ColorCategory
+ RadioBackground.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ HighlightedOff
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Radio.IconColor
+ White
+ true
+
+
+ bool
+ Radio.Visible
+ false
+ true
+
+
+ ColorCategory
+ RadioBackground.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ PushedOn
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Radio.IconColor
+ White
+ true
+
+
+ bool
+ Radio.Visible
+ true
+ true
+
+
+ ColorCategory
+ RadioBackground.ColorCategoryState
+ PrimaryDark
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ PushedOff
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ Radio.IconColor
+ White
+ true
+
+
+ bool
+ Radio.Visible
+ false
+ true
+
+
+ ColorCategory
+ RadioBackground.ColorCategoryState
+ PrimaryDark
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ FocusedOn
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ Radio.IconColor
+ White
+ true
+
+
+ bool
+ Radio.Visible
+ true
+ true
+
+
+ ColorCategory
+ RadioBackground.ColorCategoryState
+ Primary
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ FocusedOff
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ Radio.IconColor
+ White
+ true
+
+
+ bool
+ Radio.Visible
+ false
+ true
+
+
+ ColorCategory
+ RadioBackground.ColorCategoryState
+ Primary
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ HighlightedFocusedOn
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ Radio.IconColor
+ White
+ true
+
+
+ bool
+ Radio.Visible
+ true
+ true
+
+
+ ColorCategory
+ RadioBackground.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ HighlightedFocusedOff
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ Radio.IconColor
+ White
+ true
+
+
+ bool
+ Radio.Visible
+ false
+ true
+
+
+ ColorCategory
+ RadioBackground.ColorCategoryState
+ PrimaryLight
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ DisabledFocusedOn
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ Radio.IconColor
+ Gray
+ true
+
+
+ bool
+ Radio.Visible
+ true
+ true
+
+
+ ColorCategory
+ RadioBackground.ColorCategoryState
+ DarkGray
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+ DisabledFocusedOff
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ Radio.IconColor
+ Gray
+ true
+
+
+ bool
+ Radio.Visible
+ false
+ true
+
+
+ ColorCategory
+ RadioBackground.ColorCategoryState
+ DarkGray
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+
+ RadioBackground
+ NineSlice
+ false
+
+
+ Radio
+ Elements/Icon
+ false
+
+
+ TextInstance
+ Text
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+
+ RadioButtonBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ScrollBar.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ScrollBar.gucx
new file mode 100644
index 000000000..aa84482e3
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ScrollBar.gucx
@@ -0,0 +1,334 @@
+
+
+ Controls/ScrollBar
+ Container
+
+ Default
+
+ float
+ DownButtonInstance.Height
+ 24
+ true
+
+
+ IconCategory
+ DownButtonInstance.IconCategory
+ Arrow1
+ true
+
+
+ float
+ DownButtonInstance.Rotation
+ -90
+ true
+
+
+ float
+ DownButtonInstance.Width
+ 24
+ true
+
+
+ HorizontalAlignment
+ DownButtonInstance.X Origin
+ 2
+ true
+
+
+ VerticalAlignment
+ DownButtonInstance.Y Origin
+ 2
+ true
+
+
+ PositionUnitType
+ DownButtonInstance.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 2
+ true
+
+
+ ScrollBarCategory
+ ScrollBarCategoryState
+ false
+
+
+ State
+ State
+ true
+
+
+ ColorCategory
+ ThumbContainer.ColorCategoryState
+ Gray
+ true
+
+
+ float
+ ThumbContainer.Height
+ -48
+ true
+
+
+ DimensionUnitType
+ ThumbContainer.Height Units
+ 2
+ true
+
+
+ StyleCategory
+ ThumbContainer.StyleCategoryState
+ Solid
+ true
+
+
+ float
+ ThumbContainer.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ ThumbContainer.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ ThumbContainer.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ ThumbContainer.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ ThumbContainer.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ ThumbContainer.Y Units
+ 7
+ true
+
+
+ string
+ ThumbInstance.ButtonDisplayText
+
+ true
+
+
+ string
+ ThumbInstance.Parent
+ ThumbContainer
+ true
+
+
+ float
+ ThumbInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ ThumbInstance.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ ThumbInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ ThumbInstance.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ ThumbInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ ThumbInstance.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ TrackBackground.ColorCategoryState
+ Gray
+ true
+
+
+ float
+ TrackBackground.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ TrackBackground.Height Units
+ 2
+ true
+
+
+ string
+ TrackBackground.Parent
+ ThumbContainer
+ true
+
+
+ StyleCategory
+ TrackBackground.StyleCategoryState
+ Solid
+ true
+
+
+ float
+ TrackBackground.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ TrackBackground.Width Units
+ 2
+ true
+
+
+ float
+ TrackBackground.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ TrackBackground.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TrackBackground.X Units
+ 6
+ true
+
+
+ float
+ TrackBackground.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ TrackBackground.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TrackBackground.Y Units
+ 7
+ true
+
+
+ float
+ UpButtonInstance.Height
+ 24
+ true
+
+
+ IconCategory
+ UpButtonInstance.IconCategory
+ Arrow1
+ true
+
+
+ float
+ UpButtonInstance.Rotation
+ 90
+ true
+
+
+ float
+ UpButtonInstance.Width
+ 24
+ true
+
+
+ HorizontalAlignment
+ UpButtonInstance.X Origin
+ 2
+ true
+
+
+ VerticalAlignment
+ UpButtonInstance.Y Origin
+ 0
+ true
+
+
+ float
+ Width
+ 24
+ true
+
+
+
+ ScrollBarCategory
+ false
+
+
+ UpButtonInstance
+ Controls/ButtonIcon
+ false
+
+
+ DownButtonInstance
+ Controls/ButtonIcon
+ false
+
+
+ ThumbContainer
+ Container
+ false
+
+
+ TrackBackground
+ NineSlice
+ false
+
+
+ ThumbInstance
+ Controls/ButtonStandard
+ false
+
+
+
+ ScrollBarBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ScrollViewer.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ScrollViewer.gucx
new file mode 100644
index 000000000..fb16ca854
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/ScrollViewer.gucx
@@ -0,0 +1,277 @@
+
+
+ Controls/ScrollViewer
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ float
+ Background.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Height Units
+ 2
+ true
+
+
+ string
+ Background.Parent
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Bordered
+ true
+
+
+ float
+ Background.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Width Units
+ 2
+ true
+
+
+ float
+ Background.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ Background.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.X Units
+ 6
+ true
+
+
+ float
+ Background.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ Background.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.Y Units
+ 7
+ true
+
+
+ bool
+ ClipContainerInstance.Clips Children
+ true
+ true
+
+
+ float
+ ClipContainerInstance.Height
+ -4
+ true
+
+
+ DimensionUnitType
+ ClipContainerInstance.Height Units
+ 2
+ true
+
+
+ string
+ ClipContainerInstance.Parent
+ true
+
+
+ float
+ ClipContainerInstance.Width
+ -27
+ true
+
+
+ DimensionUnitType
+ ClipContainerInstance.Width Units
+ 2
+ true
+
+
+ float
+ ClipContainerInstance.X
+ 2
+ true
+
+
+ float
+ ClipContainerInstance.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ ClipContainerInstance.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ ClipContainerInstance.Y Units
+ 1
+ true
+
+
+ float
+ InnerPanelInstance.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ InnerPanelInstance.Height Units
+ 4
+ true
+
+
+ string
+ InnerPanelInstance.Parent
+ ClipContainerInstance
+ true
+
+
+ float
+ InnerPanelInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ InnerPanelInstance.Width Units
+ 2
+ true
+
+
+ ListBoxItemCategory
+ ListBoxItemInstance.ListBoxItemCategoryState
+ Highlighted
+ true
+
+
+ string
+ ListBoxItemInstance.Parent
+ InnerPanelInstance
+ true
+
+
+ ScrollBarVisibility
+ ScrollBarVisibilityState
+ false
+
+
+ State
+ State
+ true
+
+
+ string
+ VerticalScrollBarInstance.Parent
+ true
+
+
+ HorizontalAlignment
+ VerticalScrollBarInstance.X Origin
+ 2
+ true
+
+
+ PositionUnitType
+ VerticalScrollBarInstance.X Units
+ 4
+ true
+
+
+ VerticalAlignment
+ VerticalScrollBarInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ VerticalScrollBarInstance.Y Units
+ 7
+ true
+
+
+
+ ScrollBarVisibility
+ false
+
+ NoScrollBar
+
+ bool
+ VerticalScrollBarInstance.Visible
+ false
+ true
+
+
+
+ VerticalScrollVisible
+
+ bool
+ VerticalScrollBarInstance.Visible
+ true
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ VerticalScrollBarInstance
+ Controls/ScrollBar
+ false
+
+
+ ClipContainerInstance
+ Container
+ false
+
+
+ InnerPanelInstance
+ Container
+ false
+
+
+ ListBoxItemInstance
+ Controls/ListBoxItem
+ false
+
+
+
+ ScrollViewerBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/SettingsView.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/SettingsView.gucx
new file mode 100644
index 000000000..1acfd1493
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/SettingsView.gucx
@@ -0,0 +1,151 @@
+
+
+ Controls/SettingsView
+ Container
+
+ Default
+
+ ChildrenLayout
+ Children Layout
+ 1
+ true
+
+
+ string
+ FullscreenCheckboxInstance.CheckboxDisplayText
+ Fullscreen
+ true
+
+
+ float
+ FullscreenCheckboxInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ FullscreenCheckboxInstance.Width Units
+ 2
+ true
+
+
+ float
+ FullscreenCheckboxInstance.Y
+ 0
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 0
+ true
+
+
+ float
+ MusicSliderInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ MusicSliderInstance.Width Units
+ 2
+ true
+
+
+ string
+ MusicVolumeLabel.LabelText
+ Music Volume
+ true
+
+
+ float
+ MusicVolumeLabel.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ MusicVolumeLabel.Width Units
+ 2
+ true
+
+
+ float
+ MusicVolumeLabel.Y
+ 12
+ true
+
+
+ float
+ SoundSliderInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ SoundSliderInstance.Width Units
+ 2
+ true
+
+
+ string
+ SoundVolumeLabel.LabelText
+ Sound Effect Volume
+ true
+
+
+ float
+ SoundVolumeLabel.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ SoundVolumeLabel.Width Units
+ 2
+ true
+
+
+ float
+ SoundVolumeLabel.Y
+ 12
+ true
+
+
+ State
+ State
+ true
+
+
+
+ FullscreenCheckboxInstance
+ Controls/CheckBox
+ false
+
+
+ MusicVolumeLabel
+ Elements/Label
+ false
+
+
+ MusicSliderInstance
+ Controls/Slider
+ false
+
+
+ SoundVolumeLabel
+ Elements/Label
+ false
+
+
+ SoundSliderInstance
+ Controls/Slider
+ false
+
+
+
+ SettingsViewBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/Slider.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/Slider.gucx
new file mode 100644
index 000000000..ba8f1c4c6
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/Slider.gucx
@@ -0,0 +1,316 @@
+
+
+ Controls/Slider
+ Container
+
+ Default
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 24
+ true
+
+
+ ColorCategory
+ NineSliceInstance.ColorCategoryState
+ DarkGray
+ true
+
+
+ float
+ NineSliceInstance.Height
+ 8
+ true
+
+
+ DimensionUnitType
+ NineSliceInstance.Height Units
+ 0
+ true
+
+
+ string
+ NineSliceInstance.Parent
+ TrackInstance
+ true
+
+
+ StyleCategory
+ NineSliceInstance.StyleCategoryState
+ Bordered
+ true
+
+
+ float
+ NineSliceInstance.Width
+ 0
+ true
+
+
+ SliderCategory
+ SliderCategoryState
+ false
+
+
+ State
+ State
+ true
+
+
+ string
+ ThumbInstance.ButtonDisplayText
+
+ true
+
+
+ float
+ ThumbInstance.Height
+ 24
+ true
+
+
+ IconCategory
+ ThumbInstance.IconCategory
+ None
+ true
+
+
+ string
+ ThumbInstance.Parent
+ TrackInstance
+ true
+
+
+ float
+ ThumbInstance.Width
+ 32
+ true
+
+
+ float
+ ThumbInstance.X
+ SliderPercent
+ false
+
+
+ HorizontalAlignment
+ ThumbInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ ThumbInstance.X Units
+ 2
+ true
+
+
+ VerticalAlignment
+ ThumbInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ ThumbInstance.Y Units
+ 7
+ true
+
+
+ float
+ TrackInstance.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ TrackInstance.Height Units
+ 2
+ true
+
+
+ float
+ TrackInstance.Width
+ -32
+ true
+
+
+ DimensionUnitType
+ TrackInstance.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ TrackInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TrackInstance.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ TrackInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TrackInstance.Y Units
+ 7
+ true
+
+
+ float
+ Width
+ 128
+ true
+
+
+
+ SliderCategory
+ false
+
+ Enabled
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ButtonCategory
+ ThumbInstance.ButtonCategoryState
+ Enabled
+ true
+
+
+
+ Focused
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ButtonCategory
+ ThumbInstance.ButtonCategoryState
+ Enabled
+ true
+
+
+
+ Highlighted
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ string
+ ThumbInstance.ButtonCategoryState
+ Highlighted
+ true
+
+
+
+ HighlightedFocused
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ButtonCategory
+ ThumbInstance.ButtonCategoryState
+ Highlighted
+ true
+
+
+
+
+ TrackInstance
+ Container
+ false
+
+
+ NineSliceInstance
+ NineSlice
+ false
+
+
+ ThumbInstance
+ Controls/ButtonStandard
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+
+ SliderBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/TextBox.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/TextBox.gucx
new file mode 100644
index 000000000..4db26c3f4
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/TextBox.gucx
@@ -0,0 +1,595 @@
+
+
+ Controls/TextBox
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Bordered
+ true
+
+
+ ColorCategory
+ CaretInstance.ColorCategoryState
+ Primary
+ true
+
+
+ float
+ CaretInstance.Height
+ 14
+ true
+
+
+ DimensionUnitType
+ CaretInstance.Height Units
+ 0
+ true
+
+
+ IconCategory
+ CaretInstance.IconCategoryState
+ CursorText
+ true
+
+
+ ColorCategory
+ CaretInstance.IconColor
+ Primary
+ true
+
+
+ true
+ string
+ CaretInstance.SourceFile
+ UISpriteSheet.png
+ true
+
+
+ TextureAddress
+ CaretInstance.Texture Address
+ 1
+ true
+
+
+ int
+ CaretInstance.Texture Height
+ 24
+ true
+
+
+ int
+ CaretInstance.Texture Left
+ 0
+ true
+
+
+ int
+ CaretInstance.Texture Top
+ 48
+ true
+
+
+ int
+ CaretInstance.Texture Width
+ 24
+ true
+
+
+ float
+ CaretInstance.Width
+ 1
+ true
+
+
+ DimensionUnitType
+ CaretInstance.Width Units
+ 0
+ true
+
+
+ float
+ CaretInstance.X
+ 4
+ true
+
+
+ HorizontalAlignment
+ CaretInstance.X Origin
+ 0
+ true
+
+
+ PositionUnitType
+ CaretInstance.X Units
+ 0
+ true
+
+
+ float
+ CaretInstance.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ CaretInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ CaretInstance.Y Units
+ 7
+ true
+
+
+ bool
+ Clips Children
+ true
+ true
+
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ float
+ Height
+ 24
+ true
+
+
+ LineModeCategory
+ LineModeCategoryState
+ false
+
+
+ PasswordBoxCategory
+ PasswordBoxCategoryState
+ false
+
+
+ ColorCategory
+ PlaceholderTextInstance.ColorCategoryState
+ Gray
+ true
+
+
+ float
+ PlaceholderTextInstance.Height
+ -4
+ true
+
+
+ DimensionUnitType
+ PlaceholderTextInstance.Height Units
+ 2
+ true
+
+
+ string
+ PlaceholderTextInstance.Text
+ Text Placeholder
+ PlaceholderText
+ true
+
+
+ VerticalAlignment
+ PlaceholderTextInstance.VerticalAlignment
+ 1
+ true
+
+
+ float
+ PlaceholderTextInstance.Width
+ -8
+ true
+
+
+ DimensionUnitType
+ PlaceholderTextInstance.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ PlaceholderTextInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ PlaceholderTextInstance.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ PlaceholderTextInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ PlaceholderTextInstance.Y Units
+ 7
+ true
+
+
+ ColorCategory
+ SelectionInstance.ColorCategoryState
+ Accent
+ true
+
+
+ float
+ SelectionInstance.Height
+ -4
+ true
+
+
+ float
+ SelectionInstance.Width
+ 7
+ true
+
+
+ DimensionUnitType
+ SelectionInstance.Width Units
+ 0
+ true
+
+
+ float
+ SelectionInstance.X
+ 15
+ true
+
+
+ HorizontalAlignment
+ SelectionInstance.X Origin
+ 0
+ true
+
+
+ PositionUnitType
+ SelectionInstance.X Units
+ 0
+ true
+
+
+ float
+ SelectionInstance.Y
+ 0
+ true
+
+
+ State
+ State
+ true
+
+
+ TextBoxCategory
+ TextBoxCategoryState
+ false
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+ float
+ TextInstance.Height
+ -4
+ true
+
+
+ DimensionUnitType
+ TextInstance.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ TextInstance.HorizontalAlignment
+ 0
+ true
+
+
+ StyleCategory
+ TextInstance.StyleCategoryState
+ Normal
+ true
+
+
+ string
+ TextInstance.Text
+
+ true
+
+
+ VerticalAlignment
+ TextInstance.VerticalAlignment
+ 1
+ true
+
+
+ float
+ TextInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ TextInstance.Width Units
+ 4
+ true
+
+
+ float
+ TextInstance.X
+ 4
+ true
+
+
+ HorizontalAlignment
+ TextInstance.X Origin
+ 0
+ true
+
+
+ PositionUnitType
+ TextInstance.X Units
+ 0
+ true
+
+
+ float
+ TextInstance.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ TextInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TextInstance.Y Units
+ 7
+ true
+
+
+ float
+ Width
+ 256
+ true
+
+
+ string
+ CaretInstance.AnimationFrames
+ false
+ false
+
+
+
+
+ TextBoxCategory
+ false
+
+ Enabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ PlaceholderTextInstance.ColorCategoryState
+ Gray
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Disabled
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ PlaceholderTextInstance.ColorCategoryState
+ Gray
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ Gray
+ true
+
+
+
+ Highlighted
+
+ ColorCategory
+ Background.ColorCategoryState
+ Gray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ ColorCategory
+ PlaceholderTextInstance.ColorCategoryState
+ DarkGray
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+ Selected
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ true
+ true
+
+
+ ColorCategory
+ PlaceholderTextInstance.ColorCategoryState
+ Gray
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+
+
+ LineModeCategory
+ false
+
+ Single
+
+
+ Multi
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ SelectionInstance
+ NineSlice
+ false
+
+
+ TextInstance
+ Text
+ false
+
+
+ PlaceholderTextInstance
+ Text
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+ CaretInstance
+ Sprite
+ false
+
+
+
+ TextBoxBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/Toast.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/Toast.gucx
new file mode 100644
index 000000000..8e062e36a
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/Toast.gucx
@@ -0,0 +1,249 @@
+
+
+ Controls/Toast
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ float
+ Background.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Height Units
+ 2
+ true
+
+
+ string
+ Background.Parent
+ DemoSettingsMenu
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Panel
+ true
+
+
+ float
+ Background.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Width Units
+ 2
+ true
+
+
+ float
+ Background.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ Background.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.X Units
+ 6
+ true
+
+
+ float
+ Background.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ Background.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.Y Units
+ 7
+ true
+
+
+ float
+ Height
+ 57
+ true
+
+
+ State
+ State
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ true
+
+
+ float
+ TextInstance.Height
+ -16
+ true
+
+
+ DimensionUnitType
+ TextInstance.Height Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ TextInstance.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ TextInstance.Parent
+ true
+
+
+ StyleCategory
+ TextInstance.StyleCategoryState
+ Strong
+ true
+
+
+ string
+ TextInstance.Text
+ Toast Text!!!!
+ true
+
+
+ VerticalAlignment
+ TextInstance.VerticalAlignment
+ 1
+ true
+
+
+ float
+ TextInstance.Width
+ -16
+ true
+
+
+ DimensionUnitType
+ TextInstance.Width Units
+ 2
+ true
+
+
+ float
+ TextInstance.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ TextInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TextInstance.X Units
+ 6
+ true
+
+
+ float
+ TextInstance.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ TextInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ TextInstance.Y Units
+ 7
+ true
+
+
+ float
+ Width
+ 411
+ true
+
+
+ float
+ X
+ 0
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ X Units
+ 6
+ true
+
+
+ float
+ Y
+ -53
+ true
+
+
+ VerticalAlignment
+ Y Origin
+ 2
+ true
+
+
+ PositionUnitType
+ Y Units
+ 5
+ true
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ TextInstance
+ Text
+ false
+
+
+
+ ToastBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/TreeView.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/TreeView.gucx
new file mode 100644
index 000000000..e027d7eaa
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/TreeView.gucx
@@ -0,0 +1,321 @@
+
+
+ Controls/TreeView
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ float
+ Background.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Height Units
+ 2
+ true
+
+
+ string
+ Background.Parent
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Bordered
+ true
+
+
+ float
+ Background.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Background.Width Units
+ 2
+ true
+
+
+ float
+ Background.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ Background.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.X Units
+ 6
+ true
+
+
+ float
+ Background.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ Background.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Background.Y Units
+ 7
+ true
+
+
+ bool
+ ClipContainerInstance.Clips Children
+ true
+ true
+
+
+ float
+ ClipContainerInstance.Height
+ -4
+ true
+
+
+ DimensionUnitType
+ ClipContainerInstance.Height Units
+ 2
+ true
+
+
+ string
+ ClipContainerInstance.Parent
+ true
+
+
+ float
+ ClipContainerInstance.Width
+ -27
+ true
+
+
+ DimensionUnitType
+ ClipContainerInstance.Width Units
+ 2
+ true
+
+
+ float
+ ClipContainerInstance.X
+ 2
+ true
+
+
+ float
+ ClipContainerInstance.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ ClipContainerInstance.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ ClipContainerInstance.Y Units
+ 1
+ true
+
+
+ ColorCategory
+ FocusedIndicator.ColorCategoryState
+ Warning
+ true
+
+
+ float
+ FocusedIndicator.Height
+ 2
+ true
+
+
+ DimensionUnitType
+ FocusedIndicator.Height Units
+ 0
+ true
+
+
+ string
+ FocusedIndicator.Parent
+ true
+
+
+ StyleCategory
+ FocusedIndicator.StyleCategoryState
+ Solid
+ true
+
+
+ bool
+ FocusedIndicator.Visible
+ false
+ true
+
+
+ float
+ FocusedIndicator.Y
+ 2
+ true
+
+
+ VerticalAlignment
+ FocusedIndicator.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ FocusedIndicator.Y Units
+ 5
+ true
+
+
+ ChildrenLayout
+ InnerPanelInstance.Children Layout
+ 1
+ true
+
+
+ float
+ InnerPanelInstance.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ InnerPanelInstance.Height Units
+ 4
+ true
+
+
+ string
+ InnerPanelInstance.Parent
+ ClipContainerInstance
+ true
+
+
+ float
+ InnerPanelInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ InnerPanelInstance.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ InnerPanelInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ InnerPanelInstance.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ InnerPanelInstance.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ InnerPanelInstance.Y Units
+ 1
+ true
+
+
+ State
+ State
+ true
+
+
+ string
+ VerticalScrollBarInstance.Parent
+ true
+
+
+ HorizontalAlignment
+ VerticalScrollBarInstance.X Origin
+ 2
+ true
+
+
+ PositionUnitType
+ VerticalScrollBarInstance.X Units
+ 4
+ true
+
+
+ VerticalAlignment
+ VerticalScrollBarInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ VerticalScrollBarInstance.Y Units
+ 7
+ true
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ VerticalScrollBarInstance
+ Controls/ScrollBar
+ false
+
+
+ ClipContainerInstance
+ Container
+ false
+
+
+ InnerPanelInstance
+ Container
+ false
+
+
+ FocusedIndicator
+ NineSlice
+ false
+
+
+
+ TreeViewBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/TreeViewItem.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/TreeViewItem.gucx
new file mode 100644
index 000000000..b9b018487
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/TreeViewItem.gucx
@@ -0,0 +1,135 @@
+
+
+ Controls/TreeViewItem
+ Container
+
+ Default
+
+ float
+ Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 4
+ true
+
+
+ ChildrenLayout
+ InnerPanelInstance.Children Layout
+ 1
+ true
+
+
+ float
+ InnerPanelInstance.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ InnerPanelInstance.Height Units
+ 4
+ true
+
+
+ float
+ InnerPanelInstance.Width
+ -24
+ true
+
+
+ DimensionUnitType
+ InnerPanelInstance.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ InnerPanelInstance.X Origin
+ 2
+ true
+
+
+ PositionUnitType
+ InnerPanelInstance.X Units
+ 4
+ true
+
+
+ float
+ InnerPanelInstance.Y
+ 24
+ true
+
+
+ float
+ ListBoxItemInstance.Height
+ 24
+ true
+
+
+ DimensionUnitType
+ ListBoxItemInstance.Height Units
+ 0
+ true
+
+
+ float
+ ListBoxItemInstance.Width
+ -24
+ true
+
+
+ HorizontalAlignment
+ ListBoxItemInstance.X Origin
+ 2
+ true
+
+
+ PositionUnitType
+ ListBoxItemInstance.X Units
+ 4
+ true
+
+
+ State
+ State
+ true
+
+
+ float
+ Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 2
+ true
+
+
+
+ ToggleButtonInstance
+ Controls/TreeViewToggle
+ false
+
+
+ ListBoxItemInstance
+ Controls/ListBoxItem
+ false
+
+
+ InnerPanelInstance
+ Container
+ false
+
+
+
+ TreeViewItemBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/TreeViewToggle.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/TreeViewToggle.gucx
new file mode 100644
index 000000000..bbe5bab80
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/TreeViewToggle.gucx
@@ -0,0 +1,401 @@
+
+
+ Controls/TreeViewToggle
+ Container
+
+ Default
+
+ float
+ Height
+ 24
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 0
+ true
+
+
+ float
+ IconInstance.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ IconInstance.Height Units
+ 2
+ true
+
+
+ IconCategory
+ IconInstance.IconCategoryState
+ Arrow2
+ true
+
+
+ string
+ IconInstance.Parent
+ NineSliceInstance
+ true
+
+
+ float
+ IconInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ IconInstance.Width Units
+ 2
+ true
+
+
+ ColorCategory
+ NineSliceInstance.ColorCategoryState
+ Primary
+ true
+
+
+ StyleCategory
+ NineSliceInstance.StyleCategoryState
+ Bordered
+ true
+
+
+ State
+ State
+ true
+
+
+ ToggleCategory
+ ToggleCategoryState
+ false
+
+
+ float
+ Width
+ 24
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 0
+ true
+
+
+
+ ToggleCategory
+ false
+
+ EnabledOn
+
+ ColorCategory
+ IconInstance.IconColor
+ White
+ IconColor
+ true
+
+
+ float
+ IconInstance.Rotation
+ -90
+ true
+
+
+ RenderingLibrary.Graphics.HorizontalAlignment
+ IconInstance.X Origin
+ 0
+ true
+
+
+ RenderingLibrary.Graphics.VerticalAlignment
+ IconInstance.Y Origin
+ 2
+ true
+
+
+ ColorCategory
+ NineSliceInstance.ColorCategoryState
+ Primary
+ true
+
+
+
+ EnabledOff
+
+ ColorCategory
+ IconInstance.IconColor
+ White
+ IconColor
+ true
+
+
+ float
+ IconInstance.Rotation
+ 0
+ Flip and Rotation
+ true
+
+
+ HorizontalAlignment
+ IconInstance.X Origin
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ IconInstance.Y Origin
+ 0
+ Position
+ true
+
+
+ ColorCategory
+ NineSliceInstance.ColorCategoryState
+ Primary
+ true
+
+
+
+ DisabledOn
+
+ string
+ IconInstance.IconColor
+ Gray
+ true
+
+
+ float
+ IconInstance.Rotation
+ -90
+ Flip and Rotation
+ true
+
+
+ HorizontalAlignment
+ IconInstance.X Origin
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ IconInstance.Y Origin
+ 2
+ Position
+ true
+
+
+ ColorCategory
+ NineSliceInstance.ColorCategoryState
+ DarkGray
+ true
+
+
+
+ DisabledOff
+
+ ColorCategory
+ IconInstance.IconColor
+ Gray
+ IconColor
+ true
+
+
+ float
+ IconInstance.Rotation
+ 0
+ Flip and Rotation
+ true
+
+
+ HorizontalAlignment
+ IconInstance.X Origin
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ IconInstance.Y Origin
+ 0
+ Position
+ true
+
+
+ ColorCategory
+ NineSliceInstance.ColorCategoryState
+ DarkGray
+ true
+
+
+
+ HighlightedOn
+
+ ColorCategory
+ IconInstance.IconColor
+ White
+ IconColor
+ true
+
+
+ float
+ IconInstance.Rotation
+ -90
+ Flip and Rotation
+ true
+
+
+ HorizontalAlignment
+ IconInstance.X Origin
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ IconInstance.Y Origin
+ 2
+ Position
+ true
+
+
+ ColorCategory
+ NineSliceInstance.ColorCategoryState
+ PrimaryLight
+ true
+
+
+
+ HighlightedOff
+
+ ColorCategory
+ IconInstance.IconColor
+ White
+ IconColor
+ true
+
+
+ float
+ IconInstance.Rotation
+ 0
+ Flip and Rotation
+ true
+
+
+ HorizontalAlignment
+ IconInstance.X Origin
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ IconInstance.Y Origin
+ 0
+ Position
+ true
+
+
+ ColorCategory
+ NineSliceInstance.ColorCategoryState
+ PrimaryLight
+ true
+
+
+
+ PushedOn
+
+ ColorCategory
+ IconInstance.IconColor
+ White
+ IconColor
+ true
+
+
+ float
+ IconInstance.Rotation
+ -90
+ Flip and Rotation
+ true
+
+
+ HorizontalAlignment
+ IconInstance.X Origin
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ IconInstance.Y Origin
+ 2
+ Position
+ true
+
+
+ ColorCategory
+ NineSliceInstance.ColorCategoryState
+ PrimaryDark
+ true
+
+
+
+ PushedOff
+
+ ColorCategory
+ IconInstance.IconColor
+ White
+ IconColor
+ true
+
+
+ float
+ IconInstance.Rotation
+ 0
+ Flip and Rotation
+ true
+
+
+ HorizontalAlignment
+ IconInstance.X Origin
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ IconInstance.Y Origin
+ 0
+ Position
+ true
+
+
+ ColorCategory
+ NineSliceInstance.ColorCategoryState
+ PrimaryDark
+ true
+
+
+
+
+ NineSliceInstance
+ NineSlice
+ false
+
+
+ IconInstance
+ Elements/Icon
+ false
+
+
+
+ ToggleBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/UserControl.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/UserControl.gucx
new file mode 100644
index 000000000..2d19d49cc
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Controls/UserControl.gucx
@@ -0,0 +1,41 @@
+
+
+ Controls/UserControl
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ Primary
+ true
+
+
+ string
+ Background.Parent
+ DemoSettingsMenu
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Panel
+ true
+
+
+ State
+ State
+ true
+
+
+
+ Background
+ NineSlice
+ false
+
+
+
+ UserControlBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/CautionLines.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/CautionLines.gucx
new file mode 100644
index 000000000..00b167c83
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/CautionLines.gucx
@@ -0,0 +1,111 @@
+
+
+ Elements/CautionLines
+ Container
+
+ Default
+
+ bool
+ Clips Children
+ true
+ true
+
+
+ float
+ Height
+ 16
+ true
+
+
+ int
+ LinesSprite.Alpha
+ LineAlpha
+ false
+
+
+ ColorCategory
+ LinesSprite.ColorCategoryState
+ LineColor
+ false
+
+
+ true
+ string
+ LinesSprite.SourceFile
+ UISpriteSheet.png
+ true
+
+
+ TextureAddress
+ LinesSprite.Texture Address
+ 1
+ true
+
+
+ int
+ LinesSprite.Texture Height
+ 32
+ true
+
+
+ int
+ LinesSprite.Texture Left
+ 0
+ true
+
+
+ int
+ LinesSprite.Texture Top
+ 992
+ true
+
+
+ int
+ LinesSprite.Texture Width
+ 1024
+ true
+
+
+ HorizontalAlignment
+ LinesSprite.X Origin
+ 0
+ true
+
+
+ VerticalAlignment
+ LinesSprite.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ LinesSprite.Y Units
+ 7
+ true
+
+
+ State
+ State
+ true
+
+
+ float
+ Width
+ 128
+ true
+
+
+ string
+ LinesSprite.AnimationFrames
+ false
+ false
+
+
+
+
+ LinesSprite
+ Sprite
+ false
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/Divider.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/Divider.gucx
new file mode 100644
index 000000000..d4c9463ed
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/Divider.gucx
@@ -0,0 +1,293 @@
+
+
+ Elements/Divider
+ Container
+
+ Default
+
+ ColorCategory
+ AccentLeft.ColorCategoryState
+ Gray
+ true
+
+
+ float
+ AccentLeft.Height
+ 100
+ true
+
+
+ DimensionUnitType
+ AccentLeft.Height Units
+ 3
+ true
+
+
+ true
+ string
+ AccentLeft.SourceFile
+ UISpriteSheet.png
+ true
+
+
+ TextureAddress
+ AccentLeft.Texture Address
+ 1
+ true
+
+
+ int
+ AccentLeft.Texture Height
+ 3
+ true
+
+
+ int
+ AccentLeft.Texture Left
+ 281
+ true
+
+
+ int
+ AccentLeft.Texture Top
+ 0
+ true
+
+
+ int
+ AccentLeft.Texture Width
+ 3
+ true
+
+
+ float
+ AccentLeft.Width
+ 100
+ true
+
+
+ ColorCategory
+ AccentRight.ColorCategoryState
+ Gray
+ true
+
+
+ float
+ AccentRight.Height
+ 100
+ true
+
+
+ DimensionUnitType
+ AccentRight.Height Units
+ 3
+ true
+
+
+ true
+ string
+ AccentRight.SourceFile
+ UISpriteSheet.png
+ true
+
+
+ TextureAddress
+ AccentRight.Texture Address
+ 1
+ true
+
+
+ int
+ AccentRight.Texture Height
+ 3
+ true
+
+
+ int
+ AccentRight.Texture Left
+ 281
+ true
+
+
+ int
+ AccentRight.Texture Top
+ 0
+ true
+
+
+ int
+ AccentRight.Texture Width
+ 3
+ true
+
+
+ float
+ AccentRight.Width
+ 100
+ true
+
+
+ HorizontalAlignment
+ AccentRight.X Origin
+ 2
+ true
+
+
+ PositionUnitType
+ AccentRight.X Units
+ 4
+ true
+
+
+ float
+ Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 4
+ true
+
+
+ ColorCategory
+ Line.ColorCategoryState
+ Gray
+ true
+
+
+ float
+ Line.Height
+ 100
+ true
+
+
+ DimensionUnitType
+ Line.Height Units
+ 3
+ true
+
+
+ true
+ string
+ Line.SourceFile
+ UISpriteSheet.png
+ true
+
+
+ TextureAddress
+ Line.Texture Address
+ 1
+ true
+
+
+ int
+ Line.Texture Height
+ 1
+ true
+
+
+ int
+ Line.Texture Left
+ 281
+ true
+
+
+ int
+ Line.Texture Top
+ 1
+ true
+
+
+ int
+ Line.Texture Width
+ 3
+ true
+
+
+ float
+ Line.Width
+ -10
+ true
+
+
+ DimensionUnitType
+ Line.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ Line.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Line.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ Line.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Line.Y Units
+ 7
+ true
+
+
+ State
+ State
+ true
+
+
+ float
+ Width
+ 128
+ true
+
+
+ string
+ AccentLeft.AnimationFrames
+ false
+ false
+
+
+
+ string
+ AccentRight.AnimationFrames
+ false
+ false
+
+
+
+ string
+ Line.AnimationFrames
+ false
+ false
+
+
+
+
+ AccentLeft
+ Sprite
+ false
+
+
+ Line
+ Sprite
+ false
+
+
+ AccentRight
+ Sprite
+ false
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/DividerHorizontal.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/DividerHorizontal.gucx
new file mode 100644
index 000000000..e13d96180
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/DividerHorizontal.gucx
@@ -0,0 +1,293 @@
+
+
+ Elements/DividerHorizontal
+ Container
+
+ Default
+
+ ColorCategory
+ AccentLeft.ColorCategoryState
+ Gray
+ true
+
+
+ float
+ AccentLeft.Height
+ 100
+ true
+
+
+ DimensionUnitType
+ AccentLeft.Height Units
+ 3
+ true
+
+
+ true
+ string
+ AccentLeft.SourceFile
+ UISpriteSheet.png
+ true
+
+
+ TextureAddress
+ AccentLeft.Texture Address
+ 1
+ true
+
+
+ int
+ AccentLeft.Texture Height
+ 3
+ true
+
+
+ int
+ AccentLeft.Texture Left
+ 281
+ true
+
+
+ int
+ AccentLeft.Texture Top
+ 0
+ true
+
+
+ int
+ AccentLeft.Texture Width
+ 3
+ true
+
+
+ float
+ AccentLeft.Width
+ 100
+ true
+
+
+ ColorCategory
+ AccentRight.ColorCategoryState
+ Gray
+ true
+
+
+ float
+ AccentRight.Height
+ 100
+ true
+
+
+ DimensionUnitType
+ AccentRight.Height Units
+ 3
+ true
+
+
+ true
+ string
+ AccentRight.SourceFile
+ UISpriteSheet.png
+ true
+
+
+ TextureAddress
+ AccentRight.Texture Address
+ 1
+ true
+
+
+ int
+ AccentRight.Texture Height
+ 3
+ true
+
+
+ int
+ AccentRight.Texture Left
+ 281
+ true
+
+
+ int
+ AccentRight.Texture Top
+ 0
+ true
+
+
+ int
+ AccentRight.Texture Width
+ 3
+ true
+
+
+ float
+ AccentRight.Width
+ 100
+ true
+
+
+ HorizontalAlignment
+ AccentRight.X Origin
+ 2
+ true
+
+
+ PositionUnitType
+ AccentRight.X Units
+ 4
+ true
+
+
+ float
+ Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 4
+ true
+
+
+ ColorCategory
+ Line.ColorCategoryState
+ Gray
+ true
+
+
+ float
+ Line.Height
+ 100
+ true
+
+
+ DimensionUnitType
+ Line.Height Units
+ 3
+ true
+
+
+ true
+ string
+ Line.SourceFile
+ UISpriteSheet.png
+ true
+
+
+ TextureAddress
+ Line.Texture Address
+ 1
+ true
+
+
+ int
+ Line.Texture Height
+ 1
+ true
+
+
+ int
+ Line.Texture Left
+ 281
+ true
+
+
+ int
+ Line.Texture Top
+ 1
+ true
+
+
+ int
+ Line.Texture Width
+ 3
+ true
+
+
+ float
+ Line.Width
+ -8
+ true
+
+
+ DimensionUnitType
+ Line.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ Line.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Line.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ Line.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Line.Y Units
+ 7
+ true
+
+
+ State
+ State
+ true
+
+
+ float
+ Width
+ 128
+ true
+
+
+ string
+ AccentLeft.AnimationFrames
+ false
+ false
+
+
+
+ string
+ AccentRight.AnimationFrames
+ false
+ false
+
+
+
+ string
+ Line.AnimationFrames
+ false
+ false
+
+
+
+
+ AccentLeft
+ Sprite
+ false
+
+
+ Line
+ Sprite
+ false
+
+
+ AccentRight
+ Sprite
+ false
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/DividerVertical.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/DividerVertical.gucx
new file mode 100644
index 000000000..aaf885093
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/DividerVertical.gucx
@@ -0,0 +1,332 @@
+
+
+ Elements/DividerVertical
+ Container
+
+ Default
+
+ ColorCategory
+ AccentRight.ColorCategoryState
+ Gray
+ true
+
+
+ float
+ AccentRight.Height
+ 100
+ true
+
+
+ DimensionUnitType
+ AccentRight.Height Units
+ 3
+ true
+
+
+ string
+ AccentRight.Parent
+ true
+
+
+ true
+ string
+ AccentRight.SourceFile
+ UISpriteSheet.png
+ true
+
+
+ TextureAddress
+ AccentRight.Texture Address
+ 1
+ true
+
+
+ int
+ AccentRight.Texture Height
+ 3
+ true
+
+
+ int
+ AccentRight.Texture Left
+ 281
+ true
+
+
+ int
+ AccentRight.Texture Top
+ 0
+ true
+
+
+ int
+ AccentRight.Texture Width
+ 3
+ true
+
+
+ float
+ AccentRight.Width
+ 100
+ true
+
+
+ HorizontalAlignment
+ AccentRight.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ AccentRight.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ AccentRight.Y Origin
+ 2
+ true
+
+
+ PositionUnitType
+ AccentRight.Y Units
+ 5
+ true
+
+
+ ColorCategory
+ AccentTop.ColorCategoryState
+ Gray
+ true
+
+
+ float
+ AccentTop.Height
+ 100
+ true
+
+
+ DimensionUnitType
+ AccentTop.Height Units
+ 3
+ true
+
+
+ string
+ AccentTop.Parent
+ true
+
+
+ true
+ string
+ AccentTop.SourceFile
+ UISpriteSheet.png
+ true
+
+
+ TextureAddress
+ AccentTop.Texture Address
+ 1
+ true
+
+
+ int
+ AccentTop.Texture Height
+ 3
+ true
+
+
+ int
+ AccentTop.Texture Left
+ 281
+ true
+
+
+ int
+ AccentTop.Texture Top
+ 0
+ true
+
+
+ int
+ AccentTop.Texture Width
+ 3
+ true
+
+
+ float
+ AccentTop.Width
+ 100
+ true
+
+
+ HorizontalAlignment
+ AccentTop.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ AccentTop.X Units
+ 6
+ true
+
+
+ float
+ Height
+ 128
+ true
+
+
+ ColorCategory
+ Line.ColorCategoryState
+ Gray
+ true
+
+
+ float
+ Line.Height
+ -8
+ true
+
+
+ DimensionUnitType
+ Line.Height Units
+ 2
+ true
+
+
+ string
+ Line.Parent
+ true
+
+
+ true
+ string
+ Line.SourceFile
+ UISpriteSheet.png
+ true
+
+
+ TextureAddress
+ Line.Texture Address
+ 1
+ true
+
+
+ int
+ Line.Texture Height
+ 1
+ true
+
+
+ int
+ Line.Texture Left
+ 281
+ true
+
+
+ int
+ Line.Texture Top
+ 1
+ true
+
+
+ int
+ Line.Texture Width
+ 3
+ true
+
+
+ float
+ Line.Width
+ 1
+ true
+
+
+ DimensionUnitType
+ Line.Width Units
+ 0
+ true
+
+
+ HorizontalAlignment
+ Line.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Line.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ Line.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ Line.Y Units
+ 7
+ true
+
+
+ State
+ State
+ true
+
+
+ float
+ Width
+ 0
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 4
+ true
+
+
+ string
+ AccentTop.AnimationFrames
+ false
+ false
+
+
+
+ string
+ Line.AnimationFrames
+ false
+ false
+
+
+
+ string
+ AccentRight.AnimationFrames
+ false
+ false
+
+
+
+
+ AccentTop
+ Sprite
+ false
+
+
+ Line
+ Sprite
+ false
+
+
+ AccentRight
+ Sprite
+ false
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/Icon.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/Icon.gucx
new file mode 100644
index 000000000..2eb6ef395
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/Icon.gucx
@@ -0,0 +1,2482 @@
+
+
+ Elements/Icon
+ Container
+
+ Default
+
+ float
+ Height
+ 32
+ true
+
+
+ IconCategory
+ IconCategoryState
+ false
+
+
+ ColorCategory
+ IconSprite.ColorCategoryState
+ White
+ IconColor
+ true
+
+
+ float
+ IconSprite.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ IconSprite.Height Units
+ 2
+ true
+
+
+ true
+ string
+ IconSprite.SourceFile
+ UISpriteSheet.png
+ true
+
+
+ TextureAddress
+ IconSprite.Texture Address
+ 1
+ true
+
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 0
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ float
+ IconSprite.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ IconSprite.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ IconSprite.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ IconSprite.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ IconSprite.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ IconSprite.Y Units
+ 7
+ true
+
+
+ State
+ State
+ true
+
+
+ float
+ Width
+ 32
+ true
+
+
+ string
+ IconSprite.AnimationFrames
+ false
+ false
+
+
+
+
+ IconCategory
+ false
+
+ None
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 0
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ false
+ true
+
+
+
+ ArrowUpDown
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 384
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 256
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Arrow1
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 256
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Arrow2
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 256
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Arrow3
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 256
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Basket
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 224
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Battery
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 224
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Check
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 384
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 128
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ CheckeredFlag
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 384
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Circle1
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 448
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 128
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Circle2
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 416
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 128
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Close
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 416
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 192
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Crosshairs
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Currency
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 224
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Cursor
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 384
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ CursorText
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 416
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Delete
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Enter
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Expand
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 384
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 192
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Gamepad
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ GamepadNES
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 416
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ GamepadSNES
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 448
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ GamepadNintendo64
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 384
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ GamepadGamecube
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 416
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ GamepadSwitchPro
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ GamepadXbox
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 384
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ GamepadPlaystationDualShock
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ GamepadSegaGenesis
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 448
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Gear
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 96
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ FastForward
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 384
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 160
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ FastForwardBar
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 416
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 160
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ FitToScreen
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 192
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Flame1
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 64
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Flame2
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 64
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Heart
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 128
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Info
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 416
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 256
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Keyboard
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Leaf
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 64
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Lightning
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 416
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 64
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Minimize
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 192
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Monitor
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 448
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 192
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Mouse
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 448
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Music
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 384
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 224
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Pause
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 160
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Pencil
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 96
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Play
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 160
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ PlayBar
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 448
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 160
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Power
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Radiation
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 384
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 64
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Reduce
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 192
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Shield
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 416
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Shot
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Skull
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 448
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Sliders
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 96
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ SoundMaximum
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 448
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 224
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ SoundMinimum
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 416
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 224
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Speech
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 448
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 96
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Star
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 128
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Stop
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 160
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Temperature
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 448
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 64
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Touch
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Trash
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 416
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 96
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Trophy
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 128
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ User
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 288
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 0
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ UserAdd
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 384
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 0
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ UserDelete
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 416
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 0
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ UserGear
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 352
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 0
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ UserMulti
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 320
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 0
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ UserRemove
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 448
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 0
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Warning
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 448
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 256
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+ Wrench
+
+ int
+ IconSprite.Texture Height
+ 32
+ true
+
+
+ int
+ IconSprite.Texture Left
+ 384
+ true
+
+
+ int
+ IconSprite.Texture Top
+ 96
+ true
+
+
+ int
+ IconSprite.Texture Width
+ 32
+ true
+
+
+ bool
+ IconSprite.Visible
+ true
+ true
+
+
+
+
+ IconSprite
+ Sprite
+ false
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/Label.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/Label.gucx
new file mode 100644
index 000000000..6da48419d
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/Label.gucx
@@ -0,0 +1,80 @@
+
+
+ Elements/Label
+ Container
+
+ Default
+
+ float
+ Height
+ 0
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 4
+ true
+
+
+ State
+ State
+ true
+
+
+ ColorCategory
+ TextInstance.ColorCategoryState
+ White
+ LabelColor
+ true
+
+
+ HorizontalAlignment
+ TextInstance.HorizontalAlignment
+ HorizontalAlignment
+ false
+
+
+ StyleCategory
+ TextInstance.StyleCategoryState
+ Strong
+ Style
+ true
+
+
+ string
+ TextInstance.Text
+ Item Label
+ LabelText
+ true
+
+
+ VerticalAlignment
+ TextInstance.VerticalAlignment
+ VerticalAlignment
+ false
+
+
+ DimensionUnitType
+ TextInstance.Width Units
+ 2
+ true
+
+
+ float
+ Width
+ 128
+ true
+
+
+
+ TextInstance
+ Text
+ false
+
+
+
+ LabelBehavior
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/PercentBar.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/PercentBar.gucx
new file mode 100644
index 000000000..7c13c6abb
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/PercentBar.gucx
@@ -0,0 +1,322 @@
+
+
+ Elements/PercentBar
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Bordered
+ true
+
+
+ ColorCategory
+ Bar.ColorCategoryState
+ Primary
+ BarColor
+ true
+
+
+ string
+ Bar.Parent
+ BarContainer
+ true
+
+
+ StyleCategory
+ Bar.StyleCategoryState
+ Solid
+ true
+
+
+ float
+ Bar.Width
+ 25
+ BarPercent
+ true
+
+
+ DimensionUnitType
+ Bar.Width Units
+ 1
+ true
+
+
+ HorizontalAlignment
+ Bar.X Origin
+ 0
+ true
+
+
+ PositionUnitType
+ Bar.X Units
+ 0
+ true
+
+
+ ColorCategory
+ BarContainer.ColorCategoryState
+ Black
+ true
+
+
+ float
+ BarContainer.Height
+ -4
+ true
+
+
+ DimensionUnitType
+ BarContainer.Height Units
+ 2
+ true
+
+
+ StyleCategory
+ BarContainer.StyleCategoryState
+ Solid
+ true
+
+
+ float
+ BarContainer.Width
+ -4
+ true
+
+
+ DimensionUnitType
+ BarContainer.Width Units
+ 2
+ true
+
+
+ HorizontalAlignment
+ BarContainer.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ BarContainer.X Units
+ 6
+ true
+
+
+ VerticalAlignment
+ BarContainer.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ BarContainer.Y Units
+ 7
+ true
+
+
+ BarDecorCategory
+ BarDecorCategoryState
+ false
+
+
+ BarDecor
+ BarDecorState
+ false
+
+
+ float
+ CautionLinesInstance.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ CautionLinesInstance.Height Units
+ 2
+ true
+
+
+ int
+ CautionLinesInstance.LineAlpha
+ 50
+ true
+
+
+ ColorCategory
+ CautionLinesInstance.LineColor
+ Black
+ true
+
+
+ string
+ CautionLinesInstance.Parent
+ Bar
+ true
+
+
+ bool
+ CautionLinesInstance.Visible
+ false
+ true
+
+
+ float
+ CautionLinesInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ CautionLinesInstance.Width Units
+ 2
+ true
+
+
+ float
+ Height
+ 16
+ true
+
+
+ State
+ State
+ true
+
+
+ float
+ VerticalLinesInstance.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ VerticalLinesInstance.Height Units
+ 2
+ true
+
+
+ int
+ VerticalLinesInstance.LineAlpha
+ 50
+ true
+
+
+ ColorCategory
+ VerticalLinesInstance.LineColor
+ Black
+ true
+
+
+ string
+ VerticalLinesInstance.Parent
+ Bar
+ true
+
+
+ bool
+ VerticalLinesInstance.Visible
+ false
+ true
+
+
+ float
+ VerticalLinesInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ VerticalLinesInstance.Width Units
+ 2
+ true
+
+
+ float
+ Width
+ 128
+ true
+
+
+
+ BarDecorCategory
+ false
+
+ None
+
+ bool
+ CautionLinesInstance.Visible
+ false
+ true
+
+
+ bool
+ VerticalLinesInstance.Visible
+ false
+ true
+
+
+
+ CautionLines
+
+ bool
+ CautionLinesInstance.Visible
+ true
+ true
+
+
+ bool
+ VerticalLinesInstance.Visible
+ false
+ true
+
+
+
+ VerticalLines
+
+ bool
+ CautionLinesInstance.Visible
+ false
+ true
+
+
+ bool
+ VerticalLinesInstance.Visible
+ true
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ BarContainer
+ NineSlice
+ false
+
+
+ Bar
+ NineSlice
+ false
+
+
+ CautionLinesInstance
+ Elements/CautionLines
+ false
+
+
+ VerticalLinesInstance
+ Elements/VerticalLines
+ false
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/PercentBarIcon.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/PercentBarIcon.gucx
new file mode 100644
index 000000000..f423a2404
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/PercentBarIcon.gucx
@@ -0,0 +1,394 @@
+
+
+ Elements/PercentBarIcon
+ Container
+
+ Default
+
+ ColorCategory
+ Background.ColorCategoryState
+ DarkGray
+ true
+
+
+ StyleCategory
+ Background.StyleCategoryState
+ Bordered
+ true
+
+
+ ColorCategory
+ Bar.ColorCategoryState
+ Danger
+ BarColor
+ true
+
+
+ string
+ Bar.Parent
+ BarContainer
+ true
+
+
+ StyleCategory
+ Bar.StyleCategoryState
+ Solid
+ true
+
+
+ float
+ Bar.Width
+ 25
+ BarPercent
+ true
+
+
+ DimensionUnitType
+ Bar.Width Units
+ 1
+ true
+
+
+ HorizontalAlignment
+ Bar.X Origin
+ 0
+ true
+
+
+ PositionUnitType
+ Bar.X Units
+ 0
+ true
+
+
+ ColorCategory
+ BarContainer.ColorCategoryState
+ Black
+ true
+
+
+ float
+ BarContainer.Height
+ -4
+ true
+
+
+ DimensionUnitType
+ BarContainer.Height Units
+ 2
+ true
+
+
+ string
+ BarContainer.Parent
+ true
+
+
+ StyleCategory
+ BarContainer.StyleCategoryState
+ Solid
+ true
+
+
+ float
+ BarContainer.Width
+ -18
+ true
+
+
+ DimensionUnitType
+ BarContainer.Width Units
+ 2
+ true
+
+
+ float
+ BarContainer.X
+ -2
+ true
+
+
+ HorizontalAlignment
+ BarContainer.X Origin
+ 2
+ true
+
+
+ PositionUnitType
+ BarContainer.X Units
+ 4
+ true
+
+
+ VerticalAlignment
+ BarContainer.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ BarContainer.Y Units
+ 7
+ true
+
+
+ BarDecorCategory
+ BarDecorCategoryState
+ false
+
+
+ float
+ CautionLinesInstance.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ CautionLinesInstance.Height Units
+ 2
+ true
+
+
+ int
+ CautionLinesInstance.LineAlpha
+ 50
+ true
+
+
+ ColorCategory
+ CautionLinesInstance.LineColor
+ Black
+ true
+
+
+ string
+ CautionLinesInstance.Parent
+ Bar
+ true
+
+
+ bool
+ CautionLinesInstance.Visible
+ false
+ true
+
+
+ float
+ CautionLinesInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ CautionLinesInstance.Width Units
+ 2
+ true
+
+
+ float
+ Height
+ 16
+ true
+
+
+ float
+ IconInstance.Height
+ -4
+ true
+
+
+ DimensionUnitType
+ IconInstance.Height Units
+ 2
+ true
+
+
+ IconCategory
+ IconInstance.IconCategoryState
+ Heart
+ BarIcon
+ true
+
+
+ ColorCategory
+ IconInstance.IconColor
+ Danger
+ BarIconColor
+ true
+
+
+ string
+ IconInstance.Parent
+ true
+
+
+ float
+ IconInstance.Width
+ 100
+ true
+
+
+ DimensionUnitType
+ IconInstance.Width Units
+ 5
+ true
+
+
+ float
+ IconInstance.X
+ 2
+ true
+
+
+ VerticalAlignment
+ IconInstance.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ IconInstance.Y Units
+ 7
+ true
+
+
+ State
+ State
+ true
+
+
+ float
+ VerticalLinesInstance.Height
+ 0
+ true
+
+
+ DimensionUnitType
+ VerticalLinesInstance.Height Units
+ 2
+ true
+
+
+ int
+ VerticalLinesInstance.LineAlpha
+ 50
+ true
+
+
+ ColorCategory
+ VerticalLinesInstance.LineColor
+ Black
+ true
+
+
+ string
+ VerticalLinesInstance.Parent
+ Bar
+ true
+
+
+ bool
+ VerticalLinesInstance.Visible
+ false
+ true
+
+
+ float
+ VerticalLinesInstance.Width
+ 0
+ true
+
+
+ DimensionUnitType
+ VerticalLinesInstance.Width Units
+ 2
+ true
+
+
+ float
+ Width
+ 128
+ true
+
+
+
+ BarDecorCategory
+ false
+
+ None
+
+ bool
+ CautionLinesInstance.Visible
+ false
+ true
+
+
+ bool
+ VerticalLinesInstance.Visible
+ false
+ true
+
+
+
+ CautionLines
+
+ bool
+ CautionLinesInstance.Visible
+ true
+ true
+
+
+ bool
+ VerticalLinesInstance.Visible
+ false
+ true
+
+
+
+ VerticalLines
+
+ bool
+ CautionLinesInstance.Visible
+ false
+ true
+
+
+ bool
+ VerticalLinesInstance.Visible
+ true
+ true
+
+
+
+
+ Background
+ NineSlice
+ false
+
+
+ IconInstance
+ Elements/Icon
+ false
+
+
+ BarContainer
+ NineSlice
+ false
+
+
+ Bar
+ NineSlice
+ false
+
+
+ CautionLinesInstance
+ Elements/CautionLines
+ false
+
+
+ VerticalLinesInstance
+ Elements/VerticalLines
+ false
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/VerticalLines.gucx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/VerticalLines.gucx
new file mode 100644
index 000000000..10478d4c1
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Components/Elements/VerticalLines.gucx
@@ -0,0 +1,111 @@
+
+
+ Elements/VerticalLines
+ Container
+
+ Default
+
+ bool
+ Clips Children
+ true
+ true
+
+
+ float
+ Height
+ 16
+ true
+
+
+ int
+ LinesSprite.Alpha
+ LineAlpha
+ false
+
+
+ ColorCategory
+ LinesSprite.ColorCategoryState
+ LineColor
+ false
+
+
+ true
+ string
+ LinesSprite.SourceFile
+ UISpriteSheet.png
+ true
+
+
+ TextureAddress
+ LinesSprite.Texture Address
+ 1
+ true
+
+
+ int
+ LinesSprite.Texture Height
+ 32
+ true
+
+
+ int
+ LinesSprite.Texture Left
+ 0
+ true
+
+
+ int
+ LinesSprite.Texture Top
+ 960
+ true
+
+
+ int
+ LinesSprite.Texture Width
+ 1024
+ true
+
+
+ HorizontalAlignment
+ LinesSprite.X Origin
+ 0
+ true
+
+
+ VerticalAlignment
+ LinesSprite.Y Origin
+ 1
+ true
+
+
+ PositionUnitType
+ LinesSprite.Y Units
+ 7
+ true
+
+
+ State
+ State
+ true
+
+
+ float
+ Width
+ 128
+ true
+
+
+ string
+ LinesSprite.AnimationFrames
+ false
+ false
+
+
+
+
+ LinesSprite
+ Sprite
+ false
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/EventExport/gum_events.json b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/EventExport/gum_events.json
new file mode 100644
index 000000000..b0e455b6b
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/EventExport/gum_events.json
@@ -0,0 +1,174 @@
+{
+ "UserEvents": {
+ "vchel": [
+ {
+ "NewName": "MainMenuGum.ContainerInstance",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T13:55:24.0578866Z"
+ },
+ {
+ "NewName": "MainMenuGum.TextInstance",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T13:56:01.9126531Z"
+ },
+ {
+ "NewName": "MainMenuGum.ArcInstance",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T13:56:53.3457753Z"
+ },
+ {
+ "NewName": "MainMenuGum.TextInstance1",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T13:59:45.0206722Z"
+ },
+ {
+ "NewName": "MainMenuGum.ArcLabel",
+ "OldName": "MainMenuGum.TextInstance",
+ "ElementType": "Screens",
+ "EventType": 7,
+ "TimestampUtc": "2024-02-12T13:59:54.9572264Z"
+ },
+ {
+ "NewName": "MainMenuGum.CircleLabel",
+ "OldName": "MainMenuGum.TextInstance1",
+ "ElementType": "Screens",
+ "EventType": 7,
+ "TimestampUtc": "2024-02-12T14:00:00.4407404Z"
+ },
+ {
+ "NewName": "MainMenuGum.ColoredCircleInstance",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T14:00:14.8593083Z"
+ },
+ {
+ "NewName": "MainMenuGum.CircleLabel1",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T14:18:38.2432235Z"
+ },
+ {
+ "NewName": "MainMenuGum.ColoredCircleInstance1",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T14:18:38.2462239Z"
+ },
+ {
+ "NewName": "MainMenuGum.CircleLabel2",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T14:19:39.5624522Z"
+ },
+ {
+ "NewName": "MainMenuGum.RectangleLabel",
+ "OldName": "MainMenuGum.CircleLabel2",
+ "ElementType": "Screens",
+ "EventType": 7,
+ "TimestampUtc": "2024-02-12T14:19:47.6506697Z"
+ },
+ {
+ "NewName": "MainMenuGum.CircleOutlinedLabel",
+ "OldName": "MainMenuGum.CircleLabel1",
+ "ElementType": "Screens",
+ "EventType": 7,
+ "TimestampUtc": "2024-02-12T14:19:53.4602546Z"
+ },
+ {
+ "NewName": "MainMenuGum.CircleOutlined",
+ "OldName": "MainMenuGum.ColoredCircleInstance1",
+ "ElementType": "Screens",
+ "EventType": 7,
+ "TimestampUtc": "2024-02-12T14:19:59.1810408Z"
+ },
+ {
+ "NewName": "MainMenuGum.RoundedRectangleInstance",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T14:20:15.3563795Z"
+ },
+ {
+ "NewName": "MainMenuGum.Container1",
+ "OldName": "MainMenuGum.ContainerInstance",
+ "ElementType": "Screens",
+ "EventType": 7,
+ "TimestampUtc": "2024-02-12T14:20:52.3779015Z"
+ },
+ {
+ "NewName": "MainMenuGum.ContainerInstance",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T14:21:22.000698Z"
+ },
+ {
+ "NewName": "MainMenuGum.Container2",
+ "OldName": "MainMenuGum.ContainerInstance",
+ "ElementType": "Screens",
+ "EventType": 7,
+ "TimestampUtc": "2024-02-12T14:21:25.5149521Z"
+ },
+ {
+ "NewName": "MainMenuGum.RectangleLabel1",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T14:22:02.9247788Z"
+ },
+ {
+ "NewName": "MainMenuGum.RoundedRectangleInstance1",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T14:22:22.4038645Z"
+ },
+ {
+ "NewName": "MainMenuGum.RectangleLabel2",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T14:23:10.0030478Z"
+ },
+ {
+ "NewName": "MainMenuGum.ColoredCircleInstance1",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T14:23:20.6046954Z"
+ },
+ {
+ "NewName": "MainMenuGum.RectangleLabel3",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T14:23:56.7167327Z"
+ },
+ {
+ "NewName": "MainMenuGum.RoundedRectangleInstance2",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T14:24:08.2925028Z"
+ },
+ {
+ "NewName": "MainMenuGum.ColoredRectangleInstance",
+ "OldName": null,
+ "ElementType": "Screens",
+ "EventType": 5,
+ "TimestampUtc": "2024-02-12T14:25:03.9579509Z"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font10Arial.bmfc b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font10Arial.bmfc
new file mode 100644
index 000000000..23f101eef
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font10Arial.bmfc
@@ -0,0 +1,48 @@
+# AngelCode Bitmap Font Generator configuration file
+fileVersion=1
+
+# font settings
+fontName=Arial
+charSet=0
+fontSize=-10
+aa=1
+scaleH=100
+useSmoothing=1
+isBold=0
+isItalic=0
+useUnicode=1
+disableBoxChars=1
+outputInvalidCharGlyph=0
+
+# character alignment
+paddingDown=0
+paddingUp=0
+paddingRight=0
+paddingLeft=0
+spacingHoriz=1
+spacingVert=1
+
+# output file
+outWidth=512
+outHeight=256
+outBitDepth=32
+fontDescFormat=0
+fourChnlPacked=0
+textureFormat=png
+textureCompression=0
+alphaChnl=0
+redChnl=4
+greenChnl=4
+blueChnl=4
+invA=0
+invR=0
+invG=0
+invB=0
+
+# outline
+outlineThickness=0
+
+# selected chars
+chars=32-126,160-255
+
+# imported icon images
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font10Arial.fnt b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font10Arial.fnt
new file mode 100644
index 000000000..09090d11d
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font10Arial.fnt
@@ -0,0 +1,253 @@
+info face="Arial" size=-10 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=13 base=10 scaleW=512 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="Font10Arial_0.png"
+chars count=191
+char id=32 x=294 y=18 width=3 height=1 xoffset=-1 yoffset=12 xadvance=3 page=0 chnl=15
+char id=33 x=505 y=8 width=3 height=7 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=34 x=238 y=18 width=4 height=3 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=35 x=60 y=11 width=8 height=7 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=36 x=326 y=0 width=6 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=37 x=469 y=0 width=9 height=7 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=38 x=244 y=10 width=7 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=39 x=509 y=0 width=2 height=3 xoffset=0 yoffset=3 xadvance=2 page=0 chnl=15
+char id=40 x=291 y=0 width=3 height=9 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=41 x=279 y=0 width=3 height=9 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=42 x=233 y=18 width=4 height=3 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=43 x=137 y=19 width=6 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=44 x=263 y=18 width=3 height=2 xoffset=0 yoffset=9 xadvance=3 page=0 chnl=15
+char id=45 x=310 y=17 width=3 height=1 xoffset=0 yoffset=7 xadvance=3 page=0 chnl=15
+char id=46 x=314 y=17 width=3 height=1 xoffset=0 yoffset=9 xadvance=3 page=0 chnl=15
+char id=47 x=460 y=8 width=5 height=7 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=48 x=260 y=10 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=49 x=454 y=8 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=50 x=267 y=10 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=51 x=274 y=10 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=52 x=288 y=10 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=53 x=295 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=54 x=302 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=55 x=407 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=56 x=309 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=57 x=323 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=58 x=155 y=19 width=3 height=5 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15
+char id=59 x=11 y=19 width=3 height=6 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15
+char id=60 x=123 y=19 width=6 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=61 x=219 y=18 width=6 height=3 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=62 x=116 y=19 width=6 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=63 x=330 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=64 x=167 y=0 width=10 height=9 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=65 x=489 y=0 width=9 height=7 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=66 x=164 y=11 width=7 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=67 x=156 y=11 width=7 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=68 x=140 y=11 width=7 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=69 x=204 y=10 width=7 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=70 x=337 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=71 x=78 y=11 width=8 height=7 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=72 x=228 y=10 width=7 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=73 x=501 y=8 width=3 height=7 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=74 x=442 y=9 width=5 height=7 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=75 x=123 y=11 width=8 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=76 x=351 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=77 x=30 y=11 width=9 height=7 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=78 x=180 y=10 width=7 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=79 x=114 y=11 width=8 height=7 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=80 x=188 y=10 width=7 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=81 x=96 y=11 width=8 height=7 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=82 x=196 y=10 width=7 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=83 x=252 y=10 width=7 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=84 x=220 y=10 width=7 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=85 x=236 y=10 width=7 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=86 x=10 y=11 width=9 height=7 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=87 x=458 y=0 width=10 height=7 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=88 x=20 y=11 width=9 height=7 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=89 x=172 y=10 width=7 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=90 x=105 y=11 width=8 height=7 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=91 x=275 y=0 width=3 height=9 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=92 x=483 y=8 width=4 height=7 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=93 x=287 y=0 width=3 height=9 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=94 x=187 y=18 width=5 height=4 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=95 x=271 y=18 width=8 height=1 xoffset=-1 yoffset=11 xadvance=6 page=0 chnl=15
+char id=96 x=267 y=18 width=3 height=2 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=97 x=81 y=19 width=6 height=5 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=98 x=358 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=99 x=74 y=19 width=6 height=5 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=100 x=365 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=101 x=109 y=19 width=6 height=5 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=102 x=478 y=8 width=4 height=7 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=103 x=372 y=9 width=6 height=7 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=104 x=379 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=105 x=497 y=8 width=3 height=7 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=106 x=266 y=0 width=4 height=9 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=107 x=448 y=8 width=5 height=7 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=108 x=493 y=8 width=3 height=7 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=109 x=15 y=19 width=9 height=5 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=110 x=60 y=19 width=6 height=5 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=111 x=67 y=19 width=6 height=5 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=112 x=393 y=9 width=6 height=7 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=113 x=400 y=9 width=6 height=7 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=114 x=150 y=19 width=4 height=5 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15
+char id=115 x=144 y=19 width=5 height=5 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15
+char id=116 x=488 y=8 width=4 height=7 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=117 x=88 y=19 width=6 height=5 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=118 x=53 y=19 width=6 height=5 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=119 x=35 y=19 width=9 height=5 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=15
+char id=120 x=45 y=19 width=7 height=5 xoffset=-1 yoffset=5 xadvance=5 page=0 chnl=15
+char id=121 x=466 y=8 width=5 height=7 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=122 x=130 y=19 width=6 height=5 xoffset=-1 yoffset=5 xadvance=5 page=0 chnl=15
+char id=123 x=254 y=0 width=5 height=9 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=124 x=283 y=0 width=3 height=9 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=125 x=248 y=0 width=5 height=9 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=126 x=252 y=18 width=6 height=2 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15
+char id=160 x=306 y=17 width=3 height=1 xoffset=-1 yoffset=12 xadvance=3 page=0 chnl=15
+char id=161 x=0 y=19 width=3 height=7 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15
+char id=162 x=221 y=0 width=6 height=9 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=163 x=148 y=11 width=7 height=7 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=164 x=159 y=19 width=6 height=4 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=165 x=132 y=11 width=7 height=7 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=166 x=271 y=0 width=3 height=9 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=167 x=235 y=0 width=6 height=9 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=168 x=289 y=18 width=4 height=1 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=169 x=499 y=0 width=9 height=7 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=170 x=205 y=18 width=4 height=4 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=171 x=173 y=18 width=6 height=4 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15
+char id=172 x=226 y=18 width=6 height=3 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=173 x=302 y=17 width=3 height=1 xoffset=0 yoffset=7 xadvance=3 page=0 chnl=15
+char id=174 x=0 y=11 width=9 height=7 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=175 x=280 y=18 width=8 height=1 xoffset=-1 yoffset=1 xadvance=6 page=0 chnl=15
+char id=176 x=243 y=18 width=4 height=3 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=177 x=4 y=19 width=6 height=6 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15
+char id=178 x=199 y=18 width=5 height=4 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=179 x=193 y=18 width=5 height=4 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=180 x=259 y=18 width=3 height=2 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=181 x=421 y=9 width=6 height=7 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=182 x=197 y=0 width=7 height=9 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=183 x=298 y=17 width=3 height=1 xoffset=0 yoffset=6 xadvance=3 page=0 chnl=15
+char id=184 x=248 y=18 width=3 height=3 xoffset=0 yoffset=10 xadvance=3 page=0 chnl=15
+char id=185 x=215 y=18 width=3 height=4 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=186 x=210 y=18 width=4 height=4 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=187 x=180 y=18 width=6 height=4 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15
+char id=188 x=479 y=0 width=9 height=7 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=189 x=40 y=11 width=9 height=7 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=190 x=50 y=11 width=9 height=7 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=191 x=428 y=9 width=6 height=7 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=192 x=20 y=0 width=9 height=10 xoffset=-1 yoffset=0 xadvance=7 page=0 chnl=15
+char id=193 x=10 y=0 width=9 height=10 xoffset=-1 yoffset=0 xadvance=7 page=0 chnl=15
+char id=194 x=0 y=0 width=9 height=10 xoffset=-1 yoffset=0 xadvance=7 page=0 chnl=15
+char id=195 x=30 y=0 width=9 height=10 xoffset=-1 yoffset=0 xadvance=7 page=0 chnl=15
+char id=196 x=178 y=0 width=9 height=9 xoffset=-1 yoffset=1 xadvance=7 page=0 chnl=15
+char id=197 x=295 y=0 width=9 height=8 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=15
+char id=198 x=446 y=0 width=11 height=7 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=199 x=116 y=0 width=7 height=10 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=200 x=108 y=0 width=7 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=201 x=92 y=0 width=7 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=202 x=84 y=0 width=7 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=203 x=213 y=0 width=7 height=9 xoffset=0 yoffset=1 xadvance=7 page=0 chnl=15
+char id=204 x=163 y=0 width=3 height=10 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=15
+char id=205 x=159 y=0 width=3 height=10 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=15
+char id=206 x=154 y=0 width=4 height=10 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=15
+char id=207 x=260 y=0 width=5 height=9 xoffset=-1 yoffset=1 xadvance=3 page=0 chnl=15
+char id=208 x=87 y=11 width=8 height=7 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=209 x=124 y=0 width=7 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=210 x=49 y=0 width=8 height=10 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=211 x=58 y=0 width=8 height=10 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=212 x=40 y=0 width=8 height=10 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=213 x=67 y=0 width=8 height=10 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=214 x=188 y=0 width=8 height=9 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=15
+char id=215 x=166 y=19 width=6 height=4 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=216 x=69 y=11 width=8 height=7 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=217 x=140 y=0 width=7 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=218 x=76 y=0 width=7 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=219 x=132 y=0 width=7 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=220 x=205 y=0 width=7 height=9 xoffset=0 yoffset=1 xadvance=7 page=0 chnl=15
+char id=221 x=100 y=0 width=7 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=222 x=212 y=10 width=7 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=223 x=435 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=224 x=305 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=225 x=361 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=226 x=368 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=227 x=375 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=228 x=281 y=10 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=229 x=382 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=230 x=25 y=19 width=9 height=5 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=231 x=389 y=0 width=6 height=8 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=232 x=354 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=233 x=396 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=234 x=403 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=235 x=316 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=236 x=436 y=0 width=4 height=8 xoffset=-1 yoffset=2 xadvance=3 page=0 chnl=15
+char id=237 x=431 y=0 width=4 height=8 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15
+char id=238 x=441 y=0 width=4 height=8 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15
+char id=239 x=472 y=8 width=5 height=7 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=240 x=344 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=241 x=410 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=242 x=417 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=243 x=424 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=244 x=312 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=245 x=319 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=246 x=386 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=247 x=95 y=19 width=6 height=5 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15
+char id=248 x=102 y=19 width=6 height=5 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=249 x=333 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=250 x=340 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=251 x=347 y=0 width=6 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=252 x=414 y=9 width=6 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=253 x=148 y=0 width=5 height=10 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15
+char id=254 x=228 y=0 width=6 height=9 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=255 x=242 y=0 width=5 height=9 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+kernings count=57
+kerning first=32 second=65 amount=-1
+kerning first=121 second=46 amount=-1
+kerning first=121 second=44 amount=-1
+kerning first=119 second=46 amount=-1
+kerning first=119 second=44 amount=-1
+kerning first=118 second=46 amount=-1
+kerning first=118 second=44 amount=-1
+kerning first=114 second=46 amount=-1
+kerning first=114 second=44 amount=-1
+kerning first=89 second=118 amount=-1
+kerning first=49 second=49 amount=-1
+kerning first=65 second=32 amount=-1
+kerning first=65 second=84 amount=-1
+kerning first=65 second=86 amount=-1
+kerning first=89 second=117 amount=-1
+kerning first=65 second=89 amount=-1
+kerning first=89 second=113 amount=-1
+kerning first=89 second=112 amount=-1
+kerning first=89 second=111 amount=-1
+kerning first=89 second=101 amount=-1
+kerning first=70 second=44 amount=-1
+kerning first=70 second=46 amount=-1
+kerning first=70 second=65 amount=-1
+kerning first=89 second=97 amount=-1
+kerning first=76 second=84 amount=-1
+kerning first=76 second=86 amount=-1
+kerning first=76 second=87 amount=-1
+kerning first=76 second=89 amount=-1
+kerning first=89 second=65 amount=-1
+kerning first=89 second=58 amount=-1
+kerning first=89 second=46 amount=-1
+kerning first=80 second=44 amount=-1
+kerning first=80 second=46 amount=-1
+kerning first=80 second=65 amount=-1
+kerning first=89 second=45 amount=-1
+kerning first=89 second=44 amount=-1
+kerning first=87 second=46 amount=-1
+kerning first=87 second=44 amount=-1
+kerning first=86 second=111 amount=-1
+kerning first=84 second=44 amount=-1
+kerning first=84 second=45 amount=-1
+kerning first=84 second=46 amount=-1
+kerning first=84 second=58 amount=-1
+kerning first=86 second=101 amount=-1
+kerning first=84 second=65 amount=-1
+kerning first=86 second=97 amount=-1
+kerning first=84 second=97 amount=-1
+kerning first=84 second=99 amount=-1
+kerning first=84 second=101 amount=-1
+kerning first=86 second=65 amount=-1
+kerning first=84 second=111 amount=-1
+kerning first=86 second=46 amount=-1
+kerning first=84 second=115 amount=-1
+kerning first=86 second=45 amount=-1
+kerning first=84 second=119 amount=-1
+kerning first=84 second=121 amount=-1
+kerning first=86 second=44 amount=-1
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font10Arial_0.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font10Arial_0.png
new file mode 100644
index 000000000..c118d0170
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font10Arial_0.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font12Arial.bmfc b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font12Arial.bmfc
new file mode 100644
index 000000000..42208e457
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font12Arial.bmfc
@@ -0,0 +1,48 @@
+# AngelCode Bitmap Font Generator configuration file
+fileVersion=1
+
+# font settings
+fontName=Arial
+charSet=0
+fontSize=-12
+aa=1
+scaleH=100
+useSmoothing=1
+isBold=0
+isItalic=0
+useUnicode=1
+disableBoxChars=1
+outputInvalidCharGlyph=0
+
+# character alignment
+paddingDown=0
+paddingUp=0
+paddingRight=0
+paddingLeft=0
+spacingHoriz=1
+spacingVert=1
+
+# output file
+outWidth=512
+outHeight=256
+outBitDepth=32
+fontDescFormat=0
+fourChnlPacked=0
+textureFormat=png
+textureCompression=0
+alphaChnl=0
+redChnl=4
+greenChnl=4
+blueChnl=4
+invA=0
+invR=0
+invG=0
+invB=0
+
+# outline
+outlineThickness=0
+
+# selected chars
+chars=32-126,160-255
+
+# imported icon images
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font12Arial.fnt b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font12Arial.fnt
new file mode 100644
index 000000000..a489c013a
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font12Arial.fnt
@@ -0,0 +1,253 @@
+info face="Arial" size=-12 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=15 base=12 scaleW=512 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="Font12Arial_0.png"
+chars count=191
+char id=32 x=481 y=21 width=3 height=1 xoffset=-1 yoffset=14 xadvance=3 page=0 chnl=15
+char id=33 x=130 y=23 width=3 height=9 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=34 x=405 y=21 width=4 height=3 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=35 x=134 y=13 width=9 height=9 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=36 x=354 y=0 width=7 height=10 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=37 x=0 y=13 width=11 height=9 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=38 x=291 y=12 width=8 height=9 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=39 x=419 y=21 width=2 height=3 xoffset=0 yoffset=3 xadvance=2 page=0 chnl=15
+char id=40 x=308 y=0 width=4 height=11 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=41 x=323 y=0 width=4 height=11 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=42 x=388 y=21 width=5 height=4 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=43 x=276 y=22 width=7 height=5 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=44 x=415 y=21 width=3 height=3 xoffset=0 yoffset=11 xadvance=3 page=0 chnl=15
+char id=45 x=458 y=21 width=4 height=1 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=15
+char id=46 x=477 y=21 width=3 height=1 xoffset=0 yoffset=11 xadvance=3 page=0 chnl=15
+char id=47 x=108 y=23 width=5 height=9 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=48 x=48 y=23 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=49 x=102 y=23 width=5 height=9 xoffset=1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=50 x=56 y=23 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=51 x=363 y=11 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=52 x=371 y=11 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=53 x=379 y=11 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=54 x=395 y=11 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=55 x=16 y=23 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=56 x=403 y=11 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=57 x=411 y=11 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=58 x=272 y=22 width=3 height=7 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15
+char id=59 x=126 y=23 width=3 height=9 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15
+char id=60 x=324 y=22 width=7 height=5 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=61 x=354 y=21 width=7 height=4 xoffset=0 yoffset=6 xadvance=7 page=0 chnl=15
+char id=62 x=284 y=22 width=7 height=5 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=63 x=419 y=11 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=64 x=0 y=0 width=12 height=12 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=65 x=104 y=13 width=9 height=9 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=66 x=273 y=12 width=8 height=9 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=67 x=94 y=13 width=9 height=9 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=68 x=254 y=12 width=9 height=9 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=69 x=345 y=12 width=8 height=9 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=70 x=435 y=11 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=71 x=244 y=12 width=9 height=9 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=72 x=234 y=12 width=9 height=9 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=73 x=122 y=23 width=3 height=9 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=74 x=443 y=11 width=7 height=9 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=75 x=224 y=12 width=9 height=9 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=76 x=451 y=11 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=77 x=214 y=12 width=9 height=9 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=78 x=114 y=13 width=9 height=9 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=79 x=194 y=13 width=9 height=9 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=80 x=336 y=12 width=8 height=9 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=81 x=184 y=13 width=9 height=9 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=82 x=204 y=12 width=9 height=9 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=83 x=309 y=12 width=8 height=9 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=84 x=144 y=13 width=9 height=9 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=85 x=154 y=13 width=9 height=9 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=86 x=164 y=13 width=9 height=9 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=87 x=48 y=13 width=11 height=9 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=88 x=174 y=13 width=9 height=9 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=89 x=318 y=12 width=8 height=9 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=90 x=327 y=12 width=8 height=9 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=91 x=313 y=0 width=4 height=11 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=92 x=90 y=23 width=5 height=9 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=93 x=318 y=0 width=4 height=11 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=94 x=340 y=22 width=5 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=95 x=448 y=21 width=9 height=1 xoffset=-1 yoffset=13 xadvance=7 page=0 chnl=15
+char id=96 x=434 y=21 width=3 height=2 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=97 x=202 y=23 width=7 height=7 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=98 x=64 y=23 width=6 height=9 xoffset=1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=99 x=186 y=23 width=7 height=7 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=100 x=467 y=11 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=101 x=178 y=23 width=7 height=7 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=102 x=78 y=23 width=5 height=9 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=103 x=475 y=11 width=7 height=9 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=104 x=483 y=11 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=105 x=114 y=23 width=3 height=9 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=106 x=333 y=0 width=4 height=11 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=107 x=491 y=11 width=7 height=9 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=108 x=507 y=10 width=3 height=9 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=109 x=134 y=23 width=11 height=7 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=15
+char id=110 x=170 y=23 width=7 height=7 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=111 x=194 y=23 width=7 height=7 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=112 x=499 y=10 width=7 height=9 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=113 x=8 y=23 width=7 height=9 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=114 x=266 y=22 width=5 height=7 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15
+char id=115 x=210 y=22 width=7 height=7 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=116 x=84 y=23 width=5 height=9 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=117 x=234 y=22 width=7 height=7 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=118 x=250 y=22 width=7 height=7 xoffset=-1 yoffset=5 xadvance=5 page=0 chnl=15
+char id=119 x=158 y=23 width=11 height=7 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15
+char id=120 x=258 y=22 width=7 height=7 xoffset=-1 yoffset=5 xadvance=5 page=0 chnl=15
+char id=121 x=71 y=23 width=6 height=9 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=122 x=242 y=22 width=7 height=7 xoffset=-1 yoffset=5 xadvance=5 page=0 chnl=15
+char id=123 x=296 y=0 width=5 height=11 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=124 x=338 y=0 width=3 height=11 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=125 x=328 y=0 width=4 height=11 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=126 x=422 y=21 width=7 height=2 xoffset=0 yoffset=7 xadvance=7 page=0 chnl=15
+char id=160 x=473 y=21 width=3 height=1 xoffset=-1 yoffset=14 xadvance=3 page=0 chnl=15
+char id=161 x=118 y=23 width=3 height=9 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15
+char id=162 x=273 y=0 width=7 height=11 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=163 x=264 y=12 width=8 height=9 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=164 x=292 y=22 width=7 height=5 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=165 x=354 y=11 width=8 height=9 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=166 x=342 y=0 width=3 height=11 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=167 x=281 y=0 width=7 height=11 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=168 x=468 y=21 width=4 height=1 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=169 x=60 y=13 width=11 height=9 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=170 x=376 y=21 width=5 height=4 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=171 x=300 y=22 width=7 height=5 xoffset=0 yoffset=7 xadvance=7 page=0 chnl=15
+char id=172 x=346 y=22 width=7 height=4 xoffset=0 yoffset=6 xadvance=7 page=0 chnl=15
+char id=173 x=463 y=21 width=4 height=1 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=15
+char id=174 x=24 y=13 width=11 height=9 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=175 x=438 y=21 width=9 height=1 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=15
+char id=176 x=399 y=21 width=5 height=3 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=177 x=226 y=22 width=7 height=7 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=178 x=362 y=21 width=6 height=4 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=179 x=382 y=21 width=5 height=4 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=180 x=430 y=21 width=3 height=2 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=181 x=24 y=23 width=7 height=9 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=182 x=248 y=0 width=8 height=11 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=183 x=485 y=21 width=2 height=1 xoffset=1 yoffset=7 xadvance=4 page=0 chnl=15
+char id=184 x=410 y=21 width=4 height=3 xoffset=0 yoffset=12 xadvance=4 page=0 chnl=15
+char id=185 x=394 y=21 width=4 height=4 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=186 x=369 y=21 width=6 height=4 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=187 x=316 y=22 width=7 height=5 xoffset=0 yoffset=7 xadvance=7 page=0 chnl=15
+char id=188 x=36 y=13 width=11 height=9 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=189 x=83 y=13 width=10 height=9 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=190 x=12 y=13 width=11 height=9 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=191 x=40 y=23 width=7 height=9 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=192 x=53 y=0 width=9 height=12 xoffset=-1 yoffset=0 xadvance=7 page=0 chnl=15
+char id=193 x=83 y=0 width=9 height=12 xoffset=-1 yoffset=0 xadvance=7 page=0 chnl=15
+char id=194 x=123 y=0 width=9 height=12 xoffset=-1 yoffset=0 xadvance=7 page=0 chnl=15
+char id=195 x=133 y=0 width=9 height=12 xoffset=-1 yoffset=0 xadvance=7 page=0 chnl=15
+char id=196 x=209 y=0 width=9 height=11 xoffset=-1 yoffset=1 xadvance=7 page=0 chnl=15
+char id=197 x=229 y=0 width=9 height=11 xoffset=-1 yoffset=1 xadvance=7 page=0 chnl=15
+char id=198 x=497 y=0 width=13 height=9 xoffset=-1 yoffset=3 xadvance=12 page=0 chnl=15
+char id=199 x=33 y=0 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=200 x=170 y=0 width=8 height=12 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=201 x=143 y=0 width=8 height=12 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=202 x=161 y=0 width=8 height=12 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=203 x=239 y=0 width=8 height=11 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=15
+char id=204 x=195 y=0 width=3 height=12 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=15
+char id=205 x=191 y=0 width=3 height=12 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=15
+char id=206 x=186 y=0 width=4 height=12 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=15
+char id=207 x=302 y=0 width=5 height=11 xoffset=-1 yoffset=1 xadvance=3 page=0 chnl=15
+char id=208 x=72 y=13 width=10 height=9 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=209 x=93 y=0 width=9 height=12 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=210 x=73 y=0 width=9 height=12 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=211 x=63 y=0 width=9 height=12 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=212 x=43 y=0 width=9 height=12 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=213 x=23 y=0 width=9 height=12 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=214 x=219 y=0 width=9 height=11 xoffset=0 yoffset=1 xadvance=9 page=0 chnl=15
+char id=215 x=308 y=22 width=7 height=5 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=216 x=124 y=13 width=9 height=9 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=217 x=13 y=0 width=9 height=12 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=218 x=113 y=0 width=9 height=12 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=219 x=103 y=0 width=9 height=12 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=220 x=199 y=0 width=9 height=11 xoffset=0 yoffset=1 xadvance=9 page=0 chnl=15
+char id=221 x=152 y=0 width=8 height=12 xoffset=-1 yoffset=0 xadvance=7 page=0 chnl=15
+char id=222 x=300 y=12 width=8 height=9 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=223 x=282 y=12 width=8 height=9 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=224 x=370 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=225 x=474 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=226 x=346 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=227 x=362 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=228 x=387 y=11 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=229 x=265 y=0 width=7 height=11 xoffset=0 yoffset=1 xadvance=7 page=0 chnl=15
+char id=230 x=146 y=23 width=11 height=7 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=15
+char id=231 x=378 y=0 width=7 height=10 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=232 x=466 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=233 x=386 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=234 x=394 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=235 x=427 y=11 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=236 x=482 y=0 width=4 height=10 xoffset=-1 yoffset=2 xadvance=3 page=0 chnl=15
+char id=237 x=492 y=0 width=4 height=10 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15
+char id=238 x=487 y=0 width=4 height=10 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15
+char id=239 x=96 y=23 width=5 height=9 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=240 x=459 y=11 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=241 x=402 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=242 x=410 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=243 x=418 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=244 x=426 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=245 x=434 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=246 x=0 y=23 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=247 x=332 y=22 width=7 height=5 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=248 x=218 y=22 width=7 height=7 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=249 x=442 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=250 x=450 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=251 x=458 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=252 x=32 y=23 width=7 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=253 x=179 y=0 width=6 height=12 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15
+char id=254 x=257 y=0 width=7 height=11 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=255 x=289 y=0 width=6 height=11 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+kernings count=57
+kerning first=32 second=65 amount=-1
+kerning first=121 second=46 amount=-1
+kerning first=121 second=44 amount=-1
+kerning first=119 second=46 amount=-1
+kerning first=119 second=44 amount=-1
+kerning first=118 second=46 amount=-1
+kerning first=118 second=44 amount=-1
+kerning first=114 second=46 amount=-1
+kerning first=114 second=44 amount=-1
+kerning first=89 second=118 amount=-1
+kerning first=49 second=49 amount=-1
+kerning first=65 second=32 amount=-1
+kerning first=65 second=84 amount=-1
+kerning first=65 second=86 amount=-1
+kerning first=89 second=117 amount=-1
+kerning first=65 second=89 amount=-1
+kerning first=89 second=113 amount=-1
+kerning first=89 second=112 amount=-1
+kerning first=89 second=111 amount=-1
+kerning first=89 second=101 amount=-1
+kerning first=70 second=44 amount=-1
+kerning first=70 second=46 amount=-1
+kerning first=70 second=65 amount=-1
+kerning first=89 second=97 amount=-1
+kerning first=76 second=84 amount=-1
+kerning first=76 second=86 amount=-1
+kerning first=76 second=87 amount=-1
+kerning first=76 second=89 amount=-1
+kerning first=89 second=65 amount=-1
+kerning first=89 second=58 amount=-1
+kerning first=89 second=46 amount=-2
+kerning first=80 second=44 amount=-2
+kerning first=80 second=46 amount=-2
+kerning first=80 second=65 amount=-1
+kerning first=89 second=45 amount=-1
+kerning first=89 second=44 amount=-2
+kerning first=87 second=46 amount=-1
+kerning first=87 second=44 amount=-1
+kerning first=86 second=111 amount=-1
+kerning first=84 second=44 amount=-1
+kerning first=84 second=45 amount=-1
+kerning first=84 second=46 amount=-1
+kerning first=84 second=58 amount=-1
+kerning first=86 second=101 amount=-1
+kerning first=84 second=65 amount=-1
+kerning first=86 second=97 amount=-1
+kerning first=84 second=97 amount=-1
+kerning first=84 second=99 amount=-1
+kerning first=84 second=101 amount=-1
+kerning first=86 second=65 amount=-1
+kerning first=84 second=111 amount=-1
+kerning first=86 second=46 amount=-1
+kerning first=84 second=115 amount=-1
+kerning first=86 second=45 amount=-1
+kerning first=84 second=119 amount=-1
+kerning first=84 second=121 amount=-1
+kerning first=86 second=44 amount=-1
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font12Arial_0.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font12Arial_0.png
new file mode 100644
index 000000000..219b835d8
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font12Arial_0.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial.bmfc b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial.bmfc
new file mode 100644
index 000000000..c55faf40a
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial.bmfc
@@ -0,0 +1,48 @@
+# AngelCode Bitmap Font Generator configuration file
+fileVersion=1
+
+# font settings
+fontName=Arial
+charSet=0
+fontSize=-14
+aa=1
+scaleH=100
+useSmoothing=1
+isBold=0
+isItalic=0
+useUnicode=1
+disableBoxChars=1
+outputInvalidCharGlyph=0
+
+# character alignment
+paddingDown=0
+paddingUp=0
+paddingRight=0
+paddingLeft=0
+spacingHoriz=1
+spacingVert=1
+
+# output file
+outWidth=512
+outHeight=256
+outBitDepth=32
+fontDescFormat=0
+fourChnlPacked=0
+textureFormat=png
+textureCompression=0
+alphaChnl=0
+redChnl=4
+greenChnl=4
+blueChnl=4
+invA=0
+invR=0
+invG=0
+invB=0
+
+# outline
+outlineThickness=0
+
+# selected chars
+chars=32-126,160-255
+
+# imported icon images
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial.fnt b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial.fnt
new file mode 100644
index 000000000..8b99ad641
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial.fnt
@@ -0,0 +1,266 @@
+info face="Arial" size=-14 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=16 base=13 scaleW=512 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="Font14Arial_0.png"
+chars count=191
+char id=32 x=121 y=37 width=3 height=1 xoffset=-1 yoffset=15 xadvance=4 page=0 chnl=15
+char id=33 x=251 y=25 width=3 height=10 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=34 x=43 y=37 width=5 height=4 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=35 x=316 y=14 width=10 height=10 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=36 x=375 y=0 width=8 height=12 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=37 x=167 y=14 width=12 height=10 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=38 x=433 y=12 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=39 x=49 y=37 width=3 height=4 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=40 x=263 y=0 width=5 height=13 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=41 x=269 y=0 width=5 height=13 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=42 x=37 y=37 width=5 height=4 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=43 x=433 y=23 width=8 height=7 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=44 x=59 y=37 width=2 height=3 xoffset=1 yoffset=12 xadvance=4 page=0 chnl=15
+char id=45 x=115 y=37 width=5 height=1 xoffset=0 yoffset=9 xadvance=5 page=0 chnl=15
+char id=46 x=133 y=36 width=2 height=1 xoffset=1 yoffset=12 xadvance=4 page=0 chnl=15
+char id=47 x=216 y=25 width=6 height=10 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=48 x=101 y=26 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=49 x=229 y=25 width=5 height=10 xoffset=1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=50 x=110 y=26 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=51 x=119 y=26 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=52 x=128 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=53 x=146 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=54 x=155 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=55 x=74 y=26 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=56 x=164 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=57 x=182 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=58 x=412 y=23 width=2 height=8 xoffset=1 yoffset=5 xadvance=4 page=0 chnl=15
+char id=59 x=263 y=25 width=2 height=10 xoffset=1 yoffset=5 xadvance=4 page=0 chnl=15
+char id=60 x=424 y=23 width=8 height=7 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=61 x=12 y=37 width=8 height=4 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=15
+char id=62 x=415 y=23 width=8 height=7 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=63 x=191 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=64 x=8 y=0 width=14 height=13 xoffset=0 yoffset=3 xadvance=14 page=0 chnl=15
+char id=65 x=232 y=14 width=11 height=10 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=66 x=473 y=12 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=67 x=338 y=13 width=10 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=68 x=327 y=13 width=10 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=69 x=493 y=12 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=70 x=453 y=12 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=71 x=292 y=14 width=11 height=10 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=72 x=0 y=27 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=73 x=259 y=25 width=3 height=10 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=74 x=209 y=25 width=6 height=10 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=75 x=382 y=13 width=10 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=76 x=503 y=12 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=77 x=280 y=14 width=11 height=10 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=78 x=423 y=12 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=79 x=268 y=14 width=11 height=10 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=80 x=463 y=12 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=81 x=399 y=0 width=11 height=11 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=82 x=371 y=13 width=10 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=83 x=483 y=12 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=84 x=443 y=12 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=85 x=10 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=86 x=256 y=14 width=11 height=10 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=87 x=138 y=14 width=14 height=10 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=88 x=349 y=13 width=10 height=10 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=89 x=360 y=13 width=10 height=10 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=90 x=20 y=26 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=91 x=292 y=0 width=4 height=13 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=92 x=223 y=25 width=5 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=93 x=297 y=0 width=4 height=13 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=94 x=500 y=23 width=5 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=95 x=81 y=37 width=10 height=1 xoffset=-1 yoffset=15 xadvance=8 page=0 chnl=15
+char id=96 x=76 y=37 width=4 height=2 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=97 x=303 y=25 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=98 x=29 y=26 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=99 x=405 y=23 width=6 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=100 x=38 y=26 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=101 x=330 y=24 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=102 x=241 y=25 width=5 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=103 x=493 y=0 width=8 height=11 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=104 x=56 y=26 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=105 x=247 y=25 width=3 height=10 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=106 x=302 y=0 width=4 height=13 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=107 x=65 y=26 width=8 height=10 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=108 x=255 y=25 width=3 height=10 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=109 x=279 y=25 width=11 height=8 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=15
+char id=110 x=312 y=25 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=111 x=366 y=24 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=112 x=457 y=0 width=8 height=11 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=113 x=466 y=0 width=8 height=11 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=114 x=391 y=24 width=6 height=8 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=115 x=375 y=24 width=7 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=116 x=96 y=14 width=5 height=11 xoffset=-1 yoffset=2 xadvance=4 page=0 chnl=15
+char id=117 x=339 y=24 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=118 x=383 y=24 width=7 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=119 x=291 y=25 width=11 height=8 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15
+char id=120 x=398 y=24 width=6 height=8 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=121 x=81 y=14 width=7 height=11 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=122 x=321 y=25 width=8 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=15
+char id=123 x=275 y=0 width=5 height=13 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=124 x=315 y=0 width=3 height=13 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=125 x=281 y=0 width=5 height=13 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=126 x=62 y=37 width=8 height=2 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=15
+char id=160 x=125 y=37 width=3 height=1 xoffset=-1 yoffset=15 xadvance=4 page=0 chnl=15
+char id=161 x=118 y=14 width=3 height=11 xoffset=1 yoffset=5 xadvance=5 page=0 chnl=15
+char id=162 x=222 y=0 width=8 height=13 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=163 x=92 y=26 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=164 x=451 y=23 width=8 height=6 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=165 x=393 y=13 width=9 height=10 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=166 x=307 y=0 width=3 height=13 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=167 x=240 y=0 width=8 height=13 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=168 x=109 y=37 width=5 height=1 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=169 x=180 y=14 width=12 height=10 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=170 x=494 y=23 width=5 height=5 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=171 x=442 y=23 width=8 height=6 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=15
+char id=172 x=21 y=37 width=8 height=4 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=15
+char id=173 x=103 y=37 width=5 height=1 xoffset=0 yoffset=9 xadvance=5 page=0 chnl=15
+char id=174 x=219 y=14 width=12 height=10 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=175 x=92 y=37 width=10 height=1 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=15
+char id=176 x=30 y=37 width=6 height=4 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=177 x=348 y=24 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=178 x=487 y=23 width=6 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=179 x=506 y=23 width=5 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=180 x=71 y=37 width=4 height=2 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=181 x=475 y=0 width=8 height=11 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=182 x=141 y=0 width=10 height=13 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=183 x=129 y=36 width=3 height=1 xoffset=1 yoffset=8 xadvance=5 page=0 chnl=15
+char id=184 x=53 y=37 width=5 height=3 xoffset=0 yoffset=13 xadvance=5 page=0 chnl=15
+char id=185 x=0 y=38 width=5 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=186 x=6 y=38 width=5 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=187 x=460 y=23 width=8 height=6 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=15
+char id=188 x=153 y=14 width=13 height=10 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=189 x=206 y=14 width=12 height=10 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=190 x=193 y=14 width=12 height=10 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=191 x=411 y=0 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=192 x=59 y=0 width=11 height=13 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
+char id=193 x=95 y=0 width=11 height=13 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
+char id=194 x=35 y=0 width=11 height=13 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
+char id=195 x=47 y=0 width=11 height=13 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
+char id=196 x=331 y=0 width=11 height=12 xoffset=-1 yoffset=1 xadvance=9 page=0 chnl=15
+char id=197 x=319 y=0 width=11 height=12 xoffset=-1 yoffset=1 xadvance=9 page=0 chnl=15
+char id=198 x=122 y=14 width=15 height=10 xoffset=-1 yoffset=3 xadvance=14 page=0 chnl=15
+char id=199 x=130 y=0 width=10 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=200 x=172 y=0 width=9 height=13 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=201 x=212 y=0 width=9 height=13 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=202 x=202 y=0 width=9 height=13 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=203 x=355 y=0 width=9 height=12 xoffset=0 yoffset=1 xadvance=9 page=0 chnl=15
+char id=204 x=311 y=0 width=3 height=13 xoffset=0 yoffset=0 xadvance=4 page=0 chnl=15
+char id=205 x=287 y=0 width=4 height=13 xoffset=-1 yoffset=0 xadvance=4 page=0 chnl=15
+char id=206 x=257 y=0 width=5 height=13 xoffset=-1 yoffset=0 xadvance=4 page=0 chnl=15
+char id=207 x=393 y=0 width=5 height=12 xoffset=-1 yoffset=1 xadvance=4 page=0 chnl=15
+char id=208 x=304 y=14 width=11 height=10 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=209 x=182 y=0 width=9 height=13 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=210 x=107 y=0 width=11 height=13 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=211 x=23 y=0 width=11 height=13 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=212 x=83 y=0 width=11 height=13 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=213 x=71 y=0 width=11 height=13 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=214 x=343 y=0 width=11 height=12 xoffset=0 yoffset=1 xadvance=11 page=0 chnl=15
+char id=215 x=469 y=23 width=8 height=6 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=216 x=244 y=14 width=11 height=10 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=217 x=162 y=0 width=9 height=13 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=218 x=152 y=0 width=9 height=13 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=219 x=192 y=0 width=9 height=13 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=220 x=365 y=0 width=9 height=12 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15
+char id=221 x=119 y=0 width=10 height=13 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
+char id=222 x=403 y=12 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=223 x=413 y=12 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=224 x=502 y=0 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=225 x=0 y=15 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=226 x=9 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=227 x=18 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=228 x=200 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=229 x=384 y=0 width=8 height=12 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=15
+char id=230 x=266 y=25 width=12 height=8 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=231 x=89 y=14 width=6 height=11 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=232 x=484 y=0 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=233 x=27 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=234 x=36 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=235 x=47 y=26 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=236 x=113 y=14 width=4 height=11 xoffset=-1 yoffset=2 xadvance=4 page=0 chnl=15
+char id=237 x=108 y=14 width=4 height=11 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15
+char id=238 x=102 y=14 width=5 height=11 xoffset=-1 yoffset=2 xadvance=4 page=0 chnl=15
+char id=239 x=235 y=25 width=5 height=10 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=240 x=83 y=26 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=241 x=45 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=242 x=54 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=243 x=63 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=244 x=72 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=245 x=421 y=0 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=246 x=137 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=247 x=478 y=23 width=8 height=5 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=15
+char id=248 x=357 y=24 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=249 x=430 y=0 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=250 x=439 y=0 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=251 x=448 y=0 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=252 x=173 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=253 x=0 y=0 width=7 height=14 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=254 x=231 y=0 width=8 height=13 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=255 x=249 y=0 width=7 height=13 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+kernings count=70
+kerning first=32 second=65 amount=-1
+kerning first=121 second=46 amount=-1
+kerning first=121 second=44 amount=-1
+kerning first=119 second=46 amount=-1
+kerning first=119 second=44 amount=-1
+kerning first=118 second=46 amount=-1
+kerning first=118 second=44 amount=-1
+kerning first=114 second=46 amount=-1
+kerning first=114 second=44 amount=-1
+kerning first=89 second=118 amount=-1
+kerning first=49 second=49 amount=-1
+kerning first=65 second=32 amount=-1
+kerning first=65 second=84 amount=-1
+kerning first=65 second=86 amount=-1
+kerning first=65 second=87 amount=-1
+kerning first=65 second=89 amount=-1
+kerning first=89 second=117 amount=-1
+kerning first=89 second=113 amount=-1
+kerning first=89 second=112 amount=-1
+kerning first=89 second=111 amount=-1
+kerning first=70 second=44 amount=-2
+kerning first=70 second=46 amount=-2
+kerning first=70 second=65 amount=-1
+kerning first=76 second=32 amount=-1
+kerning first=76 second=84 amount=-1
+kerning first=76 second=86 amount=-1
+kerning first=76 second=87 amount=-1
+kerning first=76 second=89 amount=-1
+kerning first=76 second=121 amount=-1
+kerning first=89 second=105 amount=-1
+kerning first=89 second=101 amount=-1
+kerning first=80 second=44 amount=-2
+kerning first=80 second=46 amount=-2
+kerning first=80 second=65 amount=-1
+kerning first=89 second=97 amount=-1
+kerning first=89 second=65 amount=-1
+kerning first=89 second=58 amount=-1
+kerning first=89 second=46 amount=-2
+kerning first=89 second=45 amount=-1
+kerning first=84 second=44 amount=-2
+kerning first=84 second=45 amount=-1
+kerning first=84 second=46 amount=-2
+kerning first=84 second=58 amount=-2
+kerning first=89 second=44 amount=-2
+kerning first=84 second=65 amount=-1
+kerning first=87 second=97 amount=-1
+kerning first=84 second=97 amount=-2
+kerning first=84 second=99 amount=-2
+kerning first=84 second=101 amount=-2
+kerning first=84 second=105 amount=-1
+kerning first=84 second=111 amount=-2
+kerning first=84 second=114 amount=-1
+kerning first=84 second=115 amount=-2
+kerning first=84 second=117 amount=-1
+kerning first=84 second=119 amount=-1
+kerning first=84 second=121 amount=-1
+kerning first=86 second=44 amount=-1
+kerning first=86 second=45 amount=-1
+kerning first=86 second=46 amount=-1
+kerning first=86 second=58 amount=-1
+kerning first=87 second=65 amount=-1
+kerning first=86 second=65 amount=-1
+kerning first=86 second=97 amount=-1
+kerning first=86 second=101 amount=-1
+kerning first=87 second=46 amount=-1
+kerning first=86 second=111 amount=-1
+kerning first=86 second=114 amount=-1
+kerning first=86 second=117 amount=-1
+kerning first=86 second=121 amount=-1
+kerning first=87 second=44 amount=-1
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_0.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_0.png
new file mode 100644
index 000000000..8d54b9613
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_0.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Bold.bmfc b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Bold.bmfc
new file mode 100644
index 000000000..adc0dd31d
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Bold.bmfc
@@ -0,0 +1,48 @@
+# AngelCode Bitmap Font Generator configuration file
+fileVersion=1
+
+# font settings
+fontName=Arial
+charSet=0
+fontSize=-14
+aa=1
+scaleH=100
+useSmoothing=1
+isBold=1
+isItalic=0
+useUnicode=1
+disableBoxChars=1
+outputInvalidCharGlyph=0
+
+# character alignment
+paddingDown=0
+paddingUp=0
+paddingRight=0
+paddingLeft=0
+spacingHoriz=1
+spacingVert=1
+
+# output file
+outWidth=512
+outHeight=256
+outBitDepth=32
+fontDescFormat=0
+fourChnlPacked=0
+textureFormat=png
+textureCompression=0
+alphaChnl=0
+redChnl=4
+greenChnl=4
+blueChnl=4
+invA=0
+invR=0
+invG=0
+invB=0
+
+# outline
+outlineThickness=0
+
+# selected chars
+chars=32-126,160-255
+
+# imported icon images
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Bold.fnt b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Bold.fnt
new file mode 100644
index 000000000..c7146207a
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Bold.fnt
@@ -0,0 +1,267 @@
+info face="Arial" size=-14 bold=1 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=16 base=13 scaleW=512 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="Font14Arial_Bold_0.png"
+chars count=191
+char id=32 x=223 y=36 width=3 height=1 xoffset=-1 yoffset=15 xadvance=4 page=0 chnl=15
+char id=33 x=329 y=25 width=4 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=34 x=110 y=37 width=7 height=4 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=35 x=370 y=13 width=10 height=10 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=36 x=401 y=0 width=8 height=12 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=37 x=403 y=13 width=10 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=38 x=436 y=12 width=10 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=39 x=136 y=37 width=3 height=4 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=40 x=279 y=0 width=5 height=13 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=41 x=285 y=0 width=5 height=13 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=42 x=125 y=37 width=5 height=4 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=43 x=480 y=23 width=8 height=8 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=44 x=131 y=37 width=4 height=4 xoffset=0 yoffset=11 xadvance=4 page=0 chnl=15
+char id=45 x=156 y=37 width=6 height=2 xoffset=0 yoffset=8 xadvance=5 page=0 chnl=15
+char id=46 x=180 y=36 width=4 height=2 xoffset=0 yoffset=11 xadvance=4 page=0 chnl=15
+char id=47 x=312 y=25 width=6 height=10 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=48 x=239 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=49 x=305 y=25 width=6 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=50 x=248 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=51 x=257 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=52 x=10 y=26 width=9 height=10 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=53 x=266 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=54 x=140 y=26 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=55 x=221 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=56 x=158 y=26 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=57 x=167 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=58 x=507 y=23 width=4 height=8 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15
+char id=59 x=324 y=25 width=4 height=10 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15
+char id=60 x=471 y=23 width=8 height=8 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=61 x=70 y=37 width=8 height=5 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=62 x=462 y=23 width=8 height=8 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=63 x=110 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=64 x=9 y=0 width=14 height=13 xoffset=0 yoffset=3 xadvance=14 page=0 chnl=15
+char id=65 x=337 y=14 width=10 height=10 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=66 x=480 y=12 width=10 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=67 x=469 y=12 width=10 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=68 x=381 y=13 width=10 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=69 x=40 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=70 x=491 y=12 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=71 x=302 y=14 width=11 height=10 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=72 x=359 y=13 width=10 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=73 x=319 y=25 width=4 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=74 x=176 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=75 x=348 y=13 width=10 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=76 x=185 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=77 x=197 y=14 width=13 height=10 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=78 x=326 y=14 width=10 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=79 x=314 y=14 width=11 height=10 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=80 x=30 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=81 x=417 y=0 width=11 height=11 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=82 x=425 y=12 width=10 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=83 x=203 y=25 width=8 height=10 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=84 x=70 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=85 x=392 y=13 width=10 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=86 x=290 y=14 width=11 height=10 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=87 x=181 y=14 width=15 height=10 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=88 x=458 y=12 width=10 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=89 x=447 y=12 width=10 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=90 x=414 y=13 width=10 height=10 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=91 x=297 y=0 width=5 height=13 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=92 x=291 y=25 width=6 height=10 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=93 x=291 y=0 width=5 height=13 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=94 x=61 y=37 width=8 height=5 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=95 x=189 y=36 width=10 height=1 xoffset=-1 yoffset=15 xadvance=8 page=0 chnl=15
+char id=96 x=175 y=36 width=4 height=2 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=97 x=498 y=23 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=98 x=0 y=27 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=99 x=0 y=38 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=100 x=20 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=101 x=425 y=23 width=9 height=8 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=102 x=283 y=25 width=7 height=10 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=103 x=50 y=14 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=104 x=80 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=105 x=339 y=25 width=4 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=106 x=321 y=0 width=5 height=13 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=107 x=212 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=108 x=334 y=25 width=4 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=109 x=372 y=24 width=12 height=8 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=110 x=405 y=24 width=9 height=8 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=111 x=385 y=24 width=9 height=8 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=112 x=70 y=14 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=113 x=429 y=0 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=114 x=17 y=37 width=7 height=8 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=115 x=489 y=23 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=116 x=275 y=25 width=7 height=10 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=117 x=415 y=24 width=9 height=8 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=118 x=395 y=24 width=9 height=8 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=119 x=344 y=25 width=13 height=8 xoffset=-1 yoffset=5 xadvance=11 page=0 chnl=15
+char id=120 x=435 y=23 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=121 x=98 y=14 width=8 height=11 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=15
+char id=122 x=9 y=38 width=7 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=123 x=315 y=0 width=5 height=13 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=124 x=341 y=0 width=3 height=13 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=125 x=309 y=0 width=5 height=13 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=126 x=140 y=37 width=8 height=3 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=15
+char id=160 x=219 y=36 width=3 height=1 xoffset=-1 yoffset=15 xadvance=4 page=0 chnl=15
+char id=161 x=159 y=14 width=4 height=11 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15
+char id=162 x=261 y=0 width=8 height=13 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=163 x=120 y=26 width=9 height=10 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=164 x=444 y=23 width=8 height=8 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=165 x=230 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=166 x=337 y=0 width=3 height=13 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=167 x=252 y=0 width=8 height=13 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=168 x=211 y=36 width=7 height=1 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=169 x=252 y=14 width=12 height=10 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=170 x=86 y=37 width=6 height=5 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=171 x=34 y=37 width=8 height=6 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=15
+char id=172 x=52 y=37 width=8 height=5 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=173 x=163 y=37 width=6 height=2 xoffset=0 yoffset=8 xadvance=5 page=0 chnl=15
+char id=174 x=239 y=14 width=12 height=10 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=175 x=200 y=36 width=10 height=1 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=15
+char id=176 x=118 y=37 width=6 height=4 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=177 x=439 y=0 width=9 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=178 x=93 y=37 width=5 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=179 x=99 y=37 width=5 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=180 x=170 y=36 width=4 height=2 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=181 x=134 y=14 width=8 height=11 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=182 x=233 y=0 width=9 height=13 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=183 x=185 y=36 width=3 height=2 xoffset=1 yoffset=7 xadvance=5 page=0 chnl=15
+char id=184 x=149 y=37 width=6 height=3 xoffset=-1 yoffset=13 xadvance=5 page=0 chnl=15
+char id=185 x=105 y=37 width=4 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=186 x=79 y=37 width=6 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=187 x=43 y=37 width=8 height=6 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=15
+char id=188 x=225 y=14 width=13 height=10 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=189 x=265 y=14 width=12 height=10 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=190 x=211 y=14 width=13 height=10 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=191 x=60 y=14 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=192 x=171 y=0 width=10 height=13 xoffset=-1 yoffset=0 xadvance=10 page=0 chnl=15
+char id=193 x=127 y=0 width=10 height=13 xoffset=-1 yoffset=0 xadvance=10 page=0 chnl=15
+char id=194 x=94 y=0 width=10 height=13 xoffset=-1 yoffset=0 xadvance=10 page=0 chnl=15
+char id=195 x=160 y=0 width=10 height=13 xoffset=-1 yoffset=0 xadvance=10 page=0 chnl=15
+char id=196 x=369 y=0 width=10 height=12 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15
+char id=197 x=83 y=0 width=10 height=13 xoffset=-1 yoffset=0 xadvance=10 page=0 chnl=15
+char id=198 x=164 y=14 width=16 height=10 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=199 x=105 y=0 width=10 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=200 x=193 y=0 width=9 height=13 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=201 x=223 y=0 width=9 height=13 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=202 x=203 y=0 width=9 height=13 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=203 x=391 y=0 width=9 height=12 xoffset=0 yoffset=1 xadvance=9 page=0 chnl=15
+char id=204 x=327 y=0 width=4 height=13 xoffset=0 yoffset=0 xadvance=4 page=0 chnl=15
+char id=205 x=332 y=0 width=4 height=13 xoffset=0 yoffset=0 xadvance=4 page=0 chnl=15
+char id=206 x=303 y=0 width=5 height=13 xoffset=0 yoffset=0 xadvance=4 page=0 chnl=15
+char id=207 x=410 y=0 width=6 height=12 xoffset=-1 yoffset=1 xadvance=4 page=0 chnl=15
+char id=208 x=278 y=14 width=11 height=10 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=209 x=116 y=0 width=10 height=13 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=210 x=60 y=0 width=11 height=13 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=211 x=48 y=0 width=11 height=13 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=212 x=36 y=0 width=11 height=13 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=213 x=24 y=0 width=11 height=13 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=214 x=357 y=0 width=11 height=12 xoffset=0 yoffset=1 xadvance=11 page=0 chnl=15
+char id=215 x=25 y=37 width=8 height=7 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=216 x=345 y=0 width=11 height=12 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15
+char id=217 x=72 y=0 width=10 height=13 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=218 x=182 y=0 width=10 height=13 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=219 x=149 y=0 width=10 height=13 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=220 x=380 y=0 width=10 height=12 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15
+char id=221 x=138 y=0 width=10 height=13 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=222 x=501 y=12 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=223 x=149 y=26 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=224 x=80 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=225 x=89 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=226 x=125 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=227 x=107 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=228 x=194 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=229 x=270 y=0 width=8 height=13 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=230 x=358 y=24 width=13 height=8 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=231 x=116 y=14 width=8 height=11 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=232 x=40 y=14 width=9 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=233 x=449 y=0 width=9 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=234 x=459 y=0 width=9 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=235 x=90 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=236 x=154 y=14 width=4 height=11 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15
+char id=237 x=149 y=14 width=4 height=11 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15
+char id=238 x=143 y=14 width=5 height=11 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15
+char id=239 x=298 y=25 width=6 height=10 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=240 x=130 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=241 x=469 y=0 width=9 height=11 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15
+char id=242 x=479 y=0 width=9 height=11 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15
+char id=243 x=489 y=0 width=9 height=11 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15
+char id=244 x=499 y=0 width=9 height=11 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15
+char id=245 x=0 y=15 width=9 height=11 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15
+char id=246 x=50 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=247 x=453 y=23 width=8 height=8 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=248 x=60 y=26 width=9 height=10 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=249 x=10 y=14 width=9 height=11 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15
+char id=250 x=20 y=14 width=9 height=11 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15
+char id=251 x=30 y=14 width=9 height=11 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15
+char id=252 x=100 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=253 x=0 y=0 width=8 height=14 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=15
+char id=254 x=213 y=0 width=9 height=13 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=255 x=243 y=0 width=8 height=13 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+kernings count=71
+kerning first=32 second=65 amount=-1
+kerning first=121 second=46 amount=-1
+kerning first=121 second=44 amount=-1
+kerning first=119 second=46 amount=-1
+kerning first=119 second=44 amount=-1
+kerning first=118 second=46 amount=-1
+kerning first=118 second=44 amount=-1
+kerning first=114 second=46 amount=-1
+kerning first=49 second=49 amount=-1
+kerning first=65 second=32 amount=-1
+kerning first=65 second=84 amount=-1
+kerning first=65 second=86 amount=-1
+kerning first=65 second=87 amount=-1
+kerning first=65 second=89 amount=-1
+kerning first=65 second=118 amount=-1
+kerning first=114 second=44 amount=-1
+kerning first=65 second=121 amount=-1
+kerning first=89 second=118 amount=-1
+kerning first=70 second=44 amount=-2
+kerning first=70 second=46 amount=-2
+kerning first=70 second=65 amount=-1
+kerning first=89 second=117 amount=-1
+kerning first=76 second=84 amount=-1
+kerning first=76 second=86 amount=-1
+kerning first=76 second=87 amount=-1
+kerning first=76 second=89 amount=-1
+kerning first=76 second=121 amount=-1
+kerning first=89 second=113 amount=-1
+kerning first=89 second=112 amount=-1
+kerning first=80 second=44 amount=-2
+kerning first=80 second=46 amount=-2
+kerning first=80 second=65 amount=-1
+kerning first=89 second=111 amount=-1
+kerning first=89 second=105 amount=-1
+kerning first=82 second=89 amount=-1
+kerning first=84 second=44 amount=-2
+kerning first=84 second=45 amount=-1
+kerning first=84 second=46 amount=-2
+kerning first=84 second=58 amount=-2
+kerning first=89 second=101 amount=-1
+kerning first=84 second=65 amount=-1
+kerning first=89 second=97 amount=-1
+kerning first=84 second=97 amount=-1
+kerning first=84 second=99 amount=-1
+kerning first=84 second=101 amount=-1
+kerning first=89 second=65 amount=-1
+kerning first=84 second=111 amount=-1
+kerning first=84 second=114 amount=-1
+kerning first=84 second=115 amount=-1
+kerning first=84 second=117 amount=-1
+kerning first=84 second=119 amount=-1
+kerning first=84 second=121 amount=-1
+kerning first=86 second=44 amount=-1
+kerning first=86 second=45 amount=-1
+kerning first=86 second=46 amount=-1
+kerning first=86 second=58 amount=-1
+kerning first=89 second=58 amount=-1
+kerning first=86 second=65 amount=-1
+kerning first=86 second=97 amount=-1
+kerning first=86 second=101 amount=-1
+kerning first=89 second=46 amount=-2
+kerning first=86 second=111 amount=-1
+kerning first=86 second=114 amount=-1
+kerning first=86 second=117 amount=-1
+kerning first=86 second=121 amount=-1
+kerning first=87 second=44 amount=-1
+kerning first=89 second=45 amount=-1
+kerning first=87 second=46 amount=-1
+kerning first=89 second=44 amount=-2
+kerning first=87 second=97 amount=-1
+kerning first=87 second=65 amount=-1
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Bold_0.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Bold_0.png
new file mode 100644
index 000000000..d625b5866
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Bold_0.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Italic.bmfc b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Italic.bmfc
new file mode 100644
index 000000000..53444c1f8
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Italic.bmfc
@@ -0,0 +1,48 @@
+# AngelCode Bitmap Font Generator configuration file
+fileVersion=1
+
+# font settings
+fontName=Arial
+charSet=0
+fontSize=-14
+aa=1
+scaleH=100
+useSmoothing=1
+isBold=0
+isItalic=1
+useUnicode=1
+disableBoxChars=1
+outputInvalidCharGlyph=0
+
+# character alignment
+paddingDown=0
+paddingUp=0
+paddingRight=0
+paddingLeft=0
+spacingHoriz=1
+spacingVert=1
+
+# output file
+outWidth=512
+outHeight=256
+outBitDepth=32
+fontDescFormat=0
+fourChnlPacked=0
+textureFormat=png
+textureCompression=0
+alphaChnl=0
+redChnl=4
+greenChnl=4
+blueChnl=4
+invA=0
+invR=0
+invG=0
+invB=0
+
+# outline
+outlineThickness=0
+
+# selected chars
+chars=32-126,160-255
+
+# imported icon images
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Italic.fnt b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Italic.fnt
new file mode 100644
index 000000000..5e984f83e
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Italic.fnt
@@ -0,0 +1,257 @@
+info face="Arial" size=-14 bold=0 italic=1 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=16 base=13 scaleW=512 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="Font14Arial_Italic_0.png"
+chars count=191
+char id=32 x=508 y=10 width=3 height=1 xoffset=-1 yoffset=15 xadvance=4 page=0 chnl=15
+char id=33 x=325 y=25 width=5 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=34 x=144 y=37 width=5 height=4 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=35 x=84 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=36 x=20 y=14 width=9 height=11 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=37 x=365 y=13 width=11 height=10 xoffset=1 yoffset=3 xadvance=12 page=0 chnl=15
+char id=38 x=124 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=39 x=508 y=0 width=3 height=4 xoffset=1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=40 x=338 y=0 width=5 height=13 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=41 x=310 y=0 width=6 height=13 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=42 x=130 y=37 width=6 height=4 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=43 x=21 y=37 width=8 height=7 xoffset=1 yoffset=4 xadvance=8 page=0 chnl=15
+char id=44 x=508 y=5 width=3 height=4 xoffset=0 yoffset=12 xadvance=4 page=0 chnl=15
+char id=45 x=210 y=36 width=6 height=1 xoffset=0 yoffset=9 xadvance=5 page=0 chnl=15
+char id=46 x=221 y=36 width=3 height=1 xoffset=0 yoffset=12 xadvance=4 page=0 chnl=15
+char id=47 x=258 y=25 width=8 height=10 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=48 x=74 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=49 x=331 y=25 width=5 height=10 xoffset=2 yoffset=3 xadvance=8 page=0 chnl=15
+char id=50 x=174 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=51 x=144 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=52 x=267 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=53 x=94 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=54 x=114 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=55 x=222 y=25 width=8 height=10 xoffset=1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=56 x=134 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=57 x=154 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=58 x=7 y=38 width=4 height=8 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15
+char id=59 x=182 y=14 width=4 height=11 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15
+char id=60 x=30 y=37 width=8 height=7 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=61 x=114 y=37 width=7 height=4 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=15
+char id=62 x=12 y=37 width=8 height=7 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=63 x=276 y=25 width=8 height=10 xoffset=1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=64 x=10 y=0 width=14 height=13 xoffset=0 yoffset=3 xadvance=14 page=0 chnl=15
+char id=65 x=446 y=12 width=10 height=10 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=66 x=44 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=67 x=424 y=13 width=10 height=10 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=68 x=341 y=14 width=11 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=69 x=329 y=14 width=11 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=70 x=413 y=13 width=10 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=71 x=435 y=12 width=10 height=10 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=15
+char id=72 x=389 y=13 width=11 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=73 x=319 y=25 width=5 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=74 x=285 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=75 x=468 y=12 width=10 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=76 x=303 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=77 x=225 y=14 width=13 height=10 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=78 x=377 y=13 width=11 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=79 x=401 y=13 width=11 height=10 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=15
+char id=80 x=22 y=26 width=10 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=81 x=435 y=0 width=11 height=11 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=15
+char id=82 x=317 y=14 width=11 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=83 x=33 y=26 width=10 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=84 x=11 y=26 width=10 height=10 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=85 x=0 y=27 width=10 height=10 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=86 x=64 y=26 width=9 height=10 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=87 x=209 y=14 width=15 height=10 xoffset=1 yoffset=3 xadvance=14 page=0 chnl=15
+char id=88 x=304 y=14 width=12 height=10 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=89 x=490 y=12 width=10 height=10 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=90 x=501 y=12 width=10 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=91 x=270 y=0 width=7 height=13 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=92 x=349 y=25 width=4 height=10 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=93 x=278 y=0 width=7 height=13 xoffset=-2 yoffset=3 xadvance=4 page=0 chnl=15
+char id=94 x=39 y=37 width=7 height=6 xoffset=1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=95 x=175 y=37 width=10 height=1 xoffset=-2 yoffset=15 xadvance=8 page=0 chnl=15
+char id=96 x=171 y=37 width=3 height=2 xoffset=2 yoffset=3 xadvance=5 page=0 chnl=15
+char id=97 x=474 y=23 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=98 x=204 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=99 x=456 y=23 width=8 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=100 x=104 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=101 x=447 y=23 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=102 x=312 y=25 width=6 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=103 x=0 y=15 width=9 height=11 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=104 x=213 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=105 x=354 y=24 width=4 height=10 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=106 x=331 y=0 width=6 height=13 xoffset=-2 yoffset=3 xadvance=3 page=0 chnl=15
+char id=107 x=184 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=108 x=359 y=24 width=4 height=10 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=109 x=387 y=24 width=11 height=8 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=15
+char id=110 x=429 y=24 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=111 x=438 y=23 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=112 x=458 y=0 width=9 height=11 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15
+char id=113 x=129 y=14 width=8 height=11 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=114 x=0 y=38 width=6 height=8 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=115 x=465 y=23 width=8 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=116 x=343 y=25 width=5 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=117 x=410 y=24 width=9 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=118 x=501 y=23 width=7 height=8 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=119 x=399 y=24 width=10 height=8 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=120 x=483 y=23 width=8 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=15
+char id=121 x=498 y=0 width=9 height=11 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=15
+char id=122 x=420 y=24 width=8 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=123 x=302 y=0 width=7 height=13 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=124 x=344 y=0 width=2 height=13 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=125 x=294 y=0 width=7 height=13 xoffset=-2 yoffset=3 xadvance=5 page=0 chnl=15
+char id=126 x=156 y=37 width=9 height=2 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=15
+char id=160 x=217 y=36 width=3 height=1 xoffset=-1 yoffset=15 xadvance=4 page=0 chnl=15
+char id=161 x=170 y=14 width=5 height=11 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=162 x=261 y=0 width=8 height=13 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=163 x=54 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=164 x=492 y=23 width=8 height=8 xoffset=1 yoffset=4 xadvance=9 page=0 chnl=15
+char id=165 x=457 y=12 width=10 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=166 x=347 y=0 width=2 height=13 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=167 x=251 y=0 width=9 height=13 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=168 x=203 y=36 width=6 height=1 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=169 x=291 y=14 width=12 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=170 x=80 y=37 width=6 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=171 x=63 y=37 width=7 height=6 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=15
+char id=172 x=122 y=37 width=7 height=4 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=15
+char id=173 x=196 y=36 width=6 height=1 xoffset=0 yoffset=9 xadvance=5 page=0 chnl=15
+char id=174 x=278 y=14 width=12 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=175 x=186 y=37 width=9 height=1 xoffset=1 yoffset=1 xadvance=8 page=0 chnl=15
+char id=176 x=137 y=37 width=6 height=4 xoffset=1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=177 x=364 y=24 width=9 height=9 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=178 x=101 y=37 width=6 height=5 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=179 x=87 y=37 width=6 height=5 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=180 x=166 y=37 width=4 height=2 xoffset=2 yoffset=3 xadvance=5 page=0 chnl=15
+char id=181 x=447 y=0 width=10 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15
+char id=182 x=165 y=0 width=10 height=13 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=183 x=509 y=23 width=2 height=1 xoffset=2 yoffset=8 xadvance=5 page=0 chnl=15
+char id=184 x=150 y=37 width=5 height=3 xoffset=0 yoffset=13 xadvance=5 page=0 chnl=15
+char id=185 x=108 y=37 width=5 height=5 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=186 x=94 y=37 width=6 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=187 x=47 y=37 width=7 height=6 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=15
+char id=188 x=252 y=14 width=12 height=10 xoffset=1 yoffset=3 xadvance=12 page=0 chnl=15
+char id=189 x=239 y=14 width=12 height=10 xoffset=1 yoffset=3 xadvance=12 page=0 chnl=15
+char id=190 x=265 y=14 width=12 height=10 xoffset=1 yoffset=3 xadvance=12 page=0 chnl=15
+char id=191 x=156 y=14 width=7 height=11 xoffset=1 yoffset=5 xadvance=9 page=0 chnl=15
+char id=192 x=209 y=0 width=10 height=13 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
+char id=193 x=198 y=0 width=10 height=13 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
+char id=194 x=187 y=0 width=10 height=13 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
+char id=195 x=176 y=0 width=10 height=13 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=15
+char id=196 x=408 y=0 width=10 height=12 xoffset=-1 yoffset=1 xadvance=9 page=0 chnl=15
+char id=197 x=397 y=0 width=10 height=12 xoffset=-1 yoffset=1 xadvance=9 page=0 chnl=15
+char id=198 x=192 y=14 width=16 height=10 xoffset=-1 yoffset=3 xadvance=14 page=0 chnl=15
+char id=199 x=121 y=0 width=10 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=200 x=109 y=0 width=11 height=13 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=201 x=37 y=0 width=11 height=13 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=202 x=25 y=0 width=11 height=13 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=203 x=374 y=0 width=11 height=12 xoffset=0 yoffset=1 xadvance=9 page=0 chnl=15
+char id=204 x=324 y=0 width=6 height=13 xoffset=0 yoffset=0 xadvance=4 page=0 chnl=15
+char id=205 x=317 y=0 width=6 height=13 xoffset=0 yoffset=0 xadvance=4 page=0 chnl=15
+char id=206 x=286 y=0 width=7 height=13 xoffset=0 yoffset=0 xadvance=4 page=0 chnl=15
+char id=207 x=428 y=0 width=6 height=12 xoffset=0 yoffset=1 xadvance=4 page=0 chnl=15
+char id=208 x=353 y=13 width=11 height=10 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=209 x=85 y=0 width=11 height=13 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=210 x=73 y=0 width=11 height=13 xoffset=1 yoffset=0 xadvance=11 page=0 chnl=15
+char id=211 x=61 y=0 width=11 height=13 xoffset=1 yoffset=0 xadvance=11 page=0 chnl=15
+char id=212 x=97 y=0 width=11 height=13 xoffset=1 yoffset=0 xadvance=11 page=0 chnl=15
+char id=213 x=49 y=0 width=11 height=13 xoffset=1 yoffset=0 xadvance=11 page=0 chnl=15
+char id=214 x=350 y=0 width=11 height=12 xoffset=1 yoffset=1 xadvance=11 page=0 chnl=15
+char id=215 x=55 y=37 width=7 height=6 xoffset=1 yoffset=5 xadvance=8 page=0 chnl=15
+char id=216 x=362 y=0 width=11 height=12 xoffset=1 yoffset=2 xadvance=11 page=0 chnl=15
+char id=217 x=154 y=0 width=10 height=13 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15
+char id=218 x=143 y=0 width=10 height=13 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15
+char id=219 x=132 y=0 width=10 height=13 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=15
+char id=220 x=386 y=0 width=10 height=12 xoffset=1 yoffset=1 xadvance=10 page=0 chnl=15
+char id=221 x=220 y=0 width=10 height=13 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=15
+char id=222 x=479 y=12 width=10 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=223 x=194 y=25 width=9 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=224 x=138 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=225 x=30 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=226 x=48 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=227 x=66 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=228 x=294 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=229 x=419 y=0 width=8 height=12 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=15
+char id=230 x=374 y=24 width=12 height=8 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=231 x=147 y=14 width=8 height=11 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=232 x=39 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=233 x=75 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=234 x=84 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=235 x=249 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=236 x=176 y=14 width=5 height=11 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15
+char id=237 x=187 y=14 width=4 height=11 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15
+char id=238 x=164 y=14 width=5 height=11 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15
+char id=239 x=337 y=25 width=5 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=240 x=488 y=0 width=9 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=241 x=93 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=242 x=57 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=243 x=102 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=244 x=111 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=245 x=120 y=14 width=8 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=246 x=231 y=25 width=8 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=247 x=71 y=37 width=8 height=5 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=15
+char id=248 x=240 y=25 width=8 height=10 xoffset=1 yoffset=4 xadvance=9 page=0 chnl=15
+char id=249 x=478 y=0 width=9 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=250 x=468 y=0 width=9 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=251 x=10 y=14 width=9 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=252 x=164 y=26 width=9 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=253 x=0 y=0 width=9 height=14 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=15
+char id=254 x=231 y=0 width=9 height=13 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=255 x=241 y=0 width=9 height=13 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+kernings count=61
+kerning first=32 second=65 amount=-1
+kerning first=121 second=46 amount=-1
+kerning first=121 second=44 amount=-1
+kerning first=119 second=46 amount=-1
+kerning first=119 second=44 amount=-1
+kerning first=118 second=46 amount=-1
+kerning first=118 second=44 amount=-1
+kerning first=114 second=46 amount=-1
+kerning first=114 second=44 amount=-1
+kerning first=49 second=49 amount=-1
+kerning first=65 second=32 amount=-1
+kerning first=65 second=84 amount=-1
+kerning first=65 second=86 amount=-1
+kerning first=89 second=118 amount=-1
+kerning first=65 second=89 amount=-1
+kerning first=89 second=117 amount=-1
+kerning first=89 second=113 amount=-1
+kerning first=89 second=112 amount=-1
+kerning first=89 second=111 amount=-1
+kerning first=89 second=101 amount=-1
+kerning first=70 second=44 amount=-2
+kerning first=70 second=46 amount=-2
+kerning first=70 second=65 amount=-1
+kerning first=89 second=97 amount=-1
+kerning first=76 second=84 amount=-1
+kerning first=76 second=86 amount=-1
+kerning first=76 second=87 amount=-1
+kerning first=76 second=89 amount=-1
+kerning first=89 second=65 amount=-1
+kerning first=89 second=58 amount=-1
+kerning first=80 second=32 amount=-1
+kerning first=80 second=44 amount=-2
+kerning first=80 second=46 amount=-2
+kerning first=80 second=65 amount=-1
+kerning first=89 second=46 amount=-1
+kerning first=89 second=45 amount=-1
+kerning first=89 second=44 amount=-1
+kerning first=82 second=89 amount=-1
+kerning first=84 second=44 amount=-1
+kerning first=84 second=45 amount=-1
+kerning first=84 second=46 amount=-1
+kerning first=84 second=58 amount=-1
+kerning first=87 second=46 amount=-1
+kerning first=84 second=65 amount=-1
+kerning first=87 second=44 amount=-1
+kerning first=84 second=97 amount=-1
+kerning first=84 second=99 amount=-1
+kerning first=84 second=101 amount=-1
+kerning first=86 second=111 amount=-1
+kerning first=84 second=111 amount=-1
+kerning first=84 second=114 amount=-1
+kerning first=84 second=115 amount=-1
+kerning first=84 second=117 amount=-1
+kerning first=84 second=119 amount=-1
+kerning first=84 second=121 amount=-1
+kerning first=86 second=44 amount=-1
+kerning first=86 second=45 amount=-1
+kerning first=86 second=46 amount=-1
+kerning first=86 second=101 amount=-1
+kerning first=86 second=97 amount=-1
+kerning first=86 second=65 amount=-1
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Italic_0.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Italic_0.png
new file mode 100644
index 000000000..581c24b46
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font14Arial_Italic_0.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font16Arial_Bold.bmfc b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font16Arial_Bold.bmfc
new file mode 100644
index 000000000..1d30c9689
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font16Arial_Bold.bmfc
@@ -0,0 +1,48 @@
+# AngelCode Bitmap Font Generator configuration file
+fileVersion=1
+
+# font settings
+fontName=Arial
+charSet=0
+fontSize=-16
+aa=1
+scaleH=100
+useSmoothing=1
+isBold=1
+isItalic=0
+useUnicode=1
+disableBoxChars=1
+outputInvalidCharGlyph=0
+
+# character alignment
+paddingDown=0
+paddingUp=0
+paddingRight=0
+paddingLeft=0
+spacingHoriz=1
+spacingVert=1
+
+# output file
+outWidth=512
+outHeight=256
+outBitDepth=32
+fontDescFormat=0
+fourChnlPacked=0
+textureFormat=png
+textureCompression=0
+alphaChnl=0
+redChnl=4
+greenChnl=4
+blueChnl=4
+invA=0
+invR=0
+invG=0
+invB=0
+
+# outline
+outlineThickness=0
+
+# selected chars
+chars=32-126,160-255
+
+# imported icon images
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font16Arial_Bold.fnt b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font16Arial_Bold.fnt
new file mode 100644
index 000000000..32e5e7f5a
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font16Arial_Bold.fnt
@@ -0,0 +1,267 @@
+info face="Arial" size=-16 bold=1 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=19 base=15 scaleW=512 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="Font16Arial_Bold_0.png"
+chars count=191
+char id=32 x=411 y=42 width=3 height=1 xoffset=-1 yoffset=18 xadvance=4 page=0 chnl=15
+char id=33 x=462 y=28 width=4 height=12 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=34 x=305 y=42 width=8 height=4 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=35 x=317 y=16 width=11 height=12 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=36 x=451 y=0 width=9 height=14 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15
+char id=37 x=18 y=16 width=15 height=12 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=15
+char id=38 x=163 y=16 width=12 height=12 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=39 x=321 y=42 width=4 height=4 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=40 x=383 y=0 width=5 height=15 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=41 x=395 y=0 width=5 height=15 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=42 x=314 y=42 width=6 height=4 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=43 x=180 y=42 width=10 height=8 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=44 x=300 y=42 width=4 height=5 xoffset=0 yoffset=13 xadvance=4 page=0 chnl=15
+char id=45 x=381 y=42 width=6 height=2 xoffset=0 yoffset=10 xadvance=5 page=0 chnl=15
+char id=46 x=388 y=42 width=4 height=2 xoffset=0 yoffset=13 xadvance=4 page=0 chnl=15
+char id=47 x=424 y=29 width=6 height=12 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=48 x=306 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=49 x=409 y=29 width=7 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=50 x=316 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=51 x=326 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=52 x=186 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=53 x=236 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=54 x=246 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=55 x=286 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=56 x=256 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=57 x=266 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=58 x=175 y=42 width=4 height=9 xoffset=1 yoffset=6 xadvance=6 page=0 chnl=15
+char id=59 x=467 y=28 width=4 height=12 xoffset=1 yoffset=6 xadvance=6 page=0 chnl=15
+char id=60 x=147 y=42 width=9 height=9 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=61 x=283 y=42 width=9 height=5 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=62 x=137 y=42 width=9 height=9 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=63 x=487 y=13 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=64 x=0 y=0 width=16 height=16 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=15
+char id=65 x=280 y=16 width=12 height=12 xoffset=-1 yoffset=3 xadvance=11 page=0 chnl=15
+char id=66 x=267 y=16 width=12 height=12 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=67 x=254 y=16 width=12 height=12 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=68 x=202 y=16 width=12 height=12 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=69 x=341 y=16 width=11 height=12 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=70 x=421 y=16 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=71 x=228 y=16 width=12 height=12 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=72 x=150 y=16 width=12 height=12 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=73 x=457 y=28 width=4 height=12 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=74 x=376 y=29 width=8 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=75 x=241 y=16 width=12 height=12 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=76 x=388 y=16 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=77 x=122 y=16 width=13 height=12 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=78 x=305 y=16 width=11 height=12 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=79 x=215 y=16 width=12 height=12 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=80 x=353 y=16 width=11 height=12 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=81 x=471 y=0 width=12 height=13 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=82 x=176 y=16 width=12 height=12 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=83 x=399 y=16 width=10 height=12 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=15
+char id=84 x=454 y=15 width=10 height=12 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=85 x=365 y=16 width=11 height=12 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=86 x=94 y=16 width=13 height=12 xoffset=-1 yoffset=3 xadvance=11 page=0 chnl=15
+char id=87 x=0 y=17 width=17 height=12 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=88 x=293 y=16 width=11 height=12 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=89 x=189 y=16 width=12 height=12 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=90 x=377 y=16 width=10 height=12 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=91 x=376 y=0 width=6 height=15 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=92 x=417 y=29 width=6 height=12 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=93 x=369 y=0 width=6 height=15 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=94 x=231 y=42 width=9 height=6 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=95 x=342 y=42 width=11 height=2 xoffset=-1 yoffset=16 xadvance=9 page=0 chnl=15
+char id=96 x=398 y=42 width=4 height=2 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=97 x=87 y=42 width=9 height=9 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=98 x=410 y=16 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=99 x=77 y=42 width=9 height=9 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=100 x=432 y=15 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=101 x=67 y=42 width=9 height=9 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=102 x=385 y=29 width=7 height=12 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=103 x=33 y=29 width=10 height=12 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15
+char id=104 x=476 y=14 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=105 x=442 y=28 width=4 height=12 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=106 x=401 y=0 width=5 height=15 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=107 x=276 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=108 x=437 y=28 width=4 height=12 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=109 x=0 y=43 width=14 height=9 xoffset=0 yoffset=6 xadvance=14 page=0 chnl=15
+char id=110 x=45 y=42 width=10 height=9 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15
+char id=111 x=499 y=26 width=10 height=9 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15
+char id=112 x=0 y=30 width=10 height=12 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15
+char id=113 x=443 y=15 width=10 height=12 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15
+char id=114 x=167 y=42 width=7 height=9 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15
+char id=115 x=127 y=42 width=9 height=9 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=116 x=401 y=29 width=7 height=12 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=117 x=56 y=42 width=10 height=9 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15
+char id=118 x=117 y=42 width=9 height=9 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=119 x=30 y=42 width=14 height=9 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=15
+char id=120 x=107 y=42 width=9 height=9 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=121 x=22 y=29 width=10 height=12 xoffset=-1 yoffset=6 xadvance=9 page=0 chnl=15
+char id=122 x=157 y=42 width=9 height=9 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=123 x=362 y=0 width=6 height=15 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=124 x=422 y=0 width=4 height=15 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=125 x=355 y=0 width=6 height=15 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=126 x=326 y=42 width=9 height=3 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=15
+char id=160 x=407 y=42 width=3 height=1 xoffset=-1 yoffset=18 xadvance=4 page=0 chnl=15
+char id=161 x=472 y=28 width=4 height=12 xoffset=0 yoffset=6 xadvance=4 page=0 chnl=15
+char id=162 x=337 y=0 width=9 height=15 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=163 x=498 y=13 width=10 height=12 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=164 x=97 y=42 width=9 height=9 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=165 x=154 y=29 width=10 height=12 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=166 x=407 y=0 width=4 height=15 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=167 x=327 y=0 width=9 height=15 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=168 x=366 y=42 width=7 height=2 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=169 x=49 y=16 width=14 height=12 xoffset=-1 yoffset=3 xadvance=12 page=0 chnl=15
+char id=170 x=251 y=42 width=6 height=6 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=171 x=211 y=42 width=9 height=7 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=15
+char id=172 x=241 y=42 width=9 height=6 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=173 x=374 y=42 width=6 height=2 xoffset=0 yoffset=10 xadvance=5 page=0 chnl=15
+char id=174 x=34 y=16 width=14 height=12 xoffset=-1 yoffset=3 xadvance=12 page=0 chnl=15
+char id=175 x=354 y=42 width=11 height=2 xoffset=-1 yoffset=1 xadvance=9 page=0 chnl=15
+char id=176 x=293 y=42 width=6 height=5 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=177 x=488 y=26 width=10 height=11 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=178 x=272 y=42 width=5 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=179 x=258 y=42 width=6 height=6 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=180 x=393 y=42 width=4 height=2 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=181 x=296 y=29 width=9 height=12 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=182 x=440 y=0 width=10 height=14 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=183 x=403 y=42 width=3 height=2 xoffset=1 yoffset=9 xadvance=5 page=0 chnl=15
+char id=184 x=336 y=42 width=5 height=3 xoffset=0 yoffset=15 xadvance=5 page=0 chnl=15
+char id=185 x=278 y=42 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=186 x=265 y=42 width=6 height=6 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=187 x=221 y=42 width=9 height=7 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=15
+char id=188 x=79 y=16 width=14 height=12 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=189 x=108 y=16 width=13 height=12 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=190 x=64 y=16 width=14 height=12 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=191 x=465 y=15 width=10 height=12 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15
+char id=192 x=30 y=0 width=12 height=15 xoffset=-1 yoffset=0 xadvance=11 page=0 chnl=15
+char id=193 x=69 y=0 width=12 height=15 xoffset=-1 yoffset=0 xadvance=11 page=0 chnl=15
+char id=194 x=56 y=0 width=12 height=15 xoffset=-1 yoffset=0 xadvance=11 page=0 chnl=15
+char id=195 x=43 y=0 width=12 height=15 xoffset=-1 yoffset=0 xadvance=11 page=0 chnl=15
+char id=196 x=147 y=0 width=12 height=15 xoffset=-1 yoffset=0 xadvance=11 page=0 chnl=15
+char id=197 x=173 y=0 width=12 height=15 xoffset=-1 yoffset=0 xadvance=11 page=0 chnl=15
+char id=198 x=484 y=0 width=17 height=12 xoffset=-1 yoffset=3 xadvance=16 page=0 chnl=15
+char id=199 x=160 y=0 width=12 height=15 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=200 x=258 y=0 width=11 height=15 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=201 x=282 y=0 width=11 height=15 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=202 x=270 y=0 width=11 height=15 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=203 x=210 y=0 width=11 height=15 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=204 x=412 y=0 width=4 height=15 xoffset=0 yoffset=0 xadvance=4 page=0 chnl=15
+char id=205 x=417 y=0 width=4 height=15 xoffset=0 yoffset=0 xadvance=4 page=0 chnl=15
+char id=206 x=389 y=0 width=5 height=15 xoffset=0 yoffset=0 xadvance=4 page=0 chnl=15
+char id=207 x=347 y=0 width=7 height=15 xoffset=-2 yoffset=0 xadvance=4 page=0 chnl=15
+char id=208 x=136 y=16 width=13 height=12 xoffset=-1 yoffset=3 xadvance=12 page=0 chnl=15
+char id=209 x=246 y=0 width=11 height=15 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=210 x=82 y=0 width=12 height=15 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=211 x=121 y=0 width=12 height=15 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=212 x=108 y=0 width=12 height=15 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=213 x=95 y=0 width=12 height=15 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=214 x=17 y=0 width=12 height=15 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=215 x=201 y=42 width=9 height=8 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=216 x=427 y=0 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15
+char id=217 x=234 y=0 width=11 height=15 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=218 x=222 y=0 width=11 height=15 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=219 x=198 y=0 width=11 height=15 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=220 x=186 y=0 width=11 height=15 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=221 x=134 y=0 width=12 height=15 xoffset=-1 yoffset=0 xadvance=10 page=0 chnl=15
+char id=222 x=329 y=16 width=11 height=12 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=223 x=11 y=30 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=224 x=336 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=225 x=346 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=226 x=356 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=227 x=502 y=0 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=228 x=176 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=229 x=461 y=0 width=9 height=14 xoffset=0 yoffset=1 xadvance=9 page=0 chnl=15
+char id=230 x=15 y=43 width=14 height=9 xoffset=0 yoffset=6 xadvance=14 page=0 chnl=15
+char id=231 x=196 y=29 width=9 height=12 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=232 x=366 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=233 x=206 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=234 x=216 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=235 x=226 y=29 width=9 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=236 x=452 y=28 width=4 height=12 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=237 x=447 y=28 width=4 height=12 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=238 x=431 y=29 width=5 height=12 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=239 x=393 y=29 width=7 height=12 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=240 x=165 y=29 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=241 x=44 y=29 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=242 x=55 y=29 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=243 x=66 y=29 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=244 x=77 y=29 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=245 x=88 y=29 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=246 x=99 y=29 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=247 x=191 y=42 width=9 height=8 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=248 x=477 y=27 width=10 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=249 x=110 y=29 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=250 x=121 y=29 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=251 x=132 y=29 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=252 x=143 y=29 width=10 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=253 x=316 y=0 width=10 height=15 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=254 x=294 y=0 width=10 height=15 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=255 x=305 y=0 width=10 height=15 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+kernings count=71
+kerning first=32 second=65 amount=-1
+kerning first=121 second=46 amount=-1
+kerning first=121 second=44 amount=-1
+kerning first=119 second=46 amount=-1
+kerning first=119 second=44 amount=-1
+kerning first=118 second=46 amount=-1
+kerning first=118 second=44 amount=-1
+kerning first=114 second=46 amount=-1
+kerning first=49 second=49 amount=-1
+kerning first=65 second=32 amount=-1
+kerning first=65 second=84 amount=-1
+kerning first=65 second=86 amount=-1
+kerning first=65 second=87 amount=-1
+kerning first=65 second=89 amount=-1
+kerning first=65 second=118 amount=-1
+kerning first=114 second=44 amount=-1
+kerning first=65 second=121 amount=-1
+kerning first=89 second=118 amount=-1
+kerning first=70 second=44 amount=-2
+kerning first=70 second=46 amount=-2
+kerning first=70 second=65 amount=-1
+kerning first=89 second=117 amount=-1
+kerning first=76 second=84 amount=-1
+kerning first=76 second=86 amount=-1
+kerning first=76 second=87 amount=-1
+kerning first=76 second=89 amount=-1
+kerning first=76 second=121 amount=-1
+kerning first=89 second=113 amount=-1
+kerning first=89 second=112 amount=-1
+kerning first=80 second=44 amount=-2
+kerning first=80 second=46 amount=-2
+kerning first=80 second=65 amount=-1
+kerning first=89 second=111 amount=-1
+kerning first=89 second=105 amount=-1
+kerning first=82 second=89 amount=-1
+kerning first=84 second=44 amount=-2
+kerning first=84 second=45 amount=-1
+kerning first=84 second=46 amount=-2
+kerning first=84 second=58 amount=-2
+kerning first=89 second=101 amount=-1
+kerning first=84 second=65 amount=-1
+kerning first=89 second=97 amount=-1
+kerning first=84 second=97 amount=-1
+kerning first=84 second=99 amount=-1
+kerning first=84 second=101 amount=-1
+kerning first=89 second=65 amount=-1
+kerning first=84 second=111 amount=-1
+kerning first=84 second=114 amount=-1
+kerning first=84 second=115 amount=-1
+kerning first=84 second=117 amount=-1
+kerning first=84 second=119 amount=-1
+kerning first=84 second=121 amount=-1
+kerning first=86 second=44 amount=-1
+kerning first=86 second=45 amount=-1
+kerning first=86 second=46 amount=-1
+kerning first=86 second=58 amount=-1
+kerning first=89 second=58 amount=-1
+kerning first=86 second=65 amount=-1
+kerning first=86 second=97 amount=-1
+kerning first=86 second=101 amount=-1
+kerning first=89 second=46 amount=-2
+kerning first=86 second=111 amount=-1
+kerning first=86 second=114 amount=-1
+kerning first=86 second=117 amount=-1
+kerning first=86 second=121 amount=-1
+kerning first=87 second=44 amount=-1
+kerning first=89 second=45 amount=-1
+kerning first=87 second=46 amount=-1
+kerning first=89 second=44 amount=-2
+kerning first=87 second=97 amount=-1
+kerning first=87 second=65 amount=-1
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font16Arial_Bold_0.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font16Arial_Bold_0.png
new file mode 100644
index 000000000..0f35b5544
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font16Arial_Bold_0.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font18Arial.fnt b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font18Arial.fnt
new file mode 100644
index 000000000..e8de3f4f8
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font18Arial.fnt
@@ -0,0 +1,266 @@
+info face="Arial" size=-18 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=21 base=17 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="Font18Arial_0.png"
+chars count=191
+char id=32 x=206 y=102 width=3 height=1 xoffset=-1 yoffset=20 xadvance=5 page=0 chnl=15
+char id=33 x=247 y=74 width=4 height=13 xoffset=1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=34 x=113 y=103 width=6 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=35 x=200 y=48 width=11 height=13 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=36 x=165 y=18 width=10 height=16 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=37 x=145 y=35 width=16 height=13 xoffset=0 yoffset=4 xadvance=16 page=0 chnl=15
+char id=38 x=87 y=50 width=12 height=13 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=39 x=252 y=85 width=3 height=5 xoffset=0 yoffset=4 xadvance=3 page=0 chnl=15
+char id=40 x=134 y=0 width=6 height=17 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=41 x=160 y=0 width=5 height=17 xoffset=1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=42 x=105 y=103 width=7 height=5 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=43 x=73 y=92 width=11 height=10 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=15
+char id=44 x=138 y=102 width=3 height=4 xoffset=1 yoffset=15 xadvance=5 page=0 chnl=15
+char id=45 x=182 y=102 width=6 height=2 xoffset=0 yoffset=11 xadvance=6 page=0 chnl=15
+char id=46 x=194 y=102 width=3 height=2 xoffset=1 yoffset=15 xadvance=5 page=0 chnl=15
+char id=47 x=248 y=46 width=7 height=13 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=15
+char id=48 x=192 y=63 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=49 x=228 y=75 width=6 height=13 xoffset=1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=50 x=203 y=62 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=51 x=11 y=78 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=52 x=55 y=78 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=53 x=77 y=78 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=54 x=88 y=78 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=55 x=115 y=63 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=56 x=60 y=64 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=57 x=71 y=64 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=58 x=252 y=74 width=3 height=10 xoffset=1 yoffset=7 xadvance=5 page=0 chnl=15
+char id=59 x=252 y=0 width=3 height=12 xoffset=1 yoffset=7 xadvance=5 page=0 chnl=15
+char id=60 x=207 y=90 width=11 height=9 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=15
+char id=61 x=73 y=103 width=11 height=6 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=15
+char id=62 x=219 y=89 width=11 height=9 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=15
+char id=63 x=82 y=64 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=64 x=0 y=0 width=18 height=17 xoffset=0 yoffset=4 xadvance=18 page=0 chnl=15
+char id=65 x=73 y=50 width=13 height=13 xoffset=-1 yoffset=4 xadvance=11 page=0 chnl=15
+char id=66 x=0 y=64 width=11 height=13 xoffset=1 yoffset=4 xadvance=12 page=0 chnl=15
+char id=67 x=45 y=50 width=13 height=13 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=68 x=243 y=32 width=12 height=13 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=69 x=164 y=49 width=11 height=13 xoffset=1 yoffset=4 xadvance=12 page=0 chnl=15
+char id=70 x=93 y=64 width=10 height=13 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=15
+char id=71 x=0 y=50 width=14 height=13 xoffset=0 yoffset=4 xadvance=14 page=0 chnl=15
+char id=72 x=12 y=64 width=11 height=13 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=73 x=10 y=92 width=4 height=13 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15
+char id=74 x=247 y=60 width=8 height=13 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=75 x=224 y=47 width=11 height=13 xoffset=1 yoffset=4 xadvance=12 page=0 chnl=15
+char id=76 x=140 y=77 width=9 height=13 xoffset=1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=77 x=59 y=50 width=13 height=13 xoffset=1 yoffset=4 xadvance=15 page=0 chnl=15
+char id=78 x=176 y=49 width=11 height=13 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=79 x=30 y=50 width=14 height=13 xoffset=0 yoffset=4 xadvance=14 page=0 chnl=15
+char id=80 x=236 y=46 width=11 height=13 xoffset=1 yoffset=4 xadvance=12 page=0 chnl=15
+char id=81 x=212 y=17 width=14 height=14 xoffset=0 yoffset=4 xadvance=14 page=0 chnl=15
+char id=82 x=100 y=50 width=12 height=13 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=83 x=113 y=49 width=12 height=13 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=84 x=126 y=49 width=12 height=13 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=85 x=24 y=64 width=11 height=13 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=86 x=36 y=64 width=11 height=13 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=87 x=127 y=35 width=17 height=13 xoffset=0 yoffset=4 xadvance=17 page=0 chnl=15
+char id=88 x=48 y=64 width=11 height=13 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=89 x=139 y=49 width=12 height=13 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=90 x=152 y=49 width=11 height=13 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=91 x=148 y=0 width=5 height=17 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15
+char id=92 x=214 y=75 width=6 height=13 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15
+char id=93 x=154 y=0 width=5 height=17 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15
+char id=94 x=45 y=103 width=7 height=7 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=95 x=155 y=102 width=12 height=2 xoffset=-1 yoffset=19 xadvance=10 page=0 chnl=15
+char id=96 x=198 y=102 width=3 height=2 xoffset=1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=97 x=96 y=92 width=10 height=10 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=98 x=104 y=64 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=99 x=170 y=91 width=9 height=10 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=15
+char id=100 x=170 y=77 width=9 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=101 x=107 y=92 width=10 height=10 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=102 x=198 y=77 width=7 height=13 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15
+char id=103 x=53 y=35 width=9 height=14 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=104 x=180 y=77 width=9 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=105 x=0 y=92 width=4 height=13 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15
+char id=106 x=166 y=0 width=5 height=17 xoffset=-2 yoffset=4 xadvance=4 page=0 chnl=15
+char id=107 x=160 y=77 width=9 height=13 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=108 x=5 y=92 width=4 height=13 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15
+char id=109 x=43 y=92 width=14 height=10 xoffset=0 yoffset=7 xadvance=14 page=0 chnl=15
+char id=110 x=160 y=91 width=9 height=10 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=111 x=85 y=92 width=10 height=10 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=112 x=0 y=35 width=10 height=14 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=113 x=83 y=35 width=9 height=14 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=114 x=199 y=91 width=7 height=10 xoffset=0 yoffset=7 xadvance=6 page=0 chnl=15
+char id=115 x=180 y=91 width=9 height=10 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=15
+char id=116 x=190 y=77 width=7 height=13 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=15
+char id=117 x=150 y=91 width=9 height=10 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=118 x=140 y=91 width=9 height=10 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=15
+char id=119 x=58 y=92 width=14 height=10 xoffset=-1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=120 x=190 y=91 width=8 height=10 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=15
+char id=121 x=33 y=35 width=9 height=14 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=15
+char id=122 x=129 y=91 width=10 height=10 xoffset=-1 yoffset=7 xadvance=8 page=0 chnl=15
+char id=123 x=141 y=0 width=6 height=17 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=124 x=172 y=0 width=2 height=17 xoffset=2 yoffset=4 xadvance=6 page=0 chnl=15
+char id=125 x=127 y=0 width=6 height=17 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=126 x=120 y=103 width=11 height=4 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=15
+char id=160 x=210 y=100 width=3 height=1 xoffset=-1 yoffset=20 xadvance=5 page=0 chnl=15
+char id=161 x=102 y=35 width=4 height=14 xoffset=1 yoffset=7 xadvance=6 page=0 chnl=15
+char id=162 x=96 y=0 width=10 height=17 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=163 x=126 y=63 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=164 x=18 y=104 width=10 height=7 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=165 x=188 y=49 width=11 height=13 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=166 x=175 y=0 width=2 height=17 xoffset=2 yoffset=4 xadvance=6 page=0 chnl=15
+char id=167 x=74 y=0 width=10 height=17 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=168 x=175 y=102 width=6 height=2 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=169 x=179 y=35 width=15 height=13 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=170 x=60 y=103 width=6 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=171 x=9 y=106 width=8 height=8 xoffset=1 yoffset=8 xadvance=10 page=0 chnl=15
+char id=172 x=85 y=103 width=11 height=5 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=15
+char id=173 x=168 y=102 width=6 height=2 xoffset=0 yoffset=11 xadvance=6 page=0 chnl=15
+char id=174 x=195 y=34 width=15 height=13 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=175 x=142 y=102 width=12 height=2 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15
+char id=176 x=97 y=103 width=7 height=5 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=177 x=15 y=92 width=10 height=11 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15
+char id=178 x=29 y=103 width=7 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=179 x=53 y=103 width=6 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=180 x=202 y=102 width=3 height=2 xoffset=2 yoffset=4 xadvance=6 page=0 chnl=15
+char id=181 x=93 y=35 width=8 height=14 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=15
+char id=182 x=56 y=18 width=12 height=16 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=183 x=189 y=102 width=4 height=2 xoffset=1 yoffset=9 xadvance=6 page=0 chnl=15
+char id=184 x=132 y=102 width=5 height=4 xoffset=0 yoffset=17 xadvance=6 page=0 chnl=15
+char id=185 x=67 y=103 width=5 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=186 x=37 y=103 width=7 height=7 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=187 x=0 y=106 width=8 height=8 xoffset=1 yoffset=8 xadvance=10 page=0 chnl=15
+char id=188 x=162 y=35 width=16 height=13 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
+char id=189 x=227 y=32 width=15 height=13 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
+char id=190 x=211 y=33 width=15 height=13 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
+char id=191 x=43 y=35 width=9 height=14 xoffset=1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=192 x=42 y=18 width=13 height=16 xoffset=-1 yoffset=1 xadvance=12 page=0 chnl=15
+char id=193 x=0 y=18 width=13 height=16 xoffset=-1 yoffset=1 xadvance=12 page=0 chnl=15
+char id=194 x=14 y=18 width=13 height=16 xoffset=-1 yoffset=1 xadvance=12 page=0 chnl=15
+char id=195 x=34 y=0 width=13 height=17 xoffset=-1 yoffset=0 xadvance=12 page=0 chnl=15
+char id=196 x=28 y=18 width=13 height=16 xoffset=-1 yoffset=1 xadvance=12 page=0 chnl=15
+char id=197 x=198 y=17 width=13 height=15 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15
+char id=198 x=107 y=35 width=19 height=13 xoffset=-1 yoffset=4 xadvance=18 page=0 chnl=15
+char id=199 x=48 y=0 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=200 x=69 y=18 width=11 height=16 xoffset=1 yoffset=1 xadvance=12 page=0 chnl=15
+char id=201 x=81 y=18 width=11 height=16 xoffset=1 yoffset=1 xadvance=12 page=0 chnl=15
+char id=202 x=93 y=18 width=11 height=16 xoffset=1 yoffset=1 xadvance=12 page=0 chnl=15
+char id=203 x=105 y=18 width=11 height=16 xoffset=1 yoffset=1 xadvance=12 page=0 chnl=15
+char id=204 x=188 y=17 width=4 height=16 xoffset=0 yoffset=1 xadvance=5 page=0 chnl=15
+char id=205 x=193 y=17 width=4 height=16 xoffset=0 yoffset=1 xadvance=5 page=0 chnl=15
+char id=206 x=182 y=17 width=5 height=16 xoffset=0 yoffset=1 xadvance=5 page=0 chnl=15
+char id=207 x=176 y=18 width=5 height=16 xoffset=-1 yoffset=1 xadvance=5 page=0 chnl=15
+char id=208 x=15 y=50 width=14 height=13 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=209 x=62 y=0 width=11 height=17 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
+char id=210 x=178 y=0 width=14 height=16 xoffset=0 yoffset=1 xadvance=14 page=0 chnl=15
+char id=211 x=208 y=0 width=14 height=16 xoffset=0 yoffset=1 xadvance=14 page=0 chnl=15
+char id=212 x=193 y=0 width=14 height=16 xoffset=0 yoffset=1 xadvance=14 page=0 chnl=15
+char id=213 x=19 y=0 width=14 height=17 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15
+char id=214 x=223 y=0 width=14 height=16 xoffset=0 yoffset=1 xadvance=14 page=0 chnl=15
+char id=215 x=242 y=88 width=9 height=8 xoffset=1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=216 x=227 y=17 width=14 height=14 xoffset=0 yoffset=4 xadvance=14 page=0 chnl=15
+char id=217 x=141 y=18 width=11 height=16 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=15
+char id=218 x=129 y=18 width=11 height=16 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=15
+char id=219 x=153 y=18 width=11 height=16 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=15
+char id=220 x=117 y=18 width=11 height=16 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=15
+char id=221 x=238 y=0 width=13 height=16 xoffset=-1 yoffset=1 xadvance=12 page=0 chnl=15
+char id=222 x=212 y=47 width=11 height=13 xoffset=1 yoffset=4 xadvance=12 page=0 chnl=15
+char id=223 x=137 y=63 width=10 height=13 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=15
+char id=224 x=148 y=63 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=225 x=159 y=63 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=226 x=170 y=63 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=227 x=242 y=17 width=10 height=14 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=228 x=181 y=63 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=229 x=11 y=35 width=10 height=14 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=230 x=26 y=92 width=16 height=10 xoffset=0 yoffset=7 xadvance=16 page=0 chnl=15
+char id=231 x=63 y=35 width=9 height=14 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=15
+char id=232 x=99 y=78 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=233 x=214 y=61 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=234 x=225 y=61 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=235 x=236 y=60 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=236 x=235 y=75 width=5 height=13 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15
+char id=237 x=241 y=74 width=5 height=13 xoffset=1 yoffset=4 xadvance=5 page=0 chnl=15
+char id=238 x=221 y=75 width=6 height=13 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15
+char id=239 x=206 y=76 width=7 height=13 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=15
+char id=240 x=0 y=78 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=241 x=73 y=35 width=9 height=14 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=242 x=22 y=78 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=243 x=33 y=78 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=244 x=44 y=78 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=245 x=22 y=35 width=10 height=14 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=246 x=66 y=78 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=247 x=231 y=89 width=10 height=8 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=248 x=118 y=92 width=10 height=10 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=249 x=150 y=77 width=9 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=250 x=130 y=77 width=9 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=251 x=120 y=77 width=9 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=252 x=110 y=78 width=9 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=253 x=117 y=0 width=9 height=17 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=254 x=85 y=0 width=10 height=17 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=255 x=107 y=0 width=9 height=17 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+kernings count=70
+kerning first=32 second=65 amount=-1
+kerning first=121 second=46 amount=-1
+kerning first=121 second=44 amount=-1
+kerning first=119 second=46 amount=-1
+kerning first=119 second=44 amount=-1
+kerning first=118 second=46 amount=-1
+kerning first=118 second=44 amount=-1
+kerning first=114 second=46 amount=-1
+kerning first=114 second=44 amount=-1
+kerning first=89 second=118 amount=-1
+kerning first=49 second=49 amount=-1
+kerning first=65 second=32 amount=-1
+kerning first=65 second=84 amount=-1
+kerning first=65 second=86 amount=-1
+kerning first=65 second=87 amount=-1
+kerning first=65 second=89 amount=-1
+kerning first=89 second=117 amount=-1
+kerning first=89 second=113 amount=-2
+kerning first=89 second=112 amount=-1
+kerning first=89 second=111 amount=-2
+kerning first=70 second=44 amount=-2
+kerning first=70 second=46 amount=-2
+kerning first=70 second=65 amount=-1
+kerning first=76 second=32 amount=-1
+kerning first=76 second=84 amount=-1
+kerning first=76 second=86 amount=-1
+kerning first=76 second=87 amount=-1
+kerning first=76 second=89 amount=-1
+kerning first=76 second=121 amount=-1
+kerning first=89 second=105 amount=-1
+kerning first=89 second=101 amount=-2
+kerning first=80 second=44 amount=-2
+kerning first=80 second=46 amount=-2
+kerning first=80 second=65 amount=-1
+kerning first=89 second=97 amount=-1
+kerning first=89 second=65 amount=-1
+kerning first=89 second=58 amount=-1
+kerning first=89 second=46 amount=-2
+kerning first=89 second=45 amount=-2
+kerning first=84 second=44 amount=-2
+kerning first=84 second=45 amount=-1
+kerning first=84 second=46 amount=-2
+kerning first=84 second=58 amount=-2
+kerning first=89 second=44 amount=-2
+kerning first=84 second=65 amount=-1
+kerning first=87 second=97 amount=-1
+kerning first=84 second=97 amount=-2
+kerning first=84 second=99 amount=-2
+kerning first=84 second=101 amount=-2
+kerning first=84 second=105 amount=-1
+kerning first=84 second=111 amount=-2
+kerning first=84 second=114 amount=-1
+kerning first=84 second=115 amount=-2
+kerning first=84 second=117 amount=-1
+kerning first=84 second=119 amount=-1
+kerning first=84 second=121 amount=-1
+kerning first=86 second=44 amount=-2
+kerning first=86 second=45 amount=-1
+kerning first=86 second=46 amount=-2
+kerning first=86 second=58 amount=-1
+kerning first=87 second=65 amount=-1
+kerning first=86 second=65 amount=-1
+kerning first=86 second=97 amount=-1
+kerning first=86 second=101 amount=-1
+kerning first=87 second=46 amount=-1
+kerning first=86 second=111 amount=-1
+kerning first=86 second=114 amount=-1
+kerning first=86 second=117 amount=-1
+kerning first=86 second=121 amount=-1
+kerning first=87 second=44 amount=-1
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font18Arial_0.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font18Arial_0.png
new file mode 100644
index 000000000..18b17f203
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font18Arial_0.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font18Arial_Bold.bmfc b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font18Arial_Bold.bmfc
new file mode 100644
index 000000000..7d901b5ce
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font18Arial_Bold.bmfc
@@ -0,0 +1,48 @@
+# AngelCode Bitmap Font Generator configuration file
+fileVersion=1
+
+# font settings
+fontName=Arial
+charSet=0
+fontSize=-18
+aa=1
+scaleH=100
+useSmoothing=1
+isBold=1
+isItalic=0
+useUnicode=1
+disableBoxChars=1
+outputInvalidCharGlyph=0
+
+# character alignment
+paddingDown=0
+paddingUp=0
+paddingRight=0
+paddingLeft=0
+spacingHoriz=1
+spacingVert=1
+
+# output file
+outWidth=512
+outHeight=256
+outBitDepth=32
+fontDescFormat=0
+fourChnlPacked=0
+textureFormat=png
+textureCompression=0
+alphaChnl=0
+redChnl=4
+greenChnl=4
+blueChnl=4
+invA=0
+invR=0
+invG=0
+invB=0
+
+# outline
+outlineThickness=0
+
+# selected chars
+chars=32-126,160-255
+
+# imported icon images
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font18Arial_Bold.fnt b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font18Arial_Bold.fnt
new file mode 100644
index 000000000..5c67deeb3
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font18Arial_Bold.fnt
@@ -0,0 +1,267 @@
+info face="Arial" size=-18 bold=1 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=21 base=17 scaleW=512 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="Font18Arial_Bold_0.png"
+chars count=191
+char id=32 x=508 y=16 width=3 height=1 xoffset=-1 yoffset=20 xadvance=5 page=0 chnl=15
+char id=33 x=112 y=47 width=4 height=13 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15
+char id=34 x=485 y=45 width=9 height=5 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=35 x=52 y=33 width=12 height=13 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=36 x=466 y=0 width=10 height=16 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=37 x=11 y=19 width=16 height=14 xoffset=0 yoffset=4 xadvance=17 page=0 chnl=15
+char id=38 x=468 y=17 width=13 height=13 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=39 x=503 y=44 width=4 height=5 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15
+char id=40 x=224 y=0 width=6 height=17 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=41 x=231 y=0 width=6 height=17 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=42 x=472 y=45 width=7 height=6 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=43 x=358 y=45 width=11 height=9 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=15
+char id=44 x=480 y=45 width=4 height=6 xoffset=1 yoffset=14 xadvance=5 page=0 chnl=15
+char id=45 x=20 y=63 width=7 height=3 xoffset=0 yoffset=11 xadvance=6 page=0 chnl=15
+char id=46 x=52 y=61 width=4 height=3 xoffset=1 yoffset=14 xadvance=5 page=0 chnl=15
+char id=47 x=77 y=47 width=7 height=13 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=15
+char id=48 x=407 y=31 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=49 x=69 y=47 width=7 height=13 xoffset=1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=50 x=418 y=31 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=51 x=429 y=31 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=52 x=440 y=31 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=53 x=451 y=31 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=54 x=462 y=31 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=55 x=374 y=31 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=56 x=473 y=31 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=57 x=11 y=49 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=58 x=352 y=45 width=5 height=10 xoffset=1 yoffset=7 xadvance=7 page=0 chnl=15
+char id=59 x=101 y=47 width=5 height=13 xoffset=1 yoffset=7 xadvance=7 page=0 chnl=15
+char id=60 x=300 y=45 width=10 height=10 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=15
+char id=61 x=382 y=45 width=11 height=8 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=15
+char id=62 x=289 y=46 width=10 height=10 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=15
+char id=63 x=114 y=33 width=11 height=13 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=64 x=13 y=0 width=18 height=17 xoffset=0 yoffset=4 xadvance=18 page=0 chnl=15
+char id=65 x=411 y=17 width=14 height=13 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=66 x=65 y=33 width=12 height=13 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=67 x=426 y=17 width=13 height=13 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=68 x=0 y=35 width=12 height=13 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=69 x=198 y=33 width=11 height=13 xoffset=1 yoffset=4 xadvance=12 page=0 chnl=15
+char id=70 x=330 y=31 width=10 height=13 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=15
+char id=71 x=366 y=17 width=14 height=13 xoffset=0 yoffset=4 xadvance=14 page=0 chnl=15
+char id=72 x=306 y=31 width=11 height=13 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=73 x=506 y=30 width=5 height=13 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15
+char id=74 x=33 y=48 width=9 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=75 x=39 y=33 width=12 height=13 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=76 x=341 y=31 width=10 height=13 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=15
+char id=77 x=302 y=17 width=15 height=13 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
+char id=78 x=102 y=33 width=11 height=13 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=79 x=381 y=17 width=14 height=13 xoffset=0 yoffset=4 xadvance=14 page=0 chnl=15
+char id=80 x=186 y=33 width=11 height=13 xoffset=1 yoffset=4 xadvance=12 page=0 chnl=15
+char id=81 x=28 y=18 width=14 height=14 xoffset=0 yoffset=4 xadvance=14 page=0 chnl=15
+char id=82 x=482 y=17 width=12 height=13 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=83 x=495 y=16 width=12 height=13 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=84 x=162 y=33 width=11 height=13 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=15
+char id=85 x=150 y=33 width=11 height=13 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=86 x=454 y=17 width=13 height=13 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=87 x=228 y=18 width=19 height=13 xoffset=-1 yoffset=4 xadvance=17 page=0 chnl=15
+char id=88 x=26 y=34 width=12 height=13 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=89 x=440 y=17 width=13 height=13 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=90 x=126 y=33 width=11 height=13 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=91 x=217 y=0 width=6 height=17 xoffset=1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=92 x=61 y=47 width=7 height=13 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=15
+char id=93 x=245 y=0 width=6 height=17 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=94 x=426 y=45 width=9 height=7 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=15
+char id=95 x=70 y=61 width=12 height=2 xoffset=-1 yoffset=19 xadvance=10 page=0 chnl=15
+char id=96 x=35 y=62 width=5 height=3 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=97 x=267 y=46 width=10 height=10 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=98 x=246 y=32 width=11 height=13 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=99 x=256 y=46 width=10 height=10 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=100 x=258 y=32 width=11 height=13 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=101 x=196 y=47 width=11 height=10 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=15
+char id=102 x=85 y=47 width=7 height=13 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=103 x=92 y=18 width=11 height=14 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=15
+char id=104 x=352 y=31 width=10 height=13 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=15
+char id=105 x=117 y=47 width=4 height=13 xoffset=1 yoffset=4 xadvance=5 page=0 chnl=15
+char id=106 x=238 y=0 width=6 height=17 xoffset=-2 yoffset=4 xadvance=5 page=0 chnl=15
+char id=107 x=363 y=31 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=108 x=107 y=47 width=4 height=13 xoffset=1 yoffset=4 xadvance=5 page=0 chnl=15
+char id=109 x=145 y=47 width=16 height=10 xoffset=0 yoffset=7 xadvance=17 page=0 chnl=15
+char id=110 x=278 y=46 width=10 height=10 xoffset=1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=111 x=208 y=47 width=11 height=10 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=15
+char id=112 x=152 y=18 width=11 height=14 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=15
+char id=113 x=128 y=18 width=11 height=14 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=15
+char id=114 x=343 y=45 width=8 height=10 xoffset=0 yoffset=7 xadvance=7 page=0 chnl=15
+char id=115 x=311 y=45 width=10 height=10 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=116 x=52 y=47 width=8 height=13 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=117 x=220 y=47 width=11 height=10 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=15
+char id=118 x=244 y=46 width=11 height=10 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=15
+char id=119 x=179 y=47 width=16 height=10 xoffset=0 yoffset=7 xadvance=15 page=0 chnl=15
+char id=120 x=232 y=47 width=11 height=10 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=15
+char id=121 x=43 y=18 width=12 height=14 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=122 x=333 y=45 width=9 height=10 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=15
+char id=123 x=201 y=0 width=7 height=17 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=124 x=265 y=0 width=4 height=17 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15
+char id=125 x=209 y=0 width=7 height=17 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=126 x=0 y=63 width=11 height=4 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=15
+char id=160 x=508 y=18 width=3 height=1 xoffset=-1 yoffset=20 xadvance=5 page=0 chnl=15
+char id=161 x=222 y=18 width=5 height=14 xoffset=0 yoffset=7 xadvance=5 page=0 chnl=15
+char id=162 x=190 y=0 width=10 height=17 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=163 x=78 y=33 width=11 height=13 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=164 x=322 y=45 width=10 height=10 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15
+char id=165 x=90 y=33 width=11 height=13 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=166 x=270 y=0 width=4 height=17 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15
+char id=167 x=179 y=0 width=10 height=17 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=168 x=83 y=61 width=8 height=2 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=169 x=318 y=17 width=15 height=13 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=170 x=436 y=45 width=7 height=7 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=171 x=405 y=45 width=8 height=8 xoffset=1 yoffset=8 xadvance=10 page=0 chnl=15
+char id=172 x=414 y=45 width=11 height=7 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=15
+char id=173 x=12 y=63 width=7 height=3 xoffset=0 yoffset=11 xadvance=6 page=0 chnl=15
+char id=174 x=334 y=17 width=15 height=13 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=175 x=57 y=61 width=12 height=2 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15
+char id=176 x=495 y=44 width=7 height=5 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=177 x=385 y=31 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=178 x=452 y=45 width=6 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=179 x=459 y=45 width=6 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=180 x=41 y=62 width=5 height=3 xoffset=1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=181 x=176 y=18 width=10 height=14 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=182 x=454 y=0 width=11 height=16 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=183 x=47 y=61 width=4 height=3 xoffset=1 yoffset=9 xadvance=6 page=0 chnl=15
+char id=184 x=28 y=62 width=6 height=3 xoffset=0 yoffset=17 xadvance=6 page=0 chnl=15
+char id=185 x=466 y=45 width=5 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=186 x=444 y=45 width=7 height=7 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=187 x=394 y=45 width=10 height=8 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=15
+char id=188 x=268 y=18 width=16 height=13 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
+char id=189 x=350 y=17 width=15 height=13 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
+char id=190 x=285 y=17 width=16 height=13 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
+char id=191 x=116 y=18 width=11 height=14 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=15
+char id=192 x=77 y=0 width=14 height=17 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
+char id=193 x=47 y=0 width=14 height=17 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15
+char id=194 x=275 y=0 width=14 height=16 xoffset=-1 yoffset=1 xadvance=13 page=0 chnl=15
+char id=195 x=305 y=0 width=14 height=16 xoffset=-1 yoffset=1 xadvance=13 page=0 chnl=15
+char id=196 x=320 y=0 width=14 height=16 xoffset=-1 yoffset=1 xadvance=13 page=0 chnl=15
+char id=197 x=290 y=0 width=14 height=16 xoffset=-1 yoffset=1 xadvance=13 page=0 chnl=15
+char id=198 x=248 y=18 width=19 height=13 xoffset=-1 yoffset=4 xadvance=18 page=0 chnl=15
+char id=199 x=380 y=0 width=13 height=16 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=200 x=143 y=0 width=11 height=17 xoffset=1 yoffset=0 xadvance=12 page=0 chnl=15
+char id=201 x=155 y=0 width=11 height=17 xoffset=1 yoffset=0 xadvance=12 page=0 chnl=15
+char id=202 x=394 y=0 width=11 height=16 xoffset=1 yoffset=1 xadvance=12 page=0 chnl=15
+char id=203 x=406 y=0 width=11 height=16 xoffset=1 yoffset=1 xadvance=12 page=0 chnl=15
+char id=204 x=252 y=0 width=6 height=17 xoffset=-1 yoffset=0 xadvance=5 page=0 chnl=15
+char id=205 x=259 y=0 width=5 height=17 xoffset=0 yoffset=0 xadvance=5 page=0 chnl=15
+char id=206 x=486 y=0 width=7 height=16 xoffset=-1 yoffset=1 xadvance=5 page=0 chnl=15
+char id=207 x=477 y=0 width=8 height=16 xoffset=-1 yoffset=1 xadvance=5 page=0 chnl=15
+char id=208 x=396 y=17 width=14 height=13 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=209 x=418 y=0 width=11 height=16 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=15
+char id=210 x=62 y=0 width=14 height=17 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15
+char id=211 x=32 y=0 width=14 height=17 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15
+char id=212 x=335 y=0 width=14 height=16 xoffset=0 yoffset=1 xadvance=14 page=0 chnl=15
+char id=213 x=350 y=0 width=14 height=16 xoffset=0 yoffset=1 xadvance=14 page=0 chnl=15
+char id=214 x=365 y=0 width=14 height=16 xoffset=0 yoffset=1 xadvance=14 page=0 chnl=15
+char id=215 x=370 y=45 width=11 height=8 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=15
+char id=216 x=494 y=0 width=14 height=15 xoffset=0 yoffset=3 xadvance=14 page=0 chnl=15
+char id=217 x=131 y=0 width=11 height=17 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
+char id=218 x=119 y=0 width=11 height=17 xoffset=1 yoffset=0 xadvance=13 page=0 chnl=15
+char id=219 x=442 y=0 width=11 height=16 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=15
+char id=220 x=430 y=0 width=11 height=16 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=15
+char id=221 x=92 y=0 width=13 height=17 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=222 x=294 y=31 width=11 height=13 xoffset=1 yoffset=4 xadvance=12 page=0 chnl=15
+char id=223 x=13 y=34 width=12 height=13 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=224 x=198 y=18 width=10 height=14 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=225 x=187 y=18 width=10 height=14 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=226 x=484 y=31 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=227 x=495 y=30 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=228 x=0 y=49 width=10 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=229 x=0 y=19 width=10 height=15 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15
+char id=230 x=162 y=47 width=16 height=10 xoffset=0 yoffset=7 xadvance=16 page=0 chnl=15
+char id=231 x=22 y=48 width=10 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=232 x=140 y=18 width=11 height=14 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=233 x=104 y=18 width=11 height=14 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=234 x=222 y=33 width=11 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=235 x=138 y=33 width=11 height=13 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=236 x=209 y=18 width=6 height=14 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=237 x=216 y=18 width=5 height=14 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=238 x=93 y=47 width=7 height=13 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=15
+char id=239 x=43 y=47 width=8 height=13 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=15
+char id=240 x=174 y=33 width=11 height=13 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=241 x=396 y=31 width=10 height=13 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=15
+char id=242 x=80 y=18 width=11 height=14 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=243 x=68 y=18 width=11 height=14 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=244 x=210 y=33 width=11 height=13 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=245 x=318 y=31 width=11 height=13 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=246 x=234 y=32 width=11 height=13 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=247 x=134 y=47 width=10 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=248 x=122 y=47 width=11 height=12 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=15
+char id=249 x=56 y=18 width=11 height=14 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=250 x=164 y=18 width=11 height=14 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=251 x=270 y=32 width=11 height=13 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=252 x=282 y=32 width=11 height=13 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=253 x=0 y=0 width=12 height=18 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=254 x=167 y=0 width=11 height=17 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=255 x=106 y=0 width=12 height=17 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=15
+kernings count=71
+kerning first=32 second=65 amount=-1
+kerning first=121 second=46 amount=-1
+kerning first=121 second=44 amount=-1
+kerning first=119 second=46 amount=-1
+kerning first=119 second=44 amount=-1
+kerning first=118 second=46 amount=-1
+kerning first=118 second=44 amount=-1
+kerning first=114 second=46 amount=-1
+kerning first=49 second=49 amount=-1
+kerning first=65 second=32 amount=-1
+kerning first=65 second=84 amount=-1
+kerning first=65 second=86 amount=-1
+kerning first=65 second=87 amount=-1
+kerning first=65 second=89 amount=-2
+kerning first=65 second=118 amount=-1
+kerning first=114 second=44 amount=-1
+kerning first=65 second=121 amount=-1
+kerning first=89 second=118 amount=-1
+kerning first=70 second=44 amount=-2
+kerning first=70 second=46 amount=-2
+kerning first=70 second=65 amount=-1
+kerning first=89 second=117 amount=-1
+kerning first=76 second=84 amount=-1
+kerning first=76 second=86 amount=-1
+kerning first=76 second=87 amount=-1
+kerning first=76 second=89 amount=-2
+kerning first=76 second=121 amount=-1
+kerning first=89 second=113 amount=-1
+kerning first=89 second=112 amount=-1
+kerning first=80 second=44 amount=-2
+kerning first=80 second=46 amount=-2
+kerning first=80 second=65 amount=-1
+kerning first=89 second=111 amount=-1
+kerning first=89 second=105 amount=-1
+kerning first=82 second=89 amount=-1
+kerning first=84 second=44 amount=-2
+kerning first=84 second=45 amount=-1
+kerning first=84 second=46 amount=-2
+kerning first=84 second=58 amount=-2
+kerning first=89 second=101 amount=-1
+kerning first=84 second=65 amount=-1
+kerning first=89 second=97 amount=-1
+kerning first=84 second=97 amount=-1
+kerning first=84 second=99 amount=-1
+kerning first=84 second=101 amount=-1
+kerning first=89 second=65 amount=-2
+kerning first=84 second=111 amount=-1
+kerning first=84 second=114 amount=-1
+kerning first=84 second=115 amount=-1
+kerning first=84 second=117 amount=-1
+kerning first=84 second=119 amount=-1
+kerning first=84 second=121 amount=-1
+kerning first=86 second=44 amount=-2
+kerning first=86 second=45 amount=-1
+kerning first=86 second=46 amount=-2
+kerning first=86 second=58 amount=-1
+kerning first=89 second=58 amount=-1
+kerning first=86 second=65 amount=-1
+kerning first=86 second=97 amount=-1
+kerning first=86 second=101 amount=-1
+kerning first=89 second=46 amount=-2
+kerning first=86 second=111 amount=-1
+kerning first=86 second=114 amount=-1
+kerning first=86 second=117 amount=-1
+kerning first=86 second=121 amount=-1
+kerning first=87 second=44 amount=-1
+kerning first=89 second=45 amount=-1
+kerning first=87 second=46 amount=-1
+kerning first=89 second=44 amount=-2
+kerning first=87 second=97 amount=-1
+kerning first=87 second=65 amount=-1
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font18Arial_Bold_0.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font18Arial_Bold_0.png
new file mode 100644
index 000000000..496cff04d
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font18Arial_Bold_0.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font22Arial_Bold.bmfc b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font22Arial_Bold.bmfc
new file mode 100644
index 000000000..d800e3eda
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font22Arial_Bold.bmfc
@@ -0,0 +1,48 @@
+# AngelCode Bitmap Font Generator configuration file
+fileVersion=1
+
+# font settings
+fontName=Arial
+charSet=0
+fontSize=-22
+aa=1
+scaleH=100
+useSmoothing=1
+isBold=1
+isItalic=0
+useUnicode=1
+disableBoxChars=1
+outputInvalidCharGlyph=0
+
+# character alignment
+paddingDown=0
+paddingUp=0
+paddingRight=0
+paddingLeft=0
+spacingHoriz=1
+spacingVert=1
+
+# output file
+outWidth=512
+outHeight=256
+outBitDepth=32
+fontDescFormat=0
+fourChnlPacked=0
+textureFormat=png
+textureCompression=0
+alphaChnl=0
+redChnl=4
+greenChnl=4
+blueChnl=4
+invA=0
+invR=0
+invG=0
+invB=0
+
+# outline
+outlineThickness=0
+
+# selected chars
+chars=32-126,160-255
+
+# imported icon images
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font22Arial_Bold.fnt b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font22Arial_Bold.fnt
new file mode 100644
index 000000000..00f675a7d
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font22Arial_Bold.fnt
@@ -0,0 +1,267 @@
+info face="Arial" size=-22 bold=1 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=26 base=21 scaleW=512 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="Font22Arial_Bold_0.png"
+chars count=191
+char id=32 x=505 y=18 width=3 height=1 xoffset=-1 yoffset=25 xadvance=6 page=0 chnl=15
+char id=33 x=344 y=56 width=5 height=16 xoffset=1 yoffset=5 xadvance=7 page=0 chnl=15
+char id=34 x=294 y=73 width=10 height=6 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=35 x=278 y=39 width=14 height=16 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=15
+char id=36 x=47 y=22 width=12 height=19 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=37 x=160 y=21 width=18 height=17 xoffset=0 yoffset=5 xadvance=18 page=0 chnl=15
+char id=38 x=54 y=42 width=16 height=16 xoffset=0 yoffset=5 xadvance=16 page=0 chnl=15
+char id=39 x=305 y=73 width=5 height=6 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=40 x=417 y=0 width=7 height=20 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=41 x=433 y=0 width=7 height=20 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=42 x=228 y=73 width=9 height=8 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=43 x=111 y=75 width=13 height=11 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=44 x=289 y=73 width=4 height=7 xoffset=1 yoffset=18 xadvance=6 page=0 chnl=15
+char id=45 x=333 y=73 width=7 height=3 xoffset=0 yoffset=14 xadvance=7 page=0 chnl=15
+char id=46 x=369 y=71 width=4 height=3 xoffset=1 yoffset=18 xadvance=6 page=0 chnl=15
+char id=47 x=310 y=56 width=7 height=16 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=48 x=182 y=56 width=12 height=16 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=49 x=503 y=37 width=8 height=16 xoffset=1 yoffset=5 xadvance=12 page=0 chnl=15
+char id=50 x=195 y=56 width=12 height=16 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=51 x=208 y=56 width=12 height=16 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=52 x=221 y=56 width=12 height=16 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=53 x=464 y=38 width=12 height=16 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=54 x=490 y=37 width=12 height=16 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=55 x=143 y=58 width=12 height=16 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=56 x=0 y=59 width=12 height=16 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=57 x=26 y=59 width=12 height=16 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=58 x=506 y=54 width=5 height=12 xoffset=1 yoffset=9 xadvance=7 page=0 chnl=15
+char id=59 x=326 y=56 width=5 height=16 xoffset=1 yoffset=9 xadvance=7 page=0 chnl=15
+char id=60 x=478 y=54 width=13 height=12 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=61 x=200 y=73 width=13 height=8 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
+char id=62 x=450 y=55 width=13 height=12 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=63 x=367 y=38 width=13 height=16 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=64 x=0 y=0 width=21 height=21 xoffset=0 yoffset=5 xadvance=21 page=0 chnl=15
+char id=65 x=71 y=41 width=16 height=16 xoffset=-1 yoffset=5 xadvance=15 page=0 chnl=15
+char id=66 x=169 y=39 width=15 height=16 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=15
+char id=67 x=153 y=40 width=15 height=16 xoffset=0 yoffset=5 xadvance=16 page=0 chnl=15
+char id=68 x=137 y=41 width=15 height=16 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=15
+char id=69 x=248 y=39 width=14 height=16 xoffset=1 yoffset=5 xadvance=15 page=0 chnl=15
+char id=70 x=39 y=59 width=12 height=16 xoffset=1 yoffset=5 xadvance=13 page=0 chnl=15
+char id=71 x=88 y=41 width=16 height=16 xoffset=0 yoffset=5 xadvance=17 page=0 chnl=15
+char id=72 x=233 y=39 width=14 height=16 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=15
+char id=73 x=356 y=55 width=5 height=16 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=74 x=234 y=56 width=11 height=16 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=75 x=105 y=41 width=15 height=16 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=15
+char id=76 x=52 y=59 width=12 height=16 xoffset=1 yoffset=5 xadvance=13 page=0 chnl=15
+char id=77 x=0 y=42 width=17 height=16 xoffset=0 yoffset=5 xadvance=17 page=0 chnl=15
+char id=78 x=263 y=39 width=14 height=16 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=15
+char id=79 x=36 y=42 width=17 height=16 xoffset=0 yoffset=5 xadvance=17 page=0 chnl=15
+char id=80 x=338 y=39 width=14 height=16 xoffset=1 yoffset=5 xadvance=15 page=0 chnl=15
+char id=81 x=179 y=21 width=17 height=17 xoffset=0 yoffset=5 xadvance=17 page=0 chnl=15
+char id=82 x=185 y=39 width=15 height=16 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=15
+char id=83 x=121 y=41 width=15 height=16 xoffset=0 yoffset=5 xadvance=15 page=0 chnl=15
+char id=84 x=308 y=39 width=14 height=16 xoffset=1 yoffset=5 xadvance=15 page=0 chnl=15
+char id=85 x=323 y=39 width=14 height=16 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=15
+char id=86 x=18 y=42 width=17 height=16 xoffset=-1 yoffset=5 xadvance=15 page=0 chnl=15
+char id=87 x=347 y=21 width=23 height=16 xoffset=-1 yoffset=5 xadvance=21 page=0 chnl=15
+char id=88 x=201 y=39 width=15 height=16 xoffset=0 yoffset=5 xadvance=15 page=0 chnl=15
+char id=89 x=217 y=39 width=15 height=16 xoffset=0 yoffset=5 xadvance=15 page=0 chnl=15
+char id=90 x=423 y=38 width=13 height=16 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=15
+char id=91 x=449 y=0 width=7 height=20 xoffset=1 yoffset=5 xadvance=7 page=0 chnl=15
+char id=92 x=318 y=56 width=7 height=16 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=93 x=425 y=0 width=7 height=20 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=15
+char id=94 x=188 y=73 width=11 height=9 xoffset=1 yoffset=5 xadvance=13 page=0 chnl=15
+char id=95 x=374 y=71 width=14 height=2 xoffset=-1 yoffset=23 xadvance=12 page=0 chnl=15
+char id=96 x=356 y=72 width=6 height=3 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=97 x=13 y=76 width=12 height=12 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=15
+char id=98 x=65 y=59 width=12 height=16 xoffset=1 yoffset=5 xadvance=13 page=0 chnl=15
+char id=99 x=0 y=76 width=12 height=12 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=15
+char id=100 x=78 y=58 width=12 height=16 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=101 x=39 y=76 width=12 height=12 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=15
+char id=102 x=282 y=56 width=9 height=16 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=15
+char id=103 x=91 y=58 width=12 height=16 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
+char id=104 x=258 y=56 width=11 height=16 xoffset=1 yoffset=5 xadvance=13 page=0 chnl=15
+char id=105 x=338 y=56 width=5 height=16 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=106 x=441 y=0 width=7 height=20 xoffset=-2 yoffset=5 xadvance=6 page=0 chnl=15
+char id=107 x=246 y=56 width=11 height=16 xoffset=1 yoffset=5 xadvance=12 page=0 chnl=15
+char id=108 x=332 y=56 width=5 height=16 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=109 x=431 y=55 width=18 height=12 xoffset=0 yoffset=9 xadvance=19 page=0 chnl=15
+char id=110 x=65 y=76 width=11 height=12 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=15
+char id=111 x=464 y=55 width=13 height=12 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
+char id=112 x=104 y=58 width=12 height=16 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=15
+char id=113 x=117 y=58 width=12 height=16 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
+char id=114 x=101 y=75 width=9 height=12 xoffset=0 yoffset=9 xadvance=8 page=0 chnl=15
+char id=115 x=26 y=76 width=12 height=12 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=15
+char id=116 x=301 y=56 width=8 height=16 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=117 x=89 y=75 width=11 height=12 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=15
+char id=118 x=492 y=54 width=13 height=12 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
+char id=119 x=410 y=55 width=20 height=12 xoffset=0 yoffset=9 xadvance=19 page=0 chnl=15
+char id=120 x=52 y=76 width=12 height=12 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=15
+char id=121 x=130 y=58 width=12 height=16 xoffset=-1 yoffset=9 xadvance=11 page=0 chnl=15
+char id=122 x=77 y=76 width=11 height=12 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=15
+char id=123 x=397 y=0 width=9 height=20 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=124 x=121 y=0 width=4 height=21 xoffset=1 yoffset=5 xadvance=6 page=0 chnl=15
+char id=125 x=407 y=0 width=9 height=20 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=126 x=311 y=73 width=13 height=5 xoffset=0 yoffset=10 xadvance=13 page=0 chnl=15
+char id=160 x=414 y=68 width=3 height=1 xoffset=-1 yoffset=25 xadvance=6 page=0 chnl=15
+char id=161 x=350 y=56 width=5 height=16 xoffset=1 yoffset=9 xadvance=7 page=0 chnl=15
+char id=162 x=371 y=0 width=12 height=20 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=163 x=381 y=38 width=13 height=16 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=15
+char id=164 x=152 y=75 width=12 height=11 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=15
+char id=165 x=353 y=38 width=13 height=16 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=15
+char id=166 x=126 y=0 width=4 height=21 xoffset=1 yoffset=5 xadvance=6 page=0 chnl=15
+char id=167 x=87 y=0 width=12 height=21 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=168 x=404 y=68 width=9 height=2 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=15
+char id=169 x=473 y=20 width=18 height=16 xoffset=-1 yoffset=5 xadvance=16 page=0 chnl=15
+char id=170 x=238 y=73 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=171 x=177 y=73 width=10 height=10 xoffset=1 yoffset=10 xadvance=12 page=0 chnl=15
+char id=172 x=214 y=73 width=13 height=8 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
+char id=173 x=341 y=73 width=7 height=3 xoffset=0 yoffset=14 xadvance=7 page=0 chnl=15
+char id=174 x=435 y=21 width=18 height=16 xoffset=-1 yoffset=5 xadvance=16 page=0 chnl=15
+char id=175 x=389 y=68 width=14 height=2 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15
+char id=176 x=279 y=73 width=9 height=7 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=177 x=362 y=55 width=12 height=15 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=15
+char id=178 x=264 y=73 width=7 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=179 x=256 y=73 width=7 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=180 x=349 y=73 width=6 height=3 xoffset=1 yoffset=5 xadvance=7 page=0 chnl=15
+char id=181 x=156 y=57 width=12 height=16 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=15
+char id=182 x=313 y=0 width=14 height=20 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=15
+char id=183 x=363 y=71 width=5 height=3 xoffset=1 yoffset=12 xadvance=7 page=0 chnl=15
+char id=184 x=325 y=73 width=7 height=4 xoffset=0 yoffset=21 xadvance=7 page=0 chnl=15
+char id=185 x=272 y=73 width=6 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=186 x=247 y=73 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=187 x=165 y=74 width=11 height=10 xoffset=1 yoffset=10 xadvance=12 page=0 chnl=15
+char id=188 x=395 y=21 width=19 height=16 xoffset=0 yoffset=5 xadvance=18 page=0 chnl=15
+char id=189 x=454 y=21 width=18 height=16 xoffset=0 yoffset=5 xadvance=18 page=0 chnl=15
+char id=190 x=415 y=21 width=19 height=16 xoffset=0 yoffset=5 xadvance=18 page=0 chnl=15
+char id=191 x=395 y=38 width=13 height=16 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
+char id=192 x=219 y=0 width=16 height=20 xoffset=-1 yoffset=1 xadvance=16 page=0 chnl=15
+char id=193 x=202 y=0 width=16 height=20 xoffset=-1 yoffset=1 xadvance=16 page=0 chnl=15
+char id=194 x=40 y=0 width=16 height=21 xoffset=-1 yoffset=0 xadvance=16 page=0 chnl=15
+char id=195 x=185 y=0 width=16 height=20 xoffset=-1 yoffset=1 xadvance=16 page=0 chnl=15
+char id=196 x=488 y=0 width=16 height=19 xoffset=-1 yoffset=2 xadvance=16 page=0 chnl=15
+char id=197 x=0 y=22 width=16 height=19 xoffset=-1 yoffset=2 xadvance=16 page=0 chnl=15
+char id=198 x=371 y=21 width=23 height=16 xoffset=-1 yoffset=5 xadvance=22 page=0 chnl=15
+char id=199 x=252 y=0 width=15 height=20 xoffset=0 yoffset=5 xadvance=16 page=0 chnl=15
+char id=200 x=298 y=0 width=14 height=20 xoffset=1 yoffset=1 xadvance=15 page=0 chnl=15
+char id=201 x=343 y=0 width=14 height=20 xoffset=1 yoffset=1 xadvance=15 page=0 chnl=15
+char id=202 x=57 y=0 width=14 height=21 xoffset=1 yoffset=0 xadvance=15 page=0 chnl=15
+char id=203 x=32 y=22 width=14 height=19 xoffset=1 yoffset=2 xadvance=15 page=0 chnl=15
+char id=204 x=457 y=0 width=6 height=20 xoffset=-1 yoffset=1 xadvance=6 page=0 chnl=15
+char id=205 x=464 y=0 width=5 height=20 xoffset=0 yoffset=1 xadvance=6 page=0 chnl=15
+char id=206 x=113 y=0 width=7 height=21 xoffset=-1 yoffset=0 xadvance=6 page=0 chnl=15
+char id=207 x=60 y=22 width=8 height=19 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=15
+char id=208 x=492 y=20 width=17 height=16 xoffset=-1 yoffset=5 xadvance=16 page=0 chnl=15
+char id=209 x=328 y=0 width=14 height=20 xoffset=1 yoffset=1 xadvance=16 page=0 chnl=15
+char id=210 x=131 y=0 width=17 height=20 xoffset=0 yoffset=1 xadvance=17 page=0 chnl=15
+char id=211 x=149 y=0 width=17 height=20 xoffset=0 yoffset=1 xadvance=17 page=0 chnl=15
+char id=212 x=22 y=0 width=17 height=21 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
+char id=213 x=167 y=0 width=17 height=20 xoffset=0 yoffset=1 xadvance=17 page=0 chnl=15
+char id=214 x=470 y=0 width=17 height=19 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=15
+char id=215 x=125 y=75 width=13 height=11 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=216 x=69 y=22 width=17 height=18 xoffset=0 yoffset=4 xadvance=17 page=0 chnl=15
+char id=217 x=268 y=0 width=14 height=20 xoffset=1 yoffset=1 xadvance=16 page=0 chnl=15
+char id=218 x=283 y=0 width=14 height=20 xoffset=1 yoffset=1 xadvance=16 page=0 chnl=15
+char id=219 x=72 y=0 width=14 height=21 xoffset=1 yoffset=0 xadvance=16 page=0 chnl=15
+char id=220 x=17 y=22 width=14 height=19 xoffset=1 yoffset=2 xadvance=16 page=0 chnl=15
+char id=221 x=236 y=0 width=15 height=20 xoffset=0 yoffset=1 xadvance=15 page=0 chnl=15
+char id=222 x=293 y=39 width=14 height=16 xoffset=1 yoffset=5 xadvance=15 page=0 chnl=15
+char id=223 x=169 y=56 width=12 height=16 xoffset=1 yoffset=5 xadvance=13 page=0 chnl=15
+char id=224 x=239 y=21 width=12 height=17 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=225 x=265 y=21 width=12 height=17 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=226 x=101 y=22 width=12 height=18 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=227 x=291 y=21 width=12 height=17 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=228 x=451 y=38 width=12 height=16 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=229 x=114 y=22 width=12 height=18 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=230 x=389 y=55 width=20 height=12 xoffset=0 yoffset=9 xadvance=20 page=0 chnl=15
+char id=231 x=477 y=37 width=12 height=16 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=15
+char id=232 x=278 y=21 width=12 height=17 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=233 x=252 y=21 width=12 height=17 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=234 x=127 y=22 width=12 height=18 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=235 x=13 y=59 width=12 height=16 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=236 x=505 y=0 width=6 height=17 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=237 x=340 y=21 width=6 height=17 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=238 x=152 y=21 width=7 height=18 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=239 x=292 y=56 width=8 height=16 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=15
+char id=240 x=437 y=38 width=13 height=16 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=241 x=328 y=21 width=11 height=17 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=242 x=197 y=21 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=243 x=211 y=21 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=244 x=87 y=22 width=13 height=18 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=245 x=225 y=21 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=246 x=409 y=38 width=13 height=16 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=247 x=139 y=75 width=12 height=11 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=15
+char id=248 x=375 y=55 width=13 height=14 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=249 x=304 y=21 width=11 height=17 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=250 x=316 y=21 width=11 height=17 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=251 x=140 y=21 width=11 height=18 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=252 x=270 y=56 width=11 height=16 xoffset=1 yoffset=5 xadvance=13 page=0 chnl=15
+char id=253 x=100 y=0 width=12 height=21 xoffset=-1 yoffset=4 xadvance=12 page=0 chnl=15
+char id=254 x=384 y=0 width=12 height=20 xoffset=1 yoffset=5 xadvance=13 page=0 chnl=15
+char id=255 x=358 y=0 width=12 height=20 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=15
+kernings count=71
+kerning first=32 second=65 amount=-1
+kerning first=121 second=46 amount=-2
+kerning first=121 second=44 amount=-2
+kerning first=119 second=46 amount=-1
+kerning first=119 second=44 amount=-1
+kerning first=118 second=46 amount=-2
+kerning first=118 second=44 amount=-2
+kerning first=114 second=46 amount=-1
+kerning first=49 second=49 amount=-1
+kerning first=65 second=32 amount=-1
+kerning first=65 second=84 amount=-2
+kerning first=65 second=86 amount=-2
+kerning first=65 second=87 amount=-1
+kerning first=65 second=89 amount=-2
+kerning first=65 second=118 amount=-1
+kerning first=114 second=44 amount=-1
+kerning first=65 second=121 amount=-1
+kerning first=89 second=118 amount=-1
+kerning first=70 second=44 amount=-2
+kerning first=70 second=46 amount=-2
+kerning first=70 second=65 amount=-1
+kerning first=89 second=117 amount=-1
+kerning first=76 second=84 amount=-2
+kerning first=76 second=86 amount=-2
+kerning first=76 second=87 amount=-1
+kerning first=76 second=89 amount=-2
+kerning first=76 second=121 amount=-1
+kerning first=89 second=113 amount=-2
+kerning first=89 second=112 amount=-1
+kerning first=80 second=44 amount=-3
+kerning first=80 second=46 amount=-3
+kerning first=80 second=65 amount=-2
+kerning first=89 second=111 amount=-2
+kerning first=89 second=105 amount=-1
+kerning first=82 second=89 amount=-1
+kerning first=84 second=44 amount=-2
+kerning first=84 second=45 amount=-1
+kerning first=84 second=46 amount=-2
+kerning first=84 second=58 amount=-2
+kerning first=89 second=101 amount=-1
+kerning first=84 second=65 amount=-2
+kerning first=89 second=97 amount=-1
+kerning first=84 second=97 amount=-2
+kerning first=84 second=99 amount=-2
+kerning first=84 second=101 amount=-2
+kerning first=89 second=65 amount=-2
+kerning first=84 second=111 amount=-2
+kerning first=84 second=114 amount=-1
+kerning first=84 second=115 amount=-2
+kerning first=84 second=117 amount=-2
+kerning first=84 second=119 amount=-2
+kerning first=84 second=121 amount=-2
+kerning first=86 second=44 amount=-2
+kerning first=86 second=45 amount=-1
+kerning first=86 second=46 amount=-2
+kerning first=86 second=58 amount=-1
+kerning first=89 second=58 amount=-2
+kerning first=86 second=65 amount=-2
+kerning first=86 second=97 amount=-1
+kerning first=86 second=101 amount=-1
+kerning first=89 second=46 amount=-2
+kerning first=86 second=111 amount=-2
+kerning first=86 second=114 amount=-1
+kerning first=86 second=117 amount=-1
+kerning first=86 second=121 amount=-1
+kerning first=87 second=44 amount=-1
+kerning first=89 second=45 amount=-1
+kerning first=87 second=46 amount=-1
+kerning first=89 second=44 amount=-2
+kerning first=87 second=97 amount=-1
+kerning first=87 second=65 amount=-1
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font22Arial_Bold_0.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font22Arial_Bold_0.png
new file mode 100644
index 000000000..dd262d863
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font22Arial_Bold_0.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font24Arial.bmfc b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font24Arial.bmfc
new file mode 100644
index 000000000..8479c21a2
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font24Arial.bmfc
@@ -0,0 +1,48 @@
+# AngelCode Bitmap Font Generator configuration file
+fileVersion=1
+
+# font settings
+fontName=Arial
+charSet=0
+fontSize=-24
+aa=1
+scaleH=100
+useSmoothing=1
+isBold=0
+isItalic=0
+useUnicode=1
+disableBoxChars=1
+outputInvalidCharGlyph=0
+
+# character alignment
+paddingDown=0
+paddingUp=0
+paddingRight=0
+paddingLeft=0
+spacingHoriz=1
+spacingVert=1
+
+# output file
+outWidth=512
+outHeight=256
+outBitDepth=32
+fontDescFormat=0
+fourChnlPacked=0
+textureFormat=png
+textureCompression=0
+alphaChnl=0
+redChnl=4
+greenChnl=4
+blueChnl=4
+invA=0
+invR=0
+invG=0
+invB=0
+
+# outline
+outlineThickness=0
+
+# selected chars
+chars=32-126,160-255
+
+# imported icon images
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font24Arial.fnt b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font24Arial.fnt
new file mode 100644
index 000000000..45f871511
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font24Arial.fnt
@@ -0,0 +1,266 @@
+info face="Arial" size=-24 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=27 base=21 scaleW=512 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="Font24Arial_0.png"
+chars count=191
+char id=32 x=484 y=72 width=3 height=1 xoffset=-1 yoffset=26 xadvance=7 page=0 chnl=15
+char id=33 x=348 y=58 width=4 height=17 xoffset=2 yoffset=4 xadvance=8 page=0 chnl=15
+char id=34 x=364 y=76 width=9 height=6 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=35 x=292 y=40 width=14 height=17 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=36 x=68 y=23 width=13 height=20 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=37 x=406 y=22 width=19 height=17 xoffset=1 yoffset=4 xadvance=21 page=0 chnl=15
+char id=38 x=68 y=44 width=16 height=17 xoffset=0 yoffset=4 xadvance=16 page=0 chnl=15
+char id=39 x=378 y=75 width=3 height=6 xoffset=1 yoffset=4 xadvance=5 page=0 chnl=15
+char id=40 x=129 y=0 width=7 height=22 xoffset=1 yoffset=4 xadvance=8 page=0 chnl=15
+char id=41 x=137 y=0 width=7 height=22 xoffset=1 yoffset=4 xadvance=8 page=0 chnl=15
+char id=42 x=345 y=76 width=9 height=7 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=43 x=159 y=78 width=13 height=12 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=15
+char id=44 x=374 y=75 width=3 height=6 xoffset=2 yoffset=19 xadvance=7 page=0 chnl=15
+char id=45 x=457 y=73 width=8 height=2 xoffset=0 yoffset=14 xadvance=8 page=0 chnl=15
+char id=46 x=480 y=72 width=3 height=2 xoffset=2 yoffset=19 xadvance=7 page=0 chnl=15
+char id=47 x=305 y=58 width=9 height=17 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=15
+char id=48 x=450 y=40 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=49 x=334 y=58 width=7 height=17 xoffset=2 yoffset=4 xadvance=13 page=0 chnl=15
+char id=50 x=181 y=59 width=12 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=51 x=14 y=63 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=52 x=126 y=60 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=53 x=140 y=60 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=54 x=498 y=22 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=55 x=422 y=40 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=56 x=352 y=40 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=57 x=366 y=40 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=58 x=505 y=58 width=3 height=13 xoffset=2 yoffset=8 xadvance=7 page=0 chnl=15
+char id=59 x=367 y=58 width=3 height=17 xoffset=2 yoffset=8 xadvance=7 page=0 chnl=15
+char id=60 x=200 y=77 width=12 height=11 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=15
+char id=61 x=332 y=76 width=12 height=7 xoffset=1 yoffset=9 xadvance=14 page=0 chnl=15
+char id=62 x=187 y=77 width=12 height=11 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=15
+char id=63 x=380 y=40 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=64 x=10 y=0 width=23 height=22 xoffset=1 yoffset=4 xadvance=24 page=0 chnl=15
+char id=65 x=0 y=45 width=16 height=17 xoffset=-1 yoffset=4 xadvance=15 page=0 chnl=15
+char id=66 x=322 y=40 width=14 height=17 xoffset=1 yoffset=4 xadvance=16 page=0 chnl=15
+char id=67 x=480 y=22 width=17 height=17 xoffset=0 yoffset=4 xadvance=17 page=0 chnl=15
+char id=68 x=51 y=44 width=16 height=17 xoffset=1 yoffset=4 xadvance=17 page=0 chnl=15
+char id=69 x=277 y=40 width=14 height=17 xoffset=1 yoffset=4 xadvance=16 page=0 chnl=15
+char id=70 x=262 y=40 width=14 height=17 xoffset=1 yoffset=4 xadvance=15 page=0 chnl=15
+char id=71 x=426 y=22 width=17 height=17 xoffset=1 yoffset=4 xadvance=19 page=0 chnl=15
+char id=72 x=214 y=41 width=15 height=17 xoffset=1 yoffset=4 xadvance=17 page=0 chnl=15
+char id=73 x=358 y=58 width=4 height=17 xoffset=1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=74 x=283 y=58 width=11 height=17 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=75 x=182 y=41 width=15 height=17 xoffset=1 yoffset=4 xadvance=16 page=0 chnl=15
+char id=76 x=207 y=59 width=12 height=17 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=77 x=444 y=22 width=17 height=17 xoffset=1 yoffset=4 xadvance=19 page=0 chnl=15
+char id=78 x=166 y=41 width=15 height=17 xoffset=1 yoffset=4 xadvance=17 page=0 chnl=15
+char id=79 x=366 y=22 width=19 height=17 xoffset=0 yoffset=4 xadvance=19 page=0 chnl=15
+char id=80 x=198 y=41 width=15 height=17 xoffset=1 yoffset=4 xadvance=16 page=0 chnl=15
+char id=81 x=116 y=23 width=19 height=18 xoffset=0 yoffset=4 xadvance=19 page=0 chnl=15
+char id=82 x=85 y=43 width=16 height=17 xoffset=1 yoffset=4 xadvance=17 page=0 chnl=15
+char id=83 x=230 y=41 width=15 height=17 xoffset=0 yoffset=4 xadvance=16 page=0 chnl=15
+char id=84 x=246 y=40 width=15 height=17 xoffset=-1 yoffset=4 xadvance=14 page=0 chnl=15
+char id=85 x=102 y=43 width=15 height=17 xoffset=1 yoffset=4 xadvance=17 page=0 chnl=15
+char id=86 x=118 y=42 width=15 height=17 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
+char id=87 x=231 y=22 width=24 height=17 xoffset=0 yoffset=4 xadvance=23 page=0 chnl=15
+char id=88 x=17 y=45 width=16 height=17 xoffset=-1 yoffset=4 xadvance=15 page=0 chnl=15
+char id=89 x=34 y=44 width=16 height=17 xoffset=0 yoffset=4 xadvance=16 page=0 chnl=15
+char id=90 x=134 y=42 width=15 height=17 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
+char id=91 x=152 y=0 width=6 height=22 xoffset=1 yoffset=4 xadvance=7 page=0 chnl=15
+char id=92 x=295 y=58 width=9 height=17 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=15
+char id=93 x=145 y=0 width=6 height=22 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=94 x=237 y=77 width=11 height=9 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=95 x=416 y=75 width=15 height=2 xoffset=-1 yoffset=24 xadvance=13 page=0 chnl=15
+char id=96 x=404 y=75 width=5 height=3 xoffset=1 yoffset=4 xadvance=8 page=0 chnl=15
+char id=97 x=47 y=80 width=13 height=13 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=98 x=394 y=40 width=13 height=17 xoffset=1 yoffset=4 xadvance=14 page=0 chnl=15
+char id=99 x=138 y=78 width=11 height=13 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=15
+char id=100 x=408 y=40 width=13 height=17 xoffset=0 yoffset=4 xadvance=14 page=0 chnl=15
+char id=101 x=19 y=81 width=13 height=13 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=102 x=315 y=58 width=9 height=17 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=103 x=136 y=23 width=13 height=18 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=15
+char id=104 x=194 y=59 width=12 height=17 xoffset=1 yoffset=4 xadvance=14 page=0 chnl=15
+char id=105 x=363 y=58 width=3 height=17 xoffset=1 yoffset=4 xadvance=5 page=0 chnl=15
+char id=106 x=121 y=0 width=7 height=22 xoffset=-2 yoffset=4 xadvance=6 page=0 chnl=15
+char id=107 x=259 y=58 width=11 height=17 xoffset=1 yoffset=4 xadvance=12 page=0 chnl=15
+char id=108 x=353 y=58 width=4 height=17 xoffset=1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=109 x=0 y=81 width=18 height=13 xoffset=1 yoffset=8 xadvance=20 page=0 chnl=15
+char id=110 x=100 y=79 width=12 height=13 xoffset=1 yoffset=8 xadvance=14 page=0 chnl=15
+char id=111 x=33 y=81 width=13 height=13 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=112 x=164 y=22 width=13 height=18 xoffset=1 yoffset=8 xadvance=14 page=0 chnl=15
+char id=113 x=178 y=22 width=13 height=18 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=15
+char id=114 x=150 y=78 width=8 height=13 xoffset=1 yoffset=8 xadvance=8 page=0 chnl=15
+char id=115 x=87 y=80 width=12 height=13 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=15
+char id=116 x=218 y=22 width=7 height=18 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=117 x=61 y=80 width=12 height=13 xoffset=1 yoffset=8 xadvance=14 page=0 chnl=15
+char id=118 x=113 y=79 width=12 height=13 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=15
+char id=119 x=485 y=58 width=19 height=13 xoffset=-1 yoffset=8 xadvance=17 page=0 chnl=15
+char id=120 x=126 y=78 width=11 height=13 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=15
+char id=121 x=192 y=22 width=12 height=18 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=15
+char id=122 x=74 y=80 width=12 height=13 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=15
+char id=123 x=103 y=0 width=8 height=22 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=124 x=0 y=0 width=4 height=23 xoffset=1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=125 x=112 y=0 width=8 height=22 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=126 x=382 y=75 width=14 height=4 xoffset=0 yoffset=11 xadvance=14 page=0 chnl=15
+char id=160 x=488 y=72 width=3 height=1 xoffset=-1 yoffset=26 xadvance=7 page=0 chnl=15
+char id=161 x=226 y=22 width=4 height=18 xoffset=2 yoffset=8 xadvance=8 page=0 chnl=15
+char id=162 x=77 y=0 width=12 height=22 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=163 x=436 y=40 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=164 x=173 y=77 width=13 height=12 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=165 x=307 y=40 width=14 height=17 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=166 x=5 y=0 width=4 height=23 xoffset=1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=167 x=50 y=0 width=13 height=22 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=168 x=448 y=74 width=8 height=2 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=169 x=303 y=22 width=20 height=17 xoffset=-1 yoffset=4 xadvance=18 page=0 chnl=15
+char id=170 x=270 y=76 width=9 height=9 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=171 x=213 y=77 width=11 height=11 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=15
+char id=172 x=319 y=76 width=12 height=7 xoffset=1 yoffset=9 xadvance=14 page=0 chnl=15
+char id=173 x=466 y=72 width=8 height=2 xoffset=0 yoffset=14 xadvance=8 page=0 chnl=15
+char id=174 x=345 y=22 width=20 height=17 xoffset=-1 yoffset=4 xadvance=18 page=0 chnl=15
+char id=175 x=432 y=75 width=15 height=2 xoffset=-1 yoffset=1 xadvance=13 page=0 chnl=15
+char id=176 x=355 y=76 width=8 height=7 xoffset=1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=177 x=449 y=58 width=13 height=14 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=178 x=280 y=76 width=8 height=9 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=179 x=289 y=76 width=8 height=9 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=180 x=410 y=75 width=5 height=3 xoffset=2 yoffset=4 xadvance=8 page=0 chnl=15
+char id=181 x=205 y=22 width=12 height=18 xoffset=1 yoffset=8 xadvance=14 page=0 chnl=15
+char id=182 x=34 y=0 width=15 height=22 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=183 x=475 y=72 width=4 height=2 xoffset=2 yoffset=12 xadvance=8 page=0 chnl=15
+char id=184 x=397 y=75 width=6 height=4 xoffset=1 yoffset=21 xadvance=8 page=0 chnl=15
+char id=185 x=298 y=76 width=6 height=9 xoffset=1 yoffset=4 xadvance=8 page=0 chnl=15
+char id=186 x=260 y=76 width=9 height=9 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=187 x=225 y=77 width=11 height=11 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=15
+char id=188 x=281 y=22 width=21 height=17 xoffset=0 yoffset=4 xadvance=20 page=0 chnl=15
+char id=189 x=386 y=22 width=19 height=17 xoffset=1 yoffset=4 xadvance=20 page=0 chnl=15
+char id=190 x=324 y=22 width=20 height=17 xoffset=0 yoffset=4 xadvance=20 page=0 chnl=15
+char id=191 x=150 y=23 width=13 height=18 xoffset=1 yoffset=8 xadvance=15 page=0 chnl=15
+char id=192 x=291 y=0 width=16 height=21 xoffset=-1 yoffset=0 xadvance=15 page=0 chnl=15
+char id=193 x=325 y=0 width=16 height=21 xoffset=-1 yoffset=0 xadvance=15 page=0 chnl=15
+char id=194 x=308 y=0 width=16 height=21 xoffset=-1 yoffset=0 xadvance=15 page=0 chnl=15
+char id=195 x=257 y=0 width=16 height=21 xoffset=-1 yoffset=0 xadvance=15 page=0 chnl=15
+char id=196 x=20 y=23 width=16 height=20 xoffset=-1 yoffset=1 xadvance=15 page=0 chnl=15
+char id=197 x=342 y=0 width=16 height=21 xoffset=-1 yoffset=0 xadvance=15 page=0 chnl=15
+char id=198 x=256 y=22 width=24 height=17 xoffset=-1 yoffset=4 xadvance=24 page=0 chnl=15
+char id=199 x=239 y=0 width=17 height=21 xoffset=0 yoffset=4 xadvance=17 page=0 chnl=15
+char id=200 x=423 y=0 width=14 height=21 xoffset=1 yoffset=0 xadvance=16 page=0 chnl=15
+char id=201 x=438 y=0 width=14 height=21 xoffset=1 yoffset=0 xadvance=16 page=0 chnl=15
+char id=202 x=453 y=0 width=14 height=21 xoffset=1 yoffset=0 xadvance=16 page=0 chnl=15
+char id=203 x=53 y=23 width=14 height=20 xoffset=1 yoffset=1 xadvance=16 page=0 chnl=15
+char id=204 x=496 y=0 width=5 height=21 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
+char id=205 x=490 y=0 width=5 height=21 xoffset=1 yoffset=0 xadvance=6 page=0 chnl=15
+char id=206 x=481 y=0 width=8 height=21 xoffset=-1 yoffset=0 xadvance=6 page=0 chnl=15
+char id=207 x=502 y=0 width=8 height=20 xoffset=-1 yoffset=1 xadvance=6 page=0 chnl=15
+char id=208 x=462 y=22 width=17 height=17 xoffset=-1 yoffset=4 xadvance=17 page=0 chnl=15
+char id=209 x=375 y=0 width=15 height=21 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
+char id=210 x=159 y=0 width=19 height=21 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15
+char id=211 x=179 y=0 width=19 height=21 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15
+char id=212 x=199 y=0 width=19 height=21 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15
+char id=213 x=219 y=0 width=19 height=21 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15
+char id=214 x=0 y=24 width=19 height=20 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=15
+char id=215 x=249 y=76 width=10 height=9 xoffset=2 yoffset=8 xadvance=14 page=0 chnl=15
+char id=216 x=82 y=23 width=19 height=19 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=15
+char id=217 x=359 y=0 width=15 height=21 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
+char id=218 x=407 y=0 width=15 height=21 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
+char id=219 x=391 y=0 width=15 height=21 xoffset=1 yoffset=0 xadvance=17 page=0 chnl=15
+char id=220 x=37 y=23 width=15 height=20 xoffset=1 yoffset=1 xadvance=17 page=0 chnl=15
+char id=221 x=274 y=0 width=16 height=21 xoffset=0 yoffset=0 xadvance=16 page=0 chnl=15
+char id=222 x=150 y=42 width=15 height=17 xoffset=1 yoffset=4 xadvance=16 page=0 chnl=15
+char id=223 x=337 y=40 width=14 height=17 xoffset=1 yoffset=4 xadvance=15 page=0 chnl=15
+char id=224 x=464 y=40 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=225 x=478 y=40 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=226 x=492 y=40 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=227 x=0 y=63 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=228 x=399 y=58 width=13 height=16 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=229 x=102 y=23 width=13 height=19 xoffset=0 yoffset=2 xadvance=13 page=0 chnl=15
+char id=230 x=463 y=58 width=21 height=13 xoffset=0 yoffset=8 xadvance=21 page=0 chnl=15
+char id=231 x=271 y=58 width=11 height=17 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=15
+char id=232 x=154 y=60 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=233 x=28 y=63 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=234 x=42 y=62 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=235 x=371 y=58 width=13 height=16 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=236 x=342 y=58 width=5 height=17 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=237 x=506 y=40 width=5 height=17 xoffset=1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=238 x=325 y=58 width=8 height=17 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=239 x=426 y=58 width=8 height=16 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=15
+char id=240 x=56 y=62 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=241 x=168 y=59 width=12 height=17 xoffset=1 yoffset=4 xadvance=14 page=0 chnl=15
+char id=242 x=70 y=62 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=243 x=84 y=62 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=244 x=98 y=61 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=245 x=112 y=61 width=13 height=17 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=246 x=385 y=58 width=13 height=16 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=247 x=305 y=76 width=13 height=8 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=248 x=435 y=58 width=13 height=15 xoffset=1 yoffset=7 xadvance=15 page=0 chnl=15
+char id=249 x=220 y=59 width=12 height=17 xoffset=1 yoffset=4 xadvance=14 page=0 chnl=15
+char id=250 x=233 y=59 width=12 height=17 xoffset=1 yoffset=4 xadvance=14 page=0 chnl=15
+char id=251 x=246 y=58 width=12 height=17 xoffset=1 yoffset=4 xadvance=14 page=0 chnl=15
+char id=252 x=413 y=58 width=12 height=16 xoffset=1 yoffset=5 xadvance=14 page=0 chnl=15
+char id=253 x=90 y=0 width=12 height=22 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=254 x=64 y=0 width=12 height=22 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=255 x=468 y=0 width=12 height=21 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+kernings count=70
+kerning first=32 second=65 amount=-1
+kerning first=121 second=46 amount=-2
+kerning first=121 second=44 amount=-2
+kerning first=119 second=46 amount=-1
+kerning first=119 second=44 amount=-1
+kerning first=118 second=46 amount=-2
+kerning first=118 second=44 amount=-2
+kerning first=114 second=46 amount=-1
+kerning first=114 second=44 amount=-1
+kerning first=89 second=118 amount=-1
+kerning first=49 second=49 amount=-2
+kerning first=65 second=32 amount=-1
+kerning first=65 second=84 amount=-2
+kerning first=65 second=86 amount=-2
+kerning first=65 second=87 amount=-1
+kerning first=65 second=89 amount=-2
+kerning first=89 second=117 amount=-1
+kerning first=89 second=113 amount=-2
+kerning first=89 second=112 amount=-2
+kerning first=89 second=111 amount=-2
+kerning first=70 second=44 amount=-3
+kerning first=70 second=46 amount=-3
+kerning first=70 second=65 amount=-1
+kerning first=76 second=32 amount=-1
+kerning first=76 second=84 amount=-2
+kerning first=76 second=86 amount=-2
+kerning first=76 second=87 amount=-2
+kerning first=76 second=89 amount=-2
+kerning first=76 second=121 amount=-1
+kerning first=89 second=105 amount=-1
+kerning first=89 second=101 amount=-2
+kerning first=80 second=44 amount=-3
+kerning first=80 second=46 amount=-3
+kerning first=80 second=65 amount=-2
+kerning first=89 second=97 amount=-2
+kerning first=89 second=65 amount=-2
+kerning first=89 second=58 amount=-1
+kerning first=89 second=46 amount=-3
+kerning first=89 second=45 amount=-2
+kerning first=84 second=44 amount=-3
+kerning first=84 second=45 amount=-1
+kerning first=84 second=46 amount=-3
+kerning first=84 second=58 amount=-3
+kerning first=89 second=44 amount=-3
+kerning first=84 second=65 amount=-2
+kerning first=87 second=97 amount=-1
+kerning first=84 second=97 amount=-3
+kerning first=84 second=99 amount=-3
+kerning first=84 second=101 amount=-3
+kerning first=84 second=105 amount=-1
+kerning first=84 second=111 amount=-3
+kerning first=84 second=114 amount=-1
+kerning first=84 second=115 amount=-3
+kerning first=84 second=117 amount=-1
+kerning first=84 second=119 amount=-1
+kerning first=84 second=121 amount=-1
+kerning first=86 second=44 amount=-2
+kerning first=86 second=45 amount=-1
+kerning first=86 second=46 amount=-2
+kerning first=86 second=58 amount=-1
+kerning first=87 second=65 amount=-1
+kerning first=86 second=65 amount=-2
+kerning first=86 second=97 amount=-2
+kerning first=86 second=101 amount=-1
+kerning first=87 second=46 amount=-1
+kerning first=86 second=111 amount=-1
+kerning first=86 second=114 amount=-1
+kerning first=86 second=117 amount=-1
+kerning first=86 second=121 amount=-1
+kerning first=87 second=44 amount=-1
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font24Arial_0.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font24Arial_0.png
new file mode 100644
index 000000000..e198dc88b
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font24Arial_0.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font28Arial_Bold.bmfc b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font28Arial_Bold.bmfc
new file mode 100644
index 000000000..d4cfe69a3
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font28Arial_Bold.bmfc
@@ -0,0 +1,48 @@
+# AngelCode Bitmap Font Generator configuration file
+fileVersion=1
+
+# font settings
+fontName=Arial
+charSet=0
+fontSize=-28
+aa=1
+scaleH=100
+useSmoothing=1
+isBold=1
+isItalic=0
+useUnicode=1
+disableBoxChars=1
+outputInvalidCharGlyph=0
+
+# character alignment
+paddingDown=0
+paddingUp=0
+paddingRight=0
+paddingLeft=0
+spacingHoriz=1
+spacingVert=1
+
+# output file
+outWidth=512
+outHeight=256
+outBitDepth=32
+fontDescFormat=0
+fourChnlPacked=0
+textureFormat=png
+textureCompression=0
+alphaChnl=0
+redChnl=4
+greenChnl=4
+blueChnl=4
+invA=0
+invR=0
+invG=0
+invB=0
+
+# outline
+outlineThickness=0
+
+# selected chars
+chars=32-126,160-255
+
+# imported icon images
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font28Arial_Bold.fnt b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font28Arial_Bold.fnt
new file mode 100644
index 000000000..fdd82dad9
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font28Arial_Bold.fnt
@@ -0,0 +1,284 @@
+info face="Arial" size=-28 bold=1 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=33 base=26 scaleW=512 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="Font28Arial_Bold_0.png"
+chars count=191
+char id=32 x=175 y=51 width=3 height=1 xoffset=-1 yoffset=32 xadvance=8 page=0 chnl=15
+char id=33 x=192 y=95 width=6 height=20 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=15
+char id=34 x=373 y=108 width=12 height=7 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=15
+char id=35 x=261 y=71 width=16 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=36 x=193 y=27 width=15 height=23 xoffset=0 yoffset=5 xadvance=16 page=0 chnl=15
+char id=37 x=254 y=27 width=23 height=21 xoffset=1 yoffset=6 xadvance=25 page=0 chnl=15
+char id=38 x=184 y=51 width=20 height=20 xoffset=0 yoffset=6 xadvance=20 page=0 chnl=15
+char id=39 x=386 y=107 width=5 height=7 xoffset=1 yoffset=6 xadvance=7 page=0 chnl=15
+char id=40 x=424 y=0 width=8 height=26 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=41 x=433 y=0 width=8 height=26 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=15
+char id=42 x=343 y=111 width=11 height=9 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=15
+char id=43 x=165 y=116 width=16 height=14 xoffset=0 yoffset=9 xadvance=16 page=0 chnl=15
+char id=44 x=355 y=109 width=6 height=9 xoffset=1 yoffset=22 xadvance=8 page=0 chnl=15
+char id=45 x=427 y=106 width=8 height=4 xoffset=1 yoffset=17 xadvance=9 page=0 chnl=15
+char id=46 x=452 y=106 width=6 height=4 xoffset=1 yoffset=22 xadvance=8 page=0 chnl=15
+char id=47 x=130 y=95 width=10 height=20 xoffset=-1 yoffset=6 xadvance=8 page=0 chnl=15
+char id=48 x=441 y=69 width=15 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=49 x=95 y=95 width=11 height=20 xoffset=1 yoffset=6 xadvance=16 page=0 chnl=15
+char id=50 x=457 y=69 width=15 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=51 x=473 y=69 width=15 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=52 x=108 y=74 width=16 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=53 x=495 y=47 width=16 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=54 x=295 y=70 width=16 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=55 x=425 y=69 width=15 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=56 x=32 y=96 width=15 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=57 x=48 y=96 width=15 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=58 x=158 y=116 width=6 height=15 xoffset=2 yoffset=11 xadvance=10 page=0 chnl=15
+char id=59 x=199 y=93 width=6 height=20 xoffset=2 yoffset=11 xadvance=10 page=0 chnl=15
+char id=60 x=17 y=117 width=16 height=15 xoffset=0 yoffset=9 xadvance=16 page=0 chnl=15
+char id=61 x=244 y=112 width=16 height=11 xoffset=0 yoffset=11 xadvance=16 page=0 chnl=15
+char id=62 x=0 y=117 width=16 height=15 xoffset=0 yoffset=9 xadvance=16 page=0 chnl=15
+char id=63 x=278 y=70 width=16 height=20 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=15
+char id=64 x=0 y=0 width=27 height=27 xoffset=0 yoffset=6 xadvance=27 page=0 chnl=15
+char id=65 x=96 y=53 width=21 height=20 xoffset=-1 yoffset=6 xadvance=19 page=0 chnl=15
+char id=66 x=385 y=48 width=18 height=20 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=15
+char id=67 x=287 y=49 width=19 height=20 xoffset=0 yoffset=6 xadvance=20 page=0 chnl=15
+char id=68 x=267 y=49 width=19 height=20 xoffset=1 yoffset=6 xadvance=20 page=0 chnl=15
+char id=69 x=423 y=48 width=17 height=20 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=15
+char id=70 x=377 y=70 width=15 height=20 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=15
+char id=71 x=226 y=50 width=20 height=20 xoffset=1 yoffset=6 xadvance=22 page=0 chnl=15
+char id=72 x=366 y=49 width=18 height=20 xoffset=1 yoffset=6 xadvance=20 page=0 chnl=15
+char id=73 x=505 y=68 width=6 height=20 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=15
+char id=74 x=80 y=95 width=14 height=20 xoffset=0 yoffset=6 xadvance=15 page=0 chnl=15
+char id=75 x=247 y=50 width=19 height=20 xoffset=1 yoffset=6 xadvance=20 page=0 chnl=15
+char id=76 x=210 y=72 width=16 height=20 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=15
+char id=77 x=469 y=27 width=23 height=20 xoffset=1 yoffset=6 xadvance=25 page=0 chnl=15
+char id=78 x=404 y=48 width=18 height=20 xoffset=1 yoffset=6 xadvance=20 page=0 chnl=15
+char id=79 x=162 y=53 width=21 height=20 xoffset=0 yoffset=6 xadvance=21 page=0 chnl=15
+char id=80 x=90 y=74 width=17 height=20 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=15
+char id=81 x=232 y=27 width=21 height=22 xoffset=0 yoffset=6 xadvance=21 page=0 chnl=15
+char id=82 x=307 y=49 width=19 height=20 xoffset=1 yoffset=6 xadvance=20 page=0 chnl=15
+char id=83 x=347 y=49 width=18 height=20 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=15
+char id=84 x=459 y=48 width=17 height=20 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=15
+char id=85 x=493 y=26 width=18 height=20 xoffset=1 yoffset=6 xadvance=20 page=0 chnl=15
+char id=86 x=140 y=53 width=21 height=20 xoffset=-1 yoffset=6 xadvance=19 page=0 chnl=15
+char id=87 x=415 y=27 width=29 height=20 xoffset=-1 yoffset=6 xadvance=27 page=0 chnl=15
+char id=88 x=327 y=49 width=19 height=20 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=15
+char id=89 x=205 y=51 width=20 height=20 xoffset=-1 yoffset=6 xadvance=18 page=0 chnl=15
+char id=90 x=477 y=48 width=17 height=20 xoffset=0 yoffset=6 xadvance=17 page=0 chnl=15
+char id=91 x=415 y=0 width=8 height=26 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=15
+char id=92 x=119 y=95 width=10 height=20 xoffset=-1 yoffset=6 xadvance=8 page=0 chnl=15
+char id=93 x=385 y=0 width=9 height=26 xoffset=-1 yoffset=6 xadvance=9 page=0 chnl=15
+char id=94 x=261 y=112 width=14 height=11 xoffset=1 yoffset=6 xadvance=16 page=0 chnl=15
+char id=95 x=465 y=106 width=18 height=3 xoffset=-1 yoffset=29 xadvance=16 page=0 chnl=15
+char id=96 x=444 y=106 width=7 height=4 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=97 x=84 y=116 width=15 height=15 xoffset=0 yoffset=11 xadvance=16 page=0 chnl=15
+char id=98 x=227 y=71 width=16 height=20 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=15
+char id=99 x=478 y=90 width=16 height=15 xoffset=0 yoffset=11 xadvance=16 page=0 chnl=15
+char id=100 x=244 y=71 width=16 height=20 xoffset=0 yoffset=6 xadvance=17 page=0 chnl=15
+char id=101 x=51 y=117 width=16 height=15 xoffset=0 yoffset=11 xadvance=16 page=0 chnl=15
+char id=102 x=107 y=95 width=11 height=20 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=103 x=313 y=27 width=16 height=21 xoffset=0 yoffset=11 xadvance=17 page=0 chnl=15
+char id=104 x=393 y=69 width=15 height=20 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=15
+char id=105 x=185 y=95 width=6 height=20 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=15
+char id=106 x=405 y=0 width=9 height=26 xoffset=-2 yoffset=6 xadvance=8 page=0 chnl=15
+char id=107 x=409 y=69 width=15 height=20 xoffset=1 yoffset=6 xadvance=16 page=0 chnl=15
+char id=108 x=178 y=95 width=6 height=20 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=15
+char id=109 x=435 y=90 width=24 height=15 xoffset=1 yoffset=11 xadvance=26 page=0 chnl=15
+char id=110 x=68 y=116 width=15 height=15 xoffset=1 yoffset=11 xadvance=17 page=0 chnl=15
+char id=111 x=460 y=90 width=17 height=15 xoffset=0 yoffset=11 xadvance=17 page=0 chnl=15
+char id=112 x=330 y=27 width=16 height=21 xoffset=1 yoffset=11 xadvance=17 page=0 chnl=15
+char id=113 x=296 y=27 width=16 height=21 xoffset=0 yoffset=11 xadvance=17 page=0 chnl=15
+char id=114 x=146 y=116 width=11 height=15 xoffset=1 yoffset=11 xadvance=11 page=0 chnl=15
+char id=115 x=131 y=116 width=14 height=15 xoffset=0 yoffset=11 xadvance=15 page=0 chnl=15
+char id=116 x=141 y=95 width=10 height=20 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=117 x=100 y=116 width=15 height=15 xoffset=1 yoffset=11 xadvance=17 page=0 chnl=15
+char id=118 x=495 y=90 width=16 height=15 xoffset=-1 yoffset=11 xadvance=15 page=0 chnl=15
+char id=119 x=385 y=91 width=24 height=15 xoffset=0 yoffset=11 xadvance=23 page=0 chnl=15
+char id=120 x=34 y=117 width=16 height=15 xoffset=0 yoffset=11 xadvance=16 page=0 chnl=15
+char id=121 x=278 y=27 width=17 height=21 xoffset=-1 yoffset=11 xadvance=16 page=0 chnl=15
+char id=122 x=116 y=116 width=14 height=15 xoffset=0 yoffset=11 xadvance=14 page=0 chnl=15
+char id=123 x=373 y=0 width=11 height=26 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=15
+char id=124 x=458 y=0 width=5 height=26 xoffset=1 yoffset=6 xadvance=7 page=0 chnl=15
+char id=125 x=361 y=0 width=11 height=26 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=15
+char id=126 x=392 y=107 width=16 height=6 xoffset=0 yoffset=13 xadvance=16 page=0 chnl=15
+char id=160 x=171 y=51 width=3 height=1 xoffset=-1 yoffset=32 xadvance=8 page=0 chnl=15
+char id=161 x=378 y=27 width=6 height=21 xoffset=1 yoffset=11 xadvance=8 page=0 chnl=15
+char id=162 x=327 y=0 width=16 height=26 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=163 x=441 y=48 width=17 height=20 xoffset=-1 yoffset=6 xadvance=16 page=0 chnl=15
+char id=164 x=182 y=116 width=16 height=14 xoffset=0 yoffset=10 xadvance=16 page=0 chnl=15
+char id=165 x=125 y=74 width=16 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=166 x=464 y=0 width=5 height=26 xoffset=1 yoffset=6 xadvance=7 page=0 chnl=15
+char id=167 x=310 y=0 width=16 height=26 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=168 x=0 y=133 width=11 height=3 xoffset=-1 yoffset=6 xadvance=9 page=0 chnl=15
+char id=169 x=445 y=27 width=23 height=20 xoffset=-1 yoffset=6 xadvance=21 page=0 chnl=15
+char id=170 x=304 y=111 width=10 height=10 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15
+char id=171 x=229 y=113 width=14 height=13 xoffset=1 yoffset=12 xadvance=16 page=0 chnl=15
+char id=172 x=276 y=112 width=16 height=10 xoffset=0 yoffset=11 xadvance=16 page=0 chnl=15
+char id=173 x=418 y=106 width=8 height=4 xoffset=1 yoffset=17 xadvance=9 page=0 chnl=15
+char id=174 x=72 y=53 width=23 height=20 xoffset=-1 yoffset=6 xadvance=21 page=0 chnl=15
+char id=175 x=484 y=106 width=17 height=3 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=15
+char id=176 x=362 y=109 width=10 height=8 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=15
+char id=177 x=275 y=92 width=15 height=19 xoffset=0 yoffset=7 xadvance=15 page=0 chnl=15
+char id=178 x=325 y=111 width=9 height=10 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=179 x=315 y=111 width=9 height=10 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=180 x=436 y=106 width=7 height=4 xoffset=2 yoffset=6 xadvance=9 page=0 chnl=15
+char id=181 x=363 y=27 width=14 height=21 xoffset=1 yoffset=11 xadvance=16 page=0 chnl=15
+char id=182 x=85 y=27 width=18 height=25 xoffset=-1 yoffset=6 xadvance=16 page=0 chnl=15
+char id=183 x=459 y=106 width=5 height=4 xoffset=2 yoffset=14 xadvance=9 page=0 chnl=15
+char id=184 x=409 y=107 width=8 height=5 xoffset=0 yoffset=26 xadvance=9 page=0 chnl=15
+char id=185 x=335 y=111 width=7 height=10 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=186 x=293 y=111 width=10 height=10 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15
+char id=187 x=214 y=113 width=14 height=13 xoffset=1 yoffset=12 xadvance=16 page=0 chnl=15
+char id=188 x=48 y=53 width=23 height=20 xoffset=0 yoffset=6 xadvance=23 page=0 chnl=15
+char id=189 x=0 y=54 width=23 height=20 xoffset=0 yoffset=6 xadvance=23 page=0 chnl=15
+char id=190 x=24 y=54 width=23 height=20 xoffset=0 yoffset=6 xadvance=23 page=0 chnl=15
+char id=191 x=347 y=27 width=15 height=21 xoffset=1 yoffset=11 xadvance=17 page=0 chnl=15
+char id=192 x=50 y=0 width=21 height=26 xoffset=-1 yoffset=0 xadvance=20 page=0 chnl=15
+char id=193 x=94 y=0 width=21 height=26 xoffset=-1 yoffset=0 xadvance=20 page=0 chnl=15
+char id=194 x=72 y=0 width=21 height=26 xoffset=-1 yoffset=0 xadvance=20 page=0 chnl=15
+char id=195 x=22 y=28 width=21 height=25 xoffset=-1 yoffset=1 xadvance=20 page=0 chnl=15
+char id=196 x=44 y=27 width=21 height=25 xoffset=-1 yoffset=1 xadvance=20 page=0 chnl=15
+char id=197 x=171 y=27 width=21 height=23 xoffset=-1 yoffset=3 xadvance=20 page=0 chnl=15
+char id=198 x=385 y=27 width=29 height=20 xoffset=-2 yoffset=6 xadvance=28 page=0 chnl=15
+char id=199 x=492 y=0 width=19 height=25 xoffset=0 yoffset=6 xadvance=20 page=0 chnl=15
+char id=200 x=256 y=0 width=17 height=26 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15
+char id=201 x=274 y=0 width=17 height=26 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15
+char id=202 x=292 y=0 width=17 height=26 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15
+char id=203 x=141 y=27 width=17 height=25 xoffset=1 yoffset=1 xadvance=19 page=0 chnl=15
+char id=204 x=450 y=0 width=7 height=26 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=205 x=442 y=0 width=7 height=26 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
+char id=206 x=395 y=0 width=9 height=26 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=15
+char id=207 x=159 y=27 width=11 height=25 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=15
+char id=208 x=118 y=53 width=21 height=20 xoffset=-1 yoffset=6 xadvance=20 page=0 chnl=15
+char id=209 x=66 y=27 width=18 height=25 xoffset=1 yoffset=1 xadvance=20 page=0 chnl=15
+char id=210 x=138 y=0 width=21 height=26 xoffset=0 yoffset=0 xadvance=22 page=0 chnl=15
+char id=211 x=116 y=0 width=21 height=26 xoffset=0 yoffset=0 xadvance=22 page=0 chnl=15
+char id=212 x=28 y=0 width=21 height=26 xoffset=0 yoffset=0 xadvance=22 page=0 chnl=15
+char id=213 x=0 y=28 width=21 height=25 xoffset=0 yoffset=1 xadvance=22 page=0 chnl=15
+char id=214 x=470 y=0 width=21 height=25 xoffset=0 yoffset=1 xadvance=22 page=0 chnl=15
+char id=215 x=199 y=114 width=14 height=13 xoffset=1 yoffset=10 xadvance=16 page=0 chnl=15
+char id=216 x=209 y=27 width=22 height=22 xoffset=0 yoffset=5 xadvance=22 page=0 chnl=15
+char id=217 x=200 y=0 width=18 height=26 xoffset=1 yoffset=0 xadvance=20 page=0 chnl=15
+char id=218 x=181 y=0 width=18 height=26 xoffset=1 yoffset=0 xadvance=20 page=0 chnl=15
+char id=219 x=219 y=0 width=18 height=26 xoffset=1 yoffset=0 xadvance=20 page=0 chnl=15
+char id=220 x=104 y=27 width=18 height=25 xoffset=1 yoffset=1 xadvance=20 page=0 chnl=15
+char id=221 x=160 y=0 width=20 height=26 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15
+char id=222 x=0 y=75 width=17 height=20 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=15
+char id=223 x=142 y=74 width=16 height=20 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=15
+char id=224 x=64 y=95 width=15 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=225 x=329 y=70 width=15 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=226 x=345 y=70 width=15 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=227 x=323 y=91 width=15 height=19 xoffset=0 yoffset=7 xadvance=16 page=0 chnl=15
+char id=228 x=291 y=91 width=15 height=19 xoffset=0 yoffset=7 xadvance=16 page=0 chnl=15
+char id=229 x=361 y=70 width=15 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=230 x=410 y=90 width=24 height=15 xoffset=0 yoffset=11 xadvance=25 page=0 chnl=15
+char id=231 x=159 y=74 width=16 height=20 xoffset=0 yoffset=11 xadvance=16 page=0 chnl=15
+char id=232 x=312 y=70 width=16 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=233 x=176 y=74 width=16 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=234 x=193 y=72 width=16 height=20 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=235 x=242 y=92 width=16 height=19 xoffset=0 yoffset=7 xadvance=16 page=0 chnl=15
+char id=236 x=170 y=95 width=7 height=20 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=15
+char id=237 x=162 y=95 width=7 height=20 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=15
+char id=238 x=152 y=95 width=9 height=20 xoffset=-1 yoffset=6 xadvance=8 page=0 chnl=15
+char id=239 x=339 y=91 width=11 height=19 xoffset=-1 yoffset=7 xadvance=8 page=0 chnl=15
+char id=240 x=18 y=75 width=17 height=20 xoffset=0 yoffset=6 xadvance=17 page=0 chnl=15
+char id=241 x=307 y=91 width=15 height=19 xoffset=1 yoffset=7 xadvance=17 page=0 chnl=15
+char id=242 x=36 y=75 width=17 height=20 xoffset=0 yoffset=6 xadvance=17 page=0 chnl=15
+char id=243 x=54 y=74 width=17 height=20 xoffset=0 yoffset=6 xadvance=17 page=0 chnl=15
+char id=244 x=72 y=74 width=17 height=20 xoffset=0 yoffset=6 xadvance=17 page=0 chnl=15
+char id=245 x=224 y=93 width=17 height=19 xoffset=0 yoffset=7 xadvance=17 page=0 chnl=15
+char id=246 x=206 y=93 width=17 height=19 xoffset=0 yoffset=7 xadvance=17 page=0 chnl=15
+char id=247 x=369 y=91 width=15 height=16 xoffset=0 yoffset=7 xadvance=15 page=0 chnl=15
+char id=248 x=351 y=91 width=17 height=17 xoffset=0 yoffset=10 xadvance=17 page=0 chnl=15
+char id=249 x=489 y=69 width=15 height=20 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=15
+char id=250 x=0 y=96 width=15 height=20 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=15
+char id=251 x=16 y=96 width=15 height=20 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=15
+char id=252 x=259 y=92 width=15 height=19 xoffset=1 yoffset=7 xadvance=17 page=0 chnl=15
+char id=253 x=238 y=0 width=17 height=26 xoffset=-1 yoffset=6 xadvance=16 page=0 chnl=15
+char id=254 x=344 y=0 width=16 height=26 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=15
+char id=255 x=123 y=27 width=17 height=25 xoffset=-1 yoffset=7 xadvance=16 page=0 chnl=15
+kernings count=88
+kerning first=32 second=65 amount=-1
+kerning first=32 second=89 amount=-1
+kerning first=121 second=46 amount=-2
+kerning first=121 second=44 amount=-2
+kerning first=119 second=46 amount=-1
+kerning first=119 second=44 amount=-1
+kerning first=118 second=46 amount=-2
+kerning first=118 second=44 amount=-2
+kerning first=49 second=49 amount=-2
+kerning first=65 second=32 amount=-1
+kerning first=65 second=84 amount=-2
+kerning first=65 second=86 amount=-2
+kerning first=65 second=87 amount=-2
+kerning first=65 second=89 amount=-3
+kerning first=65 second=118 amount=-1
+kerning first=65 second=119 amount=-1
+kerning first=65 second=121 amount=-1
+kerning first=114 second=46 amount=-2
+kerning first=70 second=44 amount=-3
+kerning first=70 second=46 amount=-3
+kerning first=70 second=65 amount=-2
+kerning first=76 second=32 amount=-1
+kerning first=76 second=84 amount=-2
+kerning first=76 second=86 amount=-2
+kerning first=76 second=87 amount=-2
+kerning first=76 second=89 amount=-3
+kerning first=76 second=121 amount=-1
+kerning first=114 second=44 amount=-2
+kerning first=80 second=32 amount=-1
+kerning first=80 second=44 amount=-4
+kerning first=80 second=46 amount=-4
+kerning first=80 second=65 amount=-2
+kerning first=82 second=86 amount=-1
+kerning first=82 second=87 amount=-1
+kerning first=82 second=89 amount=-1
+kerning first=84 second=44 amount=-3
+kerning first=84 second=45 amount=-2
+kerning first=84 second=46 amount=-3
+kerning first=84 second=58 amount=-3
+kerning first=89 second=118 amount=-2
+kerning first=84 second=65 amount=-2
+kerning first=84 second=79 amount=-1
+kerning first=84 second=97 amount=-2
+kerning first=84 second=99 amount=-2
+kerning first=84 second=101 amount=-2
+kerning first=84 second=105 amount=-1
+kerning first=84 second=111 amount=-2
+kerning first=84 second=114 amount=-2
+kerning first=84 second=115 amount=-2
+kerning first=84 second=117 amount=-2
+kerning first=84 second=119 amount=-2
+kerning first=84 second=121 amount=-2
+kerning first=86 second=44 amount=-3
+kerning first=86 second=45 amount=-2
+kerning first=86 second=46 amount=-3
+kerning first=86 second=58 amount=-2
+kerning first=89 second=117 amount=-2
+kerning first=86 second=65 amount=-2
+kerning first=86 second=97 amount=-2
+kerning first=86 second=101 amount=-2
+kerning first=86 second=105 amount=-1
+kerning first=86 second=111 amount=-2
+kerning first=86 second=114 amount=-2
+kerning first=86 second=117 amount=-1
+kerning first=86 second=121 amount=-1
+kerning first=87 second=44 amount=-2
+kerning first=87 second=45 amount=-1
+kerning first=87 second=46 amount=-2
+kerning first=87 second=58 amount=-1
+kerning first=89 second=113 amount=-2
+kerning first=87 second=65 amount=-2
+kerning first=87 second=97 amount=-1
+kerning first=87 second=101 amount=-1
+kerning first=89 second=112 amount=-2
+kerning first=87 second=111 amount=-1
+kerning first=87 second=114 amount=-1
+kerning first=87 second=117 amount=-1
+kerning first=87 second=121 amount=-1
+kerning first=89 second=32 amount=-1
+kerning first=89 second=44 amount=-3
+kerning first=89 second=45 amount=-2
+kerning first=89 second=46 amount=-3
+kerning first=89 second=58 amount=-2
+kerning first=89 second=111 amount=-2
+kerning first=89 second=65 amount=-3
+kerning first=89 second=97 amount=-2
+kerning first=89 second=101 amount=-2
+kerning first=89 second=105 amount=-1
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font28Arial_Bold_0.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font28Arial_Bold_0.png
new file mode 100644
index 000000000..c8c065ffa
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/FontCache/Font28Arial_Bold_0.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/GumProject.gumx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/GumProject.gumx
new file mode 100644
index 000000000..11b08f07e
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/GumProject.gumx
@@ -0,0 +1,353 @@
+
+
+
+ 32-126,160-255
+ 1
+ 800
+ 600
+ true
+ true
+ true
+ true
+ false
+ true
+ false
+
+ true
+ 0
+
+ MainMenuGum
+ Screen
+ ReferenceOriginal
+
+
+ Controls/ButtonClose
+ Component
+ ReferenceOriginal
+
+
+ Controls/ButtonConfirm
+ Component
+ ReferenceOriginal
+
+
+ Controls/ButtonDeny
+ Component
+ ReferenceOriginal
+
+
+ Controls/ButtonIcon
+ Component
+ ReferenceOriginal
+
+
+ Controls/ButtonStandard
+ Component
+ ReferenceOriginal
+
+
+ Controls/ButtonStandardIcon
+ Component
+ ReferenceOriginal
+
+
+ Controls/ButtonTab
+ Component
+ ReferenceOriginal
+
+
+ Controls/CheckBox
+ Component
+ ReferenceOriginal
+
+
+ Controls/ComboBox
+ Component
+ ReferenceOriginal
+
+
+ Controls/DialogBox
+ Component
+ ReferenceOriginal
+
+
+ Controls/Keyboard
+ Component
+ ReferenceOriginal
+
+
+ Controls/KeyboardKey
+ Component
+ ReferenceOriginal
+
+
+ Controls/ListBox
+ Component
+ ReferenceOriginal
+
+
+ Controls/ListBoxItem
+ Component
+ ReferenceOriginal
+
+
+ Controls/PasswordBox
+ Component
+ ReferenceOriginal
+
+
+ Controls/PlayerJoinView
+ Component
+ ReferenceOriginal
+
+
+ Controls/PlayerJoinViewItem
+ Component
+ ReferenceOriginal
+
+
+ Controls/RadioButton
+ Component
+ ReferenceOriginal
+
+
+ Controls/ScrollBar
+ Component
+ ReferenceOriginal
+
+
+ Controls/ScrollViewer
+ Component
+ ReferenceOriginal
+
+
+ Controls/SettingsView
+ Component
+ ReferenceOriginal
+
+
+ Controls/Slider
+ Component
+ ReferenceOriginal
+
+
+ Controls/TextBox
+ Component
+ ReferenceOriginal
+
+
+ Controls/Toast
+ Component
+ ReferenceOriginal
+
+
+ Controls/TreeView
+ Component
+ ReferenceOriginal
+
+
+ Controls/TreeViewItem
+ Component
+ ReferenceOriginal
+
+
+ Controls/TreeViewToggle
+ Component
+ ReferenceOriginal
+
+
+ Controls/UserControl
+ Component
+ ReferenceOriginal
+
+
+ Elements/CautionLines
+ Component
+ ReferenceOriginal
+
+
+ Elements/Divider
+ Component
+ ReferenceOriginal
+
+
+ Elements/DividerHorizontal
+ Component
+ ReferenceOriginal
+
+
+ Elements/DividerVertical
+ Component
+ ReferenceOriginal
+
+
+ Elements/Icon
+ Component
+ ReferenceOriginal
+
+
+ Elements/Label
+ Component
+ ReferenceOriginal
+
+
+ Elements/PercentBar
+ Component
+ ReferenceOriginal
+
+
+ Elements/PercentBarIcon
+ Component
+ ReferenceOriginal
+
+
+ Elements/VerticalLines
+ Component
+ ReferenceOriginal
+
+
+ Circle
+ Standard
+ ReferenceOriginal
+
+
+ ColoredRectangle
+ Standard
+ ReferenceOriginal
+
+
+ Component
+ Standard
+ ReferenceOriginal
+
+
+ Container
+ Standard
+ ReferenceOriginal
+
+
+ NineSlice
+ Standard
+ ReferenceOriginal
+
+
+ Polygon
+ Standard
+ ReferenceOriginal
+
+
+ Rectangle
+ Standard
+ ReferenceOriginal
+
+
+ Sprite
+ Standard
+ ReferenceOriginal
+
+
+ Text
+ Standard
+ ReferenceOriginal
+
+
+ Arc
+ Standard
+ ReferenceOriginal
+
+
+ Canvas
+ Standard
+ ReferenceOriginal
+
+
+ ColoredCircle
+ Standard
+ ReferenceOriginal
+
+
+ LottieAnimation
+ Standard
+ ReferenceOriginal
+
+
+ RoundedRectangle
+ Standard
+ ReferenceOriginal
+
+
+ Svg
+ Standard
+ ReferenceOriginal
+
+
+ ButtonBehavior
+
+
+ CheckBoxBehavior
+
+
+ ComboBoxBehavior
+
+
+ DialogBoxBehavior
+
+
+ LabelBehavior
+
+
+ ListBoxBehavior
+
+
+ ListBoxItemBehavior
+
+
+ OnScreenKeyboardBehavior
+
+
+ PasswordBoxBehavior
+
+
+ PlayerJoinViewBehavior
+
+
+ PlayerJoinViewItemBehavior
+
+
+ RadioButtonBehavior
+
+
+ ScrollBarBehavior
+
+
+ ScrollViewerBehavior
+
+
+ SettingsViewBehavior
+
+
+ SliderBehavior
+
+
+ TextBoxBehavior
+
+
+ ToastBehavior
+
+
+ ToggleBehavior
+
+
+ TreeViewBehavior
+
+
+ TreeViewItemBehavior
+
+
+ UserControlBehavior
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Libraries/bmfont.exe b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Libraries/bmfont.exe
new file mode 100644
index 000000000..217b9b8f5
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Libraries/bmfont.exe differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Screens/MainMenuGum.gusx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Screens/MainMenuGum.gusx
new file mode 100644
index 000000000..4aee7f892
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Screens/MainMenuGum.gusx
@@ -0,0 +1,1319 @@
+
+
+ MainMenuGum
+
+ Default
+
+ int
+ ArcInstance.Blue
+ 0
+ true
+
+
+ int
+ ArcInstance.Green
+ 247
+ true
+
+
+ float
+ ArcInstance.Height
+ 80
+ true
+
+
+ bool
+ ArcInstance.IsEndRounded
+ true
+ true
+
+
+ string
+ ArcInstance.Parent
+ Container1
+ true
+
+
+ int
+ ArcInstance.Red
+ 46
+ true
+
+
+ float
+ ArcInstance.SweepAngle
+ 220
+ true
+
+
+ float
+ ArcInstance.Thickness
+ 25
+ true
+
+
+ float
+ ArcInstance.Width
+ 80
+ true
+
+
+ float
+ ArcInstance.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ ArcInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ ArcInstance.X Units
+ 6
+ true
+
+
+ float
+ ArcInstance.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ ArcInstance.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ ArcInstance.Y Units
+ 1
+ true
+
+
+ ColorCategory
+ ArcLabel.ColorCategoryState
+ White
+ true
+
+
+ int
+ ArcLabel.FontSize
+ 24
+ true
+
+
+ HorizontalAlignment
+ ArcLabel.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ ArcLabel.Parent
+ Container1
+ true
+
+
+ string
+ ArcLabel.Text
+ Arc
+ true
+
+
+ VerticalAlignment
+ ArcLabel.VerticalAlignment
+ 0
+ true
+
+
+ float
+ ArcLabel.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ ArcLabel.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ ArcLabel.X Units
+ 6
+ true
+
+
+ float
+ ArcLabel.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ ArcLabel.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ ArcLabel.Y Units
+ 1
+ true
+
+
+ ColorCategory
+ CircleLabel.ColorCategoryState
+ White
+ true
+
+
+ int
+ CircleLabel.FontSize
+ 24
+ true
+
+
+ HorizontalAlignment
+ CircleLabel.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ CircleLabel.Parent
+ Container1
+ true
+
+
+ string
+ CircleLabel.Text
+ Circle (filled)
+ true
+
+
+ VerticalAlignment
+ CircleLabel.VerticalAlignment
+ 0
+ true
+
+
+ float
+ CircleLabel.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ CircleLabel.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ CircleLabel.X Units
+ 6
+ true
+
+
+ float
+ CircleLabel.Y
+ 20
+ true
+
+
+ VerticalAlignment
+ CircleLabel.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ CircleLabel.Y Units
+ 1
+ true
+
+
+ int
+ CircleOutlined.Blue
+ 255
+ true
+
+
+ int
+ CircleOutlined.Green
+ 107
+ true
+
+
+ bool
+ CircleOutlined.IsFilled
+ false
+ true
+
+
+ string
+ CircleOutlined.Parent
+ Container1
+ true
+
+
+ int
+ CircleOutlined.Red
+ 0
+ true
+
+
+ float
+ CircleOutlined.StrokeWidth
+ 6
+ true
+
+
+ float
+ CircleOutlined.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ CircleOutlined.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ CircleOutlined.X Units
+ 6
+ true
+
+
+ float
+ CircleOutlined.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ CircleOutlined.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ CircleOutlined.Y Units
+ 1
+ true
+
+
+ ColorCategory
+ CircleOutlinedLabel.ColorCategoryState
+ White
+ true
+
+
+ int
+ CircleOutlinedLabel.FontSize
+ 24
+ true
+
+
+ HorizontalAlignment
+ CircleOutlinedLabel.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ CircleOutlinedLabel.Parent
+ Container1
+ true
+
+
+ string
+ CircleOutlinedLabel.Text
+ Circle (outlined)
+ true
+
+
+ VerticalAlignment
+ CircleOutlinedLabel.VerticalAlignment
+ 0
+ true
+
+
+ float
+ CircleOutlinedLabel.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ CircleOutlinedLabel.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ CircleOutlinedLabel.X Units
+ 6
+ true
+
+
+ float
+ CircleOutlinedLabel.Y
+ 20
+ true
+
+
+ VerticalAlignment
+ CircleOutlinedLabel.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ CircleOutlinedLabel.Y Units
+ 1
+ true
+
+
+ int
+ ColoredCircleInstance.Blue
+ 0
+ true
+
+
+ int
+ ColoredCircleInstance.Green
+ 0
+ true
+
+
+ string
+ ColoredCircleInstance.Parent
+ Container1
+ true
+
+
+ int
+ ColoredCircleInstance.Red
+ 255
+ true
+
+
+ float
+ ColoredCircleInstance.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ ColoredCircleInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ ColoredCircleInstance.X Units
+ 6
+ true
+
+
+ float
+ ColoredCircleInstance.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ ColoredCircleInstance.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ ColoredCircleInstance.Y Units
+ 1
+ true
+
+
+ int
+ ColoredCircleInstance1.Blue
+ 0
+ true
+
+
+ int
+ ColoredCircleInstance1.Blue1
+ 0
+ true
+
+
+ int
+ ColoredCircleInstance1.Blue2
+ 255
+ true
+
+
+ int
+ ColoredCircleInstance1.Green
+ 0
+ true
+
+
+ int
+ ColoredCircleInstance1.Green2
+ 0
+ true
+
+
+ string
+ ColoredCircleInstance1.Parent
+ Container2
+ true
+
+
+ int
+ ColoredCircleInstance1.Red
+ 255
+ true
+
+
+ int
+ ColoredCircleInstance1.Red1
+ 0
+ true
+
+
+ bool
+ ColoredCircleInstance1.UseGradient
+ true
+ true
+
+
+ float
+ ColoredCircleInstance1.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ ColoredCircleInstance1.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ ColoredCircleInstance1.X Units
+ 6
+ true
+
+
+ float
+ ColoredCircleInstance1.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ ColoredCircleInstance1.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ ColoredCircleInstance1.Y Units
+ 1
+ true
+
+
+ float
+ ColoredRectangleInstance.CornerRadius
+ 20
+ true
+
+
+ float
+ ColoredRectangleInstance.Height
+ 160
+ true
+
+
+ string
+ ColoredRectangleInstance.Parent
+ Container2
+ true
+
+
+ float
+ ColoredRectangleInstance.Width
+ 175
+ true
+
+
+ DimensionUnitType
+ ColoredRectangleInstance.Width Units
+ 0
+ true
+
+
+ float
+ ColoredRectangleInstance.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ ColoredRectangleInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ ColoredRectangleInstance.X Units
+ 6
+ true
+
+
+ float
+ ColoredRectangleInstance.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ ColoredRectangleInstance.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ ColoredRectangleInstance.Y Units
+ 1
+ true
+
+
+ ChildrenLayout
+ Container1.Children Layout
+ 1
+ true
+
+
+ float
+ Container1.Height
+ -20
+ true
+
+
+ DimensionUnitType
+ Container1.Height Units
+ 2
+ true
+
+
+ float
+ Container1.Width
+ 300
+ true
+
+
+ DimensionUnitType
+ Container1.Width Units
+ 0
+ true
+
+
+ float
+ Container1.X
+ 10
+ true
+
+
+ HorizontalAlignment
+ Container1.X Origin
+ 0
+ true
+
+
+ PositionUnitType
+ Container1.X Units
+ 0
+ true
+
+
+ float
+ Container1.Y
+ 10
+ true
+
+
+ VerticalAlignment
+ Container1.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ Container1.Y Units
+ 1
+ true
+
+
+ ChildrenLayout
+ Container2.Children Layout
+ 1
+ true
+
+
+ float
+ Container2.Height
+ -20
+ true
+
+
+ DimensionUnitType
+ Container2.Height Units
+ 2
+ true
+
+
+ float
+ Container2.Width
+ 300
+ true
+
+
+ float
+ Container2.X
+ 311
+ true
+
+
+ float
+ Container2.Y
+ 10
+ true
+
+
+ ColorCategory
+ RectangleLabel.ColorCategoryState
+ White
+ true
+
+
+ int
+ RectangleLabel.FontSize
+ 24
+ true
+
+
+ HorizontalAlignment
+ RectangleLabel.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ RectangleLabel.Parent
+ Container1
+ true
+
+
+ string
+ RectangleLabel.Text
+ Rounded Rectangle (Filled)
+ true
+
+
+ VerticalAlignment
+ RectangleLabel.VerticalAlignment
+ 0
+ true
+
+
+ float
+ RectangleLabel.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ RectangleLabel.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ RectangleLabel.X Units
+ 6
+ true
+
+
+ float
+ RectangleLabel.Y
+ 20
+ true
+
+
+ VerticalAlignment
+ RectangleLabel.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ RectangleLabel.Y Units
+ 1
+ true
+
+
+ ColorCategory
+ RectangleLabel1.ColorCategoryState
+ White
+ true
+
+
+ int
+ RectangleLabel1.FontSize
+ 24
+ true
+
+
+ HorizontalAlignment
+ RectangleLabel1.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ RectangleLabel1.Parent
+ Container2
+ true
+
+
+ string
+ RectangleLabel1.Text
+ Rounded Rectangle
+(Outlined)
+ true
+
+
+ VerticalAlignment
+ RectangleLabel1.VerticalAlignment
+ 0
+ true
+
+
+ float
+ RectangleLabel1.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ RectangleLabel1.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ RectangleLabel1.X Units
+ 6
+ true
+
+
+ float
+ RectangleLabel1.Y
+ 20
+ true
+
+
+ VerticalAlignment
+ RectangleLabel1.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ RectangleLabel1.Y Units
+ 1
+ true
+
+
+ ColorCategory
+ RectangleLabel2.ColorCategoryState
+ White
+ true
+
+
+ int
+ RectangleLabel2.FontSize
+ 24
+ true
+
+
+ HorizontalAlignment
+ RectangleLabel2.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ RectangleLabel2.Parent
+ Container2
+ true
+
+
+ string
+ RectangleLabel2.Text
+ Gradient Effect
+ true
+
+
+ VerticalAlignment
+ RectangleLabel2.VerticalAlignment
+ 0
+ true
+
+
+ float
+ RectangleLabel2.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ RectangleLabel2.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ RectangleLabel2.X Units
+ 6
+ true
+
+
+ float
+ RectangleLabel2.Y
+ 20
+ true
+
+
+ VerticalAlignment
+ RectangleLabel2.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ RectangleLabel2.Y Units
+ 1
+ true
+
+
+ ColorCategory
+ RectangleLabel3.ColorCategoryState
+ White
+ true
+
+
+ int
+ RectangleLabel3.FontSize
+ 24
+ true
+
+
+ HorizontalAlignment
+ RectangleLabel3.HorizontalAlignment
+ 1
+ true
+
+
+ string
+ RectangleLabel3.Parent
+ Container2
+ true
+
+
+ string
+ RectangleLabel3.Text
+ Dropshadow Effect
+ true
+
+
+ VerticalAlignment
+ RectangleLabel3.VerticalAlignment
+ 0
+ true
+
+
+ float
+ RectangleLabel3.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ RectangleLabel3.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ RectangleLabel3.X Units
+ 6
+ true
+
+
+ float
+ RectangleLabel3.Y
+ 20
+ true
+
+
+ VerticalAlignment
+ RectangleLabel3.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ RectangleLabel3.Y Units
+ 1
+ true
+
+
+ int
+ RoundedRectangleInstance.Blue
+ 255
+ true
+
+
+ float
+ RoundedRectangleInstance.CornerRadius
+ 20
+ true
+
+
+ int
+ RoundedRectangleInstance.Green
+ 0
+ true
+
+
+ string
+ RoundedRectangleInstance.Parent
+ Container1
+ true
+
+
+ int
+ RoundedRectangleInstance.Red
+ 51
+ true
+
+
+ float
+ RoundedRectangleInstance.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ RoundedRectangleInstance.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ RoundedRectangleInstance.X Units
+ 6
+ true
+
+
+ float
+ RoundedRectangleInstance.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ RoundedRectangleInstance.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ RoundedRectangleInstance.Y Units
+ 1
+ true
+
+
+ int
+ RoundedRectangleInstance1.Blue
+ 255
+ true
+
+
+ float
+ RoundedRectangleInstance1.CornerRadius
+ 20
+ true
+
+
+ int
+ RoundedRectangleInstance1.Green
+ 0
+ true
+
+
+ bool
+ RoundedRectangleInstance1.IsFilled
+ false
+ true
+
+
+ string
+ RoundedRectangleInstance1.Parent
+ Container2
+ true
+
+
+ int
+ RoundedRectangleInstance1.Red
+ 51
+ true
+
+
+ float
+ RoundedRectangleInstance1.StrokeWidth
+ 8
+ true
+
+
+ float
+ RoundedRectangleInstance1.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ RoundedRectangleInstance1.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ RoundedRectangleInstance1.X Units
+ 6
+ true
+
+
+ float
+ RoundedRectangleInstance1.Y
+ 0
+ true
+
+
+ VerticalAlignment
+ RoundedRectangleInstance1.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ RoundedRectangleInstance1.Y Units
+ 1
+ true
+
+
+ int
+ RoundedRectangleInstance2.Blue
+ 0
+ true
+
+
+ float
+ RoundedRectangleInstance2.CornerRadius
+ 20
+ true
+
+
+ float
+ RoundedRectangleInstance2.DropshadowBlurX
+ 16
+ true
+
+
+ float
+ RoundedRectangleInstance2.DropshadowBlurY
+ 16
+ true
+
+
+ float
+ RoundedRectangleInstance2.DropshadowOffsetX
+ 8
+ true
+
+
+ float
+ RoundedRectangleInstance2.DropshadowOffsetY
+ 8
+ true
+
+
+ int
+ RoundedRectangleInstance2.Green
+ 142
+ true
+
+
+ bool
+ RoundedRectangleInstance2.HasDropshadow
+ true
+ true
+
+
+ string
+ RoundedRectangleInstance2.Parent
+ ColoredRectangleInstance
+ true
+
+
+ int
+ RoundedRectangleInstance2.Red
+ 255
+ true
+
+
+ float
+ RoundedRectangleInstance2.X
+ 0
+ true
+
+
+ HorizontalAlignment
+ RoundedRectangleInstance2.X Origin
+ 1
+ true
+
+
+ PositionUnitType
+ RoundedRectangleInstance2.X Units
+ 6
+ true
+
+
+ float
+ RoundedRectangleInstance2.Y
+ 24
+ true
+
+
+ VerticalAlignment
+ RoundedRectangleInstance2.Y Origin
+ 0
+ true
+
+
+ PositionUnitType
+ RoundedRectangleInstance2.Y Units
+ 1
+ true
+
+
+
+ Container1
+ Container
+ false
+ true
+
+
+ ArcLabel
+ Text
+ false
+
+
+ ArcInstance
+ Arc
+ false
+
+
+ CircleLabel
+ Text
+ false
+
+
+ ColoredCircleInstance
+ ColoredCircle
+ false
+
+
+ CircleOutlinedLabel
+ Text
+ false
+
+
+ CircleOutlined
+ ColoredCircle
+ false
+
+
+ RectangleLabel
+ Text
+ false
+
+
+ RectangleLabel1
+ Text
+ false
+
+
+ RoundedRectangleInstance1
+ RoundedRectangle
+ false
+
+
+ RectangleLabel2
+ Text
+ false
+
+
+ ColoredCircleInstance1
+ ColoredCircle
+ false
+
+
+ RectangleLabel3
+ Text
+ false
+
+
+ RoundedRectangleInstance2
+ RoundedRectangle
+ false
+
+
+ RoundedRectangleInstance
+ RoundedRectangle
+ false
+
+
+ Container2
+ Container
+ false
+
+
+ ColoredRectangleInstance
+ RoundedRectangle
+ false
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Arc.gutx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Arc.gutx
new file mode 100644
index 000000000..b3f9395a3
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Arc.gutx
@@ -0,0 +1,327 @@
+
+
+ Arc
+
+ Default
+
+ int
+ Alpha
+ 255
+ Rendering
+ true
+
+
+ int
+ Alpha1
+ 255
+ Rendering
+ true
+
+
+ int
+ Alpha2
+ 255
+ Rendering
+ true
+
+
+ int
+ Blue
+ 255
+ Rendering
+ true
+
+
+ int
+ Blue1
+ 255
+ Rendering
+ true
+
+
+ int
+ Blue2
+ 0
+ Rendering
+ true
+
+
+ float
+ GradientInnerRadius
+ 50
+ Rendering
+ true
+
+
+ DimensionUnitType
+ GradientInnerRadiusUnits
+ 0
+ Rendering
+ true
+
+
+ float
+ GradientOuterRadius
+ 100
+ Rendering
+ true
+
+
+ DimensionUnitType
+ GradientOuterRadiusUnits
+ 0
+ Rendering
+ true
+
+
+ GradientType
+ GradientType
+ 0
+ Rendering
+ true
+
+
+ float
+ GradientX1
+ 0
+ Rendering
+ true
+
+
+ PositionUnitType
+ GradientX1Units
+ 0
+ Rendering
+ true
+
+
+ float
+ GradientX2
+ 100
+ Rendering
+ true
+
+
+ PositionUnitType
+ GradientX2Units
+ 0
+ Rendering
+ true
+
+
+ float
+ GradientY1
+ 0
+ Rendering
+ true
+
+
+ PositionUnitType
+ GradientY1Units
+ 1
+ Rendering
+ true
+
+
+ float
+ GradientY2
+ 100
+ Rendering
+ true
+
+
+ PositionUnitType
+ GradientY2Units
+ 1
+ Rendering
+ true
+
+
+ int
+ Green
+ 255
+ Rendering
+ true
+
+
+ int
+ Green1
+ 255
+ Rendering
+ true
+
+
+ int
+ Green2
+ 255
+ Rendering
+ true
+
+
+ string
+ Guide
+ Position
+ true
+
+
+ float
+ Height
+ 100
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 0
+ Dimensions
+ true
+
+
+ bool
+ IgnoredByParentSize
+ false
+ Parent
+ true
+
+
+ bool
+ IsEndRounded
+ false
+ Arc
+ true
+
+
+ string
+ Parent
+ Parent
+ true
+
+
+ int
+ Red
+ 255
+ Rendering
+ true
+
+
+ int
+ Red1
+ 255
+ Rendering
+ true
+
+
+ int
+ Red2
+ 255
+ Rendering
+ true
+
+
+ float
+ StartAngle
+ 0
+ Arc
+ true
+
+
+ State
+ State
+ Default
+ false
+
+
+ float
+ SweepAngle
+ 90
+ Arc
+ true
+
+
+ float
+ Thickness
+ 10
+ Arc
+ true
+
+
+ bool
+ UseGradient
+ false
+ Rendering
+ true
+
+
+ bool
+ Visible
+ true
+ true
+
+
+ float
+ Width
+ 100
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 0
+ Dimensions
+ true
+
+
+ float
+ X
+ 0
+ Position
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ X Units
+ 0
+ Position
+ true
+
+
+ float
+ Y
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ Y Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ Y Units
+ 1
+ Position
+ true
+
+
+ string
+ VariableReferences
+ References
+ false
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Canvas.gutx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Canvas.gutx
new file mode 100644
index 000000000..5bd78091c
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Canvas.gutx
@@ -0,0 +1,131 @@
+
+
+ Canvas
+
+ Default
+
+ int
+ Alpha
+ 255
+ Rendering
+ true
+
+
+ bool
+ Clips Children
+ false
+ Children
+ true
+
+
+ string
+ Guide
+ Position
+ true
+
+
+ float
+ Height
+ 100
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 0
+ Dimensions
+ true
+
+
+ bool
+ IgnoredByParentSize
+ false
+ Parent
+ true
+
+
+ string
+ Parent
+ Parent
+ true
+
+
+ State
+ State
+ Default
+ false
+
+
+ bool
+ Visible
+ true
+ true
+
+
+ float
+ Width
+ 100
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 0
+ Dimensions
+ true
+
+
+ float
+ X
+ 0
+ Position
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ X Units
+ 0
+ Position
+ true
+
+
+ float
+ Y
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ Y Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ Y Units
+ 1
+ Position
+ true
+
+
+ string
+ VariableReferences
+ References
+ false
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Circle.gutx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Circle.gutx
new file mode 100644
index 000000000..edb65bd2b
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Circle.gutx
@@ -0,0 +1,164 @@
+
+
+ Circle
+
+ Default
+
+ int
+ Alpha
+ 255
+ Rendering
+ true
+
+
+ int
+ Blue
+ 255
+ Rendering
+ true
+
+
+ bool
+ ExposeChildrenEvents
+ false
+ Behavior
+ true
+
+
+ int
+ Green
+ 255
+ Rendering
+ true
+
+
+ string
+ Guide
+ Position
+ true
+
+
+ bool
+ HasEvents
+ false
+ Behavior
+ true
+
+
+ float
+ Height
+ 16
+ true
+ true
+
+
+ bool
+ IgnoredByParentSize
+ false
+ Parent
+ true
+
+
+ bool
+ IsXamarinFormsControl
+ false
+ true
+
+
+ string
+ Parent
+ Parent
+ true
+
+
+ float
+ Radius
+ 16
+ true
+
+
+ int
+ Red
+ 255
+ Rendering
+ true
+
+
+ float
+ Rotation
+ 0
+ Flip and Rotation
+ false
+
+
+ State
+ State
+ Default
+ false
+
+
+ bool
+ Visible
+ true
+ true
+
+
+ float
+ Width
+ 16
+ true
+ true
+
+
+ float
+ X
+ 0
+ Position
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ X Units
+ 0
+ Position
+ true
+
+
+ float
+ Y
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ Y Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ Y Units
+ 1
+ Position
+ true
+
+
+ string
+ VariableReferences
+ References
+ false
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/ColoredCircle.gutx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/ColoredCircle.gutx
new file mode 100644
index 000000000..ca5f8565d
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/ColoredCircle.gutx
@@ -0,0 +1,425 @@
+
+
+ ColoredCircle
+
+ Default
+
+ int
+ Alpha
+ 255
+ Rendering
+ true
+
+
+ int
+ Alpha1
+ 255
+ Rendering
+ true
+
+
+ int
+ Alpha2
+ 255
+ Rendering
+ true
+
+
+ Blend
+ Blend
+ 0
+ Rendering
+ true
+
+
+ int
+ Blue
+ 255
+ Rendering
+ true
+
+
+ int
+ Blue1
+ 255
+ Rendering
+ true
+
+
+ int
+ Blue2
+ 0
+ Rendering
+ true
+
+
+ int
+ DropshadowAlpha
+ 255
+ Dropshadow
+ true
+
+
+ int
+ DropshadowBlue
+ 0
+ Dropshadow
+ true
+
+
+ float
+ DropshadowBlurX
+ 0
+ Dropshadow
+ true
+
+
+ float
+ DropshadowBlurY
+ 3
+ Dropshadow
+ true
+
+
+ int
+ DropshadowGreen
+ 0
+ Dropshadow
+ true
+
+
+ float
+ DropshadowOffsetX
+ 0
+ Dropshadow
+ true
+
+
+ float
+ DropshadowOffsetY
+ 3
+ Dropshadow
+ true
+
+
+ int
+ DropshadowRed
+ 0
+ Dropshadow
+ true
+
+
+ bool
+ ExposeChildrenEvents
+ false
+ Behavior
+ true
+
+
+ bool
+ FlipHorizontal
+ false
+ Flip and Rotation
+ true
+
+
+ bool
+ FlipVertical
+ false
+ Flip and Rotation
+ true
+
+
+ float
+ GradientInnerRadius
+ 50
+ Rendering
+ true
+
+
+ DimensionUnitType
+ GradientInnerRadiusUnits
+ 0
+ Rendering
+ true
+
+
+ float
+ GradientOuterRadius
+ 100
+ Rendering
+ true
+
+
+ DimensionUnitType
+ GradientOuterRadiusUnits
+ 0
+ Rendering
+ true
+
+
+ GradientType
+ GradientType
+ 0
+ Rendering
+ true
+
+
+ float
+ GradientX1
+ 0
+ Rendering
+ true
+
+
+ PositionUnitType
+ GradientX1Units
+ 0
+ Rendering
+ true
+
+
+ float
+ GradientX2
+ 100
+ Rendering
+ true
+
+
+ PositionUnitType
+ GradientX2Units
+ 0
+ Rendering
+ true
+
+
+ float
+ GradientY1
+ 0
+ Rendering
+ true
+
+
+ PositionUnitType
+ GradientY1Units
+ 1
+ Rendering
+ true
+
+
+ float
+ GradientY2
+ 100
+ Rendering
+ true
+
+
+ PositionUnitType
+ GradientY2Units
+ 1
+ Rendering
+ true
+
+
+ int
+ Green
+ 255
+ Rendering
+ true
+
+
+ int
+ Green1
+ 255
+ Rendering
+ true
+
+
+ int
+ Green2
+ 255
+ Rendering
+ true
+
+
+ string
+ Guide
+ Position
+ true
+
+
+ bool
+ HasDropshadow
+ false
+ Dropshadow
+ true
+
+
+ bool
+ HasEvents
+ false
+ Behavior
+ true
+
+
+ float
+ Height
+ 100
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 0
+ Dimensions
+ true
+
+
+ bool
+ IgnoredByParentSize
+ false
+ Parent
+ true
+
+
+ bool
+ IsFilled
+ true
+ Stroke and Fill
+ true
+
+
+ string
+ Parent
+ Parent
+ true
+
+
+ int
+ Red
+ 255
+ Rendering
+ true
+
+
+ int
+ Red1
+ 255
+ Rendering
+ true
+
+
+ int
+ Red2
+ 255
+ Rendering
+ true
+
+
+ float
+ Rotation
+ 0
+ Flip and Rotation
+ true
+
+
+ State
+ State
+ Default
+ false
+
+
+ float
+ StrokeWidth
+ 2
+ Stroke and Fill
+ true
+
+
+ bool
+ UseGradient
+ false
+ Rendering
+ true
+
+
+ bool
+ Visible
+ true
+ true
+
+
+ float
+ Width
+ 100
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 0
+ Dimensions
+ true
+
+
+ bool
+ Wrap
+ false
+ Source
+ true
+
+
+ float
+ X
+ 0
+ Position
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ X Units
+ 0
+ Position
+ true
+
+
+ float
+ Y
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ Y Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ Y Units
+ 1
+ Position
+ true
+
+
+ string
+ VariableReferences
+ References
+ false
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/ColoredRectangle.gutx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/ColoredRectangle.gutx
new file mode 100644
index 000000000..b95b92f0b
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/ColoredRectangle.gutx
@@ -0,0 +1,473 @@
+
+
+ ColoredRectangle
+
+ Default
+
+ int
+ Alpha
+ 255
+ Rendering
+ true
+
+
+ Blend
+ Blend
+ 0
+ Rendering
+ true
+
+
+ int
+ Blue
+ 255
+ Rendering
+ true
+
+
+ ColorCategory
+ ColorCategoryState
+ false
+
+
+ bool
+ ExposeChildrenEvents
+ false
+ Behavior
+ true
+
+
+ int
+ Green
+ 255
+ Rendering
+ true
+
+
+ string
+ Guide
+ Position
+ true
+
+
+ bool
+ HasEvents
+ false
+ Behavior
+ true
+
+
+ float
+ Height
+ 50
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 0
+ Dimensions
+ true
+
+
+ bool
+ IgnoredByParentSize
+ false
+ Parent
+ true
+
+
+ bool
+ IsXamarinFormsControl
+ false
+ true
+
+
+ string
+ Parent
+ Parent
+ true
+
+
+ int
+ Red
+ 255
+ Rendering
+ true
+
+
+ float
+ Rotation
+ 0
+ Flip and Rotation
+ true
+
+
+ State
+ State
+ Default
+ false
+
+
+ bool
+ Visible
+ true
+ true
+
+
+ float
+ Width
+ 50
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 0
+ Dimensions
+ true
+
+
+ float
+ X
+ 0
+ Position
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ X Units
+ 0
+ Position
+ true
+
+
+ float
+ Y
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ Y Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ Y Units
+ 1
+ Position
+ true
+
+
+ string
+ VariableReferences
+ References
+ false
+ false
+
+
+
+
+ ColorCategory
+ false
+
+ Black
+
+ int
+ Blue
+ 0
+ true
+
+
+ int
+ Green
+ 0
+ true
+
+
+ int
+ Red
+ 0
+ true
+
+
+
+ DarkGray
+
+ int
+ Blue
+ 70
+ Rendering
+ true
+
+
+ int
+ Green
+ 70
+ Rendering
+ true
+
+
+ int
+ Red
+ 70
+ Rendering
+ true
+
+
+
+ Gray
+
+ int
+ Blue
+ 130
+ Rendering
+ true
+
+
+ int
+ Green
+ 130
+ Rendering
+ true
+
+
+ int
+ Red
+ 130
+ Rendering
+ true
+
+
+
+ LightGray
+
+ int
+ Blue
+ 170
+ Rendering
+ true
+
+
+ int
+ Green
+ 170
+ Rendering
+ true
+
+
+ int
+ Red
+ 170
+ Rendering
+ true
+
+
+
+ White
+
+ int
+ Blue
+ 255
+ Rendering
+ true
+
+
+ int
+ Green
+ 255
+ Rendering
+ true
+
+
+ int
+ Red
+ 255
+ Rendering
+ true
+
+
+
+ PrimaryDark
+
+ int
+ Blue
+ 137
+ Rendering
+ true
+
+
+ int
+ Green
+ 120
+ Rendering
+ true
+
+
+ int
+ Red
+ 4
+ Rendering
+ true
+
+
+
+ Primary
+
+ int
+ Blue
+ 177
+ Rendering
+ true
+
+
+ int
+ Green
+ 159
+ Rendering
+ true
+
+
+ int
+ Red
+ 6
+ Rendering
+ true
+
+
+
+ PrimaryLight
+
+ int
+ Blue
+ 193
+ Rendering
+ true
+
+
+ int
+ Green
+ 180
+ Rendering
+ true
+
+
+ int
+ Red
+ 74
+ Rendering
+ true
+
+
+
+ Success
+
+ int
+ Blue
+ 48
+ Rendering
+ true
+
+
+ int
+ Green
+ 167
+ Rendering
+ true
+
+
+ int
+ Red
+ 62
+ Rendering
+ true
+
+
+
+ Warning
+
+ int
+ Blue
+ 25
+ Rendering
+ true
+
+
+ int
+ Green
+ 171
+ Rendering
+ true
+
+
+ int
+ Red
+ 232
+ Rendering
+ true
+
+
+
+ Danger
+
+ int
+ Blue
+ 41
+ Rendering
+ true
+
+
+ int
+ Green
+ 18
+ Rendering
+ true
+
+
+ int
+ Red
+ 212
+ Rendering
+ true
+
+
+
+ Accent
+
+ int
+ Blue
+ 138
+ Rendering
+ true
+
+
+ int
+ Green
+ 48
+ Rendering
+ true
+
+
+ int
+ Red
+ 140
+ Rendering
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Component.gutx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Component.gutx
new file mode 100644
index 000000000..75ed9e0b7
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Component.gutx
@@ -0,0 +1,20 @@
+
+
+ Component
+
+ Default
+
+ bool
+ IsXamarinFormsControl
+ false
+ true
+
+
+ State
+ State
+ Default
+ true
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Container.gutx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Container.gutx
new file mode 100644
index 000000000..29c533dad
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Container.gutx
@@ -0,0 +1,193 @@
+
+
+ Container
+
+ Default
+
+ int
+ AutoGridHorizontalCells
+ 4
+ Children
+ true
+
+
+ int
+ AutoGridVerticalCells
+ 4
+ Children
+ true
+
+
+ ChildrenLayout
+ Children Layout
+ 0
+ Children
+ true
+
+
+ bool
+ Clips Children
+ false
+ Children
+ true
+
+
+ string
+ Contained Type
+ Children
+ true
+
+
+ bool
+ ExposeChildrenEvents
+ true
+ Behavior
+ true
+
+
+ bool
+ FlipHorizontal
+ false
+ Flip and Rotation
+ true
+
+
+ string
+ Guide
+ Position
+ true
+
+
+ bool
+ HasEvents
+ true
+ Behavior
+ true
+
+
+ float
+ Height
+ 150
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 0
+ Dimensions
+ true
+
+
+ bool
+ IgnoredByParentSize
+ false
+ Parent
+ true
+
+
+ bool
+ IsXamarinFormsControl
+ false
+ true
+
+
+ string
+ Parent
+ Parent
+ true
+
+
+ float
+ Rotation
+ 0
+ Flip and Rotation
+ false
+
+
+ float
+ StackSpacing
+ 0
+ Children
+ true
+
+
+ bool
+ Visible
+ true
+ true
+
+
+ float
+ Width
+ 150
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 0
+ Dimensions
+ true
+
+
+ bool
+ Wraps Children
+ false
+ Children
+ true
+
+
+ float
+ X
+ 0
+ Position
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ X Units
+ 0
+ Position
+ true
+
+
+ float
+ Y
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ Y Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ Y Units
+ 1
+ Position
+ true
+
+
+ string
+ VariableReferences
+ References
+ false
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/LottieAnimation.gutx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/LottieAnimation.gutx
new file mode 100644
index 000000000..4efccfe97
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/LottieAnimation.gutx
@@ -0,0 +1,209 @@
+
+
+ LottieAnimation
+
+ Default
+
+ int
+ Alpha
+ 255
+ Rendering
+ true
+
+
+ bool
+ Animate
+ false
+ Animation
+ true
+
+
+ Blend
+ Blend
+ 0
+ Rendering
+ true
+
+
+ int
+ Blue
+ 255
+ Rendering
+ true
+
+
+ bool
+ ExposeChildrenEvents
+ false
+ Behavior
+ true
+
+
+ bool
+ FlipHorizontal
+ false
+ Flip and Rotation
+ true
+
+
+ bool
+ FlipVertical
+ false
+ Flip and Rotation
+ true
+
+
+ int
+ Green
+ 255
+ Rendering
+ true
+
+
+ string
+ Guide
+ Position
+ true
+
+
+ bool
+ HasEvents
+ false
+ Behavior
+ true
+
+
+ float
+ Height
+ 100
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 0
+ Dimensions
+ true
+
+
+ bool
+ IgnoredByParentSize
+ false
+ Parent
+ true
+
+
+ string
+ Parent
+ Parent
+ true
+
+
+ int
+ Red
+ 255
+ Rendering
+ true
+
+
+ float
+ Rotation
+ 0
+ Flip and Rotation
+ true
+
+
+ true
+ string
+ SourceFile
+
+ true
+
+
+ State
+ State
+ Default
+ false
+
+
+ bool
+ Visible
+ true
+ true
+
+
+ float
+ Width
+ 100
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 0
+ Dimensions
+ true
+
+
+ float
+ X
+ 0
+ Position
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ X Units
+ 0
+ Position
+ true
+
+
+ float
+ Y
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ Y Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ Y Units
+ 1
+ Position
+ true
+
+
+ string
+ AnimationFrames
+ Animation
+ false
+ false
+
+
+
+ string
+ VariableReferences
+ References
+ false
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/NineSlice.gutx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/NineSlice.gutx
new file mode 100644
index 000000000..89b91f367
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/NineSlice.gutx
@@ -0,0 +1,812 @@
+
+
+ NineSlice
+
+ Default
+
+ int
+ Alpha
+ 255
+ Rendering
+ true
+
+
+ Blend
+ Blend
+ 0
+ Rendering
+ true
+
+
+ int
+ Blue
+ 255
+ Rendering
+ true
+
+
+ ColorCategory
+ ColorCategoryState
+ false
+
+
+ float?
+ CustomFrameTextureCoordinateWidth
+ Source
+ true
+
+
+ bool
+ ExposeChildrenEvents
+ false
+ Behavior
+ true
+
+
+ int
+ Green
+ 255
+ Rendering
+ true
+
+
+ string
+ Guide
+ Position
+ true
+
+
+ bool
+ HasEvents
+ false
+ Behavior
+ true
+
+
+ float
+ Height
+ 0
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 2
+ Dimensions
+ true
+
+
+ bool
+ IgnoredByParentSize
+ false
+ Parent
+ true
+
+
+ bool
+ IsXamarinFormsControl
+ false
+ true
+
+
+ string
+ Parent
+ Parent
+ true
+
+
+ int
+ Red
+ 255
+ Rendering
+ true
+
+
+ float
+ Rotation
+ 0
+ Flip and Rotation
+ false
+
+
+ true
+ string
+ SourceFile
+ UISpriteSheet.png
+ true
+
+
+ State
+ State
+ Default
+ false
+
+
+ StyleCategory
+ StyleCategoryState
+ false
+
+
+ TextureAddress
+ Texture Address
+ 1
+ Source
+ true
+
+
+ int
+ Texture Height
+ 24
+ Source
+ true
+
+
+ int
+ Texture Left
+ 0
+ Source
+ true
+
+
+ int
+ Texture Top
+ 48
+ Source
+ true
+
+
+ int
+ Texture Width
+ 24
+ Source
+ true
+
+
+ bool
+ Visible
+ true
+ true
+
+
+ float
+ Width
+ 0
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 2
+ Dimensions
+ true
+
+
+ float
+ X
+ 0
+ Position
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 1
+ Position
+ true
+
+
+ PositionUnitType
+ X Units
+ 6
+ Position
+ true
+
+
+ float
+ Y
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ Y Origin
+ 1
+ Position
+ true
+
+
+ PositionUnitType
+ Y Units
+ 7
+ Position
+ true
+
+
+ string
+ AnimationFrames
+ false
+ false
+
+
+
+ string
+ VariableReferences
+ References
+ false
+ false
+
+
+
+
+ ColorCategory
+ false
+
+ Black
+
+ int
+ Blue
+ 0
+ true
+
+
+ int
+ Green
+ 0
+ true
+
+
+ int
+ Red
+ 0
+ true
+
+
+
+ DarkGray
+
+ int
+ Blue
+ 70
+ Rendering
+ true
+
+
+ int
+ Green
+ 70
+ Rendering
+ true
+
+
+ int
+ Red
+ 70
+ Rendering
+ true
+
+
+
+ Gray
+
+ int
+ Blue
+ 130
+ Rendering
+ true
+
+
+ int
+ Green
+ 130
+ Rendering
+ true
+
+
+ int
+ Red
+ 130
+ Rendering
+ true
+
+
+
+ LightGray
+
+ int
+ Blue
+ 170
+ Rendering
+ true
+
+
+ int
+ Green
+ 170
+ Rendering
+ true
+
+
+ int
+ Red
+ 170
+ Rendering
+ true
+
+
+
+ White
+
+ int
+ Blue
+ 255
+ Rendering
+ true
+
+
+ int
+ Green
+ 255
+ Rendering
+ true
+
+
+ int
+ Red
+ 255
+ Rendering
+ true
+
+
+
+ PrimaryDark
+
+ int
+ Blue
+ 137
+ Rendering
+ true
+
+
+ int
+ Green
+ 120
+ Rendering
+ true
+
+
+ int
+ Red
+ 4
+ Rendering
+ true
+
+
+
+ Primary
+
+ int
+ Blue
+ 177
+ Rendering
+ true
+
+
+ int
+ Green
+ 159
+ Rendering
+ true
+
+
+ int
+ Red
+ 6
+ Rendering
+ true
+
+
+
+ PrimaryLight
+
+ int
+ Blue
+ 193
+ Rendering
+ true
+
+
+ int
+ Green
+ 180
+ Rendering
+ true
+
+
+ int
+ Red
+ 74
+ Rendering
+ true
+
+
+
+ Success
+
+ int
+ Blue
+ 48
+ Rendering
+ true
+
+
+ int
+ Green
+ 167
+ Rendering
+ true
+
+
+ int
+ Red
+ 62
+ Rendering
+ true
+
+
+
+ Warning
+
+ int
+ Blue
+ 25
+ Rendering
+ true
+
+
+ int
+ Green
+ 171
+ Rendering
+ true
+
+
+ int
+ Red
+ 232
+ Rendering
+ true
+
+
+
+ Danger
+
+ int
+ Blue
+ 41
+ Rendering
+ true
+
+
+ int
+ Green
+ 18
+ Rendering
+ true
+
+
+ int
+ Red
+ 212
+ Rendering
+ true
+
+
+
+ Accent
+
+ int
+ Blue
+ 138
+ Rendering
+ true
+
+
+ int
+ Green
+ 48
+ Rendering
+ true
+
+
+ int
+ Red
+ 140
+ Rendering
+ true
+
+
+
+
+ StyleCategory
+ false
+
+ Solid
+
+ int
+ Texture Height
+ 24
+ Source
+ true
+
+
+ int
+ Texture Left
+ 0
+ Source
+ true
+
+
+ int
+ Texture Top
+ 48
+ Source
+ true
+
+
+ int
+ Texture Width
+ 24
+ Source
+ true
+
+
+
+ Bordered
+
+ int
+ Texture Height
+ 24
+ true
+
+
+ int
+ Texture Left
+ 24
+ true
+
+
+ int
+ Texture Top
+ 48
+ true
+
+
+ int
+ Texture Width
+ 24
+ true
+
+
+
+ BracketHorizontal
+
+ int
+ Texture Height
+ 24
+ Source
+ true
+
+
+ int
+ Texture Left
+ 72
+ Source
+ true
+
+
+ int
+ Texture Top
+ 72
+ Source
+ true
+
+
+ int
+ Texture Width
+ 24
+ Source
+ true
+
+
+
+ BracketVertical
+
+ int
+ Texture Height
+ 24
+ Source
+ true
+
+
+ int
+ Texture Left
+ 48
+ Source
+ true
+
+
+ int
+ Texture Top
+ 72
+ Source
+ true
+
+
+ int
+ Texture Width
+ 24
+ Source
+ true
+
+
+
+ Tab
+
+ int
+ Texture Height
+ 24
+ Source
+ true
+
+
+ int
+ Texture Left
+ 48
+ Source
+ true
+
+
+ int
+ Texture Top
+ 48
+ Source
+ true
+
+
+ int
+ Texture Width
+ 24
+ Source
+ true
+
+
+
+ TabBordered
+
+ int
+ Texture Height
+ 24
+ Source
+ true
+
+
+ int
+ Texture Left
+ 72
+ Source
+ true
+
+
+ int
+ Texture Top
+ 48
+ Source
+ true
+
+
+ int
+ Texture Width
+ 24
+ Source
+ true
+
+
+
+ Outlined
+
+ int
+ Texture Height
+ 24
+ Source
+ true
+
+
+ int
+ Texture Left
+ 0
+ Source
+ true
+
+
+ int
+ Texture Top
+ 72
+ Source
+ true
+
+
+ int
+ Texture Width
+ 24
+ Source
+ true
+
+
+
+ OutlinedHeavy
+
+ int
+ Texture Height
+ 24
+ Source
+ true
+
+
+ int
+ Texture Left
+ 24
+ Source
+ true
+
+
+ int
+ Texture Top
+ 72
+ Source
+ true
+
+
+ int
+ Texture Width
+ 24
+ Source
+ true
+
+
+
+ Panel
+
+ int
+ Texture Height
+ 24
+ Source
+ true
+
+
+ int
+ Texture Left
+ 96
+ Source
+ true
+
+
+ int
+ Texture Top
+ 48
+ Source
+ true
+
+
+ int
+ Texture Width
+ 24
+ Source
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Polygon.gutx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Polygon.gutx
new file mode 100644
index 000000000..664872dfd
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Polygon.gutx
@@ -0,0 +1,144 @@
+
+
+ Polygon
+
+ Default
+
+ int
+ Alpha
+ 255
+ Rendering
+ true
+
+
+ int
+ Blue
+ 255
+ Rendering
+ true
+
+
+ int
+ Green
+ 255
+ Rendering
+ true
+
+
+ string
+ Guide
+ Position
+ true
+
+
+ bool
+ IgnoredByParentSize
+ false
+ Parent
+ true
+
+
+ bool
+ IsXamarinFormsControl
+ false
+ true
+
+
+ string
+ Parent
+ Parent
+ true
+
+
+ int
+ Red
+ 255
+ Rendering
+ true
+
+
+ float
+ Rotation
+ 0
+ Flip and Rotation
+ false
+
+
+ State
+ State
+ Default
+ false
+
+
+ bool
+ Visible
+ true
+ true
+
+
+ float
+ X
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ X Units
+ 0
+ Position
+ true
+
+
+ float
+ Y
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ Y Units
+ 1
+ Position
+ true
+
+
+ Points
+ Points
+ false
+ false
+
+
+ -32
+ -32
+
+
+ 32
+ -32
+
+
+ 32
+ 32
+
+
+ -32
+ 32
+
+
+ -32
+ -32
+
+
+
+
+ string
+ VariableReferences
+ References
+ false
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Rectangle.gutx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Rectangle.gutx
new file mode 100644
index 000000000..245b4d23c
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Rectangle.gutx
@@ -0,0 +1,172 @@
+
+
+ Rectangle
+
+ Default
+
+ int
+ Alpha
+ 255
+ Rendering
+ true
+
+
+ int
+ Blue
+ 255
+ Rendering
+ true
+
+
+ bool
+ ExposeChildrenEvents
+ false
+ Behavior
+ true
+
+
+ int
+ Green
+ 255
+ Rendering
+ true
+
+
+ string
+ Guide
+ Position
+ true
+
+
+ bool
+ HasEvents
+ false
+ Behavior
+ true
+
+
+ float
+ Height
+ 16
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 0
+ Dimensions
+ true
+
+
+ bool
+ IgnoredByParentSize
+ false
+ Parent
+ true
+
+
+ bool
+ IsXamarinFormsControl
+ false
+ true
+
+
+ string
+ Parent
+ Parent
+ true
+
+
+ int
+ Red
+ 255
+ Rendering
+ true
+
+
+ float
+ Rotation
+ 0
+ Flip and Rotation
+ false
+
+
+ State
+ State
+ Default
+ false
+
+
+ bool
+ Visible
+ true
+ true
+
+
+ float
+ Width
+ 16
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 0
+ Dimensions
+ true
+
+
+ float
+ X
+ 0
+ Position
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ X Units
+ 0
+ Position
+ true
+
+
+ float
+ Y
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ Y Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ Y Units
+ 1
+ Position
+ true
+
+
+ string
+ VariableReferences
+ References
+ false
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/RoundedRectangle.gutx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/RoundedRectangle.gutx
new file mode 100644
index 000000000..6faa834dc
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/RoundedRectangle.gutx
@@ -0,0 +1,390 @@
+
+
+ RoundedRectangle
+
+ Default
+
+ int
+ Alpha
+ 255
+ Rendering
+ true
+
+
+ int
+ Alpha1
+ 255
+ Rendering
+ true
+
+
+ int
+ Alpha2
+ 255
+ Rendering
+ true
+
+
+ int
+ Blue
+ 255
+ Rendering
+ true
+
+
+ int
+ Blue1
+ 255
+ Rendering
+ true
+
+
+ int
+ Blue2
+ 0
+ Rendering
+ true
+
+
+ float
+ CornerRadius
+ 5
+ Dimensions
+ true
+
+
+ int
+ DropshadowAlpha
+ 255
+ Dropshadow
+ true
+
+
+ int
+ DropshadowBlue
+ 0
+ Dropshadow
+ true
+
+
+ float
+ DropshadowBlurX
+ 0
+ Dropshadow
+ true
+
+
+ float
+ DropshadowBlurY
+ 3
+ Dropshadow
+ true
+
+
+ int
+ DropshadowGreen
+ 0
+ Dropshadow
+ true
+
+
+ float
+ DropshadowOffsetX
+ 0
+ Dropshadow
+ true
+
+
+ float
+ DropshadowOffsetY
+ 3
+ Dropshadow
+ true
+
+
+ int
+ DropshadowRed
+ 0
+ Dropshadow
+ true
+
+
+ float
+ GradientInnerRadius
+ 50
+ Rendering
+ true
+
+
+ DimensionUnitType
+ GradientInnerRadiusUnits
+ 0
+ Rendering
+ true
+
+
+ float
+ GradientOuterRadius
+ 100
+ Rendering
+ true
+
+
+ DimensionUnitType
+ GradientOuterRadiusUnits
+ 0
+ Rendering
+ true
+
+
+ GradientType
+ GradientType
+ 0
+ Rendering
+ true
+
+
+ float
+ GradientX1
+ 0
+ Rendering
+ true
+
+
+ PositionUnitType
+ GradientX1Units
+ 0
+ Rendering
+ true
+
+
+ float
+ GradientX2
+ 100
+ Rendering
+ true
+
+
+ PositionUnitType
+ GradientX2Units
+ 0
+ Rendering
+ true
+
+
+ float
+ GradientY1
+ 0
+ Rendering
+ true
+
+
+ PositionUnitType
+ GradientY1Units
+ 1
+ Rendering
+ true
+
+
+ float
+ GradientY2
+ 100
+ Rendering
+ true
+
+
+ PositionUnitType
+ GradientY2Units
+ 1
+ Rendering
+ true
+
+
+ int
+ Green
+ 255
+ Rendering
+ true
+
+
+ int
+ Green1
+ 255
+ Rendering
+ true
+
+
+ int
+ Green2
+ 255
+ Rendering
+ true
+
+
+ string
+ Guide
+ Position
+ true
+
+
+ bool
+ HasDropshadow
+ false
+ Dropshadow
+ true
+
+
+ float
+ Height
+ 100
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 0
+ Dimensions
+ true
+
+
+ bool
+ IgnoredByParentSize
+ false
+ Parent
+ true
+
+
+ bool
+ IsFilled
+ true
+ Stroke and Fill
+ true
+
+
+ string
+ Parent
+ Parent
+ true
+
+
+ int
+ Red
+ 255
+ Rendering
+ true
+
+
+ int
+ Red1
+ 255
+ Rendering
+ true
+
+
+ int
+ Red2
+ 255
+ Rendering
+ true
+
+
+ float
+ Rotation
+ 0
+ Flip and Rotation
+ false
+
+
+ State
+ State
+ Default
+ false
+
+
+ float
+ StrokeWidth
+ 2
+ Stroke and Fill
+ true
+
+
+ bool
+ UseGradient
+ false
+ Rendering
+ true
+
+
+ bool
+ Visible
+ true
+ true
+
+
+ float
+ Width
+ 100
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 0
+ Dimensions
+ true
+
+
+ float
+ X
+ 0
+ Position
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ X Units
+ 0
+ Position
+ true
+
+
+ float
+ Y
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ Y Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ Y Units
+ 1
+ Position
+ true
+
+
+ string
+ VariableReferences
+ References
+ false
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Sprite.gutx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Sprite.gutx
new file mode 100644
index 000000000..d8319b747
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Sprite.gutx
@@ -0,0 +1,578 @@
+
+
+ Sprite
+
+ Default
+
+ int
+ Alpha
+ 255
+ Rendering
+ true
+
+
+ bool
+ Animate
+ false
+ Animation
+ true
+
+
+ Blend
+ Blend
+ 0
+ Rendering
+ true
+
+
+ int
+ Blue
+ 255
+ Rendering
+ true
+
+
+ ColorCategory
+ ColorCategoryState
+ false
+
+
+ string
+ CurrentChainName
+ Animation
+ true
+
+
+ bool
+ Custom Texture Coordinates
+ false
+ Source
+ true
+
+
+ bool
+ ExposeChildrenEvents
+ false
+ Behavior
+ true
+
+
+ bool
+ FlipHorizontal
+ false
+ Flip and Rotation
+ true
+
+
+ bool
+ FlipVertical
+ false
+ Flip and Rotation
+ true
+
+
+ int
+ Green
+ 255
+ Rendering
+ true
+
+
+ string
+ Guide
+ Position
+ true
+
+
+ bool
+ HasEvents
+ false
+ Behavior
+ true
+
+
+ float
+ Height
+ 100
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 3
+ Dimensions
+ true
+
+
+ bool
+ IgnoredByParentSize
+ false
+ Parent
+ true
+
+
+ bool
+ IsXamarinFormsControl
+ false
+ true
+
+
+ string
+ Parent
+ Parent
+ true
+
+
+ int
+ Red
+ 255
+ Rendering
+ true
+
+
+ float
+ Rotation
+ 0
+ Flip and Rotation
+ true
+
+
+ true
+ string
+ SourceFile
+
+ true
+
+
+ State
+ State
+ Default
+ false
+
+
+ TextureAddress
+ Texture Address
+ 0
+ Source
+ true
+
+
+ int
+ Texture Height
+ 0
+ Source
+ true
+
+
+ float
+ Texture Height Scale
+ 0
+ Source
+ true
+
+
+ int
+ Texture Left
+ 0
+ Source
+ true
+
+
+ int
+ Texture Top
+ 0
+ Source
+ true
+
+
+ int
+ Texture Width
+ 0
+ Source
+ true
+
+
+ float
+ Texture Width Scale
+ 0
+ Source
+ true
+
+
+ bool
+ Visible
+ true
+ true
+
+
+ float
+ Width
+ 100
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 3
+ Dimensions
+ true
+
+
+ bool
+ Wrap
+ false
+ Source
+ true
+
+
+ float
+ X
+ 0
+ Position
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ X Units
+ 0
+ Position
+ true
+
+
+ float
+ Y
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ Y Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ Y Units
+ 1
+ Position
+ true
+
+
+ string
+ AnimationFrames
+ Animation
+ false
+ false
+
+
+
+ string
+ VariableReferences
+ References
+ false
+ false
+
+
+
+
+ ColorCategory
+ false
+
+ Black
+
+ int
+ Blue
+ 0
+ true
+
+
+ int
+ Green
+ 0
+ true
+
+
+ int
+ Red
+ 0
+ true
+
+
+
+ DarkGray
+
+ int
+ Blue
+ 70
+ Rendering
+ true
+
+
+ int
+ Green
+ 70
+ Rendering
+ true
+
+
+ int
+ Red
+ 70
+ Rendering
+ true
+
+
+
+ Gray
+
+ int
+ Blue
+ 130
+ Rendering
+ true
+
+
+ int
+ Green
+ 130
+ Rendering
+ true
+
+
+ int
+ Red
+ 130
+ Rendering
+ true
+
+
+
+ LightGray
+
+ int
+ Blue
+ 170
+ Rendering
+ true
+
+
+ int
+ Green
+ 170
+ Rendering
+ true
+
+
+ int
+ Red
+ 170
+ Rendering
+ true
+
+
+
+ White
+
+ int
+ Blue
+ 255
+ Rendering
+ true
+
+
+ int
+ Green
+ 255
+ Rendering
+ true
+
+
+ int
+ Red
+ 255
+ Rendering
+ true
+
+
+
+ PrimaryDark
+
+ int
+ Blue
+ 137
+ Rendering
+ true
+
+
+ int
+ Green
+ 120
+ Rendering
+ true
+
+
+ int
+ Red
+ 4
+ Rendering
+ true
+
+
+
+ Primary
+
+ int
+ Blue
+ 177
+ Rendering
+ true
+
+
+ int
+ Green
+ 159
+ Rendering
+ true
+
+
+ int
+ Red
+ 6
+ Rendering
+ true
+
+
+
+ PrimaryLight
+
+ int
+ Blue
+ 193
+ Rendering
+ true
+
+
+ int
+ Green
+ 180
+ Rendering
+ true
+
+
+ int
+ Red
+ 74
+ Rendering
+ true
+
+
+
+ Success
+
+ int
+ Blue
+ 48
+ Rendering
+ true
+
+
+ int
+ Green
+ 167
+ Rendering
+ true
+
+
+ int
+ Red
+ 62
+ Rendering
+ true
+
+
+
+ Warning
+
+ int
+ Blue
+ 25
+ Rendering
+ true
+
+
+ int
+ Green
+ 171
+ Rendering
+ true
+
+
+ int
+ Red
+ 232
+ Rendering
+ true
+
+
+
+ Danger
+
+ int
+ Blue
+ 41
+ Rendering
+ true
+
+
+ int
+ Green
+ 18
+ Rendering
+ true
+
+
+ int
+ Red
+ 212
+ Rendering
+ true
+
+
+
+ Accent
+
+ int
+ Blue
+ 138
+ Rendering
+ true
+
+
+ int
+ Green
+ 48
+ Rendering
+ true
+
+
+ int
+ Red
+ 140
+ Rendering
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_BottomCenter.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_BottomCenter.png
new file mode 100644
index 000000000..3b91b104b
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_BottomCenter.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_BottomLeft.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_BottomLeft.png
new file mode 100644
index 000000000..827280dfd
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_BottomLeft.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_BottomRight.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_BottomRight.png
new file mode 100644
index 000000000..178752123
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_BottomRight.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_Center.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_Center.png
new file mode 100644
index 000000000..13dd6db2e
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_Center.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_Left.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_Left.png
new file mode 100644
index 000000000..4b8321d5a
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_Left.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_Right.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_Right.png
new file mode 100644
index 000000000..6e11be1d1
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_Right.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_TopCenter.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_TopCenter.png
new file mode 100644
index 000000000..2177991ca
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_TopCenter.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_TopLeft.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_TopLeft.png
new file mode 100644
index 000000000..ff804976d
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_TopLeft.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_TopRight.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_TopRight.png
new file mode 100644
index 000000000..4149901cc
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/StandardGraphics/Red_TopRight.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Svg.gutx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Svg.gutx
new file mode 100644
index 000000000..7120530b3
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Svg.gutx
@@ -0,0 +1,272 @@
+
+
+ Svg
+
+ Default
+
+ int
+ Alpha
+ 255
+ Rendering
+ true
+
+
+ bool
+ Animate
+ false
+ Animation
+ true
+
+
+ Blend
+ Blend
+ 0
+ Rendering
+ true
+
+
+ int
+ Blue
+ 255
+ Rendering
+ true
+
+
+ bool
+ Custom Texture Coordinates
+ false
+ Source
+ true
+
+
+ bool
+ ExposeChildrenEvents
+ false
+ Behavior
+ true
+
+
+ bool
+ FlipHorizontal
+ false
+ Flip and Rotation
+ true
+
+
+ bool
+ FlipVertical
+ false
+ Flip and Rotation
+ true
+
+
+ int
+ Green
+ 255
+ Rendering
+ true
+
+
+ string
+ Guide
+ Position
+ true
+
+
+ bool
+ HasEvents
+ false
+ Behavior
+ true
+
+
+ float
+ Height
+ 100
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 0
+ Dimensions
+ true
+
+
+ bool
+ IgnoredByParentSize
+ false
+ Parent
+ true
+
+
+ string
+ Parent
+ Parent
+ true
+
+
+ int
+ Red
+ 255
+ Rendering
+ true
+
+
+ float
+ Rotation
+ 0
+ Flip and Rotation
+ true
+
+
+ true
+ string
+ SourceFile
+
+ true
+
+
+ State
+ State
+ Default
+ false
+
+
+ TextureAddress
+ Texture Address
+ 0
+ Source
+ true
+
+
+ int
+ Texture Height
+ 0
+ Source
+ true
+
+
+ float
+ Texture Height Scale
+ 0
+ Source
+ true
+
+
+ int
+ Texture Left
+ 0
+ Source
+ true
+
+
+ int
+ Texture Top
+ 0
+ Source
+ true
+
+
+ int
+ Texture Width
+ 0
+ Source
+ true
+
+
+ float
+ Texture Width Scale
+ 0
+ Source
+ true
+
+
+ bool
+ Visible
+ true
+ true
+
+
+ float
+ Width
+ 100
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 0
+ Dimensions
+ true
+
+
+ bool
+ Wrap
+ false
+ Source
+ true
+
+
+ float
+ X
+ 0
+ Position
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ X Units
+ 0
+ Position
+ true
+
+
+ float
+ Y
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ Y Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ Y Units
+ 1
+ Position
+ true
+
+
+ string
+ AnimationFrames
+ Animation
+ false
+ false
+
+
+
+ string
+ VariableReferences
+ References
+ false
+ false
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Text.gutx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Text.gutx
new file mode 100644
index 000000000..a5eeeba07
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/Standards/Text.gutx
@@ -0,0 +1,801 @@
+
+
+ Text
+
+ Default
+
+ int
+ Alpha
+ 255
+ Rendering
+ true
+
+
+ int
+ Blue
+ 0
+ Rendering
+ true
+
+
+ ColorCategory
+ ColorCategoryState
+ false
+
+
+ true
+ string
+ CustomFontFile
+
+ Font
+ true
+
+
+ bool
+ ExposeChildrenEvents
+ false
+ Behavior
+ true
+
+
+ true
+ string
+ Font
+ Arial
+ Font
+ true
+
+
+ float
+ Font Scale
+ 1
+ Font
+ true
+
+
+ int
+ FontSize
+ 12
+ Font
+ true
+
+
+ int
+ Green
+ 0
+ Rendering
+ true
+
+
+ string
+ Guide
+ Position
+ true
+
+
+ bool
+ HasEvents
+ false
+ Behavior
+ true
+
+
+ float
+ Height
+ 0
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Height Units
+ 4
+ Dimensions
+ true
+
+
+ HorizontalAlignment
+ HorizontalAlignment
+ 0
+ Text
+ true
+
+
+ bool
+ IgnoredByParentSize
+ false
+ Parent
+ true
+
+
+ bool
+ IsBold
+ false
+ Font
+ true
+
+
+ bool
+ IsItalic
+ false
+ Font
+ true
+
+
+ bool
+ IsXamarinFormsControl
+ false
+ true
+
+
+ float
+ LineHeightMultiplier
+ 1
+ Font
+ true
+
+
+ int?
+ MaxLettersToShow
+ Text
+ true
+
+
+ int
+ OutlineThickness
+ 0
+ Font
+ true
+
+
+ string
+ Parent
+ Parent
+ true
+
+
+ int
+ Red
+ 0
+ Rendering
+ true
+
+
+ float
+ Rotation
+ 0
+ Flip and Rotation
+ true
+
+
+ State
+ State
+ Default
+ true
+
+
+ StyleCategory
+ StyleCategoryState
+ false
+
+
+ string
+ Text
+ Hello
+ Text
+ true
+
+
+ TextOverflowHorizontalMode
+ TextOverflowHorizontalMode
+ 0
+ Text
+ true
+
+
+ TextOverflowVerticalMode
+ TextOverflowVerticalMode
+ 0
+ Text
+ true
+
+
+ bool
+ UseCustomFont
+ false
+ Font
+ true
+
+
+ bool
+ UseFontSmoothing
+ true
+ Font
+ true
+
+
+ VerticalAlignment
+ VerticalAlignment
+ 0
+ Text
+ true
+
+
+ bool
+ Visible
+ true
+ true
+
+
+ float
+ Width
+ 0
+ Dimensions
+ true
+
+
+ DimensionUnitType
+ Width Units
+ 4
+ Dimensions
+ true
+
+
+ float
+ X
+ 0
+ Position
+ true
+
+
+ HorizontalAlignment
+ X Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ X Units
+ 0
+ Position
+ true
+
+
+ float
+ Y
+ 0
+ Position
+ true
+
+
+ VerticalAlignment
+ Y Origin
+ 0
+ Position
+ true
+
+
+ PositionUnitType
+ Y Units
+ 1
+ Position
+ true
+
+
+ string
+ VariableReferences
+ References
+ false
+ false
+
+
+
+
+ ColorCategory
+ false
+
+ Black
+
+ int
+ Blue
+ 0
+ true
+
+
+ int
+ Green
+ 0
+ true
+
+
+ int
+ Red
+ 0
+ true
+
+
+
+ DarkGray
+
+ int
+ Blue
+ 70
+ Rendering
+ true
+
+
+ int
+ Green
+ 70
+ Rendering
+ true
+
+
+ int
+ Red
+ 70
+ Rendering
+ true
+
+
+
+ Gray
+
+ int
+ Blue
+ 130
+ Rendering
+ true
+
+
+ int
+ Green
+ 130
+ Rendering
+ true
+
+
+ int
+ Red
+ 130
+ Rendering
+ true
+
+
+
+ LightGray
+
+ int
+ Blue
+ 170
+ Rendering
+ true
+
+
+ int
+ Green
+ 170
+ Rendering
+ true
+
+
+ int
+ Red
+ 170
+ Rendering
+ true
+
+
+
+ White
+
+ int
+ Blue
+ 255
+ Rendering
+ true
+
+
+ int
+ Green
+ 255
+ Rendering
+ true
+
+
+ int
+ Red
+ 255
+ Rendering
+ true
+
+
+
+ PrimaryDark
+
+ int
+ Blue
+ 137
+ Rendering
+ true
+
+
+ int
+ Green
+ 120
+ Rendering
+ true
+
+
+ int
+ Red
+ 4
+ Rendering
+ true
+
+
+
+ Primary
+
+ int
+ Blue
+ 177
+ Rendering
+ true
+
+
+ int
+ Green
+ 159
+ Rendering
+ true
+
+
+ int
+ Red
+ 6
+ Rendering
+ true
+
+
+
+ PrimaryLight
+
+ int
+ Blue
+ 193
+ Rendering
+ true
+
+
+ int
+ Green
+ 180
+ Rendering
+ true
+
+
+ int
+ Red
+ 74
+ Rendering
+ true
+
+
+
+ Success
+
+ int
+ Blue
+ 48
+ Rendering
+ true
+
+
+ int
+ Green
+ 167
+ Rendering
+ true
+
+
+ int
+ Red
+ 62
+ Rendering
+ true
+
+
+
+ Warning
+
+ int
+ Blue
+ 25
+ Rendering
+ true
+
+
+ int
+ Green
+ 171
+ Rendering
+ true
+
+
+ int
+ Red
+ 232
+ Rendering
+ true
+
+
+
+ Danger
+
+ int
+ Blue
+ 41
+ Rendering
+ true
+
+
+ int
+ Green
+ 18
+ Rendering
+ true
+
+
+ int
+ Red
+ 212
+ Rendering
+ true
+
+
+
+ Accent
+
+ int
+ Blue
+ 138
+ Rendering
+ true
+
+
+ int
+ Green
+ 48
+ Rendering
+ true
+
+
+ int
+ Red
+ 140
+ Rendering
+ true
+
+
+
+
+ StyleCategory
+ false
+
+ Tiny
+
+ int
+ FontSize
+ 10
+ Font
+ true
+
+
+ bool
+ IsBold
+ false
+ Font
+ true
+
+
+ bool
+ IsItalic
+ false
+ Font
+ true
+
+
+
+ Small
+
+ int
+ FontSize
+ 12
+ true
+
+
+ bool
+ IsBold
+ false
+ Font
+ true
+
+
+ bool
+ IsItalic
+ false
+ Font
+ true
+
+
+
+ Normal
+
+ int
+ FontSize
+ 14
+ Font
+ true
+
+
+ bool
+ IsBold
+ false
+ Font
+ true
+
+
+ bool
+ IsItalic
+ false
+ Font
+ true
+
+
+
+ Emphasis
+
+ int
+ FontSize
+ 14
+ Font
+ true
+
+
+ bool
+ IsBold
+ false
+ Font
+ true
+
+
+ bool
+ IsItalic
+ true
+ true
+
+
+
+ Strong
+
+ int
+ FontSize
+ 14
+ Font
+ true
+
+
+ bool
+ IsBold
+ true
+ true
+
+
+ bool
+ IsItalic
+ false
+ Font
+ true
+
+
+
+ H3
+
+ int
+ FontSize
+ 16
+ Font
+ true
+
+
+ bool
+ IsBold
+ true
+ Font
+ true
+
+
+ bool
+ IsItalic
+ false
+ Font
+ true
+
+
+
+ H2
+
+ int
+ FontSize
+ 18
+ Font
+ true
+
+
+ bool
+ IsBold
+ true
+ Font
+ true
+
+
+ bool
+ IsItalic
+ false
+ Font
+ true
+
+
+
+ H1
+
+ int
+ FontSize
+ 22
+ Font
+ true
+
+
+ bool
+ IsBold
+ true
+ Font
+ true
+
+
+ bool
+ IsItalic
+ false
+ Font
+ true
+
+
+
+ Title
+
+ int
+ FontSize
+ 28
+ Font
+ true
+
+
+ bool
+ IsBold
+ true
+ Font
+ true
+
+
+ bool
+ IsItalic
+ false
+ Font
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/UISpriteSheet.png b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/UISpriteSheet.png
new file mode 100644
index 000000000..08880ee0d
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/GumProject/UISpriteSheet.png differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/Shader.fx b/Samples/SkiaSampleProject/SkiaSampleProject/Content/Shader.fx
new file mode 100644
index 000000000..d582a4d19
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Content/Shader.fx
@@ -0,0 +1,806 @@
+float4x4 ViewProj : VIEWPROJ; // World, view and projection matrix
+uniform extern texture CurrentTexture;
+
+sampler linearTextureSampler = sampler_state
+{
+ Texture = ;
+ MipFilter = Linear;
+ MinFilter = Linear;
+ MagFilter = Linear;
+};
+
+sampler pointTextureSampler = sampler_state
+{
+ Texture = ;
+ MipFilter = Point;
+ MinFilter = Point;
+ MagFilter = Point;
+};
+
+float4 ColorModifier = float4(1.0, 1.0, 1.0, 1.0); // Color for non-vertex color rendering
+
+// Application to vertex structure
+struct a2v
+{
+ float4 position : POSITION0;
+ float4 color : COLOR0;
+ float4 texCoord : TEXCOORD0;
+
+};
+
+// Vertex to pixel processing structure
+struct v2p
+{
+ float4 position : POSITION0;
+ float4 color : COLOR0;
+ float4 texCoord : TEXCOORD0;
+};
+
+// VERTEX SHADER
+void vs(in a2v IN, out v2p OUT)
+{
+ // Transforming our position from object space to screen space
+ OUT.position = mul(IN.position, ViewProj);
+ OUT.color = IN.color;
+ OUT.texCoord = IN.texCoord;
+}
+
+
+float4 Linearize(float4 color)
+{
+ return float4(pow(color.rgb, 2.2), color.a);
+}
+
+#define SAMPLE(textureSampler, a2v) tex2D(textureSampler, a2v.texCoord.xy)
+#define SAMPLE_LINEARIZE(textureSampler, a2v) Linearize(tex2D(textureSampler, a2v.texCoord.xy))
+
+#define TECHNIQUE(name, psname) \
+ technique name { pass { VertexShader = compile vs_1_1 vs(); PixelShader = compile ps_2_0 psname(); } }
+
+float4 PremultiplyAlpha(float4 textureColor, float4 color)
+{
+ return textureColor *= color.a;
+}
+
+float4 Add(float4 textureColor, float4 color)
+{
+ textureColor.rgb += color.rgb;
+ textureColor *= color.a;
+ return textureColor;
+}
+
+float4 Subtract(float4 textureColor, float4 color)
+{
+ textureColor.rgb -= color.rgb;
+ textureColor *= color.a;
+ return textureColor;
+}
+
+float4 Modulate(float4 textureColor, float4 color)
+{
+ textureColor.rgb *= color.rgb;
+ textureColor *= color.a;
+ return textureColor;
+}
+
+float4 Modulate2X(float4 textureColor, float4 color)
+{
+ textureColor.rgb *= 2 * color.rgb;
+ textureColor *= color.a;
+ return textureColor;
+}
+
+float4 Modulate4X(float4 textureColor, float4 color)
+{
+ textureColor.rgb *= 4 * color.rgb;
+ textureColor *= color.a;
+ return textureColor;
+}
+
+float4 Inverse(float4 textureColor, float4 color)
+{
+ textureColor.rgb = 1 - textureColor.rgb;
+ textureColor *= color.a;
+ return textureColor;
+}
+
+float4 ColorTextureAlpha(float textureAlpha, float4 color)
+{
+ float4 returnColor = color;
+ returnColor.rgb *= color.a;
+ returnColor *= textureAlpha;
+ return returnColor;
+}
+
+float4 InterpolateColor(float4 textureColor, float4 color)
+{
+ float4 returnColor = color;
+ returnColor = (textureColor * returnColor.a) + (1 - returnColor.a) * (returnColor);
+ returnColor.a = textureColor.a;
+ return returnColor;
+}
+
+
+// PIXEL SHADERS:
+
+// Point filtering
+
+float4 TexturePixelShader_Point(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(pointTextureSampler, IN);
+ color = PremultiplyAlpha(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 AddPixelShader_Point(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(pointTextureSampler, IN);
+ color = Add(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 SubtractPixelShader_Point(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(pointTextureSampler, IN);
+ color = Subtract(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ModulatePixelShader_Point(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(pointTextureSampler, IN);
+ color = Modulate(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate2XPixelShader_Point(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(pointTextureSampler, IN);
+ color = Modulate2X(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate4XPixelShader_Point(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(pointTextureSampler, IN);
+ color = Modulate4X(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InversePixelShader_Point(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(pointTextureSampler, IN);
+ color = Inverse(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ColorPixelShader(a2v IN) : COLOR
+{
+ clip(IN.color.a - .001);
+ return IN.color;
+}
+
+float4 ColorTextureAlphaPixelShader_Point(a2v IN) : COLOR
+{
+ float4 color = ColorTextureAlpha(SAMPLE(pointTextureSampler, IN).a, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InterpolateColorPixelShader_Point(a2v IN) : COLOR
+{
+ float4 color = InterpolateColor(SAMPLE(pointTextureSampler, IN), IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+
+float4 TexturePixelShader_Point_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(pointTextureSampler, IN);
+ color = PremultiplyAlpha(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 AddPixelShader_Point_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(pointTextureSampler, IN);
+ color = Add(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 SubtractPixelShader_Point_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(pointTextureSampler, IN);
+ color = Subtract(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ModulatePixelShader_Point_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(pointTextureSampler, IN);
+ color = Modulate(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate2XPixelShader_Point_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(pointTextureSampler, IN);
+ color = Modulate2X(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate4XPixelShader_Point_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(pointTextureSampler, IN);
+ color = Modulate4X(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InversePixelShader_Point_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(pointTextureSampler, IN);
+ color = Inverse(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ColorPixelShader_CM(a2v IN) : COLOR
+{
+ clip(ColorModifier.a - .001);
+ return ColorModifier;
+}
+
+float4 ColorTextureAlphaPixelShader_Point_CM(a2v IN) : COLOR
+{
+ float4 color = ColorTextureAlpha(SAMPLE(pointTextureSampler, IN).a, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InterpolateColorPixelShader_Point_CM(a2v IN) : COLOR
+{
+ float4 color = InterpolateColor(SAMPLE(pointTextureSampler, IN), ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+
+float4 TexturePixelShader_Point_LN(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(pointTextureSampler, IN);
+ color = PremultiplyAlpha(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 AddPixelShader_Point_LN(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(pointTextureSampler, IN);
+ color = Add(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 SubtractPixelShader_Point_LN(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(pointTextureSampler, IN);
+ color = Subtract(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ModulatePixelShader_Point_LN(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(pointTextureSampler, IN);
+ color = Modulate(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate2XPixelShader_Point_LN(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(pointTextureSampler, IN);
+ color = Modulate2X(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate4XPixelShader_Point_LN(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(pointTextureSampler, IN);
+ color = Modulate4X(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InversePixelShader_Point_LN(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(pointTextureSampler, IN);
+ color = Inverse(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ColorTextureAlphaPixelShader_Point_LN(a2v IN) : COLOR
+{
+ float4 color = ColorTextureAlpha(SAMPLE_LINEARIZE(pointTextureSampler, IN).a, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InterpolateColorPixelShader_Point_LN(a2v IN) : COLOR
+{
+ float4 color = InterpolateColor(SAMPLE_LINEARIZE(pointTextureSampler, IN), IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+
+float4 TexturePixelShader_Point_LN_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(pointTextureSampler, IN);
+ color = PremultiplyAlpha(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 AddPixelShader_Point_LN_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(pointTextureSampler, IN);
+ color = Add(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 SubtractPixelShader_Point_LN_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(pointTextureSampler, IN);
+ color = Subtract(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ModulatePixelShader_Point_LN_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(pointTextureSampler, IN);
+ color = Modulate(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate2XPixelShader_Point_LN_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(pointTextureSampler, IN);
+ color = Modulate2X(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate4XPixelShader_Point_LN_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(pointTextureSampler, IN);
+ color = Modulate4X(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InversePixelShader_Point_LN_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(pointTextureSampler, IN);
+ color = Inverse(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ColorTextureAlphaPixelShader_Point_LN_CM(a2v IN) : COLOR
+{
+ float4 color = ColorTextureAlpha(SAMPLE_LINEARIZE(pointTextureSampler, IN).a, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InterpolateColorPixelShader_Point_LN_CM(a2v IN) : COLOR
+{
+ float4 color = InterpolateColor(SAMPLE_LINEARIZE(pointTextureSampler, IN), ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+
+// Linear filtering
+
+float4 TexturePixelShader_Linear(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(linearTextureSampler, IN);
+ color = PremultiplyAlpha(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 AddPixelShader_Linear(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(linearTextureSampler, IN);
+ color = Add(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 SubtractPixelShader_Linear(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(linearTextureSampler, IN);
+ color = Subtract(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ModulatePixelShader_Linear(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(linearTextureSampler, IN);
+ color = Modulate(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate2XPixelShader_Linear(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(linearTextureSampler, IN);
+ color = Modulate2X(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate4XPixelShader_Linear(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(linearTextureSampler, IN);
+ color = Modulate4X(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InversePixelShader_Linear(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(linearTextureSampler, IN);
+ color = Inverse(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ColorTextureAlphaPixelShader_Linear(a2v IN) : COLOR
+{
+ float4 color = ColorTextureAlpha(SAMPLE(linearTextureSampler, IN).a, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InterpolateColorPixelShader_Linear(a2v IN) : COLOR
+{
+ float4 color = InterpolateColor(SAMPLE(linearTextureSampler, IN), IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+
+float4 TexturePixelShader_Linear_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(linearTextureSampler, IN);
+ color = PremultiplyAlpha(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 AddPixelShader_Linear_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(linearTextureSampler, IN);
+ color = Add(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 SubtractPixelShader_Linear_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(linearTextureSampler, IN);
+ color = Subtract(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ModulatePixelShader_Linear_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(linearTextureSampler, IN);
+ color = Modulate(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate2XPixelShader_Linear_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(linearTextureSampler, IN);
+ color = Modulate2X(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate4XPixelShader_Linear_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(linearTextureSampler, IN);
+ color = Modulate4X(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InversePixelShader_Linear_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE(linearTextureSampler, IN);
+ color = Inverse(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ColorTextureAlphaPixelShader_Linear_CM(a2v IN) : COLOR
+{
+ float4 color = ColorTextureAlpha(SAMPLE(linearTextureSampler, IN).a, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InterpolateColorPixelShader_Linear_CM(a2v IN) : COLOR
+{
+ float4 color = InterpolateColor(SAMPLE(linearTextureSampler, IN), ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+
+float4 TexturePixelShader_Linear_LN(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(linearTextureSampler, IN);
+ color = PremultiplyAlpha(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 AddPixelShader_Linear_LN(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(linearTextureSampler, IN);
+ color = Add(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 SubtractPixelShader_Linear_LN(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(linearTextureSampler, IN);
+ color = Subtract(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ModulatePixelShader_Linear_LN(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(linearTextureSampler, IN);
+ color = Modulate(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate2XPixelShader_Linear_LN(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(linearTextureSampler, IN);
+ color = Modulate2X(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate4XPixelShader_Linear_LN(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(linearTextureSampler, IN);
+ color = Modulate4X(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InversePixelShader_Linear_LN(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(linearTextureSampler, IN);
+ color = Inverse(color, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ColorTextureAlphaPixelShader_Linear_LN(a2v IN) : COLOR
+{
+ float4 color = ColorTextureAlpha(SAMPLE_LINEARIZE(linearTextureSampler, IN).a, IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InterpolateColorPixelShader_Linear_LN(a2v IN) : COLOR
+{
+ float4 color = InterpolateColor(SAMPLE_LINEARIZE(linearTextureSampler, IN), IN.color);
+ clip(color.a - .001);
+ return color;
+}
+
+
+float4 TexturePixelShader_Linear_LN_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(linearTextureSampler, IN);
+ color = PremultiplyAlpha(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 AddPixelShader_Linear_LN_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(linearTextureSampler, IN);
+ color = Add(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 SubtractPixelShader_Linear_LN_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(linearTextureSampler, IN);
+ color = Subtract(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ModulatePixelShader_Linear_LN_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(linearTextureSampler, IN);
+ color = Modulate(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate2XPixelShader_Linear_LN_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(linearTextureSampler, IN);
+ color = Modulate2X(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 Modulate4XPixelShader_Linear_LN_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(linearTextureSampler, IN);
+ color = Modulate4X(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InversePixelShader_Linear_LN_CM(a2v IN) : COLOR
+{
+ float4 color = SAMPLE_LINEARIZE(linearTextureSampler, IN);
+ color = Inverse(color, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 ColorTextureAlphaPixelShader_Linear_LN_CM(a2v IN) : COLOR
+{
+ float4 color = ColorTextureAlpha(SAMPLE_LINEARIZE(linearTextureSampler, IN).a, ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+float4 InterpolateColorPixelShader_Linear_LN_CM(a2v IN) : COLOR
+{
+ float4 color = InterpolateColor(SAMPLE_LINEARIZE(linearTextureSampler, IN), ColorModifier);
+ clip(color.a - .001);
+ return color;
+}
+
+
+// TECHNIQUES:
+
+// Point filtering
+TECHNIQUE(Texture_Point, TexturePixelShader_Point);
+TECHNIQUE(Add_Point, AddPixelShader_Point);
+TECHNIQUE(Subtract_Point, SubtractPixelShader_Point);
+TECHNIQUE(Modulate_Point, ModulatePixelShader_Point);
+TECHNIQUE(Modulate2X_Point, Modulate2XPixelShader_Point);
+TECHNIQUE(Modulate4X_Point, Modulate4XPixelShader_Point);
+TECHNIQUE(InverseTexture_Point, InversePixelShader_Point);
+TECHNIQUE(Color_Point, ColorPixelShader);
+TECHNIQUE(ColorTextureAlpha_Point, ColorTextureAlphaPixelShader_Point);
+TECHNIQUE(InterpolateColor_Point, InterpolateColorPixelShader_Point);
+
+// Point filtering, use color modifier
+TECHNIQUE(Texture_Point_CM, TexturePixelShader_Point_CM);
+TECHNIQUE(Add_Point_CM, AddPixelShader_Point_CM);
+TECHNIQUE(Subtract_Point_CM, SubtractPixelShader_Point_CM);
+TECHNIQUE(Modulate_Point_CM, ModulatePixelShader_Point_CM);
+TECHNIQUE(Modulate2X_Point_CM, Modulate2XPixelShader_Point_CM);
+TECHNIQUE(Modulate4X_Point_CM, Modulate4XPixelShader_Point_CM);
+TECHNIQUE(InverseTexture_Point_CM, InversePixelShader_Point_CM);
+TECHNIQUE(Color_Point_CM, ColorPixelShader_CM);
+TECHNIQUE(ColorTextureAlpha_Point_CM, ColorTextureAlphaPixelShader_Point_CM);
+TECHNIQUE(InterpolateColor_Point_CM, InterpolateColorPixelShader_Point_CM);
+
+// Point filtering, linearize texture sampling
+TECHNIQUE(Texture_Point_LN, TexturePixelShader_Point_LN);
+TECHNIQUE(Add_Point_LN, AddPixelShader_Point_LN);
+TECHNIQUE(Subtract_Point_LN, SubtractPixelShader_Point_LN);
+TECHNIQUE(Modulate_Point_LN, ModulatePixelShader_Point_LN);
+TECHNIQUE(Modulate2X_Point_LN, Modulate2XPixelShader_Point_LN);
+TECHNIQUE(Modulate4X_Point_LN, Modulate4XPixelShader_Point_LN);
+TECHNIQUE(InverseTexture_Point_LN, InversePixelShader_Point_LN);
+TECHNIQUE(Color_Point_LN, ColorPixelShader);
+TECHNIQUE(ColorTextureAlpha_Point_LN, ColorTextureAlphaPixelShader_Point_LN);
+TECHNIQUE(InterpolateColor_Point_LN, InterpolateColorPixelShader_Point_LN);
+
+// Point filtering, linearize texture sampling, use color modifier
+TECHNIQUE(Texture_Point_LN_CM, TexturePixelShader_Point_LN_CM);
+TECHNIQUE(Add_Point_LN_CM, AddPixelShader_Point_LN_CM);
+TECHNIQUE(Subtract_Point_LN_CM, SubtractPixelShader_Point_LN_CM);
+TECHNIQUE(Modulate_Point_LN_CM, ModulatePixelShader_Point_LN_CM);
+TECHNIQUE(Modulate2X_Point_LN_CM, Modulate2XPixelShader_Point_LN_CM);
+TECHNIQUE(Modulate4X_Point_LN_CM, Modulate4XPixelShader_Point_LN_CM);
+TECHNIQUE(InverseTexture_Point_LN_CM, InversePixelShader_Point_LN_CM);
+TECHNIQUE(Color_Point_LN_CM, ColorPixelShader_CM);
+TECHNIQUE(ColorTextureAlpha_Point_LN_CM, ColorTextureAlphaPixelShader_Point_LN_CM);
+TECHNIQUE(InterpolateColor_Point_LN_CM, InterpolateColorPixelShader_Point_LN_CM);
+
+// Linear filtering
+TECHNIQUE(Texture_Linear, TexturePixelShader_Linear);
+TECHNIQUE(Add_Linear, AddPixelShader_Linear);
+TECHNIQUE(Subtract_Linear, SubtractPixelShader_Linear);
+TECHNIQUE(Modulate_Linear, ModulatePixelShader_Linear);
+TECHNIQUE(Modulate2X_Linear, Modulate2XPixelShader_Linear);
+TECHNIQUE(Modulate4X_Linear, Modulate4XPixelShader_Linear);
+TECHNIQUE(InverseTexture_Linear, InversePixelShader_Linear);
+TECHNIQUE(Color_Linear, ColorPixelShader);
+TECHNIQUE(ColorTextureAlpha_Linear, ColorTextureAlphaPixelShader_Linear);
+TECHNIQUE(InterpolateColor_Linear, InterpolateColorPixelShader_Linear);
+
+// Linear filtering, use color modifier
+TECHNIQUE(Texture_Linear_CM, TexturePixelShader_Linear_CM);
+TECHNIQUE(Add_Linear_CM, AddPixelShader_Linear_CM);
+TECHNIQUE(Subtract_Linear_CM, SubtractPixelShader_Linear_CM);
+TECHNIQUE(Modulate_Linear_CM, ModulatePixelShader_Linear_CM);
+TECHNIQUE(Modulate2X_Linear_CM, Modulate2XPixelShader_Linear_CM);
+TECHNIQUE(Modulate4X_Linear_CM, Modulate4XPixelShader_Linear_CM);
+TECHNIQUE(InverseTexture_Linear_CM, InversePixelShader_Linear_CM);
+TECHNIQUE(Color_Linear_CM, ColorPixelShader_CM);
+TECHNIQUE(ColorTextureAlpha_Linear_CM, ColorTextureAlphaPixelShader_Linear_CM);
+TECHNIQUE(InterpolateColor_Linear_CM, InterpolateColorPixelShader_Linear_CM);
+
+// Linear filtering, linearize texture sampling
+TECHNIQUE(Texture_Linear_LN, TexturePixelShader_Linear_LN);
+TECHNIQUE(Add_Linear_LN, AddPixelShader_Linear_LN);
+TECHNIQUE(Subtract_Linear_LN, SubtractPixelShader_Linear_LN);
+TECHNIQUE(Modulate_Linear_LN, ModulatePixelShader_Linear_LN);
+TECHNIQUE(Modulate2X_Linear_LN, Modulate2XPixelShader_Linear_LN);
+TECHNIQUE(Modulate4X_Linear_LN, Modulate4XPixelShader_Linear_LN);
+TECHNIQUE(InverseTexture_Linear_LN, InversePixelShader_Linear_LN);
+TECHNIQUE(Color_Linear_LN, ColorPixelShader);
+TECHNIQUE(ColorTextureAlpha_Linear_LN, ColorTextureAlphaPixelShader_Linear_LN);
+TECHNIQUE(InterpolateColor_Linear_LN, InterpolateColorPixelShader_Linear_LN);
+
+// Linear filtering, linearize texture sampling, use color modifier
+TECHNIQUE(Texture_Linear_LN_CM, TexturePixelShader_Linear_LN_CM);
+TECHNIQUE(Add_Linear_LN_CM, AddPixelShader_Linear_LN_CM);
+TECHNIQUE(Subtract_Linear_LN_CM, SubtractPixelShader_Linear_LN_CM);
+TECHNIQUE(Modulate_Linear_LN_CM, ModulatePixelShader_Linear_LN_CM);
+TECHNIQUE(Modulate2X_Linear_LN_CM, Modulate2XPixelShader_Linear_LN_CM);
+TECHNIQUE(Modulate4X_Linear_LN_CM, Modulate4XPixelShader_Linear_LN_CM);
+TECHNIQUE(InverseTexture_Linear_LN_CM, InversePixelShader_Linear_LN_CM);
+TECHNIQUE(Color_Linear_LN_CM, ColorPixelShader_CM);
+TECHNIQUE(ColorTextureAlpha_Linear_LN_CM, ColorTextureAlphaPixelShader_Linear_LN_CM);
+TECHNIQUE(InterpolateColor_Linear_LN_CM, InterpolateColorPixelShader_Linear_LN_CM);
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Content/shader.xnb b/Samples/SkiaSampleProject/SkiaSampleProject/Content/shader.xnb
new file mode 100644
index 000000000..3c778707d
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Content/shader.xnb differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Game1.cs b/Samples/SkiaSampleProject/SkiaSampleProject/Game1.cs
new file mode 100644
index 000000000..5ced0f7d6
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Game1.cs
@@ -0,0 +1,93 @@
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+
+using FlatRedBall;
+using FlatRedBall.Graphics;
+using FlatRedBall.Screens;
+using Microsoft.Xna.Framework;
+
+using System.Linq;
+
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+
+namespace SkiaSampleProject
+{
+ public partial class Game1 : Microsoft.Xna.Framework.Game
+ {
+ GraphicsDeviceManager graphics;
+
+
+ partial void GeneratedInitializeEarly();
+ partial void GeneratedInitialize();
+ partial void GeneratedUpdate(Microsoft.Xna.Framework.GameTime gameTime);
+ partial void GeneratedDrawEarly(Microsoft.Xna.Framework.GameTime gameTime);
+ partial void GeneratedDraw(Microsoft.Xna.Framework.GameTime gameTime);
+
+ public Game1() : base()
+ {
+ graphics = new GraphicsDeviceManager(this);
+
+#if WINDOWS_PHONE || ANDROID || IOS
+
+ // Frame rate is 30 fps by default for Windows Phone,
+ // so let's keep that for other phones too
+ TargetElapsedTime = TimeSpan.FromTicks(333333);
+ graphics.IsFullScreen = true;
+#elif WINDOWS || DESKTOP_GL
+ graphics.PreferredBackBufferWidth = 800;
+ graphics.PreferredBackBufferHeight = 600;
+#endif
+
+
+#if WINDOWS_8
+ FlatRedBall.Instructions.Reflection.PropertyValuePair.TopLevelAssembly =
+ this.GetType().GetTypeInfo().Assembly;
+#endif
+
+ }
+
+ protected override void Initialize()
+ {
+ #if IOS
+ var bounds = UIKit.UIScreen.MainScreen.Bounds;
+ var nativeScale = UIKit.UIScreen.MainScreen.Scale;
+ var screenWidth = (int)(bounds.Width * nativeScale);
+ var screenHeight = (int)(bounds.Height * nativeScale);
+ graphics.PreferredBackBufferWidth = screenWidth;
+ graphics.PreferredBackBufferHeight = screenHeight;
+ #endif
+
+ GeneratedInitializeEarly();
+
+ FlatRedBallServices.InitializeFlatRedBall(this, graphics);
+
+ GeneratedInitialize();
+
+ base.Initialize();
+ }
+
+ protected override void Update(GameTime gameTime)
+ {
+ FlatRedBallServices.Update(gameTime);
+
+ FlatRedBall.Screens.ScreenManager.Activity();
+
+ GeneratedUpdate(gameTime);
+
+ base.Update(gameTime);
+ }
+
+ protected override void Draw(GameTime gameTime)
+ {
+ GeneratedDrawEarly(gameTime);
+
+ FlatRedBallServices.Draw();
+
+ GeneratedDraw(gameTime);
+
+ base.Draw(gameTime);
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GlueSettings/CompilerSettings.json b/Samples/SkiaSampleProject/SkiaSampleProject/GlueSettings/CompilerSettings.json
new file mode 100644
index 000000000..f162e69e3
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GlueSettings/CompilerSettings.json
@@ -0,0 +1 @@
+{"GenerateGlueControlManagerCode":false,"EmbedGameInGameTab":true,"RestartScreenOnLevelContentChange":true,"PortNumber":8561,"ShowScreenBoundsWhenViewingEntities":true,"RestartOnFailedCommands":false,"ShowGrid":true,"GridSize":32.0,"GridAlpha":0.15,"EnableSnapping":true,"SnapSize":8.0,"PolygonPointSnapSize":1.0,"SetBackgroundColor":false,"BackgroundRed":0,"BackgroundGreen":0,"BackgroundBlue":0,"ToolbarObjects":[]}
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonCloseRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonCloseRuntime.cs
new file mode 100644
index 000000000..72ed0c04f
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonCloseRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class ButtonCloseRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonConfirmRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonConfirmRuntime.cs
new file mode 100644
index 000000000..a720498d0
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonConfirmRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class ButtonConfirmRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonDenyRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonDenyRuntime.cs
new file mode 100644
index 000000000..c18f77dda
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonDenyRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class ButtonDenyRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonIconRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonIconRuntime.cs
new file mode 100644
index 000000000..c81815b4f
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonIconRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class ButtonIconRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonStandardIconRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonStandardIconRuntime.cs
new file mode 100644
index 000000000..aed74db23
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonStandardIconRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class ButtonStandardIconRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonStandardRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonStandardRuntime.cs
new file mode 100644
index 000000000..2fb8e4e10
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonStandardRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class ButtonStandardRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonTabRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonTabRuntime.cs
new file mode 100644
index 000000000..e34468490
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ButtonTabRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class ButtonTabRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/CheckBoxRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/CheckBoxRuntime.cs
new file mode 100644
index 000000000..41787d488
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/CheckBoxRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class CheckBoxRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ComboBoxRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ComboBoxRuntime.cs
new file mode 100644
index 000000000..91da6619e
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ComboBoxRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class ComboBoxRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/DialogBoxRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/DialogBoxRuntime.cs
new file mode 100644
index 000000000..d2f525d95
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/DialogBoxRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class DialogBoxRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/KeyboardKeyRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/KeyboardKeyRuntime.cs
new file mode 100644
index 000000000..aa3771646
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/KeyboardKeyRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class KeyboardKeyRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/KeyboardRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/KeyboardRuntime.cs
new file mode 100644
index 000000000..286e8bb8e
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/KeyboardRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class KeyboardRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ListBoxItemRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ListBoxItemRuntime.cs
new file mode 100644
index 000000000..49db42580
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ListBoxItemRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class ListBoxItemRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ListBoxRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ListBoxRuntime.cs
new file mode 100644
index 000000000..bcd07e19e
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ListBoxRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class ListBoxRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/PasswordBoxRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/PasswordBoxRuntime.cs
new file mode 100644
index 000000000..5edfc2d83
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/PasswordBoxRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class PasswordBoxRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/PlayerJoinViewItemRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/PlayerJoinViewItemRuntime.cs
new file mode 100644
index 000000000..f43f77554
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/PlayerJoinViewItemRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class PlayerJoinViewItemRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/PlayerJoinViewRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/PlayerJoinViewRuntime.cs
new file mode 100644
index 000000000..d56d7f77d
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/PlayerJoinViewRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class PlayerJoinViewRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/RadioButtonRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/RadioButtonRuntime.cs
new file mode 100644
index 000000000..1ae6fe6a2
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/RadioButtonRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class RadioButtonRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ScrollBarRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ScrollBarRuntime.cs
new file mode 100644
index 000000000..34afa9fe1
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ScrollBarRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class ScrollBarRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ScrollViewerRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ScrollViewerRuntime.cs
new file mode 100644
index 000000000..62979ace6
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ScrollViewerRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class ScrollViewerRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/SettingsViewRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/SettingsViewRuntime.cs
new file mode 100644
index 000000000..78ea03fa1
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/SettingsViewRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class SettingsViewRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/SliderRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/SliderRuntime.cs
new file mode 100644
index 000000000..210d06e2d
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/SliderRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class SliderRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/TextBoxRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/TextBoxRuntime.cs
new file mode 100644
index 000000000..51e97cefa
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/TextBoxRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class TextBoxRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ToastRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ToastRuntime.cs
new file mode 100644
index 000000000..3aa4044ff
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/ToastRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class ToastRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/TreeViewItemRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/TreeViewItemRuntime.cs
new file mode 100644
index 000000000..af2ae4f89
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/TreeViewItemRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class TreeViewItemRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/TreeViewRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/TreeViewRuntime.cs
new file mode 100644
index 000000000..ea5a4953e
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/TreeViewRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class TreeViewRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/TreeViewToggleRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/TreeViewToggleRuntime.cs
new file mode 100644
index 000000000..b4dafed0d
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/TreeViewToggleRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class TreeViewToggleRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/UserControlRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/UserControlRuntime.cs
new file mode 100644
index 000000000..c62dfed88
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Controls/UserControlRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Controls
+{
+ public partial class UserControlRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/CautionLinesRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/CautionLinesRuntime.cs
new file mode 100644
index 000000000..9f018adcd
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/CautionLinesRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Elements
+{
+ public partial class CautionLinesRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/DividerHorizontalRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/DividerHorizontalRuntime.cs
new file mode 100644
index 000000000..677b6a3bb
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/DividerHorizontalRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Elements
+{
+ public partial class DividerHorizontalRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/DividerRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/DividerRuntime.cs
new file mode 100644
index 000000000..c67a918d3
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/DividerRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Elements
+{
+ public partial class DividerRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/DividerVerticalRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/DividerVerticalRuntime.cs
new file mode 100644
index 000000000..ba5b7d2b4
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/DividerVerticalRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Elements
+{
+ public partial class DividerVerticalRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/IconRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/IconRuntime.cs
new file mode 100644
index 000000000..57140b102
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/IconRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Elements
+{
+ public partial class IconRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/LabelRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/LabelRuntime.cs
new file mode 100644
index 000000000..bf5b6fe60
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/LabelRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Elements
+{
+ public partial class LabelRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/PercentBarIconRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/PercentBarIconRuntime.cs
new file mode 100644
index 000000000..a6535a416
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/PercentBarIconRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Elements
+{
+ public partial class PercentBarIconRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/PercentBarRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/PercentBarRuntime.cs
new file mode 100644
index 000000000..ce6bee9f1
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/PercentBarRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Elements
+{
+ public partial class PercentBarRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/VerticalLinesRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/VerticalLinesRuntime.cs
new file mode 100644
index 000000000..5ba40e1ea
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/Elements/VerticalLinesRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes.Elements
+{
+ public partial class VerticalLinesRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/MainMenuGumRuntime.cs b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/MainMenuGumRuntime.cs
new file mode 100644
index 000000000..0d14d2036
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/GumRuntimes/MainMenuGumRuntime.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace SkiaSampleProject.GumRuntimes
+{
+ public partial class MainMenuGumRuntime
+ {
+ partial void CustomInitialize ()
+ {
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Icon.bmp b/Samples/SkiaSampleProject/SkiaSampleProject/Icon.bmp
new file mode 100644
index 000000000..2b481653e
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Icon.bmp differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Icon.ico b/Samples/SkiaSampleProject/SkiaSampleProject/Icon.ico
new file mode 100644
index 000000000..7d9dec187
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Icon.ico differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/FlatRedBall.Forms.DesktopGlNet6.dll b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/FlatRedBall.Forms.DesktopGlNet6.dll
new file mode 100644
index 000000000..c717bfbb0
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/FlatRedBall.Forms.DesktopGlNet6.dll differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/FlatRedBall.Forms.DesktopGlNet6.pdb b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/FlatRedBall.Forms.DesktopGlNet6.pdb
new file mode 100644
index 000000000..880422107
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/FlatRedBall.Forms.DesktopGlNet6.pdb differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/FlatRedBallDesktopGLNet6.dll b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/FlatRedBallDesktopGLNet6.dll
new file mode 100644
index 000000000..1c4bb1bf3
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/FlatRedBallDesktopGLNet6.dll differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/FlatRedBallDesktopGLNet6.pdb b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/FlatRedBallDesktopGLNet6.pdb
new file mode 100644
index 000000000..496398b3d
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/FlatRedBallDesktopGLNet6.pdb differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/GumCore.DesktopGlNet6.dll b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/GumCore.DesktopGlNet6.dll
new file mode 100644
index 000000000..b261f826b
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/GumCore.DesktopGlNet6.dll differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/GumCore.DesktopGlNet6.pdb b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/GumCore.DesktopGlNet6.pdb
new file mode 100644
index 000000000..0e5a93660
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/GumCore.DesktopGlNet6.pdb differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/SkiaInGum.dll b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/SkiaInGum.dll
new file mode 100644
index 000000000..af458a78a
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/SkiaInGum.dll differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/SkiaInGum.pdb b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/SkiaInGum.pdb
new file mode 100644
index 000000000..c380d41e2
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/SkiaInGum.pdb differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/StateInterpolation.DesktopNet6.dll b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/StateInterpolation.DesktopNet6.dll
new file mode 100644
index 000000000..cd07c68f7
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/StateInterpolation.DesktopNet6.dll differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/StateInterpolation.DesktopNet6.pdb b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/StateInterpolation.DesktopNet6.pdb
new file mode 100644
index 000000000..c3fe72f6c
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Debug/StateInterpolation.DesktopNet6.pdb differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/FlatRedBall.Forms.DesktopGlNet6.dll b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/FlatRedBall.Forms.DesktopGlNet6.dll
new file mode 100644
index 000000000..59e058c1c
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/FlatRedBall.Forms.DesktopGlNet6.dll differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/FlatRedBall.Forms.DesktopGlNet6.pdb b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/FlatRedBall.Forms.DesktopGlNet6.pdb
new file mode 100644
index 000000000..d8f18cc9b
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/FlatRedBall.Forms.DesktopGlNet6.pdb differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/FlatRedBallDesktopGLNet6.dll b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/FlatRedBallDesktopGLNet6.dll
new file mode 100644
index 000000000..2e7ed9f46
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/FlatRedBallDesktopGLNet6.dll differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/FlatRedBallDesktopGLNet6.pdb b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/FlatRedBallDesktopGLNet6.pdb
new file mode 100644
index 000000000..3d42f98a1
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/FlatRedBallDesktopGLNet6.pdb differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/GumCore.DesktopGlNet6.dll b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/GumCore.DesktopGlNet6.dll
new file mode 100644
index 000000000..14d8931a5
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/GumCore.DesktopGlNet6.dll differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/GumCore.DesktopGlNet6.pdb b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/GumCore.DesktopGlNet6.pdb
new file mode 100644
index 000000000..74ffc5ed6
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/GumCore.DesktopGlNet6.pdb differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/SkiaInGum.dll b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/SkiaInGum.dll
new file mode 100644
index 000000000..ed8ca7d59
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/SkiaInGum.dll differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/SkiaInGum.pdb b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/SkiaInGum.pdb
new file mode 100644
index 000000000..70ac7a469
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/SkiaInGum.pdb differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/StateInterpolation.DesktopNet6.dll b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/StateInterpolation.DesktopNet6.dll
new file mode 100644
index 000000000..dd5ee141d
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/StateInterpolation.DesktopNet6.dll differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/StateInterpolation.DesktopNet6.pdb b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/StateInterpolation.DesktopNet6.pdb
new file mode 100644
index 000000000..ba9bc538a
Binary files /dev/null and b/Samples/SkiaSampleProject/SkiaSampleProject/Libraries/DesktopGl/Release/StateInterpolation.DesktopNet6.pdb differ
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Program.cs b/Samples/SkiaSampleProject/SkiaSampleProject/Program.cs
new file mode 100644
index 000000000..469c1ee0d
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Program.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Linq;
+
+namespace SkiaSampleProject
+{
+ ///
+ /// The main class.
+ ///
+ public static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main(string[] args)
+ {
+ using (var game = new Game1())
+ {
+ var byEditor = args.Contains("LaunchedByEditor");
+
+ if (byEditor)
+ {
+ try
+ {
+ game.Run();
+ }
+ catch (Exception e)
+ {
+ System.IO.File.WriteAllText("CrashInfo.txt", e.ToString());
+ throw;
+ }
+ }
+ else
+ {
+ game.Run();
+ }
+
+ }
+ }
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Screens/MainMenu.cs b/Samples/SkiaSampleProject/SkiaSampleProject/Screens/MainMenu.cs
new file mode 100644
index 000000000..46263fcde
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Screens/MainMenu.cs
@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Linq;
+
+using FlatRedBall;
+using FlatRedBall.Input;
+using FlatRedBall.Instructions;
+using FlatRedBall.AI.Pathfinding;
+using FlatRedBall.Graphics.Animation;
+using FlatRedBall.Gui;
+using FlatRedBall.Math;
+using FlatRedBall.Math.Geometry;
+using FlatRedBall.Localization;
+using Microsoft.Xna.Framework;
+
+
+
+
+namespace SkiaSampleProject.Screens
+{
+ public partial class MainMenu
+ {
+
+ void CustomInitialize()
+ {
+
+
+ }
+
+ void CustomActivity(bool firstTimeCalled)
+ {
+
+
+ }
+
+
+ void CustomDestroy()
+ {
+
+
+ }
+
+ static void CustomLoadStaticContent(string contentManagerName)
+ {
+
+
+ }
+
+ }
+}
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/Screens/MainMenu.glsj b/Samples/SkiaSampleProject/SkiaSampleProject/Screens/MainMenu.glsj
new file mode 100644
index 000000000..8e534908c
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/Screens/MainMenu.glsj
@@ -0,0 +1,16 @@
+{
+ "Tags": [
+ "GLUE"
+ ],
+ "Source": "GLUE",
+ "ReferencedFiles": [
+ {
+ "Name": "GumProject/Screens/MainMenuGum.gusx",
+ "IsSharedStatic": true,
+ "RuntimeType": "SkiaSampleProject.GumRuntimes.MainMenuGumRuntime",
+ "ProjectsToExcludeFrom": []
+ }
+ ],
+ "Name": "Screens\\MainMenu",
+ "CustomClassesForExport": []
+}
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/SkiaSampleProject.csproj b/Samples/SkiaSampleProject/SkiaSampleProject/SkiaSampleProject.csproj
new file mode 100644
index 000000000..89f7df1dc
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/SkiaSampleProject.csproj
@@ -0,0 +1,602 @@
+
+
+ WinExe
+ net6.0
+ Major
+ false
+ false
+ false
+ MONOGAME;DESKTOP_GL;XNA4;FRB_XNA;MONOGAME_381
+
+
+ app.manifest
+ Icon.ico
+ SkiaSampleProject
+
+
+
+
+
+
+
+
+ PreserveNewest
+ buttonclose
+
+
+ PreserveNewest
+ buttonconfirm
+
+
+ PreserveNewest
+ buttondeny
+
+
+ PreserveNewest
+ buttonicon
+
+
+ PreserveNewest
+ buttonstandard
+
+
+ PreserveNewest
+ buttonstandardicon
+
+
+ PreserveNewest
+ buttontab
+
+
+ PreserveNewest
+ checkbox
+
+
+ PreserveNewest
+ combobox
+
+
+ PreserveNewest
+ dialogbox
+
+
+ PreserveNewest
+ keyboard
+
+
+ PreserveNewest
+ keyboardkey
+
+
+ PreserveNewest
+ listbox
+
+
+ PreserveNewest
+ listboxitem
+
+
+ PreserveNewest
+ passwordbox
+
+
+ PreserveNewest
+ playerjoinview
+
+
+ PreserveNewest
+ playerjoinviewitem
+
+
+ PreserveNewest
+ radiobutton
+
+
+ PreserveNewest
+ scrollbar
+
+
+ PreserveNewest
+ scrollviewer
+
+
+ PreserveNewest
+ settingsview
+
+
+ PreserveNewest
+ slider
+
+
+ PreserveNewest
+ textbox
+
+
+ PreserveNewest
+ toast
+
+
+ PreserveNewest
+ treeview
+
+
+ PreserveNewest
+ treeviewitem
+
+
+ PreserveNewest
+ treeviewtoggle
+
+
+ PreserveNewest
+ usercontrol
+
+
+ PreserveNewest
+ cautionlines
+
+
+ PreserveNewest
+ divider
+
+
+ PreserveNewest
+ dividerhorizontal
+
+
+ PreserveNewest
+ dividervertical
+
+
+ PreserveNewest
+ icon
+
+
+ PreserveNewest
+ label
+
+
+ PreserveNewest
+ percentbar
+
+
+ PreserveNewest
+ percentbaricon
+
+
+ PreserveNewest
+ verticallines
+
+
+ PreserveNewest
+ font10arial
+
+
+ PreserveNewest
+ font10arial_0
+
+
+ PreserveNewest
+ font12arial
+
+
+ PreserveNewest
+ font12arial_0
+
+
+ PreserveNewest
+ font14arial
+
+
+ PreserveNewest
+ font14arial_0
+
+
+ PreserveNewest
+ font14arial_bold
+
+
+ PreserveNewest
+ font14arial_bold_0
+
+
+ PreserveNewest
+ font14arial_italic
+
+
+ PreserveNewest
+ font14arial_italic_0
+
+
+ PreserveNewest
+ font16arial_bold
+
+
+ PreserveNewest
+ font16arial_bold_0
+
+
+ PreserveNewest
+ font18arial_bold
+
+
+ PreserveNewest
+ font18arial_bold_0
+
+
+ PreserveNewest
+ font22arial_bold
+
+
+ PreserveNewest
+ font22arial_bold_0
+
+
+ PreserveNewest
+ font24arial
+
+
+ PreserveNewest
+ font24arial_0
+
+
+ PreserveNewest
+ font28arial_bold
+
+
+ PreserveNewest
+ font28arial_bold_0
+
+
+ PreserveNewest
+ GumProject
+
+
+ PreserveNewest
+ MainMenuGum
+
+
+ PreserveNewest
+ arc
+
+
+ PreserveNewest
+ canvas
+
+
+ PreserveNewest
+ circle
+
+
+ PreserveNewest
+ coloredcircle
+
+
+ PreserveNewest
+ coloredrectangle
+
+
+ PreserveNewest
+ component
+
+
+ PreserveNewest
+ container
+
+
+ PreserveNewest
+ lottieanimation
+
+
+ PreserveNewest
+ nineslice
+
+
+ PreserveNewest
+ polygon
+
+
+ PreserveNewest
+ rectangle
+
+
+ PreserveNewest
+ roundedrectangle
+
+
+ PreserveNewest
+ sprite
+
+
+ PreserveNewest
+ svg
+
+
+ PreserveNewest
+ text
+
+
+ PreserveNewest
+ uispritesheet
+
+
+
+
+
+
+
+
+ Game1.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ButtonCloseRuntime.cs
+
+
+
+ ButtonConfirmRuntime.cs
+
+
+
+ ButtonDenyRuntime.cs
+
+
+
+ ButtonIconRuntime.cs
+
+
+
+ ButtonStandardIconRuntime.cs
+
+
+
+ ButtonStandardRuntime.cs
+
+
+
+ ButtonTabRuntime.cs
+
+
+
+ CheckBoxRuntime.cs
+
+
+
+ ComboBoxRuntime.cs
+
+
+
+ DialogBoxRuntime.cs
+
+
+
+ KeyboardKeyRuntime.cs
+
+
+
+ KeyboardRuntime.cs
+
+
+
+ ListBoxItemRuntime.cs
+
+
+
+ ListBoxRuntime.cs
+
+
+
+ PasswordBoxRuntime.cs
+
+
+
+ PlayerJoinViewItemRuntime.cs
+
+
+
+ PlayerJoinViewRuntime.cs
+
+
+
+ RadioButtonRuntime.cs
+
+
+
+ ScrollBarRuntime.cs
+
+
+
+ ScrollViewerRuntime.cs
+
+
+
+ SettingsViewRuntime.cs
+
+
+
+ SliderRuntime.cs
+
+
+
+ TextBoxRuntime.cs
+
+
+
+ ToastRuntime.cs
+
+
+
+ TreeViewItemRuntime.cs
+
+
+
+ TreeViewRuntime.cs
+
+
+
+ TreeViewToggleRuntime.cs
+
+
+
+ UserControlRuntime.cs
+
+
+
+ CautionLinesRuntime.cs
+
+
+
+ DividerHorizontalRuntime.cs
+
+
+
+ DividerRuntime.cs
+
+
+
+ DividerVerticalRuntime.cs
+
+
+
+ IconRuntime.cs
+
+
+
+ LabelRuntime.cs
+
+
+
+ PercentBarIconRuntime.cs
+
+
+
+ PercentBarRuntime.cs
+
+
+
+ VerticalLinesRuntime.cs
+
+
+
+
+
+ MainMenuGumRuntime.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MainMenu.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 13.0.3
+
+
+
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+
+
+ GumCore.DesktopGlNet6
+
+
+ SkiaInGum
+
+
+ FlatRedBallDesktopGLNet6
+
+
+ FlatRedBall.Forms.DesktopGlNet6
+
+
+ StateInterpolation.DesktopNet6
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/SkiaSampleProject.gluj b/Samples/SkiaSampleProject/SkiaSampleProject/SkiaSampleProject.gluj
new file mode 100644
index 000000000..db7ce3eca
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/SkiaSampleProject.gluj
@@ -0,0 +1,108 @@
+{
+ "In2D": true,
+ "ResolutionWidth": 800,
+ "ResolutionHeight": 600,
+ "OrthogonalWidth": 800,
+ "OrthogonalHeight": 600,
+ "Screens": [],
+ "Entities": [],
+ "GlobalFiles": [
+ {
+ "Name": "GumProject/GumProject.gumx",
+ "Properties": [
+ {
+ "Name": "FileAdditionBehavior",
+ "Value": 1,
+ "Type": "int"
+ },
+ {
+ "Name": "AutoCreateGumScreens",
+ "Value": true,
+ "Type": "bool"
+ },
+ {
+ "Name": "ShowMouse",
+ "Value": true,
+ "Type": "bool"
+ },
+ {
+ "Name": "MakeGumInstancesPublic",
+ "Value": true,
+ "Type": "bool"
+ },
+ {
+ "Name": "IsMatchGameResolutionInGumChecked",
+ "Value": true,
+ "Type": "bool"
+ },
+ {
+ "Name": "IncludeFormsInComponents",
+ "Value": true,
+ "Type": "bool"
+ },
+ {
+ "Name": "IncludeComponentToFormsAssociation",
+ "Value": true,
+ "Type": "bool"
+ }
+ ],
+ "IsSharedStatic": true,
+ "DestroyOnUnload": false,
+ "HasPublicProperty": true,
+ "ProjectsToExcludeFrom": []
+ }
+ ],
+ "GlobalContentSettingsSave": {},
+ "SyncedProjects": [],
+ "StartUpScreen": "Screens\\MainMenu",
+ "ResolutionPresets": [],
+ "PerformanceSettingsSave": {},
+ "IgnoredDirectories": [],
+ "CustomClasses": [
+ {
+ "Name": "TileMapInfo",
+ "CsvFilesUsingThis": [],
+ "RequiredProperties": [
+ {
+ "Type": "string",
+ "Member": "Name",
+ "Time": 0.0
+ },
+ {
+ "Type": "System.Collections.Generic.List",
+ "Member": "EmbeddedAnimation",
+ "Time": 0.0
+ }
+ ],
+ "GenerateCode": true
+ }
+ ],
+ "ApplyToFixedResolutionPlatforms": true,
+ "ExternallyBuiltFileDirectory": "../../",
+ "FileVersion": 53,
+ "ScreenReferences": [
+ {
+ "Name": "Screens\\MainMenu"
+ }
+ ],
+ "EntityReferences": [],
+ "Bookmarks": [],
+ "PluginData": {
+ "RequiredPlugins": []
+ },
+ "DisplaySettings": {
+ "Name": "Custom",
+ "GenerateDisplayCode": true,
+ "Is2D": true,
+ "ResolutionWidth": 800,
+ "ResolutionHeight": 600,
+ "AspectRatioWidth": 16.0,
+ "AspectRatioHeight": 9.0,
+ "SupportLandscape": true,
+ "Scale": 100,
+ "ScaleGum": 100,
+ "DominantInternalCoordinates": 1,
+ "TextureFilter": 1
+ },
+ "AllDisplaySettings": []
+}
\ No newline at end of file
diff --git a/Samples/SkiaSampleProject/SkiaSampleProject/app.manifest b/Samples/SkiaSampleProject/SkiaSampleProject/app.manifest
new file mode 100644
index 000000000..796094569
--- /dev/null
+++ b/Samples/SkiaSampleProject/SkiaSampleProject/app.manifest
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true/pm
+ permonitorv2,permonitor
+
+
+
+