From fd1cca7ba906ccfdf627bc434ca255aa6a2e5a0a Mon Sep 17 00:00:00 2001 From: Thomas Friedel Date: Tue, 26 Nov 2019 10:34:34 +0100 Subject: [PATCH] LoadImage now also checks cache; updated go.mod/go.sum --- go.mod | 2 -- go.sum | 6 ------ images.go | 14 ++++++++++++-- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/go.mod b/go.mod index b1135d9..e62d750 100644 --- a/go.mod +++ b/go.mod @@ -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 diff --git a/go.sum b/go.sum index 81570cf..98224cf 100644 --- a/go.sum +++ b/go.sum @@ -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= diff --git a/images.go b/images.go index d8e8e60..a80ec72 100644 --- a/images.go +++ b/images.go @@ -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) {