hkBaseSystem.h
上传用户:yisoukefu
上传日期:2020-08-09
资源大小:39506k
文件大小:4k
源码类别:

其他游戏

开发平台:

Visual C++

  1. /* 
  2.  * 
  3.  * Confidential Information of Telekinesys Research Limited (t/a Havok). Not for disclosure or distribution without Havok's
  4.  * prior written consent. This software contains code, techniques and know-how which is confidential and proprietary to Havok.
  5.  * Level 2 and Level 3 source code contains trade secrets of Havok. Havok Software (C) Copyright 1999-2009 Telekinesys Research Limited t/a Havok. All Rights Reserved. Use of this software is subject to the terms of an end user license agreement.
  6.  * 
  7.  */
  8. #ifndef HKBASE_HKBASESYSTEM_H
  9. #define HKBASE_HKBASESYSTEM_H
  10. /// An error report function to be passed to Havok when initializing it subsystems. In particular
  11. typedef void (HK_CALL *hkErrorReportFunction)(const char* s, void* errorReportObject);
  12. struct hkHardwareInfo
  13. {
  14. int m_numThreads;
  15. };
  16. // Get information about the hardware configuration
  17. void HK_CALL hkGetHardwareInfo( hkHardwareInfo& info );
  18. /// This class is used to initialize the Havok subsystems (memory, singleton, etc).
  19. namespace hkBaseSystem
  20. {
  21. /// Initializes Havok's subsystems.<br>
  22. /// Havok provides a number of memory managers, please consult hkbase/memory/impl for more details.
  23. /// On error, the errorReportFunction is called with an error string and the errorReportObject pointer.
  24. /// init() sets in internal flag, so it may be called more than once but multiple init() and quit() calls
  25. /// do not nest.
  26. /// param threadMemory: this is an optional smart memory manager which
  27. ///                      tries to cache memory blocks so we can reduce locks
  28. hkResult HK_CALL init( hkMemory* memoryManager, 
  29. hkThreadMemory* threadMemory,
  30. hkErrorReportFunction errorReportFunction,
  31. void* errorReportObject = HK_NULL );
  32. /// Call for each active thread
  33. hkResult HK_CALL initThread( hkThreadMemory* threadMemory );
  34. /// Quit thread local storage
  35. hkResult HK_CALL clearThreadResources(  );
  36. /// Quit the subsystems. It is safe to call multiple times.
  37. /// It cleans up in reverse order to init: default singletons, hkError,
  38. /// hkFileSystem and hkMemory
  39. hkResult HK_CALL quit();
  40. /// Checks if the system has already been initialized.
  41. hkBool HK_CALL isInitialized();
  42. /// Utility function to initialize all singletons, called from init().
  43. /// You do not need to call this method unless you have completely replaced
  44. /// the init method.
  45. /// All global non plain old data (POD) types are encapsulated in
  46. /// singletons. At program startup, static constructors put all these
  47. /// singletons and functions to create them into a linked list
  48. /// (see hkSingleton.h). At init time, we can then traverse the list,
  49. /// setting up singletons which have not been explicitly set up already.
  50. void HK_CALL initSingletons();
  51. /// Utility function to quit all singletons, called from quit().
  52. /// You do not need to call this method unless you have completely replaced
  53. /// the quit method.
  54. void HK_CALL quitSingletons();
  55. }
  56. #endif // HKBASE_HKBASESYSTEM_H
  57. /*
  58. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  59. * Confidential Information of Havok.  (C) Copyright 1999-2009
  60. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  61. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  62. * rights, and intellectual property rights in the Havok software remain in
  63. * Havok and/or its suppliers.
  64. * Use of this software for evaluation purposes is subject to and indicates
  65. * acceptance of the End User licence Agreement for this product. A copy of
  66. * the license is included with this software and is also available at www.havok.com/tryhavok.
  67. */