Documentation
¶
Overview ¶
Package display implements interfaces for visual output devices. These can be pixel or text based.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Drawer ¶
type Drawer interface {
conn.Resource
// ColorModel returns the device native color model.
ColorModel() color.Model
// Bounds returns the size of the output device.
//
// Generally displays should have Min at {0, 0} but this is not guaranteed in
// multiple displays setup or when an instance of this interface represents a
// section of a larger logical display.
Bounds() image.Rectangle
// Draw updates the display with this image.
//
// Only the pixels within the display boundary are updated. Partial update is
// supported.
//
// Coordinates are top-left 0,0.
//
// dstRect aligns the the drawing operation in the display, enabling partial
// update.
//
// srcPts aligns the image at this offset, enabling using a subset of the
// source image. use image.ZP/image.Point{} to take the image at its origin.
Draw(dstRect image.Rectangle, src image.Image, srcPts image.Point) error
}
Drawer represents a context to display pixels on an output device. It is a write-only interface.
What Drawer represents can be as varied as a 1 bit OLED display or a strip of LED lights. The implementation keeps a single frame buffer, so that partial updates can be done.
Example ¶
package main
import (
"image"
"log"
"periph.io/x/periph/conn/display"
"periph.io/x/periph/host"
)
func main() {
// Make sure periph is initialized.
if _, err := host.Init(); err != nil {
log.Fatal(err)
}
// Get a display output device, like an apa102 or ssd1306. For example:
// s, _ := spireg.Open("")
// d, _ := apa102.New(s, &apa102.DefaultOpts)
var d display.Drawer
// Get an image. You could load a PNG. Resize it to the device display size.
img := image.NewNRGBA(d.Bounds())
// Render the image. The normal use case is:
// - Use d.Bounds() as the dstRect, to cover the whole screen.
// - Use image.ZP/image.Point{} as 'srcPts' unless you want to offset inside
// the image.
if err := d.Draw(d.Bounds(), img, image.ZP); err != nil {
log.Fatal(err)
}
}
Directories
¶
| Path | Synopsis |
|---|---|
|
Package displaytest contains non-hardware devices implementations for testing or emulation purpose.
|
Package displaytest contains non-hardware devices implementations for testing or emulation purpose. |
Click to show internal directories.
Click to hide internal directories.