hctModelessFilterDescriptor.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_MODELESS_FILTER_DESCRIPTOR_H
  9. #define HAVOK_MODELESS_FILTER_DESCRIPTOR_H
  10. class hctModelessFilter;
  11. // The descriptor of a modeless filter tracks the active instances of the filter
  12. class hctModelessFilterDescriptor : public hctFilterDescriptor
  13. {
  14. public:
  15. /// Constructor
  16. hctModelessFilterDescriptor();
  17. /// Destructor
  18. virtual ~hctModelessFilterDescriptor();
  19. /*virtual*/ const char* getShortName() const { return "Modeless Filter"; }
  20. /// From hctFilterDescriptor, returns how many modeless filters are active
  21. /*virtual*/ int countModelessFilters (int& numActiveOut, int& numClosingout) const;
  22. /// From hctFilterDescriptor, tells all modeless filters to close asap
  23. /*virtual*/ void askModelessFiltersToClose () const;
  24. /// Adds a filter to the "active filters list", i.e., keeps track of it
  25. /// 
  26. void addFilterToActiveList (hctModelessFilter* filter);
  27. /// Removes a filter from the "active filters list"
  28. void removeFilterFromActiveList (hctModelessFilter* filter);
  29. /// Returns the i-th filter in the active filters list
  30. hctModelessFilter* getActiveFilter (int i) const;
  31. private:
  32. // Linked list of active instances of this filter
  33. struct ActiveFilterList
  34. {
  35. hctModelessFilter* m_activeFilter;
  36. ActiveFilterList* m_next;
  37. };
  38. ActiveFilterList* m_activeFilterList;
  39. mutable HANDLE m_activeFiltersMutex;
  40. // Creates the mutex if not already created
  41. void createMutexIfNecessary () const;
  42. };
  43. #endif // HAVOK_MODELESS_FILTER_DESCRIPTOR_H
  44. /*
  45. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  46. * Confidential Information of Havok.  (C) Copyright 1999-2009
  47. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  48. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  49. * rights, and intellectual property rights in the Havok software remain in
  50. * Havok and/or its suppliers.
  51. * Use of this software for evaluation purposes is subject to and indicates
  52. * acceptance of the End User licence Agreement for this product. A copy of
  53. * the license is included with this software and is also available at www.havok.com/tryhavok.
  54. */