     return unless @uniforms[textureId]?
 
     @uniforms[textureId].value.dispose()
-
     @uniforms[textureId].value.needsUpdate = true
 
-    @mesh2.material.needsUpdate = true
-
     delete @uniforms[textureId]
 
-    @renderShader(@fragShader, true)
+    @mesh.material.needsUpdate = true
+
+    @swapMesh()

  renderView: ->
    @_onResize()
    @showLoading() unless @loaded
    @getShaderSource().then (source) => @renderShader(source) if source?

  getShaderSource: ->
    if @file?.getPath()

      'uniform vec2 u_resolution;'
      'uniform vec2 u_mouse;'
      'uniform float u_time;'
    ].join('\n')

  attached: ->
