aboutsummaryrefslogtreecommitdiffstats
path: root/win
diff options
context:
space:
mode:
Diffstat (limited to 'win')
-rw-r--r--win/win.go13
1 files changed, 6 insertions, 7 deletions
diff --git a/win/win.go b/win/win.go
index ccecc94..3bb408f 100644
--- a/win/win.go
+++ b/win/win.go
@@ -52,7 +52,7 @@ func New(opts ...Option) (*Win, error) {
w := &Win{
event: make(chan layout.EventConsume),
- draw: make(chan layout.ImageFlush),
+ draw: make(chan func(draw.Image) image.Rectangle),
newSize: make(chan image.Rectangle),
finish: make(chan struct{}),
}
@@ -98,7 +98,7 @@ func makeGLFWWin(o *options) (*glfw.Window, error) {
type Win struct {
event chan layout.EventConsume
- draw chan layout.ImageFlush
+ draw chan func(draw.Image) image.Rectangle
newSize chan image.Rectangle
finish chan struct{}
@@ -120,8 +120,8 @@ func (w *Win) Event() <-chan layout.EventConsume {
return w.event
}
-func (w *Win) Draw() chan<- layout.ImageFlush {
- return w.draw
+func (w *Win) Draw(d func(draw.Image) image.Rectangle) {
+ w.draw <- d
}
func (w *Win) eventThread() {
@@ -190,9 +190,8 @@ func (w *Win) openGLThread() {
w.img = img
openGLFlushR = r
- case imfl := <-w.draw:
- imfl.Image <- w.img
- r := <-imfl.Flush
+ case d := <-w.draw:
+ r := d(w.img)
openGLFlushR = openGLFlushR.Union(r)
case <-openGLFlush.C: