儲存庫 vbox 的更動 50137
- 時間撮記:
- 2014-1-21 上午10:23:54 (11 年 以前)
- 檔案:
-
- 修改 1 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_presenter.cpp
r50123 r50137 276 276 277 277 #define CR_PMGR_MODE_WINDOW 0x1 278 /* CR_PMGR_MODE_WINDOW gets automatically set with it*/278 /* mutually exclusive with CR_PMGR_MODE_WINDOW */ 279 279 #define CR_PMGR_MODE_ROOTVR 0x2 280 280 #define CR_PMGR_MODE_VRDP 0x4 … … 516 516 CrVrScrCompositorEntryFlagsSet(&pEntry->Entry, fFlags); 517 517 pEntry->cRefs = 1; 518 pEntry->Flags.Value = 0; 518 519 CrHTableCreate(&pEntry->HTable, 0); 519 520 … … 959 960 { 960 961 HCR_FRAMEBUFFER_ENTRY hEntry = CrFbEntryFromCompositorEntry(pEntry); 962 rc = EntryCreated(mpFb, hEntry); 963 if (!RT_SUCCESS(rc)) 964 { 965 WARN(("err")); 966 break; 967 } 968 961 969 rc = EntryAdded(mpFb, hEntry); 962 970 if (!RT_SUCCESS(rc)) 963 971 { 964 972 WARN(("err")); 973 EntryDestroyed(mpFb, hEntry); 965 974 break; 966 975 } … … 1405 1414 } 1406 1415 1416 uint64_t oldParentId = mParentId; 1417 1407 1418 mParentId = parentId; 1408 1419 1409 if (!parentId)1410 cr_server.head_spu->dispatch_table.WindowShow(mSpuWindow, false);1411 1412 1420 if (mSpuWindow) 1413 1421 { 1422 if (oldParentId && !parentId && mFlags.fVisible) 1423 cr_server.head_spu->dispatch_table.WindowShow(mSpuWindow, false); 1424 1414 1425 renderspuSetWindowId(mParentId); 1415 1426 renderspuReparentWindow(mSpuWindow); 1416 1427 renderspuSetWindowId(cr_server.screen[0].winID); 1428 1429 if (parentId) 1430 cr_server.head_spu->dispatch_table.WindowPosition(mSpuWindow, mxPos, myPos); 1431 1432 if (!oldParentId && parentId && mFlags.fVisible) 1433 cr_server.head_spu->dispatch_table.WindowShow(mSpuWindow, true); 1417 1434 } 1418 1435 … … 2928 2945 u32Mode = CR_PMGR_MODE_ALL & u32Mode; 2929 2946 if (CR_PMGR_MODE_ROOTVR & u32Mode) 2930 u32Mode |=CR_PMGR_MODE_WINDOW;2947 u32Mode &= ~CR_PMGR_MODE_WINDOW; 2931 2948 return u32Mode; 2932 2949 } … … 3000 3017 3001 3018 CR_FBDISPLAY_INFO *pInfo = &g_CrPresenter.aDisplayInfos[idScreen]; 3002 u32ModeRemove = crPMgrModeAdjustVal(u32ModeRemove);3019 u32ModeRemove = ((u32ModeRemove | crPMgrModeAdjustVal(u32ModeRemove)) & CR_PMGR_MODE_ALL); 3003 3020 u32ModeAdd = crPMgrModeAdjustVal(u32ModeAdd); 3004 3021 u32ModeRemove &= pInfo->u32Mode; 3005 3022 u32ModeAdd &= ~(u32ModeRemove | pInfo->u32Mode); 3023 uint32_t u32ModeResulting = ((pInfo->u32Mode | u32ModeAdd) & ~u32ModeRemove); 3024 uint32_t u32Tmp = crPMgrModeAdjustVal(u32ModeResulting); 3025 if (u32Tmp != u32ModeResulting) 3026 { 3027 u32ModeAdd |= (u32Tmp & ~u32ModeResulting); 3028 u32ModeRemove |= (~u32Tmp & u32ModeResulting); 3029 u32ModeResulting = u32Tmp; 3030 Assert(u32ModeResulting == ((pInfo->u32Mode | u32ModeAdd) & ~u32ModeRemove)); 3031 } 3006 3032 if (!u32ModeRemove && !u32ModeAdd) 3007 3033 return VINF_SUCCESS; … … 3025 3051 pInfo->pDpWinRootVr = NULL; 3026 3052 pInfo->pDpWin = NULL; 3027 3028 if (!(u32ModeRemove & CR_PMGR_MODE_WINDOW))3029 {3030 /* ensure the window is re-created */3031 u32ModeAdd |= CR_PMGR_MODE_WINDOW;3032 }3033 3053 } 3034 3054 else if (u32ModeRemove & CR_PMGR_MODE_WINDOW) … … 3107 3127 delete pOldWin; 3108 3128 3109 pInfo->u32Mode = ((pInfo->u32Mode | u32ModeAdd) & ~u32ModeRemove);3129 pInfo->u32Mode = u32ModeResulting; 3110 3130 3111 3131 return VINF_SUCCESS;
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器