code: def __init__(self, shape, parent):
      self._shape = shape
      self._color_fn = visuals.shaders.Function(rolling_tex)
      self._ctex = gloo.Texture2D(
          np.zeros(shape + (1,), dtype="float32"),
          format="luminance",
          internalformat="r32f",
      )
      self._color_fn["texture"] = self._ctex
      self._color_fn["shift"] = 0
      self.ptr = 0
      scene.Image.__init__(self, method="impostor", parent=parent)
      # self.set_gl_state('additive', cull_face=False)
      self.shared_program.frag["get_data"] = self._color_fn
      cfun = visuals.shaders.Function(cmap)
      self.shared_program.frag["color_transform"] = cfun
  
file_path: vispy/examples/demo/scene/oscilloscope.py
imports: from __future__ import division
  import threading
  import atexit
  import numpy
  from vispy import app, scene, gloo, visuals
  from vispy.util.filter import gaussian_filter
label_desc: Use image node_id 1 to create a new ScrollingImage object from inherited base classes: scene with example: obj = ScrollingImage(shape, parent)