Changeset 3550 in vbox for trunk/src/VBox/Additions/WINNT
- Timestamp:
- Jul 11, 2007 1:16:26 PM (18 years ago)
- Location:
- trunk/src/VBox/Additions/WINNT/Graphics/Display
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Display/Makefile.kmk
r3418 r3550 32 32 VBoxDisp_SYSSUFF = .dll 33 33 VBoxDisp_DEFS = _WIN32_WINNT=0x0501 LOG_TO_BACKDOOR VBOX_WITH_DDRAW VBOX_WITH_OPENGL 34 VBoxDisp_INCS = ..\..\include 34 35 #VBoxDisp_DEFS += LOG_ENABLED 35 36 #VBoxDisp_DEFS += STAT_sunlover -
trunk/src/VBox/Additions/WINNT/Graphics/Display/enable.c
r3425 r3550 15 15 #include "driver.h" 16 16 #include "dd.h" 17 #include <VBoxDisplay.h> 17 18 18 19 // The driver function table with all function index/address pairs … … 76 77 ULONG APIENTRY DrvEscape(SURFOBJ *pso, ULONG iEsc, ULONG cjIn, PVOID pvIn, ULONG cjOut, PVOID pvOut) 77 78 { 79 PDEV* ppdev = (PDEV*) pso->dhpdev; 80 78 81 DISPDBG((0, "%s: %p, %p, %p, %p, %p, %p\n", __FUNCTION__, pso, iEsc, cjIn, pvIn, cjOut, pvOut)); 79 82 … … 107 110 } 108 111 #endif 112 113 case VBOXESC_SETVISIBLEREGION: 114 { 115 LPRGNDATA lpRgnData = (LPRGNDATA)pvIn; 116 117 DISPDBG((0, "VBOXESC_SETVISIBLEREGION\n")); 118 119 if ( cjIn >= sizeof(RGNDATAHEADER) 120 && pvIn 121 && lpRgnData->rdh.dwSize == sizeof(RGNDATAHEADER) 122 && lpRgnData->rdh.iType == RDH_RECTANGLES 123 && cjIn == lpRgnData->rdh.nCount * sizeof(RECT) + sizeof(RGNDATAHEADER)) 124 { 125 DWORD ulReturn, i; 126 PRTRECT pRTRect; 127 RECT *pRect = (RECT *)&lpRgnData->Buffer; 128 129 pRTRect = (PRTRECT) EngAllocMem(0, lpRgnData->rdh.nCount*sizeof(RTRECT), ALLOC_TAG); 130 for (i=0;i<lpRgnData->rdh.nCount;i++) 131 { 132 pRTRect[i].xLeft = pRect->left; 133 pRTRect[i].yBottom = pRect->bottom; 134 pRTRect[i].xRight = pRect->right; 135 pRTRect[i].yTop = pRect->top; 136 } 137 138 if (EngDeviceIoControl(ppdev->hDriver, 139 IOCTL_VIDEO_VBOX_SETVISIBLEREGION, 140 pRTRect, 141 lpRgnData->rdh.nCount*sizeof(RTRECT), 142 NULL, 143 0, 144 &ulReturn)) 145 { 146 DISPDBG((0, "DISP DrvAssertMode failed IOCTL_VIDEO_VBOX_SETVISIBLEREGION\n")); 147 return 0; 148 } 149 else 150 { 151 DISPDBG((0, "DISP IOCTL_VIDEO_VBOX_SETVISIBLEREGION successful\n")); 152 return 1; 153 } 154 155 } 156 else 157 { 158 if (pvIn) 159 DISPDBG((0, "check failed rdh.dwSize=%x iType=%d size=%d expected size=%d\n", lpRgnData->rdh.dwSize, lpRgnData->rdh.iType, cjIn, lpRgnData->rdh.nCount * sizeof(RECT) + sizeof(RGNDATAHEADER))); 160 } 161 162 break; 163 } 109 164 110 165 case QUERYESCSUPPORT:
Note:
See TracChangeset
for help on using the changeset viewer.