func windowDrawLoop(cb Callbacks, w *C.ANativeWindow, queue *C.AInputQueue) { C.createEGLWindow(w) // TODO: is the library or the app responsible for clearing the buffers? gl.ClearColor(0, 0, 0, 1) gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT) C.eglSwapBuffers(C.display, C.surface) if errv := gl.GetError(); errv != gl.NO_ERROR { log.Printf("GL initialization error: %s", errv) } geom.Width = geom.Pt(float32(C.windowWidth) / geom.PixelsPerPt) geom.Height = geom.Pt(float32(C.windowHeight) / geom.PixelsPerPt) for { processEvents(cb, queue) select { case <-windowDestroyed: return default: if cb.Draw != nil { cb.Draw() } C.eglSwapBuffers(C.display, C.surface) } } }
func checkGLError() { if glErr := gl.GetError(); glErr != gl.NO_ERROR { log.Fatalf("gl. error: %v", glErr) } }