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