/// <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 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); }
/// <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; }