Ignore:
Timestamp:
04/29/08 16:20:37 (16 years ago)
Author:
mattausch
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.cpp

    r2663 r2664  
    7474QtGlRendererBuffer::MakeCurrent() 
    7575{ 
    76   makeCurrent(); 
     76        makeCurrent(); 
    7777} 
    7878 
     
    8080QtGlRendererBuffer::DoneCurrent() 
    8181{ 
    82   doneCurrent(); 
     82        doneCurrent(); 
    8383} 
    8484   
    8585 
    86 QtGlRendererBuffer::QtGlRendererBuffer(const int w, 
    87                                                                            const int h, 
     86QtGlRendererBuffer::QtGlRendererBuffer(int w, int h, 
    8887                                                                           SceneGraph *sceneGraph, 
    8988                                                                           ViewCellsManager *viewcells, 
    9089                                                                           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) 
     90QGLPixelBuffer(QSize(w, h), QGLFormat(QGL::SampleBuffers)), 
     91GlRendererBuffer(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 
     110void QtGlRendererBuffer::RenderPvs(const ObjectPvs &pvs) 
    102111{ 
    103112        PreparePvs(pvs); 
     
    112121 
    113122// reimplemented here so that we can snap the error windows 
    114 float 
    115 QtGlRendererBuffer::GetPixelError(int &pvsSize) 
    116 { 
    117  
     123float QtGlRendererBuffer::GetPixelError(int &pvsSize) 
     124{ 
    118125        MakeCurrent(); 
    119  
     126         
     127/* 
     128SetupCamera(); 
     129RenderScene(); 
     130*/ 
    120131        float pErrorPixels = -1.0f; 
    121132 
     
    127138 
    128139        if (viewcell == NULL) 
    129                 return 0.0f; 
     140                return -1.0f; 
    130141 
    131142        ObjectPvs pvs; 
     
    143154 
    144155        SetupCamera(); 
     156 
    145157        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); 
    146158        glColorMask(GL_FALSE, GL_TRUE, GL_FALSE, GL_FALSE); 
     
    156168        pvsSize = pvs.GetSize(); 
    157169         
     170        if (pvsSize == 0) 
     171                return 0.0f; 
     172 
    158173        RenderPvs(pvs); 
    159174 
     
    178193        // reenable other state 
    179194        int wait = 0; 
    180          
    181195        while (0 && !query->ResultAvailable())  
    182         { 
    183196                wait ++; 
    184         } 
    185  
    186  
     197         
    187198        pixelCount = query->GetQueryResult(); 
    188199 
    189         if ((pixelCount > 0) && (pvsSize > 0)) 
     200        if (pixelCount > 0)  
    190201        { 
    191202                cout << "vc id: " << viewcell->GetId() << " pvs: " << pvsSize << " pc: " << pixelCount << endl; 
     
    195206 
    196207 
    197         if (mSnapErrorFrames && (pixelCount > 0)) { 
     208        if (mSnapErrorFrames && (pixelCount > 0))  
     209        { 
    198210                glReadBuffer(GL_BACK); 
    199211                //glReadBuffer(GL_FRONT); 
     
    226238                glColor3f(0,1,0); 
    227239                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); 
    229242 
    230243                RenderPvs(pvs); 
     
    412425        glNormalPointer(GL_FLOAT, 0, (char *)arrayPtr + offset * sizeof(Vector3)); 
    413426        glDrawElements(GL_TRIANGLES, mIndexBufferSize, GL_UNSIGNED_INT, mIndices); 
     427 
    414428#if DYNAMIC_OBJECTS_HACK 
    415429        // handle dynamic objects 
    416430        DynamicObjectsContainer::const_iterator dit, dit_end = mDynamicObjects.end(); 
    417  
    418431 
    419432        for (dit = mDynamicObjects.begin(); dit != dit_end; ++ dit) 
     
    541554                if (mUseSpatialFilter && mRenderBoxes)  
    542555                { 
    543                         for (int i=0; i < mPvsCache.filteredBoxes.size(); ++ i) 
     556                        for (size_t i=0; i < mPvsCache.filteredBoxes.size(); ++ i) 
    544557                        { 
    545558                                RenderBox(mPvsCache.filteredBoxes[i]); 
     
    559572                        RenderIntersectable(viewcell); 
    560573                         
    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                         */ 
    571574                        mWireFrame = false; 
    572575                } 
     
    575578        else  
    576579        { 
    577                 //ObjectContainer::const_iterator oi = mObjects.begin(); 
    578                 //for (; oi != mObjects.end(); oi++) 
    579                 //      RenderIntersectable(*oi); 
     580                //OcclusionQuery *query = mOcclusionQueries[0]; 
     581                //query->BeginQuery(); 
     582                 
    580583                RenderScene(); 
     584 
     585                //query->EndQuery(); 
     586                //int pixels = query->GetQueryResult(); 
     587                //cout << " pixels: " << pixels; 
    581588        } 
    582589 
     
    611618 
    612619        glColor3f(1.0f, 0.0f, 0.0f); 
    613  
    614620 
    615621        OcclusionQuery *query = mOcclusionQueries[0]; 
     
    634640 
    635641        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; 
    638644 
    639645        mRenderError = pErrorPixels; 
     
    23352341        // set up the pbuffer context 
    23362342        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         
    23492344        // generate a texture that has the same size/format as the pbuffer 
    23502345        dynamicTexture = mRenderBuffer->generateDynamicTexture(); 
Note: See TracChangeset for help on using the changeset viewer.