Esempio n. 1
0
 public static void BindTextures()
 {
     try {
         ItemsTexture        = Renderer.BindTexture(CommonAse.Items.Texture);
         ProjectilesTexture  = Renderer.BindTexture(CommonAse.Projectiles.Texture);
         Assets.ImGuiEnabled = true;
     } catch (Exception e) {
     }
 }
Esempio n. 2
0
        protected override void LoadContentInternal(
            GraphicsDevice graphicsDevice,
            ContentManager contentManager,
            ImGuiRenderer imGuiRenderer)
        {
            Clear(imGuiRenderer);
            var landCount = _tileDataProvider.LandTable?.Length;

            for (var landIndex = 0; landIndex < landCount; ++landIndex)
            {
                var landTexture = _itemProvider.GetLand(graphicsDevice, landIndex);
                if (landTexture == null)
                {
                    continue;
                }

                var landData = _tileDataProvider.LandTable[landIndex];
                if (!string.IsNullOrEmpty(landData.Name))
                {
                    _landNameMap.Add(landIndex, landData.Name);
                }

                var textureHandle = imGuiRenderer.BindTexture((Texture2D)landTexture);
                _landTexturesMap.Add((Texture2D)landTexture, textureHandle);
                _landIdMap.Add(textureHandle, landIndex);
            }
        }
Esempio n. 3
0
        protected override void LoadContentInternal(
            GraphicsDevice graphicsDevice,
            ContentManager contentManager,
            ImGuiRenderer imGuiRenderer)
        {
            Clear(imGuiRenderer);
            var itemCount = _tileDataProvider.ItemTable?.Length;

            for (var itemIndex = 0; itemIndex < itemCount; ++itemIndex)
            {
                var itemTexture = _itemProvider.GetStatic(graphicsDevice, itemIndex);
                if (itemTexture == null)
                {
                    continue;
                }

                var itemData = _tileDataProvider.ItemTable[itemIndex];
                if (!string.IsNullOrEmpty(itemData.Name))
                {
                    _itemNameMap.Add(itemIndex, itemData.Name);
                }

                var textureHandle = imGuiRenderer.BindTexture(itemTexture);
                _itemTexturesMap.Add(itemTexture, textureHandle);
                _itemIdMap.Add(textureHandle, itemIndex);
            }
        }
Esempio n. 4
0
        public Image Load(Stream stream)
        {
            var tex2d   = Texture2D.FromStream(_graphicsDevice, stream);
            var pointer = _imGuiRenderer.BindTexture(tex2d);

            return(new Image(pointer, tex2d.Width, tex2d.Height));
        }
Esempio n. 5
0
        protected override void LoadContentInternal(
            GraphicsDevice graphicsDevice,
            ContentManager contentManager,
            ImGuiRenderer imGuiRenderer)
        {
            _splashScreenTexture   = contentManager.Load <Texture2D>("Content/splashscreen");
            _splashScreenTextureId = imGuiRenderer.BindTexture(_splashScreenTexture);

            base.LoadContentInternal(graphicsDevice, contentManager, imGuiRenderer);
        }
Esempio n. 6
0
        public void SetMask(IReadOnlyList <bool> mask, int rowCount, int columnCount)
        {
            if (_maskTexture != null)
            {
                _imGuiRenderer.UnbindTexture(_maskTexturePointer);
            }

            _maskTexture        = GenerateTextureForMask(mask, rowCount, columnCount);
            _maskTexturePointer = _imGuiRenderer.BindTexture(_maskTexture);
        }
Esempio n. 7
0
        public override void LoadContent()
        {
            _xnaTexture = CreateTexture(_game.GraphicsDevice, 300, 150, pixel =>
            {
                var red = (pixel % 300) / 2;
                return(new Color(red, 1, 1));
            });

            _imGuiTexture = _imGuiRenderer.BindTexture(_xnaTexture);

            base.LoadContent();
        }
