diff --git a/raylib/raylib_purego.go b/raylib/raylib_purego.go index 0d9b0f9..ee6a513 100644 --- a/raylib/raylib_purego.go +++ b/raylib/raylib_purego.go @@ -257,6 +257,7 @@ var getCollisionRec func(rec uintptr, rec1 uintptr, rec2 uintptr) var loadImage func(img uintptr, fileName string) var loadImageRaw func(img uintptr, fileName string, width int32, height int32, format int32, headerSize int32) var loadImageAnim func(img uintptr, fileName string, frames []int32) +var loadImageAnimFromMemory func(img uintptr, fileType string, fileData []byte, dataSize int32, frames []int32) var loadImageFromMemory func(img uintptr, fileType string, fileData []byte, dataSize int32) var loadImageFromTexture func(img uintptr, texture uintptr) var loadImageFromScreen func(img uintptr) @@ -760,6 +761,7 @@ func init() { purego.RegisterLibFunc(&loadImage, raylibDll, "LoadImage") purego.RegisterLibFunc(&loadImageRaw, raylibDll, "LoadImageRaw") purego.RegisterLibFunc(&loadImageAnim, raylibDll, "LoadImageAnim") + purego.RegisterLibFunc(&loadImageAnimFromMemory, raylibDll, "LoadImageAnimFromMemory") purego.RegisterLibFunc(&loadImageFromMemory, raylibDll, "LoadImageFromMemory") purego.RegisterLibFunc(&loadImageFromTexture, raylibDll, "LoadImageFromTexture") purego.RegisterLibFunc(&loadImageFromScreen, raylibDll, "LoadImageFromScreen") @@ -2343,6 +2345,13 @@ func LoadImageAnim(fileName string, frames []int32) *Image { return &img } +// LoadImageAnimFromMemory - Load image sequence from memory buffer +func LoadImageAnimFromMemory(fileType string, fileData []byte, dataSize int32, frames []int32) *Image { + var img Image + loadImageAnimFromMemory(uintptr(unsafe.Pointer(&img)), fileType, fileData, dataSize, frames) + return &img +} + // LoadImageFromMemory - Load image from memory buffer, fileType refers to extension: i.e. '.png' func LoadImageFromMemory(fileType string, fileData []byte, dataSize int32) *Image { var img Image diff --git a/raylib/rtextures.go b/raylib/rtextures.go index 262698d..a2272a3 100644 --- a/raylib/rtextures.go +++ b/raylib/rtextures.go @@ -113,6 +113,18 @@ func LoadImageAnim(fileName string, frames *int32) *Image { return v } +// LoadImageAnimFromMemory - Load image sequence from memory buffer +func LoadImageAnimFromMemory(fileType string, fileData []byte, dataSize int32, frames []int32) *Image { + cfileType := C.CString(fileType) + defer C.free(unsafe.Pointer(cfileType)) + cfileData := (*C.uchar)(unsafe.Pointer(&fileData[0])) + cdataSize := (C.int)(dataSize) + cframes := (*C.int)(unsafe.Pointer(&frames[0])) + ret := C.LoadImageAnimFromMemory(cfileType, cfileData, cdataSize, cframes) + v := newImageFromPointer(unsafe.Pointer(&ret)) + return v +} + // LoadImageFromMemory - Load image from memory buffer, fileType refers to extension: i.e. ".png" func LoadImageFromMemory(fileType string, fileData []byte, dataSize int32) *Image { cfileType := C.CString(fileType)