1 module bindbc.raylib.bindstatic; 2 3 version(BindBC_Static) version = BindRaylib_Static; 4 version(BindRaylib_Static): 5 6 import bindbc.raylib.types; 7 extern (C) @nogc nothrow { 8 /** 9 * Initialize window and OpenGL context 10 */ 11 void InitWindow(int width, int height, const(char)* title); 12 /** 13 * Close window and unload OpenGL context 14 */ 15 void CloseWindow(); 16 /** 17 * Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) 18 */ 19 bool WindowShouldClose(); 20 /** 21 * Check if window has been initialized successfully 22 */ 23 bool IsWindowReady(); 24 /** 25 * Check if window is currently fullscreen 26 */ 27 bool IsWindowFullscreen(); 28 /** 29 * Check if window is currently hidden (only PLATFORM_DESKTOP) 30 */ 31 bool IsWindowHidden(); 32 /** 33 * Check if window is currently minimized (only PLATFORM_DESKTOP) 34 */ 35 bool IsWindowMinimized(); 36 /** 37 * Check if window is currently maximized (only PLATFORM_DESKTOP) 38 */ 39 bool IsWindowMaximized(); 40 /** 41 * Check if window is currently focused (only PLATFORM_DESKTOP) 42 */ 43 bool IsWindowFocused(); 44 /** 45 * Check if window has been resized last frame 46 */ 47 bool IsWindowResized(); 48 /** 49 * Check if one specific window flag is enabled 50 */ 51 bool IsWindowState(uint flag); 52 /** 53 * Set window configuration state using flags (only PLATFORM_DESKTOP) 54 */ 55 void SetWindowState(uint flags); 56 /** 57 * Clear window configuration state flags 58 */ 59 void ClearWindowState(uint flags); 60 /** 61 * Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP) 62 */ 63 void ToggleFullscreen(); 64 /** 65 * Toggle window state: borderless windowed (only PLATFORM_DESKTOP) 66 */ 67 void ToggleBorderlessWindowed(); 68 /** 69 * Set window state: maximized, if resizable (only PLATFORM_DESKTOP) 70 */ 71 void MaximizeWindow(); 72 /** 73 * Set window state: minimized, if resizable (only PLATFORM_DESKTOP) 74 */ 75 void MinimizeWindow(); 76 /** 77 * Set window state: not minimized/maximized (only PLATFORM_DESKTOP) 78 */ 79 void RestoreWindow(); 80 /** 81 * Set icon for window (single image, RGBA 32bit, only PLATFORM_DESKTOP) 82 */ 83 void SetWindowIcon(Image image); 84 /** 85 * Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP) 86 */ 87 void SetWindowIcons(Image* images, int count); 88 /** 89 * Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB) 90 */ 91 void SetWindowTitle(const(char)* title); 92 /** 93 * Set window position on screen (only PLATFORM_DESKTOP) 94 */ 95 void SetWindowPosition(int x, int y); 96 /** 97 * Set monitor for the current window 98 */ 99 void SetWindowMonitor(int monitor); 100 /** 101 * Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) 102 */ 103 void SetWindowMinSize(int width, int height); 104 /** 105 * Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) 106 */ 107 void SetWindowMaxSize(int width, int height); 108 /** 109 * Set window dimensions 110 */ 111 void SetWindowSize(int width, int height); 112 /** 113 * Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP) 114 */ 115 void SetWindowOpacity(float opacity); 116 /** 117 * Set window focused (only PLATFORM_DESKTOP) 118 */ 119 void SetWindowFocused(); 120 /** 121 * Get native window handle 122 */ 123 void* GetWindowHandle(); 124 /** 125 * Get current screen width 126 */ 127 int GetScreenWidth(); 128 /** 129 * Get current screen height 130 */ 131 int GetScreenHeight(); 132 /** 133 * Get current render width (it considers HiDPI) 134 */ 135 int GetRenderWidth(); 136 /** 137 * Get current render height (it considers HiDPI) 138 */ 139 int GetRenderHeight(); 140 /** 141 * Get number of connected monitors 142 */ 143 int GetMonitorCount(); 144 /** 145 * Get current connected monitor 146 */ 147 int GetCurrentMonitor(); 148 /** 149 * Get specified monitor position 150 */ 151 Vector2 GetMonitorPosition(int monitor); 152 /** 153 * Get specified monitor width (current video mode used by monitor) 154 */ 155 int GetMonitorWidth(int monitor); 156 /** 157 * Get specified monitor height (current video mode used by monitor) 158 */ 159 int GetMonitorHeight(int monitor); 160 /** 161 * Get specified monitor physical width in millimetres 162 */ 163 int GetMonitorPhysicalWidth(int monitor); 164 /** 165 * Get specified monitor physical height in millimetres 166 */ 167 int GetMonitorPhysicalHeight(int monitor); 168 /** 169 * Get specified monitor refresh rate 170 */ 171 int GetMonitorRefreshRate(int monitor); 172 /** 173 * Get window position XY on monitor 174 */ 175 Vector2 GetWindowPosition(); 176 /** 177 * Get window scale DPI factor 178 */ 179 Vector2 GetWindowScaleDPI(); 180 /** 181 * Get the human-readable, UTF-8 encoded name of the specified monitor 182 */ 183 const(char)* GetMonitorName(int monitor); 184 /** 185 * Set clipboard text content 186 */ 187 void SetClipboardText(const(char)* text); 188 /** 189 * Get clipboard text content 190 */ 191 const(char)* GetClipboardText(); 192 /** 193 * Enable waiting for events on EndDrawing(), no automatic event polling 194 */ 195 void EnableEventWaiting(); 196 /** 197 * Disable waiting for events on EndDrawing(), automatic events polling 198 */ 199 void DisableEventWaiting(); 200 /** 201 * Shows cursor 202 */ 203 void ShowCursor(); 204 /** 205 * Hides cursor 206 */ 207 void HideCursor(); 208 /** 209 * Check if cursor is not visible 210 */ 211 bool IsCursorHidden(); 212 /** 213 * Enables cursor (unlock cursor) 214 */ 215 void EnableCursor(); 216 /** 217 * Disables cursor (lock cursor) 218 */ 219 void DisableCursor(); 220 /** 221 * Check if cursor is on the screen 222 */ 223 bool IsCursorOnScreen(); 224 /** 225 * Set background color (framebuffer clear color) 226 */ 227 void ClearBackground(Color color); 228 /** 229 * Setup canvas (framebuffer) to start drawing 230 */ 231 void BeginDrawing(); 232 /** 233 * End canvas drawing and swap buffers (double buffering) 234 */ 235 void EndDrawing(); 236 /** 237 * Begin 2D mode with custom camera (2D) 238 */ 239 void BeginMode2D(Camera2D camera); 240 /** 241 * Ends 2D mode with custom camera 242 */ 243 void EndMode2D(); 244 /** 245 * Begin 3D mode with custom camera (3D) 246 */ 247 void BeginMode3D(Camera3D camera); 248 /** 249 * Ends 3D mode and returns to default 2D orthographic mode 250 */ 251 void EndMode3D(); 252 /** 253 * Begin drawing to render texture 254 */ 255 void BeginTextureMode(RenderTexture2D target); 256 /** 257 * Ends drawing to render texture 258 */ 259 void EndTextureMode(); 260 /** 261 * Begin custom shader drawing 262 */ 263 void BeginShaderMode(Shader shader); 264 /** 265 * End custom shader drawing (use default shader) 266 */ 267 void EndShaderMode(); 268 /** 269 * Begin blending mode (alpha, additive, multiplied, subtract, custom) 270 */ 271 void BeginBlendMode(int mode); 272 /** 273 * End blending mode (reset to default: alpha blending) 274 */ 275 void EndBlendMode(); 276 /** 277 * Begin scissor mode (define screen area for following drawing) 278 */ 279 void BeginScissorMode(int x, int y, int width, int height); 280 /** 281 * End scissor mode 282 */ 283 void EndScissorMode(); 284 /** 285 * Begin stereo rendering (requires VR simulator) 286 */ 287 void BeginVrStereoMode(VrStereoConfig config); 288 /** 289 * End stereo rendering (requires VR simulator) 290 */ 291 void EndVrStereoMode(); 292 /** 293 * Load VR stereo config for VR simulator device parameters 294 */ 295 VrStereoConfig LoadVrStereoConfig(VrDeviceInfo device); 296 /** 297 * Unload VR stereo config 298 */ 299 void UnloadVrStereoConfig(VrStereoConfig config); 300 /** 301 * Load shader from files and bind default locations 302 */ 303 Shader LoadShader(const(char)* vsFileName, const(char)* fsFileName); 304 /** 305 * Load shader from code strings and bind default locations 306 */ 307 Shader LoadShaderFromMemory(const(char)* vsCode, const(char)* fsCode); 308 /** 309 * Check if a shader is ready 310 */ 311 bool IsShaderReady(Shader shader); 312 /** 313 * Get shader uniform location 314 */ 315 int GetShaderLocation(Shader shader, const(char)* uniformName); 316 /** 317 * Get shader attribute location 318 */ 319 int GetShaderLocationAttrib(Shader shader, const(char)* attribName); 320 /** 321 * Set shader uniform value 322 */ 323 void SetShaderValue(Shader shader, int locIndex, const(void)* value, int uniformType); 324 /** 325 * Set shader uniform value vector 326 */ 327 void SetShaderValueV(Shader shader, int locIndex, const(void)* value, int uniformType, int count); 328 /** 329 * Set shader uniform value (matrix 4x4) 330 */ 331 void SetShaderValueMatrix(Shader shader, int locIndex, Matrix mat); 332 /** 333 * Set shader uniform value for texture (sampler2d) 334 */ 335 void SetShaderValueTexture(Shader shader, int locIndex, Texture2D texture); 336 /** 337 * Unload shader from GPU memory (VRAM) 338 */ 339 void UnloadShader(Shader shader); 340 /** 341 * Get a ray trace from mouse position 342 */ 343 Ray GetMouseRay(Vector2 mousePosition, Camera camera); 344 /** 345 * Get camera transform matrix (view matrix) 346 */ 347 Matrix GetCameraMatrix(Camera camera); 348 /** 349 * Get camera 2d transform matrix 350 */ 351 Matrix GetCameraMatrix2D(Camera2D camera); 352 /** 353 * Get the screen space position for a 3d world space position 354 */ 355 Vector2 GetWorldToScreen(Vector3 position, Camera camera); 356 /** 357 * Get the world space position for a 2d camera screen space position 358 */ 359 Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera); 360 /** 361 * Get size position for a 3d world space position 362 */ 363 Vector2 GetWorldToScreenEx(Vector3 position, Camera camera, int width, int height); 364 /** 365 * Get the screen space position for a 2d camera world space position 366 */ 367 Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera); 368 /** 369 * Set target FPS (maximum) 370 */ 371 void SetTargetFPS(int fps); 372 /** 373 * Get time in seconds for last frame drawn (delta time) 374 */ 375 float GetFrameTime(); 376 /** 377 * Get elapsed time in seconds since InitWindow() 378 */ 379 double GetTime(); 380 /** 381 * Get current FPS 382 */ 383 int GetFPS(); 384 /** 385 * Swap back buffer with front buffer (screen drawing) 386 */ 387 void SwapScreenBuffer(); 388 /** 389 * Register all input events 390 */ 391 void PollInputEvents(); 392 /** 393 * Wait for some time (halt program execution) 394 */ 395 void WaitTime(double seconds); 396 /** 397 * Set the seed for the random number generator 398 */ 399 void SetRandomSeed(uint seed); 400 /** 401 * Get a random value between min and max (both included) 402 */ 403 int GetRandomValue(int min, int max); 404 /** 405 * Load random values sequence, no values repeated 406 */ 407 int* LoadRandomSequence(uint count, int min, int max); 408 /** 409 * Unload random values sequence 410 */ 411 void UnloadRandomSequence(int* sequence); 412 /** 413 * Takes a screenshot of current screen (filename extension defines format) 414 */ 415 void TakeScreenshot(const(char)* fileName); 416 /** 417 * Setup init configuration flags (view FLAGS) 418 */ 419 void SetConfigFlags(uint flags); 420 /** 421 * Open URL with default system browser (if available) 422 */ 423 void OpenURL(const(char)* url); 424 /** 425 * Set the current threshold (minimum) log level 426 */ 427 void SetTraceLogLevel(int logLevel); 428 /** 429 * Internal memory allocator 430 */ 431 void* MemAlloc(uint size); 432 /** 433 * Internal memory reallocator 434 */ 435 void* MemRealloc(void* ptr, uint size); 436 /** 437 * Internal memory free 438 */ 439 void MemFree(void* ptr); 440 /** 441 * Load file data as byte array (read) 442 */ 443 ubyte* LoadFileData(const(char)* fileName, int* dataSize); 444 /** 445 * Unload file data allocated by LoadFileData() 446 */ 447 void UnloadFileData(ubyte* data); 448 /** 449 * Save data to file from byte array (write), returns true on success 450 */ 451 bool SaveFileData(const(char)* fileName, void* data, int dataSize); 452 /** 453 * Export data to code (.h), returns true on success 454 */ 455 bool ExportDataAsCode(const(ubyte)* data, int dataSize, const(char)* fileName); 456 /** 457 * Load text data from file (read), returns a '\0' terminated string 458 */ 459 char* LoadFileText(const(char)* fileName); 460 /** 461 * Unload file text data allocated by LoadFileText() 462 */ 463 void UnloadFileText(char* text); 464 /** 465 * Save text data to file (write), string must be '\0' terminated, returns true on success 466 */ 467 bool SaveFileText(const(char)* fileName, char* text); 468 /** 469 * Check if file exists 470 */ 471 bool FileExists(const(char)* fileName); 472 /** 473 * Check if a directory path exists 474 */ 475 bool DirectoryExists(const(char)* dirPath); 476 /** 477 * Check file extension (including point: .png, .wav) 478 */ 479 bool IsFileExtension(const(char)* fileName, const(char)* ext); 480 /** 481 * Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h) 482 */ 483 int GetFileLength(const(char)* fileName); 484 /** 485 * Get pointer to extension for a filename string (includes dot: '.png') 486 */ 487 const(char)* GetFileExtension(const(char)* fileName); 488 /** 489 * Get pointer to filename for a path string 490 */ 491 const(char)* GetFileName(const(char)* filePath); 492 /** 493 * Get filename string without extension (uses static string) 494 */ 495 const(char)* GetFileNameWithoutExt(const(char)* filePath); 496 /** 497 * Get full path for a given fileName with path (uses static string) 498 */ 499 const(char)* GetDirectoryPath(const(char)* filePath); 500 /** 501 * Get previous directory path for a given path (uses static string) 502 */ 503 const(char)* GetPrevDirectoryPath(const(char)* dirPath); 504 /** 505 * Get current working directory (uses static string) 506 */ 507 const(char)* GetWorkingDirectory(); 508 /** 509 * Get the directory of the running application (uses static string) 510 */ 511 const(char)* GetApplicationDirectory(); 512 /** 513 * Change working directory, return true on success 514 */ 515 bool ChangeDirectory(const(char)* dir); 516 /** 517 * Check if a given path is a file or a directory 518 */ 519 bool IsPathFile(const(char)* path); 520 /** 521 * Load directory filepaths 522 */ 523 FilePathList LoadDirectoryFiles(const(char)* dirPath); 524 /** 525 * Load directory filepaths with extension filtering and recursive directory scan 526 */ 527 FilePathList LoadDirectoryFilesEx(const(char)* basePath, const(char)* filter, bool scanSubdirs); 528 /** 529 * Unload filepaths 530 */ 531 void UnloadDirectoryFiles(FilePathList files); 532 /** 533 * Check if a file has been dropped into window 534 */ 535 bool IsFileDropped(); 536 /** 537 * Load dropped filepaths 538 */ 539 FilePathList LoadDroppedFiles(); 540 /** 541 * Unload dropped filepaths 542 */ 543 void UnloadDroppedFiles(FilePathList files); 544 /** 545 * Get file modification time (last write time) 546 */ 547 long GetFileModTime(const(char)* fileName); 548 /** 549 * Compress data (DEFLATE algorithm), memory must be MemFree() 550 */ 551 ubyte* CompressData(const(ubyte)* data, int dataSize, int* compDataSize); 552 /** 553 * Decompress data (DEFLATE algorithm), memory must be MemFree() 554 */ 555 ubyte* DecompressData(const(ubyte)* compData, int compDataSize, int* dataSize); 556 /** 557 * Encode data to Base64 string, memory must be MemFree() 558 */ 559 char* EncodeDataBase64(const(ubyte)* data, int dataSize, int* outputSize); 560 /** 561 * Decode Base64 string data, memory must be MemFree() 562 */ 563 ubyte* DecodeDataBase64(const(ubyte)* data, int* outputSize); 564 /** 565 * Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS 566 */ 567 AutomationEventList LoadAutomationEventList(const(char)* fileName); 568 /** 569 * Unload automation events list from file 570 */ 571 void UnloadAutomationEventList(AutomationEventList* list); 572 /** 573 * Export automation events list as text file 574 */ 575 bool ExportAutomationEventList(AutomationEventList list, const(char)* fileName); 576 /** 577 * Set automation event list to record to 578 */ 579 void SetAutomationEventList(AutomationEventList* list); 580 /** 581 * Set automation event internal base frame to start recording 582 */ 583 void SetAutomationEventBaseFrame(int frame); 584 /** 585 * Start recording automation events (AutomationEventList must be set) 586 */ 587 void StartAutomationEventRecording(); 588 /** 589 * Stop recording automation events 590 */ 591 void StopAutomationEventRecording(); 592 /** 593 * Play a recorded automation event 594 */ 595 void PlayAutomationEvent(AutomationEvent event); 596 /** 597 * Check if a key has been pressed once 598 */ 599 bool IsKeyPressed(int key); 600 /** 601 * Check if a key has been pressed again (Only PLATFORM_DESKTOP) 602 */ 603 bool IsKeyPressedRepeat(int key); 604 /** 605 * Check if a key is being pressed 606 */ 607 bool IsKeyDown(int key); 608 /** 609 * Check if a key has been released once 610 */ 611 bool IsKeyReleased(int key); 612 /** 613 * Check if a key is NOT being pressed 614 */ 615 bool IsKeyUp(int key); 616 /** 617 * Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty 618 */ 619 int GetKeyPressed(); 620 /** 621 * Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty 622 */ 623 int GetCharPressed(); 624 /** 625 * Set a custom key to exit program (default is ESC) 626 */ 627 void SetExitKey(int key); 628 /** 629 * Check if a gamepad is available 630 */ 631 bool IsGamepadAvailable(int gamepad); 632 /** 633 * Get gamepad internal name id 634 */ 635 const(char)* GetGamepadName(int gamepad); 636 /** 637 * Check if a gamepad button has been pressed once 638 */ 639 bool IsGamepadButtonPressed(int gamepad, int button); 640 /** 641 * Check if a gamepad button is being pressed 642 */ 643 bool IsGamepadButtonDown(int gamepad, int button); 644 /** 645 * Check if a gamepad button has been released once 646 */ 647 bool IsGamepadButtonReleased(int gamepad, int button); 648 /** 649 * Check if a gamepad button is NOT being pressed 650 */ 651 bool IsGamepadButtonUp(int gamepad, int button); 652 /** 653 * Get the last gamepad button pressed 654 */ 655 int GetGamepadButtonPressed(); 656 /** 657 * Get gamepad axis count for a gamepad 658 */ 659 int GetGamepadAxisCount(int gamepad); 660 /** 661 * Get axis movement value for a gamepad axis 662 */ 663 float GetGamepadAxisMovement(int gamepad, int axis); 664 /** 665 * Set internal gamepad mappings (SDL_GameControllerDB) 666 */ 667 int SetGamepadMappings(const(char)* mappings); 668 /** 669 * Check if a mouse button has been pressed once 670 */ 671 bool IsMouseButtonPressed(int button); 672 /** 673 * Check if a mouse button is being pressed 674 */ 675 bool IsMouseButtonDown(int button); 676 /** 677 * Check if a mouse button has been released once 678 */ 679 bool IsMouseButtonReleased(int button); 680 /** 681 * Check if a mouse button is NOT being pressed 682 */ 683 bool IsMouseButtonUp(int button); 684 /** 685 * Get mouse position X 686 */ 687 int GetMouseX(); 688 /** 689 * Get mouse position Y 690 */ 691 int GetMouseY(); 692 /** 693 * Get mouse position XY 694 */ 695 Vector2 GetMousePosition(); 696 /** 697 * Get mouse delta between frames 698 */ 699 Vector2 GetMouseDelta(); 700 /** 701 * Set mouse position XY 702 */ 703 void SetMousePosition(int x, int y); 704 /** 705 * Set mouse offset 706 */ 707 void SetMouseOffset(int offsetX, int offsetY); 708 /** 709 * Set mouse scaling 710 */ 711 void SetMouseScale(float scaleX, float scaleY); 712 /** 713 * Get mouse wheel movement for X or Y, whichever is larger 714 */ 715 float GetMouseWheelMove(); 716 /** 717 * Get mouse wheel movement for both X and Y 718 */ 719 Vector2 GetMouseWheelMoveV(); 720 /** 721 * Set mouse cursor 722 */ 723 void SetMouseCursor(int cursor); 724 /** 725 * Get touch position X for touch point 0 (relative to screen size) 726 */ 727 int GetTouchX(); 728 /** 729 * Get touch position Y for touch point 0 (relative to screen size) 730 */ 731 int GetTouchY(); 732 /** 733 * Get touch position XY for a touch point index (relative to screen size) 734 */ 735 Vector2 GetTouchPosition(int index); 736 /** 737 * Get touch point identifier for given index 738 */ 739 int GetTouchPointId(int index); 740 /** 741 * Get number of touch points 742 */ 743 int GetTouchPointCount(); 744 /** 745 * Enable a set of gestures using flags 746 */ 747 void SetGesturesEnabled(uint flags); 748 /** 749 * Check if a gesture have been detected 750 */ 751 bool IsGestureDetected(uint gesture); 752 /** 753 * Get latest detected gesture 754 */ 755 int GetGestureDetected(); 756 /** 757 * Get gesture hold time in milliseconds 758 */ 759 float GetGestureHoldDuration(); 760 /** 761 * Get gesture drag vector 762 */ 763 Vector2 GetGestureDragVector(); 764 /** 765 * Get gesture drag angle 766 */ 767 float GetGestureDragAngle(); 768 /** 769 * Get gesture pinch delta 770 */ 771 Vector2 GetGesturePinchVector(); 772 /** 773 * Get gesture pinch angle 774 */ 775 float GetGesturePinchAngle(); 776 /** 777 * Update camera position for selected mode 778 */ 779 void UpdateCamera(Camera* camera, int mode); 780 /** 781 * Update camera movement/rotation 782 */ 783 void UpdateCameraPro(Camera* camera, Vector3 movement, Vector3 rotation, float zoom); 784 /** 785 * Set texture and rectangle to be used on shapes drawing 786 */ 787 void SetShapesTexture(Texture2D texture, Rectangle source); 788 /** 789 * Draw a pixel 790 */ 791 void DrawPixel(int posX, int posY, Color color); 792 /** 793 * Draw a pixel (Vector version) 794 */ 795 void DrawPixelV(Vector2 position, Color color); 796 /** 797 * Draw a line 798 */ 799 void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); 800 /** 801 * Draw a line (using gl lines) 802 */ 803 void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); 804 /** 805 * Draw a line (using triangles/quads) 806 */ 807 void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); 808 /** 809 * Draw lines sequence (using gl lines) 810 */ 811 void DrawLineStrip(Vector2* points, int pointCount, Color color); 812 /** 813 * Draw line segment cubic-bezier in-out interpolation 814 */ 815 void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color); 816 /** 817 * Draw a color-filled circle 818 */ 819 void DrawCircle(int centerX, int centerY, float radius, Color color); 820 /** 821 * Draw a piece of a circle 822 */ 823 void DrawCircleSector(Vector2 center, float radius, float startAngle, float endAngle, int segments, Color color); 824 /** 825 * Draw circle sector outline 826 */ 827 void DrawCircleSectorLines(Vector2 center, float radius, float startAngle, float endAngle, int segments, Color color); 828 /** 829 * Draw a gradient-filled circle 830 */ 831 void DrawCircleGradient(int centerX, int centerY, float radius, Color color1, Color color2); 832 /** 833 * Draw a color-filled circle (Vector version) 834 */ 835 void DrawCircleV(Vector2 center, float radius, Color color); 836 /** 837 * Draw circle outline 838 */ 839 void DrawCircleLines(int centerX, int centerY, float radius, Color color); 840 /** 841 * Draw circle outline (Vector version) 842 */ 843 void DrawCircleLinesV(Vector2 center, float radius, Color color); 844 /** 845 * Draw ellipse 846 */ 847 void DrawEllipse(int centerX, int centerY, float radiusH, float radiusV, Color color); 848 /** 849 * Draw ellipse outline 850 */ 851 void DrawEllipseLines(int centerX, int centerY, float radiusH, float radiusV, Color color); 852 /** 853 * Draw ring 854 */ 855 void DrawRing(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); 856 /** 857 * Draw ring outline 858 */ 859 void DrawRingLines(Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color); 860 /** 861 * Draw a color-filled rectangle 862 */ 863 void DrawRectangle(int posX, int posY, int width, int height, Color color); 864 /** 865 * Draw a color-filled rectangle (Vector version) 866 */ 867 void DrawRectangleV(Vector2 position, Vector2 size, Color color); 868 /** 869 * Draw a color-filled rectangle 870 */ 871 void DrawRectangleRec(Rectangle rec, Color color); 872 /** 873 * Draw a color-filled rectangle with pro parameters 874 */ 875 void DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, Color color); 876 /** 877 * Draw a vertical-gradient-filled rectangle 878 */ 879 void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, Color color2); 880 /** 881 * Draw a horizontal-gradient-filled rectangle 882 */ 883 void DrawRectangleGradientH(int posX, int posY, int width, int height, Color color1, Color color2); 884 /** 885 * Draw a gradient-filled rectangle with custom vertex colors 886 */ 887 void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4); 888 /** 889 * Draw rectangle outline 890 */ 891 void DrawRectangleLines(int posX, int posY, int width, int height, Color color); 892 /** 893 * Draw rectangle outline with extended parameters 894 */ 895 void DrawRectangleLinesEx(Rectangle rec, float lineThick, Color color); 896 /** 897 * Draw rectangle with rounded edges 898 */ 899 void DrawRectangleRounded(Rectangle rec, float roundness, int segments, Color color); 900 /** 901 * Draw rectangle with rounded edges outline 902 */ 903 void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, float lineThick, Color color); 904 /** 905 * Draw a color-filled triangle (vertex in counter-clockwise order!) 906 */ 907 void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color); 908 /** 909 * Draw triangle outline (vertex in counter-clockwise order!) 910 */ 911 void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color); 912 /** 913 * Draw a triangle fan defined by points (first vertex is the center) 914 */ 915 void DrawTriangleFan(Vector2* points, int pointCount, Color color); 916 /** 917 * Draw a triangle strip defined by points 918 */ 919 void DrawTriangleStrip(Vector2* points, int pointCount, Color color); 920 /** 921 * Draw a regular polygon (Vector version) 922 */ 923 void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color); 924 /** 925 * Draw a polygon outline of n sides 926 */ 927 void DrawPolyLines(Vector2 center, int sides, float radius, float rotation, Color color); 928 /** 929 * Draw a polygon outline of n sides with extended parameters 930 */ 931 void DrawPolyLinesEx(Vector2 center, int sides, float radius, float rotation, float lineThick, Color color); 932 /** 933 * Draw spline: Linear, minimum 2 points 934 */ 935 void DrawSplineLinear(Vector2* points, int pointCount, float thick, Color color); 936 /** 937 * Draw spline: B-Spline, minimum 4 points 938 */ 939 void DrawSplineBasis(Vector2* points, int pointCount, float thick, Color color); 940 /** 941 * Draw spline: Catmull-Rom, minimum 4 points 942 */ 943 void DrawSplineCatmullRom(Vector2* points, int pointCount, float thick, Color color); 944 /** 945 * Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] 946 */ 947 void DrawSplineBezierQuadratic(Vector2* points, int pointCount, float thick, Color color); 948 /** 949 * Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] 950 */ 951 void DrawSplineBezierCubic(Vector2* points, int pointCount, float thick, Color color); 952 /** 953 * Draw spline segment: Linear, 2 points 954 */ 955 void DrawSplineSegmentLinear(Vector2 p1, Vector2 p2, float thick, Color color); 956 /** 957 * Draw spline segment: B-Spline, 4 points 958 */ 959 void DrawSplineSegmentBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); 960 /** 961 * Draw spline segment: Catmull-Rom, 4 points 962 */ 963 void DrawSplineSegmentCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color); 964 /** 965 * Draw spline segment: Quadratic Bezier, 2 points, 1 control point 966 */ 967 void DrawSplineSegmentBezierQuadratic(Vector2 p1, Vector2 c2, Vector2 p3, float thick, Color color); 968 /** 969 * Draw spline segment: Cubic Bezier, 2 points, 2 control points 970 */ 971 void DrawSplineSegmentBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float thick, Color color); 972 /** 973 * Get (evaluate) spline point: Linear 974 */ 975 Vector2 GetSplinePointLinear(Vector2 startPos, Vector2 endPos, float t); 976 /** 977 * Get (evaluate) spline point: B-Spline 978 */ 979 Vector2 GetSplinePointBasis(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t); 980 /** 981 * Get (evaluate) spline point: Catmull-Rom 982 */ 983 Vector2 GetSplinePointCatmullRom(Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t); 984 /** 985 * Get (evaluate) spline point: Quadratic Bezier 986 */ 987 Vector2 GetSplinePointBezierQuad(Vector2 p1, Vector2 c2, Vector2 p3, float t); 988 /** 989 * Get (evaluate) spline point: Cubic Bezier 990 */ 991 Vector2 GetSplinePointBezierCubic(Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float t); 992 /** 993 * Check collision between two rectangles 994 */ 995 bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); 996 /** 997 * Check collision between two circles 998 */ 999 bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2); 1000 /** 1001 * Check collision between circle and rectangle 1002 */ 1003 bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec); 1004 /** 1005 * Check if point is inside rectangle 1006 */ 1007 bool CheckCollisionPointRec(Vector2 point, Rectangle rec); 1008 /** 1009 * Check if point is inside circle 1010 */ 1011 bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius); 1012 /** 1013 * Check if point is inside a triangle 1014 */ 1015 bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3); 1016 /** 1017 * Check if point is within a polygon described by array of vertices 1018 */ 1019 bool CheckCollisionPointPoly(Vector2 point, Vector2* points, int pointCount); 1020 /** 1021 * Check the collision between two lines defined by two points each, returns collision point by reference 1022 */ 1023 bool CheckCollisionLines(Vector2 startPos1, Vector2 endPos1, Vector2 startPos2, Vector2 endPos2, Vector2* collisionPoint); 1024 /** 1025 * Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] 1026 */ 1027 bool CheckCollisionPointLine(Vector2 point, Vector2 p1, Vector2 p2, int threshold); 1028 /** 1029 * Get collision rectangle for two rectangles collision 1030 */ 1031 Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); 1032 /** 1033 * Load image from file into CPU memory (RAM) 1034 */ 1035 Image LoadImage(const(char)* fileName); 1036 /** 1037 * Load image from RAW file data 1038 */ 1039 Image LoadImageRaw(const(char)* fileName, int width, int height, int format, int headerSize); 1040 /** 1041 * Load image from SVG file data or string with specified size 1042 */ 1043 Image LoadImageSvg(const(char)* fileNameOrString, int width, int height); 1044 /** 1045 * Load image sequence from file (frames appended to image.data) 1046 */ 1047 Image LoadImageAnim(const(char)* fileName, int* frames); 1048 /** 1049 * Load image from memory buffer, fileType refers to extension: i.e. '.png' 1050 */ 1051 Image LoadImageFromMemory(const(char)* fileType, const(ubyte)* fileData, int dataSize); 1052 /** 1053 * Load image from GPU texture data 1054 */ 1055 Image LoadImageFromTexture(Texture2D texture); 1056 /** 1057 * Load image from screen buffer and (screenshot) 1058 */ 1059 Image LoadImageFromScreen(); 1060 /** 1061 * Check if an image is ready 1062 */ 1063 bool IsImageReady(Image image); 1064 /** 1065 * Unload image from CPU memory (RAM) 1066 */ 1067 void UnloadImage(Image image); 1068 /** 1069 * Export image data to file, returns true on success 1070 */ 1071 bool ExportImage(Image image, const(char)* fileName); 1072 /** 1073 * Export image to memory buffer 1074 */ 1075 ubyte* ExportImageToMemory(Image image, const(char)* fileType, int* fileSize); 1076 /** 1077 * Export image as code file defining an array of bytes, returns true on success 1078 */ 1079 bool ExportImageAsCode(Image image, const(char)* fileName); 1080 /** 1081 * Generate image: plain color 1082 */ 1083 Image GenImageColor(int width, int height, Color color); 1084 /** 1085 * Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient 1086 */ 1087 Image GenImageGradientLinear(int width, int height, int direction, Color start, Color end); 1088 /** 1089 * Generate image: radial gradient 1090 */ 1091 Image GenImageGradientRadial(int width, int height, float density, Color inner, Color outer); 1092 /** 1093 * Generate image: square gradient 1094 */ 1095 Image GenImageGradientSquare(int width, int height, float density, Color inner, Color outer); 1096 /** 1097 * Generate image: checked 1098 */ 1099 Image GenImageChecked(int width, int height, int checksX, int checksY, Color col1, Color col2); 1100 /** 1101 * Generate image: white noise 1102 */ 1103 Image GenImageWhiteNoise(int width, int height, float factor); 1104 /** 1105 * Generate image: perlin noise 1106 */ 1107 Image GenImagePerlinNoise(int width, int height, int offsetX, int offsetY, float scale); 1108 /** 1109 * Generate image: cellular algorithm, bigger tileSize means bigger cells 1110 */ 1111 Image GenImageCellular(int width, int height, int tileSize); 1112 /** 1113 * Generate image: grayscale image from text data 1114 */ 1115 Image GenImageText(int width, int height, const(char)* text); 1116 /** 1117 * Create an image duplicate (useful for transformations) 1118 */ 1119 Image ImageCopy(Image image); 1120 /** 1121 * Create an image from another image piece 1122 */ 1123 Image ImageFromImage(Image image, Rectangle rec); 1124 /** 1125 * Create an image from text (default font) 1126 */ 1127 Image ImageText(const(char)* text, int fontSize, Color color); 1128 /** 1129 * Create an image from text (custom sprite font) 1130 */ 1131 Image ImageTextEx(Font font, const(char)* text, float fontSize, float spacing, Color tint); 1132 /** 1133 * Convert image data to desired format 1134 */ 1135 void ImageFormat(Image* image, int newFormat); 1136 /** 1137 * Convert image to POT (power-of-two) 1138 */ 1139 void ImageToPOT(Image* image, Color fill); 1140 /** 1141 * Crop an image to a defined rectangle 1142 */ 1143 void ImageCrop(Image* image, Rectangle crop); 1144 /** 1145 * Crop image depending on alpha value 1146 */ 1147 void ImageAlphaCrop(Image* image, float threshold); 1148 /** 1149 * Clear alpha channel to desired color 1150 */ 1151 void ImageAlphaClear(Image* image, Color color, float threshold); 1152 /** 1153 * Apply alpha mask to image 1154 */ 1155 void ImageAlphaMask(Image* image, Image alphaMask); 1156 /** 1157 * Premultiply alpha channel 1158 */ 1159 void ImageAlphaPremultiply(Image* image); 1160 /** 1161 * Apply Gaussian blur using a box blur approximation 1162 */ 1163 void ImageBlurGaussian(Image* image, int blurSize); 1164 /** 1165 * Resize image (Bicubic scaling algorithm) 1166 */ 1167 void ImageResize(Image* image, int newWidth, int newHeight); 1168 /** 1169 * Resize image (Nearest-Neighbor scaling algorithm) 1170 */ 1171 void ImageResizeNN(Image* image, int newWidth, int newHeight); 1172 /** 1173 * Resize canvas and fill with color 1174 */ 1175 void ImageResizeCanvas(Image* image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill); 1176 /** 1177 * Compute all mipmap levels for a provided image 1178 */ 1179 void ImageMipmaps(Image* image); 1180 /** 1181 * Dither image data to 16bpp or lower (Floyd-Steinberg dithering) 1182 */ 1183 void ImageDither(Image* image, int rBpp, int gBpp, int bBpp, int aBpp); 1184 /** 1185 * Flip image vertically 1186 */ 1187 void ImageFlipVertical(Image* image); 1188 /** 1189 * Flip image horizontally 1190 */ 1191 void ImageFlipHorizontal(Image* image); 1192 /** 1193 * Rotate image by input angle in degrees (-359 to 359) 1194 */ 1195 void ImageRotate(Image* image, int degrees); 1196 /** 1197 * Rotate image clockwise 90deg 1198 */ 1199 void ImageRotateCW(Image* image); 1200 /** 1201 * Rotate image counter-clockwise 90deg 1202 */ 1203 void ImageRotateCCW(Image* image); 1204 /** 1205 * Modify image color: tint 1206 */ 1207 void ImageColorTint(Image* image, Color color); 1208 /** 1209 * Modify image color: invert 1210 */ 1211 void ImageColorInvert(Image* image); 1212 /** 1213 * Modify image color: grayscale 1214 */ 1215 void ImageColorGrayscale(Image* image); 1216 /** 1217 * Modify image color: contrast (-100 to 100) 1218 */ 1219 void ImageColorContrast(Image* image, float contrast); 1220 /** 1221 * Modify image color: brightness (-255 to 255) 1222 */ 1223 void ImageColorBrightness(Image* image, int brightness); 1224 /** 1225 * Modify image color: replace color 1226 */ 1227 void ImageColorReplace(Image* image, Color color, Color replace); 1228 /** 1229 * Load color data from image as a Color array (RGBA - 32bit) 1230 */ 1231 Color* LoadImageColors(Image image); 1232 /** 1233 * Load colors palette from image as a Color array (RGBA - 32bit) 1234 */ 1235 Color* LoadImagePalette(Image image, int maxPaletteSize, int* colorCount); 1236 /** 1237 * Unload color data loaded with LoadImageColors() 1238 */ 1239 void UnloadImageColors(Color* colors); 1240 /** 1241 * Unload colors palette loaded with LoadImagePalette() 1242 */ 1243 void UnloadImagePalette(Color* colors); 1244 /** 1245 * Get image alpha border rectangle 1246 */ 1247 Rectangle GetImageAlphaBorder(Image image, float threshold); 1248 /** 1249 * Get image pixel color at (x, y) position 1250 */ 1251 Color GetImageColor(Image image, int x, int y); 1252 /** 1253 * Clear image background with given color 1254 */ 1255 void ImageClearBackground(Image* dst, Color color); 1256 /** 1257 * Draw pixel within an image 1258 */ 1259 void ImageDrawPixel(Image* dst, int posX, int posY, Color color); 1260 /** 1261 * Draw pixel within an image (Vector version) 1262 */ 1263 void ImageDrawPixelV(Image* dst, Vector2 position, Color color); 1264 /** 1265 * Draw line within an image 1266 */ 1267 void ImageDrawLine(Image* dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color); 1268 /** 1269 * Draw line within an image (Vector version) 1270 */ 1271 void ImageDrawLineV(Image* dst, Vector2 start, Vector2 end, Color color); 1272 /** 1273 * Draw a filled circle within an image 1274 */ 1275 void ImageDrawCircle(Image* dst, int centerX, int centerY, int radius, Color color); 1276 /** 1277 * Draw a filled circle within an image (Vector version) 1278 */ 1279 void ImageDrawCircleV(Image* dst, Vector2 center, int radius, Color color); 1280 /** 1281 * Draw circle outline within an image 1282 */ 1283 void ImageDrawCircleLines(Image* dst, int centerX, int centerY, int radius, Color color); 1284 /** 1285 * Draw circle outline within an image (Vector version) 1286 */ 1287 void ImageDrawCircleLinesV(Image* dst, Vector2 center, int radius, Color color); 1288 /** 1289 * Draw rectangle within an image 1290 */ 1291 void ImageDrawRectangle(Image* dst, int posX, int posY, int width, int height, Color color); 1292 /** 1293 * Draw rectangle within an image (Vector version) 1294 */ 1295 void ImageDrawRectangleV(Image* dst, Vector2 position, Vector2 size, Color color); 1296 /** 1297 * Draw rectangle within an image 1298 */ 1299 void ImageDrawRectangleRec(Image* dst, Rectangle rec, Color color); 1300 /** 1301 * Draw rectangle lines within an image 1302 */ 1303 void ImageDrawRectangleLines(Image* dst, Rectangle rec, int thick, Color color); 1304 /** 1305 * Draw a source image within a destination image (tint applied to source) 1306 */ 1307 void ImageDraw(Image* dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint); 1308 /** 1309 * Draw text (using default font) within an image (destination) 1310 */ 1311 void ImageDrawText(Image* dst, const(char)* text, int posX, int posY, int fontSize, Color color); 1312 /** 1313 * Draw text (custom sprite font) within an image (destination) 1314 */ 1315 void ImageDrawTextEx(Image* dst, Font font, const(char)* text, Vector2 position, float fontSize, float spacing, Color tint); 1316 /** 1317 * Load texture from file into GPU memory (VRAM) 1318 */ 1319 Texture2D LoadTexture(const(char)* fileName); 1320 /** 1321 * Load texture from image data 1322 */ 1323 Texture2D LoadTextureFromImage(Image image); 1324 /** 1325 * Load cubemap from image, multiple image cubemap layouts supported 1326 */ 1327 TextureCubemap LoadTextureCubemap(Image image, int layout); 1328 /** 1329 * Load texture for rendering (framebuffer) 1330 */ 1331 RenderTexture2D LoadRenderTexture(int width, int height); 1332 /** 1333 * Check if a texture is ready 1334 */ 1335 bool IsTextureReady(Texture2D texture); 1336 /** 1337 * Unload texture from GPU memory (VRAM) 1338 */ 1339 void UnloadTexture(Texture2D texture); 1340 /** 1341 * Check if a render texture is ready 1342 */ 1343 bool IsRenderTextureReady(RenderTexture2D target); 1344 /** 1345 * Unload render texture from GPU memory (VRAM) 1346 */ 1347 void UnloadRenderTexture(RenderTexture2D target); 1348 /** 1349 * Update GPU texture with new data 1350 */ 1351 void UpdateTexture(Texture2D texture, const(void)* pixels); 1352 /** 1353 * Update GPU texture rectangle with new data 1354 */ 1355 void UpdateTextureRec(Texture2D texture, Rectangle rec, const(void)* pixels); 1356 /** 1357 * Generate GPU mipmaps for a texture 1358 */ 1359 void GenTextureMipmaps(Texture2D* texture); 1360 /** 1361 * Set texture scaling filter mode 1362 */ 1363 void SetTextureFilter(Texture2D texture, int filter); 1364 /** 1365 * Set texture wrapping mode 1366 */ 1367 void SetTextureWrap(Texture2D texture, int wrap); 1368 /** 1369 * Draw a Texture2D 1370 */ 1371 void DrawTexture(Texture2D texture, int posX, int posY, Color tint); 1372 /** 1373 * Draw a Texture2D with position defined as Vector2 1374 */ 1375 void DrawTextureV(Texture2D texture, Vector2 position, Color tint); 1376 /** 1377 * Draw a Texture2D with extended parameters 1378 */ 1379 void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint); 1380 /** 1381 * Draw a part of a texture defined by a rectangle 1382 */ 1383 void DrawTextureRec(Texture2D texture, Rectangle source, Vector2 position, Color tint); 1384 /** 1385 * Draw a part of a texture defined by a rectangle with 'pro' parameters 1386 */ 1387 void DrawTexturePro(Texture2D texture, Rectangle source, Rectangle dest, Vector2 origin, float rotation, Color tint); 1388 /** 1389 * Draws a texture (or part of it) that stretches or shrinks nicely 1390 */ 1391 void DrawTextureNPatch(Texture2D texture, NPatchInfo nPatchInfo, Rectangle dest, Vector2 origin, float rotation, Color tint); 1392 /** 1393 * Get color with alpha applied, alpha goes from 0.0f to 1.0f 1394 */ 1395 Color Fade(Color color, float alpha); 1396 /** 1397 * Get hexadecimal value for a Color 1398 */ 1399 int ColorToInt(Color color); 1400 /** 1401 * Get Color normalized as float [0..1] 1402 */ 1403 Vector4 ColorNormalize(Color color); 1404 /** 1405 * Get Color from normalized values [0..1] 1406 */ 1407 Color ColorFromNormalized(Vector4 normalized); 1408 /** 1409 * Get HSV values for a Color, hue [0..360], saturation/value [0..1] 1410 */ 1411 Vector3 ColorToHSV(Color color); 1412 /** 1413 * Get a Color from HSV values, hue [0..360], saturation/value [0..1] 1414 */ 1415 Color ColorFromHSV(float hue, float saturation, float value); 1416 /** 1417 * Get color multiplied with another color 1418 */ 1419 Color ColorTint(Color color, Color tint); 1420 /** 1421 * Get color with brightness correction, brightness factor goes from -1.0f to 1.0f 1422 */ 1423 Color ColorBrightness(Color color, float factor); 1424 /** 1425 * Get color with contrast correction, contrast values between -1.0f and 1.0f 1426 */ 1427 Color ColorContrast(Color color, float contrast); 1428 /** 1429 * Get color with alpha applied, alpha goes from 0.0f to 1.0f 1430 */ 1431 Color ColorAlpha(Color color, float alpha); 1432 /** 1433 * Get src alpha-blended into dst color with tint 1434 */ 1435 Color ColorAlphaBlend(Color dst, Color src, Color tint); 1436 /** 1437 * Get Color structure from hexadecimal value 1438 */ 1439 Color GetColor(uint hexValue); 1440 /** 1441 * Get Color from a source pixel pointer of certain format 1442 */ 1443 Color GetPixelColor(void* srcPtr, int format); 1444 /** 1445 * Set color formatted into destination pixel pointer 1446 */ 1447 void SetPixelColor(void* dstPtr, Color color, int format); 1448 /** 1449 * Get pixel data size in bytes for certain format 1450 */ 1451 int GetPixelDataSize(int width, int height, int format); 1452 /** 1453 * Get the default Font 1454 */ 1455 Font GetFontDefault(); 1456 /** 1457 * Load font from file into GPU memory (VRAM) 1458 */ 1459 Font LoadFont(const(char)* fileName); 1460 /** 1461 * Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont 1462 */ 1463 Font LoadFontEx(const(char)* fileName, int fontSize, int* codepoints, int codepointCount); 1464 /** 1465 * Load font from Image (XNA style) 1466 */ 1467 Font LoadFontFromImage(Image image, Color key, int firstChar); 1468 /** 1469 * Load font from memory buffer, fileType refers to extension: i.e. '.ttf' 1470 */ 1471 Font LoadFontFromMemory(const(char)* fileType, const(ubyte)* fileData, int dataSize, int fontSize, int* codepoints, int codepointCount); 1472 /** 1473 * Check if a font is ready 1474 */ 1475 bool IsFontReady(Font font); 1476 /** 1477 * Load font data for further use 1478 */ 1479 GlyphInfo* LoadFontData(const(ubyte)* fileData, int dataSize, int fontSize, int* codepoints, int codepointCount, int type); 1480 /** 1481 * Generate image font atlas using chars info 1482 */ 1483 Image GenImageFontAtlas(const GlyphInfo* glyphs, Rectangle** glyphRecs, int glyphCount, int fontSize, int padding, int packMethod); 1484 /** 1485 * Unload font chars info data (RAM) 1486 */ 1487 void UnloadFontData(GlyphInfo* glyphs, int glyphCount); 1488 /** 1489 * Unload font from GPU memory (VRAM) 1490 */ 1491 void UnloadFont(Font font); 1492 /** 1493 * Export font as code file, returns true on success 1494 */ 1495 bool ExportFontAsCode(Font font, const(char)* fileName); 1496 /** 1497 * Draw current FPS 1498 */ 1499 void DrawFPS(int posX, int posY); 1500 /** 1501 * Draw text (using default font) 1502 */ 1503 void DrawText(const(char)* text, int posX, int posY, int fontSize, Color color); 1504 /** 1505 * Draw text using font and additional parameters 1506 */ 1507 void DrawTextEx(Font font, const(char)* text, Vector2 position, float fontSize, float spacing, Color tint); 1508 /** 1509 * Draw text using Font and pro parameters (rotation) 1510 */ 1511 void DrawTextPro(Font font, const(char)* text, Vector2 position, Vector2 origin, float rotation, float fontSize, float spacing, Color tint); 1512 /** 1513 * Draw one character (codepoint) 1514 */ 1515 void DrawTextCodepoint(Font font, int codepoint, Vector2 position, float fontSize, Color tint); 1516 /** 1517 * Draw multiple character (codepoint) 1518 */ 1519 void DrawTextCodepoints(Font font, const(int)* codepoints, int codepointCount, Vector2 position, float fontSize, float spacing, Color tint); 1520 /** 1521 * Set vertical line spacing when drawing with line-breaks 1522 */ 1523 void SetTextLineSpacing(int spacing); 1524 /** 1525 * Measure string width for default font 1526 */ 1527 int MeasureText(const(char)* text, int fontSize); 1528 /** 1529 * Measure string size for Font 1530 */ 1531 Vector2 MeasureTextEx(Font font, const(char)* text, float fontSize, float spacing); 1532 /** 1533 * Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found 1534 */ 1535 int GetGlyphIndex(Font font, int codepoint); 1536 /** 1537 * Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found 1538 */ 1539 GlyphInfo GetGlyphInfo(Font font, int codepoint); 1540 /** 1541 * Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found 1542 */ 1543 Rectangle GetGlyphAtlasRec(Font font, int codepoint); 1544 /** 1545 * Load UTF-8 text encoded from codepoints array 1546 */ 1547 char* LoadUTF8(const(int)* codepoints, int length); 1548 /** 1549 * Unload UTF-8 text encoded from codepoints array 1550 */ 1551 void UnloadUTF8(char* text); 1552 /** 1553 * Load all codepoints from a UTF-8 text string, codepoints count returned by parameter 1554 */ 1555 int* LoadCodepoints(const(char)* text, int* count); 1556 /** 1557 * Unload codepoints data from memory 1558 */ 1559 void UnloadCodepoints(int* codepoints); 1560 /** 1561 * Get total number of codepoints in a UTF-8 encoded string 1562 */ 1563 int GetCodepointCount(const(char)* text); 1564 /** 1565 * Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure 1566 */ 1567 int GetCodepoint(const(char)* text, int* codepointSize); 1568 /** 1569 * Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure 1570 */ 1571 int GetCodepointNext(const(char)* text, int* codepointSize); 1572 /** 1573 * Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure 1574 */ 1575 int GetCodepointPrevious(const(char)* text, int* codepointSize); 1576 /** 1577 * Encode one codepoint into UTF-8 byte array (array length returned as parameter) 1578 */ 1579 const(char)* CodepointToUTF8(int codepoint, int* utf8Size); 1580 /** 1581 * Copy one string to another, returns bytes copied 1582 */ 1583 int TextCopy(char* dst, const(char)* src); 1584 /** 1585 * Check if two text string are equal 1586 */ 1587 bool TextIsEqual(const(char)* text1, const(char)* text2); 1588 /** 1589 * Get text length, checks for '\0' ending 1590 */ 1591 uint TextLength(const(char)* text); 1592 /** 1593 * Get a piece of a text string 1594 */ 1595 const(char)* TextSubtext(const(char)* text, int position, int length); 1596 /** 1597 * Replace text string (WARNING: memory must be freed!) 1598 */ 1599 char* TextReplace(char* text, const(char)* replace, const(char)* by); 1600 /** 1601 * Insert text in a position (WARNING: memory must be freed!) 1602 */ 1603 char* TextInsert(const(char)* text, const(char)* insert, int position); 1604 /** 1605 * Join text strings with delimiter 1606 */ 1607 const(char)* TextJoin(const(char*)* textList, int count, const(char)* delimiter); 1608 /** 1609 * Split text into multiple strings 1610 */ 1611 const(char*)* TextSplit(const(char)* text, char delimiter, int* count); 1612 /** 1613 * Append text at specific position and move cursor! 1614 */ 1615 void TextAppend(char* text, const(char)* append, int* position); 1616 /** 1617 * Find first text occurrence within a string 1618 */ 1619 int TextFindIndex(const(char)* text, const(char)* find); 1620 /** 1621 * Get upper case version of provided string 1622 */ 1623 const(char)* TextToUpper(const(char)* text); 1624 /** 1625 * Get lower case version of provided string 1626 */ 1627 const(char)* TextToLower(const(char)* text); 1628 /** 1629 * Get Pascal case notation version of provided string 1630 */ 1631 const(char)* TextToPascal(const(char)* text); 1632 /** 1633 * Get integer value from text (negative values not supported) 1634 */ 1635 int TextToInteger(const(char)* text); 1636 /** 1637 * Draw a line in 3D world space 1638 */ 1639 void DrawLine3D(Vector3 startPos, Vector3 endPos, Color color); 1640 /** 1641 * Draw a point in 3D space, actually a small line 1642 */ 1643 void DrawPoint3D(Vector3 position, Color color); 1644 /** 1645 * Draw a circle in 3D world space 1646 */ 1647 void DrawCircle3D(Vector3 center, float radius, Vector3 rotationAxis, float rotationAngle, Color color); 1648 /** 1649 * Draw a color-filled triangle (vertex in counter-clockwise order!) 1650 */ 1651 void DrawTriangle3D(Vector3 v1, Vector3 v2, Vector3 v3, Color color); 1652 /** 1653 * Draw a triangle strip defined by points 1654 */ 1655 void DrawTriangleStrip3D(Vector3* points, int pointCount, Color color); 1656 /** 1657 * Draw cube 1658 */ 1659 void DrawCube(Vector3 position, float width, float height, float length, Color color); 1660 /** 1661 * Draw cube (Vector version) 1662 */ 1663 void DrawCubeV(Vector3 position, Vector3 size, Color color); 1664 /** 1665 * Draw cube wires 1666 */ 1667 void DrawCubeWires(Vector3 position, float width, float height, float length, Color color); 1668 /** 1669 * Draw cube wires (Vector version) 1670 */ 1671 void DrawCubeWiresV(Vector3 position, Vector3 size, Color color); 1672 /** 1673 * Draw sphere 1674 */ 1675 void DrawSphere(Vector3 centerPos, float radius, Color color); 1676 /** 1677 * Draw sphere with extended parameters 1678 */ 1679 void DrawSphereEx(Vector3 centerPos, float radius, int rings, int slices, Color color); 1680 /** 1681 * Draw sphere wires 1682 */ 1683 void DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Color color); 1684 /** 1685 * Draw a cylinder/cone 1686 */ 1687 void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); 1688 /** 1689 * Draw a cylinder with base at startPos and top at endPos 1690 */ 1691 void DrawCylinderEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color); 1692 /** 1693 * Draw a cylinder/cone wires 1694 */ 1695 void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); 1696 /** 1697 * Draw a cylinder wires with base at startPos and top at endPos 1698 */ 1699 void DrawCylinderWiresEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color); 1700 /** 1701 * Draw a capsule with the center of its sphere caps at startPos and endPos 1702 */ 1703 void DrawCapsule(Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color); 1704 /** 1705 * Draw capsule wireframe with the center of its sphere caps at startPos and endPos 1706 */ 1707 void DrawCapsuleWires(Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color); 1708 /** 1709 * Draw a plane XZ 1710 */ 1711 void DrawPlane(Vector3 centerPos, Vector2 size, Color color); 1712 /** 1713 * Draw a ray line 1714 */ 1715 void DrawRay(Ray ray, Color color); 1716 /** 1717 * Draw a grid (centered at (0, 0, 0)) 1718 */ 1719 void DrawGrid(int slices, float spacing); 1720 /** 1721 * Load model from files (meshes and materials) 1722 */ 1723 Model LoadModel(const(char)* fileName); 1724 /** 1725 * Load model from generated mesh (default material) 1726 */ 1727 Model LoadModelFromMesh(Mesh mesh); 1728 /** 1729 * Check if a model is ready 1730 */ 1731 bool IsModelReady(Model model); 1732 /** 1733 * Unload model (including meshes) from memory (RAM and/or VRAM) 1734 */ 1735 void UnloadModel(Model model); 1736 /** 1737 * Compute model bounding box limits (considers all meshes) 1738 */ 1739 BoundingBox GetModelBoundingBox(Model model); 1740 /** 1741 * Draw a model (with texture if set) 1742 */ 1743 void DrawModel(Model model, Vector3 position, float scale, Color tint); 1744 /** 1745 * Draw a model with extended parameters 1746 */ 1747 void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); 1748 /** 1749 * Draw a model wires (with texture if set) 1750 */ 1751 void DrawModelWires(Model model, Vector3 position, float scale, Color tint); 1752 /** 1753 * Draw a model wires (with texture if set) with extended parameters 1754 */ 1755 void DrawModelWiresEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); 1756 /** 1757 * Draw bounding box (wires) 1758 */ 1759 void DrawBoundingBox(BoundingBox box, Color color); 1760 /** 1761 * Draw a billboard texture 1762 */ 1763 void DrawBillboard(Camera camera, Texture2D texture, Vector3 position, float size, Color tint); 1764 /** 1765 * Draw a billboard texture defined by source 1766 */ 1767 void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector2 size, Color tint); 1768 /** 1769 * Draw a billboard texture defined by source and rotation 1770 */ 1771 void DrawBillboardPro(Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector3 up, Vector2 size, Vector2 origin, float rotation, Color tint); 1772 /** 1773 * Upload mesh vertex data in GPU and provide VAO/VBO ids 1774 */ 1775 void UploadMesh(Mesh* mesh, bool dynamic); 1776 /** 1777 * Update mesh vertex data in GPU for a specific buffer index 1778 */ 1779 void UpdateMeshBuffer(Mesh mesh, int index, const(void)* data, int dataSize, int offset); 1780 /** 1781 * Unload mesh data from CPU and GPU 1782 */ 1783 void UnloadMesh(Mesh mesh); 1784 /** 1785 * Draw a 3d mesh with material and transform 1786 */ 1787 void DrawMesh(Mesh mesh, Material material, Matrix transform); 1788 /** 1789 * Draw multiple mesh instances with material and different transforms 1790 */ 1791 void DrawMeshInstanced(Mesh mesh, Material material, const Matrix* transforms, int instances); 1792 /** 1793 * Export mesh data to file, returns true on success 1794 */ 1795 bool ExportMesh(Mesh mesh, const(char)* fileName); 1796 /** 1797 * Compute mesh bounding box limits 1798 */ 1799 BoundingBox GetMeshBoundingBox(Mesh mesh); 1800 /** 1801 * Compute mesh tangents 1802 */ 1803 void GenMeshTangents(Mesh* mesh); 1804 /** 1805 * Generate polygonal mesh 1806 */ 1807 Mesh GenMeshPoly(int sides, float radius); 1808 /** 1809 * Generate plane mesh (with subdivisions) 1810 */ 1811 Mesh GenMeshPlane(float width, float length, int resX, int resZ); 1812 /** 1813 * Generate cuboid mesh 1814 */ 1815 Mesh GenMeshCube(float width, float height, float length); 1816 /** 1817 * Generate sphere mesh (standard sphere) 1818 */ 1819 Mesh GenMeshSphere(float radius, int rings, int slices); 1820 /** 1821 * Generate half-sphere mesh (no bottom cap) 1822 */ 1823 Mesh GenMeshHemiSphere(float radius, int rings, int slices); 1824 /** 1825 * Generate cylinder mesh 1826 */ 1827 Mesh GenMeshCylinder(float radius, float height, int slices); 1828 /** 1829 * Generate cone/pyramid mesh 1830 */ 1831 Mesh GenMeshCone(float radius, float height, int slices); 1832 /** 1833 * Generate torus mesh 1834 */ 1835 Mesh GenMeshTorus(float radius, float size, int radSeg, int sides); 1836 /** 1837 * Generate trefoil knot mesh 1838 */ 1839 Mesh GenMeshKnot(float radius, float size, int radSeg, int sides); 1840 /** 1841 * Generate heightmap mesh from image data 1842 */ 1843 Mesh GenMeshHeightmap(Image heightmap, Vector3 size); 1844 /** 1845 * Generate cubes-based map mesh from image data 1846 */ 1847 Mesh GenMeshCubicmap(Image cubicmap, Vector3 cubeSize); 1848 /** 1849 * Load materials from model file 1850 */ 1851 Material* LoadMaterials(const(char)* fileName, int* materialCount); 1852 /** 1853 * Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) 1854 */ 1855 Material LoadMaterialDefault(); 1856 /** 1857 * Check if a material is ready 1858 */ 1859 bool IsMaterialReady(Material material); 1860 /** 1861 * Unload material from GPU memory (VRAM) 1862 */ 1863 void UnloadMaterial(Material material); 1864 /** 1865 * Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) 1866 */ 1867 void SetMaterialTexture(Material* material, int mapType, Texture2D texture); 1868 /** 1869 * Set material for a mesh 1870 */ 1871 void SetModelMeshMaterial(Model* model, int meshId, int materialId); 1872 /** 1873 * Load model animations from file 1874 */ 1875 ModelAnimation* LoadModelAnimations(const(char)* fileName, int* animCount); 1876 /** 1877 * Update model animation pose 1878 */ 1879 void UpdateModelAnimation(Model model, ModelAnimation anim, int frame); 1880 /** 1881 * Unload animation data 1882 */ 1883 void UnloadModelAnimation(ModelAnimation anim); 1884 /** 1885 * Unload animation array data 1886 */ 1887 void UnloadModelAnimations(ModelAnimation* animations, int animCount); 1888 /** 1889 * Check model animation skeleton match 1890 */ 1891 bool IsModelAnimationValid(Model model, ModelAnimation anim); 1892 /** 1893 * Check collision between two spheres 1894 */ 1895 bool CheckCollisionSpheres(Vector3 center1, float radius1, Vector3 center2, float radius2); 1896 /** 1897 * Check collision between two bounding boxes 1898 */ 1899 bool CheckCollisionBoxes(BoundingBox box1, BoundingBox box2); 1900 /** 1901 * Check collision between box and sphere 1902 */ 1903 bool CheckCollisionBoxSphere(BoundingBox box, Vector3 center, float radius); 1904 /** 1905 * Get collision info between ray and sphere 1906 */ 1907 RayCollision GetRayCollisionSphere(Ray ray, Vector3 center, float radius); 1908 /** 1909 * Get collision info between ray and box 1910 */ 1911 RayCollision GetRayCollisionBox(Ray ray, BoundingBox box); 1912 /** 1913 * Get collision info between ray and mesh 1914 */ 1915 RayCollision GetRayCollisionMesh(Ray ray, Mesh mesh, Matrix transform); 1916 /** 1917 * Get collision info between ray and triangle 1918 */ 1919 RayCollision GetRayCollisionTriangle(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3); 1920 /** 1921 * Get collision info between ray and quad 1922 */ 1923 RayCollision GetRayCollisionQuad(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4); 1924 /** 1925 * Initialize audio device and context 1926 */ 1927 void InitAudioDevice(); 1928 /** 1929 * Close the audio device and context 1930 */ 1931 void CloseAudioDevice(); 1932 /** 1933 * Check if audio device has been initialized successfully 1934 */ 1935 bool IsAudioDeviceReady(); 1936 /** 1937 * Set master volume (listener) 1938 */ 1939 void SetMasterVolume(float volume); 1940 /** 1941 * Get master volume (listener) 1942 */ 1943 float GetMasterVolume(); 1944 /** 1945 * Load wave data from file 1946 */ 1947 Wave LoadWave(const(char)* fileName); 1948 /** 1949 * Load wave from memory buffer, fileType refers to extension: i.e. '.wav' 1950 */ 1951 Wave LoadWaveFromMemory(const(char)* fileType, const(ubyte)* fileData, int dataSize); 1952 /** 1953 * Checks if wave data is ready 1954 */ 1955 bool IsWaveReady(Wave wave); 1956 /** 1957 * Load sound from file 1958 */ 1959 Sound LoadSound(const(char)* fileName); 1960 /** 1961 * Load sound from wave data 1962 */ 1963 Sound LoadSoundFromWave(Wave wave); 1964 /** 1965 * Create a new sound that shares the same sample data as the source sound, does not own the sound data 1966 */ 1967 Sound LoadSoundAlias(Sound source); 1968 /** 1969 * Checks if a sound is ready 1970 */ 1971 bool IsSoundReady(Sound sound); 1972 /** 1973 * Update sound buffer with new data 1974 */ 1975 void UpdateSound(Sound sound, const(void)* data, int sampleCount); 1976 /** 1977 * Unload wave data 1978 */ 1979 void UnloadWave(Wave wave); 1980 /** 1981 * Unload sound 1982 */ 1983 void UnloadSound(Sound sound); 1984 /** 1985 * Unload a sound alias (does not deallocate sample data) 1986 */ 1987 void UnloadSoundAlias(Sound aka); 1988 /** 1989 * Export wave data to file, returns true on success 1990 */ 1991 bool ExportWave(Wave wave, const(char)* fileName); 1992 /** 1993 * Export wave sample data to code (.h), returns true on success 1994 */ 1995 bool ExportWaveAsCode(Wave wave, const(char)* fileName); 1996 /** 1997 * Play a sound 1998 */ 1999 void PlaySound(Sound sound); 2000 /** 2001 * Stop playing a sound 2002 */ 2003 void StopSound(Sound sound); 2004 /** 2005 * Pause a sound 2006 */ 2007 void PauseSound(Sound sound); 2008 /** 2009 * Resume a paused sound 2010 */ 2011 void ResumeSound(Sound sound); 2012 /** 2013 * Check if a sound is currently playing 2014 */ 2015 bool IsSoundPlaying(Sound sound); 2016 /** 2017 * Set volume for a sound (1.0 is max level) 2018 */ 2019 void SetSoundVolume(Sound sound, float volume); 2020 /** 2021 * Set pitch for a sound (1.0 is base level) 2022 */ 2023 void SetSoundPitch(Sound sound, float pitch); 2024 /** 2025 * Set pan for a sound (0.5 is center) 2026 */ 2027 void SetSoundPan(Sound sound, float pan); 2028 /** 2029 * Copy a wave to a new wave 2030 */ 2031 Wave WaveCopy(Wave wave); 2032 /** 2033 * Crop a wave to defined samples range 2034 */ 2035 void WaveCrop(Wave* wave, int initSample, int finalSample); 2036 /** 2037 * Convert wave data to desired format 2038 */ 2039 void WaveFormat(Wave* wave, int sampleRate, int sampleSize, int channels); 2040 /** 2041 * Load samples data from wave as a 32bit float data array 2042 */ 2043 float* LoadWaveSamples(Wave wave); 2044 /** 2045 * Unload samples data loaded with LoadWaveSamples() 2046 */ 2047 void UnloadWaveSamples(float* samples); 2048 /** 2049 * Load music stream from file 2050 */ 2051 Music LoadMusicStream(const(char)* fileName); 2052 /** 2053 * Load music stream from data 2054 */ 2055 Music LoadMusicStreamFromMemory(const(char)* fileType, const(ubyte)* data, int dataSize); 2056 /** 2057 * Checks if a music stream is ready 2058 */ 2059 bool IsMusicReady(Music music); 2060 /** 2061 * Unload music stream 2062 */ 2063 void UnloadMusicStream(Music music); 2064 /** 2065 * Start music playing 2066 */ 2067 void PlayMusicStream(Music music); 2068 /** 2069 * Check if music is playing 2070 */ 2071 bool IsMusicStreamPlaying(Music music); 2072 /** 2073 * Updates buffers for music streaming 2074 */ 2075 void UpdateMusicStream(Music music); 2076 /** 2077 * Stop music playing 2078 */ 2079 void StopMusicStream(Music music); 2080 /** 2081 * Pause music playing 2082 */ 2083 void PauseMusicStream(Music music); 2084 /** 2085 * Resume playing paused music 2086 */ 2087 void ResumeMusicStream(Music music); 2088 /** 2089 * Seek music to a position (in seconds) 2090 */ 2091 void SeekMusicStream(Music music, float position); 2092 /** 2093 * Set volume for music (1.0 is max level) 2094 */ 2095 void SetMusicVolume(Music music, float volume); 2096 /** 2097 * Set pitch for a music (1.0 is base level) 2098 */ 2099 void SetMusicPitch(Music music, float pitch); 2100 /** 2101 * Set pan for a music (0.5 is center) 2102 */ 2103 void SetMusicPan(Music music, float pan); 2104 /** 2105 * Get music time length (in seconds) 2106 */ 2107 float GetMusicTimeLength(Music music); 2108 /** 2109 * Get current music time played (in seconds) 2110 */ 2111 float GetMusicTimePlayed(Music music); 2112 /** 2113 * Load audio stream (to stream raw audio pcm data) 2114 */ 2115 AudioStream LoadAudioStream(uint sampleRate, uint sampleSize, uint channels); 2116 /** 2117 * Checks if an audio stream is ready 2118 */ 2119 bool IsAudioStreamReady(AudioStream stream); 2120 /** 2121 * Unload audio stream and free memory 2122 */ 2123 void UnloadAudioStream(AudioStream stream); 2124 /** 2125 * Update audio stream buffers with data 2126 */ 2127 void UpdateAudioStream(AudioStream stream, const(void)* data, int frameCount); 2128 /** 2129 * Check if any audio stream buffers requires refill 2130 */ 2131 bool IsAudioStreamProcessed(AudioStream stream); 2132 /** 2133 * Play audio stream 2134 */ 2135 void PlayAudioStream(AudioStream stream); 2136 /** 2137 * Pause audio stream 2138 */ 2139 void PauseAudioStream(AudioStream stream); 2140 /** 2141 * Resume audio stream 2142 */ 2143 void ResumeAudioStream(AudioStream stream); 2144 /** 2145 * Check if audio stream is playing 2146 */ 2147 bool IsAudioStreamPlaying(AudioStream stream); 2148 /** 2149 * Stop audio stream 2150 */ 2151 void StopAudioStream(AudioStream stream); 2152 /** 2153 * Set volume for audio stream (1.0 is max level) 2154 */ 2155 void SetAudioStreamVolume(AudioStream stream, float volume); 2156 /** 2157 * Set pitch for audio stream (1.0 is base level) 2158 */ 2159 void SetAudioStreamPitch(AudioStream stream, float pitch); 2160 /** 2161 * Set pan for audio stream (0.5 is centered) 2162 */ 2163 void SetAudioStreamPan(AudioStream stream, float pan); 2164 /** 2165 * Default size for new audio streams 2166 */ 2167 void SetAudioStreamBufferSizeDefault(int size); 2168 /** 2169 * Audio thread callback to request new data 2170 */ 2171 void SetAudioStreamCallback(AudioStream stream, AudioCallback callback); 2172 /** 2173 * Attach audio stream processor to stream, receives the samples as <float>s 2174 */ 2175 void AttachAudioStreamProcessor(AudioStream stream, AudioCallback processor); 2176 /** 2177 * Detach audio stream processor from stream 2178 */ 2179 void DetachAudioStreamProcessor(AudioStream stream, AudioCallback processor); 2180 /** 2181 * Attach audio stream processor to the entire audio pipeline, receives the samples as <float>s 2182 */ 2183 void AttachAudioMixedProcessor(AudioCallback processor); 2184 /** 2185 * Detach audio stream processor from the entire audio pipeline 2186 */ 2187 void DetachAudioMixedProcessor(AudioCallback processor); 2188 } 2189