Onscreen IDE & dynamic instant update [_v0.5.4_]

Not tested your IDE but read your note about ShaderPool.releaseAllShaders. Do you already have a solution. So far I discovered the following fancy thing (I don’t understand it, but maybe it has something to do with a RefCount).

If I write my shader reload snippet like this, I can reload shaders without restarting the appliaciton, by first pressing “2” and than press “1”.

def clearShader():
    world.clearShader()
    ShaderPool.releaseAllShaders()
def loadShader():
    shader = loader.loadShader("shader.sha")
    world.setShader(shader)
base.accept("1", loadShader)
base.accept("2", clearShader)

If I rewrite loadShader:

def loadShader():
    clearShader()
    shader = loader.loadShader("shader.sha")
    world.setShader(shader)

Then pressing only “1” won’t reload the shader.