Changeset 31756 in vbox for trunk/src/VBox/Additions/WINNT/Graphics
- Timestamp:
- Aug 18, 2010 12:10:29 PM (14 years ago)
- Location:
- trunk/src/VBox/Additions/WINNT/Graphics
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxScreen.cpp
r31687 r31756 416 416 HRESULT hr = S_FALSE; 417 417 418 Assert(0);419 420 418 if (!pMon->bInited) 421 419 { … … 527 525 { 528 526 DWORD dwErr = WaitForSingleObject(pMon->hThread, INFINITE); 529 if (dwErr != WAIT_OBJECT_0) 527 if (dwErr == WAIT_OBJECT_0) 528 { 529 CloseHandle(pMon->hThread); 530 pMon->hThread = 0; 531 } 532 else 530 533 { 531 534 DWORD winErr = GetLastError(); … … 537 540 { 538 541 DWORD winErr = GetLastError(); 539 hr = HRESULT_FROM_WIN32(winErr); 540 Assert(0); 541 } 542 543 return hr; 544 } 545 542 Assert(winErr != ERROR_SUCCESS); 543 if (winErr != ERROR_INVALID_THREAD_ID) 544 { 545 hr = HRESULT_FROM_WIN32(winErr); 546 Assert(0); 547 } 548 /* else - treat as OK */ 549 } 550 551 return hr; 552 } 553 -
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.h
r31687 r31756 156 156 } VBOXWDDM_POINTER_INFO, *PVBOXWDDM_POINTER_INFO; 157 157 158 typedef struct VBOXWDDM_GLOBAL_POINTER_INFO 159 { 160 uint32_t cVisible; 161 } VBOXWDDM_GLOBAL_POINTER_INFO, *PVBOXWDDM_GLOBAL_POINTER_INFO; 162 158 163 #ifdef VBOX_WITH_VIDEOHWACCEL 159 164 typedef struct VBOXWDDM_VHWA … … 308 313 volatile uint32_t cContexts3D; 309 314 volatile uint32_t cDMACmdsOutstanding; 315 316 VBOXWDDM_GLOBAL_POINTER_INFO PointerInfo; 310 317 311 318 VBOXSHGSMILIST CtlList; -
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoWddm.cpp
r31687 r31756 2668 2668 PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)hAdapter; 2669 2669 PVBOXWDDM_POINTER_INFO pPointerInfo = &pDevExt->aSources[pSetPointerPosition->VidPnSourceId].PointerInfo; 2670 PVBOXWDDM_GLOBAL_POINTER_INFO pGlobalPointerInfo = &pDevExt->PointerInfo; 2670 2671 PVIDEO_POINTER_ATTRIBUTES pPointerAttributes = &pPointerInfo->Attributes.data; 2671 2672 BOOLEAN bNotifyVisibility; 2672 2673 if (pSetPointerPosition->Flags.Visible) 2673 2674 { 2674 bNotifyVisibility = !(pPointerAttributes->Enable & VBOX_MOUSE_POINTER_VISIBLE); 2675 pPointerAttributes->Enable |= VBOX_MOUSE_POINTER_VISIBLE; 2675 bNotifyVisibility = (pGlobalPointerInfo->cVisible == 0); 2676 if (!(pPointerAttributes->Enable & VBOX_MOUSE_POINTER_VISIBLE)) 2677 { 2678 ++pGlobalPointerInfo->cVisible; 2679 pPointerAttributes->Enable |= VBOX_MOUSE_POINTER_VISIBLE; 2680 } 2676 2681 } 2677 2682 else 2678 2683 { 2679 bNotifyVisibility = !!(pPointerAttributes->Enable & VBOX_MOUSE_POINTER_VISIBLE); 2680 pPointerAttributes->Enable &= ~VBOX_MOUSE_POINTER_VISIBLE; 2684 if (!!(pPointerAttributes->Enable & VBOX_MOUSE_POINTER_VISIBLE)) 2685 { 2686 --pGlobalPointerInfo->cVisible; 2687 Assert(pGlobalPointerInfo->cVisible < UINT32_MAX/2); 2688 pPointerAttributes->Enable &= ~VBOX_MOUSE_POINTER_VISIBLE; 2689 bNotifyVisibility = (pGlobalPointerInfo->cVisible == 0); 2690 } 2681 2691 } 2682 2692
Note:
See TracChangeset
for help on using the changeset viewer.