Gave CoreControl the ability to shatter parent backgrounds
This commit is contained in:
@@ -5,6 +5,7 @@ import "image/color"
|
||||
import "git.tebibyte.media/sashakoshka/tomo"
|
||||
import "git.tebibyte.media/sashakoshka/tomo/canvas"
|
||||
import "git.tebibyte.media/sashakoshka/tomo/artist"
|
||||
import "git.tebibyte.media/sashakoshka/tomo/shatter"
|
||||
|
||||
// Core is a struct that implements some core functionality common to most
|
||||
// widgets. It is meant to be embedded directly into a struct.
|
||||
@@ -144,6 +145,19 @@ func (control CoreControl) DrawBackgroundBounds (
|
||||
}
|
||||
}
|
||||
|
||||
// DrawBackgroundBoundsShatter is like DrawBackgroundBounds, but uses the
|
||||
// shattering algorithm to avoid drawing in areas specified by rocks.
|
||||
func (control CoreControl) DrawBackgroundBoundsShatter (
|
||||
fallback artist.Pattern,
|
||||
bounds image.Rectangle,
|
||||
rocks ...image.Rectangle,
|
||||
) {
|
||||
tiles := shatter.Shatter(bounds, rocks...)
|
||||
for _, tile := range tiles {
|
||||
control.DrawBackgroundBounds(fallback, tile)
|
||||
}
|
||||
}
|
||||
|
||||
// Window returns the window containing the element.
|
||||
func (control CoreControl) Window () tomo.Window {
|
||||
parent := control.Parent()
|
||||
|
||||
Reference in New Issue
Block a user