Files
symph/render/definition.go
T
2026-07-15 01:28:56 -04:00

43 lines
1.4 KiB
Go

package render
import (
"fmt"
"symph/parameter"
)
type noteTile = [parameter.RenderNoteHeight][parameter.RenderNoteWidth]rune
var noteChar noteTile
func init() {
funnel := max(
len(fmt.Sprintf(parameter.DropFunnelFormat, "0.0")),
len(fmt.Sprintf(parameter.RiseFunnelFormat, "0.0")),
)
inner := parameter.RenderNoteWidth - 2
// inner == PositionLookaheadWindow by construction; assert the
// distance row and funnel still fit
if parameter.RenderNoteHeight < 2+parameter.RenderRowStrip ||
inner < parameter.RenderDistCols ||
parameter.RenderNoteWidth < funnel ||
parameter.RenderGapY < 1 {
panic("Render tile too small: need height>=5, width-2>=RenderDistCols, width>=funnel, gapY>=1")
}
noteChar[0][0] = parameter.BorderSingleTopLeft
noteChar[parameter.RenderNoteHeight-1][0] = parameter.BorderSingleBottomLeft
noteChar[0][parameter.RenderNoteWidth-1] = parameter.BorderSingleTopRight
noteChar[parameter.RenderNoteHeight-1][parameter.RenderNoteWidth-1] = parameter.BorderSingleBottomRight
for i := 1; i < parameter.RenderNoteWidth-1; i++ {
noteChar[0][i] = parameter.BorderSingleHorizontal
noteChar[parameter.RenderNoteHeight-1][i] = parameter.BorderSingleHorizontal
}
for i := 1; i < parameter.RenderNoteHeight-1; i++ {
noteChar[i][0] = parameter.BorderSingleVertical
noteChar[i][parameter.RenderNoteWidth-1] = parameter.BorderSingleVertical
}
}