Esempio n. 8
0
        public override void Draw(GameTime gameTime)
        {
            _graphicsDevice.SetRenderTarget(null);
            _graphicsDevice.Clear(ClearOptions.DepthBuffer, Color.White, 1, 0);

            _imGuiTexture[0] = _imGuiRenderer.BindTexture(ShaderManager.Instance.Color);
            _imGuiTexture[1] = _imGuiRenderer.BindTexture(ShaderManager.Instance.Depth);
            _imGuiTexture[2] = _imGuiRenderer.BindTexture(ShaderManager.Instance.LightInfo);
            _imGuiTexture[3] = _imGuiRenderer.BindTexture(ShaderManager.Instance.Normal);
            _imGuiTexture[4] = _imGuiRenderer.BindTexture(ShaderManager.Instance.Lights);
            _imGuiTexture[5] = _imGuiRenderer.BindTexture(ShaderManager.Instance.ShadowMap);
            _imGuiTexture[6] = _imGuiRenderer.BindTexture(ShaderManager.Instance.SSAO);

            var viewports = _viewportRenderSystem.GetViewports();

            _viewPortTextures = new IntPtr[viewports.Length];

            for (var i = 0; i < viewports.Length; i++)
            {
                _viewPortTextures[i] = _imGuiRenderer.BindTexture(viewports[i].GetViewport());
            }

            // Call BeforeLayout first to set things up
            _imGuiRenderer.BeforeLayout(gameTime);

            // Draw our UI
            ImGuiLayout();

            // Call AfterLayout now to finish up and draw all the things
            _imGuiRenderer.AfterLayout();

            _imGuiRenderer.UnbindTexture(_imGuiTexture[0]);
            _imGuiRenderer.UnbindTexture(_imGuiTexture[1]);
            _imGuiRenderer.UnbindTexture(_imGuiTexture[2]);
            _imGuiRenderer.UnbindTexture(_imGuiTexture[3]);
            _imGuiRenderer.UnbindTexture(_imGuiTexture[4]);
            _imGuiRenderer.UnbindTexture(_imGuiTexture[5]);
            _imGuiRenderer.UnbindTexture(_imGuiTexture[6]);

            for (var i = 0; i < viewports.Length; i++)
            {
                _imGuiRenderer.UnbindTexture(_viewPortTextures[i]);
            }
        }
Esempio n. 9
0
        protected override void LoadContent()
        {
            _grid       = new GridComponent(GraphicsDevice, 10);
            spriteBatch = new SpriteBatch(GraphicsDevice);

            // TODO: use this.Content to load your game content here
            _icon = Content.Load <Texture2D>("icon");
            // First, load the texture as a Texture2D (can also be done using the XNA/FNA content pipeline)
            _xnaTexture = Texture2D.FromStream(GraphicsDevice, GenerateImage(300, 150));

            // Then, bind it to an ImGui-friendly pointer, that we can use during regular ImGui.** calls (see below)
            _imGuiTexture = _imGuiRenderer.BindTexture(_xnaTexture);

            _cube = Content.Load <Model>("models/Cube_obj");
            //_cube = Content.Load<Model>("models/xbot");
            _cubeDiffuse    = Content.Load <Texture2D>("textures/Cube_diffuse");
            _specularEffect = Content.Load <Effect>("effects/Specular");

            //SetupAmbientEffect();
        }
Esempio n. 10
0
        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(backgroundColor);
            guiEngine.DrawGameComponentBeforeGUI();

            // TODO: Add your drawing code here
            imGuiRenderer.BeforeLayout(gameTime);

            app.Draw();

            imGuiRenderer.AfterLayout();

            spriteBatch.Begin();
            if (imageLoadQueue.Count != 0)
            {
                List <ImageSource> removeFromQueue = new List <ImageSource>();

                lock (imageLoadQueue)
                {
                    foreach (ImageSource image in imageLoadQueue)
                    {
                        image.Texture = imGuiRenderer.BindTexture((Texture2D)image.MGTexture);

                        removeFromQueue.Add(image);
                    }

                    foreach (ImageSource image in removeFromQueue)
                    {
                        imageLoadQueue.Remove(image);
                    }
                }
            }
            spriteBatch.End();

            guiEngine.DrawGameComponentAfterGUI();

            base.Draw(gameTime);
        }
