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 QtCanvas3D 1.1'

Module {
    dependencies: []
    Component {
        name: "QQuickItem"
        defaultProperty: "data"
        prototype: "QObject"
        Enum {
            name: "TransformOrigin"
            values: {
                "TopLeft": 0,
                "Top": 1,
                "TopRight": 2,
                "Left": 3,
                "Center": 4,
                "Right": 5,
                "BottomLeft": 6,
                "Bottom": 7,
                "BottomRight": 8
            }
        }
        Property { name: "parent"; type: "QQuickItem"; isPointer: true }
        Property { name: "data"; type: "QObject"; isList: true; isReadonly: true }
        Property { name: "resources"; type: "QObject"; isList: true; isReadonly: true }
        Property { name: "children"; type: "QQuickItem"; isList: true; isReadonly: true }
        Property { name: "x"; type: "double" }
        Property { name: "y"; type: "double" }
        Property { name: "z"; type: "double" }
        Property { name: "width"; type: "double" }
        Property { name: "height"; type: "double" }
        Property { name: "opacity"; type: "double" }
        Property { name: "enabled"; type: "bool" }
        Property { name: "visible"; type: "bool" }
        Property { name: "visibleChildren"; type: "QQuickItem"; isList: true; isReadonly: true }
        Property { name: "states"; type: "QQuickState"; isList: true; isReadonly: true }
        Property { name: "transitions"; type: "QQuickTransition"; isList: true; isReadonly: true }
        Property { name: "state"; type: "string" }
        Property { name: "childrenRect"; type: "QRectF"; isReadonly: true }
        Property { name: "anchors"; type: "QQuickAnchors"; isReadonly: true; isPointer: true }
        Property { name: "left"; type: "QQuickAnchorLine"; isReadonly: true }
        Property { name: "right"; type: "QQuickAnchorLine"; isReadonly: true }
        Property { name: "horizontalCenter"; type: "QQuickAnchorLine"; isReadonly: true }
        Property { name: "top"; type: "QQuickAnchorLine"; isReadonly: true }
        Property { name: "bottom"; type: "QQuickAnchorLine"; isReadonly: true }
        Property { name: "verticalCenter"; type: "QQuickAnchorLine"; isReadonly: true }
        Property { name: "baseline"; type: "QQuickAnchorLine"; isReadonly: true }
        Property { name: "baselineOffset"; type: "double" }
        Property { name: "clip"; type: "bool" }
        Property { name: "focus"; type: "bool" }
        Property { name: "activeFocus"; type: "bool"; isReadonly: true }
        Property { name: "activeFocusOnTab"; revision: 1; type: "bool" }
        Property { name: "rotation"; type: "double" }
        Property { name: "scale"; type: "double" }
        Property { name: "transformOrigin"; type: "TransformOrigin" }
        Property { name: "transformOriginPoint"; type: "QPointF"; isReadonly: true }
        Property { name: "transform"; type: "QQuickTransform"; isList: true; isReadonly: true }
        Property { name: "smooth"; type: "bool" }
        Property { name: "antialiasing"; type: "bool" }
        Property { name: "implicitWidth"; type: "double" }
        Property { name: "implicitHeight"; type: "double" }
        Property { name: "layer"; type: "QQuickItemLayer"; isReadonly: true; isPointer: true }
        Signal {
            name: "childrenRectChanged"
            Parameter { type: "QRectF" }
        }
        Signal {
            name: "baselineOffsetChanged"
            Parameter { type: "double" }
        }
        Signal {
            name: "stateChanged"
            Parameter { type: "string" }
        }
        Signal {
            name: "focusChanged"
            Parameter { type: "bool" }
        }
        Signal {
            name: "activeFocusChanged"
            Parameter { type: "bool" }
        }
        Signal {
            name: "activeFocusOnTabChanged"
            revision: 1
            Parameter { type: "bool" }
        }
        Signal {
            name: "parentChanged"
            Parameter { type: "QQuickItem"; isPointer: true }
        }
        Signal {
            name: "transformOriginChanged"
            Parameter { type: "TransformOrigin" }
        }
        Signal {
            name: "smoothChanged"
            Parameter { type: "bool" }
        }
        Signal {
            name: "antialiasingChanged"
            Parameter { type: "bool" }
        }
        Signal {
            name: "clipChanged"
            Parameter { type: "bool" }
        }
        Signal {
            name: "windowChanged"
            revision: 1
            Parameter { name: "window"; type: "QQuickWindow"; isPointer: true }
        }
        Method { name: "update" }
        Method {
            name: "grabToImage"
            revision: 2
            type: "bool"
            Parameter { name: "callback"; type: "QJSValue" }
            Parameter { name: "targetSize"; type: "QSize" }
        }
        Method {
            name: "grabToImage"
            revision: 2
            type: "bool"
            Parameter { name: "callback"; type: "QJSValue" }
        }
        Method {
            name: "contains"
            type: "bool"
            Parameter { name: "point"; type: "QPointF" }
        }
        Method {
            name: "mapFromItem"
            Parameter { type: "QQmlV4Function"; isPointer: true }
        }
        Method {
            name: "mapToItem"
            Parameter { type: "QQmlV4Function"; isPointer: true }
        }
        Method { name: "forceActiveFocus" }
        Method {
            name: "forceActiveFocus"
            Parameter { name: "reason"; type: "Qt::FocusReason" }
        }
        Method {
            name: "nextItemInFocusChain"
            revision: 1
            type: "QQuickItem*"
            Parameter { name: "forward"; type: "bool" }
        }
        Method { name: "nextItemInFocusChain"; revision: 1; type: "QQuickItem*" }
        Method {
            name: "childAt"
            type: "QQuickItem*"
            Parameter { name: "x"; type: "double" }
            Parameter { name: "y"; type: "double" }
        }
    }
    Component {
        name: "QtCanvas3D::Canvas"
        defaultProperty: "data"
        prototype: "QQuickItem"
        exports: ["QtCanvas3D/Canvas3D 1.0", "QtCanvas3D/Canvas3D 1.1"]
        exportMetaObjectRevisions: [0, 1]
        Enum {
            name: "RenderTarget"
            values: {
                "RenderTargetOffscreenBuffer": 0,
                "RenderTargetBackground": 1,
                "RenderTargetForeground": 2
            }
        }
        Property { name: "context"; type: "CanvasContext"; isReadonly: true; isPointer: true }
        Property { name: "devicePixelRatio"; type: "float"; isReadonly: true }
        Property { name: "fps"; type: "uint"; isReadonly: true }
        Property { name: "pixelSize"; type: "QSize" }
        Property { name: "width"; type: "int" }
        Property { name: "height"; type: "int" }
        Property { name: "renderTarget"; revision: 1; type: "RenderTarget" }
        Property { name: "renderOnDemand"; revision: 1; type: "bool" }
        Signal { name: "needRender" }
        Signal {
            name: "devicePixelRatioChanged"
            Parameter { name: "ratio"; type: "float" }
        }
        Signal {
            name: "contextChanged"
            Parameter { name: "context"; type: "CanvasContext"; isPointer: true }
        }
        Signal {
            name: "fpsChanged"
            Parameter { name: "fps"; type: "uint" }
        }
        Signal {
            name: "pixelSizeChanged"
            Parameter { name: "pixelSize"; type: "QSize" }
        }
        Signal { name: "contextLost" }
        Signal { name: "contextRestored" }
        Signal { name: "initializeGL" }
        Signal { name: "paintGL" }
        Signal {
            name: "resizeGL"
            Parameter { name: "width"; type: "int" }
            Parameter { name: "height"; type: "int" }
            Parameter { name: "devicePixelRatio"; type: "float" }
        }
        Signal {
            name: "textureReady"
            Parameter { name: "id"; type: "int" }
            Parameter { name: "size"; type: "QSize" }
            Parameter { name: "devicePixelRatio"; type: "float" }
        }
        Method { name: "requestRender" }
        Method { name: "frameTimeMs"; type: "int" }
        Method { name: "frameSetupTimeMs"; revision: 1; type: "int" }
        Method {
            name: "getContext"
            type: "QJSValue"
            Parameter { name: "name"; type: "string" }
        }
        Method {
            name: "getContext"
            type: "QJSValue"
            Parameter { name: "name"; type: "string" }
            Parameter { name: "options"; type: "QVariantMap" }
        }
    }
    Component {
        name: "QtCanvas3D::CanvasAbstractObject"
        prototype: "QObject"
        Property { name: "name"; type: "string" }
        Property { name: "invalidated"; type: "bool"; isReadonly: true }
        Signal {
            name: "nameChanged"
            Parameter { name: "name"; type: "string" }
        }
        Signal {
            name: "invalidatedChanged"
            Parameter { name: "invalidated"; type: "bool" }
        }
    }
    Component {
        name: "QtCanvas3D::CanvasActiveInfo"
        prototype: "QObject"
        exports: ["QtCanvas3D/Canvas3DActiveInfo 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "size"; type: "int"; isReadonly: true }
        Property { name: "type"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "name"; type: "string"; isReadonly: true }
        Signal {
            name: "sizeChanged"
            Parameter { name: "size"; type: "int" }
        }
        Signal {
            name: "typeChanged"
            Parameter { name: "type"; type: "CanvasContext::glEnums" }
        }
        Signal {
            name: "nameChanged"
            Parameter { name: "name"; type: "string" }
        }
    }
    Component {
        name: "QtCanvas3D::CanvasBuffer"
        prototype: "QtCanvas3D::CanvasAbstractObject"
        exports: ["QtCanvas3D/Canvas3DBuffer 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
    }
    Component {
        name: "QtCanvas3D::CanvasContext"
        prototype: "QtCanvas3D::CanvasAbstractObject"
        exports: ["QtCanvas3D/Context3D 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "glEnums"
            values: {
                "DEPTH_BUFFER_BIT": 256,
                "STENCIL_BUFFER_BIT": 1024,
                "COLOR_BUFFER_BIT": 16384,
                "DEPTH_AND_COLOR_BUFFER_BIT": 16640,
                "DEPTH_AND_STENCIL_AND_COLOR_BUFFER_BIT": 17664,
                "POINTS": 0,
                "LINES": 1,
                "LINE_LOOP": 2,
                "LINE_STRIP": 3,
                "TRIANGLES": 4,
                "TRIANGLE_STRIP": 5,
                "TRIANGLE_FAN": 6,
                "ZERO": 0,
                "ONE": 1,
                "SRC_COLOR": 768,
                "ONE_MINUS_SRC_COLOR": 769,
                "SRC_ALPHA": 770,
                "ONE_MINUS_SRC_ALPHA": 771,
                "DST_ALPHA": 772,
                "ONE_MINUS_DST_ALPHA": 773,
                "DST_COLOR": 774,
                "ONE_MINUS_DST_COLOR": 775,
                "SRC_ALPHA_SATURATE": 776,
                "FUNC_ADD": 32774,
                "BLEND_EQUATION": 32777,
                "BLEND_EQUATION_RGB": 32777,
                "BLEND_EQUATION_ALPHA": 34877,
                "FUNC_SUBTRACT": 32778,
                "FUNC_REVERSE_SUBTRACT": 32779,
                "BLEND_DST_RGB": 32968,
                "BLEND_SRC_RGB": 32969,
                "BLEND_DST_ALPHA": 32970,
                "BLEND_SRC_ALPHA": 32971,
                "CONSTANT_COLOR": 32769,
                "ONE_MINUS_CONSTANT_COLOR": 32770,
                "CONSTANT_ALPHA": 32771,
                "ONE_MINUS_CONSTANT_ALPHA": 32772,
                "BLEND_COLOR": 32773,
                "ARRAY_BUFFER": 34962,
                "ELEMENT_ARRAY_BUFFER": 34963,
                "ARRAY_BUFFER_BINDING": 34964,
                "ELEMENT_ARRAY_BUFFER_BINDING": 34965,
                "STREAM_DRAW": 35040,
                "STATIC_DRAW": 35044,
                "DYNAMIC_DRAW": 35048,
                "BUFFER_SIZE": 34660,
                "BUFFER_USAGE": 34661,
                "CURRENT_VERTEX_ATTRIB": 34342,
                "FRONT": 1028,
                "BACK": 1029,
                "FRONT_AND_BACK": 1032,
                "CULL_FACE": 2884,
                "BLEND": 3042,
                "DITHER": 3024,
                "STENCIL_TEST": 2960,
                "DEPTH_TEST": 2929,
                "SCISSOR_TEST": 3089,
                "POLYGON_OFFSET_FILL": 32823,
                "SAMPLE_ALPHA_TO_COVERAGE": 32926,
                "SAMPLE_COVERAGE": 32928,
                "NO_ERROR": 0,
                "INVALID_ENUM": 1280,
                "INVALID_VALUE": 1281,
                "INVALID_OPERATION": 1282,
                "OUT_OF_MEMORY": 1285,
                "CW": 2304,
                "CCW": 2305,
                "LINE_WIDTH": 2849,
                "ALIASED_POINT_SIZE_RANGE": 33901,
                "ALIASED_LINE_WIDTH_RANGE": 33902,
                "CULL_FACE_MODE": 2885,
                "FRONT_FACE": 2886,
                "DEPTH_RANGE": 2928,
                "DEPTH_WRITEMASK": 2930,
                "DEPTH_CLEAR_VALUE": 2931,
                "DEPTH_FUNC": 2932,
                "STENCIL_CLEAR_VALUE": 2961,
                "STENCIL_FUNC": 2962,
                "STENCIL_FAIL": 2964,
                "STENCIL_PASS_DEPTH_FAIL": 2965,
                "STENCIL_PASS_DEPTH_PASS": 2966,
                "STENCIL_REF": 2967,
                "STENCIL_VALUE_MASK": 2963,
                "STENCIL_WRITEMASK": 2968,
                "STENCIL_BACK_FUNC": 34816,
                "STENCIL_BACK_FAIL": 34817,
                "STENCIL_BACK_PASS_DEPTH_FAIL": 34818,
                "STENCIL_BACK_PASS_DEPTH_PASS": 34819,
                "STENCIL_BACK_REF": 36003,
                "STENCIL_BACK_VALUE_MASK": 36004,
                "STENCIL_BACK_WRITEMASK": 36005,
                "VIEWPORT": 2978,
                "SCISSOR_BOX": 3088,
                "COLOR_CLEAR_VALUE": 3106,
                "COLOR_WRITEMASK": 3107,
                "UNPACK_ALIGNMENT": 3317,
                "PACK_ALIGNMENT": 3333,
                "MAX_TEXTURE_SIZE": 3379,
                "MAX_VIEWPORT_DIMS": 3386,
                "SUBPIXEL_BITS": 3408,
                "RED_BITS": 3410,
                "GREEN_BITS": 3411,
                "BLUE_BITS": 3412,
                "ALPHA_BITS": 3413,
                "DEPTH_BITS": 3414,
                "STENCIL_BITS": 3415,
                "POLYGON_OFFSET_UNITS": 10752,
                "POLYGON_OFFSET_FACTOR": 32824,
                "TEXTURE_BINDING_2D": 32873,
                "SAMPLE_BUFFERS": 32936,
                "SAMPLES": 32937,
                "SAMPLE_COVERAGE_VALUE": 32938,
                "SAMPLE_COVERAGE_INVERT": 32939,
                "COMPRESSED_TEXTURE_FORMATS": 34467,
                "DONT_CARE": 4352,
                "FASTEST": 4353,
                "NICEST": 4354,
                "GENERATE_MIPMAP_HINT": 33170,
                "BYTE": 5120,
                "UNSIGNED_BYTE": 5121,
                "SHORT": 5122,
                "UNSIGNED_SHORT": 5123,
                "INT": 5124,
                "UNSIGNED_INT": 5125,
                "FLOAT": 5126,
                "DEPTH_COMPONENT": 6402,
                "ALPHA": 6406,
                "RGB": 6407,
                "RGBA": 6408,
                "LUMINANCE": 6409,
                "LUMINANCE_ALPHA": 6410,
                "UNSIGNED_SHORT_4_4_4_4": 32819,
                "UNSIGNED_SHORT_5_5_5_1": 32820,
                "UNSIGNED_SHORT_5_6_5": 33635,
                "FRAGMENT_SHADER": 35632,
                "VERTEX_SHADER": 35633,
                "MAX_VERTEX_ATTRIBS": 34921,
                "MAX_VERTEX_UNIFORM_VECTORS": 36347,
                "MAX_VARYING_VECTORS": 36348,
                "MAX_COMBINED_TEXTURE_IMAGE_UNITS": 35661,
                "MAX_VERTEX_TEXTURE_IMAGE_UNITS": 35660,
                "MAX_TEXTURE_IMAGE_UNITS": 34930,
                "MAX_FRAGMENT_UNIFORM_VECTORS": 36349,
                "SHADER_TYPE": 35663,
                "DELETE_STATUS": 35712,
                "LINK_STATUS": 35714,
                "VALIDATE_STATUS": 35715,
                "ATTACHED_SHADERS": 35717,
                "ACTIVE_UNIFORMS": 35718,
                "ACTIVE_ATTRIBUTES": 35721,
                "SHADING_LANGUAGE_VERSION": 35724,
                "CURRENT_PROGRAM": 35725,
                "NEVER": 512,
                "LESS": 513,
                "EQUAL": 514,
                "LEQUAL": 515,
                "GREATER": 516,
                "NOTEQUAL": 517,
                "GEQUAL": 518,
                "ALWAYS": 519,
                "KEEP": 7680,
                "REPLACE": 7681,
                "INCR": 7682,
                "DECR": 7683,
                "INVERT": 5386,
                "INCR_WRAP": 34055,
                "DECR_WRAP": 34056,
                "VENDOR": 7936,
                "RENDERER": 7937,
                "VERSION": 7938,
                "NEAREST": 9728,
                "LINEAR": 9729,
                "NEAREST_MIPMAP_NEAREST": 9984,
                "LINEAR_MIPMAP_NEAREST": 9985,
                "NEAREST_MIPMAP_LINEAR": 9986,
                "LINEAR_MIPMAP_LINEAR": 9987,
                "TEXTURE_MAG_FILTER": 10240,
                "TEXTURE_MIN_FILTER": 10241,
                "TEXTURE_WRAP_S": 10242,
                "TEXTURE_WRAP_T": 10243,
                "TEXTURE_2D": 3553,
                "TEXTURE": 5890,
                "TEXTURE_CUBE_MAP": 34067,
                "TEXTURE_BINDING_CUBE_MAP": 34068,
                "TEXTURE_CUBE_MAP_POSITIVE_X": 34069,
                "TEXTURE_CUBE_MAP_NEGATIVE_X": 34070,
                "TEXTURE_CUBE_MAP_POSITIVE_Y": 34071,
                "TEXTURE_CUBE_MAP_NEGATIVE_Y": 34072,
                "TEXTURE_CUBE_MAP_POSITIVE_Z": 34073,
                "TEXTURE_CUBE_MAP_NEGATIVE_Z": 34074,
                "MAX_CUBE_MAP_TEXTURE_SIZE": 34076,
                "TEXTURE0": 33984,
                "TEXTURE1": 33985,
                "TEXTURE2": 33986,
                "TEXTURE3": 33987,
                "TEXTURE4": 33988,
                "TEXTURE5": 33989,
                "TEXTURE6": 33990,
                "TEXTURE7": 33991,
                "TEXTURE8": 33992,
                "TEXTURE9": 33993,
                "TEXTURE10": 33994,
                "TEXTURE11": 33995,
                "TEXTURE12": 33996,
                "TEXTURE13": 33997,
                "TEXTURE14": 33998,
                "TEXTURE15": 33999,
                "TEXTURE16": 34000,
                "TEXTURE17": 34001,
                "TEXTURE18": 34002,
                "TEXTURE19": 34003,
                "TEXTURE20": 34004,
                "TEXTURE21": 34005,
                "TEXTURE22": 34006,
                "TEXTURE23": 34007,
                "TEXTURE24": 34008,
                "TEXTURE25": 34009,
                "TEXTURE26": 34010,
                "TEXTURE27": 34011,
                "TEXTURE28": 34012,
                "TEXTURE29": 34013,
                "TEXTURE30": 34014,
                "TEXTURE31": 34015,
                "ACTIVE_TEXTURE": 34016,
                "REPEAT": 10497,
                "CLAMP_TO_EDGE": 33071,
                "MIRRORED_REPEAT": 33648,
                "FLOAT_VEC2": 35664,
                "FLOAT_VEC3": 35665,
                "FLOAT_VEC4": 35666,
                "INT_VEC2": 35667,
                "INT_VEC3": 35668,
                "INT_VEC4": 35669,
                "BOOL": 35670,
                "BOOL_VEC2": 35671,
                "BOOL_VEC3": 35672,
                "BOOL_VEC4": 35673,
                "FLOAT_MAT2": 35674,
                "FLOAT_MAT3": 35675,
                "FLOAT_MAT4": 35676,
                "SAMPLER_2D": 35678,
                "SAMPLER_CUBE": 35680,
                "VERTEX_ATTRIB_ARRAY_ENABLED": 34338,
                "VERTEX_ATTRIB_ARRAY_SIZE": 34339,
                "VERTEX_ATTRIB_ARRAY_STRIDE": 34340,
                "VERTEX_ATTRIB_ARRAY_TYPE": 34341,
                "VERTEX_ATTRIB_ARRAY_NORMALIZED": 34922,
                "VERTEX_ATTRIB_ARRAY_POINTER": 34373,
                "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING": 34975,
                "IMPLEMENTATION_COLOR_READ_TYPE": 35738,
                "IMPLEMENTATION_COLOR_READ_FORMAT": 35739,
                "COMPILE_STATUS": 35713,
                "FRAGMENT_SHADER_DERIVATIVE_HINT_OES": 35723,
                "LOW_FLOAT": 36336,
                "MEDIUM_FLOAT": 36337,
                "HIGH_FLOAT": 36338,
                "LOW_INT": 36339,
                "MEDIUM_INT": 36340,
                "HIGH_INT": 36341,
                "FRAMEBUFFER": 36160,
                "RENDERBUFFER": 36161,
                "RGBA4": 32854,
                "RGB5_A1": 32855,
                "RGB565": 36194,
                "DEPTH_COMPONENT16": 33189,
                "STENCIL_INDEX": 6401,
                "STENCIL_INDEX8": 36168,
                "DEPTH_STENCIL": 34041,
                "RENDERBUFFER_WIDTH": 36162,
                "RENDERBUFFER_HEIGHT": 36163,
                "RENDERBUFFER_INTERNAL_FORMAT": 36164,
                "RENDERBUFFER_RED_SIZE": 36176,
                "RENDERBUFFER_GREEN_SIZE": 36177,
                "RENDERBUFFER_BLUE_SIZE": 36178,
                "RENDERBUFFER_ALPHA_SIZE": 36179,
                "RENDERBUFFER_DEPTH_SIZE": 36180,
                "RENDERBUFFER_STENCIL_SIZE": 36181,
                "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE": 36048,
                "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME": 36049,
                "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL": 36050,
                "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE": 36051,
                "COLOR_ATTACHMENT0": 36064,
                "DEPTH_ATTACHMENT": 36096,
                "STENCIL_ATTACHMENT": 36128,
                "DEPTH_STENCIL_ATTACHMENT": 33306,
                "NONE": 0,
                "FRAMEBUFFER_COMPLETE": 36053,
                "FRAMEBUFFER_INCOMPLETE_ATTACHMENT": 36054,
                "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT": 36055,
                "FRAMEBUFFER_INCOMPLETE_DIMENSIONS": 36057,
                "FRAMEBUFFER_UNSUPPORTED": 36061,
                "FRAMEBUFFER_BINDING": 36006,
                "RENDERBUFFER_BINDING": 36007,
                "MAX_RENDERBUFFER_SIZE": 34024,
                "INVALID_FRAMEBUFFER_OPERATION": 1286,
                "UNPACK_FLIP_Y_WEBGL": 37440,
                "UNPACK_PREMULTIPLY_ALPHA_WEBGL": 37441,
                "CONTEXT_LOST_WEBGL": 37442,
                "UNPACK_COLORSPACE_CONVERSION_WEBGL": 37443,
                "BROWSER_DEFAULT_WEBGL": 37444,
                "UNMASKED_VENDOR_WEBGL": 37445,
                "UNMASKED_RENDERER_WEBGL": 37446,
                "COMPRESSED_RGB_S3TC_DXT1_EXT": 33776,
                "COMPRESSED_RGBA_S3TC_DXT1_EXT": 33777,
                "COMPRESSED_RGBA_S3TC_DXT3_EXT": 33778,
                "COMPRESSED_RGBA_S3TC_DXT5_EXT": 33779,
                "COMPRESSED_RGB_PVRTC_4BPPV1_IMG": 35840,
                "COMPRESSED_RGB_PVRTC_2BPPV1_IMG": 35841,
                "COMPRESSED_RGBA_PVRTC_4BPPV1_IMG": 35842,
                "COMPRESSED_RGBA_PVRTC_2BPPV1_IMG": 35843
            }
        }
        Property { name: "canvas"; type: "Canvas"; isReadonly: true; isPointer: true }
        Property { name: "drawingBufferWidth"; type: "uint"; isReadonly: true }
        Property { name: "drawingBufferHeight"; type: "uint"; isReadonly: true }
        Property {
            name: "DEPTH_BUFFER_BIT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "STENCIL_BUFFER_BIT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "COLOR_BUFFER_BIT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "POINTS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "LINES"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "LINE_LOOP"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "LINE_STRIP"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TRIANGLES"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "TRIANGLE_STRIP"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "TRIANGLE_FAN"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "ZERO"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "ONE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "SRC_COLOR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "ONE_MINUS_SRC_COLOR"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "SRC_ALPHA"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "ONE_MINUS_SRC_ALPHA"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "DST_ALPHA"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "ONE_MINUS_DST_ALPHA"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "DST_COLOR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "ONE_MINUS_DST_COLOR"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "SRC_ALPHA_SATURATE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "FUNC_ADD"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "BLEND_EQUATION"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "BLEND_EQUATION_RGB"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "BLEND_EQUATION_ALPHA"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "FUNC_SUBTRACT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "FUNC_REVERSE_SUBTRACT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "BLEND_DST_RGB"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "BLEND_SRC_RGB"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "BLEND_DST_ALPHA"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "BLEND_SRC_ALPHA"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "CONSTANT_COLOR"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "ONE_MINUS_CONSTANT_COLOR"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "CONSTANT_ALPHA"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "ONE_MINUS_CONSTANT_ALPHA"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "BLEND_COLOR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "ARRAY_BUFFER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "ELEMENT_ARRAY_BUFFER"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "ARRAY_BUFFER_BINDING"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "ELEMENT_ARRAY_BUFFER_BINDING"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "STREAM_DRAW"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "STATIC_DRAW"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "DYNAMIC_DRAW"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "BUFFER_SIZE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "BUFFER_USAGE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "CURRENT_VERTEX_ATTRIB"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "FRONT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "BACK"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "FRONT_AND_BACK"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "CULL_FACE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "BLEND"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "DITHER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "STENCIL_TEST"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "DEPTH_TEST"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "SCISSOR_TEST"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "POLYGON_OFFSET_FILL"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "SAMPLE_ALPHA_TO_COVERAGE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "SAMPLE_COVERAGE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "NO_ERROR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "INVALID_ENUM"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "INVALID_VALUE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "INVALID_OPERATION"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "OUT_OF_MEMORY"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "CW"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "CCW"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "LINE_WIDTH"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "ALIASED_POINT_SIZE_RANGE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "ALIASED_LINE_WIDTH_RANGE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "CULL_FACE_MODE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "FRONT_FACE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "DEPTH_RANGE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "DEPTH_WRITEMASK"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "DEPTH_CLEAR_VALUE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "DEPTH_FUNC"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "STENCIL_CLEAR_VALUE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "STENCIL_FUNC"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "STENCIL_FAIL"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "STENCIL_PASS_DEPTH_FAIL"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "STENCIL_PASS_DEPTH_PASS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "STENCIL_REF"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "STENCIL_VALUE_MASK"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "STENCIL_WRITEMASK"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "STENCIL_BACK_FUNC"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "STENCIL_BACK_FAIL"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "STENCIL_BACK_PASS_DEPTH_FAIL"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "STENCIL_BACK_PASS_DEPTH_PASS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "STENCIL_BACK_REF"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "STENCIL_BACK_VALUE_MASK"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "STENCIL_BACK_WRITEMASK"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "VIEWPORT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "SCISSOR_BOX"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "COLOR_CLEAR_VALUE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "COLOR_WRITEMASK"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "UNPACK_ALIGNMENT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "PACK_ALIGNMENT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "MAX_TEXTURE_SIZE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "MAX_VIEWPORT_DIMS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "SUBPIXEL_BITS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "RED_BITS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "GREEN_BITS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "BLUE_BITS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "ALPHA_BITS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "DEPTH_BITS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "STENCIL_BITS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "POLYGON_OFFSET_UNITS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "POLYGON_OFFSET_FACTOR"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "TEXTURE_BINDING_2D"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "SAMPLE_BUFFERS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "SAMPLES"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "SAMPLE_COVERAGE_VALUE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "SAMPLE_COVERAGE_INVERT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "COMPRESSED_TEXTURE_FORMATS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "DONT_CARE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "FASTEST"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "NICEST"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "GENERATE_MIPMAP_HINT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "BYTE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "UNSIGNED_BYTE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "SHORT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "UNSIGNED_SHORT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "INT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "UNSIGNED_INT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "FLOAT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "DEPTH_COMPONENT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "ALPHA"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "RGB"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "RGBA"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "LUMINANCE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "LUMINANCE_ALPHA"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "UNSIGNED_SHORT_4_4_4_4"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "UNSIGNED_SHORT_5_5_5_1"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "UNSIGNED_SHORT_5_6_5"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "FRAGMENT_SHADER"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "VERTEX_SHADER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "MAX_VERTEX_ATTRIBS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "MAX_VERTEX_UNIFORM_VECTORS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "MAX_VARYING_VECTORS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "MAX_COMBINED_TEXTURE_IMAGE_UNITS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "MAX_VERTEX_TEXTURE_IMAGE_UNITS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "MAX_TEXTURE_IMAGE_UNITS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "MAX_FRAGMENT_UNIFORM_VECTORS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "SHADER_TYPE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "DELETE_STATUS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "LINK_STATUS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "VALIDATE_STATUS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "ATTACHED_SHADERS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "ACTIVE_UNIFORMS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "ACTIVE_ATTRIBUTES"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "SHADING_LANGUAGE_VERSION"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "CURRENT_PROGRAM"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "NEVER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "LESS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "EQUAL"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "LEQUAL"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "GREATER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "NOTEQUAL"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "GEQUAL"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "ALWAYS"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "KEEP"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "REPLACE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "INCR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "DECR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "INVERT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "INCR_WRAP"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "DECR_WRAP"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "VENDOR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "RENDERER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "VERSION"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "NEAREST"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "LINEAR"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "NEAREST_MIPMAP_NEAREST"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "LINEAR_MIPMAP_NEAREST"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "NEAREST_MIPMAP_LINEAR"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "LINEAR_MIPMAP_LINEAR"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "TEXTURE_MAG_FILTER"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "TEXTURE_MIN_FILTER"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "TEXTURE_WRAP_S"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "TEXTURE_WRAP_T"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "TEXTURE_2D"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "TEXTURE_CUBE_MAP"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "TEXTURE_BINDING_CUBE_MAP"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "TEXTURE_CUBE_MAP_POSITIVE_X"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "TEXTURE_CUBE_MAP_NEGATIVE_X"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "TEXTURE_CUBE_MAP_POSITIVE_Y"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "TEXTURE_CUBE_MAP_NEGATIVE_Y"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "TEXTURE_CUBE_MAP_POSITIVE_Z"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "TEXTURE_CUBE_MAP_NEGATIVE_Z"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "MAX_CUBE_MAP_TEXTURE_SIZE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "TEXTURE0"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE1"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE2"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE3"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE4"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE5"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE6"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE7"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE8"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE9"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE10"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE11"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE12"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE13"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE14"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE15"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE16"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE17"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE18"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE19"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE20"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE21"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE22"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE23"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE24"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE25"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE26"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE27"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE28"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE29"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE30"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "TEXTURE31"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "ACTIVE_TEXTURE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "REPEAT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "CLAMP_TO_EDGE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "MIRRORED_REPEAT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "FLOAT_VEC2"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "FLOAT_VEC3"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "FLOAT_VEC4"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "INT_VEC2"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "INT_VEC3"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "INT_VEC4"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "BOOL"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "BOOL_VEC2"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "BOOL_VEC3"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "BOOL_VEC4"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "FLOAT_MAT2"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "FLOAT_MAT3"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "FLOAT_MAT4"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "SAMPLER_2D"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "SAMPLER_CUBE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "VERTEX_ATTRIB_ARRAY_ENABLED"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "VERTEX_ATTRIB_ARRAY_SIZE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "VERTEX_ATTRIB_ARRAY_STRIDE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "VERTEX_ATTRIB_ARRAY_TYPE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "VERTEX_ATTRIB_ARRAY_NORMALIZED"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "VERTEX_ATTRIB_ARRAY_POINTER"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "IMPLEMENTATION_COLOR_READ_TYPE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "IMPLEMENTATION_COLOR_READ_FORMAT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "COMPILE_STATUS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "LOW_FLOAT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "MEDIUM_FLOAT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "HIGH_FLOAT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "LOW_INT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "MEDIUM_INT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "HIGH_INT"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "FRAMEBUFFER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "RENDERBUFFER"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "RGBA4"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "RGB5_A1"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property { name: "RGB565"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "DEPTH_COMPONENT16"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "STENCIL_INDEX"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "STENCIL_INDEX8"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "DEPTH_STENCIL"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "RENDERBUFFER_WIDTH"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "RENDERBUFFER_HEIGHT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "RENDERBUFFER_INTERNAL_FORMAT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "RENDERBUFFER_RED_SIZE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "RENDERBUFFER_GREEN_SIZE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "RENDERBUFFER_BLUE_SIZE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "RENDERBUFFER_ALPHA_SIZE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "RENDERBUFFER_DEPTH_SIZE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "RENDERBUFFER_STENCIL_SIZE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "COLOR_ATTACHMENT0"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "DEPTH_ATTACHMENT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "STENCIL_ATTACHMENT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "DEPTH_STENCIL_ATTACHMENT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property { name: "NONE"; type: "QtCanvas3D::CanvasContext::glEnums"; isReadonly: true }
        Property {
            name: "FRAMEBUFFER_COMPLETE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "FRAMEBUFFER_INCOMPLETE_ATTACHMENT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "FRAMEBUFFER_INCOMPLETE_DIMENSIONS"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "FRAMEBUFFER_UNSUPPORTED"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "FRAMEBUFFER_BINDING"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "RENDERBUFFER_BINDING"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "MAX_RENDERBUFFER_SIZE"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "INVALID_FRAMEBUFFER_OPERATION"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "UNPACK_FLIP_Y_WEBGL"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "UNPACK_PREMULTIPLY_ALPHA_WEBGL"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "CONTEXT_LOST_WEBGL"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "UNPACK_COLORSPACE_CONVERSION_WEBGL"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Property {
            name: "BROWSER_DEFAULT_WEBGL"
            type: "QtCanvas3D::CanvasContext::glEnums"
            isReadonly: true
        }
        Signal {
            name: "canvasChanged"
            Parameter { name: "canvas"; type: "Canvas"; isPointer: true }
        }
        Method { name: "getSupportedExtensions"; type: "QVariantList" }
        Method {
            name: "getExtension"
            type: "QVariant"
            Parameter { name: "name"; type: "string" }
        }
        Method { name: "isContextLost"; type: "bool" }
        Method { name: "getContextAttributes"; type: "QJSValue" }
        Method {
            name: "getShaderPrecisionFormat"
            type: "QJSValue"
            Parameter { name: "shadertype"; type: "glEnums" }
            Parameter { name: "precisiontype"; type: "glEnums" }
        }
        Method { name: "flush" }
        Method { name: "finish" }
        Method { name: "createTexture"; type: "QJSValue" }
        Method {
            name: "deleteTexture"
            Parameter { name: "texture"; type: "QJSValue" }
        }
        Method {
            name: "activeTexture"
            Parameter { name: "texture"; type: "glEnums" }
        }
        Method {
            name: "bindTexture"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "texture"; type: "QJSValue" }
        }
        Method {
            name: "generateMipmap"
            Parameter { name: "target"; type: "glEnums" }
        }
        Method {
            name: "isTexture"
            type: "bool"
            Parameter { name: "anyObject"; type: "QJSValue" }
        }
        Method {
            name: "compressedTexImage2D"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "level"; type: "int" }
            Parameter { name: "internalformat"; type: "glEnums" }
            Parameter { name: "width"; type: "int" }
            Parameter { name: "height"; type: "int" }
            Parameter { name: "border"; type: "int" }
            Parameter { name: "pixels"; type: "QJSValue" }
        }
        Method {
            name: "compressedTexSubImage2D"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "level"; type: "int" }
            Parameter { name: "xoffset"; type: "int" }
            Parameter { name: "yoffset"; type: "int" }
            Parameter { name: "width"; type: "int" }
            Parameter { name: "height"; type: "int" }
            Parameter { name: "format"; type: "glEnums" }
            Parameter { name: "pixels"; type: "QJSValue" }
        }
        Method {
            name: "copyTexImage2D"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "level"; type: "int" }
            Parameter { name: "internalformat"; type: "glEnums" }
            Parameter { name: "x"; type: "int" }
            Parameter { name: "y"; type: "int" }
            Parameter { name: "width"; type: "int" }
            Parameter { name: "height"; type: "int" }
            Parameter { name: "border"; type: "int" }
        }
        Method {
            name: "copyTexSubImage2D"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "level"; type: "int" }
            Parameter { name: "xoffset"; type: "int" }
            Parameter { name: "yoffset"; type: "int" }
            Parameter { name: "x"; type: "int" }
            Parameter { name: "y"; type: "int" }
            Parameter { name: "width"; type: "int" }
            Parameter { name: "height"; type: "int" }
        }
        Method {
            name: "texImage2D"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "level"; type: "int" }
            Parameter { name: "internalformat"; type: "glEnums" }
            Parameter { name: "width"; type: "int" }
            Parameter { name: "height"; type: "int" }
            Parameter { name: "border"; type: "int" }
            Parameter { name: "format"; type: "glEnums" }
            Parameter { name: "type"; type: "glEnums" }
            Parameter { name: "pixels"; type: "QJSValue" }
        }
        Method {
            name: "texSubImage2D"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "level"; type: "int" }
            Parameter { name: "xoffset"; type: "int" }
            Parameter { name: "yoffset"; type: "int" }
            Parameter { name: "width"; type: "int" }
            Parameter { name: "height"; type: "int" }
            Parameter { name: "format"; type: "glEnums" }
            Parameter { name: "type"; type: "glEnums" }
            Parameter { name: "pixels"; type: "QJSValue" }
        }
        Method {
            name: "texImage2D"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "level"; type: "int" }
            Parameter { name: "internalformat"; type: "glEnums" }
            Parameter { name: "format"; type: "glEnums" }
            Parameter { name: "type"; type: "glEnums" }
            Parameter { name: "image"; type: "QJSValue" }
        }
        Method {
            name: "texSubImage2D"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "level"; type: "int" }
            Parameter { name: "xoffset"; type: "int" }
            Parameter { name: "yoffset"; type: "int" }
            Parameter { name: "format"; type: "glEnums" }
            Parameter { name: "type"; type: "glEnums" }
            Parameter { name: "image"; type: "QJSValue" }
        }
        Method {
            name: "texParameterf"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "pname"; type: "glEnums" }
            Parameter { name: "param"; type: "float" }
        }
        Method {
            name: "texParameteri"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "pname"; type: "glEnums" }
            Parameter { name: "param"; type: "int" }
        }
        Method { name: "createFramebuffer"; type: "QJSValue" }
        Method {
            name: "deleteFramebuffer"
            Parameter { name: "buffer"; type: "QJSValue" }
        }
        Method {
            name: "bindFramebuffer"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "framebuffer"; type: "QJSValue" }
        }
        Method {
            name: "checkFramebufferStatus"
            type: "glEnums"
            Parameter { name: "target"; type: "glEnums" }
        }
        Method {
            name: "framebufferRenderbuffer"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "attachment"; type: "glEnums" }
            Parameter { name: "renderbuffertarget"; type: "glEnums" }
            Parameter { name: "renderbuffer"; type: "QJSValue" }
        }
        Method {
            name: "framebufferTexture2D"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "attachment"; type: "glEnums" }
            Parameter { name: "textarget"; type: "glEnums" }
            Parameter { name: "texture"; type: "QJSValue" }
            Parameter { name: "level"; type: "int" }
        }
        Method {
            name: "isFramebuffer"
            type: "bool"
            Parameter { name: "anyObject"; type: "QJSValue" }
        }
        Method { name: "createRenderbuffer"; type: "QJSValue" }
        Method {
            name: "bindRenderbuffer"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "renderbuffer"; type: "QJSValue" }
        }
        Method {
            name: "renderbufferStorage"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "internalformat"; type: "glEnums" }
            Parameter { name: "width"; type: "int" }
            Parameter { name: "height"; type: "int" }
        }
        Method {
            name: "isRenderbuffer"
            type: "bool"
            Parameter { name: "anyObject"; type: "QJSValue" }
        }
        Method {
            name: "deleteRenderbuffer"
            Parameter { name: "renderbuffer"; type: "QJSValue" }
        }
        Method {
            name: "sampleCoverage"
            Parameter { name: "value"; type: "float" }
            Parameter { name: "invert"; type: "bool" }
        }
        Method {
            name: "createShader"
            type: "QJSValue"
            Parameter { name: "type"; type: "glEnums" }
        }
        Method {
            name: "isShader"
            type: "bool"
            Parameter { name: "shader3D"; type: "QJSValue" }
        }
        Method {
            name: "deleteShader"
            Parameter { name: "shader3D"; type: "QJSValue" }
        }
        Method {
            name: "shaderSource"
            Parameter { name: "shader3D"; type: "QJSValue" }
            Parameter { name: "shaderSource"; type: "string" }
        }
        Method {
            name: "getShaderSource"
            type: "QJSValue"
            Parameter { name: "shader3D"; type: "QJSValue" }
        }
        Method {
            name: "compileShader"
            Parameter { name: "shader3D"; type: "QJSValue" }
        }
        Method {
            name: "uniform1f"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "x"; type: "float" }
        }
        Method {
            name: "uniform1i"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "x"; type: "int" }
        }
        Method {
            name: "uniform2f"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "x"; type: "float" }
            Parameter { name: "y"; type: "float" }
        }
        Method {
            name: "uniform2i"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "x"; type: "int" }
            Parameter { name: "y"; type: "int" }
        }
        Method {
            name: "uniform3f"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "x"; type: "float" }
            Parameter { name: "y"; type: "float" }
            Parameter { name: "z"; type: "float" }
        }
        Method {
            name: "uniform3i"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "x"; type: "int" }
            Parameter { name: "y"; type: "int" }
            Parameter { name: "z"; type: "int" }
        }
        Method {
            name: "uniform4f"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "x"; type: "float" }
            Parameter { name: "y"; type: "float" }
            Parameter { name: "z"; type: "float" }
            Parameter { name: "w"; type: "float" }
        }
        Method {
            name: "uniform4i"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "x"; type: "int" }
            Parameter { name: "y"; type: "int" }
            Parameter { name: "z"; type: "int" }
            Parameter { name: "w"; type: "int" }
        }
        Method {
            name: "uniform1fv"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "array"; type: "QJSValue" }
        }
        Method {
            name: "uniform1iv"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "array"; type: "QJSValue" }
        }
        Method {
            name: "uniform2fv"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "array"; type: "QJSValue" }
        }
        Method {
            name: "uniform2iv"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "array"; type: "QJSValue" }
        }
        Method {
            name: "uniform3fv"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "array"; type: "QJSValue" }
        }
        Method {
            name: "uniform3iv"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "array"; type: "QJSValue" }
        }
        Method {
            name: "uniform4fv"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "array"; type: "QJSValue" }
        }
        Method {
            name: "uniform4iv"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "array"; type: "QJSValue" }
        }
        Method {
            name: "uniformMatrix2fv"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "transpose"; type: "bool" }
            Parameter { name: "value"; type: "QJSValue" }
        }
        Method {
            name: "uniformMatrix3fv"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "transpose"; type: "bool" }
            Parameter { name: "value"; type: "QJSValue" }
        }
        Method {
            name: "uniformMatrix4fv"
            Parameter { name: "location"; type: "QJSValue" }
            Parameter { name: "transpose"; type: "bool" }
            Parameter { name: "value"; type: "QJSValue" }
        }
        Method { name: "createProgram"; type: "QJSValue" }
        Method {
            name: "attachShader"
            Parameter { name: "program"; type: "QJSValue" }
            Parameter { name: "shader3D"; type: "QJSValue" }
        }
        Method {
            name: "detachShader"
            Parameter { name: "program"; type: "QJSValue" }
            Parameter { name: "shader3D"; type: "QJSValue" }
        }
        Method {
            name: "linkProgram"
            Parameter { name: "program"; type: "QJSValue" }
        }
        Method {
            name: "useProgram"
            Parameter { name: "program"; type: "QJSValue" }
        }
        Method {
            name: "validateProgram"
            Parameter { name: "program"; type: "QJSValue" }
        }
        Method {
            name: "getUniformLocation"
            type: "QJSValue"
            Parameter { name: "program"; type: "QJSValue" }
            Parameter { name: "name"; type: "string" }
        }
        Method {
            name: "getAttribLocation"
            type: "int"
            Parameter { name: "program"; type: "QJSValue" }
            Parameter { name: "name"; type: "string" }
        }
        Method {
            name: "bindAttribLocation"
            Parameter { name: "program"; type: "QJSValue" }
            Parameter { name: "index"; type: "int" }
            Parameter { name: "name"; type: "string" }
        }
        Method {
            name: "getProgramInfoLog"
            type: "QJSValue"
            Parameter { name: "program"; type: "QJSValue" }
        }
        Method {
            name: "isProgram"
            type: "bool"
            Parameter { name: "anyObject"; type: "QJSValue" }
        }
        Method {
            name: "deleteProgram"
            Parameter { name: "program"; type: "QJSValue" }
        }
        Method {
            name: "disableVertexAttribArray"
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "enableVertexAttribArray"
            Parameter { name: "index"; type: "int" }
        }
        Method {
            name: "vertexAttribPointer"
            Parameter { name: "indx"; type: "int" }
            Parameter { name: "size"; type: "int" }
            Parameter { name: "type"; type: "glEnums" }
            Parameter { name: "normalized"; type: "bool" }
            Parameter { name: "stride"; type: "int" }
            Parameter { name: "offset"; type: "long" }
        }
        Method {
            name: "vertexAttrib1f"
            Parameter { name: "indx"; type: "uint" }
            Parameter { name: "x"; type: "float" }
        }
        Method {
            name: "vertexAttrib2f"
            Parameter { name: "indx"; type: "uint" }
            Parameter { name: "x"; type: "float" }
            Parameter { name: "y"; type: "float" }
        }
        Method {
            name: "vertexAttrib3f"
            Parameter { name: "indx"; type: "uint" }
            Parameter { name: "x"; type: "float" }
            Parameter { name: "y"; type: "float" }
            Parameter { name: "z"; type: "float" }
        }
        Method {
            name: "vertexAttrib4f"
            Parameter { name: "indx"; type: "uint" }
            Parameter { name: "x"; type: "float" }
            Parameter { name: "y"; type: "float" }
            Parameter { name: "z"; type: "float" }
            Parameter { name: "w"; type: "float" }
        }
        Method {
            name: "vertexAttrib1fv"
            Parameter { name: "indx"; type: "uint" }
            Parameter { name: "array"; type: "QJSValue" }
        }
        Method {
            name: "vertexAttrib2fv"
            Parameter { name: "indx"; type: "uint" }
            Parameter { name: "array"; type: "QJSValue" }
        }
        Method {
            name: "vertexAttrib3fv"
            Parameter { name: "indx"; type: "uint" }
            Parameter { name: "array"; type: "QJSValue" }
        }
        Method {
            name: "vertexAttrib4fv"
            Parameter { name: "indx"; type: "uint" }
            Parameter { name: "array"; type: "QJSValue" }
        }
        Method {
            name: "getShaderParameter"
            type: "QJSValue"
            Parameter { name: "shader3D"; type: "QJSValue" }
            Parameter { name: "paramName"; type: "glEnums" }
        }
        Method {
            name: "getProgramParameter"
            type: "QJSValue"
            Parameter { name: "program"; type: "QJSValue" }
            Parameter { name: "paramName"; type: "glEnums" }
        }
        Method {
            name: "getShaderInfoLog"
            type: "QJSValue"
            Parameter { name: "shader3D"; type: "QJSValue" }
        }
        Method { name: "createBuffer"; type: "QJSValue" }
        Method {
            name: "bindBuffer"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "buffer"; type: "QJSValue" }
        }
        Method {
            name: "bufferData"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "size"; type: "long" }
            Parameter { name: "hint"; type: "glEnums" }
        }
        Method {
            name: "bufferData"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "data"; type: "QJSValue" }
            Parameter { name: "hint"; type: "glEnums" }
        }
        Method {
            name: "bufferSubData"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "offset"; type: "int" }
            Parameter { name: "data"; type: "QJSValue" }
        }
        Method {
            name: "getBufferParameter"
            type: "QJSValue"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "pname"; type: "glEnums" }
        }
        Method {
            name: "isBuffer"
            type: "bool"
            Parameter { name: "value"; type: "QJSValue" }
        }
        Method {
            name: "deleteBuffer"
            Parameter { name: "buffer"; type: "QJSValue" }
        }
        Method { name: "getError"; type: "glEnums" }
        Method {
            name: "cullFace"
            Parameter { name: "mode"; type: "glEnums" }
        }
        Method {
            name: "frontFace"
            Parameter { name: "mode"; type: "glEnums" }
        }
        Method {
            name: "lineWidth"
            Parameter { name: "width"; type: "float" }
        }
        Method {
            name: "pixelStorei"
            Parameter { name: "pname"; type: "glEnums" }
            Parameter { name: "param"; type: "int" }
        }
        Method {
            name: "polygonOffset"
            Parameter { name: "factor"; type: "float" }
            Parameter { name: "units"; type: "float" }
        }
        Method {
            name: "hint"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "mode"; type: "glEnums" }
        }
        Method {
            name: "enable"
            Parameter { name: "cap"; type: "glEnums" }
        }
        Method {
            name: "isEnabled"
            type: "bool"
            Parameter { name: "cap"; type: "glEnums" }
        }
        Method {
            name: "disable"
            Parameter { name: "cap"; type: "glEnums" }
        }
        Method {
            name: "getParameter"
            type: "QJSValue"
            Parameter { name: "pname"; type: "glEnums" }
        }
        Method {
            name: "clear"
            Parameter { name: "flags"; type: "glEnums" }
        }
        Method {
            name: "depthMask"
            Parameter { name: "flag"; type: "bool" }
        }
        Method {
            name: "depthFunc"
            Parameter { name: "func"; type: "glEnums" }
        }
        Method {
            name: "depthRange"
            Parameter { name: "zNear"; type: "float" }
            Parameter { name: "zFar"; type: "float" }
        }
        Method {
            name: "clearDepth"
            Parameter { name: "depth"; type: "float" }
        }
        Method {
            name: "clearColor"
            Parameter { name: "red"; type: "float" }
            Parameter { name: "green"; type: "float" }
            Parameter { name: "blue"; type: "float" }
            Parameter { name: "alpha"; type: "float" }
        }
        Method {
            name: "clearStencil"
            Parameter { name: "s"; type: "int" }
        }
        Method {
            name: "colorMask"
            Parameter { name: "red"; type: "bool" }
            Parameter { name: "green"; type: "bool" }
            Parameter { name: "blue"; type: "bool" }
            Parameter { name: "alpha"; type: "bool" }
        }
        Method {
            name: "blendColor"
            Parameter { name: "red"; type: "float" }
            Parameter { name: "green"; type: "float" }
            Parameter { name: "blue"; type: "float" }
            Parameter { name: "alpha"; type: "float" }
        }
        Method {
            name: "blendEquation"
            Parameter { name: "mode"; type: "glEnums" }
        }
        Method {
            name: "blendEquationSeparate"
            Parameter { name: "modeRGB"; type: "glEnums" }
            Parameter { name: "modeAlpha"; type: "glEnums" }
        }
        Method {
            name: "blendFunc"
            Parameter { name: "sfactor"; type: "glEnums" }
            Parameter { name: "dfactor"; type: "glEnums" }
        }
        Method {
            name: "blendFuncSeparate"
            Parameter { name: "srcRGB"; type: "glEnums" }
            Parameter { name: "dstRGB"; type: "glEnums" }
            Parameter { name: "srcAlpha"; type: "glEnums" }
            Parameter { name: "dstAlpha"; type: "glEnums" }
        }
        Method {
            name: "drawArrays"
            Parameter { name: "type"; type: "glEnums" }
            Parameter { name: "first"; type: "int" }
            Parameter { name: "count"; type: "int" }
        }
        Method {
            name: "drawElements"
            Parameter { name: "mode"; type: "glEnums" }
            Parameter { name: "count"; type: "int" }
            Parameter { name: "type"; type: "glEnums" }
            Parameter { name: "offset"; type: "long" }
        }
        Method {
            name: "viewport"
            Parameter { name: "x"; type: "int" }
            Parameter { name: "y"; type: "int" }
            Parameter { name: "width"; type: "int" }
            Parameter { name: "height"; type: "int" }
        }
        Method {
            name: "scissor"
            Parameter { name: "x"; type: "int" }
            Parameter { name: "y"; type: "int" }
            Parameter { name: "width"; type: "int" }
            Parameter { name: "height"; type: "int" }
        }
        Method {
            name: "readPixels"
            Parameter { name: "x"; type: "int" }
            Parameter { name: "y"; type: "int" }
            Parameter { name: "width"; type: "long" }
            Parameter { name: "height"; type: "long" }
            Parameter { name: "format"; type: "glEnums" }
            Parameter { name: "type"; type: "glEnums" }
            Parameter { name: "pixels"; type: "QJSValue" }
        }
        Method {
            name: "getActiveAttrib"
            type: "CanvasActiveInfo*"
            Parameter { name: "program"; type: "QJSValue" }
            Parameter { name: "index"; type: "uint" }
        }
        Method {
            name: "getActiveUniform"
            type: "CanvasActiveInfo*"
            Parameter { name: "program"; type: "QJSValue" }
            Parameter { name: "index"; type: "uint" }
        }
        Method {
            name: "getAttachedShaders"
            type: "QJSValue"
            Parameter { name: "program"; type: "QJSValue" }
        }
        Method {
            name: "stencilFunc"
            Parameter { name: "func"; type: "glEnums" }
            Parameter { name: "ref"; type: "int" }
            Parameter { name: "mask"; type: "uint" }
        }
        Method {
            name: "stencilFuncSeparate"
            Parameter { name: "face"; type: "glEnums" }
            Parameter { name: "func"; type: "glEnums" }
            Parameter { name: "ref"; type: "int" }
            Parameter { name: "mask"; type: "uint" }
        }
        Method {
            name: "stencilMask"
            Parameter { name: "mask"; type: "uint" }
        }
        Method {
            name: "stencilMaskSeparate"
            Parameter { name: "face"; type: "glEnums" }
            Parameter { name: "mask"; type: "uint" }
        }
        Method {
            name: "stencilOp"
            Parameter { name: "fail"; type: "glEnums" }
            Parameter { name: "zfail"; type: "glEnums" }
            Parameter { name: "zpass"; type: "glEnums" }
        }
        Method {
            name: "stencilOpSeparate"
            Parameter { name: "face"; type: "glEnums" }
            Parameter { name: "fail"; type: "glEnums" }
            Parameter { name: "zfail"; type: "glEnums" }
            Parameter { name: "zpass"; type: "glEnums" }
        }
        Method {
            name: "getFramebufferAttachmentParameter"
            type: "QJSValue"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "attachment"; type: "glEnums" }
            Parameter { name: "pname"; type: "glEnums" }
        }
        Method {
            name: "getRenderbufferParameter"
            type: "QJSValue"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "pname"; type: "glEnums" }
        }
        Method {
            name: "getTexParameter"
            type: "QJSValue"
            Parameter { name: "target"; type: "glEnums" }
            Parameter { name: "pname"; type: "glEnums" }
        }
        Method {
            name: "getUniform"
            type: "QJSValue"
            Parameter { name: "program"; type: "QJSValue" }
            Parameter { name: "location"; type: "QJSValue" }
        }
        Method {
            name: "getVertexAttribOffset"
            type: "uint"
            Parameter { name: "index"; type: "uint" }
            Parameter { name: "pname"; type: "glEnums" }
        }
        Method {
            name: "getVertexAttrib"
            type: "QJSValue"
            Parameter { name: "index"; type: "uint" }
            Parameter { name: "pname"; type: "glEnums" }
        }
    }
    Component {
        name: "QtCanvas3D::CanvasContextAttributes"
        prototype: "QtCanvas3D::CanvasAbstractObject"
        exports: ["QtCanvas3D/Canvas3DContextAttributes 1.0"]
        exportMetaObjectRevisions: [0]
        Property { name: "alpha"; type: "bool" }
        Property { name: "depth"; type: "bool" }
        Property { name: "stencil"; type: "bool" }
        Property { name: "antialias"; type: "bool" }
        Property { name: "premultipliedAlpha"; type: "bool" }
        Property { name: "preserveDrawingBuffer"; type: "bool" }
        Property { name: "preferLowPowerToHighPerformance"; type: "bool" }
        Property { name: "failIfMajorPerformanceCaveat"; type: "bool" }
        Signal {
            name: "alphaChanged"
            Parameter { name: "newValue"; type: "bool" }
        }
        Signal {
            name: "depthChanged"
            Parameter { name: "newValue"; type: "bool" }
        }
        Signal {
            name: "stencilChanged"
            Parameter { name: "newValue"; type: "bool" }
        }
        Signal {
            name: "antialiasChanged"
            Parameter { name: "newValue"; type: "bool" }
        }
        Signal {
            name: "premultipliedAlphaChanged"
            Parameter { name: "newValue"; type: "bool" }
        }
        Signal {
            name: "preserveDrawingBufferChanged"
            Parameter { name: "newValue"; type: "bool" }
        }
        Signal {
            name: "preferLowPowerToHighPerformanceChanged"
            Parameter { name: "newValue"; type: "bool" }
        }
        Signal {
            name: "failIfMajorPerformanceCaveatChanged"
            Parameter { name: "newValue"; type: "bool" }
        }
    }
    Component {
        name: "QtCanvas3D::CanvasFrameBuffer"
        prototype: "QtCanvas3D::CanvasAbstractObject"
        exports: ["QtCanvas3D/Canvas3DFrameBuffer 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
    }
    Component {
        name: "QtCanvas3D::CanvasGLStateDump"
        prototype: "QObject"
        exports: ["QtCanvas3D/GLStateDumpExt 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "stateDumpEnums"
            values: {
                "DUMP_BASIC_ONLY": 0,
                "DUMP_VERTEX_ATTRIB_ARRAYS_BIT": 1,
                "DUMP_VERTEX_ATTRIB_ARRAYS_BUFFERS_BIT": 2,
                "DUMP_FULL": 3
            }
        }
        Property {
            name: "DUMP_BASIC_ONLY"
            type: "QtCanvas3D::CanvasGLStateDump::stateDumpEnums"
            isReadonly: true
        }
        Property {
            name: "DUMP_VERTEX_ATTRIB_ARRAYS_BIT"
            type: "QtCanvas3D::CanvasGLStateDump::stateDumpEnums"
            isReadonly: true
        }
        Property {
            name: "DUMP_VERTEX_ATTRIB_ARRAYS_BUFFERS_BIT"
            type: "QtCanvas3D::CanvasGLStateDump::stateDumpEnums"
            isReadonly: true
        }
        Property {
            name: "DUMP_FULL"
            type: "QtCanvas3D::CanvasGLStateDump::stateDumpEnums"
            isReadonly: true
        }
        Method {
            name: "getGLStateDump"
            type: "string"
            Parameter { name: "options"; type: "stateDumpEnums" }
        }
        Method { name: "getGLStateDump"; type: "string" }
    }
    Component {
        name: "QtCanvas3D::CanvasProgram"
        prototype: "QtCanvas3D::CanvasAbstractObject"
        exports: ["QtCanvas3D/Canvas3DProgram 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
    }
    Component {
        name: "QtCanvas3D::CanvasRenderBuffer"
        prototype: "QtCanvas3D::CanvasAbstractObject"
        exports: ["QtCanvas3D/Canvas3DRenderBuffer 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
    }
    Component {
        name: "QtCanvas3D::CanvasShader"
        prototype: "QtCanvas3D::CanvasAbstractObject"
        exports: ["QtCanvas3D/Canvas3DShader 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
    }
    Component {
        name: "QtCanvas3D::CanvasShaderPrecisionFormat"
        prototype: "QtCanvas3D::CanvasAbstractObject"
        exports: ["QtCanvas3D/Canvas3DShaderPrecisionFormat 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Property { name: "rangeMin"; type: "int"; isReadonly: true }
        Property { name: "rangeMax"; type: "int"; isReadonly: true }
        Property { name: "precision"; type: "int"; isReadonly: true }
        Signal {
            name: "rangeMinChanged"
            Parameter { name: "rangeMin"; type: "int" }
        }
        Signal {
            name: "rangeMaxChanged"
            Parameter { name: "rangeMax"; type: "int" }
        }
        Signal {
            name: "precisionChanged"
            Parameter { name: "precision"; type: "int" }
        }
    }
    Component {
        name: "QtCanvas3D::CanvasTexture"
        prototype: "QtCanvas3D::CanvasAbstractObject"
        exports: ["QtCanvas3D/Canvas3DTexture 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Method { name: "handleItemDestroyed" }
    }
    Component {
        name: "QtCanvas3D::CanvasTextureImage"
        prototype: "QtCanvas3D::CanvasAbstractObject"
        exports: ["QtCanvas3D/TextureImage 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Enum {
            name: "TextureImageState"
            values: {
                "INITIALIZED": 0,
                "LOAD_PENDING": 1,
                "LOADING": 2,
                "LOADING_FINISHED": 3,
                "LOADING_ERROR": 4
            }
        }
        Property { name: "src"; type: "QUrl" }
        Property { name: "imageState"; type: "TextureImageState"; isReadonly: true }
        Property { name: "width"; type: "int"; isReadonly: true }
        Property { name: "height"; type: "int"; isReadonly: true }
        Property { name: "errorString"; type: "string"; isReadonly: true }
        Signal {
            name: "srcChanged"
            Parameter { name: "source"; type: "QUrl" }
        }
        Signal {
            name: "imageStateChanged"
            Parameter { name: "state"; type: "TextureImageState" }
        }
        Signal {
            name: "widthChanged"
            Parameter { name: "width"; type: "int" }
        }
        Signal {
            name: "heightChanged"
            Parameter { name: "height"; type: "int" }
        }
        Signal {
            name: "errorStringChanged"
            Parameter { name: "errorString"; type: "string" }
        }
        Signal {
            name: "anythingChanged"
            Parameter { name: "value"; type: "QVariant"; isPointer: true }
        }
        Signal {
            name: "imageLoadingStarted"
            Parameter { name: "image"; type: "CanvasTextureImage"; isPointer: true }
        }
        Signal {
            name: "imageLoaded"
            Parameter { name: "image"; type: "CanvasTextureImage"; isPointer: true }
        }
        Signal {
            name: "imageLoadingFailed"
            Parameter { name: "image"; type: "CanvasTextureImage"; isPointer: true }
        }
        Method { name: "create"; type: "QJSValue" }
        Method { name: "id"; type: "ulong" }
        Method {
            name: "resize"
            type: "QJSValue"
            Parameter { name: "width"; type: "int" }
            Parameter { name: "height"; type: "int" }
        }
    }
    Component {
        name: "QtCanvas3D::CanvasTextureImageFactory"
        prototype: "QObject"
        exports: ["QtCanvas3D/TextureImageFactory 1.0"]
        isCreatable: false
        isSingleton: true
        exportMetaObjectRevisions: [0]
        Method { name: "newTexImage"; type: "QJSValue" }
    }
    Component {
        name: "QtCanvas3D::CanvasTextureProvider"
        prototype: "QObject"
        exports: ["QtCanvas3D/Canvas3DTextureProvider 1.1"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
        Signal {
            name: "textureReady"
            Parameter { name: "source"; type: "QQuickItem"; isPointer: true }
        }
        Method {
            name: "createTextureFromSource"
            type: "QJSValue"
            Parameter { name: "source"; type: "QQuickItem"; isPointer: true }
        }
    }
    Component {
        name: "QtCanvas3D::CanvasUniformLocation"
        prototype: "QtCanvas3D::CanvasAbstractObject"
        exports: ["QtCanvas3D/Canvas3DUniformLocation 1.0"]
        isCreatable: false
        exportMetaObjectRevisions: [0]
    }
}
