VirtualBox

Ignore:
Timestamp:
Sep 8, 2009 7:33:55 PM (15 years ago)
Author:
vboxsync
Message:

video hw accel: overlay update fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/include/VBoxFBOverlay.h

    r22836 r22846  
    431431    void updatedMem(const QRect * aRect);
    432432
    433     void performDisplay(VBoxVHWASurfaceBase *pPrimary);
     433    bool performDisplay(VBoxVHWASurfaceBase *pPrimary, bool bForce);
    434434
    435435    void setRects(VBoxVHWASurfaceBase *pPrimary, const QRect & aTargRect, const QRect & aSrcRect, const QRect & aVisibleTargRect, bool bForceReinit);
     
    583583    GLuint createDisplay(VBoxVHWASurfaceBase *pPrimary);
    584584    void doDisplay(VBoxVHWASurfaceBase *pPrimary, VBoxVHWAGlProgramVHWA * pProgram, bool bBindDst);
    585     void synchTexMem(const QRect * aRect);
     585    bool synchTexMem(const QRect * aRect);
    586586
    587587    int performBlt(const QRect * pDstRect, VBoxVHWASurfaceBase * pSrcSurface, const QRect * pSrcRect, const VBoxVHWAColorKey * pDstCKey, const VBoxVHWAColorKey * pSrcCKey, bool blt);
     
    772772    }
    773773
    774     void performDisplay()
     774    bool performDisplay(bool bForce)
    775775    {
    776776        VBoxVHWASurfaceBase * pPrimary = mPrimary.current();
    777         pPrimary->performDisplay(NULL);
     777        bForce |= pPrimary->performDisplay(NULL, bForce);
    778778
    779779        for (OverlayList::const_iterator it = mOverlays.begin();
     
    783783            if(pOverlay)
    784784            {
    785                 pOverlay->performDisplay(pPrimary);
     785                bForce |= pOverlay->performDisplay(pPrimary, bForce);
    786786            }
    787787        }
     788        return bForce;
    788789    }
    789790
     
    10611062    const QRect & vboxViewport() const {return mViewport;}
    10621063
    1063     void performDisplay() { mDisplay.performDisplay(); }
     1064    bool performDisplay(bool bForce) { return mDisplay.performDisplay(bForce); }
    10641065protected:
    10651066
     
    10731074//        else
    10741075//        {
    1075             mDisplay.performDisplay();
     1076            mDisplay.performDisplay(true);
    10761077//        }
    10771078    }
     
    11651166
    11661167
    1167 typedef enum
    1168 {
    1169     VBOXFBOVERLAY_DONE = 1,
    1170     VBOXFBOVERLAY_MODIFIED,
    1171     VBOXFBOVERLAY_UNTOUCHED
    1172 } VBOXFBOVERLAY_RESUT;
     1168//typedef enum
     1169//{
     1170//    VBOXFBOVERLAY_DONE = 1,
     1171//    VBOXFBOVERLAY_MODIFIED,
     1172//    VBOXFBOVERLAY_UNTOUCHED
     1173//} VBOXFBOVERLAY_RESUT;
    11731174
    11741175class VBoxQGLOverlay
     
    12011202    }
    12021203
    1203     VBOXFBOVERLAY_RESUT onPaintEvent (const QPaintEvent *pe, QRect *pRect);
     1204//    VBOXFBOVERLAY_RESUT onPaintEvent (const QPaintEvent *pe, QRect *pRect);
     1205
    12041206    void onResizeEvent (const class VBoxResizeEvent *re);
    12051207    void onResizeEventPostprocess (const class VBoxResizeEvent *re);
    12061208
    1207     void viewportResized(QResizeEvent * re)
     1209    void onViewportResized(QResizeEvent * re)
    12081210    {
    12091211        vboxDoCheckUpdateViewport();
     
    12111213    }
    12121214
    1213     void viewportScrolled(int dx, int dy)
     1215    void onViewportScrolled(int dx, int dy)
    12141216    {
    12151217        vboxDoCheckUpdateViewport();
     
    12571259#else
    12581260            makeCurrent();
    1259             mpOverlayWidget->performDisplay();
     1261            mpOverlayWidget->performDisplay(false);
    12601262            mpOverlayWidget->swapBuffers();
    12611263#endif
     
    13501352    }
    13511353
    1352     void paintEvent (QPaintEvent *pe)
    1353     {
    1354         QRect rect;
    1355         VBOXFBOVERLAY_RESUT res = mOverlay.onPaintEvent(pe, &rect);
    1356         switch(res)
    1357         {
    1358             case VBOXFBOVERLAY_MODIFIED:
    1359             {
    1360                 QPaintEvent modified(rect);
    1361                 T::paintEvent(&modified);
    1362             } break;
    1363             case VBOXFBOVERLAY_UNTOUCHED:
    1364                 T::paintEvent(pe);
    1365                 break;
    1366             default:
    1367                 break;
    1368         }
    1369     }
     1354//    void paintEvent (QPaintEvent *pe)
     1355//    {
     1356//        QRect rect;
     1357//        VBOXFBOVERLAY_RESUT res = mOverlay.onPaintEvent(pe, &rect);
     1358//        switch(res)
     1359//        {
     1360//            case VBOXFBOVERLAY_MODIFIED:
     1361//            {
     1362//                QPaintEvent modified(rect);
     1363//                T::paintEvent(&modified);
     1364//            } break;
     1365//            case VBOXFBOVERLAY_UNTOUCHED:
     1366//                T::paintEvent(pe);
     1367//                break;
     1368//            default:
     1369//                break;
     1370//        }
     1371//    }
    13701372
    13711373    void resizeEvent (VBoxResizeEvent *re)
     
    13781380    void viewportResized(QResizeEvent * re)
    13791381    {
    1380         mOverlay.viewportResized(re);
     1382        mOverlay.onViewportResized(re);
    13811383        T::viewportResized(re);
    13821384    }
     
    13841386    void viewportScrolled(int dx, int dy)
    13851387    {
    1386         mOverlay.viewportScrolled(dx, dy);
     1388        mOverlay.onViewportScrolled(dx, dy);
    13871389        T::viewportScrolled(dx, dy);
    13881390    }
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette