# Path: e3d/backends/base_backend.py
# class ShaderStruct(OrderedDict):
#     def __init__(self, *args, **kwds):
#         super(ShaderStruct, self).__init__(*args, **kwds)
# 
#     def __len__(self):
#         res = super(ShaderStruct, self).__len__()
#         for it in self.values():
#             if isinstance(it, list):
#                 res += it.__len__() - 2
#         return res
# 
#     def append(self, key, pyob):
#         if key in self.keys():
#             self.pop(key)
#         self[key] = pyob
# 
#     def updateValue(self, key, value):
#         self[key] = value
# 
# Path: e3d/backends/ogl3/shader_management/ShaderParametersHelper.py
# def getActiveUniforms(program):
#     actives = getShaderActives(program, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH)
#     return actives
# 
# def getActiveAttribs(program):
#     actives = getShaderActives(program, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH)
#     return actives


import numpy as np
from glaze.GL import *
from ...base_backend import ShaderStruct
from .ShaderParametersHelper import getActiveUniforms, getActiveAttribs
        from glaze import GL



class Shader(object):
    def _getisSet(self):
        return self._isSet

    isSet = property(_getisSet)

    def _getID(self):
        return self._iID


# Path: e3d/backends/base_backend.py
# class ShaderStruct(OrderedDict):
#     def __init__(self, *args, **kwds):
#         super(ShaderStruct, self).__init__(*args, **kwds)
# 
#     def __len__(self):
#         res = super(ShaderStruct, self).__len__()
#         for it in self.values():
#             if isinstance(it, list):
#                 res += it.__len__() - 2
#         return res
# 
#     def append(self, key, pyob):
#         if key in self.keys():
#             self.pop(key)
#         self[key] = pyob
# 
#     def updateValue(self, key, value):
#         self[key] = value
# 
# Path: e3d/backends/ogl3/shader_management/ShaderParametersHelper.py
# def getActiveUniforms(program):
#     actives = getShaderActives(program, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH)
#     return actives
# 
# def getActiveAttribs(program):
#     actives = getShaderActives(program, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH)
#     return actives


# Path: e3d/backends/ogl3/shader_management/ShaderClass.py
import numpy as np
from glaze.GL import *
from ...base_backend import ShaderStruct
from .ShaderParametersHelper import getActiveUniforms, getActiveAttribs
        from glaze import GL




class Shader(object):
    def _getisSet(self):
        return self._isSet

    isSet = property(_getisSet)

    def _getID(self):
        return self._iID


    ID = property(fget=_getID)