28 lines
745 B
Go
28 lines
745 B
Go
package patterns
|
|
|
|
import "image"
|
|
import "image/color"
|
|
import "git.tebibyte.media/sashakoshka/tomo/canvas"
|
|
import "git.tebibyte.media/sashakoshka/tomo/artist/shapes"
|
|
|
|
// Uniform is a pattern that draws a solid color.
|
|
type Uniform color.RGBA
|
|
|
|
// Draw fills the clipping rectangle with the pattern's color.
|
|
func (pattern Uniform) Draw (destination canvas.Canvas, clip image.Rectangle) {
|
|
shapes.FillColorRectangle(destination, color.RGBA(pattern), clip)
|
|
}
|
|
|
|
// Uhex creates a new Uniform pattern from an RGBA integer value.
|
|
func Uhex (color uint32) (uniform Uniform) {
|
|
return Uniform(hex(color))
|
|
}
|
|
|
|
func hex (color uint32) (c color.RGBA) {
|
|
c.A = uint8(color)
|
|
c.B = uint8(color >> 8)
|
|
c.G = uint8(color >> 16)
|
|
c.R = uint8(color >> 24)
|
|
return
|
|
}
|