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

其他游戏

开发平台:

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 HAVOK_FILTER_DLL_H
  9. #define HAVOK_FILTER_DLL_H
  10. #include <ContentTools/Common/Filters/Common/hctBaseDll.h>
  11. class hctFilterDll;
  12. class hctFilterDescriptor;
  13. /// Prototype for the DLL-exported method (implemented by each filter DLL)
  14. typedef hctFilterDll* (__cdecl *hkGetFilterDLLFunc) (HMODULE dllModule);
  15. /// Each filter DLL should contain and return (through a "getFilterDll" function) a single instance of this class. 
  16. /// The class extends the functionality in hctBaseDll by providing information about how many filters are implemented in the DLL.
  17. /// It also provides functionality to switch memory managers during filter processing.
  18. /// In general, if you are implementing the most common case where filters are modal, you only need to override getNumberOfFilters()
  19. /// and getFilterDescriptor().
  20. class hctFilterDll : public hctBaseDll
  21. {
  22. public:
  23. /// Constructor. Requires a Handle to the DLL (returned by LoadLibrary() and passed to getFilterDll()). 
  24. hctFilterDll (HMODULE dllModule);
  25. /// Must return the number of filters described in this DLL.
  26. virtual int getNumberOfFilters() const = 0;
  27. /// Must return the descriptor for the i-th filter in this DLL.
  28. virtual hctFilterDescriptor* getFilterDescriptor (int index) const = 0;
  29. /// Should register any classes and types created by filters in this DLL
  30. virtual void registerClasses (class hctFilterClassRegistry& classReg) const = 0;
  31. /// Sets the singleton serialization registries for this DLL
  32. virtual void setSingletonRegistries (const class hctFilterClassRegistry& classReg) const;
  33. /// Temporarily replaces the DLL memory manager with the given one.
  34. /// It can be overriden to do nothing if replacing the memory manager is not possible; for example,
  35. /// if the filter is non-modal.
  36. virtual void pushMemoryManager (hkMemory* newMemory);
  37. /// Restores the original memory manager after a call to pushMemoryManager()
  38. /// It can be overriden to do nothing if replacing the memory manager is not possible; for example,
  39. /// if the filter is non-modal.
  40. virtual void popMemoryManager ();
  41. protected:
  42. hkMemory* m_previousMemoryManager;
  43. };
  44. #endif // HAVOK_FILTER_DLL_H
  45. /*
  46. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  47. * Confidential Information of Havok.  (C) Copyright 1999-2009
  48. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  49. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  50. * rights, and intellectual property rights in the Havok software remain in
  51. * Havok and/or its suppliers.
  52. * Use of this software for evaluation purposes is subject to and indicates
  53. * acceptance of the End User licence Agreement for this product. A copy of
  54. * the license is included with this software and is also available at www.havok.com/tryhavok.
  55. */