v0.6.0 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2024 License: MIT, Unlicense Imports: 9 Imported by: 444



Package paint provides drawing operations for 2D graphics.

The PaintOp operation fills the current clip with the current brush, taking the current transformation into account. Drawing outside the current clip area is ignored.

The current brush is set by either a ColorOp for a constant color, or ImageOp for an image, or LinearGradientOp for gradients.

All color.NRGBA values are in the sRGB color space.



This section is empty.


This section is empty.


func Fill

func Fill(ops *op.Ops, c color.NRGBA)

Fill paints an infinitely large plane with the provided color. It is intended to be used with a clip.Op already in place to limit the painted area. Use FillShape unless you need to paint several times within the same clip.Op.

func FillShape

func FillShape(ops *op.Ops, c color.NRGBA, shape clip.Op)

FillShape fills the clip shape with a color.


type ColorOp

type ColorOp struct {
	Color color.NRGBA

ColorOp sets the brush to a constant color.

func (ColorOp) Add

func (c ColorOp) Add(o *op.Ops)

type ImageFilter added in v0.4.1

type ImageFilter byte

ImageFilter is the scaling filter for images.

const (
	// FilterLinear uses linear interpolation for scaling.
	FilterLinear ImageFilter = iota
	// FilterNearest uses nearest neighbor interpolation for scaling.

type ImageOp

type ImageOp struct {
	Filter ImageFilter
	// contains filtered or unexported fields

ImageOp sets the brush to an image.

func NewImageOp

func NewImageOp(src image.Image) ImageOp

NewImageOp creates an ImageOp backed by src.

NewImageOp assumes the backing image is immutable, and may cache a copy of its contents in a GPU-friendly way. Create new ImageOps to ensure that changes to an image is reflected in the display of it.

func (ImageOp) Add

func (i ImageOp) Add(o *op.Ops)

func (ImageOp) Size

func (i ImageOp) Size() image.Point

type LinearGradientOp

type LinearGradientOp struct {
	Stop1  f32.Point
	Color1 color.NRGBA
	Stop2  f32.Point
	Color2 color.NRGBA

LinearGradientOp sets the brush to a gradient starting at stop1 with color1 and ending at stop2 with color2.

func (LinearGradientOp) Add

func (c LinearGradientOp) Add(o *op.Ops)

type OpacityStack added in v0.3.1

type OpacityStack struct {
	// contains filtered or unexported fields

OpacityStack represents an opacity applied to all painting operations until Pop is called.

func PushOpacity added in v0.3.1

func PushOpacity(o *op.Ops, opacity float32) OpacityStack

PushOpacity creates a drawing layer with an opacity in the range [0;1]. The layer includes every subsequent drawing operation until OpacityStack.Pop is called.

The layer is drawn in two steps. First, the layer operations are drawn to a separate image. Then, the image is blended on top of the frame, with the opacity used as the blending factor.

func (OpacityStack) Pop added in v0.3.1

func (t OpacityStack) Pop()

type PaintOp

type PaintOp struct {

PaintOp fills the current clip area with the current brush.

func (PaintOp) Add

func (d PaintOp) Add(o *op.Ops)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL