# The PEP 484 type hints stub file for the _QOpenGLFunctions_ES2 module.
#
# Generated by SIP 4.18
#
# Copyright (c) 2016 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.


import typing
import sip

from PyQt5 import QtGui

# Support for QDate, QDateTime and QTime.
import datetime

# Convenient type aliases.
PYQT_SIGNAL = typing.Union[QtCore.pyqtSignal, QtCore.pyqtBoundSignal]
PYQT_SLOT = typing.Union[typing.Callable[..., None], QtCore.pyqtBoundSignal]

# Convenient aliases for complicated OpenGL types.
PYQT_OPENGL_ARRAY = typing.Union[typing.Sequence[int], typing.Sequence[float],
        sip.Buffer, None]
PYQT_OPENGL_BOUND_ARRAY = typing.Union[typing.Sequence[int],
        typing.Sequence[float], sip.Buffer, int, None]


class QOpenGLFunctions_ES2(QtGui.QAbstractOpenGLFunctions):

    def __init__(self) -> None: ...

    def glViewport(self, x: int, y: int, width: int, height: int) -> None: ...
    def glVertexAttribPointer(self, indx: int, size: int, type: int, normalized: int, stride: int, ptr: PYQT_OPENGL_BOUND_ARRAY) -> None: ...
    def glVertexAttrib4fv(self, indx: int, values: PYQT_OPENGL_ARRAY) -> None: ...
    def glVertexAttrib4f(self, indx: int, x: float, y: float, z: float, w: float) -> None: ...
    def glVertexAttrib3fv(self, indx: int, values: PYQT_OPENGL_ARRAY) -> None: ...
    def glVertexAttrib3f(self, indx: int, x: float, y: float, z: float) -> None: ...
    def glVertexAttrib2fv(self, indx: int, values: PYQT_OPENGL_ARRAY) -> None: ...
    def glVertexAttrib2f(self, indx: int, x: float, y: float) -> None: ...
    def glVertexAttrib1fv(self, indx: int, values: PYQT_OPENGL_ARRAY) -> None: ...
    def glVertexAttrib1f(self, indx: int, x: float) -> None: ...
    def glValidateProgram(self, program: int) -> None: ...
    def glUseProgram(self, program: int) -> None: ...
    def glUniformMatrix4fv(self, location: int, count: int, transpose: int, value: PYQT_OPENGL_ARRAY) -> None: ...
    def glUniformMatrix3fv(self, location: int, count: int, transpose: int, value: PYQT_OPENGL_ARRAY) -> None: ...
    def glUniformMatrix2fv(self, location: int, count: int, transpose: int, value: PYQT_OPENGL_ARRAY) -> None: ...
    def glUniform4iv(self, location: int, count: int, v: PYQT_OPENGL_ARRAY) -> None: ...
    def glUniform4i(self, location: int, x: int, y: int, z: int, w: int) -> None: ...
    def glUniform4fv(self, location: int, count: int, v: PYQT_OPENGL_ARRAY) -> None: ...
    def glUniform4f(self, location: int, x: float, y: float, z: float, w: float) -> None: ...
    def glUniform3iv(self, location: int, count: int, v: PYQT_OPENGL_ARRAY) -> None: ...
    def glUniform3i(self, location: int, x: int, y: int, z: int) -> None: ...
    def glUniform3fv(self, location: int, count: int, v: PYQT_OPENGL_ARRAY) -> None: ...
    def glUniform3f(self, location: int, x: float, y: float, z: float) -> None: ...
    def glUniform2iv(self, location: int, count: int, v: PYQT_OPENGL_ARRAY) -> None: ...
    def glUniform2i(self, location: int, x: int, y: int) -> None: ...
    def glUniform2fv(self, location: int, count: int, v: PYQT_OPENGL_ARRAY) -> None: ...
    def glUniform2f(self, location: int, x: float, y: float) -> None: ...
    def glUniform1iv(self, location: int, count: int, v: PYQT_OPENGL_ARRAY) -> None: ...
    def glUniform1i(self, location: int, x: int) -> None: ...
    def glUniform1fv(self, location: int, count: int, v: PYQT_OPENGL_ARRAY) -> None: ...
    def glUniform1f(self, location: int, x: float) -> None: ...
    def glTexSubImage2D(self, target: int, level: int, xoffset: int, yoffset: int, width: int, height: int, format: int, type: int, pixels: PYQT_OPENGL_ARRAY) -> None: ...
    def glTexParameteriv(self, target: int, pname: int, params: PYQT_OPENGL_ARRAY) -> None: ...
    def glTexParameteri(self, target: int, pname: int, param: int) -> None: ...
    def glTexParameterfv(self, target: int, pname: int, params: PYQT_OPENGL_ARRAY) -> None: ...
    def glTexParameterf(self, target: int, pname: int, param: float) -> None: ...
    def glTexImage2D(self, target: int, level: int, internalformat: int, width: int, height: int, border: int, format: int, type: int, pixels: PYQT_OPENGL_ARRAY) -> None: ...
    def glStencilOpSeparate(self, face: int, fail: int, zfail: int, zpass: int) -> None: ...
    def glStencilOp(self, fail: int, zfail: int, zpass: int) -> None: ...
    def glStencilMaskSeparate(self, face: int, mask: int) -> None: ...
    def glStencilMask(self, mask: int) -> None: ...
    def glStencilFuncSeparate(self, face: int, func: int, ref: int, mask: int) -> None: ...
    def glStencilFunc(self, func: int, ref: int, mask: int) -> None: ...
    def glScissor(self, x: int, y: int, width: int, height: int) -> None: ...
    def glSampleCoverage(self, value: float, invert: int) -> None: ...
    def glRenderbufferStorage(self, target: int, internalformat: int, width: int, height: int) -> None: ...
    def glReleaseShaderCompiler(self) -> None: ...
    def glPolygonOffset(self, factor: float, units: float) -> None: ...
    def glPixelStorei(self, pname: int, param: int) -> None: ...
    def glLinkProgram(self, program: int) -> None: ...
    def glLineWidth(self, width: float) -> None: ...
    def glIsTexture(self, texture: int) -> int: ...
    def glIsShader(self, shader: int) -> int: ...
    def glIsRenderbuffer(self, renderbuffer: int) -> int: ...
    def glIsProgram(self, program: int) -> int: ...
    def glIsFramebuffer(self, framebuffer: int) -> int: ...
    def glIsEnabled(self, cap: int) -> int: ...
    def glIsBuffer(self, buffer: int) -> int: ...
    def glHint(self, target: int, mode: int) -> None: ...
    def glGetVertexAttribiv(self, index: int, pname: int) -> typing.Union[int, typing.Tuple[int, int, int, int]]: ...
    def glGetVertexAttribfv(self, index: int, pname: int) -> typing.Union[float, typing.Tuple[float, float, float, float]]: ...
    def glGetUniformLocation(self, program: int, name: str) -> int: ...
    def glGetTexParameteriv(self, target: int, pname: int) -> typing.Union[int, typing.Tuple[int, int, int, int]]: ...
    def glGetTexParameterfv(self, target: int, pname: int) -> typing.Union[float, typing.Tuple[float, float, float, float]]: ...
    def glGetString(self, name: int) -> str: ...
    def glGetShaderSource(self, shader: int) -> bytes: ...
    def glGetShaderPrecisionFormat(self, shadertype: int, precisiontype: int) -> typing.Tuple[typing.Tuple[int, int], int]: ...
    def glGetShaderInfoLog(self, shader: int) -> bytes: ...
    def glGetShaderiv(self, shader: int, pname: int) -> int: ...
    def glGetRenderbufferParameteriv(self, target: int, pname: int) -> int: ...
    def glGetProgramInfoLog(self, program: int) -> bytes: ...
    def glGetProgramiv(self, program: int, pname: int) -> typing.Union[int, typing.Tuple[int, int, int]]: ...
    def glGetIntegerv(self, pname: int) -> typing.Union[int, typing.Tuple[int, ...]]: ...
    def glGetFramebufferAttachmentParameteriv(self, target: int, attachment: int, pname: int) -> int: ...
    def glGetFloatv(self, pname: int) -> typing.Union[float, typing.Tuple[float, ...]]: ...
    def glGetError(self) -> int: ...
    def glGetBufferParameteriv(self, target: int, pname: int) -> int: ...
    def glGetBooleanv(self, pname: int) -> typing.Union[bool, typing.Tuple[bool, ...]]: ...
    def glGetAttribLocation(self, program: int, name: str) -> int: ...
    def glGetAttachedShaders(self, program: int) -> typing.Tuple[int, ...]: ...
    def glGetActiveUniform(self, program: int, index: int) -> typing.Tuple[str, int, int]: ...
    def glGetActiveAttrib(self, program: int, index: int) -> typing.Tuple[str, int, int]: ...
    def glGenTextures(self, n: int, textures: typing.Union[int, typing.Tuple[int, ...]]) -> None: ...
    def glGenRenderbuffers(self, n: int) -> typing.Union[int, typing.Tuple[int, ...]]: ...
    def glGenFramebuffers(self, n: int, framebuffers: typing.Union[int, typing.Tuple[int, ...]]) -> None: ...
    def glGenerateMipmap(self, target: int) -> None: ...
    def glGenBuffers(self, n: int) -> typing.Union[int, typing.Tuple[int, ...]]: ...
    def glFrontFace(self, mode: int) -> None: ...
    def glFramebufferTexture2D(self, target: int, attachment: int, textarget: int, texture: int, level: int) -> None: ...
    def glFramebufferRenderbuffer(self, target: int, attachment: int, renderbuffertarget: int, renderbuffer: int) -> None: ...
    def glFlush(self) -> None: ...
    def glFinish(self) -> None: ...
    def glEnableVertexAttribArray(self, index: int) -> None: ...
    def glEnable(self, cap: int) -> None: ...
    def glDrawElements(self, mode: int, count: int, type: int, indices: PYQT_OPENGL_ARRAY) -> None: ...
    def glDrawArrays(self, mode: int, first: int, count: int) -> None: ...
    def glDisableVertexAttribArray(self, index: int) -> None: ...
    def glDisable(self, cap: int) -> None: ...
    def glDetachShader(self, program: int, shader: int) -> None: ...
    def glDepthRangef(self, zNear: float, zFar: float) -> None: ...
    def glDepthMask(self, flag: int) -> None: ...
    def glDepthFunc(self, func: int) -> None: ...
    def glDeleteTextures(self, n: int, textures: PYQT_OPENGL_ARRAY) -> None: ...
    def glDeleteShader(self, shader: int) -> None: ...
    def glDeleteRenderbuffers(self, n: int, renderbuffers: typing.Any) -> None: ...
    def glDeleteProgram(self, program: int) -> None: ...
    def glDeleteFramebuffers(self, n: int, framebuffers: typing.Any) -> None: ...
    def glDeleteBuffers(self, n: int, buffers: PYQT_OPENGL_ARRAY) -> None: ...
    def glCullFace(self, mode: int) -> None: ...
    def glCreateShader(self, type: int) -> int: ...
    def glCreateProgram(self) -> int: ...
    def glCopyTexSubImage2D(self, target: int, level: int, xoffset: int, yoffset: int, x: int, y: int, width: int, height: int) -> None: ...
    def glCopyTexImage2D(self, target: int, level: int, internalformat: int, x: int, y: int, width: int, height: int, border: int) -> None: ...
    def glCompressedTexSubImage2D(self, target: int, level: int, xoffset: int, yoffset: int, width: int, height: int, format: int, imageSize: int, data: PYQT_OPENGL_ARRAY) -> None: ...
    def glCompressedTexImage2D(self, target: int, level: int, internalformat: int, width: int, height: int, border: int, imageSize: int, data: PYQT_OPENGL_ARRAY) -> None: ...
    def glCompileShader(self, shader: int) -> None: ...
    def glColorMask(self, red: int, green: int, blue: int, alpha: int) -> None: ...
    def glClearStencil(self, s: int) -> None: ...
    def glClearDepthf(self, depth: float) -> None: ...
    def glClearColor(self, red: float, green: float, blue: float, alpha: float) -> None: ...
    def glClear(self, mask: int) -> None: ...
    def glCheckFramebufferStatus(self, target: int) -> int: ...
    def glBufferSubData(self, target: int, offset: int, size: int, data: PYQT_OPENGL_ARRAY) -> None: ...
    def glBufferData(self, target: int, size: int, data: PYQT_OPENGL_ARRAY, usage: int) -> None: ...
    def glBlendFuncSeparate(self, srcRGB: int, dstRGB: int, srcAlpha: int, dstAlpha: int) -> None: ...
    def glBlendFunc(self, sfactor: int, dfactor: int) -> None: ...
    def glBlendEquationSeparate(self, modeRGB: int, modeAlpha: int) -> None: ...
    def glBlendEquation(self, mode: int) -> None: ...
    def glBlendColor(self, red: float, green: float, blue: float, alpha: float) -> None: ...
    def glBindTexture(self, target: int, texture: int) -> None: ...
    def glBindRenderbuffer(self, target: int, renderbuffer: int) -> None: ...
    def glBindFramebuffer(self, target: int, framebuffer: int) -> None: ...
    def glBindBuffer(self, target: int, buffer: int) -> None: ...
    def glBindAttribLocation(self, program: int, index: int, name: str) -> None: ...
    def glAttachShader(self, program: int, shader: int) -> None: ...
    def glActiveTexture(self, texture: int) -> None: ...
    def initializeOpenGLFunctions(self) -> bool: ...
