本文整理汇总了Golang中github.com/go-gl/glfw3.CreateWindow函数的典型用法代码示例。如果您正苦于以下问题:Golang CreateWindow函数的具体用法?Golang CreateWindow怎么用?Golang CreateWindow使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了CreateWindow函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: main
func main() {
runtime.LockOSThread()
if !glfw.Init() {
fmt.Fprintf(os.Stderr, "Can't open GLFW")
return
}
defer glfw.Terminate()
glfw.WindowHint(glfw.Samples, 4)
glfw.WindowHint(glfw.ContextVersionMajor, 3)
glfw.WindowHint(glfw.ContextVersionMinor, 3)
glfw.WindowHint(glfw.OpenglProfile, glfw.OpenglCoreProfile)
glfw.WindowHint(glfw.OpenglForwardCompatible, glfw.True) // needed for macs
window, err := glfw.CreateWindow(1024, 768, "Tutorial 1", nil, nil)
if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err)
return
}
window.MakeContextCurrent()
gl.Init()
gl.GetError() // Ignore error
window.SetInputMode(glfw.StickyKeys, 1)
gl.ClearColor(0., 0., 0.4, 0.)
// Equivalent to a do... while
for ok := true; ok; ok = (window.GetKey(glfw.KeyEscape) != glfw.Press && !window.ShouldClose()) {
window.SwapBuffers()
glfw.PollEvents()
}
}
开发者ID:krux02,项目名称:mathgl,代码行数:35,代码来源:main.go
示例2: main
func main() {
fmt.Println("Init GLFW3")
if glfw3.Init() {
fmt.Println("Init ok")
defer closeGLFW()
}
// Create the window
fmt.Println("Opening window")
win, err := glfw3.CreateWindow(1024, 768, "Kunos Rulez", nil, nil)
gl.Init()
if err != nil {
fmt.Println(err)
} else {
fmt.Println("ok", win)
}
win.MakeContextCurrent()
for win.ShouldClose() == false {
glfw3.PollEvents()
gl.ClearColor(1.0, 0.0, 0.0, 1.0)
gl.Clear(gl.COLOR_BUFFER_BIT)
win.SwapBuffers()
}
fmt.Println("Destroying win")
win.Destroy()
}
开发者ID:kunos,项目名称:tutorials,代码行数:30,代码来源:glfw.go
示例3: main
func main() {
glfw.SetErrorCallback(glfwError)
if !glfw.Init() {
log.Printf("Unable to initializer glfw")
return
}
defer glfw.Terminate()
window, err := glfw.CreateWindow(Width, Height, Title, nil, nil)
if err != nil {
panic(err)
}
window.MakeContextCurrent()
window.SetSizeCallback(fixProjection)
err = initGL()
if err != nil {
log.Printf("Error initializing OpenGL. %v", err)
panic(err)
}
glfw.SwapInterval(1)
fixProjection(window, Width, Height)
meshBuff := createMeshBuffer()
for !window.ShouldClose() {
timeDelta.Tick()
log.Printf("Time: %v", timeDelta.Delta)
window.SwapBuffers()
glfw.PollEvents()
}
}
开发者ID:andrebq,项目名称:exp,代码行数:34,代码来源:main.go
示例4: main
func main() {
glfw.SetErrorCallback(errorCallback)
if !glfw.Init() {
panic("Can't init glfw")
}
defer glfw.Terminate()
window, err := glfw.CreateWindow(640, 480, "Testing", nil, nil)
if err != nil {
panic(err)
}
window.MakeContextCurrent()
window.SetSizeCallback(copiedReshape)
window.SetKeyCallback(keyHandler)
copiedInit()
running := true
for running && !window.ShouldClose() {
//copiedDrawCube(angle)
redraw()
window.SwapBuffers()
glfw.PollEvents()
running = window.GetKey(glfw.KeyEscape) == glfw.Release
}
}
开发者ID:srm88,项目名称:blocks,代码行数:27,代码来源:main.go
示例5: main
func main() {
glfw.SetErrorCallback(errorCallback)
if !glfw.Init() {
panic("Can't init glfw!")
}
defer glfw.Terminate()
window, err := glfw.CreateWindow(Width, Height, Title, nil, nil)
if err != nil {
panic(err)
}
window.MakeContextCurrent()
glfw.SwapInterval(1)
gl.Init()
if err := initScene(); err != nil {
fmt.Fprintf(os.Stderr, "init: %s\n", err)
return
}
defer destroyScene()
for !window.ShouldClose() {
drawScene()
window.SwapBuffers()
glfw.PollEvents()
}
}
开发者ID:nzlov,项目名称:examples,代码行数:31,代码来源:gopher.go
示例6: OpenWindow
func OpenWindow(width, height int, caption string) *glfw.Window {
// OpenGL haluaa että sitä käytetään aina samasta threadista
// muuten tulee satunnaisia segfaultteja
runtime.LockOSThread()
glfw.Init()
// luodaan ikkuna
w, err := glfw.CreateWindow(width, height, caption, nil, nil)
if err != nil {
log.Fatal(err)
}
w.MakeContextCurrent()
gl.Init()
// Jotta painalluksista kerrottaisiin vaikka ne olisivat jo päättyneet
w.SetInputMode(glfw.StickyKeys, glfw.True)
w.SetInputMode(glfw.StickyMouseButtons, glfw.True)
// läpinäkyvyys päälle (non-premultiplied alpha)
gl.Enable(gl.BLEND)
gl.BlendEquationSeparate(gl.FUNC_ADD, gl.FUNC_ADD)
gl.BlendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ZERO)
return w
}
开发者ID:joonazan,项目名称:sprite,代码行数:27,代码来源:window.go
示例7: main
func main() {
glfw.SetErrorCallback(glfwErrorCallback)
if !glfw.Init() {
panic("failed to initialize glfw")
}
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()
}
}
开发者ID:jasonrpowers,项目名称:glow,代码行数:30,代码来源:legacy_cube.go
示例8: Window
func (me *context) Window(winf *ngctx.WinProfile, bufSize *ngctx.BufferBits, ctxProf *ngctx.CtxProfile) (window ngctx.Window, err error) {
glfw.WindowHint(glfw.Samples, winf.MultiSampling)
glfw.WindowHint(glfw.RedBits, bufSize.Color.R)
glfw.WindowHint(glfw.GreenBits, bufSize.Color.G)
glfw.WindowHint(glfw.BlueBits, bufSize.Color.B)
glfw.WindowHint(glfw.AlphaBits, bufSize.Color.A)
glfw.WindowHint(glfw.DepthBits, bufSize.Depth)
glfw.WindowHint(glfw.StencilBits, bufSize.Stencil)
glfw.WindowHint(glfw.ContextVersionMajor, ctxProf.Version.Major)
glfw.WindowHint(glfw.ContextVersionMinor, ctxProf.Version.Minor)
glfw.WindowHint(glfw.OpenglProfile, glfw.OpenglCoreProfile)
if ctxProf.ForwardCompat {
glfw.WindowHint(glfw.OpenglForwardCompatible, 1)
}
var mon *glfw.Monitor
if winf.FullScreen {
mon, err = glfw.GetPrimaryMonitor()
}
if err == nil {
var win *glfw.Window
if win, err = glfw.CreateWindow(winf.Width, winf.Height, winf.Title, mon, nil); win != nil {
window = newWindow(win)
if winf.FullScreen {
win.SetInputMode(glfw.Cursor, glfw.CursorHidden)
}
}
}
return
}
开发者ID:go3d,项目名称:go-ngine,代码行数:29,代码来源:ctx.go
示例9: RunIn3DContext
func RunIn3DContext(example func()) {
if !glfw.Init() {
log.Panic("glfw Error")
}
defer glfw.Terminate()
glfw.WindowHint(glfw.ContextVersionMajor, 3)
glfw.WindowHint(glfw.ContextVersionMinor, 3)
glfw.WindowHint(glfw.OpenglForwardCompatible, glfw.True)
glfw.WindowHint(glfw.OpenglProfile, glfw.OpenglCoreProfile)
w, h := 100, 100
window, err := glfw.CreateWindow(w, h, "Test", nil, nil)
if err != nil {
log.Panic(err)
}
window.MakeContextCurrent()
if gl.Init() != 0 {
log.Panic("gl error")
}
gl.GetError()
vertexArray := gl.GenVertexArray()
vertexArray.Bind()
example()
}
开发者ID:nobonobo,项目名称:go-three,代码行数:28,代码来源:three_test.go
示例10: main
func main() {
runtime.LockOSThread()
defer runtime.UnlockOSThread()
defer glfw.Terminate()
gorgasm.Verbose = true
if !glfw.Init() {
panic("Can't init glfw!")
}
// Enable OpenGL ES 2.0.
glfw.WindowHint(glfw.ClientApi, glfw.OpenglEsApi)
glfw.WindowHint(glfw.ContextVersionMajor, 2)
window, err := glfw.CreateWindow(testlib.Width, testlib.Height, "Gorgasm Test", nil, nil)
if err != nil {
panic(err)
}
gorgasm.Init(window)
go prettytest.Run(new(testing.T), testlib.NewTestSuite())
for !window.ShouldClose() {
glfw.WaitEvents()
}
}
开发者ID:kebo,项目名称:gorgasm,代码行数:27,代码来源:runner.go
示例11: main
func main() {
runtime.LockOSThread()
defer runtime.UnlockOSThread()
defer glfw.Terminate()
mandala.Verbose = true
if !glfw.Init() {
panic("Can't init glfw!")
}
// Enable OpenGL ES 2.0.
glfw.WindowHint(glfw.ClientApi, glfw.OpenglEsApi)
glfw.WindowHint(glfw.ContextVersionMajor, 2)
window, err := glfw.CreateWindow(Width, Height, "gltext black-box testing", nil, nil)
if err != nil {
panic(err)
}
glfw.SwapInterval(0)
mandala.Init(window)
go prettytest.Run(new(testing.T), testlib.NewTestSuite(outputPath))
for !window.ShouldClose() {
glfw.WaitEvents()
}
}
开发者ID:remogatto,项目名称:gltext,代码行数:28,代码来源:runner.go
示例12: Initialize
// Initialize creates new window
func (e *E) Initialize(title string, params Params, state State) error {
if !glfw3.Init() {
return fmt.Errorf("unable to initialize glfw")
}
if e.window != nil {
return fmt.Errorf("Initialize error: window is not nil")
}
glfw3.SetErrorCallback(OnError)
glfw3.WindowHint(glfw3.Resizable, glfw3.True)
glfw3.WindowHint(glfw3.ContextVersionMajor, params.Version[0])
glfw3.WindowHint(glfw3.ContextVersionMinor, params.Version[1])
glfw3.WindowHint(glfw3.OpenglProfile, glfw3.OpenglCoreProfile)
glfw3.WindowHint(glfw3.OpenglDebugContext, glfw3.True)
size := params.Size
window, err := glfw3.CreateWindow(size[0], size[1], title, nil, nil)
if err != nil {
return err
}
window.MakeContextCurrent()
window.SetKeyCallback(e.OnKey)
window.SetFramebufferSizeCallback(e.OnFramebufferResize)
e.window = window
e.state = state
return nil
}
开发者ID:niksaak,项目名称:goticles,代码行数:32,代码来源:engine.go
示例13: main
func main() {
if !glfw.Init() {
log.Fatal("glfw failed to initialize")
}
defer glfw.Terminate()
window, err := glfw.CreateWindow(640, 480, "Deformable", nil, nil)
if err != nil {
log.Fatal(err.Error())
}
window.MakeContextCurrent()
glfw.SwapInterval(1)
window.SetMouseButtonCallback(handleMouseButton)
window.SetKeyCallback(handleKeyDown)
window.SetInputMode(glfw.Cursor, glfw.CursorHidden)
gl.Init()
initGL()
i := 16
m = GenerateMap(1600/i, 1200/i, i)
for running && !window.ShouldClose() {
x, y := window.GetCursorPosition()
if drawing != 0 {
m.Add(int(x)+int(camera[0]), int(y)+int(camera[1]), drawing, brushSizes[currentBrushSize])
}
gl.Clear(gl.COLOR_BUFFER_BIT)
gl.LoadIdentity()
gl.PushMatrix()
gl.PushAttrib(gl.CURRENT_BIT | gl.ENABLE_BIT | gl.LIGHTING_BIT | gl.POLYGON_BIT | gl.LINE_BIT)
gl.Translatef(-camera[0], -camera[1], 0)
m.Draw()
gl.PopAttrib()
gl.PopMatrix()
gl.PushAttrib(gl.COLOR_BUFFER_BIT)
gl.LineWidth(2)
gl.Enable(gl.BLEND)
gl.BlendFunc(gl.ONE_MINUS_DST_COLOR, gl.ZERO)
// gl.Enable(gl.LINE_SMOOTH)
// gl.Hint(gl.LINE_SMOOTH_HINT, gl.NICEST)
gl.Translatef(float32(x), float32(y), 0)
gl.EnableClientState(gl.VERTEX_ARRAY)
gl.VertexPointer(2, gl.DOUBLE, 0, cursorVerts)
gl.DrawArrays(gl.LINE_LOOP, 0, 24)
gl.PopAttrib()
window.SwapBuffers()
glfw.PollEvents()
}
}
开发者ID:sixthgear,项目名称:deformable,代码行数:60,代码来源:main.go
示例14: main
func main() {
_ = fmt.Sprint()
if !glfw.Init() {
panic("Can't init glfw!")
}
defer glfw.Terminate()
// antialiasing
//glfw.WindowHint(glfw.Samples, 4)
window, err = glfw.CreateWindow(WindowWidth, WindowHeight, "Mozaik", nil, nil)
if err != nil {
panic(err)
}
defer window.Destroy()
// Ensure thread context
window.MakeContextCurrent()
//glfw.SwapInterval(1)
window.SetKeyCallback(keyCb)
window.SetMouseButtonCallback(mouseCb)
gl.Init()
gl.ClearColor(0.9, 0.85, 0.46, 0.0)
// useless in 2D
gl.Disable(gl.DEPTH_TEST)
// antialiasing
gl.Enable(gl.BLEND)
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
gl.Enable(gl.LINE_SMOOTH)
for i := int32(32); i < 72; i++ {
font := loadFonts(i)
defer font.Release()
fonts = append(fonts, font)
}
// Compute window radius
windowRadius = math.Sqrt(math.Pow(WindowHeight, 2) + math.Pow(WindowWidth, 2))
// Use window coordinates
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
gl.Ortho(0, WindowWidth, WindowHeight, 0, 0, 1)
gl.MatrixMode(gl.MODELVIEW)
gl.LoadIdentity()
g = NewGame()
g.Start()
go eventLoop(g)
go renderLoop(g)
Main()
g.Stop()
}
开发者ID:remogatto,项目名称:mozaik,代码行数:57,代码来源:main_init.go
示例15: initWindow
func initWindow() (window *glfw.Window, err error) {
monitor, err := glfw.GetPrimaryMonitor()
if err != nil {
return nil, err
}
videomode, err := monitor.GetVideoMode()
if err != nil {
return nil, err
}
if videomode.Height < 480 || videomode.Width < 640 {
return nil, errors.New("unsupported resolution!")
}
ratio := float64(videomode.Width) / float64(videomode.Height)
if fullscreen {
glfw.WindowHint(glfw.Decorated, 0)
window, err = glfw.CreateWindow(videomode.Width, videomode.Height, "Golang Asteroids!", nil, nil)
if err != nil {
return nil, err
}
window.SetPosition(0, 0)
} else {
glfw.WindowHint(glfw.Decorated, 1)
window, err = glfw.CreateWindow(int(ratio*480), 480, "Golang Asteroids!", nil, nil)
if err != nil {
return nil, err
}
window.SetPosition(videomode.Width/2-320, videomode.Height/2-240)
}
window.SetKeyCallback(keyCallback)
window.SetFramebufferSizeCallback(reshapeWindow)
window.MakeContextCurrent()
gl.Init()
gl.ClearColor(gl.GLclampf(Colorize(0)), gl.GLclampf(Colorize(0)), gl.GLclampf(Colorize(0)), 0.0)
gl.Clear(gl.COLOR_BUFFER_BIT)
width, height := window.GetFramebufferSize()
reshapeWindow(window, width, height)
return window, nil
}
开发者ID:JamesClonk,项目名称:asteroids,代码行数:44,代码来源:main.go
示例16: Open
func (self *OpenGLWindow) Open() {
var err error
if !glfw.Init() {
panic(errors.New("Unable to initialize GLFW"))
}
glfw.SetErrorCallback(func(code glfw.ErrorCode, desc string) {
log.Printf("[GLFW Error] (%d) %s", code, desc)
})
var monitor *glfw.Monitor
if self.config.Fullscreen {
monitor, err = glfw.GetPrimaryMonitor()
if err != nil {
panic(err)
}
}
glfw.WindowHint(glfw.ContextVersionMajor, 4)
glfw.WindowHint(glfw.ContextVersionMinor, 1)
glfw.WindowHint(glfw.OpenglProfile, glfw.OpenglCoreProfile)
glfw.WindowHint(glfw.OpenglForwardCompatible, glfw.True)
// Default buffer sizes
glfw.WindowHint(glfw.DepthBits, 32)
glfw.WindowHint(glfw.StencilBits, 0)
// Toggle VSync. Turning VSync off aparently doesn't work via glfw through
// some ATI cards and drivers
if self.config.VSync {
glfw.SwapInterval(1)
} else {
glfw.SwapInterval(0)
}
self.window, err = glfw.CreateWindow(
int(self.config.Width), int(self.config.Height),
"Project Slartibartfast",
monitor,
nil)
if err != nil {
panic(err)
}
self.window.MakeContextCurrent()
if glewError := gl.Init(); glewError != 0 {
panic(errors.New("Unable to initialize OpenGL"))
}
}
开发者ID:jasonroelofs,项目名称:slartibartfast,代码行数:52,代码来源:opengl_window.go
示例17: NewWindow
//NewWindow creates and return a new Window
func NewWindow(b RenderBackend, w, h int, title string) *Window {
glfw.SetErrorCallback(errorCallback)
if !glfw.Init() {
panic("Can't init glfw!")
}
window, err := glfw.CreateWindow(w, h, title, nil, nil)
if err != nil {
panic(err)
}
window.MakeContextCurrent()
b.Init(w, h)
setupGL(w, h)
return &Window{window, b, gs.NewRootElement()}
}
开发者ID:phaikawl,项目名称:gosui,代码行数:19,代码来源:window.go
示例18: Open
// Open opens a new OS window via GLFW.
func Open(width, height int, title string) (*Window, error) {
var wnd *glfw3.Window
errc := make(chan error)
mainc <- func() {
var err error
wnd, err = glfw3.CreateWindow(width, height, title, nil, nil)
errc <- err
if err == nil {
wnd.SetInputMode(glfw3.Cursor, glfw3.CursorNormal)
wnd.Restore()
}
}
err := <-errc
if err != nil {
return nil, err
}
return openFromWindow(wnd)
}
开发者ID:james4k,项目名称:exp,代码行数:19,代码来源:glfw.go
示例19: main
func main() {
runtime.LockOSThread()
glfw.SetErrorCallback(errorCallback)
if !glfw.Init() {
panic("Can't init glfw!")
}
defer glfw.Terminate()
// must be done in main thread or we get a nasty stderr message from glfw,
// although it does seem to 'work'
window, err := glfw.CreateWindow(Width, Height, Title, nil, nil)
if err != nil {
panic(err)
}
// separate thread for drawing so that we don't block on the event thread.
// most obvious benefit is that we continue to render during window
// resizes.
go func() {
runtime.LockOSThread()
window.MakeContextCurrent()
glfw.SwapInterval(1)
gl.Init()
if err := initScene(); err != nil {
fmt.Fprintf(os.Stderr, "init: %s\n", err)
return
}
for !window.ShouldClose() {
drawScene()
window.SwapBuffers()
}
os.Exit(0)
}()
for {
glfw.WaitEvents()
}
}
开发者ID:james4k,项目名称:gfx,代码行数:42,代码来源:main.go
示例20: init
func (a *Application) init() {
glfw.SetErrorCallback(a.glfwError)
if !glfw.Init() {
os.Exit(1)
}
a.Width = 1280
a.Height = 720
a.Title = filepath.Base(os.Args[0])
// For now, force a fixed size window. bgfx currently breaks glfw
// events on OS X because it overrides the NSWindow's content view.
glfw.WindowHint(glfw.Resizable, 0)
var err error
a.window, err = glfw.CreateWindow(a.Width, a.Height, a.Title, nil, nil)
if err != nil {
log.Fatalln(err)
}
bgfx_glfw.SetWindow(a.window)
}
开发者ID:james4k,项目名称:go-bgfx-examples,代码行数:20,代码来源:example.go
注:本文中的github.com/go-gl/glfw3.CreateWindow函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论