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

其他游戏

开发平台:

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 LOADER_H
  9. #define LOADER_H
  10. #include <Common/Serialize/Packfile/hkPackfileData.h>
  11. class hkTypeInfoRegistry;
  12. class hkClassNameRegistry;
  13. class hkVersionRegistry;
  14. /// Utility class to load and manage packfiles.
  15. class hkLoader : public hkReferencedObject
  16. {
  17. public:
  18. HK_DECLARE_CLASS_ALLOCATOR(HK_MEMORY_CLASS_SERIALIZE);
  19. /// Releases the references to all loaded memory
  20. ~hkLoader();
  21. /// Loads from a file, Explicitly allocates and keeps a handle to the memory allocated 
  22. /// This method is usually called multiple times to load several different assets.
  23. /// Implicitly uses the built-in registry
  24. class hkRootLevelContainer* load( const char* filename );
  25. /// Loads from a stream, Explicitly allocates and keeps a handle to the memory allocated 
  26. /// This method is usually called multiple times to load several different assets.
  27. /// Implicitly uses the built-in registry
  28. class hkRootLevelContainer* load( class hkStreamReader* reader );
  29. /// Loads from a file, Explicitly allocates and keeps a handle to the memory allocated 
  30. /// This method is usually called multiple times to load several different assets.
  31. /// The hkVersionRegistry may be null which disables versioning.
  32. /// Uses the registries passed explicitly.
  33. class hkRootLevelContainer* load( const char* filename, hkTypeInfoRegistry* finish, hkVersionRegistry* version );
  34. /// Loads from a stream, Explicitly allocates and keeps a handle to the memory allocated 
  35. /// This method is usually called multiple times to load several different assets.
  36. /// The hkVersionRegistry may be null which disables versioning.
  37. /// Uses the registries passed explicitly.
  38. class hkRootLevelContainer* load( class hkStreamReader* reader, hkTypeInfoRegistry* finish, hkVersionRegistry* version );
  39. /// Loads from a file, Explicitly allocates and keeps a handle to the memory allocated 
  40. /// This method is usually called multiple times to load several different assets.
  41. /// Does not assume that the hkRoootLevelContainer is the top level class.
  42. /// Implicitly uses the built-in registry
  43. void* load( const char* filename, const hkClass& expectedTopLevelClass );
  44. /// Loads from a stream, Explicitly allocates and keeps a handle to the memory allocated 
  45. /// This method is usually called multiple times to load several different assets.
  46. /// Does not assume that the hkRoootLevelContainer is the top level class.
  47. /// Implicitly uses the built-in registry
  48. void* load( class hkStreamReader* reader, const hkClass& expectedTopLevelClass );
  49. /// Loads from a file, Explicitly allocates and keeps a handle to the memory allocated 
  50. /// This method is usually called multiple times to load several different assets.
  51. /// Does not assume that the hkRoootLevelContainer is the top level class.
  52. /// The hkVersionRegistry may be null which disables versioning.
  53. /// Uses the registries passed explicitly.
  54. void* load( const char* filename, const hkClass& expectedTopLevelClass, hkTypeInfoRegistry* finish, hkVersionRegistry* version );
  55. /// Loads from a stream, Explicitly allocates and keeps a handle to the memory allocated 
  56. /// This method is usually called multiple times to load several different assets.
  57. /// Does not assume that the hkRoootLevelContainer is the top level class.
  58. /// The hkVersionRegistry may be null which disables versioning.
  59. /// Uses the registries passed explicitly.
  60. void* load( class hkStreamReader* reader, const hkClass& expectedTopLevelClass, hkTypeInfoRegistry* finish, hkVersionRegistry* version );
  61. virtual void calcContentStatistics( hkStatisticsCollector* collector, const hkClass* cls ) const;
  62. public:
  63. hkArray<hkPackfileData*> m_loadedData;
  64. };
  65. #endif // LOADER_H
  66. /*
  67. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  68. * Confidential Information of Havok.  (C) Copyright 1999-2009
  69. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  70. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  71. * rights, and intellectual property rights in the Havok software remain in
  72. * Havok and/or its suppliers.
  73. * Use of this software for evaluation purposes is subject to and indicates
  74. * acceptance of the End User licence Agreement for this product. A copy of
  75. * the license is included with this software and is also available at www.havok.com/tryhavok.
  76. */