Changeset 3432 in vbox
- Timestamp:
- Jul 5, 2007 8:14:18 AM (18 years ago)
- svn:sync-xref-src-repo-rev:
- 22642
- Location:
- trunk/src/VBox
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/OpenGL/OGLComplexSync.cpp
r3427 r3432 122 122 { 123 123 /* if ppfd == NULL, then DrvDescribelayerPlane returns the maximum nr of supported pixel formats */ 124 if (ppfd) 125 { 126 VBOX_OGL_GEN_SYNC_OP4_PASS_PTR_RET(int, DrvDescribePixelFormat, hdc, iPixelFormat, nBytes, nBytes, ppfd); 127 return retval; 128 } 129 else 130 { 131 VBOX_OGL_GEN_SYNC_OP4_RET(int, DrvDescribePixelFormat, hdc, iPixelFormat, nBytes, ppfd); 132 return retval; 133 } 124 VBOX_OGL_GEN_SYNC_OP4_PASS_PTR_RET(int, DrvDescribePixelFormat, hdc, iPixelFormat, nBytes, nBytes, ppfd); 125 return retval; 134 126 } 135 127 -
trunk/src/VBox/Additions/WINNT/Graphics/OpenGL/VBoxOGL.cpp
r3339 r3432 435 435 parms.lasterror.type = VMMDevHGCMParmType_32bit; 436 436 parms.lasterror.u.value32 = 0; 437 parms.pLastParam.type = VMMDevHGCMParmType_LinAddr; 438 parms.pLastParam.u.Pointer.size = cbParam; 439 parms.pLastParam.u.Pointer.u.linearAddr = (vmmDevHypPtr)pLastParam; 437 if (!cbParam || !pLastParam) 438 { 439 parms.pLastParam.type = VMMDevHGCMParmType_LinAddr; 440 parms.pLastParam.u.Pointer.size = cbParam; 441 parms.pLastParam.u.Pointer.u.linearAddr = (vmmDevHypPtr)pLastParam; 442 } 443 else 444 { 445 /* Placeholder as HGCM doesn't like NULL pointers */ 446 Assert(!cbParam && !pLastParam); 447 parms.pLastParam.type = VMMDevHGCMParmType_32bit; 448 parms.pLastParam.u.value32 = 0; 449 } 440 450 441 451 int rc = vboxHGCMCall(vboxOGLCtx.hGuestDrv, &parms, sizeof (parms)); -
trunk/src/VBox/HostServices/SharedOpenGL/service.cpp
r3428 r3432 210 210 if ( paParms[0].type != VBOX_HGCM_SVC_PARM_PTR /* pCmdBuffer */ 211 211 || paParms[1].type != VBOX_HGCM_SVC_PARM_32BIT /* cCommands */ 212 || paParms[2].type != VBOX_HGCM_SVC_PARM_PTR /* pLastParam */ 212 || ( paParms[2].type != VBOX_HGCM_SVC_PARM_PTR /* pLastParam */ 213 && paParms[2].type != VBOX_HGCM_SVC_PARM_32BIT) /* pLastParam if NULL */ 213 214 || paParms[3].type != VBOX_HGCM_SVC_PARM_64BIT /* retval */ 214 215 || paParms[4].type != VBOX_HGCM_SVC_PARM_32BIT /* lasterror */ … … 227 228 228 229 /* Save the last parameter of the last command in the client structure so the macro can pick it up there */ 229 pClient->pLastParam = (uint8_t *)paParms[2].u.pointer.addr; 230 pClient->cbLastParam = paParms[2].u.pointer.size; 230 if (paParms[2].type == VBOX_HGCM_SVC_PARM_32BIT) 231 { 232 pClient->pLastParam = NULL; 233 pClient->cbLastParam = 0; 234 } 235 else 236 { 237 pClient->pLastParam = (uint8_t *)paParms[2].u.pointer.addr; 238 pClient->cbLastParam = paParms[2].u.pointer.size; 239 } 231 240 232 241 /* Execute the function. */
Note:
See TracChangeset
for help on using the changeset viewer.