\r
GLenum OutputASM::glVariableType(const TType &type)\r
{\r
- if(type.getBasicType() == EbtFloat)\r
+ switch(type.getBasicType())\r
{\r
+ case EbtFloat:\r
if(type.isScalar())\r
{\r
return GL_FLOAT;\r
}\r
}\r
else UNREACHABLE();\r
- }\r
- else if(type.getBasicType() == EbtInt)\r
- {\r
+ break;\r
+ case EbtInt:\r
if(type.isScalar())\r
{\r
return GL_INT;\r
}\r
}\r
else UNREACHABLE();\r
- }\r
- else if(type.getBasicType() == EbtBool)\r
- {\r
+ break;\r
+ case EbtUInt:\r
+ if(type.isScalar())\r
+ {\r
+ return GL_UNSIGNED_INT;\r
+ }\r
+ else if(type.isVector())\r
+ {\r
+ switch(type.getNominalSize())\r
+ {\r
+ case 2: return GL_UNSIGNED_INT_VEC2;\r
+ case 3: return GL_UNSIGNED_INT_VEC3;\r
+ case 4: return GL_UNSIGNED_INT_VEC4;\r
+ default: UNREACHABLE();\r
+ }\r
+ }\r
+ else UNREACHABLE();\r
+ break;\r
+ case EbtBool:\r
if(type.isScalar())\r
{\r
return GL_BOOL;\r
}\r
}\r
else UNREACHABLE();\r
- }\r
- else if(type.getBasicType() == EbtSampler2D)\r
- {\r
+ break;\r
+ case EbtSampler2D:\r
+ case EbtISampler2D:\r
+ case EbtUSampler2D:\r
return GL_SAMPLER_2D;\r
- }\r
- else if(type.getBasicType() == EbtSamplerCube)\r
- {\r
+ case EbtSamplerCube:\r
+ case EbtISamplerCube:\r
+ case EbtUSamplerCube:\r
return GL_SAMPLER_CUBE;\r
- }\r
- else if(type.getBasicType() == EbtSamplerExternalOES)\r
- {\r
+ case EbtSamplerExternalOES:\r
return GL_SAMPLER_EXTERNAL_OES;\r
- }\r
- else if(type.getBasicType() == EbtSampler3D)\r
- {\r
+ case EbtSampler3D:\r
+ case EbtISampler3D:\r
+ case EbtUSampler3D:\r
return GL_SAMPLER_3D_OES;\r
+ case EbtSampler2DArray:\r
+ case EbtISampler2DArray:\r
+ case EbtUSampler2DArray:\r
+ return GL_SAMPLER_2D_ARRAY;\r
+ default:\r
+ UNREACHABLE();\r
+ break;\r
}\r
- else UNREACHABLE();\r
\r
return GL_NONE;\r
}\r