소스 검색

fix c99 bgx_init (#1383)

云风 7 년 전
부모
커밋
c0bd3ceee5
1개의 변경된 파일13개의 추가작업 그리고 1개의 파일을 삭제
  1. 13 1
      src/bgfx.cpp

+ 13 - 1
src/bgfx.cpp

@@ -4777,7 +4777,19 @@ BGFX_C_API void bgfx_init_ctor(bgfx_init_t* _init)
 
 
 BGFX_C_API bool bgfx_init(const bgfx_init_t* _init)
 BGFX_C_API bool bgfx_init(const bgfx_init_t* _init)
 {
 {
-	return bgfx::init(*reinterpret_cast<const bgfx::Init*>(_init) );
+	bgfx_init_t init = *_init;
+	if (init.callback != NULL) {
+		static bgfx::CallbackC99 s_callback;
+		s_callback.m_interface = init.callback;
+		init.callback = reinterpret_cast<bgfx_callback_interface_t *>(&s_callback);
+	}
+	if (init.allocator != NULL) {
+		static bgfx::AllocatorC99 s_allocator;
+		s_allocator.m_interface = init.allocator;
+		init.allocator = reinterpret_cast<bgfx_allocator_interface_t *>(&s_allocator);
+	}
+
+	return bgfx::init(*reinterpret_cast<const bgfx::Init*>(&init) );
 }
 }
 
 
 BGFX_C_API void bgfx_shutdown(void)
 BGFX_C_API void bgfx_shutdown(void)