本文整理汇总了Golang中github.com/go-gl/glfw3.SetErrorCallback函数的典型用法代码示例。如果您正苦于以下问题:Golang SetErrorCallback函数的具体用法?Golang SetErrorCallback怎么用?Golang SetErrorCallback使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了SetErrorCallback函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: 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
示例2: 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
示例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(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
示例5: 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
示例6: New
// Returns a new `CtxProvider` for GLFW 3.x.
func New() ngctx.CtxProvider {
me := &context{}
me.lastErr.code = -1
glfw.SetErrorCallback(func(err glfw.ErrorCode, desc string) {
me.lastErr.code, me.lastErr.msg = err, desc
})
return me
}
开发者ID:go3d,项目名称:go-ngine,代码行数:9,代码来源:ctx.go
示例7: 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
示例8: setupGlfw
func setupGlfw() {
glfw.SetErrorCallback(onGlfwError)
glfw.WindowHint(glfw.Resizable, 1)
glfw.WindowHint(glfw.Visible, 1)
glfw.WindowHint(glfw.ClientApi, glfw.OpenglApi)
glfw.WindowHint(glfw.OpenglForwardCompatible, 1)
glfw.WindowHint(glfw.ContextVersionMajor, 3)
glfw.WindowHint(glfw.ContextVersionMinor, 2)
glfw.WindowHint(glfw.OpenglProfile, glfw.OpenglCoreProfile)
glfw.WindowHint(glfw.OpenglDebugContext, 1)
}
开发者ID:james4k,项目名称:exp,代码行数:13,代码来源:run.go
示例9: main
func main() {
runtime.LockOSThread()
glfw.SetErrorCallback(errorCallback)
if !glfw.Init() {
panic("can't init glfw!")
}
defer glfw.Terminate()
var window *glfw.Window = initGame()
runGameLoop(window)
fmt.Printf("Your highscore was %d points!\n", highscore)
}
开发者ID:JamesClonk,项目名称:asteroids,代码行数:14,代码来源:main.go
示例10: Init
// Init initializes a glfw.Window to be used in a xorg Gorgasm
// application. It has to be called after the GLFW initialization
// boilerplate. See
// https://github.com/remogatto/gorgasm-examples/triangle/src/triangle/main.go
// for an example.
func Init(window *glfw.Window) {
glfw.SetErrorCallback(errorCallback)
// Set callbacks associated with window events
window.SetCloseCallback(exitCallback)
window.SetMouseButtonCallback(mouseButtonCallback)
window.SetCursorPositionCallback(cursorPositionCallback)
// Begin sending events related to the creation process
event <- CreateEvent{}
event <- StartEvent{}
event <- ResumeEvent{}
event <- NativeWindowCreatedEvent{Window: window}
}
开发者ID:kebo,项目名称:gorgasm,代码行数:20,代码来源:callback.go
示例11: 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
示例12: 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
示例13: 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
示例14: 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()
for !window.ShouldClose() {
//Do OpenGL stuff
window.SwapBuffers()
glfw.PollEvents()
}
}
开发者ID:LonelyPale,项目名称:go-opengl,代码行数:21,代码来源:main.go
示例15: main
func main() {
flag.Parse()
glfw.SetErrorCallback(errorCallback)
if !glfw.Init() {
println("glfw init failure")
}
defer glfw.Terminate()
glfw.WindowHint(glfw.ClientApi, glfw.OpenglEsApi)
glfw.WindowHint(glfw.ContextVersionMajor, 2)
glfw.WindowHint(glfw.ContextVersionMinor, 0)
window, err := glfw.CreateWindow(Width, Height, Title, nil, nil)
if err != nil {
panic(err)
}
defer window.Destroy()
window.MakeContextCurrent()
glfw.SwapInterval(1)
window.SetSizeCallback(reshape)
window.SetKeyCallback(keyEvent)
gl.Viewport(0, 0, Width, Height)
initScene()
if *debug {
go func() {
tick := time.Tick(1 * time.Second)
for {
<-tick
fmt.Printf("FPS:%v\tGOROUTINE:%v\r", atomic.LoadUint64(fps), runtime.NumGoroutine())
atomic.StoreUint64(fps, 0)
}
}()
}
for !window.ShouldClose() {
drawScene()
window.SwapBuffers()
glfw.PollEvents()
atomic.AddUint64(fps, 1)
}
}
开发者ID:nick-fedesna,项目名称:egles,代码行数:39,代码来源:main.go
示例16: main
func main() {
fmt.Printf("Launching cardgame...\n")
glfw.SetErrorCallback(onError)
if !glfw.Init() {
panic("OpenGL initialization failed.")
}
defer glfw.Terminate()
window, err := glfw.CreateWindow(800, 600, "Cardgame", nil, nil)
if err != nil {
panic(err)
}
window.MakeContextCurrent()
window.SetTitle("Cardgame")
screenWidth, screenHeight := GetScreenSize()
window.SetPosition(screenWidth/2-400, screenHeight/2-300)
gl.Init()
gl.ClearColor(0.5, 0.5, 0.75, 0)
gl.Ortho(0, 800, 0, 600, 0, 1)
playfield := NewPlayfield()
for !window.ShouldClose() {
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
//gl.LoadIdentity()
playfield.Draw()
window.SwapBuffers()
glfw.PollEvents()
}
}
开发者ID:Bunkerbewohner,项目名称:cardgame,代码行数:38,代码来源:main.go
示例17: main
func main() {
go m.Do(func() {
defer m.Exit()
runtime.LockOSThread()
glfw.SetErrorCallback(errorCallback)
if !glfw.Init() {
panic("Can't init glfw!")
}
defer glfw.Terminate()
w, h := 800, 600
window, err := glfw.CreateWindow(w, h, "Testing", nil, nil)
if err != nil {
panic(err)
}
window.MakeContextCurrent()
gl.Init()
sgl.Init()
canv := sgl.NewCanvas(w, h)
pa := sgl.NewPath().StartAt(sgl.Pt(50, 50))
pa.QuadraticTo(sgl.Pt(80, 50), sgl.Pt(150, 0))
pa.QuadraticTo(sgl.Pt(300, 300), sgl.Pt(800, 100))
pa.QuadraticTo(sgl.Pt(100, 600), sgl.Pt(0, 300))
pa.BezierTo(sgl.Pt(50, 50), sgl.Pt(-100, 200), sgl.Pt(100, 100))
for !window.ShouldClose() {
gl.ClearColor(1, 1, 1, 1)
gl.Clear(gl.COLOR_BUFFER_BIT)
pa.DrawFill(canv, sgl.NewPaint().SetFill(color.RGBA{89, 184, 239, 100}))
//Do OpenGL stuff
window.SwapBuffers()
glfw.PollEvents()
time.Sleep(100 * time.Millisecond)
}
})
m.Main()
}
开发者ID:rdterner,项目名称:gosgl,代码行数:38,代码来源:main.go
示例18: main
func main() {
glfw.SetErrorCallback(errorCallback)
if !glfw.Init() {
panic("Can't init glfw!")
}
defer glfw.Terminate()
glfw.WindowHint(glfw.DepthBits, 16)
window, err := glfw.CreateWindow(Width, Height, Title, nil, nil)
if err != nil {
panic(err)
}
window.SetFramebufferSizeCallback(reshape)
window.SetKeyCallback(key)
window.MakeContextCurrent()
glfw.SwapInterval(1000 / 60)
width, height := window.GetFramebufferSize()
reshape(window, width, height)
if err := initGL(); err != nil {
fmt.Fprintf(os.Stderr, "init: %s\n", err)
return
}
defer destroyGL()
for !window.ShouldClose() {
drawScene()
window.SwapBuffers()
glfw.PollEvents()
}
}
开发者ID:nzlov,项目名称:gogl,代码行数:37,代码来源:09.go
示例19: main
func main() {
f, err := os.Create("Go.pprof") // Create file for profiling
if err != nil {
panic(err)
}
glfw.SetErrorCallback(errorCallback)
if !glfw.Init() {
panic("Can't init glfw!")
}
defer glfw.Terminate()
glfw.WindowHint(glfw.Samples, 2)
glfw.WindowHint(glfw.ContextVersionMajor, 2)
glfw.WindowHint(glfw.ContextVersionMinor, 1)
window, err := glfw.CreateWindow(Width, Height, Title, nil, nil)
if err != nil {
panic(err)
}
window.MakeContextCurrent()
glfw.SwapInterval(0) // No limit on FPS
gl.Init()
initScene()
loadCubeToGPU()
for !window.ShouldClose() {
frameInitT = time.Now()
movPts(frameDur)
doWind()
if spwnTmr >= SpawnInterval {
spwnPts(SpawnInterval)
spwnTmr -= SpawnInterval
}
if cleanupTmr >= float64(MaxLife)/1000 {
cleanupPtPool()
cleanupTmr = 0
}
checkColls()
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gpuInitT = time.Now()
renderPts()
window.SwapBuffers()
gpuEndT = time.Now()
glfw.PollEvents()
frameEndT = time.Now()
frameDur = frameEndT.Sub(frameInitT).Seconds() // Calculate the length of the previous frame
spwnTmr += frameDur
cleanupTmr += frameDur
runTmr += frameDur
if runTmr > MaxLife/1000 { // Start collecting framerate data and profiling after a full MaxLife worth of particles have been spawned
frames[curFrame] = frameDur
gpuTimes[curFrame] = gpuEndT.Sub(gpuInitT).Seconds()
curFrame += 1
pprof.StartCPUProfile(f)
}
if runTmr >= RunningTime { // Animation complete; calculate framerate mean and standard deviation
pprof.StopCPUProfile()
var sum float64
var i uint64
for i = 0; i < curFrame; i++ {
sum += frames[i]
}
frameTimeMean := sum / float64(curFrame)
fmt.Println("Average framerate was:", 1/frameTimeMean, "frames per second.")
sum = 0
for i = 0; i < curFrame; i++ {
sum += gpuTimes[i]
}
gpuTimeMean := sum / float64(curFrame)
fmt.Println("Average cpu time was-", frameTimeMean-gpuTimeMean, "seconds per frame.")
sumDiffs := 0.0
for i = 0; i < curFrame; i++ {
sumDiffs += math.Pow(1/frames[i]-1/frameTimeMean, 2)
}
variance := sumDiffs / float64(curFrame)
sd := math.Sqrt(variance)
fmt.Println("The standard deviation was:", sd, "frames per second.")
if PrintFrames == true {
fmt.Print("--:")
for i = 0; i < curFrame; i++ {
fmt.Print(1 / frames[i])
fmt.Print(",")
}
fmt.Print(".--")
}
break
}
}
gl.DisableClientState(gl.NORMAL_ARRAY)
gl.DisableClientState(gl.VERTEX_ARRAY)
}
开发者ID:ReneSac,项目名称:ParticleBench,代码行数:95,代码来源:Go.go
示例20: NewWindow
// NewWindow creates a new window for the given dimensions and title.
// The window is created via GLFW.
func NewWindow(settings WindowSettings) (*Window, error) {
// Error callback
glfw.SetErrorCallback(errorCallback)
// Init glfw
logger.Debug("Initializing GLFW")
if !glfw.Init() {
return nil, errors.New("Could not initialise GLFW.")
}
glfw.WindowHint(glfw.Samples, 4)
glfw.WindowHint(glfw.ContextVersionMajor, 3)
glfw.WindowHint(glfw.ContextVersionMinor, 3)
glfw.WindowHint(glfw.OpenglForwardCompatible, glfw.True)
glfw.WindowHint(glfw.OpenglProfile, glfw.OpenglCoreProfile)
glfw.WindowHint(glfw.OpenglDebugContext, 1)
var monitor *glfw.Monitor
var err error
if settings.Fullscreen {
logger.Debug("Get primary monitor to create fullscreen window.")
monitor, err = glfw.GetPrimaryMonitor()
if err != nil {
return nil, err
}
logger.Debug("Checking available video modes:")
videoModes, err := monitor.GetVideoModes()
if err != nil {
return nil, err
}
for _, videoMode := range videoModes {
logger.Debug(fmt.Sprintf("-- %+v", videoMode))
}
idealVideoMode := videoModes[len(videoModes)-1]
settings.Width = idealVideoMode.Width
settings.Height = idealVideoMode.Height
}
// Create window
logger.Info("Creating new window")
window, err := glfw.CreateWindow(settings.Width, settings.Height, settings.Title, monitor, nil)
if err != nil {
return nil, err
}
window.SetKeyCallback(keyCallback)
window.MakeContextCurrent()
window.SetInputMode(glfw.StickyKeys, 1)
// Use vsync
glfw.SwapInterval(1)
w := &Window{
window: window,
Settings: settings,
}
currentWindow = w
return w, nil
}
开发者ID:nobonobo,项目名称:go-three,代码行数:66,代码来源:window.go
注:本文中的github.com/go-gl/glfw3.SetErrorCallback函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论