예제 #1
0
        /// <summary>
        /// Disposes the control
        /// </summary>
        /// <param name="disposing">If true, disposes of managed resources</param>
        protected override void Dispose(bool disposing)
        {
            if (!DesignMode && disposing)
            {
                // Stop the redraw timer
                _redrawTimer.Stop();
                _redrawTimer.Dispose();

                // Dispose the RenderWindow
                if (_rw != null)
                {
                    try
                    {
                        _rw.Dispose();
                    }
                    catch (Exception ex)
                    {
                        const string errmsg = "Failed to dispose RenderWindow: {0}";
                        if (log.IsWarnEnabled)
                        {
                            log.WarnFormat(errmsg, ex);
                        }
                        Debug.Fail(string.Format(errmsg, ex));
                    }
                }

                _rw = null;
            }

            base.Dispose(disposing);
        }
예제 #2
0
        public void ResetWindow()
        {
            // Close the old window
            window.Close();
            window.Dispose();
            window = null;

            // Reset canvas
            Canvas.Clear();
            Canvas = null;

            // Load new one
            LoadWindow();
        }
예제 #3
0
파일: Graphics.cs 프로젝트: Kukks/CryBits
    private static void Editor_Maps_Tile()
    {
        Editor_Maps Objects = Editor_Maps.Objects;

        // Somente se necessário
        if (!Objects.Visible || !Editor_Maps.Objects.butMNormal.Checked)
        {
            return;
        }

        // Reinicia o dispositivo caso haja alguma alteração no tamanho da tela
        if (new Size((int)Win_Map_Tile.Size.X, (int)Win_Map_Tile.Size.Y) != Objects.picTile.Size)
        {
            Win_Map_Tile.Dispose();
            Win_Map_Tile = new RenderWindow(Editor_Maps.Objects.picTile.Handle);
        }

        // Limpa a área com um fundo preto
        Win_Map_Tile.Clear(SFML.Graphics.Color.Black);

        // Dados
        Texture Texture  = Tex_Tile[Objects.cmbTiles.SelectedIndex + 1];
        Size    Size     = TSize(Texture);
        Point   Position = new Point(Objects.scrlTileX.Value, Objects.scrlTileY.Value);

        // Desenha o azulejo e as grades
        Transparent(Win_Map_Tile);
        Render(Win_Map_Tile, Texture, new Rectangle(Position, Size), new Rectangle(new Point(0), Size));
        RenderRectangle(Win_Map_Tile, new Rectangle(new Point(Editor_Maps.Tile_Source.X - Position.X, Editor_Maps.Tile_Source.Y - Position.Y), Editor_Maps.Tile_Source.Size), CColor(165, 42, 42, 250));
        RenderRectangle(Win_Map_Tile, Editor_Maps.Tile_Mouse.X, Editor_Maps.Tile_Mouse.Y, Globals.Grid, Globals.Grid, CColor(65, 105, 225, 250));

        // Exibe o que foi renderizado
        Win_Map_Tile.Display();
    }
예제 #4
0
        public void Dispose()
        {
            if (audio != null)
            {
                audio.Dispose();
                audio = null;
            }

            if (renderer != null)
            {
                renderer.Dispose();
                renderer = null;
            }

            if (resource != null)
            {
                resource.Dispose();
                resource = null;
            }

            if (window != null)
            {
                window.Dispose();
                window = null;
            }
        }
예제 #5
0
    public static void Editor_Mapas_Azulejo()
    {
        Editor_Mapas Objetos = Editor_Mapas.Objetos;

        // Somente se necessário
        if (!Objetos.Visible || !Editor_Mapas.Objetos.butMNormal.Checked)
        {
            return;
        }

        // Reinicia o dispositivo caso haja alguma alteração no tamanho da tela
        if (new Size((int)Jan_Mapa_Azulejo.Size.X, (int)Jan_Mapa_Azulejo.Size.Y) != Objetos.picAzulejo.Size)
        {
            Jan_Mapa_Azulejo.Dispose();
            Jan_Mapa_Azulejo = new RenderWindow(Editor_Mapas.Objetos.picAzulejo.Handle);
        }

        // Limpa a área com um fundo preto
        Jan_Mapa_Azulejo.Clear(SFML.Graphics.Color.Black);

        // Dados
        Texture Textura     = Tex_Azulejo[Objetos.cmbAzulejos.SelectedIndex + 1];
        Size    Tamanho     = TTamanho(Textura);
        Point   Localização = new Point(Objetos.scrlAzulejoX.Value, Objetos.scrlAzulejoY.Value);

        // Desenha o azulejo e as grades
        Transparente(Jan_Mapa_Azulejo);
        Desenhar(Jan_Mapa_Azulejo, Textura, new Rectangle(Localização, Tamanho), new Rectangle(new Point(0), Tamanho));
        DesenharRetângulo(Jan_Mapa_Azulejo, new Rectangle(new Point(Editor_Mapas.Azulejo_Fonte.X - Localização.X, Editor_Mapas.Azulejo_Fonte.Y - Localização.Y), Editor_Mapas.Azulejo_Fonte.Size), CCor(165, 42, 42, 250));
        DesenharRetângulo(Jan_Mapa_Azulejo, Editor_Mapas.Azulejos_Mouse.X, Editor_Mapas.Azulejos_Mouse.Y, Globais.Grade, Globais.Grade, CCor(65, 105, 225, 250));

        // Exibe o que foi renderizado
        Jan_Mapa_Azulejo.Display();
    }
