2024-04-18 09:09:53 +03:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2024-04-19 16:56:43 +03:00
|
|
|
"fmt"
|
|
|
|
"log"
|
|
|
|
"mvvasilev/last_light/render"
|
2024-04-18 09:09:53 +03:00
|
|
|
"os"
|
|
|
|
|
2024-04-19 16:56:43 +03:00
|
|
|
"github.com/gdamore/tcell/v2"
|
2024-04-21 21:51:43 +03:00
|
|
|
"github.com/gdamore/tcell/v2/views"
|
2024-04-18 09:09:53 +03:00
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
2024-04-21 21:51:43 +03:00
|
|
|
c, err := render.CreateRenderContext()
|
2024-04-18 09:09:53 +03:00
|
|
|
|
2024-04-19 16:56:43 +03:00
|
|
|
if err != nil {
|
|
|
|
log.Fatalf("%~v", err)
|
|
|
|
}
|
|
|
|
|
2024-04-21 21:51:43 +03:00
|
|
|
c.HandleInput(func(ev *tcell.EventKey) {
|
|
|
|
if ev.Key() == tcell.KeyEscape || ev.Key() == tcell.KeyCtrlC {
|
|
|
|
c.Stop()
|
|
|
|
os.Exit(0)
|
|
|
|
}
|
|
|
|
})
|
2024-04-19 16:56:43 +03:00
|
|
|
|
|
|
|
defStyle := tcell.StyleDefault.Background(tcell.ColorReset).Foreground(tcell.ColorReset)
|
|
|
|
|
|
|
|
rect := render.CreateRectangle(
|
2024-04-21 21:51:43 +03:00
|
|
|
0, 0, 80, 24,
|
2024-04-19 16:56:43 +03:00
|
|
|
'┌', '─', '┐',
|
|
|
|
'│', '#', '│',
|
|
|
|
'└', '─', '┘',
|
2024-04-21 21:51:43 +03:00
|
|
|
false, true, defStyle,
|
2024-04-19 16:56:43 +03:00
|
|
|
)
|
|
|
|
|
2024-04-21 21:51:43 +03:00
|
|
|
// text := render.CreateText(1, 2, 8, 8, "Hello World! How are you today?", defStyle)
|
|
|
|
|
|
|
|
// grid := render.CreateGrid(
|
|
|
|
// 11, 1, 3, 3, 3, 3,
|
|
|
|
// '┌', '─', '┬', '┐',
|
|
|
|
// '│', '#', '│', '│',
|
|
|
|
// '├', '─', '┼', '┤',
|
|
|
|
// '└', '─', '┴', '┘',
|
|
|
|
// defStyle,
|
|
|
|
// )
|
2024-04-19 16:56:43 +03:00
|
|
|
|
|
|
|
layers := render.CreateLayeredDrawContainer()
|
|
|
|
|
|
|
|
layers.Insert(0, rect)
|
2024-04-21 21:51:43 +03:00
|
|
|
// layers.Insert(1, text)
|
|
|
|
// layers.Insert(0, grid)
|
2024-04-19 16:56:43 +03:00
|
|
|
|
2024-04-21 21:51:43 +03:00
|
|
|
c.HandleRender(func(view views.View, deltaTime int64) {
|
2024-04-19 16:56:43 +03:00
|
|
|
fps := 1_000_000 / deltaTime
|
|
|
|
|
|
|
|
fpsText := render.CreateText(0, 0, 16, 1, fmt.Sprintf("%v FPS", fps), defStyle)
|
|
|
|
|
2024-04-21 21:51:43 +03:00
|
|
|
layers.Draw(view)
|
|
|
|
fpsText.Draw(view)
|
|
|
|
})
|
2024-04-18 09:09:53 +03:00
|
|
|
|
2024-04-21 21:51:43 +03:00
|
|
|
c.BeginRendering()
|
2024-04-18 09:09:53 +03:00
|
|
|
}
|