diff --git a/src/Nazara/Core/Log.cpp b/src/Nazara/Core/Log.cpp index e06532506..30e9f5323 100644 --- a/src/Nazara/Core/Log.cpp +++ b/src/Nazara/Core/Log.cpp @@ -24,6 +24,8 @@ namespace "Error: ", // nzErrorType_Normal "Warning: " // nzErrorType_Warning }; + + static_assert(sizeof(errorType)/sizeof(const char*) == nzErrorType_Max+1, "Error type array is incomplete"); } NzLog::NzLog() : diff --git a/src/Nazara/Renderer/OpenGL.cpp b/src/Nazara/Renderer/OpenGL.cpp index b2eaff115..97f206401 100644 --- a/src/Nazara/Renderer/OpenGL.cpp +++ b/src/Nazara/Renderer/OpenGL.cpp @@ -1229,6 +1229,8 @@ GLenum NzOpenGL::Attachment[nzAttachmentPoint_Max+1] = GL_STENCIL_ATTACHMENT // nzAttachmentPoint_Stencil }; +static_assert(sizeof(NzOpenGL::Attachment)/sizeof(GLenum) == nzAttachmentPoint_Max+1, "Attachment array is incomplete"); + nzUInt8 NzOpenGL::AttributeIndex[nzAttributeUsage_Max+1] = { 10, // nzAttributeUsage_InstanceData0 @@ -1249,6 +1251,8 @@ nzUInt8 NzOpenGL::AttributeIndex[nzAttributeUsage_Max+1] = 9 // nzAttributeUsage_Userdata5 }; +static_assert(sizeof(NzOpenGL::AttributeIndex)/sizeof(nzUInt8) == nzAttributeUsage_Max+1, "Attribute index array is incomplete"); + GLenum NzOpenGL::AttributeType[nzAttributeType_Max+1] = { GL_UNSIGNED_BYTE, // nzAttributeType_Color @@ -1262,6 +1266,8 @@ GLenum NzOpenGL::AttributeType[nzAttributeType_Max+1] = GL_FLOAT // nzAttributeType_Float4 }; +static_assert(sizeof(NzOpenGL::AttributeType)/sizeof(GLenum) == nzAttributeType_Max+1, "Attribute type array is incomplete"); + GLenum NzOpenGL::BlendFunc[nzBlendFunc_Max+1] = { GL_DST_ALPHA, // nzBlendFunc_DestAlpha @@ -1276,6 +1282,8 @@ GLenum NzOpenGL::BlendFunc[nzBlendFunc_Max+1] = GL_ZERO // nzBlendFunc_Zero }; +static_assert(sizeof(NzOpenGL::BlendFunc)/sizeof(GLenum) == nzBlendFunc_Max+1, "Blend func array is incomplete"); + GLenum NzOpenGL::BufferLock[nzBufferAccess_Max+1] = { GL_WRITE_ONLY, // nzBufferAccess_DiscardAndWrite @@ -1284,6 +1292,8 @@ GLenum NzOpenGL::BufferLock[nzBufferAccess_Max+1] = GL_WRITE_ONLY // nzBufferAccess_WriteOnly }; +static_assert(sizeof(NzOpenGL::BufferLock)/sizeof(GLenum) == nzBufferAccess_Max+1, "Buffer lock array is incomplete"); + GLenum NzOpenGL::BufferLockRange[nzBufferAccess_Max+1] = { GL_MAP_INVALIDATE_BUFFER_BIT | GL_MAP_WRITE_BIT, // nzBufferAccess_DiscardAndWrite @@ -1292,18 +1302,24 @@ GLenum NzOpenGL::BufferLockRange[nzBufferAccess_Max+1] = GL_MAP_WRITE_BIT // nzBufferAccess_WriteOnly }; +static_assert(sizeof(NzOpenGL::BufferLockRange)/sizeof(GLenum) == nzBufferAccess_Max+1, "Buffer lock range array is incomplete"); + GLenum NzOpenGL::BufferTarget[nzBufferType_Max+1] = { GL_ELEMENT_ARRAY_BUFFER, // nzBufferType_Index, GL_ARRAY_BUFFER, // nzBufferType_Vertex }; +static_assert(sizeof(NzOpenGL::BufferTarget)/sizeof(GLenum) == nzBufferType_Max+1, "Buffer target array is incomplete"); + GLenum NzOpenGL::BufferTargetBinding[nzBufferType_Max+1] = { GL_ELEMENT_ARRAY_BUFFER_BINDING, // nzBufferType_Index, GL_ARRAY_BUFFER_BINDING, // nzBufferType_Vertex }; +static_assert(sizeof(NzOpenGL::BufferTargetBinding)/sizeof(GLenum) == nzBufferType_Max+1, "Buffer target binding array is incomplete"); + GLenum NzOpenGL::BufferUsage[nzBufferUsage_Max+1] = { // J'ai choisi DYNAMIC à la place de STREAM car DYNAMIC semble plus adapté au profil "une mise à jour pour quelques rendus" @@ -1313,6 +1329,8 @@ GLenum NzOpenGL::BufferUsage[nzBufferUsage_Max+1] = GL_STATIC_DRAW // nzBufferUsage_Static }; +static_assert(sizeof(NzOpenGL::BufferUsage)/sizeof(GLenum) == nzBufferUsage_Max+1, "Buffer usage array is incomplete"); + GLenum NzOpenGL::CubemapFace[6] = { GL_TEXTURE_CUBE_MAP_POSITIVE_X, // nzCubemapFace_PositiveX @@ -1323,6 +1341,8 @@ GLenum NzOpenGL::CubemapFace[6] = GL_TEXTURE_CUBE_MAP_NEGATIVE_Z // nzCubemapFace_NegativeZ }; +static_assert(sizeof(NzOpenGL::CubemapFace)/sizeof(GLenum) == 6, "Cubemap face array is incomplete"); + GLenum NzOpenGL::FaceCulling[nzFaceCulling_Max+1] = { GL_BACK, // nzFaceCulling_Back @@ -1330,6 +1350,8 @@ GLenum NzOpenGL::FaceCulling[nzFaceCulling_Max+1] = GL_FRONT_AND_BACK // nzFaceCulling_FrontAndBack }; +static_assert(sizeof(NzOpenGL::FaceCulling)/sizeof(GLenum) == nzFaceCulling_Max+1, "Face culling array is incomplete"); + GLenum NzOpenGL::FaceFilling[nzFaceFilling_Max+1] = { GL_POINT, // nzFaceFilling_Point @@ -1337,6 +1359,8 @@ GLenum NzOpenGL::FaceFilling[nzFaceFilling_Max+1] = GL_FILL // nzFaceFilling_Fill }; +static_assert(sizeof(NzOpenGL::FaceFilling)/sizeof(GLenum) == nzFaceFilling_Max+1, "Face filling array is incomplete"); + GLenum NzOpenGL::PrimitiveMode[nzPrimitiveMode_Max+1] = { GL_LINES, // nzPrimitiveMode_LineList @@ -1347,6 +1371,8 @@ GLenum NzOpenGL::PrimitiveMode[nzPrimitiveMode_Max+1] = GL_TRIANGLE_FAN // nzPrimitiveMode_TriangleFan }; +static_assert(sizeof(NzOpenGL::PrimitiveMode)/sizeof(GLenum) == nzPrimitiveMode_Max+1, "Primitive mode array is incomplete"); + GLenum NzOpenGL::RendererComparison[nzRendererComparison_Max+1] = { GL_ALWAYS, // nzRendererComparison_Always @@ -1358,6 +1384,8 @@ GLenum NzOpenGL::RendererComparison[nzRendererComparison_Max+1] = GL_NEVER // nzRendererComparison_Never }; +static_assert(sizeof(NzOpenGL::RendererComparison)/sizeof(GLenum) == nzRendererComparison_Max+1, "Renderer comparison array is incomplete"); + GLenum NzOpenGL::RendererParameter[nzRendererParameter_Max+1] = { GL_BLEND, // nzRendererParameter_Blend @@ -1369,6 +1397,8 @@ GLenum NzOpenGL::RendererParameter[nzRendererParameter_Max+1] = GL_STENCIL_TEST // nzRendererParameter_StencilTest }; +static_assert(sizeof(NzOpenGL::RendererParameter)/sizeof(GLenum) == nzRendererParameter_Max+1, "Renderer parameter array is incomplete"); + GLenum NzOpenGL::SamplerWrapMode[nzSamplerWrap_Max+1] = { GL_CLAMP_TO_EDGE, // nzTextureWrap_Clamp @@ -1376,6 +1406,8 @@ GLenum NzOpenGL::SamplerWrapMode[nzSamplerWrap_Max+1] = GL_REPEAT // nzTextureWrap_Repeat }; +static_assert(sizeof(NzOpenGL::SamplerWrapMode)/sizeof(GLenum) == nzSamplerWrap_Max+1, "Sampler wrap mode array is incomplete"); + GLenum NzOpenGL::ShaderType[nzShaderType_Max+1] = { GL_FRAGMENT_SHADER, // nzShaderType_Fragment @@ -1383,6 +1415,8 @@ GLenum NzOpenGL::ShaderType[nzShaderType_Max+1] = GL_VERTEX_SHADER // nzShaderType_Vertex }; +static_assert(sizeof(NzOpenGL::ShaderType)/sizeof(GLenum) == nzShaderType_Max+1, "Shader type array is incomplete"); + GLenum NzOpenGL::StencilOperation[nzStencilOperation_Max+1] = { GL_DECR, // nzStencilOperation_Decrement @@ -1395,6 +1429,8 @@ GLenum NzOpenGL::StencilOperation[nzStencilOperation_Max+1] = GL_ZERO // nzStencilOperation_Zero }; +static_assert(sizeof(NzOpenGL::StencilOperation)/sizeof(GLenum) == nzStencilOperation_Max+1, "Stencil operation array is incomplete"); + GLenum NzOpenGL::TextureTarget[nzImageType_Max+1] = { GL_TEXTURE_1D, // nzImageType_1D @@ -1405,6 +1441,8 @@ GLenum NzOpenGL::TextureTarget[nzImageType_Max+1] = GL_TEXTURE_CUBE_MAP // nzImageType_Cubemap }; +static_assert(sizeof(NzOpenGL::TextureTarget)/sizeof(GLenum) == nzImageType_Max+1, "Texture target array is incomplete"); + GLenum NzOpenGL::TextureTargetBinding[nzImageType_Max+1] = { GL_TEXTURE_BINDING_1D, // nzImageType_1D @@ -1415,6 +1453,8 @@ GLenum NzOpenGL::TextureTargetBinding[nzImageType_Max+1] = GL_TEXTURE_BINDING_CUBE_MAP // nzImageType_Cubemap }; +static_assert(sizeof(NzOpenGL::TextureTargetBinding)/sizeof(GLenum) == nzImageType_Max+1, "Texture target binding array is incomplete"); + GLenum NzOpenGL::TextureTargetProxy[nzImageType_Max+1] = { GL_PROXY_TEXTURE_1D, // nzImageType_1D @@ -1425,6 +1465,8 @@ GLenum NzOpenGL::TextureTargetProxy[nzImageType_Max+1] = GL_PROXY_TEXTURE_CUBE_MAP // nzImageType_Cubemap }; +static_assert(sizeof(NzOpenGL::TextureTargetProxy)/sizeof(GLenum) == nzImageType_Max+1, "Texture target proxy array is incomplete"); + PFNGLACTIVETEXTUREPROC glActiveTexture = nullptr; PFNGLATTACHSHADERPROC glAttachShader = nullptr; PFNGLBEGINQUERYPROC glBeginQuery = nullptr; diff --git a/src/Nazara/Utility/VertexDeclaration.cpp b/src/Nazara/Utility/VertexDeclaration.cpp index 61b8caa9a..62feb9bff 100644 --- a/src/Nazara/Utility/VertexDeclaration.cpp +++ b/src/Nazara/Utility/VertexDeclaration.cpp @@ -23,6 +23,8 @@ namespace 4 // nzAttributeType_Float4 }; + static_assert(sizeof(attributeSize)/sizeof(unsigned int) == nzAttributeType_Max+1, "Attribute size array is incomplete"); + unsigned int attributeStride[nzAttributeType_Max+1] = { 4*sizeof(nzUInt8), // nzAttributeType_Color @@ -35,6 +37,8 @@ namespace 3*sizeof(float), // nzAttributeType_Float3 4*sizeof(float) // nzAttributeType_Float4 }; + + static_assert(sizeof(attributeStride)/sizeof(unsigned int) == nzAttributeType_Max+1, "Attribute stride array is incomplete"); } NzVertexDeclaration::NzVertexDeclaration() :