예제 #6
0
        private void Dispose(bool disposeManaged)
        {
            if (m_disposed || !m_initialized)
            {
                return;
            }

            if (disposeManaged)
            {
                m_track.Dispose();
                m_population.Dispose();

                m_overviewView.Dispose();
                m_overviewWindow.Dispose();

                m_drawingView.Dispose();
                m_drawingWindow.Dispose();

                m_window.Dispose();

                if (m_luaState != null)
                {
                    m_luaState.Dispose();
                }
            }

            m_disposed = true;
        }
        public void Run()
        {
            PlainCoreSettings.GlfwSearchPath = Path.GetFullPath("../../../../../Native/");

            window = new RenderWindow();

            Setup();

            while (window.IsOpen)
            {
                window.PollEvents();

                window.Clear(Color4.Red);

                Draw();

                window.Display();
            }

            vab.Dispose();
            vao.Dispose();
            pipeline.Dispose();
            renderTexture.Dispose();
            spriteRenderer.Dispose();
            spriteDisplayList.Dispose();
            window.Dispose();
        }
예제 #8
0
        static void Main(string[] args)
        {
            SFML.Portable.Activate();

            var win = new RenderWindow(VideoMode.DesktopMode, "Test SFML");

            win.Size = new Vector2u(600, 400);
            Gui gui = new Gui(win);

            EditBox editBoxUsername = new EditBox();

            editBoxUsername.Position    = new Vector2f(600 / 6, 400 / 6);
            editBoxUsername.Size        = new Vector2f(600 * 2 / 3, 400 / 8);
            editBoxUsername.DefaultText = "Username";
            gui.Add(editBoxUsername);

            while (win.IsOpen)
            {
                win.DispatchEvents();
                win.Clear(Color.Blue);
                gui.Draw();
                win.Display();
            }

            win.Close();
            win.Dispose();

            Console.WriteLine("Hello World!");
        }
예제 #9
0
 protected virtual void Dispose(bool disposing)
 {
     if (disposing)
     {
         _window.Dispose();
     }
 }
예제 #10
0
 public virtual void Dispose()
 {
     if (engine != null)
     {
         // remove event handlers
         engine.FrameStarted -= OnFrameStarted;
         //	engine.FrameEnded -= OnFrameEnded;
     }
     if (scene != null)
     {
         scene.RemoveAllCameras();
     }
     camera = null;
     if (Root.Instance != null)
     {
         Root.Instance.RenderSystem.DetachRenderTarget(window);
     }
     if (window != null)
     {
         window.Dispose();
     }
     if (engine != null)
     {
         engine.Dispose();
     }
 }
        public void Shutdown()
        {
            if (m_root == null)
            {
                return;
            }
            try
            {
                m_root.SuspendRendering = true;
                m_root.DetachRenderTarget(m_renderWindow);
                m_renderWindow.Dispose();
                m_root.Dispose();
                if (numCameras >= 1)
                {
                    m_camLeft.Device.Stop();
                    m_camLeft.Device.Destroy();
                }
                if (numCameras == 2)
                {
                    m_camRight.Device.Stop();
                    m_camRight.Device.Destroy();
                }

                // If shutting down while recording
                // it saves the capture
                if (m_record)
                {
                    SaveCapture();
                }
            }
            catch (Exception e)
            {
                // do nothing in case stop rendering
            }
        }
예제 #12
0
        protected void dispose(bool disposeManagedResources)
        {
            if (!IsDisposed)
            {
                if (disposeManagedResources)
                {
                    if (root != null)
                    {
                        root.FrameStarted -= RootFrameRenderingQueued;
                    }
                    if (sceneManager != null)
                    {
                        sceneManager.RemoveAllCameras();
                    }
                    camera = null;
                    if (Root.Instance != null)
                    {
                        Root.Instance.RenderSystem.DetachRenderTarget(window);
                    }
                    if (window != null)
                    {
                        WindowEventMonitor.Instance.UnregisterWindow(window);
                        window.Dispose();
                    }
                    if (root != null)
                    {
                        root.Dispose();
                    }
                }

                // There are no unmanaged resources to release, but
                // if we add them, they need to be released here.
            }
            IsDisposed = true;
        }
