import QtQuick.tooling 1.2

// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
// 'qmlplugindump -nonrelocatable QtQuick3D.Materials 1.14'

Module {
    dependencies: ["QtQuick 2.14", "QtQuick.Window 2.1", "QtQuick3D 1.14"]
    Component {
        name: "QQuick3DCustomMaterial"
        defaultProperty: "data"
        prototype: "QQuick3DMaterial"
        exports: ["QtQuick3D.Materials/CustomMaterial 1.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "hasTransparency"; type: "bool" }
        Property { name: "hasRefraction"; type: "bool" }
        Property { name: "alwaysDirty"; type: "bool" }
        Property { name: "shaderInfo"; type: "QQuick3DCustomMaterialShaderInfo"; isPointer: true }
        Property {
            name: "passes"
            type: "QQuick3DCustomMaterialRenderPass"
            isList: true
            isReadonly: true
        }
        Signal {
            name: "hasTransparencyChanged"
            Parameter { name: "hasTransparency"; type: "bool" }
        }
        Signal {
            name: "hasRefractionChanged"
            Parameter { name: "hasRefraction"; type: "bool" }
        }
        Signal {
            name: "alwaysDirtyChanged"
            Parameter { name: "alwaysDirty"; type: "bool" }
        }
        Method {
            name: "setHasTransparency"
            Parameter { name: "hasTransparency"; type: "bool" }
        }
        Method {
            name: "setHasRefraction"
            Parameter { name: "hasRefraction"; type: "bool" }
        }
        Method {
            name: "setShaderInfo"
            Parameter { name: "shaderInfo"; type: "QQuick3DCustomMaterialShaderInfo"; isPointer: true }
        }
        Method {
            name: "setAlwaysDirty"
            Parameter { name: "alwaysDirty"; type: "bool" }
        }
    }
    Component {
        name: "QQuick3DCustomMaterialBlending"
        prototype: "QQuick3DCustomMaterialRenderCommand"
        exports: ["QtQuick3D.Materials/Blending 1.0"]
        exportMetaObjectRevisions: [0]
        Enum {
            name: "SrcBlending"
            values: {
                "Unknown": 0,
                "Zero": 1,
                "One": 2,
                "SrcColor": 3,
                "OneMinusSrcColor": 4,
                "DstColor": 5,
                "OneMinusDstColor": 6,
                "SrcAlpha": 7,
                "OneMinusSrcAlpha": 8,
                "DstAlpha": 9,
                "OneMinusDstAlpha": 10,
                "ConstantColor": 11,
                "OneMinusConstantColor": 12,
                "ConstantAlpha": 13,
                "OneMinusConstantAlpha": 14,
                "SrcAlphaSaturate": 15
            }
        }
        Enum {
            name: "DestBlending"
            values: {
                "Unknown": 0,
                "Zero": 1,
                "One": 2,
                "SrcColor": 3,
                "OneMinusSrcColor": 4,
                "DstColor": 5,
                "OneMinusDstColor": 6,
                "SrcAlpha": 7,
                "OneMinusSrcAlpha": 8,
                "DstAlpha": 9,
                "OneMinusDstAlpha": 10,
                "ConstantColor": 11,
                "OneMinusConstantColor": 12,
                "ConstantAlpha": 13,
                "OneMinusConstantAlpha": 14
            }
        }
        Property { name: "srcBlending"; type: "SrcBlending" }
        Property { name: "destBlending"; type: "DestBlending" }
        Method {
            name: "setDestBlending"
            Parameter { name: "destBlending"; type: "DestBlending" }
        }
        Method {
            name: "setSrcBlending"
            Parameter { name: "srcBlending"; type: "SrcBlending" }
        }
    }
    Component {
        name: "QQuick3DCustomMaterialBuffer"
        prototype: "QObject"
        exports: ["QtQuick3D.Materials/Buffer 1.0"]
        exportMetaObjectRevisions: [0]
        Enum {
            name: "TextureFilterOperation"
            values: {
                "Unknown": 0,
                "Nearest": 1,
                "Linear": 2
            }
        }
        Enum {
            name: "TextureCoordOperation"
            values: {
                "Unknown": 0,
                "ClampToEdge": 1,
                "MirroredRepeat": 2,
                "Repeat": 3
            }
        }
        Enum {
            name: "AllocateBufferFlagValues"
            values: {
                "None": 0,
                "SceneLifetime": 1
            }
        }
        Enum {
            name: "TextureFormat"
            values: {
                "Unknown": 0,
                "R8": 1,
                "R16": 2,
                "R16F": 3,
                "R32I": 4,
                "R32UI": 5,
                "R32F": 6,
                "RG8": 7,
                "RGBA8": 8,
                "RGB8": 9,
                "SRGB8": 10,
                "SRGB8A8": 11,
                "RGB565": 12,
                "RGBA16F": 13,
                "RG16F": 14,
                "RG32F": 15,
                "RGB32F": 16,
                "RGBA32F": 17,
                "R11G11B10": 18,
                "RGB9E5": 19,
                "Depth16": 20,
                "Depth24": 21,
                "Depth32": 22,
                "Depth24Stencil8": 23
            }
        }
        Property { name: "format"; type: "TextureFormat" }
        Property { name: "textureFilterOperation"; type: "TextureFilterOperation" }
        Property { name: "textureCoordOperation"; type: "TextureCoordOperation" }
        Property { name: "sizeMultiplier"; type: "float" }
        Property { name: "bufferFlags"; type: "AllocateBufferFlagValues" }
        Property { name: "name"; type: "QByteArray" }
    }
    Component {
        name: "QQuick3DCustomMaterialBufferBlit"
        prototype: "QQuick3DCustomMaterialRenderCommand"
        exports: ["QtQuick3D.Materials/BufferBlit 1.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "source"; type: "QQuick3DCustomMaterialBuffer"; isPointer: true }
        Property { name: "destination"; type: "QQuick3DCustomMaterialBuffer"; isPointer: true }
    }
    Component {
        name: "QQuick3DCustomMaterialBufferInput"
        prototype: "QQuick3DCustomMaterialRenderCommand"
        exports: ["QtQuick3D.Materials/BufferInput 1.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "buffer"; type: "QQuick3DCustomMaterialBuffer"; isPointer: true }
        Property { name: "param"; type: "QByteArray" }
    }
    Component {
        name: "QQuick3DCustomMaterialRenderCommand"
        prototype: "QObject"
        exports: ["QtQuick3D.Materials/Command 1.0"]
        exportMetaObjectRevisions: [0]
    }
    Component {
        name: "QQuick3DCustomMaterialRenderPass"
        prototype: "QObject"
        exports: ["QtQuick3D.Materials/Pass 1.0"]
        exportMetaObjectRevisions: [0]
        Property {
            name: "commands"
            type: "QQuick3DCustomMaterialRenderCommand"
            isList: true
            isReadonly: true
        }
        Property { name: "output"; type: "QQuick3DCustomMaterialBuffer"; isPointer: true }
        Property { name: "shaders"; type: "QQuick3DCustomMaterialShader"; isList: true; isReadonly: true }
    }
    Component {
        name: "QQuick3DCustomMaterialRenderState"
        prototype: "QQuick3DCustomMaterialRenderCommand"
        exports: ["QtQuick3D.Materials/RenderState 1.0"]
        exportMetaObjectRevisions: [0]
        Enum {
            name: "RenderState"
            values: {
                "Unknown": 0,
                "Blend": 1,
                "DepthTest": 3,
                "StencilTest": 4,
                "ScissorTest": 5,
                "DepthWrite": 6,
                "Multisample": 7
            }
        }
        Property { name: "renderState"; type: "RenderState" }
        Property { name: "enabled"; type: "bool" }
        Method {
            name: "setRenderState"
            Parameter { name: "renderState"; type: "RenderState" }
        }
    }
    Component {
        name: "QQuick3DCustomMaterialShader"
        prototype: "QObject"
        exports: ["QtQuick3D.Materials/Shader 1.0"]
        exportMetaObjectRevisions: [0]
        Enum {
            name: "Stage"
            values: {
                "Shared": 0,
                "Vertex": 1,
                "Fragment": 2,
                "Geometry": 3,
                "Compute": 4
            }
        }
        Property { name: "shader"; type: "QByteArray" }
        Property { name: "stage"; type: "Stage" }
    }
    Component {
        name: "QQuick3DCustomMaterialShaderInfo"
        prototype: "QObject"
        exports: ["QtQuick3D.Materials/ShaderInfo 1.0"]
        exportMetaObjectRevisions: [0]
        Enum {
            name: "MaterialShaderKeyValues"
            values: {
                "Diffuse": 1,
                "Specular": 2,
                "Cutout": 4,
                "Refraction": 8,
                "Transparent": 16,
                "Displace": 32,
                "Transmissive": 64,
                "Glossy": 3
            }
        }
        Property { name: "version"; type: "QByteArray" }
        Property { name: "type"; type: "QByteArray" }
        Property { name: "shaderKey"; type: "int" }
    }
    Component {
        name: "QQuick3DCustomMaterialTextureInput"
        prototype: "QObject"
        exports: ["QtQuick3D.Materials/TextureInput 1.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "texture"; type: "QQuick3DTexture"; isPointer: true }
        Property { name: "enabled"; type: "bool" }
        Signal {
            name: "textureDirty"
            Parameter { name: "texture"; type: "QQuick3DCustomMaterialTextureInput"; isPointer: true }
        }
        Method {
            name: "setTexture"
            Parameter { name: "texture"; type: "QQuick3DTexture"; isPointer: true }
        }
    }
}
