refactoring finished
This commit is contained in:
@@ -33,9 +33,19 @@ func LoadFace(path string, size float64) (font.Face, error) {
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("text: %w", err)
|
||||
}
|
||||
face, err := NewFace(data, size)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("text: load %s: %w", path, err)
|
||||
}
|
||||
return face, nil
|
||||
}
|
||||
|
||||
// NewFace parses TTF/OTF data and builds a render-ready face at the given
|
||||
// pixel size (DPI 72, full hinting for crisp video text).
|
||||
func NewFace(data []byte, size float64) (font.Face, error) {
|
||||
f, err := opentype.Parse(data)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("text: parse %s: %w", path, err)
|
||||
return nil, fmt.Errorf("parse font: %w", err)
|
||||
}
|
||||
face, err := opentype.NewFace(f, &opentype.FaceOptions{
|
||||
Size: size,
|
||||
@@ -43,7 +53,7 @@ func LoadFace(path string, size float64) (font.Face, error) {
|
||||
Hinting: font.HintingFull,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("text: face %s: %w", path, err)
|
||||
return nil, fmt.Errorf("create font face: %w", err)
|
||||
}
|
||||
return face, nil
|
||||
}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
package generator
|
||||
|
||||
import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"mxl-pattern-generator/assets"
|
||||
|
||||
"golang.org/x/image/font"
|
||||
)
|
||||
|
||||
func testFace(t *testing.T, size float64) font.Face {
|
||||
t.Helper()
|
||||
face, err := LoadFace(filepath.Join("..", "..", "assets", "fonts",
|
||||
"JetBrainsMonoNLNerdFontMono-Regular.ttf"), size)
|
||||
face, err := NewFace(assets.JetBrainsMono, size)
|
||||
if err != nil {
|
||||
t.Fatalf("LoadFace: %v", err)
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ import (
|
||||
"context"
|
||||
"encoding/binary"
|
||||
"fmt"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/gogpu/gputypes"
|
||||
@@ -47,7 +46,7 @@ var _ FrameGenerator = (*WGPUGenerator)(nil)
|
||||
// WGPUOption customizes NewWGPUGenerator.
|
||||
type WGPUOption func(*WGPUGenerator)
|
||||
|
||||
func NewWGPUGenerator(width, height uint, kernelPath string, opts ...WGPUOption) (*WGPUGenerator, error) {
|
||||
func NewWGPUGenerator(width, height uint, wgsl string, opts ...WGPUOption) (*WGPUGenerator, error) {
|
||||
g := &WGPUGenerator{
|
||||
width: int(width),
|
||||
height: int(height),
|
||||
@@ -75,13 +74,8 @@ func NewWGPUGenerator(width, height uint, kernelPath string, opts ...WGPUOption)
|
||||
}
|
||||
g.queue = g.device.Queue()
|
||||
|
||||
wgsl, err := os.ReadFile(kernelPath)
|
||||
if err != nil {
|
||||
g.Close()
|
||||
return nil, fmt.Errorf("wgpu: read kernel: %w", err)
|
||||
}
|
||||
if g.shader, err = g.device.CreateShaderModule(&wgpu.ShaderModuleDescriptor{
|
||||
Label: "v210-shader", WGSL: string(wgsl),
|
||||
Label: "v210-shader", WGSL: wgsl,
|
||||
}); err != nil {
|
||||
g.Close()
|
||||
return nil, fmt.Errorf("wgpu: shader: %w", err)
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
package generator
|
||||
|
||||
import (
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"mxl-pattern-generator/kernels"
|
||||
)
|
||||
|
||||
func TestWGPUMoveSquare(t *testing.T) {
|
||||
const width, height = 1920, 1080
|
||||
g, err := NewWGPUGenerator(width, height, filepath.Join("..", "..", "kernels", "dynamic", "smpteBars.wgsl"))
|
||||
shader, err := kernels.Read("dynamic/smpteBars.wgsl")
|
||||
if err != nil {
|
||||
t.Fatalf("read shader: %v", err)
|
||||
}
|
||||
g, err := NewWGPUGenerator(width, height, string(shader))
|
||||
if err != nil {
|
||||
t.Fatalf("init: %v", err)
|
||||
}
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
package generator
|
||||
|
||||
import (
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"mxl-pattern-generator/kernels"
|
||||
)
|
||||
|
||||
func TestWGPUSMPTEPattern(t *testing.T) {
|
||||
const width, height = 1920, 1080
|
||||
g, err := NewWGPUGenerator(width, height, filepath.Join("..", "..", "kernels", "static", "smpteBars.wgsl"))
|
||||
shader, err := kernels.Read("static/smpteBars.wgsl")
|
||||
if err != nil {
|
||||
t.Fatalf("read shader: %v", err)
|
||||
}
|
||||
g, err := NewWGPUGenerator(width, height, string(shader))
|
||||
if err != nil {
|
||||
t.Fatalf("init: %v", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user