28 lines
463 B
Go
28 lines
463 B
Go
|
package system
|
||
|
|
||
|
import "io"
|
||
|
import "image"
|
||
|
import "git.tebibyte.media/tomo/tomo/canvas"
|
||
|
|
||
|
type System struct {
|
||
|
link BackendLink
|
||
|
}
|
||
|
|
||
|
type BackendLink interface {
|
||
|
NewTexture (image.Image) canvas.TextureCloser
|
||
|
NewCanvas (image.Rectangle) canvas.Canvas
|
||
|
NewSurface (image.Rectangle) SurfaceLink
|
||
|
}
|
||
|
|
||
|
type SurfaceLink interface {
|
||
|
io.Closer
|
||
|
GetSurface () any
|
||
|
SetSize (image.Rectangle)
|
||
|
}
|
||
|
|
||
|
func New (link BackendLink) *System {
|
||
|
return &System {
|
||
|
link: link,
|
||
|
}
|
||
|
}
|