init: 自 zomaintain/backend/rdplib 平移独立成库; module path 从上游 github.com/nakagami/grdp 改为 git.zeroonesoft.cn/golib/rdplib
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
//go:build !amd64 && !arm64
|
||||
|
||||
package grdp
|
||||
|
||||
import "encoding/binary"
|
||||
|
||||
// bgr32BatchToRGBA converts n BGRA32 pixels (4 bytes each: B,G,R,X) to RGBA.
|
||||
func bgr32BatchToRGBA(dst []byte, src []byte, n int) {
|
||||
for i := range n {
|
||||
s := i * 4
|
||||
binary.LittleEndian.PutUint32(dst[s:],
|
||||
uint32(src[s+2])|uint32(src[s+1])<<8|uint32(src[s])<<16|0xFF000000)
|
||||
}
|
||||
}
|
||||
|
||||
// rgb555BatchToRGBA converts n big-endian RGB555 pixels (src, 2 bytes each)
|
||||
// to RGBA (dst, 4 bytes each). n must be valid for the slice sizes.
|
||||
func rgb555BatchToRGBA(dst []byte, src []byte, n int) {
|
||||
for i := range n {
|
||||
d := binary.BigEndian.Uint16(src[i*2:])
|
||||
binary.LittleEndian.PutUint32(dst[i*4:],
|
||||
uint32((d&0x7C00)>>7)|uint32((d&0x03E0)>>2)<<8|uint32((d&0x001F)<<3)<<16|0xFF000000)
|
||||
}
|
||||
}
|
||||
|
||||
// rgb565BatchToRGBA converts n big-endian RGB565 pixels to RGBA.
|
||||
func rgb565BatchToRGBA(dst []byte, src []byte, n int) {
|
||||
for i := range n {
|
||||
d := binary.BigEndian.Uint16(src[i*2:])
|
||||
binary.LittleEndian.PutUint32(dst[i*4:],
|
||||
uint32((d&0xF800)>>8)|uint32((d&0x07E0)>>3)<<8|uint32((d&0x001F)<<3)<<16|0xFF000000)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user