Public Member Functions | |
string | getName () const |
Logger * | getLogger () const |
void | setLoader (Ref< Loader >) |
Ref< Loader > | getLoader () const |
void | setListener (Ref< Listener >) |
Ref< Listener > | getListener () const |
void | setRootScene (Ref< Scene >) |
Ref< Scene > | getRootScene () const |
double | getFrameRate () const |
void | print (string m) |
Ref< Scene > | getRootSceneNoLock () |
Requires scenegraph read lock. | |
void | setProgressiveLoad (bool) |
bool | getProgressiveLoad () const |
Time | getNextTimeStamp () |
void | tick () |
Process input events and generate new autonomous (time based) events. | |
~Server () | |
Static Public Member Functions | |
static Ref< Server > | get (string name, double frameRate, Logger *logger, bool loadScene, Uri sceneUrl, bool progressiveLoad) |
Construct a new X3D engine/server. | |
Public Attributes | |
const Mutex | scenegraphMutex |
This mutex protects the following parts of the scenegraph and nothing else:. | |
Classes | |
struct | Listener |
Definition at line 41 of file server.H.
|
Construct a new X3D engine/server.
Definition at line 29 of file server.C. References Archon::X3D::XML::parse(), and Archon::rootGroup. Referenced by Archon::Raytracer::main(), and Archon::Console3d::main(). |
|
Process input events and generate new autonomous (time based) events. Must only be called by someone holding a scenegraph write lock. |
|
This mutex protects the following parts of the scenegraph and nothing else:.
This is not an ideal situation. We would love to replace it ith a more finegrained locking strategy, but so far we have not come up with a good idea :-( One thing that seems to complicate matters is that rendering needs to present a consistent scene graph, and never one that is partially updated. What partially updated means, is not absolutely clear to me (at the time of writing this), but as I understand it, an event cascade needs to be carried out as an atomic operation. Also when the SAI uses the buffered update mode, then all changes has to be carried out as an atomic operation with respect to rendering. That is, we should not allow a frame to be rendered wich will show some of the chages of such an update but not others. Definition at line 158 of file server.H. Referenced by getRootScene(), and setRootScene(). |