gotk4
gotk4 copied to clipboard
gtk.Picture memory leak
First.Thanks for your work.
This is a test demo:
package main
import (
"github.com/diamondburned/gotk4/pkg/gdk/v4"
"github.com/diamondburned/gotk4/pkg/gio/v2"
"github.com/diamondburned/gotk4/pkg/glib/v2"
"github.com/diamondburned/gotk4/pkg/gtk/v4"
"github.com/disintegration/imaging"
"log"
"os"
"runtime"
"time"
)
func main() {
application := gtk.NewApplication("com.demo", gio.ApplicationFlagsNone)
application.Connect("activate", func() {
log.Println("application activate")
w := gtk.NewWindow()
w.SetVisible(true)
img := gtk.NewPicture()
img.SetVisible(true)
w.SetChild(img)
application.AddWindow(w)
go func() {
for range time.Tick(time.Second) {
src, _ := imaging.Open("a.png")
dst := imaging.Blur(src, 1)
glib.IdleAdd(func() {
data := glib.NewBytes(dst.Pix)
text := gdk.NewMemoryTexture(dst.Bounds().Dx(), dst.Bounds().Dy(), gdk.MemoryR8G8B8A8, data, uint(dst.Stride))
img.SetPaintable(text)
runtime.GC()
})
}
}()
})
os.Exit(application.Run(os.Args))
}
Run this that memory always increate.