/*
 * Interface wrapper code.
 *
 * Generated by SIP 6.14.0
 *
 * Copyright (c) 2024 Riverbank Computing Limited <info@riverbankcomputing.com>
 * 
 * This file is part of PyQt5.
 * 
 * This file may be used under the terms of the GNU General Public License
 * version 3.0 as published by the Free Software Foundation and appearing in
 * the file LICENSE included in the packaging of this file.  Please review the
 * following information to ensure the GNU General Public License version 3.0
 * requirements will be met: http://www.gnu.org/copyleft/gpl.html.
 * 
 * If you do not wish to use this file under the terms of the GPL version 3.0
 * then you may purchase a commercial license.  For more information contact
 * info@riverbankcomputing.com.
 * 
 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 */

#include "sipAPIQtQuick.h"

#line 26 "/build/pyqt5/src/PyQt5-5.15.11/sip/QtQuick/qsgmaterial.sip"
#include <qsgmaterial.h>
#line 29 "/build/pyqt5/src/PyQt5-5.15.11/build/QtQuick/sipQtQuickQSGMaterialShader.cpp"

#line 28 "/build/pyqt5/src/PyQt5-5.15.11/sip/QtGui/qopenglshaderprogram.sip"
#include <qopenglshaderprogram.h>
#line 33 "/build/pyqt5/src/PyQt5-5.15.11/build/QtQuick/sipQtQuickQSGMaterialShader.cpp"
#line 36 "/build/pyqt5/src/PyQt5-5.15.11/sip/QtCore/qstringlist.sip"
#include <qstringlist.h>
#line 36 "/build/pyqt5/src/PyQt5-5.15.11/build/QtQuick/sipQtQuickQSGMaterialShader.cpp"
#line 27 "/build/pyqt5/src/PyQt5-5.15.11/sip/QtCore/qstring.sip"
#include <qstring.h>
#line 39 "/build/pyqt5/src/PyQt5-5.15.11/build/QtQuick/sipQtQuickQSGMaterialShader.cpp"
#line 73 "/build/pyqt5/src/PyQt5-5.15.11/sip/QtGui/qopenglshaderprogram.sip"
#include <qopenglshaderprogram.h>
#line 42 "/build/pyqt5/src/PyQt5-5.15.11/build/QtQuick/sipQtQuickQSGMaterialShader.cpp"
#line 26 "/build/pyqt5/src/PyQt5-5.15.11/sip/QtQuick/qsgmaterial.sip"
#include <qsgmaterial.h>
#line 33 "/build/pyqt5/src/PyQt5-5.15.11/sip/QtQuick/qsgmaterial.sip"
#include <qsgmaterial.h>
#line 47 "/build/pyqt5/src/PyQt5-5.15.11/build/QtQuick/sipQtQuickQSGMaterialShader.cpp"
#line 183 "/build/pyqt5/src/PyQt5-5.15.11/sip/QtQuick/qsgmaterial.sip"
#include <qsgmaterial.h>
#line 50 "/build/pyqt5/src/PyQt5-5.15.11/build/QtQuick/sipQtQuickQSGMaterialShader.cpp"


class sipQSGMaterialShader : public ::QSGMaterialShader
{
public:
    sipQSGMaterialShader();
    virtual ~sipQSGMaterialShader();

    /*
     * There is a protected method for every virtual method visible from
     * this class.
     */
protected:
    const char* fragmentShader() const SIP_OVERRIDE;
    const char* vertexShader() const SIP_OVERRIDE;
    void initialize() SIP_OVERRIDE;
    void compile() SIP_OVERRIDE;
    const char* const* attributeNames() const SIP_OVERRIDE;
    void updateState(const ::QSGMaterialShader::RenderState&, ::QSGMaterial*, ::QSGMaterial*) SIP_OVERRIDE;
    void deactivate() SIP_OVERRIDE;
    void activate() SIP_OVERRIDE;

public:
    sipSimpleWrapper *sipPySelf;

private:
    sipQSGMaterialShader(const sipQSGMaterialShader &);
    sipQSGMaterialShader &operator = (const sipQSGMaterialShader &);

