/*
 * Interface wrapper code.
 *
 * Generated by SIP 6.6.2
 *
 * Copyright (c) 2022 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 28 "/build/pyqt5/src/PyQt5-5.15.7/sip/QtQuick/qsgrendernode.sip"
#include <qsgrendernode.h>
#line 58 "/build/pyqt5/src/PyQt5-5.15.7/sip/QtQuick/qsgrendernode.sip"
#include <qsgrendernode.h>
#line 31 "/build/pyqt5/src/PyQt5-5.15.7/build/QtQuick/sipQtQuickQSGRenderNodeRenderState.cpp"

#line 26 "/build/pyqt5/src/PyQt5-5.15.7/sip/QtGui/qregion.sip"
#include <qregion.h>
#line 35 "/build/pyqt5/src/PyQt5-5.15.7/build/QtQuick/sipQtQuickQSGRenderNodeRenderState.cpp"
#line 26 "/build/pyqt5/src/PyQt5-5.15.7/sip/QtCore/qrect.sip"
#include <qrect.h>
#line 38 "/build/pyqt5/src/PyQt5-5.15.7/build/QtQuick/sipQtQuickQSGRenderNodeRenderState.cpp"
#line 30 "/build/pyqt5/src/PyQt5-5.15.7/sip/QtGui/qmatrix4x4.sip"
#include <qmatrix4x4.h>
#line 41 "/build/pyqt5/src/PyQt5-5.15.7/build/QtQuick/sipQtQuickQSGRenderNodeRenderState.cpp"


PyDoc_STRVAR(doc_QSGRenderNode_RenderState_projectionMatrix, "projectionMatrix(self) -> QMatrix4x4");

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

    {
        const  ::QSGRenderNode::RenderState *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QSGRenderNode_RenderState, &sipCpp))
        {
            const  ::QMatrix4x4*sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RenderState, sipName_projectionMatrix);
                return SIP_NULLPTR;
            }

            sipRes = sipCpp->projectionMatrix();

            return sipConvertFromType(const_cast< ::QMatrix4x4 *>(sipRes),sipType_QMatrix4x4,SIP_NULLPTR);
        }
    }

    sipNoMethod(sipParseErr, sipName_RenderState, sipName_projectionMatrix, doc_QSGRenderNode_RenderState_projectionMatrix);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGRenderNode_RenderState_scissorRect, "scissorRect(self) -> QRect");

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

    {
        const  ::QSGRenderNode::RenderState *sipCpp;

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

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RenderState, sipName_scissorRect);
                return SIP_NULLPTR;
            }

            sipRes = new  ::QRect(sipCpp->scissorRect());

            return sipConvertFromNewType(sipRes,sipType_QRect,SIP_NULLPTR);
        }
    }

    sipNoMethod(sipParseErr, sipName_RenderState, sipName_scissorRect, doc_QSGRenderNode_RenderState_scissorRect);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGRenderNode_RenderState_scissorEnabled, "scissorEnabled(self) -> bool");

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

    {
        const  ::QSGRenderNode::RenderState *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QSGRenderNode_RenderState, &sipCpp))
        {
            bool sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RenderState, sipName_scissorEnabled);
                return SIP_NULLPTR;
            }

            sipRes = sipCpp->scissorEnabled();

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_RenderState, sipName_scissorEnabled, doc_QSGRenderNode_RenderState_scissorEnabled);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGRenderNode_RenderState_stencilValue, "stencilValue(self) -> int");

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

    {
        const  ::QSGRenderNode::RenderState *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QSGRenderNode_RenderState, &sipCpp))
        {
            int sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RenderState, sipName_stencilValue);
                return SIP_NULLPTR;
            }

            sipRes = sipCpp->stencilValue();

            return PyLong_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_RenderState, sipName_stencilValue, doc_QSGRenderNode_RenderState_stencilValue);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGRenderNode_RenderState_stencilEnabled, "stencilEnabled(self) -> bool");

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

    {
        const  ::QSGRenderNode::RenderState *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QSGRenderNode_RenderState, &sipCpp))
        {
            bool sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RenderState, sipName_stencilEnabled);
                return SIP_NULLPTR;
            }

            sipRes = sipCpp->stencilEnabled();

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_RenderState, sipName_stencilEnabled, doc_QSGRenderNode_RenderState_stencilEnabled);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGRenderNode_RenderState_clipRegion, "clipRegion(self) -> QRegion");

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

    {
        const  ::QSGRenderNode::RenderState *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QSGRenderNode_RenderState, &sipCpp))
        {
            const  ::QRegion*sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_RenderState, sipName_clipRegion);
                return SIP_NULLPTR;
            }

            sipRes = sipCpp->clipRegion();

            return sipConvertFromType(const_cast< ::QRegion *>(sipRes),sipType_QRegion,SIP_NULLPTR);
        }
    }

    sipNoMethod(sipParseErr, sipName_RenderState, sipName_clipRegion, doc_QSGRenderNode_RenderState_clipRegion);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QSGRenderNode_RenderState_get, "get(self, str) -> PyQt5.sip.voidptr");

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

    {
        const char* a0;
        PyObject *a0Keep;
        const  ::QSGRenderNode::RenderState *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "BAA", &sipSelf, sipType_QSGRenderNode_RenderState, &sipCpp, &a0Keep, &a0))
        {
            void*sipRes;

            sipRes = (sipSelfWasArg ? sipCpp-> ::QSGRenderNode::RenderState::get(a0) : sipCpp->get(a0));
            Py_DECREF(a0Keep);

            return sipConvertFromVoidPtr(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_RenderState, sipName_get, doc_QSGRenderNode_RenderState_get);

    return SIP_NULLPTR;
}


/* Call the instance's destructor. */
extern "C" {static void release_QSGRenderNode_RenderState(void *, int);}
static void release_QSGRenderNode_RenderState(void *sipCppV, int)
{
    delete reinterpret_cast< ::QSGRenderNode::RenderState *>(sipCppV);
}


