Added static assertions to secure code
Former-commit-id: 207f1135b3b40cee74fbf8ba98e6fb7379ba8c33
This commit is contained in:
parent
19e02a900b
commit
1ebaf4749c
|
|
@ -24,6 +24,8 @@ namespace
|
||||||
"Error: ", // nzErrorType_Normal
|
"Error: ", // nzErrorType_Normal
|
||||||
"Warning: " // nzErrorType_Warning
|
"Warning: " // nzErrorType_Warning
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static_assert(sizeof(errorType)/sizeof(const char*) == nzErrorType_Max+1, "Error type array is incomplete");
|
||||||
}
|
}
|
||||||
|
|
||||||
NzLog::NzLog() :
|
NzLog::NzLog() :
|
||||||
|
|
|
||||||
|
|
@ -1229,6 +1229,8 @@ GLenum NzOpenGL::Attachment[nzAttachmentPoint_Max+1] =
|
||||||
GL_STENCIL_ATTACHMENT // nzAttachmentPoint_Stencil
|
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] =
|
nzUInt8 NzOpenGL::AttributeIndex[nzAttributeUsage_Max+1] =
|
||||||
{
|
{
|
||||||
10, // nzAttributeUsage_InstanceData0
|
10, // nzAttributeUsage_InstanceData0
|
||||||
|
|
@ -1249,6 +1251,8 @@ nzUInt8 NzOpenGL::AttributeIndex[nzAttributeUsage_Max+1] =
|
||||||
9 // nzAttributeUsage_Userdata5
|
9 // nzAttributeUsage_Userdata5
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static_assert(sizeof(NzOpenGL::AttributeIndex)/sizeof(nzUInt8) == nzAttributeUsage_Max+1, "Attribute index array is incomplete");
|
||||||
|
|
||||||
GLenum NzOpenGL::AttributeType[nzAttributeType_Max+1] =
|
GLenum NzOpenGL::AttributeType[nzAttributeType_Max+1] =
|
||||||
{
|
{
|
||||||
GL_UNSIGNED_BYTE, // nzAttributeType_Color
|
GL_UNSIGNED_BYTE, // nzAttributeType_Color
|
||||||
|
|
@ -1262,6 +1266,8 @@ GLenum NzOpenGL::AttributeType[nzAttributeType_Max+1] =
|
||||||
GL_FLOAT // nzAttributeType_Float4
|
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] =
|
GLenum NzOpenGL::BlendFunc[nzBlendFunc_Max+1] =
|
||||||
{
|
{
|
||||||
GL_DST_ALPHA, // nzBlendFunc_DestAlpha
|
GL_DST_ALPHA, // nzBlendFunc_DestAlpha
|
||||||
|
|
@ -1276,6 +1282,8 @@ GLenum NzOpenGL::BlendFunc[nzBlendFunc_Max+1] =
|
||||||
GL_ZERO // nzBlendFunc_Zero
|
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] =
|
GLenum NzOpenGL::BufferLock[nzBufferAccess_Max+1] =
|
||||||
{
|
{
|
||||||
GL_WRITE_ONLY, // nzBufferAccess_DiscardAndWrite
|
GL_WRITE_ONLY, // nzBufferAccess_DiscardAndWrite
|
||||||
|
|
@ -1284,6 +1292,8 @@ GLenum NzOpenGL::BufferLock[nzBufferAccess_Max+1] =
|
||||||
GL_WRITE_ONLY // nzBufferAccess_WriteOnly
|
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] =
|
GLenum NzOpenGL::BufferLockRange[nzBufferAccess_Max+1] =
|
||||||
{
|
{
|
||||||
GL_MAP_INVALIDATE_BUFFER_BIT | GL_MAP_WRITE_BIT, // nzBufferAccess_DiscardAndWrite
|
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
|
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] =
|
GLenum NzOpenGL::BufferTarget[nzBufferType_Max+1] =
|
||||||
{
|
{
|
||||||
GL_ELEMENT_ARRAY_BUFFER, // nzBufferType_Index,
|
GL_ELEMENT_ARRAY_BUFFER, // nzBufferType_Index,
|
||||||
GL_ARRAY_BUFFER, // nzBufferType_Vertex
|
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] =
|
GLenum NzOpenGL::BufferTargetBinding[nzBufferType_Max+1] =
|
||||||
{
|
{
|
||||||
GL_ELEMENT_ARRAY_BUFFER_BINDING, // nzBufferType_Index,
|
GL_ELEMENT_ARRAY_BUFFER_BINDING, // nzBufferType_Index,
|
||||||
GL_ARRAY_BUFFER_BINDING, // nzBufferType_Vertex
|
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] =
|
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"
|
// 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
|
GL_STATIC_DRAW // nzBufferUsage_Static
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static_assert(sizeof(NzOpenGL::BufferUsage)/sizeof(GLenum) == nzBufferUsage_Max+1, "Buffer usage array is incomplete");
|
||||||
|
|
||||||
GLenum NzOpenGL::CubemapFace[6] =
|
GLenum NzOpenGL::CubemapFace[6] =
|
||||||
{
|
{
|
||||||
GL_TEXTURE_CUBE_MAP_POSITIVE_X, // nzCubemapFace_PositiveX
|
GL_TEXTURE_CUBE_MAP_POSITIVE_X, // nzCubemapFace_PositiveX
|
||||||
|
|
@ -1323,6 +1341,8 @@ GLenum NzOpenGL::CubemapFace[6] =
|
||||||
GL_TEXTURE_CUBE_MAP_NEGATIVE_Z // nzCubemapFace_NegativeZ
|
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] =
|
GLenum NzOpenGL::FaceCulling[nzFaceCulling_Max+1] =
|
||||||
{
|
{
|
||||||
GL_BACK, // nzFaceCulling_Back
|
GL_BACK, // nzFaceCulling_Back
|
||||||
|
|
@ -1330,6 +1350,8 @@ GLenum NzOpenGL::FaceCulling[nzFaceCulling_Max+1] =
|
||||||
GL_FRONT_AND_BACK // nzFaceCulling_FrontAndBack
|
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] =
|
GLenum NzOpenGL::FaceFilling[nzFaceFilling_Max+1] =
|
||||||
{
|
{
|
||||||
GL_POINT, // nzFaceFilling_Point
|
GL_POINT, // nzFaceFilling_Point
|
||||||
|
|
@ -1337,6 +1359,8 @@ GLenum NzOpenGL::FaceFilling[nzFaceFilling_Max+1] =
|
||||||
GL_FILL // nzFaceFilling_Fill
|
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] =
|
GLenum NzOpenGL::PrimitiveMode[nzPrimitiveMode_Max+1] =
|
||||||
{
|
{
|
||||||
GL_LINES, // nzPrimitiveMode_LineList
|
GL_LINES, // nzPrimitiveMode_LineList
|
||||||
|
|
@ -1347,6 +1371,8 @@ GLenum NzOpenGL::PrimitiveMode[nzPrimitiveMode_Max+1] =
|
||||||
GL_TRIANGLE_FAN // nzPrimitiveMode_TriangleFan
|
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] =
|
GLenum NzOpenGL::RendererComparison[nzRendererComparison_Max+1] =
|
||||||
{
|
{
|
||||||
GL_ALWAYS, // nzRendererComparison_Always
|
GL_ALWAYS, // nzRendererComparison_Always
|
||||||
|
|
@ -1358,6 +1384,8 @@ GLenum NzOpenGL::RendererComparison[nzRendererComparison_Max+1] =
|
||||||
GL_NEVER // nzRendererComparison_Never
|
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] =
|
GLenum NzOpenGL::RendererParameter[nzRendererParameter_Max+1] =
|
||||||
{
|
{
|
||||||
GL_BLEND, // nzRendererParameter_Blend
|
GL_BLEND, // nzRendererParameter_Blend
|
||||||
|
|
@ -1369,6 +1397,8 @@ GLenum NzOpenGL::RendererParameter[nzRendererParameter_Max+1] =
|
||||||
GL_STENCIL_TEST // nzRendererParameter_StencilTest
|
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] =
|
GLenum NzOpenGL::SamplerWrapMode[nzSamplerWrap_Max+1] =
|
||||||
{
|
{
|
||||||
GL_CLAMP_TO_EDGE, // nzTextureWrap_Clamp
|
GL_CLAMP_TO_EDGE, // nzTextureWrap_Clamp
|
||||||
|
|
@ -1376,6 +1406,8 @@ GLenum NzOpenGL::SamplerWrapMode[nzSamplerWrap_Max+1] =
|
||||||
GL_REPEAT // nzTextureWrap_Repeat
|
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] =
|
GLenum NzOpenGL::ShaderType[nzShaderType_Max+1] =
|
||||||
{
|
{
|
||||||
GL_FRAGMENT_SHADER, // nzShaderType_Fragment
|
GL_FRAGMENT_SHADER, // nzShaderType_Fragment
|
||||||
|
|
@ -1383,6 +1415,8 @@ GLenum NzOpenGL::ShaderType[nzShaderType_Max+1] =
|
||||||
GL_VERTEX_SHADER // nzShaderType_Vertex
|
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] =
|
GLenum NzOpenGL::StencilOperation[nzStencilOperation_Max+1] =
|
||||||
{
|
{
|
||||||
GL_DECR, // nzStencilOperation_Decrement
|
GL_DECR, // nzStencilOperation_Decrement
|
||||||
|
|
@ -1395,6 +1429,8 @@ GLenum NzOpenGL::StencilOperation[nzStencilOperation_Max+1] =
|
||||||
GL_ZERO // nzStencilOperation_Zero
|
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] =
|
GLenum NzOpenGL::TextureTarget[nzImageType_Max+1] =
|
||||||
{
|
{
|
||||||
GL_TEXTURE_1D, // nzImageType_1D
|
GL_TEXTURE_1D, // nzImageType_1D
|
||||||
|
|
@ -1405,6 +1441,8 @@ GLenum NzOpenGL::TextureTarget[nzImageType_Max+1] =
|
||||||
GL_TEXTURE_CUBE_MAP // nzImageType_Cubemap
|
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] =
|
GLenum NzOpenGL::TextureTargetBinding[nzImageType_Max+1] =
|
||||||
{
|
{
|
||||||
GL_TEXTURE_BINDING_1D, // nzImageType_1D
|
GL_TEXTURE_BINDING_1D, // nzImageType_1D
|
||||||
|
|
@ -1415,6 +1453,8 @@ GLenum NzOpenGL::TextureTargetBinding[nzImageType_Max+1] =
|
||||||
GL_TEXTURE_BINDING_CUBE_MAP // nzImageType_Cubemap
|
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] =
|
GLenum NzOpenGL::TextureTargetProxy[nzImageType_Max+1] =
|
||||||
{
|
{
|
||||||
GL_PROXY_TEXTURE_1D, // nzImageType_1D
|
GL_PROXY_TEXTURE_1D, // nzImageType_1D
|
||||||
|
|
@ -1425,6 +1465,8 @@ GLenum NzOpenGL::TextureTargetProxy[nzImageType_Max+1] =
|
||||||
GL_PROXY_TEXTURE_CUBE_MAP // nzImageType_Cubemap
|
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;
|
PFNGLACTIVETEXTUREPROC glActiveTexture = nullptr;
|
||||||
PFNGLATTACHSHADERPROC glAttachShader = nullptr;
|
PFNGLATTACHSHADERPROC glAttachShader = nullptr;
|
||||||
PFNGLBEGINQUERYPROC glBeginQuery = nullptr;
|
PFNGLBEGINQUERYPROC glBeginQuery = nullptr;
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@ namespace
|
||||||
4 // nzAttributeType_Float4
|
4 // nzAttributeType_Float4
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static_assert(sizeof(attributeSize)/sizeof(unsigned int) == nzAttributeType_Max+1, "Attribute size array is incomplete");
|
||||||
|
|
||||||
unsigned int attributeStride[nzAttributeType_Max+1] =
|
unsigned int attributeStride[nzAttributeType_Max+1] =
|
||||||
{
|
{
|
||||||
4*sizeof(nzUInt8), // nzAttributeType_Color
|
4*sizeof(nzUInt8), // nzAttributeType_Color
|
||||||
|
|
@ -35,6 +37,8 @@ namespace
|
||||||
3*sizeof(float), // nzAttributeType_Float3
|
3*sizeof(float), // nzAttributeType_Float3
|
||||||
4*sizeof(float) // nzAttributeType_Float4
|
4*sizeof(float) // nzAttributeType_Float4
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static_assert(sizeof(attributeStride)/sizeof(unsigned int) == nzAttributeType_Max+1, "Attribute stride array is incomplete");
|
||||||
}
|
}
|
||||||
|
|
||||||
NzVertexDeclaration::NzVertexDeclaration() :
|
NzVertexDeclaration::NzVertexDeclaration() :
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue