Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

CaveScene.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *cr                                                                       
00003  *cr            (C) Copyright 1995-2019 The Board of Trustees of the           
00004  *cr                        University of Illinois                       
00005  *cr                         All Rights Reserved                        
00006  *cr                                                                   
00007  ***************************************************************************/
00008 /***************************************************************************
00009  * RCS INFORMATION:
00010  *
00011  *      $RCSfile: CaveScene.h,v $
00012  *      $Author: johns $        $Locker:  $             $State: Exp $
00013  *      $Revision: 1.52 $       $Date: 2020/02/26 15:51:10 $
00014  *
00015  ***************************************************************************/
00029 #ifndef CAVE_SCENE_H
00030 #define CAVE_SCENE_H
00031 
00032 #include "Scene.h"
00033 #if 1
00034 #include <cave.h>
00035 #else
00036 #include <cave_ogl.h>
00037 #endif
00038 #include "CaveRoutines.h"
00039 #include "CaveDisplayDevice.h" // for manipulating lights etc
00040 #include "WKFThreads.h"        // for the barrier synchronization code
00041 
00042 class VMDApp;
00043 
00044 // This needs to grab shared memory for use in the CAVE
00045 // environment.  It does it with one means.
00046 //  1) use a CaveScene::operator new so that the internal
00047 //      scene information is shared (get_disp_storage and
00048 //      free_disp_storage)
00049 // The shared memory is allocated through a global function,
00050 //  new_from_CAVE_memory.
00051 // This must also call the left eye and right eye draws correctly
00052 
00055 class CaveScene : public Scene {
00056 private:
00057   VMDApp *app;
00058 
00060   wkf_barrier_t * draw_barrier; 
00061 
00063   CAVELOCK draw_rwlock;  
00064 
00065 public:
00067   CaveScene(VMDApp *);
00068   virtual ~CaveScene(void);
00069   
00072   void draw(DisplayDevice *);
00073   
00075   virtual int prepare();
00076 
00078   void *operator new(size_t);
00079   void operator delete(void *, size_t);
00080 };
00081 
00082 #endif /* CAVE_SCENE_H */
00083 

Generated on Fri Mar 29 02:44:37 2024 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002