/// <summary>
        /// Constructs a GLControlHost object, which handles the GLControl events and passes them to the other objects
        /// </summary>
        /// <param name="control"></param>
        /// <param name="state"></param>
        /// <param name="input"></param>
        /// <param name="renderer"></param>
        public GLControlHost(GLControl control,
                             EditorState state,
                             IEditorStateControl input,
                             IDiffusionRenderer renderer,
                             IRenderStateControl renderControl,
                             IDiffusionPathControl bufferControl)
        {
            this.glControl          = control;
            this.editorState        = state;
            this.editorStateControl = input;
            this.renderer           = renderer;
            this.renderControl      = renderControl;
            this.bufferControl      = bufferControl;

            renderer.PropertyChanged += renderer_PropertyChanged;
            glControl.Load           += glControl_Load;
            glControl.Load           += renderer.glControl_Load;
            glControl.Paint          += glControl_Paint;
            glControl.Resize         += glControl_Resize;
            glControl.MouseDown      += glControl_MouseDown;
            glControl.MouseUp        += glControl_MouseUp;
            glControl.MouseMove      += glControl_MouseMove;
            glControl.MouseWheel     += glControl_MouseWheel;
            glControl.KeyDown        += glControl_KeyDown;
            glControl.KeyUp          += glControl_KeyUp;
        }
        public void TestSetup()
        {
            state         = MockRepository.GenerateMock <EditorState>();
            projectState  = MockRepository.GenerateMock <ProjectState>();
            renderer      = MockRepository.GenerateStub <IDiffusionRenderer>();
            stateControl  = MockRepository.GenerateMock <IEditorStateControl>();
            glControl     = MockRepository.GenerateMock <GLControl>();
            renderControl = MockRepository.GenerateMock <IRenderStateControl>();
            bufferControl = MockRepository.GenerateMock <IDiffusionPathControl>();

            host = new GLControlHost(glControl, state, stateControl, renderer, renderControl, bufferControl);
        }