private async Task OnCreateResourcesAsync(EngineCreateResourcesEventArgs e) { // Load all registered sprites var coords = Entity.GetImplementation <ICoordinateSystem>(); await Task.WhenAll(Sprites.Select(sprite => sprite.LoadAsync(e.Sender, coords))).ConfigureAwait(false); }
private async void Canvas_CreateResources(EngineCreateResourcesEventArgs e) { await Task.Delay(1000); AddRoads( Engine.Engine.Current.CurrentLevel.RootEntity, Engine.Engine.Current.CurrentLevel.RootEntity.GetImplementation <ICoordinateSystem>()); }
private async Task OnCreateResourcesAsync(EngineCreateResourcesEventArgs e) { var grass = GrassSprite.Resolve(Entity); var snow = SnowSprite.Resolve(Entity); var rock = RockSprite.Resolve(Entity); var heightMap = _terrain.HeightMap.Resolve(Entity); if (!heightMap.IsPreScaled || !grass.IsPreScaled || !snow.IsPreScaled || !rock.IsPreScaled) { throw new ArgumentException("The heightmap, grass, snow and rock textures must be prescaled in order to be used for terrain rendering"); } // Calculate average colors (these are used at small zoom levels) _grassColor = GetAverageColor(e.Sender, grass.Image); _snowColor = GetAverageColor(e.Sender, snow.Image); _rockColor = GetAverageColor(e.Sender, rock.Image); _normalHeightMap = await RenderNormalHeightMapAsync(e.Sender, heightMap.Image, _terrain.Height - _terrain.BaseHeight); var wrap = CanvasEdgeBehavior.Wrap; var grassTiled = new BorderEffect { Source = grass.Image, ExtendX = wrap, ExtendY = wrap, CacheOutput = true }; var snowTiled = new BorderEffect { Source = snow.Image, ExtendX = wrap, ExtendY = wrap, CacheOutput = true }; var rockTiled = new BorderEffect { Source = rock.Image, ExtendX = wrap, ExtendY = wrap, CacheOutput = true }; var shaderBytes = await Utilities.ReadBytesFromUriAsync(new Uri("ms-appx:///Shaders/TerrainShader.bin")); _terrainMap = new PixelShaderEffect(shaderBytes) { Source1 = _normalHeightMap, Source2 = grassTiled, Source3 = snowTiled, Source4 = rockTiled, CacheOutput = true }; }
private void OnCreateResources(EngineCreateResourcesEventArgs e) { _canvasControl = e.Sender; }
private void OnCreateResources(EngineCreateResourcesEventArgs e) { _canvasControl = e.Sender; _heightMap = HeightMap.Resolve(Entity); }