/// <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;
        }
Exemple #2
0
 public DiffusionExport(IDiffusionRenderer renderer, RenderState renderState, RenderStateControl renderControl,
                        DiffusionPathControl pathControl, DiffusionBuffers buffers, FramesContainer framesContainer)
 {
     this.renderState     = renderState;
     this.buffers         = buffers;
     this.renderControl   = renderControl;
     this.renderer        = renderer;
     this.pathControl     = pathControl;
     this.framesContainer = framesContainer;
 }
        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);
        }
Exemple #4
0
        /// <summary>
        /// Initializes the GL host.
        /// </summary>
        private void InitOpenGL()
        {
            RenderStateControl renderControl = new RenderStateControl(renderState);

            DiffusionBuffers     buffers       = new DiffusionBuffers();
            DiffusionPathControl bufferControl = new DiffusionPathControl(buffers);

            //shaders
            DefaultShader  pointShader    = new DefaultShader("shaders/basic.vert", "shaders/basic.frag");
            TexturedShader imageShader    = new TexturedShader("shaders/tex.vert", "shaders/tex.frag");
            TexturedShader diffuseShader  = new TexturedShader("shaders/tex.vert", "shaders/diffuse.frag");
            NormalShader   lineShader     = new NormalShader("shaders/normal.vert", "shaders/normal.geom", "shaders/normal.frag");
            NormalShader   endPointShader = new NormalShader("shaders/normal.vert", "shaders/endpoints.geom", "shaders/normal.frag");

            renderer = new DiffusionRenderer(renderState,
                                             editorState,
                                             buffers,
                                             pointShader,
                                             imageShader,
                                             diffuseShader,
                                             lineShader,
                                             endPointShader);

            //Init GL
            GLControl control = new GLControl(new OpenTK.Graphics.GraphicsMode(32, 24, 8, 4));

            this.glHost = new GLControlHost(control,
                                            editorState,
                                            editorControl,
                                            renderer,
                                            renderControl,
                                            bufferControl);

            this.glHost.Child         = control;
            this.glHost.PointClicked += glHost_PointClicked;
        }