Changeset 30440 in vbox for trunk/src/VBox/GuestHost/OpenGL
- Timestamp:
- Jun 24, 2010 6:51:20 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 63086
- Location:
- trunk/src/VBox/GuestHost/OpenGL
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/GuestHost/OpenGL/glapi_parser/APIspec.txt
r27244 r30440 8500 8500 chromium extpack 8501 8501 8502 name VBoxPackSetInjectThread 8503 return void 8504 category VBox 8505 chromium nopack 8506 8507 name VBoxPackGetInjectID 8508 return GLuint 8509 category VBox 8510 chromium nopack 8511 8512 name VBoxPackSetInjectID 8513 return void 8514 param id GLuint 8515 category VBox 8516 chromium nopack 8502 8517 8503 8518 # OpenGL 1.5 -
trunk/src/VBox/GuestHost/OpenGL/glapi_parser/apiutil.py
r27267 r30440 353 353 cat == "1.2" or 354 354 cat == "Chromium" or 355 cat == "GL_chromium"): 355 cat == "GL_chromium" or 356 cat == "VBox"): 356 357 return '' 357 358 elif (cat == '1.3' or -
trunk/src/VBox/GuestHost/OpenGL/include/cr_net.h
r21523 r30440 220 220 uint32_t cbHostBufferAllocated; 221 221 uint32_t cbHostBuffer; 222 #ifdef IN_GUEST 223 uint32_t u32InjectClientID; 224 #endif 222 225 /* Used on host side to indicate that we are not allowed to store above pointers for later use 223 226 * in crVBoxHGCMReceiveMessage. As those messages are going to be processed after the correspoding -
trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_init.c
r29930 r30440 232 232 * Ensures context bits are reset */ 233 233 crStateFreeContext(defaultContext); 234 #ifdef CHROMIUM_THREADSAFE 235 crSetTSD(&__contextTSD, NULL); 236 #else 237 __currentContext = NULL; 238 #endif 234 239 } 235 240 -
trunk/src/VBox/GuestHost/OpenGL/util/vboxhgcm.c
r28800 r30440 331 331 static void crVBoxHGCMWriteExact(CRConnection *conn, const void *buf, unsigned int len) 332 332 { 333 CRVBOXHGCMWRITE parms;334 333 int rc; 335 336 parms.hdr.result = VERR_WRONG_ORDER; 337 parms.hdr.u32ClientID = conn->u32ClientID; 338 parms.hdr.u32Function = SHCRGL_GUEST_FN_WRITE; 339 parms.hdr.cParms = SHCRGL_CPARMS_WRITE; 340 341 parms.pBuffer.type = VMMDevHGCMParmType_LinAddr_In; 342 parms.pBuffer.u.Pointer.size = len; 343 parms.pBuffer.u.Pointer.u.linearAddr = (uintptr_t) buf; 344 345 rc = crVBoxHGCMCall(&parms, sizeof(parms)); 346 347 if (RT_FAILURE(rc) || RT_FAILURE(parms.hdr.result)) 348 { 349 crWarning("SHCRGL_GUEST_FN_WRITE failed with %x %x\n", rc, parms.hdr.result); 334 int32_t callRes; 335 336 #ifdef IN_GUEST 337 if (conn->u32InjectClientID) 338 { 339 CRVBOXHGCMINJECT parms; 340 341 parms.hdr.result = VERR_WRONG_ORDER; 342 parms.hdr.u32ClientID = conn->u32ClientID; 343 parms.hdr.u32Function = SHCRGL_GUEST_FN_INJECT; 344 parms.hdr.cParms = SHCRGL_CPARMS_INJECT; 345 346 parms.u32ClientID.type = VMMDevHGCMParmType_32bit; 347 parms.u32ClientID.u.value32 = conn->u32InjectClientID; 348 349 parms.pBuffer.type = VMMDevHGCMParmType_LinAddr_In; 350 parms.pBuffer.u.Pointer.size = len; 351 parms.pBuffer.u.Pointer.u.linearAddr = (uintptr_t) buf; 352 353 rc = crVBoxHGCMCall(&parms, sizeof(parms)); 354 callRes = parms.hdr.result; 355 } 356 else 357 #endif 358 { 359 CRVBOXHGCMWRITE parms; 360 361 parms.hdr.result = VERR_WRONG_ORDER; 362 parms.hdr.u32ClientID = conn->u32ClientID; 363 parms.hdr.u32Function = SHCRGL_GUEST_FN_WRITE; 364 parms.hdr.cParms = SHCRGL_CPARMS_WRITE; 365 366 parms.pBuffer.type = VMMDevHGCMParmType_LinAddr_In; 367 parms.pBuffer.u.Pointer.size = len; 368 parms.pBuffer.u.Pointer.u.linearAddr = (uintptr_t) buf; 369 370 rc = crVBoxHGCMCall(&parms, sizeof(parms)); 371 callRes = parms.hdr.result; 372 } 373 374 if (RT_FAILURE(rc) || RT_FAILURE(callRes)) 375 { 376 crWarning("SHCRGL_GUEST_FN_WRITE failed with %x %x\n", rc, callRes); 350 377 } 351 378 } … … 476 503 _crVBoxHGCMWriteBytes(conn, start, len); 477 504 #else 505 CRASSERT(!conn->u32InjectClientID); 478 506 crDebug("SHCRGL: sending userbuf with %d bytes\n", len); 479 507 crVBoxHGCMWriteReadExact(conn, start, len, CR_VBOXHGCM_USERALLOCATED); … … 493 521 * No need to prepend it to the buffer 494 522 */ 523 #ifdef IN_GUEST 524 if (conn->u32InjectClientID) 525 { 526 crVBoxHGCMWriteExact(conn, start, len); 527 } 528 else 529 #endif 495 530 crVBoxHGCMWriteReadExact(conn, start, len, hgcm_buffer->kind); 496 531
Note:
See TracChangeset
for help on using the changeset viewer.