diff --git a/headless_surface_native_test.go b/headless_surface_native_test.go index 297e6e7..1fcff96 100644 --- a/headless_surface_native_test.go +++ b/headless_surface_native_test.go @@ -363,3 +363,10 @@ func TestHeadlessSurfaceReadPixelsStateErrors(t *testing.T) { } }) } + +func TestSurfaceWritePixelsNil(t *testing.T) { + var surface *Surface + if err := surface.WritePixels(nil, 0, 0); !errors.Is(err, ErrReleased) { + t.Fatalf("WritePixels error = %v, want ErrReleased", err) + } +} diff --git a/surface_native.go b/surface_native.go index 8c877a4..a251b24 100644 --- a/surface_native.go +++ b/surface_native.go @@ -409,7 +409,7 @@ func (s *Surface) PresentPixels(data []byte, width, height uint32, damageRects [ // Call between GetCurrentTexture() and Present(). No render pass needed. // Returns ErrReleased if the surface is not configured. func (s *Surface) WritePixels(data []byte, width, height uint32) error { - if s.released || s.core == nil { + if s == nil || s.released || s.core == nil { return ErrReleased } raw := s.core.RawSurface()