| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- //go:build !js && !wasm && !test_web_driver
- // +build !js,!wasm,!test_web_driver
- package glfw
- import (
- "fmt"
- "runtime"
- "fyne.io/fyne/v2"
- "github.com/go-gl/glfw/v3.3/glfw"
- )
- func (d *gLDriver) initGLFW() {
- initOnce.Do(func() {
- if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
- drawOnMainThread = true
- }
- err := glfw.Init()
- if err != nil {
- fyne.LogError("failed to initialise GLFW", err)
- return
- }
- initCursors()
- d.startDrawThread()
- })
- }
- func (d *gLDriver) tryPollEvents() {
- defer func() {
- if r := recover(); r != nil {
- fyne.LogError(fmt.Sprint("GLFW poll event error: ", r), nil)
- }
- }()
- glfw.PollEvents() // This call blocks while window is being resized, which prevents freeDirtyTextures from being called
- }
- func (d *gLDriver) Terminate() {
- glfw.Terminate()
- }
|