aboutsummaryrefslogtreecommitdiffstats
path: root/win
diff options
context:
space:
mode:
authorfaiface <faiface@ksp.sk>2017-08-31 22:42:08 +0200
committerfaiface <faiface@ksp.sk>2017-08-31 22:42:08 +0200
commit7efcefe0d6bf828fcdff81a4e75694d1f3d45a94 (patch)
tree7c6742b4c4531562b2c87dbbdfba113bc97e5559 /win
parent09db3d0b721685fda1cee71833ec4dd0fe1b4c9a (diff)
downloadgui-7efcefe0d6bf828fcdff81a4e75694d1f3d45a94.zip
layout: change EventDrawer Draw to accept a draw function instead of returning a channel
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: