本文整理汇总了Golang中github.com/go-gl/glfw.Terminate函数的典型用法代码示例。如果您正苦于以下问题:Golang Terminate函数的具体用法?Golang Terminate怎么用?Golang Terminate使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Terminate函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: initGL
// initGL initializes GLFW and OpenGL.
func initGL() error {
err := glfw.Init()
if err != nil {
return err
}
err = glfw.OpenWindow(640, 480, 8, 8, 8, 8, 0, 0, glfw.Windowed)
if err != nil {
glfw.Terminate()
return err
}
glfw.SetWindowTitle("go-gl/gltext: Bitmap font example")
glfw.SetSwapInterval(1)
glfw.SetWindowSizeCallback(onResize)
glfw.SetKeyCallback(onKey)
errno := gl.Init()
if errno != gl.NO_ERROR {
str, err := glu.ErrorString(errno)
if err != nil {
return fmt.Errorf("Unknown openGL error: %d", errno)
}
return fmt.Errorf(str)
}
gl.Disable(gl.DEPTH_TEST)
gl.Disable(gl.LIGHTING)
gl.ClearColor(0.2, 0.2, 0.23, 0.0)
return nil
}
开发者ID:jayschwa,项目名称:examples,代码行数:32,代码来源:main.go
示例2: initGL
// initGL initializes GLFW and OpenGL.
func initGL() error {
err := glfw.Init()
if err != nil {
return err
}
err = glfw.OpenWindow(AtlasSize, AtlasSize, 8, 8, 8, 8, 0, 0, glfw.Windowed)
if err != nil {
glfw.Terminate()
return err
}
glfw.SetWindowTitle("Texture atlas example")
glfw.SetSwapInterval(1)
glfw.SetWindowSizeCallback(onResize)
glfw.SetKeyCallback(onKey)
gl.Init()
if err = glh.CheckGLError(); err != nil {
return err
}
gl.Disable(gl.DEPTH_TEST)
gl.Disable(gl.LIGHTING)
gl.Enable(gl.TEXTURE_2D)
gl.Enable(gl.BLEND)
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
gl.ClearColor(0.2, 0.2, 0.23, 1.0)
return nil
}
开发者ID:jayschwa,项目名称:examples,代码行数:31,代码来源:main.go
示例3: make_window
func make_window(w, h int, title string) func() {
// Required to make sure that the OpenGL go-routine doesn't get switched
// to another thread (=> kerblammo)
runtime.LockOSThread()
if err := glfw.Init(); err != nil {
log.Panic("glfw Error:", err)
}
err := glfw.OpenWindow(w, h, 0, 0, 0, 0, 0, 0, glfw.Windowed)
if err != nil {
log.Panic("Error:", err)
}
if gl.Init() != 0 {
log.Panic("gl error")
}
if *vsync {
glfw.SetSwapInterval(1)
} else {
glfw.SetSwapInterval(0)
}
glfw.SetWindowTitle(title)
glfw.SetWindowSizeCallback(Reshape)
Init()
return func() {
glfw.Terminate()
glfw.CloseWindow()
log.Print("Cleanup")
}
}
开发者ID:pwaller,项目名称:mema,代码行数:35,代码来源:graf.go
示例4: main
func main() {
var err error
if err = glfw.Init(); err != nil {
log.Fatalf("%v\n", err)
return
}
defer glfw.Terminate()
if err = glfw.OpenWindow(Width, Height, 8, 8, 8, 8, 0, 8, glfw.Windowed); err != nil {
log.Fatalf("%v\n", err)
return
}
defer glfw.CloseWindow()
glfw.SetSwapInterval(1)
glfw.SetWindowTitle(Title)
glfw.SetWindowSizeCallback(onResize)
glfw.SetKeyCallback(onKey)
if err = initGL(); err != nil {
log.Fatalf("%v\n", err)
return
}
defer destroyGL()
running = true
for running && glfw.WindowParam(glfw.Opened) == 1 {
drawScene()
}
}
开发者ID:bonly,项目名称:exercise,代码行数:33,代码来源:20110518_nehe07.go
示例5: CloseWindow
// Signal that we are exiting and close glfw.
func CloseWindow() {
fmt.Printf("Exiting...\n")
WindowOpened = false
glfw.CloseWindow()
glfw.Terminate()
DestroyShaders()
}
开发者ID:Nvveen,项目名称:Goliath,代码行数:8,代码来源:main.go
示例6: main
func main() {
var err error
if err = glfw.Init(); err != nil { ///初始化环境
log.Fatalf("%v\n", err)
return
}
defer glfw.Terminate() /// 销毁环境
if err = glfw.OpenWindow(Width, Height, 8, 8, 8, 8, 0, 8, glfw.Windowed); err != nil { ///创建窗口
log.Fatalf("%v\n", err)
return
}
defer glfw.CloseWindow() /// 销毁窗口
glfw.SetSwapInterval(1)
glfw.SetWindowTitle(Title) ///设置标题
glfw.SetWindowSizeCallback(onResize) /// 回调窗口变化
glfw.SetKeyCallback(onKey) ///回调按键
initGL()
running = true
for running && glfw.WindowParam(glfw.Opened) == 1 {
drawScene()
}
}
开发者ID:bonly,项目名称:exercise,代码行数:26,代码来源:20110515_nehe03.go
示例7: Init
func (i *IO) Init(title string, screenSize int, onCloseHandler func()) error {
var err error
err = glfw.Init()
if err != nil {
return err
}
err = i.Display.init(title, screenSize)
if err != nil {
return err
}
i.KeyHandler.Init(DefaultControlScheme) //TODO: allow user to define controlscheme
glfw.SetKeyCallback(func(key, state int) {
if state == glfw.KeyPress {
i.KeyHandler.KeyDown(key)
} else {
i.KeyHandler.KeyUp(key)
}
})
glfw.SetWindowCloseCallback(func() int {
glfw.CloseWindow()
glfw.Terminate()
onCloseHandler()
return 0
})
return nil
}
开发者ID:abarax,项目名称:gomeboycolor,代码行数:31,代码来源:inputoutput.go
示例8: Init
func (i *IO) Init(title string, screenSize int, onCloseHandler func()) error {
i.KeyHandler = new(KeyHandler)
i.Display = new(Display)
i.ScreenOutputChannel = make(chan *types.Screen)
i.AudioOutputChannel = make(chan int)
if err := glfw.Init(); err != nil {
return err
} else if err = i.Display.init(title, screenSize); err != nil {
return err
}
i.KeyHandler.Init(DefaultControlScheme) //TODO: allow user to define controlscheme
glfw.SetKeyCallback(func(key, state int) {
if state == glfw.KeyPress {
i.KeyHandler.KeyDown(key)
} else {
i.KeyHandler.KeyUp(key)
}
})
glfw.SetWindowCloseCallback(func() int {
glfw.CloseWindow()
glfw.Terminate()
onCloseHandler()
return 0
})
return nil
}
开发者ID:Carrotman42,项目名称:gomeboycolor,代码行数:30,代码来源:inputoutput.go
示例9: main
func main() {
if err := glfw.Init(); err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err.Error())
return
}
defer glfw.Terminate()
glfw.OpenWindowHint(glfw.FsaaSamples, 4)
glfw.OpenWindowHint(glfw.OpenGLVersionMajor, 3)
glfw.OpenWindowHint(glfw.OpenGLVersionMinor, 3)
glfw.OpenWindowHint(glfw.OpenGLProfile, glfw.OpenGLCoreProfile)
if err := glfw.OpenWindow(1024, 768, 0, 0, 0, 0, 32, 0, glfw.Windowed); err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err.Error())
return
}
gl.Init()
gl.GetError() // Ignore error
glfw.SetWindowTitle("Tutorial 01")
glfw.Enable(glfw.StickyKeys)
gl.ClearColor(0., 0., 0.4, 0.)
// Equivalent to a do... while
for ok := true; ok; ok = (glfw.Key(glfw.KeyEsc) != glfw.KeyPress && glfw.WindowParam(glfw.Opened) == gl.TRUE) {
glfw.SwapBuffers()
}
}
开发者ID:GlenKelley,项目名称:mathgl,代码行数:30,代码来源:main.go
示例10: initGL
// initGL initializes GLFW and OpenGL.
func initGL(c *cpu.CPU, width, height int) error {
err := glfw.Init()
if err != nil {
return err
}
glfw.OpenWindowHint(glfw.WindowNoResize, 1)
err = glfw.OpenWindow(width, height, 8, 8, 8, 8, 8, 0, glfw.Windowed)
if err != nil {
glfw.Terminate()
return err
}
glfw.SetWindowTitle("DCPU")
glfw.SetSwapInterval(1)
glfw.SetWindowSizeCallback(onResize)
gl.Init()
err = glh.CheckGLError()
if err != nil {
return err
}
gl.Disable(gl.LIGHTING)
gl.Disable(gl.DEPTH_TEST)
gl.Enable(gl.TEXTURE_2D)
gl.Enable(gl.BLEND)
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
gl.ClearColor(0, 0, 0, 1)
return err
}
开发者ID:jteeuwen,项目名称:dcpu,代码行数:33,代码来源:gl.go
示例11: RunGame
func RunGame(title string, width, height int, init, draw func()) {
if err := glfw.Init(); err != nil {
fmt.Fprintf(os.Stderr, "glfw: %s\n", err)
return
}
defer glfw.Terminate()
glfw.OpenWindowHint(glfw.WindowNoResize, 1)
if err := glfw.OpenWindow(width, height, 0, 0, 0, 0, 16, 0, glfw.Windowed); err != nil {
fmt.Fprintf(os.Stderr, "glfw: %s\n", err)
return
}
defer glfw.CloseWindow()
glfw.SetSwapInterval(1)
glfw.SetWindowTitle(title)
if err := gl.Init(); err != nil {
fmt.Fprintf(os.Stderr, "gl: %s\n", err)
}
if err := initScene(width, height, init); err != nil {
fmt.Fprintf(os.Stderr, "init: %s\n", err)
return
}
// defer destroyScene()
for glfw.WindowParam(glfw.Opened) == 1 {
drawScene(draw)
glfw.SwapBuffers()
}
}
开发者ID:jaredly,项目名称:rocks,代码行数:33,代码来源:draw.go
示例12: main
func main() {
if err := glfw.Init(); err != nil {
fmt.Fprintf(os.Stderr, "[e] %v\n", err)
return
}
defer glfw.Terminate()
if err := glfw.OpenWindow(appWidth, appHeight, 8, 8, 8, 8, 24, 8, glfw.Windowed); err != nil {
fmt.Fprintf(os.Stderr, "[e] %v\n", err)
return
}
defer glfw.CloseWindow()
if err := gl.Init(); err != 0 {
fmt.Fprintf(os.Stderr, "[e] %v\n", err)
return
}
glfw.SetWindowTitle(title)
fps := fps.NewFPS(glfw.Time())
blocks.Init(appWidth, appHeight)
for glfw.WindowParam(glfw.Opened) == 1 {
blocks.Tick()
fps.Tick(glfw.Time())
if glfw.WindowParam(glfw.Active) == 1 {
glfw.Sleep(0.001)
} else {
glfw.Sleep(0.05)
}
}
}
开发者ID:samnm,项目名称:goblocks,代码行数:32,代码来源:main.go
示例13: main
func main() {
var err error
if err = glfw.Init(); err != nil {
log.Fatalf("%v\n", err)
return
}
defer glfw.Terminate()
if err = glfw.OpenWindow(640, 480, 8, 8, 8, 8, 0, 0, glfw.Windowed); err != nil {
log.Fatalf("%v\n", err)
return
}
defer glfw.CloseWindow()
glfw.SetWindowTitle("Draw")
glfw.SetSwapInterval(1)
glfw.SetKeyCallback(onKey)
glfw.SetMouseButtonCallback(onMouseBtn)
glfw.SetWindowSizeCallback(onResize)
running = true
for running && glfw.WindowParam(glfw.Opened) == 1 {
if mouse[0] != 0 {
pen.lineTo(glfw.MousePos())
} else {
pen.moveTo(glfw.MousePos())
}
glfw.SwapBuffers()
}
}
开发者ID:jayschwa,项目名称:examples,代码行数:33,代码来源:main.go
示例14: dispose
func (_ *NgUserIO) dispose() {
if UserIO.Window.isCreated {
UserIO.Window.isCreated = false
glfw.CloseWindow()
}
if UserIO.isGlfwInit {
UserIO.isGlfwInit = false
glfw.Terminate()
}
}
开发者ID:Raven67854,项目名称:go-ngine,代码行数:10,代码来源:ng-userio.go
示例15: main
func main() {
var err error
if err = glfw.Init(); err != nil {
log.Fatalf("%v\n", err)
return
}
defer glfw.Terminate()
// Open window with FSAA samples (if possible).
glfw.OpenWindowHint(glfw.FsaaSamples, 4)
if err = glfw.OpenWindow(400, 400, 0, 0, 0, 0, 0, 0, glfw.Windowed); err != nil {
log.Fatalf("%v\n", err)
return
}
defer glfw.CloseWindow()
glfw.SetWindowTitle("Aliasing Detector")
glfw.SetSwapInterval(1)
if samples := glfw.WindowParam(glfw.FsaaSamples); samples != 0 {
fmt.Printf("Context reports FSAA is supported with %d samples\n", samples)
} else {
fmt.Printf("Context reports FSAA is unsupported\n")
}
gl.MatrixMode(gl.PROJECTION)
glu.Perspective(0, 1, 0, 1)
for glfw.WindowParam(glfw.Opened) == 1 {
time := float32(glfw.Time())
gl.Clear(gl.COLOR_BUFFER_BIT)
gl.LoadIdentity()
gl.Translatef(0.5, 0, 0)
gl.Rotatef(time, 0, 0, 1)
gl.Enable(GL_MULTISAMPLE_ARB)
gl.Color3f(1, 1, 1)
gl.Rectf(-0.25, -0.25, 0.25, 0.25)
gl.LoadIdentity()
gl.Translatef(-0.5, 0, 0)
gl.Rotatef(time, 0, 0, 1)
gl.Disable(GL_MULTISAMPLE_ARB)
gl.Color3f(1, 1, 1)
gl.Rectf(-0.25, -0.25, 0.25, 0.25)
glfw.SwapBuffers()
}
}
开发者ID:hsalokor,项目名称:examples,代码行数:54,代码来源:main.go
示例16: main
func main() {
fmt.Print("GLFW Init Start.")
glfw.Init()
fmt.Println(" GLFW Init Done.")
defer glfw.Terminate()
defer fmt.Println("example Terminating.")
fmt.Println("GLFW Set Hints.")
glfw.OpenWindowHint(glfw.WindowNoResize, 1)
fmt.Print("GLFW Open Window Start.")
glfw.OpenWindow(640, 480, 8, 8, 8, 0, 0, 0, glfw.Windowed)
glfw.SetWindowTitle("example")
fmt.Println(" GLFW Open Window Done.")
v1, v2, v3 := glfw.GLVersion()
fmt.Printf("OpenGL version: %d.%d.%d\n", v1, v2, v3)
fmt.Printf("GLFW version: %d.%d.%d\n", glfw.VersionMajor, glfw.VersionMinor, glfw.VersionRevision)
glfw.SetSwapInterval(1)
fps := time.Duration(30)
fmt.Printf("Creating %d Hz Ticker.", fps)
ticker := time.NewTicker(time.Second / fps)
fmt.Printf(" %d Hz Ticker Created\n", fps)
closedWindow := glfwHelper.WindowCloseChan()
mouseButtons := glfwHelper.MouseButtonChan()
mousePos := glfwHelper.MousePosChan()
mouseWheel := glfwHelper.MouseWheelChan()
keyButtons := glfwHelper.KeyChan()
charButtons := glfwHelper.CharChan()
for {
select {
case <-ticker.C:
glfw.SwapBuffers()
case <-closedWindow:
return
case input := <-mouseButtons:
fmt.Println(input)
case input := <-mousePos:
fmt.Println(input)
case input := <-mouseWheel:
fmt.Println(input)
case input := <-keyButtons:
fmt.Println(input)
case input := <-charButtons:
fmt.Println(string(input))
}
}
}
开发者ID:akovaski,项目名称:glfwHelper,代码行数:53,代码来源:example.go
示例17: Test
func Test(t *testing.T) {
err := glfw.Init()
if err != nil {
t.Fatal(err)
}
defer glfw.Terminate()
err = glfw.OpenWindow(800, 600, 8, 8, 8, 0, 0, 0, glfw.Windowed)
if err != nil {
t.Fatal(err)
}
defer glfw.CloseWindow()
kb := New()
kb.Bind(func() {
fmt.Println("pressed s")
}, "s")
kb.Bind(func() {
fmt.Println("pressed ctrl+s or command+s")
}, "ctrl+s", "command+s")
kb.Bind(func() {
fmt.Println("pressed 't e s t'")
}, "t e s t")
kb.Bind(func() {
fmt.Println("pressed '3'")
}, "3")
kb.Bind(func() {
fmt.Println("pressed '#'")
}, "#")
kb.Bind(func() {
glfw.CloseWindow()
}, "escape")
// Print available keybindings.
fmt.Printf("Known key bindings:\n")
for _, b := range kb.Bindings() {
fmt.Printf(" - %q\n", b)
}
// Go into GLFW's main event loop.
for glfw.WindowParam(glfw.Opened) == 1 {
glfw.SwapBuffers()
}
}
开发者ID:jteeuwen,项目名称:keyboard,代码行数:51,代码来源:keyboard_test.go
示例18: Release
// Release releases emulator resources.
func (e *Emu) Release() {
for _, dev := range e.cpu.Devices() {
if dev, ok := dev.(Device); ok {
dev.Release()
}
}
if e.disp != nil {
e.disp.Release()
e.disp = nil
}
e.cpu = nil
glfw.Terminate()
}
开发者ID:jteeuwen,项目名称:dcpu,代码行数:16,代码来源:emu.go
示例19: main
func main() {
// This file holds the actual glyph shapes.
imgFile, err := gas.Abs("github.com/go-gl/examples/data/bitmap_font.png")
if err != nil {
log.Printf("Find font image file: %v", err)
return
}
// This file is a JSON encoded dataset which describes the font
// and contains the pixel offsets and sizes for each glyph in
// bitmap_font.png. Both files are needed to load a bitmap font.
configFile, err := gas.Abs("github.com/go-gl/examples/data/bitmap_font.js")
if err != nil {
log.Printf("Find font config file: %v", err)
return
}
err = initGL()
if err != nil {
log.Printf("InitGL: %v", err)
return
}
defer glfw.Terminate()
// Load the same bitmap font at different scale factors.
for i := range fonts {
fonts[i], err = loadFont(imgFile, configFile, i+1)
if err != nil {
log.Printf("LoadFont: %v", err)
return
}
defer fonts[i].Release()
}
for glfw.WindowParam(glfw.Opened) > 0 {
gl.Clear(gl.COLOR_BUFFER_BIT)
err = drawString(10, 10, "0 1 2 3 4 5 6 7 8 9 A B C D E F")
if err != nil {
log.Printf("Printf: %v", err)
return
}
glfw.SwapBuffers()
}
}
开发者ID:jayschwa,项目名称:examples,代码行数:48,代码来源:main.go
示例20: Loop
func (v *Video) Loop() {
go func(c chan *Frame) {
for {
frame := <-c
v.frame = frame
}
}(v.Frames)
for glfw.WindowParam(glfw.Opened) == gl.TRUE {
if v.frame != nil {
v.Render(v.frame.Data, v.frame.Width, v.frame.Height)
}
runtime.Gosched()
}
glfw.Terminate()
}
开发者ID:samfoo,项目名称:gones,代码行数:17,代码来源:video.go
注:本文中的github.com/go-gl/glfw.Terminate函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论