UPDATE: using cairo instead of SDL, better for exporting png