

def __init__(self, glsl, filename, interactive=True, output_size=None, render_size=None, position=None, start_time=0.0, interval='auto', duration=None, always_on_top=False, paused=False, output=None, progress_file=None, ffmpeg_pipe=None):
    app.Canvas.__init__(self, keys=('interactive' if interactive else None), size=(render_size if render_size else output_size), position=None, title=filename, always_on_top=always_on_top, show=False, resizable=(ffmpeg_pipe is None))
    self._filename = filename
    self._interactive = interactive
    self._output_size = output_size
    self._render_size = (render_size if render_size else output_size)
    self._output = output
    self._profile = False
    self._paused = paused
    self._timer = None
    self._start_time = start_time
    self._interval = interval
    self._ffmpeg_pipe = ffmpeg_pipe
    if duration:
        assert (interval != 'auto')
        self._render_frame_count = (math.ceil((duration / interval)) + 1)
    elif (not interactive):
        self._render_frame_count = 1
    else:
        self._render_frame_count = None
    self._render_frame_index = 0
    clock = time.clock()
    self._clock_time_zero = (clock - start_time)
    self._clock_time_start = clock
    if (position is not None):
        self.position = position
    self.program = gloo.Program(vertex, (fragment_template % error_shader))
    self.program['position'] = [((- 1), (- 1)), ((- 1), 1), (1, 1), ((- 1), (- 1)), (1, 1), (1, (- 1))]
    self.program['iMouse'] = (0.0, 0.0, 0.0, 0.0)
    self.program['iSampleRate'] = 44100.0
    for i in range(4):
        self.program[('iChannelTime[%d]' % i)] = 0.0
    self.program['iGlobalTime'] = start_time
    self.program['iOffset'] = (0.0, 0.0)
    self.activate_zoom()
    self.set_channel_input(noise(resolution=256, nchannels=3), i=0)
    self.set_channel_input(noise(resolution=256, nchannels=1), i=1)
    self.set_shader(output)
    if interactive:
        if (not paused):
            self.ensure_timer()
        self.show()
    else:
        self._tile_index = 0
        self._tile_count = ((((output_size[0] + render_size[0]) - 1) // render_size[0]) * (((output_size[1] + render_size[1]) - 1) // render_size[1]))
        self._tile_coord = [0, 0]
        self._progress_file = progress_file
        self._rendertex = gloo.Texture2D(shape=(render_size[::(- 1)] + (4,)))
        self._fbo = gloo.FrameBuffer(self._rendertex, gloo.RenderBuffer(shape=render_size[::(- 1)]))
        self._img = numpy.zeros(shape=(self._output_size[::(- 1)] + (4,)), dtype=numpy.uint8)
        if self._progress_file:
            self.write_img(self._img, self._progress_file)
        self.program['iResolution'] = (self._output_size + (0.0,))
        self.ensure_timer()

dataset/ETHPy150Open alexjc/shadertoy-render/shadertoy-render.py RenderingCanvas.__init__/VarMisuse@494/638 `glsl`->`output`