Esempio n. 11
0
        private void ImGuiLayout()
        {
            if (_windowService.SettingsWindow.IsVisible)
            {
                _windowService.SettingsWindow.Show(0);
            }

            if (!_windowService.SettingsWindow.IsVisible)
            {
                // Menu
                if (ImGui.BeginMainMenuBar())
                {
                    if (ImGui.BeginMenu("Menu"))
                    {
                        //if( ImGui.MenuItem("New", "Ctrl+N", false, true) ) NewProjectWindow.IsVisible = !NewProjectWindow.IsVisible;
                        ImGui.EndMenu();
                    }

                    if (ImGui.BeginMenu("Options"))
                    {
                        if (ImGui.MenuItem("Settings", null, false, true))
                        {
                            _windowService.SettingsWindow.ToggleVisibility();
                        }
                        //ImGui.MenuItem("New", "Ctrl+N", true, show_test_window);
                        //ImGui.MenuItem("New", "Ctrl+N", true, show_test_window);
                        //ImGui.MenuItem("New", "Ctrl+N", true, show_test_window);
                        //ImGui.MenuItem("New", "Ctrl+N", true, show_test_window);
                        //ImGui.MenuItem("New", "Ctrl+N", true, show_test_window);
                        //ImGui.MenuItem("New", "Ctrl+N", true, show_test_window);

                        ImGui.EndMenu();
                    }

                    if (ImGui.BeginMenu("Help"))
                    {
                        if (ImGui.MenuItem("About", null, false, true))
                        {
                            _windowService.AboutWindow.ToggleVisibility();
                        }

                        //ImGui.MenuItem("New", "Ctrl+N", true, show_test_window);
                        //ImGui.MenuItem("New", "Ctrl+N", true, show_test_window);
                        //ImGui.MenuItem("New", "Ctrl+N", true, show_test_window);
                        ImGui.EndMenu();
                    }

                    if (ImGui.BeginMenu("View"))
                    {
                        if (ImGui.MenuItem("Info Box", null, _windowService.InfoOverlayWindow.IsVisible, true))
                        {
                            _windowService.InfoOverlayWindow.ToggleVisibility();
                        }

                        if (ImGui.MenuItem("Tools", null, _windowService.ToolsWindow.IsVisible, true))
                        {
                            _windowService.ToolsWindow.ToggleVisibility();
                        }

                        ImGui.EndMenu();
                    }

                    ImGui.EndMainMenuBar();
                }

                if (_windowService.DockSpaceWindow.IsVisible)
                {
                    _windowService.DockSpaceWindow.Show(MainDockspaceID);
                }

                if (_windowService.InfoOverlayWindow.IsVisible)
                {
                    _windowService.InfoOverlayWindow.Show(0);
                }

                if (_windowService.ToolsWindow.IsVisible)
                {
                    _windowService.ToolsWindow.Show(0);
                }

                if (_windowService.DebugWindow.IsVisible)
                {
                    _windowService.DebugWindow.Show(0);
                }

                if (_windowService.NewProjectWindow.IsVisible)
                {
                    _windowService.NewProjectWindow.Show(MainDockspaceID);
                }

                if (_windowService.AboutWindow.IsVisible)
                {
                    _windowService.AboutWindow.Show(MainDockspaceID);
                }
            }

            //##############################################################
            //##############################################################
            //TESTCASE CALLING TEST ARTWORKPROVIDER CLASS
            if (!_windowService.SettingsWindow.IsVisible)
            {
                if (ArtworkProvider.Length > 0)
                {
                    if (ImGui.Begin("GameWindow"))
                    {
                        ImGui.BeginChild("GameRender");


                        if (_testTexture == null)
                        {
                            var texture = ArtworkProvider.GetStatic(GraphicsDevice, 9);
                            _testTexture = texture;
                            var textureToRender = _imGuiRenderer.BindTexture(texture);
                            ImGui.Image(textureToRender, new Num.Vector2(44, 44));
                        }
                        else
                        {
                            var textureToRender = _imGuiRenderer.BindTexture(_testTexture);
                            ImGui.Image(textureToRender, new Num.Vector2(44, 44));
                        }


                        ImGui.EndChild();
                        ImGui.End();
                    }
                }
            }
            //##############################################################
            //##############################################################


            //if( ImGui.Begin("GameWindow") )
            //{
            //    // Using a Child allow to fill all the space of the window.
            //    // It also alows customization
            //    ImGui.BeginChild("GameRender");
            //    // Get the size of the child (i.e. the whole draw size of the windows).
            //    Num.Vector2 wsize = ImGui.GetWindowSize();
            //    // Because I use the texture from OpenGL, I need to invert the V from the UV.
            //    ImGui.Image(_imGuiTexture, wsize);
            //    ImGui.EndChild();
            //    ImGui.End();
            //}
        }
