Exemple #1
0
        public DisplayManager(PresentationPanel presentationPanel, IGL gl, GLManager glManager)
        {
            GL = gl;
            this.presentationPanel = presentationPanel;
            GraphicsControl = this.presentationPanel.GraphicsControl;
            CR_GraphicsControl = glManager.GetContextForGraphicsControl(GraphicsControl);
            _glManager = glManager;

            //it's sort of important for these to be initialized to something nonzero
            currEmuWidth = currEmuHeight = 1;

            if (GL is BizHawk.Bizware.BizwareGL.Drivers.OpenTK.IGL_TK)
                Renderer = new GuiRenderer(GL);
            else if (GL is BizHawk.Bizware.BizwareGL.Drivers.SlimDX.IGL_SlimDX9)
                Renderer = new GuiRenderer(GL);
            else
                Renderer = new GDIPlusGuiRenderer((BizHawk.Bizware.BizwareGL.Drivers.GdiPlus.IGL_GdiPlus)GL);

            VideoTextureFrugalizer = new BizHawk.Client.EmuHawk.TextureFrugalizer(GL);

            ShaderChainFrugalizers = new RenderTargetFrugalizer[16]; //hacky hardcoded limit.. need some other way to manage these
            for (int i = 0; i < 16; i++)
            {
                ShaderChainFrugalizers[i] = new RenderTargetFrugalizer(GL);
            }

            RefreshUserShader();
        }
Exemple #2
0
        public GuiManager(Game game, IServiceProvider serviceProvider, InputManager inputManager, IGuiRenderer guiRenderer, IOptionsProvider optionsProvider)
        {
            Game             = game;
            ServiceProvider  = serviceProvider;
            InputManager     = inputManager;
            ScaledResolution = new GuiScaledResolution(game)
            {
                GuiScale = optionsProvider.AlexOptions.VideoOptions.GuiScale
            };
            ScaledResolution.ScaleChanged += ScaledResolutionOnScaleChanged;

            FocusManager = new GuiFocusHelper(this, InputManager, game.GraphicsDevice);

            GuiRenderer = guiRenderer;
            guiRenderer.ScaledResolution = ScaledResolution;
            SpriteBatch = new SpriteBatch(Game.GraphicsDevice);

            GuiSpriteBatch = new GuiSpriteBatch(guiRenderer, Game.GraphicsDevice, SpriteBatch);
            GuiRenderArgs  = new GuiRenderArgs(Game.GraphicsDevice, SpriteBatch, ScaledResolution, GuiRenderer, new GameTime());

            //  DebugHelper = new GuiDebugHelper(this);

            optionsProvider.AlexOptions.VideoOptions.GuiScale.Bind((value, newValue) =>
            {
                ScaledResolution.GuiScale = newValue;
            });
        }
Exemple #3
0
        protected override void Render(IGuiRenderer guiRenderer)
        {
            if (!string.IsNullOrEmpty(ImageName))
            {
                guiRenderer.Image(ImageName, Size, margin: Margin);

                var imageSize     = guiRenderer.GetImageSize(ImageName);
                var goodImageSize = IsGoodImageSize(imageSize);

                var textColour = goodImageSize ? Colours.White : Colours.Red;

                if (!goodImageSize)
                {
                    guiRenderer.Line(new Vector2(0, 0), new Vector2(Size.X, Size.Y), Colours.Red);
                    guiRenderer.Line(new Vector2(1, 1), new Vector2(Size.X + 1, Size.Y + 1), Colours.Red);
                    guiRenderer.Line(new Vector2(Size.X, 0), new Vector2(0, Size.Y), Colours.Red);
                    TooltipText = string.Format("Image is not a valid size ({0}, {1})", imageSize.X, imageSize.Y);
                }
                else
                {
                    TooltipText = string.Format("{2} ({0}, {1})", imageSize.X, imageSize.Y, ImageName);
                }

                guiRenderer.Text("Arial", 12, FriendlyName, textColour, new Vector2(0, Size.Y));
            }

            base.Render(guiRenderer);
        }
Exemple #4
0
        protected override void OnInit(IGuiRenderer renderer)
        {
            base.OnInit(renderer);

            InitMiniMap(Alex.Instance.GraphicsDevice);
            Background.Texture = (TextureSlice2D)_mapTexture;
        }
        public override void Draw(IGuiContext context, IGuiRenderer renderer, float deltaSeconds)
        {
            base.Draw(context, renderer, deltaSeconds);

            ScrollIntoView(context);
            DrawItemList(context, renderer);
        }
