class_docstr: Base class for all objects that may be included in a GLSL program
  (Functions, Variables, Expressions).
  
  Shader objects have a *definition* that defines the object in GLSL, an
  *expression* that is used to reference the object, and a set of
  *dependencies* that must be declared before the object is used.
  
  Dependencies are tracked hierarchically such that changes to any object
  will be propagated up the dependency hierarchy to trigger a recompile.
class_docstr_tok: ["Base","class","for","all","objects","that","may","be","included","in","a","GLSL","program","(","Functions",",","Variables",",","Expressions",")",".","Shader","objects","have","a","*","definition","*","that","defines","the","object","in","GLSL",",","an","*","expression","*","that","is","used","to","reference","the","object",",","and","a","set","of","*","dependencies","*","that","must","be","declared","before","the","object","is","used",".","Dependencies","are","tracked","hierarchically","such","that","changes","to","any","object","will","be","propagated","up","the","dependency","hierarchy","to","trigger","a","recompile","."]
docstr: Decrement the reference count for *dep*. If the reference count
  reaches 0, then the dependency is removed and its *changed* event is
  disconnected.
docstr_tok: ["Decrement","the","reference","count","for","*","dep","*",".","If","the","reference","count","reaches","0",",","then","the","dependency","is","removed","and","its","*","changed","*","event","is","disconnected","."]
code: def _remove_dep(self, dep):
      """Decrement the reference count for *dep*. If the reference count
      reaches 0, then the dependency is removed and its *changed* event is
      disconnected.
      """
      refcount = self._deps[dep]
      if refcount == 1:
          self._deps.pop(dep)
          dep._dependents.pop(self)
      else:
          self._deps[dep] -= 1
  
imports: from collections import OrderedDict
  from weakref import WeakKeyDictionary
  from .compiler import Compiler
  from .variable import Variable
  from .expression import TextExpression
label_desc: Use image node_id 10 for calling the ShaderObject obj's underlying member method code with example usage: obj._remove_dep(dep) without return types