| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 | 8 |
| 9 #include "GrGLCaps.h" | 9 #include "GrGLCaps.h" |
| 10 | 10 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 fMapBufferType = kNone_MapBufferType; | 26 fMapBufferType = kNone_MapBufferType; |
| 27 fTransferBufferType = kNone_TransferBufferType; | 27 fTransferBufferType = kNone_TransferBufferType; |
| 28 fMaxFragmentUniformVectors = 0; | 28 fMaxFragmentUniformVectors = 0; |
| 29 fMaxVertexAttributes = 0; | 29 fMaxVertexAttributes = 0; |
| 30 fMaxFragmentTextureUnits = 0; | 30 fMaxFragmentTextureUnits = 0; |
| 31 fUnpackRowLengthSupport = false; | 31 fUnpackRowLengthSupport = false; |
| 32 fUnpackFlipYSupport = false; | 32 fUnpackFlipYSupport = false; |
| 33 fPackRowLengthSupport = false; | 33 fPackRowLengthSupport = false; |
| 34 fPackFlipYSupport = false; | 34 fPackFlipYSupport = false; |
| 35 fTextureUsageSupport = false; | 35 fTextureUsageSupport = false; |
| 36 fTexStorageSupport = false; | |
| 37 fTextureRedSupport = false; | 36 fTextureRedSupport = false; |
| 38 fImagingSupport = false; | 37 fImagingSupport = false; |
| 39 fVertexArrayObjectSupport = false; | 38 fVertexArrayObjectSupport = false; |
| 40 fDirectStateAccessSupport = false; | 39 fDirectStateAccessSupport = false; |
| 41 fDebugSupport = false; | 40 fDebugSupport = false; |
| 42 fES2CompatibilitySupport = false; | 41 fES2CompatibilitySupport = false; |
| 43 fMultisampleDisableSupport = false; | 42 fMultisampleDisableSupport = false; |
| 44 fDrawIndirectSupport = false; | 43 fDrawIndirectSupport = false; |
| 45 fMultiDrawIndirectSupport = false; | 44 fMultiDrawIndirectSupport = false; |
| 46 fBaseInstanceSupport = false; | 45 fBaseInstanceSupport = false; |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 fPackRowLengthSupport = version >= GR_GL_VER(3,0) || | 99 fPackRowLengthSupport = version >= GR_GL_VER(3,0) || |
| 101 ctxInfo.hasExtension("GL_NV_pack_subimage"); | 100 ctxInfo.hasExtension("GL_NV_pack_subimage"); |
| 102 fPackFlipYSupport = | 101 fPackFlipYSupport = |
| 103 ctxInfo.hasExtension("GL_ANGLE_pack_reverse_row_order"); | 102 ctxInfo.hasExtension("GL_ANGLE_pack_reverse_row_order"); |
| 104 } | 103 } |
| 105 | 104 |
| 106 fTextureUsageSupport = (kGLES_GrGLStandard == standard) && | 105 fTextureUsageSupport = (kGLES_GrGLStandard == standard) && |
| 107 ctxInfo.hasExtension("GL_ANGLE_texture_usage"); | 106 ctxInfo.hasExtension("GL_ANGLE_texture_usage"); |
| 108 | 107 |
| 109 if (kGL_GrGLStandard == standard) { | 108 if (kGL_GrGLStandard == standard) { |
| 110 // The EXT version can apply to either GL or GLES. | |
| 111 fTexStorageSupport = version >= GR_GL_VER(4,2) || | |
| 112 ctxInfo.hasExtension("GL_ARB_texture_storage") || | |
| 113 ctxInfo.hasExtension("GL_EXT_texture_storage"); | |
| 114 } else { | |
| 115 // Qualcomm Adreno drivers appear to have issues with texture storage. | |
| 116 fTexStorageSupport = (version >= GR_GL_VER(3,0) && | |
| 117 kQualcomm_GrGLVendor != ctxInfo.vendor()) && | |
| 118 ctxInfo.hasExtension("GL_EXT_texture_storage"); | |
| 119 } | |
| 120 | |
| 121 if (kGL_GrGLStandard == standard) { | |
| 122 fTextureBarrierSupport = version >= GR_GL_VER(4,5) || | 109 fTextureBarrierSupport = version >= GR_GL_VER(4,5) || |
| 123 ctxInfo.hasExtension("GL_ARB_texture_barrier")
|| | 110 ctxInfo.hasExtension("GL_ARB_texture_barrier")
|| |
| 124 ctxInfo.hasExtension("GL_NV_texture_barrier"); | 111 ctxInfo.hasExtension("GL_NV_texture_barrier"); |
| 125 } else { | 112 } else { |
| 126 fTextureBarrierSupport = ctxInfo.hasExtension("GL_NV_texture_barrier"); | 113 fTextureBarrierSupport = ctxInfo.hasExtension("GL_NV_texture_barrier"); |
| 127 } | 114 } |
| 128 | 115 |
| 129 if (kGL_GrGLStandard == standard) { | 116 if (kGL_GrGLStandard == standard) { |
| 130 fSampleLocationsSupport = version >= GR_GL_VER(3,2) || | 117 fSampleLocationsSupport = version >= GR_GL_VER(3,2) || |
| 131 ctxInfo.hasExtension("GL_ARB_texture_multisamp
le"); | 118 ctxInfo.hasExtension("GL_ARB_texture_multisamp
le"); |
| (...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 523 | 510 |
| 524 this->initShaderPrecisionTable(ctxInfo, gli, glslCaps); | 511 this->initShaderPrecisionTable(ctxInfo, gli, glslCaps); |
| 525 | 512 |
| 526 if (contextOptions.fUseShaderSwizzling) { | 513 if (contextOptions.fUseShaderSwizzling) { |
| 527 fTextureSwizzleSupport = false; | 514 fTextureSwizzleSupport = false; |
| 528 } | 515 } |
| 529 | 516 |
| 530 // TODO: remove after command buffer supports full ES 3.0. | 517 // TODO: remove after command buffer supports full ES 3.0. |
| 531 if (kGLES_GrGLStandard == standard && version >= GR_GL_VER(3, 0) && | 518 if (kGLES_GrGLStandard == standard && version >= GR_GL_VER(3, 0) && |
| 532 kChromium_GrGLDriver == ctxInfo.driver()) { | 519 kChromium_GrGLDriver == ctxInfo.driver()) { |
| 533 fTexStorageSupport = false; | |
| 534 fSupportsInstancedDraws = false; | 520 fSupportsInstancedDraws = false; |
| 535 fTextureSwizzleSupport = false; | 521 fTextureSwizzleSupport = false; |
| 536 SkASSERT(ctxInfo.hasExtension("GL_CHROMIUM_map_sub")); | 522 SkASSERT(ctxInfo.hasExtension("GL_CHROMIUM_map_sub")); |
| 537 fMapBufferFlags = kCanMap_MapFlag | kSubset_MapFlag; | 523 fMapBufferFlags = kCanMap_MapFlag | kSubset_MapFlag; |
| 538 fMapBufferType = kChromium_MapBufferType; | 524 fMapBufferType = kChromium_MapBufferType; |
| 539 } | 525 } |
| 540 | 526 |
| 541 // Requires fTextureRedSupport, fTextureSwizzleSupport, msaa support, ES com
patibility have | 527 // Requires fTextureRedSupport, fTextureSwizzleSupport, msaa support, ES com
patibility have |
| 542 // already been detected. | 528 // already been detected. |
| 543 this->initConfigTable(ctxInfo, gli, glslCaps); | 529 this->initConfigTable(ctxInfo, gli, glslCaps); |
| (...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1029 r.appendf("Map Buffer Type: %s\n", kMapBufferTypeStr[fMapBufferType]); | 1015 r.appendf("Map Buffer Type: %s\n", kMapBufferTypeStr[fMapBufferType]); |
| 1030 r.appendf("Max FS Uniform Vectors: %d\n", fMaxFragmentUniformVectors); | 1016 r.appendf("Max FS Uniform Vectors: %d\n", fMaxFragmentUniformVectors); |
| 1031 r.appendf("Max FS Texture Units: %d\n", fMaxFragmentTextureUnits); | 1017 r.appendf("Max FS Texture Units: %d\n", fMaxFragmentTextureUnits); |
| 1032 r.appendf("Max Vertex Attributes: %d\n", fMaxVertexAttributes); | 1018 r.appendf("Max Vertex Attributes: %d\n", fMaxVertexAttributes); |
| 1033 r.appendf("Unpack Row length support: %s\n", (fUnpackRowLengthSupport ? "YES
": "NO")); | 1019 r.appendf("Unpack Row length support: %s\n", (fUnpackRowLengthSupport ? "YES
": "NO")); |
| 1034 r.appendf("Unpack Flip Y support: %s\n", (fUnpackFlipYSupport ? "YES": "NO")
); | 1020 r.appendf("Unpack Flip Y support: %s\n", (fUnpackFlipYSupport ? "YES": "NO")
); |
| 1035 r.appendf("Pack Row length support: %s\n", (fPackRowLengthSupport ? "YES": "
NO")); | 1021 r.appendf("Pack Row length support: %s\n", (fPackRowLengthSupport ? "YES": "
NO")); |
| 1036 r.appendf("Pack Flip Y support: %s\n", (fPackFlipYSupport ? "YES": "NO")); | 1022 r.appendf("Pack Flip Y support: %s\n", (fPackFlipYSupport ? "YES": "NO")); |
| 1037 | 1023 |
| 1038 r.appendf("Texture Usage support: %s\n", (fTextureUsageSupport ? "YES": "NO"
)); | 1024 r.appendf("Texture Usage support: %s\n", (fTextureUsageSupport ? "YES": "NO"
)); |
| 1039 r.appendf("Texture Storage support: %s\n", (fTexStorageSupport ? "YES": "NO"
)); | |
| 1040 r.appendf("GL_R support: %s\n", (fTextureRedSupport ? "YES": "NO")); | 1025 r.appendf("GL_R support: %s\n", (fTextureRedSupport ? "YES": "NO")); |
| 1041 r.appendf("GL_ARB_imaging support: %s\n", (fImagingSupport ? "YES": "NO")); | 1026 r.appendf("GL_ARB_imaging support: %s\n", (fImagingSupport ? "YES": "NO")); |
| 1042 r.appendf("Vertex array object support: %s\n", (fVertexArrayObjectSupport ?
"YES": "NO")); | 1027 r.appendf("Vertex array object support: %s\n", (fVertexArrayObjectSupport ?
"YES": "NO")); |
| 1043 r.appendf("Direct state access support: %s\n", (fDirectStateAccessSupport ?
"YES": "NO")); | 1028 r.appendf("Direct state access support: %s\n", (fDirectStateAccessSupport ?
"YES": "NO")); |
| 1044 r.appendf("Debug support: %s\n", (fDebugSupport ? "YES": "NO")); | 1029 r.appendf("Debug support: %s\n", (fDebugSupport ? "YES": "NO")); |
| 1045 r.appendf("Multisample disable support: %s\n", (fMultisampleDisableSupport ?
"YES" : "NO")); | 1030 r.appendf("Multisample disable support: %s\n", (fMultisampleDisableSupport ?
"YES" : "NO")); |
| 1046 r.appendf("Draw indirect support: %s\n", (fDrawIndirectSupport ? "YES" : "NO
")); | 1031 r.appendf("Draw indirect support: %s\n", (fDrawIndirectSupport ? "YES" : "NO
")); |
| 1047 r.appendf("Multi draw indirect support: %s\n", (fMultiDrawIndirectSupport ?
"YES" : "NO")); | 1032 r.appendf("Multi draw indirect support: %s\n", (fMultiDrawIndirectSupport ?
"YES" : "NO")); |
| 1048 r.appendf("Base instance support: %s\n", (fBaseInstanceSupport ? "YES" : "NO
")); | 1033 r.appendf("Base instance support: %s\n", (fBaseInstanceSupport ? "YES" : "NO
")); |
| 1049 r.appendf("Use non-VBO for dynamic data: %s\n", | 1034 r.appendf("Use non-VBO for dynamic data: %s\n", |
| (...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1306 Adds R16F, RG16F, RGBA16F, R32F, RG32F, RGBA32F, R11F_G11F_B10F. | 1291 Adds R16F, RG16F, RGBA16F, R32F, RG32F, RGBA32F, R11F_G11F_B10F. |
| 1307 */ | 1292 */ |
| 1308 uint32_t allRenderFlags = ConfigInfo::kRenderable_Flag; | 1293 uint32_t allRenderFlags = ConfigInfo::kRenderable_Flag; |
| 1309 if (kNone_MSFBOType != fMSFBOType) { | 1294 if (kNone_MSFBOType != fMSFBOType) { |
| 1310 allRenderFlags |= ConfigInfo::kRenderableWithMSAA_Flag; | 1295 allRenderFlags |= ConfigInfo::kRenderableWithMSAA_Flag; |
| 1311 } | 1296 } |
| 1312 | 1297 |
| 1313 GrGLStandard standard = ctxInfo.standard(); | 1298 GrGLStandard standard = ctxInfo.standard(); |
| 1314 GrGLVersion version = ctxInfo.version(); | 1299 GrGLVersion version = ctxInfo.version(); |
| 1315 | 1300 |
| 1301 bool texStorageSupported = false; |
| 1302 if (kGL_GrGLStandard == standard) { |
| 1303 // The EXT version can apply to either GL or GLES. |
| 1304 texStorageSupported = version >= GR_GL_VER(4,2) || |
| 1305 ctxInfo.hasExtension("GL_ARB_texture_storage") || |
| 1306 ctxInfo.hasExtension("GL_EXT_texture_storage"); |
| 1307 } else { |
| 1308 // Qualcomm Adreno drivers appear to have issues with texture storage. |
| 1309 texStorageSupported = (version >= GR_GL_VER(3,0) && |
| 1310 kQualcomm_GrGLVendor != ctxInfo.vendor()) && |
| 1311 ctxInfo.hasExtension("GL_EXT_texture_storage"); |
| 1312 } |
| 1313 |
| 1314 // TODO: remove after command buffer supports full ES 3.0 |
| 1315 if (kGLES_GrGLStandard == standard && version >= GR_GL_VER(3,0) && |
| 1316 kChromium_GrGLDriver == ctxInfo.driver()) { |
| 1317 texStorageSupported = false; |
| 1318 } |
| 1319 |
| 1316 fConfigTable[kUnknown_GrPixelConfig].fFormats.fBaseInternalFormat = 0; | 1320 fConfigTable[kUnknown_GrPixelConfig].fFormats.fBaseInternalFormat = 0; |
| 1317 fConfigTable[kUnknown_GrPixelConfig].fFormats.fSizedInternalFormat = 0; | 1321 fConfigTable[kUnknown_GrPixelConfig].fFormats.fSizedInternalFormat = 0; |
| 1318 fConfigTable[kUnknown_GrPixelConfig].fFormats.fExternalFormat[kOther_Externa
lFormatUsage] = 0; | 1322 fConfigTable[kUnknown_GrPixelConfig].fFormats.fExternalFormat[kOther_Externa
lFormatUsage] = 0; |
| 1319 fConfigTable[kUnknown_GrPixelConfig].fFormats.fExternalType = 0; | 1323 fConfigTable[kUnknown_GrPixelConfig].fFormats.fExternalType = 0; |
| 1320 fConfigTable[kUnknown_GrPixelConfig].fFormatType = kNormalizedFixedPoint_For
matType; | 1324 fConfigTable[kUnknown_GrPixelConfig].fFormatType = kNormalizedFixedPoint_For
matType; |
| 1321 fConfigTable[kUnknown_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); | 1325 fConfigTable[kUnknown_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); |
| 1322 | 1326 |
| 1323 fConfigTable[kRGBA_8888_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_
RGBA; | 1327 fConfigTable[kRGBA_8888_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_
RGBA; |
| 1324 fConfigTable[kRGBA_8888_GrPixelConfig].fFormats.fSizedInternalFormat = GR_GL
_RGBA8; | 1328 fConfigTable[kRGBA_8888_GrPixelConfig].fFormats.fSizedInternalFormat = GR_GL
_RGBA8; |
| 1325 fConfigTable[kRGBA_8888_GrPixelConfig].fFormats.fExternalFormat[kOther_Exter
nalFormatUsage] = | 1329 fConfigTable[kRGBA_8888_GrPixelConfig].fFormats.fExternalFormat[kOther_Exter
nalFormatUsage] = |
| 1326 GR_GL_RGBA; | 1330 GR_GL_RGBA; |
| 1327 fConfigTable[kRGBA_8888_GrPixelConfig].fFormats.fExternalType = GR_GL_UNSIGN
ED_BYTE; | 1331 fConfigTable[kRGBA_8888_GrPixelConfig].fFormats.fExternalType = GR_GL_UNSIGN
ED_BYTE; |
| 1328 fConfigTable[kRGBA_8888_GrPixelConfig].fFormatType = kNormalizedFixedPoint_F
ormatType; | 1332 fConfigTable[kRGBA_8888_GrPixelConfig].fFormatType = kNormalizedFixedPoint_F
ormatType; |
| 1329 fConfigTable[kRGBA_8888_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Fla
g; | 1333 fConfigTable[kRGBA_8888_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Fla
g; |
| 1330 if (kGL_GrGLStandard == standard) { | 1334 if (kGL_GrGLStandard == standard) { |
| 1331 // We require some form of FBO support and all GLs with FBO support can
render to RGBA8 | 1335 // We require some form of FBO support and all GLs with FBO support can
render to RGBA8 |
| 1332 fConfigTable[kRGBA_8888_GrPixelConfig].fFlags |= allRenderFlags; | 1336 fConfigTable[kRGBA_8888_GrPixelConfig].fFlags |= allRenderFlags; |
| 1333 } else { | 1337 } else { |
| 1334 if (version >= GR_GL_VER(3,0) || ctxInfo.hasExtension("GL_OES_rgb8_rgba8
") || | 1338 if (version >= GR_GL_VER(3,0) || ctxInfo.hasExtension("GL_OES_rgb8_rgba8
") || |
| 1335 ctxInfo.hasExtension("GL_ARM_rgba8")) { | 1339 ctxInfo.hasExtension("GL_ARM_rgba8")) { |
| 1336 fConfigTable[kRGBA_8888_GrPixelConfig].fFlags |= allRenderFlags; | 1340 fConfigTable[kRGBA_8888_GrPixelConfig].fFlags |= allRenderFlags; |
| 1337 } | 1341 } |
| 1338 } | 1342 } |
| 1343 if (texStorageSupported) { |
| 1344 fConfigTable[kRGBA_8888_GrPixelConfig].fFlags |= ConfigInfo::kCanUseTexS
torage_Flag; |
| 1345 } |
| 1339 fConfigTable[kRGBA_8888_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); | 1346 fConfigTable[kRGBA_8888_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); |
| 1340 | 1347 |
| 1341 fConfigTable[kBGRA_8888_GrPixelConfig].fFormats.fExternalFormat[kOther_Exter
nalFormatUsage] = | 1348 fConfigTable[kBGRA_8888_GrPixelConfig].fFormats.fExternalFormat[kOther_Exter
nalFormatUsage] = |
| 1342 GR_GL_BGRA; | 1349 GR_GL_BGRA; |
| 1343 fConfigTable[kBGRA_8888_GrPixelConfig].fFormats.fExternalType = GR_GL_UNSIG
NED_BYTE; | 1350 fConfigTable[kBGRA_8888_GrPixelConfig].fFormats.fExternalType = GR_GL_UNSIG
NED_BYTE; |
| 1344 fConfigTable[kBGRA_8888_GrPixelConfig].fFormatType = kNormalizedFixedPoint_F
ormatType; | 1351 fConfigTable[kBGRA_8888_GrPixelConfig].fFormatType = kNormalizedFixedPoint_F
ormatType; |
| 1345 if (kGL_GrGLStandard == standard) { | 1352 if (kGL_GrGLStandard == standard) { |
| 1346 fConfigTable[kBGRA_8888_GrPixelConfig].fFormats.fBaseInternalFormat = GR
_GL_RGBA; | 1353 fConfigTable[kBGRA_8888_GrPixelConfig].fFormats.fBaseInternalFormat = GR
_GL_RGBA; |
| 1347 fConfigTable[kBGRA_8888_GrPixelConfig].fFormats.fSizedInternalFormat = G
R_GL_RGBA8; | 1354 fConfigTable[kBGRA_8888_GrPixelConfig].fFormats.fSizedInternalFormat = G
R_GL_RGBA8; |
| 1348 if (version >= GR_GL_VER(1, 2) || ctxInfo.hasExtension("GL_EXT_bgra")) { | 1355 if (version >= GR_GL_VER(1, 2) || ctxInfo.hasExtension("GL_EXT_bgra")) { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1366 } else if (ctxInfo.hasExtension("GL_EXT_texture_format_BGRA8888")) { | 1373 } else if (ctxInfo.hasExtension("GL_EXT_texture_format_BGRA8888")) { |
| 1367 fConfigTable[kBGRA_8888_GrPixelConfig].fFlags = ConfigInfo::kTexture
able_Flag | | 1374 fConfigTable[kBGRA_8888_GrPixelConfig].fFlags = ConfigInfo::kTexture
able_Flag | |
| 1368 ConfigInfo::kRendera
ble_Flag; | 1375 ConfigInfo::kRendera
ble_Flag; |
| 1369 if (ctxInfo.hasExtension("GL_CHROMIUM_renderbuffer_format_BGRA8888")
&& | 1376 if (ctxInfo.hasExtension("GL_CHROMIUM_renderbuffer_format_BGRA8888")
&& |
| 1370 (this->usesMSAARenderBuffers() || this->fMSFBOType == kMixedSamp
les_MSFBOType)) { | 1377 (this->usesMSAARenderBuffers() || this->fMSFBOType == kMixedSamp
les_MSFBOType)) { |
| 1371 fConfigTable[kBGRA_8888_GrPixelConfig].fFlags |= | 1378 fConfigTable[kBGRA_8888_GrPixelConfig].fFlags |= |
| 1372 ConfigInfo::kRenderableWithMSAA_Flag; | 1379 ConfigInfo::kRenderableWithMSAA_Flag; |
| 1373 } | 1380 } |
| 1374 } | 1381 } |
| 1375 } | 1382 } |
| 1383 if (texStorageSupported) { |
| 1384 fConfigTable[kBGRA_8888_GrPixelConfig].fFlags |= ConfigInfo::kCanUseTexS
torage_Flag; |
| 1385 } |
| 1376 fConfigTable[kBGRA_8888_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); | 1386 fConfigTable[kBGRA_8888_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); |
| 1377 | 1387 |
| 1378 // We only enable srgb support if both textures and FBOs support srgb. | 1388 // We only enable srgb support if both textures and FBOs support srgb. |
| 1379 bool srgbSupport = false; | 1389 bool srgbSupport = false; |
| 1380 if (kGL_GrGLStandard == standard) { | 1390 if (kGL_GrGLStandard == standard) { |
| 1381 if (ctxInfo.version() >= GR_GL_VER(3,0)) { | 1391 if (ctxInfo.version() >= GR_GL_VER(3,0)) { |
| 1382 srgbSupport = true; | 1392 srgbSupport = true; |
| 1383 } else if (ctxInfo.hasExtension("GL_EXT_texture_sRGB")) { | 1393 } else if (ctxInfo.hasExtension("GL_EXT_texture_sRGB")) { |
| 1384 if (ctxInfo.hasExtension("GL_ARB_framebuffer_sRGB") || | 1394 if (ctxInfo.hasExtension("GL_ARB_framebuffer_sRGB") || |
| 1385 ctxInfo.hasExtension("GL_EXT_framebuffer_sRGB")) { | 1395 ctxInfo.hasExtension("GL_EXT_framebuffer_sRGB")) { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1401 // GL does not do srgb<->rgb conversions when transferring between cpu and g
pu. Thus, the | 1411 // GL does not do srgb<->rgb conversions when transferring between cpu and g
pu. Thus, the |
| 1402 // external format is GL_RGBA. See below for note about ES2.0 and glTex[Sub]
Image. | 1412 // external format is GL_RGBA. See below for note about ES2.0 and glTex[Sub]
Image. |
| 1403 fConfigTable[kSRGBA_8888_GrPixelConfig].fFormats.fExternalFormat[kOther_Exte
rnalFormatUsage] = | 1413 fConfigTable[kSRGBA_8888_GrPixelConfig].fFormats.fExternalFormat[kOther_Exte
rnalFormatUsage] = |
| 1404 GR_GL_RGBA; | 1414 GR_GL_RGBA; |
| 1405 fConfigTable[kSRGBA_8888_GrPixelConfig].fFormats.fExternalType = GR_GL_UNSIG
NED_BYTE; | 1415 fConfigTable[kSRGBA_8888_GrPixelConfig].fFormats.fExternalType = GR_GL_UNSIG
NED_BYTE; |
| 1406 fConfigTable[kSRGBA_8888_GrPixelConfig].fFormatType = kNormalizedFixedPoint_
FormatType; | 1416 fConfigTable[kSRGBA_8888_GrPixelConfig].fFormatType = kNormalizedFixedPoint_
FormatType; |
| 1407 if (srgbSupport) { | 1417 if (srgbSupport) { |
| 1408 fConfigTable[kSRGBA_8888_GrPixelConfig].fFlags = ConfigInfo::kTextureabl
e_Flag | | 1418 fConfigTable[kSRGBA_8888_GrPixelConfig].fFlags = ConfigInfo::kTextureabl
e_Flag | |
| 1409 allRenderFlags; | 1419 allRenderFlags; |
| 1410 } | 1420 } |
| 1421 if (texStorageSupported) { |
| 1422 fConfigTable[kSRGBA_8888_GrPixelConfig].fFlags |= ConfigInfo::kCanUseTex
Storage_Flag; |
| 1423 } |
| 1411 fConfigTable[kSRGBA_8888_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); | 1424 fConfigTable[kSRGBA_8888_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); |
| 1412 | 1425 |
| 1413 fConfigTable[kRGB_565_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_RG
B; | 1426 fConfigTable[kRGB_565_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_RG
B; |
| 1414 if (this->ES2CompatibilitySupport()) { | 1427 if (this->ES2CompatibilitySupport()) { |
| 1415 fConfigTable[kRGB_565_GrPixelConfig].fFormats.fSizedInternalFormat = GR_
GL_RGB565; | 1428 fConfigTable[kRGB_565_GrPixelConfig].fFormats.fSizedInternalFormat = GR_
GL_RGB565; |
| 1416 } else { | 1429 } else { |
| 1417 fConfigTable[kRGB_565_GrPixelConfig].fFormats.fSizedInternalFormat = GR_
GL_RGB5; | 1430 fConfigTable[kRGB_565_GrPixelConfig].fFormats.fSizedInternalFormat = GR_
GL_RGB5; |
| 1418 } | 1431 } |
| 1419 fConfigTable[kRGB_565_GrPixelConfig].fFormats.fExternalFormat[kOther_Externa
lFormatUsage] = | 1432 fConfigTable[kRGB_565_GrPixelConfig].fFormats.fExternalFormat[kOther_Externa
lFormatUsage] = |
| 1420 GR_GL_RGB; | 1433 GR_GL_RGB; |
| 1421 fConfigTable[kRGB_565_GrPixelConfig].fFormats.fExternalType = GR_GL_UNSIGNED
_SHORT_5_6_5; | 1434 fConfigTable[kRGB_565_GrPixelConfig].fFormats.fExternalType = GR_GL_UNSIGNED
_SHORT_5_6_5; |
| 1422 fConfigTable[kRGB_565_GrPixelConfig].fFormatType = kNormalizedFixedPoint_For
matType; | 1435 fConfigTable[kRGB_565_GrPixelConfig].fFormatType = kNormalizedFixedPoint_For
matType; |
| 1423 fConfigTable[kRGB_565_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag; | 1436 fConfigTable[kRGB_565_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag; |
| 1424 if (kGL_GrGLStandard == standard) { | 1437 if (kGL_GrGLStandard == standard) { |
| 1425 if (version >= GR_GL_VER(4, 2) || ctxInfo.hasExtension("GL_ES2_compatibi
lity")) { | 1438 if (version >= GR_GL_VER(4, 2) || ctxInfo.hasExtension("GL_ES2_compatibi
lity")) { |
| 1426 fConfigTable[kRGB_565_GrPixelConfig].fFlags |= allRenderFlags; | 1439 fConfigTable[kRGB_565_GrPixelConfig].fFlags |= allRenderFlags; |
| 1427 } | 1440 } |
| 1428 } else { | 1441 } else { |
| 1429 fConfigTable[kRGB_565_GrPixelConfig].fFlags |= allRenderFlags; | 1442 fConfigTable[kRGB_565_GrPixelConfig].fFlags |= allRenderFlags; |
| 1430 } | 1443 } |
| 1444 // 565 is not a sized internal format on desktop GL. So on desktop with |
| 1445 // 565 we always use an unsized internal format to let the system pick |
| 1446 // the best sized format to convert the 565 data to. Since TexStorage |
| 1447 // only allows sized internal formats we disallow it. |
| 1448 // |
| 1449 // TODO: As of 4.2, regular GL supports 565. This logic is due for an |
| 1450 // update. |
| 1451 if (texStorageSupported && kGL_GrGLStandard != standard) { |
| 1452 fConfigTable[kRGB_565_GrPixelConfig].fFlags |= ConfigInfo::kCanUseTexSto
rage_Flag; |
| 1453 } |
| 1431 fConfigTable[kRGB_565_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); | 1454 fConfigTable[kRGB_565_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); |
| 1432 | 1455 |
| 1433 fConfigTable[kRGBA_4444_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_
RGBA; | 1456 fConfigTable[kRGBA_4444_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_
RGBA; |
| 1434 fConfigTable[kRGBA_4444_GrPixelConfig].fFormats.fSizedInternalFormat = GR_GL
_RGBA4; | 1457 fConfigTable[kRGBA_4444_GrPixelConfig].fFormats.fSizedInternalFormat = GR_GL
_RGBA4; |
| 1435 fConfigTable[kRGBA_4444_GrPixelConfig].fFormats.fExternalFormat[kOther_Exter
nalFormatUsage] = | 1458 fConfigTable[kRGBA_4444_GrPixelConfig].fFormats.fExternalFormat[kOther_Exter
nalFormatUsage] = |
| 1436 GR_GL_RGBA; | 1459 GR_GL_RGBA; |
| 1437 fConfigTable[kRGBA_4444_GrPixelConfig].fFormats.fExternalType = GR_GL_UNSIGN
ED_SHORT_4_4_4_4; | 1460 fConfigTable[kRGBA_4444_GrPixelConfig].fFormats.fExternalType = GR_GL_UNSIGN
ED_SHORT_4_4_4_4; |
| 1438 fConfigTable[kRGBA_4444_GrPixelConfig].fFormatType = kNormalizedFixedPoint_F
ormatType; | 1461 fConfigTable[kRGBA_4444_GrPixelConfig].fFormatType = kNormalizedFixedPoint_F
ormatType; |
| 1439 fConfigTable[kRGBA_4444_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Fla
g; | 1462 fConfigTable[kRGBA_4444_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Fla
g; |
| 1440 if (kGL_GrGLStandard == standard) { | 1463 if (kGL_GrGLStandard == standard) { |
| 1441 if (version >= GR_GL_VER(4, 2)) { | 1464 if (version >= GR_GL_VER(4, 2)) { |
| 1442 fConfigTable[kRGBA_4444_GrPixelConfig].fFlags |= allRenderFlags; | 1465 fConfigTable[kRGBA_4444_GrPixelConfig].fFlags |= allRenderFlags; |
| 1443 } | 1466 } |
| 1444 } else { | 1467 } else { |
| 1445 fConfigTable[kRGBA_4444_GrPixelConfig].fFlags |= allRenderFlags; | 1468 fConfigTable[kRGBA_4444_GrPixelConfig].fFlags |= allRenderFlags; |
| 1446 } | 1469 } |
| 1470 if (texStorageSupported) { |
| 1471 fConfigTable[kRGBA_4444_GrPixelConfig].fFlags |= ConfigInfo::kCanUseTexS
torage_Flag; |
| 1472 } |
| 1447 fConfigTable[kRGBA_4444_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); | 1473 fConfigTable[kRGBA_4444_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); |
| 1448 | 1474 |
| 1449 if (this->textureRedSupport()) { | 1475 if (this->textureRedSupport()) { |
| 1450 fConfigTable[kAlpha_8_GrPixelConfig].fFormats.fBaseInternalFormat = GR_G
L_RED; | 1476 fConfigTable[kAlpha_8_GrPixelConfig].fFormats.fBaseInternalFormat = GR_G
L_RED; |
| 1451 fConfigTable[kAlpha_8_GrPixelConfig].fFormats.fSizedInternalFormat = GR_
GL_R8; | 1477 fConfigTable[kAlpha_8_GrPixelConfig].fFormats.fSizedInternalFormat = GR_
GL_R8; |
| 1452 fConfigTable[kAlpha_8_GrPixelConfig].fFormats.fExternalFormat[kOther_Ext
ernalFormatUsage] = | 1478 fConfigTable[kAlpha_8_GrPixelConfig].fFormats.fExternalFormat[kOther_Ext
ernalFormatUsage] = |
| 1453 GR_GL_RED; | 1479 GR_GL_RED; |
| 1454 fConfigTable[kAlpha_8_GrPixelConfig].fSwizzle = GrSwizzle::RRRR(); | 1480 fConfigTable[kAlpha_8_GrPixelConfig].fSwizzle = GrSwizzle::RRRR(); |
| 1455 } else { | 1481 } else { |
| 1456 fConfigTable[kAlpha_8_GrPixelConfig].fFormats.fBaseInternalFormat = GR_G
L_ALPHA; | 1482 fConfigTable[kAlpha_8_GrPixelConfig].fFormats.fBaseInternalFormat = GR_G
L_ALPHA; |
| 1457 fConfigTable[kAlpha_8_GrPixelConfig].fFormats.fSizedInternalFormat = GR_
GL_ALPHA8; | 1483 fConfigTable[kAlpha_8_GrPixelConfig].fFormats.fSizedInternalFormat = GR_
GL_ALPHA8; |
| 1458 fConfigTable[kAlpha_8_GrPixelConfig].fFormats.fExternalFormat[kOther_Ext
ernalFormatUsage] = | 1484 fConfigTable[kAlpha_8_GrPixelConfig].fFormats.fExternalFormat[kOther_Ext
ernalFormatUsage] = |
| 1459 GR_GL_ALPHA; | 1485 GR_GL_ALPHA; |
| 1460 fConfigTable[kAlpha_8_GrPixelConfig].fSwizzle = GrSwizzle::AAAA(); | 1486 fConfigTable[kAlpha_8_GrPixelConfig].fSwizzle = GrSwizzle::AAAA(); |
| 1461 } | 1487 } |
| 1462 fConfigTable[kAlpha_8_GrPixelConfig].fFormats.fExternalType = GR_GL_UNSIGNED
_BYTE; | 1488 fConfigTable[kAlpha_8_GrPixelConfig].fFormats.fExternalType = GR_GL_UNSIGNED
_BYTE; |
| 1463 fConfigTable[kAlpha_8_GrPixelConfig].fFormatType = kNormalizedFixedPoint_For
matType; | 1489 fConfigTable[kAlpha_8_GrPixelConfig].fFormatType = kNormalizedFixedPoint_For
matType; |
| 1464 fConfigTable[kAlpha_8_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag; | 1490 fConfigTable[kAlpha_8_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag; |
| 1465 if (this->textureRedSupport() || kDesktop_ARB_MSFBOType == this->msFBOType()
) { | 1491 if (this->textureRedSupport() || kDesktop_ARB_MSFBOType == this->msFBOType()
) { |
| 1466 // desktop ARB extension/3.0+ supports ALPHA8 as renderable. | 1492 // desktop ARB extension/3.0+ supports ALPHA8 as renderable. |
| 1467 // Core profile removes ALPHA8 support, but we should have chosen R8 in
that case. | 1493 // Core profile removes ALPHA8 support, but we should have chosen R8 in
that case. |
| 1468 fConfigTable[kAlpha_8_GrPixelConfig].fFlags |= allRenderFlags; | 1494 fConfigTable[kAlpha_8_GrPixelConfig].fFlags |= allRenderFlags; |
| 1469 } | 1495 } |
| 1496 if (texStorageSupported) { |
| 1497 fConfigTable[kAlpha_8_GrPixelConfig].fFlags |= ConfigInfo::kCanUseTexSto
rage_Flag; |
| 1498 } |
| 1470 | 1499 |
| 1471 // Check for [half] floating point texture support | 1500 // Check for [half] floating point texture support |
| 1472 // NOTE: We disallow floating point textures on ES devices if linear filteri
ng modes are not | 1501 // NOTE: We disallow floating point textures on ES devices if linear filteri
ng modes are not |
| 1473 // supported. This is for simplicity, but a more granular approach is possib
le. Coincidentally, | 1502 // supported. This is for simplicity, but a more granular approach is possib
le. Coincidentally, |
| 1474 // [half] floating point textures became part of the standard in ES3.1 / OGL
3.0. | 1503 // [half] floating point textures became part of the standard in ES3.1 / OGL
3.0. |
| 1475 bool hasFPTextures = false; | 1504 bool hasFPTextures = false; |
| 1476 bool hasHalfFPTextures = false; | 1505 bool hasHalfFPTextures = false; |
| 1477 // for now we don't support floating point MSAA on ES | 1506 // for now we don't support floating point MSAA on ES |
| 1478 uint32_t fpRenderFlags = (kGL_GrGLStandard == standard) ? | 1507 uint32_t fpRenderFlags = (kGL_GrGLStandard == standard) ? |
| 1479 allRenderFlags : (uint32_t)ConfigInfo::kRenderable
_Flag; | 1508 allRenderFlags : (uint32_t)ConfigInfo::kRenderable
_Flag; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 1507 fConfigTable[kRGBA_float_GrPixelConfig].fFormatType = kFloat_FormatType; | 1536 fConfigTable[kRGBA_float_GrPixelConfig].fFormatType = kFloat_FormatType; |
| 1508 if (hasFPTextures) { | 1537 if (hasFPTextures) { |
| 1509 fConfigTable[kRGBA_float_GrPixelConfig].fFlags = ConfigInfo::kTextureabl
e_Flag; | 1538 fConfigTable[kRGBA_float_GrPixelConfig].fFlags = ConfigInfo::kTextureabl
e_Flag; |
| 1510 // For now we only enable rendering to float on desktop, because on ES w
e'd have to solve | 1539 // For now we only enable rendering to float on desktop, because on ES w
e'd have to solve |
| 1511 // many precision issues and no clients actually want this yet. | 1540 // many precision issues and no clients actually want this yet. |
| 1512 if (kGL_GrGLStandard == standard /* || version >= GR_GL_VER(3,2) || | 1541 if (kGL_GrGLStandard == standard /* || version >= GR_GL_VER(3,2) || |
| 1513 ctxInfo.hasExtension("GL_EXT_color_buffer_float")*/) { | 1542 ctxInfo.hasExtension("GL_EXT_color_buffer_float")*/) { |
| 1514 fConfigTable[kRGBA_float_GrPixelConfig].fFlags |= fpRenderFlags; | 1543 fConfigTable[kRGBA_float_GrPixelConfig].fFlags |= fpRenderFlags; |
| 1515 } | 1544 } |
| 1516 } | 1545 } |
| 1546 if (texStorageSupported) { |
| 1547 fConfigTable[kRGBA_float_GrPixelConfig].fFlags |= ConfigInfo::kCanUseTex
Storage_Flag; |
| 1548 } |
| 1517 fConfigTable[kRGBA_float_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); | 1549 fConfigTable[kRGBA_float_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); |
| 1518 | 1550 |
| 1519 if (this->textureRedSupport()) { | 1551 if (this->textureRedSupport()) { |
| 1520 fConfigTable[kAlpha_half_GrPixelConfig].fFormats.fBaseInternalFormat = G
R_GL_RED; | 1552 fConfigTable[kAlpha_half_GrPixelConfig].fFormats.fBaseInternalFormat = G
R_GL_RED; |
| 1521 fConfigTable[kAlpha_half_GrPixelConfig].fFormats.fSizedInternalFormat =
GR_GL_R16F; | 1553 fConfigTable[kAlpha_half_GrPixelConfig].fFormats.fSizedInternalFormat =
GR_GL_R16F; |
| 1522 fConfigTable[kAlpha_half_GrPixelConfig].fFormats.fExternalFormat[kOther_
ExternalFormatUsage] | 1554 fConfigTable[kAlpha_half_GrPixelConfig].fFormats.fExternalFormat[kOther_
ExternalFormatUsage] |
| 1523 = GR_GL_RED; | 1555 = GR_GL_RED; |
| 1524 fConfigTable[kAlpha_half_GrPixelConfig].fSwizzle = GrSwizzle::RRRR(); | 1556 fConfigTable[kAlpha_half_GrPixelConfig].fSwizzle = GrSwizzle::RRRR(); |
| 1525 } else { | 1557 } else { |
| 1526 fConfigTable[kAlpha_half_GrPixelConfig].fFormats.fBaseInternalFormat = G
R_GL_ALPHA; | 1558 fConfigTable[kAlpha_half_GrPixelConfig].fFormats.fBaseInternalFormat = G
R_GL_ALPHA; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1538 if (hasHalfFPTextures) { | 1570 if (hasHalfFPTextures) { |
| 1539 fConfigTable[kAlpha_half_GrPixelConfig].fFlags = ConfigInfo::kTextureabl
e_Flag; | 1571 fConfigTable[kAlpha_half_GrPixelConfig].fFlags = ConfigInfo::kTextureabl
e_Flag; |
| 1540 // ES requires either 3.2 or the combination of EXT_color_buffer_half_fl
oat and support for | 1572 // ES requires either 3.2 or the combination of EXT_color_buffer_half_fl
oat and support for |
| 1541 // GL_RED internal format. | 1573 // GL_RED internal format. |
| 1542 if (kGL_GrGLStandard == standard || version >= GR_GL_VER(3,2) || | 1574 if (kGL_GrGLStandard == standard || version >= GR_GL_VER(3,2) || |
| 1543 (this->textureRedSupport() && | 1575 (this->textureRedSupport() && |
| 1544 ctxInfo.hasExtension("GL_EXT_color_buffer_half_float"))) { | 1576 ctxInfo.hasExtension("GL_EXT_color_buffer_half_float"))) { |
| 1545 fConfigTable[kAlpha_half_GrPixelConfig].fFlags |= fpRenderFlags; | 1577 fConfigTable[kAlpha_half_GrPixelConfig].fFlags |= fpRenderFlags; |
| 1546 } | 1578 } |
| 1547 } | 1579 } |
| 1580 if (texStorageSupported) { |
| 1581 fConfigTable[kAlpha_half_GrPixelConfig].fFlags |= ConfigInfo::kCanUseTex
Storage_Flag; |
| 1582 } |
| 1548 | 1583 |
| 1549 fConfigTable[kRGBA_half_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_
RGBA; | 1584 fConfigTable[kRGBA_half_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_
RGBA; |
| 1550 fConfigTable[kRGBA_half_GrPixelConfig].fFormats.fSizedInternalFormat = GR_GL
_RGBA16F; | 1585 fConfigTable[kRGBA_half_GrPixelConfig].fFormats.fSizedInternalFormat = GR_GL
_RGBA16F; |
| 1551 fConfigTable[kRGBA_half_GrPixelConfig].fFormats.fExternalFormat[kOther_Exter
nalFormatUsage] = | 1586 fConfigTable[kRGBA_half_GrPixelConfig].fFormats.fExternalFormat[kOther_Exter
nalFormatUsage] = |
| 1552 GR_GL_RGBA; | 1587 GR_GL_RGBA; |
| 1553 if (kGL_GrGLStandard == ctxInfo.standard() || ctxInfo.version() >= GR_GL_VER
(3, 0)) { | 1588 if (kGL_GrGLStandard == ctxInfo.standard() || ctxInfo.version() >= GR_GL_VER
(3, 0)) { |
| 1554 fConfigTable[kRGBA_half_GrPixelConfig].fFormats.fExternalType = GR_GL_HA
LF_FLOAT; | 1589 fConfigTable[kRGBA_half_GrPixelConfig].fFormats.fExternalType = GR_GL_HA
LF_FLOAT; |
| 1555 } else { | 1590 } else { |
| 1556 fConfigTable[kRGBA_half_GrPixelConfig].fFormats.fExternalType = GR_GL_HA
LF_FLOAT_OES; | 1591 fConfigTable[kRGBA_half_GrPixelConfig].fFormats.fExternalType = GR_GL_HA
LF_FLOAT_OES; |
| 1557 } | 1592 } |
| 1558 fConfigTable[kRGBA_half_GrPixelConfig].fFormatType = kFloat_FormatType; | 1593 fConfigTable[kRGBA_half_GrPixelConfig].fFormatType = kFloat_FormatType; |
| 1559 if (hasHalfFPTextures) { | 1594 if (hasHalfFPTextures) { |
| 1560 fConfigTable[kRGBA_half_GrPixelConfig].fFlags = ConfigInfo::kTextureable
_Flag; | 1595 fConfigTable[kRGBA_half_GrPixelConfig].fFlags = ConfigInfo::kTextureable
_Flag; |
| 1561 // ES requires 3.2 or EXT_color_buffer_half_float. | 1596 // ES requires 3.2 or EXT_color_buffer_half_float. |
| 1562 if (kGL_GrGLStandard == standard || version >= GR_GL_VER(3,2) || | 1597 if (kGL_GrGLStandard == standard || version >= GR_GL_VER(3,2) || |
| 1563 ctxInfo.hasExtension("GL_EXT_color_buffer_half_float")) { | 1598 ctxInfo.hasExtension("GL_EXT_color_buffer_half_float")) { |
| 1564 fConfigTable[kRGBA_half_GrPixelConfig].fFlags |= fpRenderFlags; | 1599 fConfigTable[kRGBA_half_GrPixelConfig].fFlags |= fpRenderFlags; |
| 1565 } | 1600 } |
| 1566 } | 1601 } |
| 1602 if (texStorageSupported) { |
| 1603 fConfigTable[kRGBA_half_GrPixelConfig].fFlags |= ConfigInfo::kCanUseTexS
torage_Flag; |
| 1604 } |
| 1567 fConfigTable[kRGBA_half_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); | 1605 fConfigTable[kRGBA_half_GrPixelConfig].fSwizzle = GrSwizzle::RGBA(); |
| 1568 | 1606 |
| 1569 // Compressed texture support | 1607 // Compressed texture support |
| 1570 | 1608 |
| 1571 // glCompressedTexImage2D is available on all OpenGL ES devices. It is avail
able on standard | 1609 // glCompressedTexImage2D is available on all OpenGL ES devices. It is avail
able on standard |
| 1572 // OpenGL after version 1.3. We'll assume at least that level of OpenGL supp
ort. | 1610 // OpenGL after version 1.3. We'll assume at least that level of OpenGL supp
ort. |
| 1573 | 1611 |
| 1574 // TODO: Fix command buffer bindings and remove this. | 1612 // TODO: Fix command buffer bindings and remove this. |
| 1575 fCompressedTexSubImageSupport = SkToBool(gli->fFunctions.fCompressedTexSubIm
age2D); | 1613 fCompressedTexSubImageSupport = SkToBool(gli->fFunctions.fCompressedTexSubIm
age2D); |
| 1576 | 1614 |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1752 for (int j = 0; j < kExternalFormatUsageCnt; ++j) { | 1790 for (int j = 0; j < kExternalFormatUsageCnt; ++j) { |
| 1753 SkASSERT(defaultEntry.fFormats.fExternalFormat[j] != | 1791 SkASSERT(defaultEntry.fFormats.fExternalFormat[j] != |
| 1754 fConfigTable[i].fFormats.fExternalFormat[j]); | 1792 fConfigTable[i].fFormats.fExternalFormat[j]); |
| 1755 } | 1793 } |
| 1756 SkASSERT(defaultEntry.fFormats.fExternalType != fConfigTable[i].fFormats
.fExternalType); | 1794 SkASSERT(defaultEntry.fFormats.fExternalType != fConfigTable[i].fFormats
.fExternalType); |
| 1757 } | 1795 } |
| 1758 #endif | 1796 #endif |
| 1759 } | 1797 } |
| 1760 | 1798 |
| 1761 void GrGLCaps::onApplyOptionsOverrides(const GrContextOptions& options) {} | 1799 void GrGLCaps::onApplyOptionsOverrides(const GrContextOptions& options) {} |
| OLD | NEW |