convertVersion=8;
class TextureHints
{
  class TexRGBA4444
  {
    name = "*_4444.*";
    format = "ARGB4444";
    dynRange = 0;
  };
  class TexRGBA1555
  {
    name = "*_1555.*";
    format = "ARGB1555";
    dynRange = 0;
  };
  class TexAI88
  {
    name = "*_88.*";
    format = "AI88";
    dynRange = 0;
  };
  class TexDXT1
  {
    name = "*_dxt1.*";
    format = "DXT1";
    dynRange = 0;
  };
  class TexDXT5
  {
    name = "*_dxt5.*";
    format = "DXT5";
    dynRange = 0;
  };
  class ColorMap
  {
    name = "*_co.*";
    format = "DXT1";
    dynRange = 1;  
  };
  class ColorMapRaw
  {
    name = "*_raw.*";
    format = "ARGB1555";
    dynRange = 0;
  };
  class ColorAlphaMap
  {
    name = "*_ca.*";
    format = "DXT5";
    dynRange = 1;  
  };
  class ColorAlphaTest
  {
    name = "*_cat.*";
    format = "DXT5";
    dynRange = 1;  
    mipmapFilter = AlphaNoise;
  };
  class sky
  {
    name = "*_sky.*";
    format = "DXT5";
    // file (physical) = memory (logical)
    channelSwizzleR = "R";
    channelSwizzleG = "1-A";
    channelSwizzleB = "B";
    channelSwizzleA = "1-G";
    // we could prefer B by moving it to G
//    channelSwizzleR = "R";
//    channelSwizzleG = "B";
//    channelSwizzleB = "1-A";
//    channelSwizzleA = "1-G";
    dynRange = 0;
  };
  class detail
  {
    name = "*_detail.*";
    format = "DXT1";
    enableDXT = 1;
    // only alpha channel is used in detail texures
    channelSwizzleR = "A";
    channelSwizzleG = "A";
    channelSwizzleB = "A";
    channelSwizzleA = "1";
    dynRange = 0;
    mipmapFilter = FadeOut;
  };
  class color_detail
  {
    name = "*_cdt.*";
    format = "DXT1";
    enableDXT = 1;
    dynRange = 0;
    mipmapFilter = FadeOut;
  };
  class layer_color
  {
    autoreduce=1;
    name = "*_lco.*";
    format = "DXT1";
    enableDXT = 1;
    dynRange = 0;
  };
  class multiply_color
  {
    autoreduce=1;
    name = "*_mco.*";
    format = "DXT1";
    enableDXT = 1;
    dynRange = 0;
  };
  class layer_color_draft
  {
    autoreduce=1;
    name = "*_draftlco.*";
    enableDXT = 0;
    dynRange = 0;
  };
  class layer_color_alpha
  {
    autoreduce=1;
    name = "*_lca.*";
    format = "DXT5";
    enableDXT = 1;
    dynRange = 0;
  };
  class mask
  {
    autoreduce=1; // In case the texture has got one color in all the channels, it will be reduced to 1x1
    name = "*_mask.*";
    format = "DXT1";
    enableDXT = 1;
    dynRange = 0;
  };
  class macro
  {
    autoreduce=1;
    name = "*_mc.*";
    format = "DXT5";
    enableDXT = 1;
    dynRange = 0;
  };
  class prt
  {
    autoreduce=1;
    name = "*_pr.*";
    format = "DXT5";
    enableDXT = 1;
    dynRange = 0;
  };
  class ambient_shadow
  {
    autoreduce=1;
    name = "*_as.*";
    format = "DXT1";
    enableDXT = 1;
    channelSwizzleR = "1"; 
    channelSwizzleG = "G"; 
    channelSwizzleB = "1";
    channelSwizzleA = "1"; 
    dynRange = 0;
    errorMetrics=Distance;
  };
  class ambient_diffuse_shadow
  {
    name = "*_ads.*";
    format = "DXT1";
    enableDXT = 1;
    channelSwizzleR = "1"; 
    channelSwizzleG = "G"; 
    channelSwizzleB = "B";
    channelSwizzleA = "1"; 
    dynRange = 0;
    errorMetrics=Distance;
  };
  class specular_map
  {
    name = "*_sm.*";
    format = "DXT1";
    enableDXT = 1;
    channelSwizzleR = "R"; 
    channelSwizzleG = "G"; 
    channelSwizzleB = "B";
    channelSwizzleA = "1"; 
    dynRange = 0;
    errorMetrics=Distance;
  };
  class specular_diffuseinverse_map
  {
    name = "*_smdi.*";
    format = "DXT1";
    enableDXT = 1;
    channelSwizzleR = "1"; 
    channelSwizzleG = "G"; 
    channelSwizzleB = "B";
    channelSwizzleA = "1"; 
    dynRange = 0;
    errorMetrics=Distance;
  };
  class detail_specular_diffuseinverse_map
  {
    name = "*_dtsmdi.*";
    format = "DXT1";
    enableDXT = 1;
    channelSwizzleR = "R"; 
    channelSwizzleG = "G"; 
    channelSwizzleB = "B";
    channelSwizzleA = "1"; 
    dynRange = 0;
    errorMetrics=Distance;
  };
  class detail_short: detail
  {
    name = "*_dt.*";
  };
  class normalmap
  {
    name = "*_normalmap.*";
    enableDXT = 1;
    // alpha channel can be used to contain opacity
    mipmapFilter = NormalizeNormalMapAlpha;
    dynRange = 0;
    errorMetrics=Distance;
  };

