2015-07-15 17:17:08 +10:00
|
|
|
// Copyright 2015 The Go Authors. All rights reserved.
|
|
|
|
// Use of this source code is governed by a BSD-style
|
|
|
|
// license that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
// Package paint defines an event for the app being ready to paint.
|
|
|
|
//
|
2015-07-16 15:53:00 +10:00
|
|
|
// See the golang.org/x/mobile/app package for details on the event model.
|
2015-07-15 17:17:08 +10:00
|
|
|
package paint // import "golang.org/x/mobile/event/paint"
|
|
|
|
|
2015-10-06 15:57:53 -04:00
|
|
|
// Event indicates that the app is ready to paint the next frame of the GUI.
|
|
|
|
//
|
|
|
|
//A frame is completed by calling the App's Publish method.
|
2015-07-29 12:26:32 -04:00
|
|
|
type Event struct {
|
2015-10-06 15:57:53 -04:00
|
|
|
// External is true for paint events sent by the screen driver.
|
|
|
|
//
|
|
|
|
// An external event may be sent at any time in response to an
|
|
|
|
// operating system event, for example the window opened, was
|
|
|
|
// resized, or the screen memory was lost.
|
app: change EndPaint to Publish.
More than a name change, the painting model changes so that the app, not
the library, is responsible for driving painting. If the app is
animating and wants paint events at 60 Hz, it has to ask for that. If
the app is not animating and doesn't need to update its screen, it
shouldn't get any paint events.
Plenty of TODOs, and this CL doesn't get us to a perfect place, but it
is a checkpoint along the way.
The darwin_*.go code changes were minimal. I don't even have a Mac or
iOS device to test that this even builds. Even so, the TODOs about not
sending paint.Events unconditionally are important TODOs. That's the
whole point of switching to this model. I'll leave the actual
implementation to you (crawshaw).
Out of all the example apps, the change to example/network/main.go is
probably the most interesting.
It seems like there ought to be some way to reduce the copy/paste
between all of the example app code, but I'll leave that for future CLs.
Change-Id: I17e11c06174110c68e17f7183b2d8af19b6a170e
Reviewed-on: https://go-review.googlesource.com/14300
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-09-04 17:13:09 +10:00
|
|
|
//
|
2015-10-06 15:57:53 -04:00
|
|
|
// Programs actively drawing to the screen as fast as vsync allows
|
|
|
|
// should ignore external paint events to avoid a backlog of paint
|
|
|
|
// events building up.
|
|
|
|
External bool
|
2015-07-29 12:26:32 -04:00
|
|
|
}
|