LoadImageAnim functions: frames is a pointer, not a slice

This commit is contained in:
JupiterRider 2024-11-24 16:44:22 +01:00
parent ffc0ab4fc6
commit d054bd9043
2 changed files with 8 additions and 8 deletions

View file

@ -256,8 +256,8 @@ var checkCollisionPointLine func(point uintptr, p1 uintptr, p2 uintptr, threshol
var getCollisionRec func(rec uintptr, rec1 uintptr, rec2 uintptr) var getCollisionRec func(rec uintptr, rec1 uintptr, rec2 uintptr)
var loadImage func(img uintptr, fileName string) var loadImage func(img uintptr, fileName string)
var loadImageRaw func(img uintptr, fileName string, width int32, height int32, format int32, headerSize int32) 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 loadImageAnim func(img uintptr, fileName string, frames *int32)
var loadImageAnimFromMemory func(img uintptr, fileType string, fileData []byte, dataSize int32, 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 loadImageFromMemory func(img uintptr, fileType string, fileData []byte, dataSize int32)
var loadImageFromTexture func(img uintptr, texture uintptr) var loadImageFromTexture func(img uintptr, texture uintptr)
var loadImageFromScreen func(img uintptr) var loadImageFromScreen func(img uintptr)
@ -2363,14 +2363,14 @@ func LoadImageRaw(fileName string, width int32, height int32, format PixelFormat
} }
// LoadImageAnim - Load image sequence from file (frames appended to image.data) // LoadImageAnim - Load image sequence from file (frames appended to image.data)
func LoadImageAnim(fileName string, frames []int32) *Image { func LoadImageAnim(fileName string, frames *int32) *Image {
var img Image var img Image
loadImageAnim(uintptr(unsafe.Pointer(&img)), fileName, frames) loadImageAnim(uintptr(unsafe.Pointer(&img)), fileName, frames)
return &img return &img
} }
// LoadImageAnimFromMemory - Load image sequence from memory buffer // LoadImageAnimFromMemory - Load image sequence from memory buffer
func LoadImageAnimFromMemory(fileType string, fileData []byte, dataSize int32, frames []int32) *Image { func LoadImageAnimFromMemory(fileType string, fileData []byte, dataSize int32, frames *int32) *Image {
var img Image var img Image
loadImageAnimFromMemory(uintptr(unsafe.Pointer(&img)), fileType, fileData, dataSize, frames) loadImageAnimFromMemory(uintptr(unsafe.Pointer(&img)), fileType, fileData, dataSize, frames)
return &img return &img

View file

@ -104,22 +104,22 @@ func LoadImageRaw(fileName string, width, height int32, format PixelFormat, head
} }
// LoadImageAnim - Load image sequence from file (frames appended to image.data) // LoadImageAnim - Load image sequence from file (frames appended to image.data)
func LoadImageAnim(fileName string, frames []int32) *Image { func LoadImageAnim(fileName string, frames *int32) *Image {
cfileName := C.CString(fileName) cfileName := C.CString(fileName)
defer C.free(unsafe.Pointer(cfileName)) defer C.free(unsafe.Pointer(cfileName))
cframes := (*C.int)(unsafe.Pointer(&frames[0])) cframes := (*C.int)(frames)
ret := C.LoadImageAnim(cfileName, cframes) ret := C.LoadImageAnim(cfileName, cframes)
v := newImageFromPointer(unsafe.Pointer(&ret)) v := newImageFromPointer(unsafe.Pointer(&ret))
return v return v
} }
// LoadImageAnimFromMemory - Load image sequence from memory buffer // LoadImageAnimFromMemory - Load image sequence from memory buffer
func LoadImageAnimFromMemory(fileType string, fileData []byte, dataSize int32, frames []int32) *Image { func LoadImageAnimFromMemory(fileType string, fileData []byte, dataSize int32, frames *int32) *Image {
cfileType := C.CString(fileType) cfileType := C.CString(fileType)
defer C.free(unsafe.Pointer(cfileType)) defer C.free(unsafe.Pointer(cfileType))
cfileData := (*C.uchar)(unsafe.Pointer(&fileData[0])) cfileData := (*C.uchar)(unsafe.Pointer(&fileData[0]))
cdataSize := (C.int)(dataSize) cdataSize := (C.int)(dataSize)
cframes := (*C.int)(unsafe.Pointer(&frames[0])) cframes := (*C.int)(frames)
ret := C.LoadImageAnimFromMemory(cfileType, cfileData, cdataSize, cframes) ret := C.LoadImageAnimFromMemory(cfileType, cfileData, cdataSize, cframes)
v := newImageFromPointer(unsafe.Pointer(&ret)) v := newImageFromPointer(unsafe.Pointer(&ret))
return v return v