Add new functions
This commit is contained in:
parent
a9172dcaf0
commit
6cfece1e81
2 changed files with 78 additions and 31 deletions
100
raylib/core.go
100
raylib/core.go
|
@ -20,6 +20,11 @@ func (v *Vector3) cptr() *C.Vector3 {
|
||||||
return (*C.Vector3)(unsafe.Pointer(v))
|
return (*C.Vector3)(unsafe.Pointer(v))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// cptr returns C pointer
|
||||||
|
func (v *Vector4) cptr() *C.Vector4 {
|
||||||
|
return (*C.Vector4)(unsafe.Pointer(v))
|
||||||
|
}
|
||||||
|
|
||||||
// cptr returns C pointer
|
// cptr returns C pointer
|
||||||
func (m *Matrix) cptr() *C.Matrix {
|
func (m *Matrix) cptr() *C.Matrix {
|
||||||
return (*C.Matrix)(unsafe.Pointer(m))
|
return (*C.Matrix)(unsafe.Pointer(m))
|
||||||
|
@ -445,10 +450,11 @@ func GetTime() float32 {
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetColor - Returns a Color struct from hexadecimal value
|
// Fade - Returns color with alpha applied, alpha goes from 0.0f to 1.0f
|
||||||
func GetColor(hexValue int32) Color {
|
func Fade(color Color, alpha float32) Color {
|
||||||
chexValue := (C.int)(hexValue)
|
ccolor := color.cptr()
|
||||||
ret := C.GetColor(chexValue)
|
calpha := (C.float)(alpha)
|
||||||
|
ret := C.Fade(*ccolor, calpha)
|
||||||
v := newColorFromPointer(unsafe.Pointer(&ret))
|
v := newColorFromPointer(unsafe.Pointer(&ret))
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
@ -461,15 +467,6 @@ func ColorToInt(color Color) int32 {
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
// ColorToHSV - Returns HSV values for a Color
|
|
||||||
// NOTE: Hue is returned as degrees [0..360]
|
|
||||||
func ColorToHSV(color Color) Vector3 {
|
|
||||||
ccolor := color.cptr()
|
|
||||||
ret := C.ColorToHSV(*ccolor)
|
|
||||||
v := newVector3FromPointer(unsafe.Pointer(&ret))
|
|
||||||
return v
|
|
||||||
}
|
|
||||||
|
|
||||||
// ColorNormalize - Returns color normalized as float [0..1]
|
// ColorNormalize - Returns color normalized as float [0..1]
|
||||||
func ColorNormalize(color Color) Vector4 {
|
func ColorNormalize(color Color) Vector4 {
|
||||||
result := Vector4{}
|
result := Vector4{}
|
||||||
|
@ -481,6 +478,65 @@ func ColorNormalize(color Color) Vector4 {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ColorFromNormalized - Returns Color from normalized values [0..1]
|
||||||
|
func ColorFromNormalized(normalized Vector4) Color {
|
||||||
|
cnormalized := normalized.cptr()
|
||||||
|
ret := C.ColorFromNormalized(*cnormalized)
|
||||||
|
v := newColorFromPointer(unsafe.Pointer(&ret))
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
|
// ColorToHSV - Returns HSV values for a Color, hue [0..360], saturation/value [0..1]
|
||||||
|
func ColorToHSV(color Color) Vector3 {
|
||||||
|
ccolor := color.cptr()
|
||||||
|
ret := C.ColorToHSV(*ccolor)
|
||||||
|
v := newVector3FromPointer(unsafe.Pointer(&ret))
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
|
// ColorFromHSV - Returns a Color from HSV values, hue [0..360], saturation/value [0..1]
|
||||||
|
func ColorFromHSV(hue, saturation, value float32) Color {
|
||||||
|
chue := (C.float)(hue)
|
||||||
|
csaturation := (C.float)(saturation)
|
||||||
|
cvalue := (C.float)(value)
|
||||||
|
ret := C.ColorFromHSV(chue, csaturation, cvalue)
|
||||||
|
v := newColorFromPointer(unsafe.Pointer(&ret))
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
|
// ColorAlpha - Returns color with alpha applied, alpha goes from 0.0f to 1.0f
|
||||||
|
func ColorAlpha(color Color, alpha float32) Color {
|
||||||
|
return Fade(color, alpha)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ColorAlphaBlend - Returns src alpha-blended into dst color with tint
|
||||||
|
func ColorAlphaBlend(src, dst, tint Color) Color {
|
||||||
|
csrc := src.cptr()
|
||||||
|
cdst := dst.cptr()
|
||||||
|
ctint := tint.cptr()
|
||||||
|
ret := C.ColorAlphaBlend(*csrc, *cdst, *ctint)
|
||||||
|
v := newColorFromPointer(unsafe.Pointer(&ret))
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetColor - Returns a Color struct from hexadecimal value
|
||||||
|
func GetColor(hexValue int32) Color {
|
||||||
|
chexValue := (C.int)(hexValue)
|
||||||
|
ret := C.GetColor(chexValue)
|
||||||
|
v := newColorFromPointer(unsafe.Pointer(&ret))
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPixelDataSize - Get pixel data size in bytes for certain format
|
||||||
|
func GetPixelDataSize(width, height, format int32) int32 {
|
||||||
|
cwidth := (C.int)(width)
|
||||||
|
cheight := (C.int)(height)
|
||||||
|
cformat := (C.int)(format)
|
||||||
|
ret := C.GetPixelDataSize(cwidth, cheight, cformat)
|
||||||
|
v := (int32)(ret)
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
// Vector3ToFloat - Converts Vector3 to float32 slice
|
// Vector3ToFloat - Converts Vector3 to float32 slice
|
||||||
func Vector3ToFloat(vec Vector3) []float32 {
|
func Vector3ToFloat(vec Vector3) []float32 {
|
||||||
data := make([]float32, 0)
|
data := make([]float32, 0)
|
||||||
|
@ -524,15 +580,6 @@ func GetRandomValue(min, max int32) int32 {
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fade - Color fade-in or fade-out, alpha goes from 0.0f to 1.0f
|
|
||||||
func Fade(color Color, alpha float32) Color {
|
|
||||||
ccolor := color.cptr()
|
|
||||||
calpha := (C.float)(alpha)
|
|
||||||
ret := C.Fade(*ccolor, calpha)
|
|
||||||
v := newColorFromPointer(unsafe.Pointer(&ret))
|
|
||||||
return v
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetConfigFlags - Setup some window configuration flags
|
// SetConfigFlags - Setup some window configuration flags
|
||||||
func SetConfigFlags(flags byte) {
|
func SetConfigFlags(flags byte) {
|
||||||
cflags := (C.uint)(flags)
|
cflags := (C.uint)(flags)
|
||||||
|
@ -692,6 +739,15 @@ func GetGamepadAxisMovement(gamepad, axis int32) float32 {
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetGamepadMappings - Set internal gamepad mappings (SDL_GameControllerDB)
|
||||||
|
func SetGamepadMapping(mappings string) int32 {
|
||||||
|
cmappings := C.CString(mappings)
|
||||||
|
defer C.free(unsafe.Pointer(cmappings))
|
||||||
|
ret := C.SetGamepadMappings(cmappings)
|
||||||
|
v := (int32)(ret)
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
// IsMouseButtonPressed - Detect if a mouse button has been pressed once
|
// IsMouseButtonPressed - Detect if a mouse button has been pressed once
|
||||||
func IsMouseButtonPressed(button int32) bool {
|
func IsMouseButtonPressed(button int32) bool {
|
||||||
cbutton := (C.int)(button)
|
cbutton := (C.int)(button)
|
||||||
|
|
|
@ -123,15 +123,6 @@ func GetImageData(img *Image) []Color {
|
||||||
return (*[1 << 24]Color)(unsafe.Pointer(ret))[0 : img.Width*img.Height]
|
return (*[1 << 24]Color)(unsafe.Pointer(ret))[0 : img.Width*img.Height]
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPixelDataSize - Get pixel data size in bytes (image or texture)
|
|
||||||
func GetPixelDataSize(width, height, format int32) int32 {
|
|
||||||
cwidth := (C.int)(width)
|
|
||||||
cheight := (C.int)(height)
|
|
||||||
cformat := (C.int)(format)
|
|
||||||
ret := C.GetPixelDataSize(cwidth, cheight, cformat)
|
|
||||||
return int32(ret)
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetTextureData - Get pixel data from GPU texture and return an Image
|
// GetTextureData - Get pixel data from GPU texture and return an Image
|
||||||
func GetTextureData(texture Texture2D) *Image {
|
func GetTextureData(texture Texture2D) *Image {
|
||||||
ctexture := texture.cptr()
|
ctexture := texture.cptr()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue