VirtualBox

Changeset 27846 in vbox


Ignore:
Timestamp:
Mar 30, 2010 9:14:51 PM (15 years ago)
Author:
vboxsync
Message:

2d: additional fix to not-using-VRAM mode

Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
2 edited

Legend:

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

    r27839 r27846  
    22442244
    22452245        Assert((pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_OFFSCREENPLAIN) == 0);
     2246
     2247        reportedFormat = VBoxVHWAColorFormat(pCmd->SurfInfo.PixelFormat.c.rgbBitCount,
     2248                                    pCmd->SurfInfo.PixelFormat.m1.rgbRBitMask,
     2249                                    pCmd->SurfInfo.PixelFormat.m2.rgbGBitMask,
     2250                                    pCmd->SurfInfo.PixelFormat.m3.rgbBBitMask);
     2251
    22462252        if (pVga->handle() == VBOXVHWA_SURFHANDLE_INVALID
    22472253                && (pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_OFFSCREENPLAIN) == 0)
     
    22552261//                        && pCmd->SurfInfo.height == pVga->height())
    22562262                {
    2257                     reportedFormat = VBoxVHWAColorFormat(pCmd->SurfInfo.PixelFormat.c.rgbBitCount,
    2258                                                 pCmd->SurfInfo.PixelFormat.m1.rgbRBitMask,
    2259                                                 pCmd->SurfInfo.PixelFormat.m2.rgbGBitMask,
    2260                                                 pCmd->SurfInfo.PixelFormat.m3.rgbBBitMask);
    22612263                    // the assert below is incorrect in case the Framebuffer is working in "not using VRAM" mode
    22622264//                    Assert(pVga->pixelFormat().equals(format));
     
    22862288    if(!surf)
    22872289    {
    2288         Assert(!(pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_PRIMARYSURFACE));
    22892290        VBOXVHWAIMG_TYPE fFlags = 0;
    22902291        if(!bNoPBO)
     
    22952296        }
    22962297
    2297         if(pCmd->SurfInfo.PixelFormat.flags & VBOXVHWA_PF_RGB)
    2298         {
    2299             VBoxVHWAColorFormat format(pCmd->SurfInfo.PixelFormat.c.rgbBitCount,
     2298        QSize surfSize(pCmd->SurfInfo.width, pCmd->SurfInfo.height);
     2299        QRect primaryRect = mDisplay.getPrimary()->rect();
     2300        VBoxVHWAColorFormat format;
     2301        if (bPrimary)
     2302            format = mDisplay.getVGA()->pixelFormat();
     2303        else if (pCmd->SurfInfo.PixelFormat.flags & VBOXVHWA_PF_RGB)
     2304            format = VBoxVHWAColorFormat(pCmd->SurfInfo.PixelFormat.c.rgbBitCount,
    23002305                                            pCmd->SurfInfo.PixelFormat.m1.rgbRBitMask,
    23012306                                            pCmd->SurfInfo.PixelFormat.m2.rgbGBitMask,
    23022307                                            pCmd->SurfInfo.PixelFormat.m3.rgbBBitMask);
    2303             QSize surfSize(pCmd->SurfInfo.width, pCmd->SurfInfo.height);
    2304             QRect primaryRect = mDisplay.getPrimary()->rect();
     2308        else if (pCmd->SurfInfo.PixelFormat.flags & VBOXVHWA_PF_FOURCC)
     2309            format = VBoxVHWAColorFormat(pCmd->SurfInfo.PixelFormat.fourCC);
     2310        else
     2311            AssertBreakpoint();
     2312
     2313        if (format.isValid())
     2314        {
    23052315            surf = new VBoxVHWASurfaceBase(this,
    23062316                        surfSize,
     
    23152325                        fFlags);
    23162326        }
    2317         else if(pCmd->SurfInfo.PixelFormat.flags & VBOXVHWA_PF_FOURCC)
    2318         {
    2319             QSize surfSize(pCmd->SurfInfo.width, pCmd->SurfInfo.height);
    2320             QRect primaryRect = mDisplay.getPrimary()->rect();
    2321 
    2322             VBoxVHWAColorFormat format(pCmd->SurfInfo.PixelFormat.fourCC);
    2323             surf = new VBoxVHWASurfaceBase(this,
    2324                                     surfSize,
    2325                                     primaryRect,
    2326                                     QRect(0, 0, surfSize.width(), surfSize.height()),
    2327                                     mViewport,
    2328                                     format,
    2329                                     pSrcBltCKey, pDstBltCKey, pSrcOverlayCKey, pDstOverlayCKey,
    2330 #ifdef VBOXVHWA_USE_TEXGROUP
    2331                                     0,
    2332 #endif
    2333                                     fFlags);
    2334         }
    23352327        else
    23362328        {
    2337             Assert(0);
    2338             VBOXQGLLOG_EXIT(("pSurf (0x%x)\n",surf));
     2329            AssertBreakpoint();
     2330            VBOXQGLLOG_EXIT(("pSurf (0x%p)\n",surf));
    23392331            return VERR_GENERAL_FAILURE;
    23402332        }
     
    24302422    Assert(surf->handle() == handle);
    24312423
    2432     VBOXQGLLOG_EXIT(("pSurf (0x%x)\n",surf));
     2424    VBOXQGLLOG_EXIT(("pSurf (0x%p)\n",surf));
    24332425
    24342426    return VINF_SUCCESS;
  • trunk/src/VBox/Frontends/VirtualBox/src/VBoxFBOverlayCommon.h

    r26719 r27846  
    3131# define VBOXQGLLOGREL(_m) LogRel( _m )
    3232#endif
    33 #define VBOXQGLLOG_ENTER(_m)
     33#define VBOXQGLLOG_ENTER(_m) do {}while(0)
    3434//do{VBOXQGLLOG(("==>[%s]:", __FUNCTION__)); VBOXQGLLOG(_m);}while(0)
    35 #define VBOXQGLLOG_EXIT(_m)
     35#define VBOXQGLLOG_EXIT(_m) do {}while(0)
    3636//do{VBOXQGLLOG(("<==[%s]:", __FUNCTION__)); VBOXQGLLOG(_m);}while(0)
    3737#ifdef DEBUG
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