/// <summary> /// Adds view layer. /// </summary> /// <param name="viewLayer"></param> public void AddLayer ( RenderLayer viewLayer ) { lock (viewLayers) { viewLayers.Add( viewLayer ); } }
/// <summary> /// Removes layer. /// </summary> /// <param name="viewLayer"></param> /// <returns>True if element was removed. False if layer does not exist.</returns> public bool RemoveLayer ( RenderLayer viewLayer ) { lock (viewLayers) { if (viewLayers.Contains(viewLayer)) { viewLayers.Remove( viewLayer ); return true; } } return false; }
/// <summary> /// /// </summary> public override void Initialize () { debugFont = Game.Content.Load<DiscTexture>("conchars"); var bounds = Game.RenderSystem.DisplayBounds; masterView = Game.RenderSystem.RenderWorld; Game.RenderSystem.RemoveLayer(masterView); viewLayer = new RenderLayer(Game); Game.RenderSystem.AddLayer(viewLayer); //Game.RenderSystem.DisplayBoundsChanged += (s,e) => { // masterView.Resize( Game.RenderSystem.DisplayBounds.Width, Game.RenderSystem.DisplayBounds.Height ); //}; targetTexture = new TargetTexture(Game.RenderSystem, bounds.Width, bounds.Height, TargetFormat.LowDynamicRange ); testLayer = new SpriteLayer( Game.RenderSystem, 1024 ); uiLayer = new SpriteLayer( Game.RenderSystem, 1024 ); tiles = new TilesGisLayer(Game, viewLayer.GlobeCamera); viewLayer.GisLayers.Add(tiles); text = new TextGisLayer(Game, 100, viewLayer.GlobeCamera); //masterView.GisLayers.Add(text); //masterView.SpriteLayers.Add( testLayer ); //masterView.SpriteLayers.Add( text.TextSpriteLayer ); viewLayer.SpriteLayers.Add(console.ConsoleSpriteLayer); text.GeoTextArray[0] = new TextGisLayer.GeoText { Color = Color.Red, Text = "Arrow", LonLat = DMathUtil.DegreesToRadians(new DVector2(30.306473, 59.944082)) }; text.GeoTextArray[1] = new TextGisLayer.GeoText { Color = Color.Teal, Text = "Park", LonLat = DMathUtil.DegreesToRadians(new DVector2(30.313897, 59.954623)) }; Game.Keyboard.KeyDown += Keyboard_KeyDown; LoadContent(); Game.Reloading += (s,e) => LoadContent(); var r = new Random(); //pointsCPU = new PointsGisLayerCPU(Game, 8000000); //pointsCPU.TextureAtlas = Game.Content.Load<Texture2D>("Zombie"); // //for (int i = 0; i < pointsCPU.PointsCountToDraw; i++) { // pointsCPU.AddPoint(i, DMathUtil.DegreesToRadians(new DVector2(30.240383 + r.NextDouble(-1, 1) * 0.1, 59.944007 - r.NextDouble(-1, 1) * 0.05)), 0, 0.01f); //} //pointsCPU.UpdatePointsBuffer(); //viewLayer.GisLayers.Add(pointsCPU); pointsGPU = new PointsGisLayer(Game, 1677000, true); pointsGPU.TextureAtlas = Game.Content.Load<Texture2D>("Zombie"); pointsGPU.ImageSizeInAtlas = new Vector2(36, 36); for (int i = 0; i < pointsGPU.PointsCountToDraw; i++) { var pos = DMathUtil.DegreesToRadians(new DVector2(30.240383 + r.NextDouble(-1, 1)*0.2, 59.944007 - r.NextDouble(-1, 1)*0.1)); pointsGPU.PointsCpu[i] = new Gis.GeoPoint { Lon = pos.X, Lat = pos.Y, Color = Color4.White, Tex0 = new Vector4(0, 0, 0.02f, 0) }; } pointsGPU.UpdatePointsBuffer(); viewLayer.GisLayers.Add(pointsGPU); viewLayer.GlobeCamera.GoToPlace(GlobeCamera.Places.SaintPetersburg_VO); viewLayer.GlobeCamera.CameraDistance = GeoHelper.EarthRadius + 5; }