package fbdraw

// FrameGenerator generates frames for a screen
type FrameGenerator interface {
	// GenerateFrame is called to render a new frame
	GenerateFrame(grid *CharGrid) error

	// FramesPerSecond returns the desired frame rate
	FramesPerSecond() float64
}

// FramebufferDisplay interface represents the output device
type FramebufferDisplay interface {
	// Write renders a grid to the display
	Write(grid *CharGrid) error

	// Size returns the display dimensions in characters
	Size() (width, height int)

	// Close cleans up resources
	Close() error
}
