Ejemplo n.º 1
0
////////////////////////////  constructor  
CaveScene::CaveScene(VMDApp *vmdapp) : app(vmdapp) {
#if defined(CAVEUSERWLOCK)
  msgInfo << "Creating R/W lock for shared mem access sync.\n" << sendmsg;
  draw_rwlock = CAVENewLock();   // allocate a new CAVE lock
  CAVESetWriteLock(draw_rwlock); // start out locked for writing
#else 
  msgInfo << "Creating draw barrier for " <<  CAVEConfig->ActiveWalls
          << " active CAVE walls and master process.\n" << sendmsg; 

  // setup the drawing barrier used to control slave rendering processes
  draw_barrier =(vmd_barrier_t *) malloc_from_CAVE_memory(sizeof(vmd_barrier_t));
  if (draw_barrier == NULL) {
    msgErr << "CANNOT ALLOCATE SHARED MEMORY FOR CaveScene CLASS !!!"
           << sendmsg;
  }
  memset(draw_barrier, 0, sizeof(vmd_barrier_t));

  if (getenv("VMDCAVEDRAWPROCS") != NULL) {
    vmd_thread_barrier_init_proc_shared(draw_barrier, atoi(getenv("VMDCAVEDRAWPROCS")) + 1);
  } else {
    vmd_thread_barrier_init_proc_shared(draw_barrier, CAVEConfig->ActiveWalls + 1);
  }
#endif 
}
Ejemplo n.º 2
0
void *vrlib_lock_create (void)
{
    return (void *) CAVENewLock ();
}