Move functions

This commit is contained in:
Milan Nikolic 2023-11-09 08:55:58 +01:00
parent 9f257fc589
commit f953e65a3a
No known key found for this signature in database
GPG key ID: 9229D0EAA3AA4E75
6 changed files with 184 additions and 215 deletions

View file

@ -12,6 +12,11 @@ import (
"unsafe"
)
// newImageFromPointer - Returns new Image from pointer
func newImageFromPointer(ptr unsafe.Pointer) *Image {
return (*Image)(ptr)
}
// cptr returns C pointer
func (i *Image) cptr() *C.Image {
return (*C.Image)(unsafe.Pointer(i))
@ -31,16 +36,51 @@ func (i *Image) ToImage() image.Image {
return img
}
// newTexture2DFromPointer - Returns new Texture2D from pointer
func newTexture2DFromPointer(ptr unsafe.Pointer) Texture2D {
return *(*Texture2D)(ptr)
}
// cptr returns C pointer
func (t *Texture2D) cptr() *C.Texture2D {
return (*C.Texture2D)(unsafe.Pointer(t))
}
// newRenderTexture2DFromPointer - Returns new RenderTexture2D from pointer
func newRenderTexture2DFromPointer(ptr unsafe.Pointer) RenderTexture2D {
return *(*RenderTexture2D)(ptr)
}
// cptr returns C pointer
func (r *RenderTexture2D) cptr() *C.RenderTexture2D {
return (*C.RenderTexture2D)(unsafe.Pointer(r))
}
// NewImageFromImage - Returns new Image from Go image.Image
func NewImageFromImage(img image.Image) *Image {
size := img.Bounds().Size()
cx := (C.int)(size.X)
cy := (C.int)(size.Y)
ccolor := colorCptr(White)
ret := C.GenImageColor(cx, cy, *ccolor)
for y := 0; y < size.Y; y++ {
for x := 0; x < size.X; x++ {
color := img.At(x, y)
r, g, b, a := color.RGBA()
rcolor := NewColor(uint8(r), uint8(g), uint8(b), uint8(a))
ccolor = colorCptr(rcolor)
cx = (C.int)(x)
cy = (C.int)(y)
C.ImageDrawPixel(&ret, cx, cy, *ccolor)
}
}
v := newImageFromPointer(unsafe.Pointer(&ret))
return v
}
// LoadImage - Load an image into CPU memory (RAM)
func LoadImage(fileName string) *Image {
cfileName := C.CString(fileName)