Lines Matching refs:pContext

424              * (pContext->shared->bTexResyncNeeded==GL_TRUE).
644 static int32_t crStateLoadTextureObjPtr(CRTextureObj **pTexture, CRContext *pContext, GLenum target, PSSMHANDLE pSSM)
658 *pTexture = (CRTextureObj *) crHashtableSearch(pContext->shared->textureTable, texName);
665 *pTexture = &(pContext->texture.base1D);
668 *pTexture = &(pContext->texture.base2D);
672 *pTexture = &(pContext->texture.base3D);
677 *pTexture = &(pContext->texture.baseCubeMap);
682 *pTexture = &(pContext->texture.baseRect);
715 static int32_t crStateLoadTexUnitCurrentTexturePtrs(CRTextureUnit *pTexUnit, CRContext *pContext, PSSMHANDLE pSSM)
719 rc = crStateLoadTextureObjPtr(&pTexUnit->currentTexture1D, pContext, GL_TEXTURE_1D, pSSM);
721 rc = crStateLoadTextureObjPtr(&pTexUnit->currentTexture2D, pContext, GL_TEXTURE_1D, pSSM);
723 rc = crStateLoadTextureObjPtr(&pTexUnit->currentTexture3D, pContext, GL_TEXTURE_2D, pSSM);
726 rc = crStateLoadTextureObjPtr(&pTexUnit->currentTextureCubeMap, pContext, GL_TEXTURE_CUBE_MAP_ARB, pSSM);
730 rc = crStateLoadTextureObjPtr(&pTexUnit->currentTextureRect, pContext, GL_TEXTURE_RECTANGLE_NV, pSSM);
1268 static int32_t crStateLoadClientPointer(CRVertexArrays *pArrays, int32_t index, CRContext *pContext, PSSMHANDLE pSSM)
1278 cp->buffer = ui==0 ? pContext->bufferobject.nullBuffer : crHashtableSearch(pContext->shared->buffersTable, ui);
1462 int32_t crStateSaveContext(CRContext *pContext, PSSMHANDLE pSSM)
1468 CRASSERT(pContext && pSSM);
1470 CRASSERT(pContext->client.attribStackDepth == 0);
1473 pContext->buffer.storedWidth = 0;
1474 pContext->buffer.storedHeight = 0;
1476 CRASSERT(VBoxTlsRefIsFunctional(pContext));
1479 crStateSyncHWErrorState(pContext);
1481 rc = SSMR3PutMem(pSSM, pContext, sizeof (*pContext));
1484 if (crHashtableNumElements(pContext->shared->dlistTable)>0)
1485 crWarning("Saving state with %d display lists, unsupported", crHashtableNumElements(pContext->shared->dlistTable));
1487 if (crHashtableNumElements(pContext->program.programHash)>0)
1488 crDebug("Saving state with %d programs", crHashtableNumElements(pContext->program.programHash));
1490 rc = SSMR3PutS32(pSSM, pContext->shared->id);
1493 rc = SSMR3PutS32(pSSM, crStateContextIsShared(pContext));
1496 if (pContext->shared->refCount>1)
1498 bSaveShared = pContext->shared->saveCount==0;
1500 ++pContext->shared->saveCount;
1501 if (pContext->shared->saveCount == pContext->shared->refCount)
1503 pContext->shared->saveCount=0;
1508 rc = SSMR3PutMem(pSSM, pContext->transform.clipPlane, sizeof(GLvectord)*CR_MAX_CLIP_PLANES);
1510 rc = SSMR3PutMem(pSSM, pContext->transform.clip, sizeof(GLboolean)*CR_MAX_CLIP_PLANES);
1512 rc = crStateSaveMatrixStack(&pContext->transform.modelViewStack, pSSM);
1514 rc = crStateSaveMatrixStack(&pContext->transform.projectionStack, pSSM);
1516 rc = crStateSaveMatrixStack(&pContext->transform.colorStack, pSSM);
1520 rc = crStateSaveMatrixStack(&pContext->transform.textureStack[i], pSSM);
1525 rc = crStateSaveMatrixStack(&pContext->transform.programStack[i], pSSM);
1530 rc = crStateSaveTextureObjData(&pContext->texture.base1D, pSSM);
1532 rc = crStateSaveTextureObjData(&pContext->texture.base2D, pSSM);
1534 rc = crStateSaveTextureObjData(&pContext->texture.base3D, pSSM);
1536 rc = crStateSaveTextureObjData(&pContext->texture.proxy1D, pSSM);
1538 rc = crStateSaveTextureObjData(&pContext->texture.proxy2D, pSSM);
1540 rc = crStateSaveTextureObjData(&pContext->texture.proxy3D, pSSM);
1542 rc = crStateSaveTextureObjData(&pContext->texture.baseCubeMap, pSSM);
1544 rc = crStateSaveTextureObjData(&pContext->texture.proxyCubeMap, pSSM);
1548 rc = crStateSaveTextureObjData(&pContext->texture.baseRect, pSSM);
1550 rc = crStateSaveTextureObjData(&pContext->texture.proxyRect, pSSM);
1557 CRASSERT(pContext->shared && pContext->shared->textureTable);
1558 rc = crStateSaveKeys(pContext->shared->textureTable, pSSM);
1560 ui32 = crHashtableNumElements(pContext->shared->textureTable);
1563 crHashtableWalk(pContext->shared->textureTable, crStateSaveSharedTextureCB, pSSM);
1571 pTexUnit = &pContext->texture.unit[pContext->texture.curTextureUnit];
1589 rc = crStateSaveTexUnitCurrentTexturePtrs(&pContext->texture.unit[i], pSSM);
1594 CRASSERT(pContext->lighting.light);
1595 rc = SSMR3PutMem(pSSM, pContext->lighting.light, CR_MAX_LIGHTS * sizeof(*pContext->lighting.light));
1602 if (pContext->attrib.enableStack[i].clip)
1604 rc = SSMR3PutMem(pSSM, pContext->attrib.enableStack[i].clip,
1605 pContext->limits.maxClipPlanes*sizeof(GLboolean));
1609 if (pContext->attrib.enableStack[i].light)
1611 rc = SSMR3PutMem(pSSM, pContext->attrib.enableStack[i].light,
1612 pContext->limits.maxLights*sizeof(GLboolean));
1616 if (pContext->attrib.lightingStack[i].light)
1618 rc = SSMR3PutMem(pSSM, pContext->attrib.lightingStack[i].light,
1619 pContext->limits.maxLights*sizeof(CRLight));
1623 for (j=0; j<pContext->limits.maxTextureUnits; ++j)
1625 rc = crStateSaveTexUnitCurrentTexturePtrs(&pContext->attrib.textureStack[i].unit[j], pSSM);
1629 if (pContext->attrib.transformStack[i].clip)
1631 rc = SSMR3PutMem(pSSM, pContext->attrib.transformStack[i].clip,
1632 pContext->limits.maxClipPlanes*sizeof(GLboolean));
1636 if (pContext->attrib.transformStack[i].clipPlane)
1638 rc = SSMR3PutMem(pSSM, pContext->attrib.transformStack[i].clipPlane,
1639 pContext->limits.maxClipPlanes*sizeof(GLvectord));
1643 rc = crSateSaveEvalCoeffs1D(pContext->attrib.evalStack[i].eval1D, pSSM);
1645 rc = crSateSaveEvalCoeffs2D(pContext->attrib.evalStack[i].eval2D, pSSM);
1650 rc = crSateSaveEvalCoeffs1D(pContext->eval.eval1D, pSSM);
1652 rc = crSateSaveEvalCoeffs2D(pContext->eval.eval2D, pSSM);
1659 rc = crStateSaveKeys(pContext->shared->buffersTable, pSSM);
1662 ui32 = bSaveShared? crHashtableNumElements(pContext->shared->buffersTable):0;
1667 crStateSaveBufferObjectCB(0, pContext->bufferobject.nullBuffer, pSSM);
1672 crHashtableWalk(pContext->shared->buffersTable, crStateSaveBufferObjectCB, pSSM);
1676 diff_api.BindBufferARB(GL_ARRAY_BUFFER_ARB, pContext->bufferobject.arrayBuffer->hwid);
1679 rc = SSMR3PutU32(pSSM, pContext->bufferobject.arrayBuffer->id);
1681 rc = SSMR3PutU32(pSSM, pContext->bufferobject.elementsBuffer->id);
1684 rc = SSMR3PutU32(pSSM, pContext->bufferobject.packBuffer->id);
1686 rc = SSMR3PutU32(pSSM, pContext->bufferobject.unpackBuffer->id);
1692 rc = crStateSaveClientPointer(&pContext->client.array, i, pSSM);
1696 crDebug("client.vertexArrayStackDepth %i", pContext->client.vertexArrayStackDepth);
1697 for (i=0; i<pContext->client.vertexArrayStackDepth; ++i)
1699 CRVertexArrays *pArray = &pContext->client.vertexArrayStack[i];
1709 ui32 = crHashtableNumElements(pContext->program.programHash);
1713 crStateSaveProgramCB(0, pContext->program.defaultVertexProgram, pSSM);
1714 crStateSaveProgramCB(0, pContext->program.defaultFragmentProgram, pSSM);
1716 crHashtableWalk(pContext->program.programHash, crStateSaveProgramCB, pSSM);
1718 rc = SSMR3PutU32(pSSM, pContext->program.currentVertexProgram->id);
1720 rc = SSMR3PutU32(pSSM, pContext->program.currentFragmentProgram->id);
1723 CRASSERT(!pContext->program.errorString);
1729 rc = crStateSaveKeys(pContext->shared->fbTable, pSSM);
1731 ui32 = crHashtableNumElements(pContext->shared->fbTable);
1734 crHashtableWalk(pContext->shared->fbTable, crStateSaveFramebuffersCB, pSSM);
1736 rc = crStateSaveKeys(pContext->shared->rbTable, pSSM);
1738 ui32 = crHashtableNumElements(pContext->shared->rbTable);
1741 crHashtableWalk(pContext->shared->rbTable, crStateSaveRenderbuffersCB, pSSM);
1743 rc = SSMR3PutU32(pSSM, pContext->framebufferobject.drawFB?pContext->framebufferobject.drawFB->id:0);
1745 rc = SSMR3PutU32(pSSM, pContext->framebufferobject.readFB?pContext->framebufferobject.readFB->id:0);
1747 rc = SSMR3PutU32(pSSM, pContext->framebufferobject.renderbuffer?pContext->framebufferobject.renderbuffer->id:0);
1753 ui32 = crHashtableNumElements(pContext->glsl.shaders);
1756 crHashtableWalk(pContext->glsl.shaders, crStateSaveGLSLShaderCB, pSSM);
1757 ui32 = crHashtableNumElements(pContext->glsl.programs);
1760 crHashtableWalk(pContext->glsl.programs, crStateSaveGLSLProgramCB, pSSM);
1761 rc = SSMR3PutU32(pSSM, pContext->glsl.activeProgram?pContext->glsl.activeProgram->id:0);
1776 CRContext *pContext = pParms->pfnCtxGet(data1);
1779 if (pContext!=pParms->pSrcCtx && pContext->shared->id==pParms->pSrcCtx->shared->id)
1781 pParms->pDstCtx->shared = pContext->shared;
1856 #define SLC_COPYPTR(ptr) pTmpContext->ptr = pContext->ptr
1857 #define SLC_ASSSERT_NULL_PTR(ptr) CRASSERT(!pContext->ptr)
1863 int32_t crStateLoadContext(CRContext *pContext, CRHashTable * pCtxTable, PFNCRSTATE_CONTEXT_GET pfnCtxGet, PSSMHANDLE pSSM, uint32_t u32Version)
1872 CRASSERT(pContext && pSSM);
1879 CRASSERT(VBoxTlsRefIsFunctional(pContext));
2001 /* we will later do crMemcpy from entire pTmpContext to pContext,
2002 * for simplicity store the VBOXTLSREFDATA from the pContext to pTmpContext */
2003 VBOXTLSREFDATA_COPY(pTmpContext, pContext);
2010 rc = SSMR3GetS32(pSSM, &pContext->shared->id);
2018 parms.pSrcCtx = pContext;
2024 CRASSERT(pContext->shared->refCount==1);
2026 crStateFreeShared(pContext, pContext->shared);
2027 pContext->shared = NULL;
2112 crStateCopyEvalPtrs1D(pTmpContext->eval.eval1D, pContext->eval.eval1D);
2113 crStateCopyEvalPtrs2D(pTmpContext->eval.eval2D, pContext->eval.eval2D);
2154 /* Don't have to worry about pContext->transform.current as it'd be set in crStateSetCurrent call */
2175 CRASSERT(pTmpContext->id == pContext->id);
2176 CRASSERT(VBOXTLSREFDATA_EQUAL(pContext, pTmpContext));
2178 crMemcpy(pContext, pTmpContext, sizeof(*pTmpContext));
2185 rc = SSMR3GetMem(pSSM, pContext->transform.clipPlane, sizeof(GLvectord)*CR_MAX_CLIP_PLANES);
2187 rc = SSMR3GetMem(pSSM, pContext->transform.clip, sizeof(GLboolean)*CR_MAX_CLIP_PLANES);
2189 rc = crStateLoadMatrixStack(&pContext->transform.modelViewStack, pSSM);
2191 rc = crStateLoadMatrixStack(&pContext->transform.projectionStack, pSSM);
2193 rc = crStateLoadMatrixStack(&pContext->transform.colorStack, pSSM);
2197 rc = crStateLoadMatrixStack(&pContext->transform.textureStack[i], pSSM);
2202 rc = crStateLoadMatrixStack(&pContext->transform.programStack[i], pSSM);
2207 rc = crStateLoadTextureObjData(&pContext->texture.base1D, pSSM);
2209 rc = crStateLoadTextureObjData(&pContext->texture.base2D, pSSM);
2211 rc = crStateLoadTextureObjData(&pContext->texture.base3D, pSSM);
2213 rc = crStateLoadTextureObjData(&pContext->texture.proxy1D, pSSM);
2215 rc = crStateLoadTextureObjData(&pContext->texture.proxy2D, pSSM);
2217 rc = crStateLoadTextureObjData(&pContext->texture.proxy3D, pSSM);
2220 rc = crStateLoadTextureObjData(&pContext->texture.baseCubeMap, pSSM);
2222 rc = crStateLoadTextureObjData(&pContext->texture.proxyCubeMap, pSSM);
2226 rc = crStateLoadTextureObjData(&pContext->texture.baseRect, pSSM);
2228 rc = crStateLoadTextureObjData(&pContext->texture.proxyRect, pSSM);
2235 CRASSERT(pContext->shared && pContext->shared->textureTable);
2239 rc = crStateLoadKeys(pContext->shared->buffersTable, pSSM, u32Version);
2269 crHashtableAdd(pContext->shared->textureTable, key, pTexture);
2276 rc = crStateLoadTexUnitCurrentTexturePtrs(&pContext->texture.unit[i], pContext, pSSM);
2281 pContext->shared->bTexResyncNeeded = GL_TRUE;
2284 CRASSERT(pContext->lighting.light);
2285 rc = SSMR3GetMem(pSSM, pContext->lighting.light, CR_MAX_LIGHTS * sizeof(*pContext->lighting.light));
2291 if (pContext->attrib.enableStack[i].clip)
2293 rc = crStateAllocAndSSMR3GetMem(pSSM, (void**)&pContext->attrib.enableStack[i].clip,
2294 pContext->limits.maxClipPlanes*sizeof(GLboolean));
2298 if (pContext->attrib.enableStack[i].light)
2300 rc = crStateAllocAndSSMR3GetMem(pSSM, (void**)&pContext->attrib.enableStack[i].light,
2301 pContext->limits.maxLights*sizeof(GLboolean));
2305 if (pContext->attrib.lightingStack[i].light)
2307 rc = crStateAllocAndSSMR3GetMem(pSSM, (void**)&pContext->attrib.lightingStack[i].light,
2308 pContext->limits.maxLights*sizeof(CRLight));
2312 for (k=0; k<pContext->limits.maxTextureUnits; ++k)
2314 rc = crStateLoadTexUnitCurrentTexturePtrs(&pContext->attrib.textureStack[i].unit[k], pContext, pSSM);
2318 if (pContext->attrib.transformStack[i].clip)
2320 rc = crStateAllocAndSSMR3GetMem(pSSM, (void*)&pContext->attrib.transformStack[i].clip,
2321 pContext->limits.maxClipPlanes*sizeof(GLboolean));
2325 if (pContext->attrib.transformStack[i].clipPlane)
2327 rc = crStateAllocAndSSMR3GetMem(pSSM, (void**)&pContext->attrib.transformStack[i].clipPlane,
2328 pContext->limits.maxClipPlanes*sizeof(GLvectord));
2331 rc = crSateLoadEvalCoeffs1D(pContext->attrib.evalStack[i].eval1D, GL_TRUE, pSSM);
2333 rc = crSateLoadEvalCoeffs2D(pContext->attrib.evalStack[i].eval2D, GL_TRUE, pSSM);
2338 rc = crSateLoadEvalCoeffs1D(pContext->eval.eval1D, GL_FALSE, pSSM);
2340 rc = crSateLoadEvalCoeffs2D(pContext->eval.eval2D, GL_FALSE, pSSM);
2349 rc = crStateLoadKeys(pContext->shared->textureTable, pSSM, u32Version);
2366 pBufferObj = pContext->bufferobject.nullBuffer;
2402 crHashtableAdd(pContext->shared->buffersTable, key, pBufferObj);
2405 #define CRS_GET_BO(name) (((name)==0) ? (pContext->bufferobject.nullBuffer) : crHashtableSearch(pContext->shared->buffersTable, name))
2408 pContext->bufferobject.arrayBuffer = CRS_GET_BO(ui);
2411 pContext->bufferobject.elementsBuffer = CRS_GET_BO(ui);
2415 pContext->bufferobject.packBuffer = CRS_GET_BO(ui);
2418 pContext->bufferobject.unpackBuffer = CRS_GET_BO(ui);
2425 rc = crStateLoadClientPointer(&pContext->client.array, i, pContext, pSSM);
2428 for (j=0; j<pContext->client.vertexArrayStackDepth; ++j)
2430 CRVertexArrays *pArray = &pContext->client.vertexArrayStack[j];
2433 rc = crStateLoadClientPointer(pArray, i, pContext, pSSM);
2438 pContext->shared->bVBOResyncNeeded = GL_TRUE;
2445 rc = crStateLoadProgram(&pContext->program.defaultVertexProgram, pSSM);
2447 rc = crStateLoadProgram(&pContext->program.defaultFragmentProgram, pSSM);
2455 crHashtableAdd(pContext->program.programHash, pProgram->id, pProgram);
2456 //DIRTY(pProgram->dirtyProgram, pContext->neg_bitid);
2462 pContext->program.currentVertexProgram = ui==0 ? pContext->program.defaultVertexProgram
2463 : crHashtableSearch(pContext->program.programHash, ui);
2466 pContext->program.currentFragmentProgram = ui==0 ? pContext->program.defaultFragmentProgram
2467 : crHashtableSearch(pContext->program.programHash, ui);
2470 pContext->program.bResyncNeeded = GL_TRUE;
2478 rc = crStateLoadKeys(pContext->shared->fbTable, pSSM, u32Version);
2498 crHashtableAdd(pContext->shared->fbTable, key, pFBO);
2503 rc = crStateLoadKeys(pContext->shared->rbTable, pSSM, u32Version);
2521 crHashtableAdd(pContext->shared->rbTable, key, pRBO);
2527 pContext->framebufferobject.drawFB = ui==0 ? NULL
2528 : crHashtableSearch(pContext->shared->fbTable, ui);
2532 pContext->framebufferobject.readFB = ui==0 ? NULL
2533 : crHashtableSearch(pContext->shared->fbTable, ui);
2537 pContext->framebufferobject.renderbuffer = ui==0 ? NULL
2538 : crHashtableSearch(pContext->shared->rbTable, ui);
2541 pContext->shared->bFBOResyncNeeded = GL_TRUE;
2554 fNewKeyCheck = crHashtableAllocRegisterKey(pContext->glsl.programs, pShader->id);
2556 crHashtableAdd(pContext->glsl.shaders, pShader->id, pShader);
2576 crHashtableAdd(pContext->glsl.programs, key, pProgram);
2587 crHashtableAdd(pProgram->currentState.attachedShaders, key, crHashtableSearch(pContext->glsl.shaders, key));
2660 pContext->glsl.activeProgram = ui==0 ? NULL
2661 : crHashtableSearch(pContext->glsl.programs, ui);
2664 pContext->glsl.bResyncNeeded = GL_TRUE;
2667 if (pContext->error != err)
2670 err, pContext->error);
2671 pContext->error = err;