├── .gitattributes
├── .gitignore
├── Ab4d.SharpEngine.Samples.Android.Application.sln
├── Ab4d.SharpEngine.Samples.Android.Application
├── Ab4d.SharpEngine.Samples.Android.Application.csproj
├── AndroidCameraController.cs
├── AndroidManifest.xml
├── CustomScaleListener.cs
├── MainActivity.cs
├── Resources
│ ├── AboutResources.txt
│ ├── layout
│ │ └── activity_main.xml
│ ├── lib
│ │ └── Vulkan-validation-layers.txt
│ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_foreground.png
│ │ └── ic_launcher_round.png
│ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_foreground.png
│ │ └── ic_launcher_round.png
│ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_foreground.png
│ │ └── ic_launcher_round.png
│ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_foreground.png
│ │ └── ic_launcher_round.png
│ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ ├── ic_launcher_foreground.png
│ │ └── ic_launcher_round.png
│ └── values
│ │ ├── ic_launcher_background.xml
│ │ └── strings.xml
├── SharpEngineSceneView.cs
├── TestScenes
│ └── AllObjectsTestScene.cs
└── Utilities
│ ├── AndroidBitmapIO.cs
│ ├── AndroidTextureLoader.cs
│ └── SkiaSharpBitmapIO.cs
├── Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.sln
├── Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform
├── .gitignore
├── Android
│ ├── AvaloniaUI.CrossPlatform.Android.csproj
│ ├── Icon.png
│ ├── MainActivity.cs
│ ├── Properties
│ │ └── AndroidManifest.xml
│ └── Resources
│ │ ├── AboutResources.txt
│ │ ├── drawable-night-v31
│ │ └── avalonia_anim.xml
│ │ ├── drawable-v31
│ │ └── avalonia_anim.xml
│ │ ├── drawable
│ │ └── splash_screen.xml
│ │ ├── values-night
│ │ └── colors.xml
│ │ ├── values-v31
│ │ └── styles.xml
│ │ └── values
│ │ ├── colors.xml
│ │ └── styles.xml
├── Desktop
│ ├── AvaloniaUI.CrossPlatform.Desktop.csproj
│ ├── Program.cs
│ └── app.manifest
├── Directory.Build.props
├── Shared
│ ├── App.axaml
│ ├── App.axaml.cs
│ ├── Assets
│ │ └── avalonia-logo.ico
│ ├── AvaloniaUI.CrossPlatform.Shared.csproj
│ ├── GesturesCameraController.cs
│ ├── ViewLocator.cs
│ ├── ViewModels
│ │ ├── MainViewModel.cs
│ │ └── ViewModelBase.cs
│ └── Views
│ │ ├── MainView.axaml
│ │ ├── MainView.axaml.cs
│ │ ├── MainWindow.axaml
│ │ └── MainWindow.axaml.cs
├── iOS
│ ├── AppDelegate.cs
│ ├── AvaloniaUI.CrossPlatform.iOS.csproj
│ ├── Entitlements.plist
│ ├── Info.plist
│ ├── Main.cs
│ ├── PrivacyInfo.xcprivacy
│ └── Resources
│ │ └── LaunchScreen.xib
└── readme.md
├── Ab4d.SharpEngine.Samples.AvaloniaUI.VulkanBackend.sln
├── Ab4d.SharpEngine.Samples.AvaloniaUI.sln
├── Ab4d.SharpEngine.Samples.AvaloniaUI
├── Ab4d.SharpEngine.Samples.AvaloniaUI.VulkanBackend.csproj
├── Ab4d.SharpEngine.Samples.AvaloniaUI.csproj
├── Advanced
│ ├── AvaloniaMultiTouchSample.xaml
│ ├── AvaloniaMultiTouchSample.xaml.cs
│ ├── MultipleSceneViewsSample.xaml
│ └── MultipleSceneViewsSample.xaml.cs
├── AndroidManifest.xml
├── App.axaml
├── App.axaml.cs
├── CameraControllers
│ ├── PointerCameraControllerSample.xaml
│ └── PointerCameraControllerSample.xaml.cs
├── Cameras
│ └── AvaloniaPoint3DTo2DSample.cs
├── Common
│ ├── AvaloniaMarkdownTextCreator.cs
│ ├── AvaloniaSamplesContext.cs
│ ├── CommonTitleUserControl.xaml
│ ├── CommonTitleUserControl.xaml.cs
│ ├── DragAndDropHelper.cs
│ ├── GesturesCameraController.cs
│ ├── MessageBox.xaml
│ └── MessageBox.xaml.cs
├── CommonAvaloniaSampleUserControl.axaml
├── CommonAvaloniaSampleUserControl.axaml.cs
├── Diagnostics
│ ├── DiagnosticsWindow.xaml
│ ├── DiagnosticsWindow.xaml.cs
│ ├── LogMessagesWindow.xaml
│ └── LogMessagesWindow.xaml.cs
├── GlobalSharpEngineSettings.cs
├── HitTesting
│ ├── AvaloniaManualInputEventsSample.cs
│ └── AvaloniaRectangularSelectionSample.cs
├── Program.cs
├── QuickStart
│ ├── AntiAliasingSample.xaml
│ ├── AntiAliasingSample.xaml.cs
│ ├── SharpEngineSceneViewInCode.xaml
│ ├── SharpEngineSceneViewInCode.xaml.cs
│ ├── SharpEngineSceneViewInXaml.xaml
│ └── SharpEngineSceneViewInXaml.xaml.cs
├── Resources
│ ├── sharp-engine-logo.ico
│ └── yellow-light-buld-icon.png
├── SamplesWindow.xaml
├── SamplesWindow.xaml.cs
├── Settings
│ ├── SettingsWindow.xaml
│ └── SettingsWindow.xaml.cs
├── TestVulkanInteropWindow.xaml
├── TestVulkanInteropWindow.xaml.cs
├── Titles
│ ├── IntroductionPage.xaml
│ ├── IntroductionPage.xaml.cs
│ └── QuickStartTitle.md
└── UIProvider
│ ├── AvaloniaUIElement.cs
│ ├── AvaloniaUIPanel.cs
│ ├── AvaloniaUIProvider.cs
│ ├── ButtonUIElement.cs
│ ├── CheckBoxUIElement.cs
│ ├── ComboBoxUIElement.cs
│ ├── KeyValueLabelUIElement.cs
│ ├── LabelUIElement.cs
│ ├── MarkdownUIElement.cs
│ ├── RadioButtonsUIElement.cs
│ ├── SliderUIElement.cs
│ ├── StackPanelUIElement.cs
│ └── TextBoxUIElement.cs
├── Ab4d.SharpEngine.Samples.Common
├── Ab4d.SharpEngine.Samples.Common.csproj
├── Advanced
│ ├── AsyncUploadSample.cs
│ ├── BackgroundAndOverlayRenderingSample.cs
│ ├── ComplexSceneSample.cs
│ ├── CustomFogEffectSample.cs
│ ├── CustomOverlayPanelSample.cs
│ ├── FogEffect.cs
│ ├── FogEffectTechnique.cs
│ ├── FogMaterial.cs
│ ├── MeshOutlineSample.cs
│ ├── RenderingLayerCustomCameraSample.cs
│ └── TrianglesSortingSample.cs
├── AdvancedModels
│ ├── AdvancedBooleanOperationsSample.cs
│ ├── AdvancedHeightMapSample.cs
│ ├── BitmapTextSample.cs
│ ├── BooleanMeshSample.cs
│ ├── BooleanOperationsSample.cs
│ ├── ExtrudeAlongPathSample.cs
│ ├── InstancedArrowsSample.cs
│ ├── InstancedMeshNodeSample.cs
│ ├── LatheSample.cs
│ ├── MultiMaterialModelNodeSample.cs
│ ├── PixelsRenderingSample.cs
│ ├── PlanarShadowsSample.cs
│ ├── SimpleHeightMapSample.cs
│ ├── SkyboxSample.cs
│ ├── SliceModelsSample.cs
│ ├── SpritesSample.cs
│ ├── StreamlinesSample.cs
│ ├── TriangulatedExtrudedShapeSample.cs
│ ├── TubePathsSample.cs
│ ├── TubesSample.cs
│ └── VectorTextSample.cs
├── Animations
│ ├── AnimationEasingSample.cs
│ ├── CameraAnimationSample.cs
│ ├── GlobalAnimationPropertiesSample.cs
│ ├── MaterialAnimationSample.cs
│ ├── SceneNodeAnimationSample.cs
│ ├── SharpEngineLogoAnimation.cs
│ ├── TransformationAnimationSample.cs
│ └── TransformationAnimationSample2.cs
├── CameraControllers
│ ├── RotateAroundCustomPointSample.cs
│ └── ZoomToCustomPointSample.cs
├── Cameras
│ ├── CameraAxisPanelSample.cs
│ ├── CustomCoordinateSystemSample.cs
│ ├── FirstPersonCameraSample.cs
│ ├── FitIntoViewSample.cs
│ ├── FreeCameraSample.cs
│ ├── Point3DTo2DSample.cs
│ └── TargetPositionCameraSample.cs
├── CommonSample.cs
├── Diagnostics
│ └── CommonDiagnostics.cs
├── HitTesting
│ ├── HitTestingSample.cs
│ ├── HitTestingWithIdBitmapSample.cs
│ ├── InputEventsManagerSample.cs
│ ├── InputEventsManagerWithSurfaceSample.cs
│ ├── LineSelectionSample.cs
│ ├── ManualInputEventsSample.cs
│ ├── ModelMoverSample.cs
│ ├── ModelRotatorSample.cs
│ ├── ModelScalarSample.cs
│ ├── RayPlaneHitTestingSample.cs
│ └── RectangularSelectionSample.cs
├── ICommonSampleUIElement.cs
├── ICommonSampleUIPanel.cs
├── ICommonSampleUIProvider.cs
├── ICommonSamplesContext.cs
├── Importers
│ ├── AssimpImporterSample.cs
│ ├── CadImporterInfo.md
│ ├── GltfImporterExporterSample.cs
│ ├── PointCloudImporterSample.cs
│ └── ReaderObjSample.cs
├── Lights
│ └── LightsSample.cs
├── Lines
│ ├── CurveLineSample.cs
│ ├── DepthBiasSample.cs
│ ├── EdgeLinesSample.cs
│ ├── LineCapsSample.cs
│ ├── LinesPerformanceSample.cs
│ ├── LinesSample.cs
│ ├── MiterLimitSample.cs
│ ├── SpecialLineRenderingSample.cs
│ ├── TubeLinesSample.cs
│ ├── WireGridNodeSample.cs
│ └── WireframeRenderingSample.cs
├── Materials
│ ├── HeatmapRenderingSample.cs
│ ├── MaterialsSample.cs
│ └── SpecularMaterialSample.cs
├── Resources
│ ├── BitmapFonts
│ │ ├── arial_128.bmfc
│ │ ├── arial_128.fnt
│ │ ├── arial_128.text.fnt
│ │ ├── arial_128_0.png
│ │ ├── arial_black_128.bmfc
│ │ ├── arial_black_128.fnt
│ │ ├── arial_black_128.text.fnt
│ │ ├── arial_black_128_0.png
│ │ ├── arial_black_with_outline_128.bmfc
│ │ ├── arial_black_with_outline_128.fnt
│ │ ├── arial_black_with_outline_128.text.fnt
│ │ ├── arial_black_with_outline_128_0.png
│ │ ├── readme.txt
│ │ ├── roboto font LICENSE.txt
│ │ ├── roboto_128.bmfc
│ │ ├── roboto_128.fnt
│ │ ├── roboto_128.text.fnt
│ │ ├── roboto_128_0.png
│ │ ├── roboto_64.bmfc
│ │ ├── roboto_64.fnt
│ │ ├── roboto_64_0.png
│ │ ├── roboto_black_128.bmfc
│ │ ├── roboto_black_128.fnt
│ │ ├── roboto_black_128.text.fnt
│ │ ├── roboto_black_128_0.png
│ │ ├── roboto_black_with_outline_128.bmfc
│ │ ├── roboto_black_with_outline_128.fnt
│ │ ├── roboto_black_with_outline_128.text.fnt
│ │ └── roboto_black_with_outline_128_0.png
│ ├── CadImporter-for-SharpEngine-1.png
│ ├── CadImporter-for-SharpEngine-2.png
│ ├── Diagnostics-gray.png
│ ├── Diagnostics.png
│ ├── HeightMaps
│ │ ├── europe.png
│ │ ├── europe_height.png
│ │ ├── readme.txt
│ │ ├── simpleHeightMap.png
│ │ ├── vulkan-heightmap-cropped.png
│ │ └── vulkan-heightmap.png
│ ├── Models
│ │ ├── Teapot.obj
│ │ ├── dragon_vrip_res3.obj
│ │ ├── dragon_vrip_res3.obj.mtl
│ │ ├── dragon_vrip_res3_readme.txt
│ │ ├── duck.dae
│ │ ├── duckCM.png
│ │ ├── house with trees.mtl
│ │ ├── house with trees.obj
│ │ ├── planetary-gear source.txt
│ │ ├── planetary-gear.FBX
│ │ ├── robotarm.mtl
│ │ ├── robotarm.obj
│ │ ├── teapot-hires.obj
│ │ ├── voyager readme.txt
│ │ └── voyager.gltf
│ ├── PointClouds
│ │ ├── 14 Ladybrook Road 10 - cropped.ply
│ │ └── readme.txt
│ ├── Settings.png
│ ├── Shaders
│ │ ├── CompileShaders.bat
│ │ ├── CompileShaders.sh
│ │ ├── FogShader.frag.glsl
│ │ ├── FogShader.vert.glsl
│ │ ├── spv
│ │ │ ├── FogShader.frag.spv
│ │ │ └── FogShader.vert.spv
│ │ └── txt
│ │ │ ├── FogShader.frag.json
│ │ │ ├── FogShader.frag.resources.txt
│ │ │ ├── FogShader.frag.txt
│ │ │ ├── FogShader.vert.json
│ │ │ ├── FogShader.vert.resources.txt
│ │ │ └── FogShader.vert.txt
│ ├── SkyboxTextures
│ │ ├── CloudyLightRaysBack512.png
│ │ ├── CloudyLightRaysDown512.png
│ │ ├── CloudyLightRaysFront512.png
│ │ ├── CloudyLightRaysLeft512.png
│ │ ├── CloudyLightRaysRight512.png
│ │ ├── CloudyLightRaysUp512.png
│ │ └── readme.txt
│ ├── Textures
│ │ ├── 10x10-texture.png
│ │ ├── TreeTexture.png
│ │ ├── sharp-engine-logo.png
│ │ ├── uvchecker.png
│ │ └── uvchecker2.jpg
│ ├── TrueTypeFonts
│ │ ├── LICENSE.txt
│ │ ├── Roboto-Black.ttf
│ │ └── Roboto-Regular.ttf
│ ├── ab4d-logo.png
│ ├── new_icon.png
│ ├── photo_icon.png
│ ├── streamlines.csv
│ ├── updated_icon.png
│ └── warningIcon.png
├── Samples.xml
├── StandardModels
│ ├── ArrowModelNodeSample.cs
│ ├── BoxModelNodeSample.cs
│ ├── CircleModelNodeSample.cs
│ ├── ConeModelNodeSample.cs
│ ├── CylinderModelNodeSample.cs
│ ├── MeshModelNodeSample.cs
│ ├── PlaneModelNodeSample.cs
│ ├── PositionAndScaleSample.cs
│ ├── PyramidModelNodeSample.cs
│ ├── SphereModelNodeSample.cs
│ ├── StandardModelsSampleBase.cs
│ ├── TorusKnotModelNodeSample.cs
│ ├── TransformationsSample.cs
│ └── TrapezoidModelNodeSample.cs
├── TestScenes.cs
├── Titles
│ ├── AdvancedModelsTitle.md
│ ├── AdvancedTitle.md
│ ├── AnimationsTitle.md
│ ├── CamerasTitle.md
│ ├── HitTesting.md
│ ├── ImportersTitle.md
│ ├── LightsTitle.md
│ ├── LinesTitle.md
│ ├── MaterialsTitle.md
│ ├── PointerCameraControllerTitle.md
│ └── StandardModelsTitle.md
└── Utils
│ ├── CsvDataReader.cs
│ ├── MarkdownTextCreator.cs
│ ├── PlyPointCloudReader.cs
│ └── PlyPointCloudWriter.cs
├── Ab4d.SharpEngine.Samples.ImGui.sln
├── Ab4d.SharpEngine.Samples.ImGui
├── Ab4d.SharpEngine.Samples.ImGui.csproj
├── ImGuiRenderingStep.cs
└── Program.cs
├── Ab4d.SharpEngine.Samples.LinuxFramebuffer.sln
├── Ab4d.SharpEngine.Samples.LinuxFramebuffer
├── Ab4d.SharpEngine.Samples.LinuxFramebuffer.csproj
├── DrmFramebufferOutput.cs
├── FbDevOutput.cs
├── InputDevice.cs
├── NativeDrm.cs
├── NativeFbDev.cs
├── NativeLibInput.cs
├── NativeLibc.cs
├── OutputDevice.cs
├── Program.cs
└── README.md
├── Ab4d.SharpEngine.Samples.Maui.sln
├── Ab4d.SharpEngine.Samples.Maui
├── Ab4d.SharpEngine.Samples.Maui.csproj
├── AndroidManifest.xml
├── App.xaml
├── App.xaml.cs
├── AppShell.xaml
├── AppShell.xaml.cs
├── IPlatformInputHelper.cs
├── MainPage.xaml
├── MainPage.xaml.cs
├── MauiCameraController.cs
├── MauiProgram.cs
├── Platforms
│ ├── Android
│ │ ├── AndroidManifest.xml
│ │ ├── MainActivity.cs
│ │ ├── MainApplication.cs
│ │ ├── PlatformInputHelper.cs
│ │ └── Resources
│ │ │ └── values
│ │ │ └── colors.xml
│ ├── MacCatalyst
│ │ ├── AppDelegate.cs
│ │ ├── Entitlements.Debug.plist
│ │ ├── Entitlements.Release.plist
│ │ ├── Info.plist
│ │ ├── PlatformInputHelper.cs
│ │ └── Program.cs
│ ├── Windows
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── Package.appxmanifest
│ │ ├── PlatformInputHelper.cs
│ │ └── app.manifest
│ └── iOS
│ │ ├── AppDelegate.cs
│ │ ├── Info.plist
│ │ ├── PlatformInputHelper.cs
│ │ ├── PrivacyInfo.xcprivacy
│ │ └── Program.cs
├── Properties
│ └── launchSettings.json
├── Resources
│ ├── AppIcon
│ │ ├── appicon.svg
│ │ └── appiconfg.svg
│ ├── Fonts
│ │ ├── FluentUI.cs
│ │ ├── OpenSans-Regular.ttf
│ │ └── OpenSans-Semibold.ttf
│ ├── Images
│ │ └── dotnet_bot.png
│ ├── Raw
│ │ └── AboutAssets.txt
│ ├── Splash
│ │ └── splash.svg
│ └── Styles
│ │ ├── Colors.xaml
│ │ └── Styles.xaml
├── SharpEngineSceneView.cs
└── readme.md
├── Ab4d.SharpEngine.Samples.SilkNet.Glfw.sln
├── Ab4d.SharpEngine.Samples.SilkNet.Sdl.sln
├── Ab4d.SharpEngine.Samples.SilkNet
├── Ab4d.SharpEngine.Samples.SilkNet.Glfw.csproj
├── Ab4d.SharpEngine.Samples.SilkNet.Sdl.csproj
├── Program.cs
├── SharpEngineSamplesRunner.cs
├── SilkWindowingUI
│ ├── SilkView.cs
│ └── SilkWindow.cs
├── StandardPresentation
│ ├── IPresentationControl.cs
│ ├── MouseButtonEventArgs.cs
│ ├── MouseEventArgs.cs
│ ├── MouseMoveEventArgs.cs
│ ├── MouseWheelEventArgs.cs
│ └── SizeChangeEventArgs.cs
├── TestScenes
│ └── AllObjectsTestScene.cs
└── Utilities
│ ├── ImageMagickBitmapIO.cs
│ ├── SkiaSharpBitmapIO.cs
│ ├── SystemDrawingBitmapIO.cs
│ └── UnsupportedBitmapIo.cs
├── Ab4d.SharpEngine.Samples.UnoPlatform.txt
├── Ab4d.SharpEngine.Samples.UnoPlatform
├── Ab4d.SharpEngine.Samples.UnoPlatform.sln
├── Ab4d.SharpEngine.Samples.UnoPlatform
│ ├── Ab4d.SharpEngine.Samples.UnoPlatform.csproj
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Assets
│ │ ├── Icons
│ │ │ ├── icon.svg
│ │ │ └── icon_foreground.svg
│ │ ├── SharedAssets.md
│ │ └── Splash
│ │ │ └── splash_screen.svg
│ ├── ColorExtensions.cs
│ ├── GlobalUsings.cs
│ ├── MainPage.xaml
│ ├── MainPage.xaml.cs
│ ├── Package.appxmanifest
│ ├── Platforms
│ │ └── Desktop
│ │ │ └── Program.cs
│ ├── PointerCameraController.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── SharpEngineSceneView.skia.cs
│ ├── Strings
│ │ └── en
│ │ │ └── Resources.resw
│ └── app.manifest
├── Directory.Build.props
├── Directory.Build.targets
├── Directory.Packages.props
└── global.json
├── Ab4d.SharpEngine.Samples.WinForms.sln
├── Ab4d.SharpEngine.Samples.WinForms
├── Ab4d.SharpEngine.Samples.WinForms.csproj
├── CameraControllers
│ ├── PointerCameraControllerSample.Designer.cs
│ ├── PointerCameraControllerSample.cs
│ └── PointerCameraControllerSample.resx
├── Cameras
│ └── WinFormsPoint3DTo2DSample.cs
├── Common
│ ├── DragAndDropHelper.cs
│ └── WinFormsSamplesContext.cs
├── CommonWinFormsSampleUserControl.cs
├── HitTesting
│ └── WinFormsManualInputEventsSample.cs
├── Program.cs
├── Properties
│ ├── Resources.Designer.cs
│ └── Resources.resx
├── QuickStart
│ ├── SharpEngineSceneViewInCode.Designer.cs
│ ├── SharpEngineSceneViewInCode.cs
│ └── SharpEngineSceneViewInCode.resx
├── RenderFormSample.cs
├── Resources
│ ├── ab4d-logo.png
│ ├── new_icon.png
│ ├── sharp-engine-logo.ico
│ ├── updated_icon.png
│ └── warningIcon.png
├── SamplesForm.Designer.cs
├── SamplesForm.cs
├── SamplesForm.resx
├── Titles
│ ├── IntroductionPage.cs
│ ├── QuickStartTitle.md
│ └── RenderFormSample.md
└── UIProvider
│ ├── ButtonUIElement.cs
│ ├── CheckBoxUIElement.cs
│ ├── ComboBoxUIElement.cs
│ ├── KeyValueLabelUIElement.cs
│ ├── LabelUIElement.cs
│ ├── RadioButtonsUIElement.cs
│ ├── SliderUIElement.cs
│ ├── StackPanelUIElement.cs
│ ├── TextBoxUIElement.cs
│ ├── WinFormsUIElement.cs
│ ├── WinFormsUIPanel.cs
│ └── WinFormsUIProvider.cs
├── Ab4d.SharpEngine.Samples.WinUI.sln
├── Ab4d.SharpEngine.Samples.WinUI
├── Ab4d.SharpEngine.Samples.WinUI.csproj
├── App.xaml
├── App.xaml.cs
├── Assets
│ ├── Diagnostics-gray.png
│ ├── Diagnostics.png
│ ├── LockScreenLogo.scale-200.png
│ ├── Settings.png
│ ├── SplashScreen.scale-200.png
│ ├── Square150x150Logo.scale-200.png
│ ├── Square44x44Logo.scale-200.png
│ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ ├── StoreLogo.png
│ ├── Wide310x150Logo.scale-200.png
│ ├── ab4d-logo.png
│ ├── new_icon.png
│ ├── photo_icon.png
│ ├── sharp-engine-logo.ico
│ ├── updated_icon.png
│ └── warningIcon.png
├── CameraControllers
│ ├── PointerCameraControllerSample.xaml
│ └── PointerCameraControllerSample.xaml.cs
├── Cameras
│ └── WinUIPoint3DTo2DSample.cs
├── Common
│ ├── CommonTitleUserControl.xaml
│ ├── CommonTitleUserControl.xaml.cs
│ ├── DragAndDropHelper.cs
│ ├── WinUIMarkdownTextCreator.cs
│ ├── WinUISamplesContext.cs
│ └── WinUiUtils.cs
├── CommonWinUISampleUserControl.xaml
├── CommonWinUISampleUserControl.xaml.cs
├── Diagnostics
│ ├── DiagnosticsWindow.xaml
│ ├── DiagnosticsWindow.xaml.cs
│ ├── LogMessagesWindow.xaml
│ └── LogMessagesWindow.xaml.cs
├── GlobalSharpEngineSettings.cs
├── HitTesting
│ ├── WinUIManualInputEventsSample.cs
│ └── WinUIRectangularSelectionSample.cs
├── Package.appxmanifest
├── Properties
│ └── launchSettings.json
├── QuickStart
│ ├── SharpEngineSceneViewInCode.xaml
│ ├── SharpEngineSceneViewInCode.xaml.cs
│ ├── SharpEngineSceneViewInXaml.xaml
│ └── SharpEngineSceneViewInXaml.xaml.cs
├── SamplesWindow.xaml
├── SamplesWindow.xaml.cs
├── Settings
│ ├── SettingsWindow.xaml
│ └── SettingsWindow.xaml.cs
├── Titles
│ ├── IntroductionPage.xaml
│ ├── IntroductionPage.xaml.cs
│ └── QuickStartTitle.md
├── UIProvider
│ ├── ButtonUIElement.cs
│ ├── CheckBoxUIElement.cs
│ ├── ComboBoxUIElement.cs
│ ├── KeyValueLabelUIElement.cs
│ ├── LabelUIElement.cs
│ ├── MarkdownUIElement.cs
│ ├── RadioButtonsUIElement.cs
│ ├── SliderUIElement.cs
│ ├── StackPanelUIElement.cs
│ ├── TextBoxUIElement.cs
│ ├── WinUIElement.cs
│ ├── WinUIPanel.cs
│ └── WinUIProvider.cs
└── app.manifest
├── Ab4d.SharpEngine.Samples.Wpf.sln
├── Ab4d.SharpEngine.Samples.Wpf
├── Ab4d.SharpEngine.Samples.Wpf.csproj
├── Advanced
│ ├── MultipleSceneViewsSample.xaml
│ └── MultipleSceneViewsSample.xaml.cs
├── App.xaml
├── App.xaml.cs
├── AssemblyInfo.cs
├── CameraControllers
│ ├── PointerCameraControllerSample.xaml
│ └── PointerCameraControllerSample.xaml.cs
├── Cameras
│ └── WpfPoint3DTo2DSample.cs
├── Common
│ ├── CommonSamplesWpfRunner.cs
│ ├── CommonTitlePage.xaml
│ ├── CommonTitlePage.xaml.cs
│ ├── DragAndDropHelper.cs
│ ├── InfoControl.cs
│ ├── MarkdownTestPage.xaml
│ ├── MarkdownTestPage.xaml.cs
│ ├── SimpleGrid.cs
│ ├── SingleSceneViewSample.cs
│ ├── TextBlockEx.cs
│ ├── WpfMarkdownTextCreator.cs
│ └── WpfSamplesContext.cs
├── CommonWpfSamplePage.xaml
├── CommonWpfSamplePage.xaml.cs
├── Diagnostics
│ ├── DiagnosticsWindow.xaml
│ ├── DiagnosticsWindow.xaml.cs
│ ├── LogMessagesWindow.xaml
│ └── LogMessagesWindow.xaml.cs
├── GlobalSharpEngineSettings.cs
├── HitTesting
│ ├── WpfManualInputEventsSample.cs
│ └── WpfRectangularSelectionSample.cs
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── QuickStart
│ ├── AntiAliasingSample.xaml
│ ├── AntiAliasingSample.xaml.cs
│ ├── SharpEngineSceneViewInCode.xaml
│ ├── SharpEngineSceneViewInCode.xaml.cs
│ ├── SharpEngineSceneViewInXaml.xaml
│ └── SharpEngineSceneViewInXaml.xaml.cs
├── Resources
│ └── sharp-engine-logo.ico
├── Settings
│ ├── SettingsWindow.xaml
│ └── SettingsWindow.xaml.cs
├── Titles
│ ├── IntroductionPage.xaml
│ ├── IntroductionPage.xaml.cs
│ └── QuickStartTitle.md
└── UIProvider
│ ├── ButtonUIElement.cs
│ ├── CheckBoxUIElement.cs
│ ├── ComboBoxUIElement.cs
│ ├── KeyValueLabelUIElement.cs
│ ├── LabelUIElement.cs
│ ├── MarkdownUIElement.cs
│ ├── RadioButtonsUIElement.cs
│ ├── SliderUIElement.cs
│ ├── StackPanelUIElement.cs
│ ├── TextBoxUIElement.cs
│ ├── WpfUIElement.cs
│ ├── WpfUIPanel.cs
│ └── WpfUIProvider.cs
├── README.md
├── doc
├── animated-samples2.png
├── xcode-devices.png
├── xcode-provisioning1.png
└── xcode-provisioning2.png
└── lib
├── MoltenVK
├── ios-arm64
│ └── libMoltenVK.dylib
├── ios-arm64_x86_64-simulator
│ └── libMoltenVK.dylib
├── macos-arm64_x86_64
│ └── libMoltenVK.dylib
├── readme.txt
├── tvos-arm64_arm64e
│ └── libMoltenVK.dylib
└── tvos-arm64_x86_64-simulator
│ └── libMoltenVK.dylib
└── assimp-lib
├── AssimpLicense.txt
├── linux-x64
└── libassimp.so.5.4.2
├── version readme.txt
├── win-x64
└── Assimp64.dll
└── win-x86
└── Assimp32.dll
/Ab4d.SharpEngine.Samples.Android.Application.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.3.32611.2
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ab4d.SharpEngine.Samples.Android.Application", "Ab4d.SharpEngine.Samples.Android.Application\Ab4d.SharpEngine.Samples.Android.Application.csproj", "{EF79004F-7504-4FCE-B228-3E4FB3B94760}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {EF79004F-7504-4FCE-B228-3E4FB3B94760}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {EF79004F-7504-4FCE-B228-3E4FB3B94760}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {EF79004F-7504-4FCE-B228-3E4FB3B94760}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
17 | {EF79004F-7504-4FCE-B228-3E4FB3B94760}.Release|Any CPU.ActiveCfg = Release|Any CPU
18 | {EF79004F-7504-4FCE-B228-3E4FB3B94760}.Release|Any CPU.Build.0 = Release|Any CPU
19 | {EF79004F-7504-4FCE-B228-3E4FB3B94760}.Release|Any CPU.Deploy.0 = Release|Any CPU
20 | EndGlobalSection
21 | GlobalSection(SolutionProperties) = preSolution
22 | HideSolutionNode = FALSE
23 | EndGlobalSection
24 | GlobalSection(ExtensibilityGlobals) = postSolution
25 | SolutionGuid = {03C34382-8A63-4F96-B411-48B6F1CC7090}
26 | EndGlobalSection
27 | EndGlobal
28 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/CustomScaleListener.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.Utilities;
2 | using Android.Views;
3 |
4 | namespace AndroidApp1;
5 |
6 | public class CustomScaleListener : ScaleGestureDetector.SimpleOnScaleGestureListener
7 | {
8 | private ManualPointerCameraController? _pointerCameraController;
9 |
10 | private float _startScaleFactor;
11 | private float _lastScaleFactor;
12 |
13 | public void SetPointerCameraController(ManualPointerCameraController pointerCameraController)
14 | {
15 | _pointerCameraController = pointerCameraController;
16 | }
17 |
18 | public override bool OnScaleBegin(ScaleGestureDetector? detector)
19 | {
20 | if (detector == null)
21 | return false;
22 |
23 | _startScaleFactor = detector.ScaleFactor;
24 | _lastScaleFactor = 1;
25 |
26 | return base.OnScaleBegin(detector);
27 | }
28 |
29 | public override bool OnScale(ScaleGestureDetector? detector)
30 | {
31 | if (detector == null)
32 | return false;
33 |
34 | //System.Diagnostics.Debug.WriteLine($"OnScale: CurrentSpanX: {detector.CurrentSpanX}; CurrentSpanY: {detector.CurrentSpanY}; ScaleFactor: {detector.ScaleFactor}");
35 |
36 | if (_pointerCameraController != null)
37 | {
38 | float oneStepScaleFactor = detector.ScaleFactor / _lastScaleFactor;
39 | _lastScaleFactor = detector.ScaleFactor;
40 |
41 | //_mouseCameraController.ProcessMouseWheel(new Vector2(detector.FocusX, detector.FocusY), detector.ScaleFactor);
42 | _pointerCameraController.ChangeCameraDistance(1f / oneStepScaleFactor);
43 |
44 | //System.Diagnostics.Debug.WriteLine($"ChangeCameraDistance({oneStepScaleFactor})");
45 |
46 | }
47 |
48 | return base.OnScale(detector);
49 | }
50 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/lib/Vulkan-validation-layers.txt:
--------------------------------------------------------------------------------
1 | To enable Vulkan validation layers copy the *.so files to the subfolders (for newer devices it is usually enough to copy only to arm64-v8a folder).
2 | The *.so files can be downloaded from https://github.com/KhronosGroup/Vulkan-ValidationLayers/releases
3 | Check that the the Build Action is set to "AndroidNativeLibrary"
4 |
5 | Add the following to AndroidManifest.xml:
6 |
7 |
8 | Then enabled validation layers in MainActivity.cs: set enableStandardValidation to true
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Android.Application/Resources/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #2C3E50
4 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Android.Application/Resources/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Ab4d.SharpEngine Demo
3 | Hello, Android with Ab4d.SharpEngine!
4 | Change color
5 | Change scene
6 | Start camera rotation
7 | Stop camera rotation
8 | This sample demonstrates only how to integrate Ab4d.SharpEngine into an Android app.\nSee samples for Avalonia, Wpf, WinUI or WinForms for more features of the engine.
9 |
10 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Android/AvaloniaUI.CrossPlatform.Android.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.Android
4 | Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.Android
5 | Exe
6 | net9.0-android
7 | 28
8 | enable
9 | com.ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform
10 | 1
11 | 1.0
12 |
14 |
15 |
16 |
17 |
18 | Resources\drawable\Icon.png
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Android/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Android/Icon.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Android/MainActivity.cs:
--------------------------------------------------------------------------------
1 | using Android.App;
2 | using Android.Content.PM;
3 | using Avalonia;
4 | using Avalonia.Android;
5 | using Avalonia.ReactiveUI;
6 |
7 | namespace Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.Android
8 | {
9 | [Activity(
10 | Label = "Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.Android",
11 | Theme = "@style/MyTheme.NoActionBar",
12 | Icon = "@drawable/icon",
13 | MainLauncher = true,
14 | ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize | ConfigChanges.UiMode)]
15 | public class MainActivity : AvaloniaMainActivity
16 | {
17 | protected override AppBuilder CustomizeAppBuilder(AppBuilder builder)
18 | {
19 | // Ab4d.SharpEngine license must be activated from the entry assembly (otherwise an SDK license is needed).
20 | //
21 | // Ab4d.SharpEngine Samples License can be used only for Ab4d.SharpEngine samples.
22 | // To use Ab4d.SharpEngine in your project, get a license from ab4d.com/trial or ab4d.com/purchase
23 | Ab4d.SharpEngine.Licensing.SetLicense(licenseOwner: "AB4D",
24 | licenseType: "SamplesLicense",
25 | platforms: "All",
26 | license: "5B53-8A17-DAEB-5B03-3B90-DD5B-958B-CA4D-0B88-CE79-FBB4-6002-D9C9-19C2-AFF8-1662-B2B2");
27 |
28 | return base.CustomizeAppBuilder(builder)
29 | .WithInterFont()
30 | .UseReactiveUI();
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Android/Properties/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Android/Resources/drawable/splash_screen.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -
5 |
6 |
7 |
8 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Android/Resources/values-night/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #212121
4 |
5 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Android/Resources/values-v31/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
17 |
21 |
22 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Android/Resources/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFFFFF
4 |
5 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Android/Resources/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Desktop/AvaloniaUI.CrossPlatform.Desktop.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.Desktop
4 | Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.Desktop
5 | WinExe
6 | net9.0
7 | enable
8 | true
9 |
10 |
11 |
12 | app.manifest
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | libMoltenVK.dylib
25 | PreserveNewest
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Desktop/Program.cs:
--------------------------------------------------------------------------------
1 | using Avalonia;
2 | using Avalonia.ReactiveUI;
3 | using System;
4 |
5 | namespace Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.Desktop
6 | {
7 | internal sealed class Program
8 | {
9 | // Initialization code. Don't use any Avalonia, third-party APIs or any
10 | // SynchronizationContext-reliant code before AppMain is called: things aren't initialized
11 | // yet and stuff might break.
12 | [STAThread]
13 | public static void Main(string[] args) => BuildAvaloniaApp()
14 | .StartWithClassicDesktopLifetime(args);
15 |
16 | // Avalonia configuration, don't remove; also used by visual designer.
17 | public static AppBuilder BuildAvaloniaApp()
18 | {
19 | // Ab4d.SharpEngine license must be activated from the entry assembly (otherwise an SDK license is needed).
20 | //
21 | // Ab4d.SharpEngine Samples License can be used only for Ab4d.SharpEngine samples.
22 | // To use Ab4d.SharpEngine in your project, get a license from ab4d.com/trial or ab4d.com/purchase
23 | Ab4d.SharpEngine.Licensing.SetLicense(licenseOwner: "AB4D",
24 | licenseType: "SamplesLicense",
25 | platforms: "All",
26 | license: "5B53-8A17-DAEB-5B03-3B90-DD5B-958B-CA4D-0B88-CE79-FBB4-6002-D9C9-19C2-AFF8-1662-B2B2");
27 |
28 | return AppBuilder.Configure()
29 | .UsePlatformDetect()
30 | .WithInterFont()
31 | .LogToTrace()
32 | .UseReactiveUI();
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Desktop/app.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 |
10 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 | enable
4 | 11.3.0
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Shared/App.axaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Shared/App.axaml.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.ViewModels;
2 | using Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.Views;
3 | using Avalonia;
4 | using Avalonia.Controls.ApplicationLifetimes;
5 | using Avalonia.Markup.Xaml;
6 |
7 | namespace Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform
8 | {
9 | public partial class App : Application
10 | {
11 | public override void Initialize()
12 | {
13 | AvaloniaXamlLoader.Load(this);
14 | }
15 |
16 | public override void OnFrameworkInitializationCompleted()
17 | {
18 | if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
19 | {
20 | desktop.MainWindow = new MainWindow
21 | {
22 | DataContext = new MainViewModel()
23 | };
24 | }
25 | else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewPlatform)
26 | {
27 | singleViewPlatform.MainView = new MainView
28 | {
29 | DataContext = new MainViewModel()
30 | };
31 | }
32 |
33 | base.OnFrameworkInitializationCompleted();
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Shared/Assets/avalonia-logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Shared/Assets/avalonia-logo.ico
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Shared/AvaloniaUI.CrossPlatform.Shared.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.Shared
4 | Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.Shared
5 | net9.0
6 | enable
7 | latest
8 | true
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Shared/ViewLocator.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.ViewModels;
2 | using Avalonia.Controls;
3 | using Avalonia.Controls.Templates;
4 | using System;
5 |
6 | namespace Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform
7 | {
8 | public class ViewLocator : IDataTemplate
9 | {
10 | public Control? Build(object? data)
11 | {
12 | if (data is null)
13 | return null;
14 |
15 | var name = data.GetType().FullName!.Replace("ViewModel", "View", StringComparison.Ordinal);
16 | var type = Type.GetType(name);
17 |
18 | if (type != null)
19 | {
20 | return (Control)Activator.CreateInstance(type)!;
21 | }
22 |
23 | return new TextBlock { Text = "Not Found: " + name };
24 | }
25 |
26 | public bool Match(object? data)
27 | {
28 | return data is ViewModelBase;
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Shared/ViewModels/MainViewModel.cs:
--------------------------------------------------------------------------------
1 | namespace Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.ViewModels
2 | {
3 | public class MainViewModel : ViewModelBase
4 | {
5 | #pragma warning disable CA1822 // Mark members as static
6 | public string Greeting => "Welcome to Avalonia!";
7 | #pragma warning restore CA1822 // Mark members as static
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Shared/ViewModels/ViewModelBase.cs:
--------------------------------------------------------------------------------
1 | using ReactiveUI;
2 |
3 | namespace Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.ViewModels
4 | {
5 | public class ViewModelBase : ReactiveObject
6 | {
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Shared/Views/MainWindow.axaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/Shared/Views/MainWindow.axaml.cs:
--------------------------------------------------------------------------------
1 | using Avalonia.Controls;
2 |
3 | namespace Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.Views
4 | {
5 | public partial class MainWindow : Window
6 | {
7 | public MainWindow()
8 | {
9 | InitializeComponent();
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/iOS/AppDelegate.cs:
--------------------------------------------------------------------------------
1 | using Avalonia;
2 | using Avalonia.Controls;
3 | using Avalonia.iOS;
4 | using Avalonia.Media;
5 | using Avalonia.ReactiveUI;
6 | using Foundation;
7 | using UIKit;
8 |
9 | namespace Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.iOS
10 | {
11 | // The UIApplicationDelegate for the application. This class is responsible for launching the
12 | // User Interface of the application, as well as listening (and optionally responding) to
13 | // application events from iOS.
14 | [Register("AppDelegate")]
15 | #pragma warning disable CA1711 // Identifiers should not have incorrect suffix
16 | public partial class AppDelegate : AvaloniaAppDelegate
17 | #pragma warning restore CA1711 // Identifiers should not have incorrect suffix
18 | {
19 | protected override AppBuilder CustomizeAppBuilder(AppBuilder builder)
20 | {
21 | return base.CustomizeAppBuilder(builder)
22 | .WithInterFont()
23 | .UseReactiveUI();
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/iOS/Entitlements.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/iOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDisplayName
6 | Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform
7 | CFBundleIdentifier
8 | com.ab4d.sharpengine.samples.avaloniaui
9 | CFBundleShortVersionString
10 | 1.0
11 | CFBundleVersion
12 | 1.0
13 | LSRequiresIPhoneOS
14 |
15 | MinimumOSVersion
16 | 15.0
17 | UIDeviceFamily
18 |
19 | 1
20 | 2
21 |
22 | UILaunchStoryboardName
23 | LaunchScreen
24 | UIRequiredDeviceCapabilities
25 |
26 | armv7
27 |
28 | UISupportedInterfaceOrientations
29 |
30 | UIInterfaceOrientationPortrait
31 | UIInterfaceOrientationPortraitUpsideDown
32 | UIInterfaceOrientationLandscapeLeft
33 | UIInterfaceOrientationLandscapeRight
34 |
35 | UISupportedInterfaceOrientations~ipad
36 |
37 | UIInterfaceOrientationPortrait
38 | UIInterfaceOrientationPortraitUpsideDown
39 | UIInterfaceOrientationLandscapeLeft
40 | UIInterfaceOrientationLandscapeRight
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/iOS/Main.cs:
--------------------------------------------------------------------------------
1 | using UIKit;
2 |
3 | namespace Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform.iOS
4 | {
5 | public class Application
6 | {
7 | // This is the main entry point of the application.
8 | static void Main(string[] args)
9 | {
10 | // Ab4d.SharpEngine license must be activated from the entry assembly (otherwise an SDK license is needed).
11 | //
12 | // Ab4d.SharpEngine Samples License can be used only for Ab4d.SharpEngine samples.
13 | // To use Ab4d.SharpEngine in your project, get a license from ab4d.com/trial or ab4d.com/purchase
14 | Ab4d.SharpEngine.Licensing.SetLicense(licenseOwner: "AB4D",
15 | licenseType: "SamplesLicense",
16 | platforms: "All",
17 | license: "5B53-8A17-DAEB-5B03-3B90-DD5B-958B-CA4D-0B88-CE79-FBB4-6002-D9C9-19C2-AFF8-1662-B2B2");
18 |
19 | // if you want to use a different Application Delegate class from "AppDelegate"
20 | // you can specify it here.
21 | UIApplication.Main(args, null, typeof(AppDelegate));
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/iOS/PrivacyInfo.xcprivacy:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NSPrivacyAccessedAPIType
6 | NSPrivacyAccessedAPICategoryFileTimestamp
7 | NSPrivacyAccessedAPITypeReasons
8 |
9 | C617.1
10 |
11 |
12 |
13 | NSPrivacyAccessedAPIType
14 | NSPrivacyAccessedAPICategorySystemBootTime
15 | NSPrivacyAccessedAPITypeReasons
16 |
17 | 35F9.1
18 |
19 |
20 |
21 | NSPrivacyAccessedAPIType
22 | NSPrivacyAccessedAPICategoryDiskSpace
23 | NSPrivacyAccessedAPITypeReasons
24 |
25 | E174.1
26 |
27 |
28 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform/readme.md:
--------------------------------------------------------------------------------
1 | # Ab4d.SharpEngine.Samples.AvaloniaUI.CrossPlatform
2 |
3 | This solution shows how to create an Avalonia app with Ab4d.SharpEngine that can run on Windows, Linux, macOS, Android and iOS.
4 |
5 | This sample shows only a few featrues of the Ab4d.SharpEngine library. See the "Ab4d.SharpEngine.Samples.AvaloniaUI" solution to see the sample for more features of the engine.
6 |
7 | To see how to build the app for **macOS** and **iOS**, see
8 | [Quick building instructions for macOS and iOS](https://github.com/ab4d/Ab4d.SharpEngine.Samples/blob/main/README.md#quick-building-instructions-for-macos-and-ios) or
9 | [Step by step instructions to run the samples on macOS and iOS](https://github.com/ab4d/Ab4d.SharpEngine.Samples#step-by-step-instructions-to-run-the-samples-on-macos-and-ios)
10 |
11 | Note that folder and file names in this solution have been shortened to prevent problems with max path size on Windows (260 chars).
12 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.VulkanBackend.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.2.32602.215
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ab4d.SharpEngine.Samples.AvaloniaUI", "Ab4d.SharpEngine.Samples.AvaloniaUI\Ab4d.SharpEngine.Samples.AvaloniaUI.VulkanBackend.csproj", "{E370BC2C-04BB-4080-97AE-5F30671EB8A4}"
7 | EndProject
8 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ab4d.SharpEngine.Samples.Common", "Ab4d.SharpEngine.Samples.Common\Ab4d.SharpEngine.Samples.Common.csproj", "{096F0E8A-A19E-4412-8D96-C2705BCA5AEE}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {E370BC2C-04BB-4080-97AE-5F30671EB8A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {E370BC2C-04BB-4080-97AE-5F30671EB8A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {E370BC2C-04BB-4080-97AE-5F30671EB8A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {E370BC2C-04BB-4080-97AE-5F30671EB8A4}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {096F0E8A-A19E-4412-8D96-C2705BCA5AEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {096F0E8A-A19E-4412-8D96-C2705BCA5AEE}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {096F0E8A-A19E-4412-8D96-C2705BCA5AEE}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {096F0E8A-A19E-4412-8D96-C2705BCA5AEE}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {CFCDBCAB-0775-4BA6-B91F-FE99167E638B}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.2.32602.215
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ab4d.SharpEngine.Samples.AvaloniaUI", "Ab4d.SharpEngine.Samples.AvaloniaUI\Ab4d.SharpEngine.Samples.AvaloniaUI.csproj", "{E370BC2C-04BB-4080-97AE-5F30671EB8A4}"
7 | EndProject
8 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ab4d.SharpEngine.Samples.Common", "Ab4d.SharpEngine.Samples.Common\Ab4d.SharpEngine.Samples.Common.csproj", "{096F0E8A-A19E-4412-8D96-C2705BCA5AEE}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {E370BC2C-04BB-4080-97AE-5F30671EB8A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {E370BC2C-04BB-4080-97AE-5F30671EB8A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {E370BC2C-04BB-4080-97AE-5F30671EB8A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {E370BC2C-04BB-4080-97AE-5F30671EB8A4}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {096F0E8A-A19E-4412-8D96-C2705BCA5AEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {096F0E8A-A19E-4412-8D96-C2705BCA5AEE}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {096F0E8A-A19E-4412-8D96-C2705BCA5AEE}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {096F0E8A-A19E-4412-8D96-C2705BCA5AEE}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {CFCDBCAB-0775-4BA6-B91F-FE99167E638B}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/Advanced/MultipleSceneViewsSample.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/App.axaml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | #333
11 | #FFBC57
12 | #77FFBC57
13 | #CCC
14 | #EEE
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/Common/CommonTitleUserControl.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/Common/MessageBox.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/CommonAvaloniaSampleUserControl.axaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/Diagnostics/LogMessagesWindow.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/GlobalSharpEngineSettings.cs:
--------------------------------------------------------------------------------
1 | namespace Ab4d.SharpEngine.Samples.AvaloniaUI;
2 |
3 | public static class GlobalSharpEngineSettings
4 | {
5 | public static int MultisampleCount { get; set; }
6 |
7 | public static float SupersamplingCount { get; set; }
8 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/QuickStart/AntiAliasingSample.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/QuickStart/SharpEngineSceneViewInCode.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/Resources/sharp-engine-logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.AvaloniaUI/Resources/sharp-engine-logo.ico
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/Resources/yellow-light-buld-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.AvaloniaUI/Resources/yellow-light-buld-icon.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/TestVulkanInteropWindow.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/Titles/IntroductionPage.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/Titles/QuickStartTitle.md:
--------------------------------------------------------------------------------
1 | # Quick Start
2 |
3 | Quick start section shows how to use the **SharpEngineSceneView** control.
4 |
5 | SharpEngineSceneView is an **Avalonia control** that can show SharpEngine's SceneView in an Avalonia application.
6 | The SharpEngineSceneView creates the VulkanDevice, Scene and SceneView objects.
7 |
8 | **Scene** is used to define the 3D objects (added to Scene.RootNode) and lights (added to Scene.Lights collection).
9 | **SceneView** is a view of the Scene and can render the objects in the Scene. It provides a Camera and size of the view. Scene and SceneView objects are created in SharpEngineSceneView's constructor.
10 |
11 | **VulkanDevice** object is created when the SharpEngineSceneView is initialized (OnLoaded) or when Initialize method is called.
12 | It is also possible to call Initialize and pass an existing VulkanDevice as parameter. This is used to share resources.
13 |
14 | **PresentationType** property defines how the rendered 3D scene is presented to the Avalonia UI. SharpEngineSceneView for Avalonia supports the following presentation types:
15 | - **SharedTexture**: The rendered 3D scene will be shared with Avalonia composition engine so that
16 | the rendered image will stay on the graphics card.
17 | This allows composition of 3D scene with other Avalonia UI controls.
18 | - **WriteableBitmap**: If SharedTexture mode is not possible, then WriteableBitmap presentation type is used.
19 | In this mode, the rendered texture is copied to main memory into a Avalonia's WriteableBitmap.
20 | This is much slower because of additional memory traffic.
21 | - **OverlayTexture**: This mode is currently not supported by SharpEngineSceneView for Avalonia.
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/UIProvider/ButtonUIElement.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 | using Ab4d.SharpEngine.Samples.Common;
4 | using Avalonia.Controls;
5 | using Avalonia.Layout;
6 |
7 | namespace Ab4d.SharpEngine.Samples.AvaloniaUI.UIProvider;
8 |
9 | public class ButtonUIElement : AvaloniaUIElement
10 | {
11 | private Button _button;
12 |
13 | private Action _clickedAction;
14 |
15 | public ButtonUIElement(AvaloniaUIProvider avaloniaUIProvider, string text, Action clickedAction, double width = 0, bool alignLeft = false)
16 | : base(avaloniaUIProvider)
17 | {
18 | _clickedAction = clickedAction;
19 |
20 | var (textToShow, toolTip) = avaloniaUIProvider.ParseTextAndToolTip(text);
21 |
22 | _button = new Button()
23 | {
24 | Content = textToShow,
25 | FontSize = avaloniaUIProvider.FontSize,
26 | };
27 |
28 | if (width > 0 )
29 | _button.Width = width;
30 |
31 | if (alignLeft)
32 | _button.HorizontalAlignment = HorizontalAlignment.Left;
33 |
34 | if (toolTip != null)
35 | ToolTip.SetTip(_button, toolTip);
36 |
37 | _button.Click += (sender, args) => _clickedAction?.Invoke();
38 |
39 | AvaloniaControl = _button;
40 | }
41 |
42 |
43 | public override string? GetText() => _button.Content as string;
44 |
45 | public override ICommonSampleUIElement SetText(string? text)
46 | {
47 | _button.Content = text;
48 | return this;
49 | }
50 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/UIProvider/CheckBoxUIElement.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.Samples.Common;
2 | using System;
3 | using Avalonia.Controls;
4 | using Avalonia.Media;
5 |
6 | namespace Ab4d.SharpEngine.Samples.AvaloniaUI.UIProvider;
7 |
8 | public class CheckBoxUIElement : AvaloniaUIElement
9 | {
10 | private CheckBox _checkBox;
11 |
12 | private Action _checkedChangedAction;
13 |
14 | public CheckBoxUIElement(AvaloniaUIProvider avaloniaUIProvider, string text, bool isInitiallyChecked, Action checkedChangedAction)
15 | : base(avaloniaUIProvider)
16 | {
17 | _checkedChangedAction = checkedChangedAction;
18 |
19 | var (textToShow, toolTip) = avaloniaUIProvider.ParseTextAndToolTip(text);
20 |
21 | _checkBox = new CheckBox()
22 | {
23 | Content = textToShow,
24 | FontSize = avaloniaUIProvider.FontSize,
25 | };
26 |
27 | if (isInitiallyChecked)
28 | _checkBox.IsChecked = true;
29 |
30 | if (toolTip != null)
31 | ToolTip.SetTip(_checkBox, toolTip);
32 |
33 | _checkBox.IsCheckedChanged += (sender, args) => _checkedChangedAction?.Invoke(_checkBox.IsChecked ?? false);
34 |
35 | AvaloniaControl = _checkBox;
36 | }
37 |
38 | public override string? GetText() => _checkBox.Content as string;
39 |
40 | public override ICommonSampleUIElement SetText(string? text)
41 | {
42 | _checkBox.Content = text;
43 | return this;
44 | }
45 |
46 | protected override void OnSetColor(Color avaloniaColor)
47 | {
48 | _checkBox.Foreground = new SolidColorBrush(avaloniaColor);
49 | }
50 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/UIProvider/MarkdownUIElement.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.AvaloniaUI;
2 | using Ab4d.SharpEngine.Samples.AvaloniaUI.Common;
3 | using Ab4d.SharpEngine.Samples.Common;
4 | using Ab4d.SharpEngine.Samples.Common.Utils;
5 | using Avalonia.Controls;
6 | using Avalonia.Media;
7 | using static System.Net.Mime.MediaTypeNames;
8 |
9 | namespace Ab4d.SharpEngine.Samples.AvaloniaUI.UIProvider;
10 |
11 | public class MarkdownUIElement : AvaloniaUIElement
12 | {
13 | private string _markdownText;
14 | private TextBlock _createdTextBlock;
15 | private AvaloniaMarkdownTextCreator _markdownTextCreator;
16 |
17 | public MarkdownUIElement(AvaloniaUIProvider avaloniaUIProvider, string markdownText, float fontSize = 0)
18 | : base(avaloniaUIProvider)
19 | {
20 | _markdownText = markdownText;
21 |
22 | _markdownTextCreator = new AvaloniaMarkdownTextCreator();
23 |
24 | if (fontSize > 0)
25 | _markdownTextCreator.FontSize = fontSize;
26 |
27 | _createdTextBlock = _markdownTextCreator.Create(markdownText) as TextBlock;
28 |
29 | AvaloniaControl = _createdTextBlock;
30 | }
31 |
32 | public override string? GetText() => _markdownText;
33 |
34 | public override ICommonSampleUIElement SetText(string? text)
35 | {
36 | if (text == null)
37 | {
38 | _createdTextBlock.Text = "";
39 | }
40 | else
41 | {
42 | _markdownTextCreator.Update(text);
43 | }
44 |
45 | return this;
46 | }
47 |
48 |
49 | protected override void OnSetColor(Color avaloniaColor)
50 | {
51 | _markdownTextCreator.TextColor = avaloniaColor.ToColor4();
52 | _markdownTextCreator.Update(_markdownText);
53 | }
54 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.AvaloniaUI/UIProvider/TextBoxUIElement.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.Samples.Common;
2 | using Avalonia.Controls;
3 | using Avalonia.Media;
4 | using Avalonia;
5 | using System;
6 |
7 | namespace Ab4d.SharpEngine.Samples.AvaloniaUI.UIProvider;
8 |
9 | public class TextBoxUIElement : AvaloniaUIElement
10 | {
11 | private TextBox _textBox;
12 | private Action? _textChangedAction;
13 |
14 | public TextBoxUIElement(AvaloniaUIProvider avaloniaUIProvider, float width, float height, string? initialText, Action? textChangedAction)
15 | : base(avaloniaUIProvider)
16 | {
17 | _textBox = new TextBox()
18 | {
19 | Text = initialText,
20 | FontSize = avaloniaUIProvider.FontSize,
21 | };
22 |
23 | if (width > 0)
24 | _textBox.Width = width;
25 |
26 | if (height > 0)
27 | _textBox.Height = height;
28 |
29 | if (height > 0 || (initialText != null && initialText.Contains('\n'))) // is multiline?
30 | {
31 | _textBox.AcceptsReturn = true;
32 | _textBox.AcceptsTab = true;
33 | }
34 |
35 | if (textChangedAction != null)
36 | {
37 | _textChangedAction = textChangedAction;
38 | _textBox.TextChanged += TextBoxOnTextChanged;
39 | }
40 |
41 | AvaloniaControl = _textBox;
42 | }
43 |
44 | private void TextBoxOnTextChanged(object? sender, TextChangedEventArgs e)
45 | {
46 | _textChangedAction?.Invoke(_textBox.Text ?? "");
47 | }
48 |
49 |
50 | public override string? GetText() => _textBox.Text;
51 |
52 | public override ICommonSampleUIElement SetText(string? text)
53 | {
54 | _textBox.Text = text;
55 | return this;
56 | }
57 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/ICommonSampleUIElement.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.Common;
2 |
3 | namespace Ab4d.SharpEngine.Samples.Common;
4 |
5 | public interface ICommonSampleUIElement
6 | {
7 | bool GetIsVisible();
8 | ICommonSampleUIElement SetIsVisible(bool isVisible);
9 |
10 | string? GetText();
11 | ICommonSampleUIElement SetText(string? text);
12 |
13 | ICommonSampleUIElement SetColor(Color3 color);
14 |
15 | string? GetStyle();
16 | ICommonSampleUIElement SetStyle(string style);
17 |
18 | string? GetToolTip();
19 | ICommonSampleUIElement SetToolTip(string tooltip);
20 |
21 | (double, double, double, double) GetMargin();
22 | ICommonSampleUIElement SetMargin(double left, double top, double right, double bottom);
23 |
24 | void SetProperty(string propertyName, string propertyValue);
25 | string? GetPropertyValue(string propertyName);
26 |
27 | void UpdateValue();
28 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/ICommonSampleUIPanel.cs:
--------------------------------------------------------------------------------
1 | namespace Ab4d.SharpEngine.Samples.Common;
2 |
3 | public interface ICommonSampleUIPanel : ICommonSampleUIElement
4 | {
5 | int ChildrenCount { get; }
6 |
7 | bool IsVertical { get; }
8 |
9 | ICommonSampleUIElement GetChild(int index);
10 |
11 | void RemoveChildAt(int index);
12 |
13 | void RemoveChild(ICommonSampleUIElement child);
14 |
15 | void AddChild(ICommonSampleUIElement child);
16 |
17 | void InsertChild(int index, ICommonSampleUIElement child);
18 |
19 | void ClearChildren();
20 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/ICommonSamplesContext.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.Common;
2 | using Ab4d.SharpEngine.Utilities;
3 | using Ab4d.SharpEngine.Vulkan;
4 |
5 | namespace Ab4d.SharpEngine.Samples.Common;
6 |
7 | public interface ICommonSamplesContext
8 | {
9 | VulkanDevice? GpuDevice { get; }
10 |
11 | IBitmapIO BitmapIO { get; }
12 |
13 | ISharpEngineSceneView? CurrentSharpEngineSceneView { get; }
14 |
15 | // Returns null when CurrentSharpEngineSceneView is null
16 | TextBlockFactory GetTextBlockFactory();
17 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Importers/CadImporterInfo.md:
--------------------------------------------------------------------------------
1 | # CAD files importer
2 |
3 | **CadImporter** can import and show **3D objects from STEP** (.step and .stp) and **IGES** (.iges and .igs) files.
4 |
5 | CadImporter can import original 3D models with parts hierarchy and exact edge lines that are defined in the CAD application.
6 |
7 | [Click here to open CadImporter on GitHub](https://github.com/ab4d/CadImporter)
8 |
9 | CadImporter uses Ab4d.OpenCascade library that provides a .Net wrapper for a third-part Open CASCADE library. Because of native third-party library CadImporter can be used **only on Windows**.
10 |
11 | Screenshots:
12 |
13 | 
14 |
15 | 
16 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/arial_128.bmfc:
--------------------------------------------------------------------------------
1 | # AngelCode Bitmap Font Generator configuration file
2 | fileVersion=1
3 |
4 | # font settings
5 | fontName=Arial
6 | fontFile=
7 | charSet=0
8 | fontSize=128
9 | aa=2
10 | scaleH=100
11 | useSmoothing=1
12 | isBold=0
13 | isItalic=0
14 | useUnicode=1
15 | disableBoxChars=1
16 | outputInvalidCharGlyph=0
17 | dontIncludeKerningPairs=0
18 | useHinting=1
19 | renderFromOutline=0
20 | useClearType=1
21 | autoFitNumPages=0
22 | autoFitFontSizeMin=0
23 | autoFitFontSizeMax=0
24 |
25 | # character alignment
26 | paddingDown=16
27 | paddingUp=16
28 | paddingRight=16
29 | paddingLeft=16
30 | spacingHoriz=0
31 | spacingVert=0
32 | useFixedHeight=0
33 | forceZero=0
34 | widthPaddingFactor=0.00
35 |
36 | # output file
37 | outWidth=2048
38 | outHeight=2048
39 | outBitDepth=32
40 | fontDescFormat=2
41 | fourChnlPacked=0
42 | textureFormat=png
43 | textureCompression=0
44 | alphaChnl=0
45 | redChnl=4
46 | greenChnl=4
47 | blueChnl=4
48 | invA=0
49 | invR=0
50 | invG=0
51 | invB=0
52 |
53 | # outline
54 | outlineThickness=0
55 |
56 | # selected chars
57 | chars=32-126,160-383
58 |
59 | # imported icon images
60 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/arial_128.fnt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/arial_128.fnt
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/arial_128_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/arial_128_0.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/arial_black_128.bmfc:
--------------------------------------------------------------------------------
1 | # AngelCode Bitmap Font Generator configuration file
2 | fileVersion=1
3 |
4 | # font settings
5 | fontName=Arial Black
6 | fontFile=
7 | charSet=0
8 | fontSize=128
9 | aa=2
10 | scaleH=100
11 | useSmoothing=1
12 | isBold=0
13 | isItalic=0
14 | useUnicode=1
15 | disableBoxChars=1
16 | outputInvalidCharGlyph=0
17 | dontIncludeKerningPairs=0
18 | useHinting=1
19 | renderFromOutline=0
20 | useClearType=1
21 | autoFitNumPages=0
22 | autoFitFontSizeMin=0
23 | autoFitFontSizeMax=0
24 |
25 | # character alignment
26 | paddingDown=16
27 | paddingUp=16
28 | paddingRight=16
29 | paddingLeft=16
30 | spacingHoriz=0
31 | spacingVert=0
32 | useFixedHeight=0
33 | forceZero=0
34 | widthPaddingFactor=0.00
35 |
36 | # output file
37 | outWidth=2048
38 | outHeight=2048
39 | outBitDepth=32
40 | fontDescFormat=2
41 | fourChnlPacked=0
42 | textureFormat=png
43 | textureCompression=0
44 | alphaChnl=0
45 | redChnl=4
46 | greenChnl=4
47 | blueChnl=4
48 | invA=0
49 | invR=0
50 | invG=0
51 | invB=0
52 |
53 | # outline
54 | outlineThickness=0
55 |
56 | # selected chars
57 | chars=32-126,160-383
58 |
59 | # imported icon images
60 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/arial_black_128.fnt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/arial_black_128.fnt
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/arial_black_128_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/arial_black_128_0.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/arial_black_with_outline_128.bmfc:
--------------------------------------------------------------------------------
1 | # AngelCode Bitmap Font Generator configuration file
2 | fileVersion=1
3 |
4 | # font settings
5 | fontName=Arial Black
6 | fontFile=
7 | charSet=0
8 | fontSize=128
9 | aa=2
10 | scaleH=100
11 | useSmoothing=1
12 | isBold=0
13 | isItalic=0
14 | useUnicode=1
15 | disableBoxChars=1
16 | outputInvalidCharGlyph=0
17 | dontIncludeKerningPairs=0
18 | useHinting=1
19 | renderFromOutline=1
20 | useClearType=1
21 | autoFitNumPages=0
22 | autoFitFontSizeMin=0
23 | autoFitFontSizeMax=0
24 |
25 | # character alignment
26 | paddingDown=16
27 | paddingUp=16
28 | paddingRight=16
29 | paddingLeft=16
30 | spacingHoriz=0
31 | spacingVert=0
32 | useFixedHeight=0
33 | forceZero=0
34 | widthPaddingFactor=0.00
35 |
36 | # output file
37 | outWidth=2048
38 | outHeight=2048
39 | outBitDepth=32
40 | fontDescFormat=2
41 | fourChnlPacked=0
42 | textureFormat=png
43 | textureCompression=0
44 | alphaChnl=1
45 | redChnl=0
46 | greenChnl=0
47 | blueChnl=0
48 | invA=0
49 | invR=0
50 | invG=0
51 | invB=0
52 |
53 | # outline
54 | outlineThickness=4
55 |
56 | # selected chars
57 | chars=32-126,160-383
58 |
59 | # imported icon images
60 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/arial_black_with_outline_128.fnt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/arial_black_with_outline_128.fnt
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/arial_black_with_outline_128_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/arial_black_with_outline_128_0.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/readme.txt:
--------------------------------------------------------------------------------
1 | Bitmap fonts generated by "Bitmap font generator" from https://www.angelcode.com/products/bmfont/
2 |
3 | The font bitmap is created from Arial font with latin, latin 1-suplement and latin extended-a charset.
4 | Font size is 128 and rendered to 2048 x 2048 bitmap.
5 |
6 | The configuration for the font generation is stored in the "arial_128.bmfc" file.
7 |
8 | See comments in the Utilities\BitmapTextCreator.cs file for more info.
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_128.bmfc:
--------------------------------------------------------------------------------
1 | # AngelCode Bitmap Font Generator configuration file
2 | fileVersion=1
3 |
4 | # font settings
5 | fontName=Roboto
6 | fontFile=
7 | charSet=0
8 | fontSize=128
9 | aa=2
10 | scaleH=100
11 | useSmoothing=1
12 | isBold=0
13 | isItalic=0
14 | useUnicode=1
15 | disableBoxChars=1
16 | outputInvalidCharGlyph=0
17 | dontIncludeKerningPairs=0
18 | useHinting=1
19 | renderFromOutline=0
20 | useClearType=1
21 | autoFitNumPages=0
22 | autoFitFontSizeMin=0
23 | autoFitFontSizeMax=0
24 |
25 | # character alignment
26 | paddingDown=16
27 | paddingUp=16
28 | paddingRight=16
29 | paddingLeft=16
30 | spacingHoriz=0
31 | spacingVert=0
32 | useFixedHeight=0
33 | forceZero=0
34 | widthPaddingFactor=0.00
35 |
36 | # output file
37 | outWidth=2048
38 | outHeight=2048
39 | outBitDepth=32
40 | fontDescFormat=2
41 | fourChnlPacked=0
42 | textureFormat=png
43 | textureCompression=0
44 | alphaChnl=0
45 | redChnl=4
46 | greenChnl=4
47 | blueChnl=4
48 | invA=0
49 | invR=0
50 | invG=0
51 | invB=0
52 |
53 | # outline
54 | outlineThickness=0
55 |
56 | # selected chars
57 | chars=32-126,160-383
58 |
59 | # imported icon images
60 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_128.fnt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_128.fnt
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_128_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_128_0.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_64.bmfc:
--------------------------------------------------------------------------------
1 | # AngelCode Bitmap Font Generator configuration file
2 | fileVersion=1
3 |
4 | # font settings
5 | fontName=Roboto
6 | fontFile=
7 | charSet=0
8 | fontSize=64
9 | aa=2
10 | scaleH=100
11 | useSmoothing=1
12 | isBold=0
13 | isItalic=0
14 | useUnicode=1
15 | disableBoxChars=1
16 | outputInvalidCharGlyph=0
17 | dontIncludeKerningPairs=0
18 | useHinting=1
19 | renderFromOutline=0
20 | useClearType=1
21 | autoFitNumPages=0
22 | autoFitFontSizeMin=0
23 | autoFitFontSizeMax=0
24 |
25 | # character alignment
26 | paddingDown=8
27 | paddingUp=8
28 | paddingRight=8
29 | paddingLeft=8
30 | spacingHoriz=0
31 | spacingVert=0
32 | useFixedHeight=0
33 | forceZero=0
34 | widthPaddingFactor=0.00
35 |
36 | # output file
37 | outWidth=1024
38 | outHeight=1024
39 | outBitDepth=32
40 | fontDescFormat=2
41 | fourChnlPacked=0
42 | textureFormat=png
43 | textureCompression=0
44 | alphaChnl=0
45 | redChnl=4
46 | greenChnl=4
47 | blueChnl=4
48 | invA=0
49 | invR=0
50 | invG=0
51 | invB=0
52 |
53 | # outline
54 | outlineThickness=0
55 |
56 | # selected chars
57 | chars=32-126,160-383,700,710-711,713,728-733,755,900-906,908,910-929,931-974,977-978,982,8355-8356,8358
58 | chars=8359-8364,8369,8377-8378,8380-8381,8706,8710,8719,8721-8722,8730,8734,8747,8776,8800,8804-8805
59 |
60 | # imported icon images
61 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_64.fnt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_64.fnt
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_64_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_64_0.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_black_128.bmfc:
--------------------------------------------------------------------------------
1 | # AngelCode Bitmap Font Generator configuration file
2 | fileVersion=1
3 |
4 | # font settings
5 | fontName=Roboto Black
6 | fontFile=
7 | charSet=0
8 | fontSize=128
9 | aa=2
10 | scaleH=100
11 | useSmoothing=1
12 | isBold=0
13 | isItalic=0
14 | useUnicode=1
15 | disableBoxChars=1
16 | outputInvalidCharGlyph=0
17 | dontIncludeKerningPairs=0
18 | useHinting=1
19 | renderFromOutline=0
20 | useClearType=1
21 | autoFitNumPages=0
22 | autoFitFontSizeMin=0
23 | autoFitFontSizeMax=0
24 |
25 | # character alignment
26 | paddingDown=16
27 | paddingUp=16
28 | paddingRight=16
29 | paddingLeft=16
30 | spacingHoriz=0
31 | spacingVert=0
32 | useFixedHeight=0
33 | forceZero=0
34 | widthPaddingFactor=0.00
35 |
36 | # output file
37 | outWidth=2048
38 | outHeight=2048
39 | outBitDepth=32
40 | fontDescFormat=2
41 | fourChnlPacked=0
42 | textureFormat=png
43 | textureCompression=0
44 | alphaChnl=0
45 | redChnl=4
46 | greenChnl=4
47 | blueChnl=4
48 | invA=0
49 | invR=0
50 | invG=0
51 | invB=0
52 |
53 | # outline
54 | outlineThickness=0
55 |
56 | # selected chars
57 | chars=32-126,160-383
58 |
59 | # imported icon images
60 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_black_128.fnt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_black_128.fnt
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_black_128_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_black_128_0.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_black_with_outline_128.bmfc:
--------------------------------------------------------------------------------
1 | # AngelCode Bitmap Font Generator configuration file
2 | fileVersion=1
3 |
4 | # font settings
5 | fontName=Roboto Black
6 | fontFile=
7 | charSet=0
8 | fontSize=128
9 | aa=2
10 | scaleH=100
11 | useSmoothing=1
12 | isBold=0
13 | isItalic=0
14 | useUnicode=1
15 | disableBoxChars=1
16 | outputInvalidCharGlyph=0
17 | dontIncludeKerningPairs=0
18 | useHinting=1
19 | renderFromOutline=1
20 | useClearType=1
21 | autoFitNumPages=0
22 | autoFitFontSizeMin=0
23 | autoFitFontSizeMax=0
24 |
25 | # character alignment
26 | paddingDown=16
27 | paddingUp=16
28 | paddingRight=16
29 | paddingLeft=16
30 | spacingHoriz=0
31 | spacingVert=0
32 | useFixedHeight=0
33 | forceZero=0
34 | widthPaddingFactor=0.00
35 |
36 | # output file
37 | outWidth=2048
38 | outHeight=2048
39 | outBitDepth=32
40 | fontDescFormat=2
41 | fourChnlPacked=0
42 | textureFormat=png
43 | textureCompression=0
44 | alphaChnl=1
45 | redChnl=0
46 | greenChnl=0
47 | blueChnl=0
48 | invA=0
49 | invR=0
50 | invG=0
51 | invB=0
52 |
53 | # outline
54 | outlineThickness=4
55 |
56 | # selected chars
57 | chars=32-126,160-383
58 |
59 | # imported icon images
60 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_black_with_outline_128.fnt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_black_with_outline_128.fnt
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_black_with_outline_128_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/BitmapFonts/roboto_black_with_outline_128_0.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/CadImporter-for-SharpEngine-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/CadImporter-for-SharpEngine-1.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/CadImporter-for-SharpEngine-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/CadImporter-for-SharpEngine-2.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Diagnostics-gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/Diagnostics-gray.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Diagnostics.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/Diagnostics.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/HeightMaps/europe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/HeightMaps/europe.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/HeightMaps/europe_height.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/HeightMaps/europe_height.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/HeightMaps/readme.txt:
--------------------------------------------------------------------------------
1 | All Earth and Europe images are from
2 | NASA Observatory images:
3 | http://earthobservatory.nasa.gov/Features/BlueMarble/BlueMarble_monthlies.php
4 |
5 |
6 | Vulkan height map by DABRIT: https://www.unturned-planet.com/post/258/volcano-height-map.html#google_vignette
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/HeightMaps/simpleHeightMap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/HeightMaps/simpleHeightMap.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/HeightMaps/vulkan-heightmap-cropped.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/HeightMaps/vulkan-heightmap-cropped.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/HeightMaps/vulkan-heightmap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/HeightMaps/vulkan-heightmap.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Models/dragon_vrip_res3.obj.mtl:
--------------------------------------------------------------------------------
1 | # File produced by Open Asset Import Library (http://www.assimp.sf.net)
2 | # (assimp v3.1.29665513)
3 |
4 | newmtl $Material_0
5 | kd 0.6 0.6 0.6
6 | ka 0.05 0.05 0.05
7 | ks 0.6 0.6 0.6
8 | illum 1
9 |
10 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Models/dragon_vrip_res3_readme.txt:
--------------------------------------------------------------------------------
1 | "Stanford Dragon" model is created by Stanford University and is one of the most common 3D model used for testing
2 |
3 | The model used here is a lower resolution of the original model (res3).
4 |
5 | The model is downloaded from:
6 | https://en.wikipedia.org/wiki/List_of_common_3D_test_models
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Models/duckCM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/Models/duckCM.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Models/planetary-gear source.txt:
--------------------------------------------------------------------------------
1 | Planetary gear model converted to .fbx from original .step file from:
2 | https://grabcad.com/library/plantary-gear-1
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Models/planetary-gear.FBX:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/Models/planetary-gear.FBX
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Models/voyager readme.txt:
--------------------------------------------------------------------------------
1 | Voyager model by NASA (https://nasa3d.arc.nasa.gov/models)
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/PointClouds/14 Ladybrook Road 10 - cropped.ply:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/PointClouds/14 Ladybrook Road 10 - cropped.ply
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/PointClouds/readme.txt:
--------------------------------------------------------------------------------
1 | "14 Ladybrook Road 10 - cropped.ply" file is a cropped version of a "14 Ladybrook Road 10.ply" file created by maxch (https://sketchfab.com/maxch)
2 | The original file can be download from https://sketchfab.com/maxch.
3 |
4 | File license: CC Attribution (https://creativecommons.org/licenses/by/4.0/)
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/Settings.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Shaders/spv/FogShader.frag.spv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/Shaders/spv/FogShader.frag.spv
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Shaders/spv/FogShader.vert.spv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/Shaders/spv/FogShader.vert.spv
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Shaders/txt/FogShader.vert.txt:
--------------------------------------------------------------------------------
1 | #version 450
2 |
3 | layout(set = 2, binding = 0, std430) readonly buffer modelMatricesBuffer
4 | {
5 | mat4 world[];
6 | } matricesBuffer;
7 |
8 | layout(set = 0, binding = 0, std140) uniform sceneUniformBuffer
9 | {
10 | mat4 viewProjection;
11 | vec3 eyePosW;
12 | vec2 viewSize;
13 | float dpiScale;
14 | float superSampling;
15 | vec3 ambientColor;
16 | int dirLightStart;
17 | int dirLightCount;
18 | int pointLightStart;
19 | int pointLightCount;
20 | int spotLightStart;
21 | int spotLightCount;
22 | } scene;
23 |
24 | layout(push_constant, std430) uniform indexSetup
25 | {
26 | int matrixIndex;
27 | } pushConstants;
28 |
29 | layout(location = 0) in vec3 inPosition;
30 | layout(location = 0) out vec3 outWorldPos;
31 | layout(location = 1) out vec3 outNormal;
32 | layout(location = 1) in vec3 inNormal;
33 | layout(location = 2) out vec2 outUV;
34 | layout(location = 2) in vec2 inUV;
35 |
36 | void main()
37 | {
38 | mat4 modelWorld = matricesBuffer.world[pushConstants.matrixIndex];
39 | vec4 posWorld4 = modelWorld * vec4(inPosition, 1.0);
40 | gl_Position = scene.viewProjection * posWorld4;
41 | outWorldPos = posWorld4.xyz;
42 | outNormal = (modelWorld * vec4(inNormal, 0.0)).xyz;
43 | outUV = inUV;
44 | }
45 |
46 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/SkyboxTextures/CloudyLightRaysBack512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/SkyboxTextures/CloudyLightRaysBack512.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/SkyboxTextures/CloudyLightRaysDown512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/SkyboxTextures/CloudyLightRaysDown512.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/SkyboxTextures/CloudyLightRaysFront512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/SkyboxTextures/CloudyLightRaysFront512.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/SkyboxTextures/CloudyLightRaysLeft512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/SkyboxTextures/CloudyLightRaysLeft512.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/SkyboxTextures/CloudyLightRaysRight512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/SkyboxTextures/CloudyLightRaysRight512.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/SkyboxTextures/CloudyLightRaysUp512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/SkyboxTextures/CloudyLightRaysUp512.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/SkyboxTextures/readme.txt:
--------------------------------------------------------------------------------
1 | Skybox images from:
2 | https://www.93i.de/products/media/skybox-texture-set-1
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Textures/10x10-texture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/Textures/10x10-texture.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Textures/TreeTexture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/Textures/TreeTexture.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Textures/sharp-engine-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/Textures/sharp-engine-logo.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Textures/uvchecker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/Textures/uvchecker.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/Textures/uvchecker2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/Textures/uvchecker2.jpg
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/TrueTypeFonts/Roboto-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/TrueTypeFonts/Roboto-Black.ttf
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/TrueTypeFonts/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/TrueTypeFonts/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/ab4d-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/ab4d-logo.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/new_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/new_icon.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/photo_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/photo_icon.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/updated_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/updated_icon.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Resources/warningIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Common/Resources/warningIcon.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Titles/AdvancedModelsTitle.md:
--------------------------------------------------------------------------------
1 | # Advanced 3D models
2 |
3 | The samples in this section show some advanced 3D models.
4 |
5 | The following are some of those objects:
6 | - **InstancedMeshNode** is used to provide the best performance when rendering many instances. It can be used to render a single Mesh multiple times as instances where each instance can have its own color and its own world matrix (defines scale, rotation and translation).
7 | - **Boolean operations** can be used to create new objects by using subtract, intersect or union boolean operations.
8 | - **HeightMapSurfaceNode** shows a 3D height map. It can be combined with HeightMapWireframeNode and HeightMapContoursNode to add wireframe or contour lines.
9 | - **3D tubes** can be used to show different 3D tubes.
10 | - **Lathe** 3D objects are created by rotating a 2D shape around an axis.
11 | - **Extruded** 3D objects are created by extruding a 2D shape into the thrid dimension.
12 | - **Planar shadows** are special 3D objects that are collapsed onto a 2D plane and rendered as a solid color dark object to create an illusion of a shadow.
13 | - **Sprites** can be rendered on top or below the 3D scene and can show 2D images or text that is not affected by the camera and lights.
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Titles/AdvancedTitle.md:
--------------------------------------------------------------------------------
1 | # Advanced
2 |
3 | Samples in this section show some advanced rendering techniques and how to create some low level objects and effects.
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Titles/AnimationsTitle.md:
--------------------------------------------------------------------------------
1 | # Animation
2 |
3 | Animation samples show how to animate objects by animating their transformations or properties. The samples also show how to animate cameras and materials.
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Titles/CamerasTitle.md:
--------------------------------------------------------------------------------
1 | # Cameras
2 |
3 | The following camera types are available:
4 | - **TargetPositionCamera** TargetPositionCamera is a camera that looks at the specified position (TargetPosition) from the specified angle (Heading, Attitude, Bank) and distance (Distance property). The camera is rotated around the up axis in the current coordinate system.
5 | - **FirstPersonCamera** is a camera that simulates the person's view of the world. The position is defined by the CameraPosition and the direction of the camera is defined by Heading, Attitude and Bank properties.
6 | - **FreeCamera** is a camera that is not defined by heading, attitude and bank angle. The camera is not limited to rotation around the up axis. Instead, the camera is defined by CameraPosition, TargetPosition and UpDirection.
7 | - **MatrixCamera** is a simple camera that is defined by the View and Projection matrices
8 |
9 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Titles/HitTesting.md:
--------------------------------------------------------------------------------
1 | # Hit testing
2 |
3 | Hit testing allows user interaction with the shown 3D objects.
4 |
5 | Hit testing is usually done by calling **GetClosestHitObject** or **GetAllHitObjects** method on SceneView object. Behind the scene this creates a 3D ray from the camera and the code checks which triangles from the 3D scene are hit by the ray.
6 |
7 | This method cannot be used to hit test 3D lines. There a **LineSelectorData** class is used that can also return the lines that are close to the mouse.
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Titles/LightsTitle.md:
--------------------------------------------------------------------------------
1 | # Lights
2 |
3 | The following lights are available:
4 | - **DirectionalLight** is a light that shines from infinity and has a direction vector set.
5 | - **PointLight** is a light that emits light in all directions from a specified position.
6 | - **SpotLight** is a light that is positioned at the specified position and emits light in a specified direction and with the specified cone.
7 | - **AmbientLight** is a light that adds the specified color to all objects in the scene (as a light would be illuminating the scene from all directions).
8 | - **CameraLight** is a directional light that has the same direction as the camera's LookDirection. It can be created by changing the camera's ShowCameraLight property. By default this property is set to Auto which creates the CameraLight when there are no other real lights in the scene (ambient light does not count as a real light).
9 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Titles/LinesTitle.md:
--------------------------------------------------------------------------------
1 | # 3D lines
2 |
3 | Ab4d.SharpEngine can render many types of 3D lines. The basic types are:
4 | - **LineNode** creates a line from StartPosition to EndPosition.
5 | - **MultiLineNode** creates multiple lines that can be connected (IsLineStrip is true) or disconnected (IsLineStrip is false).
6 | - **PolyLineNode** creates a poly-line - a line with connected line segments where MiterLimit defines how the connection is rendered (with mitered or beveled joint).
7 | - **CurveLineNode** creates a line that is defined by a curve type (CurveThroughPoints, BezierCurve, BSpline, NURBSCurve) and control points.
8 | - **CircleLineNode**, **EllipseLineNode** and **EllipseArcLineNode** create circular lines.
9 | - **RectangleNode** creates a rectangle from 4 connected lines.
10 | - **WireCrossNode** creates a wire cross where 3 perpendicular lines cross at the specified position. This can be very useful for marking a specific 3D position.
11 | - **WireBoxNode** creates a box from lines.
12 | - **WireGridNode** creates wire grid by defining the major and minor lines that define a 2D grid.
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Titles/MaterialsTitle.md:
--------------------------------------------------------------------------------
1 | # Materials
2 |
3 | Usually, 3D objects defines Material and BackMaterial properties. The Material defines how the front triangles are rendered. The BackMaterial defines how the back side of the triangles are rendered.
4 |
5 | The orientation of triangles is defined by the order of the triangle positions. By default the counter-clockwise orientation of the positions defines the front side of the triangle.
6 |
7 | The following materials for solid objects are available:
8 | - **StandardMaterial** is a material that defines the standard properties to show the diffuse, specular and emissive material properties and also supports diffuse textures.
9 | - **SolidColorMaterial** is a material that is not shaded by lighting and is always rendered exactly as specified by the diffuse material properties.
10 | - **VertexColorMaterial** can be used to render 3D objects with specifying colors for each of its positions.
11 |
12 | The common standard materials are defined in the **StandardMaterials**, for example: StandardMaterials.Green defines a StandardMaterial with a green diffuse color. It is possible to change the opacity by calling SetOpacity method or change specular color and power by calling SetSpecular method.
13 |
14 | The following materials for 3D lines are available:
15 | - **LineMaterial** is a material that can be used to render 3D lines.
16 | - **PolyLineMaterial** is a material that can be used to render poly-lines.
17 | - **PositionColoredLineMaterial** is a LineMaterial that contains additional properties that can be used to render 3D lines with different start and end colors.
18 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Titles/PointerCameraControllerTitle.md:
--------------------------------------------------------------------------------
1 | # PointerCameraController
2 |
3 | Camera control is the main interface between the user and the 3D scene.
4 |
5 | Therefore it is essential that this works smoothly and intuitively.
6 |
7 | PointerCameraController allows the user to rotate, move and zoom the camera with the pointer or mouse. It supports rotating around or zooming to a custom 3D position.
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Common/Titles/StandardModelsTitle.md:
--------------------------------------------------------------------------------
1 | # Standard 3D models
2 |
3 | The samples in this section show some of the SceneNode objects.
4 |
5 | Each 3D object from this section can have its own **Material**, **BackMaterial** and **Transform**.
6 |
7 | See also the [online reference help](https://www.ab4d.com/help/SharpEngine/html/N_Ab4d_SharpEngine_SceneNodes.htm) for a list of all possible SceneNodes.
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.ImGui.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.11.35327.3
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ab4d.SharpEngine.Samples.ImGui", "Ab4d.SharpEngine.Samples.ImGui\Ab4d.SharpEngine.Samples.ImGui.csproj", "{EC2A3D3D-E63D-403D-98C9-42210DD7AEF9}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {EC2A3D3D-E63D-403D-98C9-42210DD7AEF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {EC2A3D3D-E63D-403D-98C9-42210DD7AEF9}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {EC2A3D3D-E63D-403D-98C9-42210DD7AEF9}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {EC2A3D3D-E63D-403D-98C9-42210DD7AEF9}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {A1C371FD-2D7F-4F7A-9ADB-13055D6597EF}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.ImGui/Ab4d.SharpEngine.Samples.ImGui.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 | net9.0
6 | enable
7 | enable
8 | true
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.LinuxFramebuffer.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ab4d.SharpEngine.Samples.LinuxFramebuffer", "Ab4d.SharpEngine.Samples.LinuxFramebuffer\Ab4d.SharpEngine.Samples.LinuxFramebuffer.csproj", "{370192F4-AE34-41A3-BE45-D4925300DA01}"
4 | EndProject
5 | Global
6 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
7 | Debug|Any CPU = Debug|Any CPU
8 | Release|Any CPU = Release|Any CPU
9 | EndGlobalSection
10 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
11 | {370192F4-AE34-41A3-BE45-D4925300DA01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
12 | {370192F4-AE34-41A3-BE45-D4925300DA01}.Debug|Any CPU.Build.0 = Debug|Any CPU
13 | {370192F4-AE34-41A3-BE45-D4925300DA01}.Release|Any CPU.ActiveCfg = Release|Any CPU
14 | {370192F4-AE34-41A3-BE45-D4925300DA01}.Release|Any CPU.Build.0 = Release|Any CPU
15 | EndGlobalSection
16 | EndGlobal
17 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.LinuxFramebuffer/Ab4d.SharpEngine.Samples.LinuxFramebuffer.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Ab4d.SharpEngine.Samples.LinuxFramebuffer
5 | Ab4d.SharpEngine.Samples.LinuxFramebuffer
6 | Exe
7 | net8.0
8 | 3.0.9208
9 | enable
10 | enable
11 | true
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.LinuxFramebuffer/OutputDevice.cs:
--------------------------------------------------------------------------------
1 | namespace Ab4d.SharpEngine.Samples.LinuxFramebuffer;
2 |
3 | public abstract class OutputDevice
4 | {
5 | ///
6 | /// Screen width, in pixels.
7 | ///
8 | public int ScreenWidth;
9 |
10 | ///
11 | /// Screen height, in pixels.
12 | ///
13 | public int ScreenHeight;
14 |
15 | ///
16 | /// If true, display mode is RGBA, otherwise it is BGRA.
17 | ///
18 | public bool RgbaMode;
19 |
20 | public abstract void Initialize(string deviceName, int requestedWidth, int requestedHeight);
21 | public abstract unsafe void DisplayImageData(byte *data);
22 | public abstract void Cleanup();
23 | }
24 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.0.31611.283
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ab4d.SharpEngine.Samples.Maui", "Ab4d.SharpEngine.Samples.Maui\Ab4d.SharpEngine.Samples.Maui.csproj", "{6A982980-06F9-4CAE-BBE7-2A6D62F572BF}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {6A982980-06F9-4CAE-BBE7-2A6D62F572BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {6A982980-06F9-4CAE-BBE7-2A6D62F572BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {6A982980-06F9-4CAE-BBE7-2A6D62F572BF}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
17 | {6A982980-06F9-4CAE-BBE7-2A6D62F572BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
18 | {6A982980-06F9-4CAE-BBE7-2A6D62F572BF}.Release|Any CPU.Build.0 = Release|Any CPU
19 | {6A982980-06F9-4CAE-BBE7-2A6D62F572BF}.Release|Any CPU.Deploy.0 = Release|Any CPU
20 | EndGlobalSection
21 | GlobalSection(SolutionProperties) = preSolution
22 | HideSolutionNode = FALSE
23 | EndGlobalSection
24 | GlobalSection(ExtensibilityGlobals) = postSolution
25 | SolutionGuid = {61F7FB11-1E47-470C-91E2-47F8143E1572}
26 | EndGlobalSection
27 | EndGlobal
28 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/App.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace Ab4d.SharpEngine.Samples.Maui;
2 |
3 | public partial class App : Application
4 | {
5 | public App()
6 | {
7 | InitializeComponent();
8 | }
9 |
10 | protected override Window CreateWindow(IActivationState? activationState)
11 | {
12 | return new Window(new AppShell());
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/AppShell.xaml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/AppShell.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace Ab4d.SharpEngine.Samples.Maui;
2 |
3 | public partial class AppShell : Shell
4 | {
5 | public AppShell()
6 | {
7 | InitializeComponent();
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/IPlatformInputHelper.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.Common;
2 |
3 | namespace Ab4d.SharpEngine.Samples.Maui;
4 |
5 | public interface IPlatformInputHelper
6 | {
7 | bool IsCurrentPointerButtonAvailable { get; }
8 | bool IsCurrentKeyboardModifierAvailable { get; }
9 |
10 | PointerButtons GetCurrentPointerButtons();
11 | KeyboardModifiers GetCurrentKeyboardModifiers();
12 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/MainPage.xaml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/MauiProgram.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Extensions.Logging;
2 | using SkiaSharp.Views.Maui.Controls.Hosting;
3 |
4 | namespace Ab4d.SharpEngine.Samples.Maui;
5 |
6 | public static class MauiProgram
7 | {
8 | public static MauiApp CreateMauiApp()
9 | {
10 | var builder = MauiApp.CreateBuilder();
11 | builder
12 | .UseMauiApp()
13 | .UseSkiaSharp() // IMPORTANT: This is needed to be able to use SKCanvasView that is need for Ab4d.SharpEngine
14 | .ConfigureFonts(fonts =>
15 | {
16 | fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
17 | fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
18 | });
19 |
20 | #if DEBUG
21 | builder.Logging.AddDebug();
22 | #endif
23 |
24 | return builder.Build();
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/Android/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/Android/MainActivity.cs:
--------------------------------------------------------------------------------
1 | using Android.App;
2 | using Android.Content.PM;
3 | using Android.OS;
4 |
5 | namespace Ab4d.SharpEngine.Samples.Maui;
6 |
7 | [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, LaunchMode = LaunchMode.SingleTop, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
8 | public class MainActivity : MauiAppCompatActivity
9 | {
10 | }
11 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/Android/MainApplication.cs:
--------------------------------------------------------------------------------
1 | using Android.App;
2 | using Android.Runtime;
3 |
4 | namespace Ab4d.SharpEngine.Samples.Maui;
5 |
6 | [Application]
7 | public class MainApplication : MauiApplication
8 | {
9 | public MainApplication(IntPtr handle, JniHandleOwnership ownership)
10 | : base(handle, ownership)
11 | {
12 | }
13 |
14 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
15 | }
16 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/Android/PlatformInputHelper.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.Common;
2 |
3 | namespace Ab4d.SharpEngine.Samples.Maui;
4 |
5 | public class PlatformInputHelper : IPlatformInputHelper
6 | {
7 | public bool IsCurrentPointerButtonAvailable => false;
8 | public bool IsCurrentKeyboardModifierAvailable => false;
9 |
10 | public PointerButtons GetCurrentPointerButtons()
11 | {
12 | throw new NotSupportedException();
13 | }
14 |
15 | public KeyboardModifiers GetCurrentKeyboardModifiers()
16 | {
17 | throw new NotSupportedException();
18 | }
19 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/Android/Resources/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #512BD4
4 | #2B0B98
5 | #2B0B98
6 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/MacCatalyst/AppDelegate.cs:
--------------------------------------------------------------------------------
1 | using Foundation;
2 |
3 | namespace Ab4d.SharpEngine.Samples.Maui;
4 |
5 | [Register("AppDelegate")]
6 | public class AppDelegate : MauiUIApplicationDelegate
7 | {
8 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
9 | }
10 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/MacCatalyst/Entitlements.Debug.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | com.apple.security.get-task-allow
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/MacCatalyst/Entitlements.Release.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | com.apple.security.app-sandbox
7 |
8 | com.apple.security.network.client
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/MacCatalyst/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | UIDeviceFamily
15 |
16 | 2
17 |
18 | UIRequiredDeviceCapabilities
19 |
20 | arm64
21 |
22 | UISupportedInterfaceOrientations
23 |
24 | UIInterfaceOrientationPortrait
25 | UIInterfaceOrientationLandscapeLeft
26 | UIInterfaceOrientationLandscapeRight
27 |
28 | UISupportedInterfaceOrientations~ipad
29 |
30 | UIInterfaceOrientationPortrait
31 | UIInterfaceOrientationPortraitUpsideDown
32 | UIInterfaceOrientationLandscapeLeft
33 | UIInterfaceOrientationLandscapeRight
34 |
35 | XSAppIconAssets
36 | Assets.xcassets/appicon.appiconset
37 |
38 |
39 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/MacCatalyst/PlatformInputHelper.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.Common;
2 |
3 | namespace Ab4d.SharpEngine.Samples.Maui;
4 |
5 | public class PlatformInputHelper : IPlatformInputHelper
6 | {
7 | public bool IsCurrentPointerButtonAvailable => false;
8 | public bool IsCurrentKeyboardModifierAvailable => false;
9 |
10 | public PointerButtons GetCurrentPointerButtons()
11 | {
12 | throw new NotSupportedException();
13 | }
14 |
15 | public KeyboardModifiers GetCurrentKeyboardModifiers()
16 | {
17 | throw new NotSupportedException();
18 | }
19 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/MacCatalyst/Program.cs:
--------------------------------------------------------------------------------
1 | using ObjCRuntime;
2 | using UIKit;
3 |
4 | namespace Ab4d.SharpEngine.Samples.Maui;
5 |
6 | public class Program
7 | {
8 | // This is the main entry point of the application.
9 | static void Main(string[] args)
10 | {
11 | // if you want to use a different Application Delegate class from "AppDelegate"
12 | // you can specify it here.
13 | UIApplication.Main(args, null, typeof(AppDelegate));
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/Windows/App.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/Windows/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml;
2 |
3 | // To learn more about WinUI, the WinUI project structure,
4 | // and more about our project templates, see: http://aka.ms/winui-project-info.
5 |
6 | namespace Ab4d.SharpEngine.Samples.Maui.WinUI;
7 |
8 | ///
9 | /// Provides application-specific behavior to supplement the default Application class.
10 | ///
11 | public partial class App : MauiWinUIApplication
12 | {
13 | ///
14 | /// Initializes the singleton application object. This is the first line of authored code
15 | /// executed, and as such is the logical equivalent of main() or WinMain().
16 | ///
17 | public App()
18 | {
19 | this.InitializeComponent();
20 | }
21 |
22 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
23 | }
24 |
25 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/Windows/app.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 | true/PM
12 | PerMonitorV2, PerMonitor
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/iOS/AppDelegate.cs:
--------------------------------------------------------------------------------
1 | using Foundation;
2 |
3 | namespace Ab4d.SharpEngine.Samples.Maui;
4 |
5 | [Register("AppDelegate")]
6 | public class AppDelegate : MauiUIApplicationDelegate
7 | {
8 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
9 | }
10 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/iOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDisplayName
6 | Ab4d.SharpEngine.Samples.Maui
7 | CFBundleIdentifier
8 | com.ab4d.sharpengine.samples.maui.ios
9 | CFBundleShortVersionString
10 | 1.0
11 | CFBundleVersion
12 | 1.0
13 | LSRequiresIPhoneOS
14 |
15 | MinimumOSVersion
16 | 15.0
17 | UIDeviceFamily
18 |
19 | 1
20 | 2
21 |
22 | UILaunchStoryboardName
23 | LaunchScreen
24 | UIRequiredDeviceCapabilities
25 |
26 | armv7
27 |
28 | UISupportedInterfaceOrientations
29 |
30 | UIInterfaceOrientationPortrait
31 | UIInterfaceOrientationPortraitUpsideDown
32 | UIInterfaceOrientationLandscapeLeft
33 | UIInterfaceOrientationLandscapeRight
34 |
35 | UISupportedInterfaceOrientations~ipad
36 |
37 | UIInterfaceOrientationPortrait
38 | UIInterfaceOrientationPortraitUpsideDown
39 | UIInterfaceOrientationLandscapeLeft
40 | UIInterfaceOrientationLandscapeRight
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/iOS/PlatformInputHelper.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.Common;
2 |
3 | namespace Ab4d.SharpEngine.Samples.Maui;
4 |
5 | public class PlatformInputHelper : IPlatformInputHelper
6 | {
7 | public bool IsCurrentPointerButtonAvailable => false;
8 | public bool IsCurrentKeyboardModifierAvailable => false;
9 |
10 | public PointerButtons GetCurrentPointerButtons()
11 | {
12 | throw new NotSupportedException();
13 | }
14 |
15 | public KeyboardModifiers GetCurrentKeyboardModifiers()
16 | {
17 | throw new NotSupportedException();
18 | }
19 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/iOS/PrivacyInfo.xcprivacy:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NSPrivacyAccessedAPIType
6 | NSPrivacyAccessedAPICategoryFileTimestamp
7 | NSPrivacyAccessedAPITypeReasons
8 |
9 | C617.1
10 |
11 |
12 |
13 | NSPrivacyAccessedAPIType
14 | NSPrivacyAccessedAPICategorySystemBootTime
15 | NSPrivacyAccessedAPITypeReasons
16 |
17 | 35F9.1
18 |
19 |
20 |
21 | NSPrivacyAccessedAPIType
22 | NSPrivacyAccessedAPICategoryDiskSpace
23 | NSPrivacyAccessedAPITypeReasons
24 |
25 | E174.1
26 |
27 |
28 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Platforms/iOS/Program.cs:
--------------------------------------------------------------------------------
1 | using ObjCRuntime;
2 | using UIKit;
3 |
4 | namespace Ab4d.SharpEngine.Samples.Maui;
5 |
6 | public class Program
7 | {
8 | // This is the main entry point of the application.
9 | static void Main(string[] args)
10 | {
11 | // if you want to use a different Application Delegate class from "AppDelegate"
12 | // you can specify it here.
13 | UIApplication.Main(args, null, typeof(AppDelegate));
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "Windows Machine": {
4 | "commandName": "MsixPackage",
5 | "nativeDebugging": false
6 | }
7 | }
8 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Resources/AppIcon/appicon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Resources/AppIcon/appiconfg.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Resources/Fonts/OpenSans-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Maui/Resources/Fonts/OpenSans-Regular.ttf
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Resources/Fonts/OpenSans-Semibold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Maui/Resources/Fonts/OpenSans-Semibold.ttf
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Resources/Images/dotnet_bot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Maui/Resources/Images/dotnet_bot.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Resources/Raw/AboutAssets.txt:
--------------------------------------------------------------------------------
1 | Any raw assets you want to be deployed with your application can be placed in
2 | this directory (and child directories). Deployment of the asset to your application
3 | is automatically handled by the following `MauiAsset` Build Action within your `.csproj`.
4 |
5 |
6 |
7 | These files will be deployed with your package and will be accessible using Essentials:
8 |
9 | async Task LoadMauiAsset()
10 | {
11 | using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt");
12 | using var reader = new StreamReader(stream);
13 |
14 | var contents = reader.ReadToEnd();
15 | }
16 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/Resources/Splash/splash.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Maui/readme.md:
--------------------------------------------------------------------------------
1 | # Ab4d.SharpEngine.Samples.Maui
2 |
3 | This solution shows how to create an MAUI app with Ab4d.SharpEngine that can run on Windows, macOS, Android and iOS (Linux is not supported by MAUI).
4 |
5 | This sample shows only a few featrues of the Ab4d.SharpEngine library. See the samples for Avalonia, WFP, WinUI or WinForms to see the sample for more features of the engine.
6 |
7 | To see how to build the app for **macOS** and **iOS**, see
8 | [Quick building instructions for macOS and iOS](https://github.com/ab4d/Ab4d.SharpEngine.Samples/blob/main/README.md#quick-building-instructions-for-macos-and-ios) or
9 | [Step by step instructions to run the samples on macOS and iOS](https://github.com/ab4d/Ab4d.SharpEngine.Samples#step-by-step-instructions-to-run-the-samples-on-macos-and-ios)
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.SilkNet.Glfw.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.0.31912.275
5 | MinimumVisualStudioVersion = 17.0.7.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ab4d.SharpEngine.Samples.SilkNet.Glfw", "Ab4d.SharpEngine.Samples.SilkNet\Ab4d.SharpEngine.Samples.SilkNet.Glfw.csproj", "{A7496B36-893C-4209-90A0-828F1F076257}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {A7496B36-893C-4209-90A0-828F1F076257}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {A7496B36-893C-4209-90A0-828F1F076257}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {A7496B36-893C-4209-90A0-828F1F076257}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {A7496B36-893C-4209-90A0-828F1F076257}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {CBB952DD-B849-40FE-BB94-B5D3D4B622FF}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.SilkNet.Sdl.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.0.31912.275
5 | MinimumVisualStudioVersion = 17.0.7.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ab4d.SharpEngine.Samples.SilkNet.Sdl", "Ab4d.SharpEngine.Samples.SilkNet\Ab4d.SharpEngine.Samples.SilkNet.Sdl.csproj", "{A7496B36-893C-4209-90A0-828F1F076257}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {A7496B36-893C-4209-90A0-828F1F076257}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {A7496B36-893C-4209-90A0-828F1F076257}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {A7496B36-893C-4209-90A0-828F1F076257}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {A7496B36-893C-4209-90A0-828F1F076257}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {3F2E274E-1933-4CA2-BD00-2BCF1CF8FB2D}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.SilkNet/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Ab4d.SharpEngine.Samples.CrossPlatform
4 | {
5 | class Program
6 | {
7 | #if WPF
8 | [STAThread]
9 | #endif
10 | static void Main(string[] args)
11 | {
12 | var sharpEngineCrossPlatformSamplesRunner = new SharpEngineSamplesRunner();
13 | sharpEngineCrossPlatformSamplesRunner.Run();
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.SilkNet/StandardPresentation/IPresentationControl.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Ab4d.SharpEngine.Common;
3 |
4 | namespace Ab4d.StandardPresentation
5 | {
6 | public interface IPresentationControl : IDisposable
7 | {
8 | float Left { get; }
9 | float Top { get; }
10 | float Width { get; }
11 | float Height { get; }
12 | float DpiScaleX { get; }
13 | float DpiScaleY { get; }
14 | string Title { get; set; }
15 | bool IsMinimized { get; } // Note that when this value is changed, the SizeChanged event is called
16 | IntPtr WindowHandle { get; }
17 | event EventHandler Loaded;
18 | event EventHandler Closing;
19 | event EventHandler Closed;
20 | event SizeChangeEventHandler SizeChanged;
21 | event MouseButtonEventHandler MouseDown;
22 | event MouseButtonEventHandler MouseUp;
23 | event MouseMoveEventHandler MouseMove;
24 | event MouseWheelEventHandler MouseWheel;
25 | void SetSize(int width, int height);
26 | void Show();
27 | void Close();
28 | void StartRenderLoop(Action renderCallback);
29 | void GetMouseState(out float x, out float y, out PointerButtons pressedButtons);
30 | ulong CreateVulkanSurface(IntPtr vulkanInstance); // When non zero value is returned then the returned ulong surfaceHandle is used to create the surface (new VkSurfaceKHR(surfaceHandle))
31 |
32 | bool IsMouseCaptureSupported { get; }
33 | void CaptureMouse();
34 | void ReleaseMouseCapture();
35 |
36 | bool IsKeyPressed(string keyName);
37 | KeyboardModifiers GetKeyboardModifiers();
38 | }
39 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.SilkNet/StandardPresentation/MouseButtonEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Ab4d.SharpEngine.Common;
3 |
4 | namespace Ab4d.StandardPresentation
5 | {
6 | public delegate void MouseButtonEventHandler(object sender, MouseButtonEventArgs e);
7 |
8 | public class MouseButtonEventArgs : MouseEventArgs
9 | {
10 | /// Gets the button associated with the event.
11 | /// The button which was pressed.
12 | public PointerButtons ChangedButton { get; }
13 |
14 | public MouseButtonEventArgs(PointerButtons changedButton, long timeStamp = 0)
15 | : base(timeStamp)
16 | {
17 | ChangedButton = changedButton;
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.SilkNet/StandardPresentation/MouseEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Ab4d.StandardPresentation
4 | {
5 | public delegate void MouseEventHandler(object sender, MouseEventArgs e);
6 |
7 | public class MouseEventArgs : EventArgs
8 | {
9 | public long TimeStamp { get; }
10 |
11 | public MouseEventArgs(long timeStamp = 0)
12 | {
13 | if (timeStamp == 0)
14 | timeStamp = DateTime.Now.Ticks;
15 |
16 | this.TimeStamp = timeStamp;
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.SilkNet/StandardPresentation/MouseMoveEventArgs.cs:
--------------------------------------------------------------------------------
1 | namespace Ab4d.StandardPresentation
2 | {
3 | public delegate void MouseMoveEventHandler(object sender, MouseMoveEventArgs e);
4 |
5 | public class MouseMoveEventArgs : MouseEventArgs
6 | {
7 | public float X { get; }
8 | public float Y { get; }
9 |
10 | public MouseMoveEventArgs(float x, float y, long timeStamp = 0)
11 | : base(timeStamp)
12 | {
13 | X = x;
14 | Y = y;
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.SilkNet/StandardPresentation/MouseWheelEventArgs.cs:
--------------------------------------------------------------------------------
1 | namespace Ab4d.StandardPresentation
2 | {
3 | public delegate void MouseWheelEventHandler(object sender, MouseWheelEventArgs e);
4 |
5 | public class MouseWheelEventArgs : MouseEventArgs
6 | {
7 | public float DeltaX { get; }
8 | public float DeltaY { get; }
9 |
10 | public MouseWheelEventArgs(float deltaX, float deltaY, long timeStamp = 0)
11 | : base(timeStamp)
12 | {
13 | DeltaX = deltaX;
14 | DeltaY = deltaY;
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.SilkNet/StandardPresentation/SizeChangeEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Ab4d.StandardPresentation
4 | {
5 | public delegate void SizeChangeEventHandler(object sender, SizeChangeEventArgs e);
6 |
7 | public class SizeChangeEventArgs : EventArgs
8 | {
9 | public float Width { get; }
10 | public float Height { get; }
11 |
12 | public SizeChangeEventArgs(float width, float height)
13 | {
14 | Width = width;
15 | Height = height;
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.UnoPlatform.txt:
--------------------------------------------------------------------------------
1 | To open the Uno platform sample, open the Ab4d.SharpEngine.Samples.UnoPlatform.sln solution
2 | from the Ab4d.SharpEngine.Samples.UnoPlatform folder.
3 |
4 | This solution cannot be in the root folder as other solutions, because it
5 | uses the centralized .Net project configuration that is required to use Uno.Sdk.
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.UnoPlatform/Ab4d.SharpEngine.Samples.UnoPlatform/Ab4d.SharpEngine.Samples.UnoPlatform.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | net9.0-desktop
4 |
5 | Exe
6 | true
7 |
8 |
9 | Ab4d.SharpEngine.Samples.UnoPlatform
10 |
11 | com.ab4d.sharpengine-samples-unoplatform
12 |
13 | 1.0
14 | 1
15 |
16 | Ab4d.SharpEngine.Samples.UnoPlatform
17 |
18 | Ab4d.SharpEngine.Samples.UnoPlatform powered by Uno Platform.
19 |
20 |
24 |
25 | Lottie;
26 | Toolkit;
27 | Mvvm;
28 | ThemeService;
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.UnoPlatform/Ab4d.SharpEngine.Samples.UnoPlatform/App.xaml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.UnoPlatform/Ab4d.SharpEngine.Samples.UnoPlatform/Assets/Icons/icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
43 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.UnoPlatform/Ab4d.SharpEngine.Samples.UnoPlatform/Assets/SharedAssets.md:
--------------------------------------------------------------------------------
1 | # Shared Assets
2 |
3 | See documentation about assets here: https://github.com/unoplatform/uno/blob/master/doc/articles/features/working-with-assets.md
4 |
5 | ## Here is a cheat sheet
6 |
7 | 1. Add the image file to the `Assets` directory of a shared project.
8 | 2. Set the build action to `Content`.
9 | 3. (Recommended) Provide an asset for various scales/dpi
10 |
11 | ### Examples
12 |
13 | ```text
14 | \Assets\Images\logo.scale-100.png
15 | \Assets\Images\logo.scale-200.png
16 | \Assets\Images\logo.scale-400.png
17 |
18 | \Assets\Images\scale-100\logo.png
19 | \Assets\Images\scale-200\logo.png
20 | \Assets\Images\scale-400\logo.png
21 | ```
22 |
23 | ### Table of scales
24 |
25 | | Scale | WinUI | iOS/MacCatalyst | Android |
26 | |-------|:-----------:|:---------------:|:-------:|
27 | | `100` | scale-100 | @1x | mdpi |
28 | | `125` | scale-125 | N/A | N/A |
29 | | `150` | scale-150 | N/A | hdpi |
30 | | `200` | scale-200 | @2x | xhdpi |
31 | | `300` | scale-300 | @3x | xxhdpi |
32 | | `400` | scale-400 | N/A | xxxhdpi |
33 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.UnoPlatform/Ab4d.SharpEngine.Samples.UnoPlatform/ColorExtensions.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.Common;
2 |
3 | namespace Ab4d.SharpEngine.Samples.UnoPlatform;
4 |
5 | internal static class ColorExtensions
6 | {
7 | public static Color4 ToColor4(this SolidColorBrush? brush)
8 | {
9 | if (brush == null)
10 | return Color4.Transparent;
11 |
12 | return new Color4(
13 | brush.Color.R / 255f,
14 | brush.Color.G / 255f,
15 | brush.Color.B / 255f,
16 | brush.Color.A / 255f
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.UnoPlatform/Ab4d.SharpEngine.Samples.UnoPlatform/GlobalUsings.cs:
--------------------------------------------------------------------------------
1 | global using System.Collections.Immutable;
2 | global using Microsoft.Extensions.DependencyInjection;
3 | global using Microsoft.Extensions.Logging;
4 | global using ApplicationExecutionState = Windows.ApplicationModel.Activation.ApplicationExecutionState;
5 | global using CommunityToolkit.Mvvm.ComponentModel;
6 | global using CommunityToolkit.Mvvm.Input;
7 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.UnoPlatform/Ab4d.SharpEngine.Samples.UnoPlatform/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.UnoPlatform/Ab4d.SharpEngine.Samples.UnoPlatform/Platforms/Desktop/Program.cs:
--------------------------------------------------------------------------------
1 | using Uno.UI.Runtime.Skia;
2 |
3 | namespace Ab4d.SharpEngine.Samples.UnoPlatform;
4 |
5 | public class Program
6 | {
7 | [STAThread]
8 | public static void Main(string[] args)
9 | {
10 | App.InitializeLogging();
11 |
12 | var host = SkiaHostBuilder.Create()
13 | .App(() => new App())
14 | .UseX11()
15 | .UseLinuxFrameBuffer()
16 | .UseMacOS()
17 | .UseWindows()
18 | .Build();
19 |
20 | host.Run();
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.UnoPlatform/Ab4d.SharpEngine.Samples.UnoPlatform/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "iisSettings": {
3 | "windowsAuthentication": false,
4 | "anonymousAuthentication": true,
5 | "iisExpress": {
6 | "applicationUrl": "http://localhost:8080",
7 | "sslPort": 0
8 | }
9 | },
10 | "profiles": {
11 | "Ab4d.SharpEngine.Samples.UnoPlatform (Desktop)": {
12 | "commandName": "Project",
13 | "compatibleTargetFramework": "desktop"
14 | },
15 | "Ab4d.SharpEngine.Samples.UnoPlatform (Desktop WSL2)": {
16 | "commandName": "WSL2",
17 | "commandLineArgs": "{ProjectDir}/bin/Debug/net9.0-desktop/Ab4d.SharpEngine.Samples.UnoPlatform.dll",
18 | "distributionName": "",
19 | "compatibleTargetFramework": "desktop"
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.UnoPlatform/Ab4d.SharpEngine.Samples.UnoPlatform/app.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
21 | true/PM
22 | PerMonitorV2, PerMonitor
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.UnoPlatform/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 | enable
4 | enable
5 | true
6 |
7 |
13 | $(NoWarn);NU1507;NETSDK1201;PRI257
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.UnoPlatform/Directory.Build.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.UnoPlatform/Directory.Packages.props:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.UnoPlatform/global.json:
--------------------------------------------------------------------------------
1 | {
2 | // To update the version of Uno please update the version of the Uno.Sdk here. See https://aka.platform.uno/upgrade-uno-packages for more information.
3 | "msbuild-sdks": {
4 | "Uno.Sdk": "5.5.54"
5 | },
6 | "sdk":{
7 | "allowPrerelease": true
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinForms.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.0.31912.275
5 | MinimumVisualStudioVersion = 17.0.7.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ab4d.SharpEngine.Samples.WinForms", "Ab4d.SharpEngine.Samples.WinForms\Ab4d.SharpEngine.Samples.WinForms.csproj", "{8A9A49CB-A1CE-49BB-B91E-71DB42049687}"
7 | EndProject
8 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ab4d.SharpEngine.Samples.Common", "Ab4d.SharpEngine.Samples.Common\Ab4d.SharpEngine.Samples.Common.csproj", "{B4B679E0-6420-42D1-A2BD-0CF48542304B}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {8A9A49CB-A1CE-49BB-B91E-71DB42049687}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {8A9A49CB-A1CE-49BB-B91E-71DB42049687}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {8A9A49CB-A1CE-49BB-B91E-71DB42049687}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {8A9A49CB-A1CE-49BB-B91E-71DB42049687}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {B4B679E0-6420-42D1-A2BD-0CF48542304B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {B4B679E0-6420-42D1-A2BD-0CF48542304B}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {B4B679E0-6420-42D1-A2BD-0CF48542304B}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {B4B679E0-6420-42D1-A2BD-0CF48542304B}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {258EBC95-185F-40A3-AF27-CC02A3B106DA}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinForms/Program.cs:
--------------------------------------------------------------------------------
1 | namespace Ab4d.SharpEngine.Samples.WinForms
2 | {
3 | internal static class Program
4 | {
5 | ///
6 | /// The main entry point for the application.
7 | ///
8 | [STAThread]
9 | static void Main()
10 | {
11 | // To customize application configuration such as set high DPI settings or default font,
12 | // see https://aka.ms/applicationconfiguration.
13 | ApplicationConfiguration.Initialize();
14 | Application.SetHighDpiMode(HighDpiMode.PerMonitorV2); // Similar to PerMonitor, but enables child window DPI change notification, improved scaling of comctl32 controls, and dialog scaling.
15 |
16 | Application.Run(new SamplesForm());
17 |
18 | // Uncomment to run RenderFormSample:
19 | //using (var game = new RenderFormSample())
20 | // game.Run();
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinForms/Resources/ab4d-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinForms/Resources/ab4d-logo.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinForms/Resources/new_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinForms/Resources/new_icon.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinForms/Resources/sharp-engine-logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinForms/Resources/sharp-engine-logo.ico
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinForms/Resources/updated_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinForms/Resources/updated_icon.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinForms/Resources/warningIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinForms/Resources/warningIcon.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinForms/Titles/QuickStartTitle.md:
--------------------------------------------------------------------------------
1 | # Quick Start
2 |
3 | Quick start section shows how to use the **SharpEngineSceneView** control.
4 |
5 | SharpEngineSceneView is a **WinForms control** that can show SharpEngine's SceneView in a WinForms application.
6 | The SharpEngineSceneView creates the VulkanDevice, Scene and SceneView objects.
7 |
8 | **Scene** is used to define the 3D objects (added to Scene.RootNode) and lights (added to Scene.Lights collection).
9 | **SceneView** is a view of the Scene and can render the objects in the Scene. It provides a Camera and size of the view. Scene and SceneView objects are created in SharpEngineSceneView's constructor.
10 |
11 | **VulkanDevice** object is created when the SharpEngineSceneView is initialized (OnLoaded) or when Initialize method is called.
12 | It is also possible to call Initialize and pass an existing VulkanDevice as parameter. This is used to share resources.
13 |
14 | **PresentationType** property defines how the rendered 3D scene is presented to the Avalonia UI. SharpEngineSceneView for Avalonia supports the following presentation types:
15 | - **SharedTexture**: The 3D scene will be rendered to the Handle of the SharpEngineSceneView. To render other WinForms controls on top of SharpEngineSceneView, set the index of the SharpEngineSceneView as the last control in the Form.
16 | - **WriteableBitmap**: In this mode, the rendered texture is copied to main memory into a WinForms's Bitmap. This is much slower because of additional memory traffic.
17 | - **OverlayTexture**: This mode is currently not supported by SharpEngineSceneView for WinForms.
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinForms/Titles/RenderFormSample.md:
--------------------------------------------------------------------------------
1 | # RenderFormSample
2 |
3 |
4 |
5 |

6 |
7 |
8 | To see how to render to the whole Form (Window) at the maximum speed (as many frames per second as possible),
9 | see the **RenderFormSample**.
10 |
11 | It can be started by opening the Program.cs file, commenting the start of SamplesForm and uncommenting the start of RenderFormSample:
12 | ```
13 | //Application.Run(new SamplesForm());
14 |
15 | // Uncomment to run RenderFormSample:
16 | using (var game = new RenderFormSample())
17 | game.Run();
18 | ```
19 |
20 | Then restart the application.
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinForms/UIProvider/ButtonUIElement.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 | using Ab4d.SharpEngine.Samples.Common;
4 |
5 | namespace Ab4d.SharpEngine.Samples.WinForms.UIProvider;
6 |
7 | public class ButtonUIElement : WinFormsUIElement
8 | {
9 | private Button _button;
10 |
11 | private Action _clickedAction;
12 |
13 | public ButtonUIElement(WinFormsUIProvider winFormsUIProvider, string text, Action clickedAction, double width = 0, bool alignLeft = false)
14 | : base(winFormsUIProvider)
15 | {
16 | _clickedAction = clickedAction;
17 |
18 | var (textToShow, toolTip) = winFormsUIProvider.ParseTextAndToolTip(text);
19 |
20 | _button = new Button()
21 | {
22 | Text = textToShow,
23 | Font = winFormsUIProvider.Font,
24 | AutoSize = true,
25 | Margin = new Padding(2, 2, 2, 2)
26 | };
27 |
28 | if (width > 0)
29 | _button.Width = (int)(width * winFormsUIProvider.UIScale);
30 |
31 | //if (alignLeft)
32 | // _button.HorizontalAlignment = HorizontalAlignment.Left;
33 |
34 | if (toolTip != null)
35 | winFormsUIProvider.SetToolTip(_button, toolTip);
36 |
37 | _button.Click += (sender, args) => _clickedAction?.Invoke();
38 |
39 | WinFormsControl = _button;
40 | }
41 |
42 |
43 | public override string? GetText() => _button.Text as string;
44 |
45 | public override ICommonSampleUIElement SetText(string? text)
46 | {
47 | _button.Text = text;
48 | return this;
49 | }
50 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinForms/UIProvider/CheckBoxUIElement.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.Samples.Common;
2 | using System;
3 |
4 | namespace Ab4d.SharpEngine.Samples.WinForms.UIProvider;
5 |
6 | public class CheckBoxUIElement : WinFormsUIElement
7 | {
8 | private CheckBox _checkBox;
9 |
10 | private Action _checkedChangedAction;
11 |
12 | public CheckBoxUIElement(WinFormsUIProvider winFormsUIProvider, string text, bool isInitiallyChecked, Action checkedChangedAction)
13 | : base(winFormsUIProvider)
14 | {
15 | _checkedChangedAction = checkedChangedAction;
16 |
17 | var (textToShow, toolTip) = winFormsUIProvider.ParseTextAndToolTip(text);
18 |
19 | _checkBox = new CheckBox()
20 | {
21 | Text = textToShow,
22 | Font = winFormsUIProvider.Font,
23 | AutoSize = true
24 | };
25 |
26 | if (isInitiallyChecked)
27 | _checkBox.Checked = true;
28 |
29 | if (toolTip != null)
30 | winFormsUIProvider.SetToolTip(_checkBox, toolTip);
31 |
32 | _checkBox.CheckedChanged += (sender, args) => _checkedChangedAction?.Invoke(_checkBox.Checked);
33 |
34 | WinFormsControl = _checkBox;
35 | }
36 |
37 | public override string? GetText() => _checkBox.Text as string;
38 |
39 | public override ICommonSampleUIElement SetText(string? text)
40 | {
41 | _checkBox.Text = text;
42 | return this;
43 | }
44 |
45 | protected override void OnSetColor(Color winFormsColor)
46 | {
47 | _checkBox.ForeColor = winFormsColor;
48 | }
49 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/Diagnostics-gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/Diagnostics-gray.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/Diagnostics.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/Diagnostics.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/Settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/Settings.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/StoreLogo.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/ab4d-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/ab4d-logo.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/new_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/new_icon.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/photo_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/photo_icon.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/sharp-engine-logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/sharp-engine-logo.ico
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/updated_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/updated_icon.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Assets/warningIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.WinUI/Assets/warningIcon.png
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Common/CommonTitleUserControl.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/CommonWinUISampleUserControl.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Diagnostics/LogMessagesWindow.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/GlobalSharpEngineSettings.cs:
--------------------------------------------------------------------------------
1 | namespace Ab4d.SharpEngine.Samples.WinUI;
2 |
3 | public static class GlobalSharpEngineSettings
4 | {
5 | public static int MultisampleCount { get; set; }
6 |
7 | public static float SupersamplingCount { get; set; }
8 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
13 |
14 |
15 | Ab4d.SharpEngine.Samples.WinUI
16 | User
17 | Assets\StoreLogo.png
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "Ab4d.SharpEngine.Samples.WinUI (Package)": {
4 | "commandName": "MsixPackage"
5 | },
6 | "Ab4d.SharpEngine.Samples.WinUI (Unpackaged)": {
7 | "commandName": "Project"
8 | }
9 | }
10 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/QuickStart/SharpEngineSceneViewInCode.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Titles/IntroductionPage.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/Titles/QuickStartTitle.md:
--------------------------------------------------------------------------------
1 | # Quick Start
2 |
3 | Quick start section shows how to use the **SharpEngineSceneView** control.
4 |
5 | SharpEngineSceneView is a **WinUI control** that can show SharpEngine's SceneView in a WinUI app.
6 | The SharpEngineSceneView creates the VulkanDevice, Scene and SceneView objects.
7 |
8 | **Scene** is used to define the 3D objects (added to Scene.RootNode) and lights (added to Scene.Lights collection).
9 | **SceneView** is a view of the Scene and can render the objects in the Scene. It provides a Camera and size of the view. Scene and SceneView objects are created in SharpEngineSceneView's constructor.
10 |
11 | **VulkanDevice** object is created when the SharpEngineSceneView is initialized (OnLoaded) or when Initialize method is called.
12 | It is also possible to call Initialize and pass an existing VulkanDevice as parameter. This is used to share resources.
13 |
14 | **PresentationType** property defines how the rendered 3D scene is presented to the WinUI. SharpEngineSceneView for WinUI supports the following presentation types:
15 | - **SharedTexture**: The rendered 3D scene will be shared with WinUI composition engine so that
16 | the rendered image will stay on the graphics card.
17 | This allows composition of 3D scene with other WinUI objects.
18 | - **WriteableBitmap**: If SharedTexture mode is not possible, then WriteableBitmap presentation type is used.
19 | In this mode, the rendered texture is copied to main memory into a WinUI's WriteableBitmap.
20 | This is much slower because of additional memory traffic.
21 | - **OverlayTexture**: This mode is currently not supported by SharpEngineSceneView for WinUI.
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/UIProvider/ButtonUIElement.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 | using Ab4d.SharpEngine.Samples.Common;
4 | using Microsoft.UI.Xaml;
5 | using Microsoft.UI.Xaml.Controls;
6 |
7 | namespace Ab4d.SharpEngine.Samples.WinUI.UIProvider;
8 |
9 | public class ButtonUIElement : WinUIElement
10 | {
11 | private Button _button;
12 |
13 | private Action _clickedAction;
14 |
15 | public ButtonUIElement(WinUIProvider winUiProvider, string text, Action clickedAction, double width = 0, bool alignLeft = false)
16 | : base(winUiProvider)
17 | {
18 | _clickedAction = clickedAction;
19 |
20 | var (textToShow, toolTip) = winUiProvider.ParseTextAndToolTip(text);
21 |
22 | _button = new Button()
23 | {
24 | Content = textToShow,
25 | FontSize = winUiProvider.FontSize,
26 | };
27 |
28 | if (width > 0 )
29 | _button.Width = width;
30 |
31 | if (alignLeft)
32 | _button.HorizontalAlignment = HorizontalAlignment.Left;
33 |
34 | if (toolTip != null)
35 | ToolTipService.SetToolTip(_button, toolTip);
36 |
37 | _button.Click += (sender, args) => _clickedAction?.Invoke();
38 |
39 | Element = _button;
40 | }
41 |
42 |
43 | public override string? GetText() => _button.Content as string;
44 |
45 | public override ICommonSampleUIElement SetText(string? text)
46 | {
47 | _button.Content = text;
48 | return this;
49 | }
50 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/UIProvider/MarkdownUIElement.cs:
--------------------------------------------------------------------------------
1 | using Windows.UI;
2 | using Ab4d.SharpEngine.Samples.Common;
3 | using Ab4d.SharpEngine.Samples.Common.Utils;
4 | using Ab4d.SharpEngine.Samples.WinUI.Common;
5 | using Ab4d.SharpEngine.WinUI;
6 | using Microsoft.UI.Xaml.Controls;
7 | using static System.Net.Mime.MediaTypeNames;
8 |
9 | namespace Ab4d.SharpEngine.Samples.WinUI.UIProvider;
10 |
11 | public class MarkdownUIElement : WinUIElement
12 | {
13 | private string _markdownText;
14 | private TextBlock _createdTextBlock;
15 | private WinUIMarkdownTextCreator _markdownTextCreator;
16 |
17 | public MarkdownUIElement(WinUIProvider winUIProvider, string markdownText, float fontSize = 0)
18 | : base(winUIProvider)
19 | {
20 | _markdownText = markdownText;
21 |
22 | _markdownTextCreator = new WinUIMarkdownTextCreator();
23 |
24 | if (fontSize > 0)
25 | _markdownTextCreator.FontSize = fontSize;
26 |
27 | _createdTextBlock = _markdownTextCreator.Create(markdownText) as TextBlock;
28 |
29 | Element = _createdTextBlock;
30 | }
31 |
32 | public override string? GetText() => _markdownText;
33 |
34 | public override ICommonSampleUIElement SetText(string? text)
35 | {
36 | if (text == null)
37 | {
38 | _createdTextBlock.Text = "";
39 | }
40 | else
41 | {
42 | _markdownTextCreator.Update(text);
43 | }
44 |
45 | return this;
46 | }
47 |
48 |
49 | protected override void OnSetColor(Color winUiColor)
50 | {
51 | _markdownTextCreator.TextColor = winUiColor.ToColor3();
52 | _markdownTextCreator.Update(_markdownText);
53 | }
54 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.WinUI/app.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 | true/PM
12 | PerMonitorV2, PerMonitor
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.0.31912.275
5 | MinimumVisualStudioVersion = 17.0.7.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ab4d.SharpEngine.Samples.Wpf", "Ab4d.SharpEngine.Samples.Wpf\Ab4d.SharpEngine.Samples.Wpf.csproj", "{7A8E6285-54B7-400A-9E21-9D6B900753D6}"
7 | EndProject
8 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ab4d.SharpEngine.Samples.Common", "Ab4d.SharpEngine.Samples.Common\Ab4d.SharpEngine.Samples.Common.csproj", "{B4B679E0-6420-42D1-A2BD-0CF48542304B}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {7A8E6285-54B7-400A-9E21-9D6B900753D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {7A8E6285-54B7-400A-9E21-9D6B900753D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {7A8E6285-54B7-400A-9E21-9D6B900753D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {7A8E6285-54B7-400A-9E21-9D6B900753D6}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {B4B679E0-6420-42D1-A2BD-0CF48542304B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {B4B679E0-6420-42D1-A2BD-0CF48542304B}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {B4B679E0-6420-42D1-A2BD-0CF48542304B}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {B4B679E0-6420-42D1-A2BD-0CF48542304B}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {AA1A00DE-2333-4619-B189-6A8C8E3FD347}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/Advanced/MultipleSceneViewsSample.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Data;
5 | using System.Linq;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 |
9 | namespace Ab4d.SharpEngine.Samples.Wpf
10 | {
11 | ///
12 | /// Interaction logic for App.xaml
13 | ///
14 | public partial class App : Application
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | [assembly: ThemeInfo(
4 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
5 | //(used if a resource is not found in the page,
6 | // or application resource dictionaries)
7 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
8 | //(used if a resource is not found in the page,
9 | // app, or any theme specific resource dictionaries)
10 | )]
11 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/Common/CommonSamplesWpfRunner.cs:
--------------------------------------------------------------------------------
1 | namespace Ab4d.SharpEngine.Samples.Wpf.Common;
2 |
3 | public class CommonSamplesWpfRunner
4 | {
5 |
6 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/Common/CommonTitlePage.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/Common/MarkdownTestPage.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/Common/SingleSceneViewSample.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 |
3 | namespace Ab4d.SharpEngine.Samples.Wpf.Common;
4 |
5 | public abstract class SingleSceneViewSample : Page
6 | {
7 |
8 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/CommonWpfSamplePage.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/Diagnostics/LogMessagesWindow.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/GlobalSharpEngineSettings.cs:
--------------------------------------------------------------------------------
1 | namespace Ab4d.SharpEngine.Samples.Wpf;
2 |
3 | public static class GlobalSharpEngineSettings
4 | {
5 | public static int MultisampleCount { get; set; }
6 |
7 | public static float SupersamplingCount { get; set; }
8 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/QuickStart/SharpEngineSceneViewInCode.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/Resources/sharp-engine-logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/Ab4d.SharpEngine.Samples.Wpf/Resources/sharp-engine-logo.ico
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/Titles/IntroductionPage.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/UIProvider/ButtonUIElement.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 | using System;
3 | using System.Windows;
4 | using Ab4d.SharpEngine.Samples.Common;
5 |
6 | namespace Ab4d.SharpEngine.Samples.Wpf.UIProvider;
7 |
8 | public class ButtonUIElement : WpfUIElement
9 | {
10 | private Button _button;
11 |
12 | private Action _clickedAction;
13 |
14 | public ButtonUIElement(WpfUIProvider wpfUIProvider, string text, Action clickedAction, double width = 0, bool alignLeft = false)
15 | : base(wpfUIProvider)
16 | {
17 | _clickedAction = clickedAction;
18 |
19 | var (textToShow, toolTip) = wpfUIProvider.ParseTextAndToolTip(text);
20 |
21 | _button = new Button()
22 | {
23 | Content = textToShow,
24 | FontSize = wpfUIProvider.FontSize,
25 | };
26 |
27 | if (width > 0 )
28 | _button.Width = width;
29 |
30 | if (alignLeft)
31 | _button.HorizontalAlignment = HorizontalAlignment.Left;
32 |
33 | if (toolTip != null)
34 | _button.ToolTip = toolTip;
35 |
36 | _button.Click += (sender, args) => _clickedAction?.Invoke();
37 |
38 | WpfElement = _button;
39 | }
40 |
41 |
42 | public override string? GetText() => _button.Content as string;
43 |
44 | public override ICommonSampleUIElement SetText(string? text)
45 | {
46 | _button.Content = text;
47 | return this;
48 | }
49 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/UIProvider/CheckBoxUIElement.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.Samples.Common;
2 | using System;
3 | using System.Windows.Controls;
4 | using System.Windows.Media;
5 |
6 | namespace Ab4d.SharpEngine.Samples.Wpf.UIProvider;
7 |
8 | public class CheckBoxUIElement : WpfUIElement
9 | {
10 | private CheckBox _checkBox;
11 |
12 | private Action _checkedChangedAction;
13 |
14 | public CheckBoxUIElement(WpfUIProvider wpfUIProvider, string text, bool isInitiallyChecked, Action checkedChangedAction)
15 | : base(wpfUIProvider)
16 | {
17 | _checkedChangedAction = checkedChangedAction;
18 |
19 | var (textToShow, toolTip) = wpfUIProvider.ParseTextAndToolTip(text);
20 |
21 | _checkBox = new CheckBox()
22 | {
23 | Content = textToShow,
24 | FontSize = wpfUIProvider.FontSize,
25 | };
26 |
27 | if (isInitiallyChecked)
28 | _checkBox.IsChecked = true;
29 |
30 | if (toolTip != null)
31 | _checkBox.ToolTip = toolTip;
32 |
33 | _checkBox.Checked += (sender, args) => _checkedChangedAction?.Invoke(true);
34 | _checkBox.Unchecked += (sender, args) => _checkedChangedAction?.Invoke(false);
35 |
36 | WpfElement = _checkBox;
37 | }
38 |
39 | public override string? GetText() => _checkBox.Content as string;
40 |
41 | public override ICommonSampleUIElement SetText(string? text)
42 | {
43 | _checkBox.Content = text;
44 | return this;
45 | }
46 |
47 | protected override void OnSetColor(System.Windows.Media.Color wpfColor)
48 | {
49 | _checkBox.Foreground = new SolidColorBrush(wpfColor);
50 | }
51 | }
--------------------------------------------------------------------------------
/Ab4d.SharpEngine.Samples.Wpf/UIProvider/MarkdownUIElement.cs:
--------------------------------------------------------------------------------
1 | using Ab4d.SharpEngine.Samples.Common;
2 | using Ab4d.SharpEngine.Samples.Common.Utils;
3 | using Ab4d.SharpEngine.Samples.Wpf.Common;
4 | using System.Windows.Controls;
5 | using System.Windows.Media;
6 | using Ab4d.SharpEngine.Wpf;
7 | using static System.Net.Mime.MediaTypeNames;
8 |
9 | namespace Ab4d.SharpEngine.Samples.Wpf.UIProvider;
10 |
11 | public class MarkdownUIElement : WpfUIElement
12 | {
13 | private string _markdownText;
14 | private TextBlock _createdTextBlock;
15 | private WpfMarkdownTextCreator _markdownTextCreator;
16 |
17 | public MarkdownUIElement(WpfUIProvider wpfUIProvider, string markdownText, float fontSize = 0)
18 | : base(wpfUIProvider)
19 | {
20 | _markdownText = markdownText;
21 |
22 | _markdownTextCreator = new WpfMarkdownTextCreator();
23 |
24 | if (fontSize > 0)
25 | _markdownTextCreator.FontSize = fontSize;
26 |
27 | _createdTextBlock = _markdownTextCreator.Create(markdownText) as TextBlock;
28 |
29 | WpfElement = _createdTextBlock;
30 | }
31 |
32 | public override string? GetText() => _markdownText;
33 |
34 | public override ICommonSampleUIElement SetText(string? text)
35 | {
36 | if (text == null)
37 | {
38 | _createdTextBlock.Text = "";
39 | }
40 | else
41 | {
42 | _markdownTextCreator.Update(text);
43 | }
44 |
45 | return this;
46 | }
47 |
48 |
49 | protected override void OnSetColor(System.Windows.Media.Color wpfColor)
50 | {
51 | _markdownTextCreator.TextColor = wpfColor.ToColor4();
52 | _markdownTextCreator.Update(_markdownText);
53 | }
54 | }
--------------------------------------------------------------------------------
/doc/animated-samples2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/doc/animated-samples2.png
--------------------------------------------------------------------------------
/doc/xcode-devices.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/doc/xcode-devices.png
--------------------------------------------------------------------------------
/doc/xcode-provisioning1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/doc/xcode-provisioning1.png
--------------------------------------------------------------------------------
/doc/xcode-provisioning2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/doc/xcode-provisioning2.png
--------------------------------------------------------------------------------
/lib/MoltenVK/ios-arm64/libMoltenVK.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/lib/MoltenVK/ios-arm64/libMoltenVK.dylib
--------------------------------------------------------------------------------
/lib/MoltenVK/ios-arm64_x86_64-simulator/libMoltenVK.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/lib/MoltenVK/ios-arm64_x86_64-simulator/libMoltenVK.dylib
--------------------------------------------------------------------------------
/lib/MoltenVK/macos-arm64_x86_64/libMoltenVK.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/lib/MoltenVK/macos-arm64_x86_64/libMoltenVK.dylib
--------------------------------------------------------------------------------
/lib/MoltenVK/readme.txt:
--------------------------------------------------------------------------------
1 | libMoltenVK.dylib was copied for Vulkan SKD v1.3.290.0
--------------------------------------------------------------------------------
/lib/MoltenVK/tvos-arm64_arm64e/libMoltenVK.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/lib/MoltenVK/tvos-arm64_arm64e/libMoltenVK.dylib
--------------------------------------------------------------------------------
/lib/MoltenVK/tvos-arm64_x86_64-simulator/libMoltenVK.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/lib/MoltenVK/tvos-arm64_x86_64-simulator/libMoltenVK.dylib
--------------------------------------------------------------------------------
/lib/assimp-lib/linux-x64/libassimp.so.5.4.2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/lib/assimp-lib/linux-x64/libassimp.so.5.4.2
--------------------------------------------------------------------------------
/lib/assimp-lib/version readme.txt:
--------------------------------------------------------------------------------
1 | This is a compiled official version 5.4.2 of Assimp from 2024-07-04:
2 | https://github.com/assimp/assimp/releases/tag/v5.4.2
3 |
--------------------------------------------------------------------------------
/lib/assimp-lib/win-x64/Assimp64.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/lib/assimp-lib/win-x64/Assimp64.dll
--------------------------------------------------------------------------------
/lib/assimp-lib/win-x86/Assimp32.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ab4d/Ab4d.SharpEngine.Samples/eb6853ec5f7776eb00c5d3fa2935b251ec1e1709/lib/assimp-lib/win-x86/Assimp32.dll
--------------------------------------------------------------------------------