alpha patterns
This commit is contained in:
@@ -17,7 +17,31 @@ func newFrameGenerator(cfg Config, pattern pattern) (generator.FrameGenerator, B
|
||||
newCPU := func() (generator.FrameGenerator, error) {
|
||||
return generator.NewCPUPatternGenerator(cfg.Width(), cfg.Height(), cfg.Pattern)
|
||||
}
|
||||
return selectFrameGenerator(cfg.Backend, newGPU, newCPU)
|
||||
fill, backend, err := selectFrameGenerator(cfg.Backend, newGPU, newCPU)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
gen, err := wrapAlphaGenerator(cfg, fill)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
return gen, backend, nil
|
||||
}
|
||||
|
||||
func wrapAlphaGenerator(cfg Config, fill generator.FrameGenerator) (generator.FrameGenerator, error) {
|
||||
if !cfg.HasAlpha() {
|
||||
return fill, nil
|
||||
}
|
||||
|
||||
gen, err := generator.NewV210AGenerator(fill, cfg.Width(), cfg.Height())
|
||||
if err != nil {
|
||||
closeErr := fill.Close()
|
||||
return nil, errors.Join(
|
||||
fmt.Errorf("initialize v210a generator: %w", err),
|
||||
closeErr,
|
||||
)
|
||||
}
|
||||
return gen, nil
|
||||
}
|
||||
|
||||
func selectFrameGenerator(
|
||||
|
||||
Reference in New Issue
Block a user