from .attribute import Attribute
from .buffer import Buffer
from .compute_shader import ComputeShader
from .context import Context, create_context, extensions, hwinfo, inspect, glprocs, release
from .error import Error
from .framebuffer import Framebuffer
from .limits import Limits
from .program import Program
from .query import Query
from .renderbuffer import Renderbuffer
from .sampler import Sampler
from .scope import Scope
from .texture import Texture
from .uniform import Uniform
from .vertex_array import VertexArray
from .tools import compiler_error, linker_error, split_format

from .constants import (
    NOTHING, BLEND, DEPTH_TEST, CULL_FACE, RASTERIZER_DISCARD, NEAREST, LINEAR,
    NEAREST_MIPMAP_NEAREST, LINEAR_MIPMAP_NEAREST, NEAREST_MIPMAP_LINEAR, LINEAR_MIPMAP_LINEAR,
    POINTS, LINES, LINE_LOOP, LINE_STRIP, TRIANGLES, TRIANGLE_STRIP, TRIANGLE_FAN, LINES_ADJACENCY,
    LINE_STRIP_ADJACENCY, TRIANGLES_ADJACENCY, TRIANGLE_STRIP_ADJACENCY, PATCHES,
    CLAMP_TO_EDGE_X, CLAMP_TO_EDGE_Y, CLAMP_TO_EDGE_Z, REPEAT_X, REPEAT_Y, REPEAT_Z,
    MIRRORED_REPEAT_X, MIRRORED_REPEAT_Y, MIRRORED_REPEAT_Z, MIRROR_CLAMP_TO_EDGE_X,
    MIRROR_CLAMP_TO_EDGE_Y, MIRROR_CLAMP_TO_EDGE_Z, CLAMP_TO_BORDER_X,
    CLAMP_TO_BORDER_Y, CLAMP_TO_BORDER_Z,
)

__version__ = '6.0.0'

# TODO: remove
class Refholder:
    __slots__ = ['mglo', 'old']
    def __init__(self, mglo):
        self.mglo = mglo
