let simply_display ?(distance=10.0) ?(textures=false) node =
        (* Load a simple renderer.  'renderer' isn't the best name.  It's an
           object that renders to the screen.  *)

        let renderer = new default_renderer in

        (* Load a camera. *)
        let camera = new fps_camera in
        camera#forward (-. distance) ;
        
        renderer#set_camera (camera :> camera) ;
        renderer#set_scene_root node ;
        
        (* An easy way to quit. *)
        let quit_listener = object
                inherit keyboard_listener
                method key_pressed e = 
                        if e.Sdlevent.keysym = Sdlkey.KEY_q or
                           e.Sdlevent.keysym = Sdlkey.KEY_ESCAPE then
                                raise Done
                        else ()
                method key_released _ = ()
        end in

        (* Open the the FatCaml display. *)
        display_singleton#event_dispatcher#key#affect quit_listener ;
        display_singleton#set_renderer (renderer :> renderer) ;
        display_singleton#set_video_mode ~width:640 ~height:480 ;
        
        (* Note: you can't call Gl functions until you call a FatCaml function
           that initializes SDL, like set_video_display or load_gl_texture. *)

        if textures then 
                Gl.enable `texture_2d
        else () ;
        
        (* Rerender the display on each clock tick (default: 30fps). *)
        display_singleton#render_synchronously ;

        (* Wait for the program to terminate.  *)
        display_singleton#event_loop ;
        ()