LoadImage now also checks cache; updated go.mod/go.sum

This commit is contained in:
Thomas Friedel 2019-11-26 10:34:34 +01:00
parent 71741d4234
commit fd1cca7ba9
3 changed files with 12 additions and 10 deletions

2
go.mod
View file

@ -1,11 +1,9 @@
module github.com/tfriedel6/canvas
require (
github.com/3d0c/gmf v0.0.0-20181011122539-af78d7462257
github.com/go-gl/gl v0.0.0-20181026044259-55b76b7df9d2
github.com/go-gl/glfw v0.0.0-20181014061658-691ee1b84c51
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
github.com/samuel/go-pcx v0.0.0-20180426214139-d9c017170db4
github.com/veandco/go-sdl2 v0.3.3
golang.org/x/exp v0.0.0-20181106170214-d68db9428509
golang.org/x/image v0.0.0-20181109002202-aa35264064ba

6
go.sum
View file

@ -1,15 +1,9 @@
github.com/3d0c/gmf v0.0.0-20181011122539-af78d7462257 h1:1KJwjPgvqPK1vqUDRW3f6uczuX2NRvgjK0SKPUBxAnM=
github.com/3d0c/gmf v0.0.0-20181011122539-af78d7462257/go.mod h1:vFu/aQImUVU4s38rUuJr6KrEdkMOOnPIGE5ThNUavtg=
github.com/go-gl/gl v0.0.0-20181026044259-55b76b7df9d2 h1:78Hza2KHn2PX1jdydQnffaU2A/xM0g3Nx1xmMdep9Gk=
github.com/go-gl/gl v0.0.0-20181026044259-55b76b7df9d2/go.mod h1:482civXOzJJCPzJ4ZOX/pwvXBWSnzD4OKMdH4ClKGbk=
github.com/go-gl/glfw v0.0.0-20181014061658-691ee1b84c51 h1:elGSwayRx7uAsfA5PnVKeTHh+AVsUTmas0CkHOw/DSk=
github.com/go-gl/glfw v0.0.0-20181014061658-691ee1b84c51/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
github.com/samuel/go-pcx v0.0.0-20180426214139-d9c017170db4 h1:Y/KOCu+ZLB730PudefxfsKVjtI0m0RhvFk9a0l4O1+c=
github.com/samuel/go-pcx v0.0.0-20180426214139-d9c017170db4/go.mod h1:qxuIawynlRhuaHowuXvd1xjyFWx87Ro4gkZlKRXtHnQ=
github.com/veandco/go-sdl2 v0.3.0 h1:IWYkHMp8V3v37NsKjszln8FFnX2+ab0538J371t+rss=
github.com/veandco/go-sdl2 v0.3.0/go.mod h1:FB+kTpX9YTE+urhYiClnRzpOXbiWgaU3+5F2AB78DPg=
github.com/veandco/go-sdl2 v0.3.3 h1:4/TirgB2MQ7oww3pM3Yfgf1YbChMlAQAmiCPe5koK0I=
github.com/veandco/go-sdl2 v0.3.3/go.mod h1:FB+kTpX9YTE+urhYiClnRzpOXbiWgaU3+5F2AB78DPg=
golang.org/x/exp v0.0.0-20181106170214-d68db9428509 h1:k21GX33vzpH/syMF7TgrLxe8ILtvwbyuHtEO3ebR82E=

View file

@ -23,6 +23,12 @@ type Image struct {
// string. If you want the canvas package to load the image, make sure you
// import the required format packages
func (cv *Canvas) LoadImage(src interface{}) (*Image, error) {
if img, ok := src.(*Image); ok {
return img, nil
} else if img, ok := cv.images[src]; ok {
return img, nil
}
var srcImg image.Image
switch v := src.(type) {
case image.Image:
@ -52,11 +58,15 @@ func (cv *Canvas) LoadImage(src interface{}) (*Image, error) {
if err != nil {
return nil, err
}
return &Image{cv: cv, img: backendImg}, nil
cvimg := &Image{cv: cv, img: backendImg}
cv.images[src] = cvimg
return cvimg, nil
}
func (cv *Canvas) getImage(src interface{}) *Image {
if img, ok := cv.images[src]; ok {
if img, ok := src.(*Image); ok {
return img
} else if img, ok := cv.images[src]; ok {
return img
}
switch v := src.(type) {