BEGIN_NAMESPACE_MW /********************************************************************** * StimulusDisplay Methods **********************************************************************/ StimulusDisplay::StimulusDisplay(bool announceIndividualStimuli) : current_context_index(-1), displayLinksRunning(false), mainDisplayRefreshRate(0.0), currentOutputTimeUS(-1), announceIndividualStimuli(announceIndividualStimuli), announceStimuliOnImplicitUpdates(true), framebuffer(0), renderbuffer(0) { // defer creation of the display chain until after the stimulus display has been created display_stack = shared_ptr< LinkedList<StimulusNode> >(new LinkedList<StimulusNode>()); setDisplayBounds(); setBackgroundColor(0.5, 0.5, 0.5); opengl_context_manager = OpenGLContextManager::instance(); clock = Clock::instance(); waitingForRefresh = false; needDraw = false; stateSystemNotification = shared_ptr<VariableCallbackNotification>(new VariableCallbackNotification(boost::bind(&StimulusDisplay::stateSystemCallback, this, _1, _2))); state_system_mode->addNotification(stateSystemNotification); }
BEGIN_NAMESPACE_MW /********************************************************************** * StimulusDisplay Methods **********************************************************************/ StimulusDisplay::StimulusDisplay(bool drawEveryFrame, bool announceIndividualStimuli) : current_context_index(-1), mainDisplayRefreshRate(0.0), currentOutputTimeUS(-1), announceIndividualStimuli(announceIndividualStimuli), announceStimuliOnImplicitUpdates(true), drawEveryFrame(drawEveryFrame) { // defer creation of the display chain until after the stimulus display has been created display_stack = shared_ptr< LinkedList<StimulusNode> >(new LinkedList<StimulusNode>()); setDisplayBounds(); setBackgroundColor(0.5, 0.5, 0.5); opengl_context_manager = OpenGLContextManager::instance(); clock = Clock::instance(); waitingForRefresh = false; needDraw = false; if (kCVReturnSuccess != CVDisplayLinkCreateWithActiveCGDisplays(&displayLink) || kCVReturnSuccess != CVDisplayLinkSetOutputCallback(displayLink, &StimulusDisplay::displayLinkCallback, this)) { throw SimpleException("Unable to create display link"); } stateSystemNotification = shared_ptr<VariableCallbackNotification>(new VariableCallbackNotification(boost::bind(&StimulusDisplay::stateSystemCallback, this, _1, _2))); state_system_mode->addNotification(stateSystemNotification); }