Exemple #6
0
        protected override void OnInit(IGuiRenderer renderer)
        {
            RenderTarget = new RenderTarget2D(Alex.Instance.GraphicsDevice, 32, 32, false, SurfaceFormat.Color, DepthFormat.None);


            base.OnInit(renderer);
        }
        public GuiSystem(ViewportAdapter viewportAdapter, IGuiRenderer renderer)
        {
            _viewportAdapter = viewportAdapter;
            _renderer        = renderer;

            _mouseListener                  = new MouseListener(viewportAdapter);
            _mouseListener.MouseMoved      += (s, e) => OnPointerMoved(GuiPointerEventArgs.FromMouseArgs(e));
            _mouseListener.MouseDown       += (s, e) => OnPointerDown(GuiPointerEventArgs.FromMouseArgs(e));
            _mouseListener.MouseUp         += (s, e) => OnPointerUp(GuiPointerEventArgs.FromMouseArgs(e));
            _mouseListener.MouseWheelMoved += (s, e) => _focusedControl?.OnScrolled(e.ScrollWheelDelta);

            _touchListener = new TouchListener(viewportAdapter);
            _touchListener.TouchStarted += (s, e) => OnPointerDown(GuiPointerEventArgs.FromTouchArgs(e));
            _touchListener.TouchMoved   += (s, e) => OnPointerMoved(GuiPointerEventArgs.FromTouchArgs(e));
            _touchListener.TouchEnded   += (s, e) => OnPointerUp(GuiPointerEventArgs.FromTouchArgs(e));

            _keyboardListener             = new KeyboardListener();
            _keyboardListener.KeyTyped   += (sender, args) => _focusedControl?.OnKeyTyped(this, args);
            _keyboardListener.KeyPressed += (sender, args) => _focusedControl?.OnKeyPressed(this, args);

            Screens = new GuiScreenCollection(this)
            {
                ItemAdded = InitializeScreen
            };
        }
Exemple #8
0
 protected override void OnInit(IGuiRenderer renderer)
 {
     base.OnInit(renderer);
     DisabledBackground.TryResolveTexture(renderer);
     HighlightedBackground.TryResolveTexture(renderer);
     FocusedBackground.TryResolveTexture(renderer);
 }
Exemple #9
0
        protected override void OnInit(IGuiRenderer renderer)
        {
            Alex.Services.GetRequiredService <IEventDispatcher>().RegisterEvents(_tipPopupComponent);

            _bottomContainer.AddChild(_tipPopupComponent);

            _healthContainer.AddChild(_healthComponent);
            _healthContainer.AddChild(_hungerComponent);

            _healthAndHotbar.AddChild(_healthContainer);

            _healthAndHotbar.AddChild(_hotbar);

            _bottomContainer.AddRow(
                container =>
            {
                //		        container.AutoSizeMode = AutoSizeMode.GrowAndShrink;
                container.Anchor      = Alignment.BottomCenter;
                container.ChildAnchor = Alignment.FillCenter;

                container.AddChild(_healthAndHotbar);
                //container.AddChild(_hotbar);
            });

            AddChild(_bottomContainer);

            AddChild(Chat);

            //AddChild(_hotbar);
            AddChild(new GuiCrosshair());
            AddChild(Title);

            AddChild(Scoreboard);
        }
Exemple #10
0
 protected virtual void DrawForeground(IGuiContext context, IGuiRenderer renderer, float deltaSeconds, TextInfo textInfo)
 {
     if (!string.IsNullOrWhiteSpace(textInfo.Text))
     {
         renderer.DrawText(textInfo.Font, textInfo.Text, textInfo.Position + TextOffset, textInfo.Color, textInfo.ClippingRectangle);
     }
 }
