Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // This file is here so other GLES2 related files can have a common set of | 5 // This file is here so other GLES2 related files can have a common set of |
| 6 // includes where appropriate. | 6 // includes where appropriate. |
| 7 | 7 |
| 8 #include <sstream> | 8 #include <sstream> |
| 9 #include <GLES2/gl2.h> | 9 #include <GLES2/gl2.h> |
| 10 #include <GLES2/gl2ext.h> | 10 #include <GLES2/gl2ext.h> |
| (...skipping 1171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1182 case GL_RG16UI: | 1182 case GL_RG16UI: |
| 1183 case GL_RG16I: | 1183 case GL_RG16I: |
| 1184 case GL_RG32UI: | 1184 case GL_RG32UI: |
| 1185 case GL_RG32I: | 1185 case GL_RG32I: |
| 1186 return kRed | kGreen; | 1186 return kRed | kGreen; |
| 1187 default: | 1187 default: |
| 1188 return 0x0000; | 1188 return 0x0000; |
| 1189 } | 1189 } |
| 1190 } | 1190 } |
| 1191 | 1191 |
| 1192 bool GLES2Util::IsSizedColorFormat(uint32_t internal_format) { | |
| 1193 switch (internal_format) { | |
| 1194 case GL_ALPHA16F_EXT: | |
| 1195 case GL_ALPHA32F_EXT: | |
| 1196 case GL_RGB8: | |
| 1197 case GL_RGB565: | |
| 1198 case GL_RGB16F: | |
| 1199 case GL_RGB32F: | |
| 1200 case GL_SRGB8: | |
| 1201 case GL_RGB8_SNORM: | |
| 1202 case GL_R11F_G11F_B10F: | |
| 1203 case GL_RGB9_E5: | |
| 1204 case GL_RGB8UI: | |
| 1205 case GL_RGB8I: | |
| 1206 case GL_RGB16UI: | |
| 1207 case GL_RGB16I: | |
| 1208 case GL_RGB32UI: | |
| 1209 case GL_RGB32I: | |
| 1210 case GL_BGRA8_EXT: | |
| 1211 case GL_RGBA16F: | |
| 1212 case GL_RGBA32F: | |
| 1213 case GL_RGBA8_OES: | |
| 1214 case GL_RGBA4: | |
| 1215 case GL_RGB5_A1: | |
| 1216 case GL_SRGB8_ALPHA8: | |
| 1217 case GL_RGBA8_SNORM: | |
| 1218 case GL_RGB10_A2: | |
| 1219 case GL_RGBA8UI: | |
| 1220 case GL_RGBA8I: | |
| 1221 case GL_RGB10_A2UI: | |
| 1222 case GL_RGBA16UI: | |
| 1223 case GL_RGBA16I: | |
| 1224 case GL_RGBA32UI: | |
| 1225 case GL_RGBA32I: | |
| 1226 case GL_R8: | |
| 1227 case GL_R8_SNORM: | |
| 1228 case GL_R16F: | |
| 1229 case GL_R32F: | |
| 1230 case GL_R8UI: | |
| 1231 case GL_R8I: | |
| 1232 case GL_R16UI: | |
| 1233 case GL_R16I: | |
| 1234 case GL_R32UI: | |
| 1235 case GL_R32I: | |
| 1236 case GL_RG8: | |
| 1237 case GL_RG8_SNORM: | |
| 1238 case GL_RG16F: | |
| 1239 case GL_RG32F: | |
| 1240 case GL_RG8UI: | |
| 1241 case GL_RG8I: | |
| 1242 case GL_RG16UI: | |
| 1243 case GL_RG16I: | |
| 1244 case GL_RG32UI: | |
| 1245 case GL_RG32I: | |
| 1246 return true; | |
| 1247 default: | |
| 1248 return false; | |
| 1249 } | |
| 1250 } | |
| 1251 | |
| 1252 void GLES2Util::GetColorFormatComponentSizes( | |
| 1253 uint32_t internal_format, uint32_t type, int* r, int* g, int* b, int* a) { | |
| 1254 DCHECK(r && g && b && a); | |
| 1255 switch (internal_format) { | |
| 1256 case GL_RGB: | |
| 1257 switch (type) { | |
| 1258 case GL_UNSIGNED_BYTE: | |
| 1259 internal_format = GL_RGB8; | |
| 1260 break; | |
| 1261 case GL_UNSIGNED_SHORT_5_6_5: | |
| 1262 internal_format = GL_RGB565; | |
| 1263 break; | |
| 1264 default: | |
| 1265 NOTREACHED(); | |
| 1266 break; | |
| 1267 } | |
| 1268 break; | |
| 1269 case GL_SRGB_EXT: | |
| 1270 switch (type) { | |
| 1271 case GL_UNSIGNED_BYTE: | |
| 1272 internal_format = GL_SRGB8; | |
| 1273 break; | |
| 1274 default: | |
| 1275 NOTREACHED(); | |
| 1276 break; | |
| 1277 } | |
| 1278 break; | |
| 1279 case GL_BGRA_EXT: | |
| 1280 switch (type) { | |
| 1281 case GL_UNSIGNED_BYTE: | |
| 1282 internal_format = GL_BGRA8_EXT; | |
| 1283 break; | |
| 1284 default: | |
| 1285 NOTREACHED(); | |
| 1286 break; | |
| 1287 } | |
| 1288 break; | |
| 1289 case GL_RGBA: | |
| 1290 switch (type) { | |
| 1291 case GL_UNSIGNED_BYTE: | |
| 1292 internal_format = GL_RGBA8; | |
| 1293 break; | |
| 1294 case GL_UNSIGNED_SHORT_4_4_4_4: | |
| 1295 internal_format = GL_RGBA4; | |
| 1296 break; | |
| 1297 case GL_UNSIGNED_SHORT_5_5_5_1: | |
| 1298 internal_format = GL_RGB5_A1; | |
| 1299 break; | |
| 1300 default: | |
| 1301 NOTREACHED(); | |
| 1302 break; | |
| 1303 } | |
| 1304 break; | |
| 1305 case GL_SRGB_ALPHA_EXT: | |
| 1306 switch (type) { | |
| 1307 case GL_UNSIGNED_BYTE: | |
| 1308 internal_format = GL_SRGB8_ALPHA8; | |
| 1309 break; | |
| 1310 default: | |
| 1311 NOTREACHED(); | |
| 1312 break; | |
| 1313 } | |
| 1314 break; | |
| 1315 case GL_LUMINANCE: | |
| 1316 switch (type) { | |
| 1317 case GL_UNSIGNED_BYTE: | |
| 1318 // It can be RGBA8, RGB8, RG8, or R8. | |
| 1319 // Here we only require R8, which is good enough for validation. | |
| 1320 internal_format = GL_R8; | |
| 1321 break; | |
| 1322 default: | |
| 1323 NOTREACHED(); | |
| 1324 break; | |
| 1325 } | |
| 1326 break; | |
| 1327 case GL_LUMINANCE_ALPHA: | |
| 1328 switch (type) { | |
| 1329 case GL_UNSIGNED_BYTE: | |
| 1330 internal_format = GL_RGBA8; | |
| 1331 break; | |
| 1332 default: | |
| 1333 NOTREACHED(); | |
| 1334 break; | |
| 1335 } | |
| 1336 break; | |
| 1337 default: | |
|
piman
2016/06/03 21:26:04
I think anything valid in FormatTypeValidator::kSu
Zhenyao Mo
2016/06/03 21:31:27
This is ES3 only, so all these extensions have bee
piman
2016/06/03 21:40:57
AFAICT, even if we enable ES3, we still enable e.g
| |
| 1338 break; | |
| 1339 } | |
| 1340 | |
| 1341 *r = 0; | |
| 1342 *g = 0; | |
| 1343 *b = 0; | |
| 1344 *a = 0; | |
| 1345 switch (internal_format) { | |
| 1346 case GL_RGB8_OES: | |
| 1347 case GL_SRGB8: | |
| 1348 case GL_RGB8_SNORM: | |
| 1349 case GL_RGB8UI: | |
| 1350 case GL_RGB8I: | |
| 1351 *r = 8; | |
| 1352 *g = 8; | |
| 1353 *b = 8; | |
| 1354 break; | |
| 1355 case GL_RGB565: | |
| 1356 *r = 5; | |
| 1357 *g = 6; | |
| 1358 *b = 5; | |
| 1359 break; | |
| 1360 case GL_RGB16F: | |
| 1361 case GL_RGB16UI: | |
| 1362 case GL_RGB16I: | |
| 1363 *r = 16; | |
| 1364 *g = 16; | |
| 1365 *b = 16; | |
| 1366 break; | |
| 1367 case GL_RGB32F: | |
| 1368 case GL_RGB32UI: | |
| 1369 case GL_RGB32I: | |
| 1370 *r = 32; | |
| 1371 *g = 32; | |
| 1372 *b = 32; | |
| 1373 break; | |
| 1374 case GL_R11F_G11F_B10F: | |
| 1375 *r = 11; | |
| 1376 *g = 11; | |
| 1377 *b = 10; | |
| 1378 break; | |
| 1379 case GL_RGB9_E5: | |
| 1380 *r = 9; | |
| 1381 *g = 9; | |
| 1382 *b = 9; | |
| 1383 break; | |
| 1384 case GL_BGRA8_EXT: | |
| 1385 case GL_RGBA8: | |
| 1386 case GL_SRGB8_ALPHA8: | |
| 1387 case GL_RGBA8_SNORM: | |
| 1388 case GL_RGBA8UI: | |
| 1389 case GL_RGBA8I: | |
| 1390 *r = 8; | |
| 1391 *g = 8; | |
| 1392 *b = 8; | |
| 1393 *a = 8; | |
| 1394 break; | |
| 1395 case GL_RGBA16F_EXT: | |
| 1396 case GL_RGBA16UI: | |
| 1397 case GL_RGBA16I: | |
| 1398 *r = 16; | |
| 1399 *g = 16; | |
| 1400 *b = 16; | |
| 1401 *a = 16; | |
| 1402 break; | |
| 1403 case GL_RGBA32F_EXT: | |
| 1404 case GL_RGBA32UI: | |
| 1405 case GL_RGBA32I: | |
| 1406 *r = 32; | |
| 1407 *g = 32; | |
| 1408 *b = 32; | |
| 1409 *a = 32; | |
| 1410 break; | |
| 1411 case GL_RGBA4: | |
| 1412 *r = 4; | |
| 1413 *g = 4; | |
| 1414 *b = 4; | |
| 1415 *a = 4; | |
| 1416 break; | |
| 1417 case GL_RGB5_A1: | |
| 1418 *r = 5; | |
| 1419 *g = 5; | |
| 1420 *b = 5; | |
| 1421 *a = 1; | |
| 1422 break; | |
| 1423 case GL_RGB10_A2: | |
| 1424 case GL_RGB10_A2UI: | |
| 1425 *r = 10; | |
| 1426 *g = 10; | |
| 1427 *b = 10; | |
| 1428 *a = 2; | |
| 1429 break; | |
| 1430 case GL_R8: | |
| 1431 case GL_R8_SNORM: | |
| 1432 case GL_R8UI: | |
| 1433 case GL_R8I: | |
| 1434 *r = 8; | |
| 1435 break; | |
| 1436 case GL_R16F: | |
| 1437 case GL_R16UI: | |
| 1438 case GL_R16I: | |
| 1439 *r = 16; | |
| 1440 break; | |
| 1441 case GL_R32F: | |
| 1442 case GL_R32UI: | |
| 1443 case GL_R32I: | |
| 1444 *r = 32; | |
| 1445 break; | |
| 1446 case GL_RG8: | |
| 1447 case GL_RG8_SNORM: | |
| 1448 case GL_RG8UI: | |
| 1449 case GL_RG8I: | |
| 1450 *r = 8; | |
| 1451 *g = 8; | |
| 1452 break; | |
| 1453 case GL_RG16F: | |
| 1454 case GL_RG16UI: | |
| 1455 case GL_RG16I: | |
| 1456 *r = 16; | |
| 1457 *g = 16; | |
| 1458 break; | |
| 1459 case GL_RG32F: | |
| 1460 case GL_RG32UI: | |
| 1461 case GL_RG32I: | |
| 1462 *r = 32; | |
| 1463 *g = 32; | |
| 1464 break; | |
| 1465 default: | |
| 1466 NOTREACHED(); | |
| 1467 break; | |
| 1468 } | |
| 1469 } | |
| 1470 | |
| 1192 uint32_t GLES2Util::GetChannelsNeededForAttachmentType( | 1471 uint32_t GLES2Util::GetChannelsNeededForAttachmentType( |
| 1193 int type, | 1472 int type, |
| 1194 uint32_t max_color_attachments) { | 1473 uint32_t max_color_attachments) { |
| 1195 switch (type) { | 1474 switch (type) { |
| 1196 case GL_DEPTH_ATTACHMENT: | 1475 case GL_DEPTH_ATTACHMENT: |
| 1197 return kDepth; | 1476 return kDepth; |
| 1198 case GL_STENCIL_ATTACHMENT: | 1477 case GL_STENCIL_ATTACHMENT: |
| 1199 return kStencil; | 1478 return kStencil; |
| 1200 case GL_DEPTH_STENCIL_ATTACHMENT: | 1479 case GL_DEPTH_STENCIL_ATTACHMENT: |
| 1201 return kDepth | kStencil; | 1480 return kDepth | kStencil; |
| (...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1519 } | 1798 } |
| 1520 | 1799 |
| 1521 return true; | 1800 return true; |
| 1522 } | 1801 } |
| 1523 | 1802 |
| 1524 #include "gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h" | 1803 #include "gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h" |
| 1525 | 1804 |
| 1526 } // namespace gles2 | 1805 } // namespace gles2 |
| 1527 } // namespace gpu | 1806 } // namespace gpu |
| 1528 | 1807 |
| OLD | NEW |