//
// Asura_TextureFlags.h
//
// Created by Richard Rice - 27/03/2002
// 
// Copyright (C) 2001 Rebellion, All Rights Reserved.
//

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef __ASURA_TEXTUREFLAGS_H__
#define __ASURA_TEXTUREFLAGS_H__



//defines for the per-texture flags
//(which are accessed via Asura_Texture_Management)
#define AsuraTextureFlag_DiffuseMap                              0x00000001 //Texture is used in the diffuse slot of at least one material. RAR 08/05/2006
#define AsuraTextureFlag_NormalMap                               0x00000002 //Texture is used in the normal map slot of at least one material. RAR 08/05/2006
#define AsuraTextureFlag_SpecularMap                             0x00000004 //Texture is used in the specular map slot of at least one material. RAR 08/05/2006
#define AsuraTextureFlag_8BitAlpha                               0x00000008 //Tells Tim2 exporter that 8 bit alpha should be used
#define AsuraTextureFlag_PS2MoireFix                             0x00000010 //Flag for the Tim2 exporter. Make the first mip map a scaled up copy of the second mip map
#define AsuraTextureFlag_NoMipMaps                               0x00000020
#define AsuraTextureFlag_PS2DistantTexture                       0x00000040
//#define AsuraTextureFlag_Reflective                            0x00000080
#define AsuraTextureFlag_FMV                                     0x00000100
#define AsuraTextureFlag_WIIOnly_NoMipMaps                       0x00000200
//#define AsuraTextureFlag_FlowingWater                          0x00000200 // (MH - 13.09.2002) these are currently supported on PS2 
//#define AsuraTextureFlag_Waterfall                             0x00000400 // for GF2 - they might end up being project-specific.
//#define AsuraTextureFlag_SubdividePolygon                      0x00000800 // Used on the water to indicate that extra subdivision should be done(RAR 24/09/02)
#define AsuraTextureFlag_PS2AllowMipMapsOn512                    0x00001000 // (RAR 01/04/03) Allow mip map generation on 512 tim2 files.
#define AsuraTextureFlag_PS2Allow512                             0x00002000
#define AsuraTextureFlag_PS2DontHalveSize                        0x00004000
#define AsuraTextureFlag_DontPremultiplyAlphaInPaletteGeneration 0x00008000 //For textures where alpha channel isn't being used for normal translucency. Don't premultiply rgb by alpha when working out distances between colours
#define AsuraTextureFlag_ReduceExtraForConsoles                  0x00010000
#define AsuraTextureFlag_PS2DontHalveExtraForMultiplayer         0x00020000 //Prevents the additional reduction in texture size for PS2 multiplayer
#define AsuraTextureFlag_IgnoreAlphaChannel                      0x00040000 //(RAR 03/06/04) Tells Tim2 generation to ignore the alpha channel from the texture , making it fully opaque instead
#define AsuraTextureFlag_Sharpen                                 0x00080000 //(RAR 04/06/04) Sharpens converted graphics. Equivalent to Photoshop Sharpen filter
#define AsuraTextureFlag_SharpenMore                             0x00100000 //(RAR 04/06/04) Sharpens converted graphics. Equivalent to Photoshop Sharpen More filter. Takes precedence of Sharpen
#define AsuraTextureFlag_16ColourPalette                         0x00200000 //(RAR 12/01/05) Causes the texture to be exported with 4 bit palette (PS2 only most likely)
#define AsuraTextureFlag_HalfForXBox                             0x00400000 //(RAR 09/09/2005 force halving texture size for xbox export. I'm sure there must be a nicer way , but , hmm , ah well.)
#define AsuraTextureFlag_AcceptCarpet                            0x00800000 // DMR 24/01/06 - To make carpet spraying less fiddly

// DWW TEST
#define AsuraTextureFlag_AdReceiver                              0x01000000 // DWW flag to say this texture is used as an ad place holder

#define AsuraTextureFlag_HighQualityCompression                  0x02000000  //(AAM 29/06/07) Renamed old "don't compress" flag. Indicates that higher-quality compression should be used, dependent on texture usage and platform
#define AsuraTextureFlag_HalfForPSP                              0x04000000  //(RAR 15/05/2005 force halving texture size for PSP export.)
#define AsuraTextureFlag_SharpenMipMaps                          0x08000000  //(MH 21/12/2007) apply sharpen filter to each mipmap level (down to 64x64 inclusive)

#define AsuraTextureFlag_ClampU                                  0x10000000
#define AsuraTextureFlag_ClampV                                  0x20000000

//Mask for the automatically assigned texture useage flags. RAR 08/05/2006
#define ASURA_TEXTURE_USAGE_FLAGS (AsuraTextureFlag_DiffuseMap | \
									AsuraTextureFlag_NormalMap | \
									AsuraTextureFlag_SpecularMap)


enum ASURA_TEXTURE_ID
{
	ASURA_TEXTURE_INVALID	= -2,
	ASURA_TEXTURE_NONE		= -1,
};

#endif//__ASURA_TEXTUREFLAGS_H__