Exemple #11
0
 protected override void OnInit(IGuiRenderer renderer)
 {
     AddChild(_hotbar);
     AddChild(new GuiCrosshair());
     AddChild(Chat);
     AddChild(Title);
 }
        /// <summary>
        /// Draws the map tiles
        /// </summary>
        /// <param name="renderer">gui renderer</param>
        private void DrawMapTiles(IGuiRenderer renderer)
        {
            MapPosition centerPosition = this.viewModel.MapCenterPosition;

            for (int screenX = 0; screenX < this.sizeInTiles.X; screenX++)
            {
                for (int screenY = 0; screenY < this.sizeInTiles.Y; screenY++)
                {
                    int mapX     = screenX + centerPosition.X - (this.sizeInTiles.X / 2);
                    int mapY     = screenY + centerPosition.Y - (this.sizeInTiles.Y / 2);
                    var position = new MapPosition(mapX, mapY);

                    if (!this.viewModel.IsTileVisible(position))
                    {
                        continue;
                    }

                    TileInfo tileInfo = this.viewModel.GetTileInfo(position);
                    if (tileInfo != null)
                    {
                        this.DrawTile(renderer, tileInfo.TileIndex, screenX, screenY);
                    }
                }
            }
        }
Exemple #13
0
        protected override void DrawBackground(IGuiRenderer renderer, float deltaSeconds)
        {
            var boundingRectangle = BoundingRectangle;
            var checkRectangle    = new Rectangle(boundingRectangle.X, boundingRectangle.Y, BackgroundRegion.Width, BackgroundRegion.Height);

            renderer.DrawRegion(BackgroundRegion, checkRectangle, Color);
        }
Exemple #14
0
        // Renders a box
        internal static void renderBox(Control ctrl, ref Color c, ref Game game)
        {
            if(renderer== null)
                renderer=	new BasicGuiRenderer();

            renderer.renderBox(ref ctrl, ref c, ref game);
        }
Exemple #15
0
        protected override void DrawText(IGuiRenderer renderer, float deltaSeconds, TextInfo textInfo)
        {
            textInfo.Position = BoundingRectangle.Location.ToVector2() +
                                new Vector2(BackgroundRegion.Width + 5, BackgroundRegion.Height * 0.5f - textInfo.Font.LineHeight * 0.5f);

            base.DrawText(renderer, deltaSeconds, textInfo);
        }
Exemple #16
0
		public void RenderString(IGuiRenderer renderer, float x, float y, string str)
		{
			int len = str.Length;
			for (int i = 0; i < len; i++)
			{
				Cyotek.Drawing.BitmapFont.Character c;
				if (!FontInfo.Characters.TryGetValue(str[i], out c))
					c = FontInfo.Characters[unchecked((char)-1)];
				
				//calculate texcoords (we shouldve already had this cached, but im speedcoding now)
				Texture2d tex = TexturePages[c.TexturePage];
				float w = tex.Width;
				float h = tex.Height;
				float u0 = c.Bounds.Left / w;
				float v0 = c.Bounds.Top / h;
				float u1 = c.Bounds.Right / w;
				float v1 = c.Bounds.Bottom / h;

				float gx = x + c.Offset.X;
				float gy = y + c.Offset.Y;
				renderer.DrawSubrect(tex, gx, gy, c.Bounds.Width, c.Bounds.Height, u0, v0, u1, v1);

				x += c.XAdvance;
			}
		}
        public void RenderString(IGuiRenderer renderer, float x, float y, string str)
        {
            int len = str.Length;

            for (int i = 0; i < len; i++)
            {
                Cyotek.Drawing.BitmapFont.Character c;
                if (!FontInfo.Characters.TryGetValue(str[i], out c))
                {
                    c = FontInfo.Characters[unchecked ((char)-1)];
                }

                //calculate texcoords (we shouldve already had this cached, but im speedcoding now)
                Texture2d tex = TexturePages[c.TexturePage];
                float     w   = tex.Width;
                float     h   = tex.Height;
                float     u0  = c.Bounds.Left / w;
                float     v0  = c.Bounds.Top / h;
                float     u1  = c.Bounds.Right / w;
                float     v1  = c.Bounds.Bottom / h;

                float gx = x + c.Offset.X;
                float gy = y + c.Offset.Y;
                renderer.DrawSubrect(tex, gx, gy, c.Bounds.Width, c.Bounds.Height, u0, v0, u1, v1);

                x += c.XAdvance;
            }
        }
 protected override void DrawBackground(IGuiContext context, IGuiRenderer renderer, float deltaSeconds)
 {
     if (BackgroundRegion != null)
     {
         renderer.DrawRegion(BackgroundRegion, BoundingRectangle, Color);
     }
 }