Esempio n. 12
0
        protected override void LoadContentInternal(GraphicsDevice graphicsDevice, ContentManager contentManager, ImGuiRenderer guiRenderer)
        {
            _mapControlLogin  = contentManager.Load <Texture2D>($"Content/Controls/control-login-{IconSize}");
            _mapControlLogout = contentManager.Load <Texture2D>($"Content/Controls/control-logout-{IconSize}");

            _mapToolTerrainElevate  = contentManager.Load <Texture2D>($"Content/Tools/terrain-elevate-{IconSize}");
            _mapToolTerrainLower    = contentManager.Load <Texture2D>($"Content/Tools/terrain-lower-{IconSize}");
            _mapToolTerrainAdd      = contentManager.Load <Texture2D>($"Content/Tools/terrain-add-{IconSize}");
            _mapToolTerrainSubtract = contentManager.Load <Texture2D>($"Content/Tools/terrain-subtract-{IconSize}");
            _mapToolTerrainCoast    = contentManager.Load <Texture2D>($"Content/Tools/terrain-coast-{IconSize}");
            _mapToolTerrainFlatten  = contentManager.Load <Texture2D>($"Content/Tools/terrain-flatten-{IconSize}");
            _mapToolTerrainPaint    = contentManager.Load <Texture2D>($"Content/Tools/terrain-paint-{IconSize}");
            _mapToolTerrainSmooth   = contentManager.Load <Texture2D>($"Content/Tools/terrain-smooth-{IconSize}");

            var mapControlLogin  = guiRenderer.BindTexture(_mapControlLogin);
            var mapControlLogout = guiRenderer.BindTexture(_mapControlLogout);

            var mapToolTerrainElevate  = guiRenderer.BindTexture(_mapToolTerrainElevate);
            var mapToolTerrainLower    = guiRenderer.BindTexture(_mapToolTerrainLower);
            var mapToolTerrainAdd      = guiRenderer.BindTexture(_mapToolTerrainAdd);
            var mapToolTerrainSubtract = guiRenderer.BindTexture(_mapToolTerrainSubtract);
            var mapToolTerrainCoast    = guiRenderer.BindTexture(_mapToolTerrainCoast);
            var mapToolTerrainFlatten  = guiRenderer.BindTexture(_mapToolTerrainFlatten);
            var mapToolTerrainPaint    = guiRenderer.BindTexture(_mapToolTerrainPaint);
            var mapToolTerrainSmooth   = guiRenderer.BindTexture(_mapToolTerrainSmooth);

            var loginToolDescription = new ToolDescription
            {
                Group         = ToolGroup.Control,
                Name          = "Login",
                TextureHandle = mapControlLogin,
                Size          = IconSize
            };

            loginToolDescription.Clicked += LoginClicked;

            var logoutToolDescription = new ToolDescription
            {
                Group = ToolGroup.Control,
                Name  = "Logout", TextureHandle = mapControlLogout,
                Size  = IconSize
            };

            logoutToolDescription.Clicked += LogoutClicked;

            _toolDescriptions = new[]
            {
                loginToolDescription,
                logoutToolDescription,
                new ToolDescription {
                    Group = ToolGroup.Selection, Name = "Elevate", TextureHandle = mapToolTerrainElevate, Size = IconSize
                },
                new ToolDescription {
                    Group = ToolGroup.Selection, Name = "Lower", TextureHandle = mapToolTerrainLower, Size = IconSize
                },
                new ToolDescription {
                    Group = ToolGroup.Selection, Name = "Add", TextureHandle = mapToolTerrainAdd, Size = IconSize
                },
                new ToolDescription {
                    Group = ToolGroup.Selection, Name = "Subtract", TextureHandle = mapToolTerrainSubtract, Size = IconSize
                },
                new ToolDescription {
                    Group = ToolGroup.Selection, Name = "Coast", TextureHandle = mapToolTerrainCoast, Size = IconSize
                },
                new ToolDescription {
                    Group = ToolGroup.Selection, Name = "Flatten", TextureHandle = mapToolTerrainFlatten, Size = IconSize
                },
                new ToolDescription {
                    Group = ToolGroup.Selection, Name = "Paint", TextureHandle = mapToolTerrainPaint, Size = IconSize
                },
                new ToolDescription {
                    Group = ToolGroup.Selection, Name = "Smooth", TextureHandle = mapToolTerrainSmooth, Size = IconSize
                }
            };
        }