本文整理汇总了Golang中github.com/go-gl/glfw/v3/1/glfw.Init函数的典型用法代码示例。如果您正苦于以下问题:Golang Init函数的具体用法?Golang Init怎么用?Golang Init使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Init函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Main
func Main(username, uuid, accessToken string) {
if err := glfw.Init(); err != nil {
panic(err)
}
defer glfw.Terminate()
console.ExecConf("conf.cfg")
if username != "" {
clientUsername.SetValue(username)
}
if uuid != "" {
clientUUID.SetValue(uuid)
}
if accessToken != "" {
clientAccessToken.SetValue(accessToken)
skipLogin = true
}
initResources()
setUIScale()
startWindow()
}
示例2: main
func main() {
if err := glfw.Init(); err != nil {
log.Fatalln("failed to initialize glfw:", err)
}
defer glfw.Terminate()
glfw.WindowHint(glfw.Resizable, glfw.False)
glfw.WindowHint(glfw.ContextVersionMajor, 2)
glfw.WindowHint(glfw.ContextVersionMinor, 1)
window, err := glfw.CreateWindow(640, 480, "tut03", nil, nil)
if err != nil {
panic(err)
}
window.MakeContextCurrent()
if err := gl.Init(); err != nil {
panic(err)
}
t0 := time.Now()
program := initResources()
for {
curFade = float32(math.Sin(time.Now().Sub(t0).Seconds()*2*math.Pi/5)/2 + 0.5)
onDisplay(program)
window.SwapBuffers()
glfw.PollEvents()
}
gl.DeleteProgram(program)
gl.DeleteBuffers(1, &vboTriangle)
}
示例3: Run
func Run(g *Game) error {
if g.Scene == nil {
return fmt.Errorf("Scene property of given Game struct is empty")
}
// GLFW event handling must run on the main OS thread
runtime.LockOSThread()
if err := glfw.Init(); err != nil {
return fmt.Errorf("glfw.Init failed: %s", err)
}
defer glfw.Terminate()
glfw.WindowHint(glfw.ContextVersionMajor, OpenGLVerMinor)
glfw.WindowHint(glfw.ContextVersionMinor, OpenGLVerMinor)
glfw.WindowHint(glfw.Resizable, glfw.False)
if g.Resizable {
glfw.WindowHint(glfw.Resizable, glfw.True)
}
glfw.WindowHint(glfw.OpenGLProfile, glfw.OpenGLCoreProfile)
glfw.WindowHint(glfw.OpenGLForwardCompatible, glfw.True)
window, err := glfw.CreateWindow(int(g.Width), int(g.Height), g.Title, nil, nil)
if err != nil {
return fmt.Errorf("glfw.CreateWindow failed: %s", err)
}
window.MakeContextCurrent()
// Initialize Glow
if err := gl.Init(); err != nil {
return fmt.Errorf("gl.Init failed:", err)
}
version := gl.GoStr(gl.GetString(gl.VERSION))
log.Println("gl.Init successful, OpenGL version:", version)
var previousTime, deltaTime, time float32
previousTime = float32(glfw.GetTime()) - 1.0/60.0
g.Scene.Setup()
for !window.ShouldClose() {
time = float32(glfw.GetTime())
deltaTime = time - previousTime
glfw.PollEvents()
gl.ClearColor(0.2, 0.3, 0.3, 0.5)
gl.Clear(gl.COLOR_BUFFER_BIT)
g.Scene.Update(deltaTime)
g.Scene.Draw(deltaTime)
previousTime = time
window.SwapBuffers()
}
return nil
}
示例4: main
func main() {
err := glfw.Init()
if err != nil {
panic(err)
}
defer glfw.Terminate()
width, height = 800, 800
window, err := glfw.CreateWindow(width, height, "Show RoundedRect", nil, nil)
if err != nil {
panic(err)
}
window.MakeContextCurrent()
window.SetSizeCallback(reshape)
window.SetKeyCallback(onKey)
window.SetCharCallback(onChar)
glfw.SwapInterval(1)
err = gl.Init()
if err != nil {
panic(err)
}
reshape(window, width, height)
for !window.ShouldClose() {
if redraw {
display()
window.SwapBuffers()
redraw = false
}
glfw.PollEvents()
// time.Sleep(2 * time.Second)
}
}
示例5: RenderLinesWithEvents
// RenderLinesWithEvents renders multiple channels of samples to screen, and draws events.
func (s *Screen) RenderLinesWithEvents(lines []Line, events <-chan interface{}, sampleRate int) {
s.lines = lines
runtime.LockOSThread()
// NOTE: It appears that glfw 3.1 uses its own internal error callback.
// glfw.SetErrorCallback(func(err glfw.ErrorCode, desc string) {
// log.Fatalf("%v: %s\n", err, desc)
// })
if err := glfw.Init(); err != nil {
log.Fatalf("Can't init glfw: %v!", err)
}
defer glfw.Terminate()
window, err := glfw.CreateWindow(s.width, s.height, "Muse", nil, nil)
if err != nil {
log.Fatalf("CreateWindow failed: %s", err)
}
if aw, ah := window.GetSize(); aw != s.width || ah != s.height {
log.Fatalf("Window doesn't have the requested size: want %d,%d got %d,%d", s.width, s.height, aw, ah)
}
window.MakeContextCurrent()
// Must gl.Init() *after* MakeContextCurrent
if err := gl.Init(); err != nil {
log.Fatalf("Can't init gl: %v!", err)
}
// Set window up to be [0, -1.0] -> [width, 1.0], black.
gl.MatrixMode(gl.MODELVIEW)
gl.LoadIdentity()
gl.Translated(-1, 0, 0)
gl.Scaled(2/float64(s.width), 1.0, 1.0)
gl.ClearColor(0.0, 0.0, 0.0, 0.0)
// Actually start writing data to the buffer
for i, _ := range s.lines {
s.lines[i].valueBuffer = types.NewBuffer(int(float64(s.width) / s.pixelsPerSample))
s.lines[i].valueBuffer.GoPushChannel(s.lines[i].Values, sampleRate)
}
if events != nil {
s.eventBuffer.GoPushChannel(events, sampleRate)
}
// Keep drawing while we still can (and should).
for !window.ShouldClose() && !s.bufferFinished() {
if window.GetKey(glfw.KeyEscape) == glfw.Press {
break
}
gl.Clear(gl.COLOR_BUFFER_BIT)
s.drawSignal()
window.SwapBuffers()
glfw.PollEvents()
}
// Keep window around, only close on esc.
for !window.ShouldClose() && window.GetKey(glfw.KeyEscape) != glfw.Press {
glfw.PollEvents()
}
}
示例6: main
func main() {
if err := glfw.Init(); err != nil {
log.Fatalln("failed to initialize glfw:", err)
}
defer glfw.Terminate()
glfw.WindowHint(glfw.Resizable, glfw.False)
glfw.WindowHint(glfw.ContextVersionMajor, 2)
glfw.WindowHint(glfw.ContextVersionMinor, 1)
window, err := glfw.CreateWindow(800, 600, "Create Window Example", nil, nil)
if err != nil {
panic(err)
}
window.MakeContextCurrent()
if err := gl.Init(); err != nil {
panic(err)
}
window.SetKeyCallback(keypress)
window.SetMouseButtonCallback(mousepress)
gl.Viewport(0, 0, 800, 600)
for !window.ShouldClose() {
draw()
window.SwapBuffers()
glfw.PollEvents()
}
}
示例7: main
func main() {
err := glfw.Init()
if err != nil {
panic(err)
}
defer glfw.Terminate()
w, err := glfw.CreateWindow(640, 480, "Testing", nil, nil)
if err != nil {
panic(err)
}
w.MakeContextCurrent()
glfw.SwapInterval(1)
w.SetCharCallback(charCallBack)
if err := gl.Init(); err != nil {
panic(err)
}
setupScene(w)
fmt.Println("Press 'q' to quit")
for !w.ShouldClose() {
// Do OpenGL stuff.
time.Sleep(10 * time.Millisecond)
drawScene(w)
w.SwapBuffers()
glfw.PollEvents()
}
}
示例8: main
func main() {
if err := glfw.Init(); err != nil {
log.Fatalln("failed to inifitialize glfw:", err)
}
defer glfw.Terminate()
glfw.WindowHint(glfw.Resizable, glfw.False)
glfw.WindowHint(glfw.ContextVersionMajor, 4)
glfw.WindowHint(glfw.ContextVersionMinor, 1)
glfw.WindowHint(glfw.OpenGLProfile, glfw.OpenGLCoreProfile)
glfw.WindowHint(glfw.OpenGLForwardCompatible, glfw.True)
window, err := glfw.CreateWindow(windowWidth, windowHeight, "basic shaders", nil, nil)
if err != nil {
panic(err)
}
window.MakeContextCurrent()
// Initialize Glow (go function bindings)
if err := gl.Init(); err != nil {
panic(err)
}
window.SetKeyCallback(keyCallback)
err = programLoop(window)
if err != nil {
log.Fatal(err)
}
}
示例9: main
func main() {
if err := glfw.Init(); err != nil {
log.Fatalln("failed to initialize glfw:", err)
}
defer glfw.Terminate()
glfw.WindowHint(glfw.Resizable, glfw.False)
glfw.WindowHint(glfw.ContextVersionMajor, 2)
glfw.WindowHint(glfw.ContextVersionMinor, 1)
window, err := glfw.CreateWindow(800, 600, "Cube", nil, nil)
if err != nil {
panic(err)
}
window.MakeContextCurrent()
if err := gl.Init(); err != nil {
panic(err)
}
texture = newTexture("square.png")
defer gl.DeleteTextures(1, &texture)
setupScene()
for !window.ShouldClose() {
drawScene()
window.SwapBuffers()
glfw.PollEvents()
}
}
示例10: CreateContext
func CreateContext(width int, height int) (*Context, error) {
if err := glfw.Init(); err != nil {
fmt.Println("failed to initialize glfw:", err)
}
glfw.WindowHint(glfw.Resizable, glfw.False)
glfw.WindowHint(glfw.ContextVersionMajor, 4)
glfw.WindowHint(glfw.ContextVersionMinor, 1)
glfw.WindowHint(glfw.OpenGLProfile, glfw.OpenGLCoreProfile)
glfw.WindowHint(glfw.OpenGLForwardCompatible, glfw.True)
window, err := glfw.CreateWindow(width, height, "flamingo", nil, nil)
if err != nil {
glfw.Terminate()
return nil, err
}
window.MakeContextCurrent()
// Initialize Glow
if err = gl.Init(); err != nil {
glfw.Terminate()
return nil, err
}
version := gl.GoStr(gl.GetString(gl.VERSION))
fmt.Println("OpenGL version", version)
return &Context{window}, nil
}
示例11: InitGraphics
// InitGraphics creates an OpenGL window and initializes the required graphics libraries.
// It will either succeed or panic.
func (app *ExampleApp) InitGraphics(title string, w int, h int) {
err := glfw.Init()
if err != nil {
panic("Can't init glfw! " + err.Error())
}
// request a OpenGL 3.3 core context
glfw.WindowHint(glfw.Samples, 0)
glfw.WindowHint(glfw.ContextVersionMajor, 3)
glfw.WindowHint(glfw.ContextVersionMinor, 3)
glfw.WindowHint(glfw.OpenGLForwardCompatible, glfw.True)
glfw.WindowHint(glfw.OpenGLProfile, glfw.OpenGLCoreProfile)
// do the actual window creation
app.MainWindow, err = glfw.CreateWindow(w, h, title, nil, nil)
if err != nil {
panic("Failed to create the main window! " + err.Error())
}
app.MainWindow.MakeContextCurrent()
glfw.SwapInterval(0)
// make sure that all of the GL functions are initialized
err = gl.Init()
if err != nil {
panic("Failed to initialize GL! " + err.Error())
}
// set the app window dimensions
app.Width = w
app.Height = h
gl.FrontFace(gl.CCW)
gl.CullFace(gl.BACK)
gl.Enable(gl.CULL_FACE)
}
示例12: main
func main() {
err := glfw.Init()
if err != nil {
panic(err)
}
defer glfw.Terminate()
window, err := glfw.CreateWindow(640, 480, "Testing", nil, nil)
if err != nil {
panic(err)
}
window.MakeContextCurrent()
if err := gl.Init(); err != nil {
panic(err)
}
window.SetKeyCallback(game.OnKey)
game.Init()
for !window.ShouldClose() {
game.Render()
window.SwapBuffers()
glfw.PollEvents()
}
}
示例13: glInit
func glInit() {
window.Set("cls", false)
if err = glfw.Init(); err != nil {
log.Fatalln("failed to initialize glfw:", err)
}
checkMon()
win.MakeContextCurrent()
if err := gl.Init(); err != nil {
panic(err)
}
win.SetPos(projMonitor.GetPos())
setupScene()
qml.Func1 = func() int {
if !win.ShouldClose() {
//glfw.PollEvents()
drawSlide()
win.SwapBuffers()
return 0
}
win.Hide()
//win.Destroy()
//glfw.Terminate()
return 1
}
}
示例14: initGraphics
func initGraphics() error {
if err := gl.Init(); err != nil {
return err
}
if err := glfw.Init(); err != nil {
return err
}
glfw.WindowHint(glfw.Resizable, glfw.False)
var err error
window, err = glfw.CreateWindow(64*scaleRatio, 32*scaleRatio, "CHIP-8 Emulator", nil, nil)
if err != nil {
return err
}
window.MakeContextCurrent()
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
gl.Ortho(0, 64, 32, 0, 0, 1)
gl.MatrixMode(gl.MODELVIEW)
gl.LoadIdentity()
clear()
window.SwapBuffers()
return nil
}
示例15: run
func (self *Application) run() error {
if err := glfw.Init(); err != nil {
return err
}
defer glfw.Terminate()
glfw.WindowHint(glfw.Resizable, glfw.False)
glfw.WindowHint(glfw.ContextVersionMajor, 4)
glfw.WindowHint(glfw.ContextVersionMinor, 1)
glfw.WindowHint(glfw.OpenGLProfile, glfw.OpenGLCoreProfile)
glfw.WindowHint(glfw.OpenGLForwardCompatible, glfw.True)
window, err := glfw.CreateWindow(512, 512, "GL", nil, nil)
if err != nil {
return err
}
window.MakeContextCurrent()
if err := gl.Init(); err != nil {
return err
}
if err := self.setup(); err != nil {
return err
}
for !window.ShouldClose() {
self.display()
window.SwapBuffers()
glfw.PollEvents()
}
return nil
}