code: def roll_data(self, data):
          
          data = data.astype('float32')[..., np.newaxis]
          s1 = self._data_shape[1] - self._offset
          if data.shape[1] > s1:
              self._pos_tex[:, self._offset:] = data[:, :s1]
              self._pos_tex[:, :data.shape[1] - s1] = data[:, s1:]
              self._offset = (self._offset + data.shape[1]) % self._data_shape[1]
          else:
              self._pos_tex[:, self._offset:self._offset+data.shape[1]] = data
              self._offset += data.shape[1]
          self.shared_program['offset'] = self._offset
          self.update()
docs: Append new data to the right side of every line strip and remove
          as much data from the left.
          
          Parameters
          ----------
          data : array-like
              A data array to append.