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
|
||||
}
|
||||
|
||||
// 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)
|
||||
func LoadImageAnim(fileName string, frames *int32) *Image {
|
||||
cfileName := C.CString(fileName)
|
||||
|
@ -84,6 +95,14 @@ func LoadImageFromMemory(fileType string, fileData []byte, dataSize int32) *Imag
|
|||
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)
|
||||
func LoadImageFromScreen() *Image {
|
||||
ret := C.LoadImageFromScreen()
|
||||
|
@ -171,14 +190,6 @@ func UnloadImageColors(cols []color.RGBA) {
|
|||
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
|
||||
func UpdateTexture(texture Texture2D, pixels []color.RGBA) {
|
||||
ctexture := texture.cptr()
|
||||
|
@ -195,12 +206,23 @@ func UpdateTextureRec(texture Texture2D, rec Rectangle, pixels []color.RGBA) {
|
|||
}
|
||||
|
||||
// ExportImage - Export image as a PNG file
|
||||
func ExportImage(image Image, name string) {
|
||||
cname := C.CString(name)
|
||||
defer C.free(unsafe.Pointer(cname))
|
||||
func ExportImage(image Image, fileName string) {
|
||||
cfileName := C.CString(fileName)
|
||||
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()
|
||||
|
||||
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)
|
||||
|
@ -346,6 +368,13 @@ func ImageFlipHorizontal(image *Image) {
|
|||
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
|
||||
func ImageRotateCW(image *Image) {
|
||||
cimage := image.cptr()
|
||||
|
@ -575,6 +604,19 @@ func GenImageColor(width, height int, col color.RGBA) *Image {
|
|||
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
|
||||
func GenImageGradientRadial(width, height int, density float32, inner, outer color.RGBA) *Image {
|
||||
cwidth := (C.int)(width)
|
||||
|
@ -588,6 +630,19 @@ func GenImageGradientRadial(width, height int, density float32, inner, outer col
|
|||
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
|
||||
func GenImageChecked(width, height, checksX, checksY int, col1, col2 color.RGBA) *Image {
|
||||
cwidth := (C.int)(width)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue