Changeset 5159 in vbox for trunk/src/VBox/Additions/WINNT/Graphics
- Timestamp:
- Oct 4, 2007 4:09:56 PM (18 years ago)
- svn:sync-xref-src-repo-rev:
- 25054
- Location:
- trunk/src/VBox/Additions/WINNT/Graphics
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Display/dd.c
r5144 r5159 649 649 650 650 ShareMemory.ViewOffset = 0; 651 ShareMemory.ViewSize = pDev->cyScreen * pDev->lDeltaScreen; 651 652 // We map down to the end of the frame buffer, including the offscreen heap. 653 ShareMemory.ViewSize = pDev->layout.offVBVABuffer; 652 654 653 655 DISPDBG((0, "ViewSize = %x\n", ShareMemory.ViewSize)); … … 661 663 &ReturnedDataLength)) 662 664 { 663 DISPDBG((0, "Failed IOCTL_VIDEO_SHARE_MEMORY "));665 DISPDBG((0, "Failed IOCTL_VIDEO_SHARE_MEMORY\n")); 664 666 665 667 lpMapMemory->ddRVal = DDERR_GENERIC; … … 717 719 { 718 720 PPDEV pDev = (PPDEV)lpLock->lpDD->dhpdev; 719 720 DISPDBG((0, "%s: %p bHasRect = %d\n", __FUNCTION__, pDev, lpLock->bHasRect));721 721 722 pDev->ddLock.bLocked = TRUE; 723 724 if (lpLock->bHasRect) 725 { 726 DISPDBG((0, "%d,%d %dx%d\n", lpLock->rArea.left, lpLock->rArea.top, lpLock->rArea.right - lpLock->rArea.left, lpLock->rArea.bottom - lpLock->rArea.top)); 727 pDev->ddLock.rArea = lpLock->rArea; 728 } 729 else 730 { 731 pDev->ddLock.rArea.left = 0; 732 pDev->ddLock.rArea.top = 0; 733 pDev->ddLock.rArea.right = pDev->cxScreen; 734 pDev->ddLock.rArea.bottom = pDev->cyScreen; 722 PDD_SURFACE_LOCAL lpSurfaceLocal = lpLock->lpDDSurface; 723 724 DISPDBG((0, "%s: %p bHasRect = %d fpProcess = %p\n", __FUNCTION__, pDev, lpLock->bHasRect, lpLock->fpProcess)); 725 726 if (lpSurfaceLocal->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) 727 { 728 /* The updated rectangle must be reported only for the primary surface. */ 729 pDev->ddLock.bLocked = TRUE; 730 731 if (lpLock->bHasRect) 732 { 733 DISPDBG((0, "%d,%d %dx%d\n", lpLock->rArea.left, lpLock->rArea.top, lpLock->rArea.right - lpLock->rArea.left, lpLock->rArea.bottom - lpLock->rArea.top)); 734 pDev->ddLock.rArea = lpLock->rArea; 735 } 736 else 737 { 738 pDev->ddLock.rArea.left = 0; 739 pDev->ddLock.rArea.top = 0; 740 pDev->ddLock.rArea.right = pDev->cxScreen; 741 pDev->ddLock.rArea.bottom = pDev->cyScreen; 742 } 743 } 744 else 745 { 746 DISPDBG((0, "%s: secondary surface.\n", __FUNCTION__)); 735 747 } 736 748 -
trunk/src/VBox/Additions/WINNT/Graphics/Display/driver.h
r5144 r5159 52 52 53 53 /* VRAM 54 * | | || |55 * 0+framebuffer+ VBVA buffer+ddraw heap+displayinfo=cScreenSize54 * | | | | | 55 * 0+framebuffer+ddraw heap+VBVA buffer+displayinfo=cScreenSize 56 56 */ 57 57 typedef struct _VRAMLAYOUT … … 62 62 ULONG cbFrameBuffer; 63 63 64 ULONG offDDRAWHeap; //@todo 65 ULONG cbDDRAWHeap; 66 64 67 ULONG offVBVABuffer; 65 68 ULONG cbVBVABuffer; 66 67 ULONG offDDRAWHeap;68 ULONG cbDDRAWHeap;69 69 70 70 ULONG offDisplayInformation; -
trunk/src/VBox/Additions/WINNT/Graphics/Display/screen.c
r4122 r5159 94 94 else 95 95 { 96 ppdev->layout.offVBVABuffer = ppdev->layout.offFrameBuffer + ppdev->layout.cbFrameBuffer; 96 /* Now the offscreen heap followed by the VBVA buffer. */ 97 ppdev->layout.offDDRAWHeap = ppdev->layout.offFrameBuffer + ppdev->layout.cbFrameBuffer; 97 98 98 99 cbAvailable -= ppdev->layout.cbVBVABuffer; 100 ppdev->layout.cbDDRAWHeap = cbAvailable; 99 101 100 ppdev->layout.offDDRAWHeap = ppdev->layout.offVBVABuffer + ppdev->layout.cbVBVABuffer; 101 ppdev->layout.cbDDRAWHeap = cbAvailable; 102 ppdev->layout.offVBVABuffer = ppdev->layout.offDDRAWHeap + ppdev->layout.cbDDRAWHeap; 102 103 } 103 104 } … … 114 115 ppdev->layout.cbFrameBuffer = RT_ALIGN_32(pMemoryInformation->FrameBufferLength, 0x1000); 115 116 116 ppdev->layout.offVBVABuffer = ppdev->layout.offFrameBuffer + ppdev->layout.cbFrameBuffer; 117 ppdev->layout.offDDRAWHeap = ppdev->layout.offFrameBuffer + ppdev->layout.cbFrameBuffer; 118 ppdev->layout.cbDDRAWHeap = ppdev->layout.cbVRAM - ppdev->layout.offDDRAWHeap; 119 120 ppdev->layout.offVBVABuffer = ppdev->layout.offDDRAWHeap + ppdev->layout.cbDDRAWHeap; 117 121 ppdev->layout.cbVBVABuffer = 0; 118 122 119 ppdev->layout.offDDRAWHeap = ppdev->layout.offVBVABuffer + ppdev->layout.cbVBVABuffer; 120 ppdev->layout.cbDDRAWHeap = ppdev->layout.cbVRAM - ppdev->layout.offDDRAWHeap; 121 122 ppdev->layout.offDisplayInformation = ppdev->layout.offDDRAWHeap + ppdev->layout.cbDDRAWHeap; 123 ppdev->layout.offDisplayInformation = ppdev->layout.offVBVABuffer + ppdev->layout.cbVBVABuffer; 123 124 ppdev->layout.cbDisplayInformation = 0; 124 125 } … … 128 129 " offFrameBuffer = 0x%X\n" 129 130 " cbFrameBuffer = 0x%X\n" 131 " offDDRAWHeap = 0x%X\n" 132 " cbDDRAWHeap = 0x%X\n" 130 133 " offVBVABuffer = 0x%X\n" 131 134 " cbVBVABuffer = 0x%X\n" 132 " offDDRAWHeap = 0x%X\n"133 " cbDDRAWHeap = 0x%X\n"134 135 " offDisplayInformation = 0x%X\n" 135 136 " cbDisplayInformation = 0x%X\n", … … 137 138 ppdev->layout.offFrameBuffer, 138 139 ppdev->layout.cbFrameBuffer, 140 ppdev->layout.offDDRAWHeap, 141 ppdev->layout.cbDDRAWHeap, 139 142 ppdev->layout.offVBVABuffer, 140 143 ppdev->layout.cbVBVABuffer, 141 ppdev->layout.offDDRAWHeap,142 ppdev->layout.cbDDRAWHeap,143 144 ppdev->layout.offDisplayInformation, 144 145 ppdev->layout.cbDisplayInformation -
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.cpp
r4950 r5159 1299 1299 pShareMemory = (PVIDEO_SHARE_MEMORY)RequestPacket->InputBuffer; 1300 1300 1301 if ( (pShareMemory->ViewOffset > pDevExt-> ulFrameBufferSize)1302 || ((pShareMemory->ViewOffset + pShareMemory->ViewSize) > pDevExt-> ulFrameBufferSize) ) {1303 1304 dprintf(("IOCTL_VIDEO_SHARE_VIDEO_MEMORY - ERROR_INVALID_PARAMETER %x:%x size %x\n", pShareMemory->ViewOffset, pShareMemory->ViewSize, pDevExt-> ulFrameBufferSize));1301 if ( (pShareMemory->ViewOffset > pDevExt->pPrimary->u.primary.ulMaxFrameBufferSize) 1302 || ((pShareMemory->ViewOffset + pShareMemory->ViewSize) > pDevExt->pPrimary->u.primary.ulMaxFrameBufferSize) ) { 1303 1304 dprintf(("IOCTL_VIDEO_SHARE_VIDEO_MEMORY - ERROR_INVALID_PARAMETER %x:%x size %x\n", pShareMemory->ViewOffset, pShareMemory->ViewSize, pDevExt->pPrimary->u.primary.ulMaxFrameBufferSize)); 1305 1305 RequestPacket->StatusBlock->Status = ERROR_INVALID_PARAMETER; 1306 1306 Result = FALSE;
Note:
See TracChangeset
for help on using the changeset viewer.