/// <summary> /// Contains the shared constructor code /// </summary> /// <param name="target"></param> private Gui(RenderTarget target) { _renderer = new Gwen.Renderer.SFML(target); skin = new TexturedBase(_renderer, "DefaultSkin.png"); // load font. TODO: remove hardcoding using (var font = new Gwen.Font(_renderer, "OpenSans.ttf", 14)) { if (_renderer.LoadFont(font)) _renderer.FreeFont(font); else { font.FaceName = "Arial Unicode MS"; if (_renderer.LoadFont(font)) _renderer.FreeFont(font); else { font.FaceName = "Arial"; _renderer.LoadFont(font); } } skin.SetDefaultFont(font.FaceName, 14); } GuiCanvas = new Canvas(skin); GuiCanvas.SetSize((int)target.Size.X, (int)target.Size.Y); GuiCanvas.ShouldDrawBackground = false; GuiCanvas.BackgroundColor = System.Drawing.Color.Black; GuiCanvas.KeyboardInputEnabled = true; _input = new Gwen.Input.SFML(); _input.Initialize(GuiCanvas, target); }
public HUD(RenderWindow window, bool developerConsole) { window.KeyReleased += window_KeyReleased; window.MouseButtonPressed += window_MouseButtonPressed; window.MouseButtonReleased += window_MouseButtonReleased; window.MouseWheelMoved += window_MouseWheelMoved; window.MouseMoved += window_MouseMoved; window.TextEntered += window_TextEntered; gwenRenderer = new Gwen.Renderer.SFML(window); Gwen.Skin.TexturedBase skin = new Gwen.Skin.TexturedBase(gwenRenderer, "./assets/DefaultSkin.png"); defaultFont = new Gwen.Font(gwenRenderer) { Size = 10, FaceName = "./assets/OpenSanss.ttf" }; if (gwenRenderer.LoadFont(defaultFont)) { gwenRenderer.FreeFont(defaultFont); } else // try another { defaultFont.FaceName = "Arial"; if (gwenRenderer.LoadFont(defaultFont)) { gwenRenderer.FreeFont(defaultFont); } else // try default { defaultFont.FaceName = "./assets/OpenSans.ttf"; } } skin.SetDefaultFont(defaultFont.FaceName); defaultFont.Dispose(); // skin has its own _canvas = new Gwen.Control.Canvas(skin); _canvas.SetSize((int)window.Size.X, (int)window.Size.Y); _canvas.ShouldDrawBackground = false; _canvas.KeyboardInputEnabled = true; _input = new Gwen.Input.SFML(); _input.Initialize(_canvas, window); tabControl = new Gwen.Control.TabControl(_canvas); int tabcontrolheight = 150; tabControl.SetBounds(0, window.Size.Y - tabcontrolheight, window.Size.X, tabcontrolheight); //Fixes the cursor flickering //TODO: Is this cross platform? System.Windows.Forms.Cursor.Hide(); Inventory.Init(); if (developerConsole) { HUD.Console.Init(); } }