/
main.go
94 lines (84 loc) · 1.92 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package main
import (
"fmt"
"os"
"path/filepath"
"runtime"
gl "github.com/go-gl/gl/v3.3-core/gl"
"github.com/runningwild/glop/gin"
"github.com/runningwild/glop/gos"
"github.com/runningwild/glop/render"
"github.com/runningwild/glop/system"
"github.com/runningwild/glop/text"
)
func init() {
// Required for Darwin.
runtime.LockOSThread()
}
func initWindow(sys system.System, width int, height int) {
sys.CreateWindow(10, 10, width, height)
sys.EnableVSync(true)
err := gl.Init()
if err != nil {
panic(err)
}
// gl.Ortho(gl.Double(0), gl.Double(width), gl.Double(0), gl.Double(height),
// 1000, -1000)
}
var log *os.File
func init() {
var err error
log, err = os.Create("/Users/jwills/code/src/github.com/dgthunder/glomple/log.txt")
if err != nil {
panic(err)
}
}
func loadDictionary(fontName string) *text.Dictionary {
fmt.Fprintf(log, "path: %v\n", filepath.Join(os.Args[0], "..", "..", "skia.dict"))
f, err := os.Open(filepath.Join(os.Args[0], "..", "..", "skia.dict"))
fmt.Fprintf(log, "err: %v\n", err)
if err != nil {
panic(err)
}
defer f.Close()
fmt.Fprintf(log, "err: %v\n", err)
defer func() {
if r := recover(); r != nil {
fmt.Fprintf(log, "recover: %v\n", r)
}
}()
dict, err := text.LoadDictionary(f)
if err != nil {
panic(err)
}
return dict
}
func main() {
sys := system.Make(gos.GetSystemInterface())
sys.Startup()
render.Init()
render.Queue(func() {
initWindow(sys, 800, 600)
})
font := loadDictionary("skia.dict")
fmt.Fprintf(log, "Font: %v", font)
for true {
sys.Think()
render.Queue(func() {
// gl.Color4ub(0, 255, 255, 255)
// gl.Begin(gl.QUADS)
// gl.Vertex2d(100, 100)
// gl.Vertex2d(500, 100)
// gl.Vertex2d(500, 150)
// gl.Vertex2d(100, 150)
// gl.End()
font.SetFontColor(1, 1, 1)
font.RenderString("TEST", 100, 100, 100)
sys.SwapBuffers()
})
render.Purge()
if gin.In().GetKey(gin.AnyEscape).FramePressCount() > 0 {
break
}
}
}