So weit ich mich erinnern kann sollte das Event auserhalb einer Funktion gesetzt werden, und ohne Klammern

function main()
{
initSPI();
closeSPI();
}

render_sky = preRenderLEFT;
render_entities = postRender;
render_sky = preRenderRIGHT;
render_entities = postRender;
render_sky = preRenderTOP;

Das Event sollte überprüfen ob die API am Laufn is. Und wenn du ein Event zweifach setzt überschreibt AFAIK das Zweite das Erste.

Versuch mal eine Wrapperfunktion die je nach view eine andere Funktion aufruft, bzw die camera jeden frame während des zeichnens mehr fach versetzt.