public void Initialize(IRenderer renderer, IModel model, IControlPanel panel, Form mainWindow, UserControl viewportWindow) { m_renderer = renderer; m_model = model; m_panel = panel; m_model.ActionMapAssigned += OnModelActionMapAssigned; m_renderer.Model = m_model; m_panel.ActionTriggered += OnAction; mainWindow.Move += (_,__) => m_model.Input(string.Format("move {0} {1} {2} {3}", mainWindow.Left, mainWindow.Top , viewportWindow.Width, viewportWindow.Height)); mainWindow.Resize += (_,__) => m_renderer.ChangeViewport(viewportWindow.Width, viewportWindow.Height); viewportWindow.Load += (_, __) => m_renderer.Start(); viewportWindow.HandleDestroyed += (_, __) => m_renderer.Stop(); //HACK: window movement as input for BOUNCE m_model.Input(string.Format("move init {0} {1}", mainWindow.Left, mainWindow.Top)); // init viewport size m_renderer.ChangeViewport(viewportWindow.Width, viewportWindow.Height); }