    char sipPyMethods[8];
};

sipQSGMaterialShader::sipQSGMaterialShader(): ::QSGMaterialShader(), sipPySelf(SIP_NULLPTR)
{
    memset(sipPyMethods, 0, sizeof (sipPyMethods));
}

sipQSGMaterialShader::~sipQSGMaterialShader()
{
    sipInstanceDestroyedEx(&sipPySelf);
}

const char* sipQSGMaterialShader::fragmentShader() const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, const_cast<char *>(&sipPyMethods[0]), const_cast<sipSimpleWrapper **>(&sipPySelf), SIP_NULLPTR, sipName_fragmentShader);

    if (!sipMeth)
        return ::QSGMaterialShader::fragmentShader();

    extern const char* sipVH_QtQuick_67(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, int);

    return sipVH_QtQuick_67(sipGILState, sipImportedVirtErrorHandlers_QtQuick_QtCore[0].iveh_handler, sipPySelf, sipMeth, -6);
}

const char* sipQSGMaterialShader::vertexShader() const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, const_cast<char *>(&sipPyMethods[1]), const_cast<sipSimpleWrapper **>(&sipPySelf), SIP_NULLPTR, sipName_vertexShader);

    if (!sipMeth)
        return ::QSGMaterialShader::vertexShader();

    extern const char* sipVH_QtQuick_67(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, int);

    return sipVH_QtQuick_67(sipGILState, sipImportedVirtErrorHandlers_QtQuick_QtCore[0].iveh_handler, sipPySelf, sipMeth, -7);
}

void sipQSGMaterialShader::initialize()
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[2], &sipPySelf, SIP_NULLPTR, sipName_initialize);

    if (!sipMeth)
    {
        ::QSGMaterialShader::initialize();
        return;
    }

    extern void sipVH_QtQuick_6(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *);

    sipVH_QtQuick_6(sipGILState, sipImportedVirtErrorHandlers_QtQuick_QtCore[0].iveh_handler, sipPySelf, sipMeth);
}

void sipQSGMaterialShader::compile()
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[3], &sipPySelf, SIP_NULLPTR, sipName_compile);

    if (!sipMeth)
    {
        ::QSGMaterialShader::compile();
        return;
    }

    extern void sipVH_QtQuick_6(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *);

    sipVH_QtQuick_6(sipGILState, sipImportedVirtErrorHandlers_QtQuick_QtCore[0].iveh_handler, sipPySelf, sipMeth);
}

const char* const* sipQSGMaterialShader::attributeNames() const
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, const_cast<char *>(&sipPyMethods[4]), const_cast<sipSimpleWrapper **>(&sipPySelf), sipName_QSGMaterialShader, sipName_attributeNames);

    if (!sipMeth)
        return 0;

    extern const char* const* sipVH_QtQuick_66(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, int);

    return sipVH_QtQuick_66(sipGILState, sipImportedVirtErrorHandlers_QtQuick_QtCore[0].iveh_handler, sipPySelf, sipMeth, -8);
}

void sipQSGMaterialShader::updateState(const ::QSGMaterialShader::RenderState& a0, ::QSGMaterial*a1, ::QSGMaterial*a2)
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[5], &sipPySelf, SIP_NULLPTR, sipName_updateState);

    if (!sipMeth)
    {
        ::QSGMaterialShader::updateState(a0, a1, a2);
        return;
    }

    extern void sipVH_QtQuick_65(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *, const ::QSGMaterialShader::RenderState&, ::QSGMaterial*, ::QSGMaterial*);

    sipVH_QtQuick_65(sipGILState, sipImportedVirtErrorHandlers_QtQuick_QtCore[0].iveh_handler, sipPySelf, sipMeth, a0, a1, a2);
}

