- Timestamp:
- Aug 25, 2009 12:20:53 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 51425
- Location:
- trunk/src/VBox/Devices/VMMDev
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/VMMDev/VMMDev.cpp
r22423 r22433 887 887 if (displayChangeRequest->eventAck == VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST) 888 888 { 889 /* Remember which resolution the client has queried, subsequent reads will return the same values. */ 889 /* Remember which resolution the client has queried, subsequent reads 890 * will return the same values. */ 890 891 pThis->lastReadDisplayChangeRequest = pThis->displayChangeRequest; 891 } 892 893 /* just pass on the information */ 894 displayChangeRequest->xres = pThis->lastReadDisplayChangeRequest.xres; 895 displayChangeRequest->yres = pThis->lastReadDisplayChangeRequest.yres; 896 displayChangeRequest->bpp = pThis->lastReadDisplayChangeRequest.bpp; 892 pThis->fGuestSentChangeEventAck = true; 893 } 894 895 if (pThis->fGuestSentChangeEventAck) 896 { 897 displayChangeRequest->xres = pThis->lastReadDisplayChangeRequest.xres; 898 displayChangeRequest->yres = pThis->lastReadDisplayChangeRequest.yres; 899 displayChangeRequest->bpp = pThis->lastReadDisplayChangeRequest.bpp; 900 } 901 else 902 { 903 /* This is not a response to a VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST, just 904 * read the last valid video mode hint. This happens when the guest X server 905 * determines the initial mode. */ 906 displayChangeRequest->xres = pThis->displayChangeRequest.xres; 907 displayChangeRequest->yres = pThis->displayChangeRequest.yres; 908 displayChangeRequest->bpp = pThis->displayChangeRequest.bpp; 909 } 897 910 Log(("VMMDev: returning display change request xres = %d, yres = %d, bpp = %d\n", 898 911 displayChangeRequest->xres, displayChangeRequest->yres, displayChangeRequest->bpp)); … … 915 928 if (displayChangeRequest->eventAck == VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST) 916 929 { 917 /* Remember which resolution the client has queried, subsequent reads will return the same values. */ 930 /* Remember which resolution the client has queried, subsequent reads 931 * will return the same values. */ 918 932 pThis->lastReadDisplayChangeRequest = pThis->displayChangeRequest; 919 } 920 921 /* just pass on the information */ 922 displayChangeRequest->xres = pThis->lastReadDisplayChangeRequest.xres; 923 displayChangeRequest->yres = pThis->lastReadDisplayChangeRequest.yres; 924 displayChangeRequest->bpp = pThis->lastReadDisplayChangeRequest.bpp; 925 displayChangeRequest->display = pThis->lastReadDisplayChangeRequest.display; 933 pThis->fGuestSentChangeEventAck = true; 934 } 935 936 if (pThis->fGuestSentChangeEventAck) 937 { 938 displayChangeRequest->xres = pThis->lastReadDisplayChangeRequest.xres; 939 displayChangeRequest->yres = pThis->lastReadDisplayChangeRequest.yres; 940 displayChangeRequest->bpp = pThis->lastReadDisplayChangeRequest.bpp; 941 displayChangeRequest->display = pThis->lastReadDisplayChangeRequest.display; 942 } 943 else 944 { 945 /* This is not a response to a VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST, just 946 * read the last valid video mode hint. This happens when the guest X server 947 * determines the initial video mode. */ 948 displayChangeRequest->xres = pThis->displayChangeRequest.xres; 949 displayChangeRequest->yres = pThis->displayChangeRequest.yres; 950 displayChangeRequest->bpp = pThis->displayChangeRequest.bpp; 951 displayChangeRequest->display = pThis->displayChangeRequest.display; 952 } 926 953 Log(("VMMDev: returning display change request xres = %d, yres = %d, bpp = %d at %d\n", 927 954 displayChangeRequest->xres, displayChangeRequest->yres, displayChangeRequest->bpp, displayChangeRequest->display)); … … 2086 2113 2087 2114 2088 #define VMMDEV_SSM_VERSION 1 02115 #define VMMDEV_SSM_VERSION 11 2089 2116 2090 2117 /** … … 2114 2141 SSMR3PutU32(pSSMHandle, pThis->fu32AdditionsOk); 2115 2142 SSMR3PutU32(pSSMHandle, pThis->u32VideoAccelEnabled); 2143 SSMR3PutBool(pSSMHandle, pThis->fGuestSentChangeEventAck); 2116 2144 2117 2145 SSMR3PutU32(pSSMHandle, pThis->guestCaps); … … 2158 2186 SSMR3GetU32(pSSMHandle, &pThis->fu32AdditionsOk); 2159 2187 SSMR3GetU32(pSSMHandle, &pThis->u32VideoAccelEnabled); 2188 if (u32Version > 10) 2189 SSMR3GetBool(pSSMHandle, &pThis->fGuestSentChangeEventAck); 2160 2190 2161 2191 SSMR3GetU32(pSSMHandle, &pThis->guestCaps); … … 2523 2553 /* clear pending display change request. */ 2524 2554 memset (&pThis->lastReadDisplayChangeRequest, 0, sizeof (pThis->lastReadDisplayChangeRequest)); 2555 pThis->fGuestSentChangeEventAck = false; 2525 2556 2526 2557 /* disable seamless mode */ -
trunk/src/VBox/Devices/VMMDev/VMMDevState.h
r22272 r22433 114 114 uint32_t u32VideoAccelEnabled; 115 115 116 /** true if the guest responded to VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST at least once */ 117 bool fGuestSentChangeEventAck; 118 116 119 /** resolution change request */ 117 120 struct
Note:
See TracChangeset
for help on using the changeset viewer.