class_docstr: Representation of global shader variable
  
  Parameters
  ----------
  name : str
      the name of the variable. This string can also contain the full
      definition of the variable, e.g. 'uniform vec2 foo'.
  value : {float, int, tuple, GLObject}
      If given, vtype and dtype are determined automatically. If a
      float/int/tuple is given, the variable is a uniform. If a gloo
      object is given that has a glsl_type property, the variable is
      an attribute and
  vtype : {'const', 'uniform', 'attribute', 'varying', 'inout'}
      The type of variable.
  dtype : str
      The data type of the variable, e.g. 'float', 'vec4', 'mat', etc.
class_docstr_tok: ["Representation","of","global","shader","variable","Parameters","--","--","--","--","--","name",":","str","the","name","of","the","variable",".","This","string","can","also","contain","the","full","definition","of","the","variable",",","e.g",".","'uniform","vec2","foo","'",".","value",":","{","float",",","int",",","tuple",",","GLObject","}","If","given",",","vtype","and","dtype","are","determined","automatically",".","If","a","float\/int\/tuple","is","given",",","the","variable","is","a","uniform",".","If","a","gloo","object","is","given","that","has","a","glsl_type","property",",","the","variable","is","an","attribute","and","vtype",":","{","'const","'",",","'uniform","'",",","'attribute","'",",","'varying","'",",","'inout","'","}","The","type","of","variable",".","dtype",":","str","The","data","type","of","the","variable",",","e.g",".","'float","'",",","'vec4","'",",","'mat","'",",","etc","."]
docstr: Return a unique ID that changes whenever the state of the Variable
  has changed. This allows ModularProgram to quickly determine whether
  the value has changed since it was last used.
docstr_tok: ["Return","a","unique","ID","that","changes","whenever","the","state","of","the","Variable","has","changed",".","This","allows","ModularProgram","to","quickly","determine","whether","the","value","has","changed","since","it","was","last","used","."]
code: def state_id(self):
      """Return a unique ID that changes whenever the state of the Variable
      has changed. This allows ModularProgram to quickly determine whether
      the value has changed since it was last used.
      """
      return id(self), self._state_counter
  
imports: import numpy
  from .shader_object import ShaderObject
label_desc: Use image node_id 8 for calling the Variable obj's underlying member method code with example usage: obj.state_id() and returns: id,  self