//C++ header - Open Scene Graph - Copyright (C) 1998-2001 Robert Osfield //Distributed under the terms of the GNU Library General Public License (LGPL) //as published by the Free Software Foundation. #ifndef OSG_DisplaySettings #define OSG_DisplaySettings 1 #include #include #include namespace osg { /** DisplaySettings class for encapsulating what visuals are required and * have been set up, and the status of stereo viewing.*/ class SG_EXPORT DisplaySettings : public osg::Referenced { public: DisplaySettings() { setDefaults(); readEnvironmentalVariables(); } DisplaySettings(std::vector& commandLine) { setDefaults(); readEnvironmentalVariables(); readCommandLine(commandLine); } DisplaySettings(const DisplaySettings& vs); virtual ~DisplaySettings(); DisplaySettings& operator = (const DisplaySettings& vs); void merge(const DisplaySettings& vs); void setDefaults(); void readEnvironmentalVariables(); /** read the command line string list, removing any matched control sequences.*/ void readCommandLine(std::vector& commandLine); void setStereo(const bool on) { _stereo = on; } const bool getStereo() const { return _stereo; } enum StereoMode { QUAD_BUFFER, ANAGLYPHIC, HORIZONTAL_SPLIT, VERTICAL_SPLIT }; void setStereoMode(const StereoMode mode) { _stereoMode = mode; } const StereoMode getStereoMode() const { return _stereoMode; } void setEyeSeperation(const float eyeSeperation) { _eyeSeperation = eyeSeperation; } const float getEyeSeperation() const { return _eyeSeperation; } void setScreenDistance(const float distance) { _screenDistance = distance; } const float getScreenDistance() const { return _screenDistance; } void setScreenHeight(const float height) { _screenHeight = height; } const float getScreenHeight() const { return _screenHeight; } void setDoubleBuffer(const bool flag) { _doubleBuffer = flag; } const bool getDoubleBuffer() const { return _doubleBuffer; } void setRGB(const bool flag) { _RGB = flag; } const bool getRGB() const { return _RGB; } void setDepthBuffer(const bool flag) { _depthBuffer = flag; } const bool getDepthBuffer() const { return _depthBuffer; } void setMinimumNumAlphaBits(const unsigned int bits) { _minimumNumberAlphaBits = bits; } const unsigned int getMinimumNumAlphaBits() const { return _minimumNumberAlphaBits; } const bool getAlphaBuffer() const { return _minimumNumberAlphaBits!=0; } void setMinimumNumStencilBits(const unsigned int bits) { _minimumNumberStencilBits = bits; } const unsigned int getMinimumNumStencilBits() const { return _minimumNumberStencilBits; } const bool getStencilBuffer() const { return _minimumNumberStencilBits!=0; } protected: void copy(const DisplaySettings& vs); bool _stereo; StereoMode _stereoMode; float _eyeSeperation; float _screenDistance; float _screenHeight; bool _doubleBuffer; bool _RGB; bool _depthBuffer; unsigned int _minimumNumberAlphaBits; unsigned int _minimumNumberStencilBits; }; } # endif