Changeset 2664 for GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface
- Timestamp:
- 04/29/08 16:20:37 (17 years ago)
- Location:
- GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.cpp
r2663 r2664 74 74 QtGlRendererBuffer::MakeCurrent() 75 75 { 76 76 makeCurrent(); 77 77 } 78 78 … … 80 80 QtGlRendererBuffer::DoneCurrent() 81 81 { 82 82 doneCurrent(); 83 83 } 84 84 85 85 86 QtGlRendererBuffer::QtGlRendererBuffer(const int w, 87 const int h, 86 QtGlRendererBuffer::QtGlRendererBuffer(int w, int h, 88 87 SceneGraph *sceneGraph, 89 88 ViewCellsManager *viewcells, 90 89 KdTree *tree): 91 QGLPixelBuffer(QSize(w, h)), 92 GlRendererBuffer(sceneGraph, viewcells, tree) 93 { 94 mUseVbos = true; 95 MakeCurrent(); 96 InitGL(); 97 DoneCurrent(); 98 } 99 100 void 101 QtGlRendererBuffer::RenderPvs(const ObjectPvs &pvs) 90 QGLPixelBuffer(QSize(w, h), QGLFormat(QGL::SampleBuffers)), 91 GlRendererBuffer(sceneGraph, viewcells, tree) 92 { 93 mUseVbos = true; 94 //mUseVbos = false; 95 96 MakeCurrent(); 97 glViewport(0, 0, w, h); 98 glMatrixMode(GL_PROJECTION); 99 glLoadIdentity(); 100 glOrtho(-1, 1, -1, 1, -99, 99); 101 //glTranslatef(-0.5f, -0.5f, 0.0f); 102 glMatrixMode(GL_MODELVIEW); 103 glLoadIdentity(); 104 105 InitGL(); 106 DoneCurrent(); 107 } 108 109 110 void QtGlRendererBuffer::RenderPvs(const ObjectPvs &pvs) 102 111 { 103 112 PreparePvs(pvs); … … 112 121 113 122 // reimplemented here so that we can snap the error windows 114 float 115 QtGlRendererBuffer::GetPixelError(int &pvsSize) 116 { 117 123 float QtGlRendererBuffer::GetPixelError(int &pvsSize) 124 { 118 125 MakeCurrent(); 119 126 127 /* 128 SetupCamera(); 129 RenderScene(); 130 */ 120 131 float pErrorPixels = -1.0f; 121 132 … … 127 138 128 139 if (viewcell == NULL) 129 return 0.0f;140 return -1.0f; 130 141 131 142 ObjectPvs pvs; … … 143 154 144 155 SetupCamera(); 156 145 157 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); 146 158 glColorMask(GL_FALSE, GL_TRUE, GL_FALSE, GL_FALSE); … … 156 168 pvsSize = pvs.GetSize(); 157 169 170 if (pvsSize == 0) 171 return 0.0f; 172 158 173 RenderPvs(pvs); 159 174 … … 178 193 // reenable other state 179 194 int wait = 0; 180 181 195 while (0 && !query->ResultAvailable()) 182 {183 196 wait ++; 184 } 185 186 197 187 198 pixelCount = query->GetQueryResult(); 188 199 189 if ( (pixelCount > 0) && (pvsSize > 0))200 if (pixelCount > 0) 190 201 { 191 202 cout << "vc id: " << viewcell->GetId() << " pvs: " << pvsSize << " pc: " << pixelCount << endl; … … 195 206 196 207 197 if (mSnapErrorFrames && (pixelCount > 0)) { 208 if (mSnapErrorFrames && (pixelCount > 0)) 209 { 198 210 glReadBuffer(GL_BACK); 199 211 //glReadBuffer(GL_FRONT); … … 226 238 glColor3f(0,1,0); 227 239 glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); 228 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 240 //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 241 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); 229 242 230 243 RenderPvs(pvs); … … 412 425 glNormalPointer(GL_FLOAT, 0, (char *)arrayPtr + offset * sizeof(Vector3)); 413 426 glDrawElements(GL_TRIANGLES, mIndexBufferSize, GL_UNSIGNED_INT, mIndices); 427 414 428 #if DYNAMIC_OBJECTS_HACK 415 429 // handle dynamic objects 416 430 DynamicObjectsContainer::const_iterator dit, dit_end = mDynamicObjects.end(); 417 418 431 419 432 for (dit = mDynamicObjects.begin(); dit != dit_end; ++ dit) … … 541 554 if (mUseSpatialFilter && mRenderBoxes) 542 555 { 543 for ( int i=0; i < mPvsCache.filteredBoxes.size(); ++ i)556 for (size_t i=0; i < mPvsCache.filteredBoxes.size(); ++ i) 544 557 { 545 558 RenderBox(mPvsCache.filteredBoxes[i]); … … 559 572 RenderIntersectable(viewcell); 560 573 561 /*glPushMatrix();562 glTranslatef(mViewPoint.x, mViewPoint.y, mViewPoint.z);563 glScalef(5.0f,5.0f,5.0f);564 glPushAttrib(GL_CURRENT_BIT);565 glColor3f(1.0f, 0.0f, 0.0f);566 // gluSphere((::GLUquadric *)mSphere,567 // 1e-3*Magnitude(mViewCellsManager->GetViewSpaceBox().Size()), 6, 6);568 glPopAttrib();569 glPopMatrix();570 */571 574 mWireFrame = false; 572 575 } … … 575 578 else 576 579 { 577 //O bjectContainer::const_iterator oi = mObjects.begin();578 // for (; oi != mObjects.end(); oi++)579 // RenderIntersectable(*oi);580 //OcclusionQuery *query = mOcclusionQueries[0]; 581 //query->BeginQuery(); 582 580 583 RenderScene(); 584 585 //query->EndQuery(); 586 //int pixels = query->GetQueryResult(); 587 //cout << " pixels: " << pixels; 581 588 } 582 589 … … 611 618 612 619 glColor3f(1.0f, 0.0f, 0.0f); 613 614 620 615 621 OcclusionQuery *query = mOcclusionQueries[0]; … … 634 640 635 641 int pixelCount = query->GetQueryResult(); 636 pErrorPixels = ((float)pixelCount) /(GetWidth()*GetHeight());637 if (0) cout <<"error pixels="<<pixelCount<<endl;642 pErrorPixels = ((float)pixelCount) / (GetWidth() * GetHeight()); 643 if (0) cout << "error pixels=" << pixelCount << endl; 638 644 639 645 mRenderError = pErrorPixels; … … 2335 2341 // set up the pbuffer context 2336 2342 mRenderBuffer->makeCurrent(); 2337 /*mRenderBuffer->InitGL(); 2338 2339 glViewport(0, 0, mRenderBuffer->size().width(), mRenderBuffer->size().height()); 2340 glMatrixMode(GL_PROJECTION); 2341 glLoadIdentity(); 2342 glOrtho(-1, 1, -1, 1, -99, 99); 2343 glTranslatef(-0.5f, -0.5f, 0.0f); 2344 glMatrixMode(GL_MODELVIEW); 2345 glLoadIdentity(); 2346 2347 glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);*/ 2348 2343 2349 2344 // generate a texture that has the same size/format as the pbuffer 2350 2345 dynamicTexture = mRenderBuffer->generateDynamicTexture(); -
GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.h
r2657 r2664 54 54 Q_OBJECT 55 55 public: 56 QtGlRendererBuffer(const int w, 57 const int h, 58 SceneGraph *sceneGraph, 59 ViewCellsManager *viewcells, 60 KdTree *tree); 61 62 ~QtGlRendererBuffer() {} 63 64 virtual void MakeCurrent(); 65 virtual void DoneCurrent(); 66 67 virtual int GetWidth() const { return width(); } 68 virtual int GetHeight() const { return height(); } 69 70 int ComputePvs() const { return 0; } 71 72 void 73 RenderPvs(const ObjectPvs &pvs); 74 75 float 76 GetPixelError(int &pvsSize); 77 78 int ComputePvs(ObjectContainer &objects, ObjectContainer &pvs) const; 79 80 81 82 56 QtGlRendererBuffer(int w, int h, 57 SceneGraph *sceneGraph, 58 ViewCellsManager *viewcells, 59 KdTree *tree); 60 61 ~QtGlRendererBuffer() {} 62 63 virtual void MakeCurrent(); 64 virtual void DoneCurrent(); 65 66 virtual int GetWidth() const { return width(); } 67 virtual int GetHeight() const { return height(); } 68 69 int ComputePvs() const { return 0; } 70 71 void RenderPvs(const ObjectPvs &pvs); 72 73 float GetPixelError(int &pvsSize); 74 75 int ComputePvs(ObjectContainer &objects, ObjectContainer &pvs) const; 76 83 77 public: 84 signals: 85 void UpdatePvsErrorItem(int i, GlRendererBuffer::PvsErrorEntry &); 78 79 signals: 80 void UpdatePvsErrorItem(int i, GlRendererBuffer::PvsErrorEntry &); 86 81 }; 87 82 -
GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlViewer.cpp
r2615 r2664 24 24 25 25 QtGlViewer::QtGlViewer(QWidget *parent, 26 QtGlRendererWidget *renderer) :27 26 QtGlRendererWidget *renderer) 27 : QGLWidget(parent), mRenderer(renderer) 28 28 { 29 29 scale = 1.0f; … … 42 42 } 43 43 44 44 45 QSize QtGlViewer::minimumSizeHint() const 45 46 {
Note: See TracChangeset
for help on using the changeset viewer.