public Cursor(CursorResource res) { HotSpotX = res.HotSpotX; HotSpotY = res.HotSpotY; Texture = WWTexture.FromCursorResource(res); }
/** * {@inheritDoc} Overridden to set the expiration time of the placemark's icon based on the HTTP headers of the * linked resource. */ protected WWTexture initializeTexture(String address) { WWTexture texture = super.initializeTexture(address); if (texture != null) { // Query the KMLRoot for the expiration time. long expiration = this.parent.getRoot().getExpiration(address); // Set the Icon's expiration. This has no effect if the refreshMode is not onExpire. String mode = this.isHighlighted() ? KMLConstants.HIGHLIGHT : KMLConstants.NORMAL; KMLIconStyle iconStyle = (KMLIconStyle)this.parent.getSubStyle(new KMLIconStyle(null), mode); KMLIcon icon = iconStyle.getIcon(); if (icon != null) { icon.setExpirationTime(expiration); } if (this.isHighlighted()) { this.highlightIconRetrievalTime = System.currentTimeMillis(); } else { this.iconRetrievalTime = System.currentTimeMillis(); } } return(texture); }
public FramebufferTexture(WWTexture imageSource, Sector sector, List <LatLon> corners) { if (imageSource == null) { String message = Logging.getMessage("nullValue.ImageSource"); Logging.logger().severe(message); throw new ArgumentException(message); } if (sector == null) { String message = Logging.getMessage("nullValue.SectorIsNull"); Logging.logger().severe(message); throw new ArgumentException(message); } if (corners == null) { String message = Logging.getMessage("nullValue.LocationsListIsNull"); Logging.logger().severe(message); throw new ArgumentException(message); } this.sourceTexture = imageSource; this.sector = sector; this.corners = corners; this.tessellationDensity = DEFAULT_TESSELLATION_DENSITY; }
internal override void Draw() { base.Draw(); WWTexture background = null; if (isPressed) { background = backgroundClicked; } else { background = backgroundNotClicked; } if (background == null) { return; } Vector2 screenPos = ScreenPosition; Color col = Color.FromNonPremultiplied(new Vector4(Vector3.One, CompositeAlpha)); background.RenderOnScreen(screenPos.X, screenPos.Y, Width, Height, col); colText.Render(screenPos.X, screenPos.Y, (float)Width, (float)Height, font, TextAlignHorizontal.Center, col, Color.Yellow); }
public FBOTexture(WWTexture imageSource, Sector sector, List <LatLon> corners) { super(imageSource, sector, corners); this.width = 1024; this.height = 1024; }
internal IngameMenuWindow(Race setRace) { curRace = setRace; LevelGameScreen.Game.GamePaused = true; BackgroundColor = new Microsoft.Xna.Framework.Color(0.3f, 0.0f, 0.0f, 0.5f); //Width = background.Width; //Height = background.Height; UIResource res = WarFile.GetUIResource(setRace == Race.Humans ? 368 : 369); background = new UIImage(WWTexture.FromImageResource(WarFile.GetImageResource(res.BackgroundImageResourceIndex))); background.InitWithUIResource(res); AddComponent(background); background.X = 120; background.Y = 20; continueButton = (UIButton)background.Components [6]; continueButton.OnMouseUpInside += closeButton_OnMouseUpInside; quitButton = (UIButton)background.Components [5]; quitButton.OnMouseUpInside += quitButton_OnMouseUpInside; MouseCursor.State = MouseCursorState.Pointer; }
/// <summary> /// Create tile /// </summary> internal MapTile(byte[] data) { if (data.Length != 256 * 4) { throw new InvalidDataException("Wrong length of tile data array, must be 1024 bytes."); } averageColor = Color.Black; texture = WWTexture.FromRawData(16, 16, data); int avgR = 0; int avgG = 0; int avgB = 0; // Calc average color for (int i = 0; i < 256; i += 4) { avgR += data[i + 0]; avgG += data[i + 1]; avgB += data[i + 2]; } averageColor.R = (byte)(avgR / 64); averageColor.G = (byte)(avgG / 64); averageColor.B = (byte)(avgB / 64); averageColor.A = 255; } // Tile(data)
/// <summary> /// Render the Entity. /// </summary> /// <param name="offsetX">Offset x.</param> /// <param name="offsetY">Offset y.</param> /// <param name="tileOffsetX">Tile offset x.</param> /// <param name="tileOffsetY">Tile offset y.</param> /// <param name="TileWidth">Tile width.</param> /// <param name="TileHeight">Tile height.</param> public void Render(float offsetX, float offsetY, float tileOffsetX, float tileOffsetY) { if (sprite == null || CurrentMap == null) { return; } bool shouldFlipX = sprite.ShouldFlipX; RectangleF rect = GetTileRectangle(offsetX, offsetY, tileOffsetX, tileOffsetY); rect.Width = sprite.MaxWidth; rect.Height = sprite.MaxHeight; RectangleF tileRectangle = new RectangleF(0, 0, TileSizeX * CurrentMap.TileWidth, TileSizeY * CurrentMap.TileHeight); rect.X -= (rect.Width * 0.5f - tileRectangle.Width * 0.5f); rect.Y -= (rect.Height * 0.5f - tileRectangle.Height * 0.5f); if (sprite.CurrentFrame != null) { sprite.CurrentFrame.texture.RenderOnScreen(rect, shouldFlipX, false); } if (DebugOptions.ShowUnitFrames) { WWTexture.RenderRectangle(rect, Color.Blue); } }
private void AutoSetButtonImage(int releaseButtonResourceIndex, int pressedButtonResourceIndex) { backgroundNotClicked = WWTexture.FromImageResource(WarFile.GetImageResource(releaseButtonResourceIndex)); backgroundClicked = WWTexture.FromImageResource(WarFile.GetImageResource(pressedButtonResourceIndex)); Width = (int)(backgroundNotClicked.Width); Height = (int)(backgroundNotClicked.Height); }
} // Tile(data) /// <summary> /// Render /// </summary> internal void Render(float x, float y, float scale) { texture.RenderOnScreen(x * scale, y * scale, 16.0f * scale, 16.0f * scale); if (DebugOptions.ShowTiles) { WWTexture.RenderRectangle(new RectangleF(x * scale, y * scale, 16.0f * scale, 16.0f * scale), Color.Red); } } // Render(x, y)
internal UIImage(WWTexture setImage) { image = setImage; if (image != null) { Width = image.Width; Height = image.Height; } }
public override void Dispose() { if (minimapTex != null) { minimapTex.Dispose(); minimapTex = null; } base.Dispose(); }
internal override void Draw() { base.Draw(); if (CurrentMap != null) { CurrentMap.Render(this.X, this.Y, this.Width, this.Height, mapOffsetX, mapOffsetY); } // Render selection rectangle if (InputHandler.IsSpanningRectangle) { WWTexture.RenderRectangle(InputHandler.SelectionRectangle, new Color(0, 255, 0), 3); } }
internal override void InitUI() { base.InitUI(); MouseCursor.State = MouseCursorState.None; UIWindow wnd = new UIWindow(); img = new UIImage(WWTexture.FromImageResource("Background 'Blizzard'")); wnd.AddComponent(img); elapsedTime = 0; MainGame.SoundManager.PlaySound(472); }
internal override void InitUI() { elapsedTime = 0; MouseCursor.State = MouseCursorState.Pointer; backgroundWindow = new MenuBackgroundWindow(); mainMenuWindow = new MainMenuWindow(); textWindow = new UIWindow(); UIImage img = new UIImage(WWTexture.FromImageResource("Text 'WarCraft'")); textWindow.AddComponent(img); textWindow.Height = img.Height; }
internal override void Draw() { base.Draw(); if (Sprite == null) { return; } Vector2 screenPos = ScreenPosition; WWTexture image = Sprite.CurrentFrameTexture; if (image != null) { image.RenderOnScreen(screenPos.X, screenPos.Y, Width, Height); } }
internal IngameQuitMenuWindow(Race setRace) { UIResource res = WarFile.GetUIResource(setRace == Race.Humans ? 391 : 392); background = new UIImage(WWTexture.FromImageResource(WarFile.GetImageResource(res.BackgroundImageResourceIndex))); background.InitWithUIResource(res); AddComponent(background); background.CenterOnScreen(); cancelButton = (UIButton)background.Components [3]; cancelButton.OnMouseUpInside += cancelButton_OnMouseUpInside; menuButton = (UIButton)background.Components [2]; menuButton.OnMouseUpInside += menuButton_OnMouseUpInside; quitButton = (UIButton)background.Components [1]; quitButton.OnMouseUpInside += quitButton_OnMouseUpInside; MouseCursor.State = MouseCursorState.Pointer; }
private SpriteFrameData(SpriteResource resource) { MaxWidth = resource.MaxWidth; MaxHeight = resource.MaxHeight; Frames = new SpriteFrame[resource.FrameCount]; for (int i = 0; i < resource.FrameCount; i++) { Performance.Push("SetData"); WWTexture tex = WWTexture.FromRawData(resource.MaxWidth, resource.MaxHeight, resource.Frames[i].image_data); Performance.Pop(); Frames[i] = new SpriteFrame(); Frames[i].OffsetX = resource.Frames [i].disp_x; Frames[i].OffsetY = resource.Frames [i].disp_y; Frames[i].Width = resource.Frames [i].width; Frames[i].Height = resource.Frames [i].height; Performance.Push("FromDXTexture"); Frames[i].texture = tex; Performance.Pop(); } }
internal static UIImage FromImageResource(ImageResource resource) { UIImage res = new UIImage(WWTexture.FromImageResource(resource)); return(res); }
/// <summary> /// Render /// </summary> internal void Render(int setX, int setY, int setWidth, int setHeight, float tileOffsetX, float tileOffsetY) { // Render tiles if (tileOffsetX < 0.0f) { tileOffsetX = 0.0f; } if (tileOffsetY < 0.0f) { tileOffsetY = 0.0f; } int tilesToDrawX = (setWidth / TileWidth) + 1; int tilesToDrawY = (setHeight / TileHeight) + 1; int startTileX = ((int)tileOffsetX / TileWidth); int startTileY = ((int)tileOffsetY / TileHeight); if (tilesToDrawX + startTileX > MapWidth) { tilesToDrawX = MapWidth - startTileX; } if (tilesToDrawY + startTileY > MapHeight) { tilesToDrawY = MapHeight - startTileY; } //float innerTileOffsetX = (float)((int)(tileOffsetX * 100) % (TileWidth * 100)) / 100.0f; //float innerTileOffsetY = (float)((int)(tileOffsetY * 100) % (TileHeight * 100)) / 100.0f; int innerTileOffsetX = ((int)tileOffsetX % TileWidth); int innerTileOffsetY = ((int)tileOffsetY % TileHeight); //int count = 170; Performance.Push("Map rendering - Tiles"); RenderManager.StartBatch(); for (int y = 0; y < tilesToDrawY; y++) { for (int x = 0; x < tilesToDrawX; x++) { int index = levelVisual.visualData[(x + startTileX) + ((y + startTileY) * MapWidth)]; tileSet.DrawTile(index, setX + x * TileWidth - innerTileOffsetX, setY + y * TileHeight - innerTileOffsetY, 1.0f); if (DebugOptions.ShowBlockedTiles) { short passableValue = levelPassable.passableData[x + startTileX, y + startTileY]; bool isBlocked = passableValue > 0; if (isBlocked) { Color col = new Color(0.0f, 1.0f, 0.0f, 0.5f); if (passableValue == 128) { col = new Color(0.2f, 0.0f, 0.8f, 0.5f); } WWTexture.SingleWhite.RenderOnScreen(setX + x * TileWidth - innerTileOffsetX, setY + y * TileHeight - innerTileOffsetY, TileWidth, TileHeight, col); } } } } RenderManager.EndBatch(); Performance.Pop(); Performance.Push("Map rendering - Roads"); // Render Roads for (int i = 0; i < Roads.Count; i++) { bool isVisible = true; Construct road = Roads[i]; if (mapDiscoverState[road.X + road.Y * MapWidth] == MapDiscover.Unknown) { isVisible = false; } int x = road.X - startTileX; int y = road.Y - startTileY; if (isVisible) { tileSet.DrawRoadTile(road.Config, setX + x * TileWidth - innerTileOffsetX, setY + y * TileHeight - innerTileOffsetY, 1.0f); } } Performance.Pop(); Performance.Push("Map rendering - Entities"); // Render entities for (int i = 0; i < entities.Count; i++) { bool isVisible = true; Entity ent = entities[i]; if (isVisible) { ent.Render(setX, setY, tileOffsetX, tileOffsetY); } } Performance.Pop(); Performance.Push("Map rendering - Selected Entities"); // Render selected entities for (int i = 0; i < selectedEntities.Count; i++) { Entity selEnt = selectedEntities[i]; Color selCol = new Color(0, 255, 0); if (HumanPlayer.IsNeutralTowards(selEnt.Owner)) { selCol = new Color(255, 255, 0); } else if (HumanPlayer.IsHostileTowards(selEnt.Owner)) { selCol = new Color(255, 0, 0); } WWTexture.RenderRectangle(selEnt.GetTileRectangle(setX, setY, tileOffsetX, tileOffsetY), selCol, 3); } Performance.Pop(); Performance.Push("Map rendering - Undiscovered places"); RenderManager.StartBatch(BlendState.AlphaBlend); // Overlay undiscovered places + fog of war for (int y = 0; y < tilesToDrawY; y++) { for (int x = 0; x < tilesToDrawX; x++) { int pos = (x + startTileX) + ((y + startTileY) * MapWidth); if (mapDiscoverState[pos] == MapDiscover.Fog) { WWTexture.SingleWhite.RenderOnScreen(setX + x * TileWidth - innerTileOffsetX, setY + y * TileHeight - innerTileOffsetY, TileWidth, TileHeight, new Color(0.0f, 0.0f, 0.0f, 0.5f)); } else if (mapDiscoverState[pos] == MapDiscover.Unknown) { WWTexture.SingleWhite.RenderOnScreen(setX + x * TileWidth - innerTileOffsetX, setY + y * TileHeight - innerTileOffsetY, TileWidth, TileHeight, new Color(0.0f, 0.0f, 0.0f, 1.0f)); } } } RenderManager.EndBatch(); Performance.Pop(); }
internal MenuBackgroundWindow() { backgroundImage = WWTexture.FromImageResource("Mainmenu Background"); }
internal void Init() { minimapTex = WWTexture.FromRawData(Width, Height, null); }