mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 07:35:40 +00:00
gpu: don't panic for nil op.Ops argument to GPU.Frame
Updates gio#306 Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
+5
-1
@@ -1723,7 +1723,11 @@ func (c *collector) addClip(state *encoderState, viewport, bounds f32.Rectangle,
|
||||
|
||||
func (c *collector) collect(root *op.Ops, viewport image.Point, texOps *[]textureOp) {
|
||||
fview := f32.Rectangle{Max: layout.FPt(viewport)}
|
||||
c.reader.Reset(&root.Internal)
|
||||
var intOps *ops.Ops
|
||||
if root != nil {
|
||||
intOps = &root.Internal
|
||||
}
|
||||
c.reader.Reset(intOps)
|
||||
var state encoderState
|
||||
reset := func() {
|
||||
state = encoderState{
|
||||
|
||||
+5
-1
@@ -800,7 +800,11 @@ func (d *drawOps) collect(root *op.Ops, viewport image.Point) {
|
||||
viewf := f32.Rectangle{
|
||||
Max: f32.Point{X: float32(viewport.X), Y: float32(viewport.Y)},
|
||||
}
|
||||
d.reader.Reset(&root.Internal)
|
||||
var ops *ops.Ops
|
||||
if root != nil {
|
||||
ops = &root.Internal
|
||||
}
|
||||
d.reader.Reset(ops)
|
||||
d.collectOps(&d.reader, viewf)
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ func newContext() (context, error) {
|
||||
if firstErr != nil {
|
||||
return nil, firstErr
|
||||
}
|
||||
return nil, errors.New("x11: no available GPU backends")
|
||||
return nil, errors.New("headless: no available GPU backends")
|
||||
}
|
||||
|
||||
// NewWindow creates a new headless window.
|
||||
|
||||
@@ -132,6 +132,14 @@ func TestDepth(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestNoOps(t *testing.T) {
|
||||
w, release := newTestWindow(t)
|
||||
defer release()
|
||||
if err := w.Frame(nil); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
func newTestWindow(t *testing.T) (*Window, func()) {
|
||||
t.Helper()
|
||||
sz := image.Point{X: 800, Y: 600}
|
||||
|
||||
Reference in New Issue
Block a user