#ifndef COMMON_3D_XML
#define COMMON_3D_XML

/* Autogenerated file, DO NOT EDIT manually!

This file was generated by the rules-ng-ng headergen tool in this git repository:
http://0x04.net/cgit/index.cgi/rules-ng-ng
git clone git://0x04.net/rules-ng-ng

The rules-ng-ng source files this header was generated from are:
- texdesc_3d.xml (   3146 bytes, from 2017-10-13 12:18:33)
- copyright.xml  (   1597 bytes, from 2016-10-29 07:29:22)
- common.xml     (  26193 bytes, from 2017-10-13 12:18:24)
- common_3d.xml  (  12636 bytes, from 2017-10-16 13:56:34)

Copyright (C) 2012-2017 by the following authors:
- Wladimir J. van der Laan <laanwj@gmail.com>
- Christian Gmeiner <christian.gmeiner@gmail.com>
- Lucas Stach <l.stach@pengutronix.de>
- Russell King <rmk@arm.linux.org.uk>

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sub license,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice (including the
next paragraph) shall be included in all copies or substantial portions
of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
*/


#define TEXTURE_FORMAT_NONE					0x00000000
#define TEXTURE_FORMAT_A8					0x00000001
#define TEXTURE_FORMAT_L8					0x00000002
#define TEXTURE_FORMAT_I8					0x00000003
#define TEXTURE_FORMAT_A8L8					0x00000004
#define TEXTURE_FORMAT_A4R4G4B4					0x00000005
#define TEXTURE_FORMAT_X4R4G4B4					0x00000006
#define TEXTURE_FORMAT_A8R8G8B8					0x00000007
#define TEXTURE_FORMAT_X8R8G8B8					0x00000008
#define TEXTURE_FORMAT_A8B8G8R8					0x00000009
#define TEXTURE_FORMAT_X8B8G8R8					0x0000000a
#define TEXTURE_FORMAT_R5G6B5					0x0000000b
#define TEXTURE_FORMAT_A1R5G5B5					0x0000000c
#define TEXTURE_FORMAT_X1R5G5B5					0x0000000d
#define TEXTURE_FORMAT_YUY2					0x0000000e
#define TEXTURE_FORMAT_UYVY					0x0000000f
#define TEXTURE_FORMAT_D16					0x00000010
#define TEXTURE_FORMAT_D24X8					0x00000011
#define TEXTURE_FORMAT_DXT1					0x00000013
#define TEXTURE_FORMAT_DXT2_DXT3				0x00000014
#define TEXTURE_FORMAT_DXT4_DXT5				0x00000015
#define TEXTURE_FORMAT_E5B9G9R9					0x0000001d
#define TEXTURE_FORMAT_ETC1					0x0000001e
#define TEXTURE_FORMAT_EXT_NONE					0x00000000
#define TEXTURE_FORMAT_EXT_RGB8_PUNCHTHROUGH_ALPHA1_ETC2	0x00000001
#define TEXTURE_FORMAT_EXT_RGBA8_ETC2_EAC			0x00000002
#define TEXTURE_FORMAT_EXT_R11_EAC				0x00000003
#define TEXTURE_FORMAT_EXT_RG11_EAC				0x00000004
#define TEXTURE_FORMAT_EXT_SIGNED_RG11_EAC			0x00000005
#define TEXTURE_FORMAT_EXT_G8R8					0x00000006
#define TEXTURE_FORMAT_EXT_R16F					0x00000007
#define TEXTURE_FORMAT_EXT_G16R16F				0x00000008
#define TEXTURE_FORMAT_EXT_A16B16G16R16F			0x00000009
#define TEXTURE_FORMAT_EXT_R32F					0x0000000a
#define TEXTURE_FORMAT_EXT_G32R32F				0x0000000b
#define TEXTURE_FORMAT_EXT_A2B10G10R10				0x0000000c
#define TEXTURE_FORMAT_EXT_SIGNED_R11_EAC			0x0000000d
#define TEXTURE_FORMAT_EXT_R8_SNORM				0x0000000e
#define TEXTURE_FORMAT_EXT_G8R8_SNORM				0x0000000f
#define TEXTURE_FORMAT_EXT_X8B8G8R8_SNORM			0x00000010
#define TEXTURE_FORMAT_EXT_A8B8G8R8_SNORM			0x00000011
#define TEXTURE_FORMAT_EXT_ASTC					0x00000014
#define TEXTURE_FORMAT_EXT_R8I					0x00000015
#define TEXTURE_FORMAT_EXT_G8R8I				0x00000016
#define TEXTURE_FORMAT_EXT_A8B8G8R8I				0x00000017
#define TEXTURE_FORMAT_EXT_R16I					0x00000018
#define TEXTURE_FORMAT_EXT_G16R16I				0x00000019
#define TEXTURE_FORMAT_EXT_A16B16G16R16I			0x0000001a
#define TEXTURE_FORMAT_EXT_B10G11R11F				0x0000001b
#define TEXTURE_FORMAT_EXT_A2B10G10R10UI			0x0000001c
#define TEXTURE_FORMAT_EXT_R8					0x00000021
#define TEXTURE_FORMAT_EXT_D24S8				0x00000022
#define TEXTURE_FORMAT_EXT_R32I					0x00000023
#define TEXTURE_FORMAT_EXT_G32R32I				0x00000024
#define TEXTURE_FORMAT_EXT_AYUV					0x00000025
#define TEXTURE_FILTER_NONE					0x00000000
#define TEXTURE_FILTER_NEAREST					0x00000001
#define TEXTURE_FILTER_LINEAR					0x00000002
#define TEXTURE_FILTER_ANISOTROPIC				0x00000003
#define TEXTURE_TYPE_NONE					0x00000000
#define TEXTURE_TYPE_1D						0x00000001
#define TEXTURE_TYPE_2D						0x00000002
#define TEXTURE_TYPE_3D						0x00000003
#define TEXTURE_TYPE_CUBE_MAP					0x00000005
#define TEXTURE_WRAPMODE_REPEAT					0x00000000
#define TEXTURE_WRAPMODE_MIRRORED_REPEAT			0x00000001
#define TEXTURE_WRAPMODE_CLAMP_TO_EDGE				0x00000002
#define TEXTURE_WRAPMODE_CLAMP_TO_BORDER			0x00000003
#define TEXTURE_FACE_POS_X					0x00000000
#define TEXTURE_FACE_NEG_X					0x00000001
#define TEXTURE_FACE_POS_Y					0x00000002
#define TEXTURE_FACE_NEG_Y					0x00000003
#define TEXTURE_FACE_POS_Z					0x00000004
#define TEXTURE_FACE_NEG_Z					0x00000005
#define TEXTURE_SWIZZLE_RED					0x00000000
#define TEXTURE_SWIZZLE_GREEN					0x00000001
#define TEXTURE_SWIZZLE_BLUE					0x00000002
#define TEXTURE_SWIZZLE_ALPHA					0x00000003
#define TEXTURE_SWIZZLE_ZERO					0x00000004
#define TEXTURE_SWIZZLE_ONE					0x00000005
#define TEXTURE_HALIGN_FOUR					0x00000000
#define TEXTURE_HALIGN_SIXTEEN					0x00000001
#define TEXTURE_HALIGN_SUPER_TILED				0x00000002
#define TEXTURE_HALIGN_SPLIT_TILED				0x00000003
#define TEXTURE_HALIGN_SPLIT_SUPER_TILED			0x00000004
#define TS_CACHE_MODE_128					0x00000000
#define TS_CACHE_MODE_256					0x00000001
#define COLOR_COMPRESSION_FORMAT_A4R4G4B4			0x00000000
#define COLOR_COMPRESSION_FORMAT_A1R5G5B5			0x00000001
#define COLOR_COMPRESSION_FORMAT_R5G6B5				0x00000002
#define COLOR_COMPRESSION_FORMAT_A8R8G8B8			0x00000003
#define COLOR_COMPRESSION_FORMAT_X8R8G8B8			0x00000004
#define COLOR_COMPRESSION_FORMAT_D24S8				0x00000005
#define TE_SAMPLER_CONFIG2_UNK16				0x00010000
#define TE_SAMPLER_CONFIG2_UNK17				0x00020000
#define TE_SAMPLER_CONFIG2_UNK18				0x00040000
#define TE_SAMPLER_CONFIG2_UNK19				0x00080000
#define TE_SAMPLER_CONFIG2_UNK23				0x00800000
#define TE_SAMPLER_CONFIG3_MSAA					0x00000008

#endif /* COMMON_3D_XML */