void sipQSGMaterialShader::deactivate()
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[6], &sipPySelf, SIP_NULLPTR, sipName_deactivate);

    if (!sipMeth)
    {
        ::QSGMaterialShader::deactivate();
        return;
    }

    extern void sipVH_QtQuick_6(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *);

    sipVH_QtQuick_6(sipGILState, sipImportedVirtErrorHandlers_QtQuick_QtCore[0].iveh_handler, sipPySelf, sipMeth);
}

void sipQSGMaterialShader::activate()
{
    sip_gilstate_t sipGILState;
    PyObject *sipMeth;

    sipMeth = sipIsPyMethod(&sipGILState, &sipPyMethods[7], &sipPySelf, SIP_NULLPTR, sipName_activate);

    if (!sipMeth)
    {
        ::QSGMaterialShader::activate();
        return;
    }

    extern void sipVH_QtQuick_6(sip_gilstate_t, sipVirtErrorHandlerFunc, sipSimpleWrapper *, PyObject *);

    sipVH_QtQuick_6(sipGILState, sipImportedVirtErrorHandlers_QtQuick_QtCore[0].iveh_handler, sipPySelf, sipMeth);
}


PyDoc_STRVAR(doc_QSGMaterialShader_activate, "activate(self)");

extern "C" {static PyObject *meth_QSGMaterialShader_activate(PyObject *, PyObject *);}
static PyObject *meth_QSGMaterialShader_activate(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        ::QSGMaterialShader *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QSGMaterialShader, &sipCpp))
        {
            (sipSelfWasArg ? sipCpp->::QSGMaterialShader::activate() : sipCpp->activate());

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_QSGMaterialShader, sipName_activate, doc_QSGMaterialShader_activate);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGMaterialShader_deactivate, "deactivate(self)");

extern "C" {static PyObject *meth_QSGMaterialShader_deactivate(PyObject *, PyObject *);}
static PyObject *meth_QSGMaterialShader_deactivate(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        ::QSGMaterialShader *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QSGMaterialShader, &sipCpp))
        {
            (sipSelfWasArg ? sipCpp->::QSGMaterialShader::deactivate() : sipCpp->deactivate());

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_QSGMaterialShader, sipName_deactivate, doc_QSGMaterialShader_deactivate);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGMaterialShader_updateState, "updateState(self, state: QSGMaterialShader.RenderState, newMaterial: Optional[QSGMaterial], oldMaterial: Optional[QSGMaterial])");

extern "C" {static PyObject *meth_QSGMaterialShader_updateState(PyObject *, PyObject *);}
static PyObject *meth_QSGMaterialShader_updateState(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        const ::QSGMaterialShader::RenderState* a0;
        ::QSGMaterial* a1;
        ::QSGMaterial* a2;
        ::QSGMaterialShader *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "BJ9J8J8", &sipSelf, sipType_QSGMaterialShader, &sipCpp, sipType_QSGMaterialShader_RenderState, &a0, sipType_QSGMaterial, &a1, sipType_QSGMaterial, &a2))
        {
            (sipSelfWasArg ? sipCpp->::QSGMaterialShader::updateState(*a0, a1, a2) : sipCpp->updateState(*a0, a1, a2));

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_QSGMaterialShader, sipName_updateState, doc_QSGMaterialShader_updateState);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGMaterialShader_attributeNames, "attributeNames(self) -> list[str]");

extern "C" {static PyObject *meth_QSGMaterialShader_attributeNames(PyObject *, PyObject *);}
static PyObject *meth_QSGMaterialShader_attributeNames(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    PyObject *sipOrigSelf = sipSelf;

    {
        const ::QSGMaterialShader *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QSGMaterialShader, &sipCpp))
        {
            PyObject * sipRes = SIP_NULLPTR;
            int sipIsErr = 0;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_QSGMaterialShader, sipName_attributeNames);
                return SIP_NULLPTR;
            }

