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/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;