// =================================================================== // $Id$ // Qt headers #include #include // C++ standard headers #include // local headers #include "common.h" #include "QtGlViewer.h" #include "QtGlRenderer.h" #include "Trackball.h" #include "RssPreprocessor.h" #include "SceneGraph.h" namespace GtpVisibilityPreprocessor { QtGlRendererWidget *renderer; QtGlViewer::QtGlViewer(QWidget *parent, QtGlRendererWidget *renderer): QGLWidget(parent), mRenderer(renderer) { scale = 1.0f; mWireframe = false; trackball(manipulatorLastQuat, 0.0f, 0.0f, 0.0f, 0.0f); connect(renderer, SIGNAL(PvsUpdated()), this, SLOT(updateGL())); } QSize QtGlViewer::minimumSizeHint() const { return QSize(100, 100); } QSize QtGlViewer::sizeHint() const { return QSize(500, 500); } // This method has to be rendefined by all renderer implementations void QtGlViewer::RenderScene() { mRenderer->mFrame++; // render into the right side of the window buffer if (mRenderer->mRenderViewCells) mRenderer->RenderViewCells(); mRenderer->RenderPvs(); // if (mRenderer->mShowRays) { // RssPreprocessor *p = (RssPreprocessor *) // mRenderer->mViewCellsManager->GetPreprocessor(); // if (p->mRssTree) { // VssRayContainer rays; // p->mRssTree->CollectRays(rays, 10000); // mRenderer->RenderRays(rays); // } // } if (mRenderer->mShowRenderCost) mRenderer->RenderRenderCost(); glColor3f(1.0f, 1.0f, 1.0f); mRenderer->RenderInfo(); } void QtGlViewer::initializeGL() { const char *vendorString, *rendererString, *versionString, *extString; // get GL info vendorString = (const char *) glGetString(GL_VENDOR); rendererString = (const char *) glGetString(GL_RENDERER); versionString = (const char *) glGetString(GL_VERSION); extString = (const char *) glGetString(GL_EXTENSIONS); Debug << "Info: GL Vendor = "<