Implement GL_OES_texture_cube_map_array.

This commit is contained in:
John Kessenich 2015-08-16 14:21:20 -06:00
parent 302b46aebc
commit dc9eff7221
7 changed files with 790 additions and 9 deletions

View file

@ -781,11 +781,13 @@ int TScanContext::tokenizeIdentifier()
case IMAGE2DRECT:
case IIMAGE2DRECT:
case UIMAGE2DRECT:
afterType = true;
return firstGenerationImage(false);
case IMAGEBUFFER:
case IIMAGEBUFFER:
case UIMAGEBUFFER:
afterType = true;
if (parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer))
return keyword;
return firstGenerationImage(false);
@ -802,17 +804,24 @@ int TScanContext::tokenizeIdentifier()
case IMAGE2DARRAY:
case IIMAGE2DARRAY:
case UIMAGE2DARRAY:
afterType = true;
return firstGenerationImage(true);
case IMAGECUBEARRAY:
case IIMAGECUBEARRAY:
case UIMAGECUBEARRAY:
case UIMAGECUBEARRAY:
afterType = true;
if (parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array))
return keyword;
return secondGenerationImage();
case IMAGE2DMS:
case IIMAGE2DMS:
case UIMAGE2DMS:
case IMAGE2DMSARRAY:
case IIMAGE2DMSARRAY:
case UIMAGE2DMSARRAY:
afterType = true;
return secondGenerationImage();
case DOUBLE:
@ -829,6 +838,8 @@ int TScanContext::tokenizeIdentifier()
case ISAMPLERCUBEARRAY:
case USAMPLERCUBEARRAY:
afterType = true;
if (parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array))
return keyword;
if (parseContext.profile == EEsProfile || (parseContext.version < 400 && ! parseContext.extensionTurnedOn(E_GL_ARB_texture_cube_map_array)))
reservedWord();
return keyword;
@ -1127,8 +1138,6 @@ int TScanContext::dMat()
int TScanContext::firstGenerationImage(bool inEs310)
{
afterType = true;
if (parseContext.symbolTable.atBuiltInLevel() ||
(parseContext.profile != EEsProfile && (parseContext.version >= 420 || parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store))) ||
(inEs310 && parseContext.profile == EEsProfile && parseContext.version >= 310))
@ -1149,8 +1158,6 @@ int TScanContext::firstGenerationImage(bool inEs310)
int TScanContext::secondGenerationImage()
{
afterType = true;
if (parseContext.profile == EEsProfile && parseContext.version >= 310) {
reservedWord();
return keyword;