# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
This file contains the exact signatures for all functions in module
PySide6.QtOpenGL, except for defaults which are replaced by "...".
"""

# mypy: disable-error-code="override, overload-overlap"
# Module `PySide6.QtOpenGL`

import PySide6.QtOpenGL
import PySide6.QtCore
import PySide6.QtGui

import enum
import typing
from PySide6.QtCore import Signal
from shiboken6 import Shiboken


class QAbstractOpenGLFunctions(Shiboken.Object): ...


class QIntList: ...


class QOpenGLBuffer(Shiboken.Object):

    class Access(enum.Enum):

        ReadOnly                  = 0x88b8
        WriteOnly                 = 0x88b9
        ReadWrite                 = 0x88ba

    class RangeAccessFlag(enum.Flag):

        RangeRead                 = 0x1
        RangeWrite                = 0x2
        RangeInvalidate           = 0x4
        RangeInvalidateBuffer     = 0x8
        RangeFlushExplicit        = 0x10
        RangeUnsynchronized       = 0x20

    class Type(enum.Enum):

        VertexBuffer              = 0x8892
        IndexBuffer               = 0x8893
        PixelPackBuffer           = 0x88eb
        PixelUnpackBuffer         = 0x88ec

    class UsagePattern(enum.Enum):

        StreamDraw                = 0x88e0
        StreamRead                = 0x88e1
        StreamCopy                = 0x88e2
        StaticDraw                = 0x88e4
        StaticRead                = 0x88e5
        StaticCopy                = 0x88e6
        DynamicDraw               = 0x88e8
        DynamicRead               = 0x88e9
        DynamicCopy               = 0x88ea


class QOpenGLDebugLogger(PySide6.QtCore.QObject):

    messageLogged            : typing.ClassVar[Signal] = ... # messageLogged(QOpenGLDebugMessage)

    class LoggingMode(enum.Enum):

        AsynchronousLogging       = 0x0
        SynchronousLogging        = 0x1


class QOpenGLDebugMessage(Shiboken.Object):

    class Severity(enum.Flag):

        InvalidSeverity           = 0x0
        HighSeverity              = 0x1
        MediumSeverity            = 0x2
        LowSeverity               = 0x4
        LastSeverity              = 0x8
        NotificationSeverity      = 0x8
        AnySeverity               = 0xffffffff

    class Source(enum.Flag):

        InvalidSource             = 0x0
        APISource                 = 0x1
        WindowSystemSource        = 0x2
        ShaderCompilerSource      = 0x4
        ThirdPartySource          = 0x8
        ApplicationSource         = 0x10
        LastSource                = 0x20
        OtherSource               = 0x20
        AnySource                 = 0xffffffff

    class Type(enum.Flag):

        InvalidType               = 0x0
        ErrorType                 = 0x1
        DeprecatedBehaviorType    = 0x2
        UndefinedBehaviorType     = 0x4
        PortabilityType           = 0x8
        PerformanceType           = 0x10
        OtherType                 = 0x20
        MarkerType                = 0x40
        GroupPushType             = 0x80
        GroupPopType              = 0x100
        LastType                  = 0x100
        AnyType                   = 0xffffffff


    def __repr__(self, /) -> str: ...


class QOpenGLFramebufferObject(Shiboken.Object):

    class Attachment(enum.Enum):

        NoAttachment              = 0x0
        CombinedDepthStencil      = 0x1
        Depth                     = 0x2

    class FramebufferRestorePolicy(enum.Enum):

        DontRestoreFramebufferBinding = 0x0
        RestoreFramebufferBindingToDefault = 0x1
        RestoreFrameBufferBinding = 0x2


class QOpenGLFramebufferObjectFormat(Shiboken.Object): ...


class QOpenGLFunctions_1_0(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_1_1(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_1_2(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_1_3(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_1_4(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_1_5(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_2_0(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_2_1(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_3_0(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_3_1(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_3_2_Compatibility(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_3_2_Core(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_3_3_Compatibility(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_3_3_Core(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_4_0_Compatibility(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_4_0_Core(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_4_1_Compatibility(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_4_1_Core(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_4_2_Compatibility(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_4_2_Core(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_4_3_Compatibility(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_4_3_Core(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_4_4_Compatibility(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_4_4_Core(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_4_5_Compatibility(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLFunctions_4_5_Core(PySide6.QtOpenGL.QAbstractOpenGLFunctions): ...


class QOpenGLPaintDevice(PySide6.QtGui.QPaintDevice): ...


class QOpenGLPixelTransferOptions(Shiboken.Object): ...


class QOpenGLShader(PySide6.QtCore.QObject):

    class ShaderTypeBit(enum.Flag):

        Vertex                    = 0x1
        Fragment                  = 0x2
        Geometry                  = 0x4
        TessellationControl       = 0x8
        TessellationEvaluation    = 0x10
        Compute                   = 0x20


class QOpenGLShaderProgram(PySide6.QtCore.QObject): ...


class QOpenGLTexture(Shiboken.Object):

    class BindingTarget(enum.Enum):

        BindingTarget1D           = 0x8068
        BindingTarget2D           = 0x8069
        BindingTarget3D           = 0x806a
        BindingTargetRectangle    = 0x84f6
        BindingTargetCubeMap      = 0x8514
        BindingTarget1DArray      = 0x8c1c
        BindingTarget2DArray      = 0x8c1d
        BindingTargetBuffer       = 0x8c2c
        BindingTargetCubeMapArray = 0x900a
        BindingTarget2DMultisample = 0x9104
        BindingTarget2DMultisampleArray = 0x9105

    class ComparisonFunction(enum.Enum):

        CompareNever              = 0x200
        CompareLess               = 0x201
        CompareEqual              = 0x202
        CompareLessEqual          = 0x203
        CompareGreater            = 0x204
        CommpareNotEqual          = 0x205
        CompareNotEqual           = 0x205
        CompareGreaterEqual       = 0x206
        CompareAlways             = 0x207

    class ComparisonMode(enum.Enum):

        CompareNone               = 0x0
        CompareRefToTexture       = 0x884e

    class CoordinateDirection(enum.Enum):

        DirectionS                = 0x2802
        DirectionT                = 0x2803
        DirectionR                = 0x8072

    class CubeMapFace(enum.Enum):

        CubeMapPositiveX          = 0x8515
        CubeMapNegativeX          = 0x8516
        CubeMapPositiveY          = 0x8517
        CubeMapNegativeY          = 0x8518
        CubeMapPositiveZ          = 0x8519
        CubeMapNegativeZ          = 0x851a

    class DepthStencilMode(enum.Enum):

        StencilMode               = 0x1901
        DepthMode                 = 0x1902

    class Feature(enum.Flag):

        ImmutableStorage          = 0x1
        ImmutableMultisampleStorage = 0x2
        TextureRectangle          = 0x4
        TextureArrays             = 0x8
        Texture3D                 = 0x10
        TextureMultisample        = 0x20
        TextureBuffer             = 0x40
        TextureCubeMapArrays      = 0x80
        Swizzle                   = 0x100
        StencilTexturing          = 0x200
        AnisotropicFiltering      = 0x400
        NPOTTextures              = 0x800
        NPOTTextureRepeat         = 0x1000
        Texture1D                 = 0x2000
        TextureComparisonOperators = 0x4000
        TextureMipMapLevel        = 0x8000
        MaxFeatureFlag            = 0x10000

    class Filter(enum.Enum):

        Nearest                   = 0x2600
        Linear                    = 0x2601
        NearestMipMapNearest      = 0x2700
        LinearMipMapNearest       = 0x2701
        NearestMipMapLinear       = 0x2702
        LinearMipMapLinear        = 0x2703

    class MipMapGeneration(enum.Enum):

        GenerateMipMaps           = 0x0
        DontGenerateMipMaps       = 0x1

    class PixelFormat(enum.Enum):

        NoSourceFormat            = 0x0
        Stencil                   = 0x1901
        Depth                     = 0x1902
        Red                       = 0x1903
        Alpha                     = 0x1906
        RGB                       = 0x1907
        RGBA                      = 0x1908
        Luminance                 = 0x1909
        LuminanceAlpha            = 0x190a
        BGR                       = 0x80e0
        BGRA                      = 0x80e1
        RG                        = 0x8227
        RG_Integer                = 0x8228
        DepthStencil              = 0x84f9
        Red_Integer               = 0x8d94
        RGB_Integer               = 0x8d98
        RGBA_Integer              = 0x8d99
        BGR_Integer               = 0x8d9a
        BGRA_Integer              = 0x8d9b

    class PixelType(enum.Enum):

        NoPixelType               = 0x0
        Int8                      = 0x1400
        UInt8                     = 0x1401
        Int16                     = 0x1402
        UInt16                    = 0x1403
        Int32                     = 0x1404
        UInt32                    = 0x1405
        Float32                   = 0x1406
        Float16                   = 0x140b
        UInt8_RG3B2               = 0x8032
        UInt16_RGBA4              = 0x8033
        UInt16_RGB5A1             = 0x8034
        UInt32_RGBA8              = 0x8035
        UInt32_RGB10A2            = 0x8036
        UInt8_RG3B2_Rev           = 0x8362
        UInt16_R5G6B5             = 0x8363
        UInt16_R5G6B5_Rev         = 0x8364
        UInt16_RGBA4_Rev          = 0x8365
        UInt16_RGB5A1_Rev         = 0x8366
        UInt32_RGBA8_Rev          = 0x8367
        UInt32_RGB10A2_Rev        = 0x8368
        UInt32_D24S8              = 0x84fa
        UInt32_RG11B10F           = 0x8c3b
        UInt32_RGB9_E5            = 0x8c3e
        Float16OES                = 0x8d61
        Float32_D32_UInt32_S8_X24 = 0x8dad

    class SwizzleComponent(enum.Enum):

        SwizzleRed                = 0x8e42
        SwizzleGreen              = 0x8e43
        SwizzleBlue               = 0x8e44
        SwizzleAlpha              = 0x8e45

    class SwizzleValue(enum.Enum):

        ZeroValue                 = 0x0
        OneValue                  = 0x1
        RedValue                  = 0x1903
        GreenValue                = 0x1904
        BlueValue                 = 0x1905
        AlphaValue                = 0x1906

    class Target(enum.Enum):

        Target1D                  = 0xde0
        Target2D                  = 0xde1
        Target3D                  = 0x806f
        TargetRectangle           = 0x84f5
        TargetCubeMap             = 0x8513
        Target1DArray             = 0x8c18
        Target2DArray             = 0x8c1a
        TargetBuffer              = 0x8c2a
        TargetCubeMapArray        = 0x9009
        Target2DMultisample       = 0x9100
        Target2DMultisampleArray  = 0x9102

    class TextureFormat(enum.Enum):

        NoFormat                  = 0x0
        DepthFormat               = 0x1902
        AlphaFormat               = 0x1906
        RGBFormat                 = 0x1907
        RGBAFormat                = 0x1908
        LuminanceFormat           = 0x1909
        LuminanceAlphaFormat      = 0x190a
        RG3B2                     = 0x2a10
        RGB8_UNorm                = 0x8051
        RGB16_UNorm               = 0x8054
        RGBA4                     = 0x8056
        RGB5A1                    = 0x8057
        RGBA8_UNorm               = 0x8058
        RGBA16_UNorm              = 0x805b
        D16                       = 0x81a5
        D24                       = 0x81a6
        D32                       = 0x81a7
        R8_UNorm                  = 0x8229
        R16_UNorm                 = 0x822a
        RG8_UNorm                 = 0x822b
        RG16_UNorm                = 0x822c
        R16F                      = 0x822d
        R32F                      = 0x822e
        RG16F                     = 0x822f
        RG32F                     = 0x8230
        R8I                       = 0x8231
        R8U                       = 0x8232
        R16I                      = 0x8233
        R16U                      = 0x8234
        R32I                      = 0x8235
        R32U                      = 0x8236
        RG8I                      = 0x8237
        RG8U                      = 0x8238
        RG16I                     = 0x8239
        RG16U                     = 0x823a
        RG32I                     = 0x823b
        RG32U                     = 0x823c
        RGB_DXT1                  = 0x83f0
        RGBA_DXT1                 = 0x83f1
        RGBA_DXT3                 = 0x83f2
        RGBA_DXT5                 = 0x83f3
        RGBA32F                   = 0x8814
        RGB32F                    = 0x8815
        RGBA16F                   = 0x881a
        RGB16F                    = 0x881b
        D24S8                     = 0x88f0
        RG11B10F                  = 0x8c3a
        RGB9E5                    = 0x8c3d
        SRGB8                     = 0x8c41
        SRGB8_Alpha8              = 0x8c43
        SRGB_DXT1                 = 0x8c4c
        SRGB_Alpha_DXT1           = 0x8c4d
        SRGB_Alpha_DXT3           = 0x8c4e
        SRGB_Alpha_DXT5           = 0x8c4f
        D32F                      = 0x8cac
        D32FS8X24                 = 0x8cad
        S8                        = 0x8d48
        R5G6B5                    = 0x8d62
        RGB8_ETC1                 = 0x8d64
        RGBA32U                   = 0x8d70
        RGB32U                    = 0x8d71
        RGBA16U                   = 0x8d76
        RGB16U                    = 0x8d77
        RGBA8U                    = 0x8d7c
        RGB8U                     = 0x8d7d
        RGBA32I                   = 0x8d82
        RGB32I                    = 0x8d83
        RGBA16I                   = 0x8d88
        RGB16I                    = 0x8d89
        RGBA8I                    = 0x8d8e
        RGB8I                     = 0x8d8f
        R_ATI1N_UNorm             = 0x8dbb
        R_ATI1N_SNorm             = 0x8dbc
        RG_ATI2N_UNorm            = 0x8dbd
        RG_ATI2N_SNorm            = 0x8dbe
        RGB_BP_UNorm              = 0x8e8c
        SRGB_BP_UNorm             = 0x8e8d
        RGB_BP_SIGNED_FLOAT       = 0x8e8e
        RGB_BP_UNSIGNED_FLOAT     = 0x8e8f
        R8_SNorm                  = 0x8f94
        RG8_SNorm                 = 0x8f95
        RGB8_SNorm                = 0x8f96
        RGBA8_SNorm               = 0x8f97
        R16_SNorm                 = 0x8f98
        RG16_SNorm                = 0x8f99
        RGB16_SNorm               = 0x8f9a
        RGBA16_SNorm              = 0x8f9b
        RGB10A2                   = 0x906f
        R11_EAC_UNorm             = 0x9270
        R11_EAC_SNorm             = 0x9271
        RG11_EAC_UNorm            = 0x9272
        RG11_EAC_SNorm            = 0x9273
        RGB8_ETC2                 = 0x9274
        SRGB8_ETC2                = 0x9275
        RGB8_PunchThrough_Alpha1_ETC2 = 0x9276
        SRGB8_PunchThrough_Alpha1_ETC2 = 0x9277
        RGBA8_ETC2_EAC            = 0x9278
        SRGB8_Alpha8_ETC2_EAC     = 0x9279
        RGBA_ASTC_4x4             = 0x93b0
        RGBA_ASTC_5x4             = 0x93b1
        RGBA_ASTC_5x5             = 0x93b2
        RGBA_ASTC_6x5             = 0x93b3
        RGBA_ASTC_6x6             = 0x93b4
        RGBA_ASTC_8x5             = 0x93b5
        RGBA_ASTC_8x6             = 0x93b6
        RGBA_ASTC_8x8             = 0x93b7
        RGBA_ASTC_10x5            = 0x93b8
        RGBA_ASTC_10x6            = 0x93b9
        RGBA_ASTC_10x8            = 0x93ba
        RGBA_ASTC_10x10           = 0x93bb
        RGBA_ASTC_12x10           = 0x93bc
        RGBA_ASTC_12x12           = 0x93bd
        SRGB8_Alpha8_ASTC_4x4     = 0x93d0
        SRGB8_Alpha8_ASTC_5x4     = 0x93d1
        SRGB8_Alpha8_ASTC_5x5     = 0x93d2
        SRGB8_Alpha8_ASTC_6x5     = 0x93d3
        SRGB8_Alpha8_ASTC_6x6     = 0x93d4
        SRGB8_Alpha8_ASTC_8x5     = 0x93d5
        SRGB8_Alpha8_ASTC_8x6     = 0x93d6
        SRGB8_Alpha8_ASTC_8x8     = 0x93d7
        SRGB8_Alpha8_ASTC_10x5    = 0x93d8
        SRGB8_Alpha8_ASTC_10x6    = 0x93d9
        SRGB8_Alpha8_ASTC_10x8    = 0x93da
        SRGB8_Alpha8_ASTC_10x10   = 0x93db
        SRGB8_Alpha8_ASTC_12x10   = 0x93dc
        SRGB8_Alpha8_ASTC_12x12   = 0x93dd

    class TextureFormatClass(enum.Enum):

        NoFormatClass             = 0x0
        FormatClass_128Bit        = 0x1
        FormatClass_96Bit         = 0x2
        FormatClass_64Bit         = 0x3
        FormatClass_48Bit         = 0x4
        FormatClass_32Bit         = 0x5
        FormatClass_24Bit         = 0x6
        FormatClass_16Bit         = 0x7
        FormatClass_8Bit          = 0x8
        FormatClass_RGTC1_R       = 0x9
        FormatClass_RGTC2_RG      = 0xa
        FormatClass_BPTC_Unorm    = 0xb
        FormatClass_BPTC_Float    = 0xc
        FormatClass_S3TC_DXT1_RGB = 0xd
        FormatClass_S3TC_DXT1_RGBA = 0xe
        FormatClass_S3TC_DXT3_RGBA = 0xf
        FormatClass_S3TC_DXT5_RGBA = 0x10
        FormatClass_Unique        = 0x11

    class TextureUnitReset(enum.Enum):

        ResetTextureUnit          = 0x0
        DontResetTextureUnit      = 0x1

    class WrapMode(enum.Enum):

        Repeat                    = 0x2901
        ClampToBorder             = 0x812d
        ClampToEdge               = 0x812f
        MirroredRepeat            = 0x8370


    def __repr__(self, /) -> str: ...


class QOpenGLTextureBlitter(Shiboken.Object):

    class Origin(enum.Enum):

        OriginBottomLeft          = 0x0
        OriginTopLeft             = 0x1


class QOpenGLTimeMonitor(PySide6.QtCore.QObject): ...


class QOpenGLTimerQuery(PySide6.QtCore.QObject): ...


class QOpenGLVersionFunctionsFactory(Shiboken.Object): ...


class QOpenGLVersionProfile(Shiboken.Object): ...
    def __repr__(self, /) -> str: ...


class QOpenGLVertexArrayObject(PySide6.QtCore.QObject):

    class Binder(Shiboken.Object): ...


class QOpenGLWindow(PySide6.QtGui.QPaintDeviceWindow):

    frameSwapped             : typing.ClassVar[Signal] = ... # frameSwapped()

    class UpdateBehavior(enum.Enum):

        NoPartialUpdate           = 0x0
        PartialUpdateBlit         = 0x1
        PartialUpdateBlend        = 0x2


# eof