extern "C" {static void dealloc_QSGRenderNode_RenderState(sipSimpleWrapper *);}
static void dealloc_QSGRenderNode_RenderState(sipSimpleWrapper *sipSelf)
{
    if (sipIsOwnedByPython(sipSelf))
    {
        release_QSGRenderNode_RenderState(sipGetAddress(sipSelf), 0);
    }
}


static PyMethodDef methods_QSGRenderNode_RenderState[] = {
    {sipName_clipRegion, meth_QSGRenderNode_RenderState_clipRegion, METH_VARARGS, doc_QSGRenderNode_RenderState_clipRegion},
    {sipName_get, meth_QSGRenderNode_RenderState_get, METH_VARARGS, doc_QSGRenderNode_RenderState_get},
    {sipName_projectionMatrix, meth_QSGRenderNode_RenderState_projectionMatrix, METH_VARARGS, doc_QSGRenderNode_RenderState_projectionMatrix},
    {sipName_scissorEnabled, meth_QSGRenderNode_RenderState_scissorEnabled, METH_VARARGS, doc_QSGRenderNode_RenderState_scissorEnabled},
    {sipName_scissorRect, meth_QSGRenderNode_RenderState_scissorRect, METH_VARARGS, doc_QSGRenderNode_RenderState_scissorRect},
    {sipName_stencilEnabled, meth_QSGRenderNode_RenderState_stencilEnabled, METH_VARARGS, doc_QSGRenderNode_RenderState_stencilEnabled},
    {sipName_stencilValue, meth_QSGRenderNode_RenderState_stencilValue, METH_VARARGS, doc_QSGRenderNode_RenderState_stencilValue}
};


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


sipClassTypeDef sipTypeDef_QtQuick_QSGRenderNode_RenderState = {
    {
        -1,
        SIP_NULLPTR,
        SIP_NULLPTR,
        SIP_TYPE_ABSTRACT|SIP_TYPE_SUPER_INIT|SIP_TYPE_LIMITED_API|SIP_TYPE_CLASS,
        sipNameNr_QSGRenderNode__RenderState,
        SIP_NULLPTR,
        &plugin_QSGRenderNode_RenderState
    },
    {
        sipNameNr_RenderState,
        {84, 255, 0},
        7, methods_QSGRenderNode_RenderState,
        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},
    },
    SIP_NULLPTR,
    -1,
    sipNameNr_sip_simplewrapper,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    dealloc_QSGRenderNode_RenderState,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    release_QSGRenderNode_RenderState,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    0,
};
