         return prog
 
     reupload: ->
-        @constructor(@name, @fs_code,
-        @uniforms_config, @attributes_config, @vs_code, @scene)
+        @constructor(@context, @data, @scene)
 
     destroy: ->
         @context.render_manager.gl.deleteProgram @_program


        # TODO: find which uniform
        # has conflicting precision between VS and FS in ANGLE/win32
        @vs_code = vs = data.vertex or """
        #ifdef GL_ES
        precision highp float;
        precision highp int;

        @uv_multiplier = 1
        @shape_multiplier = 1
        @group_id = -1
        @double_sided = Boolean @data.double_sided

        var_model_view_matrix = "model_view_matrix"
        var_inv_model_view_matrix = ""