#line 80 "/build/pyqt5/src/PyQt5-5.15.11/sip/QtQuick/qsgmaterial.sip"
        const char * const *names = sipCpp->attributeNames();
        
        Py_ssize_t nr_names = 0;
        
        if (names)
            while (names[nr_names])
                ++nr_names;
            
        sipRes = PyList_New(nr_names);
            
        if (!sipRes)
            sipIsErr = 1;
        else
            for (Py_ssize_t i = 0; i < nr_names; ++i)
            {
                const char *name = names[i];
                PyObject *el;
        
        #if PY_MAJOR_VERSION >= 3
                el = PyUnicode_DecodeASCII(name, strlen(name), 0);
        #else
                el = PyString_FromString(name);
        #endif
                
                if (!el)
                {
                    Py_DECREF(sipRes);
                    sipIsErr = 1;
                    break;
                }
        
                PyList_SetItem(sipRes, i, el);
            }
#line 366 "/build/pyqt5/src/PyQt5-5.15.11/build/QtQuick/sipQtQuickQSGMaterialShader.cpp"

            if (sipIsErr)
                return 0;

            return sipRes;
        }
    }

    sipNoMethod(sipParseErr, sipName_QSGMaterialShader, sipName_attributeNames, doc_QSGMaterialShader_attributeNames);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGMaterialShader_program, "program(self) -> Optional[QOpenGLShaderProgram]");

extern "C" {static PyObject *meth_QSGMaterialShader_program(PyObject *, PyObject *);}
static PyObject *meth_QSGMaterialShader_program(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        ::QSGMaterialShader *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QSGMaterialShader, &sipCpp))
        {
            ::QOpenGLShaderProgram*sipRes;

            sipRes = sipCpp->program();

            return sipConvertFromType(sipRes, sipType_QOpenGLShaderProgram, SIP_NULLPTR);
        }
    }

    sipNoMethod(sipParseErr, sipName_QSGMaterialShader, sipName_program, doc_QSGMaterialShader_program);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGMaterialShader_compile, "compile(self)");

extern "C" {static PyObject *meth_QSGMaterialShader_compile(PyObject *, PyObject *);}
static PyObject *meth_QSGMaterialShader_compile(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        ::QSGMaterialShader *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "p", &sipSelf, sipType_QSGMaterialShader, &sipCpp))
        {
            (sipSelfWasArg ? sipCpp->::QSGMaterialShader::compile() : sipCpp->compile());

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_QSGMaterialShader, sipName_compile, doc_QSGMaterialShader_compile);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGMaterialShader_initialize, "initialize(self)");

extern "C" {static PyObject *meth_QSGMaterialShader_initialize(PyObject *, PyObject *);}
static PyObject *meth_QSGMaterialShader_initialize(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        ::QSGMaterialShader *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "p", &sipSelf, sipType_QSGMaterialShader, &sipCpp))
        {
            (sipSelfWasArg ? sipCpp->::QSGMaterialShader::initialize() : sipCpp->initialize());

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_QSGMaterialShader, sipName_initialize, doc_QSGMaterialShader_initialize);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGMaterialShader_vertexShader, "vertexShader(self) -> Optional[str]");

extern "C" {static PyObject *meth_QSGMaterialShader_vertexShader(PyObject *, PyObject *);}
static PyObject *meth_QSGMaterialShader_vertexShader(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        const ::QSGMaterialShader *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "p", &sipSelf, sipType_QSGMaterialShader, &sipCpp))
        {
            const char*sipRes;

            sipRes = (sipSelfWasArg ? sipCpp->::QSGMaterialShader::vertexShader() : sipCpp->vertexShader());

            if (sipRes == SIP_NULLPTR)
            {
                Py_INCREF(Py_None);
                return Py_None;
            }

            return PyUnicode_DecodeASCII(sipRes, strlen(sipRes), SIP_NULLPTR);
        }
    }

    sipNoMethod(sipParseErr, sipName_QSGMaterialShader, sipName_vertexShader, doc_QSGMaterialShader_vertexShader);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGMaterialShader_fragmentShader, "fragmentShader(self) -> Optional[str]");

