aboutsummaryrefslogtreecommitdiffstats
path: root/layers
diff options
context:
space:
mode:
authorfaiface <faiface@ksp.sk>2017-08-19 16:24:24 +0200
committerfaiface <faiface@ksp.sk>2017-08-19 16:24:24 +0200
commit9c025b737b954a745d713a8ed050071583b63dea (patch)
tree8f12fe67125dcd0953eddcd6face753370047585 /layers
parente8c1f3f366ca9c1aefcd5ee451f0d4674a8f7087 (diff)
downloadgui-9c025b737b954a745d713a8ed050071583b63dea.zip
rename layers -> layer, Layers -> List + fix List.Happen
Diffstat (limited to 'layers')
-rw-r--r--layers/layers.go85
1 files changed, 0 insertions, 85 deletions
diff --git a/layers/layers.go b/layers/layers.go
deleted file mode 100644
index d054e8b..0000000
--- a/layers/layers.go
+++ /dev/null
@@ -1,85 +0,0 @@
-package layers
-
-import (
- "container/list"
- "errors"
- "image"
- "image/draw"
-
- "github.com/faiface/gui/event"
-)
-
-type ImageFlusher interface {
- Image() *image.RGBA
- Flush(r image.Rectangle)
-}
-
-type Layers struct {
- event.Dispatch
- dst ImageFlusher
- layers list.List
-}
-
-func (l *Layers) Dst(dst ImageFlusher) {
- l.dst = dst
- for e := l.layers.Back(); e != nil; e = e.Prev() {
- layer := e.Value.(*Layer)
- rgba := image.NewRGBA(dst.Image().Bounds())
- draw.Draw(rgba, layer.rgba.Bounds(), layer.rgba, layer.rgba.Bounds().Min, draw.Src)
- layer.rgba = rgba
- }
-}
-
-func (l *Layers) Push() *Layer {
- layer := &Layer{
- l: l,
- rgba: image.NewRGBA(l.dst.Image().Bounds()),
- }
- layer.e = l.layers.PushFront(layer)
- return layer
-}
-
-func (l *Layers) Flush(r image.Rectangle) {
- if l.dst == nil {
- panic(errors.New("layers: Flush: no destination"))
- }
- draw.Draw(l.dst.Image(), r, image.Transparent, r.Min, draw.Src)
- for e := l.layers.Back(); e != nil; e = e.Prev() {
- layer := e.Value.(*Layer)
- draw.Draw(l.dst.Image(), r, layer.rgba, r.Min, draw.Over)
- }
- l.dst.Flush(r)
-}
-
-func (l *Layers) Happen(event string) bool {
- for e := l.layers.Front(); e != nil; e = e.Next() {
- layer := e.Value.(*Layer)
- if layer.Happen(event) {
- return true
- }
- }
- return false
-}
-
-type Layer struct {
- event.Dispatch
- l *Layers
- e *list.Element
- rgba *image.RGBA
-}
-
-func (l *Layer) Remove() {
- l.l.layers.Remove(l.e)
-}
-
-func (l *Layer) Front() {
- l.l.layers.MoveToFront(l.e)
-}
-
-func (l *Layer) Image() *image.RGBA {
- return l.rgba
-}
-
-func (l *Layer) Flush(r image.Rectangle) {
- l.l.Flush(r)
-}