From a2bdf47f5da3c89dc8b7540d2fa229d910fd2eb1 Mon Sep 17 00:00:00 2001 From: nub31 Date: Sun, 28 Sep 2025 21:57:50 +0200 Subject: [PATCH] rl bindings complete for current supported lang features --- example/src/raylib.nub | 417 ++++++++++++++++++++--------------------- 1 file changed, 202 insertions(+), 215 deletions(-) diff --git a/example/src/raylib.nub b/example/src/raylib.nub index cd49d6f..6c30f9d 100644 --- a/example/src/raylib.nub +++ b/example/src/raylib.nub @@ -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)) \ No newline at end of file