View Source
const OnAfterRender = "util.application.OnAfterRender"

    OnAfterRender is the event generated by Application just after rendering the scene/gui

    View Source
    const OnBeforeRender = "util.application.OnBeforeRender"

      OnBeforeRender is the event generated by Application just before rendering the scene/gui

      View Source
      const OnQuit = "util.application.OnQuit"

        OnQuit is the event generated by Application when the user tries to close the window or the Quit() method is called.


        This section is empty.


        This section is empty.


        type Application

        type Application struct {
        	core.Dispatcher   // Embedded event dispatcher
        	core.TimerManager // Embedded timer manager
        	// contains filtered or unexported fields

          Application is a standard application object which can be used as a base for G3N applications. It creates a Window, OpenGL state, default cameras, default scene and Gui and has a method to run the render loop.

          func Create

          func Create(ops Options) (*Application, error)

            Create creates and returns the application object using the specified options. This function must be called only once.

            func Get

            func Get() *Application

              Get returns the application single instance or nil if the application was not created yet

              func (*Application) Camera

              func (app *Application) Camera() camera.ICamera

                Camera returns the current application camera

                func (*Application) CameraOrtho

                func (app *Application) CameraOrtho() *camera.Orthographic

                  CameraOrtho returns the application orthographic camera

                  func (*Application) CameraPersp

                  func (app *Application) CameraPersp() *camera.Perspective

                    CameraPersp returns the application perspective camera

                    func (*Application) FrameCount

                    func (app *Application) FrameCount() uint64

                      FrameCount returns the total number of frames since the call to Run()

                      func (*Application) FrameDelta

                      func (app *Application) FrameDelta() time.Duration

                        FrameDelta returns the duration of the previous frame

                        func (*Application) FrameDeltaSeconds

                        func (app *Application) FrameDeltaSeconds() float32

                          FrameDeltaSeconds returns the duration of the previous frame in float32 seconds

                          func (*Application) FrameRater

                          func (app *Application) FrameRater() *FrameRater

                            FrameRater returns the FrameRater object

                            func (*Application) Gl

                            func (app *Application) Gl() *gls.GLS

                              Gl returns the OpenGL state

                              func (*Application) Gui

                              func (app *Application) Gui() *gui.Root

                                Gui returns the current application Gui root panel

                                func (*Application) KeyState

                                func (app *Application) KeyState() *KeyState

                                  KeyState returns the application KeyState

                                  func (*Application) Log

                                  func (app *Application) Log() *logger.Logger

                                    Log returns the application logger

                                    func (*Application) OnWindowResize

                                    func (app *Application) OnWindowResize()

                                      OnWindowResize is default handler for window resize events.

                                      func (*Application) OpenDefaultAudioDevice

                                      func (app *Application) OpenDefaultAudioDevice() error

                                        OpenDefaultAudioDevice opens the default audio device setting it to the current context

                                        func (*Application) Orbit

                                        func (app *Application) Orbit() *control.OrbitControl

                                          Orbit returns the current camera orbit control

                                          func (*Application) Panel3D

                                          func (app *Application) Panel3D() gui.IPanel

                                            Panel3D returns the current gui panel where the 3D scene is shown.

                                            func (*Application) Quit

                                            func (app *Application) Quit()

                                              Quit requests to terminate the application Application will dispatch OnQuit events to registered subscriber which can cancel the process by calling CancelDispatch().

                                              func (*Application) Renderer

                                              func (app *Application) Renderer() *renderer.Renderer

                                                Renderer returns the application renderer

                                                func (*Application) Run

                                                func (app *Application) Run() error

                                                  Run runs the application render loop

                                                  func (*Application) RunSeconds

                                                  func (app *Application) RunSeconds() float32

                                                    RunSeconds returns the elapsed time in seconds since the call to Run()

                                                    func (*Application) RunTime

                                                    func (app *Application) RunTime() time.Duration

                                                      RunTime returns the duration since the call to Run()

                                                      func (*Application) Scene

                                                      func (app *Application) Scene() *core.Node

                                                        Scene returns the current application 3D scene

                                                        func (*Application) SetCPUProfile

                                                        func (app *Application) SetCPUProfile(fname string)

                                                          SetCPUProfile must be called before Run() and sets the file name for cpu profiling. If set the cpu profiling starts before running the render loop and continues till the end of the application.

                                                          func (*Application) SetCamera

                                                          func (app *Application) SetCamera(cam camera.ICamera)

                                                            SetCamera sets the current application camera

                                                            func (*Application) SetGui

                                                            func (app *Application) SetGui(root *gui.Root)

                                                              SetGui sets the root panel of the gui to be rendered

                                                              func (*Application) SetOnWindowResize

                                                              func (app *Application) SetOnWindowResize(f func(evname string, ev interface{}))

                                                                SetOnWindowResize replaces the default window resize handler with the specified one

                                                                func (*Application) SetOrbit

                                                                func (app *Application) SetOrbit(oc *control.OrbitControl)

                                                                  SetOrbit sets the camera orbit control

                                                                  func (*Application) SetPanel3D

                                                                  func (app *Application) SetPanel3D(panel3D gui.IPanel)

                                                                    SetPanel3D sets the gui panel inside which the 3D scene is shown.

                                                                    func (*Application) SetScene

                                                                    func (app *Application) SetScene(scene *core.Node)

                                                                      SetScene sets the 3D scene to be rendered

                                                                      func (*Application) Window

                                                                      func (app *Application) Window() window.IWindow

                                                                        Window returns the application window

                                                                        type FrameRater

                                                                        type FrameRater struct {
                                                                        	// contains filtered or unexported fields

                                                                          FrameRater implements a frame rate controller

                                                                          func NewFrameRater

                                                                          func NewFrameRater(targetFPS uint) *FrameRater

                                                                            NewFrameRater returns a frame rate controller object for the specified number of target frames per second

                                                                            func (*FrameRater) FPS

                                                                            func (f *FrameRater) FPS(t time.Duration) (float64, float64, bool)

                                                                              FPS calculates and returns the current measured FPS and the maximum potential FPS after the specified time interval has elapsed. It returns an indication if the results are valid

                                                                              func (*FrameRater) Start

                                                                              func (f *FrameRater) Start()

                                                                                Start should be called at the start of the frame

                                                                                func (*FrameRater) Wait

                                                                                func (f *FrameRater) Wait()

                                                                                  Wait should be called at the end of the frame If necessary it will sleep to achieve the desired frame rate

                                                                                  type KeyState

                                                                                  type KeyState struct {
                                                                                  	// contains filtered or unexported fields

                                                                                    KeyState keeps track of the state of all keys.

                                                                                    func NewKeyState

                                                                                    func NewKeyState(win window.IWindow) *KeyState

                                                                                      NewKeyState returns a new KeyState object.

                                                                                      func (*KeyState) Dispose

                                                                                      func (ks *KeyState) Dispose()

                                                                                        Dispose unsubscribes from the window events.

                                                                                        func (*KeyState) Pressed

                                                                                        func (ks *KeyState) Pressed(k window.Key) bool

                                                                                          Pressed returns whether the specified key is currently pressed.

                                                                                          type Options

                                                                                          type Options struct {
                                                                                          	Title       string // Initial window title
                                                                                          	Height      int    // Initial window height (default is screen width)
                                                                                          	Width       int    // Initial window width (default is screen height)
                                                                                          	Fullscreen  bool   // Window full screen flag (default = false)
                                                                                          	LogPrefix   string // Log prefix (default = "")
                                                                                          	LogLevel    int    // Initial log level (default = DEBUG)
                                                                                          	EnableFlags bool   // Enable command line flags (default = false)
                                                                                          	TargetFPS   uint   // Desired frames per second rate (default = 60)

                                                                                            Options defines initial options passed to the application creation function