Exemple #19
0
        public override void Draw(IGuiContext context, IGuiRenderer renderer, float deltaSeconds)
        {
            base.Draw(context, renderer, deltaSeconds);

            if (IsOpen)
            {
                var dropDownRectangle = GetListAreaRectangle(context);

                if (DropDownRegion != null)
                {
                    renderer.DrawRegion(DropDownRegion, dropDownRectangle, DropDownColor);
                }
                else
                {
                    renderer.FillRectangle(dropDownRectangle, DropDownColor);
                    renderer.DrawRectangle(dropDownRectangle, BorderColor);
                }

                DrawItemList(context, renderer);
            }

            var selectedTextInfo = GetItemTextInfo(context, ContentRectangle, SelectedItem);

            if (!string.IsNullOrWhiteSpace(selectedTextInfo.Text))
            {
                renderer.DrawText(selectedTextInfo.Font, selectedTextInfo.Text, selectedTextInfo.Position + TextOffset, selectedTextInfo.Color, selectedTextInfo.ClippingRectangle);
            }
        }
        protected override void DrawText(IGuiRenderer renderer, float deltaSeconds, TextInfo textInfo)
        {
            var caretRectangle = textInfo.Font.GetStringRectangle(Text.Substring(0, SelectionStart), textInfo.Position);

            // TODO: Finish the caret position stuff when it's outside the clipping rectangle
            if (caretRectangle.Right > ClippingRectangle.Right)
            {
                var textOffset = caretRectangle.Right - ClippingRectangle.Right;
                textInfo.Position.X -= textOffset;
            }

            caretRectangle.X     = caretRectangle.Right < ClippingRectangle.Right ? caretRectangle.Right : ClippingRectangle.Right;
            caretRectangle.Width = 1;

            base.DrawText(renderer, deltaSeconds, textInfo);

            if (IsFocused)
            {
                if (_isCaretVisible)
                {
                    renderer.DrawRectangle(caretRectangle, TextColor);
                }

                _nextCaretBlink -= deltaSeconds;

                if (_nextCaretBlink <= 0)
                {
                    _isCaretVisible = !_isCaretVisible;
                    _nextCaretBlink = _caretBlinkRate;
                }
            }
        }
Exemple #21
0
 protected override void Render(IGuiRenderer guiRenderer)
 {
     if (RenderBackground)
     {
         guiRenderer.NinePatch(Size, _ninePatchHandle, alpha: Alpha);
     }
     base.Render(guiRenderer);
 }
Exemple #22
0
        //public GuiElementRenderContext ActiveContext { get; private set; }

        public GuiRenderArgs(GraphicsDevice graphicsDevice, SpriteBatch spriteBatch, GuiScaledResolution scaledResolution, IGuiRenderer renderer, GameTime gameTime) : base(graphicsDevice)
        {
            Renderer         = renderer;
            Graphics         = graphicsDevice;
            SpriteBatch      = spriteBatch;
            GameTime         = gameTime;
            ScaledResolution = scaledResolution;
        }
Exemple #23
0
        public override void Draw(IGuiContext context, IGuiRenderer renderer, float deltaSeconds)
        {
            base.Draw(context, renderer, deltaSeconds);

            var control = Template;

            control?.Draw(context, renderer, deltaSeconds);
        }
Exemple #24
0
 protected override void Render(IGuiRenderer guiRenderer)
 {
     base.Render(guiRenderer);
     guiRenderer.Rectangle(
         Size,
         guiRenderer.ColourScheme.WindowBackground,
         guiRenderer.ColourScheme.ButtonSurround);
 }
Exemple #25
0
        protected override void DrawForeground(IGuiContext context, IGuiRenderer renderer, float deltaSeconds, TextInfo textInfo)
        {
            base.DrawForeground(context, renderer, deltaSeconds, textInfo);

            if (IconRegion != null)
            {
                renderer.DrawRegion(IconRegion, new Rectangle(BoundingRectangle.Location + _iconPosition + Offset.ToPoint(), IconRegion.Bounds.Size), IconColor);
            }
        }
Exemple #26
0
        protected override void DrawBackground(IGuiRenderer renderer, float deltaSeconds)
        {
            base.DrawBackground(renderer, deltaSeconds);

            var boundingRectangle = BoundingRectangle;
            var clippingRectangle = new Rectangle(boundingRectangle.X, boundingRectangle.Y, (int)(boundingRectangle.Width * Progress), boundingRectangle.Height);

            renderer.DrawRegion(BarRegion, BoundingRectangle, Color, clippingRectangle);
        }