예제 #13
0
        private void frmMain_Load(object sender, EventArgs e)
        {
            txtFile.Text       = Application.StartupPath + Path.DirectorySeparatorChar + "input" + Path.DirectorySeparatorChar;
            txtOutputPath.Text = Application.StartupPath + Path.DirectorySeparatorChar + "output" + Path.DirectorySeparatorChar;

            Console.WriteLine("Initializing preview window render thread...");
            RenderThread = new Thread(() =>
            {
                Console.WriteLine("Initializing SFML preview window...");
                Render = new RenderWindow(new VideoMode((uint)Size.Width, (uint)Size.Height), "Crestelia - Preview", Styles.Titlebar)
                {
                    Position = new Vector2i(Location.X + Size.Width, Location.Y)
                };

                Sprite sprite = new Sprite();

                Console.WriteLine("Rendering SFML preview window...");
                while (Render != null && Render.IsOpen && !IsClosed)
                {
                    Render.Position = new Vector2i(Location.X + Size.Width - 12, Location.Y);
                    Render.Clear(Color.Black);

                    if (Resource != null && Resource.Texture != null && Resource.Image != null)
                    {
                        try
                        {
                            var cols = ((int)numericX.Value >= 1) ? (int)numericX.Value : 1;
                            var rows = ((int)numericY.Value >= 1) ? (int)numericY.Value : 1;

                            sprite.Texture     = Resource.Texture;
                            sprite.TextureRect = new IntRect(0, 0,
                                                             (int)Resource.Image.Size.X / cols,
                                                             (int)Resource.Image.Size.Y / rows);
                            sprite.Position = new Vector2f(0, 0);

                            Render.Draw(sprite);
                        }
                        catch
                        {
                        }
                    }

                    Render.Display();
                    Render.DispatchEvents();

                    Application.DoEvents();
                }

                sprite?.Dispose();
                sprite = null;

                Console.WriteLine("Disposing SFML preview window...");
                Render.Dispose();
                Render = null;
            });

            Console.WriteLine("Starting preview window render thread...");
            RenderThread.Start();
        }
예제 #14
0
파일: Emu.cs 프로젝트: SirGouki/chip8
        //events

        private void Close(Object sender, EventArgs e)
        {
            SystemMsg("Graphical window exited, terminating.");
            window.Close();
            window.Dispose();
            ramViewWin.Dispose(); //this is done here because we are closing the program.
            Environment.Exit(0);
        }
예제 #15
0
 public new void Dispose()
 {
     if (RenderWindow != null)
     {
         RenderWindow.Dispose();
     }
     base.Dispose();
 }
예제 #16
0
 public override void Dispose()
 {
     if (_surface != null)
     {
         _surface.Dispose();
         _surface = null;
     }
     base.Dispose();
 }
예제 #17
0
 public void Dispose()
 {
     foreach (var x in images)
     {
         x.Value.Dispose();
     }
     images.Clear();
     window.Dispose();
 }
예제 #18
0
 protected override void Dispose(bool disposing)
 {
     if (_surface != null)
     {
         _surface.Dispose();
         _surface = null;
     }
     base.Dispose(disposing);
 }
예제 #19
0
파일: MogreRenderer.cs 프로젝트: ext0/Flex
        public void Shutdown()
        {
            _renderWindow.Destroy();
            _renderWindow.Dispose();
            _renderWindow = null;

            _root.Shutdown();
            //Commented out to prevent a crash.
            //Root.Dispose();
            //Root = null;
        }
예제 #20
0
파일: Game.cs 프로젝트: ElijahZAwesome/Iris
        internal void ResetWindow()
        {
            if (RenderWindow != null)
            {
                DisconnectWindowEvents();

                RenderWindow.Close();
                RenderWindow.Dispose();
            }

            InitializeRenderingSystem();
        }
예제 #21
0
        public void SetSize(int width, int height)
        {
            this.width  = width;
            this.height = height;

            if (window != null)
            {
                window.Dispose();
            }

            createWindow();
        }
        private void CreateWindow()
        {
            UnsubscribeFromEvents();
            var baseStyle = Styles.None;
            var style     = _isFullScreen ? baseStyle | Styles.Fullscreen : baseStyle;

            _window?.SetVisible(false);
            _window?.Dispose();
            _window = null;
            _window = new RenderWindow(VideoMode.DesktopMode, "FSIV", style);
            SubscribeToEvents();
        }
