func init() { ui.Init() ui.ExecOnUIThread(func() { glContext = opengl.NewContext() }) audio.Init() }
func initialize() (*opengl.Context, error) { runtime.LockOSThread() if err := glfw.Init(); err != nil { return nil, err } glfw.WindowHint(glfw.Visible, glfw.False) glfw.WindowHint(glfw.Resizable, glfw.False) glfw.WindowHint(glfw.ContextVersionMajor, 2) glfw.WindowHint(glfw.ContextVersionMinor, 1) // As start, create an window with temporary size to create OpenGL context thread. window, err := glfw.CreateWindow(16, 16, "", nil, nil) if err != nil { return nil, err } u := &userInterface{ window: window, funcs: make(chan func()), sizeChanged: true, } ch := make(chan error) go func() { runtime.LockOSThread() u.window.MakeContextCurrent() glfw.SwapInterval(1) var err error u.context, err = opengl.NewContext() if err != nil { ch <- err } close(ch) u.context.Loop() }() currentUI = u if err := <-ch; err != nil { return nil, err } if err := u.context.Init(); err != nil { return nil, err } return u.context, nil }
func initialize() (*opengl.Context, error) { return opengl.NewContext() }