mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-07 02:15:34 +00:00
gpu,gpu/internal: support variable strides in ReadPixels
It saves a roundtrip to scratch memory when the CPU fallback renderer downloads rendered materials. Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
@@ -1121,7 +1121,7 @@ func (b *Buffer) Release() {
|
||||
*b = Buffer{}
|
||||
}
|
||||
|
||||
func (f *Framebuffer) ReadPixels(src image.Rectangle, pixels []byte) error {
|
||||
func (f *Framebuffer) ReadPixels(src image.Rectangle, pixels []byte, stride int) error {
|
||||
if len(pixels) == 0 {
|
||||
return nil
|
||||
}
|
||||
@@ -1135,7 +1135,6 @@ func (f *Framebuffer) ReadPixels(src image.Rectangle, pixels []byte) error {
|
||||
height: C.NSUInteger(sz.Y),
|
||||
depth: 1,
|
||||
}
|
||||
stride := 4 * sz.X
|
||||
buf, off := f.backend.stagingBuffer(len(pixels))
|
||||
enc := f.backend.startBlit()
|
||||
C.blitEncCopyTextureToBuffer(enc, f.texture, buf, C.NSUInteger(off), C.NSUInteger(stride), C.NSUInteger(len(pixels)), msize, orig)
|
||||
|
||||
Reference in New Issue
Block a user