- Timestamp:
- May 8, 2015 7:04:15 PM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 100190
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_main.c
r55763 r55764 1251 1251 } 1252 1252 1253 /* Add framebuffer image elements arrording to SSM version. Please refer to cr_version.h 1254 * in order to distinguish between versions. */ 1253 1255 static int crVBoxServerFBImageDataInitEx(CRFBData *pData, CRContextInfo *pCtxInfo, CRMuralInfo *pMural, GLboolean fWrite, uint32_t version, GLuint overrideWidth, GLuint overrideHeight) 1254 1256 { … … 1288 1290 } 1289 1291 } 1292 1290 1293 pData->cElements = 0; 1291 1294 1292 rc = crVBoxAddFBDataElement( 1293 pData, 1294 pMural && pMural->fRedirected ? pMural->aidFBOs[CR_SERVER_FBO_FB_IDX(pMural)] : 0, 1295 pData->aElements[1].idFBO ? GL_COLOR_ATTACHMENT0 : GL_FRONT, 1296 width, height, GL_RGBA, GL_UNSIGNED_BYTE); 1295 rc = crVBoxAddFBDataElement(pData, pMural && pMural->fRedirected ? pMural->aidFBOs[CR_SERVER_FBO_FB_IDX(pMural)] : 0, 1296 pData->aElements[1].idFBO ? GL_COLOR_ATTACHMENT0 : GL_FRONT, width, height, GL_RGBA, GL_UNSIGNED_BYTE); 1297 1297 AssertReturn(rc == VINF_SUCCESS, rc); 1298 1298 … … 1305 1305 * no matter what the visual bits are. */ 1306 1306 { 1307 rc = crVBoxAddFBDataElement( 1308 pData, 1309 pMural && pMural->fRedirected ? pMural->aidFBOs[CR_SERVER_FBO_BB_IDX(pMural)] : 0, 1310 pData->aElements[1].idFBO ? GL_COLOR_ATTACHMENT0 : GL_BACK, 1311 width, height, GL_RGBA, GL_UNSIGNED_BYTE); 1307 rc = crVBoxAddFBDataElement(pData, pMural && pMural->fRedirected ? pMural->aidFBOs[CR_SERVER_FBO_BB_IDX(pMural)] : 0, 1308 pData->aElements[1].idFBO ? GL_COLOR_ATTACHMENT0 : GL_BACK, width, height, GL_RGBA, GL_UNSIGNED_BYTE); 1312 1309 AssertReturn(rc == VINF_SUCCESS, rc); 1313 1310 } … … 1316 1313 return VINF_SUCCESS; 1317 1314 1318 if (pCtxInfo->CreateInfo.requestedVisualBits & CR_DEPTH_BIT) 1319 { 1320 rc = crVBoxAddFBDataElement( 1321 pData, 1322 pMural && pMural->fRedirected ? pMural->aidFBOs[CR_SERVER_FBO_FB_IDX(pMural)] : 0, 1323 pMural ? pMural->idDepthRB : 0, 1324 width, height, GL_DEPTH_COMPONENT, GL_FLOAT); 1315 if (version < SHCROGL_SSM_VERSION_WITH_SINGLE_DEPTH_STENCIL) 1316 { 1317 rc = crVBoxAddFBDataElement(pData, pMural && pMural->fRedirected ? pMural->aidFBOs[CR_SERVER_FBO_FB_IDX(pMural)] : 0, 1318 pMural ? pMural->idDepthRB : 0, width, height, GL_DEPTH_COMPONENT, GL_FLOAT); 1325 1319 AssertReturn(rc == VINF_SUCCESS, rc); 1326 1320 … … 1329 1323 for (i = 0; i < width * height; ++i) 1330 1324 pF[i] = 1.; 1325 1326 rc = crVBoxAddFBDataElement(pData, pMural && pMural->fRedirected ? pMural->aidFBOs[CR_SERVER_FBO_FB_IDX(pMural)] : 0, 1327 pMural ? pMural->idDepthRB : 0, width, height, GL_STENCIL_INDEX, GL_UNSIGNED_INT); 1328 AssertReturn(rc == VINF_SUCCESS, rc); 1329 1330 return VINF_SUCCESS; 1331 } 1332 1333 if (version < SHCROGL_SSM_VERSION_WITH_SEPARATE_DEPTH_STENCIL_BUFFERS) 1334 { 1335 /* Use GL_DEPTH_STENCIL only in case if both CR_STENCIL_BIT and CR_DEPTH_BIT specified. */ 1336 if ( (pCtxInfo->CreateInfo.requestedVisualBits & CR_STENCIL_BIT) 1337 && (pCtxInfo->CreateInfo.requestedVisualBits & CR_DEPTH_BIT)) 1338 { 1339 rc = crVBoxAddFBDataElement(pData, pMural && pMural->fRedirected ? pMural->aidFBOs[CR_SERVER_FBO_FB_IDX(pMural)] : 0, 0, 1340 width, height, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8); 1341 AssertReturn(rc == VINF_SUCCESS, rc); 1342 } 1343 1344 return VINF_SUCCESS; 1345 } 1346 1347 /* Current SSM verion (SHCROGL_SSM_VERSION_WITH_SEPARATE_DEPTH_STENCIL_BUFFERS). */ 1348 1349 if (pCtxInfo->CreateInfo.requestedVisualBits & CR_DEPTH_BIT) 1350 { 1351 rc = crVBoxAddFBDataElement(pData, pMural && pMural->fRedirected ? pMural->aidFBOs[CR_SERVER_FBO_FB_IDX(pMural)] : 0, 1352 pMural ? pMural->idDepthRB : 0, width, height, GL_DEPTH_COMPONENT, GL_FLOAT); 1353 AssertReturn(rc == VINF_SUCCESS, rc); 1354 1355 /* Init to default depth value, just in case. */ 1356 pF = (GLfloat*)pEl->pvData; 1357 for (i = 0; i < width * height; ++i) 1358 pF[i] = 1.; 1331 1359 } 1332 1360 1333 1361 if (pCtxInfo->CreateInfo.requestedVisualBits & CR_STENCIL_BIT) 1334 1362 { 1335 rc = crVBoxAddFBDataElement( 1336 pData, 1337 pMural && pMural->fRedirected ? pMural->aidFBOs[CR_SERVER_FBO_FB_IDX(pMural)] : 0, 1338 pMural ? pMural->idDepthRB : 0, 1339 width, height, GL_STENCIL_INDEX, GL_UNSIGNED_INT); 1363 rc = crVBoxAddFBDataElement(pData, pMural && pMural->fRedirected ? pMural->aidFBOs[CR_SERVER_FBO_FB_IDX(pMural)] : 0, 1364 pMural ? pMural->idDepthRB : 0, width, height, GL_STENCIL_INDEX, GL_UNSIGNED_INT); 1340 1365 AssertReturn(rc == VINF_SUCCESS, rc); 1341 1366 }
Note:
See TracChangeset
for help on using the changeset viewer.