예제 #23
0
        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    _gameWindow.Dispose();
                }

                disposedValue = true;
            }
        }
예제 #24
0
        //!!!!new: public
        public void DestroyRenderTarget()
        {
            if (renderWindow != null)
            {
                ViewportDestroyed?.Invoke(this);

                renderWindow.Dispose();
                viewport     = null;
                renderWindow = null;

                ////!!!!new
                //needCreateRenderWindow = true;
            }
        }
예제 #25
0
        private void CreateRenderWindow()
        {
            if (_renderWindow != null)
            {
                _renderWindow.SetActive(false);
                _renderWindow.Dispose();
            }

            var context = new ContextSettings {
                DepthBits = 24
            };

            _renderWindow = new RenderWindow(DrawSurface.Handle, context);
            _renderWindow.SetActive(true);
        }
예제 #26
0
파일: Game.cs 프로젝트: ElijahZAwesome/Iris
        protected virtual void Dispose(bool disposing)
        {
            if (!Disposed)
            {
                if (disposing)
                {
                    DisconnectWindowEvents();
                }

                RenderWindow.Dispose();
                DeltaClock.Dispose();

                Disposed = true;
            }
        }
예제 #27
0
        public void Run()
        {
            PlainCoreSettings.GlfwSearchPath = Path.GetFullPath("../../../../../Native/");
            var window = new RenderWindow();

            var rs       = new TextureResourceSet(window);
            var t        = Texture.FromFile("Example.png");
            var renderer = new SpriteRenderer();
            var dl       = DynamicDisplayList <VertexPositionColorTexture> .Create(renderer);

            var sprites     = new List <SpriteRenderItem>();
            var description = FontGenerator.GenerateFont("OpenSans-Regular.ttf", 40);
            var font        = new Font(description);

            sprites.Add(SpriteDrawer.Draw(t, Color4.White, 0f, 0f));
            sprites.Add(SpriteDrawer.Draw(t, Color4.White, 100f, 100f));
            sprites.Add(SpriteDrawer.Draw(t, Color4.White, 200f, 200f));
            sprites.Add(SpriteDrawer.Draw(t, Color4.White, 400f, 400f));
            var glyphs = font.DrawString("ASDF", 500f, 400f);

            sprites.AddRange(glyphs);
            var indices = SpriteRenderer.GetIndices(sprites.Count);

            renderer.SetRenderItems(sprites.ToArray());

            while (window.IsOpen)
            {
                window.Clear(Color4.Black);

                window.PollEvents();

                renderer.RenderToData((vertices, count, tex) =>
                {
                    dl.SetVertices(vertices);
                    dl.SetIndices(indices, count);
                    rs.Texture = tex;
                    dl.Draw(rs, count);
                });

                window.Display();
            }

            dl.Dispose();
            font.Dispose();
            renderer.Dispose();
            window.Dispose();
        }
예제 #28
0
        public virtual void Dispose()
        {
            if (Root != null)
            {
                // remove event handlers
                Root.FrameStarted -= new EventHandler <FrameEventArgs>(OnFrameStarted);
                Root.FrameEnded   -= new EventHandler <FrameEventArgs>(OnFrameEnded);

                //engine.Dispose();
            }
            m_sceneManager.RemoveAllCameras();
            m_sceneManager.RemoveCamera(Camera);
            Camera = null;
            Root.Instance.RenderSystem.DetachRenderTarget(Window);
            Window.Dispose();

            Root.Dispose();
        }
예제 #29
0
        public void Dispose()
        {
            if (engine != null)
            {
                // remove event handlers
                engine.FrameStarted -= new FrameEvent(OnFrameStarted);
                engine.FrameEnded   -= new FrameEvent(OnFrameEnded);

                //engine.Dispose();
            }
            scene.RemoveAllCameras();
            scene.RemoveCamera(camera);
            camera = null;
            Root.Instance.RenderSystem.DetachRenderTarget(window);
            window.Dispose();

            engine.Dispose();
        }
예제 #30
0
        /// <summary>
        /// Window has closed
        /// </summary>
        /// <param name="window">RenderWindow that caused the event</param>
        public void WindowClosed(RenderWindow window)
        {
            Contract.RequiresNotNull(window, "window");

            if (this._windows.Contains(window))
            {
                // Notify listeners of close
                foreach (var listener in this._listeners[window])
                {
                    listener.WindowClosed(window);
                }

                // Notify Window of closure
                window.Dispose();

                return;
            }
        }