2020-04-14 17:37:41 +03:00
Stride Sources
2018-06-19 12:06:54 +03:00
=============
Folders and projects layout
---------------------------
2018-08-07 05:52:34 +03:00
### core ###
2018-06-19 12:06:54 +03:00
2020-04-14 17:37:41 +03:00
* __Stride.Core__:
2018-06-19 12:06:54 +03:00
Reference counting, dependency property system (PropertyContainer/PropertyKey), low-level serialization, low-level memory operations (Utilities and NativeStream).
2020-04-14 17:37:41 +03:00
* __Stride.Core.Mathematics__:
Mathematics library (despite its name, no dependencies on Stride.Core).
* __Stride.Core.IO__:
2018-06-19 12:06:54 +03:00
Virtual File System.
2020-04-14 17:37:41 +03:00
* __Stride.Core.Serialization__:
2018-06-19 12:06:54 +03:00
High-level serialization and git-like CAS storage system.
2020-04-14 17:37:41 +03:00
* __Stride.Core.MicroThreading__:
2018-06-19 12:06:54 +03:00
Micro-threading library based on C# 5.0 async (a.k.a. stackless programming)
2020-04-14 17:37:41 +03:00
* __Stride.Core.AssemblyProcessor__:
2018-06-19 12:06:54 +03:00
Internal tool used to patch assemblies to add various features, such as Serialization auto-generation, various memory/pinning operations, module initializers, etc...
2018-08-07 05:52:34 +03:00
### presentation ###
2018-06-19 12:06:54 +03:00
2020-04-14 17:37:41 +03:00
* __Stride.Core.Presentation__: WPF UI library (themes, controls such as propertygrid, behaviors, etc...)
* __Stride.Core.SampleApp__: Simple property grid example.
* __Stride.Core.Quantum__: Advanced ViewModel library that gives ability to synchronize view-models over network (w/ diff), and at requested time intervals. That way, view models can be defined within engine without any UI dependencies.
2018-06-19 12:06:54 +03:00
2018-08-07 05:52:34 +03:00
### buildengine ###
2018-06-19 12:06:54 +03:00
2020-04-14 17:37:41 +03:00
* __Stride.Core.BuildEngine.Common__:
2018-06-19 12:06:54 +03:00
Common parts of the build engine. It can be reused to add new build steps, build commands, and also to build a new custom build engine client.
2020-04-14 17:37:41 +03:00
* __Stride.Core.BuildEngine__: Default implementation of build engine tool (executable)
* __Stride.Core.BuildEngine.Monitor__: WPF Display live results of build engine (similar to IncrediBuild)
* __Stride.Core.BuildEngine.Editor__: WPF Build engine rules editor
2018-06-19 12:06:54 +03:00
and used by most projects.
2018-08-07 05:52:34 +03:00
### shader ###
2018-06-19 12:06:54 +03:00
2020-04-14 17:37:41 +03:00
* __Irony__: Parsing library, used by Stride.Core.Shaders. Should later be replaced by ANTLR4.
* __Stride.Core.Shaders__: Shader parsing, type analysis and conversion library (used by HLSL->GLSL and Stride Shader Language)
2018-06-19 12:06:54 +03:00
2018-08-07 05:52:34 +03:00
### targets ###
2018-06-19 12:06:54 +03:00
2023-01-21 02:38:18 +03:00
* MSBuild target files to create easily cross-platform solutions (Android, iOS, WinRT, etc...), and define behaviors and targets globally. Extensible.
2018-06-19 12:06:54 +03:00
----------
Use in your project
-------------------
2018-08-07 05:52:34 +03:00
### Source repository ###
2018-06-19 12:06:54 +03:00
There is two options to integrate this repository in your own repository:
* __git subtree__ [documentation ](https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt ) and [blog post ](http://psionides.eu/2010/02/04/sharing-code-between-projects-with-git-subtree/ )
* __git submodule__
2018-08-07 05:52:34 +03:00
### Basic use ###
2018-06-19 12:06:54 +03:00
Simply add the projects you want to use directly in your Visual Studio solution.
2018-08-07 05:52:34 +03:00
### Optional: Activate assembly processor ###
2018-06-19 12:06:54 +03:00
2020-04-14 17:37:41 +03:00
If you want to use auto-generated `Serialization` code, some of `Utilities` functions or `ModuleInitializer` , you need to use __Stride.Core.AssemblyProcessor__ .
2018-06-19 12:06:54 +03:00
Steps:
2020-04-14 17:37:41 +03:00
* Include both __Stride.Core.AssemblyProcessor__ and __Stride.Core.AssemblyProcessor.Common__ in your solution.
* Add either a __Stride.Core.PostSettings.Local.targets__ or a __YourSolutionName.PostSettings.Local.targets__ in your solution folder, with this content:
2018-06-19 12:06:54 +03:00
```xml
<!-- Build file pre - included automatically by all projects in the solution -->
< Project xmlns = "http://schemas.microsoft.com/developer/msbuild/2003" >
< PropertyGroup >
<!-- Enable assembly processor -->
2020-04-14 17:37:41 +03:00
< StrideAssemblyProcessorGlobal > true< / StrideAssemblyProcessorGlobal >
2018-06-19 12:06:54 +03:00
< / PropertyGroup >
< / Project >
```