Changeset 22951 in vbox for trunk/src/VBox/Frontends/VirtualBox
- Timestamp:
- Sep 11, 2009 10:37:45 AM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 52217
- Location:
- trunk/src/VBox/Frontends/VirtualBox
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/include/VBoxFBOverlay.h
r22921 r22951 28 28 #include <iprt/critsect.h> 29 29 30 #define VBOXVHWA_ALLOW_PRIMARY_AND_OVERLAY_ONLY 1 31 30 32 #ifdef DEBUG 31 33 #include "iprt/stream.h" -
trunk/src/VBox/Frontends/VirtualBox/src/VBoxFBOverlay.cpp
r22921 r22951 3236 3236 return VINF_SUCCESS; 3237 3237 } 3238 3238 #ifdef VBOXVHWA_ALLOW_PRIMARY_AND_OVERLAY_ONLY 3239 3239 if(pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_OFFSCREENPLAIN) 3240 3240 { … … 3245 3245 return VINF_SUCCESS; 3246 3246 } 3247 #endif 3247 3248 3248 3249 if(pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_PRIMARYSURFACE) 3249 3250 { 3250 pCmd->u.out.ErrInfo = 0; 3251 if(pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_COMPLEX) 3252 { 3253 #ifdef DEBUG_misha 3254 Assert(0); 3255 #endif 3256 pCmd->u.out.ErrInfo = -1; 3257 } 3258 else 3259 { 3260 pCmd->u.out.ErrInfo = 0; 3261 } 3251 3262 return VINF_SUCCESS; 3252 3263 } 3253 3264 3254 3255 Assert(/*pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_OFFSCREENPLAIN 3256 || */ pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_OVERLAY); 3265 #ifdef VBOXVHWA_ALLOW_PRIMARY_AND_OVERLAY_ONLY 3266 if((pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_OVERLAY) == 0) 3267 { 3268 #ifdef DEBUGVHWASTRICT 3269 Assert(0); 3270 #endif 3271 pCmd->u.out.ErrInfo = -1; 3272 return VINF_SUCCESS; 3273 } 3274 #endif 3257 3275 3258 3276 if(pCmd->u.in.bIsDifferentPixelFormat) … … 3338 3356 VBoxVHWASurfaceBase *surf = NULL; 3339 3357 // VBoxVHWAColorFormat *pFormat = NULL, Format; 3358 bool bNoPBO = false; 3340 3359 bool bPrimary = false; 3341 3360 … … 3367 3386 if(pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_PRIMARYSURFACE) 3368 3387 { 3388 bNoPBO = true; 3369 3389 bPrimary = true; 3370 3390 VBoxVHWASurfaceBase * pVga = vboxGetVGASurface(); 3371 3391 3372 if(pVga->handle() == VBOXVHWA_SURFHANDLE_INVALID) 3392 Assert((pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_OFFSCREENPLAIN) == 0); 3393 if(pVga->handle() == VBOXVHWA_SURFHANDLE_INVALID 3394 && (pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_OFFSCREENPLAIN) == 0) 3373 3395 { 3374 3396 Assert(pCmd->SurfInfo.PixelFormat.flags & VBOXVHWA_PF_RGB); … … 3403 3425 } 3404 3426 } 3427 else if(pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_OFFSCREENPLAIN) 3428 { 3429 bNoPBO = true; 3430 } 3405 3431 3406 3432 if(!surf) … … 3421 3447 format, 3422 3448 pSrcBltCKey, pDstBltCKey, pSrcOverlayCKey, pDstOverlayCKey, 3423 b Primary);3449 bNoPBO); 3424 3450 } 3425 3451 else if(pCmd->SurfInfo.PixelFormat.flags & VBOXVHWA_PF_FOURCC) … … 3436 3462 format, 3437 3463 pSrcBltCKey, pDstBltCKey, pSrcOverlayCKey, pDstOverlayCKey, 3438 b Primary);3464 bNoPBO); 3439 3465 } 3440 3466 else … … 3450 3476 if(pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_OVERLAY) 3451 3477 { 3452 Assert(!bPrimary); 3478 #ifdef DEBUG_misha 3479 Assert(!bNoPBO); 3480 #endif 3453 3481 3454 3482 if(!mConstructingList) … … 3466 3494 } 3467 3495 } 3468 else if(bPrimary)3496 else 3469 3497 { 3470 3498 VBoxVHWASurfaceBase * pVga = vboxGetVGASurface(); … … 3476 3504 Assert(pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_VISIBLE); 3477 3505 #endif 3478 // if(pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_VISIBLE)3506 if(bPrimary) 3479 3507 { 3480 3508 Assert(surf->getComplexList() == mDisplay.getVGA()->getComplexList()); … … 3482 3510 mDisplay.updateVGA(surf); 3483 3511 } 3484 }3485 else if(pCmd->SurfInfo.surfCaps & VBOXVHWA_SCAPS_COMPLEX)3486 {3487 //TODO: impl fullscreen mode support3488 Assert(0);3489 }3490 else3491 {3492 Assert(0);3493 3512 } 3494 3513 } … … 3992 4011 pCmd->u.out.surfaceCaps = 3993 4012 VBOXVHWA_SCAPS_PRIMARYSURFACE 3994 // | VBOXVHWA_SCAPS_OFFSCREENPLAIN 4013 #ifndef VBOXVHWA_ALLOW_PRIMARY_AND_OVERLAY_ONLY 4014 | VBOXVHWA_SCAPS_OFFSCREENPLAIN 4015 #endif 3995 4016 | VBOXVHWA_SCAPS_FLIP 3996 4017 | VBOXVHWA_SCAPS_LOCALVIDMEM
Note:
See TracChangeset
for help on using the changeset viewer.