  class normalmap_short: normalmap
  {
    name = "*_no.*";
    format = "DXT1";
    channelSwizzleA = "1";
  };
  class normalmap_uncompressed: normalmap
  {
    name = "*_noex.*";
    enableDXT = 0;
  };

  class NormalMapNoise
  {
    name = "*_non.*";
    format = "DXT5";
    // alpha channel can be used to contain opacity
    mipmapFilter = NormalizeNormalMapNoise;
    dynRange = 0;
    errorMetrics=Distance;
  };

  /// DXT5 compressed normal map
  class normalmap_hq
  {
    name = "*_nohq.*";
    format = "DXT5";
    // negate is used on B channel so that it can used in the same shader as DXT1
    channelSwizzleA = "1-R";
    channelSwizzleR = "1-A";
    channelSwizzleG = "G";
    channelSwizzleB = "B";
    dynRange = 0;
    errorMetrics=Distance;
    // alpha channel (before swizzle) can be used to contain opacity
    mipmapFilter = NormalizeNormalMapAlpha;
  };
  /// DXT5 2-component compressed normal map
  class normalmap_vhq
  {
    name = "*_novhq.*";
    format = "DXT5";
    // negate is used on B channel so that it can used in the same shader as DXT1
    channelSwizzleA = "1-R";
    channelSwizzleR = "1";
    channelSwizzleG = "G";
    channelSwizzleB = "1";
    dynRange = 0;
    errorMetrics=Distance;
    // alpha channel (before swizzle) can be used to contain opacity
    mipmapFilter = NormalizeNormalMapAlpha;
  };
  
  class normalmap_hq_fade: normalmap_hq
  {
    name = "*_nofhq.*";
    mipmapFilter = NormalizeNormalMapFade;
  };

  class normalmapFade
  {
    name = "*_nof.*";
    enableDXT = 1;
    mipmapFilter = NormalizeNormalMapFade;
    dynRange = 0;
    errorMetrics=Distance;
  };
  class normalmapFade_uncompressed : normalmapFade
  {
    name = "*_nofex.*";
    enableDXT = 0;
  };
  class normalmap_spec
  {
    name = "*_ns.*";
    enableDXT = 1;
    mipmapFilter = NormalizeNormalMap;
    dynRange = 0;
    errorMetrics=Distance;
  };
  class normalmap_parallax
  {
    autoreduce=1; // when height filed not present (a=1), skip the channel
    name = "*_nopx.*";
    format = "DXT5";
    enableDXT = 1;
    mipmapFilter = NormalizeNormalMap;
    dynRange = 0;
    // negate is used on B channel so that it can used in the same shader as DXT1
    channelSwizzleA = "1-R"; // normal X moved into a inversed
    channelSwizzleR = "A"; // height field moved into R
    channelSwizzleG = "G"; // normal Y kept in G
    channelSwizzleB = "1"; // discard normal Z
    errorMetrics=Distance;
  };

  class normalmap_spec_uncompressed: normalmap_spec
  {
    name = "*_nsex.*";
    enableDXT = 0;
  };
  class normalmap_spec_hq: normalmap_hq
  {
    name = "*_nshq.*";
  };
  
  class grayscalealpha
  {
    name = "*_gs.*";
    format="AI88";
  };
  
  class AddAlphaNoise
  {
    name = "*_can.*";
    format = "DXT5";
    mipmapFilter = AddAlphaNoise;
    dynRange = 1;
    errorMetrics=Distance;
  };

  
};

/*
Possible format values:
Default, P8, ARGB4444, ARGB1555, AI88, DXT1, DXT2, DXT3, DXT4, DXT5

Possible mipmapFilter values:
Default, FadeOutAlpha, NormalizeNormalMap
*/