Exemple #27
0
        public GuiSpriteBatch(IGuiRenderer renderer, GraphicsDevice graphicsDevice, SpriteBatch spriteBatch)
        {
            _renderer       = renderer;
            _graphicsDevice = graphicsDevice;
            SpriteBatch     = spriteBatch;
            Context         = GraphicsContext.CreateContext(_graphicsDevice, BlendState.AlphaBlend, DepthStencilState.None, RasterizerState.CullNone, SamplerState.PointClamp);

            Font             = _renderer.Font;
            ScaledResolution = _renderer.ScaledResolution;
        }
        /// <summary>
        /// Draws the tile map
        /// </summary>
        /// <param name="context">gui context</param>
        /// <param name="renderer">gui renderer</param>
        /// <param name="deltaSeconds">delta of seconds since last draw</param>
        public override void Draw(IGuiContext context, IGuiRenderer renderer, float deltaSeconds)
        {
            base.Draw(context, renderer, deltaSeconds);

            renderer.FillRectangle(this.ContentRectangle, this.BackgroundColor);

            this.DrawMapTiles(renderer);

            this.DrawPlayer(renderer);
        }
        /// <summary>
        /// Draws the message scroll view
        /// </summary>
        /// <param name="context">gui context</param>
        /// <param name="renderer">gui renderer</param>
        /// <param name="deltaSeconds">delta of seconds since last draw</param>
        public override void Draw(IGuiContext context, IGuiRenderer renderer, float deltaSeconds)
        {
            base.Draw(context, renderer, deltaSeconds);

            renderer.FillRectangle(this.ContentRectangle, this.BackgroundColor);

            IEnumerable <string> scrollLines = this.GetScrollLines();

            this.DrawTextLines(context, renderer, scrollLines);
        }
Exemple #30
0
        protected override void OnInit(IGuiRenderer renderer)
        {
            base.OnInit(renderer);

            Tip.Font   = renderer.Font;
            Popup.Font = renderer.Font;

            AddChild(Tip);
            AddChild(Popup);
        }
Exemple #31
0
        public bool TryResolveTexture(IGuiRenderer renderer)
        {
            if (!TextureResource.HasValue)
            {
                return(true);
            }

            Texture = renderer.GetTexture(TextureResource.Value);
            return(Texture != null);
        }
 protected override void OnInit(IGuiRenderer renderer)
 {
     base.OnInit(renderer);
     if (SavedServerEntry.CachedIcon != null)
     {
         ServerIcon          = SavedServerEntry.CachedIcon;
         _serverIcon.Texture = ServerIcon;
     }
     //   PingAsync();
 }
Exemple #33
0
        protected override void Render(IGuiRenderer guiRenderer)
        {
            if (IsMouseDown)
            {
                guiRenderer.Rectangle(
                    Size,
                    guiRenderer.ColourScheme.ButtonBackgroundClick,
                    guiRenderer.ColourScheme.ButtonSurroundClick
                    );
            }
            else
            {
                var backgroundColour =
                    guiRenderer.ColourScheme.ButtonBackground.Interpolate(
                        guiRenderer.ColourScheme.ButtonBackgroundHighlight, Highlight);

                var surroundColour =
                    guiRenderer.ColourScheme.ButtonSurround.Interpolate(
                        guiRenderer.ColourScheme.ButtonSurroundHighlight, Highlight);

                guiRenderer.Rectangle(
                    Size,
                    backgroundColour,
                    surroundColour
                    );
            }

            string textureName;

            if (IsMouseDown)
            {
                textureName = "guiskin_down.png";
            }
            else if (IsMouseOver)
            {
                textureName = "guiskin_sel.png";
            }
            else
            {
                textureName = null;
            }

            guiRenderer.NinePatch(Size, _ninePatchHandle, textureName);

            guiRenderer.Text(
                    Label,
                    Size / 2,
                    VerticalAlignment.Middle,
                    HorizontalAlignment.Centre);

            if (!string.IsNullOrEmpty(ImageName))
            {
                guiRenderer.Image(ImageName, Size);
            }
        }
