Add new textures functions
This commit is contained in:
parent
c869c2069e
commit
42fa435e0f
1 changed files with 67 additions and 12 deletions
|
@ -63,6 +63,17 @@ func LoadImageRaw(fileName string, width, height int32, format PixelFormat, head
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LoadImageSvg - Load image from SVG file data or string with specified size
|
||||||
|
func LoadImageSvg(fileNameOrString string, width, height int32) *Image {
|
||||||
|
cfileNameOrString := C.CString(fileNameOrString)
|
||||||
|
defer C.free(unsafe.Pointer(cfileNameOrString))
|
||||||
|
cwidth := (C.int)(width)
|
||||||
|
cheight := (C.int)(height)
|
||||||
|
ret := C.LoadImageSvg(cfileNameOrString, cwidth, cheight)
|
||||||
|
v := newImageFromPointer(unsafe.Pointer(&ret))
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
// 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)
|
||||||
|
@ -84,6 +95,14 @@ func LoadImageFromMemory(fileType string, fileData []byte, dataSize int32) *Imag
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LoadImageFromTexture - Get pixel data from GPU texture and return an Image
|
||||||
|
func LoadImageFromTexture(texture Texture2D) *Image {
|
||||||
|
ctexture := texture.cptr()
|
||||||
|
ret := C.LoadImageFromTexture(*ctexture)
|
||||||
|
v := newImageFromPointer(unsafe.Pointer(&ret))
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
// LoadImageFromScreen - Load image from screen buffer (screenshot)
|
// LoadImageFromScreen - Load image from screen buffer (screenshot)
|
||||||
func LoadImageFromScreen() *Image {
|
func LoadImageFromScreen() *Image {
|
||||||
ret := C.LoadImageFromScreen()
|
ret := C.LoadImageFromScreen()
|
||||||
|
@ -171,14 +190,6 @@ func UnloadImageColors(cols []color.RGBA) {
|
||||||
C.UnloadImageColors((*C.Color)(unsafe.Pointer(&cols[0])))
|
C.UnloadImageColors((*C.Color)(unsafe.Pointer(&cols[0])))
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoadImageFromTexture - Get pixel data from GPU texture and return an Image
|
|
||||||
func LoadImageFromTexture(texture Texture2D) *Image {
|
|
||||||
ctexture := texture.cptr()
|
|
||||||
ret := C.LoadImageFromTexture(*ctexture)
|
|
||||||
v := newImageFromPointer(unsafe.Pointer(&ret))
|
|
||||||
return v
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateTexture - Update GPU texture with new data
|
// UpdateTexture - Update GPU texture with new data
|
||||||
func UpdateTexture(texture Texture2D, pixels []color.RGBA) {
|
func UpdateTexture(texture Texture2D, pixels []color.RGBA) {
|
||||||
ctexture := texture.cptr()
|
ctexture := texture.cptr()
|
||||||
|
@ -195,12 +206,23 @@ func UpdateTextureRec(texture Texture2D, rec Rectangle, pixels []color.RGBA) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExportImage - Export image as a PNG file
|
// ExportImage - Export image as a PNG file
|
||||||
func ExportImage(image Image, name string) {
|
func ExportImage(image Image, fileName string) {
|
||||||
cname := C.CString(name)
|
cfileName := C.CString(fileName)
|
||||||
defer C.free(unsafe.Pointer(cname))
|
defer C.free(unsafe.Pointer(cfileName))
|
||||||
|
cimage := image.cptr()
|
||||||
|
C.ExportImage(*cimage, cfileName)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ExportImageToMemory - Export image to memory buffer
|
||||||
|
func ExportImageToMemory(image Image, fileType string) []byte {
|
||||||
|
cfileType := C.CString(fileType)
|
||||||
|
defer C.free(unsafe.Pointer(cfileType))
|
||||||
cimage := image.cptr()
|
cimage := image.cptr()
|
||||||
|
|
||||||
C.ExportImage(*cimage, cname)
|
var size C.int
|
||||||
|
ret := C.ExportImageToMemory(*cimage, cfileType, &size)
|
||||||
|
v := unsafe.Slice((*byte)(unsafe.Pointer(ret)), size)
|
||||||
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
// ImageCopy - Create an image duplicate (useful for transformations)
|
// ImageCopy - Create an image duplicate (useful for transformations)
|
||||||
|
@ -346,6 +368,13 @@ func ImageFlipHorizontal(image *Image) {
|
||||||
C.ImageFlipHorizontal(cimage)
|
C.ImageFlipHorizontal(cimage)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ImageRotate - Rotate image by input angle in degrees (-359 to 359)
|
||||||
|
func ImageRotate(image *Image, degrees int32) {
|
||||||
|
cimage := image.cptr()
|
||||||
|
cdegrees := (C.int)(degrees)
|
||||||
|
C.ImageRotate(cimage, cdegrees)
|
||||||
|
}
|
||||||
|
|
||||||
// ImageRotateCW - Rotate image clockwise 90deg
|
// ImageRotateCW - Rotate image clockwise 90deg
|
||||||
func ImageRotateCW(image *Image) {
|
func ImageRotateCW(image *Image) {
|
||||||
cimage := image.cptr()
|
cimage := image.cptr()
|
||||||
|
@ -575,6 +604,19 @@ func GenImageColor(width, height int, col color.RGBA) *Image {
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GenImageGradientLinear - Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient
|
||||||
|
func GenImageGradientLinear(width, height, direction int, start, end color.RGBA) *Image {
|
||||||
|
cwidth := (C.int)(width)
|
||||||
|
cheight := (C.int)(height)
|
||||||
|
cdensity := (C.int)(direction)
|
||||||
|
cstart := colorCptr(start)
|
||||||
|
cend := colorCptr(end)
|
||||||
|
|
||||||
|
ret := C.GenImageGradientLinear(cwidth, cheight, cdensity, *cstart, *cend)
|
||||||
|
v := newImageFromPointer(unsafe.Pointer(&ret))
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
// GenImageGradientRadial - Generate image: radial gradient
|
// GenImageGradientRadial - Generate image: radial gradient
|
||||||
func GenImageGradientRadial(width, height int, density float32, inner, outer color.RGBA) *Image {
|
func GenImageGradientRadial(width, height int, density float32, inner, outer color.RGBA) *Image {
|
||||||
cwidth := (C.int)(width)
|
cwidth := (C.int)(width)
|
||||||
|
@ -588,6 +630,19 @@ func GenImageGradientRadial(width, height int, density float32, inner, outer col
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GenImageGradientSquare - Generate image: square gradient
|
||||||
|
func GenImageGradientSquare(width, height int, density float32, inner, outer color.RGBA) *Image {
|
||||||
|
cwidth := (C.int)(width)
|
||||||
|
cheight := (C.int)(height)
|
||||||
|
cdensity := (C.float)(density)
|
||||||
|
cinner := colorCptr(inner)
|
||||||
|
couter := colorCptr(outer)
|
||||||
|
|
||||||
|
ret := C.GenImageGradientSquare(cwidth, cheight, cdensity, *cinner, *couter)
|
||||||
|
v := newImageFromPointer(unsafe.Pointer(&ret))
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
// GenImageChecked - Generate image: checked
|
// GenImageChecked - Generate image: checked
|
||||||
func GenImageChecked(width, height, checksX, checksY int, col1, col2 color.RGBA) *Image {
|
func GenImageChecked(width, height, checksX, checksY int, col1, col2 color.RGBA) *Image {
|
||||||
cwidth := (C.int)(width)
|
cwidth := (C.int)(width)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue