func (b *bufferImpl) preUpload(reusable bool) { b.mu.Lock() defer b.mu.Unlock() if b.released { panic("x11driver: Buffer.Upload called after Buffer.Release") } if b.nUpload == 0 { swizzle.BGRA(b.buf) } b.nUpload++ b.reusable = b.reusable && reusable }
func (b *bufferImpl) preUpload() { b.mu.Lock() if b.released { b.mu.Unlock() panic("x11driver: Buffer.Upload called after Buffer.Release") } needsSwizzle := b.nUpload == 0 b.nUpload++ b.mu.Unlock() if needsSwizzle { swizzle.BGRA(b.buf) } }
func (b *bufferImpl) postUpload() { b.mu.Lock() defer b.mu.Unlock() b.nUpload-- if b.nUpload != 0 { return } if b.released { go b.cleanUp() } else if b.reusable { swizzle.BGRA(b.buf) } }
func (b *bufferImpl) postUpload() { b.mu.Lock() b.nUpload-- more := b.nUpload != 0 released := b.released b.mu.Unlock() if more { return } if released { b.cleanUp() } else { swizzle.BGRA(b.buf) } }