diff --git a/app/headless/headless.go b/app/headless/headless.go index 88f4d8c5..0628ecbf 100644 --- a/app/headless/headless.go +++ b/app/headless/headless.go @@ -111,6 +111,17 @@ func (w *Window) Screenshot() (*image.RGBA, error) { } return nil }) + // Flip image in y-direction. OpenGL's origin is in the lower + // left corner. + row := make([]uint8, img.Stride) + for y := 0; y < w.size.Y/2; y++ { + y1 := w.size.Y - y - 1 + dest := img.PixOffset(0, y1) + src := img.PixOffset(0, y) + copy(row, img.Pix[dest:]) + copy(img.Pix[dest:], img.Pix[src:src+len(row)]) + copy(img.Pix[src:], row) + } return img, nil }