/*
 * Interface wrapper code.
 *
 * Generated by SIP 6.6.2
 *
 * Copyright (c) 2022 Riverbank Computing Limited <info@riverbankcomputing.com>
 * 
 * This file is part of PyQt6.
 * 
 * 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/pyqt6/src/PyQt6-6.3.1/sip/QtQuick/qsgtexture_platform.sip"
#include <qsgtexture_platform.h>
#line 34 "/build/pyqt6/src/PyQt6-6.3.1/sip/QtQuick/qsgtexture_platform.sip"
#include <qsgtexture_platform.h>
#line 31 "/build/pyqt6/src/PyQt6-6.3.1/build/QtQuick/sipQtQuickQNativeInterfaceQSGOpenGLTexture.cpp"

#line 26 "/build/pyqt6/src/PyQt6-6.3.1/sip/QtQuick/qsgtexture.sip"
#include <qsgtexture.h>
#line 35 "/build/pyqt6/src/PyQt6-6.3.1/build/QtQuick/sipQtQuickQNativeInterfaceQSGOpenGLTexture.cpp"
#line 26 "/build/pyqt6/src/PyQt6-6.3.1/sip/QtQuick/qquickwindow.sip"
#include <qquickwindow.h>
#line 38 "/build/pyqt6/src/PyQt6-6.3.1/build/QtQuick/sipQtQuickQNativeInterfaceQSGOpenGLTexture.cpp"
#line 26 "/build/pyqt6/src/PyQt6-6.3.1/sip/QtCore/qsize.sip"
#include <qsize.h>
#line 41 "/build/pyqt6/src/PyQt6-6.3.1/build/QtQuick/sipQtQuickQNativeInterfaceQSGOpenGLTexture.cpp"
#line 25 "/build/pyqt6/src/PyQt6-6.3.1/sip/QtCore/qflags.sip"
#include <qglobal.h>
#line 44 "/build/pyqt6/src/PyQt6-6.3.1/build/QtQuick/sipQtQuickQNativeInterfaceQSGOpenGLTexture.cpp"


PyDoc_STRVAR(doc_QNativeInterface_QSGOpenGLTexture_nativeTexture, "nativeTexture(self) -> int");

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

    {
        const  ::QNativeInterface::QSGOpenGLTexture *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QNativeInterface_QSGOpenGLTexture, &sipCpp))
        {
             ::GLuint sipRes;

            if (!sipOrigSelf)
            {
                sipAbstractMethod(sipName_QSGOpenGLTexture, sipName_nativeTexture);
                return SIP_NULLPTR;
            }

            sipRes = sipCpp->nativeTexture();

            return PyLong_FromUnsignedLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_QSGOpenGLTexture, sipName_nativeTexture, doc_QNativeInterface_QSGOpenGLTexture_nativeTexture);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QNativeInterface_QSGOpenGLTexture_fromNative, "fromNative(int, QQuickWindow, QSize, options: QQuickWindow.CreateTextureOption = {}) -> QSGTexture");

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

    {
         ::GLuint a0;
         ::QQuickWindow* a1;
        const  ::QSize* a2;
         ::QQuickWindow::CreateTextureOptions a3def = {};
         ::QQuickWindow::CreateTextureOptions* a3 = &a3def;
        int a3State = 0;

        static const char *sipKwdList[] = {
            SIP_NULLPTR,
            SIP_NULLPTR,
            SIP_NULLPTR,
            sipName_options,
        };

        if (sipParseKwdArgs(&sipParseErr, sipArgs, sipKwds, sipKwdList, SIP_NULLPTR, "CuJ8J9|J1", &sipSelf, &a0, sipType_QQuickWindow, &a1, sipType_QSize, &a2, sipType_QFlags_0100QQuickWindow_CreateTextureOption, &a3, &a3State))
        {
             ::QSGTexture*sipRes;

            sipRes =  ::QNativeInterface::QSGOpenGLTexture::fromNative(a0,a1,*a2,*a3);
            sipReleaseType(a3, sipType_QFlags_0100QQuickWindow_CreateTextureOption, a3State);

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

    sipNoMethod(sipParseErr, sipName_QSGOpenGLTexture, sipName_fromNative, doc_QNativeInterface_QSGOpenGLTexture_fromNative);

    return SIP_NULLPTR;
}


/* Call the instance's destructor. */
extern "C" {static void release_QNativeInterface_QSGOpenGLTexture(void *, int);}
static void release_QNativeInterface_QSGOpenGLTexture(void *, int)
{
}


static PyMethodDef methods_QNativeInterface_QSGOpenGLTexture[] = {
    {sipName_fromNative, SIP_MLMETH_CAST(meth_QNativeInterface_QSGOpenGLTexture_fromNative), METH_VARARGS|METH_KEYWORDS, doc_QNativeInterface_QSGOpenGLTexture_fromNative},
    {sipName_nativeTexture, meth_QNativeInterface_QSGOpenGLTexture_nativeTexture, METH_VARARGS, doc_QNativeInterface_QSGOpenGLTexture_nativeTexture}
};


sipClassTypeDef sipTypeDef_QtQuick_QNativeInterface_QSGOpenGLTexture = {
    {
        SIP_NULLPTR,
        SIP_TYPE_ABSTRACT|SIP_TYPE_SUPER_INIT|SIP_TYPE_LIMITED_API|SIP_TYPE_CLASS,
        sipNameNr_QNativeInterface__QSGOpenGLTexture,
        SIP_NULLPTR,
        SIP_NULLPTR
    },
    {
        sipNameNr_QSGOpenGLTexture,
        {16, 255, 0},
        2, methods_QNativeInterface_QSGOpenGLTexture,
        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_PyQt6_sip_simplewrapper,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    release_QNativeInterface_QSGOpenGLTexture,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    0,
};
