Changeset 47081 in vbox
- Timestamp:
- Jul 10, 2013 2:44:12 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferQuartz2D.cpp
r47068 r47081 248 248 if (m_pMachineLogic->visualStateType() == UIVisualStateType_Seamless) 249 249 { 250 /* Clear the background (make the rect fully transparent): */251 CGContextClearRect(ctx, viewRect);252 253 250 /* Determine current visible region: */ 254 251 RegionRects *pRgnRcts = ASMAtomicXchgPtrT(&mRegion, NULL, RegionRects*); 252 253 /* Prepare cleanup-region: */ 254 QRegion cleanupRegion(aEvent->rect()); 255 /* Filter out visible-rectangles; 256 * That way we erase *only* invisible-rectangles of paint-region: */ 257 if (pRgnRcts && pRgnRcts->used > 0) 258 { 259 /* Slowly, step-by-step filter our visible-rectangles: */ 260 CGRect *pCgVisibleRect = pRgnRcts->rcts; 261 for (ULONG uVisibleRectIndex = 0; uVisibleRectIndex < pRgnRcts->used; ++uVisibleRectIndex) 262 { 263 /* Prepare Qt visible-rectangle, flipping received CG visible-rectangle: */ 264 CGRect cgVisibleRectFlippedToQt = ::darwinFlipCGRect(*pCgVisibleRect, viewRect.size.height); 265 QRect visibleRect(cgVisibleRectFlippedToQt.origin.x, cgVisibleRectFlippedToQt.origin.y, 266 cgVisibleRectFlippedToQt.size.width, cgVisibleRectFlippedToQt.size.height); 267 /* Filter that rectangle out: */ 268 cleanupRegion -= visibleRect; 269 ++pCgVisibleRect; 270 } 271 } 272 /* Erase cleanup-region: */ 273 if (!cleanupRegion.isEmpty()) 274 { 275 /* Slowly, step-by-step erase cleanup-rectangles: */ 276 foreach (const QRect &cleanupRect, cleanupRegion.rects()) 277 { 278 CGRect cgCleanupRect = ::darwinToCGRect(cleanupRect); 279 CGContextClearRect(ctx, ::darwinFlipCGRect(cgCleanupRect, viewRect.size.height)); 280 } 281 } 282 283 /* Prepare painting path/clipping: */ 255 284 if (pRgnRcts) 256 285 {
Note:
See TracChangeset
for help on using the changeset viewer.