/// <summary> /// Setup constructor /// </summary> /// <param name="mainRenderingThread">Main rendering thread</param> /// <param name="mainRenderingThreadMarshaller">Marshaller for the main rendering thread</param> public RendererBase( Thread mainRenderingThread, DelegateMarshaller mainRenderingThreadMarshaller ) { Arguments.CheckNotNull( mainRenderingThread, "mainRenderingThread" ); Arguments.CheckNotNull( mainRenderingThreadMarshaller, "mainRenderingThreadMarshaller" ); m_MainRenderingThread = mainRenderingThread; m_MainRenderingThreadMarshaller = mainRenderingThreadMarshaller; }
/// <summary> /// Setup constructor /// </summary> /// <param name="uiProvider">UI provider. If null, no error messages are shown to the user</param> /// <param name="view">View to control</param> /// <param name="model">Animation model</param> /// <param name="workQueue">Work queue</param> public WaveAnimatorController( IMessageUiProvider uiProvider, IWaveAnimatorView view, WaveAnimationParameters model, IWorkItemQueue workQueue ) { Arguments.CheckNotNull( view, "view" ); Arguments.CheckNotNull( model, "model" ); Arguments.CheckNotNull( workQueue, "workQueue" ); view.Model = model; view.GenerateAnimation += OnGenerateAnimation; m_View = view; m_WorkQueue = workQueue; m_Marshaller = new DelegateMarshaller( ); m_UiProvider = uiProvider; }
/// <summary> /// Sets up the renderer /// </summary> /// <param name="mainRenderingThread">Main rendering thread</param> /// <param name="mainRenderingThreadMarshaller">Marshaller for the main rendering thread</param> /// <remarks> /// OpenGL works within a single thread, and any resources (textures, display lists,...) must /// be created and destroyed on the same thread. /// </remarks> public OpenGlRenderer( Thread mainRenderingThread, DelegateMarshaller mainRenderingThreadMarshaller ) : base(mainRenderingThread, mainRenderingThreadMarshaller) { for ( int stackIndex = 0; stackIndex < m_LocalToWorldModifierStack.Length; ++stackIndex ) { m_LocalToWorldModifierStack[ stackIndex ] = InvariantMatrix44.Identity; } for ( int stackIndex = 0; stackIndex < m_WorldToViewModifierStack.Length; ++stackIndex ) { m_WorldToViewModifierStack[ stackIndex ] = InvariantMatrix44.Identity; } for ( int stackIndex = 0; stackIndex < m_LocalToWorldStack.Length; ++stackIndex ) { m_LocalToWorldStack[ stackIndex ] = new Matrix44( ); } for ( int stackIndex = 0; stackIndex < m_WorldToViewStack.Length; ++stackIndex ) { m_WorldToViewStack[ stackIndex ] = new Matrix44( ); } }