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.