Changeset 47577 in vbox for trunk/src/VBox/HostServices/SharedOpenGL/crserverlib
- Timestamp:
- Aug 7, 2013 10:13:47 AM (11 years ago)
- Location:
- trunk/src/VBox/HostServices/SharedOpenGL/crserverlib
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server.h
r47566 r47577 134 134 135 135 void crVBoxServerNotifyEvent(int32_t idScreen, uint32_t uEvent, void*pvData); 136 void crVBoxServerCheckVisibilityEvent(int32_t idScreen); 137 136 138 void crServerDisplayTermAll(); 137 139 -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_config.c
r47485 r47577 59 59 cr_server.bWindowsInitiallyHidden = GL_FALSE; 60 60 61 memset(cr_server.acVisibleWindows, 0, sizeof (cr_server.acVisibleWindows)); 61 cr_server.cDisableEvents = 0; 62 memset(cr_server.aWinVisibilityInfos, 0, sizeof (cr_server.aWinVisibilityInfos)); 62 63 63 64 cr_server.pfnNotifyEventCB = NULL; -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_main.c
r47566 r47577 2666 2666 } 2667 2667 2668 void crVBoxServerCheckVisibilityEvent(int32_t idScreen) 2669 { 2670 if (cr_server.cDisableEvents) 2671 return; 2672 2673 if (idScreen < 0) 2674 { 2675 int32_t i = 0; 2676 for (; i < cr_server.screenCount; ++i) 2677 { 2678 crVBoxServerCheckVisibilityEvent(i); 2679 } 2680 return; 2681 } 2682 2683 CRASSERT(idScreen < cr_server.screenCount); 2684 2685 if (!cr_server.aWinVisibilityInfos[idScreen].cVisibleWindows == !cr_server.aWinVisibilityInfos[idScreen].fLastReportedVisible) 2686 return; 2687 2688 crVBoxServerNotifyEvent(idScreen, VBOX3D_NOTIFY_EVENT_TYPE_VISIBLE_3DDATA, 2689 cr_server.aWinVisibilityInfos[idScreen].cVisibleWindows ? (void*)1 : NULL); 2690 2691 cr_server.aWinVisibilityInfos[idScreen].fLastReportedVisible = cr_server.aWinVisibilityInfos[idScreen].cVisibleWindows ? 1 : 0; 2692 } 2693 2668 2694 static void crVBoxServerReparentMuralCB(unsigned long key, void *data1, void *data2) 2669 2695 { -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_muralfbo.c
r47485 r47577 749 749 void crServerVBoxCompositionDisableEnter(CRMuralInfo *mural) 750 750 { 751 ++cr_server.cDisableEvents; 752 Assert(cr_server.cDisableEvents); 753 751 754 ++mural->cDisabled; 752 755 Assert(mural->cDisabled); … … 767 770 mural->fForcePresentState = GL_FALSE; 768 771 } 772 773 --cr_server.cDisableEvents; 774 Assert(cr_server.cDisableEvents < UINT32_MAX/2); 775 crVBoxServerCheckVisibilityEvent(-1); 769 776 } 770 777 -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_window.c
r47566 r47577 41 41 pMural->fIsVisible = fIsVisible; 42 42 43 CRASSERT(pMural->screenId < RT_ELEMENTS(cr_server.acVisibleWindows));43 CRASSERT(pMural->screenId < cr_server.screenCount); 44 44 45 45 if (fIsVisible) 46 46 { 47 ++cr_server.acVisibleWindows[pMural->screenId]; 48 if (cr_server.acVisibleWindows[pMural->screenId] == 1) 49 crVBoxServerNotifyEvent(pMural->screenId, VBOX3D_NOTIFY_EVENT_TYPE_VISIBLE_3DDATA, (void*)1); 47 ++cr_server.aWinVisibilityInfos[pMural->screenId].cVisibleWindows; 50 48 } 51 49 else 52 50 { 53 --cr_server.a cVisibleWindows[pMural->screenId];54 CRASSERT(cr_server.a cVisibleWindows[pMural->screenId]< UINT32_MAX/2);55 if (cr_server.acVisibleWindows[pMural->screenId] == 0)56 crVBoxServerNotifyEvent(pMural->screenId, VBOX3D_NOTIFY_EVENT_TYPE_VISIBLE_3DDATA, NULL); 57 }51 --cr_server.aWinVisibilityInfos[pMural->screenId].cVisibleWindows; 52 CRASSERT(cr_server.aWinVisibilityInfos[pMural->screenId].cVisibleWindows < UINT32_MAX/2); 53 } 54 55 crVBoxServerCheckVisibilityEvent(pMural->screenId); 58 56 } 59 57
Note:
See TracChangeset
for help on using the changeset viewer.