This repository has been archived on 2023-08-08. You can view files and clone it, but cannot push or open issues or pull requests.
2023-02-09 23:34:53 +00:00
|
|
|
package basicElements
|
|
|
|
|
|
|
|
import "image"
|
2023-02-27 03:20:17 +00:00
|
|
|
import "git.tebibyte.media/sashakoshka/tomo/canvas"
|
2023-02-09 23:34:53 +00:00
|
|
|
import "git.tebibyte.media/sashakoshka/tomo/elements/core"
|
2023-02-27 03:20:17 +00:00
|
|
|
import "git.tebibyte.media/sashakoshka/tomo/artist/patterns"
|
2023-02-09 23:34:53 +00:00
|
|
|
|
|
|
|
type Image struct {
|
|
|
|
*core.Core
|
|
|
|
core core.CoreControl
|
2023-02-27 03:20:17 +00:00
|
|
|
buffer canvas.Canvas
|
2023-02-09 23:34:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func NewImage (image image.Image) (element *Image) {
|
2023-02-27 03:20:17 +00:00
|
|
|
element = &Image { buffer: canvas.FromImage(image) }
|
2023-02-09 23:34:53 +00:00
|
|
|
element.Core, element.core = core.NewCore(element.draw)
|
|
|
|
bounds := image.Bounds()
|
|
|
|
element.core.SetMinimumSize(bounds.Dx(), bounds.Dy())
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
func (element *Image) draw () {
|
2023-02-27 03:20:17 +00:00
|
|
|
(patterns.Texture { Canvas: element.buffer }).
|
|
|
|
Draw(element.core, element.Bounds())
|
2023-02-09 23:34:53 +00:00
|
|
|
}
|