extern "C" {static PyObject *meth_QSGMaterialShader_fragmentShader(PyObject *, PyObject *);}
static PyObject *meth_QSGMaterialShader_fragmentShader(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;
    bool sipSelfWasArg = (!sipSelf || sipIsDerivedClass((sipSimpleWrapper *)sipSelf));

    {
        const ::QSGMaterialShader *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "p", &sipSelf, sipType_QSGMaterialShader, &sipCpp))
        {
            const char*sipRes;

            sipRes = (sipSelfWasArg ? sipCpp->::QSGMaterialShader::fragmentShader() : sipCpp->fragmentShader());

            if (sipRes == SIP_NULLPTR)
            {
                Py_INCREF(Py_None);
                return Py_None;
            }

            return PyUnicode_DecodeASCII(sipRes, strlen(sipRes), SIP_NULLPTR);
        }
    }

    sipNoMethod(sipParseErr, sipName_QSGMaterialShader, sipName_fragmentShader, doc_QSGMaterialShader_fragmentShader);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGMaterialShader_setShaderSourceFile, "setShaderSourceFile(self, type: Union[QOpenGLShader.ShaderType, QOpenGLShader.ShaderTypeBit], sourceFile: Optional[str])");

extern "C" {static PyObject *meth_QSGMaterialShader_setShaderSourceFile(PyObject *, PyObject *);}
static PyObject *meth_QSGMaterialShader_setShaderSourceFile(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        ::QOpenGLShader::ShaderType* a0;
        int a0State = 0;
        const ::QString* a1;
        int a1State = 0;
        ::QSGMaterialShader *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "pJ1J1", &sipSelf, sipType_QSGMaterialShader, &sipCpp, sipType_QOpenGLShader_ShaderType, &a0, &a0State, sipType_QString, &a1, &a1State))
        {
            sipCpp->setShaderSourceFile(*a0, *a1);
            sipReleaseType(a0, sipType_QOpenGLShader_ShaderType, a0State);
            sipReleaseType(const_cast< ::QString *>(a1), sipType_QString, a1State);

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_QSGMaterialShader, sipName_setShaderSourceFile, doc_QSGMaterialShader_setShaderSourceFile);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGMaterialShader_setShaderSourceFiles, "setShaderSourceFiles(self, type: Union[QOpenGLShader.ShaderType, QOpenGLShader.ShaderTypeBit], sourceFiles: Iterable[Optional[str]])");

extern "C" {static PyObject *meth_QSGMaterialShader_setShaderSourceFiles(PyObject *, PyObject *);}
static PyObject *meth_QSGMaterialShader_setShaderSourceFiles(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        ::QOpenGLShader::ShaderType* a0;
        int a0State = 0;
        const ::QStringList* a1;
        int a1State = 0;
        ::QSGMaterialShader *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "pJ1J1", &sipSelf, sipType_QSGMaterialShader, &sipCpp, sipType_QOpenGLShader_ShaderType, &a0, &a0State, sipType_QStringList, &a1, &a1State))
        {
            sipCpp->setShaderSourceFiles(*a0, *a1);
            sipReleaseType(a0, sipType_QOpenGLShader_ShaderType, a0State);
            sipReleaseType(const_cast< ::QStringList *>(a1), sipType_QStringList, a1State);

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    sipNoMethod(sipParseErr, sipName_QSGMaterialShader, sipName_setShaderSourceFiles, doc_QSGMaterialShader_setShaderSourceFiles);

    return SIP_NULLPTR;
}


/* Call the instance's destructor. */
extern "C" {static void release_QSGMaterialShader(void *, int);}
static void release_QSGMaterialShader(void *sipCppV, int sipState)
{
    if (sipState & SIP_DERIVED_CLASS)
        delete reinterpret_cast<sipQSGMaterialShader *>(sipCppV);
    else
        delete reinterpret_cast< ::QSGMaterialShader *>(sipCppV);
}


extern "C" {static void dealloc_QSGMaterialShader(sipSimpleWrapper *);}
static void dealloc_QSGMaterialShader(sipSimpleWrapper *sipSelf)
{
    if (sipIsDerivedClass(sipSelf))
        reinterpret_cast<sipQSGMaterialShader *>(sipGetAddress(sipSelf))->sipPySelf = SIP_NULLPTR;

    if (sipIsOwnedByPython(sipSelf))
    {
        release_QSGMaterialShader(sipGetAddress(sipSelf), sipIsDerivedClass(sipSelf));
    }
}


