项目作者: evilbinary

项目描述 :
gles font
高级语言: Go
项目地址: git://github.com/evilbinary/glfont.git
创建时间: 2019-05-25T03:16:10Z
项目社区:https://github.com/evilbinary/glfont

开源协议:

下载


glfont for gles2

Example:

  1. package main
  2. import (
  3. // "fmt"
  4. "log"
  5. "runtime"
  6. "fmt"
  7. "bytes"
  8. "github.com/gobuffalo/packr"
  9. "github.com/go-gl/gl/v2.1/gl"
  10. "github.com/go-gl/glfw/v3.1/glfw"
  11. // "github.com/nullboundary/glfont"
  12. "github.com/liamg/aminal/glfont"
  13. )
  14. const windowWidth = 500
  15. const windowHeight = 400
  16. func init() {
  17. runtime.LockOSThread()
  18. }
  19. func loadFont(name string,scale float32, windowWidth int, windowHeight int) (*glfont.Font, error) {
  20. box := packr.NewBox("/Users/evil/dev/go/aminal/gui/packed-fonts/")
  21. fontBytes, err := box.Find(name)
  22. if err != nil {
  23. return nil, fmt.Errorf("packaged font '%s' could not be read: %s", name, err)
  24. }
  25. font, err := glfont.LoadFont(bytes.NewReader(fontBytes), scale, windowWidth, windowHeight)
  26. if err != nil {
  27. return nil, fmt.Errorf("font '%s' failed to load: %v", name, err)
  28. }
  29. return font, nil
  30. }
  31. func main() {
  32. if err := glfw.Init(); err != nil {
  33. log.Fatalln("failed to initialize glfw:", err)
  34. }
  35. defer glfw.Terminate()
  36. window, _ := glfw.CreateWindow(int(windowWidth), int(windowHeight), "glfontExample", nil, nil)
  37. window.MakeContextCurrent()
  38. glfw.SwapInterval(1)
  39. if err := gl.Init(); err != nil {
  40. panic(err)
  41. }
  42. //load font (fontfile, font scale, window width, window height
  43. font, err := loadFont("Hack Regular Nerd Font Complete.ttf", 18, windowWidth, windowHeight)
  44. if err != nil {
  45. log.Panicf("LoadFont: %v", err)
  46. }
  47. gl.Enable(gl.DEPTH_TEST)
  48. gl.DepthFunc(gl.LESS)
  49. gl.ClearColor(0.0, 0.0, 0.0, 0.0)
  50. for !window.ShouldClose() {
  51. gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
  52. //set color and draw text
  53. font.SetColor(1.0, 1.0, 1.0, 1.0) //r,g,b,a font color
  54. font.Print(4, 100, "hello,world") //x,y,scale,string,printf args
  55. window.SwapBuffers()
  56. glfw.PollEvents()
  57. }
  58. }

Contributors