From a396f671ec6f5127a683138e225056f76a0c2491 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Wed, 25 Feb 2015 22:40:56 -0800 Subject: [PATCH] Added more handle checks. --- src/bgfx.cpp | 8 ++++++++ src/bgfx_p.h | 1 - 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/bgfx.cpp b/src/bgfx.cpp index 1f45c2ee..7d9b5714 100644 --- a/src/bgfx.cpp +++ b/src/bgfx.cpp @@ -2823,24 +2823,28 @@ again: void setInstanceDataBuffer(const InstanceDataBuffer* _idb, uint32_t _num) { BGFX_CHECK_MAIN_THREAD(); + BX_CHECK(NULL != _idb, "_idb can't be NULL"); s_ctx->setInstanceDataBuffer(_idb, _num); } void setInstanceDataBuffer(VertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num) { BGFX_CHECK_MAIN_THREAD(); + BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_VERTEX_BUFFERS); s_ctx->setInstanceDataBuffer(_handle, _startVertex, _num); } void setInstanceDataBuffer(DynamicVertexBufferHandle _handle, uint32_t _startVertex, uint32_t _num) { BGFX_CHECK_MAIN_THREAD(); + BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_DYNAMIC_VERTEX_BUFFERS); s_ctx->setInstanceDataBuffer(_handle, _startVertex, _num); } void setProgram(ProgramHandle _handle) { BGFX_CHECK_MAIN_THREAD(); + BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_PROGRAMS); s_ctx->setProgram(_handle); } @@ -2865,24 +2869,28 @@ again: void setBuffer(uint8_t _stage, IndexBufferHandle _handle, Access::Enum _access) { BGFX_CHECK_MAIN_THREAD(); + BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_INDEX_BUFFERS); s_ctx->setBuffer(_stage, _handle, _access); } void setBuffer(uint8_t _stage, VertexBufferHandle _handle, Access::Enum _access) { BGFX_CHECK_MAIN_THREAD(); + BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_VERTEX_BUFFERS); s_ctx->setBuffer(_stage, _handle, _access); } void setBuffer(uint8_t _stage, DynamicIndexBufferHandle _handle, Access::Enum _access) { BGFX_CHECK_MAIN_THREAD(); + BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_DYNAMIC_INDEX_BUFFERS); s_ctx->setBuffer(_stage, _handle, _access); } void setBuffer(uint8_t _stage, DynamicVertexBufferHandle _handle, Access::Enum _access) { BGFX_CHECK_MAIN_THREAD(); + BGFX_CHECK_HANDLE(_handle, BGFX_CONFIG_MAX_DYNAMIC_VERTEX_BUFFERS); s_ctx->setBuffer(_stage, _handle, _access); } diff --git a/src/bgfx_p.h b/src/bgfx_p.h index c9f17b54..eaa5c1c5 100644 --- a/src/bgfx_p.h +++ b/src/bgfx_p.h @@ -1410,7 +1410,6 @@ namespace bgfx void setProgram(ProgramHandle _handle) { - BX_CHECK(isValid(_handle), "Can't set program with invalid handle."); m_key.m_program = _handle.idx; }