Hi,

> 
> #pragma once
> #include "QtOSG.h"
> #include <osg/ShapeDrawable>
> 
> 
> osg::Camera* createCamera(int x, int y, int w, int h, QTOSG* myQTOSG, const 
> std::string& name="", bool windowDecoration=false)
> {
>           osg::DisplaySettings* ds = osg::DisplaySettings::instance().get();
>         osg::ref_ptr<osg::GraphicsContext::Traits> traits = new 
> osg::GraphicsContext::Traits;
>         traits->windowName = name;
>         traits->windowDecoration = windowDecoration;
>         traits->x = x;
>         traits->y = y;
>         traits->width = w;
>         traits->height = h;
>         traits->doubleBuffer = true;
>         traits->alpha = ds->getMinimumNumAlphaBits();
>         traits->stencil = ds->getMinimumNumStencilBits();
>         traits->sampleBuffers = ds->getMultiSamples();
>         traits->samples = ds->getNumMultiSamples();
>               traits->inheritedWindowData = new 
> osgQt::GraphicsWindowQt::WindowData(NULL, myQTOSG); 
>         //neuer ref_ptr auf osg::Camera namens camera
>         osg::ref_ptr<osg::Camera> camera = new osg::Camera;
>               //neuer Pointer auf GraphicsWindowQt mit (traits) namens Window
>               osgQt::GraphicsWindowQt* Window = new 
> osgQt::GraphicsWindowQt(traits);
>               //Setzt den GraphicsContext der camera auf Window
>         camera->setGraphicsContext( Window );
>         camera->setClearColor( osg::Vec4(0.2, 0.2, 0.6, 1.0) );
>         camera->setViewport( new osg::Viewport(0, 0, traits->width, 
> traits->height) );
>         camera->setProjectionMatrixAsPerspective(
>             30.0f, 
> static_cast<double>(traits->width)/static_cast<double>(traits->height), 1.0f, 
> 10000.0f );
>         return camera.release();
> }
> 
> QWidget* addViewWidget(osg::Camera* camera, osg::Node* scene)
> {
>       /*QTOSG* _QTOSG = new QTOSG();*/
>       osgViewer::View* view = new osgViewer::View;
>       view->setCamera(camera);
>       osgViewer::CompositeViewer * cv = new osgViewer::CompositeViewer;
>       cv->addView( view );
>       view->setSceneData(scene);
>       view->addEventHandler(new osgViewer::StatsHandler);
>       view->setCameraManipulator( new osgGA::TrackballManipulator);
>       //Wenn camera auf ein GraphicsWindowQt zeigt, erhält man den gw-Zeiger, 
> der ein osgQt-zeiger ist, der auf osg::Camera zeigt. Schlägt der Cast fehl, 
> gibts einen Nullzeiger zurück.
>       osgQt::GraphicsWindowQt* gw = 
> dynamic_cast<osgQt::GraphicsWindowQt*>(camera->getGraphicsContext());
>       //wenn gw nicht NULL ist, return getGLWidget(), sonst return NULL
>       return gw ? gw->getGLWidget() : NULL;
> }
> 
> QTOSG::QTOSG() : QWidget()
>       
> {
>       root = new osg::Group();
>       QWidget* widget1 = addViewWidget(createCamera(0,0,100,100, this), 
> createPILLE());
>       QGridLayout* grid = new QGridLayout;
>       grid->addWidget(widget1, 0, 0 );
>       setLayout( grid );
>     connect( &_timer, SIGNAL(timeout()), this, SLOT(update()) );
>     _timer.start( 10 );
> }
> 
> QTOSG::~QTOSG()
> {
> 
> }
> 
> 
> 
> void QTOSG::paintEvent(QPaintEvent* event)
> {
>       frame();
> }
> 
> osg::Node* QTOSG::createPILLE()
> {     
>       /*osg::Node* on = new osg::Node();*/
>       //Create a new geode node, derived from the osg::Node class, holds 
> osg::Drawable
>       osg::ref_ptr<osg::Geode> myshapegeode (new osg::Geode);
>       //Create the Capsule
>       osg::ref_ptr<osg::Capsule> myCapsule (new 
> osg::Capsule(osg::Vec3f(),0.1,2));
>       osg::ref_ptr<osg::ShapeDrawable> capsuledrawable (new 
> osg::ShapeDrawable(myCapsule.get()));
>       myshapegeode->addDrawable(capsuledrawable.get());
>       //Capsule being added to the Scenegraph using the osg::Geode
>       root->addChild(myshapegeode.get());
> 
>       return root;
>       }

This is my current code; displays a grey window (not white anymore!!)
wheee.... help?

Thank you!

Cheers,
Patrick

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=43817#43817





_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to