Changed OsgCameraGroup so that it shares osg::State between Producer::Camera's which

share the same Producer::RenderSurface.

Added support for more colors in slideshow3D's constructor code.
This commit is contained in:
Robert Osfield
2003-09-10 19:25:36 +00:00
parent 5ca7659cda
commit f5b4f7ace0
3 changed files with 64 additions and 8 deletions

View File

@@ -15,6 +15,9 @@
static Producer::CameraConfig *BuildConfig(void)
{
#define TWO_SEPERATE_WINDOWS
#ifdef TWO_SEPERATE_WINDOWS
Producer::RenderSurface *rs1 = new Producer::RenderSurface;
rs1->setScreenNum(0);
rs1->setWindowName("osgwindows");
@@ -45,6 +48,32 @@ static Producer::CameraConfig *BuildConfig(void)
cfg->addCamera("Camera 2", camera2);
cfg->setInputArea(ia);
return cfg;
#else
// one window with four camera's.
Producer::Camera* pcam1 = new Producer::Camera ();
pcam1->setProjectionRectangle (0.0f, 0.5f, 0.5f, 1.0f);
Producer::Camera* pcam2 = new Producer::Camera ();
pcam2->setRenderSurface (pcam1->getRenderSurface ());
pcam2->setProjectionRectangle (0.5f, 1.0f, 0.5f, 1.0f);
Producer::Camera* pcam3 = new Producer::Camera ();
pcam3->setRenderSurface (pcam1->getRenderSurface ());
pcam3->setProjectionRectangle (0.0f, 0.5f, 0.0f, 0.5f);
Producer::Camera* pcam4 = new Producer::Camera ();
pcam4->setRenderSurface (pcam1->getRenderSurface ());
pcam4->setProjectionRectangle (0.5f, 1.0f, 0.0f, 0.5f);
Producer::CameraConfig *cfg = new Producer::CameraConfig;
cfg->addCamera("Camera 1",pcam1);
cfg->addCamera("Camera 2",pcam2);
cfg->addCamera("Camera 3",pcam3);
cfg->addCamera("Camera 4",pcam4);
return cfg;
#endif
}
int main( int argc, char **argv )

View File

@@ -17,8 +17,18 @@
class ReaderWriterSS3D : public osgDB::ReaderWriter
{
public:
ReaderWriterSS3D() { }
ReaderWriterSS3D()
{
_colorMap["WHITE"] .set(1.0f,1.0f,1.0f,1.0f);
_colorMap["BLACK"] .set(0.0f,0.0f,0.0f,1.0f);
_colorMap["PURPLE"] .set(1.0f,0.0f,1.0f,1.0f);
_colorMap["BLUE"] .set(0.0f,0.0f,1.0f,1.0f);
_colorMap["RED"] .set(1.0f,0.0f,0.0f,1.0f);
_colorMap["CYAN"] .set(0.0f,1.0f,1.0f,1.0f);
_colorMap["YELLOW"] .set(1.0f,1.0f,0.0f,1.0f);
_colorMap["GREEN"] .set(0.0f,1.0f,0.0f,1.0f);
}
virtual const char* className()
{
return "slideshow3D XML Reader/Writer";
@@ -42,9 +52,11 @@ public:
osg::Vec4 mapStringToColor(const std::string& str)
{
if (str=="BLACK") return osg::Vec4(0.0f,0.0f,0.0f,1.0f);
else return osg::Vec4(1.0f,1.0f,1.0f,1.0f);
return _colorMap[str];
}
std::map<std::string,osg::Vec4> _colorMap;
};