rl bindings complete for current supported lang features

This commit is contained in:
nub31
2025-09-28 21:57:50 +02:00
parent 4bba6fdce3
commit a2bdf47f5d

View File

@@ -237,12 +237,12 @@ export struct MaterialMap
value: f32
}
// export struct Material
// {
// shader: Shader
// maps: ^MaterialMap
// params: [4]float
// }
export struct Material
{
shader: Shader
maps: ^MaterialMap
// params: [4]float
}
export struct Transform
{
@@ -251,35 +251,35 @@ export struct Transform
scale: Vector3
}
// export struct BoneInfo
// {
// name: [32]u8
// parent: i32
// }
export struct BoneInfo
{
// name: [32]u8
parent: i32
}
// export struct Model
// {
// transform: Matrix
export struct Model
{
transform: Matrix
// meshCount: i32
// materialCount: i32
// meshes: ^Mesh
// materials: ^Material
// meshMaterial: ^i32
meshCount: i32
materialCount: i32
meshes: ^Mesh
materials: ^Material
meshMaterial: ^i32
// boneCount: i32
// bones: ^BoneInfo
// bindPose: ^Transform
// }
boneCount: i32
bones: ^BoneInfo
bindPose: ^Transform
}
// export struct ModelAnimation
// {
// boneCount: i32
// frameCount: i32
// bones: ^BoneInfo
// framePoses: ^^Transform
// name: [32]u8
// }
export struct ModelAnimation
{
boneCount: i32
frameCount: i32
bones: ^BoneInfo
framePoses: ^^Transform
// name: [32]u8
}
export struct Ray
{
@@ -301,91 +301,86 @@ export struct BoundingBox
max: Vector3
}
// export struct Wave
// {
// frameCount: u32;
// sampleRate: u32;
// sampleSize: u32;
// channels: u32;
// data: ^void;
// }
export struct Wave
{
frameCount: u32
sampleRate: u32
sampleSize: u32
channels: u32
data: ^void
}
// // Opaque structs declaration
// // NOTE: Actual structs are defined internally in raudio module
// typedef struct rAudioBuffer rAudioBuffer;
// typedef struct rAudioProcessor rAudioProcessor;
export struct AudioStream
{
buffer: ^void
processor: ^void
// // AudioStream, custom audio stream
// typedef struct AudioStream {
// rAudioBuffer *buffer; // Pointer to internal data used by the audio system
// rAudioProcessor *processor; // Pointer to internal data processor, useful for audio effects
sampleRate: u32
sampleSize: u32
channels: u32
}
// unsigned int sampleRate; // Frequency (samples per second)
// unsigned int sampleSize; // Bit depth (bits per sample): 8, 16, 32 (24 not supported)
// unsigned int channels; // Number of channels (1-mono, 2-stereo, ...)
// } AudioStream;
export struct Sound
{
stream: AudioStream
frameCount: u32
}
// // Sound
// typedef struct Sound {
// AudioStream stream; // Audio stream
// unsigned int frameCount; // Total number of frames (considering channels)
// } Sound;
export struct Music
{
stream: AudioStream
frameCount: u32
looping: bool
// // Music, audio stream, anything longer than ~10 seconds should be streamed
// typedef struct Music {
// AudioStream stream; // Audio stream
// unsigned int frameCount; // Total number of frames (considering channels)
// bool looping; // Music looping enable
ctxType: i32
ctxData: ^void
}
// int ctxType; // Type of music context (audio filetype)
// void *ctxData; // Audio context data, depends on type
// } Music;
export struct VrDeviceInfo
{
hResolution: i32
vResolution: i32
hScreenSize: f32
vScreenSize: f32
eyeToScreenDistance: f32
lensSeparationDistance: f32
interpupillaryDistance: f32
// lensDistortionValues: [4]f32
// chromaAbCorrection: [4]f32
}
// // VrDeviceInfo, Head-Mounted-Display device parameters
// typedef struct VrDeviceInfo {
// int hResolution; // Horizontal resolution in pixels
// int vResolution; // Vertical resolution in pixels
// float hScreenSize; // Horizontal size in meters
// float vScreenSize; // Vertical size in meters
// float eyeToScreenDistance; // Distance between eye and display in meters
// float lensSeparationDistance; // Lens separation distance in meters
// float interpupillaryDistance; // IPD (distance between pupils) in meters
// float lensDistortionValues[4]; // Lens distortion constant parameters
// float chromaAbCorrection[4]; // Chromatic aberration correction parameters
// } VrDeviceInfo;
export struct VrStereoConfig
{
// projection: [2]Matrix
// viewOffset: [2]Matrix
// leftLensCenter: [2]f32
// rightLensCenter: [2]f32
// leftScreenCenter: [2]f32
// rightScreenCenter: [2]f32
// scale: [2]f32
// scaleIn: [2]f32
}
// // VrStereoConfig, VR stereo rendering configuration for simulator
// typedef struct VrStereoConfig {
// Matrix projection[2]; // VR projection matrices (per eye)
// Matrix viewOffset[2]; // VR view offset matrices (per eye)
// float leftLensCenter[2]; // VR left lens center
// float rightLensCenter[2]; // VR right lens center
// float leftScreenCenter[2]; // VR left screen center
// float rightScreenCenter[2]; // VR right screen center
// float scale[2]; // VR distortion scale
// float scaleIn[2]; // VR distortion scale in
// } VrStereoConfig;
export struct FilePathList
{
capacity: u32
count: u32
paths: ^cstring
}
// // File path list
// typedef struct FilePathList {
// unsigned int capacity; // Filepaths max entries
// unsigned int count; // Filepaths entries count
// char **paths; // Filepaths entries
// } FilePathList;
export struct AutomationEvent
{
frame: u32
type: u32
// params: [4]i32
}
// // Automation event
// typedef struct AutomationEvent {
// unsigned int frame; // Event frame
// unsigned int type; // Event type (AutomationEventType)
// int params[4]; // Event parameters (if required)
// } AutomationEvent;
// // Automation event list
// typedef struct AutomationEventList {
// unsigned int capacity; // Events max entries (MAX_AUTOMATION_EVENTS)
// unsigned int count; // Events entries count
// AutomationEvent *events; // Events entries
// } AutomationEventList;
export struct AutomationEventList
{
capacity: u32
count: u32
events: ^AutomationEvent
}
// export enum ConfigFlags
// {
@@ -770,14 +765,6 @@ export struct BoundingBox
// NPATCH_THREE_PATCH_HORIZONTAL
// }
// // Callbacks to hook some internal functions
// // WARNING: These callbacks are intended for advanced users
// typedef void (*TraceLogCallback)(int logLevel, const char *text, va_list args); // Logging: Redirect trace log messages
// typedef unsigned char *(*LoadFileDataCallback)(const char *fileName, int *dataSize); // FileIO: Load binary data
// typedef bool (*SaveFileDataCallback)(const char *fileName, void *data, int dataSize); // FileIO: Save binary data
// typedef char *(*LoadFileTextCallback)(const char *fileName); // FileIO: Load text data
// typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileIO: Save text data
export extern "InitWindow" func InitWindow(width: i32, height: i32, title: cstring)
export extern "CloseWindow" func CloseWindow()
export extern "WindowShouldClose" func WindowShouldClose(): bool
@@ -850,11 +837,11 @@ export extern "BeginBlendMode" func BeginBlendMode(mode: i32)
export extern "EndBlendMode" func EndBlendMode()
export extern "BeginScissorMode" func BeginScissorMode(x: i32, y: i32, width: i32, height: i32)
export extern "EndScissorMode" func EndScissorMode()
// export extern "BeginVrStereoMode" func BeginVrStereoMode(config: VrStereoConfig)
// export extern "EndVrStereoMode" func EndVrStereoMode()
export extern "BeginVrStereoMode" func BeginVrStereoMode(config: VrStereoConfig)
export extern "EndVrStereoMode" func EndVrStereoMode()
// export extern "LoadVrStereoConfig" func LoadVrStereoConfig(device: VrDeviceInfo): VrStereoConfig
// export extern "UnloadVrStereoConfig" func UnloadVrStereoConfig(config: VrStereoConfig)
export extern "LoadVrStereoConfig" func LoadVrStereoConfig(device: VrDeviceInfo): VrStereoConfig
export extern "UnloadVrStereoConfig" func UnloadVrStereoConfig(config: VrStereoConfig)
export extern "LoadShader" func LoadShader(vsFileName: cstring, fsFileName: cstring): Shader
export extern "LoadShaderFromMemory" func LoadShaderFromMemory(vsCode: cstring, fsCode: cstring): Shader
@@ -900,11 +887,11 @@ export extern "MemAlloc" func MemAlloc(size: u32): ^void
export extern "MemRealloc" func MemRealloc(ptr: ^void, size: u32): ^void
export extern "MemFree" func MemFree(ptr: ^void)
// export extern "SetTraceLogCallback" func SetTraceLogCallback(callback: TraceLogCallback)
// export extern "SetLoadFileDataCallback" func SetLoadFileDataCallback(callback: LoadFileDataCallback)
// export extern "SetSaveFileDataCallback" func SetSaveFileDataCallback(callback: SaveFileDataCallback)
// export extern "SetLoadFileTextCallback" func SetLoadFileTextCallback(callback: LoadFileTextCallback)
// export extern "SetSaveFileTextCallback" func SetSaveFileTextCallback(callback: SaveFileTextCallback)
// export extern "SetTraceLogCallback" func SetTraceLogCallback(callback: func(i32, cstring, ...))
export extern "SetLoadFileDataCallback" func SetLoadFileDataCallback(callback: func(cstring, ^i32): ^u8)
export extern "SetSaveFileDataCallback" func SetSaveFileDataCallback(callback: func(cstring, ^void, i32): bool)
export extern "SetLoadFileTextCallback" func SetLoadFileTextCallback(callback: func(cstring): cstring)
export extern "SetSaveFileTextCallback" func SetSaveFileTextCallback(callback: func(cstring, cstring): bool)
export extern "LoadFileData" func LoadFileData(fileName: cstring, dataSize: ^i32): ^u8
export extern "UnloadFileData" func UnloadFileData(data: ^u8)
@@ -929,12 +916,12 @@ export extern "MakeDirectory" func MakeDirectory(dirPath: cstring): i32
export extern "ChangeDirectory" func ChangeDirectory(dir: cstring): bool
export extern "IsPathFile" func IsPathFile(path: cstring): bool
export extern "IsFileNameValid" func IsFileNameValid(fileName: cstring): bool
// export extern "LoadDirectoryFiles" func LoadDirectoryFiles(dirPath: cstring): FilePathList
// export extern "LoadDirectoryFilesEx" func LoadDirectoryFilesEx(basePath: cstring, filter: cstring, scanSubdirs: bool): FilePathList
// export extern "UnloadDirectoryFiles" func UnloadDirectoryFiles(files: FilePathList)
export extern "LoadDirectoryFiles" func LoadDirectoryFiles(dirPath: cstring): FilePathList
export extern "LoadDirectoryFilesEx" func LoadDirectoryFilesEx(basePath: cstring, filter: cstring, scanSubdirs: bool): FilePathList
export extern "UnloadDirectoryFiles" func UnloadDirectoryFiles(files: FilePathList)
export extern "IsFileDropped" func IsFileDropped(): bool
// export extern "LoadDroppedFiles" func LoadDroppedFiles(): FilePathList
// export extern "UnloadDroppedFiles" func UnloadDroppedFiles(files: FilePathList)
export extern "LoadDroppedFiles" func LoadDroppedFiles(): FilePathList
export extern "UnloadDroppedFiles" func UnloadDroppedFiles(files: FilePathList)
export extern "GetFileModTime" func GetFileModTime(fileName: cstring): i64
export extern "CompressData" func CompressData(data: ^u8, dataSize: i32, compDataSize: ^i32): ^u8
@@ -945,14 +932,14 @@ export extern "ComputeCRC32" func ComputeCRC32(data: ^u8, dataSize: i32): u32
export extern "ComputeMD5" func ComputeMD5(data: ^u8, dataSize: i32): ^u32
export extern "ComputeSHA1" func ComputeSHA1(data: ^u8, dataSize: i32): ^u32
// export extern "LoadAutomationEventList" func LoadAutomationEventList(fileName: cstring): AutomationEventList
// export extern "UnloadAutomationEventList" func UnloadAutomationEventList(list: AutomationEventList)
// export extern "ExportAutomationEventList" func ExportAutomationEventList(list: AutomationEventList, fileName: cstring): bool
// export extern "SetAutomationEventList" func SetAutomationEventList(list: ^AutomationEventList)
export extern "LoadAutomationEventList" func LoadAutomationEventList(fileName: cstring): AutomationEventList
export extern "UnloadAutomationEventList" func UnloadAutomationEventList(list: AutomationEventList)
export extern "ExportAutomationEventList" func ExportAutomationEventList(list: AutomationEventList, fileName: cstring): bool
export extern "SetAutomationEventList" func SetAutomationEventList(list: ^AutomationEventList)
export extern "SetAutomationEventBaseFrame" func SetAutomationEventBaseFrame(frame: i32)
export extern "StartAutomationEventRecording" func StartAutomationEventRecording()
export extern "StopAutomationEventRecording" func StopAutomationEventRecording()
// export extern "PlayAutomationEvent" func PlayAutomationEvent(event: AutomationEvent)
export extern "PlayAutomationEvent" func PlayAutomationEvent(event: AutomationEvent)
export extern "IsKeyPressed" func IsKeyPressed(key: i32): bool
export extern "IsKeyPressedRepeat" func IsKeyPressedRepeat(key: i32): bool
@@ -1280,18 +1267,18 @@ export extern "DrawPlane" func DrawPlane(centerPos: Vector3, size: Vector2, colo
export extern "DrawRay" func DrawRay(ray: Ray, color: Color)
export extern "DrawGrid" func DrawGrid(slices: i32, spacing: f32)
// export extern "LoadModel" func LoadModel(fileName: cstring): Model
// export extern "LoadModelFromMesh" func LoadModelFromMesh(mesh: Mesh): Model
// export extern "IsModelValid" func IsModelValid(model: Model): bool
// export extern "UnloadModel" func UnloadModel(model: Model)
// export extern "GetModelBoundingBox" func GetModelBoundingBox(model: Model): BoundingBox
export extern "LoadModel" func LoadModel(fileName: cstring): Model
export extern "LoadModelFromMesh" func LoadModelFromMesh(mesh: Mesh): Model
export extern "IsModelValid" func IsModelValid(model: Model): bool
export extern "UnloadModel" func UnloadModel(model: Model)
export extern "GetModelBoundingBox" func GetModelBoundingBox(model: Model): BoundingBox
// export extern "DrawModel" func DrawModel(model: Model, position: Vector3, scale: f32, tint: Color)
// export extern "DrawModelEx" func DrawModelEx(model: Model, position: Vector3, rotationAxis: Vector3, rotationAngle: f32, scale: Vector3, tint: Color)
// export extern "DrawModelWires" func DrawModelWires(model: Model, position: Vector3, scale: f32, tint: Color)
// export extern "DrawModelWiresEx" func DrawModelWiresEx(model: Model, position: Vector3, rotationAxis: Vector3, rotationAngle: f32, scale: Vector3, tint: Color)
// export extern "DrawModelPoints" func DrawModelPoints(model: Model, position: Vector3, scale: f32, tint: Color)
// export extern "DrawModelPointsEx" func DrawModelPointsEx(model: Model, position: Vector3, rotationAxis: Vector3, rotationAngle: f32, scale: Vector3, tint: Color)
export extern "DrawModel" func DrawModel(model: Model, position: Vector3, scale: f32, tint: Color)
export extern "DrawModelEx" func DrawModelEx(model: Model, position: Vector3, rotationAxis: Vector3, rotationAngle: f32, scale: Vector3, tint: Color)
export extern "DrawModelWires" func DrawModelWires(model: Model, position: Vector3, scale: f32, tint: Color)
export extern "DrawModelWiresEx" func DrawModelWiresEx(model: Model, position: Vector3, rotationAxis: Vector3, rotationAngle: f32, scale: Vector3, tint: Color)
export extern "DrawModelPoints" func DrawModelPoints(model: Model, position: Vector3, scale: f32, tint: Color)
export extern "DrawModelPointsEx" func DrawModelPointsEx(model: Model, position: Vector3, rotationAxis: Vector3, rotationAngle: f32, scale: Vector3, tint: Color)
export extern "DrawBoundingBox" func DrawBoundingBox(box: BoundingBox, color: Color)
export extern "DrawBillboard" func DrawBillboard(camera: Camera, texture: Texture2D, position: Vector3, scale: f32, tint: Color)
export extern "DrawBillboardRec" func DrawBillboardRec(camera: Camera, texture: Texture2D, source: Rectangle, position: Vector3, size: Vector2, tint: Color)
@@ -1300,8 +1287,8 @@ export extern "DrawBillboardPro" func DrawBillboardPro(camera: Camera, texture:
export extern "UploadMesh" func UploadMesh(mesh: ^Mesh, dynamic: bool)
export extern "UpdateMeshBuffer" func UpdateMeshBuffer(mesh: Mesh, index: i32, data: ^void, dataSize: i32, offset: i32)
export extern "UnloadMesh" func UnloadMesh(mesh: Mesh)
// export extern "DrawMesh" func DrawMesh(mesh: Mesh, material: Material, transform: Matrix)
// export extern "DrawMeshInstanced" func DrawMeshInstanced(mesh: Mesh, material: Material, transforms: ^Matrix, instances: i32)
export extern "DrawMesh" func DrawMesh(mesh: Mesh, material: Material, transform: Matrix)
export extern "DrawMeshInstanced" func DrawMeshInstanced(mesh: Mesh, material: Material, transforms: ^Matrix, instances: i32)
export extern "GetMeshBoundingBox" func GetMeshBoundingBox(mesh: Mesh): BoundingBox
export extern "GenMeshTangents" func GenMeshTangents(mesh: ^Mesh)
export extern "ExportMesh" func ExportMesh(mesh: Mesh, fileName: cstring): bool
@@ -1319,19 +1306,19 @@ export extern "GenMeshKnot" func GenMeshKnot(radius: f32, size: f32, radSeg: i32
export extern "GenMeshHeightmap" func GenMeshHeightmap(heightmap: Image, size: Vector3): Mesh
export extern "GenMeshCubicmap" func GenMeshCubicmap(cubicmap: Image, cubeSize: Vector3): Mesh
// export extern "LoadMaterials" func LoadMaterials(fileName: cstring, materialCount: ^i32): ^Material
// export extern "LoadMaterialDefault" func LoadMaterialDefault(): Material
// export extern "IsMaterialValid" func IsMaterialValid(material: Material): bool
// export extern "UnloadMaterial" func UnloadMaterial(material: Material)
// export extern "SetMaterialTexture" func SetMaterialTexture(material: ^Material, mapType: i32, texture: Texture2D)
// export extern "SetModelMeshMaterial" func SetModelMeshMaterial(model: ^Model, meshId: i32, materialId: i32)
export extern "LoadMaterials" func LoadMaterials(fileName: cstring, materialCount: ^i32): ^Material
export extern "LoadMaterialDefault" func LoadMaterialDefault(): Material
export extern "IsMaterialValid" func IsMaterialValid(material: Material): bool
export extern "UnloadMaterial" func UnloadMaterial(material: Material)
export extern "SetMaterialTexture" func SetMaterialTexture(material: ^Material, mapType: i32, texture: Texture2D)
export extern "SetModelMeshMaterial" func SetModelMeshMaterial(model: ^Model, meshId: i32, materialId: i32)
// export extern "LoadModelAnimations" func LoadModelAnimations(fileName: cstring, animCount: ^i32): ^ModelAnimation
// export extern "UpdateModelAnimation" func UpdateModelAnimation(model: Model, anim: ModelAnimation, frame: i32)
// export extern "UpdateModelAnimationBones" func UpdateModelAnimationBones(model: Model, anim: ModelAnimation, frame: i32)
// export extern "UnloadModelAnimation" func UnloadModelAnimation(anim: ModelAnimation)
// export extern "UnloadModelAnimations" func UnloadModelAnimations(animations: ^ModelAnimation, animCount: i32)
// export extern "IsModelAnimationValid" func IsModelAnimationValid(model: Model, anim: ModelAnimation): bool
export extern "LoadModelAnimations" func LoadModelAnimations(fileName: cstring, animCount: ^i32): ^ModelAnimation
export extern "UpdateModelAnimation" func UpdateModelAnimation(model: Model, anim: ModelAnimation, frame: i32)
export extern "UpdateModelAnimationBones" func UpdateModelAnimationBones(model: Model, anim: ModelAnimation, frame: i32)
export extern "UnloadModelAnimation" func UnloadModelAnimation(anim: ModelAnimation)
export extern "UnloadModelAnimations" func UnloadModelAnimations(animations: ^ModelAnimation, animCount: i32)
export extern "IsModelAnimationValid" func IsModelAnimationValid(model: Model, anim: ModelAnimation): bool
export extern "CheckCollisionSpheres" func CheckCollisionSpheres(center1: Vector3, radius1: f32, center2: Vector3, radius2: f32): bool
export extern "CheckCollisionBoxes" func CheckCollisionBoxes(box1: BoundingBox, box2: BoundingBox): bool
@@ -1348,69 +1335,69 @@ export extern "IsAudioDeviceReady" func IsAudioDeviceReady(): bool
export extern "SetMasterVolume" func SetMasterVolume(volume: f32)
export extern "GetMasterVolume" func GetMasterVolume(): f32
// export extern "LoadWave" func LoadWave(fileName: cstring): Wave
// export extern "LoadWaveFromMemory" func LoadWaveFromMemory(fileType: cstring, fileData: ^u8, dataSize: i32): Wave
// export extern "IsWaveValid" func IsWaveValid(wave: Wave): bool
// export extern "LoadSound" func LoadSound(fileName: cstring): Sound
// export extern "LoadSoundFromWave" func LoadSoundFromWave(wave: Wave): Sound
// export extern "LoadSoundAlias" func LoadSoundAlias(source: Sound): Sound
// export extern "IsSoundValid" func IsSoundValid(sound: Sound): bool
// export extern "UpdateSound" func UpdateSound(sound: Sound, data: ^void, sampleCount: i32)
// export extern "UnloadWave" func UnloadWave(wave: Wave)
// export extern "UnloadSound" func UnloadSound(sound: Sound)
// export extern "UnloadSoundAlias" func UnloadSoundAlias(alias: Sound)
// export extern "ExportWave" func ExportWave(wave: Wave, fileName: cstring): bool
// export extern "ExportWaveAsCode" func ExportWaveAsCode(wave: Wave, fileName: cstring): bool
export extern "LoadWave" func LoadWave(fileName: cstring): Wave
export extern "LoadWaveFromMemory" func LoadWaveFromMemory(fileType: cstring, fileData: ^u8, dataSize: i32): Wave
export extern "IsWaveValid" func IsWaveValid(wave: Wave): bool
export extern "LoadSound" func LoadSound(fileName: cstring): Sound
export extern "LoadSoundFromWave" func LoadSoundFromWave(wave: Wave): Sound
export extern "LoadSoundAlias" func LoadSoundAlias(source: Sound): Sound
export extern "IsSoundValid" func IsSoundValid(sound: Sound): bool
export extern "UpdateSound" func UpdateSound(sound: Sound, data: ^void, sampleCount: i32)
export extern "UnloadWave" func UnloadWave(wave: Wave)
export extern "UnloadSound" func UnloadSound(sound: Sound)
export extern "UnloadSoundAlias" func UnloadSoundAlias(alias: Sound)
export extern "ExportWave" func ExportWave(wave: Wave, fileName: cstring): bool
export extern "ExportWaveAsCode" func ExportWaveAsCode(wave: Wave, fileName: cstring): bool
// export extern "PlaySound" func PlaySound(sound: Sound)
// export extern "StopSound" func StopSound(sound: Sound)
// export extern "PauseSound" func PauseSound(sound: Sound)
// export extern "ResumeSound" func ResumeSound(sound: Sound)
// export extern "IsSoundPlaying" func IsSoundPlaying(sound: Sound): bool
// export extern "SetSoundVolume" func SetSoundVolume(sound: Sound, volume: f32)
// export extern "SetSoundPitch" func SetSoundPitch(sound: Sound, pitch: f32)
// export extern "SetSoundPan" func SetSoundPan(sound: Sound, pan: f32)
// export extern "WaveCopy" func WaveCopy(wave: Wave): Wave
// export extern "WaveCrop" func WaveCrop(wave: ^Wave, initFrame: i32, finalFrame: i32)
// export extern "WaveFormat" func WaveFormat(wave: ^Wave, sampleRate: i32, sampleSize: i32, channels: i32)
// export extern "LoadWaveSamples" func LoadWaveSamples(wave: Wave): ^f32
export extern "PlaySound" func PlaySound(sound: Sound)
export extern "StopSound" func StopSound(sound: Sound)
export extern "PauseSound" func PauseSound(sound: Sound)
export extern "ResumeSound" func ResumeSound(sound: Sound)
export extern "IsSoundPlaying" func IsSoundPlaying(sound: Sound): bool
export extern "SetSoundVolume" func SetSoundVolume(sound: Sound, volume: f32)
export extern "SetSoundPitch" func SetSoundPitch(sound: Sound, pitch: f32)
export extern "SetSoundPan" func SetSoundPan(sound: Sound, pan: f32)
export extern "WaveCopy" func WaveCopy(wave: Wave): Wave
export extern "WaveCrop" func WaveCrop(wave: ^Wave, initFrame: i32, finalFrame: i32)
export extern "WaveFormat" func WaveFormat(wave: ^Wave, sampleRate: i32, sampleSize: i32, channels: i32)
export extern "LoadWaveSamples" func LoadWaveSamples(wave: Wave): ^f32
export extern "UnloadWaveSamples" func UnloadWaveSamples(samples: ^f32)
// export extern "LoadMusicStream" func LoadMusicStream(fileName: cstring): Music
// export extern "LoadMusicStreamFromMemory" func LoadMusicStreamFromMemory(fileType: cstring, data: ^u8, dataSize: i32): Music
// export extern "IsMusicValid" func IsMusicValid(music: Music): bool
// export extern "UnloadMusicStream" func UnloadMusicStream(music: Music)
// export extern "PlayMusicStream" func PlayMusicStream(music: Music)
// export extern "IsMusicStreamPlaying" func IsMusicStreamPlaying(music: Music): bool
// export extern "UpdateMusicStream" func UpdateMusicStream(music: Music)
// export extern "StopMusicStream" func StopMusicStream(music: Music)
// export extern "PauseMusicStream" func PauseMusicStream(music: Music)
// export extern "ResumeMusicStream" func ResumeMusicStream(music: Music)
// export extern "SeekMusicStream" func SeekMusicStream(music: Music, position: f32)
// export extern "SetMusicVolume" func SetMusicVolume(music: Music, volume: f32)
// export extern "SetMusicPitch" func SetMusicPitch(music: Music, pitch: f32)
// export extern "SetMusicPan" func SetMusicPan(music: Music, pan: f32)
// export extern "GetMusicTimeLength" func GetMusicTimeLength(music: Music): f32
// export extern "GetMusicTimePlayed" func GetMusicTimePlayed(music: Music): f32
export extern "LoadMusicStream" func LoadMusicStream(fileName: cstring): Music
export extern "LoadMusicStreamFromMemory" func LoadMusicStreamFromMemory(fileType: cstring, data: ^u8, dataSize: i32): Music
export extern "IsMusicValid" func IsMusicValid(music: Music): bool
export extern "UnloadMusicStream" func UnloadMusicStream(music: Music)
export extern "PlayMusicStream" func PlayMusicStream(music: Music)
export extern "IsMusicStreamPlaying" func IsMusicStreamPlaying(music: Music): bool
export extern "UpdateMusicStream" func UpdateMusicStream(music: Music)
export extern "StopMusicStream" func StopMusicStream(music: Music)
export extern "PauseMusicStream" func PauseMusicStream(music: Music)
export extern "ResumeMusicStream" func ResumeMusicStream(music: Music)
export extern "SeekMusicStream" func SeekMusicStream(music: Music, position: f32)
export extern "SetMusicVolume" func SetMusicVolume(music: Music, volume: f32)
export extern "SetMusicPitch" func SetMusicPitch(music: Music, pitch: f32)
export extern "SetMusicPan" func SetMusicPan(music: Music, pan: f32)
export extern "GetMusicTimeLength" func GetMusicTimeLength(music: Music): f32
export extern "GetMusicTimePlayed" func GetMusicTimePlayed(music: Music): f32
// export extern "LoadAudioStream" func LoadAudioStream(sampleRate: u32, sampleSize: u32, channels: u32): AudioStream
// export extern "IsAudioStreamValid" func IsAudioStreamValid(stream: AudioStream): bool
// export extern "UnloadAudioStream" func UnloadAudioStream(stream: AudioStream)
// export extern "UpdateAudioStream" func UpdateAudioStream(stream: AudioStream, data: ^void, frameCount: i32)
// export extern "IsAudioStreamProcessed" func IsAudioStreamProcessed(stream: AudioStream): bool
// export extern "PlayAudioStream" func PlayAudioStream(stream: AudioStream)
// export extern "PauseAudioStream" func PauseAudioStream(stream: AudioStream)
// export extern "ResumeAudioStream" func ResumeAudioStream(stream: AudioStream)
// export extern "IsAudioStreamPlaying" func IsAudioStreamPlaying(stream: AudioStream): bool
// export extern "StopAudioStream" func StopAudioStream(stream: AudioStream)
// export extern "SetAudioStreamVolume" func SetAudioStreamVolume(stream: AudioStream, volume: f32)
// export extern "SetAudioStreamPitch" func SetAudioStreamPitch(stream: AudioStream, pitch: f32)
// export extern "SetAudioStreamPan" func SetAudioStreamPan(stream: AudioStream, pan: f32)
export extern "LoadAudioStream" func LoadAudioStream(sampleRate: u32, sampleSize: u32, channels: u32): AudioStream
export extern "IsAudioStreamValid" func IsAudioStreamValid(stream: AudioStream): bool
export extern "UnloadAudioStream" func UnloadAudioStream(stream: AudioStream)
export extern "UpdateAudioStream" func UpdateAudioStream(stream: AudioStream, data: ^void, frameCount: i32)
export extern "IsAudioStreamProcessed" func IsAudioStreamProcessed(stream: AudioStream): bool
export extern "PlayAudioStream" func PlayAudioStream(stream: AudioStream)
export extern "PauseAudioStream" func PauseAudioStream(stream: AudioStream)
export extern "ResumeAudioStream" func ResumeAudioStream(stream: AudioStream)
export extern "IsAudioStreamPlaying" func IsAudioStreamPlaying(stream: AudioStream): bool
export extern "StopAudioStream" func StopAudioStream(stream: AudioStream)
export extern "SetAudioStreamVolume" func SetAudioStreamVolume(stream: AudioStream, volume: f32)
export extern "SetAudioStreamPitch" func SetAudioStreamPitch(stream: AudioStream, pitch: f32)
export extern "SetAudioStreamPan" func SetAudioStreamPan(stream: AudioStream, pan: f32)
export extern "SetAudioStreamBufferSizeDefault" func SetAudioStreamBufferSizeDefault(size: i32)
// export extern "SetAudioStreamCallback" func SetAudioStreamCallback(stream: AudioStream, callback: func(^void, u32))
export extern "SetAudioStreamCallback" func SetAudioStreamCallback(stream: AudioStream, callback: func(^void, u32))
// export extern "AttachAudioStreamProcessor" func AttachAudioStreamProcessor(stream: AudioStream, processor: func(^void, u32))
// export extern "DetachAudioStreamProcessor" func DetachAudioStreamProcessor(stream: AudioStream, processor: func(^void, u32))
export extern "AttachAudioStreamProcessor" func AttachAudioStreamProcessor(stream: AudioStream, processor: func(^void, u32))
export extern "DetachAudioStreamProcessor" func DetachAudioStreamProcessor(stream: AudioStream, processor: func(^void, u32))
export extern "AttachAudioMixedProcessor" func AttachAudioMixedProcessor(processor: func(^void, u32))
export extern "DetachAudioMixedProcessor" func DetachAudioMixedProcessor(processor: func(^void, u32))