示例#1
0
bool csMovieRecorder::Initialize (iObjectRegistry* iobject_reg)
{
  object_reg = iobject_reg;

  CS_INITIALIZE_EVENT_SHORTCUTS (object_reg);
  KeyboardEvent = csevKeyboardEvent (object_reg);

  // We need to receive keyboard events for our hotkeys, and the nothing
  // event for the actual movie recording.
  if (!keyEventHandler)
  {
    keyEventHandler.AttachNew (new KeyEventHandler (this));
  }
  csRef<iEventQueue> q (csQueryRegistry<iEventQueue> (object_reg));
  if (q != 0)
  {
    csEventID events[2] = { KeyboardEvent, CS_EVENTLIST_END };
    q->RegisterListener (keyEventHandler, events);
  }

  if (!logicEventHandler)
  {
    logicEventHandler.AttachNew (new LogicEventHandler (this));
  }
  if (q != 0)
  {
    csEventID events[2] = { Frame, CS_EVENTLIST_END };
    q->RegisterListener (logicEventHandler, events);
  }

  if (!frameEventHandler)
  {
    frameEventHandler.AttachNew (new FrameEventHandler (this));
  }
  if (q != 0)
  {
    csEventID events[2] = { Frame, CS_EVENTLIST_END };
    q->RegisterListener (frameEventHandler, events);
  }

  // Unregister the normal virtual clock and register our own
  // replacement, hoping nobody will notice :)
  //
  // FIXME: This will work for the application when this plugin is
  //        loaded in initialization, but some modules might see the
  //        real VC. Additionally, this won't work at all if the app
  //        loads us after the app gets a VC reference.
  if (!virtualClock)
  {
    virtualClock.AttachNew (new VirtualClock (this));
  }
  realVirtualClock = csQueryRegistry<iVirtualClock> (object_reg);
  object_reg->Unregister(realVirtualClock, "iVirtualClock");
  object_reg->Register(virtualClock, "iVirtualClock");

  return true;
}
示例#2
0
bool csDecalManager::Initialize (iObjectRegistry * objectReg)
{
  this->objectReg = objectReg;
  vc = csQueryRegistry<iVirtualClock> (objectReg);

  CS_INITIALIZE_EVENT_SHORTCUTS (objectReg);
  csRef<iEventQueue> q(csQueryRegistry<iEventQueue> (objectReg));
  if (q)
    CS::RegisterWeakListener (q, this, Frame, weakEventHandler);
  return true;
}