public void TestNoClean(out CompilerResults left, out CompilerResults right) { // Create and mount database file system var objDatabase = ObjectDatabase.CreateDefaultDatabase(); using (var assetIndexMap = AssetIndexMap.Load(VirtualFileSystem.ApplicationDatabaseIndexPath)) { var database = new DatabaseFileProvider(assetIndexMap, objDatabase); AssetManager.GetFileProvider = () => database; foreach (var shaderName in Directory.EnumerateFiles(@"..\..\sources\shaders", "*.pdxsl")) { CopyStream(database, shaderName); } foreach (var shaderName in Directory.EnumerateFiles(@"..\..\sources\engine\SiliconStudio.Paradox.Shaders.Tests\GameAssets\Compiler", "*.pdxsl")) { CopyStream(database, shaderName); } var compiler = new EffectCompiler(); compiler.SourceDirectories.Add("assets/shaders"); var compilerCache = new EffectCompilerCache(compiler); var compilerParameters = new CompilerParameters { Platform = GraphicsPlatform.Direct3D11 }; left = compilerCache.Compile(new ShaderMixinGeneratorSource("SimpleEffect"), compilerParameters); right = compilerCache.Compile(new ShaderMixinGeneratorSource("SimpleEffect"), compilerParameters); } }
private void Init() { // Create and mount database file system var objDatabase = ObjectDatabase.CreateDefaultDatabase(); var databaseFileProvider = new DatabaseFileProvider(objDatabase); shaderMixinParser = new ShaderMixinParser(databaseFileProvider); shaderMixinParser.SourceManager.LookupDirectoryList.Add("/shaders"); }
public TestShaderLoadingString() { // Create and mount database file system var objDatabase = ObjectDatabase.CreateDefaultDatabase(); var databaseFileProvider = new DatabaseFileProvider(objDatabase); sourceManager = new ShaderSourceManager(databaseFileProvider); sourceManager.LookupDirectoryList.Add(@"shaders"); shaderLoader = new ShaderLoader(sourceManager); }
private static void Main5() { // Create and mount database file system var objDatabase = ObjectDatabase.CreateDefaultDatabase(); var assetIndexMap = ContentIndexMap.Load(VirtualFileSystem.ApplicationDatabaseIndexPath); var databaseFileProvider = new DatabaseFileProvider(assetIndexMap, objDatabase); var test = new TestGenericClass(); test.Run(); }
private void Init() { // Create and mount database file system var objDatabase = ObjectDatabase.CreateDefaultDatabase(); var databaseFileProvider = new DatabaseFileProvider(objDatabase); manager = new ShaderSourceManager(databaseFileProvider); manager.LookupDirectoryList.Add("shaders"); logger = new Stride.Core.Shaders.Utility.LoggerResult(); loader = new ShaderLoader(manager); }
internal static DatabaseFileProvider InitializeAssetDatabase() { // Create and mount database file system var objDatabase = ObjectDatabase.CreateDefaultDatabase(); // Only set a mount path if not mounted already var mountPath = VirtualFileSystem.ResolveProviderUnsafe("/asset", true).Provider == null ? "/asset" : null; var result = new DatabaseFileProvider(objDatabase, mountPath); return(result); }
/// <summary> /// Initializes the asset database. Similar to <see cref="Game.InitializeAssetDatabase"/>, but accessible without using internals. /// </summary> private static void InitializeAssetDatabase() { // Create and mount database file system var objDatabase = ObjectDatabase.CreateDefaultDatabase(); // Only set a mount path if not mounted already var mountPath = VirtualFileSystem.ResolveProviderUnsafe("/asset", true).Provider == null ? "/asset" : null; var databaseFileProvider = new DatabaseFileProvider(objDatabase, mountPath); AssetManager.GetFileProvider = () => databaseFileProvider; }
public void Init() { // Create and mount database file system var objDatabase = ObjectDatabase.CreateDefaultDatabase(); var databaseFileProvider = new DatabaseFileProvider(objDatabase); ContentManager.GetFileProvider = () => databaseFileProvider; sourceManager = new ShaderSourceManager(); sourceManager.LookupDirectoryList.Add(@"shaders"); shaderLoader = new ShaderLoader(sourceManager); }
private void Init() { // Create and mount database file system var objDatabase = ObjectDatabase.CreateDefaultDatabase(); var databaseFileProvider = new DatabaseFileProvider(objDatabase); Compiler = new EffectCompiler(databaseFileProvider); Compiler.SourceDirectories.Add("shaders"); MixinParameters = new CompilerParameters(); MixinParameters.EffectParameters.Platform = GraphicsPlatform.Direct3D11; MixinParameters.EffectParameters.Profile = GraphicsProfile.Level_11_0; ResultLogger = new LoggerResult(); }
public void Init() { // Create and mount database file system var objDatabase = ObjectDatabase.CreateDefaultDatabase(); var databaseFileProvider = new DatabaseFileProvider(objDatabase); ContentManager.GetFileProvider = () => databaseFileProvider; manager = new ShaderSourceManager(); manager.LookupDirectoryList.Add("shaders"); logger = new SiliconStudio.Shaders.Utility.LoggerResult(); loader = new ShaderLoader(manager); }
internal static void InitializeAssetDatabase() { using (Profiler.Begin(GameProfilingKeys.ObjectDatabaseInitialize)) { // Create and mount database file system var objDatabase = ObjectDatabase.CreateDefaultDatabase(); // Only set a mount path if not mounted already var mountPath = VirtualFileSystem.ResolveProviderUnsafe("/asset", true).Provider == null ? "/asset" : null; var databaseFileProvider = new DatabaseFileProvider(objDatabase, mountPath); ContentManager.GetFileProvider = () => databaseFileProvider; } }
public void Init() { // Create and mount database file system var objDatabase = ObjectDatabase.CreateDefaultDatabase(); var databaseFileProvider = new DatabaseFileProvider(objDatabase); AssetManager.GetFileProvider = () => databaseFileProvider; Compiler = new EffectCompiler(); Compiler.SourceDirectories.Add("shaders"); MixinParameters = new ShaderMixinParameters(); MixinParameters.Add(CompilerParameters.GraphicsPlatformKey, GraphicsPlatform.Direct3D11); MixinParameters.Add(CompilerParameters.GraphicsProfileKey, GraphicsProfile.Level_11_0); ResultLogger = new LoggerResult(); }
static void Main(string[] args) { Console.WriteLine("Opening database at '{0}'", Path.Combine(PlatformFolders.ApplicationDataDirectory, "db")); using var database = ObjectDatabase.CreateDefaultDatabase(); foreach (var obj in database.EnumerateObjects()) { string url = database.ContentIndexMap .SearchValues(kvp => kvp.Value == obj) .FirstOrDefault().Key ?? "(undefined)"; int size = database.GetSize(obj); Console.WriteLine("{0}\t{1}", ConvertToHumanReadable(size).PadLeft(6, ' '), url); } }
public static void Main3() { // Create and mount database file system var objDatabase = ObjectDatabase.CreateDefaultDatabase(); var assetIndexMap = ContentIndexMap.Load(VirtualFileSystem.ApplicationDatabaseIndexPath); var databaseFileProvider = new DatabaseFileProvider(assetIndexMap, objDatabase); ContentManager.GetFileProvider = () => databaseFileProvider; compiler = new EffectCompiler(); compiler.SourceDirectories.Add("shaders"); var shaderMixinSource = new ShaderMixinSource(); shaderMixinSource.Mixins.Add(new ShaderClassSource("ShaderBase")); shaderMixinSource.Mixins.Add(new ShaderClassSource("TransformationWVP")); shaderMixinSource.Mixins.Add(new ShaderClassSource("ShadingBase")); var shaderMixinSource2 = new ShaderMixinSource(); shaderMixinSource2.Mixins.Add(new ShaderClassSource("ShaderBase")); shaderMixinSource2.Mixins.Add(new ShaderClassSource("TransformationWVP")); shaderMixinSource2.Mixins.Add(new ShaderClassSource("ShadingBase")); shaderMixinSource2.Mixins.Add(new ShaderClassSource("ShadingOverlay")); var allThreads = new List <Thread>(); for (int i = 0; i < NumThreads; ++i) { CompilerThread compilerThread; if (i % 2 == 0) { compilerThread = new CompilerThread(compiler, shaderMixinSource); } else { compilerThread = new CompilerThread(compiler, shaderMixinSource2); } allThreads.Add(new Thread(compilerThread.Compile)); } foreach (var thread in allThreads) { thread.Start(); } }
public async Task Run() { Services = new ServiceRegistry(); // Database file provider Services.AddService <IDatabaseFileProviderService>(new DatabaseFileProviderService(new DatabaseFileProvider(ObjectDatabase.CreateDefaultDatabase()))); // Content manager Content = new ContentManager(Services); Services.AddService <IContentManager>(Content); Services.AddService(Content); //Services.AddService<IGraphicsDeviceService>(new GraphicsDeviceServiceLocal(null)); // Game systems var gameSystems = new GameSystemCollection(Services); Services.AddService <IGameSystemCollection>(gameSystems); gameSystems.Initialize(); // Load scene (physics only) var loadSettings = new ContentManagerLoaderSettings { // Ignore all references (Model, etc...) ContentFilter = ContentManagerLoaderSettings.NewContentFilterByType() }; var scene = await Content.LoadAsync <Scene>("MainScene", loadSettings); var sceneInstance = new SceneInstance(Services, scene, ExecutionMode.None); var sceneSystem = new SceneSystem(Services) { SceneInstance = sceneInstance, }; Services.AddService(sceneSystem); var physics = new PhysicsProcessor(); sceneInstance.Processors.Add(physics); var socket = new SimpleSocket(); socket.Connected += clientSocket => { Console.WriteLine("Client connected"); var reader = new BinarySerializationReader(clientSocket.ReadStream); while (true) { // Receive ray start/end var start = reader.Read <Vector3>(); var end = reader.Read <Vector3>(); // Raycast var result = physics.Simulation.Raycast(start, end); Console.WriteLine($"Performing raycast: {(result.Succeeded ? "hit" : "miss")}"); // Send result clientSocket.WriteStream.WriteByte((byte)(result.Succeeded ? 1 : 0)); clientSocket.WriteStream.Flush(); } }; await socket.StartServer(2655, false); Console.WriteLine("Server listening, press a key to exit"); Console.ReadKey(); }
[Test, Ignore] // ignore the test as long as PrefabAsset is not created during import anymore public void TestImportModelSimple() { var file = Path.Combine(Environment.CurrentDirectory, @"scenes\goblin.fbx"); // Create a project with an asset reference a raw file var project = new Package { FullPath = Path.Combine(Environment.CurrentDirectory, "ModelAssets", "ModelAssets" + Package.PackageFileExtension) }; using (var session = new PackageSession(project)) { var importSession = new AssetImportSession(session); // ------------------------------------------------------------------ // Step 1: Add files to session // ------------------------------------------------------------------ importSession.AddFile(file, project, UDirectory.Empty); // ------------------------------------------------------------------ // Step 2: Stage assets // ------------------------------------------------------------------ var stageResult = importSession.Stage(); Assert.IsTrue(stageResult); Assert.AreEqual(0, project.Assets.Count); // ------------------------------------------------------------------ // Step 3: Import asset directly // ------------------------------------------------------------------ importSession.Import(); Assert.AreEqual(4, project.Assets.Count); var assetItem = project.Assets.FirstOrDefault(item => item.Asset is PrefabAsset); Assert.NotNull(assetItem); EntityAnalysis.UpdateEntityReferences(((PrefabAsset)assetItem.Asset).Hierarchy); var assetCollection = new AssetItemCollection(); // Remove directory from the location assetCollection.Add(assetItem); Console.WriteLine(assetCollection.ToText()); //session.Save(); // Create and mount database file system var objDatabase = ObjectDatabase.CreateDefaultDatabase(); var databaseFileProvider = new DatabaseFileProvider(objDatabase); ContentManager.GetFileProvider = () => databaseFileProvider; ((PrefabAsset)assetItem.Asset).Hierarchy.Entities[0].Entity.Components.RemoveWhere(x => !(x is TransformComponent)); //((PrefabAsset)assetItem.Asset).Data.Entities[1].Components.RemoveWhere(x => x.Key != SiliconStudio.Xenko.Engine.TransformComponent.Key); var assetManager = new ContentManager(); assetManager.Save("Entity1", ((PrefabAsset)assetItem.Asset).Hierarchy); assetManager = new ContentManager(); var entity = assetManager.Load <Entity>("Entity1"); var entity2 = entity.Clone(); var entityAsset = (PrefabAsset)assetItem.Asset; var entityAsset2 = (PrefabAsset)AssetCloner.Clone(entityAsset); entityAsset2.Hierarchy.Entities[0].Entity.Transform.Position = new Vector3(10.0f, 0.0f, 0.0f); AssetMerge.Merge(entityAsset, entityAsset2, null, AssetMergePolicies.MergePolicyAsset2AsNewBaseOfAsset1); } }
private IDatabaseFileProviderService CreateDatabaseProvider() { VirtualFileSystem.CreateDirectory(VirtualFileSystem.ApplicationDatabasePath); return(new DatabaseFileProviderService(new DatabaseFileProvider(ObjectDatabase.CreateDefaultDatabase()))); }