Exemple #34
0
        protected override void Render(IGuiRenderer guiRenderer)
        {
            base.Render(guiRenderer);
            var verticalOffset = CalculateVerticalOffset();
            Color4? colour = null;

            if (!string.IsNullOrEmpty(Colour))
                colour = guiRenderer.ColourScheme.GetColour(Colour);

            _maxWidth = guiRenderer.Text(Text, verticalOffset, VerticalAlignment, fontFace: FontFace, fontSize: FontSize, colour:colour);
        }
        protected override void DrawForeground(IGuiContext context, IGuiRenderer renderer, float deltaSeconds, TextInfo textInfo)
        {
            var selectedTextInfo = GetItemTextInfo(context, ClippingRectangle, SelectedItem, ClippingRectangle);

            base.DrawForeground(context, renderer, deltaSeconds, selectedTextInfo);

            if (IsOpen)
            {
                DrawItemList(context, renderer);
            }
        }
        /// <summary>
        /// Draws player
        /// </summary>
        /// <param name="renderer">gui renderer</param>
        private void DrawPlayer(IGuiRenderer renderer)
        {
            int playerX = this.viewModel.PlayerPosition.X - this.viewModel.MapCenterPosition.X + (this.sizeInTiles.X / 2);
            int playerY = this.viewModel.PlayerPosition.Y - this.viewModel.MapCenterPosition.Y + (this.sizeInTiles.Y / 2);

            if (playerX >= 0 && playerX <= this.sizeInTiles.X &&
                playerY >= 0 && playerY <= this.sizeInTiles.Y)
            {
                this.DrawTilesetTile(renderer, this.viewModel.ObjectTileset, 0, playerX, playerY);
            }
        }
Exemple #37
0
        protected override void Render(IGuiRenderer guiRenderer)
        {
            base.Render(guiRenderer);

            var y = 0;
            foreach (var line in Value.Split('\n'))
            {
                guiRenderer.Text(line, new Vector2(0, y));
                y += LineHeight;
            }
        }
Exemple #38
0
        public GuiContext(IGuiRenderer guiRenderer)
        {
            {
                GuiElementMousePositionChecker guiElementMousePositionChecker = new GuiElementMousePositionChecker(guiElements);

                SelectionInteraction selectionInteraction = new SelectionInteraction(selectionTracker, guiElements);
                mouseInteraction = new GuiElementMouseInteraction(guiElementMousePositionChecker, selectionInteraction);
            }

            elementRenderer = new GuiElementRenderer(guiElements, guiRenderer);
        }
