├── .gitattributes ├── .gitignore ├── LICENSE.md ├── README.md ├── docs ├── README.md ├── introduction │ ├── Bootstrapping.md │ ├── Configuration.md │ ├── Filling-the-Scene-with-content.md │ ├── Handling-input.md │ ├── Lightning-model.md │ ├── Toggle-object-visibility.md │ └── Views-Scenes-and-Cameras.md └── special-topics │ ├── cpu-utilization-on-software-rendering │ ├── CPU-utilization-on-software-rendering.md │ ├── CpuUsage_Hardware.png │ └── CpuUsage_Software.png │ └── wpf-composition-mode │ ├── WPF-composition-mode.md │ └── WPFCompositionMode.png ├── misc ├── Nuget │ └── SeeingSharp_128.png ├── WikiImages │ ├── SeeingSharp.svg │ ├── SeeingSharp_Samples.pdn │ ├── SeeingSharp_Samples.png │ ├── SimpleSampleWpf.png │ ├── screenshot_01.png │ ├── screenshot_02.png │ └── screenshot_03.png └── vswhere.exe ├── script-publish.ps1 └── src ├── .editorconfig ├── Benchmarks └── SeeingSharp.Benchmarks │ ├── Program.cs │ ├── RingBufferBenchmark.cs │ └── SeeingSharp.Benchmarks.csproj ├── Directory.Build.props ├── Samples ├── GettingStarted │ ├── GettingStarted.WinForms │ │ ├── GettingStarted.WinForms.csproj │ │ ├── MainWindow.Designer.cs │ │ ├── MainWindow.cs │ │ ├── Program.cs │ │ └── Properties │ │ │ └── launchSettings.json │ ├── GettingStarted.WinUI │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── Assets │ │ │ ├── LockScreenLogo.scale-200.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 │ │ ├── GettingStarted.WinUI.csproj │ │ ├── MainWindow.xaml │ │ ├── MainWindow.xaml.cs │ │ ├── Package.appxmanifest │ │ ├── Properties │ │ │ └── launchSettings.json │ │ └── app.manifest │ └── GettingStarted.Wpf │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── AssemblyInfo.cs │ │ ├── GettingStarted.Wpf.csproj │ │ ├── MainWindow.xaml │ │ └── MainWindow.xaml.cs ├── SeeingSharp.SampleContainer │ ├── Assets │ │ ├── Background.dds │ │ ├── Background.png │ │ ├── Floor.dds │ │ └── Floor.png │ ├── Basics2D │ │ ├── Image │ │ │ ├── ImageSample.cs │ │ │ ├── PreviewImage.png │ │ │ └── SimpleImage.png │ │ ├── MoreImages │ │ │ ├── MoreImagesSample.cs │ │ │ ├── PreviewImage.png │ │ │ └── SimpleImage.png │ │ └── Rectangle │ │ │ ├── PreviewImage.png │ │ │ └── RectangleSample.cs │ ├── Basics3D │ │ ├── Direct2DTexture │ │ │ ├── Direct2DTextureSample.cs │ │ │ └── PreviewImage.png │ │ ├── Direct2DTextureAnimated │ │ │ ├── Direct2DTextureAnimatedSample.cs │ │ │ └── PreviewImage.png │ │ ├── ExtrudeGeometry │ │ │ ├── ExtrudeGeometrySample.cs │ │ │ └── PreviewImage.png │ │ ├── GeneratedBorder │ │ │ ├── GeneratedBorderSample.cs │ │ │ └── PreviewImage.png │ │ ├── MultiMaterial │ │ │ ├── MultiMaterialSample.cs │ │ │ ├── PreviewImage.png │ │ │ └── SimpleTexture.png │ │ ├── ObjectFiltering │ │ │ ├── ObjectFilteringSample.cs │ │ │ └── PreviewImage.png │ │ ├── ParentChild │ │ │ ├── ParentChildSample.cs │ │ │ └── PreviewImage.png │ │ ├── SkyboxScene │ │ │ ├── PreviewImage.png │ │ │ ├── SkyBox.dds │ │ │ └── SkyboxSample.cs │ │ ├── Text3D │ │ │ ├── PreviewImage.png │ │ │ └── Text3DSample.cs │ │ ├── TextureSampling │ │ │ ├── PreviewImage.png │ │ │ ├── PrimitiveTexture.png │ │ │ └── TextureSamplingSample.cs │ │ └── WireframeMaterial │ │ │ ├── PreviewImage.png │ │ │ └── WireframeMaterialSample.cs │ ├── MassScenes │ │ └── StaticCubes │ │ │ ├── PreviewImage.png │ │ │ ├── SimpleTexture.png │ │ │ └── StaticCubesSample.cs │ ├── PlatformDependentMethods.cs │ ├── Postprocessing │ │ ├── EdgeDetect │ │ │ ├── EdgeDetectSample.cs │ │ │ └── PreviewImage.png │ │ └── Focus │ │ │ ├── FocusSample.cs │ │ │ └── PreviewImage.png │ ├── Primitives3D │ │ ├── Cone │ │ │ ├── ConeSample.cs │ │ │ └── PreviewImage.png │ │ ├── Cube │ │ │ ├── CubeSample.cs │ │ │ └── PreviewImage.png │ │ ├── Cylinder │ │ │ ├── CylinderSample.cs │ │ │ └── PreviewImage.png │ │ ├── Geosphere │ │ │ ├── GeosphereSample.cs │ │ │ └── PreviewImage.png │ │ ├── Primitive3DSampleBase.cs │ │ ├── Primitive3DSampleSettings.cs │ │ ├── PrimitiveTexture.png │ │ ├── Pyramid │ │ │ ├── PreviewImage.png │ │ │ └── PyramidSample.cs │ │ ├── Sphere │ │ │ ├── PreviewImage.png │ │ │ └── SphereSample.cs │ │ └── Torus │ │ │ ├── PreviewImage.png │ │ │ └── TorusSample.cs │ ├── SampleBase.cs │ ├── SampleGroupMetadata.cs │ ├── SampleMetadata.cs │ ├── SampleRepository.cs │ ├── SampleSettings.cs │ ├── SampleSettingsWith3D.cs │ ├── SeeingSharp.SampleContainer.csproj │ ├── Util │ │ ├── DelegateCommand.cs │ │ ├── PerformanceMeasureDrawingLayer.cs │ │ ├── PropertyChangedBase.cs │ │ ├── SampleCommand.cs │ │ └── _Misc.cs │ └── _Misc.cs ├── SeeingSharp.UwpSamples │ ├── App.xaml │ ├── App.xaml.cs │ ├── Assets │ │ ├── LockScreenLogo.scale-100.png │ │ ├── LockScreenLogo.scale-125.png │ │ ├── LockScreenLogo.scale-150.png │ │ ├── LockScreenLogo.scale-200.png │ │ ├── LockScreenLogo.scale-400.png │ │ ├── SplashScreen.scale-100.png │ │ ├── SplashScreen.scale-125.png │ │ ├── SplashScreen.scale-150.png │ │ ├── SplashScreen.scale-200.png │ │ ├── SplashScreen.scale-400.png │ │ ├── Square150x150Logo.scale-100.png │ │ ├── Square150x150Logo.scale-125.png │ │ ├── Square150x150Logo.scale-150.png │ │ ├── Square150x150Logo.scale-200.png │ │ ├── Square150x150Logo.scale-400.png │ │ ├── Square310x310Logo.scale-100.png │ │ ├── Square310x310Logo.scale-125.png │ │ ├── Square310x310Logo.scale-150.png │ │ ├── Square310x310Logo.scale-200.png │ │ ├── Square310x310Logo.scale-400.png │ │ ├── Square44x44Logo.scale-100.png │ │ ├── Square44x44Logo.scale-125.png │ │ ├── Square44x44Logo.scale-150.png │ │ ├── Square44x44Logo.scale-200.png │ │ ├── Square44x44Logo.scale-400.png │ │ ├── Square44x44Logo.targetsize-16_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-20_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-256_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-30_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-32_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-36_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-40_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-48_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-60_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-64_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-72_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-80_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-96_altform-unplated.png │ │ ├── Square71x71Logo.scale-100.png │ │ ├── Square71x71Logo.scale-125.png │ │ ├── Square71x71Logo.scale-150.png │ │ ├── Square71x71Logo.scale-200.png │ │ ├── Square71x71Logo.scale-400.png │ │ ├── StoreLogo.png │ │ ├── StoreLogo.scale-100.png │ │ ├── StoreLogo.scale-125.png │ │ ├── StoreLogo.scale-150.png │ │ ├── StoreLogo.scale-200.png │ │ ├── StoreLogo.scale-400.png │ │ ├── Wide310x150Logo.scale-100.png │ │ ├── Wide310x150Logo.scale-125.png │ │ ├── Wide310x150Logo.scale-150.png │ │ ├── Wide310x150Logo.scale-200.png │ │ └── Wide310x150Logo.scale-400.png │ ├── BundleArtifacts │ │ ├── Upload │ │ │ └── x86.txt │ │ └── x86.txt │ ├── ChildRenderPage.xaml │ ├── ChildRenderPage.xaml.cs │ ├── Controls │ │ ├── ConfigurablePropertyMetadata.cs │ │ ├── PropertyGrid.xaml │ │ ├── PropertyGrid.xaml.cs │ │ ├── PropertyGridViewModel.cs │ │ ├── StatusBarControl.xaml │ │ ├── StatusBarControl.xaml.cs │ │ └── _Misc.cs │ ├── MainPage.xaml │ ├── MainPage.xaml.cs │ ├── MainWindowViewModel.cs │ ├── Package.StoreAssociation.xml │ ├── Package.appxmanifest │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ └── Default.rd.xml │ ├── SampleViewModel.cs │ ├── SeeingSharp.UwpSamples.csproj │ ├── SeeingSharp.UwpSamples.csproj.DotSettings │ ├── Util │ │ └── CommonUtil.cs │ ├── _Base │ │ └── ViewModelBase.cs │ └── _pkginfo.txt ├── SeeingSharp.WinFormsSamples │ ├── App.config │ ├── Assets │ │ ├── Icons │ │ │ ├── Adapter16x16.png │ │ │ ├── Camera16x16.png │ │ │ ├── Copy16x16.png │ │ │ ├── Cross16x16.png │ │ │ ├── Help16x16.png │ │ │ ├── Output16x16.png │ │ │ ├── OutputAdd16x16.png │ │ │ ├── PageCSharp16x16.png │ │ │ └── PerformanceMeasure16x16.png │ │ └── SeeingSharp.ico │ ├── ChildRenderWindow.Designer.cs │ ├── ChildRenderWindow.cs │ ├── ChildRenderWindow.resx │ ├── MainWindow.Designer.cs │ ├── MainWindow.cs │ ├── MainWindow.resx │ ├── Program.cs │ ├── Properties │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ └── Settings.settings │ ├── RenderWindowControlsComponent.cs │ └── SeeingSharp.WinFormsSamples.csproj ├── SeeingSharp.WinUIDesktopSamples │ ├── App.xaml │ ├── App.xaml.cs │ ├── Assets │ │ ├── LockScreenLogo.scale-100.png │ │ ├── LockScreenLogo.scale-125.png │ │ ├── LockScreenLogo.scale-150.png │ │ ├── LockScreenLogo.scale-200.png │ │ ├── LockScreenLogo.scale-400.png │ │ ├── SplashScreen.scale-100.png │ │ ├── SplashScreen.scale-125.png │ │ ├── SplashScreen.scale-150.png │ │ ├── SplashScreen.scale-200.png │ │ ├── SplashScreen.scale-400.png │ │ ├── Square150x150Logo.scale-100.png │ │ ├── Square150x150Logo.scale-125.png │ │ ├── Square150x150Logo.scale-150.png │ │ ├── Square150x150Logo.scale-200.png │ │ ├── Square150x150Logo.scale-400.png │ │ ├── Square310x310Logo.scale-100.png │ │ ├── Square310x310Logo.scale-125.png │ │ ├── Square310x310Logo.scale-150.png │ │ ├── Square310x310Logo.scale-200.png │ │ ├── Square310x310Logo.scale-400.png │ │ ├── Square44x44Logo.scale-100.png │ │ ├── Square44x44Logo.scale-125.png │ │ ├── Square44x44Logo.scale-150.png │ │ ├── Square44x44Logo.scale-200.png │ │ ├── Square44x44Logo.scale-400.png │ │ ├── Square44x44Logo.targetsize-16_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-20_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-256_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-30_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-32_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-36_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-40_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-48_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-60_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-64_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-72_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-80_altform-unplated.png │ │ ├── Square44x44Logo.targetsize-96_altform-unplated.png │ │ ├── Square71x71Logo.scale-100.png │ │ ├── Square71x71Logo.scale-125.png │ │ ├── Square71x71Logo.scale-150.png │ │ ├── Square71x71Logo.scale-200.png │ │ ├── Square71x71Logo.scale-400.png │ │ ├── StoreLogo.png │ │ ├── StoreLogo.scale-100.png │ │ ├── StoreLogo.scale-125.png │ │ ├── StoreLogo.scale-150.png │ │ ├── StoreLogo.scale-200.png │ │ ├── StoreLogo.scale-400.png │ │ ├── Wide310x150Logo.scale-100.png │ │ ├── Wide310x150Logo.scale-125.png │ │ ├── Wide310x150Logo.scale-150.png │ │ ├── Wide310x150Logo.scale-200.png │ │ └── Wide310x150Logo.scale-400.png │ ├── ChildRenderWindow.xaml │ ├── ChildRenderWindow.xaml.cs │ ├── Controls │ │ ├── ConfigurablePropertyMetadata.cs │ │ ├── PropertyGrid.xaml │ │ ├── PropertyGrid.xaml.cs │ │ ├── PropertyGridViewModel.cs │ │ ├── StatusBarControl.xaml │ │ ├── StatusBarControl.xaml.cs │ │ └── _Misc.cs │ ├── Icon.ico │ ├── MainWindow.xaml │ ├── MainWindow.xaml.cs │ ├── MainWindowViewModel.cs │ ├── Package.appxmanifest │ ├── Properties │ │ └── launchSettings.json │ ├── SampleViewModel.cs │ ├── SeeingSharp.WinUIDesktopSamples.csproj │ ├── SeeingSharp.WinUIDesktopSamples.csproj.bak │ ├── _Base │ │ └── ViewModelBase.cs │ └── app.manifest └── SeeingSharp.WpfSamples │ ├── App.config │ ├── App.xaml │ ├── App.xaml.cs │ ├── Assets │ ├── Icons │ │ ├── Adapter16x16.png │ │ └── Output16x16.png │ └── SeeingSharp.ico │ ├── ChildRenderWindow.xaml │ ├── ChildRenderWindow.xaml.cs │ ├── Logo.ico │ ├── MainWindow.xaml │ ├── MainWindow.xaml.cs │ ├── MainWindowViewModel.cs │ ├── Properties │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ ├── Settings.settings │ └── launchSettings.json │ ├── PropertyGridControlFactory.cs │ ├── SampleViewModel.cs │ ├── SeeingSharp.WpfSamples.csproj │ ├── SeeingSharp.WpfSamples.csproj.DotSettings │ ├── StatusBarControl.xaml │ ├── StatusBarControl.xaml.cs │ ├── _DesignData.cs │ ├── _Dialogs │ ├── PerformanceOverviewDialog.xaml │ ├── PerformanceOverviewDialog.xaml.cs │ └── PerformanceOverviewViewModel.cs │ └── app.manifest ├── SeeingSharp.AssimpImporter ├── AssimpHelper.cs ├── AssimpImportOptions.cs ├── AssimpImporter.cs ├── SeeingSharp.AssimpImporter.csproj ├── SeeingSharp.AssimpImporter.csproj.DotSettings ├── _Extensions.cs ├── _IO │ ├── AssimpIOStream.cs │ └── AssimpIOSystem.cs └── _Misc.cs ├── SeeingSharp.Tests ├── AssemblyResourcesAndShaderTests │ ├── AssemblyResourceLinkTests.cs │ ├── Dummy │ │ └── CommonPixelShader.hlsl │ ├── Dummy2 │ │ └── CommonPixelShader.hlsl │ ├── ShaderCompileTests.cs │ ├── _mainInclude.hlsl │ ├── constants.hlsl │ ├── functions.hlsl │ └── structures.hlsl ├── BitmapComparisonTests.cs ├── DpiScalingTests.cs ├── Drawing2DTests.cs ├── Drawing3DTests.cs ├── ErrorHandlingTests.cs ├── GeometryLoadingAndRenderingTests.cs ├── MathTests.cs ├── ModelLoadingAndRenderingTests.cs ├── PostprocessingTests.cs ├── Properties │ ├── AssemblyInfo.cs │ └── launchSettings.json ├── ResourceLinkTests.cs ├── Resources │ ├── BitmapComparison │ │ ├── BlackScreen.png │ │ ├── ClearedScreen.png │ │ ├── FlatShadedObject.png │ │ ├── FlatShadedObject_Enlighted.png │ │ ├── FlatShadedObject_Negative.png │ │ ├── FlatShadedObject_Smaller.png │ │ └── WhiteScreen.png │ ├── Bitmaps │ │ ├── Boom.LicenseInfo.txt │ │ ├── Boom.png │ │ └── Logo.png │ ├── Drawing2D │ │ ├── DebugDrawingLayer.png │ │ ├── RoundedRectOver3D.png │ │ ├── SimpleBitmap_Animated.png │ │ ├── SimpleBitmap_Transparency.png │ │ ├── SimpleGeometry2D.png │ │ ├── SimpleGeometry2D_Ellipse.png │ │ ├── SimpleObject_D2DTexture.png │ │ ├── SimpleRoundedRectFilled.png │ │ ├── SimpleRoundedRectFilled_LinearGradient.png │ │ ├── SimpleRoundedRectFilled_RadialGradient.png │ │ └── SimpleText_SingleColor.png │ ├── Drawing3D │ │ ├── ClearedScreen.png │ │ ├── FullscreenTexture.png │ │ ├── SimpleLine.png │ │ ├── SimpleObject.png │ │ ├── SimpleObject_DiffuseColorFromMaterial.png │ │ ├── SimpleObject_Ortho.png │ │ ├── SimpleObject_StackedGeometry.png │ │ ├── SimpleObject_Textured.png │ │ ├── SimpleObject_Textured_Point_Filter.png │ │ ├── SimpleObject_Transparent.png │ │ └── Skybox.png │ ├── ErrorHandling │ │ └── SimpleObject.png │ ├── GeometryLoadingAndRendering │ │ ├── FlatShadedObject.png │ │ ├── ShadedObject.png │ │ ├── SingleSidedObject.png │ │ └── TwoSidedObject.png │ ├── ModelLoadingAndRendering │ │ └── ModelStl.png │ ├── Models │ │ ├── Fox.LicenseInfo.txt │ │ ├── Fox.stl │ │ ├── ModelFlatShading.ac │ │ ├── ModelShaded.ac │ │ ├── ModelSingleSided.ac │ │ └── ModelTwoSided.ac │ ├── Postprocessing │ │ ├── PostProcess_EdgeDetect.png │ │ └── PostProcess_Focus.png │ ├── TextureUploader │ │ └── TestTexture.png │ └── Textures │ │ ├── Background.png │ │ ├── PrimitiveTexture.png │ │ └── SkyBox.dds ├── ReusableObjectsTests.cs ├── SeeingSharp.Tests.csproj ├── SeeingSharp.Tests.csproj.DotSettings ├── TextureUploaderTests.cs ├── Util │ ├── DurationPerformanceCalculatorTests.cs │ ├── ObjectTreeBoundingBoxCalculatorTests.cs │ └── RingBufferTests.cs ├── _AssemblyInfo.cs ├── _TestUtil │ ├── BitmapComparison.cs │ └── TestUtilities.cs └── app.config ├── SeeingSharp.Uwp ├── Multimedia │ ├── Core │ │ └── GraphicsHelperUwp.cs │ ├── Input │ │ └── WinRTKeyAndMouseInputHandler.cs │ └── Views │ │ ├── SeeingSharpPanelPainter.cs │ │ └── SeeingSharpRenderPanel.cs ├── Properties │ ├── AssemblyInfo.cs │ └── SeeingSharp.Uwp.rd.xml ├── SeeingSharp.Uwp.csproj ├── SeeingSharp.Uwp.csproj.DotSettings ├── SeeingSharp.Uwp.nuspec ├── SeeingSharpConstantsUwp.cs ├── SeeingSharpUwpExtensions.cs ├── _Extensions.cs └── _Util │ └── SeeingSharpUwpUtil.cs ├── SeeingSharp.WinForms ├── Multimedia │ ├── Core │ │ ├── GraphicsHelperWinForms.cs │ │ └── RenderLoopEx.cs │ ├── Input │ │ ├── IInputControlHost.cs │ │ └── WinFormsKeyAndMouseInputHandler.cs │ └── Views │ │ └── SeeingSharpRendererControl.cs ├── SeeingSharp.WinForms.csproj ├── SeeingSharp.WinForms.csproj.DotSettings ├── SeeingSharpConstantsWinForms.cs ├── SeeingSharpWinFormsExtensions.cs ├── _AssemblyInfo.cs ├── _Extensions.cs ├── _Util │ └── SeeingSharpWinFormsUtil.cs └── app.config ├── SeeingSharp.WinUI ├── Multimedia │ ├── Core │ │ └── GraphicsHelperWinUI.cs │ ├── Input │ │ └── WinUIKeyAndMouseInputHandler.cs │ └── Views │ │ ├── SeeingSharpPanelPainter.cs │ │ └── SeeingSharpRenderPanel.cs ├── SeeingSharp.WinUI.csproj ├── SeeingSharpConstantsUwp.cs ├── SeeingSharpWinUIExtensions.cs ├── _AssemblyInfo.cs ├── _Extensions.cs └── _Util │ └── SeeingSharpWinUIUtil.cs ├── SeeingSharp.Wpf ├── Multimedia │ ├── Core │ │ ├── GraphicsHelperWpf.cs │ │ └── _Devices │ │ │ └── _PerAdapter │ │ │ └── DeviceHandlerD3D9.cs │ ├── Input │ │ └── WpfKeyAndMouseInputHandler.cs │ └── Views │ │ ├── HigherD3DImageSource.cs │ │ ├── SeeingSharpRendererElement.cs │ │ └── _Misc.cs ├── SeeingSharp.Wpf.csproj ├── SeeingSharp.Wpf.csproj.DotSettings ├── SeeingSharpConstantsWpf.cs ├── SeeingSharpWpfExtensions.cs ├── _AssemblyInfo.cs ├── _Extensions.cs └── _Util │ └── SeeingSharpWpfUtil.cs ├── SeeingSharp ├── Checking │ ├── Ensure.Collections.cs │ ├── Ensure.IO.cs │ ├── Ensure.Numeric.cs │ ├── Ensure.Rectangles.cs │ ├── Ensure.Rendering.cs │ ├── Ensure.Resources.cs │ ├── Ensure.Scene.cs │ ├── Ensure.SharpDX.cs │ ├── Ensure.Size.cs │ ├── Ensure.Threading.cs │ ├── Ensure.Time.cs │ ├── Ensure.Vectors.cs │ ├── Ensure.cs │ └── SeeingSharpCheckException.cs ├── Components │ ├── FocusedCameraComponent.cs │ └── Input │ │ ├── FocusedObjectCameraComponent.cs │ │ ├── FocusedPointCameraComponent.cs │ │ └── FreeMovingCameraComponent.cs ├── Core │ ├── Animations │ │ ├── AnimationBase.cs │ │ ├── AnimationHandler.cs │ │ ├── AnimationMetadata.cs │ │ ├── AnimationSequence.cs │ │ ├── AnimationSequenceBuilder.cs │ │ ├── AnimationState.cs │ │ ├── IAnimatableObject.cs │ │ ├── IAnimation.cs │ │ ├── IAnimationSequenceBuilder.cs │ │ ├── IAnimationUpdateState.cs │ │ ├── _Analytics │ │ │ ├── EventDrivenPassInfo.cs │ │ │ └── EventDrivenStepInfo.cs │ │ ├── _Extensions.cs │ │ ├── _Misc.cs │ │ ├── _ObjectInterfaces │ │ │ ├── IAnimatableObjectAccentuation.cs │ │ │ ├── IAnimatableObjectEulerRotation.cs │ │ │ ├── IAnimatableObjectOpacity.cs │ │ │ ├── IAnimatableObjectPosition.cs │ │ │ ├── IAnimatableObjectPosition2D.cs │ │ │ ├── IAnimatableObjectQuaternion.cs │ │ │ ├── IAnimatableObjectScaling.cs │ │ │ └── IAnimatableObjectSprite.cs │ │ ├── _Primitives2D │ │ │ ├── Move2DByAnimation.cs │ │ │ ├── Move2DToAnimation.cs │ │ │ └── _Extensions.Move.cs │ │ ├── _Primitives3D │ │ │ ├── ChangeAccentuationToAnimation.cs │ │ │ ├── ChangeOpacityToAnimation.cs │ │ │ ├── Move3DByAnimation.cs │ │ │ ├── Move3DToAnimation.cs │ │ │ ├── RotateEulerAnglesAnimation.cs │ │ │ ├── RotateQuaternionToAnimation.cs │ │ │ ├── Scale3DToAnimation.cs │ │ │ ├── ScaleSpriteToAnimation.cs │ │ │ ├── _Extensions.Misc.cs │ │ │ ├── _Extensions.Move.cs │ │ │ ├── _Extensions.Rotate.cs │ │ │ └── _Extensions.Scale.cs │ │ └── _Standard │ │ │ ├── CallActionAnimation.cs │ │ │ ├── ChangeFloatByAnimation.cs │ │ │ ├── ChangeIntByAnimation.cs │ │ │ ├── DelayAnimation.cs │ │ │ ├── LazyAnimation.cs │ │ │ ├── WaitFinishedAnimation.cs │ │ │ ├── WaitForConditionPassedAnimation.cs │ │ │ ├── WaitTaskFinishedAnimation.cs │ │ │ ├── WaitTimePassedAnimation.cs │ │ │ └── _Extensions.cs │ ├── Configuration │ │ ├── GraphicsCoreConfiguration.cs │ │ ├── GraphicsDeviceConfiguration.cs │ │ └── GraphicsViewConfiguration.cs │ ├── Devices │ │ ├── DeviceResourceManager.cs │ │ ├── EngineDevice.cs │ │ ├── EngineFactory.cs │ │ ├── IEngineDeviceResource.cs │ │ ├── SeeingSharpLoadSettings.cs │ │ ├── _Global │ │ │ ├── FactoryHandlerD2D.cs │ │ │ ├── FactoryHandlerDWrite.cs │ │ │ ├── FactoryHandlerDXGI.cs │ │ │ └── FactoryHandlerWIC.cs │ │ └── _PerAdapter │ │ │ ├── DeviceHandlerD2D.cs │ │ │ ├── DeviceHandlerD3D11.cs │ │ │ └── DeviceHandlerDXGI.cs │ ├── Direct2DOverlayRenderer.cs │ ├── GenericInputEventArgs.cs │ ├── GraphicsCore.cs │ ├── GraphicsHelper.cs │ ├── HardwareInfo │ │ ├── EngineAdapterInfo.cs │ │ ├── EngineHardwareInfo.cs │ │ ├── EngineOutputInfo.cs │ │ └── EngineOutputModeInfo.cs │ ├── IRenderLoopHost.cs │ ├── RenderLoop.cs │ ├── RenderPassInfo.cs │ ├── RenderPassSubscription.cs │ ├── RenderState.cs │ ├── RenderTargets.cs │ ├── SceneRelatedUpdateState.cs │ ├── UpdateState.cs │ ├── ViewInformation.cs │ ├── _Components │ │ ├── SceneComponent.cs │ │ ├── SceneComponentBase.cs │ │ ├── SceneComponentFlyweight.cs │ │ └── _Misc.cs │ ├── _Loading │ │ ├── ISeeingSharpExtensionProvider.cs │ │ ├── ISeeingSharpExtensions.cs │ │ ├── LoaderConfigurationExtension.cs │ │ ├── LoaderModelExporterExtension.cs │ │ ├── LoaderModelImporterExtension.cs │ │ └── SeeingSharpLoader.cs │ ├── _MainLoop │ │ ├── EngineMainLoop.cs │ │ ├── MainLoop_RenderAndUpdateBeside.cs │ │ └── MainLoop_UpdateAndPrepareRendering.cs │ ├── _Misc.cs │ ├── _ObjectHosting │ │ ├── DummyOpacityProvider.cs │ │ ├── HostedObjectTransformDataMapper.cs │ │ ├── IEngineHostedSceneObject.cs │ │ └── IEngineOpacityProvider.cs │ ├── _RenderPassDump │ │ ├── RenderPassDump.cs │ │ └── RenderPassDumpEntry.cs │ ├── _RenderPasses │ │ ├── RenderPass2DOverlay.cs │ │ ├── RenderPassBase.cs │ │ ├── RenderPassDefaultTransparent.cs │ │ └── RenderPassLineRender.cs │ ├── _Resources │ │ ├── IRenderableResource.cs │ │ ├── IUpdatableResource.cs │ │ ├── Resource.cs │ │ └── ResourceDictionary.cs │ ├── _Scene │ │ ├── PickingInformation.cs │ │ ├── Scene.ImportExport.cs │ │ ├── Scene.cs │ │ ├── SceneLayer.cs │ │ ├── SceneLogicalObject.cs │ │ ├── SceneManipulator.cs │ │ ├── SceneObject.SubscriptionHandling.cs │ │ ├── SceneObject.cs │ │ ├── ScenePivotObject.cs │ │ ├── SceneSpacialObject.cs │ │ ├── ViewRelatedSceneLayerSubset.cs │ │ ├── VisibilityCheckData.cs │ │ ├── VisibilityCheckFilterStageData.cs │ │ └── _Misc.cs │ ├── _SceneInfo │ │ ├── SceneObjectInfo.cs │ │ └── _Misc.cs │ ├── _SceneObjectFilter │ │ ├── ObjectFilterCollection.cs │ │ ├── SceneObjectFilter.cs │ │ └── SceneViewboxObjectFilter.cs │ └── _Util │ │ ├── MemoryMappedTexture.cs │ │ ├── PipelineStatisticsQueryHelper.cs │ │ ├── TextureUploader.cs │ │ ├── WicBitmapSourceInternal.cs │ │ └── _MemoryMappedTextureExtensions.cs ├── Drawing2D │ ├── Custom2DDrawingLayer.cs │ ├── Graphics2D.cs │ ├── Graphics2DTransformSettings.cs │ ├── Resources │ │ ├── _DeviceIndependentResources │ │ │ ├── EllipseGeometryResource.cs │ │ │ ├── Geometry2DResourceBase.cs │ │ │ └── PolygonGeometryResource.cs │ │ ├── _DeviceResources │ │ │ ├── Drawing2DResourceBase.cs │ │ │ ├── IImage.cs │ │ │ ├── _Direct2D │ │ │ │ ├── BitmapResource.cs │ │ │ │ ├── BrushResource.cs │ │ │ │ ├── EffectResource.cs │ │ │ │ ├── LinearGradientBrushResource.cs │ │ │ │ ├── RadialGradientBrushResource.cs │ │ │ │ ├── SolidBrushResource.cs │ │ │ │ ├── StandardBitmapResource.cs │ │ │ │ └── WritableBitmapResource.cs │ │ │ ├── _Direct2DEffects │ │ │ │ ├── DirectionalBlurEffectResource.cs │ │ │ │ └── GaussianBlurEffectResource.cs │ │ │ └── _DirectWrite │ │ │ │ └── TextFormatResource.cs │ │ └── _WIC │ │ │ ├── WicBitmap.cs │ │ │ └── WicBitmapSource.cs │ ├── _DrawingLayers │ │ └── DebugDrawingLayer.cs │ └── _Misc.cs ├── Drawing3D │ ├── FullscreenTexture.cs │ ├── Geometries │ │ ├── BuiltVerticesRange.cs │ │ ├── Geometry.cs │ │ ├── GeometrySurface.Builders.Text.cs │ │ ├── GeometrySurface.Builders.cs │ │ ├── GeometrySurface.cs │ │ ├── Triangle.cs │ │ ├── TriangleCorner.cs │ │ ├── VertexBasic.cs │ │ ├── VertexBinormalTangent.cs │ │ ├── _ComplexBuilding │ │ │ ├── GeometryTextRenderer.cs │ │ │ └── SimplePolygon2DGeometrySink.cs │ │ ├── _GeometryFactories │ │ │ ├── CustomGeometryFactory.cs │ │ │ ├── ExtrudeGeometryFactory.cs │ │ │ ├── GeometryFactory.cs │ │ │ ├── Grid3DGeometryFactory.cs │ │ │ ├── StackedGeometryFactory.cs │ │ │ ├── _Floor │ │ │ │ ├── FloorGeometryFactory.cs │ │ │ │ ├── FloorTile.cs │ │ │ │ └── FloorTileInfo.cs │ │ │ └── _Misc.cs │ │ └── _Misc.cs │ ├── ImportExport │ │ ├── DefaultImporterExporterExtensions.cs │ │ ├── ExportOptions.cs │ │ ├── IModelExporter.cs │ │ ├── IModelImporter.cs │ │ ├── ImportOptions.cs │ │ ├── ImporterExporterRepository.cs │ │ ├── ParentChildRelationship.cs │ │ ├── _Attributes.cs │ │ ├── _Formats │ │ │ ├── _AC │ │ │ │ ├── ACFileLoader.cs │ │ │ │ ├── ACImportOptions.cs │ │ │ │ ├── ACImporter.cs │ │ │ │ ├── _Misc.cs │ │ │ │ └── _Raw │ │ │ │ │ ├── ACFileInfo.cs │ │ │ │ │ ├── ACMaterialInfo.cs │ │ │ │ │ ├── ACObjectInfo.cs │ │ │ │ │ ├── ACSurface.cs │ │ │ │ │ ├── ACVertex.cs │ │ │ │ │ └── _Misc.cs │ │ │ └── _Stl │ │ │ │ ├── StlImportOptions.cs │ │ │ │ └── StlImporter.cs │ │ └── _ModelContainer │ │ │ ├── ExportGeometryInfo.cs │ │ │ ├── ExportMaterialInfo.cs │ │ │ ├── ExportModelContainer.cs │ │ │ ├── ImportedModelContainer.cs │ │ │ └── ImportedResourceInfo.cs │ ├── Mesh.cs │ ├── Primitives │ │ ├── ConeBuilder.cs │ │ ├── ConeGeometryFactory.cs │ │ ├── CubeBuilder.cs │ │ ├── CubeGeometryFactory.cs │ │ ├── CylinderBuilder.cs │ │ ├── CylinderGeometryFactory.cs │ │ ├── GeosphereBuilder.cs │ │ ├── GeosphereGeometryFactory.cs │ │ ├── PyramidBuilder.cs │ │ ├── PyramidGeometryFactory.cs │ │ ├── SphereBuilder.cs │ │ ├── SphereGeometryFactory.cs │ │ ├── TorusBuilder.cs │ │ └── TorusGeometryFactory.cs │ ├── Resources │ │ ├── DefaultResources.cs │ │ ├── GeometryResource.cs │ │ ├── LineRenderResources.cs │ │ ├── MaterialResource.cs │ │ ├── PostprocessEffectResource.cs │ │ ├── ShaderEffectResourceBase.cs │ │ ├── TextureResource.cs │ │ ├── _Buffers │ │ │ ├── ConstantBufferResource.cs │ │ │ ├── ImmutableIndexBufferResource.cs │ │ │ ├── ImmutableVertexBufferResource.cs │ │ │ └── TypeSafeConstantBuffer.cs │ │ ├── _ManipulatorExtensions.cs │ │ ├── _Materials │ │ │ ├── SingleForcedColorMaterialResource.cs │ │ │ ├── SpriteMaterialResource.cs │ │ │ ├── StandardMaterialResource.cs │ │ │ └── WireframeMaterialResource.cs │ │ ├── _Misc.cs │ │ ├── _PostprocessEffects │ │ │ ├── EdgeRenderPostprocessEffectRessource.cs │ │ │ └── FocusPostprocessEffectResource.cs │ │ ├── _ResourceDictionaryExtensions.cs │ │ ├── _Shaders │ │ │ ├── GeometryShaderResource.cs │ │ │ ├── PixelShaderResource.cs │ │ │ ├── ShaderResource.cs │ │ │ └── VertexShaderResource.cs │ │ └── _Textures │ │ │ ├── Direct2DOneTimeRenderTextureResource.cs │ │ │ ├── Direct2DTextureResource.cs │ │ │ ├── RenderTargetTextureResource.cs │ │ │ └── StandardTextureResource.cs │ ├── Skybox.cs │ ├── WireObject.cs │ ├── _Cameras │ │ ├── Camera3DBase.cs │ │ ├── Camera3DViewPoint.cs │ │ ├── OrthographicCamera3D.cs │ │ ├── PerspectiveCamera3D.cs │ │ └── _Animations │ │ │ ├── CameraStraightMoveAnimation.cs │ │ │ └── _Extensions.cs │ ├── _Helper │ │ └── TexturePainterHelper.cs │ ├── _Misc.cs │ ├── _RenderParameters │ │ ├── ObjectRenderParameters.cs │ │ ├── SceneRenderParameters.cs │ │ └── ViewRenderParameters.cs │ ├── _Rendering │ │ ├── RenderingChunk.cs │ │ └── RenderingChunkTemplate.cs │ └── _ShaderInteraction │ │ ├── LineVertex.cs │ │ ├── StandardVertex.cs │ │ └── _ConstantBufferStructures.cs ├── DrawingVideo │ └── SeeingSharpVideoWriter.cs ├── Input │ ├── IInputEnabledView.cs │ ├── IInputHandler.cs │ ├── InputFrame.cs │ ├── InputGathererThread.cs │ ├── InputHandlerFactory.cs │ ├── _Misc.cs │ └── _States │ │ ├── GamepadState.cs │ │ ├── InputStateBase.cs │ │ ├── KeyboardState.cs │ │ ├── MouseOrPointerState.cs │ │ └── _Misc.cs ├── Interop.cs ├── Mathematics │ ├── EngineMath.cs │ ├── MathConverter.cs │ ├── _Custom │ │ ├── BoundingBox.Custom.cs │ │ ├── BoundingBox2D.cs │ │ ├── BoundingSphere.Custom.cs │ │ ├── Color.Custom.cs │ │ ├── Color4.Colors.cs │ │ ├── Color4.Custom.cs │ │ ├── CuttingEarsTriangulator.MIT.cs │ │ ├── Line.cs │ │ ├── Line2D.cs │ │ ├── Matrix3x2Stack.cs │ │ ├── Matrix4Stack.cs │ │ ├── Plane.cs │ │ ├── Polygon.cs │ │ ├── Polygon2D.cs │ │ ├── Ray.Custom.cs │ │ ├── Ray2D.cs │ │ └── _Misc.cs │ ├── _Mechanics │ │ ├── MovementAnimationHelper.cs │ │ └── MovementSpeed.cs │ ├── _SharpDXMath │ │ ├── Angle.MIT.cs │ │ ├── Bool.MIT.cs │ │ ├── Bool4.MIT.cs │ │ ├── BoundingBox.MIT.cs │ │ ├── BoundingFrustum.MIT.cs │ │ ├── BoundingSphere.MIT.cs │ │ ├── Collision.MIT.cs │ │ ├── Color.MIT.cs │ │ ├── Color.Palette.MIT.cs │ │ ├── Color3.MIT.cs │ │ ├── Color4.MIT.cs │ │ ├── ColorBGRA.MIT.cs │ │ ├── Enums.MIT.cs │ │ ├── FrustumCameraParams.MIT.cs │ │ ├── Half.MIT.cs │ │ ├── Half2.MIT.cs │ │ ├── Half3.MIT.cs │ │ ├── Half4.MIT.cs │ │ ├── HalfUtils.MIT.cs │ │ ├── Int3.MIT.cs │ │ ├── Int4.MIT.cs │ │ ├── MathUtil.MIT.cs │ │ ├── Matrix5x4.MIT.cs │ │ ├── OrientedBoundingBox.MIT.cs │ │ ├── Plane.MIT.cs │ │ ├── Ray.MIT.cs │ │ ├── Viewport.MIT.cs │ │ ├── ViewportF.MIT.cs │ │ └── _LicenseInfo.txt │ └── _SimdEx │ │ ├── Matrix4x4Ex.cs │ │ ├── Vector2Ex.cs │ │ ├── Vector3Ex.cs │ │ └── Vector4Ex.cs ├── ResourceKeys.cs ├── Resources │ ├── SeeingSharpResources.cs │ └── Shaders │ │ ├── Common │ │ ├── CommonPixelShader.Ortho.hlsl │ │ ├── CommonPixelShader.hlsl │ │ ├── CommonVertexShader.hlsl │ │ ├── SingleForcedColorPixelShader.hlsl │ │ ├── SingleForcedColorVertexShader.hlsl │ │ ├── WireframeGeometryShader.hlsl │ │ ├── WireframePixelShader.hlsl │ │ └── WireframeVertexShader.hlsl │ │ ├── LineRendering │ │ ├── LinePixelShader.hlsl │ │ └── LineVertexShader.hlsl │ │ ├── PostProcessing │ │ ├── PostprocessBlur.hlsl │ │ ├── PostprocessEdgeDetect.hlsl │ │ ├── PostprocessVertexShader.hlsl │ │ └── _structures.hlsl │ │ ├── SkyBox │ │ ├── CommonPixelShader.hlsl │ │ └── CommonVertexShader.hlsl │ │ ├── Sprite │ │ ├── SpritePixelShader.hlsl │ │ └── SpriteVertexShader.hlsl │ │ ├── _mainInclude.hlsl │ │ ├── constants.hlsl │ │ ├── functions.hlsl │ │ └── structures.hlsl ├── SeeingSharp.csproj ├── SeeingSharp.csproj.DotSettings ├── SeeingSharpConstants.cs ├── Util │ ├── DummyComObject.cs │ ├── DummyDisposable.cs │ ├── MultiDisposable.cs │ ├── ObjectTreeBoundingBoxCalculator.cs │ ├── Sdx │ │ ├── DataBox.cs │ │ ├── DataBuffer.cs │ │ ├── DataPointer.cs │ │ ├── DataRectangle.cs │ │ ├── DataStream.cs │ │ └── SdxUtilities.cs │ ├── SdxTK │ │ ├── DDS.cs │ │ ├── DDSHelper.cs │ │ ├── FourCC.cs │ │ ├── Image.cs │ │ ├── ImageDescription.cs │ │ ├── MipMapCount.cs │ │ ├── MipMapDescription.cs │ │ ├── MipMapHelper.cs │ │ ├── PixelBuffer.cs │ │ ├── PixelBufferArray.cs │ │ ├── PixelFormat.cs │ │ ├── WICHelper.cs │ │ └── _Misc.cs │ ├── SeeingSharpUtil.cs │ ├── _Collections │ │ ├── IndexBasedDynamicCollection.cs │ │ ├── NamedOrGenericKey.cs │ │ ├── RingBuffer.cs │ │ ├── SingleInstanceCollection.cs │ │ ├── UniqueGenericKeyGenerator.cs │ │ └── UnsafeList.cs │ ├── _IO │ │ ├── ResourceLink.cs │ │ ├── _AssemblyResources │ │ │ └── AssemblyResourceLink.cs │ │ └── _ResourceLinkImpl │ │ │ ├── AssemblyResourceLinkSource.cs │ │ │ ├── FileSystemResourceLink.cs │ │ │ └── StreamFactoryResourceLink.cs │ ├── _Misc.cs │ ├── _Performance │ │ ├── DurationMeasureToken.cs │ │ ├── DurationPerformanceCalculator.cs │ │ ├── DurationPerformanceResult.cs │ │ └── PerformanceAnalyzer.cs │ ├── _ReusableObjects │ │ ├── ConcurrentObjectPool.cs │ │ ├── ReusableAwaiter.cs │ │ ├── ReusableMemoryStreams.cs │ │ └── ReusableStringBuilders.cs │ ├── _SeeingSharpExtensions.cs │ ├── _Shader │ │ └── SingleShaderFileBuilder.cs │ ├── _SynchronizationContextExtensions.cs │ └── _Threading │ │ ├── ObjectThread.cs │ │ ├── ObjectThreadTimer.cs │ │ └── _Misc.cs ├── Views │ ├── DpiScalingProviderExtensions.cs │ ├── IDpiScalingProvider.cs │ ├── ISeeingSharpPainter.cs │ └── MemoryRenderTarget.cs ├── _Exceptions │ ├── SeeingSharpException.cs │ ├── SeeingSharpGraphicsException.cs │ └── SeeingSharpResourcesNotLoadedException.cs └── _Properties.cs ├── SeeingSharp2.sln ├── SeeingSharp2.sln.DotSettings ├── SolutionInfo.cs └── Tools ├── SeeingSharp.ModelViewer ├── App.xaml ├── App.xaml.cs ├── AssemblyInfo.cs ├── Assets │ ├── Background.dds │ └── SeeingSharp.ico ├── MainWindow.MaximizeHandling.cs ├── MainWindow.xaml ├── MainWindow.xaml.cs ├── MainWindowTitleBar.xaml ├── MainWindowTitleBar.xaml.cs ├── MainWindowVM.cs ├── Rendering │ ├── ModelViewerSceneObjectMetadata.cs │ ├── RenderingOptions.cs │ ├── SceneDetailsFilter.cs │ └── SceneHelper.cs ├── SeeingSharp.ModelViewer.csproj ├── SeeingSharp.ModelViewer.csproj.DotSettings ├── Util │ └── _Base │ │ ├── DelegateCommand.cs │ │ └── PropertyChangedBase.cs ├── _AssemblyInfo.cs ├── _Constants.cs ├── _Controls │ ├── PropertyGridControlFactory.cs │ ├── StatusBarControl.xaml │ └── StatusBarControl.xaml.cs ├── _DesignData.cs ├── _Misc.cs └── _Views │ └── _SceneBrowser │ ├── SceneBrowserObjectHardwareDependentDetails.cs │ ├── SceneBrowserObjectHardwareIndependentDetails.cs │ ├── SceneBrowserObjectViewModel.cs │ ├── SceneBrowserView.xaml │ ├── SceneBrowserView.xaml.cs │ └── SceneBrowserViewModel.cs └── SeeingSharp.StaticChecks ├── Program.cs ├── Properties └── launchSettings.json └── SeeingSharp.StaticChecks.csproj /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/LICENSE.md -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | ## Introduction 2 | 1. [Bootstrapping Seeing#](introduction/Bootstrapping.md) 3 | 2. [Views, Scenes and Cameras](introduction/Views-Scenes-and-Cameras.md) 4 | 3. [Filling the Scene with content](introduction/Filling-the-Scene-with-content.md) 5 | 4. [Lightning model](introduction/Lightning-model.md) 6 | 5. [Configuration of Seeing#](introduction/Configuration.md) 7 | 6. [Handling input](introduction/Handling-input.md) 8 | 6. [Toggle object visibility](introduction/Toggle-object-visibility.md) 9 | 10 | ## Special topics 11 | 1. [WPF composition mode](special-topics/wpf-composition-mode/WPF-composition-mode.md) 12 | 2. [CPU utilization on software rendering](special-topics/cpu-utilization-on-software-rendering/CPU-utilization-on-software-rendering.md) -------------------------------------------------------------------------------- /docs/introduction/Lightning-model.md: -------------------------------------------------------------------------------- 1 | [Home](../README.md) 2 | 3 | ## Lightning model for StandardMaterial 4 | The lightning model in Seeing# is very simple. You don't have to define any light. Seeing# uses a per-pixel lightning system where there are two light sources: 5 | * The ambient light which is defined with one ambient factor in the per-view configuration 6 | * A directional light which is placed on the same position as the camera. It points in the same direction as the camera so you can imaging that the current camera of a view does also act as the "sun" for this view. This light does not have any impact on other views on the same scene - each one has it's own light placed on the camera 7 | 8 | ## Lightning model for other materials 9 | It is possible to implement other lightning models using new materials. Currently only the above one is implemented. -------------------------------------------------------------------------------- /docs/special-topics/cpu-utilization-on-software-rendering/CpuUsage_Hardware.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/docs/special-topics/cpu-utilization-on-software-rendering/CpuUsage_Hardware.png -------------------------------------------------------------------------------- /docs/special-topics/cpu-utilization-on-software-rendering/CpuUsage_Software.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/docs/special-topics/cpu-utilization-on-software-rendering/CpuUsage_Software.png -------------------------------------------------------------------------------- /docs/special-topics/wpf-composition-mode/WPFCompositionMode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/docs/special-topics/wpf-composition-mode/WPFCompositionMode.png -------------------------------------------------------------------------------- /misc/Nuget/SeeingSharp_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/misc/Nuget/SeeingSharp_128.png -------------------------------------------------------------------------------- /misc/WikiImages/SeeingSharp_Samples.pdn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/misc/WikiImages/SeeingSharp_Samples.pdn -------------------------------------------------------------------------------- /misc/WikiImages/SeeingSharp_Samples.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/misc/WikiImages/SeeingSharp_Samples.png -------------------------------------------------------------------------------- /misc/WikiImages/SimpleSampleWpf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/misc/WikiImages/SimpleSampleWpf.png -------------------------------------------------------------------------------- /misc/WikiImages/screenshot_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/misc/WikiImages/screenshot_01.png -------------------------------------------------------------------------------- /misc/WikiImages/screenshot_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/misc/WikiImages/screenshot_02.png -------------------------------------------------------------------------------- /misc/WikiImages/screenshot_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/misc/WikiImages/screenshot_03.png -------------------------------------------------------------------------------- /misc/vswhere.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/misc/vswhere.exe -------------------------------------------------------------------------------- /src/.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{cs,vb}] 2 | 3 | # IDE0032: Use auto property 4 | dotnet_style_prefer_auto_properties = false:silent 5 | -------------------------------------------------------------------------------- /src/Benchmarks/SeeingSharp.Benchmarks/Program.cs: -------------------------------------------------------------------------------- 1 | using BenchmarkDotNet.Running; 2 | 3 | namespace SeeingSharp.Benchmarks.Math 4 | { 5 | class Program 6 | { 7 | static void Main(string[] args) 8 | { 9 | var summary = BenchmarkRunner.Run(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Benchmarks/SeeingSharp.Benchmarks/SeeingSharp.Benchmarks.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | net48;net6.0;net8.0 6 | 9.0 7 | disable 8 | AnyCPU;ARM64 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.WinForms/GettingStarted.WinForms.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | WinExe 5 | net8.0-windows 6 | true 7 | AnyCPU 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.WinForms/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Windows.Forms; 4 | using SeeingSharp; 5 | using SeeingSharp.Core; 6 | 7 | namespace GettingStarted.WinForms 8 | { 9 | static class Program 10 | { 11 | /// 12 | /// The main entry point for the application. 13 | /// 14 | [STAThread] 15 | static void Main() 16 | { 17 | GraphicsCore.Loader 18 | .SupportWinForms() 19 | .Load(); 20 | 21 | Application.SetHighDpiMode(HighDpiMode.SystemAware); 22 | Application.EnableVisualStyles(); 23 | Application.SetCompatibleTextRenderingDefault(false); 24 | Application.Run(new MainWindow()); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.WinForms/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "GettingStarted.WinForms": { 4 | "commandName": "Project", 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.WinUI/App.xaml: -------------------------------------------------------------------------------- 1 |  6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.WinUI/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/GettingStarted/GettingStarted.WinUI/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.WinUI/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/GettingStarted/GettingStarted.WinUI/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.WinUI/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/GettingStarted/GettingStarted.WinUI/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.WinUI/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/GettingStarted/GettingStarted.WinUI/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.WinUI/Assets/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/GettingStarted/GettingStarted.WinUI/Assets/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.WinUI/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/GettingStarted/GettingStarted.WinUI/Assets/StoreLogo.png -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.WinUI/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/GettingStarted/GettingStarted.WinUI/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.WinUI/MainWindow.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.WinUI/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "GettingStarted.WinUI (Package)": { 4 | "commandName": "MsixPackage" 5 | }, 6 | "GettingStarted.WinUI (Unpackaged)": { 7 | "commandName": "Project" 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.WinUI/app.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | true/PM 12 | PerMonitorV2, PerMonitor 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.Wpf/App.xaml: -------------------------------------------------------------------------------- 1 |  5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.Wpf/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Windows; 4 | using SeeingSharp; 5 | using SeeingSharp.Core; 6 | 7 | namespace GettingStarted.Wpf 8 | { 9 | public partial class App : Application 10 | { 11 | protected override void OnStartup(StartupEventArgs e) 12 | { 13 | GraphicsCore.Loader 14 | .SupportWpf() 15 | .Load(); 16 | 17 | base.OnStartup(e); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.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 | -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.Wpf/GettingStarted.Wpf.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | WinExe 5 | net8.0-windows 6 | true 7 | AnyCPU 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/Samples/GettingStarted/GettingStarted.Wpf/MainWindow.xaml: -------------------------------------------------------------------------------- 1 |  9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Assets/Background.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Assets/Background.dds -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Assets/Background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Assets/Background.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Assets/Floor.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Assets/Floor.dds -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Assets/Floor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Assets/Floor.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics2D/Image/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics2D/Image/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics2D/Image/SimpleImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics2D/Image/SimpleImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics2D/MoreImages/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics2D/MoreImages/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics2D/MoreImages/SimpleImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics2D/MoreImages/SimpleImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics2D/Rectangle/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics2D/Rectangle/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics3D/Direct2DTexture/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics3D/Direct2DTexture/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics3D/Direct2DTextureAnimated/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics3D/Direct2DTextureAnimated/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics3D/ExtrudeGeometry/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics3D/ExtrudeGeometry/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics3D/GeneratedBorder/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics3D/GeneratedBorder/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics3D/MultiMaterial/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics3D/MultiMaterial/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics3D/MultiMaterial/SimpleTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics3D/MultiMaterial/SimpleTexture.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics3D/ObjectFiltering/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics3D/ObjectFiltering/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics3D/ParentChild/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics3D/ParentChild/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics3D/SkyboxScene/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics3D/SkyboxScene/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics3D/SkyboxScene/SkyBox.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics3D/SkyboxScene/SkyBox.dds -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics3D/Text3D/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics3D/Text3D/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics3D/TextureSampling/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics3D/TextureSampling/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics3D/TextureSampling/PrimitiveTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics3D/TextureSampling/PrimitiveTexture.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Basics3D/WireframeMaterial/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Basics3D/WireframeMaterial/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/MassScenes/StaticCubes/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/MassScenes/StaticCubes/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/MassScenes/StaticCubes/SimpleTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/MassScenes/StaticCubes/SimpleTexture.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/PlatformDependentMethods.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | 4 | namespace SeeingSharp.SampleContainer 5 | { 6 | public static class PlatformDependentMethods 7 | { 8 | private static Action? s_showUrlInBrowser; 9 | 10 | public static void SetOpenUrlInBrowser(Action showUrlInBrowser) 11 | { 12 | s_showUrlInBrowser = showUrlInBrowser; 13 | } 14 | 15 | public static void OpenUrlInBrowser(string url) 16 | { 17 | if (s_showUrlInBrowser != null) { s_showUrlInBrowser(url); } 18 | else 19 | { 20 | // Default implementation 21 | var psi = new ProcessStartInfo 22 | { 23 | FileName = url, 24 | UseShellExecute = true 25 | }; 26 | Process.Start(psi); 27 | } 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Postprocessing/EdgeDetect/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Postprocessing/EdgeDetect/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Postprocessing/Focus/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Postprocessing/Focus/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Primitives3D/Cone/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Primitives3D/Cone/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Primitives3D/Cube/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Primitives3D/Cube/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Primitives3D/Cylinder/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Primitives3D/Cylinder/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Primitives3D/Geosphere/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Primitives3D/Geosphere/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Primitives3D/Primitive3DSampleSettings.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace SeeingSharp.SampleContainer.Primitives3D 4 | { 5 | public class Primitive3DSampleSettings : SampleSettingsWith3D 6 | { 7 | public const string CATEGORY_NAME = "Primitive"; 8 | 9 | private bool _textured; 10 | private bool _animated = true; 11 | 12 | [Category(CATEGORY_NAME)] 13 | public bool Textured 14 | { 15 | get => _textured; 16 | set 17 | { 18 | if (_textured != value) 19 | { 20 | _textured = value; 21 | this.RaiseRecreateRequest(); 22 | } 23 | } 24 | } 25 | 26 | [Category(CATEGORY_NAME)] 27 | public bool Animated 28 | { 29 | get => _animated; 30 | set 31 | { 32 | if (_animated != value) 33 | { 34 | _animated = value; 35 | this.RaiseRecreateRequest(); 36 | } 37 | } 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Primitives3D/PrimitiveTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Primitives3D/PrimitiveTexture.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Primitives3D/Pyramid/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Primitives3D/Pyramid/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Primitives3D/Sphere/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Primitives3D/Sphere/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Primitives3D/Torus/PreviewImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.SampleContainer/Primitives3D/Torus/PreviewImage.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Util/DelegateCommand.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Input; 3 | 4 | namespace SeeingSharp.SampleContainer.Util 5 | { 6 | public class DelegateCommand : ICommand 7 | { 8 | private Func? _canExecuteAction; 9 | 10 | private Action _executeAction; 11 | 12 | #pragma warning disable 13 | public event EventHandler? CanExecuteChanged; 14 | #pragma warning restore 15 | 16 | public DelegateCommand(Action executeAction) 17 | { 18 | _executeAction = executeAction; 19 | } 20 | 21 | public DelegateCommand(Action executeAction, Func canExecuteAction) 22 | { 23 | _executeAction = executeAction; 24 | _canExecuteAction = canExecuteAction; 25 | } 26 | 27 | public bool CanExecute(object? parameter) 28 | { 29 | if (_canExecuteAction == null) { return true; } 30 | return _canExecuteAction(); 31 | } 32 | 33 | public void Execute(object? parameter) 34 | { 35 | _executeAction(); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Util/PropertyChangedBase.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Runtime.CompilerServices; 3 | 4 | namespace SeeingSharp.SampleContainer.Util 5 | { 6 | public class PropertyChangedBase : INotifyPropertyChanged 7 | { 8 | public event PropertyChangedEventHandler? PropertyChanged; 9 | 10 | protected void RaisePropertyChanged([CallerMemberName] string? propName = null) 11 | { 12 | this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName)); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Util/SampleCommand.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp.SampleContainer.Util 4 | { 5 | public class SampleCommand : DelegateCommand 6 | { 7 | public string CommandText 8 | { 9 | get; 10 | } 11 | 12 | public bool CanExecuteAsProperty => this.CanExecute(null); 13 | 14 | public string IconFontFamily { get; } 15 | 16 | public char IconFontGlyph { get; } 17 | 18 | public SampleCommand( 19 | string commandText, Action execute, Func canExecute, 20 | string iconFontFamily, char iconFontGlyph) 21 | : base(execute, canExecute) 22 | { 23 | this.CommandText = commandText; 24 | this.IconFontFamily = iconFontFamily; 25 | this.IconFontGlyph = iconFontGlyph; 26 | } 27 | 28 | /// 29 | public override string ToString() 30 | { 31 | return this.CommandText; 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.SampleContainer/Util/_Misc.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace SeeingSharp.SampleContainer.Util 6 | { 7 | enum PerformanceDrawingLayerType 8 | { 9 | None, 10 | 11 | FramesPerSecond, 12 | 13 | PressedKeys 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/LockScreenLogo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/LockScreenLogo.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/LockScreenLogo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/LockScreenLogo.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/LockScreenLogo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/LockScreenLogo.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/LockScreenLogo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/LockScreenLogo.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/SplashScreen.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/SplashScreen.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/SplashScreen.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/SplashScreen.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/SplashScreen.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/SplashScreen.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/SplashScreen.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/SplashScreen.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square150x150Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square150x150Logo.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square150x150Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square150x150Logo.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square150x150Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square150x150Logo.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square150x150Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square150x150Logo.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square310x310Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square310x310Logo.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square310x310Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square310x310Logo.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square310x310Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square310x310Logo.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square310x310Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square310x310Logo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square310x310Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square310x310Logo.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-16_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-16_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-20_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-20_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-256_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-256_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-30_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-30_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-32_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-32_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-36_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-36_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-40_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-40_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-48_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-48_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-60_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-60_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-64_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-64_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-72_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-72_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-80_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-80_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-96_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square44x44Logo.targetsize-96_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square71x71Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square71x71Logo.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square71x71Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square71x71Logo.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square71x71Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square71x71Logo.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square71x71Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square71x71Logo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Square71x71Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Square71x71Logo.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/StoreLogo.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/StoreLogo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/StoreLogo.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/StoreLogo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/StoreLogo.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/StoreLogo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/StoreLogo.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/StoreLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/StoreLogo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/StoreLogo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/StoreLogo.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Wide310x150Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Wide310x150Logo.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Wide310x150Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Wide310x150Logo.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Wide310x150Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Wide310x150Logo.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Assets/Wide310x150Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.UwpSamples/Assets/Wide310x150Logo.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/BundleArtifacts/Upload/x86.txt: -------------------------------------------------------------------------------- 1 | MainPackage=C:\Projekte\Github\SeeingSharp2\Samples\SeeingSharp.UwpSamples\bin\x86\Release\Upload\SeeingSharp.UwpSamples_0.8.0.0_x86.msix 2 | SymbolPackage=C:\Projekte\Github\SeeingSharp2\Samples\SeeingSharp.UwpSamples\bin\x86\Release\Upload\SeeingSharp.UwpSamples_0.8.0.0\SeeingSharp.UwpSamples_0.8.0.0_x86.appxsym 3 | ResourcePack=C:\Projekte\Github\SeeingSharp2\Samples\SeeingSharp.UwpSamples\bin\x86\Release\Upload\SeeingSharp.UwpSamples_0.8.0.0_scale-100.msix 4 | ResourcePack=C:\Projekte\Github\SeeingSharp2\Samples\SeeingSharp.UwpSamples\bin\x86\Release\Upload\SeeingSharp.UwpSamples_0.8.0.0_scale-125.msix 5 | ResourcePack=C:\Projekte\Github\SeeingSharp2\Samples\SeeingSharp.UwpSamples\bin\x86\Release\Upload\SeeingSharp.UwpSamples_0.8.0.0_scale-150.msix 6 | ResourcePack=C:\Projekte\Github\SeeingSharp2\Samples\SeeingSharp.UwpSamples\bin\x86\Release\Upload\SeeingSharp.UwpSamples_0.8.0.0_scale-400.msix 7 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/BundleArtifacts/x86.txt: -------------------------------------------------------------------------------- 1 | MainPackage=C:\Projekte\Github\SeeingSharp2\Samples\SeeingSharp.UwpSamples\bin\x86\Release\SeeingSharp.UwpSamples_0.8.0.0_x86.msix 2 | SymbolPackage=C:\Projekte\Github\SeeingSharp2\Samples\SeeingSharp.UwpSamples\obj\x86\Release\Symbols\SeeingSharp.UwpSamples_0.8.0.0_x86.appxsym 3 | ResourcePack=C:\Projekte\Github\SeeingSharp2\Samples\SeeingSharp.UwpSamples\bin\x86\Release\SeeingSharp.UwpSamples_0.8.0.0_scale-100.msix 4 | ResourcePack=C:\Projekte\Github\SeeingSharp2\Samples\SeeingSharp.UwpSamples\bin\x86\Release\SeeingSharp.UwpSamples_0.8.0.0_scale-125.msix 5 | ResourcePack=C:\Projekte\Github\SeeingSharp2\Samples\SeeingSharp.UwpSamples\bin\x86\Release\SeeingSharp.UwpSamples_0.8.0.0_scale-150.msix 6 | ResourcePack=C:\Projekte\Github\SeeingSharp2\Samples\SeeingSharp.UwpSamples\bin\x86\Release\SeeingSharp.UwpSamples_0.8.0.0_scale-400.msix 7 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Controls/PropertyGrid.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Controls/_Misc.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.UwpSamples.Controls 2 | { 3 | public enum PropertyValueType 4 | { 5 | Bool, 6 | 7 | String, 8 | 9 | Enum 10 | } 11 | } -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | [assembly: AssemblyTitle("SeeingSharp.UwpSamples")] -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/SeeingSharp.UwpSamples.csproj.DotSettings: -------------------------------------------------------------------------------- 1 |  2 | True -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/_Base/ViewModelBase.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Runtime.CompilerServices; 3 | 4 | namespace SeeingSharp.UwpSamples 5 | { 6 | public class ViewModelBase : INotifyPropertyChanged 7 | { 8 | public event PropertyChangedEventHandler PropertyChanged; 9 | 10 | protected void RaisePropertyChanged([CallerMemberName] string propName = "") 11 | { 12 | this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName)); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.UwpSamples/_pkginfo.txt: -------------------------------------------------------------------------------- 1 | D:\Projects\GitHub\RolandKoenig\SeeingSharp2\_Samples\SeeingSharp.UwpSamples\bin\x86\Release\Upload\SeeingSharp.UwpSamples_1.1.6.0\SeeingSharp.UwpSamples_1.1.6.0_x86.appxbundle 2 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinFormsSamples/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/Adapter16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/Adapter16x16.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/Camera16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/Camera16x16.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/Copy16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/Copy16x16.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/Cross16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/Cross16x16.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/Help16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/Help16x16.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/Output16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/Output16x16.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/OutputAdd16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/OutputAdd16x16.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/PageCSharp16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/PageCSharp16x16.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/PerformanceMeasure16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinFormsSamples/Assets/Icons/PerformanceMeasure16x16.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinFormsSamples/Assets/SeeingSharp.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinFormsSamples/Assets/SeeingSharp.ico -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinFormsSamples/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | using SeeingSharp.Core; 4 | 5 | namespace SeeingSharp.WinFormsSamples 6 | { 7 | internal static class Program 8 | { 9 | [STAThread] 10 | private static void Main() 11 | { 12 | Application.EnableVisualStyles(); 13 | Application.SetCompatibleTextRenderingDefault(false); 14 | #if NET5_0_OR_GREATER 15 | Application.SetHighDpiMode(HighDpiMode.PerMonitorV2); 16 | #endif 17 | 18 | GraphicsCore.Loader 19 | .SupportWinForms() 20 | .Load(); 21 | 22 | Application.Run(new MainWindow()); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinFormsSamples/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinFormsSamples/SeeingSharp.WinFormsSamples.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | net48;net6.0-windows;net8.0-windows 4 | 9.0 5 | Assets\SeeingSharp.ico 6 | WinExe 7 | true 8 | 9 | AnyCPU;ARM64 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/LockScreenLogo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/LockScreenLogo.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/LockScreenLogo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/LockScreenLogo.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/LockScreenLogo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/LockScreenLogo.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/LockScreenLogo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/LockScreenLogo.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/SplashScreen.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/SplashScreen.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/SplashScreen.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/SplashScreen.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/SplashScreen.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/SplashScreen.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/SplashScreen.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/SplashScreen.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square150x150Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square150x150Logo.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square150x150Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square150x150Logo.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square150x150Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square150x150Logo.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square150x150Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square150x150Logo.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square310x310Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square310x310Logo.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square310x310Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square310x310Logo.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square310x310Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square310x310Logo.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square310x310Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square310x310Logo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square310x310Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square310x310Logo.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-16_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-16_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-20_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-20_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-256_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-256_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-30_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-30_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-32_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-32_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-36_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-36_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-40_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-40_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-48_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-48_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-60_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-60_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-64_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-64_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-72_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-72_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-80_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-80_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-96_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square44x44Logo.targetsize-96_altform-unplated.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square71x71Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square71x71Logo.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square71x71Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square71x71Logo.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square71x71Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square71x71Logo.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square71x71Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square71x71Logo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square71x71Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Square71x71Logo.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/StoreLogo.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/StoreLogo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/StoreLogo.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/StoreLogo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/StoreLogo.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/StoreLogo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/StoreLogo.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/StoreLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/StoreLogo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/StoreLogo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/StoreLogo.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Wide310x150Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Wide310x150Logo.scale-100.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Wide310x150Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Wide310x150Logo.scale-125.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Wide310x150Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Wide310x150Logo.scale-150.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Wide310x150Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Assets/Wide310x150Logo.scale-400.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/ChildRenderWindow.xaml: -------------------------------------------------------------------------------- 1 |  9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/ChildRenderWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Threading.Tasks; 4 | using Microsoft.UI.Xaml; 5 | using SeeingSharp.SampleContainer; 6 | 7 | namespace SeeingSharp.WinUIDesktopSamples 8 | { 9 | public sealed partial class ChildRenderWindow : Window 10 | { 11 | public bool DiscardPresent 12 | { 13 | get; 14 | set; 15 | } 16 | 17 | public ChildRenderWindow() 18 | { 19 | this.InitializeComponent(); 20 | } 21 | 22 | public Task ClearAsync() 23 | { 24 | return Task.Delay(10); 25 | } 26 | 27 | public Task SetRenderingDataAsync(SampleBase sample) 28 | { 29 | return Task.Delay(10); 30 | } 31 | 32 | public void TriggerRenderControlFadeInAnimation() 33 | { 34 | 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Controls/PropertyGrid.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Controls/_Misc.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.WinUIDesktopSamples 2 | { 3 | public enum PropertyValueType 4 | { 5 | Bool, 6 | 7 | String, 8 | 9 | Enum 10 | } 11 | } -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WinUIDesktopSamples/Icon.ico -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "SeeingSharp.WinUIDesktopSamples (Package)": { 4 | "commandName": "MsixPackage" 5 | }, 6 | "SeeingSharp.WinUIDesktopSamples (Unpackaged)": { 7 | "commandName": "Project" 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/_Base/ViewModelBase.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Runtime.CompilerServices; 3 | 4 | namespace SeeingSharp.WinUIDesktopSamples 5 | { 6 | public class ViewModelBase : INotifyPropertyChanged 7 | { 8 | public event PropertyChangedEventHandler? PropertyChanged; 9 | 10 | protected void RaisePropertyChanged([CallerMemberName] string? propName = "") 11 | { 12 | this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName)); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WinUIDesktopSamples/app.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | true/PM 12 | PerMonitorV2, PerMonitor 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WpfSamples/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WpfSamples/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | using SeeingSharp.Core; 3 | 4 | namespace SeeingSharp.WpfSamples 5 | { 6 | public partial class App : Application 7 | { 8 | protected override void OnStartup(StartupEventArgs e) 9 | { 10 | GraphicsCore.Loader 11 | .SupportWpf() 12 | .Load(); 13 | 14 | base.OnStartup(e); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WpfSamples/Assets/Icons/Adapter16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WpfSamples/Assets/Icons/Adapter16x16.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WpfSamples/Assets/Icons/Output16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WpfSamples/Assets/Icons/Output16x16.png -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WpfSamples/Assets/SeeingSharp.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WpfSamples/Assets/SeeingSharp.ico -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WpfSamples/ChildRenderWindow.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WpfSamples/Logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Samples/SeeingSharp.WpfSamples/Logo.ico -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WpfSamples/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WpfSamples/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "SeeingSharp.WpfSamples": { 4 | "commandName": "Project", 5 | "nativeDebugging": false 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WpfSamples/SeeingSharp.WpfSamples.csproj.DotSettings: -------------------------------------------------------------------------------- 1 |  2 | True -------------------------------------------------------------------------------- /src/Samples/SeeingSharp.WpfSamples/_Dialogs/PerformanceOverviewViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using SeeingSharp.SampleContainer.Util; 3 | using SeeingSharp.Util; 4 | 5 | namespace SeeingSharp.WpfSamples 6 | { 7 | public class PerformanceOverviewViewModel : PropertyChangedBase 8 | { 9 | private PerformanceAnalyzer _performanceAnalyzer; 10 | 11 | public List DurationResults { get; } 12 | 13 | public PerformanceOverviewViewModel(PerformanceAnalyzer performanceAnalyzer) 14 | { 15 | _performanceAnalyzer = performanceAnalyzer; 16 | this.DurationResults = new List(); 17 | } 18 | 19 | public void TriggerRefresh() 20 | { 21 | this.DurationResults.Clear(); 22 | foreach (var actResult in _performanceAnalyzer.GetCurrentResults()) 23 | { 24 | this.DurationResults.Add(actResult); 25 | } 26 | this.DurationResults.Sort((left, right) => -left.SumAverageMsDouble.CompareTo(right.SumAverageMsDouble)); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/SeeingSharp.AssimpImporter/AssimpImportOptions.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Drawing3D.ImportExport; 2 | 3 | namespace SeeingSharp.AssimpImporter 4 | { 5 | public class AssimpImportOptions : ImportOptions 6 | { 7 | public ConfigureTextureDelegate? ConfigureTextureAction { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/SeeingSharp.AssimpImporter/SeeingSharp.AssimpImporter.csproj.DotSettings: -------------------------------------------------------------------------------- 1 |  2 | True -------------------------------------------------------------------------------- /src/SeeingSharp.AssimpImporter/_Extensions.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Core; 2 | 3 | namespace SeeingSharp 4 | { 5 | public static class SeeingSharpWpfExtensionMethods 6 | { 7 | public static SeeingSharpLoader RegisterAssimpImporter(this SeeingSharpLoader loader) 8 | { 9 | loader.RegisterModelImporter(new AssimpImporter.AssimpImporter()); 10 | return loader; 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/SeeingSharp.AssimpImporter/_Misc.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Drawing3D.Resources; 2 | 3 | namespace SeeingSharp.AssimpImporter 4 | { 5 | public delegate void ConfigureTextureDelegate(string filePath, TextureResource texture); 6 | } 7 | -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/AssemblyResourcesAndShaderTests/ShaderCompileTests.cs: -------------------------------------------------------------------------------- 1 | using System.Text; 2 | using Microsoft.VisualStudio.TestTools.UnitTesting; 3 | using SeeingSharp.Util; 4 | 5 | namespace SeeingSharp.Tests.AssemblyResourcesAndShaderTests 6 | { 7 | [TestClass] 8 | public class ShaderCompileTests 9 | { 10 | [TestMethod] 11 | public void Check_ReadAndMergeFromAssemblyResources() 12 | { 13 | var resLink = new AssemblyResourceLink(this.GetType(), 14 | "Dummy", 15 | "CommonPixelShader.hlsl"); 16 | 17 | var singleShaderFileBuilder = new StringBuilder(1024); 18 | SingleShaderFileBuilder.ReadShaderFileAndResolveIncludes(resLink, singleShaderFileBuilder); 19 | var result = singleShaderFileBuilder.ToString(); 20 | 21 | Assert.IsTrue(result.Contains("constants.hlsl")); 22 | Assert.IsTrue(result.Contains("struct VSInputStandard")); 23 | Assert.IsTrue(result.Contains("float4 ApplyColorBorders(float4 inputColor, float distanceToCamera, float2 texCoord)")); 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/AssemblyResourcesAndShaderTests/_mainInclude.hlsl: -------------------------------------------------------------------------------- 1 | #include "constants.hlsl" 2 | #include "structures.hlsl" 3 | #include "functions.hlsl" -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | [assembly: AssemblyTitle("SeeingSharp.Tests")] 5 | [assembly: AssemblyDescription("")] 6 | [assembly: AssemblyConfiguration("")] 7 | [assembly: AssemblyCompany("")] 8 | [assembly: AssemblyProduct("SeeingSharp.Tests")] 9 | [assembly: AssemblyCopyright("Copyright © 2018")] 10 | [assembly: AssemblyTrademark("")] 11 | [assembly: AssemblyCulture("")] 12 | 13 | [assembly: ComVisible(false)] 14 | 15 | [assembly: Guid("4fa605db-7fc0-46a1-9741-5b07e394d5a3")] 16 | 17 | // [assembly: AssemblyVersion("1.0.*")] 18 | [assembly: AssemblyVersion("1.0.0.0")] 19 | [assembly: AssemblyFileVersion("1.0.0.0")] -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "SeeingSharp.Tests": { 4 | "commandName": "Project", 5 | "nativeDebugging": false 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/BitmapComparison/BlackScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/BitmapComparison/BlackScreen.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/BitmapComparison/ClearedScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/BitmapComparison/ClearedScreen.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/BitmapComparison/FlatShadedObject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/BitmapComparison/FlatShadedObject.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/BitmapComparison/FlatShadedObject_Enlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/BitmapComparison/FlatShadedObject_Enlighted.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/BitmapComparison/FlatShadedObject_Negative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/BitmapComparison/FlatShadedObject_Negative.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/BitmapComparison/FlatShadedObject_Smaller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/BitmapComparison/FlatShadedObject_Smaller.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/BitmapComparison/WhiteScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/BitmapComparison/WhiteScreen.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Bitmaps/Boom.LicenseInfo.txt: -------------------------------------------------------------------------------- 1 | CC0 1.0 Universal (CC0 1.0), last checked 2016-01-02 2 | http://opengameart.org/content/explosion-sheet -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Bitmaps/Boom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Bitmaps/Boom.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Bitmaps/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Bitmaps/Logo.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing2D/DebugDrawingLayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing2D/DebugDrawingLayer.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing2D/RoundedRectOver3D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing2D/RoundedRectOver3D.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing2D/SimpleBitmap_Animated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing2D/SimpleBitmap_Animated.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing2D/SimpleBitmap_Transparency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing2D/SimpleBitmap_Transparency.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing2D/SimpleGeometry2D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing2D/SimpleGeometry2D.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing2D/SimpleGeometry2D_Ellipse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing2D/SimpleGeometry2D_Ellipse.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing2D/SimpleObject_D2DTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing2D/SimpleObject_D2DTexture.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing2D/SimpleRoundedRectFilled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing2D/SimpleRoundedRectFilled.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing2D/SimpleRoundedRectFilled_LinearGradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing2D/SimpleRoundedRectFilled_LinearGradient.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing2D/SimpleRoundedRectFilled_RadialGradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing2D/SimpleRoundedRectFilled_RadialGradient.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing2D/SimpleText_SingleColor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing2D/SimpleText_SingleColor.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing3D/ClearedScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing3D/ClearedScreen.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing3D/FullscreenTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing3D/FullscreenTexture.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing3D/SimpleLine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing3D/SimpleLine.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing3D/SimpleObject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing3D/SimpleObject.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing3D/SimpleObject_DiffuseColorFromMaterial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing3D/SimpleObject_DiffuseColorFromMaterial.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing3D/SimpleObject_Ortho.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing3D/SimpleObject_Ortho.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing3D/SimpleObject_StackedGeometry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing3D/SimpleObject_StackedGeometry.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing3D/SimpleObject_Textured.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing3D/SimpleObject_Textured.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing3D/SimpleObject_Textured_Point_Filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing3D/SimpleObject_Textured_Point_Filter.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing3D/SimpleObject_Transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing3D/SimpleObject_Transparent.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Drawing3D/Skybox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Drawing3D/Skybox.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/ErrorHandling/SimpleObject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/ErrorHandling/SimpleObject.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/GeometryLoadingAndRendering/FlatShadedObject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/GeometryLoadingAndRendering/FlatShadedObject.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/GeometryLoadingAndRendering/ShadedObject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/GeometryLoadingAndRendering/ShadedObject.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/GeometryLoadingAndRendering/SingleSidedObject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/GeometryLoadingAndRendering/SingleSidedObject.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/GeometryLoadingAndRendering/TwoSidedObject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/GeometryLoadingAndRendering/TwoSidedObject.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/ModelLoadingAndRendering/ModelStl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/ModelLoadingAndRendering/ModelStl.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Models/Fox.LicenseInfo.txt: -------------------------------------------------------------------------------- 1 | Licensed by CC0, last checked on 2016-01-31 2 | http://opengameart.org/content/fox-and-shiba -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Models/Fox.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Models/Fox.stl -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Postprocessing/PostProcess_EdgeDetect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Postprocessing/PostProcess_EdgeDetect.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Postprocessing/PostProcess_Focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Postprocessing/PostProcess_Focus.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/TextureUploader/TestTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/TextureUploader/TestTexture.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Textures/Background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Textures/Background.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Textures/PrimitiveTexture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Textures/PrimitiveTexture.png -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/Resources/Textures/SkyBox.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp.Tests/Resources/Textures/SkyBox.dds -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/SeeingSharp.Tests.csproj.DotSettings: -------------------------------------------------------------------------------- 1 |  2 | True -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/_AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | #if !NET48 2 | [assembly: System.Runtime.Versioning.SupportedOSPlatform("windows")] 3 | #endif -------------------------------------------------------------------------------- /src/SeeingSharp.Tests/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/SeeingSharp.Uwp/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | [assembly: AssemblyTitle("SeeingSharp.Uwp")] -------------------------------------------------------------------------------- /src/SeeingSharp.Uwp/SeeingSharp.Uwp.csproj.DotSettings: -------------------------------------------------------------------------------- 1 |  2 | True -------------------------------------------------------------------------------- /src/SeeingSharp.Uwp/SeeingSharpConstantsUwp.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp 4 | { 5 | public class SeeingSharpConstantsUwp 6 | { 7 | // Misc 8 | public static readonly TimeSpan THROTTLED_VIEW_RECREATION_TIME_ON_RESIZE = TimeSpan.FromSeconds(0.3); 9 | } 10 | } -------------------------------------------------------------------------------- /src/SeeingSharp.Uwp/_Extensions.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Core; 2 | 3 | namespace SeeingSharp 4 | { 5 | public static class SeeingSharpUwpExtensionMethods 6 | { 7 | public static SeeingSharpLoader SupportUwp(this SeeingSharpLoader loader) 8 | { 9 | loader.RegisterExtension(new SeeingSharpUwpExtensions()); 10 | return loader; 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/SeeingSharp.Uwp/_Util/SeeingSharpUwpUtil.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Mathematics; 2 | 3 | namespace SeeingSharp.Util 4 | { 5 | public static class SeeingSharpUwpUtil 6 | { 7 | public static Color4 Color4FromUIColor(ref Color uiColor) 8 | { 9 | return new Color4( 10 | uiColor.R / 255f, 11 | uiColor.G / 255f, 12 | uiColor.B / 255f, 13 | uiColor.A / 255f); 14 | } 15 | 16 | public static Color UIColorFromColor4(ref Color4 color) 17 | { 18 | var uiColor = new Color 19 | { 20 | A = (byte)EngineMath.Clamp(0f, 255f, color.Alpha * 255f), 21 | R = (byte)EngineMath.Clamp(0f, 255f, color.Red * 255f), 22 | G = (byte)EngineMath.Clamp(0f, 255f, color.Green * 255f), 23 | B = (byte)EngineMath.Clamp(0f, 255f, color.Blue * 255f) 24 | }; 25 | 26 | return uiColor; 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /src/SeeingSharp.WinForms/Multimedia/Input/IInputControlHost.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Forms; 2 | 3 | namespace SeeingSharp.Input 4 | { 5 | public interface IInputControlHost 6 | { 7 | Control GetWinFormsInputControl(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/SeeingSharp.WinForms/SeeingSharp.WinForms.csproj.DotSettings: -------------------------------------------------------------------------------- 1 |  2 | True -------------------------------------------------------------------------------- /src/SeeingSharp.WinForms/SeeingSharpConstantsWinForms.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp 4 | { 5 | public class SeeingSharpConstantsWinForms 6 | { 7 | // Constants for design-time 8 | public const string DESIGNER_CATEGORY_RENDERER = "Renderer"; 9 | 10 | // Misc 11 | public static readonly TimeSpan MOUSE_CLICK_MAX_TIME = TimeSpan.FromMilliseconds(200.0); 12 | public static readonly TimeSpan THROTTLED_VIEW_RECREATION_TIME_ON_RESIZE = TimeSpan.FromSeconds(0.5); 13 | } 14 | } -------------------------------------------------------------------------------- /src/SeeingSharp.WinForms/_AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | #if !NET48 2 | [assembly: System.Runtime.Versioning.SupportedOSPlatform("windows")] 3 | #endif -------------------------------------------------------------------------------- /src/SeeingSharp.WinForms/_Extensions.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Core; 2 | 3 | namespace SeeingSharp 4 | { 5 | public static class SeeingSharpWinFormsExtensionMethods 6 | { 7 | public static SeeingSharpLoader SupportWinForms(this SeeingSharpLoader loader) 8 | { 9 | loader.RegisterExtension(new SeeingSharpWinFormsExtensions()); 10 | return loader; 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/SeeingSharp.WinForms/_Util/SeeingSharpWinFormsUtil.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Mathematics; 2 | using GDI = System.Drawing; 3 | 4 | namespace SeeingSharp.Util 5 | { 6 | public static class SeeingSharpWinFormsUtil 7 | { 8 | public static Color4 Color4FromGdiColor(this ref GDI.Color drawingColor) 9 | { 10 | return new Color4( 11 | drawingColor.R / 255f, 12 | drawingColor.G / 255f, 13 | drawingColor.B / 255f, 14 | drawingColor.A / 255f); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /src/SeeingSharp.WinForms/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/SeeingSharp.WinUI/SeeingSharpConstantsUwp.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp 4 | { 5 | public class SeeingSharpConstantsUwp 6 | { 7 | // Misc 8 | public static readonly TimeSpan THROTTLED_VIEW_RECREATION_TIME_ON_RESIZE = TimeSpan.FromSeconds(0.3); 9 | } 10 | } -------------------------------------------------------------------------------- /src/SeeingSharp.WinUI/_AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | [assembly: System.Runtime.Versioning.SupportedOSPlatform("windows10.0.19041")] 2 | -------------------------------------------------------------------------------- /src/SeeingSharp.WinUI/_Extensions.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Core; 2 | 3 | namespace SeeingSharp 4 | { 5 | public static class SeeingSharpUwpExtensionMethods 6 | { 7 | public static SeeingSharpLoader SupportWinUI(this SeeingSharpLoader loader) 8 | { 9 | loader.RegisterExtension(new SeeingSharpWinUIExtensions()); 10 | return loader; 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/SeeingSharp.WinUI/_Util/SeeingSharpWinUIUtil.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Mathematics; 2 | 3 | namespace SeeingSharp.Util 4 | { 5 | public static class SeeingSharpWinUIUtil 6 | { 7 | public static Color4 Color4FromUIColor(ref Color uiColor) 8 | { 9 | return new Color4( 10 | uiColor.R / 255f, 11 | uiColor.G / 255f, 12 | uiColor.B / 255f, 13 | uiColor.A / 255f); 14 | } 15 | 16 | public static Color UIColorFromColor4(ref Color4 color) 17 | { 18 | var uiColor = new Color 19 | { 20 | A = (byte)EngineMath.Clamp(0f, 255f, color.Alpha * 255f), 21 | R = (byte)EngineMath.Clamp(0f, 255f, color.Red * 255f), 22 | G = (byte)EngineMath.Clamp(0f, 255f, color.Green * 255f), 23 | B = (byte)EngineMath.Clamp(0f, 255f, color.Blue * 255f) 24 | }; 25 | 26 | return uiColor; 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /src/SeeingSharp.Wpf/Multimedia/Views/_Misc.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Views 2 | { 3 | public enum WpfSeeingSharpCompositionMode 4 | { 5 | /// 6 | /// SeeingSharp composes its rendering with Wpf over hardware. 7 | /// 8 | OverHardware, 9 | 10 | /// 11 | /// SeeingSharp composes its rendering with Wpf over software based fallback solution. 12 | /// 13 | FallbackOverSoftware, 14 | 15 | /// 16 | /// Currently no composition active. 17 | /// 18 | None 19 | } 20 | } -------------------------------------------------------------------------------- /src/SeeingSharp.Wpf/SeeingSharp.Wpf.csproj.DotSettings: -------------------------------------------------------------------------------- 1 |  2 | True 3 | True -------------------------------------------------------------------------------- /src/SeeingSharp.Wpf/SeeingSharpConstantsWpf.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp 4 | { 5 | public class SeeingSharpConstantsWinWpf 6 | { 7 | // Misc 8 | public static readonly TimeSpan THROTTLED_VIEW_RECREATION_TIME_ON_RESIZE = TimeSpan.FromSeconds(0.5); 9 | } 10 | } -------------------------------------------------------------------------------- /src/SeeingSharp.Wpf/_AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Markup; 2 | 3 | [assembly: XmlnsDefinition("http://www.rolandk.de/seeingsharp", "SeeingSharp.Views")] 4 | 5 | #if !NET48 6 | [assembly: System.Runtime.Versioning.SupportedOSPlatform("windows")] 7 | #endif -------------------------------------------------------------------------------- /src/SeeingSharp.Wpf/_Extensions.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Core; 2 | 3 | namespace SeeingSharp 4 | { 5 | public static class SeeingSharpWpfExtensionMethods 6 | { 7 | public static SeeingSharpLoader SupportWpf(this SeeingSharpLoader loader) 8 | { 9 | loader.RegisterExtension(new SeeingSharpWpfExtensions()); 10 | return loader; 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Checking/SeeingSharpCheckException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp.Checking 4 | { 5 | public class SeeingSharpCheckException : SeeingSharpException 6 | { 7 | /// 8 | /// Creates a new CommonLibraryException object 9 | /// 10 | public SeeingSharpCheckException(string message) 11 | : base(message) 12 | { 13 | } 14 | 15 | /// 16 | /// Creates a new CommonLibraryException object 17 | /// 18 | public SeeingSharpCheckException(string message, Exception innerException) 19 | : base(message, innerException) 20 | { 21 | 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Components/Input/FocusedObjectCameraComponent.cs: -------------------------------------------------------------------------------- 1 | using System.Numerics; 2 | using SeeingSharp.Core; 3 | 4 | namespace SeeingSharp.Components.Input 5 | { 6 | public class FocusedObjectCameraComponent : FocusedCameraComponent 7 | { 8 | public SceneSpacialObject? FocusedObject 9 | { 10 | get; 11 | set; 12 | } 13 | 14 | protected override Vector3 GetFocusedLocation() 15 | { 16 | var focusedObject = this.FocusedObject; 17 | 18 | if (focusedObject != null) 19 | { 20 | return focusedObject.Position; 21 | } 22 | return Vector3.Zero; 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Animations/AnimationMetadata.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp.Core.Animations 4 | { 5 | public class AnimationMetadata 6 | { 7 | /// 8 | /// Gets the animation. 9 | /// 10 | public IAnimation Animation 11 | { 12 | get; 13 | } 14 | 15 | /// 16 | /// Gets the finished callback. 17 | /// 18 | public Action FinishedCallback 19 | { 20 | get; 21 | } 22 | 23 | /// 24 | /// Initializes a new instance of the class. 25 | /// 26 | /// The animation. 27 | /// The finished callback. 28 | public AnimationMetadata(IAnimation animation, Action finishedCallback) 29 | { 30 | this.Animation = animation; 31 | this.FinishedCallback = finishedCallback; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Animations/AnimationState.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core.Animations 2 | { 3 | public class AnimationState 4 | { 5 | /// 6 | /// Gets the index within the collection of running animations. 7 | /// 8 | public int RunningAnimationsIndex { get; set; } 9 | 10 | /// 11 | /// Initializes a new instance of the class. 12 | /// 13 | public AnimationState() 14 | { 15 | this.RunningAnimationsIndex = 0; 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Animations/IAnimatableObject.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core.Animations 2 | { 3 | /// 4 | /// A base interface for each objects which is able to manage animations. 5 | /// 6 | public interface IAnimatableObject 7 | { 8 | /// 9 | /// Gets the animation handler of this object. 10 | /// 11 | AnimationHandler AnimationHandler 12 | { 13 | get; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Animations/IAnimationUpdateState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp.Core.Animations 4 | { 5 | public interface IAnimationUpdateState 6 | { 7 | TimeSpan UpdateTime 8 | { 9 | get; 10 | } 11 | 12 | int UpdateTimeMilliseconds 13 | { 14 | get; 15 | } 16 | 17 | bool IgnorePauseState 18 | { 19 | get; 20 | set; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Animations/_Analytics/EventDrivenStepInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using SeeingSharp.Util; 3 | 4 | namespace SeeingSharp.Core.Animations 5 | { 6 | public class EventDrivenStepInfo 7 | { 8 | public int AnimationCount 9 | { 10 | get; 11 | internal set; 12 | } 13 | 14 | public TimeSpan UpdateTime 15 | { 16 | get; 17 | internal set; 18 | } 19 | 20 | /// 21 | /// Returns a that represents this instance. 22 | /// 23 | public override string ToString() 24 | { 25 | return "" + this.AnimationCount + " Animations (Time: " + SeeingSharpUtil.FormatTimespanCompact(this.UpdateTime) + ")"; 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Animations/_ObjectInterfaces/IAnimatableObjectAccentuation.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core.Animations 2 | { 3 | public interface IAnimatableObjectAccentuation 4 | { 5 | float AccentuationFactor 6 | { 7 | get; 8 | set; 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Animations/_ObjectInterfaces/IAnimatableObjectEulerRotation.cs: -------------------------------------------------------------------------------- 1 | using System.Numerics; 2 | 3 | namespace SeeingSharp.Core.Animations 4 | { 5 | public interface IAnimatableObjectEulerRotation 6 | { 7 | /// 8 | /// Gets the or sets the euler rotation vector. 9 | /// 10 | Vector3 RotationEuler 11 | { 12 | get; 13 | set; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Animations/_ObjectInterfaces/IAnimatableObjectOpacity.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core.Animations 2 | { 3 | public interface IAnimatableObjectOpacity 4 | { 5 | float Opacity 6 | { 7 | get; 8 | set; 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Animations/_ObjectInterfaces/IAnimatableObjectPosition.cs: -------------------------------------------------------------------------------- 1 | using System.Numerics; 2 | 3 | namespace SeeingSharp.Core.Animations 4 | { 5 | public interface IAnimatableObjectPosition 6 | { 7 | /// 8 | /// Gets or sets the position of the object. 9 | /// 10 | Vector3 Position 11 | { 12 | get; 13 | set; 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Animations/_ObjectInterfaces/IAnimatableObjectPosition2D.cs: -------------------------------------------------------------------------------- 1 | using System.Numerics; 2 | 3 | namespace SeeingSharp.Core.Animations 4 | { 5 | public interface IAnimatableObjectPosition2D 6 | { 7 | /// 8 | /// Gets or sets the position of the object. 9 | /// 10 | Vector2 Position 11 | { 12 | get; 13 | set; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Animations/_ObjectInterfaces/IAnimatableObjectQuaternion.cs: -------------------------------------------------------------------------------- 1 | using System.Numerics; 2 | 3 | namespace SeeingSharp.Core.Animations 4 | { 5 | public interface IAnimatableObjectQuaternion 6 | { 7 | /// 8 | /// Gets or sets the quaternion used for object rotation calculation. 9 | /// 10 | Quaternion RotationQuaternion 11 | { 12 | get; 13 | set; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Animations/_ObjectInterfaces/IAnimatableObjectScaling.cs: -------------------------------------------------------------------------------- 1 | using System.Numerics; 2 | 3 | namespace SeeingSharp.Core.Animations 4 | { 5 | public interface IAnimatableObjectScaling 6 | { 7 | /// 8 | /// Gets or sets the scaling value of the object. 9 | /// 10 | Vector3 Scaling 11 | { 12 | get; 13 | set; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Animations/_ObjectInterfaces/IAnimatableObjectSprite.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core.Animations 2 | { 3 | public interface IAnimatableObjectSprite 4 | { 5 | float Scaling { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Animations/_Primitives3D/_Extensions.Misc.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp.Core.Animations 4 | { 5 | public static partial class Drawing3DAnimationExtensions 6 | { 7 | public static IAnimationSequenceBuilder ChangeOpacityTo(this IAnimationSequenceBuilder sequenceBuilder, float targetOpacity, TimeSpan animationTime) 8 | where TTargetObject : class, IAnimatableObjectOpacity 9 | { 10 | sequenceBuilder.Add( 11 | new ChangeOpacityToAnimation(sequenceBuilder.TargetObject, targetOpacity, animationTime)); 12 | return sequenceBuilder; 13 | } 14 | 15 | public static IAnimationSequenceBuilder ChangeAccentuationFactorTo(this IAnimationSequenceBuilder sequenceBuilder, float targetAccentuation, TimeSpan animationTime) 16 | where TTargetObject : class, IAnimatableObjectAccentuation 17 | { 18 | sequenceBuilder.Add( 19 | new ChangeAccentuationToAnimation(sequenceBuilder.TargetObject, targetAccentuation, animationTime)); 20 | return sequenceBuilder; 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Animations/_Standard/WaitTimePassedAnimation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp.Core.Animations 4 | { 5 | public class WaitTimePassedAnimation : AnimationBase 6 | { 7 | /// 8 | /// Is this animation a blocking animation? 9 | /// If true, all following animation have to wait for finish-event. 10 | /// 11 | public override bool IsBlockingAnimation => true; 12 | 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | public WaitTimePassedAnimation(TimeSpan timeToWait) 17 | : base(null, AnimationType.FixedTime, timeToWait) 18 | { 19 | 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Configuration/GraphicsCoreConfiguration.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core.Configuration 2 | { 3 | public class GraphicsCoreConfiguration 4 | { 5 | /// 6 | /// Can enable debug mode for all created devices. 7 | /// This value can only be manipulated when loading SeeingSharp. 8 | /// 9 | public bool DebugEnabled 10 | { 11 | get; 12 | internal set; 13 | } 14 | 15 | /// 16 | /// False in most cases. This property can be used to simulate an initialization error when loading Direct2D. 17 | /// This value can only be manipulated when loading SeeingSharp. 18 | /// 19 | public bool ThrowD2DInitDeviceError 20 | { 21 | get; 22 | internal set; 23 | } 24 | 25 | /// 26 | /// Initializes a new instance of the class. 27 | /// 28 | public GraphicsCoreConfiguration() 29 | { 30 | this.DebugEnabled = false; 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Configuration/GraphicsDeviceConfiguration.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core.Configuration 2 | { 3 | public class GraphicsDeviceConfiguration 4 | { 5 | /// 6 | /// Gets or sets the texture quality level. 7 | /// 8 | public TextureQuality TextureQuality 9 | { 10 | get; 11 | set; 12 | } 13 | 14 | /// 15 | /// Gets or sets the geometry quality level. 16 | /// 17 | public GeometryQuality GeometryQuality 18 | { 19 | get; 20 | set; 21 | } 22 | 23 | /// 24 | /// Gets current core configuration. 25 | /// 26 | public GraphicsCoreConfiguration CoreConfiguration { get; } 27 | 28 | /// 29 | /// Initializes a new instance of the class. 30 | /// 31 | /// The core configuration object. 32 | public GraphicsDeviceConfiguration(GraphicsCoreConfiguration coreConfig) 33 | { 34 | this.CoreConfiguration = coreConfig; 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Devices/IEngineDeviceResource.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core.Devices 2 | { 3 | public interface IEngineDeviceResource 4 | { 5 | void UnloadResources(EngineDevice device); 6 | 7 | int GetDeviceResourceIndex(EngineDevice device); 8 | 9 | void SetDeviceResourceIndex(EngineDevice device, int resourceIndex); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/Devices/SeeingSharpLoadSettings.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core.Devices 2 | { 3 | public class SeeingSharpLoadSettings 4 | { 5 | public bool DebugEnabled 6 | { 7 | get; 8 | set; 9 | } 10 | 11 | public bool ThrowD2DInitDeviceError 12 | { 13 | get; 14 | set; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/GenericInputEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using SeeingSharp.Input; 4 | 5 | namespace SeeingSharp.Core 6 | { 7 | public class GenericInputEventArgs : EventArgs 8 | { 9 | private List _inputFrames; 10 | 11 | /// 12 | /// Gets a list containing all InputFrames. 13 | /// 14 | public IReadOnlyList InputFrames => _inputFrames; 15 | 16 | internal GenericInputEventArgs() 17 | { 18 | _inputFrames = new List(16); 19 | } 20 | 21 | internal void NotifyNewPass(List inputFrames) 22 | { 23 | _inputFrames.Clear(); 24 | _inputFrames.AddRange(inputFrames); 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Core/IRenderLoopHost.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using SeeingSharp.Core.Devices; 4 | using Vortice.Mathematics; 5 | using D3D11 = Vortice.Direct3D11; 6 | 7 | namespace SeeingSharp.Core 8 | { 9 | public interface IRenderLoopHost 10 | { 11 | Tuple OnRenderLoop_CreateViewResources(EngineDevice device); 12 | 13 | void OnRenderLoop_DisposeViewResources(EngineDevice device); 14 | 15 | bool OnRenderLoop_CheckCanRender(EngineDevice device); 16 | 17 | void OnRenderLoop_PrepareRendering(EngineDevice device); 18 | 19 | void OnRenderLoop_AfterRendering(EngineDevice device); 20 | 21 | void OnRenderLoop_Present(EngineDevice device); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/_Components/_Misc.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core 2 | { 3 | /// 4 | /// Helper structure which holds information about all currently 5 | /// attached components. 6 | /// 7 | internal struct SceneComponentInfo 8 | { 9 | public SceneComponentBase Component; 10 | public object? Context; 11 | public ViewInformation? CorrespondingView; 12 | } 13 | 14 | /// 15 | /// Helper structure which holds information about a request 16 | /// for a component (attach, detach) which normally comes 17 | /// from the UI thread 18 | /// 19 | internal struct SceneComponentRequest 20 | { 21 | public SceneComponentRequestType RequestType; 22 | public SceneComponentBase? Component; 23 | public ViewInformation? CorrespondingView; 24 | } 25 | 26 | /// 27 | /// The type of a component request. 28 | /// 29 | internal enum SceneComponentRequestType 30 | { 31 | Attach, 32 | Detach, 33 | DetachAll 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/_Loading/ISeeingSharpExtensionProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace SeeingSharp.Core 4 | { 5 | public interface ISeeingSharpExtensionProvider 6 | { 7 | IEnumerable Extensions { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/_ObjectHosting/DummyOpacityProvider.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core 2 | { 3 | public class DummyOpacityProvider : IEngineOpacityProvider 4 | { 5 | /// 6 | /// Gets or sets the opacity of this object. 7 | /// 8 | public float Opacity 9 | { 10 | get; 11 | set; 12 | } 13 | 14 | /// 15 | /// Initializes a new instance of the class. 16 | /// 17 | public DummyOpacityProvider() 18 | { 19 | } 20 | 21 | /// 22 | /// Initializes a new instance of the class. 23 | /// 24 | public DummyOpacityProvider(float opacity) 25 | { 26 | this.Opacity = opacity; 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Core/_ObjectHosting/IEngineOpacityProvider.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core 2 | { 3 | public interface IEngineOpacityProvider 4 | { 5 | /// 6 | /// Gets the opacity of this object. 7 | /// 8 | float Opacity { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/_RenderPasses/RenderPassBase.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core 2 | { 3 | public abstract class RenderPassBase : Resource 4 | { 5 | /// 6 | /// Applies this RenderPass (called before starting rendering first objects with it). 7 | /// 8 | /// The current render state. 9 | public abstract void Apply(RenderState renderState); 10 | 11 | /// 12 | /// Discards this RenderPass (called after rendering all objects of this pass). 13 | /// 14 | /// The current render state. 15 | public abstract void Discard(RenderState renderState); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/_Resources/IRenderableResource.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core 2 | { 3 | public interface IRenderableResource 4 | { 5 | /// 6 | /// Is the resource loaded? 7 | /// 8 | bool IsLoaded { get; } 9 | 10 | /// 11 | /// Triggers internal rendering within the resource (e. g. Render to Texture). 12 | /// 13 | /// Current render state. 14 | void Render(RenderState renderState); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/_Resources/IUpdatableResource.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core 2 | { 3 | public interface IUpdatableResource 4 | { 5 | /// 6 | /// Triggers internal update within the resource (e. g. Render to Texture). 7 | /// 8 | /// Current state of update process. 9 | void Update(UpdateState updateState); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/_Scene/SceneLogicalObject.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Core.Devices; 2 | 3 | namespace SeeingSharp.Core 4 | { 5 | public abstract class SceneLogicalObject : SceneObject 6 | { 7 | public sealed override void LoadResources(EngineDevice device, ResourceDictionary resourceDictionary) 8 | { 9 | // No resources, so nothing to be done 10 | } 11 | 12 | public sealed override bool IsLoaded(EngineDevice device) 13 | { 14 | // No resources, so nothing to be done 15 | return true; 16 | } 17 | 18 | protected override void UpdateInternal(SceneRelatedUpdateState updateState) 19 | { 20 | } 21 | 22 | protected sealed override void UpdateForViewInternal(SceneRelatedUpdateState updateState, ViewRelatedSceneLayerSubset layerViewSubset) 23 | { 24 | // No resources, so nothing to be done 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/_Scene/VisibilityCheckData.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Util; 2 | 3 | namespace SeeingSharp.Core 4 | { 5 | internal class VisibilityCheckData 6 | { 7 | /// 8 | /// All data the the corresponding filter stages. 9 | /// 10 | internal IndexBasedDynamicCollection FilterStageData; 11 | 12 | /// 13 | /// Is this object visible? 14 | /// 15 | internal bool IsVisible; 16 | 17 | /// 18 | /// Initializes a new instance of the class. 19 | /// 20 | internal VisibilityCheckData() 21 | { 22 | FilterStageData = new IndexBasedDynamicCollection(); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/_Scene/VisibilityCheckFilterStageData.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core 2 | { 3 | internal class VisibilityCheckFilterStageData 4 | { 5 | /// 6 | /// Was this filter executed for this object? 7 | /// 8 | internal bool HasExecuted; 9 | 10 | /// 11 | /// Has the object passed this filter stage? 12 | /// 13 | internal bool HasPassed; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/SeeingSharp/Core/_SceneInfo/_Misc.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Core 2 | { 3 | public enum SceneObjectInfoType 4 | { 5 | Mesh, 6 | 7 | Pivot, 8 | 9 | FullscreenTexture, 10 | 11 | Skybox, 12 | 13 | WireObject, 14 | 15 | Other 16 | } 17 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing2D/Graphics2DTransformSettings.cs: -------------------------------------------------------------------------------- 1 | using System.Drawing; 2 | using System.Numerics; 3 | 4 | namespace SeeingSharp.Drawing2D 5 | { 6 | public struct Graphics2DTransformSettings 7 | { 8 | public static readonly Graphics2DTransformSettings Default = new Graphics2DTransformSettings 9 | { 10 | TransformMode = Graphics2DTransformMode.Custom, 11 | VirtualScreenSize = new SizeF(), 12 | CustomTransform = Matrix3x2.Identity 13 | }; 14 | 15 | public Graphics2DTransformMode TransformMode; 16 | public SizeF VirtualScreenSize; 17 | public Matrix3x2 CustomTransform; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing2D/Resources/_DeviceResources/IImage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using SeeingSharp.Core.Devices; 3 | 4 | namespace SeeingSharp.Drawing2D.Resources 5 | { 6 | public interface IImage 7 | { 8 | } 9 | 10 | internal interface IImageInternal 11 | { 12 | /// 13 | /// Gets the image object.. 14 | /// 15 | /// The device for which to get the image. 16 | IDisposable GetImageObject(EngineDevice device); 17 | 18 | /// 19 | /// Tries to get the which is the source of this image. 20 | /// 21 | BitmapResource? TryGetSourceBitmap(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing2D/Resources/_DeviceResources/_Direct2D/BrushResource.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Core.Devices; 2 | using D2D = Vortice.Direct2D1; 3 | 4 | namespace SeeingSharp.Drawing2D.Resources 5 | { 6 | public abstract class BrushResource : Drawing2DResourceBase 7 | { 8 | /// 9 | /// Gets the brush for the given device. 10 | /// 11 | /// The device for which to get the brush. 12 | internal abstract D2D.ID2D1Brush GetBrush(EngineDevice engineDevice); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/Geometries/TriangleCorner.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Drawing3D.Geometries 2 | { 3 | public struct TriangleCorner 4 | { 5 | public TriangleCorner(int index) 6 | : this() 7 | { 8 | Index = index; 9 | } 10 | 11 | /// 12 | /// The index of this 13 | /// 14 | public int Index; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/Geometries/VertexBinormalTangent.cs: -------------------------------------------------------------------------------- 1 | using System.Numerics; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace SeeingSharp.Drawing3D.Geometries 5 | { 6 | [StructLayout(LayoutKind.Sequential)] 7 | public struct VertexBinormalTangent 8 | { 9 | public static readonly VertexBinormalTangent Empty; 10 | 11 | public override string ToString() 12 | { 13 | return $"Tangent: {Tangent} ; Binormal: {Binormal}"; 14 | } 15 | 16 | /// 17 | /// Gets or sets the tangent vector. 18 | /// 19 | public Vector3 Tangent; 20 | 21 | /// 22 | /// Gets or sets the binormal vector. 23 | /// 24 | public Vector3 Binormal; 25 | } 26 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/Geometries/_GeometryFactories/GeometryFactory.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Drawing3D.Geometries 2 | { 3 | public abstract class GeometryFactory 4 | { 5 | /// 6 | /// Builds a using given parameters (like DetailLevel). 7 | /// 8 | /// Some generic options for geometry building 9 | public abstract Geometry BuildGeometry(GeometryBuildOptions buildOptions); 10 | } 11 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/Geometries/_GeometryFactories/_Floor/FloorTileInfo.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Drawing3D.Geometries 2 | { 3 | public class FloorTileInfo 4 | { 5 | /// 6 | /// Gets the material used for this tile. 7 | /// 8 | public int MaterialIndex { get; set; } 9 | 10 | /// 11 | /// Initializes a new instance of the class. 12 | /// 13 | /// The index of the material to set on this tile. 14 | public FloorTileInfo(int material) 15 | { 16 | this.MaterialIndex = material; 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/Geometries/_GeometryFactories/_Misc.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using SeeingSharp.Core; 3 | 4 | namespace SeeingSharp.Drawing3D.Geometries 5 | { 6 | public struct GeometryBuildOptions 7 | { 8 | public GeometryBuildOptions(DetailLevel detailLevel) 9 | { 10 | this.TargetDetailLevel = detailLevel; 11 | } 12 | 13 | public DetailLevel TargetDetailLevel { get; } 14 | 15 | public bool IsHighDetail => (this.TargetDetailLevel & DetailLevel.High) == DetailLevel.High; 16 | } 17 | 18 | [Flags] 19 | public enum ExtrudeGeometryOptions 20 | { 21 | None = 0, 22 | 23 | /// 24 | /// Changes the origin of the geometry so that it is in the center. 25 | /// 26 | ChangeOriginToCenter = 1, 27 | 28 | /// 29 | /// Scales the geometry so that it has the size 1 x 1. 30 | /// 31 | RescaleToUnitSize = 2 32 | } 33 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/ImportExport/ExportOptions.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Checking; 2 | using SeeingSharp.Core; 3 | using SeeingSharp.Core.Devices; 4 | 5 | namespace SeeingSharp.Drawing3D.ImportExport 6 | { 7 | public abstract class ExportOptions 8 | { 9 | protected ExportOptions() 10 | { 11 | 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/ImportExport/IModelExporter.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Util; 2 | 3 | namespace SeeingSharp.Drawing3D.ImportExport 4 | { 5 | public interface IModelExporter 6 | { 7 | /// 8 | /// Exports the model(s) defined in the given model container to the given model file. 9 | /// 10 | /// The model(s) to export. 11 | /// The path to the target file. 12 | /// Some configuration for the exporter. 13 | void ExportModelAsync(ExportModelContainer modelContainer, ResourceLink targetFile, ExportOptions exportOptions); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/ImportExport/IModelImporter.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Util; 2 | 3 | namespace SeeingSharp.Drawing3D.ImportExport 4 | { 5 | public interface IModelImporter 6 | { 7 | /// 8 | /// Imports a model from the given file. 9 | /// 10 | /// Some configuration for the importer. 11 | /// The source file to be loaded. 12 | ImportedModelContainer ImportModel(ResourceLink sourceFile, ImportOptions importOptions); 13 | 14 | /// 15 | /// Creates a default import options object for this importer. 16 | /// 17 | ImportOptions CreateDefaultImportOptions(); 18 | } 19 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/ImportExport/ParentChildRelationship.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Core; 2 | 3 | namespace SeeingSharp.Drawing3D.ImportExport 4 | { 5 | public struct ParentChildRelationship 6 | { 7 | public readonly SceneObject Parent; 8 | public readonly SceneObject Child; 9 | 10 | public ParentChildRelationship(SceneObject parent, SceneObject child) 11 | { 12 | Parent = parent; 13 | Child = child; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/ImportExport/_Attributes.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp.Drawing3D.ImportExport 4 | { 5 | [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] 6 | public class SupportedFileFormatAttribute : Attribute 7 | { 8 | public string ShortFormatName 9 | { 10 | get; 11 | } 12 | 13 | public string ShortDescription 14 | { 15 | get; 16 | } 17 | 18 | public SupportedFileFormatAttribute(string shortFormatName, string shortDescription) 19 | { 20 | this.ShortFormatName = shortFormatName; 21 | this.ShortDescription = shortDescription; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/ImportExport/_Formats/_AC/ACImportOptions.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Drawing3D.ImportExport 2 | { 3 | public class ACImportOptions : ImportOptions 4 | {} 5 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/ImportExport/_Formats/_AC/_Misc.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Drawing3D.ImportExport 2 | { 3 | public enum ACImportMode 4 | { 5 | Default, 6 | 7 | FlatternHierarchy 8 | } 9 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/ImportExport/_Formats/_AC/_Raw/ACFileInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace SeeingSharp.Drawing3D.ImportExport 4 | { 5 | internal class ACFileInfo 6 | { 7 | public List Materials; 8 | public List Objects; 9 | 10 | public ACFileInfo() 11 | { 12 | Materials = new List(); 13 | Objects = new List(); 14 | } 15 | 16 | /// 17 | /// Counts all objects within this file 18 | /// 19 | public int CountAllObjects() 20 | { 21 | var result = 0; 22 | 23 | foreach (var actObj in Objects) 24 | { 25 | result++; 26 | result += actObj.CountAllChildObjects(); 27 | } 28 | 29 | return result; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/ImportExport/_Formats/_AC/_Raw/ACMaterialInfo.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Mathematics; 2 | 3 | namespace SeeingSharp.Drawing3D.ImportExport 4 | { 5 | internal class ACMaterialInfo 6 | { 7 | public Color4 Ambient; 8 | public Color4 Diffuse; 9 | public Color4 Emissive; 10 | public string Name = string.Empty; 11 | public float Shininess; 12 | public Color4 Specular; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/ImportExport/_Formats/_AC/_Raw/ACVertex.cs: -------------------------------------------------------------------------------- 1 | using System.Numerics; 2 | 3 | namespace SeeingSharp.Drawing3D.ImportExport 4 | { 5 | internal class ACVertex 6 | { 7 | public Vector3 Position; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/ImportExport/_Formats/_AC/_Raw/_Misc.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Drawing3D.ImportExport 2 | { 3 | internal enum ACObjectType 4 | { 5 | World, 6 | Poly, 7 | Group 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/ImportExport/_Formats/_Stl/StlImportOptions.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Drawing3D.ImportExport 2 | { 3 | public class StlImportOptions : ImportOptions 4 | {} 5 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/ImportExport/_ModelContainer/ExportGeometryInfo.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Drawing3D.Geometries; 2 | using SeeingSharp.Util; 3 | 4 | namespace SeeingSharp.Drawing3D.ImportExport 5 | { 6 | /// 7 | /// All needed information for exported geometry. 8 | /// 9 | public class ExportGeometryInfo 10 | { 11 | public NamedOrGenericKey Key { get; } 12 | 13 | public GeometryFactory ObjectType { get; } 14 | 15 | /// 16 | /// Initializes a new instance of the class. 17 | /// 18 | /// The key. 19 | /// Type of the object. 20 | public ExportGeometryInfo(NamedOrGenericKey key, GeometryFactory objType) 21 | { 22 | this.Key = key; 23 | this.ObjectType = objType; 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/ImportExport/_ModelContainer/ExportMaterialInfo.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Util; 2 | 3 | namespace SeeingSharp.Drawing3D.ImportExport 4 | { 5 | /// 6 | /// All needed information for exported material. 7 | /// 8 | public class ExportMaterialInfo 9 | { 10 | public NamedOrGenericKey Key { get; } 11 | 12 | /// 13 | /// Initializes a new instance of the class. 14 | /// 15 | /// The key. 16 | public ExportMaterialInfo(NamedOrGenericKey key) 17 | { 18 | this.Key = key; 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/Primitives/ConeGeometryFactory.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Drawing3D.Geometries; 2 | 3 | namespace SeeingSharp.Drawing3D.Primitives 4 | { 5 | public class ConeGeometryFactory : GeometryFactory 6 | { 7 | public float Radius { get; set; } = 0.5f; 8 | 9 | public float Height { get; set; } = 1f; 10 | 11 | public int CountOfSegments { get; set; } = 10; 12 | 13 | public override Geometry BuildGeometry(GeometryBuildOptions buildOptions) 14 | { 15 | var result = new Geometry(); 16 | var mainSurface = result.CreateSurface(); 17 | mainSurface.BuildCone(this.Radius, this.Height, this.CountOfSegments); 18 | 19 | return result; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/Primitives/CubeGeometryFactory.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Drawing3D.Geometries; 2 | 3 | namespace SeeingSharp.Drawing3D.Primitives 4 | { 5 | public class CubeGeometryFactory : GeometryFactory 6 | { 7 | public float Width { get; set; } = 1f; 8 | 9 | public float Height { get; set; } = 1f; 10 | 11 | public float Depth { get; set; } = 1f; 12 | 13 | public override Geometry BuildGeometry(GeometryBuildOptions buildOptions) 14 | { 15 | var result = new Geometry(); 16 | result.CreateSurface() 17 | .BuildCube(this.Width, this.Height, this.Depth); 18 | 19 | return result; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/Primitives/CylinderGeometryFactory.cs: -------------------------------------------------------------------------------- 1 | using System.Numerics; 2 | using SeeingSharp.Drawing3D.Geometries; 3 | 4 | namespace SeeingSharp.Drawing3D.Primitives 5 | { 6 | public class CylinderGeometryFactory : GeometryFactory 7 | { 8 | public float Radius { get; set; } = 0.5f; 9 | 10 | public float Height { get; set; } = 1f; 11 | 12 | public int CountOfSegments { get; set; } = 10; 13 | 14 | public override Geometry BuildGeometry(GeometryBuildOptions buildOptions) 15 | { 16 | var result = new Geometry(); 17 | var mainSurface = result.CreateSurface(); 18 | mainSurface.BuildCylinder(Vector3.Zero, this.Radius, this.Height, this.CountOfSegments); 19 | 20 | return result; 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/Primitives/GeosphereGeometryFactory.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Drawing3D.Geometries; 2 | 3 | namespace SeeingSharp.Drawing3D.Primitives 4 | { 5 | public class GeosphereGeometryFactory : GeometryFactory 6 | { 7 | public int CountSubdivisions { get; set; } = 3; 8 | 9 | public float Radius { get; set; } = 0.5f; 10 | 11 | public override Geometry BuildGeometry(GeometryBuildOptions buildOptions) 12 | { 13 | var result = new Geometry(); 14 | 15 | var mainSurface = result.CreateSurface(); 16 | mainSurface.BuildGeosphere(this.Radius, this.CountSubdivisions); 17 | 18 | return result; 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/Primitives/PyramidGeometryFactory.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Drawing3D.Geometries; 2 | 3 | namespace SeeingSharp.Drawing3D.Primitives 4 | { 5 | public class PyramidGeometryFactory : GeometryFactory 6 | { 7 | public float Width { get; set; } = 1f; 8 | 9 | public float Height { get; set; } = 1f; 10 | 11 | public override Geometry BuildGeometry(GeometryBuildOptions buildOptions) 12 | { 13 | var result = new Geometry(); 14 | result.CreateSurface() 15 | .BuildPyramid(this.Width, this.Height); 16 | 17 | return result; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/Primitives/SphereGeometryFactory.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Drawing3D.Geometries; 2 | 3 | namespace SeeingSharp.Drawing3D.Primitives 4 | { 5 | public class SphereGeometryFactory : GeometryFactory 6 | { 7 | public int TDiv { get; set; } = 30; 8 | 9 | public int PDiv { get; set; } = 30; 10 | 11 | public float Radius { get; set; } = 0.5f; 12 | 13 | public override Geometry BuildGeometry(GeometryBuildOptions buildOptions) 14 | { 15 | var result = new Geometry(); 16 | 17 | var mainSurface = result.CreateSurface(); 18 | mainSurface.BuildShpere(this.TDiv, this.PDiv, this.Radius); 19 | 20 | return result; 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/Primitives/TorusGeometryFactory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using SeeingSharp.Drawing3D.Geometries; 5 | 6 | namespace SeeingSharp.Drawing3D.Primitives 7 | { 8 | public class TorusGeometryFactory : GeometryFactory 9 | { 10 | public int TDiv { get; set; } = 30; 11 | 12 | public int PDiv { get; set; } = 30; 13 | 14 | public float TorusRadius { get; set; } = 0.45f; 15 | 16 | public float TubeRadius { get; set; } = 0.1f; 17 | 18 | public override Geometry BuildGeometry(GeometryBuildOptions buildOptions) 19 | { 20 | var result = new Geometry(); 21 | 22 | var mainSurface = result.CreateSurface(); 23 | mainSurface.BuildTorus(this.TDiv, this.PDiv, this.TorusRadius, this.TubeRadius); 24 | 25 | return result; 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/_Cameras/_Animations/_Extensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using SeeingSharp.Core.Animations; 3 | 4 | namespace SeeingSharp.Drawing3D 5 | { 6 | public static class AnimatableObjectExtensions 7 | { 8 | /// 9 | /// Moves the given Camera to the given ViewPoint. 10 | /// 11 | /// AnimationSequenceBuilder building the animation. 12 | /// The target ViewPoint object. 13 | /// Total time for the animation. 14 | public static IAnimationSequenceBuilder CameraStraightMoveTo(this IAnimationSequenceBuilder sequenceBuilder, Camera3DViewPoint targetViewPoint, TimeSpan animationTime) 15 | where TTargetObject : Camera3DBase 16 | { 17 | sequenceBuilder.Add( 18 | new CameraStraightMoveAnimation(sequenceBuilder.TargetObject, targetViewPoint, animationTime)); 19 | return sequenceBuilder; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/_Rendering/RenderingChunk.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Drawing3D.Resources; 2 | using D3D11 = Vortice.Direct3D11; 3 | 4 | namespace SeeingSharp.Drawing3D 5 | { 6 | /// 7 | /// Describes on rendering chunk. 8 | /// 9 | public class RenderingChunk 10 | { 11 | internal RenderingChunkTemplate Template; 12 | internal D3D11.ID3D11InputLayout InputLayout; 13 | internal MaterialResource Material; 14 | 15 | internal RenderingChunk( 16 | RenderingChunkTemplate template, 17 | D3D11.ID3D11InputLayout inputLayout, 18 | MaterialResource material) 19 | { 20 | this.Template = template; 21 | this.InputLayout = inputLayout; 22 | this.Material = material; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/SeeingSharp/Drawing3D/_ShaderInteraction/LineVertex.cs: -------------------------------------------------------------------------------- 1 | using System.Numerics; 2 | using System.Runtime.InteropServices; 3 | using Vortice.DXGI; 4 | using D3D11 = Vortice.Direct3D11; 5 | 6 | namespace SeeingSharp.Drawing3D 7 | { 8 | /// 9 | /// A structure for sending line vertex data to the GPU. 10 | /// 11 | [StructLayout(LayoutKind.Sequential)] 12 | internal struct LineVertex 13 | { 14 | // Constants 15 | public static readonly int Size = Marshal.SizeOf(); 16 | public static readonly D3D11.InputElementDescription[] InputElements = { 17 | new D3D11.InputElementDescription("POSITION", 0, Format.R32G32B32_Float, 0, 0) 18 | }; 19 | 20 | // Vertex data 21 | public Vector3 Position; 22 | 23 | /// 24 | /// Initializes a new instance of the struct. 25 | /// 26 | /// The position. 27 | public LineVertex(Vector3 position) 28 | { 29 | Position = position; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/SeeingSharp/Input/IInputEnabledView.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Core; 2 | 3 | namespace SeeingSharp.Input 4 | { 5 | /// 6 | /// This interfaces is used by SeeingSharp internally to abstract input relevant 7 | /// information of a view. 8 | /// 9 | public interface IInputEnabledView 10 | { 11 | /// 12 | /// Gets the RenderLoop that is currently in use. 13 | /// 14 | RenderLoop RenderLoop { get; } 15 | 16 | /// 17 | /// Does the target control have focus? 18 | /// 19 | bool Focused { get; } 20 | } 21 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Input/IInputHandler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace SeeingSharp.Input 5 | { 6 | public interface IInputHandler 7 | { 8 | /// 9 | /// Gets a list containing all supported view types. 10 | /// Null means that this handler is not bound to a view. 11 | /// 12 | Type[]? GetSupportedViewTypes(); 13 | 14 | /// 15 | /// Starts input handling. 16 | /// 17 | /// The view object (e. g. Direct3D11Canvas). 18 | void Start(IInputEnabledView? viewObject); 19 | 20 | /// 21 | /// Stops input handling. 22 | /// 23 | void Stop(); 24 | 25 | /// 26 | /// Queries all current input states. 27 | /// 28 | void GetInputStates(List target); 29 | } 30 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Input/_States/_Misc.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Input 2 | { 3 | public enum MouseButton 4 | { 5 | Left = 0, 6 | Middle = 1, 7 | Right = 2, 8 | Extended1 = 3, 9 | Extended2 = 4 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/SeeingSharp/Mathematics/EngineMath.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/SeeingSharp/Mathematics/EngineMath.cs -------------------------------------------------------------------------------- /src/SeeingSharp/Mathematics/MathConverter.cs: -------------------------------------------------------------------------------- 1 | using System.Drawing; 2 | using System.Numerics; 3 | 4 | namespace SeeingSharp.Mathematics 5 | { 6 | internal static class MathConverter 7 | { 8 | internal static unsafe PointF RawFromVector2(Vector2 value) 9 | { 10 | return *(PointF*)(&value); 11 | } 12 | 13 | internal static unsafe Vector2 Vector2FromRaw(PointF value) 14 | { 15 | return *(Vector2*)(&value); 16 | } 17 | 18 | internal static unsafe Vortice.Mathematics.Color4 RawFromColor4(Color4 value) 19 | { 20 | return *(Vortice.Mathematics.Color4*)(&value); 21 | } 22 | 23 | internal static unsafe Color4 Color4FromRaw(Vortice.Mathematics.Color4 value) 24 | { 25 | return *(Color4*)(&value); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/SeeingSharp/Mathematics/_Custom/BoundingSphere.Custom.cs: -------------------------------------------------------------------------------- 1 | using System.Numerics; 2 | 3 | namespace SeeingSharp.Mathematics 4 | { 5 | public partial struct BoundingSphere 6 | { 7 | public static BoundingSphere Empty; 8 | 9 | public void Transform(Matrix4x4 matrix) 10 | { 11 | if(this == Empty){ return; } 12 | 13 | var center = Center; 14 | var otherPoint = center + new Vector3(Radius, 0f, 0f); 15 | 16 | Center = Vector3.Transform(center, matrix); 17 | Radius = (Vector3.Transform(otherPoint, matrix) - Center).Length(); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/SeeingSharp/Mathematics/_Custom/Color.Custom.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Mathematics 2 | { 3 | public partial struct Color 4 | { 5 | public static Color FromArgb(byte a, byte r, byte g, byte b) 6 | { 7 | return new Color(r, g, b, a); 8 | } 9 | 10 | public static Color FromArgb(int a, int r, int g, int b) 11 | { 12 | return new Color((byte)r, (byte)g, (byte)b, (byte)a); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/SeeingSharp/Mathematics/_Custom/Plane.cs: -------------------------------------------------------------------------------- 1 | using System.Numerics; 2 | 3 | namespace SeeingSharp.Mathematics 4 | { 5 | public partial struct Plane 6 | { 7 | /// 8 | /// Calculates the distance from this plane to the given point. 9 | /// 10 | /// The point to calculate the distance to. 11 | public float Distance(ref Vector3 point) 12 | { 13 | var distance = Vector3.Dot(Normal, point); 14 | distance += D; 15 | 16 | return distance; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/SeeingSharp/Mathematics/_Custom/Ray.Custom.cs: -------------------------------------------------------------------------------- 1 | using System.Numerics; 2 | 3 | namespace SeeingSharp.Mathematics 4 | { 5 | public partial struct Ray 6 | { 7 | /// 8 | /// Transforms the ray 9 | /// 10 | public void Transform(Matrix4x4 transformMatrix) 11 | { 12 | Position = Vector3.Transform(Position, transformMatrix); 13 | Direction = Vector3.TransformNormal(Direction, transformMatrix); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/SeeingSharp/Mathematics/_Custom/_Misc.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Mathematics 2 | { 3 | public enum EdgeOrder 4 | { 5 | Unknown, 6 | 7 | Clockwise, 8 | 9 | CounterClockwise 10 | } 11 | 12 | public struct Polygon2DMergeOptions 13 | { 14 | public static readonly Polygon2DMergeOptions DEFAULT = new Polygon2DMergeOptions(); 15 | 16 | public bool MakeMergepointSpaceForTriangulation; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/SeeingSharp/Mathematics/_SharpDXMath/_LicenseInfo.txt: -------------------------------------------------------------------------------- 1 | Common math functionality taken from SharpDX (licensed under MIT) 2 | See http://sharpdx.org 3 | -------------------------------------------------------------------------------- /src/SeeingSharp/ResourceKeys.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Util; 2 | 3 | namespace SeeingSharp 4 | { 5 | public static class ResourceKeys 6 | { 7 | public static readonly NamedOrGenericKey RES_SKYBOX_VERTICES = new NamedOrGenericKey( 8 | "ResourceKeys.RES_SKYBOX_VERTICES"); 9 | public static readonly NamedOrGenericKey RES_SKYBOX_INDICES = new NamedOrGenericKey( 10 | "ResourceKeys.RES_SKYBOX_INDICES"); 11 | public static readonly NamedOrGenericKey RES_SKYBOX_VERTEX_SHADER = new NamedOrGenericKey( 12 | "ResourceKeys.RES_SKYBOX_VERTEX_SHADER"); 13 | public static readonly NamedOrGenericKey RES_SKYBOX_PIXEL_SHADER = new NamedOrGenericKey( 14 | "ResourceKeys.RES_SKYBOX_PIXEL_SHADER"); 15 | 16 | public static readonly NamedOrGenericKey RES_MATERIAL_COLORED = new NamedOrGenericKey( 17 | $"{nameof(ResourceKeys)}.{nameof(RES_MATERIAL_COLORED)}"); 18 | } 19 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Resources/SeeingSharpResources.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Resources 2 | { 3 | public static class SeeingSharpResources 4 | {} 5 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Resources/Shaders/Common/SingleForcedColorPixelShader.hlsl: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | //Include all common items 3 | #include "../_mainInclude.hlsl" 4 | 5 | //----------------------------------------------------------------------------- 6 | //PixelShader implementation 7 | float4 main(PSInputStandard input) : SV_Target 8 | { 9 | float4 result = ObjectColor; 10 | result.a = Opacity; 11 | 12 | // Calculate fade effect (if configured) 13 | float factor = 1.0 - FadeIntensity * ((float)(abs((Time % 1000) - 500)) / 750.0); 14 | result.rgb = result.rgb * factor; 15 | 16 | return result; 17 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Resources/Shaders/Common/SingleForcedColorVertexShader.hlsl: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | //Include all common items 3 | #include "../_mainInclude.hlsl" 4 | 5 | //----------------------------------------------------------------------------- 6 | //VertexShader implementation 7 | PSInputStandard main(VSInputStandard input) 8 | { 9 | PSInputStandard output = (PSInputStandard)0; 10 | 11 | // Calculate standard values (position and normal) 12 | float4x4 localWorldViewProj = mul(World, ViewProj); 13 | output.pos = mul(float4(input.pos.xyz, 1.0), localWorldViewProj); 14 | output.normal = normalize(mul(input.normal, (float3x3)World)); 15 | output.col = ObjectColor; 16 | 17 | return output; 18 | } 19 | -------------------------------------------------------------------------------- /src/SeeingSharp/Resources/Shaders/Common/WireframeGeometryShader.hlsl: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | //Include all common items 3 | #include "../_mainInclude.hlsl" 4 | 5 | //----------------------------------------------------------------------------- 6 | //GeometryShader implementation 7 | [maxvertexcount(6)] 8 | void main(triangle PSInputStandard input[3], inout LineStream lineStream) 9 | { 10 | lineStream.Append(input[0]); 11 | lineStream.Append(input[1]); 12 | 13 | lineStream.Append(input[1]); 14 | lineStream.Append(input[2]); 15 | 16 | lineStream.Append(input[2]); 17 | lineStream.Append(input[0]); 18 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Resources/Shaders/LineRendering/LinePixelShader.hlsl: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // Include all common items 3 | #include "../_mainInclude.hlsl" 4 | 5 | //----------------------------------------------------------------------------- 6 | //PixelShader implementation for line rendering 7 | float4 main(PSInputLine input) : SV_Target 8 | { 9 | return ObjectColor; 10 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Resources/Shaders/LineRendering/LineVertexShader.hlsl: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | //Include all common items 3 | #include "../_mainInclude.hlsl" 4 | 5 | //----------------------------------------------------------------------------- 6 | //VertexShader implementation 7 | PSInputLine main(VSInputLine input) 8 | { 9 | PSInputLine output = (PSInputLine)0; 10 | 11 | float4x4 localWorldViewProj = mul(World, ViewProj); 12 | output.pos = mul(float4(input.pos.xyz, 1.0), localWorldViewProj); 13 | 14 | return output; 15 | } 16 | -------------------------------------------------------------------------------- /src/SeeingSharp/Resources/Shaders/PostProcessing/PostprocessVertexShader.hlsl: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | //Include all common items 3 | #include "_structures.hlsl" 4 | 5 | // Very simple VertexShader that builds a fullscreen quad without any bound VertexBuffer 6 | // see https://www.indiedev.de/wiki/Vier_Methoden_zur_Erzeugung_eines_Fullscreen_Quad 7 | PSInputPostprocess main(uint VertexID: SV_VertexID) 8 | { 9 | PSInputPostprocess output; 10 | output.tex = float2((VertexID << 1) & 2, VertexID & 2); 11 | output.pos = float4((output.tex * float2(2, -2) + float2(-1, 1)), 0, 1); 12 | return output; 13 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Resources/Shaders/PostProcessing/_structures.hlsl: -------------------------------------------------------------------------------- 1 | // This file contains all default structures used across all 2 | // objects rendered with this graphics engine 3 | 4 | //----------------------------------------------------------------------------- Standard rendering 5 | //VertexShader output 6 | struct PSInputPostprocess 7 | { 8 | float4 pos : SV_Position; 9 | float2 tex : TexCoord; 10 | }; -------------------------------------------------------------------------------- /src/SeeingSharp/Resources/Shaders/SkyBox/CommonPixelShader.hlsl: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | //Include all common items 3 | #include "../_mainInclude.hlsl" 4 | 5 | //----------------------------------------------------------------------------- 6 | //PixelShader implementation 7 | float4 main(PSInputStandard input) : SV_Target 8 | { 9 | float4 result = ObjectCubeTexture.Sample(ObjectTextureSampler, input.pos3D); 10 | result.a = 1.0; 11 | return result; 12 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Resources/Shaders/SkyBox/CommonVertexShader.hlsl: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | //Include all common items 3 | #include "../_mainInclude.hlsl" 4 | 5 | //----------------------------------------------------------------------------- 6 | //VertexShader implementation 7 | PSInputStandard main(VSInputStandard input) 8 | { 9 | PSInputStandard output = (PSInputStandard)0; 10 | 11 | // Calculate only position (we need nothing more for skyboxes) 12 | float4x4 localWorldViewProj = ViewProj; 13 | output.pos = mul(float4(input.pos.xyz + CameraPosition, 1.0), localWorldViewProj).xyww; 14 | output.pos3D = input.pos.xyz; 15 | 16 | return output; 17 | } 18 | -------------------------------------------------------------------------------- /src/SeeingSharp/Resources/Shaders/Sprite/SpritePixelShader.hlsl: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | //Include all common items 3 | #include "../_mainInclude.hlsl" 4 | 5 | //----------------------------------------------------------------------------- 6 | //PixelShader implementation 7 | float4 main(PSInputStandard input ) : SV_Target 8 | { 9 | float4 outputColor = ObjectTexture.Sample(ObjectTextureSampler, input.tex.xy); 10 | 11 | // Apply Accentuation effect 12 | outputColor = ApplyAccentuation(outputColor); 13 | 14 | // Apply per-object Opacity value 15 | outputColor.a = outputColor.a * Opacity; 16 | 17 | return outputColor; 18 | } 19 | -------------------------------------------------------------------------------- /src/SeeingSharp/Resources/Shaders/Sprite/SpriteVertexShader.hlsl: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | //Include all common items 3 | #include "../_mainInclude.hlsl" 4 | 5 | //----------------------------------------------------------------------------- 6 | //VertexShader implementation 7 | PSInputStandard main(VSInputStandard input) 8 | { 9 | PSInputStandard output = (PSInputStandard)0; 10 | 11 | output.pos = float4(input.pos.xyz * SpriteScaling, 1.0); 12 | output.col = input.col; 13 | output.tex = input.tex; 14 | output.normal = input.normal; 15 | output.pos3D = output.pos.xyz; 16 | 17 | return output; 18 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Resources/Shaders/_mainInclude.hlsl: -------------------------------------------------------------------------------- 1 | #include "constants.hlsl" 2 | #include "structures.hlsl" 3 | #include "functions.hlsl" -------------------------------------------------------------------------------- /src/SeeingSharp/Util/DummyComObject.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using SharpGen.Runtime; 3 | 4 | namespace SeeingSharp.Util 5 | { 6 | internal class DummyComObject : IUnknown, ICallbackable, IDisposable 7 | { 8 | private uint _referenceCounter; 9 | 10 | /// 11 | public ShadowContainer? Shadow { get; private set; } 12 | 13 | public DummyComObject() 14 | { 15 | this.Shadow = new ShadowContainer(this); 16 | } 17 | 18 | public void Dispose() 19 | { 20 | this.Shadow?.Dispose(); 21 | this.Shadow = null; 22 | } 23 | 24 | public Result QueryInterface(ref Guid guid, out IntPtr comObject) 25 | { 26 | comObject = IntPtr.Zero; 27 | return Result.NoInterface; 28 | } 29 | 30 | /// 31 | public uint AddRef() 32 | { 33 | _referenceCounter++; 34 | return _referenceCounter; 35 | } 36 | 37 | /// 38 | public uint Release() 39 | { 40 | _referenceCounter--; 41 | return _referenceCounter; 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/SeeingSharp/Util/DummyDisposable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp.Util 4 | { 5 | /// 6 | /// Dummy class that implements IDisposable. 7 | /// 8 | public class DummyDisposable : IDisposable 9 | { 10 | private Action _onDisposeAction; 11 | 12 | /// 13 | /// Initializes a new instance of the class. 14 | /// 15 | /// The action to call on Dispose. 16 | public DummyDisposable(Action onDisposeAction) 17 | { 18 | _onDisposeAction = onDisposeAction; 19 | } 20 | 21 | /// 22 | /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. 23 | /// 24 | public void Dispose() 25 | { 26 | _onDisposeAction.Invoke(); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/SeeingSharp/Util/MultiDisposable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp.Util 4 | { 5 | public class MultiDisposable : IDisposable 6 | { 7 | private IDisposable[] _collection; 8 | 9 | public MultiDisposable(params IDisposable[] collection) 10 | { 11 | _collection = collection; 12 | } 13 | 14 | public void Dispose() 15 | { 16 | foreach (var actDisposable in _collection) 17 | { 18 | actDisposable.Dispose(); 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/SeeingSharp/Util/Sdx/DataRectangle.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Runtime.InteropServices; 4 | using System.Text; 5 | 6 | namespace SeeingSharp.Util.Sdx 7 | { 8 | /// 9 | /// Provides access to data organized in 2D. 10 | /// 11 | [StructLayout(LayoutKind.Sequential)] 12 | internal struct DataRectangle 13 | { 14 | /// 15 | /// Initializes a new instance of the class. 16 | /// 17 | /// The data pointer. 18 | /// The pitch. 19 | public DataRectangle(IntPtr dataPointer, int pitch) 20 | { 21 | DataPointer = dataPointer; 22 | Pitch = pitch; 23 | } 24 | /// 25 | /// Pointer to the data. 26 | /// 27 | public IntPtr DataPointer; 28 | 29 | /// 30 | /// Gets the number of bytes per row. 31 | /// 32 | public int Pitch; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/SeeingSharp/Util/_Collections/UniqueGenericKeyGenerator.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | 3 | namespace SeeingSharp.Util 4 | { 5 | public class UniqueGenericKeyGenerator 6 | { 7 | private long _nextGenericKey; 8 | 9 | /// 10 | /// Initializes a new instance of the class. 11 | /// 12 | public UniqueGenericKeyGenerator() 13 | { 14 | _nextGenericKey = long.MinValue; 15 | } 16 | 17 | /// 18 | /// Generates the next generic key. 19 | /// 20 | public NamedOrGenericKey GetNextGeneric() 21 | { 22 | var result = Interlocked.Increment(ref _nextGenericKey); 23 | result--; 24 | return new NamedOrGenericKey(result); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/SeeingSharp/Util/_Misc.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.Util 2 | { 3 | /// 4 | /// An interface which can return the disposed state of an object. 5 | /// 6 | public interface ICheckDisposed 7 | { 8 | /// 9 | /// Is this object already disposed? 10 | /// This property does not throw an 11 | /// 12 | bool IsDisposed { get; } 13 | } 14 | } -------------------------------------------------------------------------------- /src/SeeingSharp/Util/_Performance/DurationMeasureToken.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | 4 | namespace SeeingSharp.Util 5 | { 6 | public class DurationMeasureToken : IDisposable 7 | { 8 | private PerformanceAnalyzer _owner; 9 | private Stopwatch _stopwatch; 10 | 11 | public string Activity { get; internal set; } 12 | 13 | public long ElapsedTicks => _stopwatch.Elapsed.Ticks; 14 | 15 | public DurationMeasureToken(PerformanceAnalyzer owner) 16 | { 17 | this.Activity = string.Empty; 18 | 19 | _owner = owner; 20 | _stopwatch = new Stopwatch(); 21 | } 22 | 23 | public void Dispose() 24 | { 25 | _owner.EndMeasureActivityDuration(this); 26 | } 27 | 28 | internal void Start() 29 | { 30 | _stopwatch.Reset(); 31 | _stopwatch.Start(); 32 | } 33 | 34 | internal void Stop() 35 | { 36 | _stopwatch.Stop(); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/SeeingSharp/Views/IDpiScalingProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using SeeingSharp.Core; 5 | 6 | namespace SeeingSharp.Views 7 | { 8 | public interface IDpiScalingProvider 9 | { 10 | /// 11 | /// Gets information about current dpi scaling. 12 | /// The result may change depending on location of the view or by user preferences. 13 | /// 14 | DpiScaling GetCurrentDpiScaling(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/SeeingSharp/Views/ISeeingSharpPainter.cs: -------------------------------------------------------------------------------- 1 | using SeeingSharp.Core; 2 | using SeeingSharp.Drawing3D; 3 | 4 | namespace SeeingSharp.Views 5 | { 6 | public interface ISeeingSharpPainter 7 | { 8 | RenderLoop RenderLoop { get; } 9 | 10 | Scene Scene { get; set; } 11 | 12 | Camera3DBase Camera { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /src/SeeingSharp/_Exceptions/SeeingSharpException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp 4 | { 5 | public class SeeingSharpException : Exception 6 | { 7 | /// 8 | /// Creates a new CommonLibraryException object 9 | /// 10 | public SeeingSharpException(string message) 11 | : base(message) 12 | { 13 | } 14 | 15 | /// 16 | /// Creates a new CommonLibraryException object 17 | /// 18 | public SeeingSharpException(string message, Exception innerException) 19 | : base(message, innerException) 20 | { 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/SeeingSharp/_Exceptions/SeeingSharpGraphicsException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp 4 | { 5 | public class SeeingSharpGraphicsException : SeeingSharpException 6 | { 7 | /// 8 | /// Initializes a new instance of the class. 9 | /// 10 | /// The message. 11 | public SeeingSharpGraphicsException(string message) 12 | : base(message) 13 | { 14 | } 15 | 16 | /// 17 | /// Initializes a new instance of the class. 18 | /// 19 | /// The message. 20 | /// The inner exception. 21 | public SeeingSharpGraphicsException(string message, Exception innerException) 22 | : base(message, innerException) 23 | { 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /src/SeeingSharp/_Exceptions/SeeingSharpResourcesNotLoadedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace SeeingSharp 6 | { 7 | public class SeeingSharpResourcesNotLoadedException : SeeingSharpGraphicsException 8 | { 9 | public SeeingSharpResourcesNotLoadedException(Type resourceHolder, string? callerMethod = null) 10 | : base(FormatErrorString(resourceHolder, callerMethod)) 11 | { 12 | 13 | } 14 | 15 | public static string FormatErrorString(Type resourceHolder, string? callerMethod) 16 | { 17 | if (string.IsNullOrEmpty(callerMethod)) 18 | { 19 | return $"Resources for object of class {resourceHolder.FullName} not loaded!"; 20 | } 21 | else 22 | { 23 | return $"Resources for object of class {resourceHolder.FullName} not loaded (method: {callerMethod})!"; 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/SeeingSharp/_Properties.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.CompilerServices; 2 | 3 | [assembly:InternalsVisibleTo("SeeingSharp.Tests")] 4 | [assembly:InternalsVisibleTo("SeeingSharp.ObjectLayoutInspection")] -------------------------------------------------------------------------------- /src/SolutionInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // Common assembly information 5 | [assembly: AssemblyConfiguration("")] 6 | [assembly: AssemblyCompany("RolandK")] 7 | [assembly: AssemblyProduct("SeeingSharp 2 Graphics Engine")] 8 | [assembly: AssemblyCopyright("Copyright © 2021")] 9 | [assembly: AssemblyTrademark("")] 10 | [assembly: AssemblyCulture("")] 11 | [assembly: AssemblyDescription("SeeingSharp is a 3D/2D rendering library for C# powered by Direct3D. It is meant for desktop applications (Win.Forms, Wpf) or Windows Store Apps")] 12 | 13 | // Version info 14 | [assembly: AssemblyVersion("0.9.2.0")] 15 | [assembly: AssemblyFileVersion("0.9.2.0")] 16 | 17 | // Misc 18 | [assembly: ComVisible(false)] 19 | 20 | -------------------------------------------------------------------------------- /src/Tools/SeeingSharp.ModelViewer/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 | -------------------------------------------------------------------------------- /src/Tools/SeeingSharp.ModelViewer/Assets/Background.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Tools/SeeingSharp.ModelViewer/Assets/Background.dds -------------------------------------------------------------------------------- /src/Tools/SeeingSharp.ModelViewer/Assets/SeeingSharp.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RolandKoenig/SeeingSharp2/a144ac8e0e22bada7cff4db9576cc281cc4c393d/src/Tools/SeeingSharp.ModelViewer/Assets/SeeingSharp.ico -------------------------------------------------------------------------------- /src/Tools/SeeingSharp.ModelViewer/Rendering/ModelViewerSceneObjectMetadata.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace SeeingSharp.ModelViewer.Rendering 6 | { 7 | public record ModelViewerSceneObjectMetadata(bool IsInternalObject); 8 | } 9 | -------------------------------------------------------------------------------- /src/Tools/SeeingSharp.ModelViewer/SeeingSharp.ModelViewer.csproj.DotSettings: -------------------------------------------------------------------------------- 1 |  2 | True 3 | True 4 | True 5 | True -------------------------------------------------------------------------------- /src/Tools/SeeingSharp.ModelViewer/Util/_Base/DelegateCommand.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Input; 3 | 4 | namespace SeeingSharp.ModelViewer.Util 5 | { 6 | public class DelegateCommand : ICommand 7 | { 8 | private Func? _canExecuteAction; 9 | private Action _executeAction; 10 | 11 | public event EventHandler? CanExecuteChanged; 12 | 13 | public DelegateCommand(Action executeAction) 14 | { 15 | _executeAction = executeAction; 16 | } 17 | 18 | public DelegateCommand(Action executeAction, Func canExecuteAction) 19 | { 20 | _executeAction = executeAction; 21 | _canExecuteAction = canExecuteAction; 22 | } 23 | 24 | public void RaiseCanExecuteChanged() 25 | { 26 | this.CanExecuteChanged?.Invoke(this, EventArgs.Empty); 27 | } 28 | 29 | public bool CanExecute(object? parameter) 30 | { 31 | if (_canExecuteAction == null) { return true; } 32 | return _canExecuteAction(); 33 | } 34 | 35 | public void Execute(object? parameter) 36 | { 37 | _executeAction(); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/Tools/SeeingSharp.ModelViewer/Util/_Base/PropertyChangedBase.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Runtime.CompilerServices; 3 | 4 | namespace SeeingSharp.ModelViewer.Util 5 | { 6 | public class PropertyChangedBase : INotifyPropertyChanged 7 | { 8 | public event PropertyChangedEventHandler? PropertyChanged; 9 | 10 | public void RaisePropertyChanged([CallerMemberName] string propName = "") 11 | { 12 | this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName)); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Tools/SeeingSharp.ModelViewer/_AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | #if !NET48 2 | [assembly: System.Runtime.Versioning.SupportedOSPlatform("windows")] 3 | #endif -------------------------------------------------------------------------------- /src/Tools/SeeingSharp.ModelViewer/_Constants.cs: -------------------------------------------------------------------------------- 1 | namespace SeeingSharp.ModelViewer 2 | { 3 | internal static class Constants 4 | { 5 | public const string OBJ_NAME_UNIT_CUBE = "UnitCube"; 6 | public const string OBJ_NAME_GRID = "Grid"; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/Tools/SeeingSharp.ModelViewer/_Misc.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SeeingSharp.ModelViewer 4 | { 5 | public class OpenFileDialogEventArgs : EventArgs 6 | { 7 | public string FilterString { get; } 8 | 9 | public string SelectedFile { get; set; } 10 | 11 | public OpenFileDialogEventArgs(string filterString) 12 | { 13 | this.FilterString = filterString; 14 | this.SelectedFile = string.Empty; 15 | } 16 | } 17 | 18 | public enum CameraMode 19 | { 20 | Perspective, 21 | 22 | Orthographic 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/Tools/SeeingSharp.StaticChecks/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "PublicSharpDXChecker": { 4 | "commandName": "Project", 5 | "commandLineArgs": "..\\..\\..\\..\\..\\bin\\Debug.AnyCPU\\netstandard2.0\\SeeingSharp.dll" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /src/Tools/SeeingSharp.StaticChecks/SeeingSharp.StaticChecks.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | net8.0-windows 6 | AnyCPU;ARM64 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | --------------------------------------------------------------------------------