Log the switch value when reaching an UNREACHABLE().
Bug 20025568
Change-Id: I37d2c7171e0704b4064e56e8ca8799f930038d87
Reviewed-on: https://swiftshader-review.googlesource.com/3481
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/Common/DebugAndroid.hpp b/src/Common/DebugAndroid.hpp
index f87ba66..41dd3ba 100644
--- a/src/Common/DebugAndroid.hpp
+++ b/src/Common/DebugAndroid.hpp
@@ -56,10 +56,10 @@
AndroidEnterDebugger(); \
} while(0)
-#define UNREACHABLE() do { \
- ALOGE("badness: unreachable reached: %s %s:%d", \
- __FUNCTION__, __FILE__, __LINE__); \
- AndroidEnterDebugger(); \
+#define UNREACHABLE(value) do { \
+ ALOGE("badness: unreachable case reached: %s %s:%d. value: %d", \
+ __FUNCTION__, __FILE__, __LINE__, value); \
+ AndroidEnterDebugger(); \
} while(0)
#ifndef NDEBUG
diff --git a/src/OpenGL/common/Image.cpp b/src/OpenGL/common/Image.cpp
index 5b1aedc..691e77e 100644
--- a/src/OpenGL/common/Image.cpp
+++ b/src/OpenGL/common/Image.cpp
@@ -353,7 +353,7 @@
case GL_HALF_FLOAT: return sw::FORMAT_L16F;
case GL_HALF_FLOAT_OES: return sw::FORMAT_L16F;
case GL_FLOAT: return sw::FORMAT_L32F;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
break;
case GL_LUMINANCE_ALPHA:
@@ -363,7 +363,7 @@
case GL_HALF_FLOAT: return sw::FORMAT_A16L16F;
case GL_HALF_FLOAT_OES: return sw::FORMAT_A16L16F;
case GL_FLOAT: return sw::FORMAT_A32L32F;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
break;
case GL_RGBA:
@@ -375,14 +375,14 @@
case GL_HALF_FLOAT: return sw::FORMAT_A16B16G16R16F;
case GL_HALF_FLOAT_OES: return sw::FORMAT_A16B16G16R16F;
case GL_FLOAT: return sw::FORMAT_A32B32G32R32F;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
break;
case GL_BGRA_EXT:
switch(type)
{
case GL_UNSIGNED_BYTE: return sw::FORMAT_A8R8G8B8;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
break;
case GL_RGB:
@@ -393,7 +393,7 @@
case GL_HALF_FLOAT: return sw::FORMAT_B16G16R16F;
case GL_HALF_FLOAT_OES: return sw::FORMAT_B16G16R16F;
case GL_FLOAT: return sw::FORMAT_B32G32R32F;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
break;
case GL_ALPHA:
@@ -403,11 +403,11 @@
case GL_HALF_FLOAT: return sw::FORMAT_A16F;
case GL_HALF_FLOAT_OES: return sw::FORMAT_A16F;
case GL_FLOAT: return sw::FORMAT_A32F;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
break;
default:
- UNREACHABLE();
+ UNREACHABLE(format);
}
return sw::FORMAT_NULL;
@@ -470,7 +470,7 @@
{
return sw::FORMAT_A8;
}
- else UNREACHABLE();
+ else UNREACHABLE(format);
}
else if(type == GL_UNSIGNED_SHORT || type == GL_UNSIGNED_INT)
{
@@ -478,7 +478,7 @@
{
return sw::FORMAT_D32FS8_TEXTURE;
}
- else UNREACHABLE();
+ else UNREACHABLE(format);
}
else if(type == GL_UNSIGNED_INT_24_8_OES)
{
@@ -486,7 +486,7 @@
{
return sw::FORMAT_D32FS8_TEXTURE;
}
- else UNREACHABLE();
+ else UNREACHABLE(format);
}
else if(type == GL_UNSIGNED_SHORT_4_4_4_4)
{
@@ -500,7 +500,7 @@
{
return sw::FORMAT_X8R8G8B8;
}
- else UNREACHABLE();
+ else UNREACHABLE(type);
return sw::FORMAT_A8B8G8R8;
}
@@ -519,7 +519,7 @@
case GL_RGB: return sizeof(unsigned char) * 3;
case GL_RGBA: return sizeof(unsigned char) * 4;
case GL_BGRA_EXT: return sizeof(unsigned char) * 4;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
case GL_UNSIGNED_SHORT_4_4_4_4:
@@ -538,7 +538,7 @@
case GL_LUMINANCE_ALPHA: return sizeof(float) * 2;
case GL_RGB: return sizeof(float) * 3;
case GL_RGBA: return sizeof(float) * 4;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
case GL_HALF_FLOAT:
@@ -550,10 +550,10 @@
case GL_LUMINANCE_ALPHA: return sizeof(unsigned short) * 2;
case GL_RGB: return sizeof(unsigned short) * 3;
case GL_RGBA: return sizeof(unsigned short) * 4;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
return 0;
@@ -673,7 +673,7 @@
case GL_BGRA_EXT:
LoadImageData<UByte4>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
case GL_UNSIGNED_SHORT_5_6_5:
@@ -682,7 +682,7 @@
case GL_RGB:
LoadImageData<RGB565>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
case GL_UNSIGNED_SHORT_4_4_4_4:
@@ -691,7 +691,7 @@
case GL_RGBA:
LoadImageData<RGBA4444>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
case GL_UNSIGNED_SHORT_5_5_5_1:
@@ -700,7 +700,7 @@
case GL_RGBA:
LoadImageData<RGBA5551>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
case GL_FLOAT:
@@ -722,7 +722,7 @@
case GL_RGBA:
LoadImageData<Float4>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
case GL_HALF_FLOAT:
@@ -744,7 +744,7 @@
case GL_RGBA:
LoadImageData<HalfFloat4>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
case GL_UNSIGNED_SHORT:
@@ -756,7 +756,7 @@
case GL_UNSIGNED_INT_24_8_OES:
loadD24S8ImageData(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, input, buffer);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
}
diff --git a/src/OpenGL/common/debug.h b/src/OpenGL/common/debug.h
index a210596..5035399 100644
--- a/src/OpenGL/common/debug.h
+++ b/src/OpenGL/common/debug.h
@@ -77,12 +77,12 @@
// A macro for code which is not expected to be reached under valid assumptions
#undef UNREACHABLE
#if !defined(NDEBUG)
-#define UNREACHABLE() do { \
- ERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__); \
+#define UNREACHABLE(value) do { \
+ ERR("\t! Unreachable case reached: %s(%d). Value: %d\n", __FUNCTION__, __LINE__, value); \
assert(false); \
} while(0)
#else
- #define UNREACHABLE() ERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__)
+ #define UNREACHABLE(value) ERR("\t! Unreachable reached: %s(%d). Value: %d\n", __FUNCTION__, __LINE__, value)
#endif
#endif // __ANDROID__
diff --git a/src/OpenGL/compiler/AnalyzeCallDepth.cpp b/src/OpenGL/compiler/AnalyzeCallDepth.cpp
index fedd552..94c3540 100644
--- a/src/OpenGL/compiler/AnalyzeCallDepth.cpp
+++ b/src/OpenGL/compiler/AnalyzeCallDepth.cpp
@@ -52,7 +52,7 @@
callDepth = std::max(callDepth, 1 + callees[i]->analyzeCallDepth(analyzeCallDepth));
break;
default:
- UNREACHABLE();
+ UNREACHABLE(callees[i]->visit);
break;
}
}
diff --git a/src/OpenGL/compiler/BaseTypes.h b/src/OpenGL/compiler/BaseTypes.h
index baf3cc0..84299e5 100644
--- a/src/OpenGL/compiler/BaseTypes.h
+++ b/src/OpenGL/compiler/BaseTypes.h
@@ -108,7 +108,7 @@
case EbtSamplerExternalOES: return "samplerExternalOES";
case EbtSampler3D: return "sampler3D";
case EbtStruct: return "structure";
- default: UNREACHABLE(); return "unknown type";
+ default: UNREACHABLE(type); return "unknown type";
}
}
@@ -119,7 +119,7 @@
case EmpUnspecified: return "mp_unspecified";
case EmpRowMajor: return "row_major";
case EmpColumnMajor: return "column_major";
- default: UNREACHABLE(); return "unknown matrix packing";
+ default: UNREACHABLE(mpq); return "unknown matrix packing";
}
}
@@ -131,7 +131,7 @@
case EbsShared: return "shared";
case EbsPacked: return "packed";
case EbsStd140: return "std140";
- default: UNREACHABLE(); return "unknown block storage";
+ default: UNREACHABLE(bsq); return "unknown block storage";
}
}
@@ -447,7 +447,7 @@
case EvqSmoothIn: return "SmoothIn"; break;
case EvqFlatIn: return "FlatIn"; break;
case EvqCentroidIn: return "CentroidIn"; break;
- default: UNREACHABLE(); return "unknown qualifier";
+ default: UNREACHABLE(qualifier); return "unknown qualifier";
}
}
diff --git a/src/OpenGL/compiler/Diagnostics.cpp b/src/OpenGL/compiler/Diagnostics.cpp
index 8037af0..32715ad 100644
--- a/src/OpenGL/compiler/Diagnostics.cpp
+++ b/src/OpenGL/compiler/Diagnostics.cpp
@@ -45,7 +45,7 @@
prefix = EPrefixWarning;
break;
default:
- UNREACHABLE();
+ UNREACHABLE(severity);
break;
}
diff --git a/src/OpenGL/compiler/DirectiveHandler.cpp b/src/OpenGL/compiler/DirectiveHandler.cpp
index ae6727b..c9368b1 100644
--- a/src/OpenGL/compiler/DirectiveHandler.cpp
+++ b/src/OpenGL/compiler/DirectiveHandler.cpp
@@ -140,7 +140,7 @@
severity = pp::Diagnostics::PP_WARNING;
break;
default:
- UNREACHABLE();
+ UNREACHABLE(behaviorVal);
break;
}
mDiagnostics.writeInfo(severity, loc,
diff --git a/src/OpenGL/compiler/Intermediate.cpp b/src/OpenGL/compiler/Intermediate.cpp
index 62658a4..40be9be 100644
--- a/src/OpenGL/compiler/Intermediate.cpp
+++ b/src/OpenGL/compiler/Intermediate.cpp
@@ -48,7 +48,7 @@
return left.getNominalSize() == right.getNominalSize() &&
left.getSecondarySize() == right.getSecondarySize();
default:
- UNREACHABLE();
+ UNREACHABLE(op);
return false;
}
}
@@ -1140,7 +1140,7 @@
unionArray[14].getFConst(),
unionArray[15].getFConst());
default:
- UNREACHABLE();
+ UNREACHABLE(size);
return 0.0f;
}
}
@@ -1227,7 +1227,7 @@
}
break;
default:
- UNREACHABLE();
+ UNREACHABLE(size);
}
}
return tempConstArray;
diff --git a/src/OpenGL/compiler/OutputASM.cpp b/src/OpenGL/compiler/OutputASM.cpp
index 562a577..67aada7 100644
--- a/src/OpenGL/compiler/OutputASM.cpp
+++ b/src/OpenGL/compiler/OutputASM.cpp
@@ -285,9 +285,9 @@
ASSERT(index < left->getNominalSize()); // FIXME: Report semantic error
argument(mov->src[0], left, index);
}
- else UNREACHABLE();
+ else UNREACHABLE(0);
}
- else UNREACHABLE();
+ else UNREACHABLE(0);
}
break;
case EOpIndexIndirect:
@@ -318,7 +318,7 @@
{
emit(sw::Shader::OPCODE_EXTRACT, result, left, right);
}
- else UNREACHABLE();
+ else UNREACHABLE(0);
}
break;
case EOpIndexDirectStruct:
@@ -359,10 +359,10 @@
swizzle |= i << (component * 2);
component++;
}
- else UNREACHABLE();
+ else UNREACHABLE(0);
}
}
- else UNREACHABLE();
+ else UNREACHABLE(0);
Instruction *mov = emit(sw::Shader::OPCODE_MOV, result, left);
mov->src[0].swizzle = swizzle;
@@ -516,7 +516,7 @@
}
}
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(node->getOp());
}
return true;
@@ -663,7 +663,7 @@
}
}
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(node->getOp());
}
return true;
@@ -720,7 +720,7 @@
functionArray.push_back(Function(functionArray.size(), name, &arguments, node));
}
}
- else UNREACHABLE();
+ else UNREACHABLE(emitScope);
currentScope = FUNCTION;
}
@@ -806,7 +806,7 @@
Instruction *tex = emit(sw::Shader::OPCODE_TEX, result, &uvwb, arg[0]); // FIXME: Implement an efficient TEXLDB instruction
tex->bias = true;
}
- else UNREACHABLE();
+ else UNREACHABLE(argumentCount);
}
else if(name == "texture2DProj")
{
@@ -839,7 +839,7 @@
div->src[1].swizzle = 0xFF;
div->dst.mask = 0x3;
}
- else UNREACHABLE();
+ else UNREACHABLE(t->getNominalSize());
Instruction *bias = emit(sw::Shader::OPCODE_MOV, &proj, arg[2]);
bias->dst.mask = 0x8;
@@ -847,7 +847,7 @@
Instruction *tex = emit(sw::Shader::OPCODE_TEX, result, &proj, arg[0]);
tex->bias = true;
}
- else UNREACHABLE();
+ else UNREACHABLE(argumentCount);
}
else if(name == "texture2DLod" || name == "textureCubeLod")
{
@@ -875,14 +875,14 @@
div->src[1].swizzle = 0xFF;
div->dst.mask = 0x3;
}
- else UNREACHABLE();
+ else UNREACHABLE(t->getNominalSize());
Instruction *lod = emit(sw::Shader::OPCODE_MOV, &proj, arg[2]);
lod->dst.mask = 0x8;
emit(sw::Shader::OPCODE_TEXLDL, result, &proj, arg[0]);
}
- else UNREACHABLE();
+ else UNREACHABLE(0);
}
}
break;
@@ -1096,7 +1096,7 @@
}
}
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(node->getOp());
}
return true;
@@ -1325,7 +1325,7 @@
emit(sw::Shader::OPCODE_LEAVE);
}
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(node->getFlowOp());
}
return true;
@@ -1455,7 +1455,7 @@
return registers * type.getSecondarySize();
}
- UNREACHABLE();
+ UNREACHABLE(0);
return 0;
}
@@ -1503,7 +1503,7 @@
return registerSize(type, 0);
}
- UNREACHABLE();
+ UNREACHABLE(0);
return 0;
}
@@ -1571,7 +1571,7 @@
{
parameter.index += right->getAsConstantUnion()->getIConst(0);
}
- else UNREACHABLE();
+ else UNREACHABLE(binary->getOp());
}
}
}
@@ -1695,7 +1695,7 @@
dst.index += rightIndex * result->totalRegisterCount();
return 0xE4;
}
- else UNREACHABLE();
+ else UNREACHABLE(0);
}
break;
case EOpIndexIndirect:
@@ -1758,7 +1758,7 @@
}
}
}
- else UNREACHABLE();
+ else UNREACHABLE(0);
}
break;
case EOpIndexDirectStruct:
@@ -1805,7 +1805,7 @@
}
break;
default:
- UNREACHABLE(); // Not an l-value operator
+ UNREACHABLE(binary->getOp()); // Not an l-value operator
break;
}
}
@@ -1865,7 +1865,7 @@
case EvqPointCoord: return sw::Shader::PARAMETER_INPUT;
case EvqFragColor: return sw::Shader::PARAMETER_COLOROUT;
case EvqFragData: return sw::Shader::PARAMETER_COLOROUT;
- default: UNREACHABLE();
+ default: UNREACHABLE(qualifier);
}
return sw::Shader::PARAMETER_VOID;
@@ -1882,7 +1882,7 @@
{
case EvqTemporary: return temporaryRegister(operand);
case EvqGlobal: return temporaryRegister(operand);
- case EvqConstExpr: UNREACHABLE();
+ case EvqConstExpr: UNREACHABLE(EvqConstExpr);
case EvqAttribute: return attributeRegister(operand);
case EvqVaryingIn: return varyingRegister(operand);
case EvqVaryingOut: return varyingRegister(operand);
@@ -1905,7 +1905,7 @@
case EvqPointCoord: return varyingRegister(operand);
case EvqFragColor: return 0;
case EvqFragData: return 0;
- default: UNREACHABLE();
+ default: UNREACHABLE(operand->getQualifier());
}
return 0;
@@ -2111,7 +2111,7 @@
// Semantic indexes for user varyings will be assigned during program link to match the pixel shader
}
}
- else UNREACHABLE();
+ else UNREACHABLE(0);
declareVarying(varying, var);
}
@@ -2223,7 +2223,7 @@
return samplerRegister(binary->getLeft()); // Index added later
}
- else UNREACHABLE();
+ else UNREACHABLE(0);
return 0;
}
@@ -2411,7 +2411,7 @@
case 2: return GL_FLOAT_VEC2;
case 3: return GL_FLOAT_VEC3;
case 4: return GL_FLOAT_VEC4;
- default: UNREACHABLE();
+ default: UNREACHABLE(type.getNominalSize());
}
}
else if(type.isMatrix())
@@ -2424,7 +2424,7 @@
case 2: return GL_FLOAT_MAT2;
case 3: return GL_FLOAT_MAT2x3;
case 4: return GL_FLOAT_MAT2x4;
- default: UNREACHABLE();
+ default: UNREACHABLE(type.getSecondarySize());
}
case 3:
switch(type.getSecondarySize())
@@ -2432,7 +2432,7 @@
case 2: return GL_FLOAT_MAT3x2;
case 3: return GL_FLOAT_MAT3;
case 4: return GL_FLOAT_MAT3x4;
- default: UNREACHABLE();
+ default: UNREACHABLE(type.getSecondarySize());
}
case 4:
switch(type.getSecondarySize())
@@ -2440,12 +2440,12 @@
case 2: return GL_FLOAT_MAT4x2;
case 3: return GL_FLOAT_MAT4x3;
case 4: return GL_FLOAT_MAT4;
- default: UNREACHABLE();
+ default: UNREACHABLE(type.getSecondarySize());
}
- default: UNREACHABLE();
+ default: UNREACHABLE(type.getNominalSize());
}
}
- else UNREACHABLE();
+ else UNREACHABLE(0);
break;
case EbtInt:
if(type.isScalar())
@@ -2459,10 +2459,10 @@
case 2: return GL_INT_VEC2;
case 3: return GL_INT_VEC3;
case 4: return GL_INT_VEC4;
- default: UNREACHABLE();
+ default: UNREACHABLE(type.getNominalSize());
}
}
- else UNREACHABLE();
+ else UNREACHABLE(0);
break;
case EbtUInt:
if(type.isScalar())
@@ -2476,10 +2476,10 @@
case 2: return GL_UNSIGNED_INT_VEC2;
case 3: return GL_UNSIGNED_INT_VEC3;
case 4: return GL_UNSIGNED_INT_VEC4;
- default: UNREACHABLE();
+ default: UNREACHABLE(type.getNominalSize());
}
}
- else UNREACHABLE();
+ else UNREACHABLE(0);
break;
case EbtBool:
if(type.isScalar())
@@ -2493,10 +2493,10 @@
case 2: return GL_BOOL_VEC2;
case 3: return GL_BOOL_VEC3;
case 4: return GL_BOOL_VEC4;
- default: UNREACHABLE();
+ default: UNREACHABLE(type.getNominalSize());
}
}
- else UNREACHABLE();
+ else UNREACHABLE(0);
break;
case EbtSampler2D:
case EbtISampler2D:
@@ -2517,7 +2517,7 @@
case EbtUSampler2DArray:
return GL_SAMPLER_2D_ARRAY;
default:
- UNREACHABLE();
+ UNREACHABLE(type.getBasicType());
break;
}
@@ -2535,19 +2535,19 @@
case EbpLow: return GL_LOW_FLOAT;
case EbpUndefined:
// Should be defined as the default precision by the parser
- default: UNREACHABLE();
+ default: UNREACHABLE(type.getPrecision());
}
}
else if(type.getBasicType() == EbtInt)
{
- switch (type.getPrecision())
+ switch(type.getPrecision())
{
case EbpHigh: return GL_HIGH_INT;
case EbpMedium: return GL_MEDIUM_INT;
case EbpLow: return GL_LOW_INT;
case EbpUndefined:
// Should be defined as the default precision by the parser
- default: UNREACHABLE();
+ default: UNREACHABLE(type.getPrecision());
}
}
@@ -2743,7 +2743,7 @@
case EOpReturn:
loopDiscontinuity = true;
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(node->getFlowOp());
}
return !loopDiscontinuity;
diff --git a/src/OpenGL/compiler/ParseHelper.cpp b/src/OpenGL/compiler/ParseHelper.cpp
index a0c10da..efc01c3 100644
--- a/src/OpenGL/compiler/ParseHelper.cpp
+++ b/src/OpenGL/compiler/ParseHelper.cpp
@@ -709,16 +709,16 @@
return false;
}
-bool TParseContext::layoutLocationErrorCheck(const TSourceLoc &location, const TLayoutQualifier &layoutQualifier)
-{
- if(layoutQualifier.location != -1)
- {
- error(location, "invalid layout qualifier:", "location", "only valid on program inputs and outputs");
- return true;
- }
-
- return false;
-}
+bool TParseContext::layoutLocationErrorCheck(const TSourceLoc &location, const TLayoutQualifier &layoutQualifier)
+{
+ if(layoutQualifier.location != -1)
+ {
+ error(location, "invalid layout qualifier:", "location", "only valid on program inputs and outputs");
+ return true;
+ }
+
+ return false;
+}
bool TParseContext::locationDeclaratorListCheck(const TSourceLoc& line, const TPublicType &pType)
{
@@ -2616,28 +2616,28 @@
mergedQualifier = EvqSmoothIn;
else if(interpolationQualifier == EvqFlat)
mergedQualifier = EvqFlatIn;
- else UNREACHABLE();
+ else UNREACHABLE(interpolationQualifier);
}
else if(storageQualifier == EvqCentroidIn) {
if(interpolationQualifier == EvqSmooth)
mergedQualifier = EvqCentroidIn;
else if(interpolationQualifier == EvqFlat)
mergedQualifier = EvqFlatIn;
- else UNREACHABLE();
+ else UNREACHABLE(interpolationQualifier);
}
else if(storageQualifier == EvqVertexOut) {
if(interpolationQualifier == EvqSmooth)
mergedQualifier = EvqSmoothOut;
else if(interpolationQualifier == EvqFlat)
mergedQualifier = EvqFlatOut;
- else UNREACHABLE();
+ else UNREACHABLE(interpolationQualifier);
}
else if(storageQualifier == EvqCentroidOut) {
if(interpolationQualifier == EvqSmooth)
mergedQualifier = EvqCentroidOut;
else if(interpolationQualifier == EvqFlat)
mergedQualifier = EvqFlatOut;
- else UNREACHABLE();
+ else UNREACHABLE(interpolationQualifier);
}
else {
error(interpolationLoc, "interpolation qualifier requires a fragment 'in' or vertex 'out' storage qualifier", getQualifierString(interpolationQualifier));
diff --git a/src/OpenGL/compiler/ValidateLimitations.cpp b/src/OpenGL/compiler/ValidateLimitations.cpp
index 269028c..833daeb 100644
--- a/src/OpenGL/compiler/ValidateLimitations.cpp
+++ b/src/OpenGL/compiler/ValidateLimitations.cpp
@@ -26,7 +26,7 @@
return;
}
}
- UNREACHABLE();
+ UNREACHABLE(0);
}
// Traverses a node to check if it represents a constant index expression.
@@ -88,7 +88,7 @@
MarkLoopForUnroll(symbol, mLoopStack);
break;
default:
- UNREACHABLE();
+ UNREACHABLE(symbol->getBasicType());
}
}
}
diff --git a/src/OpenGL/compiler/debug.h b/src/OpenGL/compiler/debug.h
index 24cb6aa..c0c8152 100644
--- a/src/OpenGL/compiler/debug.h
+++ b/src/OpenGL/compiler/debug.h
@@ -39,22 +39,22 @@
#endif // TRACE_ENABLED
// A macro asserting a condition and outputting failures to the debug log
-#undef ASSERT
+#undef ASSERT
#define ASSERT(expression) do { \
if(!(expression)) \
Trace("Assert failed: %s(%d): "#expression"\n", __FUNCTION__, __LINE__); \
assert(expression); \
} while(0)
-#undef UNIMPLEMENTED
+#undef UNIMPLEMENTED
#define UNIMPLEMENTED() do { \
Trace("Unimplemented invoked: %s(%d)\n", __FUNCTION__, __LINE__); \
assert(false); \
} while(0)
-#undef UNREACHABLE
-#define UNREACHABLE() do { \
- Trace("Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__); \
+#undef UNREACHABLE
+#define UNREACHABLE(value) do { \
+ Trace("Unreachable reached: %s(%d). Value: %d\n", __FUNCTION__, __LINE__, value); \
assert(false); \
} while(0)
diff --git a/src/OpenGL/libEGL/Config.cpp b/src/OpenGL/libEGL/Config.cpp
index 81eb1c1..3fc7cc6 100644
--- a/src/OpenGL/libEGL/Config.cpp
+++ b/src/OpenGL/libEGL/Config.cpp
@@ -67,7 +67,7 @@
mBindToTextureRGB = EGL_TRUE;
break;
default:
- UNREACHABLE(); // Other formats should not be valid
+ UNREACHABLE(renderTargetFormat); // Other formats should not be valid
}
mLuminanceSize = 0;
@@ -121,7 +121,7 @@
// mStencilSize = 8;
// break;
default:
- UNREACHABLE();
+ UNREACHABLE(depthStencilFormat);
}
mLevel = 0;
diff --git a/src/OpenGL/libEGL/Display.cpp b/src/OpenGL/libEGL/Display.cpp
index 2812d38..bf4b438 100644
--- a/src/OpenGL/libEGL/Display.cpp
+++ b/src/OpenGL/libEGL/Display.cpp
@@ -614,7 +614,7 @@
displayMode.height = 0;
displayMode.format = sw::FORMAT_X8R8G8B8;
}
- else UNREACHABLE();
+ else UNREACHABLE(platform);
#endif
return displayMode;
diff --git a/src/OpenGL/libGL/Context.cpp b/src/OpenGL/libGL/Context.cpp
index 635e8ab..69217d9 100644
--- a/src/OpenGL/libGL/Context.cpp
+++ b/src/OpenGL/libGL/Context.cpp
@@ -1213,7 +1213,7 @@
{
return static_cast<Texture2D*>(getSamplerTexture(mState.activeSampler, PROXY_TEXTURE_2D));
}
- else UNREACHABLE();
+ else UNREACHABLE(target);
return 0;
}
@@ -1234,7 +1234,7 @@
case TEXTURE_2D: return mTexture2DZero;
case PROXY_TEXTURE_2D: return mProxyTexture2DZero;
case TEXTURE_CUBE: return mTextureCubeMapZero;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
}
@@ -1276,53 +1276,53 @@
// because it is stored as a float, despite the fact that the GL ES 2.0 spec names
// GetIntegerv as its native query function. As it would require conversion in any
// case, this should make no difference to the calling application.
- switch (pname)
+ switch(pname)
{
- case GL_LINE_WIDTH: *params = mState.lineWidth; break;
- case GL_SAMPLE_COVERAGE_VALUE: *params = mState.sampleCoverageValue; break;
- case GL_DEPTH_CLEAR_VALUE: *params = mState.depthClearValue; break;
- case GL_POLYGON_OFFSET_FACTOR: *params = mState.polygonOffsetFactor; break;
- case GL_POLYGON_OFFSET_UNITS: *params = mState.polygonOffsetUnits; break;
- case GL_ALIASED_LINE_WIDTH_RANGE:
+ case GL_LINE_WIDTH: *params = mState.lineWidth; break;
+ case GL_SAMPLE_COVERAGE_VALUE: *params = mState.sampleCoverageValue; break;
+ case GL_DEPTH_CLEAR_VALUE: *params = mState.depthClearValue; break;
+ case GL_POLYGON_OFFSET_FACTOR: *params = mState.polygonOffsetFactor; break;
+ case GL_POLYGON_OFFSET_UNITS: *params = mState.polygonOffsetUnits; break;
+ case GL_ALIASED_LINE_WIDTH_RANGE:
params[0] = ALIASED_LINE_WIDTH_RANGE_MIN;
params[1] = ALIASED_LINE_WIDTH_RANGE_MAX;
break;
- case GL_ALIASED_POINT_SIZE_RANGE:
+ case GL_ALIASED_POINT_SIZE_RANGE:
params[0] = ALIASED_POINT_SIZE_RANGE_MIN;
params[1] = ALIASED_POINT_SIZE_RANGE_MAX;
break;
- case GL_DEPTH_RANGE:
+ case GL_DEPTH_RANGE:
params[0] = mState.zNear;
params[1] = mState.zFar;
break;
- case GL_COLOR_CLEAR_VALUE:
+ case GL_COLOR_CLEAR_VALUE:
params[0] = mState.colorClearValue.red;
params[1] = mState.colorClearValue.green;
params[2] = mState.colorClearValue.blue;
params[3] = mState.colorClearValue.alpha;
break;
- case GL_BLEND_COLOR:
+ case GL_BLEND_COLOR:
params[0] = mState.blendColor.red;
params[1] = mState.blendColor.green;
params[2] = mState.blendColor.blue;
params[3] = mState.blendColor.alpha;
break;
- case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
+ case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
*params = MAX_TEXTURE_MAX_ANISOTROPY;
break;
- case GL_MODELVIEW_MATRIX:
+ case GL_MODELVIEW_MATRIX:
for(int i = 0; i < 16; i++)
{
params[i] = modelView.current()[i % 4][i / 4];
}
break;
- case GL_PROJECTION_MATRIX:
+ case GL_PROJECTION_MATRIX:
for(int i = 0; i < 16; i++)
{
params[i] = projection.current()[i % 4][i / 4];
}
break;
- default:
+ default:
return false;
}
@@ -1544,159 +1544,159 @@
// in the case that one calls glGetIntegerv to retrieve a float-typed state variable, we
// place DEPTH_CLEAR_VALUE with the floats. This should make no difference to the calling
// application.
- switch (pname)
+ switch(pname)
{
- case GL_COMPRESSED_TEXTURE_FORMATS:
+ case GL_COMPRESSED_TEXTURE_FORMATS:
{
*type = GL_INT;
*numParams = NUM_COMPRESSED_TEXTURE_FORMATS;
}
break;
- case GL_SHADER_BINARY_FORMATS:
+ case GL_SHADER_BINARY_FORMATS:
{
*type = GL_INT;
*numParams = 0;
}
break;
- case GL_MAX_VERTEX_ATTRIBS:
- case GL_MAX_VERTEX_UNIFORM_VECTORS:
- case GL_MAX_VARYING_VECTORS:
- case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:
- case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS:
- case GL_MAX_TEXTURE_IMAGE_UNITS:
- case GL_MAX_FRAGMENT_UNIFORM_VECTORS:
- case GL_MAX_RENDERBUFFER_SIZE:
- case GL_NUM_SHADER_BINARY_FORMATS:
- case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
- case GL_ARRAY_BUFFER_BINDING:
- case GL_FRAMEBUFFER_BINDING:
- case GL_RENDERBUFFER_BINDING:
- case GL_CURRENT_PROGRAM:
- case GL_PACK_ALIGNMENT:
- case GL_UNPACK_ALIGNMENT:
- case GL_GENERATE_MIPMAP_HINT:
- case GL_FRAGMENT_SHADER_DERIVATIVE_HINT:
- case GL_RED_BITS:
- case GL_GREEN_BITS:
- case GL_BLUE_BITS:
- case GL_ALPHA_BITS:
- case GL_DEPTH_BITS:
- case GL_STENCIL_BITS:
- case GL_ELEMENT_ARRAY_BUFFER_BINDING:
- case GL_CULL_FACE_MODE:
- case GL_FRONT_FACE:
- case GL_ACTIVE_TEXTURE:
- case GL_STENCIL_FUNC:
- case GL_STENCIL_VALUE_MASK:
- case GL_STENCIL_REF:
- case GL_STENCIL_FAIL:
- case GL_STENCIL_PASS_DEPTH_FAIL:
- case GL_STENCIL_PASS_DEPTH_PASS:
- case GL_STENCIL_BACK_FUNC:
- case GL_STENCIL_BACK_VALUE_MASK:
- case GL_STENCIL_BACK_REF:
- case GL_STENCIL_BACK_FAIL:
- case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
- case GL_STENCIL_BACK_PASS_DEPTH_PASS:
- case GL_DEPTH_FUNC:
- case GL_BLEND_SRC_RGB:
- case GL_BLEND_SRC_ALPHA:
- case GL_BLEND_DST_RGB:
- case GL_BLEND_DST_ALPHA:
- case GL_BLEND_EQUATION_RGB:
- case GL_BLEND_EQUATION_ALPHA:
- case GL_STENCIL_WRITEMASK:
- case GL_STENCIL_BACK_WRITEMASK:
- case GL_STENCIL_CLEAR_VALUE:
- case GL_SUBPIXEL_BITS:
- case GL_MAX_TEXTURE_SIZE:
- case GL_MAX_CUBE_MAP_TEXTURE_SIZE:
- case GL_SAMPLE_BUFFERS:
- case GL_SAMPLES:
- case GL_IMPLEMENTATION_COLOR_READ_TYPE:
- case GL_IMPLEMENTATION_COLOR_READ_FORMAT:
- case GL_TEXTURE_BINDING_2D:
- case GL_TEXTURE_BINDING_CUBE_MAP:
- case GL_MAX_VERTEX_UNIFORM_COMPONENTS:
- case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS:
- case GL_MAX_ARRAY_TEXTURE_LAYERS:
+ case GL_MAX_VERTEX_ATTRIBS:
+ case GL_MAX_VERTEX_UNIFORM_VECTORS:
+ case GL_MAX_VARYING_VECTORS:
+ case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:
+ case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS:
+ case GL_MAX_TEXTURE_IMAGE_UNITS:
+ case GL_MAX_FRAGMENT_UNIFORM_VECTORS:
+ case GL_MAX_RENDERBUFFER_SIZE:
+ case GL_NUM_SHADER_BINARY_FORMATS:
+ case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
+ case GL_ARRAY_BUFFER_BINDING:
+ case GL_FRAMEBUFFER_BINDING:
+ case GL_RENDERBUFFER_BINDING:
+ case GL_CURRENT_PROGRAM:
+ case GL_PACK_ALIGNMENT:
+ case GL_UNPACK_ALIGNMENT:
+ case GL_GENERATE_MIPMAP_HINT:
+ case GL_FRAGMENT_SHADER_DERIVATIVE_HINT:
+ case GL_RED_BITS:
+ case GL_GREEN_BITS:
+ case GL_BLUE_BITS:
+ case GL_ALPHA_BITS:
+ case GL_DEPTH_BITS:
+ case GL_STENCIL_BITS:
+ case GL_ELEMENT_ARRAY_BUFFER_BINDING:
+ case GL_CULL_FACE_MODE:
+ case GL_FRONT_FACE:
+ case GL_ACTIVE_TEXTURE:
+ case GL_STENCIL_FUNC:
+ case GL_STENCIL_VALUE_MASK:
+ case GL_STENCIL_REF:
+ case GL_STENCIL_FAIL:
+ case GL_STENCIL_PASS_DEPTH_FAIL:
+ case GL_STENCIL_PASS_DEPTH_PASS:
+ case GL_STENCIL_BACK_FUNC:
+ case GL_STENCIL_BACK_VALUE_MASK:
+ case GL_STENCIL_BACK_REF:
+ case GL_STENCIL_BACK_FAIL:
+ case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
+ case GL_STENCIL_BACK_PASS_DEPTH_PASS:
+ case GL_DEPTH_FUNC:
+ case GL_BLEND_SRC_RGB:
+ case GL_BLEND_SRC_ALPHA:
+ case GL_BLEND_DST_RGB:
+ case GL_BLEND_DST_ALPHA:
+ case GL_BLEND_EQUATION_RGB:
+ case GL_BLEND_EQUATION_ALPHA:
+ case GL_STENCIL_WRITEMASK:
+ case GL_STENCIL_BACK_WRITEMASK:
+ case GL_STENCIL_CLEAR_VALUE:
+ case GL_SUBPIXEL_BITS:
+ case GL_MAX_TEXTURE_SIZE:
+ case GL_MAX_CUBE_MAP_TEXTURE_SIZE:
+ case GL_SAMPLE_BUFFERS:
+ case GL_SAMPLES:
+ case GL_IMPLEMENTATION_COLOR_READ_TYPE:
+ case GL_IMPLEMENTATION_COLOR_READ_FORMAT:
+ case GL_TEXTURE_BINDING_2D:
+ case GL_TEXTURE_BINDING_CUBE_MAP:
+ case GL_MAX_VERTEX_UNIFORM_COMPONENTS:
+ case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS:
+ case GL_MAX_ARRAY_TEXTURE_LAYERS:
{
*type = GL_INT;
*numParams = 1;
}
break;
- case GL_MAX_SAMPLES:
+ case GL_MAX_SAMPLES:
{
*type = GL_INT;
*numParams = 1;
}
break;
- case GL_MAX_VIEWPORT_DIMS:
+ case GL_MAX_VIEWPORT_DIMS:
{
*type = GL_INT;
*numParams = 2;
}
break;
- case GL_VIEWPORT:
- case GL_SCISSOR_BOX:
+ case GL_VIEWPORT:
+ case GL_SCISSOR_BOX:
{
*type = GL_INT;
*numParams = 4;
}
break;
- case GL_SHADER_COMPILER:
- case GL_SAMPLE_COVERAGE_INVERT:
- case GL_DEPTH_WRITEMASK:
- case GL_CULL_FACE: // CULL_FACE through DITHER are natural to IsEnabled,
- case GL_POLYGON_OFFSET_FILL: // but can be retrieved through the Get{Type}v queries.
- case GL_SAMPLE_ALPHA_TO_COVERAGE: // For this purpose, they are treated here as bool-natural
- case GL_SAMPLE_COVERAGE:
- case GL_SCISSOR_TEST:
- case GL_STENCIL_TEST:
- case GL_DEPTH_TEST:
- case GL_BLEND:
- case GL_DITHER:
+ case GL_SHADER_COMPILER:
+ case GL_SAMPLE_COVERAGE_INVERT:
+ case GL_DEPTH_WRITEMASK:
+ case GL_CULL_FACE: // CULL_FACE through DITHER are natural to IsEnabled,
+ case GL_POLYGON_OFFSET_FILL: // but can be retrieved through the Get{Type}v queries.
+ case GL_SAMPLE_ALPHA_TO_COVERAGE: // For this purpose, they are treated here as bool-natural
+ case GL_SAMPLE_COVERAGE:
+ case GL_SCISSOR_TEST:
+ case GL_STENCIL_TEST:
+ case GL_DEPTH_TEST:
+ case GL_BLEND:
+ case GL_DITHER:
{
*type = GL_BOOL;
*numParams = 1;
}
break;
- case GL_COLOR_WRITEMASK:
+ case GL_COLOR_WRITEMASK:
{
*type = GL_BOOL;
*numParams = 4;
}
break;
- case GL_POLYGON_OFFSET_FACTOR:
- case GL_POLYGON_OFFSET_UNITS:
- case GL_SAMPLE_COVERAGE_VALUE:
- case GL_DEPTH_CLEAR_VALUE:
- case GL_LINE_WIDTH:
+ case GL_POLYGON_OFFSET_FACTOR:
+ case GL_POLYGON_OFFSET_UNITS:
+ case GL_SAMPLE_COVERAGE_VALUE:
+ case GL_DEPTH_CLEAR_VALUE:
+ case GL_LINE_WIDTH:
{
*type = GL_FLOAT;
*numParams = 1;
}
break;
- case GL_ALIASED_LINE_WIDTH_RANGE:
- case GL_ALIASED_POINT_SIZE_RANGE:
- case GL_DEPTH_RANGE:
+ case GL_ALIASED_LINE_WIDTH_RANGE:
+ case GL_ALIASED_POINT_SIZE_RANGE:
+ case GL_DEPTH_RANGE:
{
*type = GL_FLOAT;
*numParams = 2;
}
break;
- case GL_COLOR_CLEAR_VALUE:
- case GL_BLEND_COLOR:
+ case GL_COLOR_CLEAR_VALUE:
+ case GL_BLEND_COLOR:
{
*type = GL_FLOAT;
*numParams = 4;
}
break;
- case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
+ case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
*type = GL_FLOAT;
*numParams = 1;
break;
- default:
+ default:
return false;
}
@@ -2145,7 +2145,7 @@
{
textureUsed = program ? program->getVertexShader()->usesSampler(index) : false;
}
- else UNREACHABLE();
+ else UNREACHABLE(type);
sw::Resource *resource = 0;
@@ -2344,7 +2344,7 @@
break;
default:
UNIMPLEMENTED(); // FIXME
- UNREACHABLE();
+ UNREACHABLE(renderTarget->getInternalFormat());
}
switch(format)
@@ -2358,7 +2358,7 @@
dest[4 * i + j * outputPitch + 2] = (unsigned char)(255 * b + 0.5f);
dest[4 * i + j * outputPitch + 3] = (unsigned char)(255 * a + 0.5f);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
break;
case GL_BGRA_EXT:
@@ -2398,7 +2398,7 @@
((unsigned short)(31 * g + 0.5f) << 5) |
((unsigned short)(31 * b + 0.5f) << 0);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
break;
case GL_RGB: // IMPLEMENTATION_COLOR_READ_FORMAT
@@ -2410,10 +2410,10 @@
((unsigned short)(63 * g + 0.5f) << 5) |
((unsigned short)(31 * r + 0.5f) << 11);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
}
}
@@ -2796,7 +2796,7 @@
case GL_LINE_LOOP:
case GL_LINE_STRIP:
return false;
- default: UNREACHABLE();
+ default: UNREACHABLE(drawMode);
}
return false;
@@ -3095,7 +3095,7 @@
case GL_MODELVIEW: return modelView; break;
case GL_PROJECTION: return projection; break;
case GL_TEXTURE: return texture[mState.activeSampler]; break;
- default: UNREACHABLE(); return modelView; break;
+ default: UNREACHABLE(matrixMode); return modelView; break;
}
}
@@ -3252,7 +3252,7 @@
case GL_NOTEQUAL: device->setAlphaCompare(sw::ALPHA_NOTEQUAL); break;
case GL_GEQUAL: device->setAlphaCompare(sw::ALPHA_GREATEREQUAL); break;
case GL_ALWAYS: device->setAlphaCompare(sw::ALPHA_ALWAYS); break;
- default: UNREACHABLE();
+ default: UNREACHABLE(func);
}
device->setAlphaReference(gl::clamp01(ref));
@@ -3578,7 +3578,7 @@
UNIMPLEMENTED();
break;
default:
- UNREACHABLE();
+ UNREACHABLE(drawMode);
}
restoreAttribs();
@@ -3626,7 +3626,7 @@
device->setEmissiveMaterialSource(sw::MATERIAL_MATERIAL);
break;
default:
- UNREACHABLE();
+ UNREACHABLE(mode);
}
}
diff --git a/src/OpenGL/libGL/Context.h b/src/OpenGL/libGL/Context.h
index 6a9e42c..893047b 100644
--- a/src/OpenGL/libGL/Context.h
+++ b/src/OpenGL/libGL/Context.h
@@ -371,7 +371,7 @@
int typeSize() const
{
- switch (mType)
+ switch(mType)
{
case GL_BYTE: return mSize * sizeof(GLbyte);
case GL_UNSIGNED_BYTE: return mSize * sizeof(GLubyte);
@@ -379,7 +379,7 @@
case GL_UNSIGNED_SHORT: return mSize * sizeof(GLushort);
case GL_FIXED: return mSize * sizeof(GLfixed);
case GL_FLOAT: return mSize * sizeof(GLfloat);
- default: UNREACHABLE(); return mSize * sizeof(GLfloat);
+ default: UNREACHABLE(mType); return mSize * sizeof(GLfloat);
}
}
diff --git a/src/OpenGL/libGL/Device.cpp b/src/OpenGL/libGL/Device.cpp
index 1979141..b683318 100644
--- a/src/OpenGL/libGL/Device.cpp
+++ b/src/OpenGL/libGL/Device.cpp
@@ -278,7 +278,7 @@
lockable = true;
break;
default:
- UNREACHABLE();
+ UNREACHABLE(format);
}
Image *surface = new Image(0, width, height, format, multiSampleDepth, lockable, true);
@@ -331,7 +331,7 @@
case DRAW_TRIANGLELIST: drawType = sw::DRAW_INDEXEDTRIANGLELIST32; break;
case DRAW_TRIANGLESTRIP: drawType = sw::DRAW_INDEXEDTRIANGLESTRIP32; break;
case DRAW_TRIANGLEFAN: drawType = sw::DRAW_INDEXEDTRIANGLEFAN32; break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
}
else if(indexSize == 2)
@@ -345,7 +345,7 @@
case DRAW_TRIANGLELIST: drawType = sw::DRAW_INDEXEDTRIANGLELIST16; break;
case DRAW_TRIANGLESTRIP: drawType = sw::DRAW_INDEXEDTRIANGLESTRIP16; break;
case DRAW_TRIANGLEFAN: drawType = sw::DRAW_INDEXEDTRIANGLEFAN16; break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
}
else if(indexSize == 1)
@@ -359,10 +359,10 @@
case DRAW_TRIANGLELIST: drawType = sw::DRAW_INDEXEDTRIANGLELIST8; break;
case DRAW_TRIANGLESTRIP: drawType = sw::DRAW_INDEXEDTRIANGLESTRIP8; break;
case DRAW_TRIANGLEFAN: drawType = sw::DRAW_INDEXEDTRIANGLEFAN8; break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
}
- else UNREACHABLE();
+ else UNREACHABLE(indexSize);
draw(drawType, indexOffset, primitiveCount);
}
@@ -388,7 +388,7 @@
case DRAW_TRIANGLESTRIP: drawType = sw::DRAW_TRIANGLESTRIP; break;
case DRAW_TRIANGLEFAN: drawType = sw::DRAW_TRIANGLEFAN; break;
case DRAW_QUADLIST: drawType = sw::DRAW_QUADLIST; break;
- default: UNREACHABLE();
+ default: UNREACHABLE(primitiveType);
}
draw(drawType, 0, primitiveCount);
diff --git a/src/OpenGL/libGL/Framebuffer.cpp b/src/OpenGL/libGL/Framebuffer.cpp
index 048a70a..220da2d 100644
--- a/src/OpenGL/libGL/Framebuffer.cpp
+++ b/src/OpenGL/libGL/Framebuffer.cpp
@@ -53,10 +53,7 @@
{
buffer = context->getTexture(handle)->getRenderbuffer(type);
}
- else
- {
- UNREACHABLE();
- }
+ else UNREACHABLE(type);
return buffer;
}
@@ -269,7 +266,7 @@
}
else
{
- UNREACHABLE();
+ UNREACHABLE(mColorbufferType);
return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT;
}
@@ -311,7 +308,7 @@
}
else
{
- UNREACHABLE();
+ UNREACHABLE(mDepthbufferType);
return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT;
}
@@ -363,7 +360,7 @@
}
else
{
- UNREACHABLE();
+ UNREACHABLE(mStencilbufferType);
return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT;
}
diff --git a/src/OpenGL/libGL/Image.cpp b/src/OpenGL/libGL/Image.cpp
index 94829bb..b01712a 100644
--- a/src/OpenGL/libGL/Image.cpp
+++ b/src/OpenGL/libGL/Image.cpp
@@ -186,7 +186,7 @@
{
return sw::FORMAT_A8;
}
- else UNREACHABLE();
+ else UNREACHABLE(format);
}
else if(type == GL_UNSIGNED_SHORT || type == GL_UNSIGNED_INT)
{
@@ -194,7 +194,7 @@
{
return sw::FORMAT_D32FS8_TEXTURE;
}
- else UNREACHABLE();
+ else UNREACHABLE(format);
}
else if(type == GL_UNSIGNED_INT_24_8_EXT)
{
@@ -202,7 +202,7 @@
{
return sw::FORMAT_D32FS8_TEXTURE;
}
- else UNREACHABLE();
+ else UNREACHABLE(format);
}
else if(type == GL_UNSIGNED_SHORT_4_4_4_4)
{
@@ -221,7 +221,7 @@
return sw::FORMAT_A8R8G8B8;
}
- else UNREACHABLE();
+ else UNREACHABLE(type);
return sw::FORMAT_A8R8G8B8;
}
@@ -257,7 +257,7 @@
case GL_BGRA_EXT:
loadBGRAImageData(xoffset, yoffset, width, height, inputPitch, input, buffer);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
case GL_UNSIGNED_SHORT_5_6_5:
@@ -266,7 +266,7 @@
case GL_RGB:
loadRGB565ImageData(xoffset, yoffset, width, height, inputPitch, input, buffer);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
case GL_UNSIGNED_SHORT_4_4_4_4:
@@ -275,7 +275,7 @@
case GL_RGBA:
loadRGBA4444ImageData(xoffset, yoffset, width, height, inputPitch, input, buffer);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
case GL_UNSIGNED_SHORT_5_5_5_1:
@@ -284,7 +284,7 @@
case GL_RGBA:
loadRGBA5551ImageData(xoffset, yoffset, width, height, inputPitch, input, buffer);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
case GL_FLOAT:
@@ -306,10 +306,10 @@
case GL_RGBA:
loadRGBAFloatImageData(xoffset, yoffset, width, height, inputPitch, input, buffer);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
- case GL_HALF_FLOAT:
+ case GL_HALF_FLOAT:
switch(format)
{
// float textures are converted to RGBA, not BGRA
@@ -328,7 +328,7 @@
case GL_RGBA:
loadRGBAHalfFloatImageData(xoffset, yoffset, width, height, inputPitch, input, buffer);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
case GL_UNSIGNED_SHORT:
@@ -340,7 +340,7 @@
case GL_UNSIGNED_INT_24_8_EXT:
loadD24S8ImageData(xoffset, yoffset, width, height, inputPitch, input, buffer);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
}
diff --git a/src/OpenGL/libGL/IndexDataManager.cpp b/src/OpenGL/libGL/IndexDataManager.cpp
index 3dbfe44..492122d 100644
--- a/src/OpenGL/libGL/IndexDataManager.cpp
+++ b/src/OpenGL/libGL/IndexDataManager.cpp
@@ -57,7 +57,7 @@
{
memcpy(output, input, count * sizeof(GLushort));
}
- else UNREACHABLE();
+ else UNREACHABLE(type);
}
template<class IndexType>
@@ -87,7 +87,7 @@
{
computeRange(static_cast<const GLushort*>(indices), count, minIndex, maxIndex);
}
- else UNREACHABLE();
+ else UNREACHABLE(type);
}
GLenum IndexDataManager::prepareIndexData(GLenum type, GLsizei count, Buffer *buffer, const void *indices, TranslatedIndexData *translated)
@@ -107,7 +107,7 @@
case GL_UNSIGNED_BYTE: alignedOffset = (offset % sizeof(GLubyte) == 0); break;
case GL_UNSIGNED_SHORT: alignedOffset = (offset % sizeof(GLushort) == 0); break;
case GL_UNSIGNED_INT: alignedOffset = (offset % sizeof(GLuint) == 0); break;
- default: UNREACHABLE(); alignedOffset = false;
+ default: UNREACHABLE(type); alignedOffset = false;
}
if(typeSize(type) * count + offset > static_cast<std::size_t>(buffer->size()))
@@ -162,7 +162,7 @@
case GL_UNSIGNED_INT: return sizeof(GLuint);
case GL_UNSIGNED_SHORT: return sizeof(GLushort);
case GL_UNSIGNED_BYTE: return sizeof(GLubyte);
- default: UNREACHABLE(); return sizeof(GLushort);
+ default: UNREACHABLE(type); return sizeof(GLushort);
}
}
diff --git a/src/OpenGL/libGL/Program.cpp b/src/OpenGL/libGL/Program.cpp
index 21b7995..777b1b3 100644
--- a/src/OpenGL/libGL/Program.cpp
+++ b/src/OpenGL/libGL/Program.cpp
@@ -125,7 +125,7 @@
fragmentShader = (FragmentShader*)shader;
fragmentShader->addRef();
}
- else UNREACHABLE();
+ else UNREACHABLE(shader->getType());
return true;
}
@@ -152,7 +152,7 @@
fragmentShader->release();
fragmentShader = 0;
}
- else UNREACHABLE();
+ else UNREACHABLE(shader->getType());
return true;
}
@@ -231,7 +231,7 @@
logicalTextureUnit = samplersVS[samplerIndex].logicalTextureUnit;
}
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
if(logicalTextureUnit >= 0 && logicalTextureUnit < MAX_COMBINED_TEXTURE_IMAGE_UNITS)
@@ -255,7 +255,7 @@
ASSERT(samplerIndex < sizeof(samplersVS)/sizeof(samplersVS[0]));
ASSERT(samplersVS[samplerIndex].active);
return samplersVS[samplerIndex].textureType;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
return TEXTURE_2D;
@@ -799,9 +799,9 @@
return false;
}
- switch (UniformComponentType(targetUniform->type))
+ switch(UniformComponentType(targetUniform->type))
{
- case GL_BOOL:
+ case GL_BOOL:
{
GLboolean *boolParams = (GLboolean*)targetUniform->data + uniformIndex[location].element * count;
@@ -811,11 +811,11 @@
}
}
break;
- case GL_FLOAT:
+ case GL_FLOAT:
memcpy(params, targetUniform->data + uniformIndex[location].element * count * sizeof(GLfloat),
count * sizeof(GLfloat));
break;
- case GL_INT:
+ case GL_INT:
{
GLint *intParams = (GLint*)targetUniform->data + uniformIndex[location].element * count;
@@ -825,7 +825,7 @@
}
}
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(targetUniform->type);
}
return true;
@@ -847,9 +847,9 @@
return false;
}
- switch (UniformComponentType(targetUniform->type))
+ switch(UniformComponentType(targetUniform->type))
{
- case GL_BOOL:
+ case GL_BOOL:
{
GLboolean *boolParams = targetUniform->data + uniformIndex[location].element * count;
@@ -859,7 +859,7 @@
}
}
break;
- case GL_FLOAT:
+ case GL_FLOAT:
{
GLfloat *floatParams = (GLfloat*)targetUniform->data + uniformIndex[location].element * count;
@@ -869,11 +869,11 @@
}
}
break;
- case GL_INT:
+ case GL_INT:
memcpy(params, targetUniform->data + uniformIndex[location].element * count * sizeof(GLint),
count * sizeof(GLint));
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(targetUniform->type);
}
return true;
@@ -910,25 +910,25 @@
switch(targetUniform->type)
{
- case GL_BOOL: applyUniform1bv(location, size, b); break;
- case GL_BOOL_VEC2: applyUniform2bv(location, size, b); break;
- case GL_BOOL_VEC3: applyUniform3bv(location, size, b); break;
- case GL_BOOL_VEC4: applyUniform4bv(location, size, b); break;
- case GL_FLOAT: applyUniform1fv(location, size, f); break;
- case GL_FLOAT_VEC2: applyUniform2fv(location, size, f); break;
- case GL_FLOAT_VEC3: applyUniform3fv(location, size, f); break;
- case GL_FLOAT_VEC4: applyUniform4fv(location, size, f); break;
- case GL_FLOAT_MAT2: applyUniformMatrix2fv(location, size, f); break;
- case GL_FLOAT_MAT3: applyUniformMatrix3fv(location, size, f); break;
- case GL_FLOAT_MAT4: applyUniformMatrix4fv(location, size, f); break;
- case GL_SAMPLER_2D:
- case GL_SAMPLER_CUBE:
- case GL_INT: applyUniform1iv(location, size, i); break;
- case GL_INT_VEC2: applyUniform2iv(location, size, i); break;
- case GL_INT_VEC3: applyUniform3iv(location, size, i); break;
- case GL_INT_VEC4: applyUniform4iv(location, size, i); break;
- default:
- UNREACHABLE();
+ case GL_BOOL: applyUniform1bv(location, size, b); break;
+ case GL_BOOL_VEC2: applyUniform2bv(location, size, b); break;
+ case GL_BOOL_VEC3: applyUniform3bv(location, size, b); break;
+ case GL_BOOL_VEC4: applyUniform4bv(location, size, b); break;
+ case GL_FLOAT: applyUniform1fv(location, size, f); break;
+ case GL_FLOAT_VEC2: applyUniform2fv(location, size, f); break;
+ case GL_FLOAT_VEC3: applyUniform3fv(location, size, f); break;
+ case GL_FLOAT_VEC4: applyUniform4fv(location, size, f); break;
+ case GL_FLOAT_MAT2: applyUniformMatrix2fv(location, size, f); break;
+ case GL_FLOAT_MAT3: applyUniformMatrix3fv(location, size, f); break;
+ case GL_FLOAT_MAT4: applyUniformMatrix4fv(location, size, f); break;
+ case GL_SAMPLER_2D:
+ case GL_SAMPLER_CUBE:
+ case GL_INT: applyUniform1iv(location, size, i); break;
+ case GL_INT_VEC2: applyUniform2iv(location, size, i); break;
+ case GL_INT_VEC3: applyUniform3iv(location, size, i); break;
+ case GL_INT_VEC4: applyUniform4iv(location, size, i); break;
+ default:
+ UNREACHABLE(targetUniform->type);
}
targetUniform->dirty = false;
@@ -1059,7 +1059,7 @@
success = true;
}
}
- else UNREACHABLE();
+ else UNREACHABLE(m);
if(!success)
{
@@ -1347,7 +1347,7 @@
return false;
}
}
- else UNREACHABLE();
+ else UNREACHABLE(shader);
index++;
}
@@ -1391,7 +1391,7 @@
{
uniform->psRegisterIndex = registerIndex;
}
- else UNREACHABLE();
+ else UNREACHABLE(shader);
if(location == -1) // Not previously defined
{
@@ -1420,7 +1420,7 @@
return false;
}
}
- else UNREACHABLE();
+ else UNREACHABLE(shader);
return true;
}
diff --git a/src/OpenGL/libGL/ResourceManager.cpp b/src/OpenGL/libGL/ResourceManager.cpp
index 383a66f..49352ae 100644
--- a/src/OpenGL/libGL/ResourceManager.cpp
+++ b/src/OpenGL/libGL/ResourceManager.cpp
@@ -103,7 +103,7 @@
{
mShaderMap[handle] = new FragmentShader(this, handle);
}
- else UNREACHABLE();
+ else UNREACHABLE(type);
return handle;
}
@@ -333,7 +333,7 @@
}
else
{
- UNREACHABLE();
+ UNREACHABLE(type);
return;
}
diff --git a/src/OpenGL/libGL/Shader.cpp b/src/OpenGL/libGL/Shader.cpp
index bb574a3..ec611cd 100644
--- a/src/OpenGL/libGL/Shader.cpp
+++ b/src/OpenGL/libGL/Shader.cpp
@@ -296,7 +296,7 @@
{
return GL_FLOAT_MAT4;
}
- else UNREACHABLE();
+ else UNREACHABLE(type);
return GL_NONE;
}
@@ -322,7 +322,7 @@
case GL_FLOAT_VEC3: return true;
case GL_FLOAT_VEC2: return true;
case GL_FLOAT: return true;
- default: UNREACHABLE();
+ default: UNREACHABLE(y.type);
}
break;
case GL_FLOAT_VEC4:
@@ -335,7 +335,7 @@
case GL_FLOAT_VEC3: return true;
case GL_FLOAT_VEC2: return true;
case GL_FLOAT: return true;
- default: UNREACHABLE();
+ default: UNREACHABLE(y.type);
}
break;
case GL_FLOAT_MAT3:
@@ -348,7 +348,7 @@
case GL_FLOAT_VEC3: return true;
case GL_FLOAT_VEC2: return true;
case GL_FLOAT: return true;
- default: UNREACHABLE();
+ default: UNREACHABLE(y.type);
}
break;
case GL_FLOAT_VEC3:
@@ -361,7 +361,7 @@
case GL_FLOAT_VEC3: return true;
case GL_FLOAT_VEC2: return true;
case GL_FLOAT: return true;
- default: UNREACHABLE();
+ default: UNREACHABLE(y.type);
}
break;
case GL_FLOAT_VEC2:
@@ -374,11 +374,11 @@
case GL_FLOAT_VEC3: return false;
case GL_FLOAT_VEC2: return true;
case GL_FLOAT: return true;
- default: UNREACHABLE();
+ default: UNREACHABLE(y.type);
}
break;
case GL_FLOAT: return false;
- default: UNREACHABLE();
+ default: UNREACHABLE(x.type);
}
return false;
diff --git a/src/OpenGL/libGL/Texture.cpp b/src/OpenGL/libGL/Texture.cpp
index 74c1daa..e6b761d 100644
--- a/src/OpenGL/libGL/Texture.cpp
+++ b/src/OpenGL/libGL/Texture.cpp
@@ -263,7 +263,7 @@
case GL_NEAREST_MIPMAP_LINEAR:
case GL_LINEAR_MIPMAP_LINEAR:
return true;
- default: UNREACHABLE();
+ default: UNREACHABLE(mMinFilter);
}
return false;
diff --git a/src/OpenGL/libGL/VertexDataManager.cpp b/src/OpenGL/libGL/VertexDataManager.cpp
index 1c8501c..f322487 100644
--- a/src/OpenGL/libGL/VertexDataManager.cpp
+++ b/src/OpenGL/libGL/VertexDataManager.cpp
@@ -181,7 +181,7 @@
case GL_UNSIGNED_SHORT: translated[i].type = sw::STREAMTYPE_USHORT; break;
case GL_FIXED: translated[i].type = sw::STREAMTYPE_FIXED; break;
case GL_FLOAT: translated[i].type = sw::STREAMTYPE_FLOAT; break;
- default: UNREACHABLE(); translated[i].type = sw::STREAMTYPE_FLOAT; break;
+ default: UNREACHABLE(attribs[i].mType); translated[i].type = sw::STREAMTYPE_FLOAT; break;
}
translated[i].count = attribs[i].mSize;
diff --git a/src/OpenGL/libGL/libGL.cpp b/src/OpenGL/libGL/libGL.cpp
index c33294a..98101fc 100644
--- a/src/OpenGL/libGL/libGL.cpp
+++ b/src/OpenGL/libGL/libGL.cpp
@@ -897,7 +897,7 @@
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
texture->setCompressedImage(target, level, internalformat, width, height, imageSize, data);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(target);
}
}
}
@@ -984,10 +984,7 @@
texture->subImageCompressed(target, level, xoffset, yoffset, width, height, format, imageSize, data);
}
}
- else
- {
- UNREACHABLE();
- }
+ else UNREACHABLE(target);
}
}
@@ -1134,7 +1131,7 @@
texture->copyImage(target, level, internalformat, x, y, width, height, framebuffer);
}
- else UNREACHABLE();
+ else UNREACHABLE(target);
}
}
@@ -1200,7 +1197,7 @@
{
texture = context->getTextureCubeMap();
}
- else UNREACHABLE();
+ else UNREACHABLE(target);
if(!validateSubImageParams(false, width, height, xoffset, yoffset, target, level, GL_NONE, texture))
{
@@ -2610,7 +2607,7 @@
{
attachmentObjectType = GL_TEXTURE;
}
- else UNREACHABLE();
+ else UNREACHABLE(attachmentType);
switch(pname)
{
@@ -4646,10 +4643,7 @@
texture->subImage(target, level, xoffset, yoffset, width, height, format, type, context->getUnpackAlignment(), pixels);
}
}
- else
- {
- UNREACHABLE();
- }
+ else UNREACHABLE(target);
}
}
@@ -5625,7 +5619,7 @@
case GL_UNSIGNED_INT: context->callList(((unsigned int*)lists)[i]); break;
default:
UNIMPLEMENTED();
- UNREACHABLE();
+ UNREACHABLE(type);
}
}
}
@@ -7669,7 +7663,7 @@
break;
default:
UNIMPLEMENTED();
- UNREACHABLE();
+ UNREACHABLE(texture);
}
gl::Context *context = gl::getContext();
diff --git a/src/OpenGL/libGL/main.cpp b/src/OpenGL/libGL/main.cpp
index 4a09aa5..0c7eabe 100644
--- a/src/OpenGL/libGL/main.cpp
+++ b/src/OpenGL/libGL/main.cpp
@@ -279,7 +279,7 @@
context->recordInvalidFramebufferOperation();
TRACE("\t! Error generated: invalid framebuffer operation\n");
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(errorCode);
}
}
}
diff --git a/src/OpenGL/libGL/utilities.cpp b/src/OpenGL/libGL/utilities.cpp
index b39d8ba..42ae5aa 100644
--- a/src/OpenGL/libGL/utilities.cpp
+++ b/src/OpenGL/libGL/utilities.cpp
@@ -50,7 +50,7 @@
case GL_FLOAT_MAT4:
return 16;
default:
- UNREACHABLE();
+ UNREACHABLE(type);
}
return 0;
@@ -81,7 +81,7 @@
case GL_INT_VEC4:
return GL_INT;
default:
- UNREACHABLE();
+ UNREACHABLE(type);
}
return GL_NONE;
@@ -127,7 +127,7 @@
case GL_FLOAT_MAT4:
return 4;
default:
- UNREACHABLE();
+ UNREACHABLE(type);
}
return 0;
@@ -159,7 +159,7 @@
case GL_FLOAT_MAT4:
return 4;
default:
- UNREACHABLE();
+ UNREACHABLE(type);
}
return 0;
@@ -247,7 +247,7 @@
case GL_RGB: return sizeof(unsigned char) * 3;
case GL_RGBA: return sizeof(unsigned char) * 4;
case GL_BGRA_EXT: return sizeof(unsigned char) * 4;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
case GL_UNSIGNED_SHORT_4_4_4_4:
@@ -267,7 +267,7 @@
case GL_LUMINANCE_ALPHA: return sizeof(float) * 2;
case GL_RGB: return sizeof(float) * 3;
case GL_RGBA: return sizeof(float) * 4;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
case GL_HALF_FLOAT:
@@ -278,10 +278,10 @@
case GL_LUMINANCE_ALPHA: return sizeof(unsigned short) * 2;
case GL_RGB: return sizeof(unsigned short) * 3;
case GL_RGBA: return sizeof(unsigned short) * 4;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
return 0;
@@ -303,7 +303,7 @@
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: return 3;
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: return 4;
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: return 5;
- default: UNREACHABLE(); return 0;
+ default: UNREACHABLE(cubeFace); return 0;
}
}
@@ -440,7 +440,7 @@
case GL_GREATER: return sw::DEPTH_GREATER;
case GL_GEQUAL: return sw::DEPTH_GREATEREQUAL;
case GL_NOTEQUAL: return sw::DEPTH_NOTEQUAL;
- default: UNREACHABLE();
+ default: UNREACHABLE(comparison);
}
return sw::DEPTH_ALWAYS;
@@ -458,7 +458,7 @@
case GL_GREATER: return sw::STENCIL_GREATER;
case GL_GEQUAL: return sw::STENCIL_GREATEREQUAL;
case GL_NOTEQUAL: return sw::STENCIL_NOTEQUAL;
- default: UNREACHABLE();
+ default: UNREACHABLE(comparison);
}
return sw::STENCIL_ALWAYS;
@@ -488,7 +488,7 @@
case GL_CONSTANT_ALPHA: return sw::BLEND_CONSTANTALPHA;
case GL_ONE_MINUS_CONSTANT_ALPHA: return sw::BLEND_INVCONSTANTALPHA;
case GL_SRC_ALPHA_SATURATE: return sw::BLEND_SRCALPHASAT;
- default: UNREACHABLE();
+ default: UNREACHABLE(blend);
}
return sw::BLEND_ZERO;
@@ -503,7 +503,7 @@
case GL_FUNC_REVERSE_SUBTRACT: return sw::BLENDOP_INVSUB;
case GL_MIN_EXT: return sw::BLENDOP_MIN;
case GL_MAX_EXT: return sw::BLENDOP_MAX;
- default: UNREACHABLE();
+ default: UNREACHABLE(blendOp);
}
return sw::BLENDOP_ADD;
@@ -521,7 +521,7 @@
case GL_INVERT: return sw::OPERATION_INVERT;
case GL_INCR_WRAP: return sw::OPERATION_INCR;
case GL_DECR_WRAP: return sw::OPERATION_DECR;
- default: UNREACHABLE();
+ default: UNREACHABLE(stencilOp);
}
return sw::OPERATION_KEEP;
@@ -535,7 +535,7 @@
case GL_REPEAT: return sw::ADDRESSING_WRAP;
case GL_CLAMP_TO_EDGE: return sw::ADDRESSING_CLAMP;
case GL_MIRRORED_REPEAT: return sw::ADDRESSING_MIRROR;
- default: UNREACHABLE();
+ default: UNREACHABLE(wrap);
}
return sw::ADDRESSING_WRAP;
@@ -551,7 +551,7 @@
return (frontFace == GL_CCW ? sw::CULL_COUNTERCLOCKWISE : sw::CULL_CLOCKWISE);
case GL_FRONT_AND_BACK:
return sw::CULL_NONE; // culling will be handled during draw
- default: UNREACHABLE();
+ default: UNREACHABLE(cullFace);
}
return sw::CULL_COUNTERCLOCKWISE;
@@ -571,7 +571,7 @@
{
case GL_NEAREST: return sw::FILTER_POINT;
case GL_LINEAR: return sw::FILTER_LINEAR;
- default: UNREACHABLE();
+ default: UNREACHABLE(magFilter);
}
return sw::FILTER_POINT;
@@ -608,7 +608,7 @@
default:
*minFilter = sw::FILTER_POINT;
*mipFilter = sw::MIPMAP_NONE;
- UNREACHABLE();
+ UNREACHABLE(texFilter);
}
if(maxAnisotropy > 1.0f)
@@ -673,7 +673,7 @@
case GL_DEPTH_COMPONENT24:
case GL_STENCIL_INDEX8:
case GL_DEPTH24_STENCIL8_EXT: return sw::FORMAT_D24S8;
- default: UNREACHABLE(); return sw::FORMAT_A8R8G8B8;
+ default: UNREACHABLE(format); return sw::FORMAT_A8R8G8B8;
}
}
}
@@ -821,7 +821,7 @@
case sw::FORMAT_R5G6B5: return GL_RGB565;
case sw::FORMAT_X8R8G8B8: return GL_RGB8_EXT;
default:
- UNREACHABLE();
+ UNREACHABLE(format);
}
return GL_RGBA4;
@@ -839,7 +839,7 @@
case sw::FORMAT_D24S8:
return GL_DEPTH24_STENCIL8_EXT;
default:
- UNREACHABLE();
+ UNREACHABLE(format);
}
return GL_DEPTH24_STENCIL8_EXT;
diff --git a/src/OpenGL/libGLES_CM/Context.cpp b/src/OpenGL/libGLES_CM/Context.cpp
index 1ba9f8b..e0968b4 100644
--- a/src/OpenGL/libGLES_CM/Context.cpp
+++ b/src/OpenGL/libGLES_CM/Context.cpp
@@ -620,7 +620,7 @@
device->setPixelFogMode(sw::FOG_EXP2);
break;
default:
- UNREACHABLE();
+ UNREACHABLE(mode);
}
}
@@ -967,7 +967,7 @@
{
case TEXTURE_2D: return mTexture2DZero;
case TEXTURE_EXTERNAL: return mTextureExternalZero;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
}
@@ -1008,47 +1008,47 @@
// because it is stored as a float, despite the fact that the GL ES 2.0 spec names
// GetIntegerv as its native query function. As it would require conversion in any
// case, this should make no difference to the calling application.
- switch (pname)
+ switch(pname)
{
- case GL_LINE_WIDTH: *params = mState.lineWidth; break;
- case GL_SAMPLE_COVERAGE_VALUE: *params = mState.sampleCoverageValue; break;
- case GL_DEPTH_CLEAR_VALUE: *params = mState.depthClearValue; break;
- case GL_POLYGON_OFFSET_FACTOR: *params = mState.polygonOffsetFactor; break;
- case GL_POLYGON_OFFSET_UNITS: *params = mState.polygonOffsetUnits; break;
- case GL_ALIASED_LINE_WIDTH_RANGE:
+ case GL_LINE_WIDTH: *params = mState.lineWidth; break;
+ case GL_SAMPLE_COVERAGE_VALUE: *params = mState.sampleCoverageValue; break;
+ case GL_DEPTH_CLEAR_VALUE: *params = mState.depthClearValue; break;
+ case GL_POLYGON_OFFSET_FACTOR: *params = mState.polygonOffsetFactor; break;
+ case GL_POLYGON_OFFSET_UNITS: *params = mState.polygonOffsetUnits; break;
+ case GL_ALIASED_LINE_WIDTH_RANGE:
params[0] = ALIASED_LINE_WIDTH_RANGE_MIN;
params[1] = ALIASED_LINE_WIDTH_RANGE_MAX;
break;
- case GL_ALIASED_POINT_SIZE_RANGE:
+ case GL_ALIASED_POINT_SIZE_RANGE:
params[0] = ALIASED_POINT_SIZE_RANGE_MIN;
params[1] = ALIASED_POINT_SIZE_RANGE_MAX;
break;
- case GL_DEPTH_RANGE:
+ case GL_DEPTH_RANGE:
params[0] = mState.zNear;
params[1] = mState.zFar;
break;
- case GL_COLOR_CLEAR_VALUE:
+ case GL_COLOR_CLEAR_VALUE:
params[0] = mState.colorClearValue.red;
params[1] = mState.colorClearValue.green;
params[2] = mState.colorClearValue.blue;
params[3] = mState.colorClearValue.alpha;
break;
- case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
+ case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
*params = MAX_TEXTURE_MAX_ANISOTROPY;
break;
- case GL_MODELVIEW_MATRIX:
+ case GL_MODELVIEW_MATRIX:
for(int i = 0; i < 16; i++)
{
params[i] = modelViewStack.current()[i % 4][i / 4];
}
break;
- case GL_PROJECTION_MATRIX:
+ case GL_PROJECTION_MATRIX:
for(int i = 0; i < 16; i++)
{
params[i] = projectionStack.current()[i % 4][i / 4];
}
break;
- default:
+ default:
return false;
}
@@ -1357,7 +1357,7 @@
case GL_MAX_TEXTURE_UNITS:
return 1;
default:
- UNREACHABLE();
+ UNREACHABLE(pname);
}
return -1;
@@ -1712,7 +1712,7 @@
switch(mState.shadeModel)
{
- default: UNREACHABLE();
+ default: UNREACHABLE(mState.shadeModel);
case GL_SMOOTH: device->setShadingMode(sw::SHADING_GOURAUD); break;
case GL_FLAT: device->setShadingMode(sw::SHADING_FLAT); break;
}
@@ -1885,7 +1885,7 @@
device->setStageOperation(unit, sw::TextureStage::STAGE_SELECTARG1);
device->setStageOperationAlpha(unit, sw::TextureStage::STAGE_SELECTARG1);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(texFormat);
}
break;
case GL_MODULATE:
@@ -1909,7 +1909,7 @@
device->setStageOperation(unit, sw::TextureStage::STAGE_MODULATE);
device->setStageOperationAlpha(unit, sw::TextureStage::STAGE_MODULATE);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(texFormat);
}
break;
case GL_DECAL:
@@ -1933,7 +1933,7 @@
device->setStageOperation(unit, sw::TextureStage::STAGE_BLENDTEXTUREALPHA); // Alpha * (Arg1 - Arg2) + Arg2
device->setStageOperationAlpha(unit, sw::TextureStage::STAGE_SELECTARG2);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(texFormat);
}
break;
case GL_BLEND:
@@ -1957,7 +1957,7 @@
device->setStageOperation(unit, sw::TextureStage::STAGE_LERP); // Arg3 * (Arg1 - Arg2) + Arg2
device->setStageOperationAlpha(unit, sw::TextureStage::STAGE_MODULATE);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(texFormat);
}
break;
case GL_ADD:
@@ -1981,11 +1981,11 @@
device->setStageOperation(unit, sw::TextureStage::STAGE_ADD);
device->setStageOperationAlpha(unit, sw::TextureStage::STAGE_MODULATE);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(texFormat);
}
break;
default:
- UNREACHABLE();
+ UNREACHABLE(mState.textureUnit[unit].environmentMode);
}
}
else // GL_COMBINE
@@ -2271,7 +2271,7 @@
break;
default:
UNIMPLEMENTED(); // FIXME
- UNREACHABLE();
+ UNREACHABLE(renderTarget->getInternalFormat());
}
switch(format)
@@ -2285,7 +2285,7 @@
dest[4 * i + 2] = (unsigned char)(255 * b + 0.5f);
dest[4 * i + 3] = (unsigned char)(255 * a + 0.5f);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
break;
case GL_BGRA_EXT:
@@ -2325,7 +2325,7 @@
((unsigned short)(31 * g + 0.5f) << 5) |
((unsigned short)(31 * b + 0.5f) << 0);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
break;
case GL_RGB:
@@ -2337,10 +2337,10 @@
((unsigned short)(63 * g + 0.5f) << 5) |
((unsigned short)(31 * r + 0.5f) << 11);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
}
}
@@ -2736,7 +2736,7 @@
case GL_LINE_LOOP:
case GL_LINE_STRIP:
return false;
- default: UNREACHABLE();
+ default: UNREACHABLE(drawMode);
}
return false;
@@ -2819,7 +2819,7 @@
return EGL_BAD_ACCESS;
}
}
- else UNREACHABLE();
+ else UNREACHABLE(target);
return EGL_SUCCESS;
}
@@ -2838,7 +2838,7 @@
return renderbuffer->createSharedImage();
}
- else UNREACHABLE();
+ else UNREACHABLE(target);
return 0;
}
@@ -2870,7 +2870,7 @@
break;
}
- UNREACHABLE();
+ UNREACHABLE(matrixMode);
return textureStack0;
}
diff --git a/src/OpenGL/libGLES_CM/Context.h b/src/OpenGL/libGLES_CM/Context.h
index d76a13a..63f091b 100644
--- a/src/OpenGL/libGLES_CM/Context.h
+++ b/src/OpenGL/libGLES_CM/Context.h
@@ -143,7 +143,7 @@
int typeSize() const
{
- switch (mType)
+ switch(mType)
{
case GL_BYTE: return mSize * sizeof(GLbyte);
case GL_UNSIGNED_BYTE: return mSize * sizeof(GLubyte);
@@ -151,7 +151,7 @@
case GL_UNSIGNED_SHORT: return mSize * sizeof(GLushort);
case GL_FIXED: return mSize * sizeof(GLfixed);
case GL_FLOAT: return mSize * sizeof(GLfloat);
- default: UNREACHABLE(); return mSize * sizeof(GLfloat);
+ default: UNREACHABLE(mType); return mSize * sizeof(GLfloat);
}
}
diff --git a/src/OpenGL/libGLES_CM/Device.cpp b/src/OpenGL/libGLES_CM/Device.cpp
index 8bb508c..bc2121f 100644
--- a/src/OpenGL/libGLES_CM/Device.cpp
+++ b/src/OpenGL/libGLES_CM/Device.cpp
@@ -237,7 +237,7 @@
lockable = true;
break;
default:
- UNREACHABLE();
+ UNREACHABLE(format);
}
egl::Image *surface = new egl::Image(width, height, format, multiSampleDepth, lockable, true);
@@ -290,7 +290,7 @@
case DRAW_TRIANGLELIST: drawType = sw::DRAW_INDEXEDTRIANGLELIST32; break;
case DRAW_TRIANGLESTRIP: drawType = sw::DRAW_INDEXEDTRIANGLESTRIP32; break;
case DRAW_TRIANGLEFAN: drawType = sw::DRAW_INDEXEDTRIANGLEFAN32; break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
}
else if(indexSize == 2)
@@ -304,7 +304,7 @@
case DRAW_TRIANGLELIST: drawType = sw::DRAW_INDEXEDTRIANGLELIST16; break;
case DRAW_TRIANGLESTRIP: drawType = sw::DRAW_INDEXEDTRIANGLESTRIP16; break;
case DRAW_TRIANGLEFAN: drawType = sw::DRAW_INDEXEDTRIANGLEFAN16; break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
}
else if(indexSize == 1)
@@ -318,10 +318,10 @@
case DRAW_TRIANGLELIST: drawType = sw::DRAW_INDEXEDTRIANGLELIST8; break;
case DRAW_TRIANGLESTRIP: drawType = sw::DRAW_INDEXEDTRIANGLESTRIP8; break;
case DRAW_TRIANGLEFAN: drawType = sw::DRAW_INDEXEDTRIANGLEFAN8; break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
}
- else UNREACHABLE();
+ else UNREACHABLE(indexSize);
draw(drawType, indexOffset, primitiveCount);
}
@@ -346,7 +346,7 @@
case DRAW_TRIANGLELIST: drawType = sw::DRAW_TRIANGLELIST; break;
case DRAW_TRIANGLESTRIP: drawType = sw::DRAW_TRIANGLESTRIP; break;
case DRAW_TRIANGLEFAN: drawType = sw::DRAW_TRIANGLEFAN; break;
- default: UNREACHABLE();
+ default: UNREACHABLE(primitiveType);
}
draw(drawType, 0, primitiveCount);
diff --git a/src/OpenGL/libGLES_CM/Framebuffer.cpp b/src/OpenGL/libGLES_CM/Framebuffer.cpp
index 04dd9ad..3eb9eff 100644
--- a/src/OpenGL/libGLES_CM/Framebuffer.cpp
+++ b/src/OpenGL/libGLES_CM/Framebuffer.cpp
@@ -53,10 +53,7 @@
{
buffer = context->getTexture(handle)->getRenderbuffer(type);
}
- else
- {
- UNREACHABLE();
- }
+ else UNREACHABLE(type);
return buffer;
}
@@ -269,7 +266,7 @@
}
else
{
- UNREACHABLE();
+ UNREACHABLE(mColorbufferType);
return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES;
}
@@ -311,7 +308,7 @@
}
else
{
- UNREACHABLE();
+ UNREACHABLE(mDepthbufferType);
return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES;
}
@@ -327,7 +324,7 @@
}
else if(samples != depthbuffer->getSamples())
{
- UNREACHABLE();
+ UNREACHABLE(0);
}
}
@@ -363,7 +360,7 @@
}
else
{
- UNREACHABLE();
+ UNREACHABLE(mStencilbufferType);
return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES;
}
@@ -379,7 +376,7 @@
}
else if(samples != stencilbuffer->getSamples())
{
- UNREACHABLE();
+ UNREACHABLE(0);
return GL_FRAMEBUFFER_UNSUPPORTED_OES; // GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_OES;
}
}
@@ -416,7 +413,7 @@
case sw::FORMAT_A1R5G5B5: return GL_BGRA_EXT;
case sw::FORMAT_R5G6B5: return 0x80E0; // GL_BGR_EXT
default:
- UNREACHABLE();
+ UNREACHABLE(colorbuffer->getInternalFormat());
}
}
@@ -438,7 +435,7 @@
case sw::FORMAT_A1R5G5B5: return GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT;
case sw::FORMAT_R5G6B5: return GL_UNSIGNED_SHORT_5_6_5;
default:
- UNREACHABLE();
+ UNREACHABLE(colorbuffer->getInternalFormat());
}
}
diff --git a/src/OpenGL/libGLES_CM/IndexDataManager.cpp b/src/OpenGL/libGLES_CM/IndexDataManager.cpp
index 25426dc..0de5ebf 100644
--- a/src/OpenGL/libGLES_CM/IndexDataManager.cpp
+++ b/src/OpenGL/libGLES_CM/IndexDataManager.cpp
@@ -53,7 +53,7 @@
{
memcpy(output, input, count * sizeof(GLushort));
}
- else UNREACHABLE();
+ else UNREACHABLE(type);
}
template<class IndexType>
@@ -79,7 +79,7 @@
{
computeRange(static_cast<const GLushort*>(indices), count, minIndex, maxIndex);
}
- else UNREACHABLE();
+ else UNREACHABLE(type);
}
GLenum IndexDataManager::prepareIndexData(GLenum type, GLsizei count, Buffer *buffer, const void *indices, TranslatedIndexData *translated)
@@ -96,9 +96,9 @@
{
switch(type)
{
- case GL_UNSIGNED_BYTE: alignedOffset = (offset % sizeof(GLubyte) == 0); break;
- case GL_UNSIGNED_SHORT: alignedOffset = (offset % sizeof(GLushort) == 0); break;
- default: UNREACHABLE(); alignedOffset = false;
+ case GL_UNSIGNED_BYTE: alignedOffset = (offset % sizeof(GLubyte) == 0); break;
+ case GL_UNSIGNED_SHORT: alignedOffset = (offset % sizeof(GLushort) == 0); break;
+ default: UNREACHABLE(type); alignedOffset = false;
}
if(typeSize(type) * count + offset > static_cast<std::size_t>(buffer->size()))
@@ -152,7 +152,7 @@
{
case GL_UNSIGNED_SHORT: return sizeof(GLushort);
case GL_UNSIGNED_BYTE: return sizeof(GLubyte);
- default: UNREACHABLE(); return sizeof(GLushort);
+ default: UNREACHABLE(type); return sizeof(GLushort);
}
}
diff --git a/src/OpenGL/libGLES_CM/ResourceManager.cpp b/src/OpenGL/libGLES_CM/ResourceManager.cpp
index 4e9f1bd..89c12be 100644
--- a/src/OpenGL/libGLES_CM/ResourceManager.cpp
+++ b/src/OpenGL/libGLES_CM/ResourceManager.cpp
@@ -203,7 +203,7 @@
}
else
{
- UNREACHABLE();
+ UNREACHABLE(type);
return;
}
diff --git a/src/OpenGL/libGLES_CM/Texture.cpp b/src/OpenGL/libGLES_CM/Texture.cpp
index b81f455..818c1b8 100644
--- a/src/OpenGL/libGLES_CM/Texture.cpp
+++ b/src/OpenGL/libGLES_CM/Texture.cpp
@@ -323,7 +323,7 @@
case GL_NEAREST_MIPMAP_LINEAR:
case GL_LINEAR_MIPMAP_LINEAR:
return true;
- default: UNREACHABLE();
+ default: UNREACHABLE(mMinFilter);
}
return false;
@@ -822,7 +822,7 @@
lockable = true;
break;
default:
- UNREACHABLE();
+ UNREACHABLE(format);
}
egl::Image *surface = new egl::Image(width, height, format, multiSampleDepth, lockable, true);
diff --git a/src/OpenGL/libGLES_CM/VertexDataManager.cpp b/src/OpenGL/libGLES_CM/VertexDataManager.cpp
index 878a893..44224fe 100644
--- a/src/OpenGL/libGLES_CM/VertexDataManager.cpp
+++ b/src/OpenGL/libGLES_CM/VertexDataManager.cpp
@@ -176,7 +176,7 @@
case GL_UNSIGNED_SHORT: translated[i].type = sw::STREAMTYPE_USHORT; break;
case GL_FIXED: translated[i].type = sw::STREAMTYPE_FIXED; break;
case GL_FLOAT: translated[i].type = sw::STREAMTYPE_FLOAT; break;
- default: UNREACHABLE(); translated[i].type = sw::STREAMTYPE_FLOAT; break;
+ default: UNREACHABLE(attribs[i].mType); translated[i].type = sw::STREAMTYPE_FLOAT; break;
}
translated[i].count = attribs[i].mSize;
diff --git a/src/OpenGL/libGLES_CM/libGLES_CM.cpp b/src/OpenGL/libGLES_CM/libGLES_CM.cpp
index 175f939..b5fcdd6 100644
--- a/src/OpenGL/libGLES_CM/libGLES_CM.cpp
+++ b/src/OpenGL/libGLES_CM/libGLES_CM.cpp
@@ -722,7 +722,7 @@
texture->setCompressedImage(level, internalformat, width, height, imageSize, data);
}
- else UNREACHABLE();
+ else UNREACHABLE(target);
}
}
@@ -793,7 +793,7 @@
texture->subImageCompressed(level, xoffset, yoffset, width, height, format, imageSize, data);
}
}
- else UNREACHABLE();
+ else UNREACHABLE(target);
}
}
@@ -908,7 +908,7 @@
texture->copyImage(level, internalformat, x, y, width, height, framebuffer);
}
- else UNREACHABLE();
+ else UNREACHABLE(target);
}
}
@@ -967,7 +967,7 @@
{
texture = context->getTexture2D();
}
- else UNREACHABLE();
+ else UNREACHABLE(target);
if(!validateSubImageParams(false, width, height, xoffset, yoffset, target, level, GL_NONE_OES, texture))
{
@@ -1998,7 +1998,7 @@
{
attachmentObjectType = GL_TEXTURE;
}
- else UNREACHABLE();
+ else UNREACHABLE(attachmentType);
switch(pname)
{
@@ -3284,7 +3284,7 @@
texture->setImage(level, width, height, format, type, context->getUnpackAlignment(), pixels);
}
- else UNREACHABLE();
+ else UNREACHABLE(target);
}
}
@@ -3518,7 +3518,7 @@
texture->subImage(level, xoffset, yoffset, width, height, format, type, context->getUnpackAlignment(), pixels);
}
}
- else UNREACHABLE();
+ else UNREACHABLE(target);
}
}
@@ -3591,7 +3591,7 @@
{
case GL_TEXTURE_2D: texture = context->getTexture2D(); break;
case GL_TEXTURE_EXTERNAL_OES: texture = context->getTextureExternal(); break;
- default: UNREACHABLE();
+ default: UNREACHABLE(target);
}
if(!texture)
diff --git a/src/OpenGL/libGLES_CM/main.cpp b/src/OpenGL/libGLES_CM/main.cpp
index f3de48a..381cee1 100644
--- a/src/OpenGL/libGLES_CM/main.cpp
+++ b/src/OpenGL/libGLES_CM/main.cpp
@@ -135,7 +135,7 @@
context->recordInvalidFramebufferOperation();
TRACE("\t! Error generated: invalid framebuffer operation\n");
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(errorCode);
}
}
}
diff --git a/src/OpenGL/libGLES_CM/utilities.cpp b/src/OpenGL/libGLES_CM/utilities.cpp
index 0fb1e98..dc6be54 100644
--- a/src/OpenGL/libGLES_CM/utilities.cpp
+++ b/src/OpenGL/libGLES_CM/utilities.cpp
@@ -55,7 +55,7 @@
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES: return 3;
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES: return 4;
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES: return 5;
- default: UNREACHABLE(); return 0;
+ default: UNREACHABLE(cubeFace); return 0;
}
}
@@ -173,7 +173,7 @@
case GL_GREATER: return sw::DEPTH_GREATER;
case GL_GEQUAL: return sw::DEPTH_GREATEREQUAL;
case GL_NOTEQUAL: return sw::DEPTH_NOTEQUAL;
- default: UNREACHABLE();
+ default: UNREACHABLE(comparison);
}
return sw::DEPTH_ALWAYS;
@@ -191,7 +191,7 @@
case GL_GREATER: return sw::STENCIL_GREATER;
case GL_GEQUAL: return sw::STENCIL_GREATEREQUAL;
case GL_NOTEQUAL: return sw::STENCIL_NOTEQUAL;
- default: UNREACHABLE();
+ default: UNREACHABLE(comparison);
}
return sw::STENCIL_ALWAYS;
@@ -217,7 +217,7 @@
case GL_DST_ALPHA: return sw::BLEND_DESTALPHA;
case GL_ONE_MINUS_DST_ALPHA: return sw::BLEND_INVDESTALPHA;
case GL_SRC_ALPHA_SATURATE: return sw::BLEND_SRCALPHASAT;
- default: UNREACHABLE();
+ default: UNREACHABLE(blend);
}
return sw::BLEND_ZERO;
@@ -232,7 +232,7 @@
case GL_FUNC_REVERSE_SUBTRACT_OES: return sw::BLENDOP_INVSUB;
case GL_MIN_EXT: return sw::BLENDOP_MIN;
case GL_MAX_EXT: return sw::BLENDOP_MAX;
- default: UNREACHABLE();
+ default: UNREACHABLE(blendOp);
}
return sw::BLENDOP_ADD;
@@ -250,7 +250,7 @@
case GL_INVERT: return sw::OPERATION_INVERT;
case GL_INCR_WRAP_OES: return sw::OPERATION_INCR;
case GL_DECR_WRAP_OES: return sw::OPERATION_DECR;
- default: UNREACHABLE();
+ default: UNREACHABLE(stencilOp);
}
return sw::OPERATION_KEEP;
@@ -263,7 +263,7 @@
case GL_REPEAT: return sw::ADDRESSING_WRAP;
case GL_CLAMP_TO_EDGE: return sw::ADDRESSING_CLAMP;
case GL_MIRRORED_REPEAT_OES: return sw::ADDRESSING_MIRROR;
- default: UNREACHABLE();
+ default: UNREACHABLE(wrap);
}
return sw::ADDRESSING_WRAP;
@@ -279,7 +279,7 @@
return (frontFace == GL_CCW ? sw::CULL_COUNTERCLOCKWISE : sw::CULL_CLOCKWISE);
case GL_FRONT_AND_BACK:
return sw::CULL_NONE; // culling will be handled during draw
- default: UNREACHABLE();
+ default: UNREACHABLE(cullFace);
}
return sw::CULL_COUNTERCLOCKWISE;
@@ -299,7 +299,7 @@
{
case GL_NEAREST: return sw::FILTER_POINT;
case GL_LINEAR: return sw::FILTER_LINEAR;
- default: UNREACHABLE();
+ default: UNREACHABLE(magFilter);
}
return sw::FILTER_POINT;
@@ -336,7 +336,7 @@
default:
*minFilter = sw::FILTER_POINT;
*mipFilter = sw::MIPMAP_NONE;
- UNREACHABLE();
+ UNREACHABLE(texFilter);
}
if(maxAnisotropy > 1.0f)
@@ -396,7 +396,7 @@
case GL_DEPTH_COMPONENT16_OES:
case GL_STENCIL_INDEX8_OES:
case GL_DEPTH24_STENCIL8_OES: return sw::FORMAT_D24S8;
- default: UNREACHABLE(); return sw::FORMAT_A8B8G8R8;
+ default: UNREACHABLE(format); return sw::FORMAT_A8B8G8R8;
}
}
@@ -412,7 +412,7 @@
case GL_SUBTRACT: return sw::TextureStage::STAGE_SUBTRACT;
case GL_DOT3_RGB: return sw::TextureStage::STAGE_DOT3;
case GL_DOT3_RGBA: return sw::TextureStage::STAGE_DOT3;
- default: UNREACHABLE(); return sw::TextureStage::STAGE_SELECTARG1;
+ default: UNREACHABLE(operation); return sw::TextureStage::STAGE_SELECTARG1;
}
}
@@ -424,7 +424,7 @@
case GL_CONSTANT: return sw::TextureStage::SOURCE_CONSTANT;
case GL_PRIMARY_COLOR: return sw::TextureStage::SOURCE_DIFFUSE;
case GL_PREVIOUS: return sw::TextureStage::SOURCE_CURRENT;
- default: UNREACHABLE(); return sw::TextureStage::SOURCE_CURRENT;
+ default: UNREACHABLE(argument); return sw::TextureStage::SOURCE_CURRENT;
}
}
@@ -436,7 +436,7 @@
case GL_ONE_MINUS_SRC_COLOR: return sw::TextureStage::MODIFIER_INVCOLOR;
case GL_SRC_ALPHA: return sw::TextureStage::MODIFIER_ALPHA;
case GL_ONE_MINUS_SRC_ALPHA: return sw::TextureStage::MODIFIER_INVALPHA;
- default: UNREACHABLE(); return sw::TextureStage::MODIFIER_COLOR;
+ default: UNREACHABLE(operand); return sw::TextureStage::MODIFIER_COLOR;
}
}
}
@@ -594,7 +594,7 @@
case sw::FORMAT_X8R8G8B8: return GL_RGB8_OES;
case sw::FORMAT_X8B8G8R8: return GL_RGB8_OES;
default:
- UNREACHABLE();
+ UNREACHABLE(format);
}
return GL_RGBA4_OES;
@@ -611,7 +611,7 @@
case sw::FORMAT_D24S8:
return GL_DEPTH24_STENCIL8_OES;
default:
- UNREACHABLE();
+ UNREACHABLE(format);
}
return GL_DEPTH24_STENCIL8_OES;
diff --git a/src/OpenGL/libGLESv2/Context.cpp b/src/OpenGL/libGLESv2/Context.cpp
index 121e956..5ad77f2 100644
--- a/src/OpenGL/libGLESv2/Context.cpp
+++ b/src/OpenGL/libGLESv2/Context.cpp
@@ -1712,7 +1712,7 @@
case TEXTURE_2D_ARRAY: return mTexture2DArrayZero;
case TEXTURE_CUBE: return mTextureCubeMapZero;
case TEXTURE_EXTERNAL: return mTextureExternalZero;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
}
@@ -1721,49 +1721,49 @@
bool Context::getBooleanv(GLenum pname, GLboolean *params) const
{
- switch (pname)
+ switch(pname)
{
- case GL_SHADER_COMPILER: *params = GL_TRUE; break;
- case GL_SAMPLE_COVERAGE_INVERT: *params = mState.sampleCoverageInvert; break;
- case GL_DEPTH_WRITEMASK: *params = mState.depthMask; break;
- case GL_COLOR_WRITEMASK:
+ case GL_SHADER_COMPILER: *params = GL_TRUE; break;
+ case GL_SAMPLE_COVERAGE_INVERT: *params = mState.sampleCoverageInvert; break;
+ case GL_DEPTH_WRITEMASK: *params = mState.depthMask; break;
+ case GL_COLOR_WRITEMASK:
params[0] = mState.colorMaskRed;
params[1] = mState.colorMaskGreen;
params[2] = mState.colorMaskBlue;
params[3] = mState.colorMaskAlpha;
break;
- case GL_CULL_FACE: *params = mState.cullFace; break;
- case GL_POLYGON_OFFSET_FILL: *params = mState.polygonOffsetFill; break;
- case GL_SAMPLE_ALPHA_TO_COVERAGE: *params = mState.sampleAlphaToCoverage; break;
- case GL_SAMPLE_COVERAGE: *params = mState.sampleCoverage; break;
- case GL_SCISSOR_TEST: *params = mState.scissorTest; break;
- case GL_STENCIL_TEST: *params = mState.stencilTest; break;
- case GL_DEPTH_TEST: *params = mState.depthTest; break;
- case GL_BLEND: *params = mState.blend; break;
- case GL_DITHER: *params = mState.dither; break;
- case GL_PRIMITIVE_RESTART_FIXED_INDEX: *params = mState.primitiveRestartFixedIndex; break;
- case GL_RASTERIZER_DISCARD: *params = mState.rasterizerDiscard; break;
- case GL_TRANSFORM_FEEDBACK_ACTIVE:
- {
- TransformFeedback* transformFeedback = getTransformFeedback(mState.transformFeedback);
- if(transformFeedback)
- {
- *params = transformFeedback->isActive();
- break;
- }
- else return false;
- }
- case GL_TRANSFORM_FEEDBACK_PAUSED:
- {
- TransformFeedback* transformFeedback = getTransformFeedback(mState.transformFeedback);
- if(transformFeedback)
- {
- *params = transformFeedback->isPaused();
- break;
- }
- else return false;
- }
- default:
+ case GL_CULL_FACE: *params = mState.cullFace; break;
+ case GL_POLYGON_OFFSET_FILL: *params = mState.polygonOffsetFill; break;
+ case GL_SAMPLE_ALPHA_TO_COVERAGE: *params = mState.sampleAlphaToCoverage; break;
+ case GL_SAMPLE_COVERAGE: *params = mState.sampleCoverage; break;
+ case GL_SCISSOR_TEST: *params = mState.scissorTest; break;
+ case GL_STENCIL_TEST: *params = mState.stencilTest; break;
+ case GL_DEPTH_TEST: *params = mState.depthTest; break;
+ case GL_BLEND: *params = mState.blend; break;
+ case GL_DITHER: *params = mState.dither; break;
+ case GL_PRIMITIVE_RESTART_FIXED_INDEX: *params = mState.primitiveRestartFixedIndex; break;
+ case GL_RASTERIZER_DISCARD: *params = mState.rasterizerDiscard; break;
+ case GL_TRANSFORM_FEEDBACK_ACTIVE:
+ {
+ TransformFeedback* transformFeedback = getTransformFeedback(mState.transformFeedback);
+ if(transformFeedback)
+ {
+ *params = transformFeedback->isActive();
+ break;
+ }
+ else return false;
+ }
+ case GL_TRANSFORM_FEEDBACK_PAUSED:
+ {
+ TransformFeedback* transformFeedback = getTransformFeedback(mState.transformFeedback);
+ if(transformFeedback)
+ {
+ *params = transformFeedback->isPaused();
+ break;
+ }
+ else return false;
+ }
+ default:
return false;
}
@@ -1776,41 +1776,41 @@
// because it is stored as a float, despite the fact that the GL ES 2.0 spec names
// GetIntegerv as its native query function. As it would require conversion in any
// case, this should make no difference to the calling application.
- switch (pname)
+ switch(pname)
{
- case GL_LINE_WIDTH: *params = mState.lineWidth; break;
- case GL_SAMPLE_COVERAGE_VALUE: *params = mState.sampleCoverageValue; break;
- case GL_DEPTH_CLEAR_VALUE: *params = mState.depthClearValue; break;
- case GL_POLYGON_OFFSET_FACTOR: *params = mState.polygonOffsetFactor; break;
- case GL_POLYGON_OFFSET_UNITS: *params = mState.polygonOffsetUnits; break;
- case GL_ALIASED_LINE_WIDTH_RANGE:
+ case GL_LINE_WIDTH: *params = mState.lineWidth; break;
+ case GL_SAMPLE_COVERAGE_VALUE: *params = mState.sampleCoverageValue; break;
+ case GL_DEPTH_CLEAR_VALUE: *params = mState.depthClearValue; break;
+ case GL_POLYGON_OFFSET_FACTOR: *params = mState.polygonOffsetFactor; break;
+ case GL_POLYGON_OFFSET_UNITS: *params = mState.polygonOffsetUnits; break;
+ case GL_ALIASED_LINE_WIDTH_RANGE:
params[0] = ALIASED_LINE_WIDTH_RANGE_MIN;
params[1] = ALIASED_LINE_WIDTH_RANGE_MAX;
break;
- case GL_ALIASED_POINT_SIZE_RANGE:
+ case GL_ALIASED_POINT_SIZE_RANGE:
params[0] = ALIASED_POINT_SIZE_RANGE_MIN;
params[1] = ALIASED_POINT_SIZE_RANGE_MAX;
break;
- case GL_DEPTH_RANGE:
+ case GL_DEPTH_RANGE:
params[0] = mState.zNear;
params[1] = mState.zFar;
break;
- case GL_COLOR_CLEAR_VALUE:
+ case GL_COLOR_CLEAR_VALUE:
params[0] = mState.colorClearValue.red;
params[1] = mState.colorClearValue.green;
params[2] = mState.colorClearValue.blue;
params[3] = mState.colorClearValue.alpha;
break;
- case GL_BLEND_COLOR:
+ case GL_BLEND_COLOR:
params[0] = mState.blendColor.red;
params[1] = mState.blendColor.green;
params[2] = mState.blendColor.blue;
params[3] = mState.blendColor.alpha;
break;
- case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
+ case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
*params = MAX_TEXTURE_MAX_ANISOTROPY;
break;
- default:
+ default:
return false;
}
@@ -1827,7 +1827,7 @@
// GetIntegerv as its native query function. As it would require conversion in any
// case, this should make no difference to the calling application. You may find it in
// Context::getFloatv.
- switch (pname)
+ switch(pname)
{
case GL_MAX_VERTEX_ATTRIBS: *params = MAX_VERTEX_ATTRIBS; break;
case GL_MAX_VERTEX_UNIFORM_VECTORS: *params = MAX_VERTEX_UNIFORM_VECTORS; break;
@@ -2359,227 +2359,227 @@
// in the case that one calls glGetIntegerv to retrieve a float-typed state variable, we
// place DEPTH_CLEAR_VALUE with the floats. This should make no difference to the calling
// application.
- switch (pname)
+ switch(pname)
{
- case GL_COMPRESSED_TEXTURE_FORMATS:
+ case GL_COMPRESSED_TEXTURE_FORMATS:
{
*type = GL_INT;
*numParams = NUM_COMPRESSED_TEXTURE_FORMATS;
}
break;
- case GL_SHADER_BINARY_FORMATS:
+ case GL_SHADER_BINARY_FORMATS:
{
*type = GL_INT;
*numParams = 0;
}
break;
- case GL_MAX_VERTEX_ATTRIBS:
- case GL_MAX_VERTEX_UNIFORM_VECTORS:
- case GL_MAX_VARYING_VECTORS:
- case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:
- case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS:
- case GL_MAX_TEXTURE_IMAGE_UNITS:
- case GL_MAX_FRAGMENT_UNIFORM_VECTORS:
- case GL_MAX_RENDERBUFFER_SIZE:
- case GL_NUM_SHADER_BINARY_FORMATS:
- case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
- case GL_ARRAY_BUFFER_BINDING:
- case GL_FRAMEBUFFER_BINDING:
- case GL_RENDERBUFFER_BINDING:
- case GL_CURRENT_PROGRAM:
- case GL_PACK_ALIGNMENT:
- case GL_UNPACK_ALIGNMENT:
- case GL_GENERATE_MIPMAP_HINT:
- case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES:
- case GL_RED_BITS:
- case GL_GREEN_BITS:
- case GL_BLUE_BITS:
- case GL_ALPHA_BITS:
- case GL_DEPTH_BITS:
- case GL_STENCIL_BITS:
- case GL_ELEMENT_ARRAY_BUFFER_BINDING:
- case GL_CULL_FACE_MODE:
- case GL_FRONT_FACE:
- case GL_ACTIVE_TEXTURE:
- case GL_STENCIL_FUNC:
- case GL_STENCIL_VALUE_MASK:
- case GL_STENCIL_REF:
- case GL_STENCIL_FAIL:
- case GL_STENCIL_PASS_DEPTH_FAIL:
- case GL_STENCIL_PASS_DEPTH_PASS:
- case GL_STENCIL_BACK_FUNC:
- case GL_STENCIL_BACK_VALUE_MASK:
- case GL_STENCIL_BACK_REF:
- case GL_STENCIL_BACK_FAIL:
- case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
- case GL_STENCIL_BACK_PASS_DEPTH_PASS:
- case GL_DEPTH_FUNC:
- case GL_BLEND_SRC_RGB:
- case GL_BLEND_SRC_ALPHA:
- case GL_BLEND_DST_RGB:
- case GL_BLEND_DST_ALPHA:
- case GL_BLEND_EQUATION_RGB:
- case GL_BLEND_EQUATION_ALPHA:
- case GL_STENCIL_WRITEMASK:
- case GL_STENCIL_BACK_WRITEMASK:
- case GL_STENCIL_CLEAR_VALUE:
- case GL_SUBPIXEL_BITS:
- case GL_MAX_TEXTURE_SIZE:
- case GL_MAX_CUBE_MAP_TEXTURE_SIZE:
- case GL_SAMPLE_BUFFERS:
- case GL_SAMPLES:
- case GL_IMPLEMENTATION_COLOR_READ_TYPE:
- case GL_IMPLEMENTATION_COLOR_READ_FORMAT:
- case GL_TEXTURE_BINDING_2D:
- case GL_TEXTURE_BINDING_CUBE_MAP:
- case GL_TEXTURE_BINDING_EXTERNAL_OES:
- case GL_TEXTURE_BINDING_3D_OES:
- case GL_COPY_READ_BUFFER_BINDING:
- case GL_COPY_WRITE_BUFFER_BINDING:
- case GL_DRAW_BUFFER0:
- case GL_DRAW_BUFFER1:
- case GL_DRAW_BUFFER2:
- case GL_DRAW_BUFFER3:
- case GL_DRAW_BUFFER4:
- case GL_DRAW_BUFFER5:
- case GL_DRAW_BUFFER6:
- case GL_DRAW_BUFFER7:
- case GL_DRAW_BUFFER8:
- case GL_DRAW_BUFFER9:
- case GL_DRAW_BUFFER10:
- case GL_DRAW_BUFFER11:
- case GL_DRAW_BUFFER12:
- case GL_DRAW_BUFFER13:
- case GL_DRAW_BUFFER14:
- case GL_DRAW_BUFFER15:
- case GL_MAJOR_VERSION:
- case GL_MAX_3D_TEXTURE_SIZE:
- case GL_MAX_ARRAY_TEXTURE_LAYERS:
- case GL_MAX_COLOR_ATTACHMENTS:
- case GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:
- case GL_MAX_COMBINED_UNIFORM_BLOCKS:
- case GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:
- case GL_MAX_DRAW_BUFFERS:
- case GL_MAX_ELEMENT_INDEX:
- case GL_MAX_ELEMENTS_INDICES:
- case GL_MAX_ELEMENTS_VERTICES:
- case GL_MAX_FRAGMENT_INPUT_COMPONENTS:
- case GL_MAX_FRAGMENT_UNIFORM_BLOCKS:
- case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS:
- case GL_MAX_PROGRAM_TEXEL_OFFSET:
- case GL_MAX_SERVER_WAIT_TIMEOUT:
- case GL_MAX_TEXTURE_LOD_BIAS:
- case GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:
- case GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:
- case GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:
- case GL_MAX_UNIFORM_BLOCK_SIZE:
- case GL_MAX_UNIFORM_BUFFER_BINDINGS:
- case GL_MAX_VARYING_COMPONENTS:
- case GL_MAX_VERTEX_OUTPUT_COMPONENTS:
- case GL_MAX_VERTEX_UNIFORM_BLOCKS:
- case GL_MAX_VERTEX_UNIFORM_COMPONENTS:
- case GL_MIN_PROGRAM_TEXEL_OFFSET:
- case GL_MINOR_VERSION:
- case GL_NUM_EXTENSIONS:
- case GL_NUM_PROGRAM_BINARY_FORMATS:
- case GL_PACK_ROW_LENGTH:
- case GL_PACK_SKIP_PIXELS:
- case GL_PACK_SKIP_ROWS:
- case GL_PIXEL_PACK_BUFFER_BINDING:
- case GL_PIXEL_UNPACK_BUFFER_BINDING:
- case GL_PROGRAM_BINARY_FORMATS:
- case GL_READ_BUFFER:
- case GL_SAMPLER_BINDING:
- case GL_TEXTURE_BINDING_2D_ARRAY:
- case GL_UNIFORM_BUFFER_BINDING:
- case GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT:
- case GL_UNIFORM_BUFFER_SIZE:
- case GL_UNIFORM_BUFFER_START:
- case GL_UNPACK_IMAGE_HEIGHT:
- case GL_UNPACK_ROW_LENGTH:
- case GL_UNPACK_SKIP_IMAGES:
- case GL_UNPACK_SKIP_PIXELS:
- case GL_UNPACK_SKIP_ROWS:
- case GL_VERTEX_ARRAY_BINDING:
+ case GL_MAX_VERTEX_ATTRIBS:
+ case GL_MAX_VERTEX_UNIFORM_VECTORS:
+ case GL_MAX_VARYING_VECTORS:
+ case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:
+ case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS:
+ case GL_MAX_TEXTURE_IMAGE_UNITS:
+ case GL_MAX_FRAGMENT_UNIFORM_VECTORS:
+ case GL_MAX_RENDERBUFFER_SIZE:
+ case GL_NUM_SHADER_BINARY_FORMATS:
+ case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
+ case GL_ARRAY_BUFFER_BINDING:
+ case GL_FRAMEBUFFER_BINDING:
+ case GL_RENDERBUFFER_BINDING:
+ case GL_CURRENT_PROGRAM:
+ case GL_PACK_ALIGNMENT:
+ case GL_UNPACK_ALIGNMENT:
+ case GL_GENERATE_MIPMAP_HINT:
+ case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES:
+ case GL_RED_BITS:
+ case GL_GREEN_BITS:
+ case GL_BLUE_BITS:
+ case GL_ALPHA_BITS:
+ case GL_DEPTH_BITS:
+ case GL_STENCIL_BITS:
+ case GL_ELEMENT_ARRAY_BUFFER_BINDING:
+ case GL_CULL_FACE_MODE:
+ case GL_FRONT_FACE:
+ case GL_ACTIVE_TEXTURE:
+ case GL_STENCIL_FUNC:
+ case GL_STENCIL_VALUE_MASK:
+ case GL_STENCIL_REF:
+ case GL_STENCIL_FAIL:
+ case GL_STENCIL_PASS_DEPTH_FAIL:
+ case GL_STENCIL_PASS_DEPTH_PASS:
+ case GL_STENCIL_BACK_FUNC:
+ case GL_STENCIL_BACK_VALUE_MASK:
+ case GL_STENCIL_BACK_REF:
+ case GL_STENCIL_BACK_FAIL:
+ case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
+ case GL_STENCIL_BACK_PASS_DEPTH_PASS:
+ case GL_DEPTH_FUNC:
+ case GL_BLEND_SRC_RGB:
+ case GL_BLEND_SRC_ALPHA:
+ case GL_BLEND_DST_RGB:
+ case GL_BLEND_DST_ALPHA:
+ case GL_BLEND_EQUATION_RGB:
+ case GL_BLEND_EQUATION_ALPHA:
+ case GL_STENCIL_WRITEMASK:
+ case GL_STENCIL_BACK_WRITEMASK:
+ case GL_STENCIL_CLEAR_VALUE:
+ case GL_SUBPIXEL_BITS:
+ case GL_MAX_TEXTURE_SIZE:
+ case GL_MAX_CUBE_MAP_TEXTURE_SIZE:
+ case GL_SAMPLE_BUFFERS:
+ case GL_SAMPLES:
+ case GL_IMPLEMENTATION_COLOR_READ_TYPE:
+ case GL_IMPLEMENTATION_COLOR_READ_FORMAT:
+ case GL_TEXTURE_BINDING_2D:
+ case GL_TEXTURE_BINDING_CUBE_MAP:
+ case GL_TEXTURE_BINDING_EXTERNAL_OES:
+ case GL_TEXTURE_BINDING_3D_OES:
+ case GL_COPY_READ_BUFFER_BINDING:
+ case GL_COPY_WRITE_BUFFER_BINDING:
+ case GL_DRAW_BUFFER0:
+ case GL_DRAW_BUFFER1:
+ case GL_DRAW_BUFFER2:
+ case GL_DRAW_BUFFER3:
+ case GL_DRAW_BUFFER4:
+ case GL_DRAW_BUFFER5:
+ case GL_DRAW_BUFFER6:
+ case GL_DRAW_BUFFER7:
+ case GL_DRAW_BUFFER8:
+ case GL_DRAW_BUFFER9:
+ case GL_DRAW_BUFFER10:
+ case GL_DRAW_BUFFER11:
+ case GL_DRAW_BUFFER12:
+ case GL_DRAW_BUFFER13:
+ case GL_DRAW_BUFFER14:
+ case GL_DRAW_BUFFER15:
+ case GL_MAJOR_VERSION:
+ case GL_MAX_3D_TEXTURE_SIZE:
+ case GL_MAX_ARRAY_TEXTURE_LAYERS:
+ case GL_MAX_COLOR_ATTACHMENTS:
+ case GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:
+ case GL_MAX_COMBINED_UNIFORM_BLOCKS:
+ case GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:
+ case GL_MAX_DRAW_BUFFERS:
+ case GL_MAX_ELEMENT_INDEX:
+ case GL_MAX_ELEMENTS_INDICES:
+ case GL_MAX_ELEMENTS_VERTICES:
+ case GL_MAX_FRAGMENT_INPUT_COMPONENTS:
+ case GL_MAX_FRAGMENT_UNIFORM_BLOCKS:
+ case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS:
+ case GL_MAX_PROGRAM_TEXEL_OFFSET:
+ case GL_MAX_SERVER_WAIT_TIMEOUT:
+ case GL_MAX_TEXTURE_LOD_BIAS:
+ case GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:
+ case GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:
+ case GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:
+ case GL_MAX_UNIFORM_BLOCK_SIZE:
+ case GL_MAX_UNIFORM_BUFFER_BINDINGS:
+ case GL_MAX_VARYING_COMPONENTS:
+ case GL_MAX_VERTEX_OUTPUT_COMPONENTS:
+ case GL_MAX_VERTEX_UNIFORM_BLOCKS:
+ case GL_MAX_VERTEX_UNIFORM_COMPONENTS:
+ case GL_MIN_PROGRAM_TEXEL_OFFSET:
+ case GL_MINOR_VERSION:
+ case GL_NUM_EXTENSIONS:
+ case GL_NUM_PROGRAM_BINARY_FORMATS:
+ case GL_PACK_ROW_LENGTH:
+ case GL_PACK_SKIP_PIXELS:
+ case GL_PACK_SKIP_ROWS:
+ case GL_PIXEL_PACK_BUFFER_BINDING:
+ case GL_PIXEL_UNPACK_BUFFER_BINDING:
+ case GL_PROGRAM_BINARY_FORMATS:
+ case GL_READ_BUFFER:
+ case GL_SAMPLER_BINDING:
+ case GL_TEXTURE_BINDING_2D_ARRAY:
+ case GL_UNIFORM_BUFFER_BINDING:
+ case GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT:
+ case GL_UNIFORM_BUFFER_SIZE:
+ case GL_UNIFORM_BUFFER_START:
+ case GL_UNPACK_IMAGE_HEIGHT:
+ case GL_UNPACK_ROW_LENGTH:
+ case GL_UNPACK_SKIP_IMAGES:
+ case GL_UNPACK_SKIP_PIXELS:
+ case GL_UNPACK_SKIP_ROWS:
+ case GL_VERTEX_ARRAY_BINDING:
{
*type = GL_INT;
*numParams = 1;
}
break;
- case GL_MAX_SAMPLES_ANGLE:
+ case GL_MAX_SAMPLES_ANGLE:
{
*type = GL_INT;
*numParams = 1;
}
break;
- case GL_MAX_VIEWPORT_DIMS:
+ case GL_MAX_VIEWPORT_DIMS:
{
*type = GL_INT;
*numParams = 2;
}
break;
- case GL_VIEWPORT:
- case GL_SCISSOR_BOX:
+ case GL_VIEWPORT:
+ case GL_SCISSOR_BOX:
{
*type = GL_INT;
*numParams = 4;
}
break;
- case GL_SHADER_COMPILER:
- case GL_SAMPLE_COVERAGE_INVERT:
- case GL_DEPTH_WRITEMASK:
- case GL_CULL_FACE: // CULL_FACE through DITHER are natural to IsEnabled,
- case GL_POLYGON_OFFSET_FILL: // but can be retrieved through the Get{Type}v queries.
- case GL_SAMPLE_ALPHA_TO_COVERAGE: // For this purpose, they are treated here as bool-natural
- case GL_SAMPLE_COVERAGE:
- case GL_SCISSOR_TEST:
- case GL_STENCIL_TEST:
- case GL_DEPTH_TEST:
- case GL_BLEND:
- case GL_DITHER:
- case GL_PRIMITIVE_RESTART_FIXED_INDEX:
- case GL_RASTERIZER_DISCARD:
+ case GL_SHADER_COMPILER:
+ case GL_SAMPLE_COVERAGE_INVERT:
+ case GL_DEPTH_WRITEMASK:
+ case GL_CULL_FACE: // CULL_FACE through DITHER are natural to IsEnabled,
+ case GL_POLYGON_OFFSET_FILL: // but can be retrieved through the Get{Type}v queries.
+ case GL_SAMPLE_ALPHA_TO_COVERAGE: // For this purpose, they are treated here as bool-natural
+ case GL_SAMPLE_COVERAGE:
+ case GL_SCISSOR_TEST:
+ case GL_STENCIL_TEST:
+ case GL_DEPTH_TEST:
+ case GL_BLEND:
+ case GL_DITHER:
+ case GL_PRIMITIVE_RESTART_FIXED_INDEX:
+ case GL_RASTERIZER_DISCARD:
{
*type = GL_BOOL;
*numParams = 1;
}
break;
- case GL_COLOR_WRITEMASK:
+ case GL_COLOR_WRITEMASK:
{
*type = GL_BOOL;
*numParams = 4;
}
break;
- case GL_POLYGON_OFFSET_FACTOR:
- case GL_POLYGON_OFFSET_UNITS:
- case GL_SAMPLE_COVERAGE_VALUE:
- case GL_DEPTH_CLEAR_VALUE:
- case GL_LINE_WIDTH:
+ case GL_POLYGON_OFFSET_FACTOR:
+ case GL_POLYGON_OFFSET_UNITS:
+ case GL_SAMPLE_COVERAGE_VALUE:
+ case GL_DEPTH_CLEAR_VALUE:
+ case GL_LINE_WIDTH:
{
*type = GL_FLOAT;
*numParams = 1;
}
break;
- case GL_ALIASED_LINE_WIDTH_RANGE:
- case GL_ALIASED_POINT_SIZE_RANGE:
- case GL_DEPTH_RANGE:
+ case GL_ALIASED_LINE_WIDTH_RANGE:
+ case GL_ALIASED_POINT_SIZE_RANGE:
+ case GL_DEPTH_RANGE:
{
*type = GL_FLOAT;
*numParams = 2;
}
break;
- case GL_COLOR_CLEAR_VALUE:
- case GL_BLEND_COLOR:
+ case GL_COLOR_CLEAR_VALUE:
+ case GL_BLEND_COLOR:
{
*type = GL_FLOAT;
*numParams = 4;
}
break;
- case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
+ case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
*type = GL_FLOAT;
*numParams = 1;
break;
- default:
+ default:
return false;
}
@@ -3011,7 +3011,7 @@
{
textureUsed = program->getVertexShader()->usesSampler(index);
}
- else UNREACHABLE();
+ else UNREACHABLE(type);
sw::Resource *resource = 0;
@@ -3337,7 +3337,7 @@
break;
default:
UNIMPLEMENTED(); // FIXME
- UNREACHABLE();
+ UNREACHABLE(renderTarget->getInternalFormat());
}
switch(format)
@@ -3351,7 +3351,7 @@
dest[4 * i + 2] = (unsigned char)(255 * b + 0.5f);
dest[4 * i + 3] = (unsigned char)(255 * a + 0.5f);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
break;
case GL_BGRA_EXT:
@@ -3391,7 +3391,7 @@
((unsigned short)(31 * g + 0.5f) << 5) |
((unsigned short)(31 * b + 0.5f) << 0);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
break;
case GL_RGB:
@@ -3403,10 +3403,10 @@
((unsigned short)(63 * g + 0.5f) << 5) |
((unsigned short)(31 * r + 0.5f) << 11);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(format);
}
}
}
@@ -3904,7 +3904,7 @@
case GL_LINE_LOOP:
case GL_LINE_STRIP:
return false;
- default: UNREACHABLE();
+ default: UNREACHABLE(drawMode);
}
return false;
@@ -4303,7 +4303,7 @@
return EGL_BAD_ACCESS;
}
}
- else UNREACHABLE();
+ else UNREACHABLE(target);
return EGL_SUCCESS;
}
@@ -4335,7 +4335,7 @@
return renderbuffer->createSharedImage();
}
- else UNREACHABLE();
+ else UNREACHABLE(target);
return 0;
}
diff --git a/src/OpenGL/libGLESv2/Context.h b/src/OpenGL/libGLESv2/Context.h
index 6ad4289..7d47574 100644
--- a/src/OpenGL/libGLESv2/Context.h
+++ b/src/OpenGL/libGLESv2/Context.h
@@ -160,7 +160,7 @@
case GL_UNSIGNED_SHORT: return mSize * sizeof(GLushort);
case GL_FIXED: return mSize * sizeof(GLfixed);
case GL_FLOAT: return mSize * sizeof(GLfloat);
- default: UNREACHABLE(); return mSize * sizeof(GLfloat);
+ default: UNREACHABLE(mType); return mSize * sizeof(GLfloat);
}
}
@@ -176,7 +176,7 @@
case ValueUnion::FloatType: return mCurrentValue[i].f;
case ValueUnion::IntType: return static_cast<float>(mCurrentValue[i].i);
case ValueUnion::UIntType: return static_cast<float>(mCurrentValue[i].ui);
- default: UNREACHABLE(); return mCurrentValue[i].f;
+ default: UNREACHABLE(mCurrentValueType); return mCurrentValue[i].f;
}
}
@@ -187,7 +187,7 @@
case ValueUnion::FloatType: return static_cast<GLint>(mCurrentValue[i].f);
case ValueUnion::IntType: return mCurrentValue[i].i;
case ValueUnion::UIntType: return static_cast<GLint>(mCurrentValue[i].ui);
- default: UNREACHABLE(); return mCurrentValue[i].i;
+ default: UNREACHABLE(mCurrentValueType); return mCurrentValue[i].i;
}
}
@@ -198,7 +198,7 @@
case ValueUnion::FloatType: return static_cast<GLuint>(mCurrentValue[i].f);
case ValueUnion::IntType: return static_cast<GLuint>(mCurrentValue[i].i);
case ValueUnion::UIntType: return mCurrentValue[i].ui;
- default: UNREACHABLE(); return mCurrentValue[i].ui;
+ default: UNREACHABLE(mCurrentValueType); return mCurrentValue[i].ui;
}
}
diff --git a/src/OpenGL/libGLESv2/Device.cpp b/src/OpenGL/libGLESv2/Device.cpp
index 6a41e1e..201bf00 100644
--- a/src/OpenGL/libGLESv2/Device.cpp
+++ b/src/OpenGL/libGLESv2/Device.cpp
@@ -245,7 +245,7 @@
lockable = true;
break;
default:
- UNREACHABLE();
+ UNREACHABLE(format);
}
egl::Image *surface = new egl::Image(width, height, format, multiSampleDepth, lockable, true);
@@ -298,7 +298,7 @@
case DRAW_TRIANGLELIST: drawType = sw::DRAW_INDEXEDTRIANGLELIST32; break;
case DRAW_TRIANGLESTRIP: drawType = sw::DRAW_INDEXEDTRIANGLESTRIP32; break;
case DRAW_TRIANGLEFAN: drawType = sw::DRAW_INDEXEDTRIANGLEFAN32; break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
}
else if(indexSize == 2)
@@ -312,7 +312,7 @@
case DRAW_TRIANGLELIST: drawType = sw::DRAW_INDEXEDTRIANGLELIST16; break;
case DRAW_TRIANGLESTRIP: drawType = sw::DRAW_INDEXEDTRIANGLESTRIP16; break;
case DRAW_TRIANGLEFAN: drawType = sw::DRAW_INDEXEDTRIANGLEFAN16; break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
}
else if(indexSize == 1)
@@ -326,10 +326,10 @@
case DRAW_TRIANGLELIST: drawType = sw::DRAW_INDEXEDTRIANGLELIST8; break;
case DRAW_TRIANGLESTRIP: drawType = sw::DRAW_INDEXEDTRIANGLESTRIP8; break;
case DRAW_TRIANGLEFAN: drawType = sw::DRAW_INDEXEDTRIANGLEFAN8; break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
}
- else UNREACHABLE();
+ else UNREACHABLE(indexSize);
draw(drawType, indexOffset, primitiveCount);
}
@@ -354,7 +354,7 @@
case DRAW_TRIANGLELIST: drawType = sw::DRAW_TRIANGLELIST; break;
case DRAW_TRIANGLESTRIP: drawType = sw::DRAW_TRIANGLESTRIP; break;
case DRAW_TRIANGLEFAN: drawType = sw::DRAW_TRIANGLEFAN; break;
- default: UNREACHABLE();
+ default: UNREACHABLE(primitiveType);
}
draw(drawType, 0, primitiveCount);
diff --git a/src/OpenGL/libGLESv2/Framebuffer.cpp b/src/OpenGL/libGLESv2/Framebuffer.cpp
index 451263d..2fe1320 100644
--- a/src/OpenGL/libGLESv2/Framebuffer.cpp
+++ b/src/OpenGL/libGLESv2/Framebuffer.cpp
@@ -59,10 +59,7 @@
{
buffer = context->getTexture(handle)->getRenderbuffer(type, level, layer);
}
- else
- {
- UNREACHABLE();
- }
+ else UNREACHABLE(type);
return buffer;
}
@@ -295,7 +292,7 @@
}
else
{
- UNREACHABLE();
+ UNREACHABLE(mColorbufferType[i]);
return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT;
}
@@ -338,7 +335,7 @@
}
else
{
- UNREACHABLE();
+ UNREACHABLE(mDepthbufferType);
return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT;
}
@@ -390,7 +387,7 @@
}
else
{
- UNREACHABLE();
+ UNREACHABLE(mStencilbufferType);
return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT;
}
@@ -444,7 +441,7 @@
case sw::FORMAT_A1R5G5B5: return GL_BGRA_EXT;
case sw::FORMAT_R5G6B5: return 0x80E0; // GL_BGR_EXT
default:
- UNREACHABLE();
+ UNREACHABLE(colorbuffer->getInternalFormat());
}
}
@@ -468,7 +465,7 @@
case sw::FORMAT_A1R5G5B5: return GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT;
case sw::FORMAT_R5G6B5: return GL_UNSIGNED_SHORT_5_6_5;
default:
- UNREACHABLE();
+ UNREACHABLE(colorbuffer->getInternalFormat());
}
}
diff --git a/src/OpenGL/libGLESv2/IndexDataManager.cpp b/src/OpenGL/libGLESv2/IndexDataManager.cpp
index 0bf93f0..f0da7be 100644
--- a/src/OpenGL/libGLESv2/IndexDataManager.cpp
+++ b/src/OpenGL/libGLESv2/IndexDataManager.cpp
@@ -57,7 +57,7 @@
{
memcpy(output, input, count * sizeof(GLushort));
}
- else UNREACHABLE();
+ else UNREACHABLE(type);
}
template<class IndexType>
@@ -87,7 +87,7 @@
{
computeRange(static_cast<const GLushort*>(indices), count, minIndex, maxIndex);
}
- else UNREACHABLE();
+ else UNREACHABLE(type);
}
GLenum IndexDataManager::prepareIndexData(GLenum type, GLuint start, GLuint end, GLsizei count, Buffer *buffer, const void *indices, TranslatedIndexData *translated)
@@ -107,7 +107,7 @@
case GL_UNSIGNED_BYTE: alignedOffset = (offset % sizeof(GLubyte) == 0); break;
case GL_UNSIGNED_SHORT: alignedOffset = (offset % sizeof(GLushort) == 0); break;
case GL_UNSIGNED_INT: alignedOffset = (offset % sizeof(GLuint) == 0); break;
- default: UNREACHABLE(); alignedOffset = false;
+ default: UNREACHABLE(type); alignedOffset = false;
}
if(typeSize(type) * count + offset > static_cast<std::size_t>(buffer->size()))
@@ -167,7 +167,7 @@
case GL_UNSIGNED_INT: return sizeof(GLuint);
case GL_UNSIGNED_SHORT: return sizeof(GLushort);
case GL_UNSIGNED_BYTE: return sizeof(GLubyte);
- default: UNREACHABLE(); return sizeof(GLushort);
+ default: UNREACHABLE(type); return sizeof(GLushort);
}
}
diff --git a/src/OpenGL/libGLESv2/Program.cpp b/src/OpenGL/libGLESv2/Program.cpp
index 50baf80..4f89f04 100644
--- a/src/OpenGL/libGLESv2/Program.cpp
+++ b/src/OpenGL/libGLESv2/Program.cpp
@@ -158,7 +158,7 @@
fragmentShader = (FragmentShader*)shader;
fragmentShader->addRef();
}
- else UNREACHABLE();
+ else UNREACHABLE(shader->getType());
return true;
}
@@ -185,7 +185,7 @@
fragmentShader->release();
fragmentShader = 0;
}
- else UNREACHABLE();
+ else UNREACHABLE(shader->getType());
return true;
}
@@ -264,7 +264,7 @@
logicalTextureUnit = samplersVS[samplerIndex].logicalTextureUnit;
}
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
if(logicalTextureUnit >= 0 && logicalTextureUnit < MAX_COMBINED_TEXTURE_IMAGE_UNITS)
@@ -288,7 +288,7 @@
ASSERT(samplerIndex < sizeof(samplersVS)/sizeof(samplersVS[0]));
ASSERT(samplersVS[samplerIndex].active);
return samplersVS[samplerIndex].textureType;
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
}
return TEXTURE_2D;
@@ -373,7 +373,7 @@
case GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:
*params = static_cast<GLint>(uniformBlock.isReferencedByFragmentShader());
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(pname);
}
}
@@ -873,7 +873,7 @@
switch (UniformComponentType(targetUniform->type))
{
- case GL_BOOL:
+ case GL_BOOL:
{
GLboolean *boolParams = (GLboolean*)targetUniform->data + uniformIndex[location].element * count;
@@ -883,11 +883,11 @@
}
}
break;
- case GL_FLOAT:
+ case GL_FLOAT:
memcpy(params, targetUniform->data + uniformIndex[location].element * count * sizeof(GLfloat),
count * sizeof(GLfloat));
break;
- case GL_INT:
+ case GL_INT:
{
GLint *intParams = (GLint*)targetUniform->data + uniformIndex[location].element * count;
@@ -897,7 +897,7 @@
}
}
break;
- case GL_UNSIGNED_INT:
+ case GL_UNSIGNED_INT:
{
GLuint *uintParams = (GLuint*)targetUniform->data + uniformIndex[location].element * count;
@@ -907,8 +907,7 @@
}
}
break;
-
- default: UNREACHABLE();
+ default: UNREACHABLE(targetUniform->type);
}
return true;
@@ -932,7 +931,7 @@
switch (UniformComponentType(targetUniform->type))
{
- case GL_BOOL:
+ case GL_BOOL:
{
GLboolean *boolParams = targetUniform->data + uniformIndex[location].element * count;
@@ -942,7 +941,7 @@
}
}
break;
- case GL_FLOAT:
+ case GL_FLOAT:
{
GLfloat *floatParams = (GLfloat*)targetUniform->data + uniformIndex[location].element * count;
@@ -952,12 +951,12 @@
}
}
break;
- case GL_INT:
- case GL_UNSIGNED_INT:
+ case GL_INT:
+ case GL_UNSIGNED_INT:
memcpy(params, targetUniform->data + uniformIndex[location].element * count * sizeof(GLint),
count * sizeof(GLint));
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(targetUniform->type);
}
return true;
@@ -1006,7 +1005,7 @@
memcpy(params, targetUniform->data + uniformIndex[location].element * count * sizeof(GLuint),
count * sizeof(GLuint));
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(targetUniform->type);
}
return true;
@@ -1044,37 +1043,37 @@
switch(targetUniform->type)
{
- case GL_BOOL: applyUniform1bv(location, size, b); break;
- case GL_BOOL_VEC2: applyUniform2bv(location, size, b); break;
- case GL_BOOL_VEC3: applyUniform3bv(location, size, b); break;
- case GL_BOOL_VEC4: applyUniform4bv(location, size, b); break;
- case GL_FLOAT: applyUniform1fv(location, size, f); break;
- case GL_FLOAT_VEC2: applyUniform2fv(location, size, f); break;
- case GL_FLOAT_VEC3: applyUniform3fv(location, size, f); break;
- case GL_FLOAT_VEC4: applyUniform4fv(location, size, f); break;
- case GL_FLOAT_MAT2: applyUniformMatrix2fv(location, size, f); break;
- case GL_FLOAT_MAT2x3: applyUniformMatrix2x3fv(location, size, f); break;
- case GL_FLOAT_MAT2x4: applyUniformMatrix2x4fv(location, size, f); break;
- case GL_FLOAT_MAT3x2: applyUniformMatrix3x2fv(location, size, f); break;
- case GL_FLOAT_MAT3: applyUniformMatrix3fv(location, size, f); break;
- case GL_FLOAT_MAT3x4: applyUniformMatrix3x4fv(location, size, f); break;
- case GL_FLOAT_MAT4x2: applyUniformMatrix4x2fv(location, size, f); break;
- case GL_FLOAT_MAT4x3: applyUniformMatrix4x3fv(location, size, f); break;
- case GL_FLOAT_MAT4: applyUniformMatrix4fv(location, size, f); break;
- case GL_SAMPLER_2D:
- case GL_SAMPLER_CUBE:
- case GL_SAMPLER_EXTERNAL_OES:
- case GL_SAMPLER_3D_OES:
- case GL_INT: applyUniform1iv(location, size, i); break;
- case GL_INT_VEC2: applyUniform2iv(location, size, i); break;
- case GL_INT_VEC3: applyUniform3iv(location, size, i); break;
- case GL_INT_VEC4: applyUniform4iv(location, size, i); break;
- case GL_UNSIGNED_INT: applyUniform1uiv(location, size, ui); break;
- case GL_UNSIGNED_INT_VEC2: applyUniform2uiv(location, size, ui); break;
- case GL_UNSIGNED_INT_VEC3: applyUniform3uiv(location, size, ui); break;
- case GL_UNSIGNED_INT_VEC4: applyUniform4uiv(location, size, ui); break;
- default:
- UNREACHABLE();
+ case GL_BOOL: applyUniform1bv(location, size, b); break;
+ case GL_BOOL_VEC2: applyUniform2bv(location, size, b); break;
+ case GL_BOOL_VEC3: applyUniform3bv(location, size, b); break;
+ case GL_BOOL_VEC4: applyUniform4bv(location, size, b); break;
+ case GL_FLOAT: applyUniform1fv(location, size, f); break;
+ case GL_FLOAT_VEC2: applyUniform2fv(location, size, f); break;
+ case GL_FLOAT_VEC3: applyUniform3fv(location, size, f); break;
+ case GL_FLOAT_VEC4: applyUniform4fv(location, size, f); break;
+ case GL_FLOAT_MAT2: applyUniformMatrix2fv(location, size, f); break;
+ case GL_FLOAT_MAT2x3: applyUniformMatrix2x3fv(location, size, f); break;
+ case GL_FLOAT_MAT2x4: applyUniformMatrix2x4fv(location, size, f); break;
+ case GL_FLOAT_MAT3x2: applyUniformMatrix3x2fv(location, size, f); break;
+ case GL_FLOAT_MAT3: applyUniformMatrix3fv(location, size, f); break;
+ case GL_FLOAT_MAT3x4: applyUniformMatrix3x4fv(location, size, f); break;
+ case GL_FLOAT_MAT4x2: applyUniformMatrix4x2fv(location, size, f); break;
+ case GL_FLOAT_MAT4x3: applyUniformMatrix4x3fv(location, size, f); break;
+ case GL_FLOAT_MAT4: applyUniformMatrix4fv(location, size, f); break;
+ case GL_SAMPLER_2D:
+ case GL_SAMPLER_CUBE:
+ case GL_SAMPLER_EXTERNAL_OES:
+ case GL_SAMPLER_3D_OES:
+ case GL_INT: applyUniform1iv(location, size, i); break;
+ case GL_INT_VEC2: applyUniform2iv(location, size, i); break;
+ case GL_INT_VEC3: applyUniform3iv(location, size, i); break;
+ case GL_INT_VEC4: applyUniform4iv(location, size, i); break;
+ case GL_UNSIGNED_INT: applyUniform1uiv(location, size, ui); break;
+ case GL_UNSIGNED_INT_VEC2: applyUniform2uiv(location, size, ui); break;
+ case GL_UNSIGNED_INT_VEC3: applyUniform3uiv(location, size, ui); break;
+ case GL_UNSIGNED_INT_VEC4: applyUniform4uiv(location, size, ui); break;
+ default:
+ UNREACHABLE(targetUniform->type);
}
targetUniform->dirty = false;
@@ -1328,7 +1327,7 @@
switch(type)
{
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
case GL_SAMPLER_2D: samplersVS[index].textureType = TEXTURE_2D; break;
case GL_SAMPLER_CUBE: samplersVS[index].textureType = TEXTURE_CUBE; break;
case GL_SAMPLER_3D_OES: samplersVS[index].textureType = TEXTURE_3D; break;
@@ -1351,7 +1350,7 @@
switch(type)
{
- default: UNREACHABLE();
+ default: UNREACHABLE(type);
case GL_SAMPLER_2D: samplersPS[index].textureType = TEXTURE_2D; break;
case GL_SAMPLER_CUBE: samplersPS[index].textureType = TEXTURE_CUBE; break;
case GL_SAMPLER_3D_OES: samplersPS[index].textureType = TEXTURE_3D; break;
@@ -1366,7 +1365,7 @@
return false;
}
}
- else UNREACHABLE();
+ else UNREACHABLE(shader);
index++;
}
@@ -1410,7 +1409,7 @@
{
uniform->psRegisterIndex = registerIndex;
}
- else UNREACHABLE();
+ else UNREACHABLE(shader);
if(location == -1) // Not previously defined
{
@@ -1439,7 +1438,7 @@
return false;
}
}
- else UNREACHABLE();
+ else UNREACHABLE(shader);
return true;
}
@@ -2526,7 +2525,7 @@
case GL_UNIFORM_MATRIX_STRIDE: return uniform.blockInfo.matrixStride;
case GL_UNIFORM_IS_ROW_MAJOR: return static_cast<GLint>(uniform.blockInfo.isRowMajorMatrix);
default:
- UNREACHABLE();
+ UNREACHABLE(pname);
break;
}
return 0;
diff --git a/src/OpenGL/libGLESv2/ResourceManager.cpp b/src/OpenGL/libGLESv2/ResourceManager.cpp
index e1b1af3..0964446 100644
--- a/src/OpenGL/libGLESv2/ResourceManager.cpp
+++ b/src/OpenGL/libGLESv2/ResourceManager.cpp
@@ -56,14 +56,14 @@
deleteTexture(mTextureMap.begin()->first);
}
- while(!mSamplerMap.empty())
- {
- deleteSampler(mSamplerMap.begin()->first);
- }
-
- while(!mFenceSyncMap.empty())
- {
- deleteFenceSync(mFenceSyncMap.begin()->first);
+ while(!mSamplerMap.empty())
+ {
+ deleteSampler(mSamplerMap.begin()->first);
+ }
+
+ while(!mFenceSyncMap.empty())
+ {
+ deleteFenceSync(mFenceSyncMap.begin()->first);
}
}
@@ -103,7 +103,7 @@
{
mShaderMap[handle] = new FragmentShader(this, handle);
}
- else UNREACHABLE();
+ else UNREACHABLE(type);
return handle;
}
@@ -138,24 +138,24 @@
return handle;
}
-// Returns an unused sampler name
-GLuint ResourceManager::createSampler()
-{
- GLuint handle = mSamplerHandleAllocator.allocate();
-
- mSamplerMap[handle] = NULL;
-
- return handle;
-}
-
-// Returns the next unused fence name, and allocates the fence
-GLuint ResourceManager::createFenceSync(GLenum condition, GLbitfield flags)
-{
- GLuint handle = mFenceSyncHandleAllocator.allocate();
-
- mFenceSyncMap[handle] = new FenceSync(handle, condition, flags);
-
- return handle;
+// Returns an unused sampler name
+GLuint ResourceManager::createSampler()
+{
+ GLuint handle = mSamplerHandleAllocator.allocate();
+
+ mSamplerMap[handle] = NULL;
+
+ return handle;
+}
+
+// Returns the next unused fence name, and allocates the fence
+GLuint ResourceManager::createFenceSync(GLenum condition, GLbitfield flags)
+{
+ GLuint handle = mFenceSyncHandleAllocator.allocate();
+
+ mFenceSyncMap[handle] = new FenceSync(handle, condition, flags);
+
+ return handle;
}
void ResourceManager::deleteBuffer(GLuint buffer)
@@ -232,28 +232,28 @@
}
}
-void ResourceManager::deleteSampler(GLuint sampler)
-{
- auto samplerObject = mSamplerMap.find(sampler);
-
- if(samplerObject != mSamplerMap.end())
- {
- mSamplerHandleAllocator.release(samplerObject->first);
- if(samplerObject->second) samplerObject->second->release();
- mSamplerMap.erase(samplerObject);
- }
-}
-
-void ResourceManager::deleteFenceSync(GLuint fenceSync)
-{
- auto fenceObjectIt = mFenceSyncMap.find(fenceSync);
-
- if(fenceObjectIt != mFenceSyncMap.end())
- {
- mFenceSyncHandleAllocator.release(fenceObjectIt->first);
- if(fenceObjectIt->second) fenceObjectIt->second->release();
- mFenceSyncMap.erase(fenceObjectIt);
- }
+void ResourceManager::deleteSampler(GLuint sampler)
+{
+ auto samplerObject = mSamplerMap.find(sampler);
+
+ if(samplerObject != mSamplerMap.end())
+ {
+ mSamplerHandleAllocator.release(samplerObject->first);
+ if(samplerObject->second) samplerObject->second->release();
+ mSamplerMap.erase(samplerObject);
+ }
+}
+
+void ResourceManager::deleteFenceSync(GLuint fenceSync)
+{
+ auto fenceObjectIt = mFenceSyncMap.find(fenceSync);
+
+ if(fenceObjectIt != mFenceSyncMap.end())
+ {
+ mFenceSyncHandleAllocator.release(fenceObjectIt->first);
+ if(fenceObjectIt->second) fenceObjectIt->second->release();
+ mFenceSyncMap.erase(fenceObjectIt);
+ }
}
Buffer *ResourceManager::getBuffer(unsigned int handle)
@@ -334,33 +334,33 @@
}
}
-Sampler *ResourceManager::getSampler(unsigned int handle)
-{
- auto sampler = mSamplerMap.find(handle);
-
- if(sampler == mSamplerMap.end())
- {
- return NULL;
- }
- else
- {
- return sampler->second;
- }
-}
-
-FenceSync *ResourceManager::getFenceSync(unsigned int handle)
-{
- auto fenceObjectIt = mFenceSyncMap.find(handle);
-
- if(fenceObjectIt == mFenceSyncMap.end())
- {
- return NULL;
- }
- else
- {
- return fenceObjectIt->second;
- }
-}
+Sampler *ResourceManager::getSampler(unsigned int handle)
+{
+ auto sampler = mSamplerMap.find(handle);
+
+ if(sampler == mSamplerMap.end())
+ {
+ return NULL;
+ }
+ else
+ {
+ return sampler->second;
+ }
+}
+
+FenceSync *ResourceManager::getFenceSync(unsigned int handle)
+{
+ auto fenceObjectIt = mFenceSyncMap.find(handle);
+
+ if(fenceObjectIt == mFenceSyncMap.end())
+ {
+ return NULL;
+ }
+ else
+ {
+ return fenceObjectIt->second;
+ }
+}
void ResourceManager::setRenderbuffer(GLuint handle, Renderbuffer *buffer)
{
@@ -405,7 +405,7 @@
}
else
{
- UNREACHABLE();
+ UNREACHABLE(type);
return;
}
@@ -414,20 +414,20 @@
}
}
-void ResourceManager::checkSamplerAllocation(GLuint sampler)
-{
- if(sampler != 0 && !getSampler(sampler))
- {
- Sampler *samplerObject = new Sampler(sampler);
- mSamplerMap[sampler] = samplerObject;
- samplerObject->addRef();
- // Samplers cannot be created via Bind
- }
-}
-
-bool ResourceManager::isSampler(GLuint sampler)
-{
- return mSamplerMap.find(sampler) != mSamplerMap.end();
+void ResourceManager::checkSamplerAllocation(GLuint sampler)
+{
+ if(sampler != 0 && !getSampler(sampler))
+ {
+ Sampler *samplerObject = new Sampler(sampler);
+ mSamplerMap[sampler] = samplerObject;
+ samplerObject->addRef();
+ // Samplers cannot be created via Bind
+ }
+}
+
+bool ResourceManager::isSampler(GLuint sampler)
+{
+ return mSamplerMap.find(sampler) != mSamplerMap.end();
}
}
diff --git a/src/OpenGL/libGLESv2/Shader.cpp b/src/OpenGL/libGLESv2/Shader.cpp
index 2e52e16..e8f6f1b 100644
--- a/src/OpenGL/libGLESv2/Shader.cpp
+++ b/src/OpenGL/libGLESv2/Shader.cpp
@@ -169,9 +169,9 @@
resources.MaxTextureImageUnits = MAX_TEXTURE_IMAGE_UNITS;
resources.MaxFragmentUniformVectors = MAX_FRAGMENT_UNIFORM_VECTORS;
resources.MaxDrawBuffers = MAX_DRAW_BUFFERS;
- resources.MaxVertexOutputVectors = MAX_VERTEX_OUTPUT_VECTORS;
- resources.MaxFragmentInputVectors = MAX_FRAGMENT_INPUT_VECTORS;
- resources.MinProgramTexelOffset = MIN_PROGRAM_TEXEL_OFFSET;
+ resources.MaxVertexOutputVectors = MAX_VERTEX_OUTPUT_VECTORS;
+ resources.MaxFragmentInputVectors = MAX_FRAGMENT_INPUT_VECTORS;
+ resources.MinProgramTexelOffset = MIN_PROGRAM_TEXEL_OFFSET;
resources.MaxProgramTexelOffset = MAX_PROGRAM_TEXEL_OFFSET;
resources.OES_standard_derivatives = 1;
resources.OES_fragment_precision_high = 1;
@@ -310,7 +310,7 @@
{
return GL_FLOAT_MAT4;
}
- else UNREACHABLE();
+ else UNREACHABLE(type);
return GL_NONE;
}
@@ -325,74 +325,74 @@
switch (x.type)
{
- case GL_FLOAT_MAT4: return true;
- case GL_FLOAT_MAT2:
+ case GL_FLOAT_MAT4: return true;
+ case GL_FLOAT_MAT2:
switch(y.type)
{
- case GL_FLOAT_MAT4: return false;
- case GL_FLOAT_MAT2: return true;
- case GL_FLOAT_VEC4: return true;
- case GL_FLOAT_MAT3: return true;
- case GL_FLOAT_VEC3: return true;
- case GL_FLOAT_VEC2: return true;
- case GL_FLOAT: return true;
- default: UNREACHABLE();
+ case GL_FLOAT_MAT4: return false;
+ case GL_FLOAT_MAT2: return true;
+ case GL_FLOAT_VEC4: return true;
+ case GL_FLOAT_MAT3: return true;
+ case GL_FLOAT_VEC3: return true;
+ case GL_FLOAT_VEC2: return true;
+ case GL_FLOAT: return true;
+ default: UNREACHABLE(y.type);
}
break;
- case GL_FLOAT_VEC4:
+ case GL_FLOAT_VEC4:
switch(y.type)
{
- case GL_FLOAT_MAT4: return false;
- case GL_FLOAT_MAT2: return false;
- case GL_FLOAT_VEC4: return true;
- case GL_FLOAT_MAT3: return true;
- case GL_FLOAT_VEC3: return true;
- case GL_FLOAT_VEC2: return true;
- case GL_FLOAT: return true;
- default: UNREACHABLE();
+ case GL_FLOAT_MAT4: return false;
+ case GL_FLOAT_MAT2: return false;
+ case GL_FLOAT_VEC4: return true;
+ case GL_FLOAT_MAT3: return true;
+ case GL_FLOAT_VEC3: return true;
+ case GL_FLOAT_VEC2: return true;
+ case GL_FLOAT: return true;
+ default: UNREACHABLE(y.type);
}
break;
- case GL_FLOAT_MAT3:
+ case GL_FLOAT_MAT3:
switch(y.type)
{
- case GL_FLOAT_MAT4: return false;
- case GL_FLOAT_MAT2: return false;
- case GL_FLOAT_VEC4: return false;
- case GL_FLOAT_MAT3: return true;
- case GL_FLOAT_VEC3: return true;
- case GL_FLOAT_VEC2: return true;
- case GL_FLOAT: return true;
- default: UNREACHABLE();
+ case GL_FLOAT_MAT4: return false;
+ case GL_FLOAT_MAT2: return false;
+ case GL_FLOAT_VEC4: return false;
+ case GL_FLOAT_MAT3: return true;
+ case GL_FLOAT_VEC3: return true;
+ case GL_FLOAT_VEC2: return true;
+ case GL_FLOAT: return true;
+ default: UNREACHABLE(y.type);
}
break;
- case GL_FLOAT_VEC3:
+ case GL_FLOAT_VEC3:
switch(y.type)
{
- case GL_FLOAT_MAT4: return false;
- case GL_FLOAT_MAT2: return false;
- case GL_FLOAT_VEC4: return false;
- case GL_FLOAT_MAT3: return false;
- case GL_FLOAT_VEC3: return true;
- case GL_FLOAT_VEC2: return true;
- case GL_FLOAT: return true;
- default: UNREACHABLE();
+ case GL_FLOAT_MAT4: return false;
+ case GL_FLOAT_MAT2: return false;
+ case GL_FLOAT_VEC4: return false;
+ case GL_FLOAT_MAT3: return false;
+ case GL_FLOAT_VEC3: return true;
+ case GL_FLOAT_VEC2: return true;
+ case GL_FLOAT: return true;
+ default: UNREACHABLE(y.type);
}
break;
- case GL_FLOAT_VEC2:
+ case GL_FLOAT_VEC2:
switch(y.type)
{
- case GL_FLOAT_MAT4: return false;
- case GL_FLOAT_MAT2: return false;
- case GL_FLOAT_VEC4: return false;
- case GL_FLOAT_MAT3: return false;
- case GL_FLOAT_VEC3: return false;
- case GL_FLOAT_VEC2: return true;
- case GL_FLOAT: return true;
- default: UNREACHABLE();
+ case GL_FLOAT_MAT4: return false;
+ case GL_FLOAT_MAT2: return false;
+ case GL_FLOAT_VEC4: return false;
+ case GL_FLOAT_MAT3: return false;
+ case GL_FLOAT_VEC3: return false;
+ case GL_FLOAT_VEC2: return true;
+ case GL_FLOAT: return true;
+ default: UNREACHABLE(y.type);
}
break;
- case GL_FLOAT: return false;
- default: UNREACHABLE();
+ case GL_FLOAT: return false;
+ default: UNREACHABLE(x.type);
}
return false;
diff --git a/src/OpenGL/libGLESv2/Texture.cpp b/src/OpenGL/libGLESv2/Texture.cpp
index 8705ff5..6c218fc 100644
--- a/src/OpenGL/libGLESv2/Texture.cpp
+++ b/src/OpenGL/libGLESv2/Texture.cpp
@@ -494,7 +494,7 @@
case GL_NEAREST_MIPMAP_LINEAR:
case GL_LINEAR_MIPMAP_LINEAR:
return true;
- default: UNREACHABLE();
+ default: UNREACHABLE(mMinFilter);
}
return false;
@@ -1203,7 +1203,7 @@
void TextureCubeMap::releaseTexImage()
{
- UNREACHABLE(); // Cube maps cannot have an EGL surface bound as an image
+ UNREACHABLE(0); // Cube maps cannot have an EGL surface bound as an image
}
void TextureCubeMap::setImage(GLenum target, GLint level, GLsizei width, GLsizei height, GLenum format, GLenum type, const egl::Image::UnpackInfo& unpackInfo, const void *pixels)
@@ -1925,7 +1925,7 @@
lockable = true;
break;
default:
- UNREACHABLE();
+ UNREACHABLE(format);
}
egl::Image *surface = new egl::Image(width, height, format, multiSampleDepth, lockable, true);
diff --git a/src/OpenGL/libGLESv2/VertexDataManager.cpp b/src/OpenGL/libGLESv2/VertexDataManager.cpp
index 6729c20..7bda77f 100644
--- a/src/OpenGL/libGLESv2/VertexDataManager.cpp
+++ b/src/OpenGL/libGLESv2/VertexDataManager.cpp
@@ -189,7 +189,7 @@
case GL_UNSIGNED_SHORT: translated[i].type = sw::STREAMTYPE_USHORT; break;
case GL_FIXED: translated[i].type = sw::STREAMTYPE_FIXED; break;
case GL_FLOAT: translated[i].type = sw::STREAMTYPE_FLOAT; break;
- default: UNREACHABLE(); translated[i].type = sw::STREAMTYPE_FLOAT; break;
+ default: UNREACHABLE(attrib.mType); translated[i].type = sw::STREAMTYPE_FLOAT; break;
}
translated[i].count = attrib.mSize;
diff --git a/src/OpenGL/libGLESv2/libGLESv2.cpp b/src/OpenGL/libGLESv2/libGLESv2.cpp
index e7b1156..9ffd42a 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv2.cpp
@@ -1097,7 +1097,7 @@
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
texture->setCompressedImage(target, level, internalformat, width, height, imageSize, data);
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(target);
}
}
}
@@ -1198,10 +1198,7 @@
texture->subImageCompressed(target, level, xoffset, yoffset, width, height, format, imageSize, data);
}
}
- else
- {
- UNREACHABLE();
- }
+ else UNREACHABLE(target);
}
}
@@ -1298,7 +1295,7 @@
texture->copyImage(target, level, internalformat, x, y, width, height, framebuffer);
}
- else UNREACHABLE();
+ else UNREACHABLE(target);
}
}
@@ -1361,7 +1358,7 @@
{
texture = context->getTextureCubeMap();
}
- else UNREACHABLE();
+ else UNREACHABLE(target);
if(!validateSubImageParams(false, width, height, xoffset, yoffset, target, level, GL_NONE, texture))
{
@@ -2997,7 +2994,7 @@
{
attachmentObjectType = GL_TEXTURE;
}
- else UNREACHABLE();
+ else UNREACHABLE(attachmentType);
switch(pname)
{
@@ -6105,10 +6102,7 @@
texture->subImage(target, level, xoffset, yoffset, width, height, format, type, context->getUnpackInfo(), pixels);
}
}
- else
- {
- UNREACHABLE();
- }
+ else UNREACHABLE(target);
}
}
@@ -7289,7 +7283,7 @@
{
case GL_TEXTURE_2D: texture = context->getTexture2D(); break;
case GL_TEXTURE_EXTERNAL_OES: texture = context->getTextureExternal(); break;
- default: UNREACHABLE();
+ default: UNREACHABLE(target);
}
if(!texture)
diff --git a/src/OpenGL/libGLESv2/main.cpp b/src/OpenGL/libGLESv2/main.cpp
index 0b2f4cf..3936852 100644
--- a/src/OpenGL/libGLESv2/main.cpp
+++ b/src/OpenGL/libGLESv2/main.cpp
@@ -135,7 +135,7 @@
context->recordInvalidFramebufferOperation();
TRACE("\t! Error generated: invalid framebuffer operation\n");
break;
- default: UNREACHABLE();
+ default: UNREACHABLE(errorCode);
}
}
}
diff --git a/src/OpenGL/libGLESv2/utilities.cpp b/src/OpenGL/libGLESv2/utilities.cpp
index 71565b1..a60efea 100644
--- a/src/OpenGL/libGLESv2/utilities.cpp
+++ b/src/OpenGL/libGLESv2/utilities.cpp
@@ -65,7 +65,7 @@
case GL_FLOAT_MAT4:
return 16;
default:
- UNREACHABLE();
+ UNREACHABLE(type);
}
return 0;
@@ -109,7 +109,7 @@
case GL_UNSIGNED_INT_VEC4:
return GL_UNSIGNED_INT;
default:
- UNREACHABLE();
+ UNREACHABLE(type);
}
return GL_NONE;
@@ -168,7 +168,7 @@
case GL_FLOAT_MAT3x4:
return 4;
default:
- UNREACHABLE();
+ UNREACHABLE(type);
}
return 0;
@@ -210,7 +210,7 @@
case GL_FLOAT_MAT4x3:
return 4;
default:
- UNREACHABLE();
+ UNREACHABLE(type);
}
return 0;
@@ -288,7 +288,7 @@
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: return 3;
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: return 4;
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: return 5;
- default: UNREACHABLE(); return 0;
+ default: UNREACHABLE(cubeFace); return 0;
}
}
@@ -534,7 +534,7 @@
case GL_GREATER: return sw::DEPTH_GREATER;
case GL_GEQUAL: return sw::DEPTH_GREATEREQUAL;
case GL_NOTEQUAL: return sw::DEPTH_NOTEQUAL;
- default: UNREACHABLE();
+ default: UNREACHABLE(comparison);
}
return sw::DEPTH_ALWAYS;
@@ -552,7 +552,7 @@
case GL_GREATER: return sw::STENCIL_GREATER;
case GL_GEQUAL: return sw::STENCIL_GREATEREQUAL;
case GL_NOTEQUAL: return sw::STENCIL_NOTEQUAL;
- default: UNREACHABLE();
+ default: UNREACHABLE(comparison);
}
return sw::STENCIL_ALWAYS;
@@ -582,7 +582,7 @@
case GL_CONSTANT_ALPHA: return sw::BLEND_CONSTANTALPHA;
case GL_ONE_MINUS_CONSTANT_ALPHA: return sw::BLEND_INVCONSTANTALPHA;
case GL_SRC_ALPHA_SATURATE: return sw::BLEND_SRCALPHASAT;
- default: UNREACHABLE();
+ default: UNREACHABLE(blend);
}
return sw::BLEND_ZERO;
@@ -597,7 +597,7 @@
case GL_FUNC_REVERSE_SUBTRACT: return sw::BLENDOP_INVSUB;
case GL_MIN_EXT: return sw::BLENDOP_MIN;
case GL_MAX_EXT: return sw::BLENDOP_MAX;
- default: UNREACHABLE();
+ default: UNREACHABLE(blendOp);
}
return sw::BLENDOP_ADD;
@@ -615,7 +615,7 @@
case GL_INVERT: return sw::OPERATION_INVERT;
case GL_INCR_WRAP: return sw::OPERATION_INCR;
case GL_DECR_WRAP: return sw::OPERATION_DECR;
- default: UNREACHABLE();
+ default: UNREACHABLE(stencilOp);
}
return sw::OPERATION_KEEP;
@@ -628,7 +628,7 @@
case GL_REPEAT: return sw::ADDRESSING_WRAP;
case GL_CLAMP_TO_EDGE: return sw::ADDRESSING_CLAMP;
case GL_MIRRORED_REPEAT: return sw::ADDRESSING_MIRROR;
- default: UNREACHABLE();
+ default: UNREACHABLE(wrap);
}
return sw::ADDRESSING_WRAP;
@@ -644,7 +644,7 @@
return (frontFace == GL_CCW ? sw::CULL_COUNTERCLOCKWISE : sw::CULL_CLOCKWISE);
case GL_FRONT_AND_BACK:
return sw::CULL_NONE; // culling will be handled during draw
- default: UNREACHABLE();
+ default: UNREACHABLE(cullFace);
}
return sw::CULL_COUNTERCLOCKWISE;
@@ -664,7 +664,7 @@
{
case GL_NEAREST: return sw::FILTER_POINT;
case GL_LINEAR: return sw::FILTER_LINEAR;
- default: UNREACHABLE();
+ default: UNREACHABLE(magFilter);
}
return sw::FILTER_POINT;
@@ -701,7 +701,7 @@
default:
*minFilter = sw::FILTER_POINT;
*mipFilter = sw::MIPMAP_NONE;
- UNREACHABLE();
+ UNREACHABLE(texFilter);
}
if(maxAnisotropy > 1.0f)
@@ -761,7 +761,7 @@
case GL_DEPTH_COMPONENT16:
case GL_STENCIL_INDEX8:
case GL_DEPTH24_STENCIL8_OES: return sw::FORMAT_D24S8;
- default: UNREACHABLE(); return sw::FORMAT_A8B8G8R8;
+ default: UNREACHABLE(format); return sw::FORMAT_A8B8G8R8;
}
}
}
@@ -919,7 +919,7 @@
case sw::FORMAT_X8R8G8B8: return GL_RGB8_OES;
case sw::FORMAT_X8B8G8R8: return GL_RGB8_OES;
default:
- UNREACHABLE();
+ UNREACHABLE(format);
}
return GL_RGBA4;
@@ -936,7 +936,7 @@
case sw::FORMAT_D24S8:
return GL_DEPTH24_STENCIL8_OES;
default:
- UNREACHABLE();
+ UNREACHABLE(format);
}
return GL_DEPTH24_STENCIL8_OES;