26 lines
672 B
Go
26 lines
672 B
Go
package elements
|
|
|
|
import "image"
|
|
import "git.tebibyte.media/sashakoshka/tomo/canvas"
|
|
import "git.tebibyte.media/sashakoshka/tomo/elements/core"
|
|
import "git.tebibyte.media/sashakoshka/tomo/artist/patterns"
|
|
|
|
type Image struct {
|
|
*core.Core
|
|
core core.CoreControl
|
|
buffer canvas.Canvas
|
|
}
|
|
|
|
func NewImage (image image.Image) (element *Image) {
|
|
element = &Image { buffer: canvas.FromImage(image) }
|
|
element.Core, element.core = core.NewCore(element, element.draw)
|
|
bounds := image.Bounds()
|
|
element.core.SetMinimumSize(bounds.Dx(), bounds.Dy())
|
|
return
|
|
}
|
|
|
|
func (element *Image) draw () {
|
|
(patterns.Texture { Canvas: element.buffer }).
|
|
Draw(element.core, element.Bounds())
|
|
}
|