func()

in winterm/erase_helpers.go [61:84]


func (h *windowsAnsiEventHandler) clearRect(attributes uint16, fromCoord COORD, toCoord COORD) error {
	region := SMALL_RECT{Top: fromCoord.Y, Left: fromCoord.X, Bottom: toCoord.Y, Right: toCoord.X}
	width := toCoord.X - fromCoord.X + 1
	height := toCoord.Y - fromCoord.Y + 1
	size := uint32(width) * uint32(height)

	if size <= 0 {
		return nil
	}

	buffer := make([]CHAR_INFO, size)

	char := CHAR_INFO{ansiterm.FILL_CHARACTER, attributes}
	for i := 0; i < int(size); i++ {
		buffer[i] = char
	}

	err := WriteConsoleOutput(h.fd, buffer, COORD{X: width, Y: height}, COORD{X: 0, Y: 0}, &region)
	if err != nil {
		return err
	}

	return nil
}