Changeset 53748 in vbox for trunk/src/VBox/Main/src-client
- Timestamp:
- Jan 6, 2015 3:25:52 AM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 97530
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/src-client/DisplayImpl.cpp
r53730 r53748 92 92 93 93 Display::Display() 94 : mParent(NULL) 94 : mParent(NULL), mfIsCr3DEnabled(false) 95 95 { 96 96 } … … 306 306 #if defined(VBOX_WITH_HGCM) && defined(VBOX_WITH_CROGL) 307 307 BOOL f3DSnapshot = FALSE; 308 BOOL is3denabled; 309 that->mParent->i_machine()->COMGETTER(Accelerate3DEnabled)(&is3denabled); 310 if ( is3denabled 308 if ( that->mfIsCr3DEnabled 311 309 && that->mCrOglCallbacks.pfnHasData 312 310 && that->mCrOglCallbacks.pfnHasData()) … … 634 632 } 635 633 634 /* Cache the 3D settings. */ 635 BOOL fIs3DEnabled = FALSE; 636 mParent->i_machine()->COMGETTER(Accelerate3DEnabled)(&fIs3DEnabled); 637 GraphicsControllerType_T enmGpuType = (GraphicsControllerType_T)GraphicsControllerType_VBoxVGA; 638 mParent->i_machine()->COMGETTER(GraphicsControllerType)(&enmGpuType); 639 mfIsCr3DEnabled = fIs3DEnabled && enmGpuType == GraphicsControllerType_VBoxVGA; 640 636 641 /* Confirm a successful initialization */ 637 642 autoInitSpan.setSucceeded(); … … 737 742 if (!mhCrOglSvc) 738 743 { 739 /* no 3D or the VMSVGA3d kind. */ 740 #ifdef VBOX_STRICT 741 BOOL fIs3DEnabled; 742 mParent->i_machine()->COMGETTER(Accelerate3DEnabled)(&fIs3DEnabled); 743 GraphicsControllerType_T enmGraphicsController; 744 mParent->i_machine()->COMGETTER(GraphicsControllerType)(&enmGraphicsController); 745 Assert(!fIs3DEnabled || enmGraphicsController != GraphicsControllerType_VBoxVGA); 746 #endif 744 /* No 3D or the VMSVGA3d kind. */ 745 Assert(!mfIsCr3DEnabled); 747 746 return VERR_INVALID_STATE; 748 747 } … … 791 790 return VINF_SUCCESS; /* nop it */ 792 791 793 BOOL is3denabled; 794 mParent->i_machine()->COMGETTER(Accelerate3DEnabled)(&is3denabled); 795 796 if (is3denabled) 792 if (mfIsCr3DEnabled) 797 793 { 798 794 int rc = VERR_INVALID_STATE; … … 802 798 if (pVMMDev) 803 799 { 804 VBOXCRCMDCTL_HGCM *pCtl =805 800 VBOXCRCMDCTL_HGCM *pCtl; 801 pCtl = (VBOXCRCMDCTL_HGCM*)RTMemAlloc(sizeof(CRVBOXHGCMDEVRESIZE) + sizeof(VBOXCRCMDCTL_HGCM)); 806 802 if (pCtl) 807 803 { … … 817 813 818 814 rc = i_crCtlSubmit(&pCtl->Hdr, sizeof(*pCtl), i_displayCrCmdFree, pCtl); 819 if ( !RT_SUCCESS(rc))815 if (RT_FAILURE(rc)) 820 816 { 821 817 AssertMsgFailed(("crCtlSubmit failed rc %d\n", rc)); … … 1228 1224 1229 1225 #if defined(VBOX_WITH_HGCM) && defined(VBOX_WITH_CROGL) 1230 BOOL is3denabled = FALSE;1231 1232 mParent->i_machine()->COMGETTER(Accelerate3DEnabled)(&is3denabled);1233 1234 1226 VMMDev *vmmDev = mParent->i_getVMMDev(); 1235 if ( is3denabled && vmmDev)1227 if (mfIsCr3DEnabled && vmmDev) 1236 1228 { 1237 1229 if (mhCrOglSvc) … … 1559 1551 { 1560 1552 #if defined(VBOX_WITH_HGCM) && defined(VBOX_WITH_CROGL) 1561 BOOL fIs3DEnabled = FALSE; 1562 mParent->i_machine()->COMGETTER(Accelerate3DEnabled)(&fIs3DEnabled); 1563 1564 if (fIs3DEnabled) 1553 if (mfIsCr3DEnabled) 1565 1554 { 1566 1555 VBOXCRCMDCTL_HGCM data; … … 1605 1594 if (ptrVM.isOk()) 1606 1595 { 1607 BOOL fIs3DEnabled = FALSE; 1608 mParent->i_machine()->COMGETTER(Accelerate3DEnabled)(&fIs3DEnabled); 1609 1610 if (fIs3DEnabled) 1596 if (mfIsCr3DEnabled) 1611 1597 { 1612 1598 VBOXCRCMDCTL_HGCM data; … … 1740 1726 if (!enabled) 1741 1727 { 1742 BOOL is3denabled = FALSE;1743 1744 mParent->i_machine()->COMGETTER(Accelerate3DEnabled)(&is3denabled);1745 1746 1728 VMMDev *vmmDev = mParent->i_getVMMDev(); 1747 if ( is3denabled && vmmDev)1729 if (mfIsCr3DEnabled && vmmDev) 1748 1730 { 1749 1731 VBOXCRCMDCTL_HGCM *pData = (VBOXCRCMDCTL_HGCM*)RTMemAlloc(sizeof(VBOXCRCMDCTL_HGCM)); … … 1777 1759 uint32_t u32Width, uint32_t u32Height) 1778 1760 { 1779 BOOL is3denabled; 1780 pDisplay->mParent->i_machine()->COMGETTER(Accelerate3DEnabled)(&is3denabled); 1781 if ( is3denabled 1761 if ( pDisplay->mfIsCr3DEnabled 1782 1762 && pDisplay->mCrOglCallbacks.pfnHasData 1783 1763 && pDisplay->mCrOglCallbacks.pfnHasData()) … … 2610 2590 HRESULT Display::viewportChanged(ULONG aScreenId, ULONG aX, ULONG aY, ULONG aWidth, ULONG aHeight) 2611 2591 { 2592 AssertMsgReturn(aScreenId < mcMonitors, ("aScreendId=%d mcMonitors=%d\n", aScreenId, mcMonitors), E_INVALIDARG); 2593 2612 2594 #if defined(VBOX_WITH_HGCM) && defined(VBOX_WITH_CROGL) 2613 2614 if (mcMonitors <= aScreenId) 2615 { 2616 AssertMsgFailed(("invalid screen id\n")); 2617 return E_INVALIDARG; 2618 } 2619 2620 BOOL is3denabled; 2621 mParent->i_machine()->COMGETTER(Accelerate3DEnabled)(&is3denabled); 2622 2623 if (is3denabled) 2595 if (mfIsCr3DEnabled) 2624 2596 { 2625 2597 int rc = i_crViewportNotify(aScreenId, aX, aY, aWidth, aHeight); … … 2639 2611 /* The driver might not have been constructed yet */ 2640 2612 if (mpDrv) 2641 {2642 2613 mpDrv->pUpPort->pfnSetViewPort(mpDrv->pUpPort, aScreenId, aX, aY, aWidth, aHeight); 2643 }2644 2614 #endif 2645 2615 … … 2870 2840 RTCritSectRwLeaveExcl(&mCrOglLock); 2871 2841 } 2872 #endif 2842 #endif /* VBOX_WITH_CRHGSMI */ 2873 2843 2874 2844 /** … … 2937 2907 * @thread EMT 2938 2908 */ 2939 DECLCALLBACK(void) Display::i_displayRefreshCallback(PPDMIDISPLAYCONNECTOR pInterface)2909 /*static*/ DECLCALLBACK(void) Display::i_displayRefreshCallback(PPDMIDISPLAYCONNECTOR pInterface) 2940 2910 { 2941 2911 PDRVMAINDISPLAY pDrv = PDMIDISPLAYCONNECTOR_2_MAINDISPLAY(pInterface); … … 2979 2949 do { 2980 2950 # if defined(VBOX_WITH_HGCM) && defined(VBOX_WITH_CROGL) 2981 BOOL is3denabled; 2982 pDisplay->mParent->i_machine()->COMGETTER(Accelerate3DEnabled)(&is3denabled); 2983 if (is3denabled) 2951 if (pDisplay->mfIsCr3DEnabled) 2984 2952 { 2985 2953 if (ASMAtomicCmpXchgU32(&pDisplay->mfCrOglVideoRecState, CRVREC_STATE_SUBMITTED, CRVREC_STATE_IDLE)) … … 3000 2968 if (RT_SUCCESS(rc)) 3001 2969 break; 3002 else 3003 AssertMsgFailed(("crCtlSubmit failed rc %d\n", rc)); 2970 AssertMsgFailed(("crCtlSubmit failed rc %d\n", rc)); 3004 2971 } 3005 2972
Note:
See TracChangeset
for help on using the changeset viewer.