hctCompressTextureFilterOptions.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 HKFILTERTEXTURES_HKFILTERTEXTURESCOMPRESS_HKCLASS_H
  9. #define HKFILTERTEXTURES_HKFILTERTEXTURESCOMPRESS_HKCLASS_H
  10. /// hctCompressTextureFilterOptions meta information
  11. extern const class hkClass hctCompressTextureFilterOptionsClass;
  12. /// Options detailing texture size reduction.
  13. class hctCompressTextureFilterOptions
  14. {
  15. public:
  16. HK_DECLARE_REFLECTION();
  17. HK_DECLARE_NONVIRTUAL_CLASS_ALLOCATOR(HK_MEMORY_CLASS_EXPORT, hctCompressTextureFilterOptions); // required as we have a finsih ctor
  18. /// Default constructor
  19. hctCompressTextureFilterOptions() { }
  20. hctCompressTextureFilterOptions(hkFinishLoadedObjectFlag f) : m_perTextureOptions(f) { }
  21. //
  22. // Members
  23. //
  24. public:
  25. enum OutputFormat
  26. {
  27. OF_RGB = 0, // Don't compress, just make into DDS (and optionaly mipmap)
  28. OF_DXT1,
  29. OF_DXT1a,   // DXT1 with binary alpha.
  30. OF_DXT3,
  31. OF_DXT5,
  32. OF_DXT5n,   // Compressed HILO: R=0, G=x, B=0, A=y
  33. // DX10 formats.
  34. OF_BC1, // DXT1
  35. OF_BC1a,
  36. OF_BC2, // DXT3
  37. OF_BC3, // DXT5
  38. OF_BC3n, 
  39. OF_BC4, // ATI1
  40. OF_BC5  // 3DC, ATI2
  41. };
  42. enum OutputQuality
  43. {
  44. OQ_Fastest = 0,
  45. OQ_Normal,
  46. OQ_Production,
  47. OQ_Highest
  48. };
  49. enum MipmapFilter
  50. {
  51. MF_NoMipmaps = 0,
  52. MF_Box,
  53. MF_Triangle,
  54. MF_Kaiser
  55. };
  56. struct ConvertOptions
  57. HK_DECLARE_REFLECTION();
  58. char* m_textureName; // the texture these options are for
  59. hkEnum<enum OutputFormat, hkUint8> m_format;
  60. hkEnum<enum OutputQuality, hkUint8> m_quality;
  61. hkEnum<enum MipmapFilter, hkUint8> m_mipMapFilter;
  62. hkBool m_flipX;
  63. hkBool m_flipY;
  64. hkBool m_useOriginalFilename; // always use the original file as the source to load
  65. };
  66. // If sizeof m_options is 1, and texture name is null, then will be applied to all textures
  67. hkArray< struct ConvertOptions > m_perTextureOptions;
  68. char* m_outputTexturePath; // where to place file based textures (path will be stripped and this added, along with new file ext (.dds))
  69. hkBool m_allowOverwrite; 
  70. };
  71. #endif // HKFILTERTEXTURES_HKFILTERTEXTURESCOMPRESS_HKCLASS_H
  72. /*
  73. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  74. * Confidential Information of Havok.  (C) Copyright 1999-2009
  75. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  76. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  77. * rights, and intellectual property rights in the Havok software remain in
  78. * Havok and/or its suppliers.
  79. * Use of this software for evaluation purposes is subject to and indicates
  80. * acceptance of the End User licence Agreement for this product. A copy of
  81. * the license is included with this software and is also available at www.havok.com/tryhavok.
  82. */