Change functions to match with raylib-go (cgo version)

This commit is contained in:
JupiterRider 2023-11-16 14:35:55 +01:00
parent 81be9a803b
commit 3219556f38

View file

@ -4,6 +4,7 @@
package rl package rl
import ( import (
"image"
"image/color" "image/color"
"unsafe" "unsafe"
@ -1277,23 +1278,23 @@ func GetWindowHandle() unsafe.Pointer {
} }
// GetScreenWidth - Get current screen width // GetScreenWidth - Get current screen width
func GetScreenWidth() int32 { func GetScreenWidth() int {
return getScreenWidth() return int(getScreenWidth())
} }
// GetScreenHeight - Get current screen height // GetScreenHeight - Get current screen height
func GetScreenHeight() int32 { func GetScreenHeight() int {
return getScreenHeight() return int(getScreenHeight())
} }
// GetRenderWidth - Get current render width (it considers HiDPI) // GetRenderWidth - Get current render width (it considers HiDPI)
func GetRenderWidth() int32 { func GetRenderWidth() int {
return getRenderWidth() return int(getRenderWidth())
} }
// GetRenderHeight - Get current render height (it considers HiDPI) // GetRenderHeight - Get current render height (it considers HiDPI)
func GetRenderHeight() int32 { func GetRenderHeight() int {
return getRenderHeight() return int(getRenderHeight())
} }
// GetMonitorCount - Get number of connected monitors // GetMonitorCount - Get number of connected monitors
@ -1460,8 +1461,8 @@ func EndShaderMode() {
} }
// BeginBlendMode - Begin blending mode (alpha, additive, multiplied, subtract, custom) // BeginBlendMode - Begin blending mode (alpha, additive, multiplied, subtract, custom)
func BeginBlendMode(mode int32) { func BeginBlendMode(mode BlendMode) {
beginBlendMode(mode) beginBlendMode(int32(mode))
} }
// EndBlendMode - End blending mode (reset to default: alpha blending) // EndBlendMode - End blending mode (reset to default: alpha blending)
@ -1527,8 +1528,8 @@ func GetShaderLocationAttrib(shader Shader, attribName string) int32 {
} }
// SetShaderValue - Set shader uniform value // SetShaderValue - Set shader uniform value
func SetShaderValue(shader Shader, locIndex int32, value []float32, uniformType int32) { func SetShaderValue(shader Shader, locIndex int32, value []float32, uniformType ShaderUniformDataType) {
setShaderValue(uintptr(unsafe.Pointer(&shader)), locIndex, value, uniformType) setShaderValue(uintptr(unsafe.Pointer(&shader)), locIndex, value, int32(uniformType))
} }
// SetShaderValueV - Set shader uniform value vector // SetShaderValueV - Set shader uniform value vector
@ -1674,8 +1675,8 @@ func OpenURL(url string) {
} }
// TraceLog - Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...) // TraceLog - Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...)
func TraceLog(logLevel int32, text string, args ...any) { func TraceLog(logLevel TraceLogLevel, text string, args ...any) {
traceLog(logLevel, text, args...) traceLog(int32(logLevel), text, args...)
} }
// SetTraceLogLevel - Set the current threshold (minimum) log level // SetTraceLogLevel - Set the current threshold (minimum) log level
@ -1843,8 +1844,8 @@ func LoadDroppedFiles() []string {
return gostrings return gostrings
} }
// // UnloadDroppedFiles - Unload dropped filepaths // UnloadDroppedFiles - Unload dropped filepaths
// func UnloadDroppedFiles(files FilePathList) {} func UnloadDroppedFiles() {}
// // GetFileModTime - Get file modification time (last write time) // // GetFileModTime - Get file modification time (last write time)
// func GetFileModTime(fileName string) int64 {} // func GetFileModTime(fileName string) int64 {}
@ -2098,13 +2099,13 @@ func SetGesturesEnabled(flags uint32) {
} }
// IsGestureDetected - Check if a gesture have been detected // IsGestureDetected - Check if a gesture have been detected
func IsGestureDetected(gesture uint32) bool { func IsGestureDetected(gesture Gestures) bool {
return isGestureDetected(gesture) return isGestureDetected(uint32(gesture))
} }
// GetGestureDetected - Get latest detected gesture // GetGestureDetected - Get latest detected gesture
func GetGestureDetected() int32 { func GetGestureDetected() Gestures {
return getGestureDetected() return Gestures(getGestureDetected())
} }
// GetGestureHoldDuration - Get gesture hold time in milliseconds // GetGestureHoldDuration - Get gesture hold time in milliseconds
@ -2467,17 +2468,17 @@ func GetCollisionRec(rec1 Rectangle, rec2 Rectangle) Rectangle {
} }
// LoadImage - Load image from file into CPU memory (RAM) // LoadImage - Load image from file into CPU memory (RAM)
func LoadImage(fileName string) Image { func LoadImage(fileName string) *Image {
var img Image var img Image
loadImage(uintptr(unsafe.Pointer(&img)), fileName) loadImage(uintptr(unsafe.Pointer(&img)), fileName)
return img return &img
} }
// LoadImageRaw - Load image from RAW file data // LoadImageRaw - Load image from RAW file data
func LoadImageRaw(fileName string, width int32, height int32, format int32, headerSize int32) Image { func LoadImageRaw(fileName string, width int32, height int32, format PixelFormat, headerSize int32) *Image {
var img Image var img Image
loadImageRaw(uintptr(unsafe.Pointer(&img)), fileName, width, height, format, headerSize) loadImageRaw(uintptr(unsafe.Pointer(&img)), fileName, width, height, int32(format), headerSize)
return img return &img
} }
// LoadImageSvg - Load image from SVG file data or string with specified size // LoadImageSvg - Load image from SVG file data or string with specified size
@ -2502,10 +2503,10 @@ func LoadImageFromMemory(fileType string, fileData []byte, dataSize int32) Image
} }
// LoadImageFromTexture - Load image from GPU texture data // LoadImageFromTexture - Load image from GPU texture data
func LoadImageFromTexture(texture Texture2D) Image { func LoadImageFromTexture(texture Texture2D) *Image {
var img Image var img Image
loadImageFromTexture(uintptr(unsafe.Pointer(&img)), uintptr(unsafe.Pointer(&texture))) loadImageFromTexture(uintptr(unsafe.Pointer(&img)), uintptr(unsafe.Pointer(&texture)))
return img return &img
} }
// LoadImageFromScreen - Load image from screen buffer and (screenshot) // LoadImageFromScreen - Load image from screen buffer and (screenshot)
@ -2521,8 +2522,8 @@ func IsImageReady(image Image) bool {
} }
// UnloadImage - Unload image from CPU memory (RAM) // UnloadImage - Unload image from CPU memory (RAM)
func UnloadImage(image Image) { func UnloadImage(image *Image) {
unloadImage(uintptr(unsafe.Pointer(&image))) unloadImage(uintptr(unsafe.Pointer(image)))
} }
// ExportImage - Export image data to file, returns true on success // ExportImage - Export image data to file, returns true on success
@ -2543,24 +2544,24 @@ func ExportImageAsCode(image Image, fileName string) bool {
} }
// GenImageColor - Generate image: plain color // GenImageColor - Generate image: plain color
func GenImageColor(width int32, height int32, col color.RGBA) Image { func GenImageColor(width int, height int, col color.RGBA) *Image {
var image Image var image Image
genImageColor(uintptr(unsafe.Pointer(&image)), width, height, *(*uintptr)(unsafe.Pointer(&col))) genImageColor(uintptr(unsafe.Pointer(&image)), int32(width), int32(height), *(*uintptr)(unsafe.Pointer(&col)))
return image return &image
} }
// GenImageGradientLinear - Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient // GenImageGradientLinear - Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient
func GenImageGradientLinear(width int32, height int32, direction int32, start color.RGBA, end color.RGBA) Image { func GenImageGradientLinear(width int, height int, direction int, start color.RGBA, end color.RGBA) *Image {
var image Image var image Image
genImageGradientLinear(uintptr(unsafe.Pointer(&image)), width, height, direction, *(*uintptr)(unsafe.Pointer(&start)), *(*uintptr)(unsafe.Pointer(&end))) genImageGradientLinear(uintptr(unsafe.Pointer(&image)), int32(width), int32(height), int32(direction), *(*uintptr)(unsafe.Pointer(&start)), *(*uintptr)(unsafe.Pointer(&end)))
return image return &image
} }
// GenImageGradientRadial - Generate image: radial gradient // GenImageGradientRadial - Generate image: radial gradient
func GenImageGradientRadial(width int32, height int32, density float32, inner color.RGBA, outer color.RGBA) Image { func GenImageGradientRadial(width int, height int, density float32, inner color.RGBA, outer color.RGBA) *Image {
var image Image var image Image
genImageGradientRadial(uintptr(unsafe.Pointer(&image)), width, height, density, *(*uintptr)(unsafe.Pointer(&inner)), *(*uintptr)(unsafe.Pointer(&outer))) genImageGradientRadial(uintptr(unsafe.Pointer(&image)), int32(width), int32(height), density, *(*uintptr)(unsafe.Pointer(&inner)), *(*uintptr)(unsafe.Pointer(&outer)))
return image return &image
} }
// GenImageGradientSquare - Generate image: square gradient // GenImageGradientSquare - Generate image: square gradient
@ -2571,17 +2572,17 @@ func GenImageGradientSquare(width int32, height int32, density float32, inner co
} }
// GenImageChecked - Generate image: checked // GenImageChecked - Generate image: checked
func GenImageChecked(width int32, height int32, checksX int32, checksY int32, col1 color.RGBA, col2 color.RGBA) Image { func GenImageChecked(width int, height int, checksX int, checksY int, col1 color.RGBA, col2 color.RGBA) *Image {
var image Image var image Image
genImageChecked(uintptr(unsafe.Pointer(&image)), width, height, checksX, checksY, *(*uintptr)(unsafe.Pointer(&col1)), *(*uintptr)(unsafe.Pointer(&col2))) genImageChecked(uintptr(unsafe.Pointer(&image)), int32(width), int32(height), int32(checksX), int32(checksY), *(*uintptr)(unsafe.Pointer(&col1)), *(*uintptr)(unsafe.Pointer(&col2)))
return image return &image
} }
// GenImageWhiteNoise - Generate image: white noise // GenImageWhiteNoise - Generate image: white noise
func GenImageWhiteNoise(width int32, height int32, factor float32) Image { func GenImageWhiteNoise(width int, height int, factor float32) *Image {
var image Image var image Image
genImageWhiteNoise(uintptr(unsafe.Pointer(&image)), width, height, factor) genImageWhiteNoise(uintptr(unsafe.Pointer(&image)), int32(width), int32(height), factor)
return image return &image
} }
// GenImagePerlinNoise - Generate image: perlin noise // GenImagePerlinNoise - Generate image: perlin noise
@ -2592,10 +2593,10 @@ func GenImagePerlinNoise(width int32, height int32, offsetX int32, offsetY int32
} }
// GenImageCellular - Generate image: cellular algorithm, bigger tileSize means bigger cells // GenImageCellular - Generate image: cellular algorithm, bigger tileSize means bigger cells
func GenImageCellular(width int32, height int32, tileSize int32) Image { func GenImageCellular(width int, height int, tileSize int32) *Image {
var image Image var image Image
genImageCellular(uintptr(unsafe.Pointer(&image)), width, height, tileSize) genImageCellular(uintptr(unsafe.Pointer(&image)), int32(width), int32(height), tileSize)
return image return &image
} }
// GenImageText - Generate image: grayscale image from text data // GenImageText - Generate image: grayscale image from text data
@ -2634,8 +2635,8 @@ func ImageTextEx(font Font, text string, fontSize float32, spacing float32, tint
} }
// ImageFormat - Convert image data to desired format // ImageFormat - Convert image data to desired format
func ImageFormat(image *Image, newFormat int32) { func ImageFormat(image *Image, newFormat PixelFormat) {
imageFormat(image, newFormat) imageFormat(image, int32(newFormat))
} }
// ImageToPOT - Convert image to POT (power-of-two) // ImageToPOT - Convert image to POT (power-of-two)
@ -2756,8 +2757,8 @@ func ImageColorReplace(image *Image, col color.RGBA, replace color.RGBA) {
// LoadImageColors - Load color data from image as a Color array (RGBA - 32bit) // LoadImageColors - Load color data from image as a Color array (RGBA - 32bit)
// //
// NOTE: Memory allocated should be freed using UnloadImageColors() // NOTE: Memory allocated should be freed using UnloadImageColors()
func LoadImageColors(image Image) []color.RGBA { func LoadImageColors(image *Image) []color.RGBA {
ret := loadImageColors(uintptr(unsafe.Pointer(&image))) ret := loadImageColors(uintptr(unsafe.Pointer(image)))
return unsafe.Slice(ret, image.Width*image.Height) return unsafe.Slice(ret, image.Width*image.Height)
} }
@ -2859,8 +2860,8 @@ func ImageDrawRectangleLines(dst *Image, rec Rectangle, thick int32, col color.R
} }
// ImageDraw - Draw a source image within a destination image (tint applied to source) // ImageDraw - Draw a source image within a destination image (tint applied to source)
func ImageDraw(dst *Image, src Image, srcRec Rectangle, dstRec Rectangle, tint color.RGBA) { func ImageDraw(dst *Image, src *Image, srcRec Rectangle, dstRec Rectangle, tint color.RGBA) {
imageDraw(dst, uintptr(unsafe.Pointer(&src)), uintptr(unsafe.Pointer(&srcRec)), uintptr(unsafe.Pointer(&dstRec)), *(*uintptr)(unsafe.Pointer(&tint))) imageDraw(dst, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(&srcRec)), uintptr(unsafe.Pointer(&dstRec)), *(*uintptr)(unsafe.Pointer(&tint)))
} }
// ImageDrawText - Draw text (using default font) within an image (destination) // ImageDrawText - Draw text (using default font) within an image (destination)
@ -2870,7 +2871,7 @@ func ImageDrawText(dst *Image, text string, posX int32, posY int32, fontSize int
} }
// ImageDrawTextEx - Draw text (custom sprite font) within an image (destination) // ImageDrawTextEx - Draw text (custom sprite font) within an image (destination)
func ImageDrawTextEx(dst *Image, font Font, text string, position Vector2, fontSize float32, spacing float32, tint color.RGBA) { func ImageDrawTextEx(dst *Image, position Vector2, font Font, text string, fontSize float32, spacing float32, tint color.RGBA) {
imageDrawTextEx(dst, uintptr(unsafe.Pointer(&font)), text, *(*uintptr)(unsafe.Pointer(&position)), fontSize, spacing, *(*uintptr)(unsafe.Pointer(&tint))) imageDrawTextEx(dst, uintptr(unsafe.Pointer(&font)), text, *(*uintptr)(unsafe.Pointer(&position)), fontSize, spacing, *(*uintptr)(unsafe.Pointer(&tint)))
} }
@ -2882,9 +2883,9 @@ func LoadTexture(fileName string) Texture2D {
} }
// LoadTextureFromImage - Load texture from image data // LoadTextureFromImage - Load texture from image data
func LoadTextureFromImage(image Image) Texture2D { func LoadTextureFromImage(image *Image) Texture2D {
var texture Texture2D var texture Texture2D
loadTextureFromImage(uintptr(unsafe.Pointer(&texture)), uintptr(unsafe.Pointer(&image))) loadTextureFromImage(uintptr(unsafe.Pointer(&texture)), uintptr(unsafe.Pointer(image)))
return texture return texture
} }
@ -2938,8 +2939,8 @@ func GenTextureMipmaps(texture *Texture2D) {
} }
// SetTextureFilter - Set texture scaling filter mode // SetTextureFilter - Set texture scaling filter mode
func SetTextureFilter(texture Texture2D, filter int32) { func SetTextureFilter(texture Texture2D, filter TextureFilterMode) {
setTextureFilter(uintptr(unsafe.Pointer(&texture)), filter) setTextureFilter(uintptr(unsafe.Pointer(&texture)), int32(filter))
} }
// SetTextureWrap - Set texture wrapping mode // SetTextureWrap - Set texture wrapping mode
@ -4099,3 +4100,38 @@ func DetachAudioMixedProcessor(processor AudioCallback) {
}) })
detachAudioMixedProcessor(fn) detachAudioMixedProcessor(fn)
} }
// SetCallbackFunc - Sets callback function
func SetCallbackFunc(func()) {
}
// NewImageFromImage - Returns new Image from Go image.Image
func NewImageFromImage(img image.Image) *Image {
size := img.Bounds().Size()
ret := GenImageColor(size.X, size.Y, White)
for y := 0; y < size.Y; y++ {
for x := 0; x < size.X; x++ {
col := img.At(x, y)
r, g, b, a := col.RGBA()
rcolor := NewColor(uint8(r), uint8(g), uint8(b), uint8(a))
ImageDrawPixel(ret, int32(x), int32(y), rcolor)
}
}
return ret
}
// ToImage converts a Image to Go image.Image
func (i *Image) ToImage() image.Image {
img := image.NewRGBA(image.Rect(0, 0, int(i.Width), int(i.Height)))
// Get pixel data from image (RGBA 32bit)
ret := LoadImageColors(i)
pixels := (*[1 << 24]uint8)(unsafe.Pointer(unsafe.SliceData(ret)))[0 : i.Width*i.Height*4]
img.Pix = pixels
return img
}