extern "C" {static void *init_type_QSGMaterialShader(sipSimpleWrapper *, PyObject *, PyObject *, PyObject **, PyObject **, PyObject **);}
static void *init_type_QSGMaterialShader(sipSimpleWrapper *sipSelf, PyObject *sipArgs, PyObject *sipKwds, PyObject **sipUnused, PyObject **, PyObject **sipParseErr)
{
    sipQSGMaterialShader *sipCpp = SIP_NULLPTR;

    {
        if (sipParseKwdArgs(sipParseErr, sipArgs, sipKwds, SIP_NULLPTR, sipUnused, ""))
        {
            sipCpp = new sipQSGMaterialShader();

            sipCpp->sipPySelf = sipSelf;

            return sipCpp;
        }
    }

    return SIP_NULLPTR;
}


static PyMethodDef methods_QSGMaterialShader[] = {
    {sipName_activate, meth_QSGMaterialShader_activate, METH_VARARGS, doc_QSGMaterialShader_activate},
    {sipName_attributeNames, meth_QSGMaterialShader_attributeNames, METH_VARARGS, doc_QSGMaterialShader_attributeNames},
    {sipName_compile, meth_QSGMaterialShader_compile, METH_VARARGS, doc_QSGMaterialShader_compile},
    {sipName_deactivate, meth_QSGMaterialShader_deactivate, METH_VARARGS, doc_QSGMaterialShader_deactivate},
    {sipName_fragmentShader, meth_QSGMaterialShader_fragmentShader, METH_VARARGS, doc_QSGMaterialShader_fragmentShader},
    {sipName_initialize, meth_QSGMaterialShader_initialize, METH_VARARGS, doc_QSGMaterialShader_initialize},
    {sipName_program, meth_QSGMaterialShader_program, METH_VARARGS, doc_QSGMaterialShader_program},
    {sipName_setShaderSourceFile, meth_QSGMaterialShader_setShaderSourceFile, METH_VARARGS, doc_QSGMaterialShader_setShaderSourceFile},
    {sipName_setShaderSourceFiles, meth_QSGMaterialShader_setShaderSourceFiles, METH_VARARGS, doc_QSGMaterialShader_setShaderSourceFiles},
    {sipName_updateState, meth_QSGMaterialShader_updateState, METH_VARARGS, doc_QSGMaterialShader_updateState},
    {sipName_vertexShader, meth_QSGMaterialShader_vertexShader, METH_VARARGS, doc_QSGMaterialShader_vertexShader}
};

PyDoc_STRVAR(doc_QSGMaterialShader, "\1QSGMaterialShader()");


static pyqt5ClassPluginDef plugin_QSGMaterialShader = {
    SIP_NULLPTR,
    0,
    SIP_NULLPTR,
    SIP_NULLPTR
};


sipClassTypeDef sipTypeDef_QtQuick_QSGMaterialShader = {
    {
        -1,
        SIP_NULLPTR,
        SIP_NULLPTR,
        SIP_TYPE_ABSTRACT|SIP_TYPE_SUPER_INIT|SIP_TYPE_LIMITED_API|SIP_TYPE_CLASS,
        sipNameNr_QSGMaterialShader,
        SIP_NULLPTR,
        &plugin_QSGMaterialShader,
    },
    {
        sipNameNr_QSGMaterialShader,
        {0, 0, 1},
        11, methods_QSGMaterialShader,
        0, SIP_NULLPTR,
        0, SIP_NULLPTR,
        {SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR},
    },
    doc_QSGMaterialShader,
    -1,
    -1,
    SIP_NULLPTR,
    SIP_NULLPTR,
    init_type_QSGMaterialShader,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    dealloc_QSGMaterialShader,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    release_QSGMaterialShader,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    sizeof (::QSGMaterialShader),
};
