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

其他游戏

开发平台:

Visual C++

  1. /* 
  2.  * Confidential Information of Telekinesys Research Limited (t/a Havok). Not for disclosure or distribution without Havok's
  3.  * prior written consent. This software contains code, techniques and know-how which is confidential and proprietary to Havok.
  4.  * 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.
  5.  * 
  6.  */
  7. #ifndef HAVOK_FILTER_TEXTURES_COMPRESS__H
  8. #define HAVOK_FILTER_TEXTURES_COMPRESS__H
  9. #include <ContentTools/Common/Filters/FilterTexture/CompressTexture/hctCompressTextureFilterOptions.h>
  10. class hctCompressTextureFilter : public hctFilterInterface
  11. {
  12. public: 
  13. HK_DECLARE_CLASS_ALLOCATOR(HK_MEMORY_CLASS_EXPORT);
  14. hctCompressTextureFilter(const hctFilterManagerInterface* owner);
  15. /*virtual*/ ~hctCompressTextureFilter();
  16. /*virtual*/ void setOptions(const void* optionData, int optionDataSize, unsigned int version);
  17. /*virtual*/ HWND showOptions(HWND owner);
  18. /*virtual*/ void process( class hkRootLevelContainer& data  );
  19. /// Option ptr only valid until the filter is deleted and/or the filter dll is unloaded
  20. /*virtual*/ int getOptionsSize() const;
  21. /*virtual*/ void getOptions(void* optionData) const;
  22. virtual void hideOptions();
  23. // filter options
  24. hctCompressTextureFilterOptions m_options;
  25. hkObjectArray< hkString > m_nameStrings;
  26. hkArray< hkxTextureFile* > m_listedFileTextures;
  27. hkArray< hkxTextureInplace* > m_listedInplaceTextures;
  28. hkArray< int > m_currentEditOptionIndices;
  29. hkRootLevelContainer* m_optionSceneData; 
  30. hctFilterMemoryTracker m_optionSceneDataTracker;
  31. // A buffer for storing the options in XML form.
  32. mutable hkArray<char> m_getOptionsBuf;
  33. mutable hkArray<char> m_setOptionsBuf;
  34. // dialog
  35. HWND m_optionsDialog;
  36. };
  37. class hctCompressTextureFilterDesc : public hctFilterDescriptor
  38. {
  39. public:
  40. /*virtual*/ unsigned int getID() const { return 0x1492cba7; }
  41. /*virtual*/ FilterCategory getCategory() const { return HK_CATEGORY_GRAPHICS; }
  42. /*virtual*/ FilterBehaviour getFilterBehaviour() const { return HK_DATA_MUTATES_INPLACE; }
  43. /*virtual*/ const char* getShortName() const { return "Compress Texture"; }
  44. /*virtual*/ const char* getLongName() const { return "Block Compress (DXT) textures and store as DDS files. As the output is DDS, it can also create mipmaps too. Output will be inplace or file based depending on input."; }
  45. /*virtual*/ unsigned int getFilterVersion() const { return HCT_FILTER_VERSION(1,1,1); }
  46. /*virtual*/ hctFilterInterface* createFilter(const hctFilterManagerInterface* owner) const { return new hctCompressTextureFilter(owner); }
  47. /*virtual*/ HavokComponentMask getRequiredHavokComponents () const { return HK_COMPONENT_COMMON; }
  48. };
  49. extern hctCompressTextureFilterDesc g_compressTextureDesc;
  50. #endif // HAVOK_FILTER_TEXTURES_COMPRESS__H
  51. /*
  52. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  53. * Confidential Information of Havok.  (C) Copyright 1999-2009
  54. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  55. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  56. * rights, and intellectual property rights in the Havok software remain in
  57. * Havok and/or its suppliers.
  58. * Use of this software for evaluation purposes is subject to and indicates
  59. * acceptance of the End User licence Agreement for this product. A copy of
  60. * the license is included with this software and is also available at www.havok.com/tryhavok.
  61. */