Introduced osgViewer::Config base class and beginnigs of various Config implementations.

Introduced osgViewer serializers plugin for serialization support for osgViewer::Config implementations and Keystone
This commit is contained in:
Robert Osfield
2013-05-15 11:31:49 +00:00
parent 07499f6658
commit bcbaaefa02
10 changed files with 2755 additions and 25 deletions

View File

@@ -10,6 +10,7 @@ SET(LIB_NAME osgViewer)
SET(HEADER_PATH ${OpenSceneGraph_SOURCE_DIR}/include/${LIB_NAME})
SET(TARGET_H
${HEADER_PATH}/CompositeViewer
${HEADER_PATH}/Config
${HEADER_PATH}/Export
${HEADER_PATH}/GraphicsWindow
${HEADER_PATH}/Keystone
@@ -24,6 +25,7 @@ SET(TARGET_H
SET(LIB_COMMON_FILES
CompositeViewer.cpp
Config.cpp
GraphicsWindow.cpp
HelpHandler.cpp
Keystone.cpp

2424
src/osgViewer/Config.cpp Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -592,28 +592,3 @@ bool Keystone::loadKeystoneFiles(osg::DisplaySettings* ds)
return keystonesLoaded;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Serialization support
//
#include <osgDB/ObjectWrapper>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
REGISTER_OBJECT_WRAPPER( Keystone,
new osgViewer::Keystone,
osgViewer::Keystone,
"osg::Object osgViewer::Keystone" )
{
ADD_BOOL_SERIALIZER( KeystoneEditingEnabled, true );
ADD_VEC4_SERIALIZER( GridColor, osg::Vec4(1.0,1.0,1.0,1.0) );
ADD_VEC2D_SERIALIZER( BottomLeft, osg::Vec2d(0.0,0.0) );
ADD_VEC2D_SERIALIZER( BottomRight, osg::Vec2d(0.0,0.0) );
ADD_VEC2D_SERIALIZER( TopLeft, osg::Vec2d(0.0,0.0) );
ADD_VEC2D_SERIALIZER( TopRight, osg::Vec2d(0.0,0.0) );
}

View File

@@ -48,3 +48,4 @@ ADD_SUBDIRECTORY(osgGA)
ADD_SUBDIRECTORY(osgTerrain)
ADD_SUBDIRECTORY(osgText)
ADD_SUBDIRECTORY(osgVolume)
ADD_SUBDIRECTORY(osgViewer)

View File

@@ -0,0 +1,7 @@
FILE(GLOB TARGET_SRC *.cpp)
FILE(GLOB TARGET_H *.h)
SET(TARGET_ADDED_LIBRARIES osgViewer )
#### end var setup ###
SETUP_PLUGIN(osgviewer)

View File

@@ -0,0 +1,12 @@
#include <osgViewer/Config>
#include <osgDB/ObjectWrapper>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
REGISTER_OBJECT_WRAPPER( osgViewer_Config,
new osgViewer::Config,
osgViewer::Config,
"osg::Object osgViewer::Config" )
{
}

View File

@@ -0,0 +1,18 @@
#include <osgViewer/Keystone>
#include <osgDB/ObjectWrapper>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
REGISTER_OBJECT_WRAPPER( osgViewer_Keystone,
new osgViewer::Keystone,
osgViewer::Keystone,
"osg::Object osgViewer::Keystone" )
{
ADD_BOOL_SERIALIZER( KeystoneEditingEnabled, true );
ADD_VEC4_SERIALIZER( GridColor, osg::Vec4(1.0,1.0,1.0,1.0) );
ADD_VEC2D_SERIALIZER( BottomLeft, osg::Vec2d(0.0,0.0) );
ADD_VEC2D_SERIALIZER( BottomRight, osg::Vec2d(0.0,0.0) );
ADD_VEC2D_SERIALIZER( TopLeft, osg::Vec2d(0.0,0.0) );
ADD_VEC2D_SERIALIZER( TopRight, osg::Vec2d(0.0,0.0) );
}

View File

@@ -0,0 +1,12 @@
#include <osgViewer/Config>
#include <osgDB/ObjectWrapper>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
REGISTER_OBJECT_WRAPPER( osgViewer_ViewAcrossAllScreens,
new osgViewer::ViewAcrossAllScreens,
osgViewer::ViewAcrossAllScreens,
"osg::Object osgViewer::Config osgViewer::ViewAcrossAllScreens" )
{
}

View File

@@ -0,0 +1,17 @@
#include <osgViewer/Config>
#include <osgDB/ObjectWrapper>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
REGISTER_OBJECT_WRAPPER( osgViewer_ViewInWindow,
new osgViewer::ViewInWindow,
osgViewer::ViewInWindow,
"osg::Object osgViewer::Config osgViewer::ViewInWindow" )
{
ADD_INT_SERIALIZER( X, 0);
ADD_INT_SERIALIZER( Y, 0);
ADD_INT_SERIALIZER( Width, -1);
ADD_INT_SERIALIZER( Height, -1);
ADD_UINT_SERIALIZER( ScreenNum, 0u);
}