Avoid double is_opaque scan
This commit is contained in:
parent
fb6332d8e2
commit
25cf8622bc
4 changed files with 14 additions and 8 deletions
2
go.mod
2
go.mod
|
|
@ -14,7 +14,7 @@ require (
|
||||||
github.com/kovidgoyal/dbus v0.0.0-20250519011319-e811c41c0bc1
|
github.com/kovidgoyal/dbus v0.0.0-20250519011319-e811c41c0bc1
|
||||||
github.com/kovidgoyal/go-parallel v1.1.1
|
github.com/kovidgoyal/go-parallel v1.1.1
|
||||||
github.com/kovidgoyal/go-shm v1.0.0
|
github.com/kovidgoyal/go-shm v1.0.0
|
||||||
github.com/kovidgoyal/imaging v1.8.11
|
github.com/kovidgoyal/imaging v1.8.12
|
||||||
github.com/seancfoley/ipaddress-go v1.7.1
|
github.com/seancfoley/ipaddress-go v1.7.1
|
||||||
github.com/shirou/gopsutil/v4 v4.25.10
|
github.com/shirou/gopsutil/v4 v4.25.10
|
||||||
github.com/zeebo/xxh3 v1.0.2
|
github.com/zeebo/xxh3 v1.0.2
|
||||||
|
|
|
||||||
4
go.sum
4
go.sum
|
|
@ -34,8 +34,8 @@ github.com/kovidgoyal/go-parallel v1.1.1 h1:1OzpNjtrUkBPq3UaqrnvOoB2F9RttSt811ui
|
||||||
github.com/kovidgoyal/go-parallel v1.1.1/go.mod h1:BJNIbe6+hxyFWv7n6oEDPj3PA5qSw5OCtf0hcVxWJiw=
|
github.com/kovidgoyal/go-parallel v1.1.1/go.mod h1:BJNIbe6+hxyFWv7n6oEDPj3PA5qSw5OCtf0hcVxWJiw=
|
||||||
github.com/kovidgoyal/go-shm v1.0.0 h1:HJEel9D1F9YhULvClEHJLawoRSj/1u/EDV7MJbBPgQo=
|
github.com/kovidgoyal/go-shm v1.0.0 h1:HJEel9D1F9YhULvClEHJLawoRSj/1u/EDV7MJbBPgQo=
|
||||||
github.com/kovidgoyal/go-shm v1.0.0/go.mod h1:Yzb80Xf9L3kaoB2RGok9hHwMIt7Oif61kT6t3+VnZds=
|
github.com/kovidgoyal/go-shm v1.0.0/go.mod h1:Yzb80Xf9L3kaoB2RGok9hHwMIt7Oif61kT6t3+VnZds=
|
||||||
github.com/kovidgoyal/imaging v1.8.11 h1:i2NzTs8Ge0LKvilKiTw0U1kTcrBL8bo+zUYZSjSP+6M=
|
github.com/kovidgoyal/imaging v1.8.12 h1:S1NIlxNdI86A3MGJNajqp2Pu8/WSVrL8L1B5HbSQsB0=
|
||||||
github.com/kovidgoyal/imaging v1.8.11/go.mod h1:rjyfCTmIGGDjbMWGJ8QN/D/AWjHXD5flIzhjJpOcOVw=
|
github.com/kovidgoyal/imaging v1.8.12/go.mod h1:rjyfCTmIGGDjbMWGJ8QN/D/AWjHXD5flIzhjJpOcOVw=
|
||||||
github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a h1:N9zuLhTvBSRt0gWSiJswwQ2HqDmtX/ZCDJURnKUt1Ik=
|
github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a h1:N9zuLhTvBSRt0gWSiJswwQ2HqDmtX/ZCDJURnKUt1Ik=
|
||||||
github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE=
|
github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
|
|
|
||||||
|
|
@ -216,7 +216,13 @@ func scale_image(imgd *image_data) bool {
|
||||||
|
|
||||||
func add_frame(imgd *image_data, img image.Image, left, top int) *image_frame {
|
func add_frame(imgd *image_data, img image.Image, left, top int) *image_frame {
|
||||||
const shm_template = "kitty-icat-*"
|
const shm_template = "kitty-icat-*"
|
||||||
num_channels, pix := imaging.AsRGBData8(img)
|
num_channels := 4
|
||||||
|
var pix []byte
|
||||||
|
if imaging.IsOpaque(img) {
|
||||||
|
num_channels, pix = 3, imaging.AsRGBData8(img)
|
||||||
|
} else {
|
||||||
|
pix = imaging.AsRGBAData8(img)
|
||||||
|
}
|
||||||
b := img.Bounds()
|
b := img.Bounds()
|
||||||
f := image_frame{width: b.Dx(), height: b.Dy(), number: len(imgd.frames) + 1, left: left, top: top}
|
f := image_frame{width: b.Dx(), height: b.Dy(), number: len(imgd.frames) + 1, left: left, top: top}
|
||||||
f.transmission_format = utils.IfElse(num_channels == 3, graphics.GRT_format_rgb, graphics.GRT_format_rgba)
|
f.transmission_format = utils.IfElse(num_channels == 3, graphics.GRT_format_rgb, graphics.GRT_format_rgba)
|
||||||
|
|
|
||||||
|
|
@ -77,10 +77,10 @@ func (self *ImageFrame) DataAsSHM(pattern string) (ans shm.MMap, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *ImageFrame) Data() (num_channels, bits_per_channel int, has_alpha_channel bool, ans []byte) {
|
func (self *ImageFrame) Data() (num_channels, bits_per_channel int, has_alpha_channel bool, ans []byte) {
|
||||||
num_channels, ans = imaging.AsRGBData8(self.Img)
|
if self.Is_opaque {
|
||||||
bits_per_channel = 8
|
return 3, 8, false, imaging.AsRGBData8(self.Img)
|
||||||
has_alpha_channel = num_channels == 3
|
}
|
||||||
return
|
return 4, 8, true, imaging.AsRGBAData8(self.Img)
|
||||||
}
|
}
|
||||||
|
|
||||||
func ImageFrameFromSerialized(s SerializableImageFrame, data []byte) (aa *ImageFrame, err error) {
|
func ImageFrameFromSerialized(s SerializableImageFrame, data []byte) (aa *ImageFrame, err error) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue