/// <summary> /// If rendered with FXAA we'll need an additional (final) pass, that takes the lighted scene, rendered to a texture, as input. /// </summary> /// <param name="srcTex">RenderTarget, that contains a single texture in the Albedo/Specular channel, that contains the lighted scene.</param> /// <param name="screenParams">The width and height of the screen.</param> // see: http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf // http://blog.simonrodriguez.fr/articles/30-07-2016_implementing_fxaa.html public static ShaderEffect FXAARenderTargetEffect(WritableTexture srcTex, float2 screenParams) { //TODO: #define constants to uniforms return(new ShaderEffect(new[] { new EffectPassDeclaration { VS = AssetStorage.Get <string>("Deferred.vert"), PS = AssetStorage.Get <string>("FXAA.frag"), StateSet = new RenderStateSet { AlphaBlendEnable = false, ZEnable = true, } } }, new[] { new EffectParameterDeclaration { Name = UniformNameDeclarations.DeferredRenderTextures[(int)RenderTargetTextureTypes.Albedo], Value = srcTex }, new EffectParameterDeclaration { Name = UniformNameDeclarations.ScreenParams, Value = screenParams }, })); }
// Init is called on startup. public override void Init() { // Set the clear color for the backbuffer to white (100% intentsity in all color channels R, G, B, A). RC.ClearColor = new float4(0.8f, 0.9f, 0.7f, 1); _scene = AssetStorage.Get<SceneContainer>("Traktor.fus"); _bodyTransform = _scene.Children.FindNodes(Node => Node.Name == "Body")?.FirstOrDefault()?.GetTransform(); _schaufelTransform = _scene.Children.FindNodes(Node => Node.Name == "Schaufel")?.FirstOrDefault()?.GetTransform(); _oberarmTransform = _scene.Children.FindNodes(Node => Node.Name == "Oberarm")?.FirstOrDefault()?.GetTransform(); _unterarmTransform = _scene.Children.FindNodes(Node => Node.Name == "Arm")?.FirstOrDefault()?.GetTransform(); _leftFrontWheelTransform = _scene.Children.FindNodes(Node => Node.Name == "LeftFrontWheel")?.FirstOrDefault()?.GetTransform(); _rightFrontWheelTransform = _scene.Children.FindNodes(Node => Node.Name == "RightFrontWheel")?.FirstOrDefault()?.GetTransform(); _leftRearWheelTransform = _scene.Children.FindNodes(Node => Node.Name == "LeftRearWheel")?.FirstOrDefault()?.GetTransform(); _rightRearWheelTransform = _scene.Children.FindNodes(Node => Node.Name == "RightRearWheel")?.FirstOrDefault()?.GetTransform(); // Create a scene renderer holding the scene above _sceneRenderer = new SceneRenderer(_scene); _scenePicker = new ScenePicker(_scene); }
/// <summary> /// [Parallel light only] ShaderEffect that performs the lighting calculation according to the textures from the Geometry Pass. Shadow is calculated with cascaded shadow maps. /// </summary> /// <param name="srcRenderTarget">The source render target.</param> /// <param name="lc">The light component.</param> /// <param name="shadowMaps">The cascaded shadow maps.</param> /// <param name="clipPlanes">The clip planes of the frustums. Each frustum is associated with one shadow map.</param> /// <param name="numberOfCascades">The number of sub-frustums, used for cascaded shadow mapping.</param> /// <param name="backgroundColor">Sets the background color. Could be replaced with a texture or other sky color calculations in the future.</param> /// <returns></returns> public static ShaderEffect DeferredLightingPassEffect(RenderTarget srcRenderTarget, Light lc, WritableTexture[] shadowMaps, float2[] clipPlanes, int numberOfCascades, float4 backgroundColor) { var effectParams = DeferredLightingEffectParams(srcRenderTarget, backgroundColor); effectParams.Add(new EffectParameterDeclaration { Name = "LightSpaceMatrices[0]", Value = Array.Empty <float4x4>() }); effectParams.Add(new EffectParameterDeclaration { Name = "ShadowMaps[0]", Value = shadowMaps }); effectParams.Add(new EffectParameterDeclaration { Name = "ClipPlanes[0]", Value = clipPlanes }); return(new ShaderEffect(new[] { new EffectPassDeclaration { VS = AssetStorage.Get <string>("Deferred.vert"), PS = CreateDeferredLightingPixelShader(lc, true, numberOfCascades), StateSet = new RenderStateSet { AlphaBlendEnable = true, ZEnable = true, BlendOperation = BlendOperation.Add, SourceBlend = Blend.One, DestinationBlend = Blend.One, ZFunc = Compare.LessEqual, } } }, effectParams.ToArray())); }
private void newToolStripMenuItem_Click(object sender, EventArgs e) { _currentPath = null; _storage = new AssetStorage(); _loadedAsset = SocialImportanceAsset.CreateInstance(_storage); OnAssetDataLoaded(); }
public MainForm() { InitializeComponent(); _storage = new AssetStorage(); _loadedAsset = SocialImportanceAsset.CreateInstance(_storage); OnAssetDataLoaded(); }
// Init is called on startup. public override void Init() { #if GUI_SIMPLE _guiHandler = new GUIHandler(); _guiHandler.AttachToContext(RC); _guiFuseeLink = new GUIButton(6, 6, 157, 87); _guiFuseeLink.ButtonColor = new float4(0, 0, 0, 0); _guiFuseeLink.BorderColor = new float4(0, 0.6f, 0.2f, 1); _guiFuseeLink.BorderWidth = 0; _guiFuseeLink.OnGUIButtonDown += _guiFuseeLink_OnGUIButtonDown; _guiFuseeLink.OnGUIButtonEnter += _guiFuseeLink_OnGUIButtonEnter; _guiFuseeLink.OnGUIButtonLeave += _guiFuseeLink_OnGUIButtonLeave; _guiHandler.Add(_guiFuseeLink); _guiFuseeLogo = new GUIImage(AssetStorage.Get <ImageData>("FuseeLogo150.png"), 10, 10, -5, 150, 80); _guiHandler.Add(_guiFuseeLogo); var fontLato = AssetStorage.Get <Font>("Lato-Black.ttf"); fontLato.UseKerning = true; _guiLatoBlack = new FontMap(fontLato, 18); _guiSubText = new GUIText("Simple FUSEE Example", _guiLatoBlack, 100, 100); _guiSubText.TextColor = new float4(0.05f, 0.25f, 0.15f, 0.8f); _guiHandler.Add(_guiSubText); _subtextWidth = GUIText.GetTextWidth(_guiSubText.Text, _guiLatoBlack); _subtextHeight = GUIText.GetTextHeight(_guiSubText.Text, _guiLatoBlack); #endif // Set the clear color for the backbuffer to white (100% intentsity in all color channels R, G, B, A). RC.ClearColor = new float4(1, 1, 1, 1); // Load the rocket model _rocketScene = AssetStorage.Get <SceneContainer>("RocketModel.fus"); // Wrap a SceneRenderer around the model. _sceneRenderer = new SceneRenderer(_rocketScene); }
/// <summary> /// ShaderEffect that renders the depth map from a lights point of view - this depth map is used as a shadow map. /// </summary> /// <returns></returns> public static ShaderEffect ShadowMapEffect() { return(new ShaderEffect(new[] { new EffectPassDeclaration { VS = AssetStorage.Get <string>("ShadowMap.vert"), PS = AssetStorage.Get <string>("ShadowMap.frag"), StateSet = new RenderStateSet { AlphaBlendEnable = false, ZEnable = true, CullMode = Cull.Clockwise, ZFunc = Compare.LessEqual, } } }, new[] { new EffectParameterDeclaration { Name = UniformNameDeclarations.Model, Value = float4x4.Identity }, new EffectParameterDeclaration { Name = UniformNameDeclarations.LightSpaceMatrix, Value = float4x4.Identity }, })); }
// Init is called on startup. public override void Init() { // Load the scene file "Cube.fus" SceneContainer sc = AssetStorage.Get <SceneContainer>("Cube.fus"); // Extract the 'First' object of type 'MeshComponent' found in 'sc'`s list of 'Children' without // further specifying any search criterion ('c => true' means: any found MeshComponent will do). MeshComponent mc = sc.Children.FindComponents <MeshComponent>(c => true).First(); // Generate a mesh from the MeshComponent's vertices, normals and triangles. _mesh = new Mesh { Vertices = mc.Vertices, Normals = mc.Normals, Triangles = mc.Triangles }; var shader = RC.CreateShader(_vertexShader, _pixelShader); RC.SetShader(shader); _xformParam = RC.GetShaderParam(shader, "xform"); _xform = float4x4.Identity; // Set the clear color for the backbuffer RC.ClearColor = new float4(1, 1, 1, 1); }
// Init is called on startup. public override void Init() { // Set the clear color for the backbuffer to white (100% intensity in all color channels R, G, B, A). RC.ClearColor = new float4(0.7f, 0.9f, 0.5f, 1); // Load the drone model _droneScene = AssetStorage.Get <SceneContainer>("GroundNoMat.fus"); var droneBody = _droneScene.Children.FindNodes(node => node.Name == "Body")?.FirstOrDefault(); _drone = new Drone(droneBody); _camera = new Camera(); //Add resize delegate var projComp = _droneScene.Children[0].GetComponent <ProjectionComponent>(); AddResizeDelegate(delegate { projComp.Resize(Width, Height); }); // Wrap a SceneRenderer around the model. _sceneRenderer = new SceneRenderer(_droneScene); //_guiRenderer = new SceneRenderer(_gui); DroneRoot = _droneScene.Children.FindNodes(node => node.Name == "Body")?.FirstOrDefault(); }
void Awake() { DontDestroyOnLoad(gameObject); if(Instance == null) Instance = this; }
public async Task TestAssetSynchronization() { var code = @"class Test { void Method() { } }"; using var workspace = TestWorkspace.CreateCSharp(code); var solution = workspace.CurrentSolution; // build checksum await solution.State.GetChecksumAsync(CancellationToken.None); var map = await solution.GetAssetMapAsync(CancellationToken.None); var sessionId = 0; var storage = new AssetStorage(); storage.Initialize(new SimpleAssetSource(map)); var service = new AssetProvider(sessionId, storage, new RemoteWorkspace().Services.GetService <ISerializerService>()); await service.SynchronizeAssetsAsync(new HashSet <Checksum>(map.Keys), CancellationToken.None); foreach (var kv in map) { Assert.True(storage.TryGetAsset <object>(kv.Key, out _)); } }
private ITexture LoadTexture(string path) { // string texturePath = Path.Combine(_scenePathDirectory, path); var image = AssetStorage.Get <ImageData>(path); return(_rc.CreateTexture(image)); }
public Renderer(RenderContext rc) { RC = rc; // Initialize the shader(s) var vertsh = AssetStorage.Get <string>("VertexShader.vert"); var pixsh = AssetStorage.Get <string>("PixelShader.frag"); var shader = RC.CreateShader(vertsh, pixsh); RC.SetShader(shader); AlbedoParam = RC.GetShaderParam(shader, "albedo"); ShininessParam = RC.GetShaderParam(shader, "shininess"); ImageData maleModelED = AssetStorage.Get <ImageData>("maleModel_ED.jpg"); _maleModelTexture = RC.CreateTexture(maleModelED); ImageData maleModelNM = AssetStorage.Get <ImageData>("maleFigure_NM_switch_red_ch.png"); _maleModelTextureNM = RC.CreateTexture(maleModelNM); TextureParam = RC.GetShaderParam(shader, "texture"); Texture2Param = RC.GetShaderParam(shader, "normalTex"); TexMixParam = RC.GetShaderParam(shader, "texmix"); LightPosFrontLeftParam = RC.GetShaderParam(shader, "lightposFrontLeft"); LightPosBackLeftParam = RC.GetShaderParam(shader, "lightposBackLeft"); LightPosFrontRightParam = RC.GetShaderParam(shader, "lightposFrontRight"); LightPosBackRightParam = RC.GetShaderParam(shader, "lightposBackRight"); }
public static bool Transfer(UInt160 from, UInt160 to, BigInteger amount, object data) { Assert(from.IsValid && to.IsValid, "Invalid From or To Address"); Assert(amount > 0, "The parameter amount MUST be greater than 0."); Assert(Runtime.CheckWitness(from), "No authorization."); var me = Runtime.ExecutingScriptHash; if (to == me) { Assert(CheckIsRouter(Runtime.CallingScriptHash), "Not Allowed To Transfer"); } Assert(AssetStorage.Get(from) >= amount, "Insufficient balance."); if (from == to) { return(true); } AssetStorage.Reduce(from, amount); AssetStorage.Increase(to, amount); onTransfer(from, to, amount); // Validate payable if (ContractManagement.GetContract(to) != null) { Contract.Call(to, "onNEP17Payment", CallFlags.All, new object[] { from, amount, data }); } return(true); }
public MainForm() { InitializeComponent(); _storage = new AssetStorage(); _loadedAsset = EmotionalAppraisalAsset.CreateInstance(_storage); OnAssetDataLoaded(); }
// Init is called on startup. public override void Init() { // Set the clear color for the backbuffer to white (100% intensity in all color channels R, G, B, A). RC.ClearColor = new float4(1, 1, 1, 1); // Load the rocket model _houseScene = AssetStorage.Get <SceneContainer>("rover.fus"); //Get transform components for (int i = 0; i < 3; i++) { leftWheelTransforms[i] = _houseScene.Children.FindNodes(node => node.Name == "Rad_L_0" + (i + 1))?.FirstOrDefault()?.GetTransform(); } for (int i = 0; i < 3; i++) { rightWheelTransforms[i] = _houseScene.Children.FindNodes(node => node.Name == "Rad_R_0" + (i + 1))?.FirstOrDefault()?.GetTransform(); } for (int i = 0; i < 2; i++) { armTransforms[i] = _houseScene.Children.FindNodes(node => node.Name == "Arm_0" + (i + 1))?.FirstOrDefault()?.GetTransform(); } // Wrap a SceneRenderer around the model. _sceneRenderer = new SceneRendererForward(_houseScene); _scenePicker = new ScenePicker(_houseScene); }
private void LoadTextures(String[] names) { foreach (var name in names) { textures.Add(name, RC.CreateTexture(AssetStorage.Get <ImageData>(name))); } }
// Init is called on startup. public override void Init() { // Set the clear color for the backbuffer to white (100% intensity in all color channels R, G, B, A). RC.ClearColor = new float4(1, 1, 1, 1); // Load the model _scene = AssetStorage.Get <SceneContainer>("roboter_arm.fus"); //Set Transforms for the Axles _lowerAxleTransform = _scene.Children.FindNodes(node => node.Name == "LowerAxle")?.FirstOrDefault()?.GetTransform(); _middleAxleTransform = _scene.Children.FindNodes(node => node.Name == "MiddleAxle")?.FirstOrDefault()?.GetTransform(); _upperAxleTransform = _scene.Children.FindNodes(node => node.Name == "UpperAxle")?.FirstOrDefault()?.GetTransform(); _footTransform = _scene.Children.FindNodes(node => node.Name == "Foot")?.FirstOrDefault()?.GetTransform(); _rightPincerTransform = _scene.Children.FindNodes(node => node.Name == "RightLowerAxle")?.FirstOrDefault()?.GetTransform(); _leftPincerTransform = _scene.Children.FindNodes(node => node.Name == "LeftLowerAxle")?.FirstOrDefault()?.GetTransform(); _rightPincerTransformUp = _scene.Children.FindNodes(node => node.Name == "RightHigherAxle")?.FirstOrDefault()?.GetTransform(); _leftPincerTransformUp = _scene.Children.FindNodes(node => node.Name == "LeftHigherAxle")?.FirstOrDefault()?.GetTransform(); _pointer = _scene.Children.FindNodes(node => node.Name == "Pointer")?.FirstOrDefault()?.GetTransform(); _virtualPos = new float3(0, 5, 0); //at the position of the upper axle _open = false; AddResizeDelegate(delegate { _scene.Children[0].GetComponent <ProjectionComponent>().Resize(Width, Height); }); // Wrap a SceneRenderer around the model. _sceneRenderer = new SceneRenderer(_scene); }
public SimpleAssetSource(AssetStorage assetStorage, IReadOnlyDictionary <Checksum, object> map) { _map = map; _assetStorage = assetStorage; _assetStorage.SetAssetSource(this); }
public async Task TestSolutionSynchronization() { var code = @"class Test { void Method() { } }"; using (var workspace = await TestWorkspace.CreateCSharpAsync(code)) { var solution = workspace.CurrentSolution; // build checksum await solution.State.GetChecksumAsync(CancellationToken.None); var map = solution.GetAssetMap(); var sessionId = 0; var storage = new AssetStorage(); var source = new TestAssetSource(storage, sessionId, map); var service = new AssetService(sessionId, storage); await service.SynchronizeSolutionAssetsAsync(await solution.State.GetChecksumAsync(CancellationToken.None), CancellationToken.None); object data; foreach (var kv in map) { Assert.True(storage.TryGetAsset(kv.Key, out data)); } } }
/// <summary> /// Create shader program with vertex and fragment shader for this render entity. /// </summary> protected override ShaderProgram CreateShaderProgram() { string vertsh = AssetStorage.Get <string>("VertexShaderDP.vert"); string pixsh = AssetStorage.Get <string>("PixelShaderDP.frag"); return(_rc.CreateShader(vertsh, pixsh)); }
// Init is called on startup. public override void Init() { // Set the clear color for the backbuffer to white (100% intensity in all color channels R, G, B, A). RC.ClearColor = new float4(1, 1, 1, 1); // Load the model - Monkey.fus for flat shading, MonkeySmooth.fus for smooth shading _rocketScene = AssetStorage.Get <SceneContainer>("terrain.fus"); // Wrap a SceneRenderer around the model. _sceneRenderer = new SceneRenderer(_rocketScene); _scenePicker = new ScenePicker(_rocketScene); _LookAtDefaultPosition = float3.Zero; _LookFromDefaultPosition = new float3(0, 1, -4); _LookUpDefault = float3.UnitY; _LookAtPositionLerpFrom = _LookAtDefaultPosition; _LookAtPositionLerpTo = _LookAtDefaultPosition; _LookFromPositionLerpFrom = _LookFromDefaultPosition; _LookFromPositionLerpTo = _LookFromDefaultPosition; _LerpTimer = 0; _LerpSpeed = 3; _DistanceFactor = 1.5f; }
protected AssetSource(AssetStorage assetStorage, int sessionId) { _assetStorage = assetStorage; _sessionId = sessionId; _assetStorage.RegisterAssetSource(_sessionId, this); }
// Use this for initialization void Start() { // Loading Storage json with the Rules, files must be in the Streaming Assets Folder var storagetPath = Application.streamingAssetsPath + "/MultiCharacterv4.0/multicharstorage.json"; var storage = AssetStorage.FromJson(File.ReadAllText(storagetPath)); //Loading Scenario information with data regarding characters and dialogue var iatPath = Application.streamingAssetsPath + "/MultiCharacterv4.0/scenario.json"; _iat = IntegratedAuthoringToolAsset.FromJson(File.ReadAllText(iatPath), storage); var currentState = IATConsts.INITIAL_DIALOGUE_STATE; // Getting a list of all the Characters _rpcList = _iat.Characters.ToList(); //Saving the World Model _worldModel = _iat.WorldModel; ChooseCharacterMenu(); }
private void OpenFusee() { Task.Run(() => { IO.IOImp = new Fusee.Base.Imp.Desktop.IOImp(); var fap = new Fusee.Base.Imp.Desktop.FileAssetProvider("Assets"); fap.RegisterTypeHandler( new AssetHandler { ReturnedType = typeof(Font), Decoder = (string id, object storage) => { if (!Path.GetExtension(id).Contains("ttf", System.StringComparison.OrdinalIgnoreCase)) { return(null); } return(new Font { _fontImp = new FontImp((Stream)storage) }); }, Checker = id => Path.GetExtension(id).Contains("ttf", System.StringComparison.OrdinalIgnoreCase) }); fap.RegisterTypeHandler( new AssetHandler { ReturnedType = typeof(SceneContainer), Decoder = (string id, object storage) => { if (!Path.GetExtension(id).Contains("fus", System.StringComparison.OrdinalIgnoreCase)) { return(null); } return(FusSceneConverter.ConvertFrom(ProtoBuf.Serializer.Deserialize <FusFile>((Stream)storage))); }, Checker = id => Path.GetExtension(id).Contains("fus", System.StringComparison.OrdinalIgnoreCase) }); AssetStorage.RegisterProvider(fap); fuseeApp = new Core.Main(); fuseeApp.FusToWpfEvents += FusToWpfEvents; // Inject Fusee.Engine InjectMe dependencies (hard coded) System.Drawing.Icon appIcon = System.Drawing.Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location); fuseeApp.CanvasImplementor = new Fusee.Engine.Imp.Graphics.Desktop.RenderCanvasImp(appIcon); fuseeApp.ContextImplementor = new Fusee.Engine.Imp.Graphics.Desktop.RenderContextImp(fuseeApp.CanvasImplementor); Input.AddDriverImp(new Fusee.Engine.Imp.Graphics.Desktop.RenderCanvasInputDriverImp(fuseeApp.CanvasImplementor)); Input.AddDriverImp(new Fusee.Engine.Imp.Graphics.Desktop.WindowsTouchInputDriverImp(fuseeApp.CanvasImplementor)); // app.InputImplementor = new Fusee.Engine.Imp.Graphics.Desktop.InputImp(app.CanvasImplementor); // app.AudioImplementor = new Fusee.Engine.Imp.Sound.Desktop.AudioImp(); // app.NetworkImplementor = new Fusee.Engine.Imp.Network.Desktop.NetworkImp(); // app.InputDriverImplementor = new Fusee.Engine.Imp.Input.Desktop.InputDriverImp(); // app.VideoManagerImplementor = ImpFactory.CreateIVideoManagerImp(); // Start the app fuseeApp.Run(); }); }
public async Task TestSolutionSynchronization() { var code = @"class Test { void Method() { } }"; using (var workspace = TestWorkspace.CreateCSharp(code)) { var solution = workspace.CurrentSolution; // build checksum await solution.State.GetChecksumAsync(CancellationToken.None); var map = solution.GetAssetMap(); var sessionId = 0; var storage = new AssetStorage(); var source = new TestAssetSource(storage, map); var service = new AssetService(sessionId, storage); await service.SynchronizeSolutionAssetsAsync(await solution.State.GetChecksumAsync(CancellationToken.None), CancellationToken.None); foreach (var kv in map) { Assert.True(storage.TryGetAsset(kv.Key, out object data)); } } }
private void newToolStripMenuItem_Click(object sender, EventArgs e) { _currentFilePath = null; _storage = new AssetStorage(); _loadedAsset = EmotionalDecisionMakingAsset.CreateInstance(_storage); OnAssetDataLoaded(); }
// Init is called on startup. public override void Init() { RC.ClearColor = new float4(0.8f, 0.9f, 0.7f, 1); // _scene = CreateScene(); _scene = AssetStorage.Get <SceneContainer>("Excavator_new.fus"); //Search children of _scene and find the nodes with the exact name. Then get the transform component of each and give the value to the variable. _firstExcavatorArmTransform = _scene.Children.FindNodes(node => node.Name == "FirstExcavatorArm")?.FirstOrDefault()?.GetTransform(); // or GetComponent<Transform>(); _rightWheelFrontTransform = _scene.Children.FindNodes(node => node.Name == "RightWheelFront")?.FirstOrDefault()?.GetTransform(); // or GetComponent<Transform>(); _leftWheelFrontTransform = _scene.Children.FindNodes(node => node.Name == "LeftWheelFront")?.FirstOrDefault()?.GetTransform(); _rightWheelBackTransform = _scene.Children.FindNodes(node => node.Name == "RightWheelBack")?.FirstOrDefault()?.GetTransform(); _leftWheelBackTransform = _scene.Children.FindNodes(node => node.Name == "LeftWheelBack")?.FirstOrDefault()?.GetTransform(); _bodyTransform = _scene.Children.FindNodes(node => node.Name == "Body")?.FirstOrDefault()?.GetTransform(); //Search children of _scene and find the nodes with the exact name. Then get the SourceEffect component of each and give the value to the variable. _rightWheelFrontEffect = _scene.Children.FindNodes(node => node.Name == "RightWheelFront") !.FirstOrDefault()?.GetComponent <SurfaceEffect>(); _leftWheelFrontEffect = _scene.Children.FindNodes(node => node.Name == "LeftWheelFront")?.FirstOrDefault()?.GetComponent <SurfaceEffect>(); _rightWheelBackEffect = _scene.Children.FindNodes(node => node.Name == "RightWheelBack")?.FirstOrDefault()?.GetComponent <SurfaceEffect>(); _leftWheelBackEffect = _scene.Children.FindNodes(node => node.Name == "LeftWheelBack")?.FirstOrDefault()?.GetComponent <SurfaceEffect>(); // Create a scene renderer holding the scene above _sceneRenderer = new SceneRendererForward(_scene); _scenePicker = new ScenePicker(_scene); //Change colors of nodes _rightWheelFrontEffect.SurfaceInput.Albedo = (float4)ColorUint.DarkOliveGreen; _leftWheelFrontEffect.SurfaceInput.Albedo = (float4)ColorUint.SkyBlue; _rightWheelBackEffect.SurfaceInput.Albedo = (float4)ColorUint.Cornsilk; _leftWheelBackEffect.SurfaceInput.Albedo = (float4)ColorUint.Green; }
private void RunRequests() { while (true) { byte[] idata = null; bool found = false; AssetStorage foundAsset = null; ARequest req = this._assetRequests.Dequeue(); IObjectSet result = db.Query(new AssetUUIDQuery(req.AssetID)); if (result.Count > 0) { foundAsset = (AssetStorage)result.Next(); found = true; } AssetBase asset = new AssetBase(); if (found) { asset.FullID = foundAsset.UUID; asset.Type = foundAsset.Type; asset.InvType = foundAsset.Type; asset.Name = foundAsset.Name; idata = foundAsset.Data; } else { asset.FullID = LLUUID.Zero; } asset.Data = idata; _receiver.AssetReceived(asset, req.IsTexture); } }
public void RestartGame() { renderList.Clear(); score = 0; AddPointsToScore(0); tower = new Tower(-(Height / 2)); Instances.Tower = tower; var copy4 = AssetStorage.DeepCopy(steinModel); var copy5 = AssetStorage.DeepCopy(steinModel); firstTowerBlock = new TowerBlock(copy4, 0, -(Height / 2) + tower.GetBlockHeight() + 50); _camera.yOffset = 0; _camera.mtxOffset = float4x4.CreateTranslation(0, 0, 0); renderList.Add(hintergrund); renderList.Add(environment); renderList.Add(firstTowerBlock); everyFrame.Clear(); everyFrame.Add(firstTowerBlock); CreateNewBlock(); }
// Init is called on startup. public override void Init() { // Load the scene _scene = AssetStorage.Get <SceneContainer>("WuggyLand.fus"); _sceneScale = float4x4.CreateScale(0.04f); // Instantiate our self-written renderer _renderer = new Renderer(RC); // Find some transform nodes we want to manipulate in the scene _wuggyTransform = _scene.Children.FindNodes(c => c.Name == "Wuggy").First()?.GetTransform(); _wgyWheelBigR = _scene.Children.FindNodes(c => c.Name == "WheelBigR").First()?.GetTransform(); _wgyWheelBigL = _scene.Children.FindNodes(c => c.Name == "WheelBigL").First()?.GetTransform(); _wgyWheelSmallR = _scene.Children.FindNodes(c => c.Name == "WheelSmallR").First()?.GetTransform(); _wgyWheelSmallL = _scene.Children.FindNodes(c => c.Name == "WheelSmallL").First()?.GetTransform(); _wgyNeckHi = _scene.Children.FindNodes(c => c.Name == "NeckHi").First()?.GetTransform(); // Find the trees and store them in a list _trees = new List <SceneNodeContainer>(); _trees.AddRange(_scene.Children.FindNodes(c => c.Name.Contains("Tree"))); // Set the clear color for the backbuffer RC.ClearColor = new float4(1, 1, 1, 1); }
public async Task TestAssets() { var sessionId = 0; var checksum = Checksum.Create(WellKnownSynchronizationKind.Null, ImmutableArray.CreateRange(Guid.NewGuid().ToByteArray())); var data = new object(); var storage = new AssetStorage(); _ = new SimpleAssetSource(storage, new Dictionary <Checksum, object>() { { checksum, data } }); var service = new AssetService(sessionId, storage, new RemoteWorkspace().Services.GetService <ISerializerService>()); var stored = await service.GetAssetAsync <object>(checksum, CancellationToken.None); Assert.Equal(data, stored); var stored2 = await service.GetAssetsAsync <object>(new[] { checksum }, CancellationToken.None); Assert.Equal(1, stored2.Count); Assert.Equal(checksum, stored2[0].Item1); Assert.Equal(data, stored2[0].Item2); }
public async Task TestProjectSynchronization() { var code = @"class Test { void Method() { } }"; using (var workspace = TestWorkspace.CreateCSharp(code)) { var project = workspace.CurrentSolution.Projects.First(); // build checksum await project.State.GetChecksumAsync(CancellationToken.None); var map = project.GetAssetMap(); var sessionId = 0; var storage = new AssetStorage(); var source = new TestAssetSource(storage, map); var service = new AssetService(sessionId, storage); await service.SynchronizeProjectAssetsAsync(SpecializedCollections.SingletonEnumerable(await project.State.GetChecksumAsync(CancellationToken.None)), CancellationToken.None); foreach (var kv in map) { Assert.True(storage.TryGetAsset(kv.Key, out object data)); } } }
public RoslynServices(int sessionId, AssetStorage storage) { _sessionId = sessionId; AssetService = new AssetService(_sessionId, storage); SolutionService = new SolutionService(AssetService); CompilationService = new CompilationService(SolutionService); }
public void TestGetAssets() { var storage = new AssetStorage(); var checksum = new Checksum(Guid.NewGuid().ToByteArray()); var data = new object(); Assert.True(storage.TryAddAsset(checksum, data)); object stored; Assert.True(storage.TryGetAsset(checksum, out stored)); }
public void TestGetAssets() { var sessionId = 0; var storage = new AssetStorage(enableCleanup: false); var source = new MyAssetSource(storage, sessionId); var checksum = new Checksum(Guid.NewGuid().ToByteArray()); var data = new object(); Assert.True(storage.TryAddAsset(checksum, data)); object stored; Assert.True(storage.TryGetAsset(checksum, out stored)); }
public void TestCreation() { var sessionId = 0; var storage = new AssetStorage(); var source = new TestAssetSource(storage, sessionId); var stored = storage.TryGetAssetSource(sessionId); Assert.Equal(source, stored); storage.UnregisterAssetSource(sessionId); var none = storage.TryGetAssetSource(sessionId); Assert.Null(none); }
protected ServiceHubServiceBase(Stream stream, IServiceProvider serviceProvider) { _instanceId = Interlocked.Add(ref s_instanceId, 1); // in unit test, service provider will return asset storage, otherwise, use the default one AssetStorage = (AssetStorage)serviceProvider.GetService(typeof(AssetStorage)) ?? AssetStorage.Default; Logger = (TraceSource)serviceProvider.GetService(typeof(TraceSource)); Logger.TraceInformation($"{DebugInstanceString} Service instance created"); _cancellationTokenSource = new CancellationTokenSource(); CancellationToken = _cancellationTokenSource.Token; Rpc = JsonRpc.Attach(stream, this); Rpc.Disconnected += OnRpcDisconnected; }
public async Task TestAssets() { var sessionId = 0; var checksum = new Checksum(Guid.NewGuid().ToByteArray()); var data = new object(); var storage = new AssetStorage(); var source = new TestAssetSource(storage, sessionId, checksum, data); var service = new AssetService(sessionId, storage); var stored = await service.GetAssetAsync<object>(checksum, CancellationToken.None); Assert.Equal(data, stored); var stored2 = await service.GetAssetsAsync<object>(new[] { checksum }, CancellationToken.None); Assert.Equal(1, stored2.Count); Assert.Equal(checksum, stored2[0].Item1); Assert.Equal(data, stored2[0].Item2); }
public async Task TestCreation() { var code = @"class Test { void Method() { } }"; using (var workspace = await TestWorkspace.CreateCSharpAsync(code)) { var solution = workspace.CurrentSolution; var solutionChecksum = await solution.State.GetChecksumAsync(CancellationToken.None); var map = solution.GetAssetMap(); var sessionId = 0; var storage = new AssetStorage(enableCleanup: false); var source = new MyAssetSource(storage, sessionId, map); var service = new SolutionService(new AssetService(sessionId, storage)); var synched = await service.GetSolutionAsync(solutionChecksum, CancellationToken.None); Assert.Equal(solutionChecksum, await synched.State.GetChecksumAsync(CancellationToken.None)); } }
public async Task TestCleanup() { var storage = new AssetStorage(cleanupInterval: TimeSpan.FromMilliseconds(1), purgeAfter: TimeSpan.FromMilliseconds(2)); var checksum = new Checksum(Guid.NewGuid().ToByteArray()); var data = new object(); Assert.True(storage.TryAddAsset(checksum, data)); for (var i = 0; i < 10; i++) { await Task.Delay(10); object stored; if (!storage.TryGetAsset(checksum, out stored)) { // asset is deleted return; } } // it should not reach here Assert.True(false, "asset not cleaned up"); }
public MyAssetSource(AssetStorage assetStorage, int sessionId, Checksum checksum, object data) : base(assetStorage, sessionId) { _checksum = checksum; _data = data; }
public MyAssetSource(AssetStorage assetStorage, int sessionId) : base(assetStorage, sessionId) { }
void OnDestroy() { Instance = null; //Debug.LogError("Destroy"); }
public TestAssetSource(AssetStorage assetStorage, int sessionId) : this(assetStorage, sessionId, new Dictionary<Checksum, object>()) { }
public TestAssetSource(AssetStorage assetStorage, int sessionId, Checksum checksum, object data) : this(assetStorage, sessionId, new Dictionary<Checksum, object>() { { checksum, data } }) { }
public TestAssetSource(AssetStorage assetStorage, int sessionId, Dictionary<Checksum, object> map) : base(assetStorage, sessionId) { _map = map; }
public ServiceProvider(bool runCacheCleanup) { _storage = runCacheCleanup ? new AssetStorage(cleanupInterval: TimeSpan.FromSeconds(30), purgeAfter: TimeSpan.FromMinutes(1)) : new AssetStorage(); }
public ServiceProvider() { _storage = new AssetStorage(enableCleanup: false); }
private static async Task<SolutionService> GetSolutionServiceAsync(Solution solution, Dictionary<Checksum, object> map = null) { // make sure checksum is calculated await solution.State.GetChecksumAsync(CancellationToken.None); map = map ?? new Dictionary<Checksum, object>(); solution.AppendAssetMap(map); var sessionId = 0; var storage = new AssetStorage(); var source = new TestAssetSource(storage, sessionId, map); var service = new SolutionService(new AssetService(sessionId, storage)); return service; }