<panxml>
  <enum name="Channel">
    <value name="R" value="0"/>
    <value name="G" value="1"/>
    <value name="B" value="2"/>
    <value name="A" value="3"/>
    <value name="0" value="4"/>
    <value name="1" value="5"/>
  </enum>

  <enum name="Texture Dimension">
    <value name="Cube" value="0"/>
    <value name="1D" value="1"/>
    <value name="2D" value="2"/>
    <value name="3D" value="3"/>
  </enum>

  <enum name="Sample Pattern">
    <value name="Single-sampled" value="0"/>
    <value name="Ordered 4x Grid" value="1"/>
    <value name="Rotated 4x Grid" value="2"/>
    <value name="D3D 8x Grid" value="3"/>
    <value name="D3D 16x Grid" value="4"/>
  </enum>

  <enum name="Blend Operand A">
    <value name="Zero" value="1"/>
    <value name="Src" value="2"/>
    <value name="Dest" value="3"/>
  </enum>

  <enum name="Blend Operand B">
    <value name="Src Minus Dest" value="0"/>
    <value name="Src Plus Dest" value="1"/>
    <value name="Src" value="2"/>
    <value name="Dest" value="3"/>
  </enum>

  <enum name="Blend Operand C">
    <value name="Zero" value="1"/>
    <value name="Src" value="2"/>
    <value name="Dest" value="3"/>
    <value name="Src x 2" value="4"/>
    <value name="Src Alpha" value="5"/>
    <value name="Dest Alpha" value="6"/>
    <value name="Constant" value="7"/>
  </enum>

  <struct name="Blend Function" no-direct-packing="true">
    <!-- Blend equation: A + (B * C) -->
    <field name="A" size="2" start="0" type="Blend Operand A"/>
    <field name="Negate A" size="1" start="3" type="bool"/>
    <field name="B" size="2" start="4" type="Blend Operand B"/>
    <field name="Negate B" size="1" start="7" type="bool"/>
    <field name="C" size="3" start="8" type="Blend Operand C"/>
    <field name="Invert C" size="1" start="11" type="bool"/>
  </struct>

  <struct name="Blend Equation" size="1">
    <field name="RGB" size="12" start="0:0" type="Blend Function"/>
    <field name="Alpha" size="12" start="0:12" type="Blend Function"/>
    <field name="Color Mask" size="4" start="0:28" type="uint"/>
  </struct>

  <enum name="Format">
    <value name="ETC2 RGB8" value="1"/>
    <value name="ETC2 R11 UNORM" value="2"/>
    <value name="ETC2 RGBA8" value="3"/>
    <value name="ETC2 RG11 UNORM" value="4"/>
    <value name="BC1 UNORM" value="7"/>
    <value name="BC2 UNORM" value="8"/>
    <value name="BC3 UNORM" value="9"/>
    <value name="BC4 UNORM" value="10"/>
    <value name="BC4 SNORM" value="11"/>
    <value name="BC5 UNORM" value="12"/>
    <value name="BC5 SNORM" value="13"/>
    <value name="BC6H UF16" value="14"/>
    <value name="BC6H SF16" value="15"/>
    <value name="BC7 UNORM" value="16"/>
    <value name="ETC2 R11 SNORM" value="17"/>
    <value name="ETC2 RG11 SNORM" value="18"/>
    <value name="ETC2 RGB8A1" value="19"/>
    <value name="ASTC 3D LDR" value="20"/>
    <value name="ASTC 3D HDR" value="21"/>
    <value name="ASTC 2D LDR" value="22"/>
    <value name="ASTC 2D HDR" value="23"/>
  </enum>

  <enum name="Func">
    <value name="Never" value="0"/>
    <value name="Less" value="1"/>
    <value name="Equal" value="2"/>
    <value name="Lequal" value="3"/>
    <value name="Greater" value="4"/>
    <value name="Not Equal" value="5"/>
    <value name="Gequal" value="6"/>
    <value name="Always" value="7"/>
  </enum>

  <enum name="Color Buffer Internal Format">
    <value name="Raw Value" value="0"/>
    <value name="R8G8B8A8" value="1"/>
    <value name="R10G10B10A2" value="2"/>
    <value name="R8G8B8A2" value="3"/>
    <value name="R4G4B4A4" value="4"/>
    <value name="R5G6B5A0" value="5"/>
    <value name="R5G5B5A1" value="6"/>
    <value name="RAW8" value="32"/>
    <value name="RAW16" value="33"/>
    <value name="RAW32" value="34"/>
    <value name="RAW64" value="35"/>
    <value name="RAW128" value="36"/>
  </enum>
</panxml>
