{
  "materials": {
    "version": "1.0.0",

    "ui_base": {
      "vertexShader": "shaders/color_uv.vertex",
      "vrGeometryShader": "shaders/color_uv.geometry",
      "fragmentShader": "shaders/color_texture.fragment",

      "+states": [
        "EnableStencilTest",
        "DisableDepthTest",
        "Blending"
      ],

      "frontFace": {
        "stencilFunc": "Equal",
        "stencilFailOp": "Keep",
        "stencilDepthFailOp": "Keep",
        "stencilPassOp": "Keep"
      },

      "backFace": {
        "stencilFunc": "Equal",
        "stencilFailOp": "Keep",
        "stencilDepthFailOp": "Keep",
        "stencilPassOp": "Keep"
      },

      "stencilReadMask": 240,
      "stencilWriteMask": 240,

      "msaaSupport": "Both",

      "+samplerStates": [
        {
          "samplerIndex": 0,
          "textureFilter": "Point"
        },
        {
          "samplerIndex": 1,
          "textureFilter": "Point"
        }
      ],

      "vertexFields": [
        { "field": "Position" },
        { "field": "Color" },
        { "field": "UV0" }
      ]

    },

    "ui_texture_and_color:ui_base": {
      "vertexShader": "shaders/color_uv.vertex",
      "vrGeometryShader": "shaders/color_uv.geometry",
      "fragmentShader": "shaders/color_texture.fragment"

    },

    "ui_texture_and_color_blur:ui_texture_and_color": {
      "+samplerStates": [
        {
          "samplerIndex": 0,
          "textureFilter": "Bilinear"
        }
      ]
    },

    "ui_texture_and_color_tint:ui_texture_and_color": {
      "+defines": [
        "ENABLE_VERTEX_TINT_MASK"
      ]
    },

    "ui_fill_color:ui_base": {
      "vertexShader": "shaders/position.vertex",
      "vrGeometryShader": "shaders/position.geometry",
      "fragmentShader": "shaders/current_color.fragment",
      "vertexFields": [
        { "field": "Position" }
      ]

    },

    "ui_fill_stencil:ui_base": {
      "vertexShader": "shaders/position.vertex",
      "vrGeometryShader": "shaders/position.geometry",
      "fragmentShader": "shaders/current_color.fragment",

      "+states": [
        "StencilWrite",
        "EnableStencilTest",
        "DisableColorWrite",
        "DisableDepthWrite"
      ],

      "frontFace": {
        "stencilFunc": "Always",
        "stencilFailOp": "Replace",
        "stencilDepthFailOp": "Replace",
        "stencilPassOp": "Replace"
      },

      "backFace": {
        "stencilFunc": "Always",
        "stencilFailOp": "Replace",
        "stencilDepthFailOp": "Replace",
        "stencilPassOp": "Replace"
      },

      "stencilRefOverride": 0,

      "vertexFields": [
        { "field": "Position" }
      ]

    },

    "ui_fill_gradient:ui_base": {
      "+states": [
        "DisableDepthWrite"
      ],

      "vertexShader": "shaders/color.vertex",
      "vrGeometryShader": "shaders/color.geometry",
      "fragmentShader": "shaders/color.fragment",

      "vertexFields": [
        { "field": "Position" },
        { "field": "Color" }
      ]

    },

    "ui_textured:ui_base": {
      "vertexShader": "shaders/uv.vertex",
      "vrGeometryShader": "shaders/uv.geometry",
      "fragmentShader": "shaders/texture.fragment",
      "vertexFields": [
        { "field": "Position" },
        { "field": "UV0" }
      ]
    },

    "ui_textured_premultiplied_alpha:ui_textured": {
      "blendSrc": "One"
    },

    "ui_textured_and_glcolor:ui_base": {
      "+states": [
        "DisableDepthWrite"
      ],
      "vertexShader": "shaders/uv.vertex",
      "vrGeometryShader": "shaders/uv.geometry",
      "fragmentShader": "shaders/texture_ccolor.fragment",

      "alphaDst": "DestColor",
      "vertexFields": [
        { "field": "Position" },
        { "field": "UV0" }
      ]
    },

    "ui_textured_and_glcolor_sprite:ui_textured_and_glcolor": {
    },

    "ui_item:ui_base": {
      "vertexShader": "shaders/color_uv.vertex",
      "vrGeometryShader": "shaders/color_uv.geometry",
      "fragmentShader": "shaders/color_texture.fragment",

      "+defines": [ "ALPHA_TEST", "ENABLE_VERTEX_TINT_MASK" ]

    },

    "ui_invert_overlay:ui_base": {

      "blendSrc": "OneMinusDestColor",
      "blendDst": "OneMinusSrcColor",

      "vertexShader": "shaders/position.vertex",
      "vrGeometryShader": "shaders/position.geometry",
      "fragmentShader": "shaders/flat_white.fragment",
      "vertexFields": [
        { "field": "Position" }
      ]
    },

    "ui_cubemap:ui_base": {

      "vertexShader": "shaders/uv_time_rotate.vertex",
      "vrGeometryShader": "shaders/uv.geometry",
      "fragmentShader": "shaders/texture.fragment",
      "+samplerStates": [
        {
          "samplerIndex": 0,
          "textureFilter": "Bilinear"
        }
      ],
      "vertexFields": [
        { "field": "Position" },
        { "field": "UV0" }
      ]

    },

    "ui_crosshair:ui_invert_overlay": {
      "vertexShader": "shaders/uv.vertex",
      "vrGeometryShader": "shaders/uv.geometry",
      "fragmentShader": "shaders/texture.fragment",
      "vertexFields": [
        { "field": "Position" },
        { "field": "UV0" }
      ]
    },

    "animated_texture_blit": {
      "+states": [
        "DisableDepthTest",
        "DisableCulling"
      ],

      "frontFace": {
        "stencilFunc": "Equal",
        "stencilFailOp": "Keep",
        "stencilDepthFailOp": "Keep",
        "stencilPassOp": "Keep"
      },

      "backFace": {
        "stencilFunc": "Equal",
        "stencilFailOp": "Keep",
        "stencilDepthFailOp": "Keep",
        "stencilPassOp": "Keep"
      },

      "stencilReadMask": 240,
      "stencilWriteMask": 240,

      "vertexShader": "shaders/uv_blend_flipbook.vertex",
      "vrGeometryShader": "shaders/uv_blend.geometry",
      "fragmentShader": "shaders/texture_blend.fragment",
      "vertexFields": [
        { "field": "Position" },
        { "field": "UV0" }
      ],

      "+samplerStates": [
        {
          "samplerIndex": 0,
          "textureFilter": "Point"
        }
      ],

      "isAnimatedTexture": 1
    }

  }

}
