Beispiel #1
0
        //protected override void Update() {
        //    if (InputHandler.IsKeyReleased(Key.Keypad7))
        //        Dock = GUIDock.TopLeft;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad8))
        //        Dock = GUIDock.TopCenter;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad9))
        //        Dock = GUIDock.TopRight;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad4))
        //        Dock = GUIDock.LeftCenter;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad5))
        //        Dock = GUIDock.Centered;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad6))
        //        Dock = GUIDock.RightCenter;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad1))
        //        Dock = GUIDock.BottomLeft;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad2))
        //        Dock = GUIDock.BottomCenter;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad3))
        //        Dock = GUIDock.BottomRight;
        //    else if (InputHandler.IsKeyReleased(Key.Space))
        //        Log.WriteLine("tS" + bounds.ToString(), LogType.Debug);
        //}

        public override void Initialize(object[] parameters)
        {
            if (parameters.Length >= 1 && parameters[0] is string txt)
            {
                this.text = txt;
            }
            else
            {
                this.text = "<TEXT>";
            }

            if (this.text.Length == 0)
            {
                this.text   = " ";
                this.noText = true;
            }

            if (parameters.Length >= 2 && parameters[1] is ushort texHeight)
            {
                this.textureHeight = texHeight;
            }
            else
            {
                this.textureHeight = 128;
            }

            if (parameters.Length >= 3 && parameters[2] is FontFamily fnt)
            {
                this.font = fnt;
            }
            else
            {
                this.font = new FontFamily("Consolas");
            }

            if (parameters.Length >= 4 && parameters[3] is Color c)
            {
                this.color = c;
            }
            else
            {
                this.color = Color.WHITE;
            }

            if (parameters.Length >= 5 && parameters[4] is Rectangle r)
            {
                this.bounds = new Rectangle(r);
            }
            else
            {
                this.bounds = new Rectangle(0, 0, 1, 1);
            }
            this.bounds.OnChange += rectangle => RebuildMesh();

            IShader s;

            if (parameters.Length >= 6 && parameters[5] is IShader sh)
            {
                s = sh;
            }
            else
            {
                s = GraphicsHandler.CreateDefaultShader(1);
            }

            LoadFontAtlas();

            CreateRenderable(ResolveAttributes, AssignUniforms, s, BuildMesh());
        }