Przeglądaj źródła

fix c99 bgx_init (#1383)

云风 7 lat temu
rodzic
commit
c0bd3ceee5
1 zmienionych plików z 13 dodań i 1 usunięć
  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)
 {
-	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)