Exemple #39
0
        public DisplayManager(PresentationPanel presentationPanel)
        {
            GL = GlobalWin.GL;
            this.presentationPanel = presentationPanel;
            GraphicsControl = this.presentationPanel.GraphicsControl;
            CR_GraphicsControl = GlobalWin.GLManager.GetContextForGraphicsControl(GraphicsControl);

            //it's sort of important for these to be initialized to something nonzero
            currEmuWidth = currEmuHeight = 1;

            if (GL is BizHawk.Bizware.BizwareGL.Drivers.OpenTK.IGL_TK)
                Renderer = new GuiRenderer(GL);
            else if (GL is BizHawk.Bizware.BizwareGL.Drivers.SlimDX.IGL_SlimDX9)
                Renderer = new GuiRenderer(GL);
            else
                Renderer = new GDIPlusGuiRenderer((BizHawk.Bizware.BizwareGL.Drivers.GdiPlus.IGL_GdiPlus)GL);

            VideoTextureFrugalizer = new TextureFrugalizer(GL);

            ShaderChainFrugalizers = new RenderTargetFrugalizer[16]; //hacky hardcoded limit.. need some other way to manage these
            for (int i = 0; i < 16; i++)
            {
                ShaderChainFrugalizers[i] = new RenderTargetFrugalizer(GL);
            }

            using (var xml = typeof(Program).Assembly.GetManifestResourceStream("BizHawk.Client.EmuHawk.Resources.courier16px.fnt"))
            using (var tex = typeof(Program).Assembly.GetManifestResourceStream("BizHawk.Client.EmuHawk.Resources.courier16px_0.png"))
                TheOneFont = new StringRenderer(GL, xml, tex);

            if (GL is BizHawk.Bizware.BizwareGL.Drivers.OpenTK.IGL_TK)
            {
                var fiHq2x = new FileInfo(Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk/hq2x.cgp"));
                if (fiHq2x.Exists)
                    using (var stream = fiHq2x.OpenRead())
                        ShaderChain_hq2x = new Filters.RetroShaderChain(GL, new Filters.RetroShaderPreset(stream), Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk"));
                var fiScanlines = new FileInfo(Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk/BizScanlines.cgp"));
                if (fiScanlines.Exists)
                    using (var stream = fiScanlines.OpenRead())
                        ShaderChain_scanlines = new Filters.RetroShaderChain(GL, new Filters.RetroShaderPreset(stream), Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk"));
                var fiBicubic = new FileInfo(Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk/bicubic-fast.cgp"));
                if (fiBicubic.Exists)
                    using (var stream = fiBicubic.OpenRead())
                        ShaderChain_bicubic = new Filters.RetroShaderChain(GL, new Filters.RetroShaderPreset(stream), Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk"));
            }

            LuaSurfaceSets["emu"] = new SwappableDisplaySurfaceSet();
            LuaSurfaceSets["native"] = new SwappableDisplaySurfaceSet();
            LuaSurfaceFrugalizers["emu"] = new TextureFrugalizer(GL);
            LuaSurfaceFrugalizers["native"] = new TextureFrugalizer(GL);

            RefreshUserShader();
        }
Exemple #40
0
        protected override void Render(IGuiRenderer guiRenderer)
        {
            if (Border && guiRenderer.RenderMode == RenderMode.Normal)
            {
                guiRenderer.NinePatch(Size, _ninePatchHandle, alpha: Alpha);
            }

            if (!string.IsNullOrEmpty(ImageName))
            {
                guiRenderer.Image(ImageName, Size, margin: Margin);
            }

            base.Render(guiRenderer);
        }
Exemple #41
0
        protected override void Render(IGuiRenderer guiRenderer)
        {
            base.Render(guiRenderer);
            var positionScale = Value/(float)(MaximumValue - MinimumValue);

            guiRenderer.NinePatch(Size, _ninePatchHandle, "guiskin_down.png");

            var railSize = new Vector2(Size.X - (SliderMargin * 2), 4);
            guiRenderer.Image("slider_rail", railSize, new Vector2(SliderMargin, Size.Y / 2));

            var x = (int)((positionScale * (Size.X - (SliderMargin * 2)))) - (SliderWidth / 2);
            var y = (Size.Y / 2) - (SliderHeight / 2);
            guiRenderer.Image("slider", null, new Vector2(x + SliderMargin, y));
        }
Exemple #42
0
        protected override void Render(IGuiRenderer guiRenderer)
        {
            guiRenderer.Rectangle(
                new Vector2(0, 0),
                new Vector2(16, 16),
                guiRenderer.ColourScheme.ButtonBackground,
                guiRenderer.ColourScheme.ButtonSurround);

            if (Value)
            {
                guiRenderer.Line(new Vector2(0, 0), new Vector2(16, 16), guiRenderer.ColourScheme.ButtonSurround);
                guiRenderer.Line(new Vector2(16, 0), new Vector2(16, 0), guiRenderer.ColourScheme.ButtonSurround);
            }

            base.Render(guiRenderer);
        }
Exemple #43
0
        protected override void Render(IGuiRenderer guiRenderer)
        {
            base.Render(guiRenderer);

            var height = 0;
            var width = 0;

            if (Direction == TextListDirection.BottomUp)
            {
                var textY = Size.Y;

                for (var index = Items.Count - 1; index >= 0; index--)
                {
                    var row = Items[index];
                    textY -= row.FontSize;
                    height += row.FontSize;
                    var thisWidth = guiRenderer.Text(row.FontFace, row.FontSize, row.Text, row.Colour,
                        new Vector2(0, textY), horizontalAlignment: HorizontalAlignment.LeftAbsolute);
                    width = Math.Max(width, thisWidth);
                }
            }
            else
            {
                var textY = 0;
                foreach (var row in Items)
                {
                    var thisWidth = guiRenderer.Text(row.FontFace, row.FontSize, row.Text, row.Colour,
                        new Vector2(0, textY), horizontalAlignment: HorizontalAlignment.LeftAbsolute);
                    textY += row.FontSize;
                    height += row.FontSize;
                    width = Math.Max(width, thisWidth);
                }
            }

            if (ResizeParent)
            {
                Parent.Size = new Vector2(
                    width + (Parent.Margin.X * 2),
                    height + (Parent.Margin.Y * 2));
            }
        }
Exemple #44
0
        protected override void Render(IGuiRenderer guiRenderer)
        {
            base.Render(guiRenderer);

            var horizontalAlignment = Border ? HorizontalAlignment.LeftWithMargin : HorizontalAlignment.LeftAbsolute;

            if (Background)
            {
                guiRenderer.Rectangle(
                    Size,
                    guiRenderer.ColourScheme.ButtonSurround,
                    guiRenderer.ColourScheme.TextboxBackground, Border);
            }

            var textWidth = guiRenderer.Text(
                    Value,
                    new Vector2(0, Size.Y / 2), VerticalAlignment.Middle, horizontalAlignment);

                guiRenderer.Text(
                    (HasFocus ? CaretSymbol : ""),
                    new Vector2(textWidth, Size.Y / 2),
                    VerticalAlignment.Middle,
                    horizontalAlignment, CaretOpacity);
        }
Exemple #45
0
        protected override void Render(IGuiRenderer guiRenderer)
        {
            guiRenderer.NinePatch(Size, _ninePatchHandle);
            guiRenderer.NinePatch(new Vector2(Size.X, HeaderHeight), _ninePatchHandle);

            base.Render(guiRenderer);

            if (_selectedRowIndex != -1)
            {
                RenderRowBox(_selectedRowIndex, guiRenderer, guiRenderer.ColourScheme.ToggledButton);
            }
            if (_highlightedRowIndex != -1)
            {
                RenderRowBox(
                    _highlightedRowIndex,
                    guiRenderer,
                    guiRenderer
                        .ColourScheme
                        .ToggledButton
                        .MakeTransparent(_mouseOverFade));
            }

            RenderRowText(guiRenderer);
        }
Exemple #46
0
        private void RenderRowBox(int rowIndex, IGuiRenderer guiRenderer, Color4 colour)
        {
            if (rowIndex == -1)
                return;

            var pin = 4;

            var rowY = (rowIndex * RowHeight) + HeaderHeight;
            guiRenderer.Rectangle(
                new Vector2(pin, rowY),
                new Vector2(Size.X - pin, rowY + RowHeight),
                colour,
                colour,
                false);
        }
Exemple #47
0
 private void RenderRowText(IGuiRenderer guiRenderer)
 {
     var y = HeaderHeight; // accomodate for header.
     foreach (var row in Data)
     {
         var i = 0;
         var x = 0;
         foreach (var column in Columns)
         {
             guiRenderer.Text(row[i], new Vector2(x, y));
             i++;
             x += column.Width;
         }
         y += RowHeight;
     }
 }
Exemple #48
0
        protected override void Render(IGuiRenderer guiRenderer)
        {
            string textureName;

            if (Value && IsMouseOver)
            {
                textureName = "guiskin_sel_down.png";
            }
            else if (Value)
            {
                textureName = "guiskin_down.png";
            }
            else if (IsMouseOver)
            {
                textureName = "guiskin_sel.png";
            }
            else
            {
                textureName = null;
            }

            guiRenderer.NinePatch(Size, _ninePatchHandle, textureName);

            guiRenderer.Text(
                    Label,
                    Size / 2,
                    VerticalAlignment.Middle,
                    HorizontalAlignment.Centre);

            if (!string.IsNullOrEmpty(ImageName))
            {
                guiRenderer.Image(ImageName, Size);
            }
        }
Exemple #49
0
            protected override void Render(IGuiRenderer guiRenderer)
            {
                base.Render(guiRenderer);

                var y = 0;

                foreach (var item in Items.IndexOver())
                {
                    var buttonBackground = _hoverRowIndex == item.Index ? Colours.LightBlue : guiRenderer.ColourScheme.ButtonBackground;
                    guiRenderer.Rectangle(
                        new Vector2(0, y),
                        new Vector2(Size.X, y + RowHeight),
                        guiRenderer.ColourScheme.ButtonSurround,
                        buttonBackground);

                    guiRenderer.Text(
                        "Arial",
                        RowHeight - 1,
                        item.Value.Text,
                        guiRenderer.ColourScheme.TextColour,
                        new Vector2(0, y));

                    y += RowHeight;
                }
            }
Exemple #50
0
        protected override void Render(IGuiRenderer guiRenderer)
        {
            base.Render(guiRenderer);

            guiRenderer.Rectangle(
                Size,
                guiRenderer.ColourScheme.TextboxBackground,
                guiRenderer.ColourScheme.ButtonSurround);

            guiRenderer.Text(
                    SelectedItemText,
                    new Vector2(0, Size.Y / 2),
                    VerticalAlignment.Middle,
                    HorizontalAlignment.LeftAbsolute);
        }
Exemple #51
0
 protected override void Render(IGuiRenderer guiRenderer)
 {
     guiRenderer.Desktop(this);
 }