Full Code of kniEngine/kni for AI

main eb694dc95e93 cached
2580 files
28.5 MB
7.6M tokens
13413 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (30,453K chars total). Download the full file to get everything.
Repository: kniEngine/kni
Branch: main
Commit: eb694dc95e93
Files: 2580
Total size: 28.5 MB

Directory structure:
gitextract_llhyw4pl/

├── .config/
│   └── dotnet-tools.json_
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   └── workflows/
│       ├── dotnet.yml
│       └── sponsors.yml
├── .gitignore
├── .gitmodules
├── BuildNuget.bat
├── CHANGELOG.md
├── CODESTYLE.md
├── CONTRIBUTING.md
├── Clean.bat
├── Documentation/
│   ├── articles/
│   │   ├── README.md
│   │   ├── content/
│   │   │   ├── adding_ttf_fonts.md
│   │   │   ├── content.md
│   │   │   ├── custom_effects.md
│   │   │   ├── localization.md
│   │   │   ├── toc.yml
│   │   │   ├── using_mgcb_editor.md
│   │   │   └── why_content_pipeline.md
│   │   ├── getting_started/
│   │   │   ├── 0_getting_started.md
│   │   │   ├── 1_setting_up_your_development_environment_macos.md
│   │   │   ├── 1_setting_up_your_development_environment_ubuntu.md
│   │   │   ├── 1_setting_up_your_development_environment_windows.md
│   │   │   ├── 2_creating_a_new_project_netcore.md
│   │   │   ├── 2_creating_a_new_project_vs.md
│   │   │   ├── 2_creating_a_new_project_vsm.md
│   │   │   ├── 3_understanding_the_code.md
│   │   │   ├── 4_adding_content.md
│   │   │   ├── 5_adding_basic_code.md
│   │   │   └── toc.yml
│   │   ├── help_and_support.md
│   │   ├── migrate_37.md
│   │   ├── migrate_38.md
│   │   ├── migrate_381.md
│   │   ├── migrate_3_10.md
│   │   ├── migrate_3_11.md
│   │   ├── migrate_3_12.md
│   │   ├── migrate_3_13.md
│   │   ├── migrate_3_14.md
│   │   ├── migrate_4_0.md
│   │   ├── migrate_4_1.md
│   │   ├── migrate_xna.md
│   │   ├── packaging_games.md
│   │   ├── platforms.md
│   │   ├── samples.md
│   │   ├── toc.yml
│   │   ├── tools/
│   │   │   ├── knifxc.md
│   │   │   ├── mgcb.md
│   │   │   ├── mgcb_editor.md
│   │   │   ├── toc.yml
│   │   │   └── tools.md
│   │   ├── tutorials.md
│   │   └── whats_new.md
│   ├── docfx.json
│   ├── index.md
│   ├── metadata.json
│   ├── theme/
│   │   ├── material/
│   │   │   ├── partials/
│   │   │   │   └── head.tmpl.partial
│   │   │   └── styles/
│   │   │       └── main.css
│   │   └── monogame/
│   │       ├── partials/
│   │       │   ├── head.tmpl.partial
│   │       │   └── navbar.tmpl.partial
│   │       └── styles/
│   │           └── monogame.css
│   └── toc.yml
├── ISSUE_TEMPLATE.md
├── Installers/
│   ├── Windows/
│   │   ├── KniSdkSetup.nsi
│   │   └── SponsorPage.ini
│   └── default.build
├── KNI.sln
├── Kni.Platform.Android.GL.Xamarin.sln
├── Kni.Platform.Android.GL.sln
├── Kni.Platform.Blazor.GL.sln
├── Kni.Platform.Cardboard.GL.sln
├── Kni.Platform.Oculus.GL.sln
├── Kni.Platform.Ref.sln
├── Kni.Platform.SDL2.GL.sln
├── Kni.Platform.UAP.DX11.sln
├── Kni.Platform.WinForms.DX11.sln
├── Kni.Platform.iOS.GL.sln
├── LICENSE.txt
├── MonoGame.Tools.Linux.sln
├── NuGetPackages/
│   ├── Content.Pipeline.Builder.Windows.nuspec
│   ├── Content.Pipeline.Builder.nuspec
│   ├── MonoGame.Framework.WindowsUniversal.nuspec
│   ├── MonoGame.Templates.nuspec1
│   ├── RegisterLocalNuget.bat
│   └── build/
│       └── Builder/
│           └── nkast.Xna.Framework.Content.Pipeline.Builder.targets
├── Platforms/
│   ├── AssemblyInfo.cs
│   ├── Audio/
│   │   ├── Android/
│   │   │   ├── ConcreteAudioFactory.cs
│   │   │   ├── ConcreteAudioServiceDroid.cs
│   │   │   └── ConcreteMicrophoneDroid.cs
│   │   ├── Blazor/
│   │   │   ├── AudioLoader.cs
│   │   │   ├── ConcreteAudioFactory.cs
│   │   │   ├── ConcreteAudioService.cs
│   │   │   ├── ConcreteDynamicSoundEffectInstance.cs
│   │   │   ├── ConcreteMicrophone.cs
│   │   │   ├── ConcreteSoundEffect.cs
│   │   │   └── ConcreteSoundEffectInstance.cs
│   │   ├── OpenAL/
│   │   │   ├── AudioLoader.cs
│   │   │   ├── ConcreteAudioFactory.cs
│   │   │   ├── ConcreteAudioService.cs
│   │   │   ├── ConcreteDynamicSoundEffectInstance.cs
│   │   │   ├── ConcreteMicrophone.cs
│   │   │   ├── ConcreteSoundEffect.cs
│   │   │   ├── ConcreteSoundEffectInstance.cs
│   │   │   └── OpenAL.cs
│   │   ├── Ref/
│   │   │   ├── ConcreteAudioFactory.cs
│   │   │   ├── ConcreteAudioService.cs
│   │   │   ├── ConcreteDynamicSoundEffectInstance.cs
│   │   │   ├── ConcreteMicrophone.cs
│   │   │   ├── ConcreteSoundEffect.cs
│   │   │   └── ConcreteSoundEffectInstance.cs
│   │   └── XAudio/
│   │       ├── ConcreteAudioFactory.cs
│   │       ├── ConcreteAudioService.cs
│   │       ├── ConcreteDynamicSoundEffectInstance.cs
│   │       ├── ConcreteMicrophone.cs
│   │       ├── ConcreteSoundEffect.cs
│   │       └── ConcreteSoundEffectInstance.cs
│   ├── Content/
│   │   ├── .Android/
│   │   │   ├── ConcreteTitleContainer.cs
│   │   │   └── ConcreteTitleContainerFactory.cs
│   │   ├── .Blazor/
│   │   │   ├── ConcreteTitleContainer.cs
│   │   │   └── ConcreteTitleContainerFactory.cs
│   │   ├── .Ref/
│   │   │   ├── ConcreteTitleContainer.cs
│   │   │   └── ConcreteTitleContainerFactory.cs
│   │   ├── .SDL2/
│   │   │   ├── ConcreteTitleContainer.cs
│   │   │   └── ConcreteTitleContainerFactory.cs
│   │   ├── .UAP/
│   │   │   ├── ConcreteTitleContainer.cs
│   │   │   └── ConcreteTitleContainerFactory.cs
│   │   ├── .WindowsDX11/
│   │   │   ├── ConcreteTitleContainer.cs
│   │   │   └── ConcreteTitleContainerFactory.cs
│   │   ├── .iOS/
│   │   │   ├── ConcreteTitleContainer.cs
│   │   │   └── ConcreteTitleContainerFactory.cs
│   │   └── .macOS/
│   │       ├── ConcreteTitleContainer.cs
│   │       └── ConcreteTitleContainerFactory.cs
│   ├── Devices/
│   │   ├── .Android/
│   │   │   ├── ConcreteDevicesFactory.cs
│   │   │   ├── ConcreteHaptics.cs
│   │   │   └── Sensors/
│   │   │       ├── ConcreteAccelerometer.cs
│   │   │       ├── ConcreteCompass.cs
│   │   │       ├── ConcreteSensorService.cs
│   │   │       └── SensorListener.cs
│   │   ├── .Blazor/
│   │   │   ├── ConcreteDevicesFactory.cs
│   │   │   ├── ConcreteHaptics.cs
│   │   │   └── Sensors/
│   │   │       ├── ConcreteAccelerometer.cs
│   │   │       ├── ConcreteCompass.cs
│   │   │       └── ConcreteSensorService.cs
│   │   ├── .Ref/
│   │   │   ├── ConcreteDevicesFactory.cs
│   │   │   ├── ConcreteHaptics.cs
│   │   │   └── Sensors/
│   │   │       ├── ConcreteAccelerometer.cs
│   │   │       ├── ConcreteCompass.cs
│   │   │       └── ConcreteSensorService.cs
│   │   ├── .SDL2/
│   │   │   ├── ConcreteDevicesFactory.cs
│   │   │   ├── ConcreteHaptics.cs
│   │   │   └── Sensors/
│   │   │       ├── ConcreteAccelerometer.cs
│   │   │       ├── ConcreteCompass.cs
│   │   │       └── ConcreteSensorService.cs
│   │   ├── .UAP/
│   │   │   ├── ConcreteDevicesFactory.cs
│   │   │   ├── ConcreteHaptics.cs
│   │   │   └── Sensors/
│   │   │       ├── ConcreteAccelerometer.cs
│   │   │       ├── ConcreteCompass.cs
│   │   │       └── ConcreteSensorService.cs
│   │   ├── .WindowsDX/
│   │   │   ├── ConcreteDevicesFactory.cs
│   │   │   ├── ConcreteHaptics.cs
│   │   │   └── Sensors/
│   │   │       ├── ConcreteAccelerometer.cs
│   │   │       ├── ConcreteCompass.cs
│   │   │       └── ConcreteSensorService.cs
│   │   └── .iOS/
│   │       ├── ConcreteDevicesFactory.cs
│   │       ├── ConcreteHaptics.cs
│   │       └── Sensors/
│   │           ├── ConcreteAccelerometer.cs
│   │           ├── ConcreteCompass.cs
│   │           └── ConcreteSensorService.cs
│   ├── Directory.Build.props
│   ├── Game/
│   │   ├── .Android/
│   │   │   ├── AndroidCompatibility.cs
│   │   │   ├── AndroidGameActivity.cs
│   │   │   ├── AndroidGameWindow.cs
│   │   │   ├── AndroidSurfaceView.cs
│   │   │   ├── ConcreteGame.cs
│   │   │   ├── ConcreteGameFactory.cs
│   │   │   ├── ConcreteGraphicsDeviceManager.cs
│   │   │   ├── ISurfaceView.cs
│   │   │   ├── OrientationListener.cs
│   │   │   ├── RunnableObject.cs
│   │   │   ├── ScreenReceiver.cs
│   │   │   └── TouchEventListener.cs
│   │   ├── .Blazor/
│   │   │   ├── BlazorGameWindow.cs
│   │   │   ├── ConcreteGame.cs
│   │   │   ├── ConcreteGameFactory.cs
│   │   │   └── ConcreteGraphicsDeviceManager.cs
│   │   ├── .CardboardLegacy/
│   │   │   ├── AndroidCompatibility.cs
│   │   │   ├── AndroidGameActivity.cs
│   │   │   ├── AndroidGameWindow.cs
│   │   │   ├── AndroidSurfaceView.cs
│   │   │   ├── ConcreteGame.cs
│   │   │   ├── ConcreteGameFactory.cs
│   │   │   └── ConcreteGraphicsDeviceManager.cs
│   │   ├── .Oculus/
│   │   │   └── AndroidCompatibility.cs
│   │   ├── .Ref/
│   │   │   ├── ConcreteGame.cs
│   │   │   ├── ConcreteGameFactory.cs
│   │   │   └── ConcreteGraphicsDeviceManager.cs
│   │   ├── .SDL2/
│   │   │   ├── ConcreteGame.cs
│   │   │   ├── ConcreteGameFactory.cs
│   │   │   ├── ConcreteGraphicsDeviceManager.cs
│   │   │   ├── SDL2.cs
│   │   │   └── SDLGameWindow.cs
│   │   ├── .UAP/
│   │   │   ├── ConcreteGame.cs
│   │   │   ├── ConcreteGameFactory.cs
│   │   │   ├── ConcreteGraphicsDeviceManager.cs
│   │   │   ├── GameFrameworkViewSource.cs
│   │   │   ├── InputEvents.cs
│   │   │   ├── UAPFrameworkView.cs
│   │   │   ├── UAPGameWindow.cs
│   │   │   └── XamlGame.cs
│   │   ├── .WindowsDX11/
│   │   │   ├── ConcreteGame.cs
│   │   │   ├── ConcreteGameFactory.cs
│   │   │   ├── ConcreteGraphicsDeviceManager.cs
│   │   │   ├── KeysHelper.cs
│   │   │   ├── TimerHelper.cs
│   │   │   ├── WinFormsGameForm.cs
│   │   │   └── WinFormsGameWindow.cs
│   │   └── .iOS/
│   │       ├── ConcreteGame.cs
│   │       ├── ConcreteGameFactory.cs
│   │       ├── ConcreteGraphicsDeviceManager.cs
│   │       ├── IPlatformBackButton.tvOS.cs
│   │       ├── OrientationConverter.cs
│   │       ├── iOSGameView.cs
│   │       ├── iOSGameViewController.cs
│   │       ├── iOSGameView_Touch.cs
│   │       └── iOSGameWindow.cs
│   ├── Graphics/
│   │   ├── .BlazorGL/
│   │   │   ├── ConcreteGraphicsAdapter.cs
│   │   │   ├── ConcreteGraphicsAdaptersProvider.cs
│   │   │   ├── ConcreteGraphicsCapabilities.cs
│   │   │   ├── ConcreteGraphicsContext.cs
│   │   │   ├── ConcreteGraphicsDebug.cs
│   │   │   ├── ConcreteGraphicsDevice.cs
│   │   │   ├── ConcreteGraphicsFactory.cs
│   │   │   ├── ConcreteOcclusionQuery.cs
│   │   │   ├── ConcreteRenderTarget2D.cs
│   │   │   ├── ConcreteRenderTarget3D.cs
│   │   │   ├── ConcreteRenderTargetCube.cs
│   │   │   ├── ConcreteSamplerStateCollection.cs
│   │   │   ├── ConcreteTexture.cs
│   │   │   ├── ConcreteTexture2D.Stream.cs
│   │   │   ├── ConcreteTexture2D.cs
│   │   │   ├── ConcreteTexture3D.cs
│   │   │   ├── ConcreteTextureCollection.cs
│   │   │   ├── ConcreteTextureCube.cs
│   │   │   ├── GLExtensions.cs
│   │   │   ├── IRenderTargetStrategyGL.cs
│   │   │   ├── Shader/
│   │   │   │   ├── ConcreteConstantBuffer.cs
│   │   │   │   ├── ConcreteConstantBufferCollection.cs
│   │   │   │   ├── ConcretePixelShader.cs
│   │   │   │   ├── ConcreteShader.cs
│   │   │   │   ├── ConcreteVertexShader.cs
│   │   │   │   └── ShaderProgram.cs
│   │   │   ├── States/
│   │   │   │   ├── ConcreteBlendState.cs
│   │   │   │   ├── ConcreteDepthStencilState.cs
│   │   │   │   ├── ConcreteRasterizerState.cs
│   │   │   │   └── ConcreteSamplerState.cs
│   │   │   └── Vertices/
│   │   │       ├── ConcreteDynamicIndexBuffer.cs
│   │   │       ├── ConcreteDynamicVertexBuffer.cs
│   │   │       ├── ConcreteIndexBuffer.cs
│   │   │       ├── ConcreteVertexBuffer.cs
│   │   │       └── VertexDeclarationAttributeInfo.cs
│   │   ├── .Common/
│   │   │   └── SpriteBatcher.cs
│   │   ├── .DX11/
│   │   │   ├── ConcreteGraphicsAdapter.cs
│   │   │   ├── ConcreteGraphicsAdaptersProvider.cs
│   │   │   ├── ConcreteGraphicsCapabilities.cs
│   │   │   ├── ConcreteGraphicsContext.cs
│   │   │   ├── ConcreteGraphicsDebug.cs
│   │   │   ├── ConcreteGraphicsDevice.cs
│   │   │   ├── ConcreteGraphicsFactory.cs
│   │   │   ├── ConcreteOcclusionQuery.cs
│   │   │   ├── ConcreteRenderTarget2D.cs
│   │   │   ├── ConcreteRenderTarget3D.cs
│   │   │   ├── ConcreteRenderTargetCube.cs
│   │   │   ├── ConcreteRenderTargetSwapChain.cs
│   │   │   ├── ConcreteSamplerStateCollection.cs
│   │   │   ├── ConcreteTexture.cs
│   │   │   ├── ConcreteTexture2D.Stream.cs
│   │   │   ├── ConcreteTexture2D.cs
│   │   │   ├── ConcreteTexture3D.cs
│   │   │   ├── ConcreteTextureCollection.cs
│   │   │   ├── ConcreteTextureCube.cs
│   │   │   ├── GraphicsSharpDXExtensions.cs
│   │   │   ├── IRenderTargetStrategyDX11.cs
│   │   │   ├── Shader/
│   │   │   │   ├── ConcreteConstantBuffer.cs
│   │   │   │   ├── ConcreteConstantBufferCollection.cs
│   │   │   │   ├── ConcretePixelShader.cs
│   │   │   │   ├── ConcreteShader.cs
│   │   │   │   └── ConcreteVertexShader.cs
│   │   │   ├── SharpDXExtensions.cs
│   │   │   ├── SpriteBatcher.cs
│   │   │   ├── States/
│   │   │   │   ├── ConcreteBlendState.cs
│   │   │   │   ├── ConcreteDepthStencilState.cs
│   │   │   │   ├── ConcreteRasterizerState.cs
│   │   │   │   └── ConcreteSamplerState.cs
│   │   │   └── Vertices/
│   │   │       ├── ConcreteDynamicIndexBuffer.cs
│   │   │       ├── ConcreteDynamicVertexBuffer.cs
│   │   │       ├── ConcreteIndexBuffer.cs
│   │   │       ├── ConcreteVertexBuffer.cs
│   │   │       ├── InputLayoutCache.cs
│   │   │       └── VertexInputLayoutKey.cs
│   │   ├── .GL/
│   │   │   ├── ConcreteGraphicsCapabilities.cs
│   │   │   ├── ConcreteGraphicsContext.cs
│   │   │   ├── ConcreteGraphicsDebug.cs
│   │   │   ├── ConcreteGraphicsDevice.cs
│   │   │   ├── ConcreteGraphicsFactory.cs
│   │   │   ├── ConcreteOcclusionQuery.cs
│   │   │   ├── ConcreteRenderTarget2D.cs
│   │   │   ├── ConcreteRenderTarget3D.cs
│   │   │   ├── ConcreteRenderTargetCube.cs
│   │   │   ├── ConcreteRenderTargetSwapChain.cs
│   │   │   ├── ConcreteSamplerStateCollection.cs
│   │   │   ├── ConcreteTexture.cs
│   │   │   ├── ConcreteTexture2D.Stream.cs
│   │   │   ├── ConcreteTexture2D.cs
│   │   │   ├── ConcreteTexture3D.cs
│   │   │   ├── ConcreteTextureCollection.cs
│   │   │   ├── ConcreteTextureCube.cs
│   │   │   ├── GLExtensions.cs
│   │   │   ├── GLVersion.cs
│   │   │   ├── IRenderTargetStrategyGL.cs
│   │   │   ├── OpenGL.Common.cs
│   │   │   ├── OpenGL.cs
│   │   │   ├── Shader/
│   │   │   │   ├── ConcreteConstantBuffer.cs
│   │   │   │   ├── ConcreteConstantBufferCollection.cs
│   │   │   │   ├── ConcretePixelShader.cs
│   │   │   │   ├── ConcreteShader.cs
│   │   │   │   ├── ConcreteVertexShader.cs
│   │   │   │   └── ShaderProgram.cs
│   │   │   ├── States/
│   │   │   │   ├── ConcreteBlendState.cs
│   │   │   │   ├── ConcreteDepthStencilState.cs
│   │   │   │   ├── ConcreteRasterizerState.cs
│   │   │   │   └── ConcreteSamplerState.cs
│   │   │   └── Vertices/
│   │   │       ├── ConcreteDynamicIndexBuffer.cs
│   │   │       ├── ConcreteDynamicVertexBuffer.cs
│   │   │       ├── ConcreteIndexBuffer.cs
│   │   │       ├── ConcreteVertexBuffer.cs
│   │   │       └── VertexDeclarationAttributeInfo.cs
│   │   ├── .GL.Android/
│   │   │   ├── ConcreteGraphicsAdapter.cs
│   │   │   ├── ConcreteGraphicsAdaptersProvider.cs
│   │   │   ├── ConcreteGraphicsContext.Android.cs
│   │   │   ├── ConcreteGraphicsDevice.Android.cs
│   │   │   ├── OpenGL.Android.cs
│   │   │   ├── SurfaceConfig.cs
│   │   │   └── Vertices/
│   │   │       ├── ConcreteIndexBuffer.cs
│   │   │       └── ConcreteVertexBuffer.cs
│   │   ├── .GL.SDL/
│   │   │   ├── ConcreteGraphicsAdapter.cs
│   │   │   ├── ConcreteGraphicsAdaptersProvider.cs
│   │   │   ├── ConcreteGraphicsContext.SDL.cs
│   │   │   ├── ConcreteGraphicsDevice.SDL.cs
│   │   │   ├── OpenGL.SDL.cs
│   │   │   └── Vertices/
│   │   │       ├── ConcreteIndexBuffer.cs
│   │   │       └── ConcreteVertexBuffer.cs
│   │   ├── .GL.iOS/
│   │   │   ├── ConcreteGraphicsAdapter.cs
│   │   │   ├── ConcreteGraphicsAdaptersProvider.cs
│   │   │   ├── ConcreteGraphicsContext.iOS.cs
│   │   │   ├── ConcreteGraphicsDevice.iOS.cs
│   │   │   ├── OpenGL.iOS.cs
│   │   │   └── Vertices/
│   │   │       ├── ConcreteIndexBuffer.cs
│   │   │       └── ConcreteVertexBuffer.cs
│   │   ├── .Ref/
│   │   │   ├── ConcreteGraphicsAdapter.cs
│   │   │   ├── ConcreteGraphicsAdaptersProvider.cs
│   │   │   ├── ConcreteGraphicsCapabilities.cs
│   │   │   ├── ConcreteGraphicsContext.cs
│   │   │   ├── ConcreteGraphicsDebug.cs
│   │   │   ├── ConcreteGraphicsDevice.cs
│   │   │   ├── ConcreteGraphicsFactory.cs
│   │   │   ├── ConcreteOcclusionQuery.cs
│   │   │   ├── ConcreteRenderTarget2D.cs
│   │   │   ├── ConcreteRenderTarget3D.cs
│   │   │   ├── ConcreteRenderTargetCube.cs
│   │   │   ├── ConcreteSamplerStateCollection.cs
│   │   │   ├── ConcreteTexture.cs
│   │   │   ├── ConcreteTexture2D.Stream.cs
│   │   │   ├── ConcreteTexture2D.cs
│   │   │   ├── ConcreteTexture3D.cs
│   │   │   ├── ConcreteTextureCollection.cs
│   │   │   ├── ConcreteTextureCube.cs
│   │   │   ├── Shader/
│   │   │   │   ├── ConcreteConstantBuffer.cs
│   │   │   │   ├── ConcreteConstantBufferCollection.cs
│   │   │   │   ├── ConcretePixelShader.cs
│   │   │   │   ├── ConcreteShader.cs
│   │   │   │   └── ConcreteVertexShader.cs
│   │   │   ├── States/
│   │   │   │   ├── ConcreteBlendState.cs
│   │   │   │   ├── ConcreteDepthStencilState.cs
│   │   │   │   ├── ConcreteRasterizerState.cs
│   │   │   │   └── ConcreteSamplerState.cs
│   │   │   └── Vertices/
│   │   │       ├── ConcreteDynamicIndexBuffer.cs
│   │   │       ├── ConcreteDynamicVertexBuffer.cs
│   │   │       ├── ConcreteIndexBuffer.cs
│   │   │       └── ConcreteVertexBuffer.cs
│   │   ├── Effect/
│   │   │   ├── Resources/
│   │   │   │   ├── AlphaTestEffect.dx11.fxo
│   │   │   │   ├── AlphaTestEffect.gles.fxo
│   │   │   │   ├── AlphaTestEffect.ogl.fxo
│   │   │   │   ├── BasicEffect.dx11.fxo
│   │   │   │   ├── BasicEffect.gles.fxo
│   │   │   │   ├── BasicEffect.ogl.fxo
│   │   │   │   ├── DualTextureEffect.dx11.fxo
│   │   │   │   ├── DualTextureEffect.gles.fxo
│   │   │   │   ├── DualTextureEffect.ogl.fxo
│   │   │   │   ├── EnvironmentMapEffect.dx11.fxo
│   │   │   │   ├── EnvironmentMapEffect.gles.fxo
│   │   │   │   ├── EnvironmentMapEffect.ogl.fxo
│   │   │   │   ├── SkinnedEffect.dx11.fxo
│   │   │   │   ├── SkinnedEffect.gles.fxo
│   │   │   │   ├── SkinnedEffect.ogl.fxo
│   │   │   │   ├── SpriteEffect.dx11.fxo
│   │   │   │   ├── SpriteEffect.gles.fxo
│   │   │   │   └── SpriteEffect.ogl.fxo
│   │   │   └── Shaders/
│   │   │       ├── AlphaTestEffect.fx
│   │   │       ├── BasicEffect.fx
│   │   │       ├── BuildShaders.bat
│   │   │       ├── Common.fxh
│   │   │       ├── DualTextureEffect.fx
│   │   │       ├── EnvironmentMapEffect.fx
│   │   │       ├── Lighting.fxh
│   │   │       ├── Macros.fxh
│   │   │       ├── Microsoft_Permissive_License.rtf
│   │   │       ├── SkinnedEffect.fx
│   │   │       ├── SpriteEffect.fx
│   │   │       └── Structures.fxh
│   │   ├── RenderTargetSwapChain.OpenGL.cs
│   │   └── SwapChainRenderTarget.DirectX.cs
│   ├── ILLink.Descriptors.xml
│   ├── Input/
│   │   ├── .Android/
│   │   │   ├── ConcreteGamePad.cs
│   │   │   ├── ConcreteGamePadDevice.cs
│   │   │   ├── ConcreteInputFactory.cs
│   │   │   ├── ConcreteJoystick.cs
│   │   │   ├── ConcreteKeyboard.cs
│   │   │   ├── ConcreteKeyboardInput.cs
│   │   │   ├── ConcreteMessageBox.cs
│   │   │   ├── ConcreteMouse.cs
│   │   │   ├── ConcreteMouseCursor.cs
│   │   │   └── Touch/
│   │   │       └── ConcreteTouchPanel.cs
│   │   ├── .Blazor/
│   │   │   ├── ConcreteGamePad.cs
│   │   │   ├── ConcreteGamePadDevice.cs
│   │   │   ├── ConcreteInputFactory.cs
│   │   │   ├── ConcreteJoystick.cs
│   │   │   ├── ConcreteKeyboard.cs
│   │   │   ├── ConcreteKeyboardInput.cs
│   │   │   ├── ConcreteMessageBox.cs
│   │   │   ├── ConcreteMouse.cs
│   │   │   ├── ConcreteMouseCursor.cs
│   │   │   ├── Touch/
│   │   │   │   └── ConcreteTouchPanel.cs
│   │   │   └── XR/
│   │   │       └── ConcreteTouchController.cs
│   │   ├── .LibOVR/
│   │   │   └── XR/
│   │   │       └── ConcreteTouchControllerStrategy.cs
│   │   ├── .OpenXR/
│   │   │   └── XR/
│   │   │       └── ConcreteTouchControllerStrategy.cs
│   │   ├── .Ref/
│   │   │   ├── ConcreteGamePad.cs
│   │   │   ├── ConcreteGamePadDevice.cs
│   │   │   ├── ConcreteInputFactory.cs
│   │   │   ├── ConcreteJoystick.cs
│   │   │   ├── ConcreteKeyboard.cs
│   │   │   ├── ConcreteKeyboardInput.cs
│   │   │   ├── ConcreteMessageBox.cs
│   │   │   ├── ConcreteMouse.cs
│   │   │   ├── ConcreteMouseCursor.cs
│   │   │   └── Touch/
│   │   │       └── ConcreteTouchPanel.cs
│   │   ├── .SDL2/
│   │   │   ├── ConcreteGamePad.cs
│   │   │   ├── ConcreteGamePadDevice.cs
│   │   │   ├── ConcreteInputFactory.cs
│   │   │   ├── ConcreteJoystick.cs
│   │   │   ├── ConcreteKeyboard.cs
│   │   │   ├── ConcreteKeyboardInput.cs
│   │   │   ├── ConcreteMessageBox.cs
│   │   │   ├── ConcreteMouse.cs
│   │   │   ├── ConcreteMouseCursor.cs
│   │   │   ├── KeyboardUtil.cs
│   │   │   └── Touch/
│   │   │       └── ConcreteTouchPanel.cs
│   │   ├── .UAP/
│   │   │   ├── ConcreteGamePad.cs
│   │   │   ├── ConcreteGamePadDevice.cs
│   │   │   ├── ConcreteInputFactory.cs
│   │   │   ├── ConcreteJoystick.cs
│   │   │   ├── ConcreteKeyboard.cs
│   │   │   ├── ConcreteKeyboardInput.cs
│   │   │   ├── ConcreteMessageBox.cs
│   │   │   ├── ConcreteMouse.cs
│   │   │   ├── ConcreteMouseCursor.cs
│   │   │   └── Touch/
│   │   │       └── ConcreteTouchPanel.cs
│   │   ├── .WindowsDX/
│   │   │   ├── ConcreteGamePad.cs
│   │   │   ├── ConcreteGamePadDevice.cs
│   │   │   ├── ConcreteInputFactory.cs
│   │   │   ├── ConcreteJoystick.cs
│   │   │   ├── ConcreteKeyboard.cs
│   │   │   ├── ConcreteKeyboardInput.cs
│   │   │   ├── ConcreteMessageBox.cs
│   │   │   ├── ConcreteMouse.cs
│   │   │   ├── ConcreteMouseCursor.cs
│   │   │   └── Touch/
│   │   │       └── ConcreteTouchPanel.cs
│   │   └── .iOS/
│   │       ├── ConcreteGamePad.cs
│   │       ├── ConcreteGamePad.tvOS.cs
│   │       ├── ConcreteGamePadDevice.cs
│   │       ├── ConcreteInputFactory.cs
│   │       ├── ConcreteJoystick.cs
│   │       ├── ConcreteKeyboard.cs
│   │       ├── ConcreteKeyboardInput.cs
│   │       ├── ConcreteMessageBox.cs
│   │       ├── ConcreteMouse.cs
│   │       ├── ConcreteMouseCursor.cs
│   │       └── Touch/
│   │           └── ConcreteTouchPanel.cs
│   ├── Kni.Platform.Android.GL.Xamarin.csproj
│   ├── Kni.Platform.Android.GL.csproj
│   ├── Kni.Platform.Blazor.GL.csproj
│   ├── Kni.Platform.Cardboard.GL.csproj
│   ├── Kni.Platform.Oculus.GL.csproj
│   ├── Kni.Platform.Ref.csproj
│   ├── Kni.Platform.SDL2.GL.csproj
│   ├── Kni.Platform.SDL2.GL.dll.config
│   ├── Kni.Platform.UAP.DX11.csproj
│   ├── Kni.Platform.WinForms.DX11.OculusOVR.csproj
│   ├── Kni.Platform.WinForms.DX11.csproj
│   ├── Kni.Platform.iOS.GL.csproj
│   ├── Media/
│   │   ├── Android/
│   │   │   ├── ConcreteAlbum.cs
│   │   │   ├── ConcreteMediaFactory.cs
│   │   │   ├── ConcreteMediaLibrary.cs
│   │   │   ├── ConcreteMediaPlayer.cs
│   │   │   ├── ConcreteSong.cs
│   │   │   ├── ConcreteVideo.cs
│   │   │   └── ConcreteVideoPlayer.cs
│   │   ├── Blazor/
│   │   │   ├── ConcreteAlbum.cs
│   │   │   ├── ConcreteMediaFactory.cs
│   │   │   ├── ConcreteMediaLibrary.cs
│   │   │   ├── ConcreteMediaPlayer.cs
│   │   │   ├── ConcreteSong.cs
│   │   │   ├── ConcreteVideo.cs
│   │   │   └── ConcreteVideoPlayer.cs
│   │   ├── DesktopGL/
│   │   │   ├── ConcreteAlbum.cs
│   │   │   ├── ConcreteMediaFactory.cs
│   │   │   ├── ConcreteMediaLibrary.cs
│   │   │   ├── ConcreteMediaPlayer.cs
│   │   │   ├── ConcreteSong.cs
│   │   │   ├── ConcreteVideo.cs
│   │   │   └── ConcreteVideoPlayer.cs
│   │   ├── MacOS/
│   │   │   ├── ConcreteMediaFactory.cs
│   │   │   ├── ConcreteVideo.cs
│   │   │   └── ConcreteVideoPlayer.cs
│   │   ├── Ref/
│   │   │   ├── ConcreteAlbum.cs
│   │   │   ├── ConcreteMediaFactory.cs
│   │   │   ├── ConcreteMediaLibrary.cs
│   │   │   ├── ConcreteMediaPlayer.cs
│   │   │   ├── ConcreteSong.cs
│   │   │   ├── ConcreteVideo.cs
│   │   │   └── ConcreteVideoPlayer.cs
│   │   ├── WME/
│   │   │   ├── ConcreteAlbum.cs
│   │   │   ├── ConcreteMediaFactory.cs
│   │   │   ├── ConcreteMediaLibrary.cs
│   │   │   ├── ConcreteMediaPlayer.cs
│   │   │   ├── ConcreteSong.cs
│   │   │   ├── ConcreteVideo.cs
│   │   │   ├── ConcreteVideoPlayer.cs
│   │   │   └── MusicProperties.cs
│   │   ├── WMS/
│   │   │   ├── ConcreteAlbum.cs
│   │   │   ├── ConcreteMediaFactory.cs
│   │   │   ├── ConcreteMediaLibrary.cs
│   │   │   ├── ConcreteMediaPlayer.cs
│   │   │   ├── ConcreteSong.cs
│   │   │   ├── ConcreteVideo.cs
│   │   │   ├── ConcreteVideoPlayer.cs
│   │   │   └── VideoSampleGrabber.cs
│   │   └── iOS/
│   │       ├── ConcreteAlbum.cs
│   │       ├── ConcreteMediaFactory.cs
│   │       ├── ConcreteMediaLibrary.cs
│   │       ├── ConcreteMediaPlayer.cs
│   │       ├── ConcreteSong.cs
│   │       ├── ConcreteVideo.cs
│   │       └── ConcreteVideoPlayer.cs
│   ├── MonoGame.Framework.DesktopGL.csproj
│   ├── Properties/
│   │   ├── AssemblyInfo.Android.cs
│   │   ├── AssemblyInfo.Blazor.cs
│   │   ├── AssemblyInfo.DesktopGL.cs
│   │   ├── AssemblyInfo.Ref.cs
│   │   ├── AssemblyInfo.UWP.cs
│   │   ├── AssemblyInfo.Windows.cs
│   │   ├── AssemblyInfo.cs
│   │   └── AssemblyInfo.iOS.cs
│   ├── Resources/
│   │   └── Resource.designer.cs
│   ├── Storage/
│   │   ├── .Android/
│   │   │   ├── ConcreteStorageContainer.cs
│   │   │   ├── ConcreteStorageDevice.cs
│   │   │   ├── ConcreteStorageFactory.cs
│   │   │   └── ConcreteStorageService.cs
│   │   ├── .Blazor/
│   │   │   ├── ConcreteStorageContainer.cs
│   │   │   ├── ConcreteStorageDevice.cs
│   │   │   ├── ConcreteStorageFactory.cs
│   │   │   └── ConcreteStorageService.cs
│   │   ├── .Ref/
│   │   │   ├── ConcreteStorageContainer.cs
│   │   │   ├── ConcreteStorageDevice.cs
│   │   │   ├── ConcreteStorageFactory.cs
│   │   │   └── ConcreteStorageService.cs
│   │   ├── .SDL2/
│   │   │   ├── ConcreteStorageContainer.cs
│   │   │   ├── ConcreteStorageDevice.cs
│   │   │   ├── ConcreteStorageFactory.cs
│   │   │   └── ConcreteStorageService.cs
│   │   ├── .UAP/
│   │   │   ├── ConcreteStorageContainer.cs
│   │   │   ├── ConcreteStorageDevice.cs
│   │   │   ├── ConcreteStorageFactory.cs
│   │   │   └── ConcreteStorageService.cs
│   │   ├── .WindowsDX/
│   │   │   ├── ConcreteStorageContainer.cs
│   │   │   ├── ConcreteStorageDevice.cs
│   │   │   ├── ConcreteStorageFactory.cs
│   │   │   └── ConcreteStorageService.cs
│   │   └── .iOS/
│   │       ├── ConcreteStorageContainer.cs
│   │       ├── ConcreteStorageDevice.cs
│   │       ├── ConcreteStorageFactory.cs
│   │       └── ConcreteStorageService.cs
│   ├── Utilities/
│   │   ├── .Android/
│   │   │   └── FuncLoader.cs
│   │   ├── .SDL2/
│   │   │   └── FuncLoader.cs
│   │   ├── .iOS/
│   │   │   └── FuncLoader.cs
│   │   ├── AssemblyHelper.cs
│   │   ├── CurrentPlatform.cs
│   │   ├── InteropHelpers.cs
│   │   ├── MemCopyHelper.cs
│   │   └── Png/
│   │       ├── PngCommon.cs
│   │       ├── PngReader.cs
│   │       ├── PngWriter.cs
│   │       └── ZLibStream.cs
│   ├── XR/
│   │   ├── .Android/
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   ├── .BlazorGL/
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   ├── .CardboardLegacy/
│   │   │   ├── CardboardHeadsetState.cs
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   ├── ConcreteXRFactory.cs
│   │   │   └── GoogleCardboard/
│   │   │       ├── Additions/
│   │   │       │   └── AboutAdditions.txt
│   │   │       ├── GoogleCardboard.csproj
│   │   │       ├── Jars/
│   │   │       │   └── cardboard.jar
│   │   │       └── Transforms/
│   │   │           ├── EnumFields.xml
│   │   │           ├── EnumMethods.xml
│   │   │           └── Metadata.xml
│   │   ├── .LibOVR/
│   │   │   ├── ConcreteOvrSwapChainData.cs
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   ├── .Oculus/
│   │   │   ├── ConcreteOxrSwapChainData.cs
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   ├── .Ref/
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   ├── .SDL2/
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   ├── .UAP/
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   ├── .WindowsDX/
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   └── .iOS/
│   │       ├── ConcreteXRDevice.cs
│   │       └── ConcreteXRFactory.cs
│   └── build/
│       ├── .Android/
│       │   └── nkast.Kni.Platform.Android.GL.targets
│       ├── .SDL2/
│       │   ├── MonoGame.Framework.DesktopGL.targets
│       │   └── nkast.Kni.Platform.SDL2.GL.targets
│       ├── .UAP/
│       │   └── nkast.Kni.Platform.UAP.DX11.targets
│       ├── .WindowsDX/
│       │   └── nkast.Kni.Platform.WinForms.DX11.targets
│       └── .iOS/
│           └── nkast.Kni.Platform.iOS.GL.targets
├── README.md
├── REQUIREMENTS.md
├── Templates/
│   ├── Directory.Build.props
│   ├── MonoGame.Templates.CSharp/
│   │   ├── MonoGame.Templates.CSharp.csproj
│   │   └── content/
│   │       ├── MonoGame.Application.Android.CSharp/
│   │       │   ├── .config/
│   │       │   │   └── dotnet-tools.json
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── Activity1.cs
│   │       │   ├── AndroidManifest.xml
│   │       │   ├── Content/
│   │       │   │   └── Content.mgcb
│   │       │   ├── Game1.cs
│   │       │   ├── MGNamespace.csproj
│   │       │   └── Resources/
│   │       │       └── Values/
│   │       │           └── Strings.xml
│   │       ├── MonoGame.Application.DesktopGL.CSharp/
│   │       │   ├── .config/
│   │       │   │   └── dotnet-tools.json
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── Content/
│   │       │   │   └── Content.mgcb
│   │       │   ├── Game1.cs
│   │       │   ├── MGNamespace.csproj
│   │       │   ├── Program.cs
│   │       │   └── app.manifest
│   │       ├── MonoGame.Application.UWP.CoreApp.CSharp/
│   │       │   ├── .config/
│   │       │   │   └── dotnet-tools.json
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── Content/
│   │       │   │   └── Content.mgcb
│   │       │   ├── Game1.cs
│   │       │   ├── MGNamespace.csproj
│   │       │   ├── Package.appxmanifest
│   │       │   ├── Program.cs
│   │       │   └── Properties/
│   │       │       ├── AssemblyInfo.cs
│   │       │       └── Default.rd.xml
│   │       ├── MonoGame.Application.UWP.XAML.CSharp/
│   │       │   ├── .config/
│   │       │   │   └── dotnet-tools.json
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── App.xaml
│   │       │   ├── App.xaml.cs
│   │       │   ├── Content/
│   │       │   │   └── Content.mgcb
│   │       │   ├── Game1.cs
│   │       │   ├── GamePage.xaml
│   │       │   ├── GamePage.xaml.cs
│   │       │   ├── MGNamespace.csproj
│   │       │   ├── Package.appxmanifest
│   │       │   └── Properties/
│   │       │       ├── AssemblyInfo.cs
│   │       │       └── Default.rd.xml
│   │       ├── MonoGame.Application.WindowsDX.CSharp/
│   │       │   ├── .config/
│   │       │   │   └── dotnet-tools.json
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── Content/
│   │       │   │   └── Content.mgcb
│   │       │   ├── Game1.cs
│   │       │   ├── MGNamespace.csproj
│   │       │   ├── Program.cs
│   │       │   └── app.manifest
│   │       ├── MonoGame.Application.iOS.CSharp/
│   │       │   ├── .config/
│   │       │   │   └── dotnet-tools.json
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── Content/
│   │       │   │   └── Content.mgcb
│   │       │   ├── Entitlements.plist
│   │       │   ├── Game1.cs
│   │       │   ├── Info.plist
│   │       │   ├── LaunchScreen.storyboard
│   │       │   ├── MGNamespace.csproj
│   │       │   └── Program.cs
│   │       ├── MonoGame.Library.CSharp/
│   │       │   ├── .config/
│   │       │   │   └── dotnet-tools.json
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── Content/
│   │       │   │   └── Content.mgcb
│   │       │   ├── Game1.cs
│   │       │   └── MGNamespace.csproj
│   │       ├── MonoGame.Library.Pipeline.Extension.CSharp/
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── Importer1.cs
│   │       │   ├── MGNamespace.csproj
│   │       │   └── Processor1.cs
│   │       └── MonoGame.Library.Shared.CSharp/
│   │           ├── .template.config/
│   │           │   └── template.json
│   │           ├── Content/
│   │           │   └── Content.mgcb
│   │           ├── Game1.cs
│   │           ├── MGNamespace.projitems
│   │           └── MGNamespace.shproj
│   ├── MonoGame.Templates.VSExtension/
│   │   ├── MonoGame.Templates.VSExtension.csproj
│   │   ├── MonoGameTemplatesVSExtensionPackage.cs
│   │   ├── Properties/
│   │   │   └── AssemblyInfo.cs
│   │   ├── Templates.pkgdef
│   │   └── source.extension.vsixmanifest
│   ├── VisualStudio2022/
│   │   ├── ItemTemplates/
│   │   │   ├── DrawableGameComponent/
│   │   │   │   ├── DrawableGameComponent.cs
│   │   │   │   └── DrawableGameComponent.vstemplate
│   │   │   └── GameComponent/
│   │   │       ├── GameComponent.cs
│   │   │       └── GameComponent.vstemplate
│   │   ├── ProjectTemplates/
│   │   │   ├── Android.NetCore/
│   │   │   │   ├── Activity.cs
│   │   │   │   ├── AndroidManifest.xml
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Assets/
│   │   │   │   │   └── AboutAssets.txt
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Directory.Build.props
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   └── Resources/
│   │   │   │       ├── AboutResources.txt
│   │   │   │       ├── Resource.Designer.cs
│   │   │   │       └── Values/
│   │   │   │           ├── Strings.xml
│   │   │   │           └── Styles.xml
│   │   │   ├── BlazorGL.NetCore/
│   │   │   │   ├── App.razor
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Directory.Build.props
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   ├── MainLayout.razor
│   │   │   │   ├── MainLayout.razor.css
│   │   │   │   ├── Pages/
│   │   │   │   │   ├── Index.razor
│   │   │   │   │   └── Index.razor.cs
│   │   │   │   ├── Program.cs
│   │   │   │   ├── Properties/
│   │   │   │   │   └── launchSettings.json
│   │   │   │   ├── _Imports.razor
│   │   │   │   └── wwwroot/
│   │   │   │       ├── Content/
│   │   │   │       │   └── Content.txt
│   │   │   │       ├── css/
│   │   │   │       │   └── app.css
│   │   │   │       ├── index.html
│   │   │   │       └── js/
│   │   │   │           ├── decode.js
│   │   │   │           ├── micProcessor.js
│   │   │   │           └── streamProcessor.js
│   │   │   ├── ContentPipelineExtension.NetFramework/
│   │   │   │   ├── ContentImporter.cs
│   │   │   │   ├── ContentPipelineExtension.csproj
│   │   │   │   ├── ContentPipelineExtension.vstemplate
│   │   │   │   ├── ContentProcessor.cs
│   │   │   │   └── Properties/
│   │   │   │       └── AssemblyInfo.cs
│   │   │   ├── ContentPipelineExtension.NetStandard/
│   │   │   │   ├── ContentImporter.cs
│   │   │   │   ├── ContentPipelineExtension.csproj
│   │   │   │   ├── ContentPipelineExtension.vstemplate
│   │   │   │   ├── ContentProcessor.cs
│   │   │   │   └── Directory.Build.props
│   │   │   ├── DesktopGL.NetCore/
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Directory.Build.props
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   ├── Program.cs
│   │   │   │   └── app.manifest
│   │   │   ├── DesktopGL.NetFramework/
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   ├── Program.cs
│   │   │   │   ├── Properties/
│   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   └── app.manifest
│   │   │   ├── Multiplatform.NetCore/
│   │   │   │   ├── Android/
│   │   │   │   │   ├── Activity.cs
│   │   │   │   │   ├── AndroidManifest.xml
│   │   │   │   │   ├── Application.csproj
│   │   │   │   │   ├── Assets/
│   │   │   │   │   │   └── AboutAssets.txt
│   │   │   │   │   ├── Directory.Build.props
│   │   │   │   │   ├── Game.vstemplate
│   │   │   │   │   └── Resources/
│   │   │   │   │       ├── AboutResources.txt
│   │   │   │   │       ├── Resource.Designer.cs
│   │   │   │   │       └── Values/
│   │   │   │   │           ├── Strings.xml
│   │   │   │   │           └── Styles.xml
│   │   │   │   ├── BlazorGL/
│   │   │   │   │   ├── App.razor
│   │   │   │   │   ├── Application.csproj
│   │   │   │   │   ├── Content/
│   │   │   │   │   │   └── Content.mgcb
│   │   │   │   │   ├── Directory.Build.props
│   │   │   │   │   ├── Game.vstemplate
│   │   │   │   │   ├── MainLayout.razor
│   │   │   │   │   ├── MainLayout.razor.css
│   │   │   │   │   ├── Pages/
│   │   │   │   │   │   ├── Index.razor
│   │   │   │   │   │   └── Index.razor.cs
│   │   │   │   │   ├── Program.cs
│   │   │   │   │   ├── Properties/
│   │   │   │   │   │   └── launchSettings.json
│   │   │   │   │   ├── _Imports.razor
│   │   │   │   │   └── wwwroot/
│   │   │   │   │       ├── Content/
│   │   │   │   │       │   └── Content.txt
│   │   │   │   │       ├── css/
│   │   │   │   │       │   └── app.css
│   │   │   │   │       ├── index.html
│   │   │   │   │       └── js/
│   │   │   │   │           ├── decode.js
│   │   │   │   │           ├── micProcessor.js
│   │   │   │   │           └── streamProcessor.js
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── DesktopGL/
│   │   │   │   │   ├── Application.csproj
│   │   │   │   │   ├── Directory.Build.props
│   │   │   │   │   ├── Game.vstemplate
│   │   │   │   │   ├── Program.cs
│   │   │   │   │   └── app.manifest
│   │   │   │   ├── Directory.Build.props
│   │   │   │   ├── GameMultiplatform.vstemplate
│   │   │   │   ├── Shared/
│   │   │   │   │   ├── Game.cs
│   │   │   │   │   ├── Shared.vstemplate
│   │   │   │   │   ├── SharedProject.projitems
│   │   │   │   │   └── SharedProject.shproj
│   │   │   │   └── WindowsDX/
│   │   │   │       ├── Application.csproj
│   │   │   │       ├── Directory.Build.props
│   │   │   │       ├── Game.vstemplate
│   │   │   │       ├── Program.cs
│   │   │   │       └── app.manifest
│   │   │   ├── Multiplatform.NetFramework/
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── DesktopGL/
│   │   │   │   │   ├── Application.csproj
│   │   │   │   │   ├── Game.vstemplate
│   │   │   │   │   ├── Program.cs
│   │   │   │   │   ├── Properties/
│   │   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   │   └── app.manifest
│   │   │   │   ├── GameMultiplatform.vstemplate
│   │   │   │   ├── Shared/
│   │   │   │   │   ├── Game.cs
│   │   │   │   │   ├── Shared.vstemplate
│   │   │   │   │   ├── SharedProject.projitems
│   │   │   │   │   └── SharedProject.shproj
│   │   │   │   ├── UWPCore/
│   │   │   │   │   ├── Application.csproj
│   │   │   │   │   ├── Game.vstemplate
│   │   │   │   │   ├── Package.appxmanifest
│   │   │   │   │   ├── Program.cs
│   │   │   │   │   └── Properties/
│   │   │   │   │       ├── AssemblyInfo.cs
│   │   │   │   │       └── Default.rd.xml
│   │   │   │   ├── UWPXaml/
│   │   │   │   │   ├── App.xaml
│   │   │   │   │   ├── App.xaml.cs
│   │   │   │   │   ├── Application.csproj
│   │   │   │   │   ├── Game.vstemplate
│   │   │   │   │   ├── MainPage.xaml
│   │   │   │   │   ├── MainPage.xaml.cs
│   │   │   │   │   ├── Package.appxmanifest
│   │   │   │   │   └── Properties/
│   │   │   │   │       ├── AssemblyInfo.cs
│   │   │   │   │       └── Default.rd.xml
│   │   │   │   └── WindowsDX/
│   │   │   │       ├── Application.csproj
│   │   │   │       ├── Game.vstemplate
│   │   │   │       ├── Program.cs
│   │   │   │       ├── Properties/
│   │   │   │       │   └── AssemblyInfo.cs
│   │   │   │       └── app.manifest
│   │   │   ├── Oculus.NetCore/
│   │   │   │   ├── Activity.cs
│   │   │   │   ├── AndroidManifest.xml
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Assets/
│   │   │   │   │   └── AboutAssets.txt
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Directory.Build.props
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   └── Resources/
│   │   │   │       ├── AboutResources.txt
│   │   │   │       ├── Resource.Designer.cs
│   │   │   │       └── Values/
│   │   │   │           ├── Strings.xml
│   │   │   │           └── Styles.xml
│   │   │   ├── UWPCore.UAP/
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   ├── Package.appxmanifest
│   │   │   │   ├── Program.cs
│   │   │   │   └── Properties/
│   │   │   │       ├── AssemblyInfo.cs
│   │   │   │       └── Default.rd.xml
│   │   │   ├── UWPXaml.UAP/
│   │   │   │   ├── App.xaml
│   │   │   │   ├── App.xaml.cs
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   ├── MainPage.xaml
│   │   │   │   ├── MainPage.xaml.cs
│   │   │   │   ├── Package.appxmanifest
│   │   │   │   └── Properties/
│   │   │   │       ├── AssemblyInfo.cs
│   │   │   │       └── Default.rd.xml
│   │   │   ├── WindowsDX.NetCore/
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Directory.Build.props
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   ├── Program.cs
│   │   │   │   └── app.manifest
│   │   │   ├── WindowsDX.NetFramework/
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   ├── Program.cs
│   │   │   │   ├── Properties/
│   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   └── app.manifest
│   │   │   └── iOS.NetCore/
│   │   │       ├── Application.csproj
│   │   │       ├── Content/
│   │   │       │   └── Content.mgcb
│   │   │       ├── Directory.Build.props
│   │   │       ├── Entitlements.plist
│   │   │       ├── Game.cs
│   │   │       ├── Game.vstemplate
│   │   │       ├── Info.plist
│   │   │       └── Program.cs
│   │   └── default.build
│   ├── default.build
│   └── dotnetTemplates/
│       ├── Install.bat
│       ├── README.md
│       ├── Uninstall.bat
│       ├── content/
│       │   ├── Android.NetCore.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Activity.cs
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── AndroidManifest.xml
│       │   │   ├── Assets/
│       │   │   │   └── AboutAssets.txt
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Directory.Build.props
│       │   │   └── Resources/
│       │   │       ├── AboutResources.txt
│       │   │       ├── Resource.Designer.cs
│       │   │       └── Values/
│       │   │           ├── Strings.xml
│       │   │           └── Styles.xml
│       │   ├── BlazorGL.NetCore.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── Game.vstemplate
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── App.razor
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Directory.Build.props
│       │   │   ├── MainLayout.razor
│       │   │   ├── MainLayout.razor.css
│       │   │   ├── Pages/
│       │   │   │   ├── Index.razor
│       │   │   │   └── Index.razor.cs
│       │   │   ├── Program.cs
│       │   │   ├── Properties/
│       │   │   │   └── launchSettings.json
│       │   │   ├── _Imports.razor
│       │   │   └── wwwroot/
│       │   │       ├── Content/
│       │   │       │   └── .gitignore
│       │   │       ├── css/
│       │   │       │   └── app.css
│       │   │       ├── index.html
│       │   │       └── js/
│       │   │           ├── decode.js
│       │   │           ├── micProcessor.js
│       │   │           └── streamProcessor.js
│       │   ├── ContentPipelineExtension.NetStandard.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── ContentImporter1.cs
│       │   │   ├── ContentProcessor1.cs
│       │   │   └── Directory.Build.props
│       │   ├── DrawableGameComponent.CSharp/
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   └── DrawableGameComponent1.cs
│       │   ├── GameComponent.CSharp/
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   └── GameComponent1.cs
│       │   ├── Multiplatform.NetCore.CSharp/
│       │   │   ├── $projectname$.Android.GL/
│       │   │   │   ├── $projectname$.Android.GL.csproj
│       │   │   │   ├── $projectname$Activity.cs
│       │   │   │   ├── AndroidManifest.xml
│       │   │   │   ├── Assets/
│       │   │   │   │   └── AboutAssets.txt
│       │   │   │   ├── Directory.Build.props
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   └── Resources/
│       │   │   │       ├── AboutResources.txt
│       │   │   │       ├── Resource.Designer.cs
│       │   │   │       └── Values/
│       │   │   │           ├── Strings.xml
│       │   │   │           └── Styles.xml
│       │   │   ├── $projectname$.Blazor.GL/
│       │   │   │   ├── $projectname$.Blazor.GL.csproj
│       │   │   │   ├── App.razor
│       │   │   │   ├── Directory.Build.props
│       │   │   │   ├── MainLayout.razor
│       │   │   │   ├── MainLayout.razor.css
│       │   │   │   ├── Pages/
│       │   │   │   │   ├── Index.razor
│       │   │   │   │   └── Index.razor.cs
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   ├── Program.cs
│       │   │   │   ├── Properties/
│       │   │   │   │   └── launchSettings.json
│       │   │   │   ├── _Imports.razor
│       │   │   │   └── wwwroot/
│       │   │   │       ├── Content/
│       │   │   │       │   └── .gitignore
│       │   │   │       ├── css/
│       │   │   │       │   └── app.css
│       │   │   │       ├── index.html
│       │   │   │       └── js/
│       │   │   │           ├── decode.js
│       │   │   │           ├── micProcessor.js
│       │   │   │           └── streamProcessor.js
│       │   │   ├── $projectname$.SDL2.GL/
│       │   │   │   ├── $projectname$.SDL2.GL.csproj
│       │   │   │   ├── Directory.Build.props
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   ├── Program.cs
│       │   │   │   └── app.manifest
│       │   │   ├── $projectname$.Shared/
│       │   │   │   ├── $projectname$.Shared.projitems
│       │   │   │   ├── $projectname$.Shared.shproj
│       │   │   │   └── $projectname$Game.cs
│       │   │   ├── $projectname$.WinForms.DX11/
│       │   │   │   ├── $projectname$.WinForms.DX11.csproj
│       │   │   │   ├── Directory.Build.props
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   ├── Program.cs
│       │   │   │   └── app.manifest
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   └── Directory.Build.props
│       │   ├── Multiplatform.NetFramework.CSharp/
│       │   │   ├── $projectname$.SDL2.GL/
│       │   │   │   ├── $projectname$.SDL2.GL.csproj
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   ├── Program.cs
│       │   │   │   ├── Properties/
│       │   │   │   │   └── AssemblyInfo.cs
│       │   │   │   └── app.manifest
│       │   │   ├── $projectname$.Shared/
│       │   │   │   ├── $projectname$.Shared.projitems
│       │   │   │   ├── $projectname$.Shared.shproj
│       │   │   │   └── $projectname$Game.cs
│       │   │   ├── $projectname$.UWPCore/
│       │   │   │   ├── $projectname$.UWPCore.csproj
│       │   │   │   ├── Package.appxmanifest
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   ├── Program.cs
│       │   │   │   └── Properties/
│       │   │   │       ├── AssemblyInfo.cs
│       │   │   │       └── Default.rd.xml
│       │   │   ├── $projectname$.UWPXaml/
│       │   │   │   ├── $projectname$.UWPXaml.csproj
│       │   │   │   ├── App.xaml
│       │   │   │   ├── App.xaml.cs
│       │   │   │   ├── MainPage.xaml
│       │   │   │   ├── MainPage.xaml.cs
│       │   │   │   ├── Package.appxmanifest
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   └── Properties/
│       │   │   │       ├── AssemblyInfo.cs
│       │   │   │       └── Default.rd.xml
│       │   │   ├── $projectname$.WinForms.DX11/
│       │   │   │   ├── $projectname$.WinForms.DX11.csproj
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   ├── Program.cs
│       │   │   │   ├── Properties/
│       │   │   │   │   └── AssemblyInfo.cs
│       │   │   │   └── app.manifest
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   └── .template.config/
│       │   │       ├── ide.host.json
│       │   │       └── template.json
│       │   ├── Oculus.NetCore.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Activity.cs
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── Game.vstemplate
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── AndroidManifest.xml
│       │   │   ├── Assets/
│       │   │   │   └── AboutAssets.txt
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Directory.Build.props
│       │   │   └── Resources/
│       │   │       ├── AboutResources.txt
│       │   │       ├── Resource.Designer.cs
│       │   │       └── Values/
│       │   │           ├── Strings.xml
│       │   │           └── Styles.xml
│       │   ├── SDL2.GL.NetCore.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Directory.Build.props
│       │   │   ├── Program.cs
│       │   │   └── app.manifest
│       │   ├── SDL2.GL.NetFramework.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Program.cs
│       │   │   ├── Properties/
│       │   │   │   └── AssemblyInfo.cs
│       │   │   └── app.manifest
│       │   ├── UWPCore.UAP.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Package.appxmanifest
│       │   │   ├── Program.cs
│       │   │   └── Properties/
│       │   │       ├── AssemblyInfo.cs
│       │   │       └── Default.rd.xml
│       │   ├── UWPXaml.UAP.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── App.xaml
│       │   │   ├── App.xaml.cs
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── MainPage.xaml
│       │   │   ├── MainPage.xaml.cs
│       │   │   ├── Package.appxmanifest
│       │   │   └── Properties/
│       │   │       ├── AssemblyInfo.cs
│       │   │       └── Default.rd.xml
│       │   ├── WinForms.DX11.NetCore.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Directory.Build.props
│       │   │   ├── Program.cs
│       │   │   └── app.manifest
│       │   ├── WinForms.DX11.NetFramework.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Program.cs
│       │   │   ├── Properties/
│       │   │   │   └── AssemblyInfo.cs
│       │   │   └── app.manifest
│       │   └── iOS.NetCore.CSharp/
│       │       ├── $projectname$.csproj
│       │       ├── $projectname$.sln
│       │       ├── $projectname$Game.cs
│       │       ├── .template.config/
│       │       │   ├── ide.host.json
│       │       │   └── template.json
│       │       ├── Content/
│       │       │   └── $projectname$Content.mgcb
│       │       ├── Directory.Build.props
│       │       ├── Entitlements.plist
│       │       ├── Info.plist
│       │       └── Program.cs
│       ├── installPackage.bat
│       ├── nkast.Kni.Templates.csproj
│       ├── pack.bat
│       └── uninstallPackage.bat
├── Tests/
│   ├── Assets/
│   │   ├── Audio/
│   │   │   ├── Tests.xap
│   │   │   ├── Win/
│   │   │   │   ├── Tests.xgs
│   │   │   │   ├── Tests.xsb
│   │   │   │   └── Tests.xwb
│   │   │   ├── rock_loop_stereo.ogg
│   │   │   ├── rock_loop_stereo.wma
│   │   │   ├── tone_mono_44khz_16bit.xnb
│   │   │   ├── tone_mono_44khz_8bit.xnb
│   │   │   ├── tone_mono_44khz_float.xnb
│   │   │   ├── tone_mono_44khz_imaadpcm.xnb
│   │   │   ├── tone_mono_44khz_msadpcm.xnb
│   │   │   ├── tone_stereo_44khz_16bit.xnb
│   │   │   ├── tone_stereo_44khz_8bit.xnb
│   │   │   ├── tone_stereo_44khz_float.xnb
│   │   │   ├── tone_stereo_44khz_imaadpcm.xnb
│   │   │   └── tone_stereo_44khz_msadpcm.xnb
│   │   ├── Effects/
│   │   │   ├── Bevels.fx
│   │   │   ├── BlackOut.fx
│   │   │   ├── ColorFlip.fx
│   │   │   ├── ComputeShader.fx
│   │   │   ├── CustomSpriteBatchEffect.fx
│   │   │   ├── CustomSpriteBatchEffectComparisonSampler.fx
│   │   │   ├── DeferredBasicEffect.fx
│   │   │   ├── DefinesTest.fx
│   │   │   ├── DirectX/
│   │   │   │   ├── Bevels.xnb
│   │   │   │   ├── BlackOut.xnb
│   │   │   │   ├── ColorFlip.xnb
│   │   │   │   ├── CustomSpriteBatchEffect.xnb
│   │   │   │   ├── CustomSpriteBatchEffectComparisonSampler.xnb
│   │   │   │   ├── Grayscale.xnb
│   │   │   │   ├── HighContrast.xnb
│   │   │   │   ├── Instancing.xnb
│   │   │   │   ├── Invert.xnb
│   │   │   │   ├── NewSyntax_s0s1t0t1.xnb
│   │   │   │   ├── NewSyntax_t0t1.xnb
│   │   │   │   ├── NoEffect.xnb
│   │   │   │   ├── OldSyntax_s0s1t0t1.xnb
│   │   │   │   ├── OldSyntax_t0t1.xnb
│   │   │   │   ├── OldSyntax_t1t0.xnb
│   │   │   │   ├── ParserTest.xnb
│   │   │   │   ├── RainbowH.xnb
│   │   │   │   ├── TextureArrayEffect.xnb
│   │   │   │   └── VertexTextureEffect.xnb
│   │   │   ├── DirectX.mgcb
│   │   │   ├── Grayscale.fx
│   │   │   ├── HighContrast.fx
│   │   │   ├── Instancing.fx
│   │   │   ├── Invert.fx
│   │   │   ├── NewSyntax_s0s1t0t1.fx
│   │   │   ├── NewSyntax_t0t1.fx
│   │   │   ├── NoEffect.fx
│   │   │   ├── OldSyntax_s0s1.fx
│   │   │   ├── OldSyntax_s0s1t0t1.fx
│   │   │   ├── OldSyntax_t0t1.fx
│   │   │   ├── OldSyntax_t1t0.fx
│   │   │   ├── OldSyntax_x.fx
│   │   │   ├── OpenGL/
│   │   │   │   ├── Bevels.xnb
│   │   │   │   ├── BlackOut.xnb
│   │   │   │   ├── ColorFlip.xnb
│   │   │   │   ├── CustomSpriteBatchEffect.xnb
│   │   │   │   ├── Grayscale.xnb
│   │   │   │   ├── HighContrast.xnb
│   │   │   │   ├── Invert.xnb
│   │   │   │   ├── NewSyntax_s0s1t0t1.xnb
│   │   │   │   ├── NewSyntax_t0t1.xnb
│   │   │   │   ├── NoEffect.xnb
│   │   │   │   ├── OldSyntax_s0s1t0t1.xnb
│   │   │   │   ├── OldSyntax_t0t1.xnb
│   │   │   │   ├── OldSyntax_t1t0.xnb
│   │   │   │   └── RainbowH.xnb
│   │   │   ├── OpenGL.mgcb
│   │   │   ├── OptimizedMatrix.fx
│   │   │   ├── OptimizedMatrixArray.fx
│   │   │   ├── ParserTest.fx
│   │   │   ├── PreprocessorInclude.fxh
│   │   │   ├── PreprocessorTest.fx
│   │   │   ├── README.txt
│   │   │   ├── RainbowH.fx
│   │   │   ├── TextureArrayEffect.fx
│   │   │   ├── VertexTextureEffect.fx
│   │   │   ├── XNA/
│   │   │   │   ├── Bevels.xnb
│   │   │   │   ├── BlackOut.xnb
│   │   │   │   ├── ColorFlip.xnb
│   │   │   │   ├── CustomSpriteBatchEffect.xnb
│   │   │   │   ├── Grayscale.xnb
│   │   │   │   ├── HighContrast.xnb
│   │   │   │   ├── Instancing.xnb
│   │   │   │   ├── Invert.xnb
│   │   │   │   ├── NoEffect.xnb
│   │   │   │   ├── OldSyntax_s0s1.xnb
│   │   │   │   ├── OldSyntax_s0s1t0t1.xnb
│   │   │   │   ├── OldSyntax_t0t1.xnb
│   │   │   │   ├── OldSyntax_x.xnb
│   │   │   │   └── RainbowH.xnb
│   │   │   ├── XNA.csproj
│   │   │   └── XNA.sln
│   │   ├── Fonts/
│   │   │   ├── DataFont.xnb
│   │   │   ├── Default.xnb
│   │   │   ├── JingJing.spritefont
│   │   │   ├── JingJing.xnb
│   │   │   ├── Lindsey.spritefont
│   │   │   ├── Lindsey.xnb
│   │   │   ├── Localized.spritefont
│   │   │   ├── Motorwerk.spritefont
│   │   │   ├── Motorwerk.xnb
│   │   │   ├── QuartzMS.spritefont
│   │   │   ├── QuartzMS.xnb
│   │   │   ├── SegoeKeycaps.spritefont
│   │   │   ├── SegoeKeycaps.xnb
│   │   │   └── Strings.resx
│   │   ├── Models/
│   │   │   ├── BlenderDefaultCube.xnb
│   │   │   ├── Box.blend
│   │   │   ├── Dude/
│   │   │   │   ├── dude.fbx
│   │   │   │   ├── dude_2011.fbx
│   │   │   │   ├── head.tga
│   │   │   │   ├── jacket.tga
│   │   │   │   ├── pants.tga
│   │   │   │   └── upBodyC.tga
│   │   │   ├── NonSkeletonAnimated.fbx
│   │   │   ├── Spaceship.xnb
│   │   │   └── enemy_0.xnb
│   │   ├── Projects/
│   │   │   ├── BuildSimpleProject.csproj
│   │   │   └── Content/
│   │   │       ├── Content.mgcb
│   │   │       └── ContentFont.spritefont
│   │   ├── Textures/
│   │   │   ├── GlassPane.xnb
│   │   │   ├── LogoOnly_64px-R8G8B8.dds
│   │   │   ├── LogoOnly_64px-X8R8G8B8.dds
│   │   │   ├── LogoOnly_64px-mipmaps.dds
│   │   │   ├── LogoOnly_64px.dds
│   │   │   ├── LogoOnly_64px.tga
│   │   │   ├── LogoOnly_64px.tif
│   │   │   ├── Logo_65x64_16bit.xnb
│   │   │   ├── MonoGameIcon.xnb
│   │   │   ├── SampleCube64DXT1Mips.dds
│   │   │   ├── SampleCube64DXT1Mips.xnb
│   │   │   ├── Sunset.dds
│   │   │   ├── Surge.xnb
│   │   │   ├── fun-background.xnb
│   │   │   ├── lines-128.xnb
│   │   │   ├── lines-32.xnb
│   │   │   ├── lines-64.xnb
│   │   │   ├── lines-diag-128.xnb
│   │   │   ├── lines-diag-32.xnb
│   │   │   ├── lines-diag-64.xnb
│   │   │   ├── random_16px_dxt.xnb
│   │   │   ├── random_16px_dxt_alpha.xnb
│   │   │   ├── red_668_dxt.xnb
│   │   │   ├── rgbf.tif
│   │   │   ├── sample_1280x853.hdr
│   │   │   ├── white-1.xnb
│   │   │   ├── white-128.xnb
│   │   │   ├── white-32.xnb
│   │   │   └── white-64.xnb
│   │   ├── Xml/
│   │   │   ├── 01_TheBasics.xml
│   │   │   ├── 02_Inheritance.xml
│   │   │   ├── 03_IncludingPrivateMembers.xml
│   │   │   ├── 04_ExcludingPublicMembers.xml
│   │   │   ├── 04_ExcludingPublicMembersOutput.xml
│   │   │   ├── 05_RenamingXmlElements.xml
│   │   │   ├── 06_NullReferences.xml
│   │   │   ├── 07_OptionalElements.xml
│   │   │   ├── 08_AllowNull.xml
│   │   │   ├── 09_Collections.xml
│   │   │   ├── 10_CollectionItemName.xml
│   │   │   ├── 11_Dictionaries.xml
│   │   │   ├── 12_MathTypes.xml
│   │   │   ├── 13_PolymorphicTypes.xml
│   │   │   ├── 14_Namespaces.xml
│   │   │   ├── 15_FlattenContent.xml
│   │   │   ├── 16_SharedResources.xml
│   │   │   ├── 17_ExternalReferences.xml
│   │   │   ├── 18_PrimitiveTypes.xml
│   │   │   ├── 19_FontDescription.xml
│   │   │   ├── 20_SystemTypes.xml
│   │   │   ├── 21_CustomFormatting.xml
│   │   │   ├── 22_GetterOnlyProperties.xml
│   │   │   ├── 23_GetterOnlyPolymorphicArrayProperties.xml
│   │   │   ├── 24_GenericTypes.xml
│   │   │   ├── 25_StructArrayNoElements.xml
│   │   │   ├── 26_ChildCollections.xml
│   │   │   ├── 27_Colors.xml
│   │   │   └── 28_XnaCurve.xml
│   │   └── tests.xsl
│   ├── Components/
│   │   ├── Colored3DCubeComponent.cs
│   │   ├── DrawFrameNumberComponent.cs
│   │   ├── FlexibleGameComponent.cs
│   │   ├── ImplicitDrawOrderComponent.cs
│   │   ├── InitializeOrderComponent.cs
│   │   ├── Simple3DCubeComponent.cs
│   │   ├── SpaceshipModelDrawComponent.cs
│   │   ├── TexturedQuadComponent.cs
│   │   ├── VisualTestDrawableGameComponent.cs
│   │   └── VisualTestGameComponent.cs
│   ├── ContentPipeline/
│   │   ├── AssetTestClasses.cs
│   │   ├── AudioContentTests.cs
│   │   ├── BitmapContentTests.cs
│   │   ├── BuilderTargetsTest.cs
│   │   ├── ContentCompilerTest.cs
│   │   ├── EffectProcessorTests.cs
│   │   ├── FbxImporterTests.cs
│   │   ├── FontDescriptionProcessorTests.cs
│   │   ├── FontDescriptionTests.cs
│   │   ├── FontTextureProcessorTests.cs
│   │   ├── IntermediateDeserializerTest.cs
│   │   ├── IntermediateSerializerTest.cs
│   │   ├── MeshBuilderTests.cs
│   │   ├── MeshHelperTest.cs
│   │   ├── ModelProcessorTests.cs
│   │   ├── Mp3ImporterTests.cs
│   │   ├── OggImporterTests.cs
│   │   ├── OpenAssetImporterTests.cs
│   │   ├── TestCompiler.cs
│   │   ├── TestImporterContext.cs
│   │   ├── TextureContentTests.cs
│   │   ├── TextureImporterTests.cs
│   │   ├── TextureProcessorTests.cs
│   │   ├── WavImporterTests.cs
│   │   └── WmaImporterTests.cs
│   ├── Directory.Build.props
│   ├── Framework/
│   │   ├── BoundingTest.cs
│   │   ├── ColorTest.cs
│   │   ├── CurveKeyCollectionTest.cs
│   │   ├── CurveKeyTest.cs
│   │   ├── CurveTest.cs
│   │   ├── EnumConformingTest.cs
│   │   ├── FrameworkDispatcherTest.cs
│   │   ├── MathHelperTest.cs
│   │   ├── MatrixTest.cs
│   │   ├── PackedVectorTest.cs
│   │   ├── PlaneTest.cs
│   │   ├── PointTest.cs
│   │   ├── QuaternionTest.cs
│   │   ├── RayTest.cs
│   │   ├── RectangleTest.cs
│   │   ├── TitleContainerTest.cs
│   │   ├── UtilitiesTest.cs
│   │   ├── Vector2Test.cs
│   │   ├── Vector3Test.cs
│   │   ├── Vector4Test.cs
│   │   └── VertexTests.cs
│   ├── Framework.Audio/
│   │   ├── DynamicSoundEffectInstanceTest.cs
│   │   ├── SoundEffectInstanceTest.cs
│   │   ├── SoundEffectTest.cs
│   │   ├── XAudio/
│   │   │   └── SoundEffectInstanceXAudioTest.cs
│   │   └── XactTest.cs
│   ├── Framework.Game/
│   │   ├── GameComponentTest.cs
│   │   ├── GameTest+Methods.cs
│   │   ├── GameTest+Properties.cs
│   │   └── GameTest.cs
│   ├── Framework.Graphics/
│   │   ├── BlendStateTest.cs
│   │   ├── DepthStencilStateTest.cs
│   │   ├── EffectTest.cs
│   │   ├── GraphicsAdapterTest.cs
│   │   ├── GraphicsDeviceManagerTest.cs
│   │   ├── GraphicsDeviceTest.cs
│   │   ├── IndexBufferTest.cs
│   │   ├── MiscellaneousTests.cs
│   │   ├── ModelTest.cs
│   │   ├── OcclusionQueryTest.cs
│   │   ├── ProfileReachTest.cs
│   │   ├── RasterizerStateTest.cs
│   │   ├── RenderTarget2DTest.cs
│   │   ├── RenderTargetCubeTest.cs
│   │   ├── SamplerStateTest.cs
│   │   ├── ScissorRectangleTest.cs
│   │   ├── ShaderTest.cs
│   │   ├── SpriteBatchTest.cs
│   │   ├── SpriteFontTest.cs
│   │   ├── Texture2DNonVisualTest.cs
│   │   ├── Texture2DTest.cs
│   │   ├── Texture3DNonVisualTest.cs
│   │   ├── Texture3DTest.cs
│   │   ├── TextureCubeTest.cs
│   │   ├── VertexBufferTest.cs
│   │   ├── ViewportTest.cs
│   │   └── VisualMiscellaneousTests.cs
│   ├── Framework.Input/
│   │   ├── GamePadTest.cs
│   │   ├── GestureRecognizerTest.cs
│   │   ├── JoystickTest.cs
│   │   ├── KeyboardTest.cs
│   │   ├── MouseTest.cs
│   │   ├── TouchCollectionTest.cs
│   │   ├── TouchLocationTest.cs
│   │   └── TouchPanelTest.cs
│   ├── Interactive/
│   │   ├── Linux/
│   │   │   └── MouseGetStateAndIsMouseVisibleTester/
│   │   │       └── MouseGetStateAndIsMouseVisibleTester.csproj
│   │   ├── MacOS/
│   │   │   ├── BlockingRun/
│   │   │   │   ├── BlockingRun.csproj
│   │   │   │   ├── BlockingRunGame.cs
│   │   │   │   ├── Content/
│   │   │   │   │   └── SimpleFont.xnb
│   │   │   │   ├── Info.plist
│   │   │   │   └── Main.cs
│   │   │   ├── GamePadTest/
│   │   │   │   ├── Content/
│   │   │   │   │   ├── UiCursor.xnb
│   │   │   │   │   └── fntStandard.xnb
│   │   │   │   ├── Game1.cs
│   │   │   │   ├── GamePadTest.csproj
│   │   │   │   ├── Info.plist
│   │   │   │   └── Program.cs
│   │   │   ├── MouseGetStateAndIsMouseVisibleTester/
│   │   │   │   ├── MouseGetStateAndIsMouseVisibleTester/
│   │   │   │   │   ├── Content/
│   │   │   │   │   │   ├── UiCursor.xnb
│   │   │   │   │   │   └── fntStandard.xnb
│   │   │   │   │   ├── Enums.cs
│   │   │   │   │   ├── Game1.cs
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── InputManager.cs
│   │   │   │   │   ├── MainMenu.xib
│   │   │   │   │   ├── MouseGetStateAndIsMouseVisibleTester.csproj
│   │   │   │   │   ├── Object.cs
│   │   │   │   │   ├── Program.cs
│   │   │   │   │   ├── Properties/
│   │   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   │   └── TextManager.cs
│   │   │   │   └── MouseGetStateAndIsMouseVisibleTester.sln
│   │   │   ├── PrimitivesTest/
│   │   │   │   ├── App.config
│   │   │   │   ├── Game1.cs
│   │   │   │   ├── Info.plist
│   │   │   │   ├── PrimitivesTest.csproj
│   │   │   │   └── Program.cs
│   │   │   ├── SoundTest/
│   │   │   │   ├── Content/
│   │   │   │   │   ├── DepositingIntoVat_Loop.xnb
│   │   │   │   │   ├── Explosion.xnb
│   │   │   │   │   ├── ExplosionSound.xnb
│   │   │   │   │   └── FillingHoneyPot_Loop.xnb
│   │   │   │   ├── Game1.cs
│   │   │   │   ├── Info.plist
│   │   │   │   ├── MainMenu.xib
│   │   │   │   ├── Program.cs
│   │   │   │   └── SoundTest_MacOS.csproj
│   │   │   ├── SoundTest2/
│   │   │   │   └── SoundTest2_MacOs/
│   │   │   │       ├── Content/
│   │   │   │       │   ├── DepositingIntoVat_Loop.xnb
│   │   │   │       │   ├── Explosion.xnb
│   │   │   │       │   ├── ExplosionSound.xnb
│   │   │   │       │   └── FillingHoneyPot_Loop.xnb
│   │   │   │       ├── Game1.cs
│   │   │   │       ├── Info.plist
│   │   │   │       ├── MainMenu.xib
│   │   │   │       ├── Program.cs
│   │   │   │       └── SoundTest2_MacOs.csproj
│   │   │   ├── TestDataSetAndGet/
│   │   │   │   ├── Content/
│   │   │   │   │   ├── Block.xnb
│   │   │   │   │   ├── Person.xnb
│   │   │   │   │   └── Warrior3Active.xnb
│   │   │   │   ├── Game1.cs
│   │   │   │   ├── Info.plist
│   │   │   │   ├── Program.cs
│   │   │   │   └── TestDataSetAndGet.csproj
│   │   │   └── TextureScaleColorTest/
│   │   │       ├── Content/
│   │   │       │   ├── FontCalibri14.xnb
│   │   │       │   └── blank.xnb
│   │   │       ├── Game1.cs
│   │   │       ├── Info.plist
│   │   │       ├── MainMenu.xib
│   │   │       ├── Program.cs
│   │   │       └── TextureScaleColorTest.csproj
│   │   ├── MonoGame.InteractiveTests.Linux.sln
│   │   ├── MonoGame.InteractiveTests.MacOS.sln
│   │   ├── MonoGame.InteractiveTests.Windows.sln
│   │   ├── Windows/
│   │   │   ├── Issue1355/
│   │   │   │   ├── Issue1355/
│   │   │   │   │   ├── Game.cs
│   │   │   │   │   ├── Issue1355.csproj
│   │   │   │   │   └── Issue1355_MonoGame.csproj
│   │   │   │   ├── Issue1355.sln
│   │   │   │   └── Issue1355Content/
│   │   │   │       ├── DutchAndHarley.spritefont
│   │   │   │       └── Issue1355Content.contentproj
│   │   │   ├── SoundTest/
│   │   │   │   └── SoundTest.csproj
│   │   │   └── SoundTest2/
│   │   │       └── SoundTest2.csproj
│   │   └── iOS/
│   │       ├── AppDelegate.cs
│   │       ├── Categories.cs
│   │       ├── Guide/
│   │       │   └── GuideTestGame.cs
│   │       ├── Info.plist
│   │       ├── InteractiveTestAttribute.cs
│   │       ├── Main.cs
│   │       ├── MonoGame.InteractiveTests.iOS.csproj
│   │       ├── RootViewController.cs
│   │       ├── TestUI/
│   │       │   ├── Button.cs
│   │       │   ├── DrawContext.cs
│   │       │   ├── Label.cs
│   │       │   ├── PaddingF.cs
│   │       │   ├── TestUITestGame.cs
│   │       │   ├── Universe.cs
│   │       │   ├── UniverseComponent.cs
│   │       │   ├── View.cs
│   │       │   └── ViewCollection.cs
│   │       └── TextureScaleTest/
│   │           ├── Info.plist
│   │           ├── Program.cs
│   │           └── TextureScaleColorTest.csproj
│   ├── Kni.Tests.SDL2.GL.csproj
│   ├── Kni.Tests.WinForms.DX11.csproj
│   ├── Kni.Tests.XNA.csproj
│   ├── Kni.Tests.XNA.sln
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── README.md
│   ├── Runner/
│   │   ├── Constants.cs
│   │   ├── ContentPipeline/
│   │   │   ├── AssetTestUtility.cs
│   │   │   ├── TestContentBuildLogger.cs
│   │   │   └── TestProcessorContext.cs
│   │   ├── Extensions.cs
│   │   ├── FrameInfo.cs
│   │   ├── FramePixelData.Desktop.cs
│   │   ├── FramePixelData.cs
│   │   ├── FramePixelData.iOS.cs
│   │   ├── GameBase/
│   │   │   ├── CountCallsGame.cs
│   │   │   ├── FixtureBase.cs
│   │   │   ├── FrameCompareComponent.cs
│   │   │   ├── GraphicsDeviceTestFixtureBase.cs
│   │   │   ├── MockGame.cs
│   │   │   ├── PixelDeltaFrameComparer.cs
│   │   │   ├── TestGameBase.cs
│   │   │   ├── UpdateGuard.cs
│   │   │   ├── VisualTestFixtureBase.cs
│   │   │   └── VisualTestGame.cs
│   │   ├── PixelArgb.cs
│   │   ├── Program.cs
│   │   ├── Utility.cs
│   │   └── iOS/
│   │       ├── AppDelegate.cs
│   │       ├── Info.plist
│   │       └── Main.cs
│   └── Utilities/
│       └── ActionDaemon.cs
├── ThirdParty/
│   ├── AssimpNet/
│   │   ├── 4.1.0/
│   │   │   └── lib/
│   │   │       ├── net40/
│   │   │       │   └── AssimpNet.xml
│   │   │       └── netstandard1.3/
│   │   │           └── AssimpNet.xml
│   │   └── 5.0.0/
│   │       ├── License.txt
│   │       └── lib/
│   │           ├── net40/
│   │           │   └── AssimpNet.xml
│   │           └── netstandard2.0/
│   │               └── AssimpNet.xml
│   ├── GamepadConfig/
│   │   ├── GamepadConfig.exe.config
│   │   ├── License.txt
│   │   ├── Settings.xml
│   │   ├── Tao.Sdl.dll.config
│   │   ├── Xbox 360 Gamepad.xml
│   │   └── Xbox 360 Wireless Receiver.xml
│   ├── Lidgren.Network/
│   │   ├── Documentation/
│   │   │   ├── ChangedFromV2.txt
│   │   │   ├── Discovery.html
│   │   │   ├── Improvements.txt
│   │   │   ├── PacketLayout.txt
│   │   │   ├── SimulatingBadNetwork.html
│   │   │   ├── TODO.txt
│   │   │   └── Tutorial.html
│   │   ├── Encryption/
│   │   │   ├── NetAESEncryption.cs
│   │   │   ├── NetBlockEncryptionBase.cs
│   │   │   ├── NetCryptoProviderBase.cs
│   │   │   ├── NetDESEncryption.cs
│   │   │   ├── NetEncryption.cs
│   │   │   ├── NetRC2Encryption.cs
│   │   │   ├── NetTripleDESEncryption.cs
│   │   │   ├── NetXorEncryption.cs
│   │   │   └── NetXteaEncryption.cs
│   │   ├── NamespaceDoc.cs
│   │   ├── NetBigInteger.cs
│   │   ├── NetBitVector.cs
│   │   ├── NetBitWriter.cs
│   │   ├── NetBuffer.Peek.cs
│   │   ├── NetBuffer.Read.Reflection.cs
│   │   ├── NetBuffer.Read.cs
│   │   ├── NetBuffer.Write.Reflection.cs
│   │   ├── NetBuffer.Write.cs
│   │   ├── NetBuffer.cs
│   │   ├── NetClient.cs
│   │   ├── NetConnection.Handshake.cs
│   │   ├── NetConnection.Latency.cs
│   │   ├── NetConnection.MTU.cs
│   │   ├── NetConnection.cs
│   │   ├── NetConnectionStatistics.cs
│   │   ├── NetConnectionStatus.cs
│   │   ├── NetConstants.cs
│   │   ├── NetDeliveryMethod.cs
│   │   ├── NetException.cs
│   │   ├── NetFragmentationHelper.cs
│   │   ├── NetFragmentationInfo.cs
│   │   ├── NetIncomingMessage.cs
│   │   ├── NetIncomingMessageType.cs
│   │   ├── NetMessageType.cs
│   │   ├── NetNatIntroduction.cs
│   │   ├── NetOutgoingMessage.cs
│   │   ├── NetPeer.Discovery.cs
│   │   ├── NetPeer.Fragmentation.cs
│   │   ├── NetPeer.Internal.cs
│   │   ├── NetPeer.LatencySimulation.cs
│   │   ├── NetPeer.Logging.cs
│   │   ├── NetPeer.MessagePools.cs
│   │   ├── NetPeer.Send.cs
│   │   ├── NetPeer.cs
│   │   ├── NetPeerConfiguration.cs
│   │   ├── NetPeerStatistics.cs
│   │   ├── NetPeerStatus.cs
│   │   ├── NetQueue.cs
│   │   ├── NetRandom.Implementations.cs
│   │   ├── NetRandom.cs
│   │   ├── NetRandomSeed.cs
│   │   ├── NetReceiverChannelBase.cs
│   │   ├── NetReliableOrderedReceiver.cs
│   │   ├── NetReliableSenderChannel.cs
│   │   ├── NetReliableSequencedReceiver.cs
│   │   ├── NetReliableUnorderedReceiver.cs
│   │   ├── NetSRP.cs
│   │   ├── NetSendResult.cs
│   │   ├── NetSenderChannelBase.cs
│   │   ├── NetServer.cs
│   │   ├── NetStoredReliableMessage.cs
│   │   ├── NetTime.cs
│   │   ├── NetTuple.cs
│   │   ├── NetUPnP.cs
│   │   ├── NetUnreliableSenderChannel.cs
│   │   ├── NetUnreliableSequencedReceiver.cs
│   │   ├── NetUnreliableUnorderedReceiver.cs
│   │   ├── NetUtility.cs
│   │   ├── Properties/
│   │   │   └── AssemblyInfo.cs
│   │   └── Resources/
│   │       └── Resource.Designer.cs
│   ├── SharpFont/
│   │   └── Windows/
│   │       └── x64/
│   │           └── SharpFont.XML
│   └── Typography/
│       ├── README.md
│       └── netstandard2.0/
│           ├── Typography.GlyphLayout.deps.json
│           └── Typography.OpenFont.deps.json
├── Tools/
│   ├── Content.Pipeline.Editor.WinForms/
│   │   ├── App.config
│   │   ├── Common/
│   │   │   ├── ActionStack.cs
│   │   │   ├── AssemblyAttributes.cs
│   │   │   ├── CommandLineParser.cs
│   │   │   ├── CompressionMethod.cs
│   │   │   ├── ContentFolder.cs
│   │   │   ├── ContentItem.Importer.cs
│   │   │   ├── ContentItem.Processor.cs
│   │   │   ├── ContentItem.cs
│   │   │   ├── ContentItemConverter.cs
│   │   │   ├── ContentItemPathComparer.cs
│   │   │   ├── ContentItemState.cs
│   │   │   ├── ContentItemTemplate.cs
│   │   │   ├── FileType.cs
│   │   │   ├── IController.cs
│   │   │   ├── IProjectItem.cs
│   │   │   ├── IProjectObserver.cs
│   │   │   ├── IView.cs
│   │   │   ├── OutputParser.cs
│   │   │   ├── Package.cs
│   │   │   ├── PackageReferencesCollection.cs
│   │   │   ├── PathComparer.cs
│   │   │   ├── PathHelper.cs
│   │   │   ├── PipelineController.ExcludeAction.cs
│   │   │   ├── PipelineController.IncludeAction.cs
│   │   │   ├── PipelineController.MoveAction.cs
│   │   │   ├── PipelineController.NewAction.cs
│   │   │   ├── PipelineController.UpdateContentItemAction.cs
│   │   │   ├── PipelineController.UpdateProjectAction.cs
│   │   │   ├── PipelineController.cs
│   │   │   ├── PipelineProject.cs
│   │   │   ├── PipelineProjectParser.cs
│   │   │   ├── PipelineSettings.cs
│   │   │   ├── PipelineTypes.cs
│   │   │   ├── ProjectState.cs
│   │   │   ├── Selection.cs
│   │   │   ├── StringExtensions.cs
│   │   │   └── Util.cs
│   │   ├── Content.Pipeline.Editor.net4.csproj
│   │   ├── Content.Pipeline.Editor.net8.csproj
│   │   ├── Forms/
│   │   │   ├── AboutDialog.Designer.cs
│   │   │   ├── AboutDialog.cs
│   │   │   ├── AboutDialog.resx
│   │   │   ├── BuildIcons.cs
│   │   │   ├── ContentIcons.cs
│   │   │   ├── Controls/
│   │   │   │   ├── FilterOutputControl.cs
│   │   │   │   └── TabControlEx.cs
│   │   │   ├── EditorIcons.cs
│   │   │   ├── FolderSelectDialog.cs
│   │   │   ├── MainView.Designer.cs
│   │   │   ├── MainView.cs
│   │   │   ├── MainView.resx
│   │   │   ├── MultiSelectTreeview.cs
│   │   │   ├── NewContentDialog.Designer.cs
│   │   │   ├── NewContentDialog.cs
│   │   │   ├── NewContentDialog.resx
│   │   │   ├── PackageDialog.Designer.cs
│   │   │   ├── PackageDialog.cs
│   │   │   ├── PackageDialog.resx
│   │   │   ├── PackageReferenceDialog.Designer.cs
│   │   │   ├── PackageReferenceDialog.cs
│   │   │   ├── PackageReferenceDialog.resx
│   │   │   ├── PipelineProjectProxy.cs
│   │   │   ├── ReferenceDialog.Designer.cs
│   │   │   ├── ReferenceDialog.cs
│   │   │   ├── ReferenceDialog.resx
│   │   │   ├── SortedEnumTypeConverter.cs
│   │   │   ├── TextEditDialog.Designer.cs
│   │   │   ├── TextEditDialog.cs
│   │   │   ├── TextEditDialog.resx
│   │   │   ├── TreeViewExtensions.cs
│   │   │   └── TreeViewNodeSorter.cs
│   │   ├── Program.cs
│   │   ├── Properties/
│   │   │   ├── AssemblyInfo.cs
│   │   │   ├── Resources.Designer.cs
│   │   │   ├── Resources.resx
│   │   │   ├── Settings.Designer.cs
│   │   │   └── Settings.settings
│   │   ├── Templates/
│   │   │   ├── Effect.fx
│   │   │   ├── Effect.template
│   │   │   ├── LocalizedSpriteFont.spritefont
│   │   │   ├── LocalizedSpriteFont.template
│   │   │   ├── SpriteEffect.fx
│   │   │   ├── SpriteEffect.template
│   │   │   ├── SpriteFont.spritefont
│   │   │   ├── SpriteFont.template
│   │   │   ├── XmlContent.template
│   │   │   └── XmlContent.xml
│   │   └── app.manifest
│   ├── Directory.Build.props
│   ├── EffectCompiler/
│   │   ├── BuildLogger.cs
│   │   ├── CommandLineParser.cs
│   │   ├── EffectCompiler.csproj
│   │   ├── ImporterContext.cs
│   │   ├── Options.cs
│   │   ├── ProcessorContext.cs
│   │   ├── Program.cs
│   │   └── Properties/
│   │       ├── AssemblyInfo.cs
│   │       └── launchSettings.json
│   ├── MonoGame.Content.Builder/
│   │   ├── AssertListener.cs
│   │   ├── BuildAsyncState.cs
│   │   ├── BuildEvent.cs
│   │   ├── CommandLineParser.cs
│   │   ├── CompressionMethod.cs
│   │   ├── ConsoleAsyncLogger.cs
│   │   ├── ConsoleLogger.cs
│   │   ├── ContentBuilder.cs
│   │   ├── Directory.Build.props
│   │   ├── ImporterContext.cs
│   │   ├── MGCB.csproj
│   │   ├── Package.cs
│   │   ├── PackageReferencesCollection.cs
│   │   ├── PathHelper.cs
│   │   ├── PipelineManager.cs
│   │   ├── ProcessorContext.cs
│   │   ├── Program.cs
│   │   ├── Properties/
│   │   │   ├── AssemblyInfo.cs
│   │   │   └── launchSettings.json
│   │   └── SourceFileCollection.cs
│   └── MonoGame.Packaging.Flatpak/
│       ├── BuildFlatpakTask.cs
│       ├── MonoGame.Packaging.Flatpak.Common.props
│       ├── MonoGame.Packaging.Flatpak.csproj
│       ├── MonoGame.Packaging.Flatpak.targets
│       └── README.md
├── default.build
├── global.json
├── kniPackage.props
└── src/
    ├── Xna.Framework/
    │   ├── BoundingBox.cs
    │   ├── BoundingFrustum.cs
    │   ├── BoundingSphere.cs
    │   ├── Complex.cs
    │   ├── ContainmentType.cs
    │   ├── Curve.cs
    │   ├── CurveContinuity.cs
    │   ├── CurveKey.cs
    │   ├── CurveKeyCollection.cs
    │   ├── CurveLoopType.cs
    │   ├── CurveTangent.cs
    │   ├── FrameworkDispatcher.cs
    │   ├── ICurveEvaluator.cs
    │   ├── ILLink.Descriptors.xml
    │   ├── IntersectsHelper.cs
    │   ├── MathHelper.cs
    │   ├── Matrix.cs
    │   ├── Plane.cs
    │   ├── PlaneIntersectionType.cs
    │   ├── PlayerIndex.cs
    │   ├── Point.cs
    │   ├── Pose2.cs
    │   ├── Pose3.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   ├── Quaternion.cs
    │   ├── Ray.cs
    │   ├── Rectangle.cs
    │   ├── Vector2.cs
    │   ├── Vector3.cs
    │   ├── Vector4.cs
    │   └── Xna.Framework.csproj
    ├── Xna.Framework.Audio/
    │   ├── Audio/
    │   │   ├── AudioChannels.cs
    │   │   ├── AudioEmitter.cs
    │   │   ├── AudioFactory.cs
    │   │   ├── AudioListener.cs
    │   │   ├── AudioService.InstancePool.cs
    │   │   ├── AudioService.Microphones.cs
    │   │   ├── AudioService.cs
    │   │   ├── AudioServiceStrategy.cs
    │   │   ├── DynamicSoundEffectInstance.cs
    │   │   ├── InstancePlayLimitException.cs
    │   │   ├── Microphone.cs
    │   │   ├── NoAudioHardwareException.cs
    │   │   ├── NoMicrophoneConnectedException.cs
    │   │   ├── SoundEffect.cs
    │   │   ├── SoundEffectInstance.cs
    │   │   ├── SoundState.cs
    │   │   ├── Utilities/
    │   │   │   ├── AudioUtil.cs
    │   │   │   └── MsAdpcmDecoder.cs
    │   │   └── Xact/
    │   │       ├── AudioCategory.cs
    │   │       ├── AudioEngine.cs
    │   │       ├── AudioStopOptions.cs
    │   │       ├── ClipEvent.cs
    │   │       ├── CrossfadeType.cs
    │   │       ├── Cue.cs
    │   │       ├── DspParameter.cs
    │   │       ├── FilterMode.cs
    │   │       ├── MaxInstanceBehavior.cs
    │   │       ├── MiniFormatTag.cs
    │   │       ├── PlayWaveEvent.cs
    │   │       ├── ReverbSettings.cs
    │   │       ├── RpcCurve.cs
    │   │       ├── RpcParameter.cs
    │   │       ├── RpcPoint.cs
    │   │       ├── RpcPointType.cs
    │   │       ├── RpcVariable.cs
    │   │       ├── SoundBank.cs
    │   │       ├── VolumeEvent.cs
    │   │       ├── WaveBank.cs
    │   │       ├── XactClip.cs
    │   │       ├── XactHelpers.cs
    │   │       └── XactSound.cs
    │   ├── Content/
    │   │   └── SoundEffectReader.cs
    │   ├── ILLink.Descriptors.xml
    │   ├── NamespaceDoc.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   └── Xna.Framework.Audio.csproj
    ├── Xna.Framework.Content/
    │   ├── Content/
    │   │   ├── ContentLoadException.cs
    │   │   ├── ContentManager.cs
    │   │   ├── ContentReader.cs
    │   │   ├── ContentReaders/
    │   │   │   ├── ArrayReader.cs
    │   │   │   ├── BooleanReader.cs
    │   │   │   ├── BoundingBoxReader.cs
    │   │   │   ├── BoundingFrustumReader.cs
    │   │   │   ├── BoundingSphereReader.cs
    │   │   │   ├── ByteReader.cs
    │   │   │   ├── CharReader.cs
    │   │   │   ├── ComplexReader.cs
    │   │   │   ├── CurveReader.cs
    │   │   │   ├── DateTimeReader.cs
    │   │   │   ├── DecimalReader.cs
    │   │   │   ├── DictionaryReader.cs
    │   │   │   ├── DoubleReader.cs
    │   │   │   ├── EnumReader.cs
    │   │   │   ├── ExternalReferenceReader.cs
    │   │   │   ├── Int16Reader.cs
    │   │   │   ├── Int32Reader.cs
    │   │   │   ├── Int64Reader.cs
    │   │   │   ├── ListReader.cs
    │   │   │   ├── MatrixReader.cs
    │   │   │   ├── MultiArrayReader.cs
    │   │   │   ├── NullableReader.cs
    │   │   │   ├── PlaneReader.cs
    │   │   │   ├── PointReader.cs
    │   │   │   ├── QuaternionReader.cs
    │   │   │   ├── RayReader.cs
    │   │   │   ├── RectangleReader.cs
    │   │   │   ├── ReflectiveReader.cs
    │   │   │   ├── SByteReader.cs
    │   │   │   ├── SingleReader.cs
    │   │   │   ├── StringReader.cs
    │   │   │   ├── TimeSpanReader.cs
    │   │   │   ├── UInt16Reader.cs
    │   │   │   ├── UInt32Reader.cs
    │   │   │   ├── UInt64Reader.cs
    │   │   │   ├── Vector2Reader.cs
    │   │   │   ├── Vector3Reader.cs
    │   │   │   └── Vector4Reader.cs
    │   │   ├── ContentSerializerAttribute.cs
    │   │   ├── ContentSerializerCollectionItemNameAttribute.cs
    │   │   ├── ContentSerializerIgnoreAttribute.cs
    │   │   ├── ContentSerializerRuntimeTypeAttribute.cs
    │   │   ├── ContentSerializerTypeVersionAttribute.cs
    │   │   ├── ContentTypeReader.cs
    │   │   ├── ContentTypeReaderManager.cs
    │   │   ├── ResourceContentManager.cs
    │   │   └── Utilities/
    │   │       ├── ContentBufferPool.cs
    │   │       ├── ContentExtensions.cs
    │   │       ├── FileHelpers.cs
    │   │       ├── Lz4DecoderStream.cs
    │   │       ├── LzxDecoder.cs
    │   │       ├── LzxDecoderStream.cs
    │   │       └── ReflectionHelpers.cs
    │   ├── ILLink.Descriptors.xml
    │   ├── NamespaceDoc.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   ├── TitleContainer.cs
    │   ├── TitleContainerFactory.cs
    │   ├── TitleContainerStrategy.cs
    │   ├── TitlePlatform.cs
    │   └── Xna.Framework.Content.csproj
    ├── Xna.Framework.Content.Pipeline/
    │   ├── ChildCollection.cs
    │   ├── ContentBuildLogger.cs
    │   ├── ContentIdentity.cs
    │   ├── ContentImporter.cs
    │   ├── ContentImporterAttribute.cs
    │   ├── ContentImporterContext.cs
    │   ├── ContentItem.cs
    │   ├── ContentProcessor.cs
    │   ├── ContentProcessorAttribute.cs
    │   ├── ContentProcessorContext.cs
    │   ├── ExternalReference.cs
    │   ├── IContentImporter.cs
    │   ├── IContentProcessor.cs
    │   ├── InvalidContentException.cs
    │   ├── NamedValueDictionary.cs
    │   ├── OpaqueDataDictionary.cs
    │   ├── PipelineComponentScanner.cs
    │   ├── PipelineException.cs
    │   ├── ProcessorParameter.cs
    │   ├── ProcessorParameterCollection.cs
    │   ├── Processors/
    │   │   └── PassThroughProcessor.cs
    │   ├── Properties/
    │   │   ├── AssemblyInfo.cs
    │   │   └── AssemblyInfo.net4.cs
    │   ├── Serialization/
    │   │   ├── Compiler/
    │   │   │   ├── ArrayWriter.cs
    │   │   │   ├── BooleanWriter.cs
    │   │   │   ├── BoundingBoxWriter.cs
    │   │   │   ├── BoundingFrustumWriter.cs
    │   │   │   ├── BoundingSphereWriter.cs
    │   │   │   ├── ByteWriter.cs
    │   │   │   ├── CharWriter.cs
    │   │   │   ├── ComplexWriter.cs
    │   │   │   ├── ContentCompiler.cs
    │   │   │   ├── ContentCompression.cs
    │   │   │   ├── ContentTypeWriter.cs
    │   │   │   ├── ContentTypeWriterAttribute.cs
    │   │   │   ├── ContentTypeWriterBase.cs
    │   │   │   ├── ContentTypeWriterBaseGeneric.cs
    │   │   │   ├── ContentWriter.cs
    │   │   │   ├── CurveWriter.cs
    │   │   │   ├── DateTimeWriter.cs
    │   │   │   ├── DecimalWriter.cs
    │   │   │   ├── DictionaryWriter.cs
    │   │   │   ├── DoubleWriter.cs
    │   │   │   ├── EnumWriter.cs
    │   │   │   ├── ExternalReferenceWriter.cs
    │   │   │   ├── Int16Writer.cs
    │   │   │   ├── Int32Writer.cs
    │   │   │   ├── Int64Writer.cs
    │   │   │   ├── ListWriter.cs
    │   │   │   ├── MatrixWriter.cs
    │   │   │   ├── MultiArrayWriter.cs
    │   │   │   ├── NullableWriter.cs
    │   │   │   ├── PlaneWriter.cs
    │   │   │   ├── PointWriter.cs
    │   │   │   ├── QuaternionWriter.cs
    │   │   │   ├── RayWriter.cs
    │   │   │   ├── RectangleWriter.cs
    │   │   │   ├── ReflectiveWriter.cs
    │   │   │   ├── SByteWriter.cs
    │   │   │   ├── SingleWriter.cs
    │   │   │   ├── StringWriter.cs
    │   │   │   ├── TimeSpanWriter.cs
    │   │   │   ├── UInt16Writer.cs
    │   │   │   ├── UInt32Writer.cs
    │   │   │   ├── UInt64Writer.cs
    │   │   │   ├── Vector2Writer.cs
    │   │   │   ├── Vector3Writer.cs
    │   │   │   └── Vector4Writer.cs
    │   │   └── Intermediate/
    │   │       ├── ArraySerializer.cs
    │   │       ├── BoolSerializer.cs
    │   │       ├── ByteSerializer.cs
    │   │       ├── CharSerializer.cs
    │   │       ├── ColorSerializer.cs
    │   │       ├── ContentTypeSerializer.cs
    │   │       ├── ContentTypeSerializerAttribute.cs
    │   │       ├── ContentTypeSerializerT.cs
    │   │       ├── CurveKeyCollectionSerializer.cs
    │   │       ├── DictionarySerializer.cs
    │   │       ├── DoubleSerializer.cs
    │   │       ├── ElementSerializerT.cs
    │   │       ├── EnumSerializer.cs
    │   │       ├── ExternalReferenceSerializer.cs
    │   │       ├── FloatSerializer.cs
    │   │       ├── GenericCollectionHelper.cs
    │   │       ├── IntSerializer.cs
    │   │       ├── IntermediateReader.cs
    │   │       ├── IntermediateSerializer.cs
    │   │       ├── IntermediateWriter.cs
    │   │       ├── ListSerializer.cs
    │   │       ├── LongSerializer.cs
    │   │       ├── MatrixSerializer.cs
    │   │       ├── NamedValueDictionarySerializer.cs
    │   │       ├── NamespaceAliasHelper.cs
    │   │       ├── NonGenericIListSerializer.cs
    │   │       ├── NullableSerializer.cs
    │   │       ├── PackedElementsHelper.cs
    │   │       ├── PlaneSerializer.cs
    │   │       ├── PointSerializer.cs
    │   │       ├── QuaternionSerializer.cs
    │   │       ├── RectangleSerializer.cs
    │   │       ├── ReflectiveSerializer.cs
    │   │       ├── SByteSerializer.cs
    │   │       ├── ShortSerializer.cs
    │   │       ├── StringSerializer.cs
    │   │       ├── TimeSpanSerializer.cs
    │   │       ├── UIntSerializer.cs
    │   │       ├── ULongSerializer.cs
    │   │       ├── UShortSerializer.cs
    │   │       ├── Vector2Serializer.cs
    │   │       ├── Vector3Serializer.cs
    │   │       └── Vector4Serializer.cs
    │   ├── TargetPlatform.cs
    │   ├── Utilities/
    │   │   ├── ContentExtensions.cs
    │   │   ├── LZ4/
    │   │   │   ├── LZ4Codec.Unsafe.cs
    │   │   │   ├── LZ4Codec.Unsafe32.Dirty.cs
    │   │   │   ├── LZ4Codec.Unsafe32HC.Dirty.cs
    │   │   │   ├── LZ4Codec.Unsafe64.Dirty.cs
    │   │   │   ├── LZ4Codec.Unsafe64HC.Dirty.cs
    │   │   │   └── LZ4Codec.cs
    │   │   ├── PathHelper.cs
    │   │   └── ReflectionHelpers.cs
    │   ├── XmlImporter.cs
    │   └── Xna.Framework.Content.Pipeline.csproj
    ├── Xna.Framework.Content.Pipeline.Audio/
    │   ├── Audio/
    │   │   ├── AudioContent.cs
    │   │   ├── AudioFileType.cs
    │   │   ├── AudioFormat.cs
    │   │   ├── ConversionFormat.cs
    │   │   └── ConversionQuality.cs
    │   ├── ExternalTool.cs
    │   ├── Mp3Importer.cs
    │   ├── OggImporter.cs
    │   ├── Processors/
    │   │   ├── SoundEffectContent.cs
    │   │   └── SoundEffectProcessor.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   ├── Serialization/
    │   │   └── Compiler/
    │   │       └── SoundEffectWriter.cs
    │   ├── WavImporter.cs
    │   ├── WmaImporter.cs
    │   └── Xna.Framework.Content.Pipeline.Audio.csproj
    ├── Xna.Framework.Content.Pipeline.Graphics/
    │   ├── DdsLoader.cs
    │   ├── EffectCompiler/
    │   │   ├── SamplerStateContent.cs
    │   │   └── TPGParser/
    │   │       ├── FXParser.tpg
    │   │       ├── ParseTree.cs
    │   │       ├── ParseTreeTools.cs
    │   │       ├── Parser.cs
    │   │       ├── PassInfo.cs
    │   │       ├── SamplerStateInfo.cs
    │   │       ├── Scanner.cs
    │   │       ├── ShaderInfo.cs
    │   │       └── TechniqueInfo.cs
    │   ├── EffectImporter.cs
    │   ├── ExternalTool.cs
    │   ├── FbxImporter.cs
    │   ├── FontDescriptionImporter.cs
    │   ├── Graphics/
    │   │   ├── AlphaTestMaterialContent.cs
    │   │   ├── AnimationChannel.cs
    │   │   ├── AnimationChannelDictionary.cs
    │   │   ├── AnimationContent.cs
    │   │   ├── AnimationContentDictionary.cs
    │   │   ├── AnimationKeyframe.cs
    │   │   ├── AtcBitmapContent.cs
    │   │   ├── AtcExplicitBitmapContent.cs
    │   │   ├── AtcInterpolatedBitmapContent.cs
    │   │   ├── BasicMaterialContent.cs
    │   │   ├── BitmapContent.cs
    │   │   ├── BoneContent.cs
    │   │   ├── BoneWeight.cs
    │   │   ├── BoneWeightCollection.cs
    │   │   ├── DualTextureMaterialContent.cs
    │   │   ├── Dxt1BitmapContent.cs
    │   │   ├── Dxt3BitmapContent.cs
    │   │   ├── Dxt5BitmapContent.cs
    │   │   ├── DxtBitmapContent.cs
    │   │   ├── EffectContent.cs
    │   │   ├── EffectMaterialContent.cs
    │   │   ├── EnvironmentMapMaterialContent.cs
    │   │   ├── Etc1BitmapContent.cs
    │   │   ├── Font/
    │   │   │   ├── CharacterRegion.cs
    │   │   │   ├── CharacterRegionTypeConverter.cs
    │   │   │   ├── FontFamilyInfo.cs
    │   │   │   ├── Glyph.cs
    │   │   │   ├── GlyphPacker.cs
    │   │   │   ├── GrowRule.cs
    │   │   │   ├── MaxRectsBin.cs
    │   │   │   └── MaxRectsHeuristic.cs
    │   │   ├── FontDescription.cs
    │   │   ├── FontDescriptionStyle.cs
    │   │   ├── GeometryContent.cs
    │   │   ├── GeometryContentCollection.cs
    │   │   ├── GraphicsUtil.cs
    │   │   ├── IndexCollection.cs
    │   │   ├── IndirectPositionCollection.cs
    │   │   ├── LocalizedFontDescription.cs
    │   │   ├── MaterialContent.cs
    │   │   ├── MeshBuilder.cs
    │   │   ├── MeshContent.cs
    │   │   ├── MeshHelper.cs
    │   │   ├── MipmapChain.cs
    │   │   ├── MipmapChainCollection.cs
    │   │   ├── NodeContent.cs
    │   │   ├── NodeContentCollection.cs
    │   │   ├── PixelBitmapContent.cs
    │   │   ├── PositionCollection.cs
    │   │   ├── PvrtcBitmapContent.cs
    │   │   ├── PvrtcRgb2BitmapContent.cs
    │   │   ├── PvrtcRgb4BitmapContent.cs
    │   │   ├── PvrtcRgba2BitmapContent.cs
    │   │   ├── PvrtcRgba4BitmapContent.cs
    │   │   ├── SkinnedMaterialContent.cs
    │   │   ├── Texture2DContent.cs
    │   │   ├── Texture3DContent.cs
    │   │   ├── TextureContent.cs
    │   │   ├── TextureCubeContent.cs
    │   │   ├── TextureReferenceDictionary.cs
    │   │   ├── VectorConverter.cs
    │   │   ├── VertexChannel.cs
    │   │   ├── VertexChannelCollection.cs
    │   │   ├── VertexChannelGeneric.cs
    │   │   ├── VertexChannelNames.cs
    │   │   └── VertexContent.cs
    │   ├── OpenAssetImporter.cs
    │   ├── Processors/
    │   │   ├── CompiledEffectContent.cs
    │   │   ├── FontDescriptionProcessor.cs
    │   │   ├── FontTextureProcessor.cs
    │   │   ├── LocalizedFontProcessor.cs
    │   │   ├── MaterialProcessor.cs
    │   │   ├── MaterialProcessorDefaultEffect.cs
    │   │   ├── ModelBoneContent.cs
    │   │   ├── ModelBoneContentCollection.cs
    │   │   ├── ModelContent.cs
    │   │   ├── ModelMeshContent.cs
    │   │   ├── ModelMeshContentCollection.cs
    │   │   ├── ModelMeshPartContent.cs
    │   │   ├── ModelMeshPartContentCollection.cs
    │   │   ├── ModelProcessor.cs
    │   │   ├── SpriteFontContent.cs
    │   │   ├── TextureProcessor.cs
    │   │   ├── TextureProcessorOutputFormat.cs
    │   │   ├── VertexBufferContent.cs
    │   │   └── VertexDeclarationContent.cs
    │   ├── Properties/
    │   │   ├── AssemblyInfo.cs
    │   │   └── launchSettings.json
    │   ├── Serialization/
    │   │   └── Compiler/
    │   │       ├── AlphaTestEffectWriter.cs
    │   │       ├── BasicEffectWriter.cs
    │   │       ├── ColorWriter.cs
    │   │       ├── CompiledEffectWriter.cs
    │   │       ├── ContentTypeWriterBase.cs
    │   │       ├── DualTextureEffectWriter.cs
    │   │       ├── EffectMaterialWriter.cs
    │   │       ├── EnvironmentMapEffectWriter.cs
    │   │       ├── IndexBufferWriter.cs
    │   │       ├── ModelWriter.cs
    │   │       ├── SkinnedEffectWriter.cs
    │   │       ├── SpriteFontWriter.cs
    │   │       ├── Texture2DWriter.cs
    │   │       ├── TextureCubeWriter.cs
    │   │       ├── TextureWriter.cs
    │   │       ├── VertexBufferWriter.cs
    │   │       └── VertexDeclarationWriter.cs
    │   ├── TextureImporter.cs
    │   ├── Utilities/
    │   │   ├── ContentWriterExtensions.cs
    │   │   ├── FreeImageAPI.cs
    │   │   ├── FreeImageAPIC.cs
    │   │   ├── GraphicsExtensions.cs
    │   │   ├── ReflectionHelpers.cs
    │   │   └── VectorConverterEx.cs
    │   ├── XImporter.cs
    │   ├── XNA.Framework.Content.Pipeline.Graphics.csproj
    │   └── XNA.Framework.Content.Pipeline.Graphics.dll.config
    ├── Xna.Framework.Content.Pipeline.Graphics.MojoProcessor/
    │   ├── EffectCompiler/
    │   │   ├── ConstantBufferData.cs
    │   │   ├── EffectObject.cs
    │   │   ├── GLSLBytecode.cs
    │   │   ├── KNIFXWriter11.cs
    │   │   ├── MarshalHelper.cs
    │   │   ├── MojoShader.cs
    │   │   ├── Preprocessor.cs
    │   │   ├── SamplerInfo.cs
    │   │   ├── ShaderCompilerException.cs
    │   │   ├── ShaderData.cs
    │   │   ├── ShaderProfile.cs
    │   │   ├── ShaderProfileDX11.cs
    │   │   ├── ShaderProfileGL.cs
    │   │   ├── ShaderProfileType.cs
    │   │   ├── ShaderStage.cs
    │   │   └── ShaderVersion.cs
    │   ├── ExternalTool.cs
    │   ├── Processors/
    │   │   ├── EffectProcessor.cs
    │   │   ├── EffectProcessorDebugMode.cs
    │   │   └── MojoEffectProcessor.cs
    │   ├── Properties/
    │   │   ├── AssemblyInfo.cs
    │   │   └── launchSettings.json
    │   └── Xna.Framework.Content.Pipeline.Graphics.MojoProcessor.csproj
    ├── Xna.Framework.Content.Pipeline.Media/
    │   ├── ExternalTool.cs
    │   ├── H264Importer.cs
    │   ├── Processors/
    │   │   ├── SongProcessor.cs
    │   │   ├── VideoProcessor.cs
    │   │   └── VideoProcessorOutputFormat.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   ├── Serialization/
    │   │   └── Compiler/
    │   │       ├── SongWriter.cs
    │   │       └── VideoWriter.cs
    │   ├── SongContent.cs
    │   ├── Utilities/
    │   │   └── PathHelper.cs
    │   ├── VideoContent.cs
    │   ├── VideoImporter.cs
    │   ├── WmvImporter.cs
    │   └── Xna.Framework.Content.Pipeline.Media.csproj
    ├── Xna.Framework.Design/
    │   ├── Design/
    │   │   ├── ColorConverter.cs
    │   │   ├── Vector2Converter.cs
    │   │   ├── Vector3Converter.cs
    │   │   └── Vector4Converter.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   └── Xna.Framework.Design.csproj
    ├── Xna.Framework.Devices/
    │   ├── Devices/
    │   │   ├── DevicesFactory.cs
    │   │   ├── Haptics.cs
    │   │   ├── HapticsStrategy.cs
    │   │   └── Sensors/
    │   │       ├── Accelerometer.cs
    │   │       ├── AccelerometerFailedException.cs
    │   │       ├── AccelerometerReading.cs
    │   │       ├── AccelerometerStrategy.cs
    │   │       ├── CalibrationEventArgs.cs
    │   │       ├── Compass.cs
    │   │       ├── CompassReading.cs
    │   │       ├── CompassStrategy.cs
    │   │       ├── ISensorReading.cs
    │   │       ├── SensorBase.cs
    │   │       ├── SensorFailedException.cs
    │   │       ├── SensorReadingEventArgs.cs
    │   │       ├── SensorService.cs
    │   │       ├── SensorServiceStrategy.cs
    │   │       ├── SensorState.cs
    │   │       └── SensorStrategy.cs
    │   ├── ILLink.Descriptors.xml
    │   ├── NamespaceDoc.cs
    │   └── Xna.Framework.Devices.csproj
    ├── Xna.Framework.Game/
    │   ├── DrawableGameComponent.cs
    │   ├── FileDropEventArgs.cs
    │   ├── Game.cs
    │   ├── GameComponent.cs
    │   ├── GameComponentCollection.cs
    │   ├── GameComponentCollectionEventArgs.cs
    │   ├── GameFactory.cs
    │   ├── GameServiceContainer.cs
    │   ├── GameStrategy.cs
    │   ├── GameTime.cs
    │   ├── GameWindow.cs
    │   ├── GraphicsDeviceManager.cs
    │   ├── GraphicsDeviceManagerStrategy.cs
    │   ├── IDrawable.cs
    │   ├── IGameComponent.cs
    │   ├── ILLink.Descriptors.xml
    │   ├── IUpdateable.cs
    │   ├── LaunchParameters.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   └── Xna.Framework.Game.csproj
    ├── Xna.Framework.Graphics/
    │   ├── Color.cs
    │   ├── Content/
    │   │   ├── AlphaTestEffectReader.cs
    │   │   ├── BasicEffectReader.cs
    │   │   ├── ColorReader.cs
    │   │   ├── DualTextureEffectReader.cs
    │   │   ├── EffectMaterialReader.cs
    │   │   ├── EffectReader.cs
    │   │   ├── EnvironmentMapEffectReader.cs
    │   │   ├── IndexBufferReader.cs
    │   │   ├── ModelReader.cs
    │   │   ├── SkinnedEffectReader.cs
    │   │   ├── SpriteFontReader.cs
    │   │   ├── Texture2DReader.cs
    │   │   ├── Texture3DReader.cs
    │   │   ├── TextureCubeReader.cs
    │   │   ├── TextureReader.cs
    │   │   ├── VertexBufferReader.cs
    │   │   └── VertexDeclarationReader.cs
    │   ├── DisplayOrientation.cs
    │   ├── Graphics/
    │   │   ├── ClearOptions.cs
    │   │   ├── ColorWriteChannels.cs
    │   │   ├── CubeMapFace.cs
    │   │   ├── DeviceLostException.cs
    │   │   ├── DeviceNotResetException.cs
    │   │   ├── DirectionalLight.cs
    │   │   ├── DisplayMode.cs
    │   │   ├── DisplayModeCollection.cs
    │   │   ├── Effect/
    │   │   │   ├── AlphaTestEffect.cs
    │   │   │   ├── BasicEffect.cs
    │   │   │   ├── DualTextureEffect.cs
    │   │   │   ├── Effect.cs
    │   │   │   ├── EffectAnnotation.cs
    │   │   │   ├── EffectAnnotationCollection.cs
    │   │   │   ├── EffectHelpers.cs
    │   │   │   ├── EffectMaterial.cs
    │   │   │   ├── EffectParameter.cs
    │   │   │   ├── EffectParameterClass.cs
    │   │   │   ├── EffectParameterCollection.cs
    │   │   │   ├── EffectParameterType.cs
    │   │   │   ├── EffectPass.cs
    │   │   │   ├── EffectPassCollection.cs
    │   │   │   ├── EffectTechnique.cs
    │   │   │   ├── EffectTechniqueCollection.cs
    │   │   │   ├── EnvironmentMapEffect.cs
    │   │   │   ├── IEffectBones.cs
    │   │   │   ├── IEffectFog.cs
    │   │   │   ├── IEffectLights.cs
    │   │   │   ├── IEffectMatrices.cs
    │   │   │   ├── KNIFXHeader.cs
    │   │   │   ├── KNIFXReader11.cs
    │   │   │   ├── MGFXHeader.cs
    │   │   │   ├── MGFXReader10.cs
    │   │   │   ├── SkinnedEffect.cs
    │   │   │   └── SpriteEffect.cs
    │   │   ├── GraphicsAdapter.cs
    │   │   ├── GraphicsAdapterStrategy.cs
    │   │   ├── GraphicsAdaptersProviderStrategy.cs
    │   │   ├── GraphicsBackend.cs
    │   │   ├── GraphicsCapabilities.cs
    │   │   ├── GraphicsContext.cs
    │   │   ├── GraphicsContextStrategy.cs
    │   │   ├── GraphicsDebug.cs
    │   │   ├── GraphicsDebugMessage.cs
    │   │   ├── GraphicsDebugStrategy.cs
    │   │   ├── GraphicsDevice.cs
    │   │   ├── GraphicsDeviceStatus.cs
    │   │   ├── GraphicsDeviceStrategy.cs
    │   │   ├── GraphicsFactory.cs
    │   │   ├── GraphicsMetrics.cs
    │   │   ├── GraphicsProfile.cs
    │   │   ├── GraphicsResource.cs
    │   │   ├── GraphicsResourceStrategy.cs
    │   │   ├── IGraphicsDeviceService.cs
    │   │   ├── IGraphicsResourceStrategy.cs
    │   │   ├── IRenderTarget.cs
    │   │   ├── IRenderTarget2DStrategy.cs
    │   │   ├── IRenderTarget3DStrategy.cs
    │   │   ├── IRenderTargetCubeStrategy.cs
    │   │   ├── IRenderTargetStrategy.cs
    │   │   ├── ITexture2DStrategy.cs
    │   │   ├── ITexture3DStrategy.cs
    │   │   ├── ITextureCubeStrategy.cs
    │   │   ├── ITextureStrategy.cs
    │   │   ├── Model.cs
    │   │   ├── ModelBone.cs
    │   │   ├── ModelBoneCollection.cs
    │   │   ├── ModelEffectCollection.cs
    │   │   ├── ModelMesh.cs
    │   │   ├── ModelMeshCollection.cs
    │   │   ├── ModelMeshPart.cs
    │   │   ├── ModelMeshPartCollection.cs
    │   │   ├── NoSuitableGraphicsDeviceException.cs
    │   │   ├── OcclusionQuery.cs
    │   │   ├── OcclusionQueryStrategy.cs
    │   │   ├── PackedVector/
    │   │   │   ├── Alpha8.cs
    │   │   │   ├── Bgr565.cs
    │   │   │   ├── Bgra4444.cs
    │   │   │   ├── Bgra5551.cs
    │   │   │   ├── Byte4.cs
    │   │   │   ├── HalfSingle.cs
    │   │   │   ├── HalfTypeHelper.cs
    │   │   │   ├── HalfVector2.cs
    │   │   │   ├── HalfVector4.cs
    │   │   │   ├── IPackedVector.cs
    │   │   │   ├── NormalizedByte2.cs
    │   │   │   ├── NormalizedByte4.cs
    │   │   │   ├── NormalizedShort2.cs
    │   │   │   ├── NormalizedShort4.cs
    │   │   │   ├── Rg32.cs
    │   │   │   ├── Rgba1010102.cs
    │   │   │   ├── Rgba64.cs
    │   │   │   ├── Short2.cs
    │   │   │   └── Short4.cs
    │   │   ├── PresentInterval.cs
    │   │   ├── PresentationEventArgs.cs
    │   │   ├── PresentationParameters.cs
    │   │   ├── RenderTarget2D.cs
    │   │   ├── RenderTarget3D.cs
    │   │   ├── RenderTargetBinding.cs
    │   │   ├── RenderTargetCube.cs
    │   │   ├── RenderTargetUsage.cs
    │   │   ├── ResourceCreatedEventArgs.cs
    │   │   ├── ResourceDestroyedEventArgs.cs
    │   │   ├── SamplerStateCollection.cs
    │   │   ├── SamplerStateCollectionStrategy.cs
    │   │   ├── SetDataOptions.cs
    │   │   ├── Shader/
    │   │   │   ├── ConstantBuffer.cs
    │   │   │   ├── ConstantBufferCollection.cs
    │   │   │   ├── ConstantBufferCollectionStrategy.cs
    │   │   │   ├── ConstantBufferStrategy.cs
    │   │   │   ├── PixelShader.cs
    │   │   │   ├── SamplerInfo.cs
    │   │   │   ├── Shader.cs
    │   │   │   ├── ShaderProfileType.cs
    │   │   │   ├── ShaderStage.cs
    │   │   │   ├── ShaderStrategy.cs
    │   │   │   ├── ShaderVersion.cs
    │   │   │   ├── VertexAttribute.cs
    │   │   │   └── VertexShader.cs
    │   │   ├── SpriteBatch.cs
    │   │   ├── SpriteBatchItem.cs
    │   │   ├── SpriteBatcherStrategy.cs
    │   │   ├── SpriteEffects.cs
    │   │   ├── SpriteFont.cs
    │   │   ├── SpriteSortMode.cs
    │   │   ├── States/
    │   │   │   ├── Blend.cs
    │   │   │   ├── BlendFunction.cs
    │   │   │   ├── BlendState.cs
    │   │   │   ├── BlendStateStrategy.cs
    │   │   │   ├── CompareFunction.cs
    │   │   │   ├── CullMode.cs
    │   │   │   ├── DepthFormat.cs
    │   │   │   ├── DepthStencilState.cs
    │   │   │   ├── DepthStencilStateStrategy.cs
    │   │   │   ├── FillMode.cs
    │   │   │   ├── IBlendStateStrategy.cs
    │   │   │   ├── IDepthStencilStateStrategy.cs
    │   │   │   ├── IRasterizerStateStrategy.cs
    │   │   │   ├── ISamplerStateStrategy.cs
    │   │   │   ├── RasterizerState.cs
    │   │   │   ├── RasterizerStateStrategy.cs
    │   │   │   ├── ReadonlyBlendStateStrategy.cs
    │   │   │   ├── ReadonlyDepthStencilStateStrategy.cs
    │   │   │   ├── ReadonlyRasterizerStateStrategy.cs
    │   │   │   ├── ReadonlySamplerStateStrategy.cs
    │   │   │   ├── ResourceBlendStateStrategy.cs
    │   │   │   ├── ResourceDepthStencilStateStrategy.cs
    │   │   │   ├── ResourceRasterizerStateStrategy.cs
    │   │   │   ├── ResourceSamplerStateStrategy.cs
    │   │   │   ├── SamplerState.cs
    │   │   │   ├── SamplerStateStrategy.cs
    │   │   │   ├── StencilOperation.cs
    │   │   │   ├── TargetBlendState.cs
    │   │   │   ├── TextureAddressMode.cs
    │   │   │   ├── TextureFilter.cs
    │   │   │   └── TextureFilterMode.cs
    │   │   ├── SurfaceFormat.cs
    │   │   ├── Texture.cs
    │   │   ├── Texture2D.cs
    │   │   ├── Texture3D.cs
    │   │   ├── TextureCollection.cs
    │   │   ├── TextureCollectionStrategy.cs
    │   │   ├── TextureCube.cs
    │   │   ├── Utilities/
    │   │   │   ├── ContentReaderExtensions.cs
    │   │   │   ├── DxtDecoder.cs
    │   │   │   ├── GraphicsExtensions.cs
    │   │   │   ├── HashHelpers.cs
    │   │   │   ├── ReflectionHelpers.cs
    │   │   │   └── TextureHelpers.cs
    │   │   ├── Vertices/
    │   │   │   ├── BufferUsage.cs
    │   │   │   ├── DynamicIndexBuffer.cs
    │   │   │   ├── DynamicVertexBuffer.cs
    │   │   │   ├── IDynamicIndexBufferStrategy.cs
    │   │   │   ├── IDynamicVertexBufferStrategy.cs
    │   │   │   ├── IPlatformVertexDeclaration.cs
    │   │   │   ├── IVertexType.cs
    │   │   │   ├── IndexBuffer.cs
    │   │   │   ├── IndexBufferStrategy.cs
    │   │   │   ├── IndexElementSize.cs
    │   │   │   ├── PrimitiveType.cs
    │   │   │   ├── VertexBuffer.cs
    │   │   │   ├── VertexBufferBinding.cs
    │   │   │   ├── VertexBufferCollection.cs
    │   │   │   ├── VertexBufferStrategy.cs
    │   │   │   ├── VertexDeclaration.cs
    │   │   │   ├── VertexDeclarationCache.cs
    │   │   │   ├── VertexElement.cs
    │   │   │   ├── VertexElementFormat.cs
    │   │   │   ├── VertexElementUsage.cs
    │   │   │   ├── VertexPosition.cs
    │   │   │   ├── VertexPositionColor.cs
    │   │   │   ├── VertexPositionColorNormal.cs
    │   │   │   ├── VertexPositionColorNormalTexture.cs
    │   │   │   ├── VertexPositionColorTexture.cs
    │   │   │   ├── VertexPositionNormalTexture.cs
    │   │   │   └── VertexPositionTexture.cs
    │   │   └── Viewport.cs
    │   ├── GraphicsDeviceInformation.cs
    │   ├── IGraphicsDeviceManager.cs
    │   ├── ILLink.Descriptors.xml
    │   ├── PreparingDeviceSettingsEventArgs.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   └── Xna.Framework.Graphics.csproj
    ├── Xna.Framework.Input/
    │   ├── ILLink.Descriptors.xml
    │   ├── Input/
    │   │   ├── ButtonState.cs
    │   │   ├── Buttons.cs
    │   │   ├── GamePad.cs
    │   │   ├── GamePadButtons.cs
    │   │   ├── GamePadCapabilities.cs
    │   │   ├── GamePadDPad.cs
    │   │   ├── GamePadDeadZone.cs
    │   │   ├── GamePadState.cs
    │   │   ├── GamePadStrategy.cs
    │   │   ├── GamePadThumbSticks.cs
    │   │   ├── GamePadTouchButtons.cs
    │   │   ├── GamePadTriggers.cs
    │   │   ├── GamePadType.cs
    │   │   ├── InputFactory.cs
    │   │   ├── InputKeyEventArgs.cs
    │   │   ├── Joystick.cs
    │   │   ├── JoystickCapabilities.cs
    │   │   ├── JoystickHat.cs
    │   │   ├── JoystickState.cs
    │   │   ├── JoystickStrategy.cs
    │   │   ├── KeyState.cs
    │   │   ├── Keyboard.cs
    │   │   ├── KeyboardInput.cs
    │   │   ├── KeyboardInputStrategy.cs
    │   │   ├── KeyboardState.cs
    │   │   ├── KeyboardStrategy.cs
    │   │   ├── Keys.cs
    │   │   ├── MessageBox.cs
    │   │   ├── MessageBoxStrategy.cs
    │   │   ├── Mouse.cs
    │   │   ├── MouseCursor.cs
    │   │   ├── MouseCursorStrategy.cs
    │   │   ├── MouseState.cs
    │   │   ├── MouseStrategy.cs
    │   │   ├── TextInputEventArgs.cs
    │   │   ├── Touch/
    │   │   │   ├── GestureLocationData.cs
    │   │   │   ├── GestureSample.cs
    │   │   │   ├── GestureType.cs
    │   │   │   ├── TouchCollection.cs
    │   │   │   ├── TouchLocation.cs
    │   │   │   ├── TouchLocationData.cs
    │   │   │   ├── TouchLocationState.cs
    │   │   │   ├── TouchPanel.cs
    │   │   │   ├── TouchPanelCapabilities.cs
    │   │   │   ├── TouchPanelStrategy.Legacy.cs
    │   │   │   ├── TouchPanelStrategy.LegacyGesture.cs
    │   │   │   └── TouchPanelStrategy.cs
    │   │   ├── TouchButtonState.cs
    │   │   └── XR/
    │   │       ├── ITouchControllerInput.cs
    │   │       ├── TouchController.cs
    │   │       └── TouchControllerType.cs
    │   ├── NamespaceDoc.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   └── Xna.Framework.Input.csproj
    ├── Xna.Framework.Media/
    │   ├── Content/
    │   │   ├── SongReader.cs
    │   │   └── VideoReader.cs
    │   ├── ILLink.Descriptors.xml
    │   ├── Media/
    │   │   ├── Album.cs
    │   │   ├── AlbumCollection.cs
    │   │   ├── AlbumStrategy.cs
    │   │   ├── Artist.cs
    │   │   ├── Genre.cs
    │   │   ├── MediaFactory.cs
    │   │   ├── MediaLibrary.cs
    │   │   ├── MediaLibraryStrategy.cs
    │   │   ├── MediaPlayer.cs
    │   │   ├── MediaPlayerStrategy.cs
    │   │   ├── MediaQueue.cs
    │   │   ├── MediaSource.cs
    │   │   ├── MediaSourceType.cs
    │   │   ├── MediaState.cs
    │   │   ├── Playlist.cs
    │   │   ├── PlaylistCollection.cs
    │   │   ├── Song.cs
    │   │   ├── SongCollection.cs
    │   │   ├── SongStrategy.cs
    │   │   ├── Utilities/
    │   │   │   └── FileHelpers.cs
    │   │   ├── Video.cs
    │   │   ├── VideoPlayer.cs
    │   │   ├── VideoPlayerStrategy.cs
    │   │   ├── VideoSoundtrackType.cs
    │   │   └── VideoStrategy.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   └── Xna.Framework.Media.csproj
    ├── Xna.Framework.Storage/
    │   ├── ILLink.Descriptors.xml
    │   ├── NamespaceDoc.cs
    │   ├── Storage/
    │   │   ├── StorageContainer.cs
    │   │   ├── StorageContainerStrategy.cs
    │   │   ├── StorageDevice.cs
    │   │   ├── StorageDeviceStrategy.cs
    │   │   ├── StorageFactory.cs
    │   │   ├── StorageService.cs
    │   │   └── StorageServiceStrategy.cs
    │   └── Xna.Framework.Storage.csproj
    └── Xna.Framework.XR/
        ├── ILLink.Descriptors.xml
        ├── NamespaceDoc.cs
        ├── XR/
        │   ├── HandsState.cs
        │   ├── HeadsetState.cs
        │   ├── XRDevice.cs
        │   ├── XRDeviceState.cs
        │   ├── XRDeviceStrategy.cs
        │   ├── XREye.cs
        │   ├── XRFactory.cs
        │   └── XRSessionMode.cs
        └── Xna.Framework.XR.csproj

================================================
FILE CONTENTS
================================================

================================================
FILE: .config/dotnet-tools.json_
================================================
{
  "version": 1,
  "isRoot": true,
  "tools": {
    "cake.tool": {
      "version": "2.0.0",
      "commands": [
        "dotnet-cake"
      ]
    }
  }
}


================================================
FILE: .gitattributes
================================================
# MonoGame - Copyright (C) The MonoGame Team
# This file is subject to the terms and conditions defined in
# file 'LICENSE.txt', which is part of this source code package.


# This forces the 3-way merge on the changelog to take lines
# from both versions instead of leaving conflicts to resolve.
CHANGELOG.md -text merge=union


================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: [nkast]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: ["https://paypal.me/nkastellanos"]


================================================
FILE: .github/workflows/dotnet.yml
================================================
# This workflow will build a .NET project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net

name: .NET

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  build:

    runs-on: windows-latest

    steps:
    - uses: actions/checkout@v4    
      with:
          submodules: recursive

   # - name: Setup .NET
   #   uses: actions/setup-dotnet@v4
   #   with:
   #     dotnet-version: 8.0.x
        

   # - name: Cache .NET workloads
   #   uses: actions/cache@v4
   #   with:
   #     path: ~\AppData\Local\Microsoft\dotnet\workloads
   #     key: ${{ runner.os }}-dotnet-workloads-${{ hashFiles('**/*.csproj') }}
   #     restore-keys: |
   #       ${{ runner.os }}-dotnet-workloads-

   # - name: Install workloads
   #   run: dotnet workload install android ios


    - name: Cache .NET nuget packages
      uses: actions/cache@v4
      with:
        path: ~/.nuget/packages
        key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
        restore-keys: |
          ${{ runner.os }}-nuget-

    - name: dotnet version
      run: dotnet --version
    - name: dotnet runtimes
      run: dotnet --list-runtimes
    - name: dotnet sdks       
      run: dotnet --list-sdks
      
    - name: dotnet workloads
      run: dotnet workload list

    - name: Restore Android workload
      run: dotnet workload restore Kni.Platform.Android.GL.sln
    - name: Restore iOS workload
      run: dotnet workload restore Kni.Platform.iOS.GL.sln
    - name: Restore Blazor workload
      run: dotnet workload restore Kni.Platform.Blazor.GL.sln
    - name: Restore WinForms workload
      run: dotnet workload restore Kni.Platform.WinForms.DX11.sln
            
    - name: dotnet workloads (after restore)
      run: dotnet workload list
      
    - name: Restore dependencies
      run: dotnet restore KNI.sln
      
   # - name: Build
   #   run: dotnet build KNI.sln --no-restore --property:WarningLevel=1
    - name: Build Ref
      run: dotnet build Platforms\Kni.Platform.Ref.csproj --property:WarningLevel=1
    - name: Build Blazor.GL
      run: dotnet build Kni.Platform.Blazor.GL.sln --property:WarningLevel=1
    - name: Build WinForms.DX11
      run: dotnet build Kni.Platform.WinForms.DX11.sln --property:WarningLevel=1     
    - name: Build SDL2.GL
      run: dotnet build Kni.Platform.SDL2.GL.sln --property:WarningLevel=1  
    - name: Build iOS.GL
      run: dotnet build Kni.Platform.iOS.GL.sln --property:WarningLevel=1
    - name: Build Android.GL
      run: dotnet build Kni.Platform.Android.GL.sln --property:WarningLevel=1

    - name: Install Android SDK Platform 32
      shell: cmd
      run: |
        echo y | "%ANDROID_HOME%\cmdline-tools\latest\bin\sdkmanager.bat" --install "platforms;android-32"

    - name: Build Oculus.GL
      run: dotnet build Kni.Platform.Oculus.GL.sln --property:WarningLevel=1
   # - name: Build Cardboard.GL
   #   run: dotnet build Kni.Platform.Cardboard.GL.sln --property:WarningLevel=1
   # - name: Build Windows UAP.DX11
   #   run: dotnet msbuild Kni.Platform.UAP.DX11.sln --property:WarningLevel=1

   # - name: Test
   #   run: dotnet test --no-build --verbosity normal


================================================
FILE: .github/workflows/sponsors.yml
================================================
name: Generate Sponsors README
on:
  workflow_dispatch:
  schedule:
    # This is a cron schedule, it will run every day at 15:30. You can change this to whatever you want.x
    - cron: 30 15 1,15 * *
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      # Checkout the repository
      - name: Checkout 🛎️
        uses: actions/checkout@v2

      # Generate the sponsors
      - name: Generate Sponsors 💖
        uses: JamesIves/github-sponsors-readme-action@v1
        with:
          token: ${{ secrets.SECRET_SPONSORS_README }}
          file: 'README.md'

      # Deploy the changes back to the main branch of the repository
      - name: Deploy to GitHub Pages 🚀
        uses: JamesIves/github-pages-deploy-action@v4
        with:
          branch: main
          # As we're deploying changes to our markdown files, this needs to be . to push the root directory back to the repository.
          folder: '.'


================================================
FILE: .gitignore
================================================
#OS junk files
[Tt]humbs.db
*.DS_Store

#Output Linux Installer
Installers/Linux/tmp_deb/
Installers/Linux/tmp_run/
*.run
*.deb

#Visual Studio files
*.pidb
*.userprefs
*.[Oo]bj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.csproj.csdat
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
.vs/
project.lock.json
/MonoGame.Framework/MonoGame.Framework.Net.WindowsUniversal.project.lock.json
/MonoGame.Framework/MonoGame.Framework.WindowsUniversal.project.lock.json
artifacts/

# JetBrains Rider
.idea/

#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*

#Visual Studio Rebracer extension, allows the user to automatically change the style configuration by project
rebracer.xml

#Subversion files
.svn

# Office Temp Files
~$*

#monodroid private beta
monodroid*.msi

#Unix temporary files
*~

# Output docs
Documentation/Output/

#Mac Package Files
*.pkg
*.mpack
**/packages

#Nuget Packages
**/*.nupkg

#Zip files
*.zip

Installers/Windows/header.nsh
Installers/MacOS/Scripts/Framework/postinstall
IDE/MonoDevelop/MonoDevelop.MonoGame/templates/Common/MonoGame.Framework.dll.config

# CAKE
.cake/**



================================================
FILE: .gitmodules
================================================
[submodule "ThirdParty/Dependencies"]
	path = ThirdParty/Dependencies
	url = https://github.com/kniEngine/kniDependencies.git
[submodule "ThirdParty/NVorbis"]
	path = ThirdParty/NVorbis
url=https://github.com/NVorbis/NVorbis.git
[submodule "ThirdParty/SDL_GameControllerDB"]
	path = ThirdParty/SDL_GameControllerDB
	url = https://github.com/gabomdq/SDL_GameControllerDB.git
[submodule "ThirdParty/StbImageSharp"]
	path = ThirdParty/StbImageSharp
	url = https://github.com/StbSharp/StbImageSharp.git
[submodule "ThirdParty/StbImageWriteSharp"]
	path = ThirdParty/StbImageWriteSharp
	url = https://github.com/StbSharp/StbImageWriteSharp.git


================================================
FILE: BuildNuget.bat
================================================
dotnet pack src\Xna.Framework\Xna.Framework.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack src\Xna.Framework.Content\Xna.Framework.Content.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack src\Xna.Framework.Graphics\Xna.Framework.Graphics.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack src\Xna.Framework.Audio\Xna.Framework.Audio.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack src\Xna.Framework.Media\Xna.Framework.Media.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack src\Xna.Framework.Input\Xna.Framework.Input.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack src\Xna.Framework.Game\Xna.Framework.Game.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack src\Xna.Framework.Devices\Xna.Framework.Devices.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack src\Xna.Framework.Storage\Xna.Framework.Storage.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack src\Xna.Framework.XR\Xna.Framework.XR.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack src\Xna.Framework.Design\Xna.Framework.Design.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release

dotnet pack src\Xna.Framework.Content.Pipeline\Xna.Framework.Content.Pipeline.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack src\Xna.Framework.Content.Pipeline.Audio\Xna.Framework.Content.Pipeline.Audio.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack src\Xna.Framework.Content.Pipeline.Graphics\Xna.Framework.Content.Pipeline.Graphics.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack src\Xna.Framework.Content.Pipeline.Media\Xna.Framework.Content.Pipeline.Media.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release

"C:\Program Files (x86)\NuGet3\nuget.exe" pack NuGetPackages/Content.Pipeline.Builder.nuspec	        -OutputDirectory NuGetPackages\Output\  -BasePath .  -Version 4.2.9001  -Properties Configuration=Release
"C:\Program Files (x86)\NuGet3\nuget.exe" pack NuGetPackages/Content.Pipeline.Builder.Windows.nuspec	-OutputDirectory NuGetPackages\Output\  -BasePath .  -Version 4.2.9001  -Properties Configuration=Release

"C:\Program Files (x86)\NuGet3\nuget.exe" pack NuGetPackages/MonoGame.Framework.WindowsUniversal.nuspec	-OutputDirectory NuGetPackages\Output\  -BasePath .  -Version 4.2.9001  -Properties Configuration=Release

dotnet pack Platforms\Kni.Platform.Android.GL.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack Platforms\Kni.Platform.Oculus.GL.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack Platforms\Kni.Platform.iOS.GL.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack Platforms\Kni.Platform.WinForms.DX11.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack Platforms\Kni.Platform.SDL2.GL.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
dotnet pack Kni.Platform.Blazor.GL.sln --output NuGetPackages\Output\ /t:Build /p:Configuration=Release 
dotnet pack Platforms\Kni.Platform.Ref.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release 
dotnet pack Platforms\Kni.Platform.WinForms.DX11.OculusOVR.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release 

dotnet pack Platforms\Kni.Platform.Cardboard.GL.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release

@pause


================================================
FILE: CHANGELOG.md
================================================
# Changelog


## 4.2.9001 Release - November 2, 2025

### Fixed
 - fix BoundingFrustum Intersects BoundingSphere #2436
 - fix GraphicsResourceStrategy.Dispose() #2334
 - fix ShouldNotOverrideTextures tests #2401 (XNA API compatibility)
 - fix shouldSetAndGetOptimizedMatrixArray Test #2466
 - Fix SFX MasterVolume #2381
 - [DesktopGL] fix SDL MediaPlayer.IsRepeating gaps #2515
 - [OpenAL] fix default microphone selection #2339
 - [XAudio/WebAudio] fix SoundEffectInstance default Volume #2360
 - [Android] fix Android ConcreteMediaPlayerStrategy IsRepeating #2440
 - [Android] fix Android ConcreteVideoPlayer IsLooped #2439
 - [Blazor.GL] MouseState.ScrollWheelValue does not change #2532
 - [GL] fix GLes precision #2448
 - [GL] fix GraphicsDevice.Clear(...) #2354
 - [Content.Pipeline] fix Incremental builds #2449
 - [Content.Pipeline] fix ColorWriter RuntimeType namespace #2298
 - [Content.Pipeline] fix BuildEvent SourceFile for external references #2333
 - [Content.Pipeline] fix parsing WebM metadata #2386
 - [Content.Pipeline] fix parsing WMV metadata #2322
 - [PipelineEditor] content editor preserve Link #2345

### Performance
 - optimize ConstantBufferStrategy.SetData(...) #2320
 - reduce ModelBoneCollection allocations #2501
 - [OpenAL] reduce allocations on OpenAL DynamicSoundEffectInstance #2484
 - [OpenAL] reduce allocations on OpenAL SoundEffect #2489
 - [Content.Pipeline] optimize CreateGeometry(...) #2336
 - [Content.Pipeline] perf SoundEffectProcessor #2369

### Changed
 - thread-safe Model.Draw(...) #2500
 - KNIFX Format #2396, #2400
 - multiplatform shaders #2464
 - check Shader model Version #2350
 - GLSL 300es Shaders #2406
 - [GL] seperate GL shaders #2456, #2457, #2463
 - [Android] upgrade to 16K aligned OpenAL v1.24.3 + OBOE #2495, #2504
 - [Winforms.DX11] enable DX Keyboard Input by default when there is no GameWindow/Game. #2528
 - [Blazor.GL] update Wasm v8.0.11 #2467,#2543
 - [WebGL] allow feature level FL10_0 #2517
 - [GL] allow SM4.0 on GLSL #2428, #2446
 - [DX11] upgrade to SharpDX 4.2.0 #2297, #2479
 - [Content.Pipeline] default media formats #2384
 - [Content.Pipeline] use WebM as the default on all platforms #2388
 - [Content.Pipeline] use MP3 as the default on all platforms #2389
 - [Content.Pipeline] Transcode Video files #2324
 - [PipelineEditor] resolving packages modal window #2471
 - [PipelineEditor] preserve ProcessorParams #2476, #2482
 - [PipelineEditor] PathComparer #2290

### Added
 - [Android] implement ConcreteMouse #2422, #2423
 - [Winforms.DX11] implements SaveAsJpeg() #2519
 - [Blazor.GL] Implements BlazorGameWindow.OnTextInput #2351
 - [Blazor.GL] Implements Mouse.SetCursor for BlazorGL #2346
 - [WebAudio] implement WebAudio Pan #2361
 - [WebAudio] implement WebAudio Ieee float #2367
 - [WebAudio] implements DynamicSoundEffectInstance #2468
 - [WebAudio] implements MicrophoneStrategy #2469
 - [WebGL] Implements DrawInstancedPrimitives support for BlazorGL #2338
 - [Content.Pipeline] VideoImporter #2385
 - [Content.Pipeline] added .fx defines __GL__, __GLES__ #2546

### Removed
 - [Content.Pipeline] drop support for legacy MGFX v09 #2397
 - [Content.Pipeline] removed .fx defines MGFX, DEBUG, GLSL, HLSL, OPENGL, SM4 #2545

## 4.1.9001 Release - April 08, 2025

### Fixed
 - [GL] fix DrawRangeElementsBaseVertex and DrawElementsBaseVertex #2191
 - [BlazorGL] fix Reach profile #2192
 - [Content.Pipeline] fix Nvidia.TextureTools 'exited with code (0xc0000409)' #2206
 - fix AboutAssets.txt templates typo #2195
 - [Android] initialize AndroidGameWindow.CurrentOrientation #2222
 - [Android] fix AndroidGameWindow Dispose #2242
 - fix build targets #2244
 - fix BoundingFrustumIntersectsBoundingSphere #2245, #2246, #2247
 - [BlazorGL] disable webkit text highlighting #2259
 - [Content.Pipeline] fix assimp SpecularPower #2264
 - [Android] fix ConcreteMicrophone #2269
 - [Oculus] fix .net9 build and target SDK 32 #2275,#2276

### Performance
 - reduce GetRenderTargets() allocations #2212

### Changed
 - [GL] improve PlatformNotSupportedException error messages #2209
 - return the number of render targets from GetRenderTargets() #2213
 - improve KNIFXC help output #2277, #2281

### Added
 - [BlazorGL] implemented MediaPlayer.MediaStateChanged #2258

### Removed

## 4.0.9001 Release - January 14, 2025

### Fixed
 - fixed SensorBase.Dispose() #1925
 - fixed sensor Dispose/finalize #1929
 - fix TestContentManager usage #1955
 - fix PipelineEditor OpenFile #1964
 - fix SDL IndexBuffer ShouldSetAndGetStructData #1974
 - fix SDL VertexBuffer ShouldSetAndGetStructData #1974, #2000
 - rebuild Assets when compression method changed #1980
 - fix DesktopGL native runtimes #1992
 - fix IFrame event capture #1993
 - fix DesktopGL MediaPlayer.Position #2006
 - fix PipelineEditor OnReferencesModified #2026
 - fix BoundingFrustrum Intersects & Contains #2052, #2073, #2074
 - fix CheckGLError(...) #2055
 - [SDL2] pin buffer to avoid access to invalid memory #2058
 - [OpenGL] fix Discard rendertargets #2062
 - [OpenGL] fix multisample surface types #2063
 - fix Complex out parameters #2125
 - fix GL TextureFilter.Linear #2165
 - fix GetInfoLog() #2166
 - fix DrawRangeElementsBaseVertex #2187, #2181

### Performance
 - optimize DX VertexBuffer Get/Set Data #1967
 - optimize SDL IndexBuffer GetData #1974
 - optimize SDL VertexBuffer GetData #1974, #2000
 - perf ConvertFloat32ToInt16() #2008, #2009, #2028
 - perf DesktopGL Texture GetData(...) #2011
 - perf use Environment.CurrentManagedThreadId #2013
 - perf use generic ContentTypeReaderT, avoid boxing for value types #2029
 - optimize GamePadDPad #2114

### Changed
 - remove MaxSensorCount limit #1928
 - rename Sensors namespace #1942
   Microsoft.Devices.Sensors -> Microsoft.Xna.Framework.Devices.Sensors
 - The library MonoGame.Framework is split into Xna.Framework.Devices, and Xna.Framework.Storage #1947, #1988.
 - ContentLoadException message include assetName #1963
 - throw 'Operation not called on main thread' for VertexShader/PixelShader #2014
 - throw 'Operation not called on main thread' for GetBackBufferData(...) #2020
 - [PipelineEditor] resize dialogs #2066, #2067
 - Rename Platform assembly #2136, #2146, #2147
 - rename Platform packages #2137, #2150, #2156

### Added
 - Vibrator class #1941, #2089
 - implement UAP Accelerometer #1948
 - XNB compression extension #1961, #2039
 - Brotli XNB compression #1962, #1966, #2033, #2040, #2041
 - /packageReference option in .mgcb to consume importers & processors from nuget #2027, #2068, #2069, #2070, #2075
 - added Plane.Intersects(Ray) #2044, #2046
 - added XR library, and unify LibOVR.
 - implement XR for BlazorGL platform #2090
 - [WebGL] implement half-float surface formats #2042
 - [WebGL] implement multisampling in rendertargets #2088
 - System.Numerics explicit conversion #2110
 - Matrix.CreateRotationZ(Complex) #2120
 - Pose3 and Pose2 structs #2121
 - windowsDX11 net4.8 #2142, #2152
 - tools net4.8 #2151
 - Oculus native backend #2174
 - [Blazor] implement MediaPlayer.PlayPosition and VideoPlayer.PlayPosition #2184

### Removed
 - drop net6.0 from WindowsDX & BlazorGL #2086
 - xamarin .nuspec #2154
 - Xamarin iOS project #2155

## 3.14.9001 Release - September 23, 2024

### Fixed
 - fixed TouchPanel scalling #1852
 - [BlazorGL] fixed Gamepad disconnect #1771
 - [BlazorGL] map GamePad Indices #1773
 - [BlazorGL] fixed Buffers SetData(...) with startIndex #1834
 - [BlazorGL] fixed TouchPanel initialization #1837
 - [OpenGL] fix DrawIndexedPrimitives (#1869
 - [WindowsDX/UAP] fixed GamePadState.IsConnected #1769
 - [Content.Pipeline] fixed OpenAssetImporter #1817,#1868
 - [Content.Pipeline] fixed DX textureSlot #1851

### Performance

### Changed
 - IsContentLost will not throw NotImplementedException #1865
 - [Android] GraphicsAdapter.MonitorHandle return the native eglDisplay handle #1795
 - [OpenGL/WebGL] include GL shader compilation InfoLog in the exception message. #1830,#1832,#1838
 - [BlazorGL] Upgrade Wasm packages to v8.0.2 #1860
 - [UAP] update to SDK v10.19041 #1769
 - [LibOVR] OvrDevice require GraphicsProfile FL11_0 #1795
 - [LibOVR] Upgrade LibOVR packages to v2.1 #1862

### Added
 - [OpenGL] ColorSRgba support #1802,#1805
 - [OpenGL] implemented GL shared texture2D #1854
 - [Android/GLES] implemented RenderTarget multisampling #1843,#1814
 - [Android/GLES] implemented Multiple Render Targets #1845
 - [BlazorGL] implemented Multiple Render Targets #1840
 - [BlazorGL] implemented SamplerStates #1765
 - [BlazorGL] implemented DXT5 compression #1766
 - [BlazorGL] implemented TextureCube #1767
 - [BlazorGL] support for SM 3.0 standard_derivatives #1833,#1844
 - [BlazorGL] implemented float texture surfaceTypes (Vector4,Vector2,Single) #1842
 - [BlazorGL] implemented Buffers GetData(...)  #1861
 - [BlazorGL] implemented Gamepad Trigger buttons #1770
 - [BlazorGL] implemented GamePad.SetVibration #1853
 - [LibOVR] add OvrDevice.TrackFloorLevelOrigin #1864
 - [Oculus/OpenXR] add HandsState.GetGripTransform() #1856

### Removed

## 3.13.9001 Release - July 24, 2024

### Fixed
 - fix GamePadCapabilities #1565
 - [iOS] fix Game.Services NullReferenceException #1607
 - [SDL] fix JoystickCapabilities.IsGamepad #1626
 - [ANDROID] fix Keyboard #1688
 - fix templates .mgcb file creation #1693
 - Fix templates projectname #1694
 - fix BlazorGL template alpha blend #1695
 - [DX11] fix NonPowerOfTwoUnusedTextureShouldNotThrow test #1701
 - [GL] fix NonPowerOfTwoUnusedTextureShouldNotThrow test #1702
 - [EffectProcessor] inorder samplers merge #1709
 - [EffectProcessor] fix ShaderProfileDX11 samplerSlot #1710
 - fix CreateGamePadCapabilities #1713
 - fix ResourceNameAlphaTestEffect #1724
 - [BlazorGL] fix MediaPlayer IsRepeating #1726
 - [SDL] early Joysticks initialization #1735
 - [BlazorGL] clear KeyboardState on focus lost #1736
 - [BlazorGL] fix Keyboard special keys #1738
 - fix MGCB builds with no response file #1745

### Performance
 - optimize ConcreteTextureCollection.PlatformApply() #1605
 - perf use HashSet for ContentManager _disposableAssets #1711
 - [Android] reduce FromEGLConfig() allocations #1583
 - [GL] use HashSet for GL Extensions #1587
 - [GL] optimized PlatformApplyVertexBuffers() #1604, #1673
 - [GL] discard VertexBuffer in SpriteBatcher #1636
 - [OpenGL] remove glFinish() from Texture2D.SetData() #1638
 - [OpenGL] use DrawRangeElements #1703
 - [SDL] cache JoystickCapabilities #1625
 - [SDL] cache GamePadCapabilities #1630
 - [SDL] reduce Vorbis MediaPlayer allocations #1680
 - [SDL] reuse Vorbis reader for Song Repeat #1684

### Changed
 - [EffectProcessor] Shader Model 1.x error message #1722
 - [BlazorGL] implemented DrawUserPrimitives and DrawUserIndexedPrimitives with vertexOffset #1723
 - [BlazorGL] implemented GamePad #1730
 - [BlazorGL] implemented TouchPanelCapabilities MaximumTouchCount and IsConnected #1731
 - [BlazorGL] implemented Medium quality SoundEfects (MsAdpcm) #1748
 - [BlazorGL] implemented SoundEffect.FromStream() #1749
 - [BlazorGL] implemented Buffers SetData(...) with startIndex #1753
 - [BlazorGL] implemented HiDef and WebGL2 #1756

### Added

### Removed
 - VS2019 templates removed #1631
 - Xamarin templates removed #1632
 - removed GamePadState.Default #1650, #1651, #1653

## 3.12.9001 Release - May 12, 2024

### Fixed
 - fix FBX GlobalSettings transforms #1310, #1545.
 - fix ContentCompiler.Compile(...) #1320.
 - fix psShader error message #1333.
 - fix TitleContainer.Current comments #1339.
 - [Android] fix Android Game Initialization #1446, #1551.
 - [UAP] fix UAP Game Initialization #1452.
 - [iOS] fix iOS Game Initialization #1487.
 - allow the Game loop to run without a GraphicsDeviceManager #1453, #1467.
 - fix XAudio ADPCM fallback #1508.
 - fix ProcessMesh() channel mapping to VertexElement #1538.
 - fix ExternalReferenceWriter GetRuntimeReader(...) #1540.
 - ModelProcessor default ColorKeyColor #1542.
 - set MaterialProcessor Parameter default values #1546, #1547.
 - Fixed resolve Type bug due to splitting out to different assemblies #1534, #1552.

### Performance
 - skip XNB compression for uncompressed files #1321, #1334.
 - compact sizeof GamePadCapabilities #1430.
 - compact sizeof JoystickHat #1471.
 - optimize BufferPool array allocation #1526, #1527.
 - optimize ProcessMesh #1537.

### Changed
 - [Content.Pipeline] upgrade Assimp to v5.2.4 #1305.
 - renamed HandState.GetHandTransform(int handIndex) parameter #1312. 
 - allow Shader Model 2_0 and 3_0 on DirectX targets #1333.
 - Game.ResetElapsedTime() is no longer virtual #1439.
 - GameTime properties are now readonly/protected. #1443.
 - The library MonoGame.Framework is split into Xna.Framework.Input, and Xna.Framework.Game #1517, #1518. 

### Added
 - GameWindow keyboard events are now visible in all platforms #1317, #1323.
 - fx macro __KNIFX__.
 - protected GameWindow.OnClientSizeChanged() (XNA API compatibility) #1486.
 - ModelProcessor.GenerateNormals #1543.

### Removed
 - TouchPanelState class #1337.
 - TouchPanel.GetState(GameWindow) #1337.
 - Removed Cardboard Xamarin target #1507, #1548.
 - Removed obsolete PlatformInfo, GraphicsBackend, PlatformInfo #1519.
 - protected ContentManager.LoadedAssets property #1523.

## 3.11.9002 Release - March 09, 2024

### Fixed
 - [Content.Pipeline] fixed FontDescriptionStyle (Regular,Bold,Italic) #1019, #1056, #1142.
 - [Content.Pipeline] fixed FontDescriptionStyle flags #1053.
 - [Content.Pipeline] fixed FontDescription.Name. Resolve FontFamily #1060.
 - [Content.Pipeline] fixed MeshHelper.CalculateNormals() #1128.
 - [Content.Pipeline] fixed ProcessorContext.BuildAsset<Tin,Tout> asset path #1147.
 - [PipelineEditor] fixed content Editor layout. Preserve splitter positions & window size. #1214, #1225.
 - [GL] bugfix: #991 zero-initialized RenderTargetBinding instances being accessed in PlatformUnbindRenderTarget #998.
 - [Android] fixed GL InitExtensions() #1239.
 - [Android] fixed LzxDecoderStream #1261.
 - [UAP.XAML] fixed PresentationParameters.DeviceWindowHandle #970.
 - fixed SoundEffectInstance finalizer #1281.
 - fixed default initialization of PresentationParameters #985.
 - fixed spelling errors in comments #1063, #1281, #1209.
 - fixed WindowsDX VS2019 template #1106.

### Performance
 - Optimized VertexElements iteration #1115.

### Changed
 - [Content.Pipeline] local fonts must specify the full filename + extension #1055.
 - [Content.Pipeline] Builder.Task nuget package to replace build targets #1139, #1140, #1141 #1224, #1270.
 - [Content.Pipeline] VertexBufferWriter will throw PipelineException on invalid VertexData.Length #1150.
 - [Content.Pipeline] ModelProcessor throws InvalidOperationException on invalid geometry #1151.
 - [Content.Pipeline] ContentWriter.Write(Color) & ContentReader.ReadColor() replaced with extensions #1190, #1191.
 - [Content.Pipeline] Upgrade content pipeline to net8 #1229, #1230, #1235.
 - [Content.Pipeline] 2MGFX tool renamed to Knifx #1251.
 - [Content.Pipeline] renamed stock importers #1252.
 - [PipelineEditor] Upgrade ContentMenu to ContentMenuStrip #1213.
 - [PipelineEditor] Upgrade content editor from net4.x to net8 #1216, #1217, #1218, #1219, #1220, #1223, #1226.
  - set Tools icon (content editor, MGCB, 2MGFX) #1221.
 - [BlazorGL] Upgrade WebAssembly packages to v6.0.27 #1233.
 - [BlazorGL] Upgrade Wasm packages to v8.0.0 #1249, #1287.
 - [Android] Disabled fast deployment in net8 template #1279.
 - [Android/iOS] Enable trimming in iOS, Android templates #1288.
 - [DesktopGL] Enable trimming and nativeAOT in DesktopGL templates #1288.
 - [DX11] GraphicsAdapter.DriverType & GraphicsAdapter.UseDriverType moved to PresentationParameters #1007.
 - [LibOVR] Upgrade LibOVR packages to v2.0 #1286.
 - [LibOVR] implement TouchController.ThumbSticks #1290, #1291, #1292.
 - DesktopGL & WindowsDX11 projects upgraded to netcode SDK #1131.
 - test files merged #1129.
 - VS2019 project templates updated to use nuget packages #1269.
 - updated VS2022 template icons #1289.
 - The library MonoGame.Framework is split into MonoGame.Framework, Xna.Framework.Content, Xna.Framework.Graphics, Xna.Framework.Audio, and Xna.Framework.Media #1166, #1167, #1176, #1188.
 - PlatformInfo.GraphicsBackend marked obsolete. Use Adapter.Backend #1202.
 - PlatformInfo.MonoGamePlatform marked obsolete.Use TitleContainer.Platform #1208.
 - Upgrade platforms to net8 #1228, #1236.
 - Upgrade templates to net8 #1237.
 - Upgrade framework to net8 #1263.

### Added
 - 
 - RenderTargetBinding(RenderTarget3D) .ctor is now visible in all platforms #982.
 - ResourceContentReader class is now visible in all platforms #1100.
 - Added ContentReader.BufferPool property #1092.
 - Added MediaQueue.Count property #1182.
 - Added Adapter.Backend #1202.
 - Added TitleContainer.Platform #1208.
 - Added ColorConverter class #1253.
 - Added MGCB debug profiles #1274.
 - Enable trimming in framework libraries #1282, 1283.
 - VertexDeclaration implements IDisposable #1284.

### Removed
 - [UAP.XAML] removed custom game constructor #961.
 - [UAP] removed UAP gameloop thread #968.
 - [UAP] removed template WizardExtension #1272.
 - removed PresentationParameters.Clear() method #962.
 - removed PresentationParameters.SwapChanPanel property #972, #975.
 - removed Video.FileName property #1178.

## 3.10.9001 Release - November 30, 2023

### Fixed
 - Fixed spelling of 'Occurred' in Exceptions, Errors and comments #536.
 - Fixed spelling errors #545.
 - Fixed not-supported compression format error message #537.
 - Fixed GraphicsResource.Disposing event. Throw Disposing before the object is disposed or or collected (XNA Compatibility) #583.
 - Fixed GraphicsDevice.Disposing event #587. Throw Disposing before the object is disposed or collected.
 - [OculusVR] Dispose of OvrDevice on device disposing #589.
 - [OpenAL] Fixed Microphone.BufferDuration redundancy #599.
 - [OpenGL] Fixed GenRenderbuffer() & DeleteFramebuffer() #647.
 - [DX11] Fixed MultiSample in shared textures #666.
 - Fixed spelling in MeshHelper documentation #679.
 - [OpenGL/WebGL] Fixed Texture bindings #694.
 - [OpenGL/WebGL] Fixed GL Texture MultiSampleCount #720.
 - Fixed spelling in comments #744.
 - Fixed GLSL Texture parameter #752.
 - Fixed HLSL Texture parameter #754, #755, #830.
 - Fixed Game.IsActive on startup #759.
 - Fixed collection of DynamicSoundEffectInstance objects #776. 
 - Fixed collection of MediaPlayer objects #777, #784.
 - [OpenGL] Fixed appling of VertexBuffersAttribs #787.
 - [OpenGL] Fixed disposal of GraphicsResource objects from the GC Finalizer thread. #797, #798, #799, #800, #802, #803, #805.
 - [DX11] Fixed resizing while a renderTarget is attached to the backbuffer #808.
 - [OpenGL] Fixed updating of GraphicsDevice.ScissorRectangle after a ClientResize event #810.
 - Fixed content Builder db corruption #864.
 - Fixed content Builder IntermediateOutputDir when building from VS target. #875, #876, #877, #878 .
 - Fixed content Builder /Clean option. #882.
 - Fixed content Editor crash from invalid builder's output #890.
 - Fixed content Builder non-standard output. #892.
 - Fixed content Builder race condition in CopyItems #894.
 - Fixed content Builder Success/Error counters in CopyItems #895.
 - Fixed Game.SuppressDraw #915.
 - [SDL] Bugfix: Tick() was called after Game.Exit() #917.
  
### Performance
 - [OpenGL/WebGL] Optimized SamplerState.PlatformApplyState(...) #580.
 - [OpenGL] Optimized Effect loading GL #672.
 - [DX11] Optimized DrawUserIndexedPrimitives #678.
 - [OpenGL/WebGL] Optimized Apply of TextureCollection #705.
 - Optimized DrawIndexedPrimitives #706.
 - [OpenGL] Optimized DrawIndexedPrimitives & DrawInstancedPrimitives #709.
 - Optimized SpriteBatch flush #710.
 - [DX11] Optimized SetConstantBuffers #711.
 - Optimized Effect processor #763.
 - [OpenGL/WebGL] Optimized ComputeHash #768.
 - Optimized GraphicsResource.GraphicsDevice code-flow #783, #780.
 - Optimized PlatformApplyVertexBuffersAttribs code-flow #786.
 - Optimized content Builder db #871, #872.
 - Optimized content Builder CleanItems #884.
 - Optimized content Builder project file loading #887. 
 - Optimized SetParameter code-flow #896.
 - Optimized Po2 check #906.
 
### Changed
 - [Android] implemented GameWindow.Handle and PresentationParameters.DeviceWindowHandle #534.
 - GraphicsDevice.Handle and Texture.Handle marked obsolete. Use GraphicsDevice.GetD3D11Device() and Texture.GetD3D11Resource() extensions. #593.
 - Renamed  parameter 'cubeMapFace' of TextureCube.SetData() (XNA Compatibility) #613.
 - Unresolvable Character error from a SpriteFont now reports the unresolved chracter. #648.
 - Renamed parameter 'usage' of IndexBuffer & VertexBuffer (XNA Compatibility) #686.
 - Renamed constants in project templates, LINUX->DESKTOPGL, WINDOWS->WINDOWSDX #712.
 - VertexDeclaration is no longer inherited from GraphicsResource (breaks XNA API) #760, #773.
 - Macros removed from the SpriteEffect.fx template #769, #817.
 - The content Editor enforce rooted content #774.
 - Updated CompareFunction Members documentation #815.
 - Cleaned up UAP project templates #831.
 - VS2022 project templates updated to use nuget packages. #839.
 - Invalid XNB file error from ContentManager now reports the invalid platform flag #865, #866.
 - Content builder with /quiet option no longer output 'Skipping...' files in VS build output. #873.
 - VS2022 project templates updated to use new build target Kni.Content.Builder.targets #879, #880, #928.
 - Content builder with /guiet option now output a single-line report message. #886.
 - Content builder reports milliseconds in 3 digits. #886.
 - [BlazorGL] implemented Texture2D.GetData() #716.
 - [BlazorGL] implemented SongReader & MediaPlayer #723.
 - [BlazorGL] implemented VideoPlayer #724.
 - [BlazorGL] implemented Depth24Stencil8 for render targets #816.
 - [BlazorGL] implemented Depth24Stencil8 for GraphicsDeviceManager.PreferredDepthStencilFormat #821.
 - [BlazorGL] implemented GraphicsDeviceManager.PreferrMultiSampling #824.
 - [BlazorGL] implemented PresentationParameters.RenderTargetUsage #825.
 - [BlazorGL] implemented Game.IsActive #826.
 - [OpenGL/WebGL] GraphicsAdapter.IsDefaultAdapter #826.
 - [DesktopGL] GraphicsAdapter.IsProfileSupported #903.
 - [ANDROID/iOS] Mobile/Xamarin projects & templates upgraded to .net8 #925, #926, #927.
 - [BlazorGL] Brotli decompression is disabled by default #931.

### Added
 - GraphicsDevice.Flush() added to all platforms #590.
 - DynamicBuffer.ContentLost event (XNA API compatibility) #725.
 - [BlazorGL] loading screen #911.
 - [BlazorGL] added enableBrotliDecompression boolean in index.html #930.
 
### Removed
 - Textur2D.Reload() method #571.
 - [Android/iOS] Native Texture2D.FromStream() methods #572.
 - .net6 Libraries removed from the SDK #835.
 - VS2017 project templates #850.
 - Implicit response & content filenames as arguments in the content builder, Use /@:responseFile and /build:contentFile #867.
 - /LauncgDebugger option from the content builder #868.
 - .net6 Templates #920.

## 3.9.9001 Release - august 09, 2023

### Fixed
 - bugfix: fix Complex.Magnitude.
 - bugfix: fix DictionaryReader.
 - bugfix: fix RenderTarget3D/RenderTargetCube multisample.
 - bugfix: fix EffectParameter.SetValueTranspose(Matrix) for Matrxi4x3 and Matrix3x4.
 - bugfix: [OpenGL] Dispose of GraphicsContext.
 - bugfix: [OpenGL] fix MarshalStringToPtr(...).
 - bugfix: [OpenGL] fix RenderTarget2D multisample.
 - bugfix: [OpenGL] IndexBuffer is invalidated after a call to DrawUserPrimitives, IndexBuffer's .ctor and GetData/SetData.
 - bugfix: [WindowsDX] fix ObjectDisposedException in PreFilterMessage.
 - bugfix: [WindowsDX] fix VideoPlayer.Resume().
 - bugfix: [WindowsDX] fix VideoPlayer memory leak.
 - bugfix: [WindowsDX/UAP] fix VideoPlayer.GetTexture().
 - bugfix: [DesktopGL] DeviceWindowHandle is not updated to the actual GL Window handle.
 - bugfix: [DesktopGL] game window fails to load Icon.bmp.
 - bugfix: [DesktopGL] GameWindow.Title.
 - bugfix: [Content.Pipeline] fix FontDescriptionProcessor smoothing.
 - bugfix: [Content.Pipeline] FontDescription.Spacing was incorectly applied to VerticalLineSpacing (XNA API compatibility).
 - bugfix: [Content.Pipeline] fix FontDescriptionProcessor Yoffset Cropping.
 - bugfix: [Content.Pipeline] fix font size.
 - bugfix: [Content.Pipeline] Added 1px spacing to Glyphs when UseKerning is false.
 - bugfix: [Content.Pipeline] method CalculateAlphaRange(...) should throw instead of returning default value when the type is unsupported.
 - bugfix: [Content.Pipeline] fix GLSL optimized matrix parameter.
 - bugfix: [Content.Pipeline] fix Compression of 16bit Textures with Alpha.
 - bugfix: [Content.Pipeline] fix EnvironmentMapEffectWriter.
 - bugfix: [Content.Pipeline] fix MeshHelper.CalculateNormals(...).
 - bugfix: [Content.Pipeline] Implement ContentImporterContext.AddDependency() (XNA API compatibility).
 - bugfix: [Content.Pipeline] Interpolate curved animation (XNA API compatibility).
 
### Performance
 - [DesktopGL] reduce GamePad.GetCapabilities(...) string allocations.
 - [GL] Use DYNAMIC_DRAW for Dynamic buffers instead of STREAM_DRAW.
 - [Content.Pipeline] Optimized ProcessPremultiplyAlpha(...).
 - [Content.Pipeline] Optimized Texture compression.
 - [Content.Pipeline] Optimized FontDescriptionProcessor and FontTextureProcessor.
 - [Content.Pipeline] Optimized PixelBitmapContentT.SetPixelData(...) and PixelBitmapContentT.ReplaceColor(...).
 - [PipelineEditor] optimize UpdateRecentProjectList().
 
### Changed
  - The library MonoGame.Framework is split into MonoGame.Framework, Xna.Framework and Xna.Framework.Design.
  - Game.Exit() will now throw PlatformNotSupportedException instead of InvalidOperationException (XNA API change).
  - GameWindow.Title will throw ArgumentNullException (XNA API compatibility).
  - Max Capacity of TextureCollection, ConstantBufferCollection, SamplerStateCollection increased to 32. Collections will throw ArgumentOutOfRangeException.
  - EffectParameter.SetValue(Matrix) will throw InvalidCastException for unsuported Matrix types.
  - Vector2/3/4TypeConverter, renamed to Vector2/3/4Converter.
  - IsContentLost will throw NotImplementedException.
  - [BlazorGL] Game.Exit() will throw PlatformNotSupportedException.
  - [BlazorGL] MaxTextureSlots increased to 8 from 4.
  - [WindowsDX] Texture2D.Reload() will throw NotImplementedException.
  - [PipelineEditor] font size increased to 11 from 9.
  - [Content.Pipeline] AssimpNet updated to v4.1.0.
  - [Content.Pipeline] The library MonoGame.Framework.Content.Pipeline is split into
Xna.Framework.Content.Pipeline, Xna.Framework.Content.Pipeline.Audio, Xna.Framework.Content.Pipeline.Media,
Xna.Framework.Content.Pipeline.Graphics and Xna.Framework.Content.Pipeline.Graphics.MojoProcessor.
 
### Added
 - Implement IPackedVector<UInt32> for Color (XNA API compatibility).
 - Implement EffectParameter.SetValue(Matrix) for Matrix4x2.
 - [DesktopGL] Implement Mouse Raw Input.
 - [WindowsDX/UAP] Implement VideoPlayer.IsLooped.
 - [Android] Implement VideoPlayer.GetTexture(), VideoPlayer.PlayPosition, VideoPlayer.IsLooped, VideoPlayer.Volume.
 - [BlazorGL] Implement building effects for the WebGL Platform.
 - [BlazorGL] Update template to prevent Arrows Keys and Spacebar scrolling the outer page when running inside an iframe. (by @Terria-K)
 - [BlazorGL] Update template to prevent Mousewheel scrolling the outer page when running inside an iframe.
 - [Content.Pipeline] added FontDescriptionProcessor.Smoothing parameter.
 - [Content.Pipeline] support Alpha8, NormalizedShort2, NormalizedShort4 in PixelBitmapContent (XNA API compatibility).
 
### Removed
  - GraphicsDevice.IsContentLost property.
  - GraphicsDevice.ResourcesLost property.
  - [UAP] removed Game.PreviousExecutionState property.
  - [Android] removed Game.Activity property.
  - [Content.Pipeline] StbSharp is now internal.
 
## 3.8.9102 Release - February 5, 2023

### Fixed
 - bugfix: Android gameloop will now pause while app is in the background.
 - bugfix: FontDescriptionProcessor glyph cropping.
 - bugfix: FontDescriptionProcessor glyph whitespaces width.
 - bugfix: GlyphPacker failed when FontDescription imports a single character.
 - bugfix: [MGCB] processorParam flag changed to 'm'. Fix conflict with processor flag 'p'.
 - bugfix: [MGCB] remove multiple flags support. Fix conflict with all non-flag parameters.
 - bugfix: [DesktopGL] Game initialization.

### Performance
 - [GL] Single ShaderProgramCache lookup.
 - [GL] Use _blendFactorDirty  & _blendStateDirty to skip checks.
 - Parallel PixelBitmapContent<T> .ctor() and GetPixelData().
 - Multithread content pipeline builder.

### Changed
 - GraphicsAdapter is no longer IDisposable (XNA API compatibility).
 - MonoGameAndroidGameView renamed to AndroidSurfaceView
 - base ContentTypeWriter.ShouldCompressContent(...) returns true.
 - Include type name in the error message for failed resolved Types in content pipeline.
 - Report duplicate importers/processors without faling/halting the build.
 - [OpenGL/GLES] resources are released immediately when the object is collected/Disposed.
 - Song in DesktopGL is re-implemented as DynamicSoundEffectInstance.
 - Include FontDescription.DefaultCharacter in the imported Glyphs instead of throwing an error (XNA API compatibility).
 - SpriteFont template updated with DefaultCharacter '�'.
 - Reverted WinForms editor replaces eto.
 - Calling EffectPass.Apply() will always apply the EffectPass that it was called on (XNA API compatibility).
Changing the CurrentTechnique in Effect.OnApply() in no longer allowed and will throw an InvalidOperationException.
 - MonoGamePlatform enum BLAZOR renamed to BlazorGL.
 - [BlazorGL] workaround for .net7 Unmarshalled interop bug.

### Added
 - The following Classes/Methods are now visible in all platforms.
SetRenderTarget(RenderTarget2D renderTarget, int arraySlice)
SetRenderTarget(RenderTarget3D renderTarget, int arraySlice)
 - Restored SpriteFont.Characters property (XNA API compatibility).
 - [MGCB] Parameter 'singleThread' (-s) to turn of Multithread build.
 - fx macros __DEBUG__, __DIRECTX__, __OPENGL__, __MOJOSHADER__.
 - DrawableGameComponent and GameComponent VS2022 template.
 - BlazorGL VS2022 template.

### Removed
 - IWindowInfo
 - AndroidGameActivity.RenderOnUIThread
 - Song.Position
 - Protected methods PlatformOnSongRepeat(), PlatformPlay(), PlatformResume() in MediaPlayer.
 - GlyphCollection.CopyTo()
 - Stadia platform.

## 3.8.9101 Release - October 9, 2022

### Fixed
 - bugfix: [DesktopGL] screen appear white washed.
 - bugfix: [GL] TextureSlots number can be greater that implementation limitations.
 - bugfix: [webGL] Texture.Dispose() throws Exception when garbage collected.
 - bugfix: [WebAudio] SoundEffect.Volume is not applied to a playing instance.
 - bugfix: [DirectX] RenderTargetCube throws Exception when created without a Depth.
 - bugfix: Content manager should throw error when TypeVersion does not match.

### Performance
 - perf: [GL] 250% faster spriteBatcher.
 - perf: 10% faster MeasureString().
 - perf: Optimize Vector array Transform methods.
  - perf: cache resolved TypeReader types

### Changed
 - [webGL] implement Discard mode in Dynamic buffers.
 - [webGL] implement Dtx3 texture compression.

### Added
 - Oculus VR (PC library), Implemented as addon lib for WindowsDX.
Added classes/structs: OvrDevice, HandsState, HeadsetState.
The following classes/structs were added in Framework.Input.Oculus:
TouchController, TouchControllerState, TouchControllerType, TouchButtons, TouchButtonState.
 - Complex numbers.
Added classes/structs/methods: Complex, ComplexWriter, ComplexReader,
Vector2.Transform() overloads, 
SpriteBatch.Draw() and SpriteBatch.DrawString() overloads.
 - The following Classes/Methods are now visible in all platforms.
Video, VideoPlayer, VideoReader, 
OcclusionQuery,
Texture3D, RenderTarget3D, Texture3DReader,
EffectParameter.GetValueTexture3D()

## 3.8.9100 Release - Aug 11, 2022

### Fixed
 - Fix incremental build of external assets.
 - fix MGFXHeader.
 - fix EffectProcessor.
 - fix Mouse.SetCursor() resource leaks.
 - fix memory leak on ContentManager.ReloadGraphicsAssets().
 - Fix DrawableGameComponent.Dispose().
 - TextureProcessor no longer override existing MipMaps (XNA API compatibility).
 - [UAP] fix IsFullScreen. Implement IsFullScreenMode, PreferredLaunchWindowingMode.
 - [UAP] fix GamePad race condition.
 - fix ContentTypeReaderManager,ResolveType() when running on Core/Net6.
 - fix game loop, Reset IsRunningSlowly after 5 frames.
 - fix error "Could not find ContentTypeReader ReflectiveReader<MaterialContent>".
 - fix FBX/OpenAssetImporter TextureCoordinate AddressV mode.
 - fix FBX/OpenAssetImporter material.SpecularPower.
 - [Android] fix GraphicsDeviceManager.SupportedOrientations and Backbuffer size handling.
 - fix SoundEffectInstance, DynamicSoundEffectInstance states (Play/Stop/Pause/Resume).
 - fix SoundEffectInstance resource leaks.
 - fix DynamicSoundEffectInstance.BufferNeeded.
 - [openAL] fix SoundEffectInstance Pan and Apply3D.
 - GraphicsDeviceManager will not swap PreferredBackBufferWidth/PreferredBackBufferHeight.
 - fix graphics context ApplyState.
 - [DirectX] fix RenderTargetCube with depth for Feature level 10_0 and higher.
 - fix mgcb output. Some errors are not caught by the mgcb editor.
 - mgcb generates output combatible with Visual Studio. mgcb errors and warnings are visible on the Error List panel. 
 - fix error in FontDescriptionProcessor, throw InvalidContentException instead of InvalidOperationException.
 - fix reported shader error/warning line number when #include files are used.
 - fix pipeline error due to missing redistributable msvcr110.dll.

### Performance
 - [DesktopDX] reduce WinForms garbage from EventArgs.
 - optimize Intersects BoundingBox vs BoundingSphere.
 - optimize BoundingBox.CreateFromPoints().
 - precalculate Glyph TexCoord (SpriteBatch).
 - optimize Viewport Project()/Unproject().
 - [DirectX] grow internal buffers in chunks.
 - fast IntermediateSerializer.FindType().
 - Reduce garbage in EffectResource loading.
 - TouchCollection with Fixed Size array. Doesn't allocate memory/generate garbage. 
 - [DesktopDX] reduce WinForms keyboard garbage from EventArgs.
 - [DirectX] optimized spriteBatcher. Two phase batching with buffers.
 - [DirectX] optimized spriteBatcher. Write vertices directly to the Mapped Buffer.
 - improved gameLoop.
 - [DirectX] optimized Texture2D.GetData() when (rowPitch != 0).
 - reduce garbage from GameWindow.TextInput, GameWindow.KeyUp, GameWindow.KeyDown events.
 - [Android] reduce garbage in ContentManager.Load<>().
 - [ANDROID] Reduce garbage from gameLoop.
 - optimized SpriteBatch.End()/Setup(). 
 - [Audio] Optimize and reduce memory garbage.
 - optimize graphics context ApplyState.
 - reduced size of TouchLocation. Split TouchLocation/TouchLocationData and other minor optimizations.
   
### Changed
 - backward compatible EffectReader (v9,v8).
 - no longer applying reordering of content items in .mgcb files.
 - ContentManager allow rooted paths on all platforms.
 - [UAP] ContentManager throws DirectoryNotFoundException.
 - Matrix.CreatePerspective() no longer support infinite far planes.
 - Game.Exit() throws InvalidOperationException on platforms that don't allow programmatically exiting the app (Android, iOS).
 - [WindowsDX] implement Mouse.WindowHandle.
 - Texture2D.FromStream() does no longer cut-off alpha pixels (breaks XNA API).
 - GamePadDPad and GamePadState constructors (XNA API compatibility).
 - [UWP] Allow BackBuffer Scaling
 - [WindowsDX] game will not update during moving/resizing of the window. instead the window gets repainted.
 - removed sender parameter from on-event virtual methods (breaks XNA API).
Game.OnExiting(), Game.OnActivated(), Game.OnDeactivated(),
GameComponent.OnUpdateOrderChanged(),  GameComponent.OnEnabledChanged() ,
DrawableGameComponent.OnDrawOrderChanged(), DrawableGameComponent.OnVisibleChanged(). 
 - in effect templates the GL level is now the same version as DX.
 - some Model properties, methods and setters were made internal/private. 
 - all ContentWriters are now backward compatible with XNA (XNA API compatibility).
 - [UAP/Xaml] game loop runs from main thread.
 - [DirectAudio] decode invalid MSADPCM during loading.
 - [WindowsDX] BaseIndexInstancing is disabled.
 - implement Graphic Profiles (Reach & HiDef) (XNA API compatibility).
 - implement Extended Graphics profiles (FL10_0,FL10_1,FL11_0,FL11_1).
 - The following event arguments were changed to classes inheriting EventArgs.
FileDropEventArgs, InputKeyEventArgs, TextInputEventArgs.
 - SpriteFont.Glyphs returns a GlyphCollection.
 - [Android] TitleContainer now returns a random access stream.
 - [Android] Fine tune resolution for automatic orientation (45 degrees angle).
 - [Android] Shockproof automatic orientation (0.5sec delay).
 - [Android] Suspend game during a Call (Requires READ_PHONE_STATE permission).
 - [Android] Implement Game.IsActive.
 - FrameworkDispatcher is no longer a static class (breaks XNA API).
 - SoundEffect, SoundEffectInstance, DynamicSoundEffectInstance is now thread safe.
 - Audio device might get initialized on demand and shutdown automatically as needed multiple times.
 - DynamicSoundEffectInstance.BufferNeeded will not automatically stop firing.
 - [GL] Texture2D.SetData(), Texture2D.GetData() no longer work from worker threads.
 - GraphicsDeviceManager explicitly implements IGraphicsDeviceManager.
 - SpriteFontContent properties, methods and setters were made internal/private.
 - Converters under the Framework.Design namespace now convert only to/from String.
 - Texture2D.FromStream now use native decoders when posible.
 - Net.Framework libraries (DesktopGL, Content.Pipeline) set to target 4.0. 
 - Net6 libraries DesktopGL & Content.Pipeline set to target netstandard2.0.
 
### Added
 - Mouse.IsRawInputAvailable, MouseState.RawX, MouseState.RawY.
 - Game.IsVisible.
 - GraphicsProfile.FL10_0, GraphicsProfile.FL10_1, GraphicsProfile.FL11_0, GraphicsProfile.FL11_1.
 - GlyphCollection.
 - The following Classes/Methods are now visible (XNA API compatibility).
BoundingSphere.Intersects(BoundingFrustum frustum), Ray.Intersects(BoundingFrustum),
EffectParameter.GetValueBooleanArray(), EffectParameter.GetValueQuaternionArray(),
EffectParameter.SetValue(bool[]), EffectParameter.SetValue(Quaternion[]), EffectParameter.SetValue(string).
GraphicsDevice.Present(Rectangle? , Rectangle? , IntPtr ) 
 - MediaLibrary.SavePicture() overloads.
 - IFrameworkDispatcher, FrameworkDispatcher.Current.
 - GraphicsDeviceManager implements Dispose() on all platforms.
 - StorageDevice, StorageContainer.
 - VectorConverter (XNA API compatibility).
 - Blazor/WebGL platform.
 - Reference platform.
 
### Removed
 - System.Numerics.
 - ContentProcessorContext.SourceIdentity.
 - ContentStats.
 - ContentBuildLogger.LoggerRootDirectory, ContentBuildLogger.IndentString.
 - ContentManager.Unload().
 - Buttons.None.
 - TouchPanel.EnableMouseTouchPoint, TouchPanel.EnableMouseGestures.
 - Texture2D.FromFile(), DefaultColorProcessors, Texture2D.FromStream(GraphicsDevice, Stream, Action<byte[]>).
 - ContentTypeReaderManager.AddTypeCreator(), ContentTypeReaderManager.ClearTypeCreators().
 - SpriteFont.Characters, SpriteFont.GetGlyphs(), Glyph.Character.
 - MonoGameAndroidGameView.Visible, MonoGameAndroidGameView.Size. 
 - SoundEffect.FromFile().
 - RenderTargetCube.GetRenderTargetView(), RenderTargetCube.GetDepthStencilView() (IRenderTarget methods).
 - GrowRule, MaxRectsBin, MaxRectsHeuristic were made internal.
 - VectorConversion.
  
## 3.8.1 HOTFIX Release - July 26, 2022

## What's Changed
 - Fix MonoGame publisher name for the VS marketplace by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7847
 - Corrected 'Framwork' to 'Framework' by @benjitrosch in https://github.com/MonoGame/MonoGame/pull/7850
 - added missing words to platforms.md by @MrGrak in https://github.com/MonoGame/MonoGame/pull/7852
 - Fixed grammatical error from 'project' to 'projects' by @benjitrosch in https://github.com/MonoGame/MonoGame/pull/7855
 - Grammar Hotfix on README by @Emersont1 in https://github.com/MonoGame/MonoGame/pull/7856
 - Remove redundant dependencies by @vpenades in https://github.com/MonoGame/MonoGame/pull/7854
 - Fixes Visual Studio freezing with the extension by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7857
 - Updated migration guide by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7858
 - More migration guide updates by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7859
 - Wild cards don't work in dotnet-tools.json by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7860
 - Removed explicit global usings by @vpenades in https://github.com/MonoGame/MonoGame/pull/7853

## 3.8.1 Release - July 24, 2022

## What's Changed
 - Update build version to 3.8.1.xxxx by @tomspilman in https://github.com/MonoGame/MonoGame/pull/7296
 - Fix broken links by @rejurime in https://github.com/MonoGame/MonoGame/pull/7297
 - [DesktopGL] Fix setting backbuffer size not working in constructor by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7299
 - Add quotation marks around MGCBPath by @bjornenalfa in https://github.com/MonoGame/MonoGame/pull/7304
 - [Templates] Update FSharp projects by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7302
 - fix Texture.GetSharedHandle() by @nkast in https://github.com/MonoGame/MonoGame/pull/7306
 - [MGCB Editor] Update registration handling files by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7311
 - Updated to the latest version of StbSharp by @rds1983 in https://github.com/MonoGame/MonoGame/pull/7312
 - Support MSAA in SwapChainRenderTarget by @nkast in https://github.com/MonoGame/MonoGame/pull/7307
 - Updated link for the XNA 3.1 to XNA 4.0 cheatsheet by @SimonDarksideJ in https://github.com/MonoGame/MonoGame/pull/7321
 - Updated and added links to latest MonoGame 3.8 content in tutorials.md by @SimonDarksideJ in https://github.com/MonoGame/MonoGame/pull/7322
 - Explicitly document BackToFront and FrontToBack use an unstable sort. by @goosenoises in https://github.com/MonoGame/MonoGame/pull/7323
 - Update mgfxc_wine_setup.sh by @Kwyrky in https://github.com/MonoGame/MonoGame/pull/7327
 - Fix multisampling in DesktopGL by @sk-zk in https://github.com/MonoGame/MonoGame/pull/7338
 - [MGCB Editor] macOS fixes by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7337
 - Fix shader error messages for OpenGL by @cpt-max in https://github.com/MonoGame/MonoGame/pull/7340
 - Added IEffectBones interface, implemented by SkinnedEffect. by @vpenades in https://github.com/MonoGame/MonoGame/pull/7344
 - Update NVTT (fixes #5866) by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7354
 - Edited the Getting Started parts of the documentation for grammar, clarity, and style by @HopefulFrog in https://github.com/MonoGame/MonoGame/pull/7374
 - Updated Matrix.CreatePerspective - to support infinite far planes. by @vpenades in https://github.com/MonoGame/MonoGame/pull/7367
 - Add missing underscore in code section by @pbedn in https://github.com/MonoGame/MonoGame/pull/7349
 - Update CONTRIBUTING.md by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7394
 - Added ICurveEvaluator{T} interface. by @vpenades in https://github.com/MonoGame/MonoGame/pull/7387
 - Update Eto.Froms for VS for Mac addin by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7365
 - Fix for MGFXO file format to increases collection size limits. by @vpenades in https://github.com/MonoGame/MonoGame/pull/7397
 - NUnit Test Attachments To preview Test images in VS. by @vpenades in https://github.com/MonoGame/MonoGame/pull/7413
 - [macOS] Properly check current folder if we are inside of .app bundle by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7416
 - fix 7402: enqueue buffer ref before sending to OAL by @lodicolo in https://github.com/MonoGame/MonoGame/pull/7403
 - Fixes 3D Audio Direction Issues On Platforms Using OpenAL by @squarebananas in https://github.com/MonoGame/MonoGame/pull/7404
 - Fixes Stopping Looped Sounds On Platforms Using XAudio by @squarebananas in https://github.com/MonoGame/MonoGame/pull/7405
 - Fixes Buffer Bindings Cache Issue On Platforms Using OpenGL by @squarebananas in https://github.com/MonoGame/MonoGame/pull/7406
 - Fixes 3D Audio Direction Issues On Platforms Using X3DAudio by @squarebananas in https://github.com/MonoGame/MonoGame/pull/7389
 - Proposal for adding basic interoperability with System.Numerics.Vectors by @vpenades in https://github.com/MonoGame/MonoGame/pull/7417
 - [VSMac] Mark .spritefont files as .xml files by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7426
 - Updated console references by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7432
 - Removed residual OUYA references by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7433
 - [VSMac] Fix freeze upon opening a mgcb file and bump dependencies by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7435
 - [MGCB Editor] Fix help link (fixes #7428) by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7438
 - Changed uses of Math to MathF where it was used for floats by @initram in https://github.com/MonoGame/MonoGame/pull/7390
 - [MGCB.Task] Separate obj folder per target framework (fixes #7409) by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7441
 - Revert "Changed uses of Math to MathF where it was used for floats" by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7442
 - File drop event on DesktopGL and WindowsDX platforms by @Quant1um in https://github.com/MonoGame/MonoGame/pull/7362
 - [MGCB Editor] Bump Eto.Forms version (fixes #7418) by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7439
 - Update SDL to 2.0.14 by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7445
 - Help with compatibility toward NativeAOT by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7462
 - Generic Threading.BlockOnUIThread for reducing garbage allocs by @TechPizzaDev in https://github.com/MonoGame/MonoGame/pull/7384
 - Fix UWP Vsync support by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7463
 - [DesktopGL] Improve mouse handling outside gamewindow by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7440
 - Updated to the latest StbSharp 2.22.5, which added support for HDR images by @rds1983 in https://github.com/MonoGame/MonoGame/pull/7467
 - Fix type collisions and default implementations for consoles by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7466
 - Removed threading limitations by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7472
 - Fixed a typo in the comments. charaters --> characters by @rbwhitaker in https://github.com/MonoGame/MonoGame/pull/7473
 - fixed grammar in CONTRIBUTING.md by @algobytewise in https://github.com/MonoGame/MonoGame/pull/7469
 - Fixed a small handful of typos in the comments of SpriteFont. by @rbwhitaker in https://github.com/MonoGame/MonoGame/pull/7479
 - Update copyright year to 2021 in LICENSE.txt by @monegit in https://github.com/MonoGame/MonoGame/pull/7482
 - Fixes PacketNumber For Non-Haptic Gamepads On Platforms Using SDL by @squarebananas in https://github.com/MonoGame/MonoGame/pull/7487
 - Fixes Duplicate/Missing Gamepads On Platforms Using SDL by @squarebananas in https://github.com/MonoGame/MonoGame/pull/7486
 - Bump GtkSharp to fix crashes on Arch Linux by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7493
 - Update NVorbis submodule by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7495
 - Added selective ContentManager asset unloading by @kimimaru4000 in https://github.com/MonoGame/MonoGame/pull/6663
 - Update Mac Extension Link by @gideongrinberg in https://github.com/MonoGame/MonoGame/pull/7497
 - Remove deprecated property Color.TransparentBlack by @nkast in https://github.com/MonoGame/MonoGame/pull/7505
 - Remove duplicate check with wrong argument name by @nkast in https://github.com/MonoGame/MonoGame/pull/7504
 - fix spelling error by @nkast in https://github.com/MonoGame/MonoGame/pull/7503
 - Prevent App suspension when the user press 'B' button on UWP (xbox controller) by @nkast in https://github.com/MonoGame/MonoGame/pull/7500
 - fix PipelineBuildEvent deserialization by @nkast in https://github.com/MonoGame/MonoGame/pull/7502
 - Support drawing point primitives by @roy-t in https://github.com/MonoGame/MonoGame/pull/7477
 - Update samples.md by @Michael1993 in https://github.com/MonoGame/MonoGame/pull/7358
 - Merged the two requirements files into the REQUIREMENTS.md by @RicoGuerra in https://github.com/MonoGame/MonoGame/pull/7484
 - Upgrade tooling to .NET 5 by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7437
 - Upgraded projects and documentation to NET5 by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7514
 - Changed Math to MathF by @initram in https://github.com/MonoGame/MonoGame/pull/7451
 - Shared MSAA RenderTarget by @nkast in https://github.com/MonoGame/MonoGame/pull/7506
 - Added pixels processing function parameter to the Texture2D.FromStream/TextureFromFile by @rds1983 in https://github.com/MonoGame/MonoGame/pull/7369
 - Docs/content pipeline update by @SimonDarksideJ in https://github.com/MonoGame/MonoGame/pull/7370
 - Don't recompile the same shader multiple times. by @cpt-max in https://github.com/MonoGame/MonoGame/pull/7392
 - Update Game.cs by @SAJenkin in https://github.com/MonoGame/MonoGame/pull/7528
 - Fix FontDescriptionProcessor kerning by @nkast in https://github.com/MonoGame/MonoGame/pull/7501
 - Fix assembly trimming in templates by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7529
 - Fixed GLDesktop PlatformStop() resolving issue #7372 by @JacksonDorsett in https://github.com/MonoGame/MonoGame/pull/7453
 - Fix VSCode launch configuration for MGCB Editor on Mac by @the-maverick-m in https://github.com/MonoGame/MonoGame/pull/7535
 - OpenGL debug context for better error messages by @cpt-max in https://github.com/MonoGame/MonoGame/pull/7536
 - cask is no longer a brew command by @miluchen in https://github.com/MonoGame/MonoGame/pull/7543
 - Fix iOS GamePlatform to run pending background tasks #7520 by @Mindfulplays in https://github.com/MonoGame/MonoGame/pull/7522
 - Removed PS Vita support by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7531
 - Optimized ApplyAlpha by removing two unnecessary arithmetic operations by @rds1983 in https://github.com/MonoGame/MonoGame/pull/7555
 - [Feature] GitHub Actions integration by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7511
 - [Content Pipeline] Fix library names when packaging the nuget by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7557
 - Null song parameters for MediaPlayer.Play are not allowed in XNA by @james0x0A in https://github.com/MonoGame/MonoGame/pull/7558
 - Fixes XACT ADPCM Compression Playback by @squarebananas in https://github.com/MonoGame/MonoGame/pull/7564
 - Fixes XACT Cue.IsPlaying Behaviour When Paused by @squarebananas in https://github.com/MonoGame/MonoGame/pull/7563
 - Fixes EffectParameter SetValue Using Int For Float Parameters by @squarebananas in https://github.com/MonoGame/MonoGame/pull/7568
 - Added a keyboard shortcut (F2) to rename a file. by @rbwhitaker in https://github.com/MonoGame/MonoGame/pull/7575
 - Fix NRE for Game._gameTimer by @JacksonDorsett in https://github.com/MonoGame/MonoGame/pull/7587
 - Enable setting 8 render targets when targetting Windows by @bjornenalfa in https://github.com/MonoGame/MonoGame/pull/7549
 - Fixed Comment for Intersects Method by @JacksonDorsett in https://github.com/MonoGame/MonoGame/pull/7592
 - remove unused usings from Content readers by @nkast in https://github.com/MonoGame/MonoGame/pull/7595
 - remove CLSCompliant(false) from internal members by @nkast in https://github.com/MonoGame/MonoGame/pull/7594
 - remove unused reader/writer classes by @nkast in https://github.com/MonoGame/MonoGame/pull/7597
 - Added PlayStation 5 support by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7645
 - Fix back and start buttons on iOS by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7694
 - Update stuff to .NET 6 by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7688
 - net6 mobile and UWP fixes by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7697
 - Fixed a broken link in custom_effects docs. by @davidhesselbom in https://github.com/MonoGame/MonoGame/pull/7663
 - terminology, spelling & grammar corrections by @mikeirvingweb in https://github.com/MonoGame/MonoGame/pull/7657
 - Fix comment typos in enum GestureType by @Brett208 in https://github.com/MonoGame/MonoGame/pull/7658
 - Update SDL_GameControllerDB by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7702
 - Console check fake project by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7698
 - Improve GamePad support on macOS and introduce support for rumble by @carlfriess in https://github.com/MonoGame/MonoGame/pull/7690
 - Fix mgcb building content during nuget package restore by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7709
 - Visual Studio 2022 Extension for templates by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7699
 - Fix up mgcb-editor dotnet tool by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7708
 - Optimized SpriteFont GlyphPacker by @TechPizzaDev in https://github.com/MonoGame/MonoGame/pull/7464
 - Add thread locking to the UWP gamepads dictionary by @squarebananas in https://github.com/MonoGame/MonoGame/pull/7655
 - Multisampling on Android by @j0nat in https://github.com/MonoGame/MonoGame/pull/7561
 - proposal: additional vertex structs by @lodicolo in https://github.com/MonoGame/MonoGame/pull/7421
 - Fixes UWP Set Window Size Thread Access Error by @squarebananas in https://github.com/MonoGame/MonoGame/pull/7570
 - Fix templates for VS for Mac 2022 by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7764
 - Fix memory leak on desktop gl static variable by @adnanioricce in https://github.com/MonoGame/MonoGame/pull/7684
 - Make the VS extension to open .mgcb by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7765
 - Fix broken links to Extended samples in docs by @NogginBox in https://github.com/MonoGame/MonoGame/pull/7767
 - RTL text rendering overload for SpriteBatch.DrawString by @BlueElectivire in https://github.com/MonoGame/MonoGame/pull/7644
 - fix GamePad.GetCapabilities(...) race codition by @nkast in https://github.com/MonoGame/MonoGame/pull/7770
 - Update templates by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7771
 - Build system upgrades by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7772
 - Add automatic upload of artifacts to GitHub packages by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7773
 - [Actions] Use GITHUB_TOKEN for deploy job by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7775
 - Fix obsolete call on iOS by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7777
 - Fix SoundEffectInstance pooling by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7776
 - Update wine script for NET 6 by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7790
 - Auto versioning of VS extension by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7788
 - Added RollForward directive by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7789
 - Cleaned up rollforward from mobiles by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7791
 - Remove default Inner Exceptions by @nkast in https://github.com/MonoGame/MonoGame/pull/7800
 - fix list of supported surfaces by @nkast in https://github.com/MonoGame/MonoGame/pull/7801
 - Update submodules by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7806
 - Add Buttons.None by @TimerbaevRR in https://github.com/MonoGame/MonoGame/pull/7818
 - Fix Buttons.None by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7822
 - [Actions] Fix UWP package path by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7825
 - [Actions] Build VS for Mac addin by @harry-cpp in https://github.com/MonoGame/MonoGame/pull/7824
 - [WIP] Documentation update for 3.8.1 by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7798
 - Removed trimming property from templates by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7829
 - Create a release when pushing a tag by @mrhelmut in https://github.com/MonoGame/MonoGame/pull/7828

## 3.8 Release - August 10, 2020

### Added
 - New Plane constructor. [#6085](https://github.com/MonoGame/MonoGame/pull/6085)
 - Round, Ceiling, Floor functions for Vector2/3/4. [#6318](https://github.com/MonoGame/MonoGame/pull/6318)
 - Dotnet templating templates. [#6494](https://github.com/MonoGame/MonoGame/pull/6494)
 - TransformMatrix for SpriteEffect. [#6623](https://github.com/MonoGame/MonoGame/pull/6623)
 - SpriteBatch constructor overload with capacity parameter. [#6682](https://github.com/MonoGame/MonoGame/pull/6682)
 - [OpenGL] Support for separate blend states per render target. [#6343](https://github.com/MonoGame/MonoGame/pull/6343)
 - Multiply operator overload for Color: `scale * Color`. [#6747](https://github.com/MonoGame/MonoGame/pull/6747)
 - Overloads for garbageless BoundingBox.CreateFromPoints. [#6743](https://github.com/MonoGame/MonoGame/pull/6743)
 - UseStandardPixelAddressing flag. [#6621](https://github.com/MonoGame/MonoGame/pull/6621) [#6780](https://github.com/MonoGame/MonoGame/pull/6780)
 - [MGCB] Search fonts in HKEY_CURRENT_USER on Windows. [#6671](https://github.com/MonoGame/MonoGame/pull/6671)
 - Garbageless GetPressedKeys overload. [#6643](https://github.com/MonoGame/MonoGame/pull/6643)
 - Expose GraphicsDevice.DiscardColor to set the clear color of render targets. [#6832](https://github.com/MonoGame/MonoGame/pull/6832)
 - KeyDown and KeyUp events on GameWindow. [#6762](https://github.com/MonoGame/MonoGame/pull/6762)
 - FromFile for Texture2D and SoundEffect. [#6586](https://github.com/MonoGame/MonoGame/pull/6586)
 - PlatformInfo class to query runtime platform. [#6846](https://github.com/MonoGame/MonoGame/pull/6846) [#6873](https://github.com/MonoGame/MonoGame/pull/6873)
 - API to query graphical system at runtime. [#6872](https://github.com/MonoGame/MonoGame/pull/6872)
 - Etc2 texture format support. [#6864](https://github.com/MonoGame/MonoGame/pull/6864)
 - MonoGame.Content.Builder package. [#6905](https://github.com/MonoGame/MonoGame/pull/6905)
 - τ constant. [#6937](https://github.com/MonoGame/MonoGame/pull/6937)
 - [UWP] Overloads for more detailed vibration control. [#6933](https://github.com/MonoGame/MonoGame/pull/6933)
 - [MGCB Editor] Always use Headerbar. [#6938](https://github.com/MonoGame/MonoGame/pull/6938)
 - Joystick display name for the Joystick API. [#7008](https://github.com/MonoGame/MonoGame/pull/7008)
 - [OpenGL] Overload with base index for draw instancing. [#7016](https://github.com/MonoGame/MonoGame/pull/7016)
 - Google Stadia Support. [#7020](https://github.com/MonoGame/MonoGame/pull/7020) [#7049](https://github.com/MonoGame/MonoGame/pull/7049)
 - LastJoystickIndex for the Joystick API. [#7017](https://github.com/MonoGame/MonoGame/pull/7017)
 - MouseState.ToString. [#7091](https://github.com/MonoGame/MonoGame/pull/7091)
 - [MGCB Editor] .NET Core tool. [#7090](https://github.com/MonoGame/MonoGame/pull/7090)
 - [MGFXC] Wine support. [#7098](https://github.com/MonoGame/MonoGame/pull/7098) [#7103](https://github.com/MonoGame/MonoGame/pull/7103) [#7107](https://github.com/MonoGame/MonoGame/pull/7107) [#7188](https://github.com/MonoGame/MonoGame/pull/7188)
 - EffectParameter.SetValue for int array. [#7143](https://github.com/MonoGame/MonoGame/pull/7143)
 - Add Web platform information to the content builder. [#7144](https://github.com/MonoGame/MonoGame/pull/7144)
 - [macOS] MonoGame Content pad for VS for Mac. [#7266](https://github.com/MonoGame/MonoGame/pull/7266)

### Removed
 - Remove obsolete SpriteBatch.Draw overload. [#6818](https://github.com/MonoGame/MonoGame/pull/6818)
 - Disable Piranha portable build. [#6844](https://github.com/MonoGame/MonoGame/pull/6844)
 - Removed MonoGame.Framework.Net. [#6900](https://github.com/MonoGame/MonoGame/pull/6900) [#6775](https://github.com/MonoGame/MonoGame/pull/6775)
 - Remove internal PNG Utility Classes. [#6976](https://github.com/MonoGame/MonoGame/pull/6976)
 - Protobuild removed and replaced with solutions and projects. [#7040](https://github.com/MonoGame/MonoGame/pull/7040) [#7041](https://github.com/MonoGame/MonoGame/pull/7041)

### Changed
 - OpenAssetImporter Improvements and FbxImporter Unit Tests. [#6158](https://github.com/MonoGame/MonoGame/pull/6158)
 - Made sound system optional. [#6629](https://github.com/MonoGame/MonoGame/pull/6629)
 - [UWP] Do not set minimum window size. [#6763](https://github.com/MonoGame/MonoGame/pull/6763)
 - Added Cake build script to replace NANT. [#6776](https://github.com/MonoGame/MonoGame/pull/6776)
 - Marked Color.TransparentBlack obsolete. [#6817](https://github.com/MonoGame/MonoGame/pull/6817)
 - [SDL] Performance and garbage optimizations to Joystick. [#6829](https://github.com/MonoGame/MonoGame/pull/6829) [#6834](https://github.com/MonoGame/MonoGame/pull/6834)
 - Track GamePad packet number and general optimizations. [#6760](https://github.com/MonoGame/MonoGame/pull/6760)
 - [DirectX] Basic performance enhancements to Texture2D. [#6726](https://github.com/MonoGame/MonoGame/pull/6726)
 - Inline Vector2 operator / and Point.ToVector2(). [#6700](https://github.com/MonoGame/MonoGame/pull/6700)
 - Make OggStreamer thread a background thread. [#6848](https://github.com/MonoGame/MonoGame/pull/6848)
 - Made it so Texture2D in any format could be saved as Png/Jpeg when using MonoGame.DesktopGL backend. [#6855](https://github.com/MonoGame/MonoGame/pull/6855)
 - Upgrade SDK projects to .NET 4.5.2. [#6902](https://github.com/MonoGame/MonoGame/pull/6902)  [#6903](https://github.com/MonoGame/MonoGame/pull/6903) [#7050](https://github.com/MonoGame/MonoGame/pull/7050)
 - Reduced garbage in Direct X-specific SetRenderTargets methods. [#7034](https://github.com/MonoGame/MonoGame/pull/7034)
 - MouseState Improvements. [#6973](https://github.com/MonoGame/MonoGame/pull/6973)
 - KeyboardState Improvements. [#6972](https://github.com/MonoGame/MonoGame/pull/6972)
 - [SDL] Updated controller DB. [#7124](https://github.com/MonoGame/MonoGame/pull/7124)
 - We now pool ContentManager scratch buffers. [#5921](https://github.com/MonoGame/MonoGame/pull/5921)
 - [OpenAL] Clean up sound disposal. [#7097](https://github.com/MonoGame/MonoGame/pull/7097)
 - [macOS] Replaced System.Drawing with StbImageSharp to enable tests. [#7071](https://github.com/MonoGame/MonoGame/pull/7071)
 - [Docs] Moved to DocFX v2 for documentation. [#7127](https://github.com/MonoGame/MonoGame/pull/7127)
 - [SDL] Bump dependencies to SDL 2.0.12. [#7133](https://github.com/MonoGame/MonoGame/pull/7133)
 - [Docs] Update for 3.8. [#7117](https://github.com/MonoGame/MonoGame/pull/7117) [#7240](https://github.com/MonoGame/MonoGame/pull/7240)
 - [MGCB Editor] Changed position for context menu item Rebuild. [#7176](https://github.com/MonoGame/MonoGame/pull/7176)
 - [MGCB] Replace symbols for assembly references. [#7272](https://github.com/MonoGame/MonoGame/pull/7272)

### Fixed
 - Support arrays > 255 elements in shaders. [#5995](https://github.com/MonoGame/MonoGame/pull/5995)
 - [DesktopGL] Fix setting mouse cursor from Texture2D. [#6187](https://github.com/MonoGame/MonoGame/pull/6187)
 - Remove trailing NUL chars in registry font name. [#6577](https://github.com/MonoGame/MonoGame/pull/6577)
 - [OpenAL] Fix loading OpenAL-Soft in DesktopGL when # is in path. [#6581](https://github.com/MonoGame/MonoGame/pull/6581)
 - [WindowsDX] Avoid freezing while moving/resizing window. [#6594](https://github.com/MonoGame/MonoGame/pull/6594)
 - [iOS] Fixed background music stopping on game startup. [#6596](https://github.com/MonoGame/MonoGame/pull/6596)
 - Fixed GameUpdateRequiredException namespace. [#6597](https://github.com/MonoGame/MonoGame/pull/6597)
 - [MGCB] Fixed build not cleaning empty projects. [#6615](https://github.com/MonoGame/MonoGame/pull/6615)
 - Reduce garbage from TextInput. [#6664](https://github.com/MonoGame/MonoGame/pull/6664)
 - Fix for loading native libraries on Amazon Fire HD 8. [#6677](https://github.com/MonoGame/MonoGame/pull/6677)
 - Fixes reflection support on SpriteBatch ctor. [#6709](https://github.com/MonoGame/MonoGame/pull/6709)
 - [Android] Fixed crashes on launch and resume. [#6741](https://github.com/MonoGame/MonoGame/pull/6741)
 - [Android] Fixed restoration of an activity after Game.Exit. [#6739](https://github.com/MonoGame/MonoGame/pull/6739)
 - [SDL] Fix rumble infinity threshold. [#6744](https://github.com/MonoGame/MonoGame/pull/6744)
 - [SDL] Fixed OnTextInput. [#6749](https://github.com/MonoGame/MonoGame/pull/6749)
 - Move touches are now aged too. (fixes #6753). [#6756](https://github.com/MonoGame/MonoGame/pull/6756)
 - [Android] Fixed Texture2D.GetData corrupting the Texture2D object. [#6729](https://github.com/MonoGame/MonoGame/pull/6729)
 - [MGCB Editor] Fix assembly load API used for custom user references. [#6770](https://github.com/MonoGame/MonoGame/pull/6770)
 - Fix nuget metadata URL properties. [#6774](https://github.com/MonoGame/MonoGame/pull/6774)
 - Fix IRenderTarget comments. [#6785](https://github.com/MonoGame/MonoGame/pull/6785)
 - Catch ArgumentException when trying to get encoding upon PipelineController.DoBuild. [#6826](https://github.com/MonoGame/MonoGame/pull/6826)
 - [OpenAL] Free source when sound instance is disposed. [#6813](https://github.com/MonoGame/MonoGame/pull/6813)
 - Use Resume when Play is called on Paused sound effect instance. [#6815](https://github.com/MonoGame/MonoGame/pull/6815)
 - Fixed BoundingSphere.Intersects(BoundingBox). [#6666](https://github.com/MonoGame/MonoGame/pull/6666)
 - Override Dispose in DrawableGameComponent to unload content. [#6858](https://github.com/MonoGame/MonoGame/pull/6858)
 - Fixed SwapChain is null in GraphicsDevice.PlatformDispose. [#6869](https://github.com/MonoGame/MonoGame/pull/6869)
 - Swap red and blue when setting mouse cursor texture. [#6859](https://github.com/MonoGame/MonoGame/pull/6859)
 - [DesktopGL] Fix IsActive not getting set to false. [#6895](https://github.com/MonoGame/MonoGame/pull/6895)
 - Fix FileHelpers Uri getting confused by double slashes. [#6924](https://github.com/MonoGame/MonoGame/pull/6924)
 - [UWP] Vibrate controller handles instead of triggers. [#6933](https://github.com/MonoGame/MonoGame/pull/6933)
 - Fix for CoreRT support. [#6948](https://github.com/MonoGame/MonoGame/pull/6948)
 - Fix a crash on macOS and CoreRT related to mishandling unmanaged function pointers. [#6949](https://github.com/MonoGame/MonoGame/pull/6949)
 - [MGCB] Rethrow InvalidContentException for Importers instead of wrapping it in a new PipelineException. [#6954](https://github.com/MonoGame/MonoGame/pull/6954)
 - Throw InvalidContentException with error line number/position in ContentIdentity. [#6953](https://github.com/MonoGame/MonoGame/pull/6953)
 - Fall back to less precise frame pacing on non-Windows platforms. [#6941](https://github.com/MonoGame/MonoGame/pull/6941)
 - [UWP] Fixes content loading to work with packaged files (and not just resources). [#6964](https://github.com/MonoGame/MonoGame/pull/6964)
 - [UWP] Fixes window resizing upon GraphicsDeviceManager.ApplyChanges(). [#6964](https://github.com/MonoGame/MonoGame/pull/6964)
 - [Android] fix GamePad.Back emulation. [#6951](https://github.com/MonoGame/MonoGame/pull/6951)
 - [Android] Fixes android APIs fallback. [#6952](https://github.com/MonoGame/MonoGame/pull/6952)
 - Fixed sample count in SoundEffect. [#6996](https://github.com/MonoGame/MonoGame/pull/6996)
 - [SDL] Fixed memory leak in controller mapping by freeing the returned string. [#7021](https://github.com/MonoGame/MonoGame/pull/7021)
 - [macOS] Look for native libraries in Frameworks folder for .app bundles. [#7022](https://github.com/MonoGame/MonoGame/pull/7022)
 - [OpenGL] Fixed PlatformClear and PlatformPresent to be private in GraphicsDevice. [#7026](https://github.com/MonoGame/MonoGame/pull/7026)
 - [DesktopGL] Fixed GraphicsAdapter.Description to return renderer. [#6959](https://github.com/MonoGame/MonoGame/pull/6959)
 - [OpenGL] Query correct value for the bounds to GL.ActiveTexture. [#6970](https://github.com/MonoGame/MonoGame/pull/6970)
 - Fix Content.mgcb not being visible in VS 2019. [#7064](https://github.com/MonoGame/MonoGame/pull/7064)
 - [iOS] Fix initialization crash on GLES 2.0 devices. [#7047](https://github.com/MonoGame/MonoGame/pull/7047)
 - [iOS] Fix GL error and race condition. [#7073](https://github.com/MonoGame/MonoGame/pull/7073)
 - [MGCB Editor] Mac fixes. [#7077](https://github.com/MonoGame/MonoGame/pull/7077)
 - [OpenAL] Fixing audio duplicating sourceids. [#7095](https://github.com/MonoGame/MonoGame/pull/7095)
 - [MGCB] Fix FindCommand not looking system locations on macOS/Linux. [#7100](https://github.com/MonoGame/MonoGame/pull/7100)
 - Fix FuncLoader not properly checking the current folder (fixes #7101). [#7102](https://github.com/MonoGame/MonoGame/pull/7102)
 - Fix .NET Standard template using wrong nuget. [#7099](https://github.com/MonoGame/MonoGame/pull/7099)
 - [DirectX] Fixed MSAA RenderTarget GetData and SetData. [#5838](https://github.com/MonoGame/MonoGame/pull/5838)
 - Fixed deconstruction of color for bytes and floats. [#7109](https://github.com/MonoGame/MonoGame/pull/7109)
 - [MGCB] Fix failing to find ffmpeg because it tries relative path. [#7138](https://github.com/MonoGame/MonoGame/pull/7138)
 - [MGFXC] Various fixes. [#7148](https://github.com/MonoGame/MonoGame/pull/7148)
 - Fixed a bug where The "New Item" dialogue would have no templates listed. [#7141](https://github.com/MonoGame/MonoGame/pull/7141)
 - [MGCB Editor] Darken text in output. [#7163](https://github.com/MonoGame/MonoGame/pull/7163)
 - [MGCB] Fix trying to chmod root files. [#7183](https://github.com/MonoGame/MonoGame/pull/7183)
 - [MGCB Editor] Fixed to not require root privileges for installing. [#7185](https://github.com/MonoGame/MonoGame/pull/7185)
 - [SDL] Better debugging for macOS. [#7187](https://github.com/MonoGame/MonoGame/pull/7187)
 - Fixed content failing to load on NetCore. [#7199](https://github.com/MonoGame/MonoGame/pull/7199)
 - [MGCB Editor] Fix parsing filename from arguments on macOS. [#7215](https://github.com/MonoGame/MonoGame/pull/7215)
 - [Linux] Flatpak packaging upgrades. [#7224](https://github.com/MonoGame/MonoGame/pull/7224)
 - Fix path in RebuildMGFX.bat. [#7239](https://github.com/MonoGame/MonoGame/pull/7239)
 - [DirectX] Fix issues with RenderTexture2D and SwapChainRenderTarget. [#7225](https://github.com/MonoGame/MonoGame/pull/7225)
 - [macOS] VSMac addin fixes. [#7253](https://github.com/MonoGame/MonoGame/pull/7253)
 - [MGCB Editor] PropertyGrid fixes. [#7256](https://github.com/MonoGame/MonoGame/pull/7256)
 - [MGCB Editor] General fixes. [#7262](https://github.com/MonoGame/MonoGame/pull/7262)
 - Fix a race condition when playing sound in worker threads. [#7219](https://github.com/MonoGame/MonoGame/pull/7219)
 - [Android] Fixed surface recreation when resuming from sleep mode on FireTV. [#7211](https://github.com/MonoGame/MonoGame/pull/7211)
 - Fix loading of content with special characters in a file name. [#7267](https://github.com/MonoGame/MonoGame/pull/7267)


## 3.7.1 Release - December 8, 2018

 - MGCB now generates content building statistics. [#6401](https://github.com/MonoGame/MonoGame/pull/6401)
 - Fixes to dependency loading in Pipeline Tool. [#6450](https://github.com/MonoGame/MonoGame/pull/6450)
 - Fixed crash when canceling choose folder dialog in Pipeline Tool. [#6449](https://github.com/MonoGame/MonoGame/pull/6449)
 - Fix add item dialog jumping around in Pipeline Tool. [#6451](https://github.com/MonoGame/MonoGame/pull/6451)
 - Fix OpenAL library loading on some Android phones. [#6454](https://github.com/MonoGame/MonoGame/pull/6454)
 - Fix Gamepad index tracking under UWP. [#6456](https://github.com/MonoGame/MonoGame/pull/6456)
 - Rename "Copy Asset Path" to "Copy Asset Name" for consistency with XNA in Pipeline Tool. [#6457](https://github.com/MonoGame/MonoGame/pull/6457)
 - Fix TextInput Keys argument for UWP. [#6455](https://github.com/MonoGame/MonoGame/pull/6455)
 - Add new GamePad.GetState() overloads to support different dead zone modes. [#6467](https://github.com/MonoGame/MonoGame/pull/6467)
 - Fixed incorrect offset DynamicSoundEffectInstance.SubmitBuffer under XAudio. [#6523](https://github.com/MonoGame/MonoGame/pull/6523)
 - Improved accuracy of fixed time step. [#6535](https://github.com/MonoGame/MonoGame/pull/6535)
 - Ensure intermediate output path exists before writing stats in Pipeline Tool. [#6503](https://github.com/MonoGame/MonoGame/pull/6503)
 - Fix for special window close case under SDL. [#6489](https://github.com/MonoGame/MonoGame/pull/6489)
 - Marshal microphone identifiers as UTF-8. [#6530](https://github.com/MonoGame/MonoGame/pull/6530)
 - Clear the current selections when excluding items in the Pipeline Tool. [#6549](https://github.com/MonoGame/MonoGame/pull/6549)
 - Enable standard derivatives extension for GLSL shaders. [#6501](https://github.com/MonoGame/MonoGame/pull/6501)
 - Fixed framebuffer object EXT loading under OpenGL. [#6562](https://github.com/MonoGame/MonoGame/pull/6562)
 - Fixed GL.RenderbufferStorage for devices that use the EXT entry points. [#6563](https://github.com/MonoGame/MonoGame/pull/6563)
 - Fix VS template installation when C# folder is missing. [#6544](https://github.com/MonoGame/MonoGame/pull/6544)
 - Fix for SDL loading when a '#' is in the directory path. [#6573](https://github.com/MonoGame/MonoGame/pull/6573)
 - Restored Buttons[] constructor in GamePadState fixing XNA compatibility. [#6572](https://github.com/MonoGame/MonoGame/pull/6572)


## 3.7 Release - September 23, 2018

 - Remove Scale and Rotation properties from Matrix. [#5584](https://github.com/MonoGame/MonoGame/pull/5584)
 - Added Switch as a platform. [#5596](https://github.com/MonoGame/MonoGame/pull/5596)
 - DirectX: Fixed multisample clamping logic. [#5477](https://github.com/MonoGame/MonoGame/pull/5477)
 - SDL Gamepad DB update. [#5605](https://github.com/MonoGame/MonoGame/pull/5605)
 - Add Missing method OpaqueDataDictionary.GetValue. [#5637](https://github.com/MonoGame/MonoGame/pull/5637)
 - Increase code coverage in Model* family. [#5632](https://github.com/MonoGame/MonoGame/pull/5632)
 - Fix scroll wheel events on Windows Universal. [#5631](https://github.com/MonoGame/MonoGame/pull/5631)
 - Implement GetHashCode on Vertex types. [#5654](https://github.com/MonoGame/MonoGame/pull/5654)
 - Implement GetHashCode and ToString methods for Joystick. [#5670](https://github.com/MonoGame/MonoGame/pull/5670)
 - Fixed Gamepad DPad on Android. [#5673](https://github.com/MonoGame/MonoGame/pull/5673)
 - Pipeline process not terminating on exit fix. [#5672](https://github.com/MonoGame/MonoGame/pull/5672)
 - Added Joystick.IsSupported property. [#5678](https://github.com/MonoGame/MonoGame/pull/5678)
 - Use GraphicsCapabilities.MaxTextureAnisotropy on SamplerState. [#5676](https://github.com/MonoGame/MonoGame/pull/5676)
 - Make SpriteBatch.End throw when Begin not called. [#5689](https://github.com/MonoGame/MonoGame/pull/5689)
 - Add Open Output Directory option to Pipeline Tool. [#5690](https://github.com/MonoGame/MonoGame/pull/5690)
 - Rename Exit to Quit on Pipeline Tool Linux Headerbar. [#5687](https://github.com/MonoGame/MonoGame/pull/5687)
 - Added minimum size to the Pipeline Tool window. [#5692](https://github.com/MonoGame/MonoGame/pull/5692)
 - Added Id and DisplayName properties to Gamepad. [#5625](https://github.com/MonoGame/MonoGame/pull/5625)
 - Improved GameController database loading for DesktopGL. [#5606](https://github.com/MonoGame/MonoGame/pull/5606)
 - RPC curves are now updated before Cue is played. [#5709](https://github.com/MonoGame/MonoGame/pull/5709)
 - Fixes to Texture2D.FromStream on Windows DirectX. [#5712](https://github.com/MonoGame/MonoGame/pull/5712)
 - Support DistanceScale and DopplerFactor under OpenAL. [#5718](https://github.com/MonoGame/MonoGame/pull/5718)
 - Implemented Microphone for OpenAL platforms. [#5651](https://github.com/MonoGame/MonoGame/pull/5651)
 - Implemented caching of staging resources used to copy data from a Texture2D under DirectX. [#5704](https://github.com/MonoGame/MonoGame/pull/5704)
 - Reusable function for raising events. [#5713](https://github.com/MonoGame/MonoGame/pull/5713)
 - Remove reference to SharpDX from project templates. [#5611](https://github.com/MonoGame/MonoGame/pull/5611)
 - Improvements to VideoPlayer for Desktop DirectX. [#5737](https://github.com/MonoGame/MonoGame/pull/5737)
 - Use SharpDX NuGet packages from our NuGet packages. [#5748](https://github.com/MonoGame/MonoGame/pull/5748)
 - Fixed leaks that affected shutting down and recreating GraphicsDevice under DirectX. [#5728](https://github.com/MonoGame/MonoGame/pull/5728)
 - Texture2D mipmap generation and population fixes. [#5614](https://github.com/MonoGame/MonoGame/pull/5614)
 - Remove SharpDX.RawInput.dll reference from DirectX graphics backend. [#5723](https://github.com/MonoGame/MonoGame/pull/5723)
 - New fast Texture2D.FromStream implementation for DesktopGL ported from STB. [#5630](https://github.com/MonoGame/MonoGame/pull/5630)
 - Added support DrawInstancedPrimitives on OpenGL platforms. [#4920](https://github.com/MonoGame/MonoGame/pull/4920)
 - Fixed mouse touch event to release when mouse moves outside the client area or we loses focus. [#5641](https://github.com/MonoGame/MonoGame/pull/5641)
 - Added GraphicsAdapter.UseDebugLayers to enable GPU debug features in release builds. [#5791](https://github.com/MonoGame/MonoGame/pull/5791)
 - Fixed DirectX back buffer update when multisampling changes. [#5617](https://github.com/MonoGame/MonoGame/pull/5617)
 - Adds Xbox One S controller support to Linux. [#5797](https://github.com/MonoGame/MonoGame/pull/5797)
 - Do not allow the Pipeline tool to delete files outside the content folder. [#5820](https://github.com/MonoGame/MonoGame/pull/5820)
 - OpenGL Mouse.SetCursor now works with alpha correctly. [#5829](https://github.com/MonoGame/MonoGame/pull/5829)
 - Implement Mouse.SetCursor() for Windows. [#5831](https://github.com/MonoGame/MonoGame/pull/5831)
 - Fix pre-emptive song finish in OggStreamer. [#5821](https://github.com/MonoGame/MonoGame/pull/5821)
 - UWP Templates use target version selected in wizard. [#5819](https://github.com/MonoGame/MonoGame/pull/5819)
 - Implement Mouse.WindowHandle under Windows DirectX. [#5816](https://github.com/MonoGame/MonoGame/pull/5816)
 - Improve shader error/warning parsing in Pipeline Tool. [#5849](https://github.com/MonoGame/MonoGame/pull/5849)
 - Fix crash on multi-editing bool values in Pipeline Tool. [#5859](https://github.com/MonoGame/MonoGame/pull/5859)
 - Fixes to XACT sound effect pooling. [#5832](https://github.com/MonoGame/MonoGame/pull/5832)
 - Improved disposal of OpenGL resources. [#5850](https://github.com/MonoGame/MonoGame/pull/5850)
 - Better support for WAV audio formats in content pipeline and FromStream. [#5750](https://github.com/MonoGame/MonoGame/pull/5750)
 - Fix for build hang with no mgcb file in project. [#5886](https://github.com/MonoGame/MonoGame/pull/5886)
 - Removed deprecated Rider settings from Linux installer. [#5881](https://github.com/MonoGame/MonoGame/pull/5881)
 - Improved performance of SpriteFont.MeasureString() & SpriteBatch.DrawString(). [#5874](https://github.com/MonoGame/MonoGame/pull/5874)
 - Sort content when saving MGCB files. [#5930](https://github.com/MonoGame/MonoGame/pull/5930)
 - Fix a crash when building content in xbuild. [#5897](https://github.com/MonoGame/MonoGame/pull/5897)
 - Fixed back button problems in UWP. [#5810](https://github.com/MonoGame/MonoGame/pull/5810)
 - Removed Windows 8.1 and Windows Phone 8.1 support. [#5809](https://github.com/MonoGame/MonoGame/pull/5809)
 - Upgrade to SharpDX 4.0.1. [#5949](https://github.com/MonoGame/MonoGame/pull/5949)
 - Update the UWP Template to use the Latest SDK. [#5931](https://github.com/MonoGame/MonoGame/pull/5931)
 - Fixed the Scissor rect calculation on DesktopGL and OpenGL platforms. [#5977](https://github.com/MonoGame/MonoGame/pull/5977)
 - Calculate the Client Bounds a bit later. [#5975](https://github.com/MonoGame/MonoGame/pull/5975)
 - Rework Android OpenGL Framebuffer Support. [#5993](https://github.com/MonoGame/MonoGame/pull/5993)
 - Implemented GraphicsDevice.GetBackBufferData. [#5114](https://github.com/MonoGame/MonoGame/pull/5114)
 - Optimizations to Length and Normalize in Vector3 and Vector4. [#6004](https://github.com/MonoGame/MonoGame/pull/6004)
 - Added MGCB man page for Linux. [#5987](https://github.com/MonoGame/MonoGame/pull/5987)
 - Included mgcb autocomplete for bash. [#5985](https://github.com/MonoGame/MonoGame/pull/5985)
 - Fixed GamePad.SetVibration crash. [#5965](https://github.com/MonoGame/MonoGame/pull/5965)
 - Fallback SurfaceFormat for RenderTargets. [#6170](https://github.com/MonoGame/MonoGame/pull/6170)
 - Added O(1) EffectParameter lookups by name. [#6146](https://github.com/MonoGame/MonoGame/pull/6146)
 - Reduce MouseState garbage in Desktop DirectX. [#6168](https://github.com/MonoGame/MonoGame/pull/6168)
 - Made SpriteFont constructor public. [#6126](https://github.com/MonoGame/MonoGame/pull/6126)
 - New Template System using Nuget. [#6135](https://github.com/MonoGame/MonoGame/pull/6135)
 - Use StbSharp for all Texture2D.FromStream. [#6008](https://github.com/MonoGame/MonoGame/pull/6008)
 - Dynamic reference loading in Pipeline Tool. [#6202](https://github.com/MonoGame/MonoGame/pull/6202)
 - Fix Pipeline tool to work regardless of Mono changes. [#6197](https://github.com/MonoGame/MonoGame/pull/6197)
 - Update Template Icons and Fix Mac Info.plist. [#6209](https://github.com/MonoGame/MonoGame/pull/6209)
 - Fix typo in VS2013 Shared Project Template. [#6216](https://github.com/MonoGame/MonoGame/pull/6216)
 - Fill up dotnet template info. [#6226](https://github.com/MonoGame/MonoGame/pull/6226)
 - Support Mac Unit Tests. [#5952](https://github.com/MonoGame/MonoGame/pull/5952)
 - Updated Assimp to latest version. [#6222](https://github.com/MonoGame/MonoGame/pull/6222)
 - Make sure that the window titlebar is within screen bounds on DesktopGL. [#6258](https://github.com/MonoGame/MonoGame/pull/6258)
 - Fixed trigger/dpad button state and reduced garbage in iOS Gamepad. [#6271](https://github.com/MonoGame/MonoGame/pull/6271)
 - Updated Windows Universal Min SDK Versions. [#6257](https://github.com/MonoGame/MonoGame/pull/6257)
 - Fix property content serialization detection when using a property named `Item`. [#5996](https://github.com/MonoGame/MonoGame/pull/5996)
 - Fix launcher default mimetype in Linux installer. [#6275](https://github.com/MonoGame/MonoGame/pull/6275)
 - Restore NVTT. [#6239](https://github.com/MonoGame/MonoGame/pull/6239)
 - Support unicode in window title under DesktopGL. [#6335](https://github.com/MonoGame/MonoGame/pull/6335)
 - Add crash report window to Pipeline Tool. [#6272](https://github.com/MonoGame/MonoGame/pull/6272)
 - Fix linking for copy action in Pipeline Tool. [#6398](https://github.com/MonoGame/MonoGame/pull/6398)
 - Implemented KeyboardInput and MessageBox for Windows DX. [#6410](https://github.com/MonoGame/MonoGame/pull/6410)
 - Fixed audio interruption bug on iOS. [#6433](https://github.com/MonoGame/MonoGame/pull/6433)


## 3.6 Release - February 28, 2017

 - Fixed XML deserialization of Curve type. [#5494](https://github.com/MonoGame/MonoGame/pull/5494)
 - Fix #5498 Pipeline Tool template loading on MacOS. [#5501](https://github.com/MonoGame/MonoGame/pull/5501)
 - Fix typo in the exclude.addins which cause warnings when installing the Addin in XS. [#5500](https://github.com/MonoGame/MonoGame/pull/5500)
 - Added support for arbitrary defines passed to the Effect compiler. [#5496](https://github.com/MonoGame/MonoGame/pull/5496)
 - Fixed GraphicsDevice.Present() to check for current render target. [#5389](https://github.com/MonoGame/MonoGame/pull/5389)
 - Custom texture compression for SpriteFonts. [#5299](https://github.com/MonoGame/MonoGame/pull/5299)
 - Performance improvements to SpriteBatch.DrawString(). [#5226](https://github.com/MonoGame/MonoGame/pull/5226)
 - Removed the OUYA platform [#5194](https://github.com/MonoGame/MonoGame/pull/5194)
 - Dispose of all graphical resources in unit tests. [#5133](https://github.com/MonoGame/MonoGame/pull/5133)
 - Throw NoSuitableGraphicsDeviceException if graphics device creation fails. [#5130](https://github.com/MonoGame/MonoGame/pull/5130)
 - Optimized and added additional constructors to Color. [#5117](https://github.com/MonoGame/MonoGame/pull/5117)
 - Added SamplerState.TextureFilterMode to correctly support comparison filtering. [#5112](https://github.com/MonoGame/MonoGame/pull/5112)
 - Fixed Apply3D() on stereo SoundEffect. [#5099](https://github.com/MonoGame/MonoGame/pull/5099)
 - Fixed Effect.OnApply to return void to match XNA. [#5090](https://github.com/MonoGame/MonoGame/pull/5090)
 - Fix crash when DynamicSoundEffectInstance not disposed. [#5075](https://github.com/MonoGame/MonoGame/pull/5075)
 - Texture2D.FromStream now correctly throws on null arguments. [#5050](https://github.com/MonoGame/MonoGame/pull/5050)
 - Implemented GraphicsAdapter for DirectX platforms. [#5024](https://github.com/MonoGame/MonoGame/pull/5024)
 - Fixed initialization of GameComponent when created within another GameComponent. [#5020](https://github.com/MonoGame/MonoGame/pull/5020)
 - Improved SoundEffect internal platform extendability. [#5006](https://github.com/MonoGame/MonoGame/pull/5006)
 - Refactored audio processing for platform extensibility. [#5001](https://github.com/MonoGame/MonoGame/pull/5001)
 - Refactored texture processing for platform extensibility. [#4996](https://github.com/MonoGame/MonoGame/pull/4996)
 - Refactor ShaderProfile to allow for pipeline extensibility. [#4992](https://github.com/MonoGame/MonoGame/pull/4992)
 - Removed unnessasary dictionary lookup for user index buffers for DirectX platforms. [#4988](https://github.com/MonoGame/MonoGame/pull/4988)
 - New SetRenderTargets() method which allows for variable target count. [#4987](https://github.com/MonoGame/MonoGame/pull/4987)
 - Added support for XACT reverb and filter effects. [#4974](https://github.com/MonoGame/MonoGame/pull/4974)
 - Remove array in GamePadDPad constructor. [#4970](https://github.com/MonoGame/MonoGame/pull/4970)
 - Updated to the latest version of Protobuild. [#4964](https://github.com/MonoGame/MonoGame/pull/4964)
 - Fixed static VBs and IBs on UWP on XB1. [#4955](https://github.com/MonoGame/MonoGame/pull/4955)
 - Updated to the latest version of Protobuild. [#4950](https://github.com/MonoGame/MonoGame/pull/4950)
 - Update Xamarin Studio addin for latest platform changes. [#4926](https://github.com/MonoGame/MonoGame/pull/4926)
 - Replace OpenTK with custom OpenGL bindings [#4874](https://github.com/MonoGame/MonoGame/pull/4874)
 - Fix Mouse updating when moving the Window. [#4924](https://github.com/MonoGame/MonoGame/pull/4924)
 - Fix incorrect use of startIndex in Texture2D.GetData DX. [#4833](https://github.com/MonoGame/MonoGame/pull/4833)
 - Cleanup of AssemblyInfo for framework assembly. [#4810](https://github.com/MonoGame/MonoGame/pull/4810)
 - New SDL2 backend for desktop GL platforms. [#4428](https://github.com/MonoGame/MonoGame/pull/4428)
 - Two MaterialProcessor properties fixed. [#4746](https://github.com/MonoGame/MonoGame/pull/4746)
 - Fixed thumbstick virtual buttons to always use independent axes. [#4742](https://github.com/MonoGame/MonoGame/pull/4742)
 - Fixed back buffer MSAA on DirectX platforms. [#4739](https://github.com/MonoGame/MonoGame/pull/4739)
 - Added new CHANGELOG.md to project. [#4732](https://github.com/MonoGame/MonoGame/pull/4732)
 - Added obsolete attribute and updated documentation. [#4731](https://github.com/MonoGame/MonoGame/pull/4731)
 - Fixed layout of UWP windows in VS template to ignore window chrome. [#4727](https://github.com/MonoGame/MonoGame/pull/4727)
 - Remove support for reading raw assets through ContentManager. [#4726](https://github.com/MonoGame/MonoGame/pull/4726)
 - Implemented DynamicSoundEffectInstance for DirectX and OpenAL platforms. [#4715](https://github.com/MonoGame/MonoGame/pull/4715)
 - Removed unused Yeti Mp3 compressor. [#4713](https://github.com/MonoGame/MonoGame/pull/4713)
 - MonoGame Portable Assemblies. [#4712](https://github.com/MonoGame/MonoGame/pull/4712)
 - Fixed RGBA64 packing and added unit tests. [#4683](https://github.com/MonoGame/MonoGame/pull/4683)
 - Fix Gamepad crash when platform doesn't support the amount. [#4677](https://github.com/MonoGame/MonoGame/pull/4677)
 - Fixed Song stopping before they are finished on Windows. [#4668](https://github.com/MonoGame/MonoGame/pull/4668)
 - Removed the Linux .deb installer. [#4665](https://github.com/MonoGame/MonoGame/pull/4665)
 - OpenAssetImporter is now automatically selected for all the formats it supports. [#4663](https://github.com/MonoGame/MonoGame/pull/4663)
 - Fixed broken unit tests under Linux. [#4614](https://github.com/MonoGame/MonoGame/pull/4614)
 - Split out Title Container into partial classes. [#4590](https://github.com/MonoGame/MonoGame/pull/4590)
 - Added Rider Support to Linux installer. [#4589](https://github.com/MonoGame/MonoGame/pull/4589)
 - Implement vertexStride in VertexBuffer.SetData for OpenGL. [#4568](https://github.com/MonoGame/MonoGame/pull/4568)
 - Performance improvement to SpriteBatch vertex generation. [#4547](https://github.com/MonoGame/MonoGame/pull/4547)
 - Optimization of indices initialization in SpriteBatcher. [#4546](https://github.com/MonoGame/MonoGame/pull/4546)
 - Optimized ContentReader to decode LZ4 compressed streams directly. [#4522](https://github.com/MonoGame/MonoGame/pull/4522)
 - TitleContainer partial class cleanup. [#4520](https://github.com/MonoGame/MonoGame/pull/4520)
 - Remove raw asset support from ContentManager. [#4489](https://github.com/MonoGame/MonoGame/pull/4489)
 - Initial implementation of RenderTargetCube for OpenGL. [#4488](https://github.com/MonoGame/MonoGame/pull/4488)
 - Removed unnecessary platform differences in MGFX. [#4486](https://github.com/MonoGame/MonoGame/pull/4486)
 - SoundEffect fixes and tests. [#4469](https://github.com/MonoGame/MonoGame/pull/4469)
 - Cleanup FX syntax for shader compiler. [#4462](https://github.com/MonoGame/MonoGame/pull/4462)
 - General Improvements to Pipeline Gtk implementation. [#4459](https://github.com/MonoGame/MonoGame/pull/4459)
 - ShaderProfile Refactor. [#4438](https://github.com/MonoGame/MonoGame/pull/4438)
 - GraphicsDeviceManager partial class refactor. [#4425](https://github.com/MonoGame/MonoGame/pull/4425)
 - Remove legacy Storage classes. [#4320](https://github.com/MonoGame/MonoGame/pull/4320)
 - Added mipmap generation for DirectX render targets. [#4189](https://github.com/MonoGame/MonoGame/pull/4189)
 

## 3.5.1 Release - March 30, 2016

 - Fixed negative values when pressing up on left thumbstick on Mac.
 - Removed exception and just return empty state when requesting an invalid GamePad index.
 - Fixed texture processing for 64bpp textures.
 - Fixed Texture2D.SaveAsPng on Mac.


## 3.5 Release - March 17, 2016

 - Content Pipeline Integration for Xamarin Studio and MonoDevleop on Mac and Linux.
 - Automatic inclusion of XNBs into your final project on Mac and Linux.
 - Improved Mac and Linux installers.
 - Assemblies are now installed locally on Mac and Linux just like they are on Windows.
 - New cross-platform "Desktop" project where same binary and content will work on Windows, Linux and Mac desktops.
 - Better Support for Xamarin.Mac and Xam.Mac.
 - Apple TV support (requires to be built from source at the moment).
 - Various sound system fixes.
 - New GraphicsMetrics API.
 - Optimizations to SpriteBatch performance and garbage generation.
 - Many improvements to the Pipeline tool: added toolbar, new filtered output view, new templates, drag and drop, and more.
 - New GamePad support for UWP.
 - Mac and Linux now support Vorbis compressed music.
 - Major refactor of texture support in content pipeline.
 - Added 151 new unit tests.
 - Big improvements to FBX and model content processing.
 - Various fixes to XML serialization.
 - MediaLibrary implementation for Windows platforms.
 - Removed PlayStation Mobile platform.
 - Added content pipeline extension template project.
 - Support for binding multiple vertex buffers in a draw call.
 - Fixed deadzone issues in GamePad support.
 - OcclusionQuery support for DX platforms.
 - Fixed incorrect z depth in SpriteBatch.
 - Lots of OpenTK backend fixes.
 - Much improved font processing.
 - Added new VertexPosition vertex format.
 - Better VS project template installation under Windows.


## 3.4 Release - April 29, 2015

 - Removed old XNA content pipeline extensions.
 - Added all missing PackedVector types.
 - Replacement of old SDL joystick path with OpenTK.
 - Added SamplerState.ComparisonFunction feature to DX and OGL platforms.
 - Fixed bug where content importers would not be autodetected on upper case file extensions.
 - Fixed compatibility with XNA sound effect XNBs.
 - Lots of reference doc improvements.
 - Added SamplerState.BorderColor feature to DX and OGL platforms.
 - Lots of improvements to the Mac, Linux and Windows versions of the Pipeline GUI tool.
 - Fixes for bad key mapping on Linux.
 - Support for texture arrays on DX platforms.
 - Fixed broken ModelMesh.Tag
 - VS templates will now only install if VS is detected on your system.
 - Added Color.MonoGameOrange.
 - Fixed Xact SoundBack loading bug on Android.
 - Added support for a bunch of missing render states to MGFX.
 - Added support for sRGB texture formats to DX and OGL platforms.
 - Added RasterizerState.DepthClipEnable support for DX and OGL platforms.
 - New support for the Windows 10 UAP plafform.
 - Fixed bug which caused the GamePad left thumbstick to not work correctly.
 - Preliminary base classed for future Joystick API.
 - Performance improvement on iOS by avoiding unnessasary GL context changes.
 - Fixed bug where MediaPlayer volume affected all sounds.
 - New XamarinStudio/MonoDevelop Addin for Mac.
 - New Mac installer packages.


## 3.3 Release - March 16, 2015

 - Support for vertex texture fetch on Windows.
 - New modern classes for KeyboardInput and MessageBox.
 - Added more validation to draw calls and render states.
 - Cleaned up usage of statics to support multiple GraphicsDevice instances.
 - Support Window.Position on WindowsGL platform.
 - Reduction of redundant OpenGL calls.
 - Fullscreen support for Windows DX platform.
 - Implemented Texture2D SaveAsPng and SaveAsJpeg for Android.
 - Improved GamePad deadzone calculations.
 - We now use FFmpeg for audio content building.
 - BoundingSphere fixes and optimizations.
 - Many improvements to Linux platform.
 - Various fixes to FontTextureProcessor.
 - New Windows Universal App template for Windows Store and Windows Phone support.
 - Many fixes to reduce garbage generation during runtime.
 - Adding support for TextureFormatOptions to FontDescriptionProcessor.
 - XNA compatibility improvements to FontDescriptionProcessor.
 - Resuscitated the unit test framework with 100s of additional unit tests.
 - BoundingFrustum fixes and optimizations.
 - Added VS2013 project templates.
 - Moved to new MonoGame logo.
 - Added MSAA render target support for OpenGL platforms.
 - Added optional content compression support to content pipeline and runtime.
 - TextureCube content reader and GetData fixes.
 - New OpenAL software implementation for Android.
 - Xact compatibility improvements.
 - Lots of Android fixes and improvements.
 - Added MediaLibrary implementation for Android, iOS, Windows Phone, and Windows Store.
 - Added ReflectiveWriter implementation to content pipeline.
 - Fixes to Texture2D.GetData on DirectX platforms.
 - SpriteFont rendering performance optimizations.
 - Huge refactor of ModelProcessor to be more compatible with XNA.
 - Moved NET and GamerServices into its own MonoGame.Framework.Net assembly.
 - Runtime support for ETC1 textures for Androud.
 - Improved compatibility for FBXImporter and XImporter.
 - Multiple SpritBatch compatibility fixes.
 - We now use FreeImage in TextureImporter to support many more input formats.
 - MGFX parsing and render state improvements.
 - New Pipeline GUI tool for managing content projects for Windows, Mac, and Linux desktops.
 - New implementation of content pipeline IntermediateSerializer.
 - All tools and content pipeline built for 64-bit.
 - New documentation system.
 - Implement web platform (JSIL) stubs.
 - Lots of fixes to PSM.
 - Added Protobuild support for project generation.
 - Major refactor of internals to better separate platform specific code.
 - Added MGCB command line tool to Windows installer.


## 3.2 Release - April 7, 2014

 - Implemented missing PackedVector types.
 - VS2013 support for MonoGame templates.
 - Big improvement to XInput performance on Windows/Windows8.
 - Added GameWindow.TextInput event enhancement.
 - Added Xamarin.Mac compatability.
 - Support for WPF interop under DirectX.
 - Enhancement to support multiple GameWindows on Windows under DirectX.
 - Various SpriteFont compatibility improvements.
 - OpenAL performance/memory/error handling improvements.
 - Reduction of Effect runtime memory usage.
 - Support for DXT/S3TC textures on Android.
 - Touch support on Windows desktop games.
 - Added new RenderTarget3D enhancement.
 - OUYA gamepad improvements.
 - Internal improvements to reduce garbage generation.
 - Various windowing fixes for OpenTK on Linux, Mac, and Windows.
 - Automatic support for content reloading on resume for Android.
 - Support for TextureCube, Texture3D, and RenderTargetCube on DirectX.
 - Added TitleContainer.SupportRetina enhancement for loading @2x content.
 - Lots of Android/Kindle compatibility fixes.
 - Added enhancement GameWindow.IsBorderless.
 - OpenGL now supports multiple render targets.
 - Game.IsRunningSlowly working accurately to XNA.
 - Game tick resolution improvements.
 - XACT compatibility improvements.
 - Various fixes and improvements to math types.
 - DrawUserIndexedPrimitives now works with 32bit indicies.
 - GamerServices fixes under iOS.
 - Various MonoGame FX improvements and fixes.
 - Render target fixes for Windows Phone.
 - MediaPlayer/MediaQueue/Song fixes on Windows Phone.
 - XNA accuracy fixes to TitleContainer.
 - Fixes to SpriteBatch performance and compatibility with XNA.
 - Threading fixes around SoundEffectInstance.
 - Support for Song.Duration.
 - Fixed disposal of OpenGL shader program cache.
 - Improved support of PoT textures in OpenGL.
 - Implemented missing EffectParameter SetValue/GetValue calls.
 - Touch fixes to Windows Phone.
 - Fixes to orientation support in iOS.
 - Lots of PSM fixes which make it usable for 2D games.
 - New Windows desktop platform using DirectX/XAudio.
 - Old Windows project renamed WindowsGL.
 - Fixed offsetInBytes parameter in IndexBuffer/VertexBuffer SetData.
 - Fixed subpixel offset when viewport is changed in OpenGL.
 - Tons of content pipeline improvements making it close to complete.


## 3.0.1 Release - March 3, 2013

 - Fix template error.
 - Fix offsetInBytes parameter in IndexBuffer/VertexBuffer SetData.
 - Fixes the scale applied on the origin in SpriteBatch.
 - Fixed render targets on WP8.
 - Removed minVertexIndex Exception.
 - Fixed some threading issues on iOS.
 - Use generic link for opening store on iOS.
 - Fix Matrix::Transpose.
 - Fixed vertexOffset in DrawUserIndexedPrimitives in GL.
 - Keys.RightControl/RightShift Support for WinRT.
 - Dispose in ShaderProgramCache.
 - IsRunningSlowly Fix.


## 3.0 Release - January 1, 2013

 - 3D (many thanks to Infinite Flight Studios for the code and Sickhead Games in taking the time to merge the code in).
 - New platforms: Windows 8, Windows Phone 8, OUYA, PlayStation Mobile (including Vita).
 - Custom Effects.
 - PVRTC support for iOS.
 - iOS supports compressed Songs.
 - Skinned Meshs.
 - VS2012 templates.
 - New Windows Installer.
 - New MonoDevelop Package/AddIn.
 - A LOT of bug fixes.
 - Closer XNA 4 compatibility.


## 2.5.1 Release - June 18, 2012

 - Updated android to use enumerations rather than hardocded ids as part of the Mono for Android 4.2 update.
 - Changed the Android video player to make use of the ViewView.
 - Corrected namespaces for SongReader and SoundEffectReader.
 - Updated the Keyboard mapping for android.
 - Added RectangleArrayReader.
 - Removed links to the third party GamePadBridge.
 - Added some missing mouseState operators.
 - Replaced all calls to DateTime.Now with DateTime.UtcNow.
 - Fixed SpriteFont rendering (again).
 - Added code to correclty dispose of Textures on all platforms.
 - Added some fixes for the sound on iOS.
 - Adding missing MediaQueue class.
 - Fixed Rectangle Intersect code.
 - Changed the way UserPrimitives work on windows.
 - Made sure the @2x file support on iOS works.
 - Updated project templates.
 - Added project templates for MacOS.
 - Fixed MonoDevelop.MonoGame AddIn so it works on Linux.
 

## 2.5 Release - March 29, 2012

### Fixes and Features
 - Minor fixes to the Networking stack to make it more reliable when looking for games.
 - SpriteBatch Fixes including making sure the matrix parameter is applied in both gles 1.1 and gles 2.0.
 - Updated IDrawable and IUpdatable interfaces to match XNA 4.0.
 - Fixed the Tick method.
 - Updated VideoPlayer constructor contract to match XNA 4.0.
 - Added Code to Lookup the Host Application Guid for Networking, the guid id is now pulled from the AssemblyInfo.cs if one is present.
 - Uses OpenAL on all platforms except Android.
 - Added Dxt5 decompression support.
 - Improves SpriteFont to conform more closely to XNA 4.0.
 - Moved DynamicVertexBuffer and DynamicIndexBuffer into its own files.

### iOS
 - Fixed Console.WriteLine problem.
 - Fixed loading of @2x Retina files.
 - Fixed Landscape Rendering.
 - Fixed Orientations changes correctly animate.
 - Fixed Guide.BeginShowKeyboardInput.
 - Fixed StorageDevice AOT compile problem.
 - Fixed SpriteBatch to respect matrices when drawn.
 - Fixed DoubleTap, improves touches in serial Game instances.
 - Fixed App startup in non-Portrait orientations.
 - Fixed UnauthorizedAccessException using TitleContainer.
 - Fixed a runtime JIT error that was occuring with List<AddJournalEntry<T>().
 - Guide.ShowKeyboard is not working.
 - App Backgrounding has regressed. A patch is already being tested in the develop branch and the fix will be rolled out as part of the v2.5.1.

### Android
 - Project Templates for MonoDevelop.
 - Fixed a few issues with Gestures.
 - Fixed the name of the assembly to be MonoGame.Framework.Android.
 - Fixed a Memory Leak in Texture Loading.
 - Force linear filter and clamp wrap on npot textures in ES2.0 on Android.
 - Added SetData and GetData support for Texture2D.
 - Guide.SignIn picks up the first email account on the phone.
 - CatapultWars does not render correctly under gles 1.1.

### MacOS X
 - SoundEffectInstance.Stop now works correctly.

### Linux
 - Project Templates for Visual Studio and MonoDevelop.
 - Fixed a bug when loading of Wav files.

### Windows
 - Project Templates for Visual Studio and MonoDevelop.
 - Fixed a bug when loading of Wav files.
 - Added Game.IsMouseVisible implementation for Windows.
 - Guide.SignIn picks up the logged in user.
 - Added a new Installer to install the MonoDevelop and / or Visual Studio Templates and binaries.


## 2.1 Release - October 28, 2011

### Features
 - Content Manager rewritten to use partial classes and implementation of cached assets that are loaded.  Greatly improves memory footprint.
 - Experimental support for GamePads and Joysticks.  Enhancements will be coming to integrate better for developers.
 - ContentReader improvements across the board.
 - Improved support for XACT audio.
 - StarterKits VectorRumble.

### iOS
 - Gesture support has been improved.
 - Better support for portrait to landscape rotations.
 - Fixed a rendering bug related to upsidedown portrait mode.
 - Better WaveBank support.
 - The Guide functionality is only available in iOS, for this release.

### Android
 - Updated to support Mono for Android 4.0.
 - Improvements to the Orientation Support.
 - Changed Sound system to use SoundPool.
 - Added Tap and DoubleTap Gesture Support.

### MacOS X
 - A lot of enhancements and fixes for Full Screen and Windowed control.
 - Cursor support fixed for IsMouseVisible.
 - Implementation of IsActive property and the events Activated and Deactivated.
 - First steps of DrawPrimitives, DrawUserPrimitives, DrawIndexedPrimitives.
 - Better WaveBank support.
 - Support for ApplyChanges() and setting the backbuffer and viewport sizes correctly.

### Linux
 - All new implementation which share quite a bit of code between MacOS X and Windows.
 - Added shader support via the Effects class.

### Windows
 - All new implementation which shares quite a bit of code between MacOS and Linux.


## 2.0 Release - October 28, 2011

 - Project renamed MonoGame.
 - Project moved to GitHub.
 - Support for Linux, Mac, Linux, and OpenGL on Windows.


## 0.7 Release - December 2, 2009

 - First stable release.
 - Originally named XnaTouch.
 - iPhone support only.
 - 2D rendering support.
 - Audio support.
 - Networking support.
 - Partial multitouch support.
 - Partial accelerometer support.


================================================
FILE: CODESTYLE.md
================================================
> #### NOTE: This code style standard for MonoGame is a work in progress and much of the code does not currently conform to these rules.  This is something that will be addressed by the core team.

# Introduction
As the MonoGame project gains more traction and becomes more widely used, we aim to provide a more professional and consistent look to the large amount of source now in the project.  It was a broadly supported decision by the core development team to follow the Microsoft coding guidelines (the default provided in Visual Studio's C# editor).  These coding guidelines listed below are based on a [MSDN blog post](http://blogs.msdn.com/b/brada/archive/2005/01/26/361363.aspx) from 2005 by Brad Abrams describing the internal coding guidelines at Microsoft, with some changes to suit our project.
# Coding Guidelines
## Tabs & Indenting
Tab characters (\0x09) should not be used in code. All indentation should be done with 4 space characters.
## Bracing
Open braces should always be at the beginning of the line after the statement that begins the block. Contents of the brace should be indented by 4 spaces. Single statements do not have braces. For example:
```
if (someExpression)
{
   DoSomething();
   DoAnotherThing();
}
else
   DoSomethingElse();
```

`case` statements should be indented from the switch statement like this:
```
switch (someExpression) 
{
   case 0:
      DoSomething();
      break;

   case 1:
      DoSomethingElse();
      break;

   case 2: 
      {
         int n = 1;
         DoAnotherThing(n);
      }
      break;
}
```

Braces are not used for single statement blocks immediately following a `for`, `foreach`, `if`, `do`, etc. The single statement block should always be on the following line and indented by four spaces. This increases code readability and maintainability.
```
for (int i = 0; i < 100; ++i)
    DoSomething(i);
```

## Single line property statements
Single line property statements can have braces that begin and end on the same line. This should only be used for simple property statements.  Add a single space before and after the braces.
```
public class Foo
{
   int bar;

   public int Bar
   {
      get { return bar; }
      set { bar = value; }
   }
}
```

## Commenting
Comments should be used to describe intention, algorithmic overview, and/or logical flow.  It would be ideal if, from reading the comments alone, someone other than the author could understand a function's intended behavior and general operation. While there are no minimum comment requirements (and certainly some very small routines need no commenting at all), it is best that most routines have comments reflecting the programmer's intent and approach.

Comments must provide added value or explanation to the code. Simply describing the code is not helpful or useful.
```
    // Wrong
    // Set count to 1
    count = 1;

    // Right
    // Set the initial reference count so it isn't cleaned up next frame
    count = 1;
```

### Copyright/License notice
Each file should start with a copyright notice. This is a short statement declaring the project name and copyright notice, and directing the reader to the license document elsewhere in the project. To avoid errors in doc comment builds, avoid using triple-slash doc comments.
```
// MonoGame - Copyright (C) The MonoGame Team
// This file is subject to the terms and conditions defined in
// file 'LICENSE.txt', which is part of this source code package.
```

### Documentation Comments
All methods should use XML doc comments. For internal dev comments, the `<devdoc>` tag should be used.
```
public class Foo 
{
    /// <summary>Public stuff about the method</summary>
    /// <param name="bar">What a neat parameter!</param>
    /// <devdoc>Cool internal stuff!</devdoc>
    public void MyMethod(int bar)
    {
        ...
    }
}
```

### Comment Style
The // (two slashes) style of comment tags should be used in most situations. Wherever possible, place comments above the code instead of beside it.  Here are some examples:
```
    // This is required for WebClient to work through the proxy
    GlobalProxySelection.Select = new WebProxy("http://itgproxy");

    // Create object to access Internet resources
    WebClient myClient = new WebClient();
```

## Spacing
Spaces improve readability by decreasing code density. Here are some guidelines for the use of space characters within code:

Do use a single space after a comma between function arguments.
```
Console.In.Read(myChar, 0, 1);  // Right
Console.In.Read(myChar,0,1);    // Wrong
```
Do not use a space after the parenthesis and function arguments.
```
CreateFoo(myChar, 0, 1)         // Right
CreateFoo( myChar, 0, 1 )       // Wrong
```
Do not use spaces between a function name and parentheses.
```
CreateFoo()                     // Right
CreateFoo ()                    // Wrong
```
Do not use spaces inside brackets.
```
x = dataArray[index];           // Right
x = dataArray[ index ];         // Wrong
```
Do use a single space before flow control statements.
```
while (x == y)                  // Right
while(x==y)                     // Wrong
```
Do use a single space before and after binary operators.
```
if (x == y)                     // Right
if (x==y)                       // Wrong
```
Do not use a space between a unary operator and the operand.
```
++i;                            // Right
++ i;                           // Wrong
```
Do not use a space before a semi-colon. Do use a space after a semi-colon if there is more on the same line.
```
for (int i = 0; i < 100; ++i)   // Right
for (int i=0 ; i<100 ; ++i)     // Wrong
```

## Naming
Follow all .NET Framework Design Guidelines for both internal and external members. Highlights of these include:
* Do not use Hungarian notation
* Do use an underscore prefix for member variables, e.g. "_foo"
* Do use camelCasing for member variables (first word all lowercase, subsequent words initial uppercase)
* Do use camelCasing for parameters
* Do use camelCasing for local variables
* Do use PascalCasing for function, property, event, and class names (all words initial uppercase)
* Do prefix interfaces names with "I"
* Do not prefix enums, classes, or delegates with any letter

The reasons to extend the public rules (no Hungarian, underscore prefix for member variables, etc.) is to produce a consistent source code appearance. In addition, the goal is to have clean, readable source. Code legibility should be a primary goal.

## File Organization
* Source files should contain only one public type, although multiple internal types are permitted if required
* Source files should be given the name of the public type in the file
* Directory names should follow the namespace for the class after `Framework`. For example, one would expect to find the public class `Microsoft.Xna.Framework.Graphics.GraphicsDevice` in **MonoGame.Framework\Graphics\GraphicsDevice.cs**
* Class members should be grouped logically, and encapsulated into regions (Fields, Constructors, Properties, Events, Methods, Private interface implementations, Nested types)
* Using statements should be before the namespace declaration.
```
using System;

namespace MyNamespace 
{
    public class MyClass : IFoo 
    {
        #region Fields
        int foo;
        #endregion

        #region Properties
        public int Foo { get { ... } set { ... } }
        #endregion

        #region Constructors
        public MyClass()
        {
            ...
        }
        #endregion

        #region Events
        public event EventHandler FooChanged { add { ... } remove { ... } }
        #endregion

        #region Methods
        void DoSomething()
        {
            ...
        }

        void FindSomething()
        {
            ...
        }
        #endregion

        #region Private interface implementations
        void IFoo.DoSomething()
        {
            DoSomething();
        }
        #endregion

        #region Nested types
        class NestedType
        {
            ...
        }
        #endregion
    }
}
```

# Useful Links
[C# Coding Conventions (MSDN)](http://msdn.microsoft.com/en-us/library/ff926074.aspx)


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to MonoGame

We're happy that you have chosen to contribute to the MonoGame project.

You are joining a group of hundreds of volunteers that have helped build MonoGame since 2009.  To organize these efforts, the MonoGame Team has written this simple guide to help you.

Please read this document completely before contributing.


## How To Contribute

MonoGame has a `master` branch for stable releases and a `develop` branch for daily development.  New features and fixes are always submitted to the `develop` branch.

If you are looking for ways to help, you should start by looking at the [Help Wanted tasks](https://github.com/mono/MonoGame/issues?q=is%3Aissue+is%3Aopen+label%3A%22Help+Wanted%22).  Please let us know if you plan to work on an issue so that others are not duplicating your work.

The MonoGame project follows standard [GitHub flow](https://guides.github.com/introduction/flow/index.html).  You should learn and be familiar with how to [use Git](https://help.github.com/articles/set-up-git/), how to [create a fork of MonoGame](https://help.github.com/articles/fork-a-repo/), and how to [submit a Pull Request](https://help.github.com/articles/using-pull-requests/).

After you submit a PR, the [MonoGame build server](http://teamcity.monogame.net/?guest=1) will build your changes and verify that all tests pass.  Project maintainers and contributors will review your changes and provide constructive feedback to improve your submission.

Once we are satisfied that your changes are good for MonoGame, we will merge your PR.


## Quick Guidelines

Here are a few simple rules and suggestions to remember when contributing to MonoGame.

* :bangbang: **NEVER** commit code that you didn't personally write.
* :bangbang: **NEVER** use decompiler tools to steal code and submit it as your own work.
* :bangbang: **NEVER** decompile XNA assemblies and steal Microsoft's copyrighted code.
* **PLEASE** try to keep your PRs focused on a single topic and of a reasonable size or we may ask you to break it up.
* **PLEASE** be sure to write simple and descriptive commit messages.
* **DO NOT** surprise us with new APIs or big new features. Open an issue to discuss your ideas first.
* **DO NOT** reorder type members as it makes it difficult to compare code changes in a PR.
* **DO** try to follow our [coding style](CODESTYLE.md) for new code.
* **DO** give priority to the existing style of the file you're changing.
* **DO** try to add to our [unit tests](Test) when adding new features or fixing bugs.
* **DO NOT** send PRs for code style changes or make code changes just for the sake of style.
* **PLEASE** keep a civil and respectful tone when discussing and reviewing contributions.
* **PLEASE** tell others about MonoGame and your contributions via social media.


## Decompiler Tools

We prohibit the use of tools like dotPeek, ILSpy, JustDecompiler, or .NET Reflector which convert compiled assemblies into readable code.

There has been confusion on this point in the past, so we want to make this clear.  It is **NEVER ACCEPTABLE** to decompile copyrighted assemblies and submit that code to the MonoGame project.

* It **DOES NOT** matter how much you change the code.
* It **DOES NOT** matter what country you live in or what your local laws say.  
* It **DOES NOT** matter that XNA is discontinued.  
* It **DOES NOT** matter how small the bit of code you have stolen is.  
* It **DOES NOT** matter what your opinion of stealing code is.

If you did not write the code, you do not have ownership of the code and you shouldn't submit it to MonoGame.

If we find a contribution to be in violation of copyright, it will be immediately removed.  We will bar that contributor from the MonoGame project.

## Code guidelines

Due to limitations on private target platforms, MonoGame enforces the use of C# 5.0 features.

It is however allowed to use the latest class library, but if contributions make use of classes that are not present in .NET 4.5, it will be required from the contribution to implement backward-compatible switches.

These limitations should be lifted at some point.

## Licensing

The MonoGame project is under the [Microsoft Public License](https://opensource.org/licenses/MS-PL) except for a few portions of the code.  See the [LICENSE.txt](LICENSE.txt) file for more details.  Third-party libraries used by MonoGame are under their own licenses.  Please refer to those libraries for details on the license they use.

We accept contributions in "good faith" that it isn't bound to a conflicting license.  By submitting a PR you agree to distribute your work under the MonoGame license and copyright.

To this end, when submitting new files, include the following in the header if appropriate:
```csharp
// MonoGame - Copyright (C) The MonoGame Team
// This file is subject to the terms and conditions defined in
// file 'LICENSE.txt', which is part of this source code package.
```

## Need More Help?

If you need help, please ask questions on our [community forums](http://community.monogame.net/) or come [chat on Gitter](https://gitter.im/mono/MonoGame).


Thanks for reading this guide and helping make MonoGame great!

 :heart: The MonoGame Team


================================================
FILE: Clean.bat
================================================

for /d /r . %%d in (bin,obj,bak) do @if exist "%%d" rd /s /q "%%d"

rd /s /q "Artifacts"

cd Templates
del /s /q *.zip
cd ..

pause

================================================
FILE: Documentation/articles/README.md
================================================
THIS IS A WORK IN PROGRESS!

# MonoGame Documentation

This is the source for the [documentation published on MonoGame.net](http://www.monogame.net/documentation/).  It is rebuilt when the code changes and is published nightly to the website.

## General Rules

The following rules must be observed at all times when contributing documentation to the MonoGame project.

- Write in a neutral, technical tone.
- Avoid humor, personal opinions, and colloquial language.
- **Never** plagiarize any documentation from another source.
- Do not use automatic documentation tools as they are ineffective. 

Breaking these rules can result in your contribution being rejected.

## Getting Started

You can create and edit documentation right from the web browser without needing to install Git or ever leave the GitHub site.

- [Fork the MonoGame repo](https://help.github.com/articles/fork-a-repo/).
- [Create a new branch](https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/) from `develop` and make your changes only in that branch.
- [Create a new file](https://help.github.com/articles/creating-new-files/) or [edit an existing one](https://help.github.com/articles/editing-files-in-your-repository/) using the GitHub markup editor.
- [Submit pull requests](https://help.github.com/articles/creating-a-pull-request/) early and often to merge your documentation changes.

## Style Guide

Review the following expectations before contributing any documentation.

### Manuals, Guides, and Tutorials

TODO!

### API Reference

The API reference documentation is a big part of the documentation effort for MonoGame.  The documentation is written in the [C# XML format](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/xml-documentation-comments) and is inline to the MonoGame source code. The final web pages with API documentation are generated using [DocFX]([DocFX - static documentation generator | DocFX website](https://dotnet.github.io/docfx/)).

#### Every Word Should Contain Value

Every word in the reference documentation should provide information beyond the API itself.  Documentation that only rehashes or rephrases what is already apparent in the class, method, parameter, or property name has zero value and wastes time for both the writer and reader.

#### The First Sentence Is the Most Important

There is no guarantee that the reader will read beyond the first sentence of the reference documentation.  This is why that first sentence is the most important and should convey the most key piece of information.  Take your time to write the most concise and clear first sentence possible.  This helps users tremendously and goes a long way towards having great documentation.

#### Surface Information Hidden in the Code

Being inline with the code allows you to easily look for critical information within it that the user might not know from looking at the API alone.  Take your time to explore inner method calls and platform specific sections of the code.  The time to write the documentation is once you feel you fully understand the code you are documenting.  If you don't feel you understand the code then leave the documentation for someone else to write.

#### Documentation Is Referenced Not Read

Remember that the user is searching for an answer for a specific question.  It is your job to predict these questions and provide them clear answers.

## License

All documentation contributed to the MonoGame project is subject to the [Creative Commons Attribution-NonCommercial-ShareAlike](http://creativecommons.org/licenses/by-nc-sa/4.0/) license.  By contributing you are agreeing to the terms of that license.

<p align="center"><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/Text" property="dct:title" rel="dct:type">MonoGame Documentation</span> by the <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.monogame.net" property="cc:attributionName" rel="cc:attributionURL">MonoGame Team</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike License</a>.</p>


================================================
FILE: Documentation/articles/content/adding_ttf_fonts.md
================================================
# TrueType fonts

MonoGame supports more than one method of using fonts, the following is an explanation of how to use TrueType fonts.

## Using TrueType Fonts with MonoGame

To be able to use a TrueType font, MonoGame requires the **TrueType font file** and a **.spritefont** file.

> TrueType fonts may be installed on the system, or added manually in to the same directory as the .spritefont file.

1. Create the .spritefont file by selecting "Edit -> Add -> New Item" from the MGCB Editor menu, then select **SpriteFont Description** from the list and click **Create**.
   
   ![Adding TTF fonts step 2](~/images/content/adding_ttf_fonts.PNG)

2. Open the newly created .spritefont file in your text editor of choice, find this line and change it to your selected .ttf font.
   If the font is installed on the system, just type the name of the font.

```xml
<FontName>Arial</FontName>
```

## Usage Example

Make a class variable of type [`Spritefont`](xref:Microsoft.Xna.Framework.Graphics.SpriteFont)

```csharp
SpriteFont font;
```

Load the font with [`ContentManager.Load`](xref:Microsoft.Xna.Framework.Content.ContentManager)

```csharp
font = myGame.Content.Load<SpriteFont>("Fonts/myFont")
```

Draw text with [`SpriteBatch.Draw`](xref:Microsoft.Xna.Framework.Graphics.SpriteBatch)

```csharp
spriteBatch.Begin();
// Finds the center of the string in coordinates inside the text rectangle
Vector2 textMiddlePoint = font.MeasureString(text) / 2;
// Places text in center of the screen
Vector2 position = new Vector2(myGame.Window.ClientBounds.Width / 2, myGame.Window.ClientBounds.Height / 2);
spriteBatch.DrawString(font, "MonoGame Font Test", position, Color.White, 0, textMiddlePoint, 1.0f, SpriteEffects.None, 0.5f)
spriteBatch.End();
```


================================================
FILE: Documentation/articles/content/content.md
================================================
# Adding Content

A big part of your game is your content.  This includes standard files like textures, sound effects, music, videos, and custom effects as well as custom content like level and enemy files.

MonoGame implements its own content pipeline for transforming your unoptimized assets into platform optimized content.  This is critical in building a game which runs as fast as possible under tight resource constraints.

This section will cover the following topics:

- [Why use the Content Pipeline](why_content_pipeline.md)
- [Using MGCB Editor](using_mgcb_editor.md)
- [TrueType Fonts](adding_ttf_fonts.md)
- [Custom Effects](custom_effects.md)
- [Localization](localization.md)


================================================
FILE: Documentation/articles/content/custom_effects.md
================================================
# Custom Effects

A core element of Microsoft XNA is the effect system which is used for all rendering.

For KNI we are supporting stock and custom HLSL effects, for DirectX 11, desktop OpenGL, mobile GLES and WebGL.
There currently is no effect system or shader language that supports all the platforms we require, forcing us to build a new custom effect system.

## MGFX

KNIFX is KNI's "Effect" runtime and tools which with the following core goals:

* Support a similar technique, passes, shaders structure as Microsoft FX files.
* Have a textual format for ease of editing.
* Have a compiled and optimized binary format for runtime use.
* Be cross-platform and support multiple shader languages and bytecodes.
* Easy to extend for future platforms and features.

## Stock Effects

KNI has the following effects built-in and fully supported on current platforms:

* BasicEffect
* AlphaTestEffect
* DualTextureEffect
* EnvironmentMapEffect
* SkinnedEffect
* SpriteEffect

Under the hood these effects use the same system and tools as one would for a custom Effect.  The source of these effects can be found in the ['Platforms\Graphics\Effect\Shaders'](https://github.com/kniEngine/kni/tree/main/Platforms/Graphics/Effect/Shaders) folder.

## Custom Effects

To use a custom effect with KNI you must do one of the following:

* Run the effect file through the [content processor](~/articles/tools/mgcb.md) for loading via the [`ContentManager`](xref:Microsoft.Xna.Framework.Content.ContentManager) (Recommended).
* Process your effect file with the [KNIFXC tool](~/articles/tools/knifxc.md) and load them yourself at runtime.

## Effect Writing Tips

These are some tips for writing or converting effects for use with KNI.

| The compiler support both new HLSL syntax and is backward compatible with the old HLSL syntax. vs_4_0_level_9_1 and vs_2_0 are interchangeable:|
| The supported shader models when targeting DX are the following:|
|---|
|  * `vs_4_0_level_9_1` and `ps_4_0_level_9_1` (`Reach` `GraphicsProfile`)|
|  * `vs_4_0_level_9_3` and `ps_4_0_level_9_3` (requires `HiDef` `GraphicsProfile` at runtime)|
|  * `vs_2_0` and `ps_2_0` (`Reach` `GraphicsProfile`)|
|  * `vs_3_0` and `ps_3_0` (requires `HiDef` `GraphicsProfile` at runtime)|
|  * `vs_4_0` and `ps_4_0` (requires `FL10_0` `GraphicsProfile` at runtime)|
|  * `vs_4_1` and `ps_4_1` (requires `FL10_1` `GraphicsProfile` at runtime)|
|  * `vs_5_0` and `ps_5_0` (requires `FL11_0` `GraphicsProfile` at runtime)|
|---|
|When targeting GL platforms we automatically translate FX files to GLSL using a library called [MojoShader](http://icculus.org/mojoshader/).|
|Shader Model 4.0 under GL unlocks the instruction count limit of 3.0, but is otherwise limited to 3.0 instructions|
|The supported feature levels are the following:|
|---|
|  * `vs_4_0_level_9_1` and `ps_4_0_level_9_1` (`Reach` `GraphicsProfile`)|
|  * `vs_4_0_level_9_3` and `ps_4_0_level_9_3` (requires `HiDef` `GraphicsProfile` at runtime)|
|  * `vs_2_0` and `ps_2_0` (`Reach` `GraphicsProfile`)|
|  * `vs_3_0` and `ps_3_0` (requires `HiDef` `GraphicsProfile` at runtime)|
|  * `vs_4_0` and `ps_4_0` (requires `FL10_0` `GraphicsProfile` at runtime)|
|---|
|You can use preprocessor checks to add conditional code or compilation depending on defined symbols. KNI defines the following symbols when compiling effects:|
|---|
|  * `__KNIFX__`                   |
|  * `__DEBUG__` when building with the Debug flag |
|  * `__DIRECTX__` when targeting DirectX |
|  * `__GL__` when targeting OpenGL/GLES/WebGL |
|  * `__OPENGL__` when targeting desktop OpenGL |
|  * `__GLES__` when targeting GLES/WebGL |
|  * `__MOJOSHADER__` when building with MojoShader, targeting OpenGL/GLES/WebGL |
|---|


Custom symbols can be defined from the [MGCB Editor](~/articles/tools/mgcb_editor.md) or via [KNIFXC](~/articles/tools/knifxc.md).

* Make sure the pixel shaders inputs **exactly match** the vertex shader outputs so the parameters are passed in the correct registers. The parameters need to have the same size and order. Omitting parameters might not break compilation, but can cause unexpected results.
* The effect compiler is aggressive about removing unused parameters, be sure the parameters you are setting are actually used.
* Preshaders are not supported.
* If you think you have found a bug porting a shader, [please let us know](https://github.com/kniEngine/kni/issues).


================================================
FILE: Documentation/articles/content/localization.md
================================================
# Localization

Localization is an important part of any game. While it can be possible to design a game that is region independent, it is quite hard. At some point you will need to produce localized text and graphics.

MonoGame has a simple localization system built in. If you want to develop your own system you are still able to do so. But the default system should be good enough for
most use cases.

## Creating resx files

MonoGame runs on .net/Mono on most platforms. Localization is handled by those platforms
via the use of resx files. There are walkthroughs on [MSDN](https://msdn.microsoft.com/en-us/library/aa992030(v=vs.100).aspx)
which walk you through the process. A simplified version is presented here.

Create a .resx file in the IDE e.g Foo.resx and add it to your game project. Note this needs to be added to the main app projects. The Foo.resx file should have an Action of EmbeddedResouce and a Generator value of ResXFileCodeGenerator.

Here is a snippet from the .csproj:

```xml
<EmbeddedResource Include="Foo.resx">
  <Generator>ResXFileCodeGenerator</Generator>
  <LastGenOutput>Foo.Designer.cs</LastGenOutput>
</EmbeddedResource>
```

Add any string resources to that file. These are in the form of a Key/Value pair. You can use the built-in editor or manually edit the .resx file by hand. It is an xml file so you can view the contents easily.

```xml
<data name="Wall_Style" xml:space="preserve">
  <value>Wall Style : {0}</value>
</data>
```

When the resx is processed by the generator, it produces a **Foo.Designer.cs** file which is then included in your project. You can then access the "string" value by using code as follows:

```csharp
var s = MyProject.Foo.Wall_Style;
```

> Note in the example we have a place holder ({0}) for additional text. You can still use te property of Foo.Wall_Style with things like string.Format.

```csharp
int i = 1;
var s = string.Format (MyProject.Foo.Wall_Style, i);
```

All this means you do not need to hardcode the string directly. When accessing the **MyProject.Foo.Wall_Style** property, the code will look up the value from the embedded resx file automatically.

You can add support for a new language by adding a new resx file which uses the language/region code as a suffix, e.g Foo.**de-DE**.resx.
This new file will contain the translations for that language/region. In the above example we are targetting German.

### Universal Windows Platform (UWP) considerations

Unfortunately UWP does not support resx files any more. They have a new file called a **resw**. The format is similar but incompatible to resx. As a result, you will need to duplicate the data into a set of additional resw files to get the translation to work on UWP.
The process is like the standard resx process.

## Upgrading your SpriteFont files

By default, the SpriteFont processor uses a limited set of characters to generate the font. While this is fine for English languages it will probably not include special characters needed for other languages (French, Arabic, Korean etc).

As a result MonoGame has a **LocalizedFontProcessor** which does something slightly different. The process looks at the resx files you provide it with and generates an optimized **spritefont** which only contains the characters your game uses.

To make use of this functionality you ned to tell the spritefont which resx files to use. Open the **.spritefont** with a xml/text editor and add lines like this inside the Asset node:

```xml
<ResourceFiles>
  <Resx>..\Foo.resx</Resx>
  <Resx>..\Foo.de-DE.resx</Resx>
</ResourceFiles>
```

> Note the paths are relative to the .spritefont directory. In the example above the resx files are in the directory above the .spritefont.

You should end up with a .spritefont file like this

```xml
<?xml version="1.0" encoding="utf-8"?>
<XnaContent xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics">
  <Asset Type="Graphics:FontDescription">
    <FontName>Verdana</FontName>
    <Size>14</Size>
    <Spacing>1</Spacing>
    <Style>Regular</Style>
    <CharacterRegions>
      <CharacterRegion>
        <Start>&#32;</Start>
        <End>&#32;</End>
      </CharacterRegion>
    </CharacterRegions>
    <ResourceFiles>
      <Resx>..\Foo.resx</Resx>
      <Resx>..\Foo.de-DE.resx</Resx>
    </ResourceFiles>
  </Asset>
</XnaContent>
```

Once that is done you then need to change the **.mgcb file** so that the **SpriteFontProcessor** is replaced with the **LocalizedFontProcessor**. This can be done by editing the .mgcb file or using the MGCB Editor. After that you can just compile your content as normal. If the processor has any trouble resolving or reading the
resx files you will get an error.

## Loading the Font

Loading the font can be done in the normal way. The end result of the process is an .xnb file containing a normal SpriteFont.

```csharp
var font = Content.Load<SpriteFont>("Foo");
```

### Other Localized assets

Not all localized assets will be fonts. In certain situations you might need to swap out an entire textures or spritesheets.
For these cases a new method has been added to the ContentManager, **LoadLocalized**. The idea behind this method is that it will look for localized files **BEFORE** loading the default one.

So for example say you have an asset, MyCharacter. You have a MyCharacter.xnb file which contains the data for that item. You can also has a MyCharacter.de-DE.xnb file which contains the German version of that asset. This asset could be a Texture, Audio or any other game asset. You can then use LoadLocalized to load the localized version of the asset.

```csharp
var myCharacter = Content.LoadLocalized<Texture2D>("MyCharacter");
```

The decision on which localized asset to load is made by looking for a file with the following patterns

```xml
<AssetName>.<CurrentCulture.Name>
<AssetName>.<CurrentCulture.TwoLetterISOLanguageName>
```

These values are retrieved from

```csharp
CultureInfo.CurrentCulture.Name                         // eg. "en-US"
CultureInfo.CurrentCulture.TwoLetterISOLanguageName     // eg. "en"
```

which are part of the **System.Globalization namespace**. 

> On a side note you can also use the `LoadLocalized` to load language specific SpriteFonts. They just need to be named in the same way as we have described above.


================================================
FILE: Documentation/articles/content/toc.yml
================================================
- name: Why use the Content Pipeline
  href: why_content_pipeline.md
- name: Using MGCB Editor
  href: using_mgcb_editor.md
- name: Custom Effects
  href: custom_effects.md
- name: TrueType fonts
  href: adding_ttf_fonts.md
- name: Localization
  href: localization.md


================================================
FILE: Documentation/articles/content/using_mgcb_editor.md
================================================
# Using MGCB Editor

The [MGCB Editor](~/articles/tools/mgcb_editor.md) is used to organize and build content for use with MonoGame. It is accessed by double-clicking a "**.mgcb**" file from within the Visual Studio solution explorer (providing that you installed [MonoGame's Visual Studio extension](/Documentation/articles/getting_started/1_setting_up_your_development_environment_windows.md)).

Alternatively, you can build it [directly from source](https://github.com/MonoGame/MonoGame/tree/develop/Tools/MonoGame.Content.Builder.Editor) if needed.

## Create A Project

To start a new project just select “New...” from the “File” menu.

![MGCB Editor new project](~/images/content/mgcb_new.png)

This will give you a new empty project to add content to.

## Importing an XNA (.contentproj) content project

If you are starting from an existing XNA project, the MGCB Editor supports importing your existing **.contentproj**. Again you can access this from the “**File**” menu:

![MGCB Editor import XNA](~/images/content/mgcb_import.png)

This creates a new project, adding all your content and content settings from the XNA project. If you happened to be using custom processors, you may need to edit the assembly references to link to the correct paths which we discuss next.

## Project Settings

You can edit the content project settings directly from the property grid editor after selecting the project node in the tree view:

![Project settings](~/images/content/mgcb_project.png)

This is where you set up the folders for output, the platform to target, the assembly references for custom processors, etc.

> Note that currently, the MGCB Editor is not set up to support multiple target platforms. This means you may need to manage multiple content projects or manually change the target platform between builds. If you are using `MonoGame.Content.Builder.Task` to build content as part of building your project, the correct platform will automatically be targeted.

## Adding Content Items

Once you have a project set up you can add content to it for building. You can do this from the “**Edit**” menu:

![Edit menu](~/images/content/mgcb_addexisting.png)

Selecting “**New Item...**” will bring up the New Item dialog which displays a list of new items that can be created:

![New item](~/images/content/mgcb_newitem.png)

When you select “**Existing Item...**”, you can select an existing item from disk to add to the content project.

## Built-in Content Importers and Processors

MonoGame provides default **Importers** (File Read) and **Processors** (File Transform) methods for handling almost all standard content which is automatically selected for known content types. In most cases, you do not need to alter these settings when adding content. The lists below highlight the default configuration options for each file type.

> If you wish to create your own Importers and Processors for custom file types, please see the "[Custom Content Processors](#custom-content-processors)" section.

## File Types

The MonoGame Content Builder (MGCB) pipeline supports many different file types within a content project, along with several default processing options for those files:

### Images

![Image Properties](~/images/content/MGCB-ImageProperties.png)

Images come in a variety of formats such as png or jpg, most of which are natively supported by the MonoGame content pipeline.

Additionally, the following options are configurable per image asset when imported:

| Property           | Description                                                                                                                                   |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| ColorKeyColor      | Background color used for transparency                                                                                                        |
| ColorKeyEnabled    | If enabled, any colors identified using the Color Key will be marked as transparent (Alpha 0). The default value is **false**                 |
| GenerateMipmaps    | If enabled, this will generate MipMaps for the selected texture. The default value is **false**                                               |
| MakeSquare         | if enabled this will make best efforts to expand the image to a square. The default value is **false**                                        |
| PremultiplyAlpha   | If enabled this will treat the selected texture as an Alpha Mask. The default value is **false**                                              |
| ResizeToPowerOfTwo | If enabled this will resize the image dimensions to the next largest power of 2 size, e.g. 128x128 or 512x512. The default value is **false** |
| TextureFormat      | Selected format of the Texture to process, e.g. raw Color, DXT. The default value is **color**                                                |

### Audio

![Image Properties](~/images/content/MGCB-AudioProperties.png)

MonoGame supports several audio formats to cope with a wide variety of audio needs, from Wav files for effects to MP3's for songs/background music. The type of audio you use will depend on the audio needs for your project.

Audio can be configured to use either the **Sound Effect** processor which imports audio as a [SoundEffect](xref:Microsoft.Xna.Framework.Audio.SoundEffect) which is generally used for short and quick audio sounds. Alternatively, by selecting the **Song** processor, the audio will be imported as a **Song** which is used for long-running audio using the Media Player class.

| Property  | Description                                                                                                                                                            |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| DebugMode | Depending on the setting, this will either leave the audio uncompressed (for speed) when debugging or optimized for a production build. The default value is **false** |
| Quality   | The quality of compression to be used when compiling the asset. The default value is **best**                                                                          |

### Models

![Image Properties](~/images/content/MGCB-ModelProperties.png)

| Property                   | Description                                                                                                                                             |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ColorKeyColor              | Background color used for transparency                                                                                                                  |
| ColorKeyEnabled            | If enabled, any colors identified using the Color Key will be marked as transparent (Alpha 0). The default value is **false**                           |
| DefaultEffect              | The default effect class to apply to this model. The default value is **BasicEffect**                                                                   |
| GenerateMipmaps            | If enabled, this will generate MipMaps for the selected texture. The default value is **false**                                                         |
| GenerateTangentFrames      | Generate model tangents for use in Normal Mapping. The default value is **false**                                                                       |
| PremultiplyTextureAlpha    | If enabled this will treat the selected texture as an Alpha Mask. The default value is **false**                                                        |
| PremultiplyVertexColors    | If enabled this will treat the selected texture as a Vertex Color Mask. The default value is **false**                                                  |
| ResizeTexturesToPowerOfTwo | If enabled this will resize the models texture(s) dimensions to the next largest power of 2 size, e.g. 128x128 or 512x512                               |
| RotationX                  | Default model X Axis Rotation–Number, in degrees of rotation. The default value is **0**                                                                |
| RotationY                  | Default model Y Axis Rotation–Number, in degrees of rotation. The default value is **0**                                                                |
| RotationZ                  | Default model Z Axis Rotation–Number, in degrees of rotation. The default value is **0**                                                                |
| Scale                      | Default model scale. The default value is **1.0f**                                                                                                      |
| SwapWindingOrder           | Boolean value indicating if the winding order is swapped. This is useful for models that appear to be drawn inside out. The default value is **false**. |
| TextureFormat              | Selected format of the Texture to process, e.g. raw Color, DXT. The default value is **compressed**                                                     |

### [Fonts](adding_ttf_fonts.md)

![Font Properties](~/images/content/MGCB-Fontproperties.png)

MonoGame uses a **Font descriptor** file to describe the type of font to import, the font in question needs to be installed in the machines Font library for it to enable the project to build, else this will result in a Font importer error.

> It is recommended you keep a copy of the Font file in the content folder for reference to avoid issues with missing Fonts, that way any developer on the project can re-add the Font to their machine when needed.

| Property         | Description                                                                                                    |
| ---------------- | -------------------------------------------------------------------------------------------------------------- |
| PremultiplyAlpha | If enabled this will treat the font texture that is generated as an Alpha Mask. The default value is **false** |
| TextureFormat    | Selected format of the font Texture to process, e.g. raw Color, DXT. The default value is **compressed**       |

See the [TrueType fonts](adding_ttf_fonts.md) section for more detail on working with Fonts. Additionally, check out the [Localization](localization.md) section for details on working with managing translated text within your project using [resx](https://msdn.microsoft.com/en-us/library/aa992030(v=vs.100).aspx) files.

### [Effects](custom_effects.md)

![Effect Properties](~/images/content/MGCB-EffectProperties.png)

Effects in MonoGame are shaders that have been built with a supported shader language (HLSL / GLSL) which will then be pre-processed into a common shader language / effect used by MonoGame.

| Property  | Description                                                                                                                                                            |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| DebugMode | Depending on the setting, this will either leave the audio uncompressed (for speed) when debugging, or optimise for a production build. The default value is **false** |
| Defines   | Custom compiler defines to enable specific code paths (#if) in the shader file, if appropriate. The default value is **empty**                                         |

See the [Effects](custom_effects.md) section for more detail on the built-in effects with MonoGame and how to generate your own custom effects.

### Video

![Image Properties](~/images/content/MGCB-VideoProperties.png)

MonoGame uses a custom video player which converts video files into a format that can be used and rendered by MonoGame using a series of VideoTextures.

There are no configurable properties for the Video Player currently.

### Text (e.g. XML)

![Image Properties](~/images/content/MGCB-TextProperties.png)

One of the most powerful processors in MonoGame is the text processor, ideally used for XML files used to manage Game Class content in text files rather than writing it all in code.

So long as the XML file conforms to the MonoGame (XNA) standard, it will generate data within the game for use in the solution.

For an example on how to use XML in your MonoGame project, [check out this article](https://dzone.com/articles/getting-started-with-monogame-using-xml).

## Custom Content Processors

Just like XNA, the MonoGame content pipeline supports custom content processors. To use them you need to rebuild them correctly to work against MonoGame.

The first step is removing all `Microsoft.Xna.Framework.XXX` references and replacing them with references to `MonoGame.Framework` and `MonoGame.Framework.Content.Pipeline`. This is required as you will no longer be building against Microsoft XNA.

Once your references are working, you then need to change your assembly target platform. MonoGame does not support x86 (aka 32bit) assemblies in the content pipeline. This is mainly to allow of processing really big content as well as to simplify the number of configurations and native code dependencies. For this reason, you should try to target “Any CPU” with your custom content assembly.

After you have done these fixes, you should be able to add these new processors to the content project “References”.

## Building Content

The MGCB Editor has 3 actions related to building content: Build, Rebuild and Clean:

- **Build** - This will build all content that needs to be built and put it in the output directory (bin by default). Content will be skipped if it has not changed since the last build. The time source content was last edited is saved in the intermediate directory (obj by default) to determine if content changed since the last build.
- **Rebuild** - Cleans the project first and then Builds it again.
- **Clean** - Cleaning the project will empty the output and intermediate directories.

## Linking Content To Your Game

Once you have built your content, you have a few different ways to add it to your game project. They all have the same goal, to get the built XNB's in your project output folder so a [`ContentManager`](xref:Microsoft.Xna.Framework.Content.ContentManager) can easily find and load them.

### KniContentReference

The simplest method is to set up your game project from one of the templates that come with the SDK. When you create a new project, it will include a Content.mgcb file with its Build Action set to **KniContentReference** and a reference to `MonoGame.Content.Builder.Task` which processes *KniContentReference* items.

![MonoGame Content Reference](~/images/content/MGCB-ContentReference.png)

> This build action is defined in the .targets file [here](https://github.com/MonoGame/MonoGame/blob/develop/Tools/MonoGame.Content.Builder.Task/MonoGame.Content.Builder.Task.targets).

The **KniContentReference** is set up so that when the project is built, the MGCB will automatically build any new/modified content and copy the resulting XNB's to the project output directory, so they can be used in the project. This way you do not even have to manually build the content with the MGCB Editor.

Just add your content to the .mgcb with the MGCB Editor and the rest will happen when you build your project. The content files do not need to be added to your project.

### Manual Copy

If you do not want to use the automated process, you can build the content project with the MGCB Editor and copy the XNB's to the output folder of your project manually.

### Add As Content

If you are using Visual Studio, you can bypass the content pipeline all together and simply the files to your C# game project directly (or as links). Create a folder in the project called Content then right-click on the folder and select Add > Existing Item.

![Add existing item](~/images/content/existing_item.png)

You will now see a file dialog from which you can add your content files. 

> Note that if you do not want Visual Studio to make a local copy of the files. Make sure to use “**Add As Link**” when “Linking” files.
> 
> ![Add as link](~/images/content/add_as_link.png)

Once the files are added you will need to select them all and change their properties in the properties window to:

* "Build Action" to **Content**
* "Copy to Output Directory" to **Copy if newer**

![Copy if newer](~/images/content/copy_if_newer.png)

### Add With Wildcard

The more automatic option is to edit your game .csproj manually and have it include you content automatically using wildcards.

To do this just open the .csproj with any text editor, then add the following after any other `**<ItemGroup>**`:

```xml
<ItemGroup>
  <Content Include="Content\**\*.xnb">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </Content>
</ItemGroup>
```

Then any files you put in a Content folder within your game project will automatically be included in the build.

## Reporting Bugs

If you run into any problems with MGCB or the MGCB Editor, please ask for help on the [community site](http://community.monogame.net/) or submit a [bug report on GitHub](https://github.com/MonoGame/MonoGame/issues).


================================================
FILE: Documentation/articles/content/why_content_pipeline.md
================================================
# Why use the Content Pipeline

The MonoGame team continues to put a lot of effort into a cross-platform content pipeline, but would you use the Content Pipeline when MonoGame also supports loading assets natively, like .png, .mp3, .wav? Well, it all boils down to a couple of words, performance and efficiency.

## Textures

Most image formats (like PNGs) are generally not optimized for games, most GPUs have specific hardware supported compressed formats for textures. PNGs or JPEGs just get uncompressed when passed to the GPU. By using the hardware compression you often get 4x to 8x more textures space for your game as well as faster load times and smaller packages.

When we load the .png from storage at runtime, the texture is then loaded into memory and decompressed/unpacked from its compressed png format into raw bytes.

> Note that 262 KB  is quite a bit bigger than the compressed size.

A new texture is then created for that data because your device cannot decompress on the fly (yet) so it has to use that data as is. Creating the texture uses 262kb of graphics memory on the GPU. That does not sound too bad, but if you are using larger textures say 1024×1024, then you are using 4 MB or more of GPU memory for that one texture. Multiply that over the number of textures in your game and you soon run out of texture memory on the GPU. If this happens then the GPU has to swap that data out into system memory (if it supports that) or throw an error when you try to create textures that will not fit into available memory.

> So to sum up:
>
> using **.pngs** = smaller package size & higher memory usage & less textures

If you pre-process the texture using the content pipeline, because we know that we are targeting iOS and we know the GPU on those devices support using PVRTC texture compression, we can compress the textures ready for the GPU to use. So we take our sample .png and compress it at build time using PVRTC and we end up with a 32kb file (size depends on the texture, alpha channel, etc). Hmm, that is a lot bigger than the .png on disk, but that is not the whole story. The difference here is that there is no need to unpack/decompress it at runtime which saves on load time, also, we can create a texture from that data directly so we only use 32kb of texture memory on the GPU and not 262kb. That is a massive saving.

> Summing up:
>
> **compressed textures** = larger package size (maybe) & lower runtime memory usage & more textures

This applies to all platforms as most desktop GPUs support DXT texture compression, so the content pipeline will produce DXT compressed textures which can be loaded and used directly. The Android platform currently does not have consistent support for compressed textures at the moment so MonoGame has to decompress DXT textures on the device and use it directly, when this changes MonoGame will adapt.

In the Content Pipeline tool, MonoGame will automatically pick the correct texture format to use, so for opaque textures, it will use ETC1 (which is supported on all android devices but does not support alpha channels) but for textures with an alpha channel, it will use RGBA4444 (dithered). It will also allow the user to override this default and enable picking from a wide variety of compression options manually such as PVRTC, ATITC, DXT/S3TC, ETC1, and RGBA4444. This will give the developer the choice of what to use/support.

## Audio

All platforms support different audio formats, if you are handling this yourself you will need to manually convert all your files and include the right formats for each platform. A better option would be to keep one source file (be it .mp3, .wmv, etc) and then convert it to a supported format for the target platform at build time. This creates longer build times, but at least we know the music will work. MonoGame uses ffmpeg to do the heavy lifting when converting between formats as it can pretty much convert any type to any other type which is really cool.

> The build times are only for the first time the asset is processed, the Content Pipeline will preserve the generated content for subsequent builds until the source is changed

Most platforms have audio processing that is optimized to certain compressed formats. By not using them you loose performance and system memory.  If you save the sound effects as ADPCM, these run pretty optimally on Windows systems. The problem however, is that once you try to take your game to another platform where ACPCM is not optimal. You will need to manually re-export all your game content into the new optimal format for that platform (assuming you kept all your original content uncompressed)

## Shaders

There are a number of shading languages that you can use depending on the platform you are targeting:

- For OpenGL based systems that is GLSL
- For DirectX based systems it is HLSL
- There is also CG from Nvidia.

The Effect system in XNA/MonoGame was designed around the HLSL language as it is based around the .fx format, which allows a developer to write both vertex and pixel shaders in one place. Historically both GLSL and HLSL have separate vertex and pixel shaders.  HLSL until recently compiled and linked these at build time, however, GLSL does this at runtime.

Without a content pipeline or some form of tooling a developer would need to write two shaders, one for HLSL and one for GLSL. The good news is the MonoGame KNIFXC.exe tool can create a shader in .fx format and also enable it to work in GLSL. It does this by using an open-source library called libMojoShader, which does some funky HLSL to GLSL instruction conversion to create an OpenGL-based shader, but rather than doing that at runtime, we do it at build time so we do not need to deploy mojoshader with the OpenGL based games. All this saves you the hassle of having to write and maintain two shaders.

## Models

MonoGame, thanks to the excellent assimp project, supports a much wider range of models including .x, .fbx and .3ds. However, some of these formats might produce some weirdness at render time as only .fbx has been fully tested. Also note that assimp does not support the older version .fbx format which ships with most of the original XNA samples, so you will need to [convert those to the new format manually](https://www.codeproject.com/articles/1041397/updating-old-fbx-files-for-the-modern-era).

> A nice trick to upgrade the old .fbx is to open them in Visual Studio 2012+ and then save it again under a new name. [This article](https://www.codeproject.com/articles/1041397/updating-old-fbx-files-for-the-modern-era) walks through some of the quick, easy, and FREE methods for updating older .fbx files.

When the MonoGame content pipeline processes a Model file, it is converted into an optimized internal format that will contain the Vertices, Texture Coordinates, and Normals. The pipeline will also pull out the textures used in the model and put those through the pipeline too, so you get optimized textures automatically.

## Summary

This is why using the content pipeline and XNB's is superior. You feed uncompressed source content to the MonoGame content pipeline, tell it what platform you are building for and it takes care of converting it to the most optimal format for that platform. When you decide to ship to another platform it is a one-click change to rebuild your content optimized for that platform.

Hopefully, you have a good idea of why you should use the content pipeline in your games. Using the raw assets is ok when you are putting together a simple demo or proof of concept but sooner or later you will need to start optimizing your content. My advice would be to use the Pipeline tooling from the outset so you get used to it.

Information on the [Pipeline tool](~/articles/tools/mgcb_editor.md) can be found here.


================================================
FILE: Documentation/articles/getting_started/0_getting_started.md
================================================
# Getting Started

This section walks you through the basics of MonoGame, and helps you to create your first game.

First, select the operating system and toolset you will be working with to create your first MonoGame project, then continue reading to understand the basic layout of a MonoGame project.

By the end of this tutorial set, you will have a working project to build for your target platform and will be ready to tackle your next steps.

## 1. Setting up your development environment

- [Windows](1_setting_up_your_development_environment_windows.md)
- [macOS](1_setting_up_your_development_environment_macos.md)
- [Linux](1_setting_up_your_development_environment_ubuntu.md)

## 2. Creating a new project

- With [Visual Studio 2022](2_creating_a_new_project_vs.md)
- With [Visual Studio 2022 for Mac](2_creating_a_new_project_vsm.md)
- With [the .NET command line interface](2_creating_a_new_project_netcore.md) (compatible with JetBrains Rider and Visual Studio Code)

## 3. Building your game

- [Understanding the Code](3_understanding_the_code.md)
- [Adding Content](4_adding_content.md)
- [Adding Basic Code](5_adding_basic_code.md)


================================================
FILE: Documentation/articles/getting_started/1_setting_up_your_development_environment_macos.md
================================================
# Setting up your development environment for macOS

This section provides a step-by-step guide for setting up your development environment on macOS.

MonoGame can work with most .NET compatible tools, but we recommend [Visual Studio 2022 for Mac](https://visualstudio.microsoft.com/vs/mac/) (prior versions are not supported).

Alternatively, you can use [JetBrains Rider](https://www.jetbrains.com/rider/) or [Visual Studio Code](https://code.visualstudio.com/).

## Install Visual Studio for Mac

Go to the following URL to download and install Visual Studio 2022 for Mac: https://visualstudio.microsoft.com/vs/mac/

### Install MonoGame extension for Visual Studio for Mac

Download the MonoGame extension for Visual Studio 2022 for Mac from the following link: https://github.com/MonoGame/MonoGame/releases/tag/v3.8.1

Open up Visual Studio 2022 for Mac and you should be able to see a window as shown below:

![VS for Mac installer](~/images/getting_started/vsmac-mg-install-1.png)

In the menu bar, click on **Visual Studio**, and then click on the **Extensions...** menu item.

![Launch Extensions manager](~/images/getting_started/vsmac-mg-install-2.png)

Next, click on the **Install from file...** button in the bottom left and select the extension file you downloaded in the previous step.

![Import VSM extension](~/images/getting_started/vsmac-mg-install-3.png)

Finally, click on the Install button once again.

![Install VSM extension](~/images/getting_started/vsmac-mg-install-4.png)

## [Optional] Set up Wine for effect compilation

Effect (shader) compilation requires access to DirectX, so it will not work natively on macOS systems, but it can be used through Wine. Here are instructions to get this working.

Install brew

```sh
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
```

Install wine64:

```sh
brew install xquartz
brew install wine-stable
brew install p7zip wget
```

Before wine is usable, you will need to open it manually first - otherwise, you will get an error that Apple couldn't verify it.

 - Open Finder
 - Navigate to Applications
 - Control+Click on Wine Stable
 - Choose to open it

If you choose, you may close it now - it has been unblocked.

Create wine prefix:

```sh
wget -qO- https://raw.githubusercontent.com/MonoGame/MonoGame/master/Tools/MonoGame.Effect.Compiler/mgfxc_wine_setup.sh | bash
```

If you ever need to undo the script, simply delete the `.winemonogame` folder in your home directory.

**Next up:** [Creating a new project](2_creating_a_new_project_vsm.md)

## [Alternative] Install the .NET 6 SDK (compatible with JetBrains Rider and Visual Studio Code)

If you prefer to use JetBrains Rider or Visual Studio Code, after installing any of them you will need to [install the .NET 6 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/6.0).

Once the .NET 6 SDK is installed, you can open a terminal and install the MonoGame templates by typing the following command:

```sh
dotnet new --install MonoGame.Templates.CSharp
```

**Next up:** [Creating a new project](2_creating_a_new_project_vsm.md)


================================================
FILE: Documentation/articles/getting_started/1_setting_up_your_development_environment_ubuntu.md
================================================
# Setting up your development environment for Linux

This section provides a step-by-step guide for setting up your development environment on Linux.

The only development environment that MonoGame officially supports on Linux is [Visual Studio Code](https://code.visualstudio.com/).

## Install .NET 6 SDK

To install the .NET 6 SDK on your Linux distribution, please follow [Microsoft's instructions](https://docs.microsoft.com/dotnet/core/install/linux).

## Install Visual Studio Code

To install Visual Studio on your Linux distribution, please follow [Microsoft's instructions](https://code.visualstudio.com/docs/setup/linux).

## Install Visual Studio Code C# extension:

In order to code and build C# projects, you will also need to install a Visual Studio Code C# extension. You can do this with the following command within the Visual Studio Code command line interface:

```sh
code --install-extension ms-dotnettools.csharp
```
> Or alternatively, select the "Extensions" tab on the left hand side in VSCOde and search for the C# Extension published by Microsoft.

## Install MonoGame templates

The following command will install templates for the .NET CLI and Rider IDE. 

> There is no template support for MonoDevelop.

```sh
dotnet new --install MonoGame.Templates.CSharp
```

## [Optional] Set up Wine for effect compilation

Effect (shader) compilation requires access to DirectX, so it will not work natively on Linux systems, but it can be used through Wine. Here are instructions to get this working (providing that your distribution is using apt).

Install wine64:

```sh
sudo apt install wine64 p7zip-full curl
```

Create wine prefix:

```sh
wget -qO- https://raw.githubusercontent.com/MonoGame/MonoGame/master/Tools/MonoGame.Effect.Compiler/mgfxc_wine_setup.sh | bash
```

If you ever need to undo the script, simply delete the `.winemonogame` folder in your home directory.

**Next up:** [Creating a new project](2_creating_a_new_project_netcore.md)


================================================
FILE: Documentation/articles/getting_started/1_setting_up_your_development_environment_windows.md
================================================
# Setting up your development environment for Windows

This section provides a step-by-step guide for setting up your development environment on Windows.

MonoGame can work with most .NET compatible tools, but we recommend [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) (prior versions are not supported with MonoGame 3.8.1).

Alternatively, you can use [JetBrains Rider](https://www.jetbrains.com/rider/) or [Visual Studio Code](https://code.visualstudio.com/).

## [Recommended] Install Visual Studio 2022

Before using MonoGame, you will need to install [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) or later (any edition, including Community) with the following workloads, depending on your desired [target platform(s)](~/platforms.md):

* .NET desktop development (mandatory for all platforms)
* Mobile Development with .NET (optional, if you wish to target Android, iOS, or iPadOS)
* Universal Windows Platform development (optional, if you wish to build for the Windows Store, or Xbox)

![Visual Studio optional components](~/images/getting_started/1_installer_vs_components.png)

If you are targeting the standard Windows DirectX backend, you will also need [the DirectX June 2010 runtime](https://www.microsoft.com/en-us/download/details.aspx?id=8109) for audio and gamepads to work properly.

### Install MonoGame extension for Visual Studio 2022

To create new projects from within Visual Studio 2022, you will need to install the MonoGame extension, which can be installed from "*Extensions -> Manage Extensions*" in the Visual Studio 2022 menu bar.

![Visual Studio Extension Manager](~/images/getting_started/1_VisualStudioExtensionManager.png)

Once it is open, simply search for **MonoGame** in the top right search window, as shown above, and install the "MonoGame Framework C# project templates" (make sure that it is version 3.8.1 or above).  You now have the MonoGame templates installed, ready to create new projects.

**Next up:** [Creating a new project](2_creating_a_new_project_vs.md)

## [Alternative] Install the .NET 6 SDK (compatible with JetBrains Rider and Visual Studio Code)

If you prefer to use JetBrains Rider or Visual Studio Code, and after installing any of them, you will also need to [install the .NET 6 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/6.0).

Once the .NET 6 SDK is installed, you can open a Command Prompt and install the MonoGame templates by typing the following command:

```sh
dotnet new --install MonoGame.Templates.CSharp
```

**Next up:** [Creating a new project](2_creating_a_new_project_vs.md)


================================================
FILE: Documentation/articles/getting_started/2_creating_a_new_project_netcore.md
================================================
# .NET CLI (JetBrains Rider or Visual Studio Code)

This guide will walk you through building a starter game with MonoGame using only the command line/terminal on your operating system and a lightweight coding tool of your choice (such as [Visual Studio Code](https://code.visualstudio.com/) or [JetBrains Rider](https://www.jetbrains.com/rider/)).

> It is assumed that you have already properly installed the .NET 6 SDK and MonoGame.

> Be aware that for iOS/iPadOS, and Android, development might be limited when using the .NET CLI. Many of the development features for those targets are exclusive to Visual Studio 2022.

## Create a MonoGame Project

You can now create new MonoGame projects. To do that:

- Create a new directory for your project.

- Open a new terminal window or command prompt and navigate to your project directory.

- Run `dotnet new <TemplateID> -o <ProjectName>` to create your project, where `<TemplateID>` is a platform identifier, and `<ProjectName>` the name of your project.

For example:

```
dotnet new mgdesktopgl -o MyGame
```

> To know which platform identifier (short name) to use for your project, please refer to [Target Platforms](~/articles/platforms.md), or type the following command into the command prompt to list the installed templates and their corresponding short names:
> 
> ```
> dotnet new -l
> ```

Once created, you can open your code editor of choice in the new folder and begin editing.

> To run your project, check the instructions for [packaging your game](~/articles/packaging_games.md) to build the executable using the .NET tooling.

**Next up:** [Understanding the code](3_understanding_the_code.md)


================================================
FILE: Documentation/articles/getting_started/2_creating_a_new_project_vs.md
================================================
# Creating a Project with Visual Studio 2022

This guide will walk you through building a starter game with MonoGame using Windows and Visual Studio 2022. 

> It is assumed that you have already properly installed Visual Studio 2022 and MonoGame.

Start Visual Studio 2022 and select **New Project...** in the upper left corner.

![New Solution](~/images/getting_started/vswin-mg-new-1.png)

You should see the "Create a new project" dialog pop up. From here, select the **Templates > Visual C# > MonoGame** category, and then select **MonoGame Cross Platform Desktop Project**.

![New Template](~/images/getting_started/vswin-mg-new-2.png)

Next, type in a name for your project. For this tutorial, **Pong** will be used (note: project names cannot contain spaces). After you have entered the name, click on the **...** button next to the Location text field and choose the folder you want to save the project in. Finally, click **OK** to create the project.

![Project Name](~/images/getting_started/vswin-mg-new-3.png)

If everything went correctly, you should see a project named **Pong** open up like in the picture below. To run your game, simply press the big **Play Button** in the toolbar, or press **F5**.

![Project Start](~/images/getting_started/vswin-mg-new-4.png)

You should now see your game window running.

![Game](~/images/getting_started/vswin-mg-new-5.png)

**Next up:** [Understanding the code](3_understanding_the_code.md)


================================================
FILE: Documentation/articles/getting_started/2_creating_a_new_project_vsm.md
================================================
# Creating a Project with Visual Studio for Mac

This guide will walk you through building a starter game with MonoGame using a Mac and Visual Studio for Mac. 

> It is assumed that you have already properly installed Visual Studio 2022 for Mac and MonoGame.

Start Visual Studio 2022 for Mac and select **New** on the right side.

![New Solution](~/images/getting_started/vsmac-mg-new-1.png)

Now you should see a "New Project" dialog pop up. From here, select the **MonoGame > App** category, then select **MonoGame Cross Platform Desktop Project** and click **Next**.

![New Template](~/images/getting_started/vsmac-mg-new-2.png)

On the following dialog, type in a name for your project. For this tutorial, **Pong** will be used (note: project names cannot contain spaces). After you have entered the name, click on the **Browse** button next to the Location text field and choose the folder you want to save the project in. Finally, click **Create** to create a new project.

![Project Name](~/images/getting_started/vsmac-mg-new-3.png)

If everything went correctly, you should see a project named **Pong** open up like in the picture below. To run your game, simply press the big **Play Button** in the upper left corner, or press **F5**.

![Project Start](~/images/getting_started/vsmac-mg-new-4.png)

You should now see your game window running.

![Game](~/images/getting_started/vsmac-mg-new-5.png)

**Next up:** [Understanding the Code](3_understanding_the_code.md)


================================================
FILE: Documentation/articles/getting_started/3_understanding_the_code.md
================================================
# Understanding the Code

This tutorial will go over the code that is generated when you start a blank project.

> For help with creating a project, please look at the Creating a New Project section of the [Getting Started guide](0_getting_started.md).

Within the **Game.cs** class file, which is the core of any MonoGame project, you will find several critical sections necessary for your game to run:

* **Using statements** - which provide easy access to the various components of MonoGame.

* The **Game Class** definition - the heart of any MonoGame project.

* The **Game constructor** and key variables - which tell the project how to start.

* The **Initialize** method - to initialize the game upon its startup.

* The **Load and Unload Content** methods - which are used to add and remove assets from the running game from the [Content project](4_adding_content.md).

* The **Update** method - which is called on a regular interval to update your game state, e.g. take player inputs, move ships, or animate entities.

* The **Draw** method - which is called on a regular interval to take the current game state and draw your game entities to the screen.

Read further for more details and examples while looking through the code of your new project.

---

## Using Statements

```csharp
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Storage;
using Microsoft.Xna.Framework.Input;
```

These using statements make it easier to use the code that MonoGame has to offer.

> They are prefixed with Microsoft.Xna.Framework because MonoGame is an open source re-implementation of Microsoft's XNA framework, and in order to maintain compatibility with the XNA code, it uses the same namespaces.

## The Game1 Class

```csharp
public class Game1 : Game
```

The main **Game1** class inherits from the **Game** class, which provides all the core methods for your game (ie. Load/Unload Content, Update, Draw etc.). You usually only have one Game class per game, so its name is not that important.

## Instance Variables

```csharp
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
```

The two default variables that the blank template starts with are the **GraphicsDeviceManager** and **SpriteBatch**. Both of these variables that are used for drawing to the screen, as you will see in a later tutorial.

## Constructor

```csharp
public Game1()
{
    graphics = new GraphicsDeviceManager(this);
    Content.RootDirectory = "Content";
}
```

The main game constructor is used to initialize the starting variables. In this case, a new **GraphicsDeviceManager** is created, and the root directory containing the game's content files is set.

## Initialize Method

```csharp
protected override void Initialize()
{
    // TODO: Add your initialization logic here

    base.Initialize();
}
```

The **Initialize** method is called after the constructor but before the main game loop (Update/Draw). This is where you can query any required services and load any non-graphic related content.

## LoadContent Method

```csharp
protected override void LoadContent()
{
    // Create a new SpriteBatch, which can be used to draw textures.
    spriteBatch = new SpriteBatch(GraphicsDevice);

    // TODO: use this.Content to load your game content here
}
```

The **LoadContent** method is used to load your game content. It is called only once per game, within the **Initialize** method, before the main game loop starts.

## Update Method

```csharp
protected override void Update(GameTime gameTime)
{
    if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
        Exit();

    // TODO: Add your update logic here

    base.Update(gameTime);
}
```

The **Update** method is called multiple times per second, and it is used to update your game state (checking for collisions, gathering input, playing audio, etc.).

## Draw Method

```csharp
protected override void Draw(GameTime gameTime)
{
    graphics.GraphicsDevice.Clear(Color.CornflowerBlue);

    // TODO: Add your drawing code here

    base.Draw(gameTime);
}
```

Similar to the Update method, the **Draw** method is also called multiple times per second.  This, as the name suggests, is responsible for drawing content to the screen.

**Next up:** [Adding Content](4_adding_content.md)


================================================
FILE: Documentation/articles/getting_started/4_adding_content.md
================================================
# Adding Content

This tutorial will go over adding content such as images or sounds to your game.

> For help with creating a project, please look at the [Creating a New Project](0_getting_started.md) section of the Getting Started guide.

## MonoGame Content Builder Tool (MGCB Editor)

This tutorial assumes that you are using Visual Studio 2022 with its MonoGame extension installed. If you are not using the extension, you will need to manually install and use the [MGCB Editor](~/articles/tools/mgcb_editor.md).

> This is technically optional, since you can edit the .mgcb files manually if you wish, but the editor is highly recommended for ease of use.

## Adding content

First, you will need some content for your game. For this tutorial, use the following image of a ball:

![Open Content](~/images/getting_started/ball.png)

Copy the image to your machine by using **right-click > Save Image As** and save it somewhere locally with the name “ball.png”.

Now open up your game project and look at the Solution Explorer window. Expand the **Content** folder and open up **Content.mgcb** file by double-clicking on it.

![Open Content](~/images/getting_started/3_open_content.png)

You should now see the MGCB Editor window open up. If a text file opens instead, then right-click on **Content.mgcb** and select **Open With**, then select **MGCB Editor** in the list, click **Set as Default** and then click **OK**, then try again.

> If you do not see the **MGCB Editor** option when you right-click and select **Open With**, then please review the [Tools documentation](~/articles/tools/tools.md) for installing the MGCB Editor tool for your operating system.

![MGCB Editor](~/images/getting_started/3_mgcb_editor_tool.png)

Your game content is managed from this external tool. You can add content to your game in one of the following ways:

- **Add Existing Item** toolbar button
- **Edit > Add > Existing Item...** menu button
- **right-click > Add > Existing Item...** context menu

Make sure the "Content" MGCB file is selected to the left, then click the **Add Existing Item** toolbar button.

![Add Content](~/images/getting_started/3_add_content.png)

You should now be prompted to select a file. Select the “**ball.png**” image that you downloaded a moment ago. Once you have confirmed your selection, you will be asked whether to copy the file, add a link to it, or skip it. Make sure "**Copy the file to the directory**" opti
Download .txt
gitextract_llhyw4pl/

├── .config/
│   └── dotnet-tools.json_
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   └── workflows/
│       ├── dotnet.yml
│       └── sponsors.yml
├── .gitignore
├── .gitmodules
├── BuildNuget.bat
├── CHANGELOG.md
├── CODESTYLE.md
├── CONTRIBUTING.md
├── Clean.bat
├── Documentation/
│   ├── articles/
│   │   ├── README.md
│   │   ├── content/
│   │   │   ├── adding_ttf_fonts.md
│   │   │   ├── content.md
│   │   │   ├── custom_effects.md
│   │   │   ├── localization.md
│   │   │   ├── toc.yml
│   │   │   ├── using_mgcb_editor.md
│   │   │   └── why_content_pipeline.md
│   │   ├── getting_started/
│   │   │   ├── 0_getting_started.md
│   │   │   ├── 1_setting_up_your_development_environment_macos.md
│   │   │   ├── 1_setting_up_your_development_environment_ubuntu.md
│   │   │   ├── 1_setting_up_your_development_environment_windows.md
│   │   │   ├── 2_creating_a_new_project_netcore.md
│   │   │   ├── 2_creating_a_new_project_vs.md
│   │   │   ├── 2_creating_a_new_project_vsm.md
│   │   │   ├── 3_understanding_the_code.md
│   │   │   ├── 4_adding_content.md
│   │   │   ├── 5_adding_basic_code.md
│   │   │   └── toc.yml
│   │   ├── help_and_support.md
│   │   ├── migrate_37.md
│   │   ├── migrate_38.md
│   │   ├── migrate_381.md
│   │   ├── migrate_3_10.md
│   │   ├── migrate_3_11.md
│   │   ├── migrate_3_12.md
│   │   ├── migrate_3_13.md
│   │   ├── migrate_3_14.md
│   │   ├── migrate_4_0.md
│   │   ├── migrate_4_1.md
│   │   ├── migrate_xna.md
│   │   ├── packaging_games.md
│   │   ├── platforms.md
│   │   ├── samples.md
│   │   ├── toc.yml
│   │   ├── tools/
│   │   │   ├── knifxc.md
│   │   │   ├── mgcb.md
│   │   │   ├── mgcb_editor.md
│   │   │   ├── toc.yml
│   │   │   └── tools.md
│   │   ├── tutorials.md
│   │   └── whats_new.md
│   ├── docfx.json
│   ├── index.md
│   ├── metadata.json
│   ├── theme/
│   │   ├── material/
│   │   │   ├── partials/
│   │   │   │   └── head.tmpl.partial
│   │   │   └── styles/
│   │   │       └── main.css
│   │   └── monogame/
│   │       ├── partials/
│   │       │   ├── head.tmpl.partial
│   │       │   └── navbar.tmpl.partial
│   │       └── styles/
│   │           └── monogame.css
│   └── toc.yml
├── ISSUE_TEMPLATE.md
├── Installers/
│   ├── Windows/
│   │   ├── KniSdkSetup.nsi
│   │   └── SponsorPage.ini
│   └── default.build
├── KNI.sln
├── Kni.Platform.Android.GL.Xamarin.sln
├── Kni.Platform.Android.GL.sln
├── Kni.Platform.Blazor.GL.sln
├── Kni.Platform.Cardboard.GL.sln
├── Kni.Platform.Oculus.GL.sln
├── Kni.Platform.Ref.sln
├── Kni.Platform.SDL2.GL.sln
├── Kni.Platform.UAP.DX11.sln
├── Kni.Platform.WinForms.DX11.sln
├── Kni.Platform.iOS.GL.sln
├── LICENSE.txt
├── MonoGame.Tools.Linux.sln
├── NuGetPackages/
│   ├── Content.Pipeline.Builder.Windows.nuspec
│   ├── Content.Pipeline.Builder.nuspec
│   ├── MonoGame.Framework.WindowsUniversal.nuspec
│   ├── MonoGame.Templates.nuspec1
│   ├── RegisterLocalNuget.bat
│   └── build/
│       └── Builder/
│           └── nkast.Xna.Framework.Content.Pipeline.Builder.targets
├── Platforms/
│   ├── AssemblyInfo.cs
│   ├── Audio/
│   │   ├── Android/
│   │   │   ├── ConcreteAudioFactory.cs
│   │   │   ├── ConcreteAudioServiceDroid.cs
│   │   │   └── ConcreteMicrophoneDroid.cs
│   │   ├── Blazor/
│   │   │   ├── AudioLoader.cs
│   │   │   ├── ConcreteAudioFactory.cs
│   │   │   ├── ConcreteAudioService.cs
│   │   │   ├── ConcreteDynamicSoundEffectInstance.cs
│   │   │   ├── ConcreteMicrophone.cs
│   │   │   ├── ConcreteSoundEffect.cs
│   │   │   └── ConcreteSoundEffectInstance.cs
│   │   ├── OpenAL/
│   │   │   ├── AudioLoader.cs
│   │   │   ├── ConcreteAudioFactory.cs
│   │   │   ├── ConcreteAudioService.cs
│   │   │   ├── ConcreteDynamicSoundEffectInstance.cs
│   │   │   ├── ConcreteMicrophone.cs
│   │   │   ├── ConcreteSoundEffect.cs
│   │   │   ├── ConcreteSoundEffectInstance.cs
│   │   │   └── OpenAL.cs
│   │   ├── Ref/
│   │   │   ├── ConcreteAudioFactory.cs
│   │   │   ├── ConcreteAudioService.cs
│   │   │   ├── ConcreteDynamicSoundEffectInstance.cs
│   │   │   ├── ConcreteMicrophone.cs
│   │   │   ├── ConcreteSoundEffect.cs
│   │   │   └── ConcreteSoundEffectInstance.cs
│   │   └── XAudio/
│   │       ├── ConcreteAudioFactory.cs
│   │       ├── ConcreteAudioService.cs
│   │       ├── ConcreteDynamicSoundEffectInstance.cs
│   │       ├── ConcreteMicrophone.cs
│   │       ├── ConcreteSoundEffect.cs
│   │       └── ConcreteSoundEffectInstance.cs
│   ├── Content/
│   │   ├── .Android/
│   │   │   ├── ConcreteTitleContainer.cs
│   │   │   └── ConcreteTitleContainerFactory.cs
│   │   ├── .Blazor/
│   │   │   ├── ConcreteTitleContainer.cs
│   │   │   └── ConcreteTitleContainerFactory.cs
│   │   ├── .Ref/
│   │   │   ├── ConcreteTitleContainer.cs
│   │   │   └── ConcreteTitleContainerFactory.cs
│   │   ├── .SDL2/
│   │   │   ├── ConcreteTitleContainer.cs
│   │   │   └── ConcreteTitleContainerFactory.cs
│   │   ├── .UAP/
│   │   │   ├── ConcreteTitleContainer.cs
│   │   │   └── ConcreteTitleContainerFactory.cs
│   │   ├── .WindowsDX11/
│   │   │   ├── ConcreteTitleContainer.cs
│   │   │   └── ConcreteTitleContainerFactory.cs
│   │   ├── .iOS/
│   │   │   ├── ConcreteTitleContainer.cs
│   │   │   └── ConcreteTitleContainerFactory.cs
│   │   └── .macOS/
│   │       ├── ConcreteTitleContainer.cs
│   │       └── ConcreteTitleContainerFactory.cs
│   ├── Devices/
│   │   ├── .Android/
│   │   │   ├── ConcreteDevicesFactory.cs
│   │   │   ├── ConcreteHaptics.cs
│   │   │   └── Sensors/
│   │   │       ├── ConcreteAccelerometer.cs
│   │   │       ├── ConcreteCompass.cs
│   │   │       ├── ConcreteSensorService.cs
│   │   │       └── SensorListener.cs
│   │   ├── .Blazor/
│   │   │   ├── ConcreteDevicesFactory.cs
│   │   │   ├── ConcreteHaptics.cs
│   │   │   └── Sensors/
│   │   │       ├── ConcreteAccelerometer.cs
│   │   │       ├── ConcreteCompass.cs
│   │   │       └── ConcreteSensorService.cs
│   │   ├── .Ref/
│   │   │   ├── ConcreteDevicesFactory.cs
│   │   │   ├── ConcreteHaptics.cs
│   │   │   └── Sensors/
│   │   │       ├── ConcreteAccelerometer.cs
│   │   │       ├── ConcreteCompass.cs
│   │   │       └── ConcreteSensorService.cs
│   │   ├── .SDL2/
│   │   │   ├── ConcreteDevicesFactory.cs
│   │   │   ├── ConcreteHaptics.cs
│   │   │   └── Sensors/
│   │   │       ├── ConcreteAccelerometer.cs
│   │   │       ├── ConcreteCompass.cs
│   │   │       └── ConcreteSensorService.cs
│   │   ├── .UAP/
│   │   │   ├── ConcreteDevicesFactory.cs
│   │   │   ├── ConcreteHaptics.cs
│   │   │   └── Sensors/
│   │   │       ├── ConcreteAccelerometer.cs
│   │   │       ├── ConcreteCompass.cs
│   │   │       └── ConcreteSensorService.cs
│   │   ├── .WindowsDX/
│   │   │   ├── ConcreteDevicesFactory.cs
│   │   │   ├── ConcreteHaptics.cs
│   │   │   └── Sensors/
│   │   │       ├── ConcreteAccelerometer.cs
│   │   │       ├── ConcreteCompass.cs
│   │   │       └── ConcreteSensorService.cs
│   │   └── .iOS/
│   │       ├── ConcreteDevicesFactory.cs
│   │       ├── ConcreteHaptics.cs
│   │       └── Sensors/
│   │           ├── ConcreteAccelerometer.cs
│   │           ├── ConcreteCompass.cs
│   │           └── ConcreteSensorService.cs
│   ├── Directory.Build.props
│   ├── Game/
│   │   ├── .Android/
│   │   │   ├── AndroidCompatibility.cs
│   │   │   ├── AndroidGameActivity.cs
│   │   │   ├── AndroidGameWindow.cs
│   │   │   ├── AndroidSurfaceView.cs
│   │   │   ├── ConcreteGame.cs
│   │   │   ├── ConcreteGameFactory.cs
│   │   │   ├── ConcreteGraphicsDeviceManager.cs
│   │   │   ├── ISurfaceView.cs
│   │   │   ├── OrientationListener.cs
│   │   │   ├── RunnableObject.cs
│   │   │   ├── ScreenReceiver.cs
│   │   │   └── TouchEventListener.cs
│   │   ├── .Blazor/
│   │   │   ├── BlazorGameWindow.cs
│   │   │   ├── ConcreteGame.cs
│   │   │   ├── ConcreteGameFactory.cs
│   │   │   └── ConcreteGraphicsDeviceManager.cs
│   │   ├── .CardboardLegacy/
│   │   │   ├── AndroidCompatibility.cs
│   │   │   ├── AndroidGameActivity.cs
│   │   │   ├── AndroidGameWindow.cs
│   │   │   ├── AndroidSurfaceView.cs
│   │   │   ├── ConcreteGame.cs
│   │   │   ├── ConcreteGameFactory.cs
│   │   │   └── ConcreteGraphicsDeviceManager.cs
│   │   ├── .Oculus/
│   │   │   └── AndroidCompatibility.cs
│   │   ├── .Ref/
│   │   │   ├── ConcreteGame.cs
│   │   │   ├── ConcreteGameFactory.cs
│   │   │   └── ConcreteGraphicsDeviceManager.cs
│   │   ├── .SDL2/
│   │   │   ├── ConcreteGame.cs
│   │   │   ├── ConcreteGameFactory.cs
│   │   │   ├── ConcreteGraphicsDeviceManager.cs
│   │   │   ├── SDL2.cs
│   │   │   └── SDLGameWindow.cs
│   │   ├── .UAP/
│   │   │   ├── ConcreteGame.cs
│   │   │   ├── ConcreteGameFactory.cs
│   │   │   ├── ConcreteGraphicsDeviceManager.cs
│   │   │   ├── GameFrameworkViewSource.cs
│   │   │   ├── InputEvents.cs
│   │   │   ├── UAPFrameworkView.cs
│   │   │   ├── UAPGameWindow.cs
│   │   │   └── XamlGame.cs
│   │   ├── .WindowsDX11/
│   │   │   ├── ConcreteGame.cs
│   │   │   ├── ConcreteGameFactory.cs
│   │   │   ├── ConcreteGraphicsDeviceManager.cs
│   │   │   ├── KeysHelper.cs
│   │   │   ├── TimerHelper.cs
│   │   │   ├── WinFormsGameForm.cs
│   │   │   └── WinFormsGameWindow.cs
│   │   └── .iOS/
│   │       ├── ConcreteGame.cs
│   │       ├── ConcreteGameFactory.cs
│   │       ├── ConcreteGraphicsDeviceManager.cs
│   │       ├── IPlatformBackButton.tvOS.cs
│   │       ├── OrientationConverter.cs
│   │       ├── iOSGameView.cs
│   │       ├── iOSGameViewController.cs
│   │       ├── iOSGameView_Touch.cs
│   │       └── iOSGameWindow.cs
│   ├── Graphics/
│   │   ├── .BlazorGL/
│   │   │   ├── ConcreteGraphicsAdapter.cs
│   │   │   ├── ConcreteGraphicsAdaptersProvider.cs
│   │   │   ├── ConcreteGraphicsCapabilities.cs
│   │   │   ├── ConcreteGraphicsContext.cs
│   │   │   ├── ConcreteGraphicsDebug.cs
│   │   │   ├── ConcreteGraphicsDevice.cs
│   │   │   ├── ConcreteGraphicsFactory.cs
│   │   │   ├── ConcreteOcclusionQuery.cs
│   │   │   ├── ConcreteRenderTarget2D.cs
│   │   │   ├── ConcreteRenderTarget3D.cs
│   │   │   ├── ConcreteRenderTargetCube.cs
│   │   │   ├── ConcreteSamplerStateCollection.cs
│   │   │   ├── ConcreteTexture.cs
│   │   │   ├── ConcreteTexture2D.Stream.cs
│   │   │   ├── ConcreteTexture2D.cs
│   │   │   ├── ConcreteTexture3D.cs
│   │   │   ├── ConcreteTextureCollection.cs
│   │   │   ├── ConcreteTextureCube.cs
│   │   │   ├── GLExtensions.cs
│   │   │   ├── IRenderTargetStrategyGL.cs
│   │   │   ├── Shader/
│   │   │   │   ├── ConcreteConstantBuffer.cs
│   │   │   │   ├── ConcreteConstantBufferCollection.cs
│   │   │   │   ├── ConcretePixelShader.cs
│   │   │   │   ├── ConcreteShader.cs
│   │   │   │   ├── ConcreteVertexShader.cs
│   │   │   │   └── ShaderProgram.cs
│   │   │   ├── States/
│   │   │   │   ├── ConcreteBlendState.cs
│   │   │   │   ├── ConcreteDepthStencilState.cs
│   │   │   │   ├── ConcreteRasterizerState.cs
│   │   │   │   └── ConcreteSamplerState.cs
│   │   │   └── Vertices/
│   │   │       ├── ConcreteDynamicIndexBuffer.cs
│   │   │       ├── ConcreteDynamicVertexBuffer.cs
│   │   │       ├── ConcreteIndexBuffer.cs
│   │   │       ├── ConcreteVertexBuffer.cs
│   │   │       └── VertexDeclarationAttributeInfo.cs
│   │   ├── .Common/
│   │   │   └── SpriteBatcher.cs
│   │   ├── .DX11/
│   │   │   ├── ConcreteGraphicsAdapter.cs
│   │   │   ├── ConcreteGraphicsAdaptersProvider.cs
│   │   │   ├── ConcreteGraphicsCapabilities.cs
│   │   │   ├── ConcreteGraphicsContext.cs
│   │   │   ├── ConcreteGraphicsDebug.cs
│   │   │   ├── ConcreteGraphicsDevice.cs
│   │   │   ├── ConcreteGraphicsFactory.cs
│   │   │   ├── ConcreteOcclusionQuery.cs
│   │   │   ├── ConcreteRenderTarget2D.cs
│   │   │   ├── ConcreteRenderTarget3D.cs
│   │   │   ├── ConcreteRenderTargetCube.cs
│   │   │   ├── ConcreteRenderTargetSwapChain.cs
│   │   │   ├── ConcreteSamplerStateCollection.cs
│   │   │   ├── ConcreteTexture.cs
│   │   │   ├── ConcreteTexture2D.Stream.cs
│   │   │   ├── ConcreteTexture2D.cs
│   │   │   ├── ConcreteTexture3D.cs
│   │   │   ├── ConcreteTextureCollection.cs
│   │   │   ├── ConcreteTextureCube.cs
│   │   │   ├── GraphicsSharpDXExtensions.cs
│   │   │   ├── IRenderTargetStrategyDX11.cs
│   │   │   ├── Shader/
│   │   │   │   ├── ConcreteConstantBuffer.cs
│   │   │   │   ├── ConcreteConstantBufferCollection.cs
│   │   │   │   ├── ConcretePixelShader.cs
│   │   │   │   ├── ConcreteShader.cs
│   │   │   │   └── ConcreteVertexShader.cs
│   │   │   ├── SharpDXExtensions.cs
│   │   │   ├── SpriteBatcher.cs
│   │   │   ├── States/
│   │   │   │   ├── ConcreteBlendState.cs
│   │   │   │   ├── ConcreteDepthStencilState.cs
│   │   │   │   ├── ConcreteRasterizerState.cs
│   │   │   │   └── ConcreteSamplerState.cs
│   │   │   └── Vertices/
│   │   │       ├── ConcreteDynamicIndexBuffer.cs
│   │   │       ├── ConcreteDynamicVertexBuffer.cs
│   │   │       ├── ConcreteIndexBuffer.cs
│   │   │       ├── ConcreteVertexBuffer.cs
│   │   │       ├── InputLayoutCache.cs
│   │   │       └── VertexInputLayoutKey.cs
│   │   ├── .GL/
│   │   │   ├── ConcreteGraphicsCapabilities.cs
│   │   │   ├── ConcreteGraphicsContext.cs
│   │   │   ├── ConcreteGraphicsDebug.cs
│   │   │   ├── ConcreteGraphicsDevice.cs
│   │   │   ├── ConcreteGraphicsFactory.cs
│   │   │   ├── ConcreteOcclusionQuery.cs
│   │   │   ├── ConcreteRenderTarget2D.cs
│   │   │   ├── ConcreteRenderTarget3D.cs
│   │   │   ├── ConcreteRenderTargetCube.cs
│   │   │   ├── ConcreteRenderTargetSwapChain.cs
│   │   │   ├── ConcreteSamplerStateCollection.cs
│   │   │   ├── ConcreteTexture.cs
│   │   │   ├── ConcreteTexture2D.Stream.cs
│   │   │   ├── ConcreteTexture2D.cs
│   │   │   ├── ConcreteTexture3D.cs
│   │   │   ├── ConcreteTextureCollection.cs
│   │   │   ├── ConcreteTextureCube.cs
│   │   │   ├── GLExtensions.cs
│   │   │   ├── GLVersion.cs
│   │   │   ├── IRenderTargetStrategyGL.cs
│   │   │   ├── OpenGL.Common.cs
│   │   │   ├── OpenGL.cs
│   │   │   ├── Shader/
│   │   │   │   ├── ConcreteConstantBuffer.cs
│   │   │   │   ├── ConcreteConstantBufferCollection.cs
│   │   │   │   ├── ConcretePixelShader.cs
│   │   │   │   ├── ConcreteShader.cs
│   │   │   │   ├── ConcreteVertexShader.cs
│   │   │   │   └── ShaderProgram.cs
│   │   │   ├── States/
│   │   │   │   ├── ConcreteBlendState.cs
│   │   │   │   ├── ConcreteDepthStencilState.cs
│   │   │   │   ├── ConcreteRasterizerState.cs
│   │   │   │   └── ConcreteSamplerState.cs
│   │   │   └── Vertices/
│   │   │       ├── ConcreteDynamicIndexBuffer.cs
│   │   │       ├── ConcreteDynamicVertexBuffer.cs
│   │   │       ├── ConcreteIndexBuffer.cs
│   │   │       ├── ConcreteVertexBuffer.cs
│   │   │       └── VertexDeclarationAttributeInfo.cs
│   │   ├── .GL.Android/
│   │   │   ├── ConcreteGraphicsAdapter.cs
│   │   │   ├── ConcreteGraphicsAdaptersProvider.cs
│   │   │   ├── ConcreteGraphicsContext.Android.cs
│   │   │   ├── ConcreteGraphicsDevice.Android.cs
│   │   │   ├── OpenGL.Android.cs
│   │   │   ├── SurfaceConfig.cs
│   │   │   └── Vertices/
│   │   │       ├── ConcreteIndexBuffer.cs
│   │   │       └── ConcreteVertexBuffer.cs
│   │   ├── .GL.SDL/
│   │   │   ├── ConcreteGraphicsAdapter.cs
│   │   │   ├── ConcreteGraphicsAdaptersProvider.cs
│   │   │   ├── ConcreteGraphicsContext.SDL.cs
│   │   │   ├── ConcreteGraphicsDevice.SDL.cs
│   │   │   ├── OpenGL.SDL.cs
│   │   │   └── Vertices/
│   │   │       ├── ConcreteIndexBuffer.cs
│   │   │       └── ConcreteVertexBuffer.cs
│   │   ├── .GL.iOS/
│   │   │   ├── ConcreteGraphicsAdapter.cs
│   │   │   ├── ConcreteGraphicsAdaptersProvider.cs
│   │   │   ├── ConcreteGraphicsContext.iOS.cs
│   │   │   ├── ConcreteGraphicsDevice.iOS.cs
│   │   │   ├── OpenGL.iOS.cs
│   │   │   └── Vertices/
│   │   │       ├── ConcreteIndexBuffer.cs
│   │   │       └── ConcreteVertexBuffer.cs
│   │   ├── .Ref/
│   │   │   ├── ConcreteGraphicsAdapter.cs
│   │   │   ├── ConcreteGraphicsAdaptersProvider.cs
│   │   │   ├── ConcreteGraphicsCapabilities.cs
│   │   │   ├── ConcreteGraphicsContext.cs
│   │   │   ├── ConcreteGraphicsDebug.cs
│   │   │   ├── ConcreteGraphicsDevice.cs
│   │   │   ├── ConcreteGraphicsFactory.cs
│   │   │   ├── ConcreteOcclusionQuery.cs
│   │   │   ├── ConcreteRenderTarget2D.cs
│   │   │   ├── ConcreteRenderTarget3D.cs
│   │   │   ├── ConcreteRenderTargetCube.cs
│   │   │   ├── ConcreteSamplerStateCollection.cs
│   │   │   ├── ConcreteTexture.cs
│   │   │   ├── ConcreteTexture2D.Stream.cs
│   │   │   ├── ConcreteTexture2D.cs
│   │   │   ├── ConcreteTexture3D.cs
│   │   │   ├── ConcreteTextureCollection.cs
│   │   │   ├── ConcreteTextureCube.cs
│   │   │   ├── Shader/
│   │   │   │   ├── ConcreteConstantBuffer.cs
│   │   │   │   ├── ConcreteConstantBufferCollection.cs
│   │   │   │   ├── ConcretePixelShader.cs
│   │   │   │   ├── ConcreteShader.cs
│   │   │   │   └── ConcreteVertexShader.cs
│   │   │   ├── States/
│   │   │   │   ├── ConcreteBlendState.cs
│   │   │   │   ├── ConcreteDepthStencilState.cs
│   │   │   │   ├── ConcreteRasterizerState.cs
│   │   │   │   └── ConcreteSamplerState.cs
│   │   │   └── Vertices/
│   │   │       ├── ConcreteDynamicIndexBuffer.cs
│   │   │       ├── ConcreteDynamicVertexBuffer.cs
│   │   │       ├── ConcreteIndexBuffer.cs
│   │   │       └── ConcreteVertexBuffer.cs
│   │   ├── Effect/
│   │   │   ├── Resources/
│   │   │   │   ├── AlphaTestEffect.dx11.fxo
│   │   │   │   ├── AlphaTestEffect.gles.fxo
│   │   │   │   ├── AlphaTestEffect.ogl.fxo
│   │   │   │   ├── BasicEffect.dx11.fxo
│   │   │   │   ├── BasicEffect.gles.fxo
│   │   │   │   ├── BasicEffect.ogl.fxo
│   │   │   │   ├── DualTextureEffect.dx11.fxo
│   │   │   │   ├── DualTextureEffect.gles.fxo
│   │   │   │   ├── DualTextureEffect.ogl.fxo
│   │   │   │   ├── EnvironmentMapEffect.dx11.fxo
│   │   │   │   ├── EnvironmentMapEffect.gles.fxo
│   │   │   │   ├── EnvironmentMapEffect.ogl.fxo
│   │   │   │   ├── SkinnedEffect.dx11.fxo
│   │   │   │   ├── SkinnedEffect.gles.fxo
│   │   │   │   ├── SkinnedEffect.ogl.fxo
│   │   │   │   ├── SpriteEffect.dx11.fxo
│   │   │   │   ├── SpriteEffect.gles.fxo
│   │   │   │   └── SpriteEffect.ogl.fxo
│   │   │   └── Shaders/
│   │   │       ├── AlphaTestEffect.fx
│   │   │       ├── BasicEffect.fx
│   │   │       ├── BuildShaders.bat
│   │   │       ├── Common.fxh
│   │   │       ├── DualTextureEffect.fx
│   │   │       ├── EnvironmentMapEffect.fx
│   │   │       ├── Lighting.fxh
│   │   │       ├── Macros.fxh
│   │   │       ├── Microsoft_Permissive_License.rtf
│   │   │       ├── SkinnedEffect.fx
│   │   │       ├── SpriteEffect.fx
│   │   │       └── Structures.fxh
│   │   ├── RenderTargetSwapChain.OpenGL.cs
│   │   └── SwapChainRenderTarget.DirectX.cs
│   ├── ILLink.Descriptors.xml
│   ├── Input/
│   │   ├── .Android/
│   │   │   ├── ConcreteGamePad.cs
│   │   │   ├── ConcreteGamePadDevice.cs
│   │   │   ├── ConcreteInputFactory.cs
│   │   │   ├── ConcreteJoystick.cs
│   │   │   ├── ConcreteKeyboard.cs
│   │   │   ├── ConcreteKeyboardInput.cs
│   │   │   ├── ConcreteMessageBox.cs
│   │   │   ├── ConcreteMouse.cs
│   │   │   ├── ConcreteMouseCursor.cs
│   │   │   └── Touch/
│   │   │       └── ConcreteTouchPanel.cs
│   │   ├── .Blazor/
│   │   │   ├── ConcreteGamePad.cs
│   │   │   ├── ConcreteGamePadDevice.cs
│   │   │   ├── ConcreteInputFactory.cs
│   │   │   ├── ConcreteJoystick.cs
│   │   │   ├── ConcreteKeyboard.cs
│   │   │   ├── ConcreteKeyboardInput.cs
│   │   │   ├── ConcreteMessageBox.cs
│   │   │   ├── ConcreteMouse.cs
│   │   │   ├── ConcreteMouseCursor.cs
│   │   │   ├── Touch/
│   │   │   │   └── ConcreteTouchPanel.cs
│   │   │   └── XR/
│   │   │       └── ConcreteTouchController.cs
│   │   ├── .LibOVR/
│   │   │   └── XR/
│   │   │       └── ConcreteTouchControllerStrategy.cs
│   │   ├── .OpenXR/
│   │   │   └── XR/
│   │   │       └── ConcreteTouchControllerStrategy.cs
│   │   ├── .Ref/
│   │   │   ├── ConcreteGamePad.cs
│   │   │   ├── ConcreteGamePadDevice.cs
│   │   │   ├── ConcreteInputFactory.cs
│   │   │   ├── ConcreteJoystick.cs
│   │   │   ├── ConcreteKeyboard.cs
│   │   │   ├── ConcreteKeyboardInput.cs
│   │   │   ├── ConcreteMessageBox.cs
│   │   │   ├── ConcreteMouse.cs
│   │   │   ├── ConcreteMouseCursor.cs
│   │   │   └── Touch/
│   │   │       └── ConcreteTouchPanel.cs
│   │   ├── .SDL2/
│   │   │   ├── ConcreteGamePad.cs
│   │   │   ├── ConcreteGamePadDevice.cs
│   │   │   ├── ConcreteInputFactory.cs
│   │   │   ├── ConcreteJoystick.cs
│   │   │   ├── ConcreteKeyboard.cs
│   │   │   ├── ConcreteKeyboardInput.cs
│   │   │   ├── ConcreteMessageBox.cs
│   │   │   ├── ConcreteMouse.cs
│   │   │   ├── ConcreteMouseCursor.cs
│   │   │   ├── KeyboardUtil.cs
│   │   │   └── Touch/
│   │   │       └── ConcreteTouchPanel.cs
│   │   ├── .UAP/
│   │   │   ├── ConcreteGamePad.cs
│   │   │   ├── ConcreteGamePadDevice.cs
│   │   │   ├── ConcreteInputFactory.cs
│   │   │   ├── ConcreteJoystick.cs
│   │   │   ├── ConcreteKeyboard.cs
│   │   │   ├── ConcreteKeyboardInput.cs
│   │   │   ├── ConcreteMessageBox.cs
│   │   │   ├── ConcreteMouse.cs
│   │   │   ├── ConcreteMouseCursor.cs
│   │   │   └── Touch/
│   │   │       └── ConcreteTouchPanel.cs
│   │   ├── .WindowsDX/
│   │   │   ├── ConcreteGamePad.cs
│   │   │   ├── ConcreteGamePadDevice.cs
│   │   │   ├── ConcreteInputFactory.cs
│   │   │   ├── ConcreteJoystick.cs
│   │   │   ├── ConcreteKeyboard.cs
│   │   │   ├── ConcreteKeyboardInput.cs
│   │   │   ├── ConcreteMessageBox.cs
│   │   │   ├── ConcreteMouse.cs
│   │   │   ├── ConcreteMouseCursor.cs
│   │   │   └── Touch/
│   │   │       └── ConcreteTouchPanel.cs
│   │   └── .iOS/
│   │       ├── ConcreteGamePad.cs
│   │       ├── ConcreteGamePad.tvOS.cs
│   │       ├── ConcreteGamePadDevice.cs
│   │       ├── ConcreteInputFactory.cs
│   │       ├── ConcreteJoystick.cs
│   │       ├── ConcreteKeyboard.cs
│   │       ├── ConcreteKeyboardInput.cs
│   │       ├── ConcreteMessageBox.cs
│   │       ├── ConcreteMouse.cs
│   │       ├── ConcreteMouseCursor.cs
│   │       └── Touch/
│   │           └── ConcreteTouchPanel.cs
│   ├── Kni.Platform.Android.GL.Xamarin.csproj
│   ├── Kni.Platform.Android.GL.csproj
│   ├── Kni.Platform.Blazor.GL.csproj
│   ├── Kni.Platform.Cardboard.GL.csproj
│   ├── Kni.Platform.Oculus.GL.csproj
│   ├── Kni.Platform.Ref.csproj
│   ├── Kni.Platform.SDL2.GL.csproj
│   ├── Kni.Platform.SDL2.GL.dll.config
│   ├── Kni.Platform.UAP.DX11.csproj
│   ├── Kni.Platform.WinForms.DX11.OculusOVR.csproj
│   ├── Kni.Platform.WinForms.DX11.csproj
│   ├── Kni.Platform.iOS.GL.csproj
│   ├── Media/
│   │   ├── Android/
│   │   │   ├── ConcreteAlbum.cs
│   │   │   ├── ConcreteMediaFactory.cs
│   │   │   ├── ConcreteMediaLibrary.cs
│   │   │   ├── ConcreteMediaPlayer.cs
│   │   │   ├── ConcreteSong.cs
│   │   │   ├── ConcreteVideo.cs
│   │   │   └── ConcreteVideoPlayer.cs
│   │   ├── Blazor/
│   │   │   ├── ConcreteAlbum.cs
│   │   │   ├── ConcreteMediaFactory.cs
│   │   │   ├── ConcreteMediaLibrary.cs
│   │   │   ├── ConcreteMediaPlayer.cs
│   │   │   ├── ConcreteSong.cs
│   │   │   ├── ConcreteVideo.cs
│   │   │   └── ConcreteVideoPlayer.cs
│   │   ├── DesktopGL/
│   │   │   ├── ConcreteAlbum.cs
│   │   │   ├── ConcreteMediaFactory.cs
│   │   │   ├── ConcreteMediaLibrary.cs
│   │   │   ├── ConcreteMediaPlayer.cs
│   │   │   ├── ConcreteSong.cs
│   │   │   ├── ConcreteVideo.cs
│   │   │   └── ConcreteVideoPlayer.cs
│   │   ├── MacOS/
│   │   │   ├── ConcreteMediaFactory.cs
│   │   │   ├── ConcreteVideo.cs
│   │   │   └── ConcreteVideoPlayer.cs
│   │   ├── Ref/
│   │   │   ├── ConcreteAlbum.cs
│   │   │   ├── ConcreteMediaFactory.cs
│   │   │   ├── ConcreteMediaLibrary.cs
│   │   │   ├── ConcreteMediaPlayer.cs
│   │   │   ├── ConcreteSong.cs
│   │   │   ├── ConcreteVideo.cs
│   │   │   └── ConcreteVideoPlayer.cs
│   │   ├── WME/
│   │   │   ├── ConcreteAlbum.cs
│   │   │   ├── ConcreteMediaFactory.cs
│   │   │   ├── ConcreteMediaLibrary.cs
│   │   │   ├── ConcreteMediaPlayer.cs
│   │   │   ├── ConcreteSong.cs
│   │   │   ├── ConcreteVideo.cs
│   │   │   ├── ConcreteVideoPlayer.cs
│   │   │   └── MusicProperties.cs
│   │   ├── WMS/
│   │   │   ├── ConcreteAlbum.cs
│   │   │   ├── ConcreteMediaFactory.cs
│   │   │   ├── ConcreteMediaLibrary.cs
│   │   │   ├── ConcreteMediaPlayer.cs
│   │   │   ├── ConcreteSong.cs
│   │   │   ├── ConcreteVideo.cs
│   │   │   ├── ConcreteVideoPlayer.cs
│   │   │   └── VideoSampleGrabber.cs
│   │   └── iOS/
│   │       ├── ConcreteAlbum.cs
│   │       ├── ConcreteMediaFactory.cs
│   │       ├── ConcreteMediaLibrary.cs
│   │       ├── ConcreteMediaPlayer.cs
│   │       ├── ConcreteSong.cs
│   │       ├── ConcreteVideo.cs
│   │       └── ConcreteVideoPlayer.cs
│   ├── MonoGame.Framework.DesktopGL.csproj
│   ├── Properties/
│   │   ├── AssemblyInfo.Android.cs
│   │   ├── AssemblyInfo.Blazor.cs
│   │   ├── AssemblyInfo.DesktopGL.cs
│   │   ├── AssemblyInfo.Ref.cs
│   │   ├── AssemblyInfo.UWP.cs
│   │   ├── AssemblyInfo.Windows.cs
│   │   ├── AssemblyInfo.cs
│   │   └── AssemblyInfo.iOS.cs
│   ├── Resources/
│   │   └── Resource.designer.cs
│   ├── Storage/
│   │   ├── .Android/
│   │   │   ├── ConcreteStorageContainer.cs
│   │   │   ├── ConcreteStorageDevice.cs
│   │   │   ├── ConcreteStorageFactory.cs
│   │   │   └── ConcreteStorageService.cs
│   │   ├── .Blazor/
│   │   │   ├── ConcreteStorageContainer.cs
│   │   │   ├── ConcreteStorageDevice.cs
│   │   │   ├── ConcreteStorageFactory.cs
│   │   │   └── ConcreteStorageService.cs
│   │   ├── .Ref/
│   │   │   ├── ConcreteStorageContainer.cs
│   │   │   ├── ConcreteStorageDevice.cs
│   │   │   ├── ConcreteStorageFactory.cs
│   │   │   └── ConcreteStorageService.cs
│   │   ├── .SDL2/
│   │   │   ├── ConcreteStorageContainer.cs
│   │   │   ├── ConcreteStorageDevice.cs
│   │   │   ├── ConcreteStorageFactory.cs
│   │   │   └── ConcreteStorageService.cs
│   │   ├── .UAP/
│   │   │   ├── ConcreteStorageContainer.cs
│   │   │   ├── ConcreteStorageDevice.cs
│   │   │   ├── ConcreteStorageFactory.cs
│   │   │   └── ConcreteStorageService.cs
│   │   ├── .WindowsDX/
│   │   │   ├── ConcreteStorageContainer.cs
│   │   │   ├── ConcreteStorageDevice.cs
│   │   │   ├── ConcreteStorageFactory.cs
│   │   │   └── ConcreteStorageService.cs
│   │   └── .iOS/
│   │       ├── ConcreteStorageContainer.cs
│   │       ├── ConcreteStorageDevice.cs
│   │       ├── ConcreteStorageFactory.cs
│   │       └── ConcreteStorageService.cs
│   ├── Utilities/
│   │   ├── .Android/
│   │   │   └── FuncLoader.cs
│   │   ├── .SDL2/
│   │   │   └── FuncLoader.cs
│   │   ├── .iOS/
│   │   │   └── FuncLoader.cs
│   │   ├── AssemblyHelper.cs
│   │   ├── CurrentPlatform.cs
│   │   ├── InteropHelpers.cs
│   │   ├── MemCopyHelper.cs
│   │   └── Png/
│   │       ├── PngCommon.cs
│   │       ├── PngReader.cs
│   │       ├── PngWriter.cs
│   │       └── ZLibStream.cs
│   ├── XR/
│   │   ├── .Android/
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   ├── .BlazorGL/
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   ├── .CardboardLegacy/
│   │   │   ├── CardboardHeadsetState.cs
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   ├── ConcreteXRFactory.cs
│   │   │   └── GoogleCardboard/
│   │   │       ├── Additions/
│   │   │       │   └── AboutAdditions.txt
│   │   │       ├── GoogleCardboard.csproj
│   │   │       ├── Jars/
│   │   │       │   └── cardboard.jar
│   │   │       └── Transforms/
│   │   │           ├── EnumFields.xml
│   │   │           ├── EnumMethods.xml
│   │   │           └── Metadata.xml
│   │   ├── .LibOVR/
│   │   │   ├── ConcreteOvrSwapChainData.cs
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   ├── .Oculus/
│   │   │   ├── ConcreteOxrSwapChainData.cs
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   ├── .Ref/
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   ├── .SDL2/
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   ├── .UAP/
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   ├── .WindowsDX/
│   │   │   ├── ConcreteXRDevice.cs
│   │   │   └── ConcreteXRFactory.cs
│   │   └── .iOS/
│   │       ├── ConcreteXRDevice.cs
│   │       └── ConcreteXRFactory.cs
│   └── build/
│       ├── .Android/
│       │   └── nkast.Kni.Platform.Android.GL.targets
│       ├── .SDL2/
│       │   ├── MonoGame.Framework.DesktopGL.targets
│       │   └── nkast.Kni.Platform.SDL2.GL.targets
│       ├── .UAP/
│       │   └── nkast.Kni.Platform.UAP.DX11.targets
│       ├── .WindowsDX/
│       │   └── nkast.Kni.Platform.WinForms.DX11.targets
│       └── .iOS/
│           └── nkast.Kni.Platform.iOS.GL.targets
├── README.md
├── REQUIREMENTS.md
├── Templates/
│   ├── Directory.Build.props
│   ├── MonoGame.Templates.CSharp/
│   │   ├── MonoGame.Templates.CSharp.csproj
│   │   └── content/
│   │       ├── MonoGame.Application.Android.CSharp/
│   │       │   ├── .config/
│   │       │   │   └── dotnet-tools.json
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── Activity1.cs
│   │       │   ├── AndroidManifest.xml
│   │       │   ├── Content/
│   │       │   │   └── Content.mgcb
│   │       │   ├── Game1.cs
│   │       │   ├── MGNamespace.csproj
│   │       │   └── Resources/
│   │       │       └── Values/
│   │       │           └── Strings.xml
│   │       ├── MonoGame.Application.DesktopGL.CSharp/
│   │       │   ├── .config/
│   │       │   │   └── dotnet-tools.json
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── Content/
│   │       │   │   └── Content.mgcb
│   │       │   ├── Game1.cs
│   │       │   ├── MGNamespace.csproj
│   │       │   ├── Program.cs
│   │       │   └── app.manifest
│   │       ├── MonoGame.Application.UWP.CoreApp.CSharp/
│   │       │   ├── .config/
│   │       │   │   └── dotnet-tools.json
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── Content/
│   │       │   │   └── Content.mgcb
│   │       │   ├── Game1.cs
│   │       │   ├── MGNamespace.csproj
│   │       │   ├── Package.appxmanifest
│   │       │   ├── Program.cs
│   │       │   └── Properties/
│   │       │       ├── AssemblyInfo.cs
│   │       │       └── Default.rd.xml
│   │       ├── MonoGame.Application.UWP.XAML.CSharp/
│   │       │   ├── .config/
│   │       │   │   └── dotnet-tools.json
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── App.xaml
│   │       │   ├── App.xaml.cs
│   │       │   ├── Content/
│   │       │   │   └── Content.mgcb
│   │       │   ├── Game1.cs
│   │       │   ├── GamePage.xaml
│   │       │   ├── GamePage.xaml.cs
│   │       │   ├── MGNamespace.csproj
│   │       │   ├── Package.appxmanifest
│   │       │   └── Properties/
│   │       │       ├── AssemblyInfo.cs
│   │       │       └── Default.rd.xml
│   │       ├── MonoGame.Application.WindowsDX.CSharp/
│   │       │   ├── .config/
│   │       │   │   └── dotnet-tools.json
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── Content/
│   │       │   │   └── Content.mgcb
│   │       │   ├── Game1.cs
│   │       │   ├── MGNamespace.csproj
│   │       │   ├── Program.cs
│   │       │   └── app.manifest
│   │       ├── MonoGame.Application.iOS.CSharp/
│   │       │   ├── .config/
│   │       │   │   └── dotnet-tools.json
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── Content/
│   │       │   │   └── Content.mgcb
│   │       │   ├── Entitlements.plist
│   │       │   ├── Game1.cs
│   │       │   ├── Info.plist
│   │       │   ├── LaunchScreen.storyboard
│   │       │   ├── MGNamespace.csproj
│   │       │   └── Program.cs
│   │       ├── MonoGame.Library.CSharp/
│   │       │   ├── .config/
│   │       │   │   └── dotnet-tools.json
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── Content/
│   │       │   │   └── Content.mgcb
│   │       │   ├── Game1.cs
│   │       │   └── MGNamespace.csproj
│   │       ├── MonoGame.Library.Pipeline.Extension.CSharp/
│   │       │   ├── .template.config/
│   │       │   │   └── template.json
│   │       │   ├── Importer1.cs
│   │       │   ├── MGNamespace.csproj
│   │       │   └── Processor1.cs
│   │       └── MonoGame.Library.Shared.CSharp/
│   │           ├── .template.config/
│   │           │   └── template.json
│   │           ├── Content/
│   │           │   └── Content.mgcb
│   │           ├── Game1.cs
│   │           ├── MGNamespace.projitems
│   │           └── MGNamespace.shproj
│   ├── MonoGame.Templates.VSExtension/
│   │   ├── MonoGame.Templates.VSExtension.csproj
│   │   ├── MonoGameTemplatesVSExtensionPackage.cs
│   │   ├── Properties/
│   │   │   └── AssemblyInfo.cs
│   │   ├── Templates.pkgdef
│   │   └── source.extension.vsixmanifest
│   ├── VisualStudio2022/
│   │   ├── ItemTemplates/
│   │   │   ├── DrawableGameComponent/
│   │   │   │   ├── DrawableGameComponent.cs
│   │   │   │   └── DrawableGameComponent.vstemplate
│   │   │   └── GameComponent/
│   │   │       ├── GameComponent.cs
│   │   │       └── GameComponent.vstemplate
│   │   ├── ProjectTemplates/
│   │   │   ├── Android.NetCore/
│   │   │   │   ├── Activity.cs
│   │   │   │   ├── AndroidManifest.xml
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Assets/
│   │   │   │   │   └── AboutAssets.txt
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Directory.Build.props
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   └── Resources/
│   │   │   │       ├── AboutResources.txt
│   │   │   │       ├── Resource.Designer.cs
│   │   │   │       └── Values/
│   │   │   │           ├── Strings.xml
│   │   │   │           └── Styles.xml
│   │   │   ├── BlazorGL.NetCore/
│   │   │   │   ├── App.razor
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Directory.Build.props
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   ├── MainLayout.razor
│   │   │   │   ├── MainLayout.razor.css
│   │   │   │   ├── Pages/
│   │   │   │   │   ├── Index.razor
│   │   │   │   │   └── Index.razor.cs
│   │   │   │   ├── Program.cs
│   │   │   │   ├── Properties/
│   │   │   │   │   └── launchSettings.json
│   │   │   │   ├── _Imports.razor
│   │   │   │   └── wwwroot/
│   │   │   │       ├── Content/
│   │   │   │       │   └── Content.txt
│   │   │   │       ├── css/
│   │   │   │       │   └── app.css
│   │   │   │       ├── index.html
│   │   │   │       └── js/
│   │   │   │           ├── decode.js
│   │   │   │           ├── micProcessor.js
│   │   │   │           └── streamProcessor.js
│   │   │   ├── ContentPipelineExtension.NetFramework/
│   │   │   │   ├── ContentImporter.cs
│   │   │   │   ├── ContentPipelineExtension.csproj
│   │   │   │   ├── ContentPipelineExtension.vstemplate
│   │   │   │   ├── ContentProcessor.cs
│   │   │   │   └── Properties/
│   │   │   │       └── AssemblyInfo.cs
│   │   │   ├── ContentPipelineExtension.NetStandard/
│   │   │   │   ├── ContentImporter.cs
│   │   │   │   ├── ContentPipelineExtension.csproj
│   │   │   │   ├── ContentPipelineExtension.vstemplate
│   │   │   │   ├── ContentProcessor.cs
│   │   │   │   └── Directory.Build.props
│   │   │   ├── DesktopGL.NetCore/
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Directory.Build.props
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   ├── Program.cs
│   │   │   │   └── app.manifest
│   │   │   ├── DesktopGL.NetFramework/
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   ├── Program.cs
│   │   │   │   ├── Properties/
│   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   └── app.manifest
│   │   │   ├── Multiplatform.NetCore/
│   │   │   │   ├── Android/
│   │   │   │   │   ├── Activity.cs
│   │   │   │   │   ├── AndroidManifest.xml
│   │   │   │   │   ├── Application.csproj
│   │   │   │   │   ├── Assets/
│   │   │   │   │   │   └── AboutAssets.txt
│   │   │   │   │   ├── Directory.Build.props
│   │   │   │   │   ├── Game.vstemplate
│   │   │   │   │   └── Resources/
│   │   │   │   │       ├── AboutResources.txt
│   │   │   │   │       ├── Resource.Designer.cs
│   │   │   │   │       └── Values/
│   │   │   │   │           ├── Strings.xml
│   │   │   │   │           └── Styles.xml
│   │   │   │   ├── BlazorGL/
│   │   │   │   │   ├── App.razor
│   │   │   │   │   ├── Application.csproj
│   │   │   │   │   ├── Content/
│   │   │   │   │   │   └── Content.mgcb
│   │   │   │   │   ├── Directory.Build.props
│   │   │   │   │   ├── Game.vstemplate
│   │   │   │   │   ├── MainLayout.razor
│   │   │   │   │   ├── MainLayout.razor.css
│   │   │   │   │   ├── Pages/
│   │   │   │   │   │   ├── Index.razor
│   │   │   │   │   │   └── Index.razor.cs
│   │   │   │   │   ├── Program.cs
│   │   │   │   │   ├── Properties/
│   │   │   │   │   │   └── launchSettings.json
│   │   │   │   │   ├── _Imports.razor
│   │   │   │   │   └── wwwroot/
│   │   │   │   │       ├── Content/
│   │   │   │   │       │   └── Content.txt
│   │   │   │   │       ├── css/
│   │   │   │   │       │   └── app.css
│   │   │   │   │       ├── index.html
│   │   │   │   │       └── js/
│   │   │   │   │           ├── decode.js
│   │   │   │   │           ├── micProcessor.js
│   │   │   │   │           └── streamProcessor.js
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── DesktopGL/
│   │   │   │   │   ├── Application.csproj
│   │   │   │   │   ├── Directory.Build.props
│   │   │   │   │   ├── Game.vstemplate
│   │   │   │   │   ├── Program.cs
│   │   │   │   │   └── app.manifest
│   │   │   │   ├── Directory.Build.props
│   │   │   │   ├── GameMultiplatform.vstemplate
│   │   │   │   ├── Shared/
│   │   │   │   │   ├── Game.cs
│   │   │   │   │   ├── Shared.vstemplate
│   │   │   │   │   ├── SharedProject.projitems
│   │   │   │   │   └── SharedProject.shproj
│   │   │   │   └── WindowsDX/
│   │   │   │       ├── Application.csproj
│   │   │   │       ├── Directory.Build.props
│   │   │   │       ├── Game.vstemplate
│   │   │   │       ├── Program.cs
│   │   │   │       └── app.manifest
│   │   │   ├── Multiplatform.NetFramework/
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── DesktopGL/
│   │   │   │   │   ├── Application.csproj
│   │   │   │   │   ├── Game.vstemplate
│   │   │   │   │   ├── Program.cs
│   │   │   │   │   ├── Properties/
│   │   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   │   └── app.manifest
│   │   │   │   ├── GameMultiplatform.vstemplate
│   │   │   │   ├── Shared/
│   │   │   │   │   ├── Game.cs
│   │   │   │   │   ├── Shared.vstemplate
│   │   │   │   │   ├── SharedProject.projitems
│   │   │   │   │   └── SharedProject.shproj
│   │   │   │   ├── UWPCore/
│   │   │   │   │   ├── Application.csproj
│   │   │   │   │   ├── Game.vstemplate
│   │   │   │   │   ├── Package.appxmanifest
│   │   │   │   │   ├── Program.cs
│   │   │   │   │   └── Properties/
│   │   │   │   │       ├── AssemblyInfo.cs
│   │   │   │   │       └── Default.rd.xml
│   │   │   │   ├── UWPXaml/
│   │   │   │   │   ├── App.xaml
│   │   │   │   │   ├── App.xaml.cs
│   │   │   │   │   ├── Application.csproj
│   │   │   │   │   ├── Game.vstemplate
│   │   │   │   │   ├── MainPage.xaml
│   │   │   │   │   ├── MainPage.xaml.cs
│   │   │   │   │   ├── Package.appxmanifest
│   │   │   │   │   └── Properties/
│   │   │   │   │       ├── AssemblyInfo.cs
│   │   │   │   │       └── Default.rd.xml
│   │   │   │   └── WindowsDX/
│   │   │   │       ├── Application.csproj
│   │   │   │       ├── Game.vstemplate
│   │   │   │       ├── Program.cs
│   │   │   │       ├── Properties/
│   │   │   │       │   └── AssemblyInfo.cs
│   │   │   │       └── app.manifest
│   │   │   ├── Oculus.NetCore/
│   │   │   │   ├── Activity.cs
│   │   │   │   ├── AndroidManifest.xml
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Assets/
│   │   │   │   │   └── AboutAssets.txt
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Directory.Build.props
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   └── Resources/
│   │   │   │       ├── AboutResources.txt
│   │   │   │       ├── Resource.Designer.cs
│   │   │   │       └── Values/
│   │   │   │           ├── Strings.xml
│   │   │   │           └── Styles.xml
│   │   │   ├── UWPCore.UAP/
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   ├── Package.appxmanifest
│   │   │   │   ├── Program.cs
│   │   │   │   └── Properties/
│   │   │   │       ├── AssemblyInfo.cs
│   │   │   │       └── Default.rd.xml
│   │   │   ├── UWPXaml.UAP/
│   │   │   │   ├── App.xaml
│   │   │   │   ├── App.xaml.cs
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   ├── MainPage.xaml
│   │   │   │   ├── MainPage.xaml.cs
│   │   │   │   ├── Package.appxmanifest
│   │   │   │   └── Properties/
│   │   │   │       ├── AssemblyInfo.cs
│   │   │   │       └── Default.rd.xml
│   │   │   ├── WindowsDX.NetCore/
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Directory.Build.props
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   ├── Program.cs
│   │   │   │   └── app.manifest
│   │   │   ├── WindowsDX.NetFramework/
│   │   │   │   ├── Application.csproj
│   │   │   │   ├── Content/
│   │   │   │   │   └── Content.mgcb
│   │   │   │   ├── Game.cs
│   │   │   │   ├── Game.vstemplate
│   │   │   │   ├── Program.cs
│   │   │   │   ├── Properties/
│   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   └── app.manifest
│   │   │   └── iOS.NetCore/
│   │   │       ├── Application.csproj
│   │   │       ├── Content/
│   │   │       │   └── Content.mgcb
│   │   │       ├── Directory.Build.props
│   │   │       ├── Entitlements.plist
│   │   │       ├── Game.cs
│   │   │       ├── Game.vstemplate
│   │   │       ├── Info.plist
│   │   │       └── Program.cs
│   │   └── default.build
│   ├── default.build
│   └── dotnetTemplates/
│       ├── Install.bat
│       ├── README.md
│       ├── Uninstall.bat
│       ├── content/
│       │   ├── Android.NetCore.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Activity.cs
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── AndroidManifest.xml
│       │   │   ├── Assets/
│       │   │   │   └── AboutAssets.txt
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Directory.Build.props
│       │   │   └── Resources/
│       │   │       ├── AboutResources.txt
│       │   │       ├── Resource.Designer.cs
│       │   │       └── Values/
│       │   │           ├── Strings.xml
│       │   │           └── Styles.xml
│       │   ├── BlazorGL.NetCore.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── Game.vstemplate
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── App.razor
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Directory.Build.props
│       │   │   ├── MainLayout.razor
│       │   │   ├── MainLayout.razor.css
│       │   │   ├── Pages/
│       │   │   │   ├── Index.razor
│       │   │   │   └── Index.razor.cs
│       │   │   ├── Program.cs
│       │   │   ├── Properties/
│       │   │   │   └── launchSettings.json
│       │   │   ├── _Imports.razor
│       │   │   └── wwwroot/
│       │   │       ├── Content/
│       │   │       │   └── .gitignore
│       │   │       ├── css/
│       │   │       │   └── app.css
│       │   │       ├── index.html
│       │   │       └── js/
│       │   │           ├── decode.js
│       │   │           ├── micProcessor.js
│       │   │           └── streamProcessor.js
│       │   ├── ContentPipelineExtension.NetStandard.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── ContentImporter1.cs
│       │   │   ├── ContentProcessor1.cs
│       │   │   └── Directory.Build.props
│       │   ├── DrawableGameComponent.CSharp/
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   └── DrawableGameComponent1.cs
│       │   ├── GameComponent.CSharp/
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   └── GameComponent1.cs
│       │   ├── Multiplatform.NetCore.CSharp/
│       │   │   ├── $projectname$.Android.GL/
│       │   │   │   ├── $projectname$.Android.GL.csproj
│       │   │   │   ├── $projectname$Activity.cs
│       │   │   │   ├── AndroidManifest.xml
│       │   │   │   ├── Assets/
│       │   │   │   │   └── AboutAssets.txt
│       │   │   │   ├── Directory.Build.props
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   └── Resources/
│       │   │   │       ├── AboutResources.txt
│       │   │   │       ├── Resource.Designer.cs
│       │   │   │       └── Values/
│       │   │   │           ├── Strings.xml
│       │   │   │           └── Styles.xml
│       │   │   ├── $projectname$.Blazor.GL/
│       │   │   │   ├── $projectname$.Blazor.GL.csproj
│       │   │   │   ├── App.razor
│       │   │   │   ├── Directory.Build.props
│       │   │   │   ├── MainLayout.razor
│       │   │   │   ├── MainLayout.razor.css
│       │   │   │   ├── Pages/
│       │   │   │   │   ├── Index.razor
│       │   │   │   │   └── Index.razor.cs
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   ├── Program.cs
│       │   │   │   ├── Properties/
│       │   │   │   │   └── launchSettings.json
│       │   │   │   ├── _Imports.razor
│       │   │   │   └── wwwroot/
│       │   │   │       ├── Content/
│       │   │   │       │   └── .gitignore
│       │   │   │       ├── css/
│       │   │   │       │   └── app.css
│       │   │   │       ├── index.html
│       │   │   │       └── js/
│       │   │   │           ├── decode.js
│       │   │   │           ├── micProcessor.js
│       │   │   │           └── streamProcessor.js
│       │   │   ├── $projectname$.SDL2.GL/
│       │   │   │   ├── $projectname$.SDL2.GL.csproj
│       │   │   │   ├── Directory.Build.props
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   ├── Program.cs
│       │   │   │   └── app.manifest
│       │   │   ├── $projectname$.Shared/
│       │   │   │   ├── $projectname$.Shared.projitems
│       │   │   │   ├── $projectname$.Shared.shproj
│       │   │   │   └── $projectname$Game.cs
│       │   │   ├── $projectname$.WinForms.DX11/
│       │   │   │   ├── $projectname$.WinForms.DX11.csproj
│       │   │   │   ├── Directory.Build.props
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   ├── Program.cs
│       │   │   │   └── app.manifest
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   └── Directory.Build.props
│       │   ├── Multiplatform.NetFramework.CSharp/
│       │   │   ├── $projectname$.SDL2.GL/
│       │   │   │   ├── $projectname$.SDL2.GL.csproj
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   ├── Program.cs
│       │   │   │   ├── Properties/
│       │   │   │   │   └── AssemblyInfo.cs
│       │   │   │   └── app.manifest
│       │   │   ├── $projectname$.Shared/
│       │   │   │   ├── $projectname$.Shared.projitems
│       │   │   │   ├── $projectname$.Shared.shproj
│       │   │   │   └── $projectname$Game.cs
│       │   │   ├── $projectname$.UWPCore/
│       │   │   │   ├── $projectname$.UWPCore.csproj
│       │   │   │   ├── Package.appxmanifest
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   ├── Program.cs
│       │   │   │   └── Properties/
│       │   │   │       ├── AssemblyInfo.cs
│       │   │   │       └── Default.rd.xml
│       │   │   ├── $projectname$.UWPXaml/
│       │   │   │   ├── $projectname$.UWPXaml.csproj
│       │   │   │   ├── App.xaml
│       │   │   │   ├── App.xaml.cs
│       │   │   │   ├── MainPage.xaml
│       │   │   │   ├── MainPage.xaml.cs
│       │   │   │   ├── Package.appxmanifest
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   └── Properties/
│       │   │   │       ├── AssemblyInfo.cs
│       │   │   │       └── Default.rd.xml
│       │   │   ├── $projectname$.WinForms.DX11/
│       │   │   │   ├── $projectname$.WinForms.DX11.csproj
│       │   │   │   ├── Platform$projectname$Game.cs
│       │   │   │   ├── Program.cs
│       │   │   │   ├── Properties/
│       │   │   │   │   └── AssemblyInfo.cs
│       │   │   │   └── app.manifest
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   └── .template.config/
│       │   │       ├── ide.host.json
│       │   │       └── template.json
│       │   ├── Oculus.NetCore.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Activity.cs
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── Game.vstemplate
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── AndroidManifest.xml
│       │   │   ├── Assets/
│       │   │   │   └── AboutAssets.txt
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Directory.Build.props
│       │   │   └── Resources/
│       │   │       ├── AboutResources.txt
│       │   │       ├── Resource.Designer.cs
│       │   │       └── Values/
│       │   │           ├── Strings.xml
│       │   │           └── Styles.xml
│       │   ├── SDL2.GL.NetCore.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Directory.Build.props
│       │   │   ├── Program.cs
│       │   │   └── app.manifest
│       │   ├── SDL2.GL.NetFramework.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Program.cs
│       │   │   ├── Properties/
│       │   │   │   └── AssemblyInfo.cs
│       │   │   └── app.manifest
│       │   ├── UWPCore.UAP.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Package.appxmanifest
│       │   │   ├── Program.cs
│       │   │   └── Properties/
│       │   │       ├── AssemblyInfo.cs
│       │   │       └── Default.rd.xml
│       │   ├── UWPXaml.UAP.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── App.xaml
│       │   │   ├── App.xaml.cs
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── MainPage.xaml
│       │   │   ├── MainPage.xaml.cs
│       │   │   ├── Package.appxmanifest
│       │   │   └── Properties/
│       │   │       ├── AssemblyInfo.cs
│       │   │       └── Default.rd.xml
│       │   ├── WinForms.DX11.NetCore.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Directory.Build.props
│       │   │   ├── Program.cs
│       │   │   └── app.manifest
│       │   ├── WinForms.DX11.NetFramework.CSharp/
│       │   │   ├── $projectname$.csproj
│       │   │   ├── $projectname$.sln
│       │   │   ├── $projectname$Game.cs
│       │   │   ├── .template.config/
│       │   │   │   ├── ide.host.json
│       │   │   │   └── template.json
│       │   │   ├── Content/
│       │   │   │   └── $projectname$Content.mgcb
│       │   │   ├── Program.cs
│       │   │   ├── Properties/
│       │   │   │   └── AssemblyInfo.cs
│       │   │   └── app.manifest
│       │   └── iOS.NetCore.CSharp/
│       │       ├── $projectname$.csproj
│       │       ├── $projectname$.sln
│       │       ├── $projectname$Game.cs
│       │       ├── .template.config/
│       │       │   ├── ide.host.json
│       │       │   └── template.json
│       │       ├── Content/
│       │       │   └── $projectname$Content.mgcb
│       │       ├── Directory.Build.props
│       │       ├── Entitlements.plist
│       │       ├── Info.plist
│       │       └── Program.cs
│       ├── installPackage.bat
│       ├── nkast.Kni.Templates.csproj
│       ├── pack.bat
│       └── uninstallPackage.bat
├── Tests/
│   ├── Assets/
│   │   ├── Audio/
│   │   │   ├── Tests.xap
│   │   │   ├── Win/
│   │   │   │   ├── Tests.xgs
│   │   │   │   ├── Tests.xsb
│   │   │   │   └── Tests.xwb
│   │   │   ├── rock_loop_stereo.ogg
│   │   │   ├── rock_loop_stereo.wma
│   │   │   ├── tone_mono_44khz_16bit.xnb
│   │   │   ├── tone_mono_44khz_8bit.xnb
│   │   │   ├── tone_mono_44khz_float.xnb
│   │   │   ├── tone_mono_44khz_imaadpcm.xnb
│   │   │   ├── tone_mono_44khz_msadpcm.xnb
│   │   │   ├── tone_stereo_44khz_16bit.xnb
│   │   │   ├── tone_stereo_44khz_8bit.xnb
│   │   │   ├── tone_stereo_44khz_float.xnb
│   │   │   ├── tone_stereo_44khz_imaadpcm.xnb
│   │   │   └── tone_stereo_44khz_msadpcm.xnb
│   │   ├── Effects/
│   │   │   ├── Bevels.fx
│   │   │   ├── BlackOut.fx
│   │   │   ├── ColorFlip.fx
│   │   │   ├── ComputeShader.fx
│   │   │   ├── CustomSpriteBatchEffect.fx
│   │   │   ├── CustomSpriteBatchEffectComparisonSampler.fx
│   │   │   ├── DeferredBasicEffect.fx
│   │   │   ├── DefinesTest.fx
│   │   │   ├── DirectX/
│   │   │   │   ├── Bevels.xnb
│   │   │   │   ├── BlackOut.xnb
│   │   │   │   ├── ColorFlip.xnb
│   │   │   │   ├── CustomSpriteBatchEffect.xnb
│   │   │   │   ├── CustomSpriteBatchEffectComparisonSampler.xnb
│   │   │   │   ├── Grayscale.xnb
│   │   │   │   ├── HighContrast.xnb
│   │   │   │   ├── Instancing.xnb
│   │   │   │   ├── Invert.xnb
│   │   │   │   ├── NewSyntax_s0s1t0t1.xnb
│   │   │   │   ├── NewSyntax_t0t1.xnb
│   │   │   │   ├── NoEffect.xnb
│   │   │   │   ├── OldSyntax_s0s1t0t1.xnb
│   │   │   │   ├── OldSyntax_t0t1.xnb
│   │   │   │   ├── OldSyntax_t1t0.xnb
│   │   │   │   ├── ParserTest.xnb
│   │   │   │   ├── RainbowH.xnb
│   │   │   │   ├── TextureArrayEffect.xnb
│   │   │   │   └── VertexTextureEffect.xnb
│   │   │   ├── DirectX.mgcb
│   │   │   ├── Grayscale.fx
│   │   │   ├── HighContrast.fx
│   │   │   ├── Instancing.fx
│   │   │   ├── Invert.fx
│   │   │   ├── NewSyntax_s0s1t0t1.fx
│   │   │   ├── NewSyntax_t0t1.fx
│   │   │   ├── NoEffect.fx
│   │   │   ├── OldSyntax_s0s1.fx
│   │   │   ├── OldSyntax_s0s1t0t1.fx
│   │   │   ├── OldSyntax_t0t1.fx
│   │   │   ├── OldSyntax_t1t0.fx
│   │   │   ├── OldSyntax_x.fx
│   │   │   ├── OpenGL/
│   │   │   │   ├── Bevels.xnb
│   │   │   │   ├── BlackOut.xnb
│   │   │   │   ├── ColorFlip.xnb
│   │   │   │   ├── CustomSpriteBatchEffect.xnb
│   │   │   │   ├── Grayscale.xnb
│   │   │   │   ├── HighContrast.xnb
│   │   │   │   ├── Invert.xnb
│   │   │   │   ├── NewSyntax_s0s1t0t1.xnb
│   │   │   │   ├── NewSyntax_t0t1.xnb
│   │   │   │   ├── NoEffect.xnb
│   │   │   │   ├── OldSyntax_s0s1t0t1.xnb
│   │   │   │   ├── OldSyntax_t0t1.xnb
│   │   │   │   ├── OldSyntax_t1t0.xnb
│   │   │   │   └── RainbowH.xnb
│   │   │   ├── OpenGL.mgcb
│   │   │   ├── OptimizedMatrix.fx
│   │   │   ├── OptimizedMatrixArray.fx
│   │   │   ├── ParserTest.fx
│   │   │   ├── PreprocessorInclude.fxh
│   │   │   ├── PreprocessorTest.fx
│   │   │   ├── README.txt
│   │   │   ├── RainbowH.fx
│   │   │   ├── TextureArrayEffect.fx
│   │   │   ├── VertexTextureEffect.fx
│   │   │   ├── XNA/
│   │   │   │   ├── Bevels.xnb
│   │   │   │   ├── BlackOut.xnb
│   │   │   │   ├── ColorFlip.xnb
│   │   │   │   ├── CustomSpriteBatchEffect.xnb
│   │   │   │   ├── Grayscale.xnb
│   │   │   │   ├── HighContrast.xnb
│   │   │   │   ├── Instancing.xnb
│   │   │   │   ├── Invert.xnb
│   │   │   │   ├── NoEffect.xnb
│   │   │   │   ├── OldSyntax_s0s1.xnb
│   │   │   │   ├── OldSyntax_s0s1t0t1.xnb
│   │   │   │   ├── OldSyntax_t0t1.xnb
│   │   │   │   ├── OldSyntax_x.xnb
│   │   │   │   └── RainbowH.xnb
│   │   │   ├── XNA.csproj
│   │   │   └── XNA.sln
│   │   ├── Fonts/
│   │   │   ├── DataFont.xnb
│   │   │   ├── Default.xnb
│   │   │   ├── JingJing.spritefont
│   │   │   ├── JingJing.xnb
│   │   │   ├── Lindsey.spritefont
│   │   │   ├── Lindsey.xnb
│   │   │   ├── Localized.spritefont
│   │   │   ├── Motorwerk.spritefont
│   │   │   ├── Motorwerk.xnb
│   │   │   ├── QuartzMS.spritefont
│   │   │   ├── QuartzMS.xnb
│   │   │   ├── SegoeKeycaps.spritefont
│   │   │   ├── SegoeKeycaps.xnb
│   │   │   └── Strings.resx
│   │   ├── Models/
│   │   │   ├── BlenderDefaultCube.xnb
│   │   │   ├── Box.blend
│   │   │   ├── Dude/
│   │   │   │   ├── dude.fbx
│   │   │   │   ├── dude_2011.fbx
│   │   │   │   ├── head.tga
│   │   │   │   ├── jacket.tga
│   │   │   │   ├── pants.tga
│   │   │   │   └── upBodyC.tga
│   │   │   ├── NonSkeletonAnimated.fbx
│   │   │   ├── Spaceship.xnb
│   │   │   └── enemy_0.xnb
│   │   ├── Projects/
│   │   │   ├── BuildSimpleProject.csproj
│   │   │   └── Content/
│   │   │       ├── Content.mgcb
│   │   │       └── ContentFont.spritefont
│   │   ├── Textures/
│   │   │   ├── GlassPane.xnb
│   │   │   ├── LogoOnly_64px-R8G8B8.dds
│   │   │   ├── LogoOnly_64px-X8R8G8B8.dds
│   │   │   ├── LogoOnly_64px-mipmaps.dds
│   │   │   ├── LogoOnly_64px.dds
│   │   │   ├── LogoOnly_64px.tga
│   │   │   ├── LogoOnly_64px.tif
│   │   │   ├── Logo_65x64_16bit.xnb
│   │   │   ├── MonoGameIcon.xnb
│   │   │   ├── SampleCube64DXT1Mips.dds
│   │   │   ├── SampleCube64DXT1Mips.xnb
│   │   │   ├── Sunset.dds
│   │   │   ├── Surge.xnb
│   │   │   ├── fun-background.xnb
│   │   │   ├── lines-128.xnb
│   │   │   ├── lines-32.xnb
│   │   │   ├── lines-64.xnb
│   │   │   ├── lines-diag-128.xnb
│   │   │   ├── lines-diag-32.xnb
│   │   │   ├── lines-diag-64.xnb
│   │   │   ├── random_16px_dxt.xnb
│   │   │   ├── random_16px_dxt_alpha.xnb
│   │   │   ├── red_668_dxt.xnb
│   │   │   ├── rgbf.tif
│   │   │   ├── sample_1280x853.hdr
│   │   │   ├── white-1.xnb
│   │   │   ├── white-128.xnb
│   │   │   ├── white-32.xnb
│   │   │   └── white-64.xnb
│   │   ├── Xml/
│   │   │   ├── 01_TheBasics.xml
│   │   │   ├── 02_Inheritance.xml
│   │   │   ├── 03_IncludingPrivateMembers.xml
│   │   │   ├── 04_ExcludingPublicMembers.xml
│   │   │   ├── 04_ExcludingPublicMembersOutput.xml
│   │   │   ├── 05_RenamingXmlElements.xml
│   │   │   ├── 06_NullReferences.xml
│   │   │   ├── 07_OptionalElements.xml
│   │   │   ├── 08_AllowNull.xml
│   │   │   ├── 09_Collections.xml
│   │   │   ├── 10_CollectionItemName.xml
│   │   │   ├── 11_Dictionaries.xml
│   │   │   ├── 12_MathTypes.xml
│   │   │   ├── 13_PolymorphicTypes.xml
│   │   │   ├── 14_Namespaces.xml
│   │   │   ├── 15_FlattenContent.xml
│   │   │   ├── 16_SharedResources.xml
│   │   │   ├── 17_ExternalReferences.xml
│   │   │   ├── 18_PrimitiveTypes.xml
│   │   │   ├── 19_FontDescription.xml
│   │   │   ├── 20_SystemTypes.xml
│   │   │   ├── 21_CustomFormatting.xml
│   │   │   ├── 22_GetterOnlyProperties.xml
│   │   │   ├── 23_GetterOnlyPolymorphicArrayProperties.xml
│   │   │   ├── 24_GenericTypes.xml
│   │   │   ├── 25_StructArrayNoElements.xml
│   │   │   ├── 26_ChildCollections.xml
│   │   │   ├── 27_Colors.xml
│   │   │   └── 28_XnaCurve.xml
│   │   └── tests.xsl
│   ├── Components/
│   │   ├── Colored3DCubeComponent.cs
│   │   ├── DrawFrameNumberComponent.cs
│   │   ├── FlexibleGameComponent.cs
│   │   ├── ImplicitDrawOrderComponent.cs
│   │   ├── InitializeOrderComponent.cs
│   │   ├── Simple3DCubeComponent.cs
│   │   ├── SpaceshipModelDrawComponent.cs
│   │   ├── TexturedQuadComponent.cs
│   │   ├── VisualTestDrawableGameComponent.cs
│   │   └── VisualTestGameComponent.cs
│   ├── ContentPipeline/
│   │   ├── AssetTestClasses.cs
│   │   ├── AudioContentTests.cs
│   │   ├── BitmapContentTests.cs
│   │   ├── BuilderTargetsTest.cs
│   │   ├── ContentCompilerTest.cs
│   │   ├── EffectProcessorTests.cs
│   │   ├── FbxImporterTests.cs
│   │   ├── FontDescriptionProcessorTests.cs
│   │   ├── FontDescriptionTests.cs
│   │   ├── FontTextureProcessorTests.cs
│   │   ├── IntermediateDeserializerTest.cs
│   │   ├── IntermediateSerializerTest.cs
│   │   ├── MeshBuilderTests.cs
│   │   ├── MeshHelperTest.cs
│   │   ├── ModelProcessorTests.cs
│   │   ├── Mp3ImporterTests.cs
│   │   ├── OggImporterTests.cs
│   │   ├── OpenAssetImporterTests.cs
│   │   ├── TestCompiler.cs
│   │   ├── TestImporterContext.cs
│   │   ├── TextureContentTests.cs
│   │   ├── TextureImporterTests.cs
│   │   ├── TextureProcessorTests.cs
│   │   ├── WavImporterTests.cs
│   │   └── WmaImporterTests.cs
│   ├── Directory.Build.props
│   ├── Framework/
│   │   ├── BoundingTest.cs
│   │   ├── ColorTest.cs
│   │   ├── CurveKeyCollectionTest.cs
│   │   ├── CurveKeyTest.cs
│   │   ├── CurveTest.cs
│   │   ├── EnumConformingTest.cs
│   │   ├── FrameworkDispatcherTest.cs
│   │   ├── MathHelperTest.cs
│   │   ├── MatrixTest.cs
│   │   ├── PackedVectorTest.cs
│   │   ├── PlaneTest.cs
│   │   ├── PointTest.cs
│   │   ├── QuaternionTest.cs
│   │   ├── RayTest.cs
│   │   ├── RectangleTest.cs
│   │   ├── TitleContainerTest.cs
│   │   ├── UtilitiesTest.cs
│   │   ├── Vector2Test.cs
│   │   ├── Vector3Test.cs
│   │   ├── Vector4Test.cs
│   │   └── VertexTests.cs
│   ├── Framework.Audio/
│   │   ├── DynamicSoundEffectInstanceTest.cs
│   │   ├── SoundEffectInstanceTest.cs
│   │   ├── SoundEffectTest.cs
│   │   ├── XAudio/
│   │   │   └── SoundEffectInstanceXAudioTest.cs
│   │   └── XactTest.cs
│   ├── Framework.Game/
│   │   ├── GameComponentTest.cs
│   │   ├── GameTest+Methods.cs
│   │   ├── GameTest+Properties.cs
│   │   └── GameTest.cs
│   ├── Framework.Graphics/
│   │   ├── BlendStateTest.cs
│   │   ├── DepthStencilStateTest.cs
│   │   ├── EffectTest.cs
│   │   ├── GraphicsAdapterTest.cs
│   │   ├── GraphicsDeviceManagerTest.cs
│   │   ├── GraphicsDeviceTest.cs
│   │   ├── IndexBufferTest.cs
│   │   ├── MiscellaneousTests.cs
│   │   ├── ModelTest.cs
│   │   ├── OcclusionQueryTest.cs
│   │   ├── ProfileReachTest.cs
│   │   ├── RasterizerStateTest.cs
│   │   ├── RenderTarget2DTest.cs
│   │   ├── RenderTargetCubeTest.cs
│   │   ├── SamplerStateTest.cs
│   │   ├── ScissorRectangleTest.cs
│   │   ├── ShaderTest.cs
│   │   ├── SpriteBatchTest.cs
│   │   ├── SpriteFontTest.cs
│   │   ├── Texture2DNonVisualTest.cs
│   │   ├── Texture2DTest.cs
│   │   ├── Texture3DNonVisualTest.cs
│   │   ├── Texture3DTest.cs
│   │   ├── TextureCubeTest.cs
│   │   ├── VertexBufferTest.cs
│   │   ├── ViewportTest.cs
│   │   └── VisualMiscellaneousTests.cs
│   ├── Framework.Input/
│   │   ├── GamePadTest.cs
│   │   ├── GestureRecognizerTest.cs
│   │   ├── JoystickTest.cs
│   │   ├── KeyboardTest.cs
│   │   ├── MouseTest.cs
│   │   ├── TouchCollectionTest.cs
│   │   ├── TouchLocationTest.cs
│   │   └── TouchPanelTest.cs
│   ├── Interactive/
│   │   ├── Linux/
│   │   │   └── MouseGetStateAndIsMouseVisibleTester/
│   │   │       └── MouseGetStateAndIsMouseVisibleTester.csproj
│   │   ├── MacOS/
│   │   │   ├── BlockingRun/
│   │   │   │   ├── BlockingRun.csproj
│   │   │   │   ├── BlockingRunGame.cs
│   │   │   │   ├── Content/
│   │   │   │   │   └── SimpleFont.xnb
│   │   │   │   ├── Info.plist
│   │   │   │   └── Main.cs
│   │   │   ├── GamePadTest/
│   │   │   │   ├── Content/
│   │   │   │   │   ├── UiCursor.xnb
│   │   │   │   │   └── fntStandard.xnb
│   │   │   │   ├── Game1.cs
│   │   │   │   ├── GamePadTest.csproj
│   │   │   │   ├── Info.plist
│   │   │   │   └── Program.cs
│   │   │   ├── MouseGetStateAndIsMouseVisibleTester/
│   │   │   │   ├── MouseGetStateAndIsMouseVisibleTester/
│   │   │   │   │   ├── Content/
│   │   │   │   │   │   ├── UiCursor.xnb
│   │   │   │   │   │   └── fntStandard.xnb
│   │   │   │   │   ├── Enums.cs
│   │   │   │   │   ├── Game1.cs
│   │   │   │   │   ├── Info.plist
│   │   │   │   │   ├── InputManager.cs
│   │   │   │   │   ├── MainMenu.xib
│   │   │   │   │   ├── MouseGetStateAndIsMouseVisibleTester.csproj
│   │   │   │   │   ├── Object.cs
│   │   │   │   │   ├── Program.cs
│   │   │   │   │   ├── Properties/
│   │   │   │   │   │   └── AssemblyInfo.cs
│   │   │   │   │   └── TextManager.cs
│   │   │   │   └── MouseGetStateAndIsMouseVisibleTester.sln
│   │   │   ├── PrimitivesTest/
│   │   │   │   ├── App.config
│   │   │   │   ├── Game1.cs
│   │   │   │   ├── Info.plist
│   │   │   │   ├── PrimitivesTest.csproj
│   │   │   │   └── Program.cs
│   │   │   ├── SoundTest/
│   │   │   │   ├── Content/
│   │   │   │   │   ├── DepositingIntoVat_Loop.xnb
│   │   │   │   │   ├── Explosion.xnb
│   │   │   │   │   ├── ExplosionSound.xnb
│   │   │   │   │   └── FillingHoneyPot_Loop.xnb
│   │   │   │   ├── Game1.cs
│   │   │   │   ├── Info.plist
│   │   │   │   ├── MainMenu.xib
│   │   │   │   ├── Program.cs
│   │   │   │   └── SoundTest_MacOS.csproj
│   │   │   ├── SoundTest2/
│   │   │   │   └── SoundTest2_MacOs/
│   │   │   │       ├── Content/
│   │   │   │       │   ├── DepositingIntoVat_Loop.xnb
│   │   │   │       │   ├── Explosion.xnb
│   │   │   │       │   ├── ExplosionSound.xnb
│   │   │   │       │   └── FillingHoneyPot_Loop.xnb
│   │   │   │       ├── Game1.cs
│   │   │   │       ├── Info.plist
│   │   │   │       ├── MainMenu.xib
│   │   │   │       ├── Program.cs
│   │   │   │       └── SoundTest2_MacOs.csproj
│   │   │   ├── TestDataSetAndGet/
│   │   │   │   ├── Content/
│   │   │   │   │   ├── Block.xnb
│   │   │   │   │   ├── Person.xnb
│   │   │   │   │   └── Warrior3Active.xnb
│   │   │   │   ├── Game1.cs
│   │   │   │   ├── Info.plist
│   │   │   │   ├── Program.cs
│   │   │   │   └── TestDataSetAndGet.csproj
│   │   │   └── TextureScaleColorTest/
│   │   │       ├── Content/
│   │   │       │   ├── FontCalibri14.xnb
│   │   │       │   └── blank.xnb
│   │   │       ├── Game1.cs
│   │   │       ├── Info.plist
│   │   │       ├── MainMenu.xib
│   │   │       ├── Program.cs
│   │   │       └── TextureScaleColorTest.csproj
│   │   ├── MonoGame.InteractiveTests.Linux.sln
│   │   ├── MonoGame.InteractiveTests.MacOS.sln
│   │   ├── MonoGame.InteractiveTests.Windows.sln
│   │   ├── Windows/
│   │   │   ├── Issue1355/
│   │   │   │   ├── Issue1355/
│   │   │   │   │   ├── Game.cs
│   │   │   │   │   ├── Issue1355.csproj
│   │   │   │   │   └── Issue1355_MonoGame.csproj
│   │   │   │   ├── Issue1355.sln
│   │   │   │   └── Issue1355Content/
│   │   │   │       ├── DutchAndHarley.spritefont
│   │   │   │       └── Issue1355Content.contentproj
│   │   │   ├── SoundTest/
│   │   │   │   └── SoundTest.csproj
│   │   │   └── SoundTest2/
│   │   │       └── SoundTest2.csproj
│   │   └── iOS/
│   │       ├── AppDelegate.cs
│   │       ├── Categories.cs
│   │       ├── Guide/
│   │       │   └── GuideTestGame.cs
│   │       ├── Info.plist
│   │       ├── InteractiveTestAttribute.cs
│   │       ├── Main.cs
│   │       ├── MonoGame.InteractiveTests.iOS.csproj
│   │       ├── RootViewController.cs
│   │       ├── TestUI/
│   │       │   ├── Button.cs
│   │       │   ├── DrawContext.cs
│   │       │   ├── Label.cs
│   │       │   ├── PaddingF.cs
│   │       │   ├── TestUITestGame.cs
│   │       │   ├── Universe.cs
│   │       │   ├── UniverseComponent.cs
│   │       │   ├── View.cs
│   │       │   └── ViewCollection.cs
│   │       └── TextureScaleTest/
│   │           ├── Info.plist
│   │           ├── Program.cs
│   │           └── TextureScaleColorTest.csproj
│   ├── Kni.Tests.SDL2.GL.csproj
│   ├── Kni.Tests.WinForms.DX11.csproj
│   ├── Kni.Tests.XNA.csproj
│   ├── Kni.Tests.XNA.sln
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── README.md
│   ├── Runner/
│   │   ├── Constants.cs
│   │   ├── ContentPipeline/
│   │   │   ├── AssetTestUtility.cs
│   │   │   ├── TestContentBuildLogger.cs
│   │   │   └── TestProcessorContext.cs
│   │   ├── Extensions.cs
│   │   ├── FrameInfo.cs
│   │   ├── FramePixelData.Desktop.cs
│   │   ├── FramePixelData.cs
│   │   ├── FramePixelData.iOS.cs
│   │   ├── GameBase/
│   │   │   ├── CountCallsGame.cs
│   │   │   ├── FixtureBase.cs
│   │   │   ├── FrameCompareComponent.cs
│   │   │   ├── GraphicsDeviceTestFixtureBase.cs
│   │   │   ├── MockGame.cs
│   │   │   ├── PixelDeltaFrameComparer.cs
│   │   │   ├── TestGameBase.cs
│   │   │   ├── UpdateGuard.cs
│   │   │   ├── VisualTestFixtureBase.cs
│   │   │   └── VisualTestGame.cs
│   │   ├── PixelArgb.cs
│   │   ├── Program.cs
│   │   ├── Utility.cs
│   │   └── iOS/
│   │       ├── AppDelegate.cs
│   │       ├── Info.plist
│   │       └── Main.cs
│   └── Utilities/
│       └── ActionDaemon.cs
├── ThirdParty/
│   ├── AssimpNet/
│   │   ├── 4.1.0/
│   │   │   └── lib/
│   │   │       ├── net40/
│   │   │       │   └── AssimpNet.xml
│   │   │       └── netstandard1.3/
│   │   │           └── AssimpNet.xml
│   │   └── 5.0.0/
│   │       ├── License.txt
│   │       └── lib/
│   │           ├── net40/
│   │           │   └── AssimpNet.xml
│   │           └── netstandard2.0/
│   │               └── AssimpNet.xml
│   ├── GamepadConfig/
│   │   ├── GamepadConfig.exe.config
│   │   ├── License.txt
│   │   ├── Settings.xml
│   │   ├── Tao.Sdl.dll.config
│   │   ├── Xbox 360 Gamepad.xml
│   │   └── Xbox 360 Wireless Receiver.xml
│   ├── Lidgren.Network/
│   │   ├── Documentation/
│   │   │   ├── ChangedFromV2.txt
│   │   │   ├── Discovery.html
│   │   │   ├── Improvements.txt
│   │   │   ├── PacketLayout.txt
│   │   │   ├── SimulatingBadNetwork.html
│   │   │   ├── TODO.txt
│   │   │   └── Tutorial.html
│   │   ├── Encryption/
│   │   │   ├── NetAESEncryption.cs
│   │   │   ├── NetBlockEncryptionBase.cs
│   │   │   ├── NetCryptoProviderBase.cs
│   │   │   ├── NetDESEncryption.cs
│   │   │   ├── NetEncryption.cs
│   │   │   ├── NetRC2Encryption.cs
│   │   │   ├── NetTripleDESEncryption.cs
│   │   │   ├── NetXorEncryption.cs
│   │   │   └── NetXteaEncryption.cs
│   │   ├── NamespaceDoc.cs
│   │   ├── NetBigInteger.cs
│   │   ├── NetBitVector.cs
│   │   ├── NetBitWriter.cs
│   │   ├── NetBuffer.Peek.cs
│   │   ├── NetBuffer.Read.Reflection.cs
│   │   ├── NetBuffer.Read.cs
│   │   ├── NetBuffer.Write.Reflection.cs
│   │   ├── NetBuffer.Write.cs
│   │   ├── NetBuffer.cs
│   │   ├── NetClient.cs
│   │   ├── NetConnection.Handshake.cs
│   │   ├── NetConnection.Latency.cs
│   │   ├── NetConnection.MTU.cs
│   │   ├── NetConnection.cs
│   │   ├── NetConnectionStatistics.cs
│   │   ├── NetConnectionStatus.cs
│   │   ├── NetConstants.cs
│   │   ├── NetDeliveryMethod.cs
│   │   ├── NetException.cs
│   │   ├── NetFragmentationHelper.cs
│   │   ├── NetFragmentationInfo.cs
│   │   ├── NetIncomingMessage.cs
│   │   ├── NetIncomingMessageType.cs
│   │   ├── NetMessageType.cs
│   │   ├── NetNatIntroduction.cs
│   │   ├── NetOutgoingMessage.cs
│   │   ├── NetPeer.Discovery.cs
│   │   ├── NetPeer.Fragmentation.cs
│   │   ├── NetPeer.Internal.cs
│   │   ├── NetPeer.LatencySimulation.cs
│   │   ├── NetPeer.Logging.cs
│   │   ├── NetPeer.MessagePools.cs
│   │   ├── NetPeer.Send.cs
│   │   ├── NetPeer.cs
│   │   ├── NetPeerConfiguration.cs
│   │   ├── NetPeerStatistics.cs
│   │   ├── NetPeerStatus.cs
│   │   ├── NetQueue.cs
│   │   ├── NetRandom.Implementations.cs
│   │   ├── NetRandom.cs
│   │   ├── NetRandomSeed.cs
│   │   ├── NetReceiverChannelBase.cs
│   │   ├── NetReliableOrderedReceiver.cs
│   │   ├── NetReliableSenderChannel.cs
│   │   ├── NetReliableSequencedReceiver.cs
│   │   ├── NetReliableUnorderedReceiver.cs
│   │   ├── NetSRP.cs
│   │   ├── NetSendResult.cs
│   │   ├── NetSenderChannelBase.cs
│   │   ├── NetServer.cs
│   │   ├── NetStoredReliableMessage.cs
│   │   ├── NetTime.cs
│   │   ├── NetTuple.cs
│   │   ├── NetUPnP.cs
│   │   ├── NetUnreliableSenderChannel.cs
│   │   ├── NetUnreliableSequencedReceiver.cs
│   │   ├── NetUnreliableUnorderedReceiver.cs
│   │   ├── NetUtility.cs
│   │   ├── Properties/
│   │   │   └── AssemblyInfo.cs
│   │   └── Resources/
│   │       └── Resource.Designer.cs
│   ├── SharpFont/
│   │   └── Windows/
│   │       └── x64/
│   │           └── SharpFont.XML
│   └── Typography/
│       ├── README.md
│       └── netstandard2.0/
│           ├── Typography.GlyphLayout.deps.json
│           └── Typography.OpenFont.deps.json
├── Tools/
│   ├── Content.Pipeline.Editor.WinForms/
│   │   ├── App.config
│   │   ├── Common/
│   │   │   ├── ActionStack.cs
│   │   │   ├── AssemblyAttributes.cs
│   │   │   ├── CommandLineParser.cs
│   │   │   ├── CompressionMethod.cs
│   │   │   ├── ContentFolder.cs
│   │   │   ├── ContentItem.Importer.cs
│   │   │   ├── ContentItem.Processor.cs
│   │   │   ├── ContentItem.cs
│   │   │   ├── ContentItemConverter.cs
│   │   │   ├── ContentItemPathComparer.cs
│   │   │   ├── ContentItemState.cs
│   │   │   ├── ContentItemTemplate.cs
│   │   │   ├── FileType.cs
│   │   │   ├── IController.cs
│   │   │   ├── IProjectItem.cs
│   │   │   ├── IProjectObserver.cs
│   │   │   ├── IView.cs
│   │   │   ├── OutputParser.cs
│   │   │   ├── Package.cs
│   │   │   ├── PackageReferencesCollection.cs
│   │   │   ├── PathComparer.cs
│   │   │   ├── PathHelper.cs
│   │   │   ├── PipelineController.ExcludeAction.cs
│   │   │   ├── PipelineController.IncludeAction.cs
│   │   │   ├── PipelineController.MoveAction.cs
│   │   │   ├── PipelineController.NewAction.cs
│   │   │   ├── PipelineController.UpdateContentItemAction.cs
│   │   │   ├── PipelineController.UpdateProjectAction.cs
│   │   │   ├── PipelineController.cs
│   │   │   ├── PipelineProject.cs
│   │   │   ├── PipelineProjectParser.cs
│   │   │   ├── PipelineSettings.cs
│   │   │   ├── PipelineTypes.cs
│   │   │   ├── ProjectState.cs
│   │   │   ├── Selection.cs
│   │   │   ├── StringExtensions.cs
│   │   │   └── Util.cs
│   │   ├── Content.Pipeline.Editor.net4.csproj
│   │   ├── Content.Pipeline.Editor.net8.csproj
│   │   ├── Forms/
│   │   │   ├── AboutDialog.Designer.cs
│   │   │   ├── AboutDialog.cs
│   │   │   ├── AboutDialog.resx
│   │   │   ├── BuildIcons.cs
│   │   │   ├── ContentIcons.cs
│   │   │   ├── Controls/
│   │   │   │   ├── FilterOutputControl.cs
│   │   │   │   └── TabControlEx.cs
│   │   │   ├── EditorIcons.cs
│   │   │   ├── FolderSelectDialog.cs
│   │   │   ├── MainView.Designer.cs
│   │   │   ├── MainView.cs
│   │   │   ├── MainView.resx
│   │   │   ├── MultiSelectTreeview.cs
│   │   │   ├── NewContentDialog.Designer.cs
│   │   │   ├── NewContentDialog.cs
│   │   │   ├── NewContentDialog.resx
│   │   │   ├── PackageDialog.Designer.cs
│   │   │   ├── PackageDialog.cs
│   │   │   ├── PackageDialog.resx
│   │   │   ├── PackageReferenceDialog.Designer.cs
│   │   │   ├── PackageReferenceDialog.cs
│   │   │   ├── PackageReferenceDialog.resx
│   │   │   ├── PipelineProjectProxy.cs
│   │   │   ├── ReferenceDialog.Designer.cs
│   │   │   ├── ReferenceDialog.cs
│   │   │   ├── ReferenceDialog.resx
│   │   │   ├── SortedEnumTypeConverter.cs
│   │   │   ├── TextEditDialog.Designer.cs
│   │   │   ├── TextEditDialog.cs
│   │   │   ├── TextEditDialog.resx
│   │   │   ├── TreeViewExtensions.cs
│   │   │   └── TreeViewNodeSorter.cs
│   │   ├── Program.cs
│   │   ├── Properties/
│   │   │   ├── AssemblyInfo.cs
│   │   │   ├── Resources.Designer.cs
│   │   │   ├── Resources.resx
│   │   │   ├── Settings.Designer.cs
│   │   │   └── Settings.settings
│   │   ├── Templates/
│   │   │   ├── Effect.fx
│   │   │   ├── Effect.template
│   │   │   ├── LocalizedSpriteFont.spritefont
│   │   │   ├── LocalizedSpriteFont.template
│   │   │   ├── SpriteEffect.fx
│   │   │   ├── SpriteEffect.template
│   │   │   ├── SpriteFont.spritefont
│   │   │   ├── SpriteFont.template
│   │   │   ├── XmlContent.template
│   │   │   └── XmlContent.xml
│   │   └── app.manifest
│   ├── Directory.Build.props
│   ├── EffectCompiler/
│   │   ├── BuildLogger.cs
│   │   ├── CommandLineParser.cs
│   │   ├── EffectCompiler.csproj
│   │   ├── ImporterContext.cs
│   │   ├── Options.cs
│   │   ├── ProcessorContext.cs
│   │   ├── Program.cs
│   │   └── Properties/
│   │       ├── AssemblyInfo.cs
│   │       └── launchSettings.json
│   ├── MonoGame.Content.Builder/
│   │   ├── AssertListener.cs
│   │   ├── BuildAsyncState.cs
│   │   ├── BuildEvent.cs
│   │   ├── CommandLineParser.cs
│   │   ├── CompressionMethod.cs
│   │   ├── ConsoleAsyncLogger.cs
│   │   ├── ConsoleLogger.cs
│   │   ├── ContentBuilder.cs
│   │   ├── Directory.Build.props
│   │   ├── ImporterContext.cs
│   │   ├── MGCB.csproj
│   │   ├── Package.cs
│   │   ├── PackageReferencesCollection.cs
│   │   ├── PathHelper.cs
│   │   ├── PipelineManager.cs
│   │   ├── ProcessorContext.cs
│   │   ├── Program.cs
│   │   ├── Properties/
│   │   │   ├── AssemblyInfo.cs
│   │   │   └── launchSettings.json
│   │   └── SourceFileCollection.cs
│   └── MonoGame.Packaging.Flatpak/
│       ├── BuildFlatpakTask.cs
│       ├── MonoGame.Packaging.Flatpak.Common.props
│       ├── MonoGame.Packaging.Flatpak.csproj
│       ├── MonoGame.Packaging.Flatpak.targets
│       └── README.md
├── default.build
├── global.json
├── kniPackage.props
└── src/
    ├── Xna.Framework/
    │   ├── BoundingBox.cs
    │   ├── BoundingFrustum.cs
    │   ├── BoundingSphere.cs
    │   ├── Complex.cs
    │   ├── ContainmentType.cs
    │   ├── Curve.cs
    │   ├── CurveContinuity.cs
    │   ├── CurveKey.cs
    │   ├── CurveKeyCollection.cs
    │   ├── CurveLoopType.cs
    │   ├── CurveTangent.cs
    │   ├── FrameworkDispatcher.cs
    │   ├── ICurveEvaluator.cs
    │   ├── ILLink.Descriptors.xml
    │   ├── IntersectsHelper.cs
    │   ├── MathHelper.cs
    │   ├── Matrix.cs
    │   ├── Plane.cs
    │   ├── PlaneIntersectionType.cs
    │   ├── PlayerIndex.cs
    │   ├── Point.cs
    │   ├── Pose2.cs
    │   ├── Pose3.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   ├── Quaternion.cs
    │   ├── Ray.cs
    │   ├── Rectangle.cs
    │   ├── Vector2.cs
    │   ├── Vector3.cs
    │   ├── Vector4.cs
    │   └── Xna.Framework.csproj
    ├── Xna.Framework.Audio/
    │   ├── Audio/
    │   │   ├── AudioChannels.cs
    │   │   ├── AudioEmitter.cs
    │   │   ├── AudioFactory.cs
    │   │   ├── AudioListener.cs
    │   │   ├── AudioService.InstancePool.cs
    │   │   ├── AudioService.Microphones.cs
    │   │   ├── AudioService.cs
    │   │   ├── AudioServiceStrategy.cs
    │   │   ├── DynamicSoundEffectInstance.cs
    │   │   ├── InstancePlayLimitException.cs
    │   │   ├── Microphone.cs
    │   │   ├── NoAudioHardwareException.cs
    │   │   ├── NoMicrophoneConnectedException.cs
    │   │   ├── SoundEffect.cs
    │   │   ├── SoundEffectInstance.cs
    │   │   ├── SoundState.cs
    │   │   ├── Utilities/
    │   │   │   ├── AudioUtil.cs
    │   │   │   └── MsAdpcmDecoder.cs
    │   │   └── Xact/
    │   │       ├── AudioCategory.cs
    │   │       ├── AudioEngine.cs
    │   │       ├── AudioStopOptions.cs
    │   │       ├── ClipEvent.cs
    │   │       ├── CrossfadeType.cs
    │   │       ├── Cue.cs
    │   │       ├── DspParameter.cs
    │   │       ├── FilterMode.cs
    │   │       ├── MaxInstanceBehavior.cs
    │   │       ├── MiniFormatTag.cs
    │   │       ├── PlayWaveEvent.cs
    │   │       ├── ReverbSettings.cs
    │   │       ├── RpcCurve.cs
    │   │       ├── RpcParameter.cs
    │   │       ├── RpcPoint.cs
    │   │       ├── RpcPointType.cs
    │   │       ├── RpcVariable.cs
    │   │       ├── SoundBank.cs
    │   │       ├── VolumeEvent.cs
    │   │       ├── WaveBank.cs
    │   │       ├── XactClip.cs
    │   │       ├── XactHelpers.cs
    │   │       └── XactSound.cs
    │   ├── Content/
    │   │   └── SoundEffectReader.cs
    │   ├── ILLink.Descriptors.xml
    │   ├── NamespaceDoc.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   └── Xna.Framework.Audio.csproj
    ├── Xna.Framework.Content/
    │   ├── Content/
    │   │   ├── ContentLoadException.cs
    │   │   ├── ContentManager.cs
    │   │   ├── ContentReader.cs
    │   │   ├── ContentReaders/
    │   │   │   ├── ArrayReader.cs
    │   │   │   ├── BooleanReader.cs
    │   │   │   ├── BoundingBoxReader.cs
    │   │   │   ├── BoundingFrustumReader.cs
    │   │   │   ├── BoundingSphereReader.cs
    │   │   │   ├── ByteReader.cs
    │   │   │   ├── CharReader.cs
    │   │   │   ├── ComplexReader.cs
    │   │   │   ├── CurveReader.cs
    │   │   │   ├── DateTimeReader.cs
    │   │   │   ├── DecimalReader.cs
    │   │   │   ├── DictionaryReader.cs
    │   │   │   ├── DoubleReader.cs
    │   │   │   ├── EnumReader.cs
    │   │   │   ├── ExternalReferenceReader.cs
    │   │   │   ├── Int16Reader.cs
    │   │   │   ├── Int32Reader.cs
    │   │   │   ├── Int64Reader.cs
    │   │   │   ├── ListReader.cs
    │   │   │   ├── MatrixReader.cs
    │   │   │   ├── MultiArrayReader.cs
    │   │   │   ├── NullableReader.cs
    │   │   │   ├── PlaneReader.cs
    │   │   │   ├── PointReader.cs
    │   │   │   ├── QuaternionReader.cs
    │   │   │   ├── RayReader.cs
    │   │   │   ├── RectangleReader.cs
    │   │   │   ├── ReflectiveReader.cs
    │   │   │   ├── SByteReader.cs
    │   │   │   ├── SingleReader.cs
    │   │   │   ├── StringReader.cs
    │   │   │   ├── TimeSpanReader.cs
    │   │   │   ├── UInt16Reader.cs
    │   │   │   ├── UInt32Reader.cs
    │   │   │   ├── UInt64Reader.cs
    │   │   │   ├── Vector2Reader.cs
    │   │   │   ├── Vector3Reader.cs
    │   │   │   └── Vector4Reader.cs
    │   │   ├── ContentSerializerAttribute.cs
    │   │   ├── ContentSerializerCollectionItemNameAttribute.cs
    │   │   ├── ContentSerializerIgnoreAttribute.cs
    │   │   ├── ContentSerializerRuntimeTypeAttribute.cs
    │   │   ├── ContentSerializerTypeVersionAttribute.cs
    │   │   ├── ContentTypeReader.cs
    │   │   ├── ContentTypeReaderManager.cs
    │   │   ├── ResourceContentManager.cs
    │   │   └── Utilities/
    │   │       ├── ContentBufferPool.cs
    │   │       ├── ContentExtensions.cs
    │   │       ├── FileHelpers.cs
    │   │       ├── Lz4DecoderStream.cs
    │   │       ├── LzxDecoder.cs
    │   │       ├── LzxDecoderStream.cs
    │   │       └── ReflectionHelpers.cs
    │   ├── ILLink.Descriptors.xml
    │   ├── NamespaceDoc.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   ├── TitleContainer.cs
    │   ├── TitleContainerFactory.cs
    │   ├── TitleContainerStrategy.cs
    │   ├── TitlePlatform.cs
    │   └── Xna.Framework.Content.csproj
    ├── Xna.Framework.Content.Pipeline/
    │   ├── ChildCollection.cs
    │   ├── ContentBuildLogger.cs
    │   ├── ContentIdentity.cs
    │   ├── ContentImporter.cs
    │   ├── ContentImporterAttribute.cs
    │   ├── ContentImporterContext.cs
    │   ├── ContentItem.cs
    │   ├── ContentProcessor.cs
    │   ├── ContentProcessorAttribute.cs
    │   ├── ContentProcessorContext.cs
    │   ├── ExternalReference.cs
    │   ├── IContentImporter.cs
    │   ├── IContentProcessor.cs
    │   ├── InvalidContentException.cs
    │   ├── NamedValueDictionary.cs
    │   ├── OpaqueDataDictionary.cs
    │   ├── PipelineComponentScanner.cs
    │   ├── PipelineException.cs
    │   ├── ProcessorParameter.cs
    │   ├── ProcessorParameterCollection.cs
    │   ├── Processors/
    │   │   └── PassThroughProcessor.cs
    │   ├── Properties/
    │   │   ├── AssemblyInfo.cs
    │   │   └── AssemblyInfo.net4.cs
    │   ├── Serialization/
    │   │   ├── Compiler/
    │   │   │   ├── ArrayWriter.cs
    │   │   │   ├── BooleanWriter.cs
    │   │   │   ├── BoundingBoxWriter.cs
    │   │   │   ├── BoundingFrustumWriter.cs
    │   │   │   ├── BoundingSphereWriter.cs
    │   │   │   ├── ByteWriter.cs
    │   │   │   ├── CharWriter.cs
    │   │   │   ├── ComplexWriter.cs
    │   │   │   ├── ContentCompiler.cs
    │   │   │   ├── ContentCompression.cs
    │   │   │   ├── ContentTypeWriter.cs
    │   │   │   ├── ContentTypeWriterAttribute.cs
    │   │   │   ├── ContentTypeWriterBase.cs
    │   │   │   ├── ContentTypeWriterBaseGeneric.cs
    │   │   │   ├── ContentWriter.cs
    │   │   │   ├── CurveWriter.cs
    │   │   │   ├── DateTimeWriter.cs
    │   │   │   ├── DecimalWriter.cs
    │   │   │   ├── DictionaryWriter.cs
    │   │   │   ├── DoubleWriter.cs
    │   │   │   ├── EnumWriter.cs
    │   │   │   ├── ExternalReferenceWriter.cs
    │   │   │   ├── Int16Writer.cs
    │   │   │   ├── Int32Writer.cs
    │   │   │   ├── Int64Writer.cs
    │   │   │   ├── ListWriter.cs
    │   │   │   ├── MatrixWriter.cs
    │   │   │   ├── MultiArrayWriter.cs
    │   │   │   ├── NullableWriter.cs
    │   │   │   ├── PlaneWriter.cs
    │   │   │   ├── PointWriter.cs
    │   │   │   ├── QuaternionWriter.cs
    │   │   │   ├── RayWriter.cs
    │   │   │   ├── RectangleWriter.cs
    │   │   │   ├── ReflectiveWriter.cs
    │   │   │   ├── SByteWriter.cs
    │   │   │   ├── SingleWriter.cs
    │   │   │   ├── StringWriter.cs
    │   │   │   ├── TimeSpanWriter.cs
    │   │   │   ├── UInt16Writer.cs
    │   │   │   ├── UInt32Writer.cs
    │   │   │   ├── UInt64Writer.cs
    │   │   │   ├── Vector2Writer.cs
    │   │   │   ├── Vector3Writer.cs
    │   │   │   └── Vector4Writer.cs
    │   │   └── Intermediate/
    │   │       ├── ArraySerializer.cs
    │   │       ├── BoolSerializer.cs
    │   │       ├── ByteSerializer.cs
    │   │       ├── CharSerializer.cs
    │   │       ├── ColorSerializer.cs
    │   │       ├── ContentTypeSerializer.cs
    │   │       ├── ContentTypeSerializerAttribute.cs
    │   │       ├── ContentTypeSerializerT.cs
    │   │       ├── CurveKeyCollectionSerializer.cs
    │   │       ├── DictionarySerializer.cs
    │   │       ├── DoubleSerializer.cs
    │   │       ├── ElementSerializerT.cs
    │   │       ├── EnumSerializer.cs
    │   │       ├── ExternalReferenceSerializer.cs
    │   │       ├── FloatSerializer.cs
    │   │       ├── GenericCollectionHelper.cs
    │   │       ├── IntSerializer.cs
    │   │       ├── IntermediateReader.cs
    │   │       ├── IntermediateSerializer.cs
    │   │       ├── IntermediateWriter.cs
    │   │       ├── ListSerializer.cs
    │   │       ├── LongSerializer.cs
    │   │       ├── MatrixSerializer.cs
    │   │       ├── NamedValueDictionarySerializer.cs
    │   │       ├── NamespaceAliasHelper.cs
    │   │       ├── NonGenericIListSerializer.cs
    │   │       ├── NullableSerializer.cs
    │   │       ├── PackedElementsHelper.cs
    │   │       ├── PlaneSerializer.cs
    │   │       ├── PointSerializer.cs
    │   │       ├── QuaternionSerializer.cs
    │   │       ├── RectangleSerializer.cs
    │   │       ├── ReflectiveSerializer.cs
    │   │       ├── SByteSerializer.cs
    │   │       ├── ShortSerializer.cs
    │   │       ├── StringSerializer.cs
    │   │       ├── TimeSpanSerializer.cs
    │   │       ├── UIntSerializer.cs
    │   │       ├── ULongSerializer.cs
    │   │       ├── UShortSerializer.cs
    │   │       ├── Vector2Serializer.cs
    │   │       ├── Vector3Serializer.cs
    │   │       └── Vector4Serializer.cs
    │   ├── TargetPlatform.cs
    │   ├── Utilities/
    │   │   ├── ContentExtensions.cs
    │   │   ├── LZ4/
    │   │   │   ├── LZ4Codec.Unsafe.cs
    │   │   │   ├── LZ4Codec.Unsafe32.Dirty.cs
    │   │   │   ├── LZ4Codec.Unsafe32HC.Dirty.cs
    │   │   │   ├── LZ4Codec.Unsafe64.Dirty.cs
    │   │   │   ├── LZ4Codec.Unsafe64HC.Dirty.cs
    │   │   │   └── LZ4Codec.cs
    │   │   ├── PathHelper.cs
    │   │   └── ReflectionHelpers.cs
    │   ├── XmlImporter.cs
    │   └── Xna.Framework.Content.Pipeline.csproj
    ├── Xna.Framework.Content.Pipeline.Audio/
    │   ├── Audio/
    │   │   ├── AudioContent.cs
    │   │   ├── AudioFileType.cs
    │   │   ├── AudioFormat.cs
    │   │   ├── ConversionFormat.cs
    │   │   └── ConversionQuality.cs
    │   ├── ExternalTool.cs
    │   ├── Mp3Importer.cs
    │   ├── OggImporter.cs
    │   ├── Processors/
    │   │   ├── SoundEffectContent.cs
    │   │   └── SoundEffectProcessor.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   ├── Serialization/
    │   │   └── Compiler/
    │   │       └── SoundEffectWriter.cs
    │   ├── WavImporter.cs
    │   ├── WmaImporter.cs
    │   └── Xna.Framework.Content.Pipeline.Audio.csproj
    ├── Xna.Framework.Content.Pipeline.Graphics/
    │   ├── DdsLoader.cs
    │   ├── EffectCompiler/
    │   │   ├── SamplerStateContent.cs
    │   │   └── TPGParser/
    │   │       ├── FXParser.tpg
    │   │       ├── ParseTree.cs
    │   │       ├── ParseTreeTools.cs
    │   │       ├── Parser.cs
    │   │       ├── PassInfo.cs
    │   │       ├── SamplerStateInfo.cs
    │   │       ├── Scanner.cs
    │   │       ├── ShaderInfo.cs
    │   │       └── TechniqueInfo.cs
    │   ├── EffectImporter.cs
    │   ├── ExternalTool.cs
    │   ├── FbxImporter.cs
    │   ├── FontDescriptionImporter.cs
    │   ├── Graphics/
    │   │   ├── AlphaTestMaterialContent.cs
    │   │   ├── AnimationChannel.cs
    │   │   ├── AnimationChannelDictionary.cs
    │   │   ├── AnimationContent.cs
    │   │   ├── AnimationContentDictionary.cs
    │   │   ├── AnimationKeyframe.cs
    │   │   ├── AtcBitmapContent.cs
    │   │   ├── AtcExplicitBitmapContent.cs
    │   │   ├── AtcInterpolatedBitmapContent.cs
    │   │   ├── BasicMaterialContent.cs
    │   │   ├── BitmapContent.cs
    │   │   ├── BoneContent.cs
    │   │   ├── BoneWeight.cs
    │   │   ├── BoneWeightCollection.cs
    │   │   ├── DualTextureMaterialContent.cs
    │   │   ├── Dxt1BitmapContent.cs
    │   │   ├── Dxt3BitmapContent.cs
    │   │   ├── Dxt5BitmapContent.cs
    │   │   ├── DxtBitmapContent.cs
    │   │   ├── EffectContent.cs
    │   │   ├── EffectMaterialContent.cs
    │   │   ├── EnvironmentMapMaterialContent.cs
    │   │   ├── Etc1BitmapContent.cs
    │   │   ├── Font/
    │   │   │   ├── CharacterRegion.cs
    │   │   │   ├── CharacterRegionTypeConverter.cs
    │   │   │   ├── FontFamilyInfo.cs
    │   │   │   ├── Glyph.cs
    │   │   │   ├── GlyphPacker.cs
    │   │   │   ├── GrowRule.cs
    │   │   │   ├── MaxRectsBin.cs
    │   │   │   └── MaxRectsHeuristic.cs
    │   │   ├── FontDescription.cs
    │   │   ├── FontDescriptionStyle.cs
    │   │   ├── GeometryContent.cs
    │   │   ├── GeometryContentCollection.cs
    │   │   ├── GraphicsUtil.cs
    │   │   ├── IndexCollection.cs
    │   │   ├── IndirectPositionCollection.cs
    │   │   ├── LocalizedFontDescription.cs
    │   │   ├── MaterialContent.cs
    │   │   ├── MeshBuilder.cs
    │   │   ├── MeshContent.cs
    │   │   ├── MeshHelper.cs
    │   │   ├── MipmapChain.cs
    │   │   ├── MipmapChainCollection.cs
    │   │   ├── NodeContent.cs
    │   │   ├── NodeContentCollection.cs
    │   │   ├── PixelBitmapContent.cs
    │   │   ├── PositionCollection.cs
    │   │   ├── PvrtcBitmapContent.cs
    │   │   ├── PvrtcRgb2BitmapContent.cs
    │   │   ├── PvrtcRgb4BitmapContent.cs
    │   │   ├── PvrtcRgba2BitmapContent.cs
    │   │   ├── PvrtcRgba4BitmapContent.cs
    │   │   ├── SkinnedMaterialContent.cs
    │   │   ├── Texture2DContent.cs
    │   │   ├── Texture3DContent.cs
    │   │   ├── TextureContent.cs
    │   │   ├── TextureCubeContent.cs
    │   │   ├── TextureReferenceDictionary.cs
    │   │   ├── VectorConverter.cs
    │   │   ├── VertexChannel.cs
    │   │   ├── VertexChannelCollection.cs
    │   │   ├── VertexChannelGeneric.cs
    │   │   ├── VertexChannelNames.cs
    │   │   └── VertexContent.cs
    │   ├── OpenAssetImporter.cs
    │   ├── Processors/
    │   │   ├── CompiledEffectContent.cs
    │   │   ├── FontDescriptionProcessor.cs
    │   │   ├── FontTextureProcessor.cs
    │   │   ├── LocalizedFontProcessor.cs
    │   │   ├── MaterialProcessor.cs
    │   │   ├── MaterialProcessorDefaultEffect.cs
    │   │   ├── ModelBoneContent.cs
    │   │   ├── ModelBoneContentCollection.cs
    │   │   ├── ModelContent.cs
    │   │   ├── ModelMeshContent.cs
    │   │   ├── ModelMeshContentCollection.cs
    │   │   ├── ModelMeshPartContent.cs
    │   │   ├── ModelMeshPartContentCollection.cs
    │   │   ├── ModelProcessor.cs
    │   │   ├── SpriteFontContent.cs
    │   │   ├── TextureProcessor.cs
    │   │   ├── TextureProcessorOutputFormat.cs
    │   │   ├── VertexBufferContent.cs
    │   │   └── VertexDeclarationContent.cs
    │   ├── Properties/
    │   │   ├── AssemblyInfo.cs
    │   │   └── launchSettings.json
    │   ├── Serialization/
    │   │   └── Compiler/
    │   │       ├── AlphaTestEffectWriter.cs
    │   │       ├── BasicEffectWriter.cs
    │   │       ├── ColorWriter.cs
    │   │       ├── CompiledEffectWriter.cs
    │   │       ├── ContentTypeWriterBase.cs
    │   │       ├── DualTextureEffectWriter.cs
    │   │       ├── EffectMaterialWriter.cs
    │   │       ├── EnvironmentMapEffectWriter.cs
    │   │       ├── IndexBufferWriter.cs
    │   │       ├── ModelWriter.cs
    │   │       ├── SkinnedEffectWriter.cs
    │   │       ├── SpriteFontWriter.cs
    │   │       ├── Texture2DWriter.cs
    │   │       ├── TextureCubeWriter.cs
    │   │       ├── TextureWriter.cs
    │   │       ├── VertexBufferWriter.cs
    │   │       └── VertexDeclarationWriter.cs
    │   ├── TextureImporter.cs
    │   ├── Utilities/
    │   │   ├── ContentWriterExtensions.cs
    │   │   ├── FreeImageAPI.cs
    │   │   ├── FreeImageAPIC.cs
    │   │   ├── GraphicsExtensions.cs
    │   │   ├── ReflectionHelpers.cs
    │   │   └── VectorConverterEx.cs
    │   ├── XImporter.cs
    │   ├── XNA.Framework.Content.Pipeline.Graphics.csproj
    │   └── XNA.Framework.Content.Pipeline.Graphics.dll.config
    ├── Xna.Framework.Content.Pipeline.Graphics.MojoProcessor/
    │   ├── EffectCompiler/
    │   │   ├── ConstantBufferData.cs
    │   │   ├── EffectObject.cs
    │   │   ├── GLSLBytecode.cs
    │   │   ├── KNIFXWriter11.cs
    │   │   ├── MarshalHelper.cs
    │   │   ├── MojoShader.cs
    │   │   ├── Preprocessor.cs
    │   │   ├── SamplerInfo.cs
    │   │   ├── ShaderCompilerException.cs
    │   │   ├── ShaderData.cs
    │   │   ├── ShaderProfile.cs
    │   │   ├── ShaderProfileDX11.cs
    │   │   ├── ShaderProfileGL.cs
    │   │   ├── ShaderProfileType.cs
    │   │   ├── ShaderStage.cs
    │   │   └── ShaderVersion.cs
    │   ├── ExternalTool.cs
    │   ├── Processors/
    │   │   ├── EffectProcessor.cs
    │   │   ├── EffectProcessorDebugMode.cs
    │   │   └── MojoEffectProcessor.cs
    │   ├── Properties/
    │   │   ├── AssemblyInfo.cs
    │   │   └── launchSettings.json
    │   └── Xna.Framework.Content.Pipeline.Graphics.MojoProcessor.csproj
    ├── Xna.Framework.Content.Pipeline.Media/
    │   ├── ExternalTool.cs
    │   ├── H264Importer.cs
    │   ├── Processors/
    │   │   ├── SongProcessor.cs
    │   │   ├── VideoProcessor.cs
    │   │   └── VideoProcessorOutputFormat.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   ├── Serialization/
    │   │   └── Compiler/
    │   │       ├── SongWriter.cs
    │   │       └── VideoWriter.cs
    │   ├── SongContent.cs
    │   ├── Utilities/
    │   │   └── PathHelper.cs
    │   ├── VideoContent.cs
    │   ├── VideoImporter.cs
    │   ├── WmvImporter.cs
    │   └── Xna.Framework.Content.Pipeline.Media.csproj
    ├── Xna.Framework.Design/
    │   ├── Design/
    │   │   ├── ColorConverter.cs
    │   │   ├── Vector2Converter.cs
    │   │   ├── Vector3Converter.cs
    │   │   └── Vector4Converter.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   └── Xna.Framework.Design.csproj
    ├── Xna.Framework.Devices/
    │   ├── Devices/
    │   │   ├── DevicesFactory.cs
    │   │   ├── Haptics.cs
    │   │   ├── HapticsStrategy.cs
    │   │   └── Sensors/
    │   │       ├── Accelerometer.cs
    │   │       ├── AccelerometerFailedException.cs
    │   │       ├── AccelerometerReading.cs
    │   │       ├── AccelerometerStrategy.cs
    │   │       ├── CalibrationEventArgs.cs
    │   │       ├── Compass.cs
    │   │       ├── CompassReading.cs
    │   │       ├── CompassStrategy.cs
    │   │       ├── ISensorReading.cs
    │   │       ├── SensorBase.cs
    │   │       ├── SensorFailedException.cs
    │   │       ├── SensorReadingEventArgs.cs
    │   │       ├── SensorService.cs
    │   │       ├── SensorServiceStrategy.cs
    │   │       ├── SensorState.cs
    │   │       └── SensorStrategy.cs
    │   ├── ILLink.Descriptors.xml
    │   ├── NamespaceDoc.cs
    │   └── Xna.Framework.Devices.csproj
    ├── Xna.Framework.Game/
    │   ├── DrawableGameComponent.cs
    │   ├── FileDropEventArgs.cs
    │   ├── Game.cs
    │   ├── GameComponent.cs
    │   ├── GameComponentCollection.cs
    │   ├── GameComponentCollectionEventArgs.cs
    │   ├── GameFactory.cs
    │   ├── GameServiceContainer.cs
    │   ├── GameStrategy.cs
    │   ├── GameTime.cs
    │   ├── GameWindow.cs
    │   ├── GraphicsDeviceManager.cs
    │   ├── GraphicsDeviceManagerStrategy.cs
    │   ├── IDrawable.cs
    │   ├── IGameComponent.cs
    │   ├── ILLink.Descriptors.xml
    │   ├── IUpdateable.cs
    │   ├── LaunchParameters.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   └── Xna.Framework.Game.csproj
    ├── Xna.Framework.Graphics/
    │   ├── Color.cs
    │   ├── Content/
    │   │   ├── AlphaTestEffectReader.cs
    │   │   ├── BasicEffectReader.cs
    │   │   ├── ColorReader.cs
    │   │   ├── DualTextureEffectReader.cs
    │   │   ├── EffectMaterialReader.cs
    │   │   ├── EffectReader.cs
    │   │   ├── EnvironmentMapEffectReader.cs
    │   │   ├── IndexBufferReader.cs
    │   │   ├── ModelReader.cs
    │   │   ├── SkinnedEffectReader.cs
    │   │   ├── SpriteFontReader.cs
    │   │   ├── Texture2DReader.cs
    │   │   ├── Texture3DReader.cs
    │   │   ├── TextureCubeReader.cs
    │   │   ├── TextureReader.cs
    │   │   ├── VertexBufferReader.cs
    │   │   └── VertexDeclarationReader.cs
    │   ├── DisplayOrientation.cs
    │   ├── Graphics/
    │   │   ├── ClearOptions.cs
    │   │   ├── ColorWriteChannels.cs
    │   │   ├── CubeMapFace.cs
    │   │   ├── DeviceLostException.cs
    │   │   ├── DeviceNotResetException.cs
    │   │   ├── DirectionalLight.cs
    │   │   ├── DisplayMode.cs
    │   │   ├── DisplayModeCollection.cs
    │   │   ├── Effect/
    │   │   │   ├── AlphaTestEffect.cs
    │   │   │   ├── BasicEffect.cs
    │   │   │   ├── DualTextureEffect.cs
    │   │   │   ├── Effect.cs
    │   │   │   ├── EffectAnnotation.cs
    │   │   │   ├── EffectAnnotationCollection.cs
    │   │   │   ├── EffectHelpers.cs
    │   │   │   ├── EffectMaterial.cs
    │   │   │   ├── EffectParameter.cs
    │   │   │   ├── EffectParameterClass.cs
    │   │   │   ├── EffectParameterCollection.cs
    │   │   │   ├── EffectParameterType.cs
    │   │   │   ├── EffectPass.cs
    │   │   │   ├── EffectPassCollection.cs
    │   │   │   ├── EffectTechnique.cs
    │   │   │   ├── EffectTechniqueCollection.cs
    │   │   │   ├── EnvironmentMapEffect.cs
    │   │   │   ├── IEffectBones.cs
    │   │   │   ├── IEffectFog.cs
    │   │   │   ├── IEffectLights.cs
    │   │   │   ├── IEffectMatrices.cs
    │   │   │   ├── KNIFXHeader.cs
    │   │   │   ├── KNIFXReader11.cs
    │   │   │   ├── MGFXHeader.cs
    │   │   │   ├── MGFXReader10.cs
    │   │   │   ├── SkinnedEffect.cs
    │   │   │   └── SpriteEffect.cs
    │   │   ├── GraphicsAdapter.cs
    │   │   ├── GraphicsAdapterStrategy.cs
    │   │   ├── GraphicsAdaptersProviderStrategy.cs
    │   │   ├── GraphicsBackend.cs
    │   │   ├── GraphicsCapabilities.cs
    │   │   ├── GraphicsContext.cs
    │   │   ├── GraphicsContextStrategy.cs
    │   │   ├── GraphicsDebug.cs
    │   │   ├── GraphicsDebugMessage.cs
    │   │   ├── GraphicsDebugStrategy.cs
    │   │   ├── GraphicsDevice.cs
    │   │   ├── GraphicsDeviceStatus.cs
    │   │   ├── GraphicsDeviceStrategy.cs
    │   │   ├── GraphicsFactory.cs
    │   │   ├── GraphicsMetrics.cs
    │   │   ├── GraphicsProfile.cs
    │   │   ├── GraphicsResource.cs
    │   │   ├── GraphicsResourceStrategy.cs
    │   │   ├── IGraphicsDeviceService.cs
    │   │   ├── IGraphicsResourceStrategy.cs
    │   │   ├── IRenderTarget.cs
    │   │   ├── IRenderTarget2DStrategy.cs
    │   │   ├── IRenderTarget3DStrategy.cs
    │   │   ├── IRenderTargetCubeStrategy.cs
    │   │   ├── IRenderTargetStrategy.cs
    │   │   ├── ITexture2DStrategy.cs
    │   │   ├── ITexture3DStrategy.cs
    │   │   ├── ITextureCubeStrategy.cs
    │   │   ├── ITextureStrategy.cs
    │   │   ├── Model.cs
    │   │   ├── ModelBone.cs
    │   │   ├── ModelBoneCollection.cs
    │   │   ├── ModelEffectCollection.cs
    │   │   ├── ModelMesh.cs
    │   │   ├── ModelMeshCollection.cs
    │   │   ├── ModelMeshPart.cs
    │   │   ├── ModelMeshPartCollection.cs
    │   │   ├── NoSuitableGraphicsDeviceException.cs
    │   │   ├── OcclusionQuery.cs
    │   │   ├── OcclusionQueryStrategy.cs
    │   │   ├── PackedVector/
    │   │   │   ├── Alpha8.cs
    │   │   │   ├── Bgr565.cs
    │   │   │   ├── Bgra4444.cs
    │   │   │   ├── Bgra5551.cs
    │   │   │   ├── Byte4.cs
    │   │   │   ├── HalfSingle.cs
    │   │   │   ├── HalfTypeHelper.cs
    │   │   │   ├── HalfVector2.cs
    │   │   │   ├── HalfVector4.cs
    │   │   │   ├── IPackedVector.cs
    │   │   │   ├── NormalizedByte2.cs
    │   │   │   ├── NormalizedByte4.cs
    │   │   │   ├── NormalizedShort2.cs
    │   │   │   ├── NormalizedShort4.cs
    │   │   │   ├── Rg32.cs
    │   │   │   ├── Rgba1010102.cs
    │   │   │   ├── Rgba64.cs
    │   │   │   ├── Short2.cs
    │   │   │   └── Short4.cs
    │   │   ├── PresentInterval.cs
    │   │   ├── PresentationEventArgs.cs
    │   │   ├── PresentationParameters.cs
    │   │   ├── RenderTarget2D.cs
    │   │   ├── RenderTarget3D.cs
    │   │   ├── RenderTargetBinding.cs
    │   │   ├── RenderTargetCube.cs
    │   │   ├── RenderTargetUsage.cs
    │   │   ├── ResourceCreatedEventArgs.cs
    │   │   ├── ResourceDestroyedEventArgs.cs
    │   │   ├── SamplerStateCollection.cs
    │   │   ├── SamplerStateCollectionStrategy.cs
    │   │   ├── SetDataOptions.cs
    │   │   ├── Shader/
    │   │   │   ├── ConstantBuffer.cs
    │   │   │   ├── ConstantBufferCollection.cs
    │   │   │   ├── ConstantBufferCollectionStrategy.cs
    │   │   │   ├── ConstantBufferStrategy.cs
    │   │   │   ├── PixelShader.cs
    │   │   │   ├── SamplerInfo.cs
    │   │   │   ├── Shader.cs
    │   │   │   ├── ShaderProfileType.cs
    │   │   │   ├── ShaderStage.cs
    │   │   │   ├── ShaderStrategy.cs
    │   │   │   ├── ShaderVersion.cs
    │   │   │   ├── VertexAttribute.cs
    │   │   │   └── VertexShader.cs
    │   │   ├── SpriteBatch.cs
    │   │   ├── SpriteBatchItem.cs
    │   │   ├── SpriteBatcherStrategy.cs
    │   │   ├── SpriteEffects.cs
    │   │   ├── SpriteFont.cs
    │   │   ├── SpriteSortMode.cs
    │   │   ├── States/
    │   │   │   ├── Blend.cs
    │   │   │   ├── BlendFunction.cs
    │   │   │   ├── BlendState.cs
    │   │   │   ├── BlendStateStrategy.cs
    │   │   │   ├── CompareFunction.cs
    │   │   │   ├── CullMode.cs
    │   │   │   ├── DepthFormat.cs
    │   │   │   ├── DepthStencilState.cs
    │   │   │   ├── DepthStencilStateStrategy.cs
    │   │   │   ├── FillMode.cs
    │   │   │   ├── IBlendStateStrategy.cs
    │   │   │   ├── IDepthStencilStateStrategy.cs
    │   │   │   ├── IRasterizerStateStrategy.cs
    │   │   │   ├── ISamplerStateStrategy.cs
    │   │   │   ├── RasterizerState.cs
    │   │   │   ├── RasterizerStateStrategy.cs
    │   │   │   ├── ReadonlyBlendStateStrategy.cs
    │   │   │   ├── ReadonlyDepthStencilStateStrategy.cs
    │   │   │   ├── ReadonlyRasterizerStateStrategy.cs
    │   │   │   ├── ReadonlySamplerStateStrategy.cs
    │   │   │   ├── ResourceBlendStateStrategy.cs
    │   │   │   ├── ResourceDepthStencilStateStrategy.cs
    │   │   │   ├── ResourceRasterizerStateStrategy.cs
    │   │   │   ├── ResourceSamplerStateStrategy.cs
    │   │   │   ├── SamplerState.cs
    │   │   │   ├── SamplerStateStrategy.cs
    │   │   │   ├── StencilOperation.cs
    │   │   │   ├── TargetBlendState.cs
    │   │   │   ├── TextureAddressMode.cs
    │   │   │   ├── TextureFilter.cs
    │   │   │   └── TextureFilterMode.cs
    │   │   ├── SurfaceFormat.cs
    │   │   ├── Texture.cs
    │   │   ├── Texture2D.cs
    │   │   ├── Texture3D.cs
    │   │   ├── TextureCollection.cs
    │   │   ├── TextureCollectionStrategy.cs
    │   │   ├── TextureCube.cs
    │   │   ├── Utilities/
    │   │   │   ├── ContentReaderExtensions.cs
    │   │   │   ├── DxtDecoder.cs
    │   │   │   ├── GraphicsExtensions.cs
    │   │   │   ├── HashHelpers.cs
    │   │   │   ├── ReflectionHelpers.cs
    │   │   │   └── TextureHelpers.cs
    │   │   ├── Vertices/
    │   │   │   ├── BufferUsage.cs
    │   │   │   ├── DynamicIndexBuffer.cs
    │   │   │   ├── DynamicVertexBuffer.cs
    │   │   │   ├── IDynamicIndexBufferStrategy.cs
    │   │   │   ├── IDynamicVertexBufferStrategy.cs
    │   │   │   ├── IPlatformVertexDeclaration.cs
    │   │   │   ├── IVertexType.cs
    │   │   │   ├── IndexBuffer.cs
    │   │   │   ├── IndexBufferStrategy.cs
    │   │   │   ├── IndexElementSize.cs
    │   │   │   ├── PrimitiveType.cs
    │   │   │   ├── VertexBuffer.cs
    │   │   │   ├── VertexBufferBinding.cs
    │   │   │   ├── VertexBufferCollection.cs
    │   │   │   ├── VertexBufferStrategy.cs
    │   │   │   ├── VertexDeclaration.cs
    │   │   │   ├── VertexDeclarationCache.cs
    │   │   │   ├── VertexElement.cs
    │   │   │   ├── VertexElementFormat.cs
    │   │   │   ├── VertexElementUsage.cs
    │   │   │   ├── VertexPosition.cs
    │   │   │   ├── VertexPositionColor.cs
    │   │   │   ├── VertexPositionColorNormal.cs
    │   │   │   ├── VertexPositionColorNormalTexture.cs
    │   │   │   ├── VertexPositionColorTexture.cs
    │   │   │   ├── VertexPositionNormalTexture.cs
    │   │   │   └── VertexPositionTexture.cs
    │   │   └── Viewport.cs
    │   ├── GraphicsDeviceInformation.cs
    │   ├── IGraphicsDeviceManager.cs
    │   ├── ILLink.Descriptors.xml
    │   ├── PreparingDeviceSettingsEventArgs.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   └── Xna.Framework.Graphics.csproj
    ├── Xna.Framework.Input/
    │   ├── ILLink.Descriptors.xml
    │   ├── Input/
    │   │   ├── ButtonState.cs
    │   │   ├── Buttons.cs
    │   │   ├── GamePad.cs
    │   │   ├── GamePadButtons.cs
    │   │   ├── GamePadCapabilities.cs
    │   │   ├── GamePadDPad.cs
    │   │   ├── GamePadDeadZone.cs
    │   │   ├── GamePadState.cs
    │   │   ├── GamePadStrategy.cs
    │   │   ├── GamePadThumbSticks.cs
    │   │   ├── GamePadTouchButtons.cs
    │   │   ├── GamePadTriggers.cs
    │   │   ├── GamePadType.cs
    │   │   ├── InputFactory.cs
    │   │   ├── InputKeyEventArgs.cs
    │   │   ├── Joystick.cs
    │   │   ├── JoystickCapabilities.cs
    │   │   ├── JoystickHat.cs
    │   │   ├── JoystickState.cs
    │   │   ├── JoystickStrategy.cs
    │   │   ├── KeyState.cs
    │   │   ├── Keyboard.cs
    │   │   ├── KeyboardInput.cs
    │   │   ├── KeyboardInputStrategy.cs
    │   │   ├── KeyboardState.cs
    │   │   ├── KeyboardStrategy.cs
    │   │   ├── Keys.cs
    │   │   ├── MessageBox.cs
    │   │   ├── MessageBoxStrategy.cs
    │   │   ├── Mouse.cs
    │   │   ├── MouseCursor.cs
    │   │   ├── MouseCursorStrategy.cs
    │   │   ├── MouseState.cs
    │   │   ├── MouseStrategy.cs
    │   │   ├── TextInputEventArgs.cs
    │   │   ├── Touch/
    │   │   │   ├── GestureLocationData.cs
    │   │   │   ├── GestureSample.cs
    │   │   │   ├── GestureType.cs
    │   │   │   ├── TouchCollection.cs
    │   │   │   ├── TouchLocation.cs
    │   │   │   ├── TouchLocationData.cs
    │   │   │   ├── TouchLocationState.cs
    │   │   │   ├── TouchPanel.cs
    │   │   │   ├── TouchPanelCapabilities.cs
    │   │   │   ├── TouchPanelStrategy.Legacy.cs
    │   │   │   ├── TouchPanelStrategy.LegacyGesture.cs
    │   │   │   └── TouchPanelStrategy.cs
    │   │   ├── TouchButtonState.cs
    │   │   └── XR/
    │   │       ├── ITouchControllerInput.cs
    │   │       ├── TouchController.cs
    │   │       └── TouchControllerType.cs
    │   ├── NamespaceDoc.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   └── Xna.Framework.Input.csproj
    ├── Xna.Framework.Media/
    │   ├── Content/
    │   │   ├── SongReader.cs
    │   │   └── VideoReader.cs
    │   ├── ILLink.Descriptors.xml
    │   ├── Media/
    │   │   ├── Album.cs
    │   │   ├── AlbumCollection.cs
    │   │   ├── AlbumStrategy.cs
    │   │   ├── Artist.cs
    │   │   ├── Genre.cs
    │   │   ├── MediaFactory.cs
    │   │   ├── MediaLibrary.cs
    │   │   ├── MediaLibraryStrategy.cs
    │   │   ├── MediaPlayer.cs
    │   │   ├── MediaPlayerStrategy.cs
    │   │   ├── MediaQueue.cs
    │   │   ├── MediaSource.cs
    │   │   ├── MediaSourceType.cs
    │   │   ├── MediaState.cs
    │   │   ├── Playlist.cs
    │   │   ├── PlaylistCollection.cs
    │   │   ├── Song.cs
    │   │   ├── SongCollection.cs
    │   │   ├── SongStrategy.cs
    │   │   ├── Utilities/
    │   │   │   └── FileHelpers.cs
    │   │   ├── Video.cs
    │   │   ├── VideoPlayer.cs
    │   │   ├── VideoPlayerStrategy.cs
    │   │   ├── VideoSoundtrackType.cs
    │   │   └── VideoStrategy.cs
    │   ├── Properties/
    │   │   └── AssemblyInfo.cs
    │   └── Xna.Framework.Media.csproj
    ├── Xna.Framework.Storage/
    │   ├── ILLink.Descriptors.xml
    │   ├── NamespaceDoc.cs
    │   ├── Storage/
    │   │   ├── StorageContainer.cs
    │   │   ├── StorageContainerStrategy.cs
    │   │   ├── StorageDevice.cs
    │   │   ├── StorageDeviceStrategy.cs
    │   │   ├── StorageFactory.cs
    │   │   ├── StorageService.cs
    │   │   └── StorageServiceStrategy.cs
    │   └── Xna.Framework.Storage.csproj
    └── Xna.Framework.XR/
        ├── ILLink.Descriptors.xml
        ├── NamespaceDoc.cs
        ├── XR/
        │   ├── HandsState.cs
        │   ├── HeadsetState.cs
        │   ├── XRDevice.cs
        │   ├── XRDeviceState.cs
        │   ├── XRDeviceStrategy.cs
        │   ├── XREye.cs
        │   ├── XRFactory.cs
        │   └── XRSessionMode.cs
        └── Xna.Framework.XR.csproj
Download .txt
Showing preview only (1,288K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (13413 symbols across 1707 files)

FILE: Platforms/Audio/Android/ConcreteAudioFactory.cs
  class ConcreteAudioFactory (line 5) | public sealed class ConcreteAudioFactory : AudioFactory
    method CreateAudioServiceStrategy (line 7) | public override AudioServiceStrategy CreateAudioServiceStrategy()
    method CreateMicrophoneStrategy (line 12) | public override MicrophoneStrategy CreateMicrophoneStrategy()
    method CreateSoundEffectStrategy (line 25) | public override SoundEffectStrategy CreateSoundEffectStrategy()

FILE: Platforms/Audio/Android/ConcreteAudioServiceDroid.cs
  class ConcreteAudioServiceDroid (line 20) | internal class ConcreteAudioServiceDroid: ConcreteAudioService
    method ConcreteAudioServiceDroid (line 23) | internal ConcreteAudioServiceDroid() : base()
    method PlatformPopulateCaptureDevices (line 27) | public override void PlatformPopulateCaptureDevices(List<Microphone> m...
    method PlatformGetMaxPlayingInstances (line 69) | public override int PlatformGetMaxPlayingInstances()
    method Suspend (line 74) | public override void Suspend()
    method Resume (line 80) | public override void Resume()
    method Dispose (line 86) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/Android/ConcreteMicrophoneDroid.cs
  class ConcreteMicrophoneDroid (line 17) | public sealed class ConcreteMicrophoneDroid : MicrophoneStrategy
    method ConcreteMicrophoneDroid (line 40) | public ConcreteMicrophoneDroid() : base()
    method PlatformStart (line 44) | public override void PlatformStart(string deviceName)
    method PlatformStop (line 89) | public override void PlatformStop()
    method PlatformIsHeadset (line 96) | public override bool PlatformIsHeadset()
    method _audioRecord_MarkerReached (line 102) | private void _audioRecord_MarkerReached(object sender, AudioRecord.Mar...
    method PlatformUpdate (line 112) | public override bool PlatformUpdate()
    method PlatformGetData (line 120) | public override int PlatformGetData(byte[] buffer, int offset, int count)
    method Dispose (line 128) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/Blazor/AudioLoader.cs
  class AudioLoader (line 10) | internal static class AudioLoader
    method SampleAlignment (line 20) | public static int SampleAlignment(int audioFormat, int channels, int b...
    method Load (line 62) | public static byte[] Load(Stream stream, out int audioFormat, out int ...
    method Convert24To16 (line 189) | internal static unsafe byte[] Convert24To16(byte[] data, int offset, i...
    method ConvertFloatTo16 (line 216) | internal static unsafe byte[] ConvertFloatTo16(byte[] data, int offset...
    type ImaState (line 268) | struct ImaState
    method AdpcmImaWavExpandNibble (line 274) | static int AdpcmImaWavExpandNibble(ref ImaState channel, int nibble)
    method ConvertIma4ToPcm (line 304) | internal static byte[] ConvertIma4ToPcm(byte[] buffer, int offset, int...

FILE: Platforms/Audio/Blazor/ConcreteAudioFactory.cs
  class ConcreteAudioFactory (line 5) | public sealed class ConcreteAudioFactory : AudioFactory
    method CreateAudioServiceStrategy (line 7) | public override AudioServiceStrategy CreateAudioServiceStrategy()
    method CreateMicrophoneStrategy (line 12) | public override MicrophoneStrategy CreateMicrophoneStrategy()
    method CreateSoundEffectStrategy (line 17) | public override SoundEffectStrategy CreateSoundEffectStrategy()

FILE: Platforms/Audio/Blazor/ConcreteAudioService.cs
  class ConcreteAudioService (line 14) | internal class ConcreteAudioService : AudioServiceStrategy
    method ConcreteAudioService (line 19) | internal ConcreteAudioService()
    method CreateSoundEffectInstanceStrategy (line 24) | public override SoundEffectInstanceStrategy CreateSoundEffectInstanceS...
    method CreateDynamicSoundEffectInstanceStrategy (line 29) | public override IDynamicSoundEffectInstanceStrategy CreateDynamicSound...
    method PlatformPopulateCaptureDevices (line 34) | public override void PlatformPopulateCaptureDevices(List<Microphone> m...
    method PlatformGetMaxPlayingInstances (line 41) | public override int PlatformGetMaxPlayingInstances()
    method PlatformSetReverbSettings (line 47) | public override void PlatformSetReverbSettings(ReverbSettings reverbSe...
    method Suspend (line 51) | public override void Suspend()
    method Resume (line 55) | public override void Resume()
    method Dispose (line 59) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/Blazor/ConcreteDynamicSoundEffectInstance.cs
  class ConcreteDynamicSoundEffectInstance (line 12) | public sealed class ConcreteDynamicSoundEffectInstance : ConcreteSoundEf...
    method ConcreteDynamicSoundEffectInstance (line 42) | internal ConcreteDynamicSoundEffectInstance(AudioServiceStrategy audio...
    method DynamicPlatformGetPendingBufferCount (line 60) | public int DynamicPlatformGetPendingBufferCount()
    method PlatformPause (line 65) | public override void PlatformPause()
    method PlatformPlay (line 70) | public override void PlatformPlay(bool isLooped)
    method InitStreamSourceAsync (line 81) | private async Task InitStreamSourceAsync()
    method ReleaseMicrophoneDevice (line 101) | private void ReleaseMicrophoneDevice()
    method StreamSource_OnMessage (line 116) | private void StreamSource_OnMessage(object sender, MessageEventArgs e)
    method PlatformResume (line 133) | public override void PlatformResume(bool isLooped)
    method PlatformStop (line 138) | public override void PlatformStop()
    method PlatformRelease (line 143) | public override void PlatformRelease(bool isLooped)
    method DynamicPlatformSubmitBuffer (line 152) | public void DynamicPlatformSubmitBuffer(byte[] buffer, int offset, int...
    method DynamicPlatformUpdateBuffers (line 168) | public void DynamicPlatformUpdateBuffers()
    method DynamicPlatformClearBuffers (line 172) | public void DynamicPlatformClearBuffers()
    method Dispose (line 180) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/Blazor/ConcreteMicrophone.cs
  class ConcreteMicrophone (line 18) | public sealed class ConcreteMicrophone : MicrophoneStrategy
    method ConcreteMicrophone (line 44) | internal ConcreteMicrophone()
    method PlatformStart (line 56) | public override void PlatformStart(string deviceName)
    method PlatformStop (line 61) | public override void PlatformStop()
    method PlatformIsHeadset (line 66) | public override bool PlatformIsHeadset()
    method PlatformUpdate (line 71) | public override bool PlatformUpdate()
    method PlatformGetData (line 79) | public override int PlatformGetData(byte[] buffer, int offset, int count)
    method OnMicMessage (line 98) | private void OnMicMessage(object sender, MessageEventArgs e)
    method InitMicrophoneDeviceAsync (line 130) | private async Task InitMicrophoneDeviceAsync()
    method ReleaseMicrophoneDevice (line 158) | private void ReleaseMicrophoneDevice()
    method Dispose (line 194) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/Blazor/ConcreteSoundEffect.cs
  class ConcreteSoundEffect (line 15) | class ConcreteSoundEffect : SoundEffectStrategy
    method PlatformLoadAudioStream (line 27) | public override void PlatformLoadAudioStream(Stream stream, out TimeSp...
    method PlatformInitializeBuffer (line 46) | private void PlatformInitializeBuffer(byte[] buffer, int bufferOffset,...
    method PlatformInitializeFormat (line 96) | public override void PlatformInitializeFormat(byte[] header, byte[] bu...
    method PlatformInitializePcm (line 130) | public override void PlatformInitializePcm(byte[] buffer, int index, i...
    method InitializeIeeeFloat (line 171) | public void InitializeIeeeFloat(byte[] buffer, int index, int count, i...
    method PlatformInitializeXactAdpcm (line 212) | public override void PlatformInitializeXactAdpcm(byte[] buffer, int in...
    method GetAudioBuffer (line 220) | internal AudioBuffer GetAudioBuffer()
    method Dispose (line 227) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/Blazor/ConcreteSoundEffectInstance.cs
  class ConcreteSoundEffectInstance (line 16) | public class ConcreteSoundEffectInstance : SoundEffectInstanceStrategy
    method ConcreteSoundEffectInstance (line 89) | internal ConcreteSoundEffectInstance(AudioServiceStrategy audioService...
    method PlatformApply3D (line 111) | public override void PlatformApply3D(AudioListener listener, AudioEmit...
    method PlatformPause (line 115) | public override void PlatformPause()
    method PlatformPlay (line 120) | public override void PlatformPlay(bool isLooped)
    method PlatformResume (line 138) | public override void PlatformResume(bool isLooped)
    method PlatformStop (line 143) | public override void PlatformStop()
    method PlatformRelease (line 156) | public override void PlatformRelease(bool isLooped)
    method PlatformUpdateState (line 160) | public override bool PlatformUpdateState(ref SoundState state)
    method PlatformSetIsLooped (line 177) | public override void PlatformSetIsLooped(bool isLooped, SoundState state)
    method PlatformSetReverbMix (line 185) | public override void PlatformSetReverbMix(SoundState state, float mix,...
    method PlatformSetFilter (line 189) | public override void PlatformSetFilter(SoundState state, FilterMode mo...
    method PlatformClearFilter (line 193) | public override void PlatformClearFilter()
    method Dispose (line 197) | protected override void Dispose(bool disposing)
    method _bufferSource_OnEnded (line 213) | private void _bufferSource_OnEnded(object sender, EventArgs e)

FILE: Platforms/Audio/OpenAL/AudioLoader.cs
  class AudioLoader (line 10) | internal static class AudioLoader
    method SampleAlignment (line 20) | public static int SampleAlignment(int audioFormat, int channels, int b...
    method Load (line 62) | public static byte[] Load(Stream stream, out int audioFormat, out int ...
    method Convert24To16 (line 189) | internal static unsafe byte[] Convert24To16(byte[] data, int offset, i...
    method ConvertFloatTo16 (line 216) | internal static unsafe byte[] ConvertFloatTo16(byte[] data, int offset...
    type ImaState (line 268) | struct ImaState
    method AdpcmImaWavExpandNibble (line 274) | static int AdpcmImaWavExpandNibble(ref ImaState channel, int nibble)
    method ConvertIma4ToPcm (line 304) | internal static byte[] ConvertIma4ToPcm(byte[] buffer, int offset, int...

FILE: Platforms/Audio/OpenAL/ConcreteAudioFactory.cs
  class ConcreteAudioFactory (line 5) | public sealed class ConcreteAudioFactory : AudioFactory
    method CreateAudioServiceStrategy (line 7) | public override AudioServiceStrategy CreateAudioServiceStrategy()
    method CreateMicrophoneStrategy (line 12) | public override MicrophoneStrategy CreateMicrophoneStrategy()
    method CreateSoundEffectStrategy (line 17) | public override SoundEffectStrategy CreateSoundEffectStrategy()

FILE: Platforms/Audio/OpenAL/ConcreteAudioService.cs
  class ConcreteAudioService (line 31) | internal class ConcreteAudioService : AudioServiceStrategy
    method ConcreteAudioService (line 61) | internal ConcreteAudioService()
    method CreateSoundEffectInstanceStrategy (line 78) | public override SoundEffectInstanceStrategy CreateSoundEffectInstanceS...
    method CreateDynamicSoundEffectInstanceStrategy (line 83) | public override IDynamicSoundEffectInstanceStrategy CreateDynamicSound...
    method OpenSoundDevice (line 96) | private bool OpenSoundDevice()
    method PlatformPopulateCaptureDevices (line 233) | public override void PlatformPopulateCaptureDevices(List<Microphone> m...
    method PlatformGetMaxPlayingInstances (line 278) | public override int PlatformGetMaxPlayingInstances()
    method PlatformSetReverbSettings (line 291) | public override void PlatformSetReverbSettings(ReverbSettings reverbSe...
    method ReserveSource (line 342) | public int ReserveSource()
    method RecycleSource (line 352) | public void RecycleSource(int sourceId)
    method Suspend (line 360) | public override void Suspend()
    method Resume (line 364) | public override void Resume()
    method Dispose (line 368) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/OpenAL/ConcreteDynamicSoundEffectInstance.cs
  class ConcreteDynamicSoundEffectInstance (line 14) | public sealed class ConcreteDynamicSoundEffectInstance : ConcreteSoundEf...
    type MarkerInfo (line 29) | struct MarkerInfo
      method MarkerInfo (line 34) | public MarkerInfo(int lastBufferId, int marker) : this()
      method ToString (line 40) | public override string ToString()
    method ConcreteDynamicSoundEffectInstance (line 53) | internal ConcreteDynamicSoundEffectInstance(AudioServiceStrategy audio...
    method DynamicPlatformGetPendingBufferCount (line 66) | public int DynamicPlatformGetPendingBufferCount()
    method PlatformPause (line 71) | public override void PlatformPause()
    method PlatformPlay (line 77) | public override void PlatformPlay(bool isLooped)
    method PlatformResume (line 87) | public override void PlatformResume(bool isLooped)
    method PlatformStop (line 93) | public override void PlatformStop()
    method PlatformRelease (line 101) | public override void PlatformRelease(bool isLooped)
    method DynamicPlatformSubmitBuffer (line 109) | public void DynamicPlatformSubmitBuffer(byte[] buffer, int offset, int...
    method SubmitMarker (line 134) | internal void SubmitMarker(int markerId)
    method DynamicPlatformUpdateBuffers (line 146) | unsafe public void DynamicPlatformUpdateBuffers()
    method DynamicPlatformClearBuffers (line 181) | unsafe public void DynamicPlatformClearBuffers()
    method Dispose (line 205) | protected unsafe override void Dispose(bool disposing)

FILE: Platforms/Audio/OpenAL/ConcreteMicrophone.cs
  class ConcreteMicrophone (line 16) | public sealed class ConcreteMicrophone : MicrophoneStrategy
    method ConcreteMicrophone (line 35) | internal ConcreteMicrophone()
    method CheckALCError (line 40) | private void CheckALCError(string operation)
    method PlatformStart (line 50) | public override void PlatformStart(string deviceName)
    method PlatformStop (line 64) | public override void PlatformStop()
    method GetQueuedSampleCount (line 73) | private int GetQueuedSampleCount()
    method PlatformIsHeadset (line 80) | public override bool PlatformIsHeadset()
    method PlatformUpdate (line 85) | public override bool PlatformUpdate()
    method PlatformGetData (line 91) | public override int PlatformGetData(byte[] buffer, int offset, int count)
    method Dispose (line 116) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/OpenAL/ConcreteSoundEffect.cs
  class ConcreteSoundEffect (line 20) | class ConcreteSoundEffect : SoundEffectStrategy
    method PlatformLoadAudioStream (line 29) | public override void PlatformLoadAudioStream(Stream stream, out TimeSp...
    method PlatformInitializeFormat (line 48) | public override void PlatformInitializeFormat(byte[] header, byte[] bu...
    method PlatformInitializeBuffer (line 59) | private void PlatformInitializeBuffer(byte[] buffer, int index, int co...
    method PlatformInitializePcm (line 138) | public override void PlatformInitializePcm(byte[] buffer, int index, i...
    method PlatformInitializeXactAdpcm (line 163) | public override void PlatformInitializeXactAdpcm(byte[] buffer, int in...
    method InitializeIeeeFloat (line 182) | private void InitializeIeeeFloat(ConcreteAudioService concreteAudioSer...
    method InitializeAdpcm (line 196) | private void InitializeAdpcm(ConcreteAudioService concreteAudioService...
    method InitializeIma4 (line 212) | private void InitializeIma4(ConcreteAudioService concreteAudioService,...
    method CreateBuffer (line 227) | private void CreateBuffer(ConcreteAudioService concreteAudioService, b...
    method _audioService_Disposing (line 239) | internal void _audioService_Disposing(object sender, EventArgs e)
    method DeleteBuffer (line 244) | private void DeleteBuffer()
    method GetALBufferId (line 265) | internal int GetALBufferId()
    method Dispose (line 272) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/OpenAL/ConcreteSoundEffectInstance.cs
  class ConcreteSoundEffectInstance (line 14) | public class ConcreteSoundEffectInstance : SoundEffectInstanceStrategy
    method ConcreteSoundEffectInstance (line 98) | internal ConcreteSoundEffectInstance(AudioServiceStrategy audioService...
    method XnaPitchToAlPitch (line 115) | private static float XnaPitchToAlPitch(float xnaPitch)
    method GetSamplePosition (line 120) | internal int GetSamplePosition()
    method PlatformApply3D (line 127) | public override void PlatformApply3D(AudioListener listener, AudioEmit...
    method PlatformPause (line 151) | public override void PlatformPause()
    method PlatformPlay (line 157) | public override void PlatformPlay(bool isLooped)
    method PlatformResume (line 204) | public override void PlatformResume(bool isLooped)
    method PlatformStop (line 210) | public override void PlatformStop()
    method PlatformRelease (line 229) | public override void PlatformRelease(bool isLooped)
    method PlatformUpdateState (line 238) | public override bool PlatformUpdateState(ref SoundState state)
    method PlatformSetIsLooped (line 258) | public override void PlatformSetIsLooped(bool isLooped, SoundState state)
    method PlatformSetReverbMix (line 267) | public override void PlatformSetReverbMix(SoundState state, float mix,...
    method ApplyReverb (line 281) | void ApplyReverb()
    method ApplyFilter (line 290) | void ApplyFilter()
    method PlatformSetFilter (line 321) | public override void PlatformSetFilter(SoundState state, FilterMode mo...
    method PlatformClearFilter (line 350) | public override void PlatformClearFilter()
    method Dispose (line 358) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/OpenAL/OpenAL.cs
  type ALFormat (line 18) | internal enum ALFormat
  type ALError (line 32) | internal enum ALError
  type ALGetString (line 42) | internal enum ALGetString
  type ALBufferi (line 47) | internal enum ALBufferi
  type ALGetBufferi (line 53) | internal enum ALGetBufferi
  type ALSourceb (line 60) | internal enum ALSourceb
  type ALSourcei (line 65) | internal enum ALSourcei
  type ALSourcef (line 73) | internal enum ALSourcef
  type ALGetSourcei (line 80) | internal enum ALGetSourcei
  type ALSourceState (line 88) | internal enum ALSourceState
  type ALListener3f (line 96) | internal enum ALListener3f
  type ALSource3f (line 101) | internal enum ALSource3f
  type ALDistanceModel (line 107) | internal enum ALDistanceModel
  type AlcError (line 113) | internal enum AlcError
  type AlcGetString (line 123) | internal enum AlcGetString
  type AlcGetInteger (line 130) | internal enum AlcGetInteger
  type EfxFilteri (line 135) | internal enum EfxFilteri
  type EfxFilterf (line 140) | internal enum EfxFilterf
  type EfxFilterType (line 151) | internal enum EfxFilterType
  type EfxEffecti (line 159) | internal enum EfxEffecti
  type EfxEffectSlotf (line 165) | internal enum EfxEffectSlotf
  type EfxEffectf (line 170) | internal enum EfxEffectf
  type EfxEffectType (line 197) | internal enum EfxEffectType
  class AL (line 202) | internal class AL
    method AL (line 224) | public AL()
    method GetNativeLibrary (line 233) | private IntPtr GetNativeLibrary()
    method BufferData (line 269) | internal unsafe void BufferData(int buffer, ALFormat alFormat, byte[] ...
    method BufferData (line 283) | internal unsafe void BufferData(int buffer, ALFormat alFormat, short[]...
    method DeleteBuffers (line 295) | internal unsafe void DeleteBuffers(int[] buffers)
    method DeleteBuffer (line 303) | internal unsafe void DeleteBuffer(int buffer)
    method GetBuffer (line 320) | internal void GetBuffer(int buffer, ALGetBufferi param, out int value)
    method GenBuffers (line 329) | internal unsafe void GenBuffers(int[] buffers)
    method GenBuffer (line 337) | internal unsafe int GenBuffer()
    method GetDuration (line 344) | internal float GetDuration(int buffer, int sampleRate)
    method GetSamples (line 350) | internal int GetSamples(int buffer)
    method GenSources (line 366) | internal unsafe void GenSources(int[] sources)
    method GenSource (line 374) | internal unsafe int GenSource()
    method IsBuffer (line 389) | internal bool IsBuffer(int buffer)
    method SourcePause (line 398) | internal void SourcePause(int source)
    method SourcePlay (line 407) | internal void SourcePlay(int source)
    method GetErrorString (line 412) | internal static string GetErrorString(ALError errorCode)
    method DeleteSource (line 425) | internal unsafe void DeleteSource(int source)
    method Source (line 442) | internal void Source(int source, ALSourcei param, int value)
    method Source (line 447) | internal void Source(int source, ALSourceb param, bool value)
    method Source (line 452) | internal void Source(int source, ALSource3f param, float x, float y, f...
    method Source (line 457) | internal void Source(int source, ALSource3f param, ref Vector3 value)
    method Source (line 462) | internal void Source(int source, ALSourcef param, float value)
    method GetSourceState (line 479) | internal ALSourceState GetSourceState(int source)
    method SourceQueueBuffers (line 506) | internal unsafe void SourceQueueBuffers(int source, int numEntries, in...
    method SourceQueueBuffer (line 514) | internal unsafe void SourceQueueBuffer(int source, int buffer)
    method SourceUnqueueBuffers (line 519) | internal unsafe void SourceUnqueueBuffers(int source, int numEntries, ...
    method SourceUnqueueBuffer (line 527) | internal unsafe int SourceUnqueueBuffer(int source)
    method GetString (line 550) | internal string GetString(int p)
    method Get (line 555) | internal string Get(ALGetString p)
    method LoadEntryPoints (line 561) | private void LoadEntryPoints(IntPtr library)
  class Alc (line 595) | internal class Alc
    method Alc (line 597) | public Alc(IntPtr library)
    method GetError (line 606) | internal AlcError GetError()
    method GetInteger (line 619) | internal unsafe int GetInteger(IntPtr device, AlcGetInteger param)
    method CaptureOpenDevice (line 650) | internal IntPtr CaptureOpenDevice(string device, uint sampleRate, ALFo...
    method LoadEntryPoints (line 679) | private void LoadEntryPoints(IntPtr library)
    method GetString (line 708) | internal string GetString(IntPtr device, int p)
    method GetString (line 713) | internal string GetString(IntPtr device, AlcGetString p)
  class XRamExtension (line 739) | internal class XRamExtension
    type XRamStorage (line 741) | internal enum XRamStorage
    method XRamExtension (line 761) | internal XRamExtension(AL openAL)
    method Initialize (line 767) | private void Initialize()
    method LoadEntryPoints (line 797) | private void LoadEntryPoints()
    method SetBufferMode (line 802) | internal bool SetBufferMode(int n, ref int buffer, XRamStorage storage)
  class EffectsExtension (line 816) | internal class EffectsExtension
    method EffectsExtension (line 879) | public EffectsExtension(AL openAL)
    method Initialize (line 884) | internal void Initialize(IntPtr device)
    method LoadEntryPoints (line 895) | private void LoadEntryPoints()
    method GenAuxiliaryEffectSlots (line 917) | internal void GenAuxiliaryEffectSlots(int count, out int slot)
    method GenEffect (line 923) | internal void GenEffect(out int effect)
    method DeleteAuxiliaryEffectSlot (line 929) | internal void DeleteAuxiliaryEffectSlot(int slot)
    method DeleteEffect (line 934) | internal void DeleteEffect(int effect)
    method BindEffectToAuxiliarySlot (line 939) | internal void BindEffectToAuxiliarySlot(int slot, int effect)
    method AuxiliaryEffectSlot (line 945) | internal void AuxiliaryEffectSlot(int slot, EfxEffectSlotf param, floa...
    method BindSourceToAuxiliarySlot (line 951) | internal void BindSourceToAuxiliarySlot(int source, int slot, int slot...
    method Effect (line 956) | internal void Effect(int effect, EfxEffectf param, float value)
    method Effect (line 962) | internal void Effect(int effect, EfxEffecti param, int value)
    method GenFilter (line 968) | internal unsafe int GenFilter()
    method Filter (line 974) | internal void Filter(int filter, EfxFilteri param, int EfxFilterType)
    method Filter (line 978) | internal void Filter(int filter, EfxFilterf param, float EfxFilterType)
    method BindFilterToSource (line 982) | internal void BindFilterToSource(int source, int filter)
    method DeleteFilter (line 986) | internal unsafe void DeleteFilter(int filter)
  class ALHelper (line 992) | internal static class ALHelper
    method CheckError (line 994) | [System.Diagnostics.Conditional("DEBUG")]
    method CheckError (line 1007) | [System.Diagnostics.Conditional("DEBUG")]
    method IsStereoFormat (line 1021) | public static bool IsStereoFormat(ALFormat alFormat)
  class AlcHelper (line 1031) | internal static class AlcHelper
    method CheckError (line 1033) | [System.Diagnostics.Conditional("DEBUG")]
    method CheckError (line 1046) | [System.Diagnostics.Conditional("DEBUG")]

FILE: Platforms/Audio/Ref/ConcreteAudioFactory.cs
  class ConcreteAudioFactory (line 5) | public sealed class ConcreteAudioFactory : AudioFactory
    method CreateAudioServiceStrategy (line 7) | public override AudioServiceStrategy CreateAudioServiceStrategy()
    method CreateMicrophoneStrategy (line 12) | public override MicrophoneStrategy CreateMicrophoneStrategy()
    method CreateSoundEffectStrategy (line 17) | public override SoundEffectStrategy CreateSoundEffectStrategy()

FILE: Platforms/Audio/Ref/ConcreteAudioService.cs
  class ConcreteAudioService (line 9) | internal class ConcreteAudioService : AudioServiceStrategy
    method ConcreteAudioService (line 12) | internal ConcreteAudioService()
    method CreateSoundEffectInstanceStrategy (line 17) | public override SoundEffectInstanceStrategy CreateSoundEffectInstanceS...
    method CreateDynamicSoundEffectInstanceStrategy (line 22) | public override IDynamicSoundEffectInstanceStrategy CreateDynamicSound...
    method PlatformPopulateCaptureDevices (line 27) | public override void PlatformPopulateCaptureDevices(List<Microphone> m...
    method PlatformGetMaxPlayingInstances (line 32) | public override int PlatformGetMaxPlayingInstances()
    method PlatformSetReverbSettings (line 37) | public override void PlatformSetReverbSettings(ReverbSettings reverbSe...
    method Suspend (line 42) | public override void Suspend()
    method Resume (line 46) | public override void Resume()
    method Dispose (line 50) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/Ref/ConcreteDynamicSoundEffectInstance.cs
  class ConcreteDynamicSoundEffectInstance (line 8) | public sealed class ConcreteDynamicSoundEffectInstance : ConcreteSoundEf...
    method ConcreteDynamicSoundEffectInstance (line 18) | internal ConcreteDynamicSoundEffectInstance(AudioServiceStrategy audio...
    method DynamicPlatformGetPendingBufferCount (line 26) | public int DynamicPlatformGetPendingBufferCount()
    method PlatformPause (line 31) | public override void PlatformPause()
    method PlatformPlay (line 36) | public override void PlatformPlay(bool isLooped)
    method PlatformResume (line 41) | public override void PlatformResume(bool isLooped)
    method PlatformStop (line 46) | public override void PlatformStop()
    method PlatformRelease (line 51) | public override void PlatformRelease(bool isLooped)
    method DynamicPlatformSubmitBuffer (line 58) | public void DynamicPlatformSubmitBuffer(byte[] buffer, int offset, int...
    method DynamicPlatformUpdateBuffers (line 63) | public void DynamicPlatformUpdateBuffers()
    method DynamicPlatformClearBuffers (line 68) | public void DynamicPlatformClearBuffers()
    method Dispose (line 74) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/Ref/ConcreteMicrophone.cs
  class ConcreteMicrophone (line 12) | public sealed class ConcreteMicrophone : MicrophoneStrategy
    method ConcreteMicrophone (line 28) | internal ConcreteMicrophone()
    method PlatformStart (line 34) | public override void PlatformStart(string deviceName)
    method PlatformStop (line 39) | public override void PlatformStop()
    method PlatformIsHeadset (line 44) | public override bool PlatformIsHeadset()
    method PlatformUpdate (line 49) | public override bool PlatformUpdate()
    method PlatformGetData (line 54) | public override int PlatformGetData(byte[] buffer, int offset, int count)
    method Dispose (line 60) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/Ref/ConcreteSoundEffect.cs
  class ConcreteSoundEffect (line 9) | class ConcreteSoundEffect : SoundEffectStrategy
    method PlatformLoadAudioStream (line 14) | public override void PlatformLoadAudioStream(Stream stream, out TimeSp...
    method PlatformInitializeFormat (line 21) | public override void PlatformInitializeFormat(byte[] header, byte[] bu...
    method PlatformInitializePcm (line 26) | public override void PlatformInitializePcm(byte[] buffer, int index, i...
    method PlatformInitializeXactAdpcm (line 31) | public override void PlatformInitializeXactAdpcm(byte[] buffer, int in...
    method Dispose (line 41) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/Ref/ConcreteSoundEffectInstance.cs
  class ConcreteSoundEffectInstance (line 10) | public class ConcreteSoundEffectInstance : SoundEffectInstanceStrategy
    method ConcreteSoundEffectInstance (line 59) | internal ConcreteSoundEffectInstance(AudioServiceStrategy audioService...
    method PlatformApply3D (line 68) | public override void PlatformApply3D(AudioListener listener, AudioEmit...
    method PlatformPause (line 73) | public override void PlatformPause()
    method PlatformPlay (line 78) | public override void PlatformPlay(bool isLooped)
    method PlatformResume (line 83) | public override void PlatformResume(bool isLooped)
    method PlatformStop (line 88) | public override void PlatformStop()
    method PlatformRelease (line 93) | public override void PlatformRelease(bool isLooped)
    method PlatformUpdateState (line 98) | public override bool PlatformUpdateState(ref SoundState state)
    method PlatformSetIsLooped (line 103) | public override void PlatformSetIsLooped(bool isLooped, SoundState state)
    method PlatformSetReverbMix (line 108) | public override void PlatformSetReverbMix(SoundState state, float mix,...
    method PlatformSetFilter (line 113) | public override void PlatformSetFilter(SoundState state, FilterMode mo...
    method PlatformClearFilter (line 118) | public override void PlatformClearFilter()
    method Dispose (line 123) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/XAudio/ConcreteAudioFactory.cs
  class ConcreteAudioFactory (line 5) | public sealed class ConcreteAudioFactory : AudioFactory
    method CreateAudioServiceStrategy (line 7) | public override AudioServiceStrategy CreateAudioServiceStrategy()
    method CreateMicrophoneStrategy (line 12) | public override MicrophoneStrategy CreateMicrophoneStrategy()
    method CreateSoundEffectStrategy (line 17) | public override SoundEffectStrategy CreateSoundEffectStrategy()

FILE: Platforms/Audio/XAudio/ConcreteAudioService.cs
  class ConcreteAudioService (line 17) | internal class ConcreteAudioService : AudioServiceStrategy
    method ConcreteAudioService (line 61) | internal ConcreteAudioService()
    method CreateSoundEffectInstanceStrategy (line 122) | public override SoundEffectInstanceStrategy CreateSoundEffectInstanceS...
    method CreateDynamicSoundEffectInstanceStrategy (line 127) | public override IDynamicSoundEffectInstanceStrategy CreateDynamicSound...
    method PlatformPopulateCaptureDevices (line 132) | public override void PlatformPopulateCaptureDevices(List<Microphone> m...
    method PlatformGetMaxPlayingInstances (line 160) | public override int PlatformGetMaxPlayingInstances()
    method PlatformSetReverbSettings (line 166) | public override void PlatformSetReverbSettings(ReverbSettings reverbSe...
    method Suspend (line 201) | public override void Suspend()
    method Resume (line 205) | public override void Resume()
    method Dispose (line 209) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/XAudio/ConcreteDynamicSoundEffectInstance.cs
  class ConcreteDynamicSoundEffectInstance (line 16) | public sealed class ConcreteDynamicSoundEffectInstance : ConcreteSoundEf...
    method ConcreteDynamicSoundEffectInstance (line 34) | internal ConcreteDynamicSoundEffectInstance(AudioServiceStrategy audio...
    method DynamicPlatformGetPendingBufferCount (line 47) | public int DynamicPlatformGetPendingBufferCount()
    method PlatformPause (line 52) | public override void PlatformPause()
    method PlatformPlay (line 57) | public override void PlatformPlay(bool isLooped)
    method PlatformResume (line 62) | public override void PlatformResume(bool isLooped)
    method PlatformStop (line 67) | public override void PlatformStop()
    method PlatformRelease (line 72) | public override void PlatformRelease(bool isLooped)
    method DynamicPlatformSubmitBuffer (line 81) | public void DynamicPlatformSubmitBuffer(byte[] buffer, int offset, int...
    method DynamicPlatformUpdateBuffers (line 97) | public void DynamicPlatformUpdateBuffers()
    method DynamicPlatformClearBuffers (line 102) | public void DynamicPlatformClearBuffers()
    method OnBufferEnd (line 117) | private void OnBufferEnd(IntPtr context)
    method Dispose (line 143) | protected override void Dispose(bool disposing)
    type QueuedBuffer (line 160) | struct QueuedBuffer
      method QueuedBuffer (line 165) | public QueuedBuffer(byte[] dataBuffer, AudioBuffer audioBuffer)
    class ByteBufferPool (line 172) | class ByteBufferPool
      method ByteBufferPool (line 179) | public ByteBufferPool()
      method Get (line 186) | public byte[] Get(int size)
      method Return (line 218) | public void Return(byte[] buffer)
      method FirstLargerThan (line 233) | private int FirstLargerThan(int size)

FILE: Platforms/Audio/XAudio/ConcreteMicrophone.cs
  class ConcreteMicrophone (line 14) | public sealed class ConcreteMicrophone : MicrophoneStrategy
    method ConcreteMicrophone (line 30) | internal ConcreteMicrophone()
    method PlatformStart (line 35) | public override void PlatformStart(string deviceName)
    method PlatformStop (line 40) | public override void PlatformStop()
    method PlatformIsHeadset (line 45) | public override bool PlatformIsHeadset()
    method PlatformUpdate (line 50) | public override bool PlatformUpdate()
    method PlatformGetData (line 55) | public override int PlatformGetData(byte[] buffer, int offset, int count)
    method Dispose (line 61) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/XAudio/ConcreteSoundEffect.cs
  class ConcreteSoundEffect (line 17) | class ConcreteSoundEffect : SoundEffectStrategy
    method PlatformLoadAudioStream (line 26) | public override void PlatformLoadAudioStream(Stream stream, out TimeSp...
    method PlatformInitializeFormat (line 61) | public override void PlatformInitializeFormat(byte[] header, byte[] bu...
    method PlatformInitializePcm (line 117) | public override void PlatformInitializePcm(byte[] buffer, int index, i...
    method PlatformInitializeXactAdpcm (line 134) | public override void PlatformInitializeXactAdpcm(byte[] buffer, int in...
    method CreateBuffers (line 151) | private void CreateBuffers(WaveFormat format, DataStream dataStream, i...
    method GetDXDataBuffer (line 180) | internal AudioBuffer GetDXDataBuffer(bool isLooped)
    method Dispose (line 189) | protected override void Dispose(bool disposing)

FILE: Platforms/Audio/XAudio/ConcreteSoundEffectInstance.cs
  class ConcreteSoundEffectInstance (line 16) | public class ConcreteSoundEffectInstance : SoundEffectInstanceStrategy
    method ConcreteSoundEffectInstance (line 91) | internal ConcreteSoundEffectInstance(AudioServiceStrategy audioService...
    method PlatformApply3D (line 110) | public override void PlatformApply3D(AudioListener listener, AudioEmit...
    method ToDXEmitter (line 152) | private Emitter ToDXEmitter(AudioEmitter emitter)
    method ToDXListener (line 191) | private Listener ToDXListener(AudioListener listener)
    method PlatformPause (line 229) | public override void PlatformPause()
    method PlatformPlay (line 234) | public override void PlatformPlay(bool isLooped)
    method PlatformResume (line 249) | public override void PlatformResume(bool isLooped)
    method PlatformStop (line 265) | public override void PlatformStop()
    method PlatformRelease (line 271) | public override void PlatformRelease(bool isLooped)
    method PlatformUpdateState (line 279) | public override bool PlatformUpdateState(ref SoundState state)
    method PlatformSetIsLooped (line 296) | public override void PlatformSetIsLooped(bool isLooped, SoundState state)
    method UpdateOutputMatrix (line 314) | private void UpdateOutputMatrix(float pan)
    method CalculateOutputMatrix (line 329) | internal static float[] CalculateOutputMatrix(float pan, float scale, ...
    method PlatformSetReverbMix (line 372) | public override void PlatformSetReverbMix(SoundState state, float mix,...
    method PlatformSetFilter (line 392) | public override void PlatformSetFilter(SoundState state, FilterMode mo...
    method PlatformClearFilter (line 406) | public override void PlatformClearFilter()
    method Dispose (line 415) | protected override void Dispose(bool disposing)

FILE: Platforms/Content/.Android/ConcreteTitleContainer.cs
  class ConcreteTitleContainer (line 13) | internal sealed class ConcreteTitleContainer : TitleContainerStrategy
    method ConcreteTitleContainer (line 21) | public ConcreteTitleContainer() : base()
    method PlatformOpenStream (line 25) | public override Stream PlatformOpenStream(string name)

FILE: Platforms/Content/.Android/ConcreteTitleContainerFactory.cs
  class ConcreteTitleContainerFactory (line 7) | public sealed class ConcreteTitleContainerFactory : TitleContainerFactory
    method CreateTitleContainerStrategy (line 9) | public override TitleContainerStrategy CreateTitleContainerStrategy()

FILE: Platforms/Content/.Blazor/ConcreteTitleContainer.cs
  class ConcreteTitleContainer (line 11) | internal sealed class ConcreteTitleContainer : TitleContainerStrategy
    method ConcreteTitleContainer (line 19) | public ConcreteTitleContainer() : base()
    method PlatformOpenStream (line 23) | public override Stream PlatformOpenStream(string name)
    method DecompressBrotliStream (line 49) | public override Stream DecompressBrotliStream(Stream stream, uint comp...

FILE: Platforms/Content/.Blazor/ConcreteTitleContainerFactory.cs
  class ConcreteTitleContainerFactory (line 7) | public sealed class ConcreteTitleContainerFactory : TitleContainerFactory
    method CreateTitleContainerStrategy (line 9) | public override TitleContainerStrategy CreateTitleContainerStrategy()

FILE: Platforms/Content/.Ref/ConcreteTitleContainer.cs
  class ConcreteTitleContainer (line 9) | internal sealed class ConcreteTitleContainer : TitleContainerStrategy
    method ConcreteTitleContainer (line 15) | public ConcreteTitleContainer() : base()
    method PlatformOpenStream (line 20) | public override Stream PlatformOpenStream(string name)

FILE: Platforms/Content/.Ref/ConcreteTitleContainerFactory.cs
  class ConcreteTitleContainerFactory (line 7) | public sealed class ConcreteTitleContainerFactory : TitleContainerFactory
    method CreateTitleContainerStrategy (line 9) | public override TitleContainerStrategy CreateTitleContainerStrategy()

FILE: Platforms/Content/.SDL2/ConcreteTitleContainer.cs
  class ConcreteTitleContainer (line 14) | internal sealed class ConcreteTitleContainer : TitleContainerStrategy
    method ConcreteTitleContainer (line 24) | public ConcreteTitleContainer() : base()
    method PlatformOpenStream (line 34) | public override Stream PlatformOpenStream(string name)

FILE: Platforms/Content/.SDL2/ConcreteTitleContainerFactory.cs
  class ConcreteTitleContainerFactory (line 7) | public sealed class ConcreteTitleContainerFactory : TitleContainerFactory
    method CreateTitleContainerStrategy (line 9) | public override TitleContainerStrategy CreateTitleContainerStrategy()

FILE: Platforms/Content/.UAP/ConcreteTitleContainer.cs
  class ConcreteTitleContainer (line 14) | internal sealed class ConcreteTitleContainer : TitleContainerStrategy
    method ConcreteTitleContainer (line 24) | public ConcreteTitleContainer() : base()
    method PlatformOpenStream (line 29) | public override Stream PlatformOpenStream(string name)
    method PlatformOpenStreamAsync (line 34) | private async Task<Stream> PlatformOpenStreamAsync(string name)

FILE: Platforms/Content/.UAP/ConcreteTitleContainerFactory.cs
  class ConcreteTitleContainerFactory (line 7) | public sealed class ConcreteTitleContainerFactory : TitleContainerFactory
    method CreateTitleContainerStrategy (line 9) | public override TitleContainerStrategy CreateTitleContainerStrategy()

FILE: Platforms/Content/.WindowsDX11/ConcreteTitleContainer.cs
  class ConcreteTitleContainer (line 13) | internal sealed class ConcreteTitleContainer : TitleContainerStrategy
    method ConcreteTitleContainer (line 23) | public ConcreteTitleContainer() : base()
    method PlatformOpenStream (line 28) | public override Stream PlatformOpenStream(string name)

FILE: Platforms/Content/.WindowsDX11/ConcreteTitleContainerFactory.cs
  class ConcreteTitleContainerFactory (line 7) | public sealed class ConcreteTitleContainerFactory : TitleContainerFactory
    method CreateTitleContainerStrategy (line 9) | public override TitleContainerStrategy CreateTitleContainerStrategy()

FILE: Platforms/Content/.iOS/ConcreteTitleContainer.cs
  class ConcreteTitleContainer (line 15) | internal sealed class ConcreteTitleContainer : TitleContainerStrategy
    method ConcreteTitleContainer (line 28) | public ConcreteTitleContainer() : base()
    method PlatformOpenStream (line 36) | public override Stream PlatformOpenStream(string name)

FILE: Platforms/Content/.iOS/ConcreteTitleContainerFactory.cs
  class ConcreteTitleContainerFactory (line 7) | public sealed class ConcreteTitleContainerFactory : TitleContainerFactory
    method CreateTitleContainerStrategy (line 9) | public override TitleContainerStrategy CreateTitleContainerStrategy()

FILE: Platforms/Content/.macOS/ConcreteTitleContainer.cs
  class ConcreteTitleContainer (line 13) | internal sealed class ConcreteTitleContainer : TitleContainerStrategy
    method ConcreteTitleContainer (line 23) | public ConcreteTitleContainer() : base()
    method PlatformOpenStream (line 28) | public override Stream PlatformOpenStream(string name)

FILE: Platforms/Content/.macOS/ConcreteTitleContainerFactory.cs
  class ConcreteTitleContainerFactory (line 7) | public sealed class ConcreteTitleContainerFactory : TitleContainerFactory
    method CreateTitleContainerStrategy (line 9) | public override TitleContainerStrategy CreateTitleContainerStrategy()

FILE: Platforms/Devices/.Android/ConcreteDevicesFactory.cs
  class ConcreteDevicesFactory (line 9) | public sealed class ConcreteDevicesFactory : DevicesFactory
    method CreateConcreteHapticsStrategy (line 12) | public override HapticsStrategy CreateConcreteHapticsStrategy()
    method CreateSensorServiceStrategy (line 17) | public override SensorServiceStrategy CreateSensorServiceStrategy()
    method CreateAccelerometerStrategy (line 22) | public override AccelerometerStrategy CreateAccelerometerStrategy()
    method CreateCompassStrategy (line 27) | public override CompassStrategy CreateCompassStrategy()

FILE: Platforms/Devices/.Android/ConcreteHaptics.cs
  class ConcreteHaptics (line 9) | public sealed class ConcreteHaptics : HapticsStrategy
    method ConcreteHaptics (line 14) | public ConcreteHaptics()
    method Vibrate (line 24) | public override void Vibrate(TimeSpan duration)

FILE: Platforms/Devices/.Android/Sensors/ConcreteAccelerometer.cs
  class ConcreteAccelerometer (line 16) | internal sealed class ConcreteAccelerometer : AccelerometerStrategy
    method ConcreteAccelerometer (line 70) | public ConcreteAccelerometer()
    method Initialize (line 83) | static internal void Initialize()
    method Start (line 89) | public override void Start()
    method Stop (line 107) | public override void Stop()
    method _activity_Paused (line 121) | void _activity_Paused(object sender, EventArgs eventArgs)
    method _activity_Resumed (line 126) | void _activity_Resumed(object sender, EventArgs eventArgs)
    method _sensorListener_AccuracyChanged (line 131) | private void _sensorListener_AccuracyChanged(object sender, EventArgs ...
    method _sensorListener_SensorChanged (line 136) | private void _sensorListener_SensorChanged(object sender, SensorListen...
    method Dispose (line 180) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.Android/Sensors/ConcreteCompass.cs
  class ConcreteCompass (line 15) | internal sealed class ConcreteCompass : CompassStrategy
    method ConcreteCompass (line 73) | public ConcreteCompass()
    method Initialize (line 91) | static internal void Initialize()
    method Start (line 98) | public override void Start()
    method Stop (line 114) | public override void Stop()
    method _activity_Paused (line 127) | void _activity_Paused(object sender, EventArgs eventArgs)
    method _activity_Resumed (line 133) | void _activity_Resumed(object sender, EventArgs eventArgs)
    method _sensorListener_AccuracyChanged (line 139) | private void _sensorListener_AccuracyChanged(object sender, EventArgs ...
    method _sensorListener_SensorChanged (line 144) | private void _sensorListener_SensorChanged(object sender, SensorListen...
    method Dispose (line 200) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.Android/Sensors/ConcreteSensorService.cs
  class ConcreteSensorService (line 14) | internal sealed class ConcreteSensorService : SensorServiceStrategy
    method ConcreteSensorService (line 17) | internal ConcreteSensorService()
    method PlatformIsAccelerometerSupported (line 21) | public override bool PlatformIsAccelerometerSupported()
    method PlatformIsCompassSupported (line 28) | public override bool PlatformIsCompassSupported()
    method Suspend (line 35) | public override void Suspend()
    method Resume (line 39) | public override void Resume()
    method Dispose (line 43) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.Android/Sensors/SensorListener.cs
  class SensorListener (line 8) | internal class SensorListener : Java.Lang.Object, ISensorEventListener
    method SensorListener (line 13) | public SensorListener()
    method OnAccuracyChanged (line 17) | void ISensorEventListener.OnAccuracyChanged(Sensor sensor, SensorStatu...
    method OnSensorChanged (line 24) | void ISensorEventListener.OnSensorChanged(SensorEvent e)
    class SensorChangedEventArgs (line 31) | public class SensorChangedEventArgs : EventArgs
      method SensorChangedEventArgs (line 35) | internal SensorChangedEventArgs(SensorEvent sensorEvent)

FILE: Platforms/Devices/.Blazor/ConcreteDevicesFactory.cs
  class ConcreteDevicesFactory (line 9) | public sealed class ConcreteDevicesFactory : DevicesFactory
    method CreateConcreteHapticsStrategy (line 12) | public override HapticsStrategy CreateConcreteHapticsStrategy()
    method CreateSensorServiceStrategy (line 17) | public override SensorServiceStrategy CreateSensorServiceStrategy()
    method CreateAccelerometerStrategy (line 22) | public override AccelerometerStrategy CreateAccelerometerStrategy()
    method CreateCompassStrategy (line 27) | public override CompassStrategy CreateCompassStrategy()

FILE: Platforms/Devices/.Blazor/ConcreteHaptics.cs
  class ConcreteHaptics (line 10) | public sealed class ConcreteHaptics : HapticsStrategy
    method ConcreteHaptics (line 13) | public ConcreteHaptics()
    method Vibrate (line 17) | public override void Vibrate(TimeSpan duration)

FILE: Platforms/Devices/.Blazor/Sensors/ConcreteAccelerometer.cs
  class ConcreteAccelerometer (line 10) | internal sealed class ConcreteAccelerometer : AccelerometerStrategy
    method ConcreteAccelerometer (line 38) | public ConcreteAccelerometer()
    method Start (line 44) | public override void Start()
    method Stop (line 48) | public override void Stop()
    method Dispose (line 53) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.Blazor/Sensors/ConcreteCompass.cs
  class ConcreteCompass (line 10) | internal sealed class ConcreteCompass : CompassStrategy
    method ConcreteCompass (line 38) | public ConcreteCompass()
    method Start (line 44) | public override void Start()
    method Stop (line 48) | public override void Stop()
    method Dispose (line 53) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.Blazor/Sensors/ConcreteSensorService.cs
  class ConcreteSensorService (line 9) | internal sealed class ConcreteSensorService : SensorServiceStrategy
    method ConcreteSensorService (line 12) | internal ConcreteSensorService()
    method PlatformIsAccelerometerSupported (line 16) | public override bool PlatformIsAccelerometerSupported()
    method PlatformIsCompassSupported (line 21) | public override bool PlatformIsCompassSupported()
    method Suspend (line 26) | public override void Suspend()
    method Resume (line 30) | public override void Resume()
    method Dispose (line 34) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.Ref/ConcreteDevicesFactory.cs
  class ConcreteDevicesFactory (line 9) | public sealed class ConcreteDevicesFactory : DevicesFactory
    method CreateConcreteHapticsStrategy (line 12) | public override HapticsStrategy CreateConcreteHapticsStrategy()
    method CreateSensorServiceStrategy (line 17) | public override SensorServiceStrategy CreateSensorServiceStrategy()
    method CreateAccelerometerStrategy (line 22) | public override AccelerometerStrategy CreateAccelerometerStrategy()
    method CreateCompassStrategy (line 27) | public override CompassStrategy CreateCompassStrategy()

FILE: Platforms/Devices/.Ref/ConcreteHaptics.cs
  class ConcreteHaptics (line 9) | public sealed class ConcreteHaptics : HapticsStrategy
    method ConcreteHaptics (line 12) | public ConcreteHaptics()
    method Vibrate (line 17) | public override void Vibrate(TimeSpan duration)

FILE: Platforms/Devices/.Ref/Sensors/ConcreteAccelerometer.cs
  class ConcreteAccelerometer (line 10) | internal sealed class ConcreteAccelerometer : AccelerometerStrategy
    method ConcreteAccelerometer (line 38) | public ConcreteAccelerometer()
    method Start (line 43) | public override void Start()
    method Stop (line 48) | public override void Stop()
    method Dispose (line 54) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.Ref/Sensors/ConcreteCompass.cs
  class ConcreteCompass (line 10) | internal sealed class ConcreteCompass : CompassStrategy
    method ConcreteCompass (line 38) | public ConcreteCompass()
    method Start (line 43) | public override void Start()
    method Stop (line 48) | public override void Stop()
    method Dispose (line 54) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.Ref/Sensors/ConcreteSensorService.cs
  class ConcreteSensorService (line 9) | internal sealed class ConcreteSensorService : SensorServiceStrategy
    method ConcreteSensorService (line 12) | internal ConcreteSensorService()
    method PlatformIsAccelerometerSupported (line 17) | public override bool PlatformIsAccelerometerSupported()
    method PlatformIsCompassSupported (line 22) | public override bool PlatformIsCompassSupported()
    method Suspend (line 27) | public override void Suspend()
    method Resume (line 32) | public override void Resume()
    method Dispose (line 37) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.SDL2/ConcreteDevicesFactory.cs
  class ConcreteDevicesFactory (line 9) | public sealed class ConcreteDevicesFactory : DevicesFactory
    method CreateConcreteHapticsStrategy (line 12) | public override HapticsStrategy CreateConcreteHapticsStrategy()
    method CreateSensorServiceStrategy (line 17) | public override SensorServiceStrategy CreateSensorServiceStrategy()
    method CreateAccelerometerStrategy (line 22) | public override AccelerometerStrategy CreateAccelerometerStrategy()
    method CreateCompassStrategy (line 27) | public override CompassStrategy CreateCompassStrategy()

FILE: Platforms/Devices/.SDL2/ConcreteHaptics.cs
  class ConcreteHaptics (line 9) | public sealed class ConcreteHaptics : HapticsStrategy
    method ConcreteHaptics (line 12) | public ConcreteHaptics()
    method Vibrate (line 16) | public override void Vibrate(TimeSpan duration)

FILE: Platforms/Devices/.SDL2/Sensors/ConcreteAccelerometer.cs
  class ConcreteAccelerometer (line 10) | internal sealed class ConcreteAccelerometer : AccelerometerStrategy
    method ConcreteAccelerometer (line 38) | public ConcreteAccelerometer()
    method Start (line 44) | public override void Start()
    method Stop (line 48) | public override void Stop()
    method Dispose (line 53) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.SDL2/Sensors/ConcreteCompass.cs
  class ConcreteCompass (line 10) | internal sealed class ConcreteCompass : CompassStrategy
    method ConcreteCompass (line 38) | public ConcreteCompass()
    method Start (line 44) | public override void Start()
    method Stop (line 48) | public override void Stop()
    method Dispose (line 53) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.SDL2/Sensors/ConcreteSensorService.cs
  class ConcreteSensorService (line 9) | internal sealed class ConcreteSensorService : SensorServiceStrategy
    method ConcreteSensorService (line 12) | internal ConcreteSensorService()
    method PlatformIsAccelerometerSupported (line 16) | public override bool PlatformIsAccelerometerSupported()
    method PlatformIsCompassSupported (line 21) | public override bool PlatformIsCompassSupported()
    method Suspend (line 26) | public override void Suspend()
    method Resume (line 30) | public override void Resume()
    method Dispose (line 34) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.UAP/ConcreteDevicesFactory.cs
  class ConcreteDevicesFactory (line 9) | public sealed class ConcreteDevicesFactory : DevicesFactory
    method CreateConcreteHapticsStrategy (line 12) | public override HapticsStrategy CreateConcreteHapticsStrategy()
    method CreateSensorServiceStrategy (line 17) | public override SensorServiceStrategy CreateSensorServiceStrategy()
    method CreateAccelerometerStrategy (line 22) | public override AccelerometerStrategy CreateAccelerometerStrategy()
    method CreateCompassStrategy (line 27) | public override CompassStrategy CreateCompassStrategy()

FILE: Platforms/Devices/.UAP/ConcreteHaptics.cs
  class ConcreteHaptics (line 9) | public sealed class ConcreteHaptics : HapticsStrategy
    method ConcreteHaptics (line 12) | public ConcreteHaptics()
    method Vibrate (line 16) | public override void Vibrate(TimeSpan duration)

FILE: Platforms/Devices/.UAP/Sensors/ConcreteAccelerometer.cs
  class ConcreteAccelerometer (line 11) | internal sealed class ConcreteAccelerometer : AccelerometerStrategy
    method ConcreteAccelerometer (line 59) | public ConcreteAccelerometer()
    method Start (line 71) | public override void Start()
    method Stop (line 81) | public override void Stop()
    method _waccelerometer_ReadingChanged (line 92) | private void _waccelerometer_ReadingChanged(WinSensors.Accelerometer s...
    method Dispose (line 115) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.UAP/Sensors/ConcreteCompass.cs
  class ConcreteCompass (line 10) | internal sealed class ConcreteCompass : CompassStrategy
    method ConcreteCompass (line 38) | public ConcreteCompass()
    method Start (line 44) | public override void Start()
    method Stop (line 48) | public override void Stop()
    method Dispose (line 53) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.UAP/Sensors/ConcreteSensorService.cs
  class ConcreteSensorService (line 10) | internal sealed class ConcreteSensorService : SensorServiceStrategy
    method ConcreteSensorService (line 14) | internal ConcreteSensorService()
    method PlatformIsAccelerometerSupported (line 20) | public override bool PlatformIsAccelerometerSupported()
    method PlatformIsCompassSupported (line 25) | public override bool PlatformIsCompassSupported()
    method Suspend (line 30) | public override void Suspend()
    method Resume (line 34) | public override void Resume()
    method Dispose (line 38) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.WindowsDX/ConcreteDevicesFactory.cs
  class ConcreteDevicesFactory (line 9) | public sealed class ConcreteDevicesFactory : DevicesFactory
    method CreateConcreteHapticsStrategy (line 12) | public override HapticsStrategy CreateConcreteHapticsStrategy()
    method CreateSensorServiceStrategy (line 17) | public override SensorServiceStrategy CreateSensorServiceStrategy()
    method CreateAccelerometerStrategy (line 22) | public override AccelerometerStrategy CreateAccelerometerStrategy()
    method CreateCompassStrategy (line 27) | public override CompassStrategy CreateCompassStrategy()

FILE: Platforms/Devices/.WindowsDX/ConcreteHaptics.cs
  class ConcreteHaptics (line 9) | public sealed class ConcreteHaptics : HapticsStrategy
    method ConcreteHaptics (line 12) | public ConcreteHaptics()
    method Vibrate (line 16) | public override void Vibrate(TimeSpan duration)

FILE: Platforms/Devices/.WindowsDX/Sensors/ConcreteAccelerometer.cs
  class ConcreteAccelerometer (line 10) | internal sealed class ConcreteAccelerometer : AccelerometerStrategy
    method ConcreteAccelerometer (line 38) | public ConcreteAccelerometer()
    method Start (line 44) | public override void Start()
    method Stop (line 48) | public override void Stop()
    method Dispose (line 53) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.WindowsDX/Sensors/ConcreteCompass.cs
  class ConcreteCompass (line 10) | internal sealed class ConcreteCompass : CompassStrategy
    method ConcreteCompass (line 38) | public ConcreteCompass()
    method Start (line 44) | public override void Start()
    method Stop (line 48) | public override void Stop()
    method Dispose (line 53) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.WindowsDX/Sensors/ConcreteSensorService.cs
  class ConcreteSensorService (line 9) | internal sealed class ConcreteSensorService : SensorServiceStrategy
    method ConcreteSensorService (line 12) | internal ConcreteSensorService()
    method PlatformIsAccelerometerSupported (line 16) | public override bool PlatformIsAccelerometerSupported()
    method PlatformIsCompassSupported (line 21) | public override bool PlatformIsCompassSupported()
    method Suspend (line 26) | public override void Suspend()
    method Resume (line 30) | public override void Resume()
    method Dispose (line 34) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.iOS/ConcreteDevicesFactory.cs
  class ConcreteDevicesFactory (line 9) | public sealed class ConcreteDevicesFactory : DevicesFactory
    method CreateConcreteHapticsStrategy (line 12) | public override HapticsStrategy CreateConcreteHapticsStrategy()
    method CreateSensorServiceStrategy (line 17) | public override SensorServiceStrategy CreateSensorServiceStrategy()
    method CreateAccelerometerStrategy (line 22) | public override AccelerometerStrategy CreateAccelerometerStrategy()
    method CreateCompassStrategy (line 27) | public override CompassStrategy CreateCompassStrategy()

FILE: Platforms/Devices/.iOS/ConcreteHaptics.cs
  class ConcreteHaptics (line 9) | public sealed class ConcreteHaptics : HapticsStrategy
    method ConcreteHaptics (line 12) | public ConcreteHaptics()
    method Vibrate (line 16) | public override void Vibrate(TimeSpan duration)

FILE: Platforms/Devices/.iOS/Sensors/ConcreteAccelerometer.cs
  class ConcreteAccelerometer (line 16) | internal sealed class ConcreteAccelerometer : AccelerometerStrategy
    method ConcreteAccelerometer (line 66) | public ConcreteAccelerometer()
    method Start (line 76) | public override void Start()
    method Stop (line 85) | public override void Stop()
    method AccelerometerHandler (line 91) | private void AccelerometerHandler(CMAccelerometerData data, NSError er...
    method ReadingChangedHandler (line 96) | private void ReadingChangedHandler(CMAccelerometerData data, NSError e...
    method Dispose (line 115) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.iOS/Sensors/ConcreteCompass.cs
  class ConcreteCompass (line 15) | internal sealed class ConcreteCompass : CompassStrategy
    method ConcreteCompass (line 64) | public ConcreteCompass()
    method Start (line 74) | public override void Start()
    method Stop (line 84) | public override void Stop()
    method MagnetometerHandler (line 90) | private void MagnetometerHandler(CMDeviceMotion magnetometerData, NSEr...
    method ReadingChangedHandler (line 95) | private void ReadingChangedHandler(CMDeviceMotion data, NSError error)
    method Dispose (line 146) | protected override void Dispose(bool disposing)

FILE: Platforms/Devices/.iOS/Sensors/ConcreteSensorService.cs
  class ConcreteSensorService (line 13) | internal sealed class ConcreteSensorService : SensorServiceStrategy
    method ConcreteSensorService (line 16) | internal ConcreteSensorService()
    method PlatformIsAccelerometerSupported (line 20) | public override bool PlatformIsAccelerometerSupported()
    method PlatformIsCompassSupported (line 25) | public override bool PlatformIsCompassSupported()
    method Suspend (line 30) | public override void Suspend()
    method Resume (line 34) | public override void Resume()
    method Dispose (line 38) | protected override void Dispose(bool disposing)

FILE: Platforms/Game/.Android/AndroidCompatibility.cs
  class AndroidCompatibility (line 13) | public class AndroidCompatibility
    method Initialize (line 43) | internal static void Initialize(Activity activity)
    method AndroidCompatibility (line 49) | private AndroidCompatibility(Activity activity)
    method GetDeviceNaturalOrientation (line 55) | private Orientation GetDeviceNaturalOrientation(Activity activity)
    method GetAbsoluteOrientation (line 127) | [CLSCompliant(false)]
    method GetAbsoluteOrientation (line 188) | internal DisplayOrientation GetAbsoluteOrientation(int degrees)

FILE: Platforms/Game/.Android/AndroidGameActivity.cs
  class AndroidGameActivity (line 15) | [CLSCompliant(false)]
    method OnCreate (line 36) | protected override void OnCreate(Bundle savedInstanceState)
    method OnConfigurationChanged (line 51) | public override void OnConfigurationChanged(Android.Content.Res.Config...
    method OnPause (line 56) | protected override void OnPause()
    method OnResume (line 67) | protected override void OnResume()
    method OnWindowFocusChanged (line 78) | public override void OnWindowFocusChanged(bool hasFocus)
    method OnDestroy (line 87) | protected override void OnDestroy()
  class ActivityExtensions (line 97) | [CLSCompliant(false)]
    method GetActivityAttribute (line 100) | public static ActivityAttribute GetActivityAttribute(this AndroidGameA...

FILE: Platforms/Game/.Android/AndroidGameWindow.cs
  class AndroidGameWindow (line 23) | [CLSCompliant(false)]
    type AppState (line 27) | internal enum AppState
    method FromHandle (line 36) | internal static AndroidGameWindow FromHandle(IntPtr windowHandle)
    method AndroidGameWindow (line 62) | public AndroidGameWindow(AndroidGameActivity activity, Game game)
    method ScreenReceiver_Unlocked (line 136) | private void ScreenReceiver_Unlocked(object sender, EventArgs e)
    method ScreenReceiver_Locked (line 154) | private void ScreenReceiver_Locked(object sender, EventArgs e)
    method Activity_Resumed (line 159) | void Activity_Resumed(object sender, EventArgs e)
    method Activity_Paused (line 202) | void Activity_Paused(object sender, EventArgs e)
    method Activity_Destroyed (line 221) | void Activity_Destroyed(object sender, EventArgs e)
    method Activity_WindowFocused (line 237) | private void Activity_WindowFocused(object sender, EventArgs e)
    method Activity_WindowUnfocused (line 246) | private void Activity_WindowUnfocused(object sender, EventArgs e)
    method ForceSetFullScreen (line 255) | internal void ForceSetFullScreen(bool _isFullScreen)
    method SetOrientation (line 271) | internal void SetOrientation(DisplayOrientation newOrientation, Displa...
    method GameView_LayoutChange (line 326) | private void GameView_LayoutChange(object sender, View.LayoutChangeEve...
    type ScreenOrientationAll (line 354) | enum ScreenOrientationAll
    method XnaOrientationToAndroid (line 378) | private static ScreenOrientation XnaOrientationToAndroid(DisplayOrient...
    method Dispose (line 396) | public void Dispose()
    method SetTitle (line 428) | protected override void SetTitle(string title)
    method StartGameLoop (line 432) | internal void StartGameLoop()
    method OnTick (line 438) | internal void OnTick(object sender, EventArgs args)
    method RunStep (line 452) | private void RunStep()

FILE: Platforms/Game/.Android/AndroidSurfaceView.cs
  class AndroidSurfaceView (line 20) | [CLSCompliant(false)]
    method AndroidSurfaceView (line 30) | public AndroidSurfaceView(Context context)
    method SurfaceCreated (line 43) | void ISurfaceHolderCallback.SurfaceCreated(ISurfaceHolder holder)
    method SurfaceChanged (line 54) | void ISurfaceHolderCallback.SurfaceChanged(ISurfaceHolder holder, glob...
    method SurfaceDestroyed (line 64) | void ISurfaceHolderCallback.SurfaceDestroyed(ISurfaceHolder holder)
    method Dispose (line 75) | protected override void Dispose(bool disposing)
    method OnKeyDown (line 86) | public override bool OnKeyDown(Keycode keyCode, KeyEvent e)
    method OnKeyUp (line 118) | public override bool OnKeyUp(Keycode keyCode, KeyEvent e)
    method OnGenericMotionEvent (line 127) | public override bool OnGenericMotionEvent(MotionEvent e)

FILE: Platforms/Game/.Android/ConcreteGame.cs
  class ConcreteGame (line 16) | sealed class ConcreteGame : GameStrategy
    method ConcreteGame (line 23) | public ConcreteGame(Game game) : base(game)
    method Dispose (line 39) | protected override void Dispose(bool disposing)
    method Exit (line 51) | public override void Exit()
    method TickExiting (line 56) | public override void TickExiting()
    method Run (line 62) | protected override void Run()
    method StartGameLoop (line 76) | private void StartGameLoop()
    method OnFrameTickBegin (line 81) | private void OnFrameTickBegin()
    method OnFrameTick (line 90) | internal void OnFrameTick()

FILE: Platforms/Game/.Android/ConcreteGameFactory.cs
  class ConcreteGameFactory (line 8) | public sealed class ConcreteGameFactory : GameFactory
    method CreateGameStrategy (line 11) | public override GameStrategy CreateGameStrategy(Game game)
    method CreateGraphicsDeviceManagerStrategy (line 16) | public override GraphicsDeviceManagerStrategy CreateGraphicsDeviceMana...

FILE: Platforms/Game/.Android/ConcreteGraphicsDeviceManager.cs
  class ConcreteGraphicsDeviceManager (line 11) | internal sealed class ConcreteGraphicsDeviceManager : GraphicsDeviceMana...
    method ConcreteGraphicsDeviceManager (line 13) | public ConcreteGraphicsDeviceManager(Game game) : base(game)
    method ToggleFullScreen (line 71) | public override void ToggleFullScreen()
    method CreateDevice (line 77) | public override void CreateDevice()
    method GameWindow_OrientationChanged (line 139) | private void GameWindow_OrientationChanged(object sender, EventArgs e)
    method ApplyChanges (line 165) | public override void ApplyChanges()
    method BeginDraw (line 194) | public override bool BeginDraw()
    method EndDraw (line 201) | public override void EndDraw()
    method Dispose (line 219) | protected override void Dispose(bool disposing)

FILE: Platforms/Game/.Android/ISurfaceView.cs
  type ISurfaceView (line 11) | interface ISurfaceView

FILE: Platforms/Game/.Android/OrientationListener.cs
  class OrientationListener (line 16) | internal class OrientationListener : OrientationEventListener
    method OrientationListener (line 28) | public OrientationListener(AndroidGameWindow gameWindow, Context context)
    method OnOrientationChanged (line 34) | public override void OnOrientationChanged(int orientation)
    method Update (line 88) | internal void Update()

FILE: Platforms/Game/.Android/RunnableObject.cs
  class RunnableObject (line 8) | internal class RunnableObject : Java.Lang.Object
    method RunnableObject (line 16) | public RunnableObject() : base()
    method InitLoopHandler (line 20) | public void InitLoopHandler()
    method RequestFrame (line 26) | public void RequestFrame()
    method Run (line 35) | void Java.Lang.IRunnable.Run()

FILE: Platforms/Game/.Android/ScreenReceiver.cs
  class ScreenReceiver (line 11) | internal class ScreenReceiver : BroadcastReceiver
    method ScreenReceiver (line 27) | public ScreenReceiver(AndroidGameActivity activity)
    method OnReceive (line 32) | public override void OnReceive(Context context, Intent intent)
    method OnLocked (line 72) | private void OnLocked()
    method OnUnlocked (line 81) | private void OnUnlocked()

FILE: Platforms/Game/.Android/TouchEventListener.cs
  class TouchEventListener (line 14) | class TouchEventListener : Java.Lang.Object
    method SetTouchListener (line 17) | public void SetTouchListener(GameWindow window)
    method OnTouch (line 25) | bool View.IOnTouchListener.OnTouch(View v, MotionEvent e)

FILE: Platforms/Game/.Blazor/BlazorGameWindow.cs
  class BlazorGameWindow (line 21) | public class BlazorGameWindow : GameWindow, IDisposable
    method FromHandle (line 25) | internal static BlazorGameWindow FromHandle(IntPtr handle)
    method BlazorGameWindow (line 113) | internal BlazorGameWindow(ConcreteGame concreteGame)
    method SetIcon (line 230) | private void SetIcon()
    method OnActivated (line 240) | private void OnActivated(object sender)
    method OnDeactivated (line 246) | private void OnDeactivated(object sender)
    method OnMouseEnter (line 253) | private void OnMouseEnter(object sender, EventArgs e)
    method OnMouseLeave (line 263) | private void OnMouseLeave(object sender, EventArgs e)
    method OnResize (line 273) | internal void OnResize(object sender)
    method UpdateBackBufferSize (line 282) | private void UpdateBackBufferSize()
    method SetTitle (line 306) | protected override void SetTitle(string title)
    method ChangeClientSize (line 311) | internal void ChangeClientSize(int width, int height)
    method Dispose (line 318) | public void Dispose()
    method Dispose (line 324) | void Dispose(bool disposing)
    method MouseVisibleToggled (line 342) | public void MouseVisibleToggled()
    method OnPresentationChanged (line 359) | internal void OnPresentationChanged(PresentationParameters pp)
    method EnterFullScreen (line 393) | internal void EnterFullScreen(PresentationParameters pp)
    method ExitFullScreen (line 399) | private void ExitFullScreen()
    method MinimizeFullScreen (line 404) | private void MinimizeFullScreen()
    method InitFocus (line 409) | internal void InitFocus()

FILE: Platforms/Game/.Blazor/ConcreteGame.cs
  class ConcreteGame (line 14) | sealed class ConcreteGame : GameStrategy
    method ConcreteGame (line 24) | public ConcreteGame(Game game) : base(game)
    method Run (line 31) | protected override void Run()
    method StartGameLoop (line 47) | private void StartGameLoop()
    method Tick (line 64) | public override void Tick()
    method Exit (line 72) | public override void Exit()
    method TickExiting (line 77) | public override void TickExiting()
    method Dispose (line 83) | protected override void Dispose(bool disposing)

FILE: Platforms/Game/.Blazor/ConcreteGameFactory.cs
  class ConcreteGameFactory (line 8) | public sealed class ConcreteGameFactory : GameFactory
    method CreateGameStrategy (line 11) | public override GameStrategy CreateGameStrategy(Game game)
    method CreateGraphicsDeviceManagerStrategy (line 16) | public override GraphicsDeviceManagerStrategy CreateGraphicsDeviceMana...

FILE: Platforms/Game/.Blazor/ConcreteGraphicsDeviceManager.cs
  class ConcreteGraphicsDeviceManager (line 10) | internal sealed class ConcreteGraphicsDeviceManager : GraphicsDeviceMana...
    method ConcreteGraphicsDeviceManager (line 13) | public ConcreteGraphicsDeviceManager(Game game) : base(game)
    method ToggleFullScreen (line 46) | public override void ToggleFullScreen()
    method ApplyChanges (line 52) | public override void ApplyChanges()
    method DoPreparingDeviceSettings (line 88) | internal GraphicsDeviceInformation DoPreparingDeviceSettings()
    method CreateDevice (line 132) | public override void CreateDevice()
    method GraphicsDevice_DeviceReset_UpdateTouchPanel (line 170) | private void GraphicsDevice_DeviceReset_UpdateTouchPanel(object sender...
    method GraphicsDevice_PresentationChanged_UpdateGamePlatform (line 177) | private void GraphicsDevice_PresentationChanged_UpdateGamePlatform(obj...
    method BeginDraw (line 187) | public override bool BeginDraw()
    method EndDraw (line 194) | public override void EndDraw()

FILE: Platforms/Game/.CardboardLegacy/AndroidCompatibility.cs
  class AndroidCompatibility (line 13) | public class AndroidCompatibility
    method Initialize (line 43) | internal static void Initialize(Activity activity)
    method AndroidCompatibility (line 49) | private AndroidCompatibility(Activity activity)
    method GetDeviceNaturalOrientation (line 55) | private Orientation GetDeviceNaturalOrientation(Activity activity)
    method GetAbsoluteOrientation (line 127) | [CLSCompliant(false)]
    method GetAbsoluteOrientation (line 188) | internal DisplayOrientation GetAbsoluteOrientation(int degrees)

FILE: Platforms/Game/.CardboardLegacy/AndroidGameActivity.cs
  class AndroidGameActivity (line 16) | [CLSCompliant(false)]
    method OnCreate (line 37) | protected override void OnCreate(Bundle savedInstanceState)
    method OnConfigurationChanged (line 59) | public override void OnConfigurationChanged(Android.Content.Res.Config...
    method OnPause (line 64) | protected override void OnPause()
    method OnResume (line 75) | protected override void OnResume()
    method OnWindowFocusChanged (line 86) | public override void OnWindowFocusChanged(bool hasFocus)
    method OnDestroy (line 95) | protected override void OnDestroy()
  class ActivityExtensions (line 105) | [CLSCompliant(false)]
    method GetActivityAttribute (line 108) | public static ActivityAttribute GetActivityAttribute(this AndroidGameA...

FILE: Platforms/Game/.CardboardLegacy/AndroidGameWindow.cs
  class AndroidGameWindow (line 29) | [CLSCompliant(false)]
    type AppState (line 33) | internal enum AppState
    method FromHandle (line 42) | internal static AndroidGameWindow FromHandle(IntPtr windowHandle)
    method AndroidGameWindow (line 66) | public AndroidGameWindow(AndroidGameActivity activity, Game game)
    method ScreenReceiver_Unlocked (line 138) | private void ScreenReceiver_Unlocked(object sender, EventArgs e)
    method ScreenReceiver_Locked (line 155) | private void ScreenReceiver_Locked(object sender, EventArgs e)
    method Activity_Resumed (line 160) | void Activity_Resumed(object sender, EventArgs e)
    method Activity_Paused (line 202) | void Activity_Paused(object sender, EventArgs e)
    method Activity_Destroyed (line 221) | void Activity_Destroyed(object sender, EventArgs e)
    method Activity_WindowFocused (line 237) | private void Activity_WindowFocused(object sender, EventArgs e)
    method Activity_WindowUnfocused (line 246) | private void Activity_WindowUnfocused(object sender, EventArgs e)
    method ForceSetFullScreen (line 255) | internal void ForceSetFullScreen(bool _isFullScreen)
    method SetOrientation (line 271) | internal void SetOrientation(DisplayOrientation newOrientation, Displa...
    method GameView_LayoutChange (line 326) | private void GameView_LayoutChange(object sender, View.LayoutChangeEve...
    type ScreenOrientationAll (line 354) | enum ScreenOrientationAll
    method XnaOrientationToAndroid (line 378) | private static ScreenOrientation XnaOrientationToAndroid(DisplayOrient...
    method Dispose (line 396) | public void Dispose()
    method SetTitle (line 428) | protected override void SetTitle(string title)
    method StartGameLoop (line 432) | internal void StartGameLoop()
    method RunFrame (line 439) | private void RunFrame()
    method RunStep (line 448) | private void RunStep()
    method UpdateLocalHeadsetState (line 486) | private void UpdateLocalHeadsetState(VRCardboard.HeadTransform headTra...
    method Viewport2XNA (line 506) | private void Viewport2XNA(VRCardboard.Viewport viewport, ref Viewport ...
    method Matrix2XNA (line 516) | private void Matrix2XNA(float[] matrix, ref Matrix result)
    method UpdateHeadsetState (line 536) | internal void UpdateHeadsetState(out Microsoft.Xna.Framework.XR.Cardbo...
    method GLGetRenderBufferSize (line 550) | private void GLGetRenderBufferSize(out int w, out int h)
    method VrRendererOnDrawFrame (line 612) | internal void VrRendererOnDrawFrame(VRCardboard.HeadTransform headTran...
    method VrRendererOnFinishFrame (line 650) | internal void VrRendererOnFinishFrame(VRCardboard.Viewport viewport)
    method VrRendererOnRendererShutdown (line 656) | internal void VrRendererOnRendererShutdown()
    method VrRendererOnSurfaceChanged (line 660) | internal void VrRendererOnSurfaceChanged(int width, int height)
    method VrRendererOnSurfaceCreated (line 664) | internal void VrRendererOnSurfaceCreated(EGLConfig config)

FILE: Platforms/Game/.CardboardLegacy/AndroidSurfaceView.cs
  class AndroidSurfaceView (line 22) | [CLSCompliant(false)]
    method AndroidSurfaceView (line 32) | public AndroidSurfaceView(Context context, AndroidGameWindow gameWindow)
    method SurfaceCreated (line 51) | public override void SurfaceCreated(ISurfaceHolder holder)
    method SurfaceChanged (line 64) | public override void SurfaceChanged(ISurfaceHolder holder, global::And...
    method SurfaceDestroyed (line 75) | public override void SurfaceDestroyed(ISurfaceHolder holder)
    method Dispose (line 88) | protected override void Dispose(bool disposing)
    method OnKeyDown (line 99) | public override bool OnKeyDown(Keycode keyCode, KeyEvent e)
    method OnKeyUp (line 131) | public override bool OnKeyUp(Keycode keyCode, KeyEvent e)
    method OnGenericMotionEvent (line 140) | public override bool OnGenericMotionEvent(MotionEvent e)
    method OnDrawFrame (line 185) | void IRenderer.OnDrawFrame(VRCardboard.HeadTransform headTransform, VR...
    method OnFinishFrame (line 190) | void IRenderer.OnFinishFrame(VRCardboard.Viewport viewport)
    method OnRendererShutdown (line 195) | void IRenderer.OnRendererShutdown()
    method OnSurfaceChanged (line 200) | void IRenderer.OnSurfaceChanged(int width, int height)
    method OnSurfaceCreated (line 205) | void IRenderer.OnSurfaceCreated(EGLConfig config)

FILE: Platforms/Game/.CardboardLegacy/ConcreteGame.cs
  class ConcreteGame (line 16) | sealed class ConcreteGame : GameStrategy
    method ConcreteGame (line 23) | public ConcreteGame(Game game) : base(game)
    method Dispose (line 39) | protected override void Dispose(bool disposing)
    method Exit (line 51) | public override void Exit()
    method TickExiting (line 56) | public override void TickExiting()
    method Run (line 62) | protected override void Run()
    method StartGameLoop (line 76) | private void StartGameLoop()
    method OnFrameTickBegin (line 81) | private void OnFrameTickBegin()
    method OnFrameTick (line 90) | internal void OnFrameTick()

FILE: Platforms/Game/.CardboardLegacy/ConcreteGameFactory.cs
  class ConcreteGameFactory (line 8) | public sealed class ConcreteGameFactory : GameFactory
    method CreateGameStrategy (line 11) | public override GameStrategy CreateGameStrategy(Game game)
    method CreateGraphicsDeviceManagerStrategy (line 16) | public override GraphicsDeviceManagerStrategy CreateGraphicsDeviceMana...

FILE: Platforms/Game/.CardboardLegacy/ConcreteGraphicsDeviceManager.cs
  class ConcreteGraphicsDeviceManager (line 11) | internal sealed class ConcreteGraphicsDeviceManager : GraphicsDeviceMana...
    method ConcreteGraphicsDeviceManager (line 13) | public ConcreteGraphicsDeviceManager(Game game) : base(game)
    method ToggleFullScreen (line 71) | public override void ToggleFullScreen()
    method CreateDevice (line 77) | public override void CreateDevice()
    method GameWindow_OrientationChanged (line 139) | private void GameWindow_OrientationChanged(object sender, EventArgs e)
    method ApplyChanges (line 165) | public override void ApplyChanges()
    method BeginDraw (line 194) | public override bool BeginDraw()
    method EndDraw (line 201) | public override void EndDraw()
    method Dispose (line 219) | protected override void Dispose(bool disposing)

FILE: Platforms/Game/.Oculus/AndroidCompatibility.cs
  class AndroidCompatibility (line 13) | public class AndroidCompatibility
    method Initialize (line 43) | internal static void Initialize(Activity activity)
    method AndroidCompatibility (line 49) | private AndroidCompatibility(Activity activity)
    method GetDeviceNaturalOrientation (line 55) | private Orientation GetDeviceNaturalOrientation(Activity activity)
    method GetAbsoluteOrientation (line 127) | [CLSCompliant(false)]
    method GetAbsoluteOrientation (line 188) | internal DisplayOrientation GetAbsoluteOrientation(int degrees)

FILE: Platforms/Game/.Ref/ConcreteGame.cs
  class ConcreteGame (line 8) | sealed class ConcreteGame : GameStrategy
    method ConcreteGame (line 10) | public ConcreteGame(Game game) : base(game)
    method RunGameLoop (line 15) | protected override void RunGameLoop()
    method TickExiting (line 20) | public override void TickExiting()

FILE: Platforms/Game/.Ref/ConcreteGameFactory.cs
  class ConcreteGameFactory (line 8) | public sealed class ConcreteGameFactory : GameFactory
    method CreateGameStrategy (line 11) | public override GameStrategy CreateGameStrategy(Game game)
    method CreateGraphicsDeviceManagerStrategy (line 16) | public override GraphicsDeviceManagerStrategy CreateGraphicsDeviceMana...

FILE: Platforms/Game/.Ref/ConcreteGraphicsDeviceManager.cs
  class ConcreteGraphicsDeviceManager (line 9) | internal sealed class ConcreteGraphicsDeviceManager : GraphicsDeviceMana...
    method ConcreteGraphicsDeviceManager (line 12) | public ConcreteGraphicsDeviceManager(Game game) : base(game)
    method ToggleFullScreen (line 35) | public override void ToggleFullScreen()
    method ApplyChanges (line 40) | public override void ApplyChanges()
    method CreateDevice (line 48) | public override void CreateDevice()
    method BeginDraw (line 53) | public override bool BeginDraw()
    method EndDraw (line 60) | public override void EndDraw()

FILE: Platforms/Game/.SDL2/ConcreteGame.cs
  class ConcreteGame (line 15) | sealed class ConcreteGame : GameStrategy
    method RunGameLoop (line 21) | protected override void RunGameLoop()
    method ConcreteGame (line 39) | public ConcreteGame(Game game) : base(game)
    method TickExiting (line 73) | public override void TickExiting()
    method Dispose (line 78) | protected override void Dispose(bool disposing)

FILE: Platforms/Game/.SDL2/ConcreteGameFactory.cs
  class ConcreteGameFactory (line 8) | public sealed class ConcreteGameFactory : GameFactory
    method CreateGameStrategy (line 11) | public override GameStrategy CreateGameStrategy(Game game)
    method CreateGraphicsDeviceManagerStrategy (line 16) | public override GraphicsDeviceManagerStrategy CreateGraphicsDeviceMana...

FILE: Platforms/Game/.SDL2/ConcreteGraphicsDeviceManager.cs
  class ConcreteGraphicsDeviceManager (line 11) | internal sealed class ConcreteGraphicsDeviceManager : GraphicsDeviceMana...
    method ConcreteGraphicsDeviceManager (line 15) | public ConcreteGraphicsDeviceManager(Game game) : base(game)
    method ToggleFullScreen (line 48) | public override void ToggleFullScreen()
    method ApplyChanges (line 54) | public override void ApplyChanges()
    method DoPreparingDeviceSettings (line 90) | internal GraphicsDeviceInformation DoPreparingDeviceSettings()
    method PlatformInitialize (line 127) | private void PlatformInitialize(PresentationParameters presentationPar...
    method ToGLColorFormat (line 178) | private static ColorFormat ToGLColorFormat(SurfaceFormat format)
    method CreateDevice (line 208) | public override void CreateDevice()
    method GraphicsDevice_DeviceReset_UpdateTouchPanel (line 231) | private void GraphicsDevice_DeviceReset_UpdateTouchPanel(object sender...
    method GraphicsDevice_PresentationChanged_UpdateGamePlatform (line 238) | private void GraphicsDevice_PresentationChanged_UpdateGamePlatform(obj...
    method BeginDraw (line 250) | public override bool BeginDraw()
    method EndDraw (line 257) | public override void EndDraw()

FILE: Platforms/Game/.SDL2/SDL2.cs
  class Sdl (line 12) | internal class Sdl
    method Sdl (line 42) | public Sdl()
    method GetNativeLibrary (line 59) | private IntPtr GetNativeLibrary()
    type InitFlags (line 72) | [Flags]
    type EventType (line 81) | public enum EventType : uint
    type EventAction (line 141) | public enum EventAction
    type Event (line 148) | [StructLayout(LayoutKind.Explicit, Size = 56)]
    type Rectangle (line 173) | public struct Rectangle
    type Version (line 181) | public struct Version
      method Version (line 189) | public Version(byte major, byte minor, byte patch) : this()
      method ToString (line 216) | public override string ToString()
    method Init (line 226) | public void Init(InitFlags flags)
    method InitSubSystem (line 236) | public void InitSubSystem(InitFlags flags)
    method CreateRGBSurfaceFrom (line 274) | public IntPtr CreateRGBSurfaceFrom(byte[] pixels, int width, int heigh...
    method GetError (line 295) | public string GetError()
    method GetError (line 300) | public void GetError(int res)
    method GetError (line 306) | public void GetError(IntPtr pointer)
    method GetHint (line 320) | public string GetHint(string name)
    method LoadBMP_RW (line 329) | public IntPtr LoadBMP_RW(IntPtr src, int freesrc)
    method RwFromMem (line 340) | public IntPtr RwFromMem(byte[] mem, int size)
    method LoadEntryPoints (line 356) | private void LoadEntryPoints(IntPtr library)
    class Window (line 379) | public class Window
      type EventId (line 386) | public enum EventId : byte
      method Window (line 406) | public Window(Sdl sdl, IntPtr library)
      type State (line 412) | public enum State : int
      type Event (line 431) | [StructLayout(LayoutKind.Sequential)]
      type SysWMType (line 445) | public enum SysWMType
      type SDL_SysWMinfo (line 459) | [StructLayout(LayoutKind.Sequential)]
      method Create (line 471) | public IntPtr Create(string title, int x, int y, int w, int h, Sdl.W...
      method GetDisplayIndex (line 490) | public int GetDisplayIndex(IntPtr window)
      method SetFullscreen (line 521) | public void SetFullscreen(IntPtr window, Sdl.Window.State flags)
      method SetTitle (line 543) | public unsafe void SetTitle(IntPtr handle, string title)
      method LoadEntryPoints (line 566) | private void LoadEntryPoints(IntPtr library)
    class Display (line 588) | public class Display
      type Mode (line 592) | public struct Mode
      method Display (line 601) | public Display(Sdl sdl, IntPtr library)
      method GetBounds (line 611) | public void GetBounds(int displayIndex, out Rectangle rect)
      method GetCurrentDisplayMode (line 621) | public void GetCurrentDisplayMode(int displayIndex, out Mode mode)
      method GetDisplayMode (line 631) | public void GetDisplayMode(int displayIndex, int modeIndex, out Mode...
      method GetClosestDisplayMode (line 641) | public void GetClosestDisplayMode(int displayIndex, Mode mode, out M...
      method GetDisplayName (line 651) | public string GetDisplayName(int index)
      method GetNumDisplayModes (line 662) | public int GetNumDisplayModes(int displayIndex)
      method GetNumVideoDisplays (line 673) | public int GetNumVideoDisplays()
      method GetWindowDisplayIndex (line 684) | public int GetWindowDisplayIndex(IntPtr window)
      method LoadEntryPoints (line 692) | private void LoadEntryPoints(IntPtr library)
    class GL (line 705) | public class GL
      type Attribute (line 709) | public enum Attribute
      type ContextProfile (line 738) | public enum ContextProfile : int
      type ContextFlag (line 747) | [Flags]
      type ContextReleaseBehaviour (line 756) | public enum ContextReleaseBehaviour : int
      method GL (line 762) | public GL(Sdl sdl, IntPtr library)
      method CreateGLContext (line 773) | public IntPtr CreateGLContext(IntPtr window)
      method GetCurrentContext (line 788) | public IntPtr GetCurrentContext()
      method SetAttribute (line 811) | public int SetAttribute(Attribute attr, int value)
      method LoadEntryPoints (line 826) | private void LoadEntryPoints(IntPtr library)
    class Mouse (line 840) | public class Mouse
      type Button (line 844) | [Flags]
      type SystemCursor (line 854) | public enum SystemCursor
      type MotionEvent (line 870) | [StructLayout(LayoutKind.Sequential)]
      type WheelEvent (line 887) | [StructLayout(LayoutKind.Sequential)]
      method Mouse (line 899) | public Mouse(Sdl sdl, IntPtr library)
      method CreateColorCursor (line 909) | public IntPtr CreateColorCursor(IntPtr surface, int x, int y)
      method CreateSystemCursor (line 920) | public IntPtr CreateSystemCursor(SystemCursor id)
      method LoadEntryPoints (line 951) | private void LoadEntryPoints(IntPtr library)
    class Keyboard (line 964) | public class Keyboard
      type Keysym (line 968) | public struct Keysym
      type Keymod (line 976) | [Flags]
      type Event (line 998) | [StructLayout(LayoutKind.Sequential)]
      type TextEditingEvent (line 1011) | [StructLayout(LayoutKind.Sequential)]
      type TextInputEvent (line 1022) | [StructLayout(LayoutKind.Sequential)]
      method Keyboard (line 1032) | public Keyboard(Sdl sdl, IntPtr library)
      method LoadEntryPoints (line 1042) | private void LoadEntryPoints(IntPtr library)
    class Joystick (line 1048) | public class Joystick
      type Hat (line 1052) | [Flags]
      type DeviceEvent (line 1063) | [StructLayout(LayoutKind.Sequential)]
      method Joystick (line 1071) | public Joystick(Sdl sdl, IntPtr library)
      method FromInstanceID (line 1085) | public IntPtr FromInstanceID(int joyid)
      method GetJoystickName (line 1104) | public string GetJoystickName(IntPtr joystick)
      method Open (line 1125) | public IntPtr Open(int deviceIndex)
      method NumAxes (line 1136) | public int NumAxes(IntPtr joystick)
      method NumButtons (line 1147) | public int NumButtons(IntPtr joystick)
      method NumHats (line 1158) | public int NumHats(IntPtr joystick)
      method NumJoysticks (line 1169) | public int NumJoysticks()
      method LoadEntryPoints (line 1180) | private void LoadEntryPoints(IntPtr library)
    class GameController (line 1199) | public class GameController
      type Axis (line 1203) | public enum Axis
      type Button (line 1215) | public enum Button
      type DeviceEvent (line 1236) | [StructLayout(LayoutKind.Sequential)]
      method GameController (line 1244) | public GameController(Sdl sdl, IntPtr library)
      method FromInstanceID (line 1266) | public IntPtr FromInstanceID(int joyid)
      method GetJoystick (line 1285) | public IntPtr GetJoystick(IntPtr gamecontroller)
      method Open (line 1304) | public IntPtr Open(int joystickIndex)
      method GetName (line 1315) | public string GetName(IntPtr gamecontroller)
      method LoadEntryPoints (line 1335) | private void LoadEntryPoints(IntPtr library)
    class Haptic (line 1356) | public class Haptic
      type EffectId (line 1365) | public enum EffectId : ushort
      type LeftRight (line 1370) | [StructLayout(LayoutKind.Sequential)]
      type Effect (line 1379) | [StructLayout(LayoutKind.Explicit)]
      method Haptic (line 1386) | public Haptic(Sdl sdl, IntPtr library)
      method NewEffect (line 1408) | public void NewEffect(IntPtr haptic, ref Effect effect)
      method OpenFromJoystick (line 1422) | public IntPtr OpenFromJoystick(IntPtr joystick)
      method RumbleInit (line 1433) | public void RumbleInit(IntPtr haptic)
      method RumblePlay (line 1443) | public void RumblePlay(IntPtr haptic, float strength, uint length)
      method RumbleSupported (line 1453) | public int RumbleSupported(IntPtr haptic)
      method RunEffect (line 1464) | public void RunEffect(IntPtr haptic, int effect, uint iterations)
      method StopAll (line 1474) | public void StopAll(IntPtr haptic)
      method UpdateEffect (line 1484) | public void UpdateEffect(IntPtr haptic, int effect, ref Effect data)
      method LoadEntryPoints (line 1490) | private void LoadEntryPoints(IntPtr library)
    class Drop (line 1507) | public class Drop
      type Event (line 1509) | [StructLayout(LayoutKind.Sequential)]

FILE: Platforms/Game/.SDL2/SDLGameWindow.cs
  class SdlGameWindow (line 24) | internal class SdlGameWindow : GameWindow, IDisposable
    method FromHandle (line 28) | internal static SdlGameWindow FromHandle(IntPtr handle)
    method SdlGameWindow (line 116) | public SdlGameWindow(Game game)
    method LoadAppIcon (line 148) | private IntPtr LoadAppIcon()
    method CreateWindow (line 188) | internal void CreateWindow()
    method SdlRunLoop (line 241) | internal bool SdlRunLoop()
    method UTF8ToUnicode (line 420) | internal int UTF8ToUnicode(int utf8)
    method GetMouseDisplay (line 447) | private int GetMouseDisplay()
    method SetCursorVisible (line 468) | public void SetCursorVisible(bool visible)
    method EndScreenDeviceChange (line 474) | internal void EndScreenDeviceChange(string screenDeviceName, int clien...
    method ClientResize (line 543) | public void ClientResize(int width, int height)
    method SetTitle (line 567) | protected override void SetTitle(string title)
    method Dispose (line 572) | public void Dispose()
    method Dispose (line 578) | protected virtual void Dispose(bool disposing)

FILE: Platforms/Game/.UAP/ConcreteGame.cs
  class ConcreteGame (line 30) | sealed class ConcreteGame : GameStrategy
    method ConcreteGame (line 40) | public ConcreteGame(Game game) : base(game)
    method CoreApplication_Suspending (line 119) | private void CoreApplication_Suspending(object sender, SuspendingEvent...
    method CoreApplication_Resuming (line 130) | private void CoreApplication_Resuming(object sender, Object e)
    method Internal_SetIsVisible (line 139) | internal void Internal_SetIsVisible(bool isVisible)
    method Run (line 144) | protected override void Run()
    method StartGameLoop (line 159) | private void StartGameLoop()
    method OnRenderFrame (line 169) | private void OnRenderFrame(IdleDispatchedHandlerArgs e)
    method OnRenderFrame (line 175) | private void OnRenderFrame()
    method OnRenderFrame (line 187) | private void OnRenderFrame(bool isQueueEmpty)
    method TickExiting (line 200) | public override void TickExiting()
    method Dispose (line 223) | protected override void Dispose(bool disposing)

FILE: Platforms/Game/.UAP/ConcreteGameFactory.cs
  class ConcreteGameFactory (line 8) | public sealed class ConcreteGameFactory : GameFactory
    method CreateGameStrategy (line 11) | public override GameStrategy CreateGameStrategy(Game game)
    method CreateGraphicsDeviceManagerStrategy (line 16) | public override GraphicsDeviceManagerStrategy CreateGraphicsDeviceMana...

FILE: Platforms/Game/.UAP/ConcreteGraphicsDeviceManager.cs
  class ConcreteGraphicsDeviceManager (line 22) | internal sealed class ConcreteGraphicsDeviceManager : GraphicsDeviceMana...
    method ConcreteGraphicsDeviceManager (line 28) | public ConcreteGraphicsDeviceManager(Game game) : base(game)
    method ToggleFullScreen (line 62) | public override void ToggleFullScreen()
    method ApplyChanges (line 68) | public override void ApplyChanges()
    method FromOrientation (line 124) | private static NativeDisplayOrientation FromOrientation(DisplayOrienta...
    method DoPreparingDeviceSettings (line 145) | internal GraphicsDeviceInformation DoPreparingDeviceSettings()
    method CreateDevice (line 189) | public override void CreateDevice()
    method GraphicsDevice_DeviceReset_UpdateTouchPanel (line 224) | private void GraphicsDevice_DeviceReset_UpdateTouchPanel(object sender...
    method GraphicsDevice_PresentationChanged_UpdateGamePlatform (line 231) | private void GraphicsDevice_PresentationChanged_UpdateGamePlatform(obj...
    method BeginDraw (line 255) | public override bool BeginDraw()
    method EndDraw (line 271) | public override void EndDraw()

FILE: Platforms/Game/.UAP/GameFrameworkViewSource.cs
  class GameFrameworkViewSource (line 12) | public class GameFrameworkViewSource<T> : IFrameworkViewSource
    method GameFrameworkViewSource (line 15) | public GameFrameworkViewSource()
    method CreateView (line 19) | IFrameworkView IFrameworkViewSource.CreateView()

FILE: Platforms/Game/.UAP/InputEvents.cs
  class InputEvents (line 38) | internal class InputEvents
    type KeyChar (line 40) | internal struct KeyChar
    method InputEvents (line 58) | public InputEvents(UAPGameWindow gameWindow, CoreWindow window, UIElem...
    method InputEvents_DpiChanged (line 121) | private void InputEvents_DpiChanged(DisplayInformation sender, object ...
    method UIElement_PointerPressed (line 128) | private void UIElement_PointerPressed(object sender, PointerRoutedEven...
    method UIElement_PointerMoved (line 138) | private void UIElement_PointerMoved(object sender, PointerRoutedEventA...
    method UIElement_PointerReleased (line 145) | private void UIElement_PointerReleased(object sender, PointerRoutedEve...
    method UIElement_PointerCanceled (line 154) | private void UIElement_PointerCanceled(object sender, PointerRoutedEve...
    method UIElement_PointerWheelChanged (line 163) | private void UIElement_PointerWheelChanged(object sender, PointerRoute...
    method CoreWindow_PointerPressed (line 174) | private void CoreWindow_PointerPressed(object sender, PointerEventArgs...
    method CoreWindow_PointerMoved (line 180) | private void CoreWindow_PointerMoved(object sender, PointerEventArgs a...
    method CoreWindow_PointerReleased (line 186) | private void CoreWindow_PointerReleased(object sender, PointerEventArg...
    method CoreWindow_PointerWheelChanged (line 192) | private void CoreWindow_PointerWheelChanged(object sender, PointerEven...
    method PointerPressed (line 200) | private void PointerPressed(PointerPoint pointerPoint, UIElement targe...
    method PointerMoved (line 220) | private void PointerMoved(PointerPoint pointerPoint)
    method PointerReleased (line 239) | private void PointerReleased(PointerPoint pointerPoint, UIElement targ...
    method PointerCanceled (line 259) | private void PointerCanceled(PointerPoint pointerPoint, UIElement targ...
    method UpdateMouse (line 279) | private void UpdateMouse(PointerPoint point)
    method UpdateState (line 305) | public void UpdateState()
    method KeyTranslate (line 311) | internal static Keys KeyTranslate(Windows.System.VirtualKey inkey, Cor...
    method CoreWindow_KeyUp (line 335) | private void CoreWindow_KeyUp(object sender, KeyEventArgs args)
    method CoreWindow_KeyDown (line 342) | private void CoreWindow_KeyDown(object sender, KeyEventArgs args)
    method Window_CharacterReceived (line 352) | private void Window_CharacterReceived(CoreWindow sender, CharacterRece...
    method CoreWindow_SizeChanged (line 358) | private void CoreWindow_SizeChanged(CoreWindow sender, WindowSizeChang...
    method CoreWindow_Activated (line 368) | private void CoreWindow_Activated(CoreWindow sender, WindowActivatedEv...
    method CoreWindow_VisibilityChanged (line 379) | private void CoreWindow_VisibilityChanged(CoreWindow sender, Visibilit...
    method WakeupKeyboardInput (line 390) | private static void WakeupKeyboardInput()

FILE: Platforms/Game/.UAP/UAPFrameworkView.cs
  class UAPFrameworkView (line 14) | class UAPFrameworkView<T> : IFrameworkView
    method UAPFrameworkView (line 20) | public UAPFrameworkView()
    method Initialize (line 24) | void IFrameworkView.Initialize(CoreApplicationView applicationView)
    method ApplicationView_Activated (line 31) | private void ApplicationView_Activated(CoreApplicationView sender, IAc...
    method Load (line 58) | void IFrameworkView.Load(string entryPoint)
    method Run (line 62) | void IFrameworkView.Run()
    method SetWindow (line 68) | void IFrameworkView.SetWindow(CoreWindow window)
    method Uninitialize (line 74) | void IFrameworkView.Uninitialize()

FILE: Platforms/Game/.UAP/UAPGameWindow.cs
  class UAPGameWindow (line 37) | partial class UAPGameWindow : GameWindow
    method FromHandle (line 41) | internal static UAPGameWindow FromHandle(IntPtr handle)
    method UAPGameWindow (line 97) | static UAPGameWindow()
    method UAPGameWindow (line 102) | internal UAPGameWindow()
    method Initialize (line 109) | public void Initialize(CoreWindow coreWindow, SwapChainPanel swapChain...
    method Window_VisibilityChanged (line 145) | void Window_VisibilityChanged(CoreWindow sender, VisibilityChangedEven...
    method Window_FocusChanged (line 150) | private void Window_FocusChanged(CoreWindow sender, WindowActivatedEve...
    method Window_Closed (line 171) | private void Window_Closed(CoreWindow sender, CoreWindowEventArgs args)
    method SetViewBounds (line 177) | private void SetViewBounds(double width, double height)
    method Window_SizeChanged (line 184) | private void Window_SizeChanged(object sender, WindowSizeChangedEventA...
    method Dispatcher_AcceleratorKeyActivated (line 207) | private void Dispatcher_AcceleratorKeyActivated(CoreDispatcher sender,...
    method ToOrientation (line 226) | private static DisplayOrientation ToOrientation(DisplayOrientations or...
    method SetClientSize (line 241) | internal void SetClientSize(int width, int height)
    method DisplayProperties_OrientationChanged (line 273) | private void DisplayProperties_OrientationChanged(DisplayInformation d...
    method HardwareButtons_BackPressed (line 289) | private void HardwareButtons_BackPressed(object sender, BackPressedEve...
    method BackRequested (line 300) | private void BackRequested(object sender, BackRequestedEventArgs e)
    method UpdateBackButton (line 306) | private void UpdateBackButton()
    method SetTitle (line 312) | protected override void SetTitle(string title)
    method SetCursor (line 317) | internal void SetCursor(bool visible)
    method Tick (line 331) | internal void Tick()
    method Dispose (line 356) | public void Dispose()

FILE: Platforms/Game/.UAP/XamlGame.cs
  class XamlGame (line 23) | [CLSCompliant(false)]
    method Create (line 34) | static public T Create(string launchParameters, CoreWindow window, Swa...

FILE: Platforms/Game/.WindowsDX11/ConcreteGame.cs
  class ConcreteGame (line 13) | sealed class ConcreteGame : GameStrategy
    method ConcreteGame (line 19) | public ConcreteGame(Game game) : base(game)
    method RunGameLoop (line 26) | protected override void RunGameLoop()
    method TickExiting (line 44) | public override void TickExiting()
    method Dispose (line 53) | protected override void Dispose(bool disposing)

FILE: Platforms/Game/.WindowsDX11/ConcreteGameFactory.cs
  class ConcreteGameFactory (line 8) | public sealed class ConcreteGameFactory : GameFactory
    method CreateGameStrategy (line 11) | public override GameStrategy CreateGameStrategy(Game game)
    method CreateGraphicsDeviceManagerStrategy (line 16) | public override GraphicsDeviceManagerStrategy CreateGraphicsDeviceMana...

FILE: Platforms/Game/.WindowsDX11/ConcreteGraphicsDeviceManager.cs
  class ConcreteGraphicsDeviceManager (line 10) | internal sealed class ConcreteGraphicsDeviceManager : GraphicsDeviceMana...
    method ConcreteGraphicsDeviceManager (line 13) | public ConcreteGraphicsDeviceManager(Game game) : base(game)
    method ToggleFullScreen (line 46) | public override void ToggleFullScreen()
    method ApplyChanges (line 52) | public override void ApplyChanges()
    method DoPreparingDeviceSettings (line 88) | internal GraphicsDeviceInformation DoPreparingDeviceSettings()
    method CreateDevice (line 132) | public override void CreateDevice()
    method GraphicsDevice_DeviceReset_UpdateTouchPanel (line 166) | private void GraphicsDevice_DeviceReset_UpdateTouchPanel(object sender...
    method GraphicsDevice_PresentationChanged_UpdateGamePlatform (line 173) | private void GraphicsDevice_PresentationChanged_UpdateGamePlatform(obj...
    method UpdateBackBufferSize (line 180) | internal void UpdateBackBufferSize(Rectangle clientBounds)
    method BeginDraw (line 197) | public override bool BeginDraw()
    method EndDraw (line 204) | public override void EndDraw()

FILE: Platforms/Game/.WindowsDX11/KeysHelper.cs
  class KeysHelper (line 11) | internal static class KeysHelper
    method KeysHelper (line 15) | static KeysHelper()
    method IsKey (line 27) | public static bool IsKey(int value)

FILE: Platforms/Game/.WindowsDX11/TimerHelper.cs
  class TimerHelper (line 10) | internal static class TimerHelper
    method NtQueryTimerResolution (line 12) | [DllImport("ntdll.dll", SetLastError = true)]
    method TimerHelper (line 17) | static TimerHelper()
    method GetCurrentResolution (line 27) | public static double GetCurrentResolution()
    method SleepForNoMoreThan (line 37) | public static void SleepForNoMoreThan(double milliseconds)

FILE: Platforms/Game/.WindowsDX11/WinFormsGameForm.cs
  class MessageExtensions (line 17) | internal static class MessageExtensions
    method GetPointerId (line 19) | public static int GetPointerId(this Message msg)
    method GetPointerLocation (line 24) | public static System.Drawing.Point GetPointerLocation(this Message msg)
  class WinFormsGameForm (line 36) | [System.ComponentModel.DesignerCategory("Code")]
    method WinFormsGameForm (line 68) | public WinFormsGameForm(WinFormsGameWindow window)
    method WinFormsGameForm_Disposed (line 75) | private void WinFormsGameForm_Disposed(object sender, EventArgs e)
    method PreFilterMessage (line 83) | bool IMessageFilter.PreFilterMessage(ref Message m)
    method WndProc (line 104) | [System.Security.Permissions.PermissionSet(System.Security.Permissions...
    method HandleKeyMessage (line 227) | void HandleKeyMessage(ref Message m)
    method DragQueryFile (line 256) | [DllImport("shell32.dll", CharSet = CharSet.Unicode)]
    method HandleDropMessage (line 260) | void HandleDropMessage(ref Message m)
    method KeyCodeTranslate (line 279) | private static Microsoft.Xna.Framework.Input.Keys KeyCodeTranslate(

FILE: Platforms/Game/.WindowsDX11/WinFormsGameWindow.cs
  class WinFormsGameWindow (line 27) | class WinFormsGameWindow : GameWindow, IDisposable
    method FromHandle (line 31) | internal static WinFormsGameWindow FromHandle(IntPtr handle)
    method WinFormsGameWindow (line 128) | internal WinFormsGameWindow(ConcreteGame concreteGame)
    type POINTSTRUCT (line 171) | [StructLayout(LayoutKind.Sequential)]
    method ExtractIcon (line 178) | [DllImport("shell32.dll", CharSet = CharSet.Auto, BestFitMapping = fal...
    method GetCursorPos (line 181) | [DllImport("user32.dll", ExactSpelling=true, CharSet=CharSet.Auto)]
    method MapWindowPoints (line 185) | [DllImport("user32.dll", ExactSpelling=true, CharSet=CharSet.Auto)]
    method DragAcceptFiles (line 188) | [DllImport("shell32.dll")]
    method SetIcon (line 191) | private void SetIcon()
    method OnActivated (line 207) | private void OnActivated(object sender, EventArgs eventArgs)
    method OnDeactivate (line 215) | private void OnDeactivate(object sender, EventArgs eventArgs)
    method OnMouseEnter (line 228) | private void OnMouseEnter(object sender, EventArgs e)
    method OnMouseLeave (line 238) | private void OnMouseLeave(object sender, EventArgs e)
    method VkKeyScanEx (line 248) | [DllImport("user32.dll")]
    method OnKeyPress (line 251) | private void OnKeyPress(object sender, KeyPressEventArgs e)
    method OnResizeBegin (line 259) | private void OnResizeBegin(object sender, EventArgs e)
    method OnResize (line 263) | private void OnResize(object sender, EventArgs eventArgs)
    method OnResizeEnd (line 315) | private void OnResizeEnd(object sender, EventArgs eventArgs)
    method SetTitle (line 335) | protected override void SetTitle(string title)
    method RunGameLoop (line 340) | internal void RunGameLoop()
    method Application_Idle (line 365) | private void Application_Idle(object sender, EventArgs e)
    type NativeMessage (line 380) | [StructLayout(LayoutKind.Sequential)]
    method ChangeClientSize (line 391) | internal void ChangeClientSize(int width, int height)
    method CenterOnPrimaryMonitor (line 408) | internal void CenterOnPrimaryMonitor()
    method PeekMessage (line 415) | [System.Security.SuppressUnmanagedCodeSecurity] // We won't use this m...
    method Dispose (line 421) | public void Dispose()
    method Dispose (line 427) | void Dispose(bool disposing)
    method MouseVisibleToggled (line 452) | public void MouseVisibleToggled()
    method OnPresentationChanged (line 469) | internal void OnPresentationChanged(PresentationParameters pp)
    method EnterFullScreen (line 505) | internal void EnterFullScreen(PresentationParameters pp)
    method RedrawWindow (line 533) | [DllImport("user32.dll")]
    method ExitFullScreen (line 536) | private void ExitFullScreen()
    method MinimizeFullScreen (line 555) | private void MinimizeFullScreen()
    method Platform_OnFileDrop (line 574) | internal void Platform_OnFileDrop(FileDropEventArgs e)
    method Platform_OnKeyDown (line 579) | internal void Platform_OnKeyDown(Keys key)
    method Platform_OnKeyUp (line 584) | internal void Platform_OnKeyUp(Keys key)
    method Platform_IsTextInputAttached (line 589) | internal bool Platform_IsTextInputAttached()
    method Platform_IsKeyUpDownAttached (line 594) | internal bool Platform_IsKeyUpDownAttached()

FILE: Platforms/Game/.iOS/ConcreteGame.cs
  class ConcreteGame (line 24) | sealed class ConcreteGame : GameStrategy
    method ConcreteGame (line 32) | public ConcreteGame(Game game) : base(game)
    method CreateDisplayLink (line 66) | private void CreateDisplayLink()
    method Run (line 81) | protected override void Run()
    method StartGameLoop (line 95) | private void StartGameLoop()
    method Dispose (line 112) | protected override void Dispose(bool disposing)
    method iOSTick (line 132) | internal void iOSTick()
    method Exit (line 154) | public override void Exit()
    method TickExiting (line 159) | public override void TickExiting()
    method BeginObservingUIApplicationExit (line 165) | private void BeginObservingUIApplicationExit()
    method Application_WillTerminate (line 174) | private void Application_WillTerminate(NSNotification notification)
    method ViewController_InterfaceOrientationChanged (line 201) | private void ViewController_InterfaceOrientationChanged(object sender,...

FILE: Platforms/Game/.iOS/ConcreteGameFactory.cs
  class ConcreteGameFactory (line 8) | public sealed class ConcreteGameFactory : GameFactory
    method CreateGameStrategy (line 11) | public override GameStrategy CreateGameStrategy(Game game)
    method CreateGraphicsDeviceManagerStrategy (line 16) | public override GraphicsDeviceManagerStrategy CreateGraphicsDeviceMana...

FILE: Platforms/Game/.iOS/ConcreteGraphicsDeviceManager.cs
  class ConcreteGraphicsDeviceManager (line 9) | internal sealed class ConcreteGraphicsDeviceManager : GraphicsDeviceMana...
    method ConcreteGraphicsDeviceManager (line 11) | public ConcreteGraphicsDeviceManager(Game game) : base(game)
    method ToggleFullScreen (line 68) | public override void ToggleFullScreen()
    method CreateDevice (line 74) | public override void CreateDevice()
    method ApplyChanges (line 139) | public override void ApplyChanges()
    method BeginDraw (line 167) | public override bool BeginDraw()
    method EndDraw (line 174) | public override void EndDraw()

FILE: Platforms/Game/.iOS/IPlatformBackButton.tvOS.cs
  type IPlatformBackButton (line 8) | public interface IPlatformBackButton
    method Handled (line 14) | bool Handled();

FILE: Platforms/Game/.iOS/OrientationConverter.cs
  class OrientationConverter (line 74) | public static class OrientationConverter
    method UIDeviceOrientationToDisplayOrientation (line 76) | [CLSCompliant(false)]
    method ToDisplayOrientation (line 93) | [CLSCompliant(false)]
    method ToUIInterfaceOrientationMask (line 108) | [CLSCompliant(false)]
    method Normalize (line 133) | public static DisplayOrientation Normalize(DisplayOrientation orientat...

FILE: Platforms/Game/.iOS/iOSGameView.cs
  class iOSGameView (line 91) | [Register("iOSGameView")]
    method iOSGameView (line 100) | public iOSGameView(ConcreteGame concreteGame, CGRect frame) : base(frame)
    method Dispose (line 114) | protected override void Dispose(bool disposing)
    method GetLayerClass (line 142) | [Export("layerClass")]
    method CreateGLContext (line 162) | private void CreateGLContext()
    method DoTick (line 212) | [Export("doTick")]
    method CreateFramebuffer (line 218) | private void CreateFramebuffer()
    method DestroyFramebuffer (line 305) | private void DestroyFramebuffer()
    method Present (line 337) | public void Present()
    method MakeCurrent (line 353) | public void MakeCurrent()
    method LayoutSubviews (line 365) | public override void LayoutSubviews()
    method DidMoveToWindow (line 383) | [Export("didMoveToWindow")]
    method AssertNotDisposed (line 397) | private void AssertNotDisposed()
    method AssertValidContext (line 403) | private void AssertValidContext()

FILE: Platforms/Game/.iOS/iOSGameViewController.cs
  method iOSGameViewController (line 28) | public iOSGameViewController(ConcreteGame concreteGame)
  method LoadView (line 42) | public override void LoadView()
  method ShouldAutorotateToInterfaceOrientation (line 86) | public override bool ShouldAutorotateToInterfaceOrientation(UIInterfaceO...
  method GetSupportedInterfaceOrientations (line 95) | public override UIInterfaceOrientationMask GetSupportedInterfaceOrientat...
  method ShouldAutorotate (line 100) | public override bool ShouldAutorotate()
  method DidRotate (line 106) | public override void DidRotate(UIInterfaceOrientation fromInterfaceOrien...
  method PrefersStatusBarHidden (line 116) | public override bool PrefersStatusBarHidden()
  method ViewWillTransitionToSize (line 126) | public override void ViewWillTransitionToSize(CGSize toSize, IUIViewCont...
  method PressesBegan (line 181) | public override void PressesBegan(NSSet<UIPress> presses, UIPressesEvent...
  method PressesEnded (line 212) | public override void PressesEnded(NSSet<UIPress> presses, UIPressesEvent...

FILE: Platforms/Game/.iOS/iOSGameView_Touch.cs
  class iOSGameView (line 83) | partial class iOSGameView
    method TouchesBegan (line 93) | public override void TouchesBegan(NSSet touches, UIEvent evt)
    method TouchesEnded (line 99) | public override void TouchesEnded(NSSet touches, UIEvent evt)
    method TouchesMoved (line 105) | public override void TouchesMoved(NSSet touches, UIEvent evt)
    method TouchesCancelled (line 111) | public override void TouchesCancelled(NSSet touches, UIEvent evt)
    method FillTouchCollection (line 118) | private void FillTouchCollection(NSSet touches)
    method GetOffsetPosition (line 155) | public Vector2 GetOffsetPosition(Vector2 position, bool useScale)

FILE: Platforms/Game/.iOS/iOSGameWindow.cs
  class iOSGameWindow (line 78) | class iOSGameWindow : GameWindow, IDisposable
    method FromHandle (line 82) | internal static iOSGameWindow FromHandle(IntPtr windowHandle)
    method iOSGameWindow (line 97) | public iOSGameWindow(ConcreteGame concreteGame)
    method HandleInterfaceOrientationChanged (line 121) | void HandleInterfaceOrientationChanged(object sender, EventArgs e)
    method SetTitle (line 209) | protected override void SetTitle(string title)
    method BeginObservingUIApplication (line 217) | internal void BeginObservingUIApplication()
    method Application_DidBecomeActive (line 230) | private void Application_DidBecomeActive(NSNotification notification)
    method Application_WillResignActive (line 240) | private void Application_WillResignActive(NSNotification notification)
    method Dispose (line 248) | public void Dispose()
    method Dispose (line 254) | protected virtual void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/ConcreteGraphicsAdapter.cs
  class ConcreteGraphicsAdapter (line 19) | internal class ConcreteGraphicsAdapter : GraphicsAdapterStrategy
    method Platform_IsShaderBackendSupported (line 90) | public override bool Platform_IsShaderBackendSupported(GraphicsBackend...
    method Platform_IsShaderProfileSupported (line 103) | public override bool Platform_IsShaderProfileSupported(ShaderProfileTy...
    method ConcreteGraphicsAdapter (line 115) | internal ConcreteGraphicsAdapter()
    method Platform_IsProfileSupported (line 120) | public override bool Platform_IsProfileSupported(GraphicsProfile graph...
    method Platform_QueryBackBufferFormat (line 155) | public override bool Platform_QueryBackBufferFormat(
    method Platform_QueryRenderTargetFormat (line 163) | public override bool Platform_QueryRenderTargetFormat(

FILE: Platforms/Graphics/.BlazorGL/ConcreteGraphicsAdaptersProvider.cs
  class ConcreteGraphicsAdaptersProvider (line 16) | class ConcreteGraphicsAdaptersProvider : GraphicsAdaptersProviderStrategy
    method ConcreteGraphicsAdaptersProvider (line 20) | public ConcreteGraphicsAdaptersProvider()
    method CreateAdapterList (line 26) | private List<GraphicsAdapter> CreateAdapterList()

FILE: Platforms/Graphics/.BlazorGL/ConcreteGraphicsCapabilities.cs
  class ConcreteGraphicsCapabilities (line 10) | internal sealed class ConcreteGraphicsCapabilities : GraphicsCapabilities
    method PlatformInitialize (line 16) | internal void PlatformInitialize(ConcreteGraphicsContext cgraphicsCont...

FILE: Platforms/Graphics/.BlazorGL/ConcreteGraphicsContext.cs
  class ConcreteGraphicsContext (line 14) | internal sealed class ConcreteGraphicsContext : GraphicsContextStrategy
    method ConcreteGraphicsContext (line 58) | internal ConcreteGraphicsContext(GraphicsContext context, IWebGLRender...
    method PlatformSetup (line 74) | public override void PlatformSetup()
    method Clear (line 95) | public override void Clear(ClearOptions options, Vector4 color, float ...
    method PlatformApplyState (line 158) | private void PlatformApplyState()
    method PlatformApplyBlend (line 185) | private void PlatformApplyBlend()
    method PlatformApplyScissorRectangle (line 205) | private void PlatformApplyScissorRectangle()
    method PlatformApplyViewport (line 227) | internal void PlatformApplyViewport()
    method PlatformApplyIndexBuffer (line 255) | private void PlatformApplyIndexBuffer()
    method PlatformApplyShaders (line 265) | private void PlatformApplyShaders()
    method PlatformApplyConstantBuffers (line 305) | private void PlatformApplyConstantBuffers(ConcreteShader shaderStrateg...
    method PlatformApplyTexturesAndSamplers (line 325) | private void PlatformApplyTexturesAndSamplers(ConcreteShader cshader, ...
    method ActivateShaderProgram (line 433) | private unsafe void ActivateShaderProgram(ConcreteVertexShader cvertex...
    method ApplyPosFixup (line 461) | private void ApplyPosFixup(ShaderProgram shaderProgram)
    method CreateProgram (line 518) | private ShaderProgram CreateProgram(ConcreteVertexShader cvertexShader...
    method GetUniformLocation (line 576) | public WebGLUniformLocation GetUniformLocation(ShaderProgram shaderPro...
    method PlatformApplyVertexBuffers (line 589) | private void PlatformApplyVertexBuffers(int baseVertex)
    method PlatformApplyUserVertexData (line 689) | internal void PlatformApplyUserVertexData(VertexDeclaration vertexDecl...
    method PrimitiveTypeGL (line 740) | private static WebGLPrimitiveType PrimitiveTypeGL(PrimitiveType primit...
    method DrawPrimitives (line 759) | public override void DrawPrimitives(PrimitiveType primitiveType, int v...
    method DrawIndexedPrimitives (line 779) | public override void DrawIndexedPrimitives(PrimitiveType primitiveType...
    method DrawIndexedPrimitives (line 802) | public override void DrawIndexedPrimitives(PrimitiveType primitiveType...
    method DrawInstancedPrimitives (line 838) | public override void DrawInstancedPrimitives(PrimitiveType primitiveTy...
    method DrawUserPrimitives (line 865) | public override void DrawUserPrimitives<T>(PrimitiveType primitiveType...
    method DrawUserIndexedPrimitives (line 911) | public override void DrawUserIndexedPrimitives<T>(PrimitiveType primit...
    method DrawUserIndexedPrimitives (line 978) | public override void DrawUserIndexedPrimitives<T>(PrimitiveType primit...
    method Flush (line 1045) | public override void Flush()
    method CreateOcclusionQueryStrategy (line 1051) | public override OcclusionQueryStrategy CreateOcclusionQueryStrategy()
    method CreateGraphicsDebugStrategy (line 1056) | public override GraphicsDebugStrategy CreateGraphicsDebugStrategy()
    method CreateConstantBufferCollectionStrategy (line 1061) | public override ConstantBufferCollectionStrategy CreateConstantBufferC...
    method CreateTextureCollectionStrategy (line 1066) | public override TextureCollectionStrategy CreateTextureCollectionStrat...
    method CreateSamplerStateCollectionStrategy (line 1071) | public override SamplerStateCollectionStrategy CreateSamplerStateColle...
    method CreateTexture2DStrategy (line 1076) | public override ITexture2DStrategy CreateTexture2DStrategy(int width, ...
    method CreateTexture3DStrategy (line 1081) | public override ITexture3DStrategy CreateTexture3DStrategy(int width, ...
    method CreateTextureCubeStrategy (line 1086) | public override ITextureCubeStrategy CreateTextureCubeStrategy(int siz...
    method CreateRenderTarget2DStrategy (line 1091) | public override IRenderTarget2DStrategy CreateRenderTarget2DStrategy(i...
    method CreateRenderTarget3DStrategy (line 1097) | public override IRenderTarget3DStrategy CreateRenderTarget3DStrategy(i...
    method CreateRenderTargetCubeStrategy (line 1102) | public override IRenderTargetCubeStrategy CreateRenderTargetCubeStrate...
    method CreateTexture2DStrategy (line 1107) | public override ITexture2DStrategy CreateTexture2DStrategy(Stream stream)
    method CreateVertexShaderStrategy (line 1112) | public override ShaderStrategy CreateVertexShaderStrategy(ShaderVersio...
    method CreatePixelShaderStrategy (line 1116) | public override ShaderStrategy CreatePixelShaderStrategy(ShaderVersion...
    method CreateConstantBufferStrategy (line 1120) | public override ConstantBufferStrategy CreateConstantBufferStrategy(st...
    method CreateIndexBufferStrategy (line 1125) | public override IndexBufferStrategy CreateIndexBufferStrategy(IndexEle...
    method CreateVertexBufferStrategy (line 1129) | public override VertexBufferStrategy CreateVertexBufferStrategy(Vertex...
    method CreateDynamicIndexBufferStrategy (line 1133) | public override IndexBufferStrategy CreateDynamicIndexBufferStrategy(I...
    method CreateDynamicVertexBufferStrategy (line 1137) | public override VertexBufferStrategy CreateDynamicVertexBufferStrategy...
    method CreateBlendStateStrategy (line 1142) | public override IBlendStateStrategy CreateBlendStateStrategy(IBlendSta...
    method CreateDepthStencilStateStrategy (line 1146) | public override IDepthStencilStateStrategy CreateDepthStencilStateStra...
    method CreateRasterizerStateStrategy (line 1150) | public override IRasterizerStateStrategy CreateRasterizerStateStrategy...
    method CreateSamplerStateStrategy (line 1154) | public override ISamplerStateStrategy CreateSamplerStateStrategy(ISamp...
    method Dispose (line 1160) | protected override void Dispose(bool disposing)
    method PlatformResolveRenderTargets (line 1176) | protected override void PlatformResolveRenderTargets()
    method PlatformApplyDefaultRenderTarget (line 1274) | protected override void PlatformApplyDefaultRenderTarget()
    method PlatformApplyRenderTargets (line 1287) | protected override IRenderTarget PlatformApplyRenderTargets()
    method PlatformUnbindRenderTarget (line 1358) | internal void PlatformUnbindRenderTarget(IRenderTargetStrategyGL rende...
    method CheckFramebufferStatus (line 1393) | [Conditional("DEBUG")]

FILE: Platforms/Graphics/.BlazorGL/ConcreteGraphicsDebug.cs
  class ConcreteGraphicsDebug (line 10) | internal sealed class ConcreteGraphicsDebug : GraphicsDebugStrategy
    method ConcreteGraphicsDebug (line 13) | internal ConcreteGraphicsDebug(GraphicsContextStrategy contextStrategy)
    method TryDequeueMessage (line 19) | public override bool TryDequeueMessage(out GraphicsDebugMessage message)

FILE: Platforms/Graphics/.BlazorGL/ConcreteGraphicsDevice.cs
  class ConcreteGraphicsDevice (line 14) | internal sealed class ConcreteGraphicsDevice : GraphicsDeviceStrategy
    method ConcreteGraphicsDevice (line 23) | internal ConcreteGraphicsDevice(GraphicsDevice device, GraphicsAdapter...
    method Reset (line 29) | public override void Reset()
    method Reset (line 34) | public override void Reset(PresentationParameters presentationParameters)
    method PlatformReset (line 39) | private void PlatformReset(PresentationParameters presentationParameters)
    method Present (line 46) | public override void Present(Rectangle? sourceRectangle, Rectangle? de...
    method Present (line 51) | public override void Present()
    method GetBackBufferData (line 56) | public override void GetBackBufferData<T>(Rectangle? rect, T[] data, i...
    method PlatformInitialize (line 61) | protected override void PlatformInitialize()
    method ClearProgramCache (line 69) | private void ClearProgramCache()
    method GetMaxMultiSampleCount (line 78) | internal int GetMaxMultiSampleCount(SurfaceFormat surfaceFormat)
    method CreateGraphicsContextStrategy (line 110) | public override GraphicsContextStrategy CreateGraphicsContextStrategy(...
    method Dispose (line 180) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/ConcreteGraphicsFactory.cs
  class ConcreteGraphicsFactory (line 7) | public sealed class ConcreteGraphicsFactory : GraphicsFactory
    method CreateGraphicsAdaptersProviderStrategy (line 9) | public override GraphicsAdaptersProviderStrategy CreateGraphicsAdapter...
    method CreateGraphicsDeviceStrategy (line 14) | public override GraphicsDeviceStrategy CreateGraphicsDeviceStrategy(Gr...
    method CreateSpriteBatcher (line 19) | public override SpriteBatcherStrategy CreateSpriteBatcher(GraphicsDevi...

FILE: Platforms/Graphics/.BlazorGL/ConcreteOcclusionQuery.cs
  class ConcreteOcclusionQuery (line 11) | public class ConcreteOcclusionQuery : OcclusionQueryStrategy
    method ConcreteOcclusionQuery (line 18) | internal ConcreteOcclusionQuery(GraphicsContextStrategy contextStrategy)
    method PlatformBegin (line 23) | public override void PlatformBegin()
    method PlatformEnd (line 28) | public override void PlatformEnd()
    method Dispose (line 34) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/ConcreteRenderTarget2D.cs
  class ConcreteRenderTarget2D (line 13) | internal class ConcreteRenderTarget2D : ConcreteTexture2D, IRenderTarget...
    method ConcreteRenderTarget2D (line 22) | internal ConcreteRenderTarget2D(GraphicsContextStrategy contextStrateg...
    method ResolveSubresource (line 69) | public virtual void ResolveSubresource(GraphicsContextStrategy graphic...
    method GetFramebufferTarget (line 101) | WebGLTextureTarget IRenderTargetStrategyGL.GetFramebufferTarget(int ar...
    method PlatformConstructTexture2D_rt (line 111) | private void PlatformConstructTexture2D_rt(GraphicsContextStrategy con...
    method PlatformConstructRenderTarget2D (line 116) | private void PlatformConstructRenderTarget2D(GraphicsContextStrategy c...
    method PlatformGraphicsContextLost (line 123) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 130) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/ConcreteRenderTarget3D.cs
  class ConcreteRenderTarget3D (line 13) | internal class ConcreteRenderTarget3D : ConcreteTexture3D, IRenderTarget...
    method ConcreteRenderTarget3D (line 22) | internal ConcreteRenderTarget3D(GraphicsContextStrategy contextStrateg...
    method ResolveSubresource (line 64) | public void ResolveSubresource(GraphicsContextStrategy graphicsContext...
    method GetFramebufferTarget (line 96) | WebGLTextureTarget IRenderTargetStrategyGL.GetFramebufferTarget(int ar...
    method PlatformConstructTexture3D_rt (line 103) | private void PlatformConstructTexture3D_rt(GraphicsContextStrategy con...
    method PlatformConstructRenderTarget3D (line 108) | private void PlatformConstructRenderTarget3D(GraphicsContextStrategy c...
    method Dispose (line 114) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/ConcreteRenderTargetCube.cs
  class ConcreteRenderTargetCube (line 13) | internal class ConcreteRenderTargetCube : ConcreteTextureCube, IRenderTa...
    method ConcreteRenderTargetCube (line 22) | internal ConcreteRenderTargetCube(GraphicsContextStrategy contextStrat...
    method ResolveSubresource (line 62) | public void ResolveSubresource(GraphicsContextStrategy graphicsContext...
    method GetFramebufferTarget (line 94) | WebGLTextureTarget IRenderTargetStrategyGL.GetFramebufferTarget(int ar...
    method PlatformConstructTextureCube_rt (line 101) | private void PlatformConstructTextureCube_rt(GraphicsContextStrategy c...
    method PlatformConstructRenderTargetCube (line 106) | private void PlatformConstructRenderTargetCube(GraphicsContextStrategy...
    method Dispose (line 112) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/ConcreteSamplerStateCollection.cs
  class ConcreteSamplerStateCollection (line 11) | internal sealed class ConcreteSamplerStateCollection : SamplerStateColle...
    method ConcreteSamplerStateCollection (line 17) | internal ConcreteSamplerStateCollection(GraphicsContextStrategy contex...
    method Clear (line 32) | public override void Clear()
    method Dirty (line 37) | public override void Dirty()

FILE: Platforms/Graphics/.BlazorGL/ConcreteTexture.cs
  class ConcreteTexture (line 13) | internal class ConcreteTexture : GraphicsResourceStrategy, ITextureStrategy
    method ConcreteTexture (line 19) | internal ConcreteTexture(GraphicsContextStrategy contextStrategy, Surf...
    method ToGLSurfaceFormat (line 42) | internal static void ToGLSurfaceFormat(SurfaceFormat format,
    method PlatformCreateRenderTarget (line 157) | internal static void PlatformCreateRenderTarget(IRenderTargetStrategyG...
    method PlatformDeleteRenderTarget (line 278) | internal static void PlatformDeleteRenderTarget(IRenderTargetStrategyG...
    method PlatformGraphicsContextLost (line 304) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 316) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/ConcreteTexture2D.Stream.cs
  class ConcreteTexture2D (line 16) | internal partial class ConcreteTexture2D
    method ConcreteTexture2D (line 18) | internal ConcreteTexture2D(GraphicsContextStrategy contextStrategy, St...
    method PlatformFromStream_ImageSharp (line 43) | private unsafe void PlatformFromStream_ImageSharp(GraphicsContextStrat...
    method ValidateBounds (line 54) | private static unsafe void ValidateBounds(GraphicsDeviceStrategy devic...
    method SaveAsPng (line 70) | public unsafe void SaveAsPng(Stream stream, int width, int height)
    method SaveAsJpeg (line 87) | public unsafe void SaveAsJpeg(Stream stream, int width, int height)

FILE: Platforms/Graphics/.BlazorGL/ConcreteTexture2D.cs
  class ConcreteTexture2D (line 13) | internal partial class ConcreteTexture2D : ConcreteTexture, ITexture2DSt...
    method ConcreteTexture2D (line 20) | internal ConcreteTexture2D(GraphicsContextStrategy contextStrategy, in...
    method ConcreteTexture2D (line 31) | internal ConcreteTexture2D(GraphicsContextStrategy contextStrategy, in...
    method GetSharedHandle (line 52) | public IntPtr GetSharedHandle()
    method SetData (line 57) | public void SetData<T>(int level, T[] data, int startIndex, int elemen...
    method SetData (line 93) | public void SetData<T>(int level, int arraySlice, Rectangle checkedRec...
    method GetData (line 125) | public void GetData<T>(int level, int arraySlice, Rectangle checkedRec...
    method GetCompressedDataByteSize (line 147) | public int GetCompressedDataByteSize(int fSize, Rectangle rect, ref Re...
    method PlatformConstructTexture2D (line 182) | internal void PlatformConstructTexture2D(GraphicsContextStrategy conte...
    method Dispose (line 257) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/ConcreteTexture3D.cs
  class ConcreteTexture3D (line 12) | internal class ConcreteTexture3D : ConcreteTexture, ITexture3DStrategy
    method ConcreteTexture3D (line 19) | internal ConcreteTexture3D(GraphicsContextStrategy contextStrategy, in...
    method ConcreteTexture3D (line 30) | internal ConcreteTexture3D(GraphicsContextStrategy contextStrategy, in...
    method SetData (line 46) | public void SetData<T>(int level, int left, int top, int right, int bo...
    method GetData (line 57) | public void GetData<T>(int level, int left, int top, int right, int bo...
    method PlatformConstructTexture3D (line 65) | internal void PlatformConstructTexture3D(GraphicsContextStrategy conte...
    method Dispose (line 70) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/ConcreteTextureCollection.cs
  class ConcreteTextureCollection (line 11) | internal sealed class ConcreteTextureCollection : TextureCollectionStrategy
    method ConcreteTextureCollection (line 22) | internal ConcreteTextureCollection(GraphicsContextStrategy contextStra...
    method Clear (line 31) | public override void Clear()

FILE: Platforms/Graphics/.BlazorGL/ConcreteTextureCube.cs
  class ConcreteTextureCube (line 13) | internal class ConcreteTextureCube : ConcreteTexture, ITextureCubeStrategy
    method ConcreteTextureCube (line 18) | internal ConcreteTextureCube(GraphicsContextStrategy contextStrategy, ...
    method ConcreteTextureCube (line 27) | internal ConcreteTextureCube(GraphicsContextStrategy contextStrategy, ...
    method SetData (line 39) | public void SetData<T>(CubeMapFace face, int level, Rectangle checkedR...
    method GetData (line 67) | public void GetData<T>(CubeMapFace face, int level, Rectangle checkedR...
    method GetCompressedDataByteSize (line 73) | public int GetCompressedDataByteSize(int fSize, Rectangle rect, ref Re...
    method GetGLCubeFace (line 93) | internal static WebGLTextureTarget GetGLCubeFace(CubeMapFace face)
    method PlatformConstructTextureCube (line 115) | internal void PlatformConstructTextureCube(GraphicsContextStrategy con...
    method Dispose (line 162) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/GLExtensions.cs
  class GLExtensions (line 12) | static class GLExtensions
    method ToGLComparisonFunction (line 14) | public static WebGLDepthComparisonFunc ToGLComparisonFunction(this Com...
    method ToGLNumberOfElements (line 40) | internal static int ToGLNumberOfElements(this VertexElementFormat elem...
    method ToGLVertexAttribPointerType (line 76) | internal static WebGLDataType ToGLVertexAttribPointerType(this VertexE...
    method ToGLVertexAttribNormalized (line 106) | internal static bool ToGLVertexAttribNormalized(this VertexElement ele...
    method CheckGLError (line 131) | [Conditional("DEBUG")]

FILE: Platforms/Graphics/.BlazorGL/IRenderTargetStrategyGL.cs
  type IRenderTargetStrategyGL (line 7) | internal interface IRenderTargetStrategyGL
    method GetFramebufferTarget (line 15) | WebGLTextureTarget GetFramebufferTarget(int arraySlice);

FILE: Platforms/Graphics/.BlazorGL/Shader/ConcreteConstantBuffer.cs
  class ConcreteConstantBuffer (line 13) | internal sealed class ConcreteConstantBuffer : ConstantBufferStrategy
    method ConcreteConstantBuffer (line 21) | public ConcreteConstantBuffer(GraphicsContextStrategy contextStrategy,...
    method ConcreteConstantBuffer (line 27) | private ConcreteConstantBuffer(ConcreteConstantBuffer source)
    method Clone (line 33) | public override object Clone()
    method PlatformApply (line 38) | internal unsafe void PlatformApply(ConcreteGraphicsContext ccontextStr...
    method PlatformContextLost (line 79) | public override void PlatformContextLost()
    method Dispose (line 86) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/Shader/ConcreteConstantBufferCollection.cs
  class ConcreteConstantBufferCollection (line 13) | internal sealed class ConcreteConstantBufferCollection : ConstantBufferC...
    method ConcreteConstantBufferCollection (line 19) | internal ConcreteConstantBufferCollection(int capacity)
    method Clear (line 47) | public override void Clear()

FILE: Platforms/Graphics/.BlazorGL/Shader/ConcretePixelShader.cs
  class ConcretePixelShader (line 12) | public sealed class ConcretePixelShader : ConcreteShader
    method ConcretePixelShader (line 15) | internal ConcretePixelShader(GraphicsContextStrategy contextStrategy, ...
    method PlatformGraphicsContextLost (line 21) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 28) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/Shader/ConcreteShader.cs
  class ConcreteShader (line 15) | public abstract class ConcreteShader : ShaderStrategy
    method ConcreteShader (line 22) | internal ConcreteShader(GraphicsContextStrategy contextStrategy, Shade...
    method CreateShader (line 36) | internal void CreateShader(GraphicsContextStrategy contextStrategy, We...
    method FindShaderByteCode (line 107) | private int FindShaderByteCode(byte[] shaderBytecode, int major, int m...
    method ConvertGLSLToGLSL300es (line 150) | private string ConvertGLSLToGLSL300es(WebGLShaderType shaderType, stri...
    method PlatformGraphicsContextLost (line 180) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 192) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/Shader/ConcreteVertexShader.cs
  class ConcreteVertexShader (line 12) | public sealed class ConcreteVertexShader : ConcreteShader
    method ConcreteVertexShader (line 16) | internal ConcreteVertexShader(GraphicsContextStrategy contextStrategy,...
    method GetAttributeLocation (line 22) | private int GetAttributeLocation(VertexElementUsage usage, int index)
    method GetVertexAttribInfo (line 32) | internal VertexDeclarationAttributeInfo GetVertexAttribInfo(ConcreteGr...
    method CreateVertexAttribInfo (line 46) | private static VertexDeclarationAttributeInfo CreateVertexAttribInfo(C...
    method PlatformGraphicsContextLost (line 73) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 80) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/Shader/ShaderProgram.cs
  class ShaderProgram (line 11) | internal class ShaderProgram
    method ShaderProgram (line 17) | public ShaderProgram(WebGLProgram program)

FILE: Platforms/Graphics/.BlazorGL/States/ConcreteBlendState.cs
  class ConcreteBlendState (line 14) | internal class ConcreteBlendState : ResourceBlendStateStrategy
    method ConcreteBlendState (line 17) | internal ConcreteBlendState(GraphicsContextStrategy contextStrategy, I...
    method PlatformApplyState (line 21) | internal void PlatformApplyState(ConcreteGraphicsContext context, bool...
    method ToGLBlendEquationMode (line 97) | private static WebGLEquationFunc ToGLBlendEquationMode(BlendFunction f...
    method ToGLBlendFunc (line 113) | private static WebGLBlendFunc ToGLBlendFunc(Blend blend)
    method PlatformGraphicsContextLost (line 149) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 154) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/States/ConcreteDepthStencilState.cs
  class ConcreteDepthStencilState (line 14) | internal class ConcreteDepthStencilState : ResourceDepthStencilStateStra...
    method ConcreteDepthStencilState (line 17) | internal ConcreteDepthStencilState(GraphicsContextStrategy contextStra...
    method PlatformApplyState (line 22) | internal void PlatformApplyState(ConcreteGraphicsContext context, bool...
    method ToGLStencilOp (line 123) | private static WebGLStencilOpFunc ToGLStencilOp(StencilOperation opera...
    method PlatformGraphicsContextLost (line 149) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 154) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/States/ConcreteRasterizerState.cs
  class ConcreteRasterizerState (line 14) | internal class ConcreteRasterizerState : ResourceRasterizerStateStrategy
    method ConcreteRasterizerState (line 17) | internal ConcreteRasterizerState(GraphicsContextStrategy contextStrate...
    method PlatformApplyState (line 22) | internal void PlatformApplyState(ConcreteGraphicsContext context, bool...
    method PlatformGraphicsContextLost (line 141) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 146) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/States/ConcreteSamplerState.cs
  class ConcreteSamplerState (line 14) | internal class ConcreteSamplerState : ResourceSamplerStateStrategy
    method ConcreteSamplerState (line 17) | internal ConcreteSamplerState(GraphicsContextStrategy contextStrategy,...
    method PlatformApplyState (line 22) | internal void PlatformApplyState(ConcreteGraphicsContext cgraphicsCont...
    method ToGLTextureAddressMode (line 99) | private WebGLTexParam ToGLTextureAddressMode(TextureAddressMode textur...
    method PlatformGraphicsContextLost (line 117) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 122) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/Vertices/ConcreteDynamicIndexBuffer.cs
  class ConcreteDynamicIndexBuffer (line 14) | public class ConcreteDynamicIndexBuffer : ConcreteIndexBuffer, IDynamicI...
    method ConcreteDynamicIndexBuffer (line 18) | internal ConcreteDynamicIndexBuffer(GraphicsContextStrategy contextStr...
    method PlatformConstructDynamicIndexBuffer (line 24) | private void PlatformConstructDynamicIndexBuffer(GraphicsContextStrate...

FILE: Platforms/Graphics/.BlazorGL/Vertices/ConcreteDynamicVertexBuffer.cs
  class ConcreteDynamicVertexBuffer (line 14) | public class ConcreteDynamicVertexBuffer : ConcreteVertexBuffer, IDynami...
    method ConcreteDynamicVertexBuffer (line 18) | internal ConcreteDynamicVertexBuffer(GraphicsContextStrategy contextSt...
    method PlatformConstructDynamicVertexBuffer (line 24) | private void PlatformConstructDynamicVertexBuffer(GraphicsContextStrat...

FILE: Platforms/Graphics/.BlazorGL/Vertices/ConcreteIndexBuffer.cs
  class ConcreteIndexBuffer (line 15) | public class ConcreteIndexBuffer : IndexBufferStrategy
    method ConcreteIndexBuffer (line 24) | internal ConcreteIndexBuffer(GraphicsContextStrategy contextStrategy, ...
    method ConcreteIndexBuffer (line 38) | internal ConcreteIndexBuffer(GraphicsContextStrategy contextStrategy, ...
    method PlatformConstructIndexBuffer (line 53) | internal void PlatformConstructIndexBuffer(GraphicsContextStrategy con...
    method SetData (line 74) | public unsafe override void SetData<T>(int offsetInBytes, T[] data, in...
    method GetData (line 105) | public unsafe override void GetData<T>(int offsetInBytes, T[] data, in...
    method PlatformGraphicsContextLost (line 129) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 135) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/Vertices/ConcreteVertexBuffer.cs
  class ConcreteVertexBuffer (line 15) | public class ConcreteVertexBuffer : VertexBufferStrategy
    method ConcreteVertexBuffer (line 22) | internal ConcreteVertexBuffer(GraphicsContextStrategy contextStrategy,...
    method ConcreteVertexBuffer (line 29) | internal ConcreteVertexBuffer(GraphicsContextStrategy contextStrategy,...
    method PlatformConstructVertexBuffer (line 37) | internal void PlatformConstructVertexBuffer(GraphicsContextStrategy co...
    method SetData (line 58) | public override void SetData<T>(int offsetInBytes, T[] data, int start...
    method GetData (line 102) | public unsafe override void GetData<T>(int offsetInBytes, T[] data, in...
    method PlatformGraphicsContextLost (line 135) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 141) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.BlazorGL/Vertices/VertexDeclarationAttributeInfo.cs
  class BufferBindingInfo (line 15) | internal class BufferBindingInfo
    method BufferBindingInfo (line 30) | public BufferBindingInfo(VertexDeclarationAttributeInfo attributeInfo,...
    method ToString (line 39) | public override string ToString()
  class RenderTargetBindingArrayComparer (line 46) | internal class RenderTargetBindingArrayComparer : IEqualityComparer<Rend...
    method Equals (line 48) | public bool Equals(RenderTargetBinding[] first, RenderTargetBinding[] ...
    method GetHashCode (line 70) | public int GetHashCode(RenderTargetBinding[] array)
  class VertexDeclarationAttributeInfo (line 93) | internal class VertexDeclarationAttributeInfo
    method VertexDeclarationAttributeInfo (line 98) | internal VertexDeclarationAttributeInfo(int maxVertexAttributes)
  class VertexDeclarationAttributeInfoElement (line 105) | internal class VertexDeclarationAttributeInfoElement

FILE: Platforms/Graphics/.Common/SpriteBatcher.cs
  class SpriteBatcher (line 19) | internal sealed class SpriteBatcher : SpriteBatcherStrategy
    method SpriteBatcher (line 60) | public SpriteBatcher(GraphicsDevice device, int capacity = 0)
    method CreateBatchItem (line 94) | public override SpriteBatchItem CreateBatchItem()
    method EnsureArrayCapacity (line 118) | private unsafe void EnsureArrayCapacity(int numBatchItems)
    method SortBatch (line 176) | public override void SortBatch(SpriteSortMode sortMode)
    method DrawBatch (line 193) | public unsafe override void DrawBatch(Effect effect)
    method FlushVertexArray (line 289) | private void FlushVertexArray(int baseQuad, int spriteCount, Effect ef...
    method Dispose (line 334) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/ConcreteGraphicsAdapter.cs
  class ConcreteGraphicsAdapter (line 19) | internal class ConcreteGraphicsAdapter : GraphicsAdapterStrategy
    method Platform_IsShaderBackendSupported (line 46) | public override bool Platform_IsShaderBackendSupported(GraphicsBackend...
    method Platform_IsShaderProfileSupported (line 58) | public override bool Platform_IsShaderProfileSupported(ShaderProfileTy...
    method ConcreteGraphicsAdapter (line 77) | internal ConcreteGraphicsAdapter(DXGI.Adapter1 dxAdapter, DXGI.Output ...
    method Platform_IsProfileSupported (line 149) | public override bool Platform_IsProfileSupported(GraphicsProfile graph...
    method Platform_QueryBackBufferFormat (line 185) | public override bool Platform_QueryBackBufferFormat(
    method Platform_QueryRenderTargetFormat (line 193) | public override bool Platform_QueryRenderTargetFormat(

FILE: Platforms/Graphics/.DX11/ConcreteGraphicsAdaptersProvider.cs
  class ConcreteGraphicsAdaptersProvider (line 19) | class ConcreteGraphicsAdaptersProvider : GraphicsAdaptersProviderStrategy
    method ConcreteGraphicsAdaptersProvider (line 23) | public ConcreteGraphicsAdaptersProvider()
    method CreateAdapterList (line 29) | private List<GraphicsAdapter> CreateAdapterList()

FILE: Platforms/Graphics/.DX11/ConcreteGraphicsCapabilities.cs
  class ConcreteGraphicsCapabilities (line 13) | internal sealed class ConcreteGraphicsCapabilities : GraphicsCapabilities
    method PlatformInitialize (line 16) | internal void PlatformInitialize(ConcreteGraphicsContext cgraphicsCont...

FILE: Platforms/Graphics/.DX11/ConcreteGraphicsContext.cs
  class ConcreteGraphicsContext (line 21) | internal sealed class ConcreteGraphicsContext : GraphicsContextStrategy
    class UserVertexBuffer (line 41) | private class UserVertexBuffer
      method UserVertexBuffer (line 48) | public UserVertexBuffer(int vertexStride)
    class UserIndexBuffer (line 57) | private class UserIndexBuffer
      method UserIndexBuffer (line 64) | public UserIndexBuffer(IndexElementSize indexElementSize)
    method ConcreteGraphicsContext (line 86) | internal ConcreteGraphicsContext(GraphicsContext context, D3D11.Device...
    method PlatformSetup (line 104) | public override void PlatformSetup()
    method Clear (line 108) | public override void Clear(ClearOptions options, Vector4 color, float ...
    method PlatformApplyState (line 148) | private void PlatformApplyState()
    method PlatformApplyBlend (line 179) | private void PlatformApplyBlend()
    method PlatformApplyScissorRectangle (line 192) | private void PlatformApplyScissorRectangle()
    method PlatformApplyViewport (line 204) | internal void PlatformApplyViewport()
    method PlatformApplyIndexBuffer (line 216) | private void PlatformApplyIndexBuffer()
    method PlatformApplyVertexBuffers (line 230) | private void PlatformApplyVertexBuffers()
    method PlatformApplyShaders (line 257) | private void PlatformApplyShaders()
    method PlatformApplyConstantBuffers (line 302) | private void PlatformApplyConstantBuffers(ConcreteShader shaderStrateg...
    method PlatformApplyTexturesAndSamplers (line 339) | private void PlatformApplyTexturesAndSamplers(ConcreteShader cshader, ...
    method PlatformApplyPrimitiveType (line 443) | private void PlatformApplyPrimitiveType(PrimitiveType primitiveType)
    method ToPrimitiveTopology (line 452) | private static D3D.PrimitiveTopology ToPrimitiveTopology(PrimitiveType...
    method DrawPrimitives (line 472) | public override void DrawPrimitives(PrimitiveType primitiveType, int v...
    method DrawIndexedPrimitives (line 489) | public override void DrawIndexedPrimitives(PrimitiveType primitiveType...
    method DrawIndexedPrimitives (line 507) | public override void DrawIndexedPrimitives(PrimitiveType primitiveType...
    method DrawInstancedPrimitives (line 525) | public override void DrawInstancedPrimitives(PrimitiveType primitiveTy...
    method SetUserVertexBuffer (line 555) | private int SetUserVertexBuffer<T>(T[] vertexData, int vertexOffset, i...
    method SetUserIndexBuffer (line 592) | private int SetUserIndexBuffer<T>(UserIndexBuffer userIndexBuffer, T[]...
    method DrawUserPrimitives (line 623) | public override void DrawUserPrimitives<T>(PrimitiveType primitiveType...
    method DrawUserIndexedPrimitives (line 645) | public override void DrawUserIndexedPrimitives<T>(PrimitiveType primit...
    method DrawUserIndexedPrimitives (line 669) | public override void DrawUserIndexedPrimitives<T>(PrimitiveType primit...
    method Flush (line 693) | public override void Flush()
    method CreateOcclusionQueryStrategy (line 699) | public override OcclusionQueryStrategy CreateOcclusionQueryStrategy()
    method CreateGraphicsDebugStrategy (line 704) | public override GraphicsDebugStrategy CreateGraphicsDebugStrategy()
    method CreateConstantBufferCollectionStrategy (line 709) | public override ConstantBufferCollectionStrategy CreateConstantBufferC...
    method CreateTextureCollectionStrategy (line 714) | public override TextureCollectionStrategy CreateTextureCollectionStrat...
    method CreateSamplerStateCollectionStrategy (line 719) | public override SamplerStateCollectionStrategy CreateSamplerStateColle...
    method CreateTexture2DStrategy (line 724) | public override ITexture2DStrategy CreateTexture2DStrategy(int width, ...
    method CreateTexture3DStrategy (line 729) | public override ITexture3DStrategy CreateTexture3DStrategy(int width, ...
    method CreateTextureCubeStrategy (line 734) | public override ITextureCubeStrategy CreateTextureCubeStrategy(int siz...
    method CreateRenderTarget2DStrategy (line 739) | public override IRenderTarget2DStrategy CreateRenderTarget2DStrategy(i...
    method CreateRenderTarget3DStrategy (line 745) | public override IRenderTarget3DStrategy CreateRenderTarget3DStrategy(i...
    method CreateRenderTargetCubeStrategy (line 750) | public override IRenderTargetCubeStrategy CreateRenderTargetCubeStrate...
    method CreateTexture2DStrategy (line 755) | public override ITexture2DStrategy CreateTexture2DStrategy(Stream stream)
    method CreateVertexShaderStrategy (line 760) | public override ShaderStrategy CreateVertexShaderStrategy(ShaderVersio...
    method CreatePixelShaderStrategy (line 764) | public override ShaderStrategy CreatePixelShaderStrategy(ShaderVersion...
    method CreateConstantBufferStrategy (line 768) | public override ConstantBufferStrategy CreateConstantBufferStrategy(st...
    method CreateIndexBufferStrategy (line 773) | public override IndexBufferStrategy CreateIndexBufferStrategy(IndexEle...
    method CreateVertexBufferStrategy (line 777) | public override VertexBufferStrategy CreateVertexBufferStrategy(Vertex...
    method CreateDynamicIndexBufferStrategy (line 781) | public override IndexBufferStrategy CreateDynamicIndexBufferStrategy(I...
    method CreateDynamicVertexBufferStrategy (line 785) | public override VertexBufferStrategy CreateDynamicVertexBufferStrategy...
    method CreateBlendStateStrategy (line 790) | public override IBlendStateStrategy CreateBlendStateStrategy(IBlendSta...
    method CreateDepthStencilStateStrategy (line 794) | public override IDepthStencilStateStrategy CreateDepthStencilStateStra...
    method CreateRasterizerStateStrategy (line 798) | public override IRasterizerStateStrategy CreateRasterizerStateStrategy...
    method CreateSamplerStateStrategy (line 802) | public override ISamplerStateStrategy CreateSamplerStateStrategy(ISamp...
    method Dispose (line 808) | protected override void Dispose(bool disposing)
    method PlatformResolveRenderTargets (line 833) | protected override void PlatformResolveRenderTargets()
    method PlatformApplyDefaultRenderTarget (line 857) | protected override void PlatformApplyDefaultRenderTarget()
    method PlatformApplyRenderTargets (line 870) | protected override IRenderTarget PlatformApplyRenderTargets()
    method ClearCurrentRenderTargets (line 904) | internal void ClearCurrentRenderTargets()
    method UAP_ResetRenderTargets (line 914) | internal void UAP_ResetRenderTargets()

FILE: Platforms/Graphics/.DX11/ConcreteGraphicsDebug.cs
  class ConcreteGraphicsDebug (line 15) | internal sealed class ConcreteGraphicsDebug : GraphicsDebugStrategy
    method ConcreteGraphicsDebug (line 22) | internal ConcreteGraphicsDebug(GraphicsContextStrategy contextStrategy)
    method TryDequeueMessage (line 39) | public override bool TryDequeueMessage(out GraphicsDebugMessage message)

FILE: Platforms/Graphics/.DX11/ConcreteGraphicsDevice.cs
  class ConcreteGraphicsDevice (line 30) | internal sealed class ConcreteGraphicsDevice : GraphicsDeviceStrategy
    method ConcreteGraphicsDevice (line 66) | internal ConcreteGraphicsDevice(GraphicsDevice device, GraphicsAdapter...
    method Reset (line 173) | public override void Reset()
    method Reset (line 178) | public override void Reset(PresentationParameters presentationParameters)
    method PlatformReset (line 183) | private void PlatformReset(PresentationParameters presentationParameters)
    method Present (line 216) | public override void Present(Rectangle? sourceRectangle, Rectangle? de...
    method Present (line 221) | public override void Present()
    method GetBackBufferData (line 273) | public unsafe override void GetBackBufferData<T>(Rectangle? rect, T[] ...
    method CreateDeviceIndependentResources (line 379) | private void CreateDeviceIndependentResources()
    method PlatformInitialize (line 396) | protected override void PlatformInitialize()
    method GetClosestBackBufferSize (line 423) | private void GetClosestBackBufferSize(int preferredWidth, int preferre...
    method SetHardwareFullscreen (line 467) | internal void SetHardwareFullscreen()
    method ClearHardwareFullscreen (line 472) | internal void ClearHardwareFullscreen()
    method ResizeTargets (line 480) | internal void ResizeTargets()
    method RefreshAdapter (line 494) | internal void RefreshAdapter()
    method SetMultiSamplingToMaximum (line 521) | internal void SetMultiSamplingToMaximum(PresentationParameters present...
    method Internal_CreateSizeDependentResources (line 527) | internal void Internal_CreateSizeDependentResources()
    method CreateSizeDependentResources (line 532) | private void CreateSizeDependentResources()
    method GetMaxMultiSampleCount (line 826) | internal int GetMaxMultiSampleCount(SurfaceFormat surfaceFormat)
    method GetMultiSamplingQuality (line 854) | private int GetMultiSamplingQuality(DXGI.Format format, int multiSampl...
    method GetSupportedSampleDescription (line 863) | internal DXGI.SampleDescription GetSupportedSampleDescription(DXGI.For...
    method Trim (line 881) | internal void Trim()
    method IsTearingSupported (line 903) | internal bool IsTearingSupported()
    method CreateGraphicsContextStrategy (line 930) | public override GraphicsContextStrategy CreateGraphicsContextStrategy(...
    method Dispose (line 949) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/ConcreteGraphicsFactory.cs
  class ConcreteGraphicsFactory (line 7) | public sealed class ConcreteGraphicsFactory : GraphicsFactory
    method CreateGraphicsAdaptersProviderStrategy (line 9) | public override GraphicsAdaptersProviderStrategy CreateGraphicsAdapter...
    method CreateGraphicsDeviceStrategy (line 14) | public override GraphicsDeviceStrategy CreateGraphicsDeviceStrategy(Gr...
    method CreateSpriteBatcher (line 19) | public override SpriteBatcherStrategy CreateSpriteBatcher(GraphicsDevi...

FILE: Platforms/Graphics/.DX11/ConcreteOcclusionQuery.cs
  class ConcreteOcclusionQuery (line 17) | public class ConcreteOcclusionQuery : OcclusionQueryStrategy
    method ConcreteOcclusionQuery (line 46) | internal ConcreteOcclusionQuery(GraphicsContextStrategy contextStrategy)
    method PlatformBegin (line 58) | public override void PlatformBegin()
    method PlatformEnd (line 74) | public override void PlatformEnd()
    method PlatformGetResult (line 90) | private bool PlatformGetResult()
    method Dispose (line 105) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/ConcreteRenderTarget2D.cs
  class ConcreteRenderTarget2D (line 15) | internal class ConcreteRenderTarget2D : ConcreteTexture2D, IRenderTarget...
    method ConcreteRenderTarget2D (line 24) | internal ConcreteRenderTarget2D(GraphicsContextStrategy contextStrateg...
    method ResolveSubresource (line 70) | public virtual void ResolveSubresource(GraphicsContextStrategy graphic...
    method GetRenderTargetView (line 96) | D3D11.RenderTargetView IRenderTargetStrategyDX11.GetRenderTargetView(i...
    method GetDepthStencilView (line 101) | D3D11.DepthStencilView IRenderTargetStrategyDX11.GetDepthStencilView(i...
    method PlatformConstructTexture2D_rt (line 107) | private void PlatformConstructTexture2D_rt(GraphicsContextStrategy con...
    method PlatformConstructRenderTarget2D (line 138) | private void PlatformConstructRenderTarget2D(GraphicsContextStrategy c...
    method CreateRenderTargetView (line 156) | private void CreateRenderTargetView(D3D11.Device d3dDevice, int width,...
    method CreateDepthStencilView (line 192) | private void CreateDepthStencilView(D3D11.Device d3dDevice, int width,...
    method CreateMSTexture (line 224) | private D3D11.Texture2D CreateMSTexture()
    method PlatformGraphicsContextLost (line 243) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 261) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/ConcreteRenderTarget3D.cs
  class ConcreteRenderTarget3D (line 15) | internal class ConcreteRenderTarget3D : ConcreteTexture3D, IRenderTarget...
    method ConcreteRenderTarget3D (line 24) | internal ConcreteRenderTarget3D(GraphicsContextStrategy contextStrateg...
    method ResolveSubresource (line 64) | public void ResolveSubresource(GraphicsContextStrategy graphicsContext...
    method GetRenderTargetView (line 78) | D3D11.RenderTargetView IRenderTargetStrategyDX11.GetRenderTargetView(i...
    method GetDepthStencilView (line 83) | D3D11.DepthStencilView IRenderTargetStrategyDX11.GetDepthStencilView(i...
    method PlatformConstructTexture3D_rt (line 89) | private void PlatformConstructTexture3D_rt(GraphicsContextStrategy con...
    method PlatformConstructRenderTarget3D (line 116) | private void PlatformConstructRenderTarget3D(GraphicsContextStrategy c...
    method CreateRenderTargetView (line 136) | private void CreateRenderTargetView(D3D11.Device d3dDevice, int width,...
    method CreateDepthStencilView (line 153) | private void CreateDepthStencilView(D3D11.Device d3dDevice, int width,...
    method Dispose (line 178) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/ConcreteRenderTargetCube.cs
  class ConcreteRenderTargetCube (line 15) | internal class ConcreteRenderTargetCube : ConcreteTextureCube, IRenderTa...
    method ConcreteRenderTargetCube (line 24) | internal ConcreteRenderTargetCube(GraphicsContextStrategy contextStrat...
    method ResolveSubresource (line 62) | public void ResolveSubresource(GraphicsContextStrategy graphicsContext...
    method GetRenderTargetView (line 76) | D3D11.RenderTargetView IRenderTargetStrategyDX11.GetRenderTargetView(i...
    method GetDepthStencilView (line 81) | D3D11.DepthStencilView IRenderTargetStrategyDX11.GetDepthStencilView(i...
    method PlatformConstructTextureCube_rt (line 87) | private void PlatformConstructTextureCube_rt(GraphicsContextStrategy c...
    method PlatformConstructRenderTargetCube (line 111) | private void PlatformConstructRenderTargetCube(GraphicsContextStrategy...
    method Dispose (line 193) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/ConcreteRenderTargetSwapChain.cs
  class ConcreteRenderTargetSwapChain (line 16) | internal class ConcreteRenderTargetSwapChain : ConcreteRenderTarget2D,
    method ConcreteRenderTargetSwapChain (line 27) | internal ConcreteRenderTargetSwapChain(GraphicsContextStrategy context...
    method GetRenderTargetView (line 60) | D3D11.RenderTargetView IRenderTargetStrategyDX11.GetRenderTargetView(i...
    method GetDepthStencilView (line 65) | D3D11.DepthStencilView IRenderTargetStrategyDX11.GetDepthStencilView(i...
    method CreateSwapChainTexture (line 70) | private void CreateSwapChainTexture(D3D11.Device d3dDevice, int width,...
    method CreateSwapChainDepthBuffer (line 98) | private void CreateSwapChainDepthBuffer(D3D11.Device d3dDevice, int wi...
    method CreateTexture (line 120) | private D3D11.Resource CreateTexture(GraphicsContextStrategy contextSt...
    method Present (line 153) | public void Present()
    method ResolveSubresource (line 169) | public override void ResolveSubresource(GraphicsContextStrategy graphi...
    method Dispose (line 175) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/ConcreteSamplerStateCollection.cs
  class ConcreteSamplerStateCollection (line 16) | internal sealed class ConcreteSamplerStateCollection : SamplerStateColle...
    method ConcreteSamplerStateCollection (line 29) | internal ConcreteSamplerStateCollection(GraphicsContextStrategy contex...
    method Clear (line 47) | public override void Clear()
    method Dirty (line 54) | public override void Dirty()

FILE: Platforms/Graphics/.DX11/ConcreteTexture.cs
  class ConcreteTexture (line 13) | internal class ConcreteTexture : GraphicsResourceStrategy, ITextureStrategy
    method ConcreteTexture (line 19) | internal ConcreteTexture(GraphicsContextStrategy contextStrategy, Surf...
    method GetTexture (line 37) | internal D3D11.Resource GetTexture()
    method GetShaderResourceView (line 44) | internal D3D11.ShaderResourceView GetShaderResourceView()
    method PlatformGraphicsContextLost (line 51) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 59) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/ConcreteTexture2D.Stream.cs
  class ConcreteTexture2D (line 29) | internal partial class ConcreteTexture2D
    method ConcreteTexture2D (line 31) | internal ConcreteTexture2D(GraphicsContextStrategy contextStrategy, St...
    method PlatformFromStream_ImageSharp (line 56) | private unsafe void PlatformFromStream_ImageSharp(GraphicsContextStrat...
    method LoadBitmap_DX (line 68) | private static WIC.BitmapSource LoadBitmap_DX(Stream stream, out WIC.B...
    method PlatformFromStream_DX (line 90) | private unsafe void PlatformFromStream_DX(GraphicsContextStrategy cont...
    method ValidateBounds (line 127) | private static unsafe void ValidateBounds(GraphicsDeviceStrategy devic...
    method SaveAsPng (line 143) | public void SaveAsPng(Stream stream, int width, int height)
    method SaveAsJpeg (line 149) | public void SaveAsJpeg(Stream stream, int width, int height)
    method SaveAsImageAsync_UAP (line 195) | private async Task SaveAsImageAsync_UAP(Guid encoderId, Stream stream,...
    method ConvertToRGBA (line 217) | private static void ConvertToRGBA(int pixelHeight, int pixelWidth, byt...
    method CreateTex2DFromBitmap (line 237) | static unsafe D3D11.Texture2D CreateTex2DFromBitmap(WIC.BitmapSource b...
    method LoadBitmap (line 278) | private static WIC.BitmapSource LoadBitmap(Stream stream, out SharpDX....

FILE: Platforms/Graphics/.DX11/ConcreteTexture2D.cs
  class ConcreteTexture2D (line 21) | internal partial class ConcreteTexture2D : ConcreteTexture, ITexture2DSt...
    method ConcreteTexture2D (line 31) | internal ConcreteTexture2D(GraphicsContextStrategy contextStrategy, in...
    method ConcreteTexture2D (line 45) | internal ConcreteTexture2D(GraphicsContextStrategy contextStrategy, in...
    method GetSharedHandle (line 69) | public IntPtr GetSharedHandle()
    method SetData (line 77) | public unsafe void SetData<T>(int level, T[] data, int startIndex, int...
    method SetData (line 117) | public unsafe void SetData<T>(int level, int arraySlice, Rectangle che...
    method GetData (line 146) | public unsafe void GetData<T>(int level, int arraySlice, Rectangle che...
    method GetCompressedDataByteSize (line 247) | public int GetCompressedDataByteSize(int fSize, Rectangle rect, ref Re...
    method PlatformConstructTexture2D (line 274) | internal void PlatformConstructTexture2D(GraphicsContextStrategy conte...

FILE: Platforms/Graphics/.DX11/ConcreteTexture3D.cs
  class ConcreteTexture3D (line 20) | internal class ConcreteTexture3D : ConcreteTexture, ITexture3DStrategy
    method ConcreteTexture3D (line 29) | internal ConcreteTexture3D(GraphicsContextStrategy contextStrategy, in...
    method ConcreteTexture3D (line 42) | internal ConcreteTexture3D(GraphicsContextStrategy contextStrategy, in...
    method SetData (line 60) | public unsafe void SetData<T>(int level, int left, int top, int right,...
    method GetData (line 91) | public void GetData<T>(int level, int left, int top, int right, int bo...
    method PlatformConstructTexture3D (line 151) | internal void PlatformConstructTexture3D(GraphicsContextStrategy conte...

FILE: Platforms/Graphics/.DX11/ConcreteTextureCollection.cs
  class ConcreteTextureCollection (line 15) | internal sealed class ConcreteTextureCollection : TextureCollectionStrategy
    method ConcreteTextureCollection (line 25) | internal ConcreteTextureCollection(GraphicsContextStrategy contextStra...
    method Clear (line 31) | public override void Clear()
    method ClearTargets (line 36) | internal void ClearTargets(RenderTargetBinding[] targets, D3D11.Common...

FILE: Platforms/Graphics/.DX11/ConcreteTextureCube.cs
  class ConcreteTextureCube (line 21) | internal class ConcreteTextureCube : ConcreteTexture, ITextureCubeStrategy
    method ConcreteTextureCube (line 28) | internal ConcreteTextureCube(GraphicsContextStrategy contextStrategy, ...
    method ConcreteTextureCube (line 39) | internal ConcreteTextureCube(GraphicsContextStrategy contextStrategy, ...
    method SetData (line 53) | public unsafe void SetData<T>(CubeMapFace face, int level, Rectangle c...
    method GetData (line 85) | public unsafe void GetData<T>(CubeMapFace face, int level, Rectangle c...
    method GetCompressedDataByteSize (line 166) | public int GetCompressedDataByteSize(int fSize, Rectangle rect, ref Re...
    method PlatformConstructTextureCube (line 177) | internal void PlatformConstructTextureCube(GraphicsContextStrategy con...

FILE: Platforms/Graphics/.DX11/GraphicsSharpDXExtensions.cs
  class GraphicsSharpDXExtensions (line 9) | static public class GraphicsSharpDXExtensions
    method GetD3D11Device (line 15) | public static object GetD3D11Device(this GraphicsDevice device)
    method GetD3D11Resource (line 25) | public static object GetD3D11Resource(this Texture texture)

FILE: Platforms/Graphics/.DX11/IRenderTargetStrategyDX11.cs
  type IRenderTargetStrategyDX11 (line 11) | internal interface IRenderTargetStrategyDX11
    method GetRenderTargetView (line 21) | D3D11.RenderTargetView GetRenderTargetView(int arraySlice);
    method GetDepthStencilView (line 28) | D3D11.DepthStencilView GetDepthStencilView(int arraySlice);

FILE: Platforms/Graphics/.DX11/Shader/ConcreteConstantBuffer.cs
  class ConcreteConstantBuffer (line 18) | internal sealed class ConcreteConstantBuffer : ConstantBufferStrategy
    method ConcreteConstantBuffer (line 25) | public ConcreteConstantBuffer(GraphicsContextStrategy contextStrategy,...
    method ConcreteConstantBuffer (line 31) | private ConcreteConstantBuffer(ConcreteConstantBuffer source)
    method Clone (line 37) | public override object Clone()
    method CreateD3D11Buffer (line 42) | private D3D11.Buffer CreateD3D11Buffer()
    method PlatformContextLost (line 59) | public override void PlatformContextLost()
    method Dispose (line 66) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/Shader/ConcreteConstantBufferCollection.cs
  class ConcreteConstantBufferCollection (line 14) | internal sealed class ConcreteConstantBufferCollection : ConstantBufferC...
    method ConcreteConstantBufferCollection (line 27) | internal ConcreteConstantBufferCollection(int capacity)
    method Clear (line 57) | public override void Clear()

FILE: Platforms/Graphics/.DX11/Shader/ConcretePixelShader.cs
  class ConcretePixelShader (line 17) | public sealed class ConcretePixelShader : ConcreteShader
    method ConcretePixelShader (line 24) | internal ConcretePixelShader(GraphicsContextStrategy contextStrategy, ...
    method PlatformGraphicsContextLost (line 30) | protected override void PlatformGraphicsContextLost()
    method CreatePixelShader (line 37) | private void CreatePixelShader()
    method Dispose (line 42) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/Shader/ConcreteShader.cs
  class ConcreteShader (line 19) | public abstract class ConcreteShader : ShaderStrategy
    method ConcreteShader (line 26) | internal ConcreteShader(GraphicsContextStrategy contextStrategy, Shade...
    method PlatformGraphicsContextLost (line 43) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 50) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/Shader/ConcreteVertexShader.cs
  class ConcreteVertexShader (line 17) | public sealed class ConcreteVertexShader : ConcreteShader
    method ConcreteVertexShader (line 27) | internal ConcreteVertexShader(GraphicsContextStrategy contextStrategy,...
    method CreateVertexShader (line 33) | private void CreateVertexShader()
    method PlatformGraphicsContextLost (line 39) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 48) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/SharpDXExtensions.cs
  class SharpDXExtensions (line 19) | static class SharpDXExtensions
    method ToDXSwapInterval (line 21) | static public int ToDXSwapInterval(this PresentInterval interval)
    method ToDXSwapEffect (line 35) | static public DXGI.SwapEffect ToDXSwapEffect(this PresentInterval pres...
    method ToDXSemanticName (line 75) | static public string ToDXSemanticName(this VertexElementUsage vertexEl...
    method ToDXFormat (line 103) | static public DXGI.Format ToDXFormat(this VertexElementFormat vertexEl...
    method ToDXFormat (line 137) | static public DXGI.Format ToDXFormat(this DepthFormat format)
    method ToDXFormat (line 154) | static public DXGI.Format ToDXFormat(this SurfaceFormat format)
    method GetPitch (line 228) | static public int GetPitch(this SurfaceFormat format, int width)
    method ToDXComparisonFunction (line 257) | static public D3D11.Comparison ToDXComparisonFunction(this CompareFunc...
    method ToRawVector2 (line 283) | static public RawVector2 ToRawVector2(this Vector2 vec)
    method ToRawVector3 (line 288) | static public RawVector3 ToRawVector3(this Vector3 vec)
    method ToRawVector4 (line 293) | static public RawVector4 ToRawVector4(this Vector4 vec)
    method ToRawColor4 (line 298) | static public RawColor4 ToRawColor4(this Vector4 color)
    method ToRawColor4 (line 303) | static public RawColor4 ToRawColor4(this Color color)
    method ToRawViewportF (line 308) | static public RawViewportF ToRawViewportF(this Viewport viewport)

FILE: Platforms/Graphics/.DX11/SpriteBatcher.cs
  class SpriteBatcher (line 21) | internal sealed class SpriteBatcher : SpriteBatcherStrategy
    method SpriteBatcher (line 59) | public SpriteBatcher(GraphicsDevice device, int capacity = 0)
    method _device_DeviceReset (line 78) | void _device_DeviceReset(object sender, EventArgs e)
    method CreateBatchItem (line 90) | public override SpriteBatchItem CreateBatchItem()
    method EnsureArrayCapacity (line 114) | private unsafe void EnsureArrayCapacity(int numBatchItems)
    method SortBatch (line 170) | public override void SortBatch(SpriteSortMode sortMode)
    method DrawBatch (line 187) | public unsafe override void DrawBatch(Effect effect)
    method FlushVertexArray (line 284) | private void FlushVertexArray(int baseQuad, int spriteCount, Effect ef...
    method Dispose (line 329) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/States/ConcreteBlendState.cs
  class ConcreteBlendState (line 19) | internal class ConcreteBlendState : ResourceBlendStateStrategy
    method ConcreteBlendState (line 23) | internal ConcreteBlendState(GraphicsContextStrategy contextStrategy, I...
    method GetDxState (line 29) | internal D3D11.BlendState GetDxState()
    method CreateDXState (line 34) | internal D3D11.BlendState CreateDXState(GraphicsDeviceStrategy deviceS...
    method GetDXBlendDescription (line 52) | static private void GetDXBlendDescription(TargetBlendState blendStateT...
    method GetDXBlendOperation (line 71) | static private D3D11.BlendOperation GetDXBlendOperation(BlendFunction ...
    method GetDXBlendOption (line 91) | static private D3D11.BlendOption GetDXBlendOption(Blend blend, bool al...
    method GetDXColorWriteMaskFlags (line 127) | static private D3D11.ColorWriteMaskFlags GetDXColorWriteMaskFlags(Colo...
    method PlatformGraphicsContextLost (line 136) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 141) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/States/ConcreteDepthStencilState.cs
  class ConcreteDepthStencilState (line 19) | internal class ConcreteDepthStencilState : ResourceDepthStencilStateStra...
    method ConcreteDepthStencilState (line 23) | internal ConcreteDepthStencilState(GraphicsContextStrategy contextStra...
    method GetDxState (line 29) | internal D3D11.DepthStencilState GetDxState()
    method CreateDXState (line 34) | internal D3D11.DepthStencilState CreateDXState(GraphicsDeviceStrategy ...
    method ToDXStencilOp (line 75) | static private D3D11.StencilOperation ToDXStencilOp(StencilOperation o...
    method PlatformGraphicsContextLost (line 102) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 107) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/States/ConcreteRasterizerState.cs
  class ConcreteRasterizerState (line 19) | internal class ConcreteRasterizerState : ResourceRasterizerStateStrategy
    method ConcreteRasterizerState (line 23) | internal ConcreteRasterizerState(GraphicsContextStrategy contextStrate...
    method GetDxState (line 39) | internal D3D11.RasterizerState GetDxState(ConcreteGraphicsContext cont...
    method CreateDXState (line 50) | internal D3D11.RasterizerState CreateDXState(GraphicsDeviceStrategy de...
    method PlatformGraphicsContextLost (line 115) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 120) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/States/ConcreteSamplerState.cs
  class ConcreteSamplerState (line 19) | internal class ConcreteSamplerState : ResourceSamplerStateStrategy
    method ConcreteSamplerState (line 23) | internal ConcreteSamplerState(GraphicsContextStrategy contextStrategy,...
    method GetDxState (line 29) | internal D3D11.SamplerState GetDxState()
    method CreateDXState (line 34) | internal D3D11.SamplerState CreateDXState(GraphicsContextStrategy cont...
    method ToDXTextureFilter (line 68) | private static D3D11.Filter ToDXTextureFilter(TextureFilter filter, Te...
    method ToDXTextureAddressMode (line 127) | private static D3D11.TextureAddressMode ToDXTextureAddressMode(Texture...
    method PlatformGraphicsContextLost (line 146) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 151) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/Vertices/ConcreteDynamicIndexBuffer.cs
  class ConcreteDynamicIndexBuffer (line 21) | public class ConcreteDynamicIndexBuffer : ConcreteIndexBuffer, IDynamicI...
    method ConcreteDynamicIndexBuffer (line 25) | internal ConcreteDynamicIndexBuffer(GraphicsContextStrategy contextStr...
    method PlatformConstructDynamicIndexBuffer (line 31) | private void PlatformConstructDynamicIndexBuffer()
    method SetData (line 49) | public unsafe override void SetData<T>(int offsetInBytes, T[] data, in...
    method GetData (line 100) | public override void GetData<T>(int offsetInBytes, T[] data, int start...

FILE: Platforms/Graphics/.DX11/Vertices/ConcreteDynamicVertexBuffer.cs
  class ConcreteDynamicVertexBuffer (line 21) | public class ConcreteDynamicVertexBuffer : ConcreteVertexBuffer, IDynami...
    method ConcreteDynamicVertexBuffer (line 25) | internal ConcreteDynamicVertexBuffer(GraphicsContextStrategy contextSt...
    method PlatformConstructDynamicVertexBuffer (line 31) | private void PlatformConstructDynamicVertexBuffer()
    method SetData (line 46) | public unsafe override void SetData<T>(int offsetInBytes, T[] data, in...
    method GetData (line 107) | public override void GetData<T>(int offsetInBytes, T[] data, int start...

FILE: Platforms/Graphics/.DX11/Vertices/ConcreteIndexBuffer.cs
  class ConcreteIndexBuffer (line 22) | public class ConcreteIndexBuffer : IndexBufferStrategy
    method ConcreteIndexBuffer (line 37) | internal ConcreteIndexBuffer(GraphicsContextStrategy contextStrategy, ...
    method ConcreteIndexBuffer (line 50) | internal ConcreteIndexBuffer(GraphicsContextStrategy contextStrategy, ...
    method PlatformConstructIndexBuffer (line 63) | internal void PlatformConstructIndexBuffer()
    method SetData (line 81) | public unsafe override void SetData<T>(int offsetInBytes, T[] data, in...
    method GetData (line 110) | public unsafe override void GetData<T>(int offsetInBytes, T[] data, in...
    method PlatformGraphicsContextLost (line 157) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 163) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/Vertices/ConcreteVertexBuffer.cs
  class ConcreteVertexBuffer (line 21) | public class ConcreteVertexBuffer : VertexBufferStrategy
    method ConcreteVertexBuffer (line 34) | internal ConcreteVertexBuffer(GraphicsContextStrategy contextStrategy,...
    method ConcreteVertexBuffer (line 40) | internal ConcreteVertexBuffer(GraphicsContextStrategy contextStrategy,...
    method PlatformConstructVertexBuffer (line 47) | internal void PlatformConstructVertexBuffer()
    method CreateStagingBuffer (line 62) | internal D3D11.Buffer CreateStagingBuffer()
    method SetData (line 73) | public unsafe override void SetData<T>(int offsetInBytes, T[] data, in...
    method GetData (line 132) | public unsafe override void GetData<T>(int offsetInBytes, T[] data, in...
    method PlatformGraphicsContextLost (line 178) | protected override void PlatformGraphicsContextLost()
    method Dispose (line 184) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.DX11/Vertices/InputLayoutCache.cs
  class InputLayoutCache (line 22) | internal class InputLayoutCache : IDisposable
    method InputLayoutCache (line 37) | public InputLayoutCache(GraphicsDeviceStrategy graphicsDeviceStrategy,...
    method Dispose (line 54) | public void Dispose()
    method Dispose (line 68) | protected virtual void Dispose(bool disposing)
    method GetOrCreate (line 85) | public D3D11.InputLayout GetOrCreate(VertexInputLayoutKey vertexInputL...
    method GetInvalidArgMessage (line 225) | private static string GetInvalidArgMessage(D3D11.InputElement[] inputE...

FILE: Platforms/Graphics/.DX11/Vertices/VertexInputLayoutKey.cs
  class VertexInputLayoutKey (line 13) | public class VertexInputLayoutKey : IEquatable<VertexInputLayoutKey>
    method VertexInputLayoutKey (line 19) | internal VertexInputLayoutKey()
    method Set (line 27) | internal void Set(VertexDeclaration[] vertexDeclarations, int[] instan...
    method Equals (line 34) | public override bool Equals(object obj)
    method Equals (line 39) | public bool Equals(VertexInputLayoutKey other)
    method GetHashCode (line 65) | public override int GetHashCode()
    method CreateImmutable (line 88) | internal ImmutableVertexInputLayoutKey CreateImmutable()
  class ImmutableVertexInputLayoutKey (line 111) | internal sealed class ImmutableVertexInputLayoutKey : VertexInputLayoutKey
    method ImmutableVertexInputLayoutKey (line 115) | internal ImmutableVertexInputLayoutKey(VertexDeclaration[] vertexDecla...
    method GetHashCode (line 131) | public override int GetHashCode()

FILE: Platforms/Graphics/.GL.Android/ConcreteGraphicsAdapter.cs
  class ConcreteGraphicsAdapter (line 21) | internal class ConcreteGraphicsAdapter : GraphicsAdapterStrategy
    method Platform_IsShaderBackendSupported (line 117) | public override bool Platform_IsShaderBackendSupported(GraphicsBackend...
    method Platform_IsShaderProfileSupported (line 129) | public override bool Platform_IsShaderProfileSupported(ShaderProfileTy...
    method ConcreteGraphicsAdapter (line 155) | internal ConcreteGraphicsAdapter()
    method InitConfigs (line 251) | private void InitConfigs()
    method Platform_IsProfileSupported (line 268) | public override bool Platform_IsProfileSupported(GraphicsProfile graph...
    method Platform_QueryBackBufferFormat (line 296) | public override bool Platform_QueryBackBufferFormat(
    method Platform_QueryRenderTargetFormat (line 304) | public override bool Platform_QueryRenderTargetFormat(

FILE: Platforms/Graphics/.GL.Android/ConcreteGraphicsAdaptersProvider.cs
  class ConcreteGraphicsAdaptersProvider (line 18) | class ConcreteGraphicsAdaptersProvider : GraphicsAdaptersProviderStrategy
    method ConcreteGraphicsAdaptersProvider (line 22) | public ConcreteGraphicsAdaptersProvider()
    method CreateAdapterList (line 28) | private List<GraphicsAdapter> CreateAdapterList()

FILE: Platforms/Graphics/.GL.Android/ConcreteGraphicsContext.Android.cs
  class ConcreteGraphicsContext (line 17) | internal sealed class ConcreteGraphicsContext : ConcreteGraphicsContextGL
    method ConcreteGraphicsContext (line 30) | internal ConcreteGraphicsContext(GraphicsContext context)
    method GLCreateContext (line 109) | private void GLCreateContext()
    method GLCreatePBufferSurface (line 146) | internal EGLSurface GLCreatePBufferSurface(EGLConfig config, int[] att...
    method EnsureContextCurrentThread (line 164) | internal override void EnsureContextCurrentThread()
    method BindDisposeContext (line 172) | public override void BindDisposeContext()
    method UnbindDisposeContext (line 185) | public override void UnbindDisposeContext()
    method BindSharedContext (line 198) | public override bool BindSharedContext()
    method UnbindSharedContext (line 218) | public override void UnbindSharedContext()
    method SurfaceView_SurfaceCreated (line 233) | private void SurfaceView_SurfaceCreated(object sender, EventArgs e)
    method SurfaceView_SurfaceChanged (line 239) | private void SurfaceView_SurfaceChanged(object sender, EventArgs e)
    method SurfaceView_SurfaceDestroyed (line 292) | private void SurfaceView_SurfaceDestroyed(object sender, EventArgs e)
    method Dispose (line 312) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.GL.Android/ConcreteGraphicsDevice.Android.cs
  class ConcreteGraphicsDevice (line 14) | internal sealed class ConcreteGraphicsDevice : ConcreteGraphicsDeviceGL
    method ConcreteGraphicsDevice (line 24) | internal ConcreteGraphicsDevice(GraphicsDevice device, GraphicsAdapter...
    method GLChooseConfig (line 30) | internal void GLChooseConfig()
    method GLCreateSurface (line 114) | internal void GLCreateSurface()
    method GlDestroySurface (line 140) | internal void GlDestroySurface()
    method Present (line 153) | public override void Present()
    method CreateGraphicsContextStrategy (line 169) | public override GraphicsContextStrategy CreateGraphicsContextStrategy(...
    method Dispose (line 174) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.GL.Android/OpenGL.Android.cs
  class OGL_DROID (line 14) | internal sealed class OGL_DROID : OGL
    method Initialize (line 31) | public static void Initialize()
    method OGL_DROID (line 38) | private OGL_DROID() : base()
    method GetNativeLibrary (line 44) | protected override IntPtr GetNativeLibrary()
    method LoadFunction (line 82) | protected override T LoadFunction<T>(string function)
    method LoadFunctionOrNull (line 87) | protected override T LoadFunctionOrNull<T>(string function)
    method GetSupportedGLESVersions (line 92) | internal IEnumerable<GLESVersion> GetSupportedGLESVersions()
    method GetEglErrorAsString (line 109) | internal string GetEglErrorAsString()
  type GLESVersion (line 151) | struct GLESVersion
    method GetAttributes (line 159) | internal int[] GetAttributes()
    method ToString (line 165) | public override string ToString()

FILE: Platforms/Graphics/.GL.Android/SurfaceConfig.cs
  type SurfaceConfig (line 13) | internal struct SurfaceConfig
    method ToConfigAttribs (line 28) | public int[] ToConfigAttribs()
    method GetAttribute (line 80) | static int GetAttribute(EGLConfig config, IEGL10 egl, EGLDisplay eglDi...
    method FromEGLConfig (line 86) | public static SurfaceConfig FromEGLConfig(EGLConfig config, IEGL10 egl...
    method ToString (line 104) | public override string ToString()

FILE: Platforms/Graphics/.GL.Android/Vertices/ConcreteIndexBuffer.cs
  class ConcreteIndexBuffer (line 19) | public class ConcreteIndexBuffer : ConcreteIndexBufferGL
    method ConcreteIndexBuffer (line 21) | public ConcreteIndexBuffer(GraphicsContextStrategy contextStrategy, In...
    method ConcreteIndexBuffer (line 26) | public ConcreteIndexBuffer(GraphicsContextStrategy contextStrategy, In...
    method GetData (line 31) | public unsafe override void GetData<T>(int offsetInBytes, T[] data, in...

FILE: Platforms/Graphics/.GL.Android/Vertices/ConcreteVertexBuffer.cs
  class ConcreteVertexBuffer (line 19) | public class ConcreteVertexBuffer : ConcreteVertexBufferGL
    method ConcreteVertexBuffer (line 21) | public ConcreteVertexBuffer(GraphicsContextStrategy contextStrategy, V...
    method ConcreteVertexBuffer (line 26) | public ConcreteVertexBuffer(GraphicsContextStrategy contextStrategy, V...
    method GetData (line 31) | public unsafe override void GetData<T>(int offsetInBytes, T[] data, in...

FILE: Platforms/Graphics/.GL.SDL/ConcreteGraphicsAdapter.cs
  class ConcreteGraphicsAdapter (line 17) | internal class ConcreteGraphicsAdapter : GraphicsAdapterStrategy
    method Platform_IsShaderBackendSupported (line 139) | public override bool Platform_IsShaderBackendSupported(GraphicsBackend...
    method Platform_IsShaderProfileSupported (line 151) | public override bool Platform_IsShaderProfileSupported(ShaderProfileTy...
    method ConcreteGraphicsAdapter (line 178) | internal ConcreteGraphicsAdapter()
    method Platform_IsProfileSupported (line 257) | public override bool Platform_IsProfileSupported(GraphicsProfile graph...
    method Platform_QueryBackBufferFormat (line 283) | public override bool Platform_QueryBackBufferFormat(
    method Platform_QueryRenderTargetFormat (line 291) | public override bool Platform_QueryRenderTargetFormat(

FILE: Platforms/Graphics/.GL.SDL/ConcreteGraphicsAdaptersProvider.cs
  class ConcreteGraphicsAdaptersProvider (line 16) | class ConcreteGraphicsAdaptersProvider : GraphicsAdaptersProviderStrategy
    method ConcreteGraphicsAdaptersProvider (line 20) | public ConcreteGraphicsAdaptersProvider()
    method CreateAdapterList (line 26) | private List<GraphicsAdapter> CreateAdapterList()

FILE: Platforms/Graphics/.GL.SDL/ConcreteGraphicsContext.SDL.cs
  class ConcreteGraphicsContext (line 16) | internal sealed class ConcreteGraphicsContext : ConcreteGraphicsContextGL
    method ConcreteGraphicsContext (line 32) | internal ConcreteGraphicsContext(GraphicsContext context)
    method MakeCurrent (line 67) | public void MakeCurrent(IntPtr winHandle)
    method EnsureContextCurrentThread (line 73) | internal override void EnsureContextCurrentThread()
    method BindDisposeContext (line 82) | public override void BindDisposeContext()
    method UnbindDisposeContext (line 90) | public override void UnbindDisposeContext()
    method BindSharedContext (line 98) | public override bool BindSharedContext()
    method UnbindSharedContext (line 113) | public override void UnbindSharedContext()
    method ToGLSwapInterval (line 127) | internal static int ToGLSwapInterval(PresentInterval interval)
    method Dispose (line 151) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.GL.SDL/ConcreteGraphicsDevice.SDL.cs
  class ConcreteGraphicsDevice (line 15) | internal sealed class ConcreteGraphicsDevice : ConcreteGraphicsDeviceGL
    method ConcreteGraphicsDevice (line 18) | internal ConcreteGraphicsDevice(GraphicsDevice device, GraphicsAdapter...
    method GetModeSwitchedSize (line 24) | internal void GetModeSwitchedSize(out int width, out int height)
    method GetDisplayResolution (line 40) | internal void GetDisplayResolution(out int width, out int height)
    method Present (line 49) | public override void Present()
    method CreateGraphicsContextStrategy (line 60) | public override GraphicsContextStrategy CreateGraphicsContextStrategy(...
    method Dispose (line 71) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.GL.SDL/OpenGL.SDL.cs
  class OGL_SDL (line 11) | internal sealed class OGL_SDL : OGL
    method Initialize (line 13) | public static void Initialize()
    method OGL_SDL (line 19) | private OGL_SDL() : base()
    method GetNativeLibrary (line 24) | protected override IntPtr GetNativeLibrary()
    method LoadFunction (line 31) | protected override T LoadFunction<T>(string function)
    method LoadFunctionOrNull (line 41) | protected override T LoadFunctionOrNull<T>(string function)

FILE: Platforms/Graphics/.GL.SDL/Vertices/ConcreteIndexBuffer.cs
  class ConcreteIndexBuffer (line 20) | public class ConcreteIndexBuffer : ConcreteIndexBufferGL
    method ConcreteIndexBuffer (line 22) | public ConcreteIndexBuffer(GraphicsContextStrategy contextStrategy, In...
    method ConcreteIndexBuffer (line 28) | public ConcreteIndexBuffer(GraphicsContextStrategy contextStrategy, In...
    method GetData (line 33) | public unsafe override void GetData<T>(int offsetInBytes, T[] data, in...

FILE: Platforms/Graphics/.GL.SDL/Vertices/ConcreteVertexBuffer.cs
  class ConcreteVertexBuffer (line 20) | public class ConcreteVertexBuffer : ConcreteVertexBufferGL
    method ConcreteVertexBuffer (line 22) | public ConcreteVertexBuffer(GraphicsContextStrategy contextStrategy, V...
    method ConcreteVertexBuffer (line 27) | public ConcreteVertexBuffer(GraphicsContextStrategy contextStrategy, V...
    method GetData (line 32) | public unsafe override void GetData<T>(int offsetInBytes, T[] data, in...

FILE: Platforms/Graphics/.GL.iOS/ConcreteGraphicsAdapter.cs
  class ConcreteGraphicsAdapter (line 17) | internal class ConcreteGraphicsAdapter : GraphicsAdapterStrategy
    method Platform_IsShaderBackendSupported (line 115) | public override bool Platform_IsShaderBackendSupported(GraphicsBackend...
    method Platform_IsShaderProfileSupported (line 127) | public override bool Platform_IsShaderProfileSupported(ShaderProfileTy...
    method ConcreteGraphicsAdapter (line 139) | internal ConcreteGraphicsAdapter(UIScreen mainScreen)
    method Platform_IsProfileSupported (line 145) | public override bool Platform_IsProfileSupported(GraphicsProfile graph...
    method Platform_QueryBackBufferFormat (line 169) | public override bool Platform_QueryBackBufferFormat(
    method Platform_QueryRenderTargetFormat (line 177) | public override bool Platform_QueryRenderTargetFormat(

FILE: Platforms/Graphics/.GL.iOS/ConcreteGraphicsAdaptersProvider.cs
  class ConcreteGraphicsAdaptersProvider (line 17) | class ConcreteGraphicsAdaptersProvider : GraphicsAdaptersProviderStrategy
    method ConcreteGraphicsAdaptersProvider (line 21) | public ConcreteGraphicsAdaptersProvider()
    method CreateAdapterList (line 27) | private List<GraphicsAdapter> CreateAdapterList()

FILE: Platforms/Graphics/.GL.iOS/ConcreteGraphicsContext.iOS.cs
  class ConcreteGraphicsContext (line 12) | internal sealed class ConcreteGraphicsContext : ConcreteGraphicsContextGL
    method ConcreteGraphicsContext (line 19) | internal ConcreteGraphicsContext(GraphicsContext context)
    method EnsureContextCurrentThread (line 86) | internal override void EnsureContextCurrentThread()
    method BindDisposeContext (line 94) | public override void BindDisposeContext()
    method UnbindDisposeContext (line 102) | public override void UnbindDisposeContext()
    method BindSharedContext (line 110) | public override bool BindSharedContext()
    method UnbindSharedContext (line 125) | public override void UnbindSharedContext()
    method Dispose (line 135) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.GL.iOS/ConcreteGraphicsDevice.iOS.cs
  class ConcreteGraphicsDevice (line 11) | internal sealed class ConcreteGraphicsDevice : ConcreteGraphicsDeviceGL
    method ConcreteGraphicsDevice (line 14) | internal ConcreteGraphicsDevice(GraphicsDevice device, GraphicsAdapter...
    method Present (line 20) | public override void Present()
    method CreateGraphicsContextStrategy (line 26) | public override GraphicsContextStrategy CreateGraphicsContextStrategy(...
    method Dispose (line 32) | protected override void Dispose(bool disposing)

FILE: Platforms/Graphics/.GL.iOS/OpenGL.iOS.cs
  class OGL_IOS (line 11) | internal sealed class OGL_IOS : OGL
    method Initialize (line 15) | public static void Initialize()
    method OGL_IOS (line 21) | private OGL_IOS() : base()
    method GetNativeLibrary (line 26) | protected override IntPtr GetNativeLibrary()
    method LoadFunction (line 33) | protected override T LoadFunction<T>(string function)
    method LoadFunctionOrNull (line 38) | protected override T LoadFunctionOrNull<T>(string function)

FILE: Platforms/Graphics/.GL.iOS/Vertices/ConcreteIndexBuffer.cs
  class ConcreteIndexBuffer (line 19) | public class ConcreteIndexBuffer : ConcreteIndexBufferGL
    method ConcreteIndexBuffer (line 21) | public ConcreteIndexBuffer(GraphicsContextStrategy contextStrategy, In...
    method ConcreteIndexBuffer (line 26) | public ConcreteIndexBuffer(GraphicsContextStrategy contextStrategy, In...
    method GetData (line 31) | public unsafe override void GetData<T>(int offsetInBytes, T[] data, in...

FILE: Platforms/Graphics/.GL.iOS/Vertices/ConcreteVertexBuffer.cs
  class ConcreteVertexBuffer (line 19) | public class ConcreteVertexBuffer : ConcreteVertexBufferGL
    method ConcreteVertexBuffer (line 21) | public ConcreteVertexBuffer(GraphicsContextStrategy contextStrategy, V...
    method ConcreteVertexBuffer (line 26) | public ConcreteVertexBuffer(GraphicsContextStrategy contextStrategy, V...
    method GetData (line 31) | public unsafe override void GetData<T>(int offsetInBytes, T[] data, in...

FILE: Platforms/Graphics/.GL/ConcreteGraphicsCapabilities.cs
  class ConcreteGraphicsCapabilities (line 15) | internal sealed class ConcreteGraphicsCapabilities : GraphicsCapabilities
    method PlatformInitialize (line 41) | internal void PlatformInitialize(ConcreteGraphicsContextGL cgraphicsCo...

FILE: Platforms/Graphics/.GL/ConcreteGraphicsContext.cs
  class ConcreteGraphicsContextGL (line 28)
Copy disabled (too large) Download .json
Condensed preview — 2580 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (30,874K chars).
[
  {
    "path": ".config/dotnet-tools.json_",
    "chars": 156,
    "preview": "{\n  \"version\": 1,\n  \"isRoot\": true,\n  \"tools\": {\n    \"cake.tool\": {\n      \"version\": \"2.0.0\",\n      \"commands\": [\n      "
  },
  {
    "path": ".gitattributes",
    "chars": 328,
    "preview": "# MonoGame - Copyright (C) The MonoGame Team\n# This file is subject to the terms and conditions defined in\n# file 'LICEN"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 605,
    "preview": "# These are supported funding model platforms\n\ngithub: [nkast]\npatreon: # Replace with a single Patreon username\nopen_c"
  },
  {
    "path": ".github/workflows/dotnet.yml",
    "chars": 3248,
    "preview": "# This workflow will build a .NET project\n# For more information see: https://docs.github.com/en/actions/automating-buil"
  },
  {
    "path": ".github/workflows/sponsors.yml",
    "chars": 920,
    "preview": "name: Generate Sponsors README\non:\n  workflow_dispatch:\n  schedule:\n    # This is a cron schedule, it will run every day"
  },
  {
    "path": ".gitignore",
    "chars": 1283,
    "preview": "#OS junk files\r\n[Tt]humbs.db\r\n*.DS_Store\r\n\r\n#Output Linux Installer\r\nInstallers/Linux/tmp_deb/\r\nInstallers/Linux/tmp_run"
  },
  {
    "path": ".gitmodules",
    "chars": 639,
    "preview": "[submodule \"ThirdParty/Dependencies\"]\n\tpath = ThirdParty/Dependencies\n\turl = https://github.com/kniEngine/kniDependencie"
  },
  {
    "path": "BuildNuget.bat",
    "chars": 3741,
    "preview": "dotnet pack src\\Xna.Framework\\Xna.Framework.csproj --output NuGetPackages\\Output\\ /t:Build /p:Configuration=Release\ndotn"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 107704,
    "preview": "# Changelog\r\n\r\n\r\n## 4.2.9001 Release - November 2, 2025\r\n\r\n### Fixed\r\n - fix BoundingFrustum Intersects BoundingSphere "
  },
  {
    "path": "CODESTYLE.md",
    "chars": 8179,
    "preview": "> #### NOTE: This code style standard for MonoGame is a work in progress and much of the code does not currently conform"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 5213,
    "preview": "# Contributing to MonoGame\n\nWe're happy that you have chosen to contribute to the MonoGame project.\n\nYou are joining a g"
  },
  {
    "path": "Clean.bat",
    "chars": 132,
    "preview": "\nfor /d /r . %%d in (bin,obj,bak) do @if exist \"%%d\" rd /s /q \"%%d\"\n\nrd /s /q \"Artifacts\"\n\ncd Templates\ndel /s /q *.zip\n"
  },
  {
    "path": "Documentation/articles/README.md",
    "chars": 4385,
    "preview": "THIS IS A WORK IN PROGRESS!\n\n# MonoGame Documentation\n\nThis is the source for the [documentation published on MonoGame.n"
  },
  {
    "path": "Documentation/articles/content/adding_ttf_fonts.md",
    "chars": 1754,
    "preview": "# TrueType fonts\n\nMonoGame supports more than one method of using fonts, the following is an explanation of how to use T"
  },
  {
    "path": "Documentation/articles/content/content.md",
    "chars": 691,
    "preview": "# Adding Content\n\nA big part of your game is your content.  This includes standard files like textures, sound effects, m"
  },
  {
    "path": "Documentation/articles/content/custom_effects.md",
    "chars": 4407,
    "preview": "# Custom Effects\n\nA core element of Microsoft XNA is the effect system which is used for all rendering.\n\nFor KNI we are "
  },
  {
    "path": "Documentation/articles/content/localization.md",
    "chars": 6305,
    "preview": "# Localization\n\nLocalization is an important part of any game. While it can be possible to design a game that is region "
  },
  {
    "path": "Documentation/articles/content/toc.yml",
    "chars": 279,
    "preview": "- name: Why use the Content Pipeline\r\n  href: why_content_pipeline.md\r\n- name: Using MGCB Editor\r\n  href: using_mgcb_edi"
  },
  {
    "path": "Documentation/articles/content/using_mgcb_editor.md",
    "chars": 17628,
    "preview": "# Using MGCB Editor\n\nThe [MGCB Editor](~/articles/tools/mgcb_editor.md) is used to organize and build content for use wi"
  },
  {
    "path": "Documentation/articles/content/why_content_pipeline.md",
    "chars": 7827,
    "preview": "# Why use the Content Pipeline\n\nThe MonoGame team continues to put a lot of effort into a cross-platform content pipelin"
  },
  {
    "path": "Documentation/articles/getting_started/0_getting_started.md",
    "chars": 1151,
    "preview": "# Getting Started\n\nThis section walks you through the basics of MonoGame, and helps you to create your first game.\n\nFirs"
  },
  {
    "path": "Documentation/articles/getting_started/1_setting_up_your_development_environment_macos.md",
    "chars": 3119,
    "preview": "# Setting up your development environment for macOS\n\nThis section provides a step-by-step guide for setting up your deve"
  },
  {
    "path": "Documentation/articles/getting_started/1_setting_up_your_development_environment_ubuntu.md",
    "chars": 1976,
    "preview": "# Setting up your development environment for Linux\n\nThis section provides a step-by-step guide for setting up your deve"
  },
  {
    "path": "Documentation/articles/getting_started/1_setting_up_your_development_environment_windows.md",
    "chars": 2598,
    "preview": "# Setting up your development environment for Windows\n\nThis section provides a step-by-step guide for setting up your de"
  },
  {
    "path": "Documentation/articles/getting_started/2_creating_a_new_project_netcore.md",
    "chars": 1666,
    "preview": "# .NET CLI (JetBrains Rider or Visual Studio Code)\n\nThis guide will walk you through building a starter game with MonoGa"
  },
  {
    "path": "Documentation/articles/getting_started/2_creating_a_new_project_vs.md",
    "chars": 1447,
    "preview": "# Creating a Project with Visual Studio 2022\n\nThis guide will walk you through building a starter game with MonoGame usi"
  },
  {
    "path": "Documentation/articles/getting_started/2_creating_a_new_project_vsm.md",
    "chars": 1477,
    "preview": "# Creating a Project with Visual Studio for Mac\n\nThis guide will walk you through building a starter game with MonoGame "
  },
  {
    "path": "Documentation/articles/getting_started/3_understanding_the_code.md",
    "chars": 4367,
    "preview": "# Understanding the Code\n\nThis tutorial will go over the code that is generated when you start a blank project.\n\n> For h"
  },
  {
    "path": "Documentation/articles/getting_started/4_adding_content.md",
    "chars": 4655,
    "preview": "# Adding Content\n\nThis tutorial will go over adding content such as images or sounds to your game.\n\n> For help with crea"
  },
  {
    "path": "Documentation/articles/getting_started/5_adding_basic_code.md",
    "chars": 5771,
    "preview": "# Adding Basic Code\n\nThis tutorial will go over adding basic logic to your game, continuing from where [Adding Content]("
  },
  {
    "path": "Documentation/articles/getting_started/toc.yml",
    "chars": 789,
    "preview": "- name: 1. Setting up your development environment\r\n  items:\r\n  - name: Windows\r\n    href: 1_setting_up_your_development"
  },
  {
    "path": "Documentation/articles/help_and_support.md",
    "chars": 704,
    "preview": "# Help and Support\n\nThere is a wealth of [community created content, blogs and tutorials](tutorials.md) available.\n\nIf y"
  },
  {
    "path": "Documentation/articles/migrate_37.md",
    "chars": 2340,
    "preview": "# Migrating from 3.7\n\nPreviously MonoGame installed on your machine through an installer, but from 3.8 onwards everythin"
  },
  {
    "path": "Documentation/articles/migrate_38.md",
    "chars": 3536,
    "preview": "# Migrating from 3.8.0\n\nMigrating from 3.8.0 should be straightforward for most platforms.\n\nThe major difference is that"
  },
  {
    "path": "Documentation/articles/migrate_381.md",
    "chars": 4568,
    "preview": "# Migrating from MonoGame 3.8.1 to KNI 4.2\n\n\n## Migrating Framework\n\nEdit your .csproj file of the main project and repl"
  },
  {
    "path": "Documentation/articles/migrate_3_10.md",
    "chars": 4373,
    "preview": "# Migrating from 3.10 to 3.11\n\n\n## Migrating Framework\n\nEdit your .csproj file and replace:\n\n```xml\n    <PackageReferenc"
  },
  {
    "path": "Documentation/articles/migrate_3_11.md",
    "chars": 2907,
    "preview": "# Migrating from 3.11 to 3.12\n\n\n## Migrating Framework\n\nEdit your .csproj file and replace:\n\n```xml\n    <PackageReferenc"
  },
  {
    "path": "Documentation/articles/migrate_3_12.md",
    "chars": 6070,
    "preview": "# Migrating from 3.12 to 3.13\n\n\n## Migrating Framework\n\nEdit your .csproj file and replace:\n\n```xml\n    <PackageReferenc"
  },
  {
    "path": "Documentation/articles/migrate_3_13.md",
    "chars": 4818,
    "preview": "# Migrating from 3.13 to 3.14\n\n\n## Migrating Framework\n\nEdit your .csproj file and replace:\n\n```xml\n    <PackageReferenc"
  },
  {
    "path": "Documentation/articles/migrate_3_14.md",
    "chars": 7070,
    "preview": "# Migrating from 3.14 to 4.0\n\n\n## Migrating Framework\n\nEdit your .csproj file and replace:\n\n```xml\n    <PackageReference"
  },
  {
    "path": "Documentation/articles/migrate_4_0.md",
    "chars": 4625,
    "preview": "# Migrating from 4.0 to 4.1\n\n\n## Migrating Framework\n\nEdit your .csproj file and replace:\n\n```xml\n    <PackageReference "
  },
  {
    "path": "Documentation/articles/migrate_4_1.md",
    "chars": 7019,
    "preview": "# Migrating from 4.1 to 4.2\n\n\n## Migrating Framework\n\nEdit your .csproj file and replace:\n\n```xml\n    <PackageReference "
  },
  {
    "path": "Documentation/articles/migrate_xna.md",
    "chars": 2624,
    "preview": "# Migrating from XNA\n\nMonoGame is API compatible with [XNA 4.0](https://docs.microsoft.com/en-us/previous-versions/windo"
  },
  {
    "path": "Documentation/articles/packaging_games.md",
    "chars": 7266,
    "preview": "# Package games for distribution\n\nOnce your game is ready to be published, it is recommended that you package it properl"
  },
  {
    "path": "Documentation/articles/platforms.md",
    "chars": 7919,
    "preview": "# Supported Platforms\n\nMonoGame supports building games for the following **systems**:\n\n| **Desktop PCs**             | "
  },
  {
    "path": "Documentation/articles/samples.md",
    "chars": 1498,
    "preview": "# Samples & Demos\n\nThe samples and demos below are recommended for learning how to use MonoGame.\n\n## Official MonoGame S"
  },
  {
    "path": "Documentation/articles/toc.yml",
    "chars": 811,
    "preview": "- name: Introduction\r\n  href: ../index.md\r\n- name: What's New\r\n  href: whats_new.md\r\n- name: Getting Started\r\n  href: ge"
  },
  {
    "path": "Documentation/articles/tools/knifxc.md",
    "chars": 2142,
    "preview": "# KNI Effects Compiler (KNIFXC)\n\nThe KNIFXC tool is used to compile [DirectX Effect files](https://docs.microsoft.com/en"
  },
  {
    "path": "Documentation/articles/tools/mgcb.md",
    "chars": 6841,
    "preview": "# MonoGame Content Builder (MGCB)\n\nThe MonoGame Content Builder is a command line tool for building XNB content on Windo"
  },
  {
    "path": "Documentation/articles/tools/mgcb_editor.md",
    "chars": 1326,
    "preview": "# MGCB Editor\n\nMonoGame Content Builder (MGCB) Editor is the front-end GUI editor for MonoGame content builder projects."
  },
  {
    "path": "Documentation/articles/tools/toc.yml",
    "chars": 111,
    "preview": "- name: MGCB\r\n  href: mgcb.md\r\n- name: MGCB Editor\r\n  href: mgcb_editor.md\r\n- name: KNIFXC\r\n  href: knifxc.md\r\n"
  },
  {
    "path": "Documentation/articles/tools/tools.md",
    "chars": 615,
    "preview": "# Tools\n\nMonoGame distributes tooling to help manage and build content for your game.\n\nThese tools are available as [.NE"
  },
  {
    "path": "Documentation/articles/tutorials.md",
    "chars": 5194,
    "preview": "# Tutorials\n\nCheck out the awesome work of the larger MonoGame community with their own tutorials, blogs and videos.\n\n> "
  },
  {
    "path": "Documentation/articles/whats_new.md",
    "chars": 2216,
    "preview": "# What's New\n\nThe MonoGame 3.8.1 release marks some big changes since 3.8.0 in how we build and distribute.\n\n> [!NOTE] R"
  },
  {
    "path": "Documentation/docfx.json",
    "chars": 2001,
    "preview": "{\r\n  \"metadata\": [\r\n    {\r\n      \"src\": [\r\n        {\r\n          \"src\": \"..\",\r\n          \"files\": [ \r\n            \"MonoGa"
  },
  {
    "path": "Documentation/index.md",
    "chars": 2461,
    "preview": "---\nuid: index.md\ntitle: Introduction\n---\n\n<p align=\"center\">\n<br/>\n  <img src=\"https://raw.githubusercontent.com/Mono-G"
  },
  {
    "path": "Documentation/metadata.json",
    "chars": 230,
    "preview": "{\r\n  \"_disableAffix\": {\r\n    \"index.md\": true\r\n  },\r\n  \"_disableContribution\": {\r\n    \"../CHANGELOG.md\": true\r\n  },\r\n  \""
  },
  {
    "path": "Documentation/theme/material/partials/head.tmpl.partial",
    "chars": 1469,
    "preview": "{{!Copyright (c) Oscar Vasquez. All rights reserved. Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "Documentation/theme/material/styles/main.css",
    "chars": 4962,
    "preview": "/* Custom css for MG theme */\n\n.navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form {\n  border-top: none;\n}\n.n"
  },
  {
    "path": "Documentation/theme/monogame/partials/head.tmpl.partial",
    "chars": 1553,
    "preview": "{{!Copyright (c) Oscar Vasquez. All rights reserved. Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "Documentation/theme/monogame/partials/navbar.tmpl.partial",
    "chars": 1102,
    "preview": "{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root fo"
  },
  {
    "path": "Documentation/theme/monogame/styles/monogame.css",
    "chars": 420,
    "preview": ".article {\r\n  margin-top: 80px;\r\n}\r\n\r\n.mg-link {\r\n  display: block;\r\n  padding: 15px 15px 0 15px;\r\n  color: var(--header"
  },
  {
    "path": "Documentation/toc.yml",
    "chars": 121,
    "preview": "- name: Articles\r\n  href: articles/\r\n- name: Api\r\n  href: obj/api/merged/\r\n- name: Changelog\r\n  href: ../CHANGELOG.md\r\n\r"
  },
  {
    "path": "ISSUE_TEMPLATE.md",
    "chars": 561,
    "preview": "<!--\n# Please make sure that the issue is present in the\n# develop branch of KNI before reporting\n#\n# GitHub issues are "
  },
  {
    "path": "Installers/Windows/KniSdkSetup.nsi",
    "chars": 10095,
    "preview": "SetCompressor /SOLID /FINAL lzma\n\n!include \"header.nsh\"\n!include \"LogicLib.nsh\"\n!define APPNAME \"KNI\"\n\n;Include Modern U"
  },
  {
    "path": "Installers/Windows/SponsorPage.ini",
    "chars": 574,
    "preview": "[Settings]\nNumFields=3\n\n[Field 1]\nType=Label\nText=While KNI is free and open-source, maintaining and expanding the frame"
  },
  {
    "path": "Installers/default.build",
    "chars": 1478,
    "preview": "<?xml version=\"1.0\"?>\n<project name=\"Installer Build Script\" default=\"build\" basedir=\".\">\n  <description>Default Install"
  },
  {
    "path": "KNI.sln",
    "chars": 20598,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.9.3472"
  },
  {
    "path": "Kni.Platform.Android.GL.Xamarin.sln",
    "chars": 7334,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.9.34723."
  },
  {
    "path": "Kni.Platform.Android.GL.sln",
    "chars": 7318,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.9.34723."
  },
  {
    "path": "Kni.Platform.Blazor.GL.sln",
    "chars": 7444,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.9.3472"
  },
  {
    "path": "Kni.Platform.Cardboard.GL.sln",
    "chars": 7927,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.9.34723."
  },
  {
    "path": "Kni.Platform.Oculus.GL.sln",
    "chars": 7316,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.9.34723."
  },
  {
    "path": "Kni.Platform.Ref.sln",
    "chars": 7432,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.9.3472"
  },
  {
    "path": "Kni.Platform.SDL2.GL.sln",
    "chars": 12119,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.9.34723."
  },
  {
    "path": "Kni.Platform.UAP.DX11.sln",
    "chars": 7314,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.9.34723."
  },
  {
    "path": "Kni.Platform.WinForms.DX11.sln",
    "chars": 14646,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.9.34723."
  },
  {
    "path": "Kni.Platform.iOS.GL.sln",
    "chars": 7310,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.9.34723."
  },
  {
    "path": "LICENSE.txt",
    "chars": 4031,
    "preview": "Microsoft Public License (Ms-PL)\nKni - Copyright © 2014-2025 Nick Kastellanos\n\n----------------------------------------"
  },
  {
    "path": "MonoGame.Tools.Linux.sln",
    "chars": 21216,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.9.3472"
  },
  {
    "path": "NuGetPackages/Content.Pipeline.Builder.Windows.nuspec",
    "chars": 1923,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2011/10/nuspec.xsd\">\n  <m"
  },
  {
    "path": "NuGetPackages/Content.Pipeline.Builder.nuspec",
    "chars": 1642,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2011/10/nuspec.xsd\">\n  <m"
  },
  {
    "path": "NuGetPackages/MonoGame.Framework.WindowsUniversal.nuspec",
    "chars": 3385,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd\">\n    "
  },
  {
    "path": "NuGetPackages/MonoGame.Templates.nuspec1",
    "chars": 945,
    "preview": "<?xml version=\"1.0\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd\">\n    <metadata>\n       "
  },
  {
    "path": "NuGetPackages/RegisterLocalNuget.bat",
    "chars": 8043,
    "preview": "set username=username\n\n\"C:\\Program Files (x86)\\nuget\\nuget.exe\" delete nkast.Xna.Framework                           4.2"
  },
  {
    "path": "NuGetPackages/build/Builder/nkast.Xna.Framework.Content.Pipeline.Builder.targets",
    "chars": 8652,
    "preview": "<Project>\n\n  <!-- Add KniContentReference to item type selection in Visual Studio -->\n  <ItemGroup>\n    <AvailableItemNa"
  },
  {
    "path": "Platforms/AssemblyInfo.cs",
    "chars": 128,
    "preview": "using System;\nusing System.Runtime.CompilerServices;\n\n[assembly:CLSCompliant(true)]\n[assembly:InternalsVisibleTo(\"Kni.Te"
  },
  {
    "path": "Platforms/Audio/Android/ConcreteAudioFactory.cs",
    "chars": 804,
    "preview": "// Copyright (C)2022-2025 Nick Kastellanos\n\nnamespace Microsoft.Xna.Platform.Audio\n{\n    public sealed class ConcreteAu"
  },
  {
    "path": "Platforms/Audio/Android/ConcreteAudioServiceDroid.cs",
    "chars": 3278,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Audio/Android/ConcreteMicrophoneDroid.cs",
    "chars": 4333,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'L"
  },
  {
    "path": "Platforms/Audio/Blazor/AudioLoader.cs",
    "chars": 18082,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Audio/Blazor/ConcreteAudioFactory.cs",
    "chars": 571,
    "preview": "// Copyright (C)2022 Nick Kastellanos\n\nnamespace Microsoft.Xna.Platform.Audio\n{\n    public sealed class ConcreteAudioFa"
  },
  {
    "path": "Platforms/Audio/Blazor/ConcreteAudioService.cs",
    "chars": 2152,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Audio/Blazor/ConcreteDynamicSoundEffectInstance.cs",
    "chars": 5873,
    "preview": "// Copyright (C)2025 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing System.Threading.Tasks;\nus"
  },
  {
    "path": "Platforms/Audio/Blazor/ConcreteMicrophone.cs",
    "chars": 6011,
    "preview": "// Copyright (C)2025 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing System.Threading;\nusing Sy"
  },
  {
    "path": "Platforms/Audio/Blazor/ConcreteSoundEffect.cs",
    "chars": 9827,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Audio/Blazor/ConcreteSoundEffectInstance.cs",
    "chars": 6598,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'L"
  },
  {
    "path": "Platforms/Audio/OpenAL/AudioLoader.cs",
    "chars": 18082,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Audio/OpenAL/ConcreteAudioFactory.cs",
    "chars": 571,
    "preview": "// Copyright (C)2022 Nick Kastellanos\n\nnamespace Microsoft.Xna.Platform.Audio\n{\n    public sealed class ConcreteAudioFa"
  },
  {
    "path": "Platforms/Audio/OpenAL/ConcreteAudioService.cs",
    "chars": 17831,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Audio/OpenAL/ConcreteDynamicSoundEffectInstance.cs",
    "chars": 9631,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'L"
  },
  {
    "path": "Platforms/Audio/OpenAL/ConcreteMicrophone.cs",
    "chars": 3887,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'L"
  },
  {
    "path": "Platforms/Audio/OpenAL/ConcreteSoundEffect.cs",
    "chars": 12560,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Audio/OpenAL/ConcreteSoundEffectInstance.cs",
    "chars": 15042,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Audio/OpenAL/OpenAL.cs",
    "chars": 39345,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'L"
  },
  {
    "path": "Platforms/Audio/Ref/ConcreteAudioFactory.cs",
    "chars": 571,
    "preview": "// Copyright (C)2022 Nick Kastellanos\n\nnamespace Microsoft.Xna.Platform.Audio\n{\n    public sealed class ConcreteAudioFa"
  },
  {
    "path": "Platforms/Audio/Ref/ConcreteAudioService.cs",
    "chars": 1540,
    "preview": "// Copyright (C)2022 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework.Aud"
  },
  {
    "path": "Platforms/Audio/Ref/ConcreteDynamicSoundEffectInstance.cs",
    "chars": 2405,
    "preview": "// Copyright (C)2022 Nick Kastellanos\n\nusing System;\nusing Microsoft.Xna.Framework.Audio;\n\nnamespace Microsoft.Xna.Plat"
  },
  {
    "path": "Platforms/Audio/Ref/ConcreteMicrophone.cs",
    "chars": 1574,
    "preview": "// Copyright (C)2022 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework.Au"
  },
  {
    "path": "Platforms/Audio/Ref/ConcreteSoundEffect.cs",
    "chars": 1355,
    "preview": "// Copyright (C)2022 Nick Kastellanos\n\nusing System;\nusing System.IO;\nusing Microsoft.Xna.Framework.Audio;\n\nnamespace Mi"
  },
  {
    "path": "Platforms/Audio/Ref/ConcreteSoundEffectInstance.cs",
    "chars": 3362,
    "preview": "// Copyright (C)2022 Nick Kastellanos\n\nusing System;\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Audio"
  },
  {
    "path": "Platforms/Audio/XAudio/ConcreteAudioFactory.cs",
    "chars": 571,
    "preview": "// Copyright (C)2022 Nick Kastellanos\n\nnamespace Microsoft.Xna.Platform.Audio\n{\n    public sealed class ConcreteAudioFa"
  },
  {
    "path": "Platforms/Audio/XAudio/ConcreteAudioService.cs",
    "chars": 8099,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Audio/XAudio/ConcreteDynamicSoundEffectInstance.cs",
    "chars": 8284,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'L"
  },
  {
    "path": "Platforms/Audio/XAudio/ConcreteMicrophone.cs",
    "chars": 1626,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'L"
  },
  {
    "path": "Platforms/Audio/XAudio/ConcreteSoundEffect.cs",
    "chars": 7584,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Audio/XAudio/ConcreteSoundEffectInstance.cs",
    "chars": 17105,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'L"
  },
  {
    "path": "Platforms/Content/.Android/ConcreteTitleContainer.cs",
    "chars": 1073,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Content/.Android/ConcreteTitleContainerFactory.cs",
    "chars": 346,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\n\nnamespace Microsoft.Xna.Platform\n{\n    public se"
  },
  {
    "path": "Platforms/Content/.Blazor/ConcreteTitleContainer.cs",
    "chars": 2350,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.IO;\nusing Microsoft.Xna.Framework;\nusing nkast.Wasm.XH"
  },
  {
    "path": "Platforms/Content/.Blazor/ConcreteTitleContainerFactory.cs",
    "chars": 346,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\n\nnamespace Microsoft.Xna.Platform\n{\n    public se"
  },
  {
    "path": "Platforms/Content/.Ref/ConcreteTitleContainer.cs",
    "chars": 693,
    "preview": "// Copyright (C)2022-2024 Nick Kastellanos\n\nusing System;\nusing System.IO;\nusing Microsoft.Xna.Framework;\n\nnamespace Mic"
  },
  {
    "path": "Platforms/Content/.Ref/ConcreteTitleContainerFactory.cs",
    "chars": 346,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\n\nnamespace Microsoft.Xna.Platform\n{\n    public se"
  },
  {
    "path": "Platforms/Content/.SDL2/ConcreteTitleContainer.cs",
    "chars": 1350,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Content/.SDL2/ConcreteTitleContainerFactory.cs",
    "chars": 346,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\n\nnamespace Microsoft.Xna.Platform\n{\n    public se"
  },
  {
    "path": "Platforms/Content/.UAP/ConcreteTitleContainer.cs",
    "chars": 1587,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Content/.UAP/ConcreteTitleContainerFactory.cs",
    "chars": 346,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\n\nnamespace Microsoft.Xna.Platform\n{\n    public se"
  },
  {
    "path": "Platforms/Content/.WindowsDX11/ConcreteTitleContainer.cs",
    "chars": 997,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Content/.WindowsDX11/ConcreteTitleContainerFactory.cs",
    "chars": 346,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\n\nnamespace Microsoft.Xna.Platform\n{\n    public se"
  },
  {
    "path": "Platforms/Content/.iOS/ConcreteTitleContainer.cs",
    "chars": 1987,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Content/.iOS/ConcreteTitleContainerFactory.cs",
    "chars": 346,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\n\nnamespace Microsoft.Xna.Platform\n{\n    public se"
  },
  {
    "path": "Platforms/Content/.macOS/ConcreteTitleContainer.cs",
    "chars": 990,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Content/.macOS/ConcreteTitleContainerFactory.cs",
    "chars": 346,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\n\nnamespace Microsoft.Xna.Platform\n{\n    public se"
  },
  {
    "path": "Platforms/Devices/.Android/ConcreteDevicesFactory.cs",
    "chars": 830,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Devices;\nusing Micr"
  },
  {
    "path": "Platforms/Devices/.Android/ConcreteHaptics.cs",
    "chars": 970,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Device"
  },
  {
    "path": "Platforms/Devices/.Android/Sensors/ConcreteAccelerometer.cs",
    "chars": 7212,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'L"
  },
  {
    "path": "Platforms/Devices/.Android/Sensors/ConcreteCompass.cs",
    "chars": 8404,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'L"
  },
  {
    "path": "Platforms/Devices/.Android/Sensors/ConcreteSensorService.cs",
    "chars": 1304,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Devices/.Android/Sensors/SensorListener.cs",
    "chars": 1158,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing Android.Hardware;\n\nnamespace Microsoft.Xna.Platform.Devices.S"
  },
  {
    "path": "Platforms/Devices/.Blazor/ConcreteDevicesFactory.cs",
    "chars": 830,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Devices;\nusing Micr"
  },
  {
    "path": "Platforms/Devices/.Blazor/ConcreteHaptics.cs",
    "chars": 448,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Device"
  },
  {
    "path": "Platforms/Devices/.Blazor/Sensors/ConcreteAccelerometer.cs",
    "chars": 1342,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework;\nu"
  },
  {
    "path": "Platforms/Devices/.Blazor/Sensors/ConcreteCompass.cs",
    "chars": 1318,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework;\nu"
  },
  {
    "path": "Platforms/Devices/.Blazor/Sensors/ConcreteSensorService.cs",
    "chars": 803,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework.Dev"
  },
  {
    "path": "Platforms/Devices/.Ref/ConcreteDevicesFactory.cs",
    "chars": 830,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Devices;\nusing Micr"
  },
  {
    "path": "Platforms/Devices/.Ref/ConcreteHaptics.cs",
    "chars": 480,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Device"
  },
  {
    "path": "Platforms/Devices/.Ref/Sensors/ConcreteAccelerometer.cs",
    "chars": 1455,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework;\nu"
  },
  {
    "path": "Platforms/Devices/.Ref/Sensors/ConcreteCompass.cs",
    "chars": 1431,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework;\nu"
  },
  {
    "path": "Platforms/Devices/.Ref/Sensors/ConcreteSensorService.cs",
    "chars": 1026,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework.Dev"
  },
  {
    "path": "Platforms/Devices/.SDL2/ConcreteDevicesFactory.cs",
    "chars": 830,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Devices;\nusing Micr"
  },
  {
    "path": "Platforms/Devices/.SDL2/ConcreteHaptics.cs",
    "chars": 370,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Device"
  },
  {
    "path": "Platforms/Devices/.SDL2/Sensors/ConcreteAccelerometer.cs",
    "chars": 1342,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework;\nu"
  },
  {
    "path": "Platforms/Devices/.SDL2/Sensors/ConcreteCompass.cs",
    "chars": 1318,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework;\nu"
  },
  {
    "path": "Platforms/Devices/.SDL2/Sensors/ConcreteSensorService.cs",
    "chars": 803,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework.Dev"
  },
  {
    "path": "Platforms/Devices/.UAP/ConcreteDevicesFactory.cs",
    "chars": 830,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Devices;\nusing Micr"
  },
  {
    "path": "Platforms/Devices/.UAP/ConcreteHaptics.cs",
    "chars": 370,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Device"
  },
  {
    "path": "Platforms/Devices/.UAP/Sensors/ConcreteAccelerometer.cs",
    "chars": 3907,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework;\nu"
  },
  {
    "path": "Platforms/Devices/.UAP/Sensors/ConcreteCompass.cs",
    "chars": 1318,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework;\nu"
  },
  {
    "path": "Platforms/Devices/.UAP/Sensors/ConcreteSensorService.cs",
    "chars": 1066,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework.Dev"
  },
  {
    "path": "Platforms/Devices/.WindowsDX/ConcreteDevicesFactory.cs",
    "chars": 830,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Devices;\nusing Micr"
  },
  {
    "path": "Platforms/Devices/.WindowsDX/ConcreteHaptics.cs",
    "chars": 370,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Device"
  },
  {
    "path": "Platforms/Devices/.WindowsDX/Sensors/ConcreteAccelerometer.cs",
    "chars": 1342,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework;\nu"
  },
  {
    "path": "Platforms/Devices/.WindowsDX/Sensors/ConcreteCompass.cs",
    "chars": 1318,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework;\nu"
  },
  {
    "path": "Platforms/Devices/.WindowsDX/Sensors/ConcreteSensorService.cs",
    "chars": 803,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework.Dev"
  },
  {
    "path": "Platforms/Devices/.iOS/ConcreteDevicesFactory.cs",
    "chars": 830,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Devices;\nusing Micr"
  },
  {
    "path": "Platforms/Devices/.iOS/ConcreteHaptics.cs",
    "chars": 370,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Device"
  },
  {
    "path": "Platforms/Devices/.iOS/Sensors/ConcreteAccelerometer.cs",
    "chars": 4261,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'L"
  },
  {
    "path": "Platforms/Devices/.iOS/Sensors/ConcreteCompass.cs",
    "chars": 5729,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'L"
  },
  {
    "path": "Platforms/Devices/.iOS/Sensors/ConcreteSensorService.cs",
    "chars": 1087,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Directory.Build.props",
    "chars": 156,
    "preview": "<Project>\n\n    <PropertyGroup>\n        <BaseIntermediateOutputPath>obj\\$(MSBuildProjectName)\\</BaseIntermediateOutputPat"
  },
  {
    "path": "Platforms/Game/.Android/AndroidCompatibility.cs",
    "chars": 9774,
    "preview": "using System;\nusing System.Linq;\nusing Android.App;\nusing Android.Content.Res;\nusing Android.OS;\nusing Android.Views;\n\nn"
  },
  {
    "path": "Platforms/Game/.Android/AndroidGameActivity.cs",
    "chars": 3157,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Game/.Android/AndroidGameWindow.cs",
    "chars": 16542,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Game/.Android/AndroidSurfaceView.cs",
    "chars": 5732,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Game/.Android/ConcreteGame.cs",
    "chars": 2996,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Game/.Android/ConcreteGameFactory.cs",
    "chars": 528,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Platform.Input;\n\nnamespace Mi"
  },
  {
    "path": "Platforms/Game/.Android/ConcreteGraphicsDeviceManager.cs",
    "chars": 9149,
    "preview": "using System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Graphics;\n"
  },
  {
    "path": "Platforms/Game/.Android/ISurfaceView.cs",
    "chars": 436,
    "preview": "// Copyright (C)2023 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Platform.Gra"
  },
  {
    "path": "Platforms/Game/.Android/OrientationListener.cs",
    "chars": 5815,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Game/.Android/RunnableObject.cs",
    "chars": 1009,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\n\nnamespace Microsoft.Xna.Platfor"
  },
  {
    "path": "Platforms/Game/.Android/ScreenReceiver.cs",
    "chars": 3069,
    "preview": "using System;\nusing Microsoft.Xna.Framework.Media;\nusing Microsoft.Xna.Platform;\nusing Android.App;\nusing Android.Conten"
  },
  {
    "path": "Platforms/Game/.Android/TouchEventListener.cs",
    "chars": 3123,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Game/.Blazor/BlazorGameWindow.cs",
    "chars": 12800,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'L"
  },
  {
    "path": "Platforms/Game/.Blazor/ConcreteGame.cs",
    "chars": 2537,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Game/.Blazor/ConcreteGameFactory.cs",
    "chars": 528,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Platform.Input;\n\nnamespace Mi"
  },
  {
    "path": "Platforms/Game/.Blazor/ConcreteGraphicsDeviceManager.cs",
    "chars": 8446,
    "preview": "using System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Graphics;\n"
  },
  {
    "path": "Platforms/Game/.CardboardLegacy/AndroidCompatibility.cs",
    "chars": 9772,
    "preview": "using System;\nusing System.Linq;\nusing Android.App;\nusing Android.Content.Res;\nusing Android.OS;\nusing Android.Views;\n\nn"
  },
  {
    "path": "Platforms/Game/.CardboardLegacy/AndroidGameActivity.cs",
    "chars": 3713,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Game/.CardboardLegacy/AndroidGameWindow.cs",
    "chars": 25000,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Game/.CardboardLegacy/AndroidSurfaceView.cs",
    "chars": 7112,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Game/.CardboardLegacy/ConcreteGame.cs",
    "chars": 2996,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Game/.CardboardLegacy/ConcreteGameFactory.cs",
    "chars": 528,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Platform.Input;\n\nnamespace Mi"
  },
  {
    "path": "Platforms/Game/.CardboardLegacy/ConcreteGraphicsDeviceManager.cs",
    "chars": 9176,
    "preview": "using System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Graphics;\n"
  },
  {
    "path": "Platforms/Game/.Oculus/AndroidCompatibility.cs",
    "chars": 9756,
    "preview": "using System;\nusing System.Linq;\nusing Android.App;\nusing Android.Content.Res;\nusing Android.OS;\nusing Android.Views;\n\nn"
  },
  {
    "path": "Platforms/Game/.Ref/ConcreteGame.cs",
    "chars": 493,
    "preview": "// Copyright (C)2023 Nick Kastellanos\n\nusing System;\nusing Microsoft.Xna.Framework;\n\nnamespace Microsoft.Xna.Platform\n{\n"
  },
  {
    "path": "Platforms/Game/.Ref/ConcreteGameFactory.cs",
    "chars": 528,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Platform.Input;\n\nnamespace Mi"
  },
  {
    "path": "Platforms/Game/.Ref/ConcreteGraphicsDeviceManager.cs",
    "chars": 1602,
    "preview": "// Copyright (C)2022 Nick Kastellanos\n\nusing System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework;\n\n"
  },
  {
    "path": "Platforms/Game/.SDL2/ConcreteGame.cs",
    "chars": 2389,
    "preview": "// MonoGame - Copyright (C) The MonoGame Team\n// This file is subject to the terms and conditions defined in\n// file 'LI"
  },
  {
    "path": "Platforms/Game/.SDL2/ConcreteGameFactory.cs",
    "chars": 528,
    "preview": "// Copyright (C)2024 Nick Kastellanos\n\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Platform.Input;\n\nnamespace Mi"
  },
  {
    "path": "Platforms/Game/.SDL2/ConcreteGraphicsDeviceManager.cs",
    "chars": 11726,
    "preview": "using System;\nusing System.Collections.Generic;\nusing Microsoft.Xna.Framework;\nusing Microsoft.Xna.Framework.Graphics;\n"
  }
]

// ... and 2380 more files (download for full content)

About this extraction

This page contains the full source code of the kniEngine/kni GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2580 files (28.5 MB), approximately 7.6M tokens, and a symbol index with 13413 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!