5798 Commits

Author SHA1 Message Date
Ray ae50bfa2cc Updated Npp intellisense data for raylib 5.0 2023-11-15 11:30:50 +01:00
Ray e84a420766 Update miniaudio to v0.11.21 2023-11-15 10:25:09 +01:00
2Bear efc0fed9ce Fix tiny spelling mistake. (#3540) 2023-11-14 14:28:45 +01:00
Ray 5ac00a3ccb Merge branch 'master' of https://github.com/raysan5/raylib 2023-11-14 12:25:58 +01:00
ubkp db70db5f4d Fix missing keys on PLATFORM_DESKTOP_SDL (#3539) 2023-11-14 11:49:27 +01:00
Ray da660058eb Update HISTORY.md 2023-11-14 11:47:27 +01:00
Ray 92b7589f89 Update CHANGELOG 2023-11-14 11:47:23 +01:00
Ray a6c33193f7 Update HISTORY.md 2023-11-13 21:40:37 +01:00
Ray d03d6787d9 Update HISTORY.md 2023-11-13 21:21:38 +01:00
Ray 5c79c5a2ec Update rcore.c 2023-11-13 16:11:10 +01:00
ubkp 87f26c845c Fix mouse button order for SDL (#3534) 2023-11-13 00:16:31 +01:00
Ray 4f67f5f159 REVIEWED: TakeScreenshot(), potential issues 2023-11-12 12:38:10 +01:00
JupiterRider 0873af4734 Update BINDINGS.md (#3531) 2023-11-12 12:23:00 +01:00
Le Juez Victor 9099077075 [rlgl] Fixed return type of GetCompressedFormatName (#3529)
The return type of `GetCompressedFormatName` has been corrected from `char *` to `const char *`
2023-11-12 00:09:00 +01:00
Ray 1b88f2ec03 Review #3526 2023-11-11 20:53:36 +01:00
isaacgravenortechnologies de3072f838 Added wiki links to README (#3525)
* Added wiki link

* Added second wiki link
2023-11-11 18:11:58 +01:00
ubkp 9634c84e1c Fix automation recording (#3523) 2023-11-11 16:06:23 +01:00
Ray d32ebbe716 Testing contributors info 2023-11-11 16:05:02 +01:00
Ray bdcca4510d Update ROADMAP.md 2023-11-10 23:25:00 +01:00
Ray 107ece438a Reviewed duplicate lines 2023-11-10 19:48:47 +01:00
Ray e7ba72ded9 Update core_automation_events.c 2023-11-10 19:36:58 +01:00
Ray e4ea116857 Reviewing automation events on web... 2023-11-10 19:25:28 +01:00
Ray 16b79f2c70 Format tweaks 2023-11-10 19:22:22 +01:00
Miloslav Milenkov a92c34d83c Changed keybinds for the automation example to avoid conflict with browser shortcuts (#3519) 2023-11-10 15:04:04 +01:00
Ray 30dcbaff20 Update rlgl.h 2023-11-10 13:33:42 +01:00
Ray 737cd0be7f Updated for upcoming raylib 5.0 2023-11-10 13:27:13 +01:00
maksut 1b524bb2ec WindowShouldClose(), reset shouldClose flag when window is inited (#3518) 2023-11-09 23:36:22 +01:00
Ray 80aafdb38f REVIEWED: BeginScissorMode() #3510 2023-11-09 23:35:24 +01:00
Ray c471d22965 Update miniaudio.h 2023-11-09 23:22:30 +01:00
Ray 21dc42d2ad Updated examples 2023-11-09 09:53:25 +01:00
Ray c69b89cc42 Update example: shapes_splines_drawing 2023-11-09 02:01:00 +01:00
Ray ed2ac2ae79 Update CHANGELOG 2023-11-09 00:16:58 +01:00
Ray 4c2340aea6 Update core_2d_camera_platformer.c 2023-11-08 23:35:27 +01:00
Ray 9c2308bdc3 Examples reviews 2023-11-08 23:28:31 +01:00
Ray 022b464b0b Remove BOM 2023-11-08 20:37:35 +01:00
Ray 040b945fef Reviewed some examples and warnings 2023-11-08 20:09:32 +01:00
Ray bee6d7f065 Update Makefile.Web 2023-11-08 19:34:44 +01:00
Ray 33580991c7 Update shell.html 2023-11-08 19:34:38 +01:00
Ray e7114a5c2a Update rcore.c 2023-11-08 19:34:29 +01:00
Ray 9d8a11f21a Update textures_textured_curve.c 2023-11-08 18:13:25 +01:00
Ray 21354119cc REVIEWED: Makefile.Web, reorganize and add examples 2023-11-08 18:10:29 +01:00
Ray bd3ffa7db3 REDESIGNED: Spline drawing functionality
This change allows more versatile and consistent splines drawing. It also gives more control to advance users to draw splines as individual segments.
2023-11-08 17:42:35 +01:00
Ray bbf0c3a46d REVIEWED: Added new examples to VS2022 solution 2023-11-08 17:41:08 +01:00
Ray fe757b6267 Update rtextures.c 2023-11-08 17:40:23 +01:00
Ray 60fab9c405 Update README.md 2023-11-08 15:14:21 +01:00
ubkp 271a72f2f2 Fix absRange for PLATFORM_DRM (#3517) 2023-11-07 22:15:23 +01:00
Ray 580fbf441c Update textures_textured_curve.c 2023-11-07 20:02:55 +01:00
Ray 4b87cc455d Update shapes_splines_drawing.c 2023-11-07 19:58:45 +01:00
Ray f01d3db739 ADDED: GetSplinePoint*() functions for spline evaluation
RENAMED: `DrawLine<spline_type>()` to `DrawSpline<spline_type>()` for more consistent and clear naming
REVIEWED: Bezier drawing parameters order, more consistent
REVIEWED: Spline-based examples -WIP-
2023-11-07 19:25:49 +01:00
Ray c69e1c379b Merge branch 'master' of https://github.com/raysan5/raylib 2023-11-07 19:22:21 +01:00
Ray e8a3f9f7fa ADDED: Open-graph image alt properties 2023-11-07 19:22:12 +01:00
ubkp 9a2b735645 Fix mouse/touch/gestures for PLATFORM_DRM (#3515) 2023-11-07 19:02:24 +01:00
Ray a57ac0b18e Update m3d.h 2023-11-07 13:52:36 +01:00
Ray 30987eaf06 Update cgltf.h 2023-11-07 13:52:33 +01:00
Ray 02aa1ee873 Updated dr audio libraries 2023-11-07 13:48:48 +01:00
Ray 11de73dfd6 Update miniaudio.h 2023-11-07 13:44:55 +01:00
mooff 3b09ef58ca Add ES 3.0 to CMakeOptions (#3514) 2023-11-07 08:41:15 +01:00
Jeffery Myers 6cd37e57a6 Fix warnings in visual studio (#3512) 2023-11-06 20:31:07 +01:00
Ray fc21a8e552 Update raygui.h 2023-11-06 20:14:40 +01:00
Ray 386bf890a0 Merge branch 'master' of https://github.com/raysan5/raylib 2023-11-06 20:06:46 +01:00
Ray adaecba162 Update codeql.yml 2023-11-06 20:06:30 +01:00
Ray 9c816bbac1 Update codeql.yml 2023-11-06 19:59:30 +01:00
Ray a810976aa6 REVIEWED: CodeQL workflow, cleaning and organization 2023-11-06 19:53:44 +01:00
Ray 0a9bd393dc REVIEWED: sinfl external library to avoid ASAN complaints #3349 2023-11-06 19:30:00 +01:00
Ray 8b2103fc77 REVIEWED: ScanDirectoryFiles*()- Paths building slashes sides #3507 2023-11-06 19:15:11 +01:00
b4yuan b216e2fc98 Add CodeQL Workflow for Code Security Analysis (#3476)
* Add CodeQL Workflow for Code Security Analysis

Add CodeQL Workflow for Code Security Analysis

This pull request introduces a CodeQL workflow to enhance the security analysis of our repository. CodeQL is a powerful static analysis tool that helps identify and mitigate security vulnerabilities in our codebase. By integrating this workflow into our GitHub Actions, we can proactively identify and address potential issues before they become security threats.

We added a new CodeQL workflow file (.github/workflows/codeql.yml) that
- Runs on every push and pull request to the main branch.
- Excludes queries with a high false positive rate or low-severity findings.
- Does not display results for third-party code, focusing only on our own codebase.

Testing:
To validate the functionality of this workflow, we have run several test scans on the codebase and reviewed the results. The workflow successfully compiles the project, identifies issues, and provides actionable insights while reducing noise by excluding certain queries and third-party code.

Deployment:
Once this pull request is merged, the CodeQL workflow will be active and automatically run on every push and pull request to the main branch. To view the results of these code scans, please follow these steps:
1. Under the repository name, click on the Security tab.
2. In the left sidebar, click Code scanning alerts.

Additional Information:
- You can further customize the workflow to adapt to your specific needs by modifying the workflow file.
- For more information on CodeQL and how to interpret its results, refer to the GitHub documentation and the CodeQL documentation.

Signed-off-by: Brian <bayuan@purdue.edu>

* Add CodeQL Workflow for Code Security Analysis

Add CodeQL Workflow for Code Security Analysis

This pull request introduces a CodeQL workflow to enhance the security analysis of our repository. CodeQL is a powerful static analysis tool that helps identify and mitigate security vulnerabilities in our codebase. By integrating this workflow into our GitHub Actions, we can proactively identify and address potential issues before they become security threats.

We added a new CodeQL workflow file (.github/workflows/codeql.yml) that
- Runs on every pull request (functionality to run on every push to main branches is included as a comment for convenience).
- Runs daily.
- Excludes queries with a high false positive rate or low-severity findings.
- Does not display results for git submodules, focusing only on our own codebase.

Testing:
To validate the functionality of this workflow, we have run several test scans on the codebase and reviewed the results. The workflow successfully compiles the project, identifies issues, and provides actionable insights while reducing noise by excluding certain queries and third-party code.

Deployment:
Once this pull request is merged, the CodeQL workflow will be active and automatically run on every push and pull request to the main branch. To view the results of these code scans, please follow these steps:
1. Under the repository name, click on the Security tab.
2. In the left sidebar, click Code scanning alerts.

Additional Information:
- You can further customize the workflow to adapt to your specific needs by modifying the workflow file.
- For more information on CodeQL and how to interpret its results, refer to the GitHub documentation and the CodeQL documentation (https://codeql.github.com/ and https://codeql.github.com/docs/).

Signed-off-by: Brian <bayuan@purdue.edu>

* Add CodeQL Workflow for Code Security Analysis

Add CodeQL Workflow for Code Security Analysis

This pull request introduces a CodeQL workflow to enhance the security analysis of our repository. CodeQL is a powerful static analysis tool that helps identify and mitigate security vulnerabilities in our codebase. By integrating this workflow into our GitHub Actions, we can proactively identify and address potential issues before they become security threats.

We added a new CodeQL workflow file (.github/workflows/codeql.yml) that
- Runs on every pull request (functionality to run on every push to main branches is included as a comment for convenience).
- Runs daily.
- Excludes queries with a high false positive rate or low-severity findings.
- Does not display results for git submodules, focusing only on our own codebase.

Testing:
To validate the functionality of this workflow, we have run several test scans on the codebase and reviewed the results. The workflow successfully compiles the project, identifies issues, and provides actionable insights while reducing noise by excluding certain queries and third-party code.

Deployment:
Once this pull request is merged, the CodeQL workflow will be active and automatically run on every push and pull request to the main branch. To view the results of these code scans, please follow these steps:
1. Under the repository name, click on the Security tab.
2. In the left sidebar, click Code scanning alerts.

Additional Information:
- You can further customize the workflow to adapt to your specific needs by modifying the workflow file.
- For more information on CodeQL and how to interpret its results, refer to the GitHub documentation and the CodeQL documentation (https://codeql.github.com/ and https://codeql.github.com/docs/).

Signed-off-by: Brian <bayuan@purdue.edu>

* Add CodeQL Workflow for Code Security Analysis

Add CodeQL Workflow for Code Security Analysis

This pull request introduces a CodeQL workflow to enhance the security analysis of our repository. CodeQL is a powerful static analysis tool that helps identify and mitigate security vulnerabilities in our codebase. By integrating this workflow into our GitHub Actions, we can proactively identify and address potential issues before they become security threats.

We added a new CodeQL workflow file (.github/workflows/codeql.yml) that
- Runs on every pull request (functionality to run on every push to main branches is included as a comment for convenience).
- Runs daily.
- Excludes queries with a high false positive rate or low-severity findings.
- Does not display results for git submodules, focusing only on our own codebase.

Testing:
To validate the functionality of this workflow, we have run several test scans on the codebase and reviewed the results. The workflow successfully compiles the project, identifies issues, and provides actionable insights while reducing noise by excluding certain queries and third-party code.

Deployment:
Once this pull request is merged, the CodeQL workflow will be active and automatically run on every push and pull request to the main branch. To view the results of these code scans, please follow these steps:
1. Under the repository name, click on the Security tab.
2. In the left sidebar, click Code scanning alerts.

Additional Information:
- You can further customize the workflow to adapt to your specific needs by modifying the workflow file.
- For more information on CodeQL and how to interpret its results, refer to the GitHub documentation and the CodeQL documentation (https://codeql.github.com/ and https://codeql.github.com/docs/).

Signed-off-by: Brian <bayuan@purdue.edu>

* Run CodeQL Analysis weekly + incorporate build script into WF

* remove: fail_on_error.py

* update: codeql.yml

---------

Signed-off-by: Brian <bayuan@purdue.edu>
2023-11-06 19:11:41 +01:00
Ray 8739c28949 REVIEWED: Scissor mode to support RenderTexture #3510 2023-11-06 19:09:12 +01:00
gulrak 56b5a5c4f0 BeginScissorMode checks for render texture to avoid using GetWindowScaleDPI (#3510) 2023-11-06 19:03:12 +01:00
Ray 304bf2cd17 ADDED: Flag to know we are rendering to texture #3510 2023-11-06 19:02:11 +01:00
Aniket Teredesai b9f98dd8cd [build]: add uninstall cmake target (#3511) 2023-11-06 10:12:36 +01:00
Ray a470cdce4c Merge branch 'master' of https://github.com/raysan5/raylib 2023-11-05 20:12:00 +01:00
Ray 2a67ac0027 REVIEWED: rlgl_standalone examples #3487
Example is intended for `PLATFORM_DESKTOP` only and OpenGL 3.3 Core profile.
2023-11-05 20:11:53 +01:00
Ray 8b3c18de54 Updated GLFW for 64bit 2023-11-05 20:11:14 +01:00
Ray 343e92322b Update README.md 2023-11-05 19:46:25 +01:00
JupiterRider 2252f747b7 Update Makefile (#3509) 2023-11-05 19:42:56 +01:00
Ray 925978ffde Update qoa.h 2023-11-05 19:41:22 +01:00
Ray 6ebfc6023b Update rl_gputex.h 2023-11-05 19:40:00 +01:00
Ray 57f77c3858 Update qoi.h 2023-11-05 19:39:57 +01:00
Ray 127d69e887 Update README.md 2023-11-05 19:24:45 +01:00
glowiak 17a968d2ed Jaylib is now up-to-date (#3508) 2023-11-05 15:58:48 +01:00
Ray 53451e98a7 Updated open graph for examples 2023-11-05 13:02:29 +01:00
Ray cbf0324c34 Updating web shells open-graph info 2023-11-05 12:18:54 +01:00
freakmangd 39b539c42f Allow raylib to be built with zig 0.11.0 and zig 0.12.0dev (master) (#3506)
* allow zig 0.11.0 and 0.12.0dev to build raylib

* update comment
2023-11-04 21:05:21 +01:00
Ray 32e4be6fb9 Update rcore.c 2023-11-03 22:23:50 +01:00
Ray 2d1b211920 ADDED: LoadRandomSequence()/UnloadRandomSequence() 2023-11-03 20:21:43 +01:00
AndreaBoroni 5da0074fed Fixed Issue 3504 (#3505) 2023-11-03 19:12:42 +01:00
Ray 301d1b85ab Update raylib version to **raylib 5.0** 2023-11-02 18:18:27 +01:00
Ray 3c3e311190 Remove unneeded line on web platform 2023-11-02 18:18:05 +01:00
Ray 807516a991 Support OpenGL ES 3.0 building on Web
For some reason, the equivalent requested context (WebGL 2.0) is not provided, despite being properly requested.
2023-11-02 18:13:37 +01:00
Ray b40f93b9e3 Comments tweaks 2023-11-02 18:12:22 +01:00
Ray 01bbd42519 Update rprand.h 2023-11-02 18:11:13 +01:00
ubkp fe34fc7c6b Partial fix the gesture system for DRM (#3502) 2023-11-02 17:35:11 +01:00
Caleb Barger ba75a7a23b build.zig updates for 0.11.0 release. (#3501) 2023-11-02 09:14:34 +01:00
ubkp de1ceae4b0 [core] Fix gestures for PLATFORM_DESKTOP_SDL (#3499)
* Fix gestures for SDL

* Review the gesture handling for SDL

* Review 2
2023-11-02 09:13:41 +01:00
Ray 35d27fb11b REVIEWED: Pointers exposing not required for ES3 2023-11-02 09:04:05 +01:00
Ray d77c918d51 Update rcore_web.c 2023-11-01 16:24:06 +01:00
Ray c563490cf8 Update rcore_web.c 2023-11-01 15:28:31 +01:00
Ray 64d64cc181 REVIEWED: Potential code issues reported by CodeQL #3476 2023-11-01 15:28:18 +01:00
ubkp ba21b8d274 Moves keymapUS[] and fixes GetCharPressed for DRM (#3498) 2023-11-01 12:20:33 +01:00
Jeffery Myers 38205d67da Remove unused structures from lighting fragment shaders (#3497) 2023-11-01 12:16:14 +01:00
Techuuu d4c0d3bebe Update README.md (#3495)
* Update README.md

Fixed docs and improved.

* Update README.md

Done fixed it!

* Update README.md

Fixed!
2023-11-01 12:15:47 +01:00
Ray df0f7ba61e Update shaders_deferred_render.c 2023-10-31 20:59:08 +01:00
Ray aca854ccbf Update shaders_deferred_render.c 2023-10-31 20:46:10 +01:00
Ray 1407f6eb46 ADDED: rlBlitFramebuffer(), required for deferred render 2023-10-31 20:46:06 +01:00
Ray 15142a30f5 Update rmodels.c 2023-10-31 20:20:11 +01:00
Ray 43f36b9b05 REDESIGNED: LoadOBJ(), fix #3398
- Now triangulated  meshes are properly supported
 - Simplified code to consider issue situation
 - Removed mesh split per material, just define separate mesh if multiple materials are required
2023-10-31 20:15:45 +01:00
Justin 3645244f9f examples/shaders: Add an example for deferred shading (#3496)
* add example for deferred rendering/shading

* adapt convention

---------

Co-authored-by: 27justin <me@justin.cx>
2023-10-31 20:13:12 +01:00
Ray de7beef05d Remove trailing spaces 2023-10-31 15:54:52 +01:00
Ray f88604e6d5 Reviewed QOA seek PR 2023-10-31 15:54:38 +01:00
Ray 0a3567439d Comments tweaks 2023-10-31 15:49:42 +01:00
veins1 6842012748 Fix QOA seeking (#3494) 2023-10-31 15:48:24 +01:00
Ray 0d186a0557 REVIEWED: LoadModel(), removed cube fallback mechanism #3459 2023-10-31 11:32:07 +01:00
ubkp ab61bad168 Fix relative mouse mode for DRM (#3492) 2023-10-31 10:16:12 +01:00
ubkp d8acceca14 Fix example core_3d_camera_free (#3488) 2023-10-31 10:10:43 +01:00
Jett ff04d52f12 Added rlEnablePointMode (#3490)
for rendering meshes with points.
similar to wire mode.
(NOTE) they still backface cull, so disable that if you want to show the entire mesh.
2023-10-31 08:43:32 +01:00
Ray 7677e4b928 REVIEWED: GetModelBoundingBox() #3485 2023-10-30 20:41:33 +01:00
Ray b8fce54c0f Minor tweaks 2023-10-30 13:29:14 +01:00
Ray abdebc244d Update rcore.c 2023-10-30 13:14:15 +01:00
Ray 9642fffbbb REVIEWED: GetRender*() issue on macOS highDPI #3367 2023-10-30 13:13:31 +01:00
ubkp 15632876f7 Fix examples Makefile for SDL (#3486) 2023-10-30 12:02:35 +01:00
Ray ec91b44fb6 Merge branch 'master' of https://github.com/raysan5/raylib 2023-10-29 21:11:40 +01:00
Ray fc7dcff4a7 ADDED: Pseudo-random numbers generator! 2023-10-29 21:11:30 +01:00
ubkp 049a6d475d Fix drm hang up on exit and mouse input issues (#3484) 2023-10-29 20:55:02 +01:00
Ray 09075d515a Some notes and comments 2023-10-29 20:44:32 +01:00
Ray 4625c41431 ADDED: Support for SDL building on Makefile 2023-10-29 20:44:18 +01:00
Ray 601e391b06 Remove physac library from raylib building
At this moment, physac is an external unmaintained library, better move out of raylib.
2023-10-29 20:43:52 +01:00
Ray 21243c8234 Update rcore_desktop_sdl.c 2023-10-29 20:42:29 +01:00
JaanDev 1fd61a00e4 Fix compressed DDS texture loading issues (#3483) 2023-10-29 20:21:00 +01:00
ubkp 12f3bc10c2 [core] Move rcore.h content to inside rcore.c (#3479)
* Move rcore.h content inside rcore.c

* Remove extern CoreData CORE
2023-10-29 20:20:19 +01:00
Ray 2da8cc383c Update Makefile.Web 2023-10-29 19:46:34 +01:00
Khalid Abdullah e3363e9ad0 Typo fixed in HISTORY.md (#3481)
* [Typo fixed]  in CHANGELOG

* [Typo fixed] in HISTORY.md
2023-10-29 19:34:50 +01:00
Josh Colclough 975d4154e6 Fix the Julia set shader example (#3467)
* Simplify POI selection

* Improve mouse logic

* Add colour cycles to the shader to show finer details. Works well with high iteration numbers

* Testing things...

* Actually fix zoom. Also allow user to reset camera with 'R'

* Reset max iterations

* Tidying & comments

* Revert to original if statement

* Make mouse logic more readable

* Style conventions

* Coding conventions - f postifx on floating points

* Missed a few f postfixes
2023-10-29 16:41:02 +01:00
Ray b4865588f8 REVIEWED: GetCurrentMonitor() #3472 2023-10-29 16:36:46 +01:00
ubkp 01c264123d Remove rcore.h include from SDL (#3475) 2023-10-29 16:23:38 +01:00
Khalid Abdullah effa3ee249 [Typo fixed] in CHANGELOG (#3477) 2023-10-29 16:22:59 +01:00
SuperUserNameMan b46505b13d Update tinyobj_loader_c.h (#3474)
temporary quickfix for issue #3473
2023-10-27 17:13:10 +02:00
Alexandre Almeida 2db7c727b6 GetCurrentMonitor() - use closest monitor (#3472) 2023-10-27 17:01:05 +02:00
Ray 3afd0a55b9 Update miniaudio to latest dev #3471 2023-10-27 16:55:27 +02:00
Ray f721429f25 ADDED: SetAutomationEventBaseFrame(int frame) 2023-10-27 01:19:10 +02:00
Ray 98fcbe3fe2 Update core_automation_events.c 2023-10-27 00:50:02 +02:00
Ray 654b4e6257 Update core_automation_events.c 2023-10-27 00:45:00 +02:00
Ray 99dac5451c ADDED: Automation Events System, exposed to users
Added new API to record and play events
Added examples illustrating functionality
2023-10-26 23:59:19 +02:00
Ray 067dbe8657 ADDED: Drop files support to PLATFORM_DESKTOP_SDL 2023-10-26 23:57:07 +02:00
Ray d0141bd105 Remove trail spaces 2023-10-26 23:56:38 +02:00
Ray e4547eb422 Remove trail spaces 2023-10-26 23:56:03 +02:00
Ray 1cef62cf05 REVIEWED: glfwGetError() not availbale on PLATFORM_WEB fix #3470 2023-10-26 11:10:41 +02:00
Ray 77730c80d9 Updated to miniaudio v0.11.19 #3448 2023-10-26 10:34:39 +02:00
Ray eddeafd2ed Revert "Fix IsGestureDetected parameter inconsistency in raylib.h with rgextures.h (#3464)"
This reverts commit 804f1a83eb.
2023-10-26 10:28:00 +02:00
jestarray 804f1a83eb Fix IsGestureDetected parameter inconsistency in raylib.h with rgextures.h (#3464)
closes https://github.com/raysan5/raylib/issues/3463
2023-10-26 10:24:21 +02:00
Alexandre Almeida 2f6b2897fe GetCurrentMonitor() - check window center instead of top-left corner (#3468) 2023-10-26 10:18:00 +02:00
2Bear 9a687e3153 Fix missing PLATFORM_DESKTOP_SDL checks. (#3469) 2023-10-26 10:15:25 +02:00
ubkp cb1c2ffda1 Fix gamepad names for PLATFORM_DESKTOP/GLFW (#3462) 2023-10-25 19:13:51 +02:00
ubkp b0c0f2e560 Fix OpenURL on SDL (#3460) 2023-10-25 12:17:54 +02:00
Ray 7e5eff8a29 Revert "Fix #3461"
This reverts commit 8fbd42d592.
2023-10-25 10:15:19 +02:00
Ray 8fbd42d592 Fix #3461 2023-10-25 10:14:17 +02:00
Ray 803b1a910e REVIEWED: Check OpenGL version required, fix #3457 2023-10-23 19:59:29 +02:00
Ray a0f0034352 REVIEWED: InitPlatform() organization and code-gardening 2023-10-23 19:15:40 +02:00
Ray 3ff6026917 REVIEWED: Move screen capture logic to rcore.c, available for all platforms 2023-10-23 18:32:24 +02:00
Lukas daf227a185 Fixes a memory leak as a result of creating an AudioBuffer* with the old source.frameCount. This internally allocates memory to the structs data pointer which is then later overridden by the correct sound data of the source sound. (#3458)
Additionally added a volume assignment from old to new as currently there is no way to get the volume of a sound and the AudioBuffer struct is not reachable from user code due to opaque definition.
2023-10-23 18:16:28 +02:00
Jeffery Myers 4ed776368a When the frame counter gets to 0, reset the FPS average counter. This allows the window to be closed and reopened with clean FPS stats. (#3445) 2023-10-23 10:11:50 +02:00
ubkp 8f517b7651 Fix compilation for PLATFORM_WEB examples (#3454) 2023-10-23 10:05:40 +02:00
Peter0x44 b3028e4891 Review prerequisites of rcore.c (#3453)
rcore_desktop_sdl.c was not present in the list of prerequisites this
patch changes them to use a wildcard, so any other platforms added in
future will be tracked properly
2023-10-22 19:45:49 +02:00
Peter0x44 e33e9da277 Add DrawCircleLinesV for consistency (#3452)
ImageDrawCircleLinesV already existed, so I'm not sure why this was
missing. It is trivial to implement, anyway
2023-10-22 17:13:49 +02:00
Ray f0124df0e8 Update CHANGELOG 2023-10-22 15:34:24 +02:00
Ray cdb394fac6 Update CHANGELOG for **raylib 5.0** -WIP- 2023-10-22 15:21:25 +02:00
Ray 0e029f719b Revert "REVIEWED: sinfl, fix #3349"
This reverts commit c4fb6c8517.
2023-10-22 15:17:35 +02:00
Ray 9127ee2ff9 Merge branch 'master' of https://github.com/raysan5/raylib 2023-10-22 15:16:08 +02:00
Ray 2b90b5600c Revert "Update sinfl.h"
This reverts commit da9bc564d2.
2023-10-22 15:15:56 +02:00
Keith Stellyes ea325c54e8 fix examples Makefile to use Makefile.Web when building for web (#3449)
Co-authored-by: Keith Stellyes <keith@keithstellyes.com>
2023-10-22 14:58:35 +02:00
Ray da9bc564d2 Update sinfl.h 2023-10-22 10:31:35 +02:00
Ray c4fb6c8517 REVIEWED: sinfl, fix #3349 2023-10-22 10:27:22 +02:00
Ray 1aad6a2fc0 REVIEWED: New platform backend template comments 2023-10-22 10:09:03 +02:00
Ray bcfa7c6718 Update rcore_desktop.c 2023-10-22 10:08:39 +02:00
ubkp 8cda4273ec [core] Complement implementations for SDL (3) (#3450)
* Fix SetWindowMinSize and SetWindowMaxSize

* Fix window resizes to update the viewport

* Fix window resizes to update the viewport 2
2023-10-22 09:45:04 +02:00
ubkp e5993c4a4b [core] Complement implementations for SDL (2) (#3447)
* Add note and todo to GetWindowScaleDPI

* Complement ToggleFullscreen and change ToggleBorderlessWindowed

* Complement SetWindowState and ClearWindowState
2023-10-21 12:11:54 +02:00
ubkp c66eb49199 [core] Complement implementations for SDL (#3444)
* Complement SetWindowMonitor SDL implementation

* Complement SetWindowMonitor SDL implementation 2

* Complement SetWindowMonitor SDL implementation 3

* Complement GetMonitorPosition SDL implementation

* Small tweaks to various SDL implementation

* Small tweaks to various SDL implementation 2
2023-10-20 17:38:14 +02:00
Ray 081fffd46e REVIEWED: Issue with functions definitions 2023-10-19 13:57:31 +02:00
Ray b674e344a8 REVIEWED: Issue with symbols exposure 2023-10-19 13:46:02 +02:00
Ray 65dd0afb60 Update Makefile 2023-10-19 13:41:09 +02:00
Ray 982641228c REDESIGNED: Move platforms to separate directory #3313 2023-10-19 13:36:10 +02:00
ubkp a64d606cb3 Fix GetMonitorPhysical* dpi (#3442) 2023-10-19 13:09:27 +02:00
Ray f09840dcdc Merge branch 'master' of https://github.com/raysan5/raylib 2023-10-19 13:05:54 +02:00
Ray 19ff0e5fb1 REVIEWED: rlLoadTexture() #3440 2023-10-19 13:05:50 +02:00
Le Juez Victor d7a098ebd3 [core] Add more missing implementations to SDL (#3439)
* [core] Add more missing implementations to SDL

Add functions: `SetWindowState`, `ClearWindowState`, `SetWindowIcon`

* Completing `SetWIndowState` and `ClearWindowState`

* Add VSync support for SDL

* Fix `CORE.Window.display` size issue

* Fix getting monitor size

We now get the size of the monitor where the window is located

* Add `ToggleBorderlessWindowed`

* Add `ToggleFullscreen`

* Add `GetMonitorPosition`

* Add `SetWindowMonitor`

NOTE: The function is implemented but incomplete

* Replace `TraceLog` by `TRACELOG`

* Fixed mouse delta issue in relative mode

Fixed a delta retrieval issue with `GetMouseDelta` when the mouse is in relative mode. Solution by @ubkp

* Fix `IsKeyPressed` issue

An issue caused `IsKeyPressed` to continuously return true for most keys when pressed

* Fix `SetGamepadMappings` returning
2023-10-19 00:09:00 +02:00
ubkp d0a265cee8 [core] Add more missing implementations to SDL (#3436)
* Add more missing implementations 1

* Add more missing implementations 2

* Add more missing implementations 3

* Add more missing implementations 4

* Add more missing implementations 5

* Add more missing implementations 6
2023-10-18 08:05:35 +02:00
Ray fc6152613f REVIEWED: raylib 5.0-dev version for a future release 2023-10-18 00:33:05 +02:00
Ray 53cd60bb29 REVIEWED: Move InitWindow()/CloseWindow() to rcore.c #3313 2023-10-18 00:03:47 +02:00
Michael Scherbakow 9534f48425 fix build.zig (#3433)
for zig master (2023-10-17)
2023-10-17 23:36:42 +02:00
Alexey Kutepov d7d04a07a2 [raudio] Implement GetMasterVolume() (#3434)
It feels a little unfinished when you can SetMasterVolume but can't
really Get it. So to finish the symmetry here is the GetMasterVolume
implementation.
2023-10-17 23:35:38 +02:00
Le Juez Victor 80432fde62 Fix SDL keyboard issue (#3435)
* Fix SDL keyboard issue

We have added a mapping table between raylib keys and SDL scancodes.

* Change `ScancodeToKey` array type
2023-10-17 23:29:28 +02:00
ubkp f353cd1c3a [core] Add some missing implementations to SDL (#3432)
* Add missing implementations

* Add missing implementations 2

* Add missing implementations 3

* Add missing implementations 4

* Add missing implementations 5
2023-10-17 12:01:01 +02:00
Ray 99ede0f747 Added some notes for alternative implementations #3362 2023-10-17 11:09:56 +02:00
Ray 7290ea9bfb Update models_mesh_generation.c 2023-10-17 10:59:25 +02:00
Dor Shapira af83764f4f Implement GetCurrentMonitor in rcore_desktop_sdl (#3431)
* Implemented GetCurrentMonitor

* remove traceloog in GetCurrentMonitor
2023-10-17 09:53:53 +02:00
ubkp fab99b8309 Remove rcore.h include from android (#3429) 2023-10-16 14:59:08 +02:00
Peter0x44 859c67792a Make sure rcore.o gets compiled in more situations (#3423)
Currently doing the following:
```
make
touch rcore_desktop.c
make
```

Will not result in rcore.o getting compiled again, despite that
rcore_desktop.c has changed

This commit resolves that
2023-10-16 14:08:55 +02:00
neyrox c4296b166a Fix GenMeshPlane when resX != resZ (#3425)
Co-authored-by: Stanislav Yablonskiy <s.yablonskiy@pixonic.com>
2023-10-16 14:06:12 +02:00
ubkp 73363f829b [core] Fix some mouse issues on SDL (#3428)
* Fix mouse wheel getting stucked scrolling up or down

* Fix mouse movement on 3D

* Fix mouse button presses
2023-10-16 09:43:20 +02:00
Ray 84818c96f2 ADDED: NEW PLATFORM: SDL (DESKTOP) rcore_desktop_sdl #3313 2023-10-16 00:51:44 +02:00
Johnathan Corkery a75251f0a9 Inclusion of Matte to BINDINGS.md (#3427) 2023-10-16 00:25:39 +02:00
MichaelFiber 18bedbd095 [core] Change axisCount to be an array (#3421)
* Update `PLATFORM_DRM` implementation of `GetGamepadAxisCount`

* Update

* Update `PLATFORM_DRM` implementation of `GetGamepadName`

* Add example to test gamepad info functions
Fix typo

* Update new gamepad info example

* Move axis count update out of GamepadThread - race condition

* Remove pointless if statement

* Start integrating stuff from the mikesinput lib

* Add more logging

* Add semicolon

* Add forgotten static

* More fixes

* Update axisCount to be array

* More debugging

* Add forgotten index to ready check

* Add path logging

* Missing parenthesis

* Add missing slash

* Fix axis count being reset to 0

* Fix missing paren

* Test polling joystick button events

* Major updates

* Fix missing array index

* Fix another missing array index

* Update example

* dumb logging

* Wrong constant for ev.code handling

* More dumb logging

* Remove some logging

* Add FPS to gamepad info example and try for max FPS

* tweak

* Revert example

* Add fps back

* Clean up after merge

* Switch axisCount to be an array
2023-10-14 22:51:35 +02:00
ubkp 781f717530 Remove the rcore.h include from drm, web, template (#3420) 2023-10-14 22:47:35 +02:00
Le Juez Victor 6d7112fde7 Fix some omissions (#3418)
Changes the return type of `InitGraphicsDevice()` from `bool` to `int`.
Adds a return at the end of `InitPlatform()`.
2023-10-14 22:46:46 +02:00
Ray 37e3ffcaac REVIEWED: SetMouseCursor() #3416 2023-10-14 22:45:56 +02:00
BeardedBread b79e381092 Fix SetMouseCursor implementation for PLATFORM_WEB (#3416)
* Fix SetMouseCursor implementation for PLATFORM_WEB

- Restrict function to only set the cursor inside the canvas

* Set the CORE input mouse
2023-10-14 22:42:03 +02:00
Blue bf639f02a8 Fix raygui.c leftover from zig build (#3417) 2023-10-14 22:38:36 +02:00
Le Juez Victor 2498170b95 Fix screen size check in InitPlatform() (#3415) 2023-10-14 15:11:56 +02:00
BeardedBread d31b439e04 Implement SetMouseCursor for PLATFORM_WEB (#3414) 2023-10-14 15:10:33 +02:00
Ray 54950f9a3d Make sure CORE.Window.ready is set 2023-10-14 12:55:31 +02:00
Ray b34c2ecbcb WARNING: REDESIGN: InitPlatform() to initialize all platform data #3313
`InitGraphicsDevice()` could be confusing because the function actually initialized many things: window, graphics, inputs, callbacks, timming, storage... restructured it.
2023-10-14 12:49:54 +02:00
Ray 4521a142c3 tweaks 2023-10-14 11:48:20 +02:00
Ray 005ba155c0 Minor tweaks 2023-10-14 10:56:09 +02:00
Daniil Kisel 2f08f435b9 Add Raylib.lean to BINDINGS.md (#3409) 2023-10-13 20:54:15 +02:00
Purple4pur 4981acb241 fix zig syntax errors in examples, and make it install executables correctly (#3395) 2023-10-13 19:55:52 +02:00
Daniil Kisel 5a0d9c8d43 Fix UpdateSound parameter name (#3405) 2023-10-13 19:54:43 +02:00
Le Juez Victor 36abc48cf8 Normalize gestureEvent.position coordinates (#3406)
Fixed the fact that coordinates were not normalized on Android, preventing detection of `GESTURE_DOUBLE_TAP`
2023-10-13 19:54:00 +02:00
ubkp f3c27ec157 Fix android, drm compilation issue on InitWindow (#3407)
* Fix drm compilation issue on InitWindow

* Fix android compilation issue on InitWindow
2023-10-13 19:53:31 +02:00
Babak 0f4a8cf7cb Ported to stb_image_resize2.h (#3403) 2023-10-13 16:37:35 +02:00
Le Juez Victor 0daa5ce1e7 Fix GetMouseDelta() issue for Android (#3404) 2023-10-13 16:36:42 +02:00
Ray 2e65bc675c Moved some platforms functions to generic rcore #3313
Reviewed `InitWindow()` to clearly note platform specific code
2023-10-13 14:14:16 +02:00
Ray 876e6b3a0d REVIEWED: TextFormat(), added "..." for truncation #3366
It seems more standard than [TRUN]
2023-10-11 20:25:09 +02:00
ubkp 6ed8acde67 Fix windowMin/Max to screenMin/Max for android, drm, template (#3400) 2023-10-11 19:29:21 +02:00
Ray 61af8e7631 REVIEWED: #3399, Fix #3366 2023-10-11 12:20:03 +02:00
Murlocohol 28fb58f0ea [rtext] TextFormat() warn user if buffer overflow occured. (#3399)
* [rtext] TextFormat now alerts user to truncation.

* Update rtext.c

* Update rcore.c

* Update rtext.c
2023-10-11 12:15:40 +02:00
Ray da9c2894fe Reorganized some functions, WaitTime() is common to all platforms 2023-10-11 12:10:38 +02:00
Ray a2c5f01059 Reordered one function 2023-10-11 11:55:12 +02:00
Ray 0d175a69ae REVIEWED: Mouse and Touch functions generic to all platforms #3313 2023-10-11 11:36:44 +02:00
Ray 6ebfec99c5 Added gamepad functions as generic for all platforms 2023-10-11 11:14:03 +02:00
Ray ddca525132 RENAMED: rcore_custom to rcore_template 2023-10-11 11:11:09 +02:00
MichaelFiber daba1a2794 Split drm update input (#3397)
* Update `PLATFORM_DRM` implementation of `GetGamepadAxisCount`

* Update

* Update `PLATFORM_DRM` implementation of `GetGamepadName`

* Add example to test gamepad info functions
Fix typo

* Update new gamepad info example

* Move axis count update out of GamepadThread - race condition

* Remove pointless if statement
2023-10-11 10:30:51 +02:00
Ray 101a9b0445 Added comments and review some functions #3313 2023-10-10 11:59:41 +02:00
Ray b94e6290a4 Added some comments and tweaks #3313 2023-10-10 10:50:09 +02:00
Ray 67a1e1ffae Update rtextures.c 2023-10-10 10:48:46 +02:00
Ray cb57165956 REVIEWED: Fix #3387 2023-10-10 10:48:30 +02:00
Murlocohol 9702a17152 [raymath] Hotfix for Vector2Angle() and Vector2LineAngle() (#3396)
* Hotfix for Vector2LineAngle(), should probably be reviewed along with the rest of raylib angle functions to determine what coordinate system we want.

* Hotfix for Vector2LineAngle(), should probably be reviewed along with the rest of raylib angle functions to determine what coordinate system we want.

* [raymath] Hotfix for Vector2Angle and corresponding example

* [raymath] Hotfix for Vector2Angle and corresponding example

---------

Co-authored-by: Ray <raysan5@gmail.com>
2023-10-10 10:42:11 +02:00
Murlocohol f0d949f931 Hotfix for Vector2LineAngle(), should probably be reviewed along with the rest of raylib angle functions to determine what coordinate system we want. (#3394) 2023-10-10 08:59:09 +02:00
Ray 0d8a6cfbfa Revert "Update zig build system to zig version 0.11.0 (#3393)"
This reverts commit 540ad99442.
2023-10-10 08:48:55 +02:00
Purple4pur 540ad99442 Update zig build system to zig version 0.11.0 (#3393)
* update build.zig for zig 0.11.0

* fix build.zig in examples to install executable correctly

* discard build.zig, only use src/build.zig, to avoid annoying zig-out path problem

* update zig version note
2023-10-09 13:05:19 +02:00
Ray cfffa74f96 REVIEWED: Libs include order 2023-10-09 11:17:22 +02:00
Ray f93d0ff9bc Update raudio.c 2023-10-09 11:17:09 +02:00
Ray b55cf40b91 Format tweaks 2023-10-09 11:07:02 +02:00
Ray a38afcf053 Merge branch 'master' of https://github.com/raysan5/raylib 2023-10-09 10:51:41 +02:00
Ray f86f4159e6 Avoid references to PLATFORM_ flags #3313 2023-10-09 10:51:37 +02:00
SuperUserNameMan dfb0326d00 Update rcore.c (#3326) 2023-10-09 09:54:43 +02:00
Ray 33c84b3c00 Update rmodels.c 2023-10-09 09:53:52 +02:00
Dennis E. Hamilton 7ab911b9a4 Ensure m3d faces in non-decreasing materialid sequence (#3385)
This modification replaces the expensive qsort protection with an
insertion sort that is near-instantaneous in the expected ordered case.
2023-10-09 09:49:58 +02:00
Masoud Naservand d309b1eaa7 Call nsvgDeleteRasterizer() on created rasterizer (#3392)
the `NSVGrasterizer *rast` needs to be passed
to nsvgDeleteRasterizer() when we are done with it.
2023-10-09 09:47:54 +02:00
Ray ea9de852bd ADDED: Custom platform template! #3313 2023-10-09 09:46:57 +02:00
Ray 682992e868 REVIEWED: Reorganize functions
`TakeScreenshot()` moved to `rcore.c`
2023-10-09 09:45:57 +02:00
Ray 5ed7717f0d REVIEWED: WaitTime(), added validation #3377 2023-10-09 01:21:46 +02:00
Ray a0b30b0363 REVIEWED: SetupViewport() macOS #3313 2023-10-09 01:02:19 +02:00
Ray df8d3a5afb REVIEWED: Some warnings #3313 2023-10-09 00:47:22 +02:00
Ray d445fdaa19 WARNING: REDESIGN: Move platform specific data to platform submodules #3313
REVIEWED: Defines, macros, types and tweaks
2023-10-09 00:41:06 +02:00
Ray bbbaae5562 Reviewed #3313 2023-10-08 23:38:52 +02:00
Ray fecf56e15a WARNING: rcore module split per-platform **BIG CHANGE** (#3388)
* Submodules (#3311)

* Check in current state

* Add submodules to Makefile and clean up some imports

* Start moving InitGraphicsDeivce

* Move android_main and CloseWindow() out of rcore

* Move WindowShouldClose out of rcore

* Move IsWindowHidden out of rcore

* Move IsWindowMinimized out of rcore

* Move IsWindowMaximized, IsWindowFocused and IsWindowResized out of rcore

* Move ToggleFullscreen out of rcore

* Move MaximizeWindow, MinimizeWindow and RestoreWindow out of rcore

* Move 13 functions out of rcore:
ToggleBorderlessWindowed
SetWindowState
ClearWindowState
SetWindowIcon
SetWindowIcons
SetWindowTitle
SetWindowPosition
SetWindowMonitor
SetWindowMinSize
SetWindowMaxSize
SetWindowSize
SetWindowOpacity
SetWindowFocused

* Minor clean up, revert makefile change, include submodules directly in rcore

* Fix makefile comment

* Remove rcore.h from Makefile

* Remove debug include

* Move 18 functions from rcore to submodules
GetWindowHandle
GetMonitorCount
GetCurrentMonitor
GetMonitorPosition
GetMonitorWidth
GetMonitorHeight
GetMonitorPhysicalHeight
GetMonitorRefreshRate
GetWindowPosition
GetWindowScaleDPI
GetMonitorName
SetClipboardText
GetClipboardText
ShowCursor
HideCursor
EnableCursor
DisableCursor
GetTime

* Move TakeScreenshot, OpenURL, GetGamepadName out of rcore into submodules

* remove debugging #defines

* Move GetMonitorPhysicalWidth from rcore to submodule

* Move GetGamepadAxisCount from rcore

* Move SetGamepadMappings out of rcore

* Move GetMouseX, GetMouseY, GetMousePosition out of rcore

* Move SetMousePosition out of rcore

* Move GetMouseWheelMove out of rcore

* Move the last functions out of rcore

* Move shared function defs and some global var to rcore.h

* Clean up rcore.c and rcore.h a little more

* Remove unnecessary #define

---------

Co-authored-by: MichaelFiber <michael@cubeofb.org>

* REVIEWED: `PLATFORM_DESKTOP` Windows building

* Revert "REVIEWED: `PLATFORM_DESKTOP` Windows building"

This reverts commit 71a12171f7.

* Reviewed Windows building

* [split] Fix compilation for web (and desktop) (#3329)

* Fix compilation for web

* Remove EM_ASM_INT from core_input_gestures_web example

* Fix raymath undefined symbols for desktop and web

* Remove raylib_opengl_interop from examples Makefile

* Revert previous commit (8651c78)

* Fix TraceLog for web and desktop

* [split] `rcore`, `rcore_web` and `rcore_desktop` changes (batch 2) (#3334)

* Fix formatting

* Reapply commit 9d230d7 (#3305) that was missing

* Reapplies commits 719365f (#3309) and 8a1779b (#3312) that were missing

* Reapply commit 5c9cc3f (#3323) that was missing

* Reapply commit a2b3b1e that was missing

* Revert commit cef25c6 to fix macro redefined warning

* Move rcore.h #include to after config.h to fix macro redefinitions warnings

* [split] `rcore`, `web`, `desktop`, `android` changes (batch 3) (#3338)

* First pass to remove unneeded platform macros for web

* Second pass to remove unneeded platform macros for web

* Move GetTouchX, GetTouchY, GetTouchPosition from rcore to web, desktop, android

* Move SetMouseCursor from rcore to android, desktop, web

* [split] `rcore`, `web`, `desktop`, `android` changes (batch 4) (#3343)

* Fix ToggleBorderlessWindowed duplicated glfwSetWindowSize calls

* First pass to remove unneeded platform macros for android

* Second pass to remove unneeded platform macros for android

* Remove unneeded platform macros for desktop

* Relocate GetGamepadName and update SetGamepadMappings on android, desktop, web

* Add missing comment to web

* [split] `rcore`, `web`, `desktop`, `android` changes (batch 5) (#3345)

* Move SetExitKey from core to android, desktop, web

* Move some callbacks from core to desktop and web

* Relocate emscripten callbacks on web

* Relocate android callbacks on android

* Revert "Relocate android callbacks on android"

This reverts commit bbdbecc01e.

* Updates UnloadVrStereoConfig on rcore

* Update SetClipboardText on android

* Fix screenMin/Max default values for android

* [split] `rcore`, `drm` changes (#3347)

* Tweak makefiles for PLATFORM_DRM and move rcore_drm's dependencies to rcore.h

* Move drm functions to rcore_drm.c

* Fix a typo in rcore.c

* Add SetExitKey to rcore_drm.c

---------

Co-authored-by: MichaelFiber <michael@cubeofb.org>

* Fix compilation for android (#3360)

* Fix android include (#3364)

* Reviewed platform split #3313

 - Added file headers info
 - Added TRACELOG message for unimplemented functions
 - Reviewed code formatting and organization
 - Several code tweaks

* REVIEWED: `GetDirectoryPath()`

---------

Co-authored-by: MichaelFiber <42419558+michaelfiber@users.noreply.github.com>
Co-authored-by: MichaelFiber <michael@cubeofb.org>
Co-authored-by: ubkp <118854183+ubkp@users.noreply.github.com>
2023-10-08 18:36:07 +02:00
Ray 1327b570e3 Update raylib_parser.c 2023-10-08 18:11:55 +02:00
Ray be8eea9eda Format tweaks 2023-10-08 18:10:05 +02:00
BLUELOVETH 97c2744a16 Update raylib_api.* (#3379) 2023-10-07 21:10:27 +02:00
Ray 52ba44c474 REVIEWED: #3363 2023-10-07 21:07:50 +02:00
DaveH355 da5407b776 Optimize m3d mesh creation (#3363)
* Optimize m3d mesh creation

* Avoid qsort() in rmodels.c

* Revert "Avoid qsort() in rmodels.c"

This reverts commit dc1bd559fd.

* Add comment
2023-10-07 21:02:05 +02:00
Luís Almeida bc15c19518 Texture Tiling Example - luis605 (#3353)
* Texture Tiling Example - luis605

* Removed SetTraceLogLevel(LOG_WARNING);
2023-10-01 23:01:59 +02:00
Brian E 7351240218 [rcore] reveiwed GetWorldToScreenEx (#3351)
* reveiwed GetWorldToScreenEx
Used the inputted "width" instead of global CORE.window.
Used Vector3Transform instead of quaternion.

* reverted accidental unrelated change

* reverted Vector3Transform back

* fixed mistyped result

---------

Co-authored-by: Brian-E <brian@intra.fo>
2023-10-01 23:00:25 +02:00
BLUELOVETH c3a1c8c8eb Update BINDINGS.md with raylib-pkpy-bindings (#3361) 2023-10-01 22:56:43 +02:00
Ray 73b54c862e Update raylib.h 2023-09-29 00:28:16 +02:00
Ray 411d0ee437 Update raylib_parser.c 2023-09-29 00:28:03 +02:00
Jeffery Myers 8d5a90ea3c Expose rcamera functions to the dll so they can be picked up by dll users and bindings that need the dll (#3355) 2023-09-27 23:47:18 +02:00
XXIV 9ff47fc807 fix BINDINGS.md (#3358) 2023-09-27 20:57:47 +02:00
WraithGlade 115ba2b079 Factor's Raylib bindings mention being at v4.5 (#3350)
I looked at the linked Factor binding page for Raylib and found that the file [summary.txt](https://github.com/factor/factor/blob/master/extra/raylib/summary.txt) has the following text in it:

```
Bindings for Raylib 4.5
```

The bindings have also been updated within the last week.

This implies that Factor's Raylib bindings are either already up to date with v4.5 or will be soon.

Thus, I have submitted this likely correction to Raylib's bindings table.

(PS: There are other Factor Raylib bindings on the internet that are less up-to-date, so don't confuse those with this.)
2023-09-26 18:59:40 +02:00
Ray f2389a1e55 Remove trail spaces 2023-09-26 12:54:24 +02:00
Ray f7c3035b8c Update raygui.h 2023-09-24 23:51:23 +02:00
Ray c8a6093d52 Update examples creation requirements 2023-09-23 11:13:11 +02:00
Ray 557aeff253 REVIEWED: glInternalFormat is unsigned and actually, rlGetGlTextureFormats() returns 0 if fails 2023-09-22 11:59:52 +02:00
Ray a3a5aa7c63 REVIEWED: LoadFileData() potential issues with dataSize 2023-09-22 11:58:53 +02:00
Ray 83d82b6697 Update rmodels.c 2023-09-22 11:58:24 +02:00
Ray f27ea1f0c8 REVIEWED: IsGestureDetected() parameter type 2023-09-22 11:58:14 +02:00
Ray 7eb49d1c7b EXTERNAL: msf_gif.h, reviewed some warnings 2023-09-22 11:57:49 +02:00
Ray 477f5e5436 Update miniaudio v0.11.16 --> v0.11.18 2023-09-21 23:54:59 +02:00
Brian E 577a8de7c0 [raymath] Added macros for EPSILON on each function it's used in (#3330)
* Added macros for EPSILON
This is so the functions can be easily copied and used.

* used `#if !defined()` instead of `#ifndef`

---------

Co-authored-by: Brian-E <brian@intra.fo>
2023-09-21 23:48:48 +02:00
Ray a2b3b1ebe4 REVIEWED: CompressData(), possible stack overflow
`struct sdefl` is almost 1MB, in some platforms it could generated a stack overflow, for example WebAssembly, where by default stack is only 65KB!
2023-09-20 21:23:43 +02:00
Ray 36e99860ee Added note about WebGL warning 2023-09-20 21:22:04 +02:00
Ray c9020ece5d Update linux.yml 2023-09-19 18:52:40 +02:00
Ray b335927665 Reviewed PR #3321 2023-09-18 19:43:10 +02:00
Christopher Odom eb461512a7 Added UBSAN complaint fix to rLoadTexture #1891 (#3321) 2023-09-18 19:39:12 +02:00
Le Juez Victor 4d2906b0a5 Move mutex initialization before ma_device_start() (#3325) 2023-09-18 18:50:22 +02:00
Ray 5c9cc3f9f7 Reviewed #3323 2023-09-18 12:07:40 +02:00
Ray b9acbbbc66 Fix #3323 2023-09-18 11:50:37 +02:00
Tobias Mock 421ae5bbd8 Update raylib-ocaml bindings to 4.5 version (#3322) 2023-09-17 22:52:34 +02:00
Ray 97c4333803 REVIEWED: UnloadRenderTexture(), additional check 2023-09-17 20:42:45 +02:00
Brian E acf211a5fa general syntax fixes (#3319)
* Prettified a comment

* fixed broken indentation caused by another commit.
the commit renamed a bool to int and broke indentation: 233cf3970c

* Changed 0.001 and 0.00001 to EPSILON
This commit is untested.
I don't know what consequences this has.
Since the commits that added these numbers were before epsilon was added,
I have assumed that epsilon could replace them.

* Prettied up indentation in a few places

* removed spacing around *, standardizing it.

* I may have gotten overboard with indentation

* removed a few useless parenthesis

* Added fortran-raylib

* Fix examples/others/rlgl_standalone.c compilation issue (#3242)

* Update BINDINGS.md

* Ignore unused return value of GetCodepointNext in GetCodepointCount (#3241)

* Ignore unused return value of GetCodepointNext in GetCodepointCount

Removes the last warning from non-external libraries when compiling with
the default build configuration on x64 Linux.

* Remove unnecessary void cast in GetCodepointCount

* Fix #3246

* Revert "Fix #3246"

This reverts commit e4dcbd5180.

* Fix text_unicode.c example crashing (#3250)

* Fix text_unicode.c example crashing

* Adjust the text_unicode.c example crashing fix

* tweaks

* add build.zig options for individual modules (#3254)

* Add `IsKeyPressedRepeat` (desktop only) (#3245)

Since the key pressed are handle by comparing current vs previous
state (ie frame), a special way is needed to handle key repeats.

* Reviewed `IsKeyPressedRepeat()` #3248

* Update rcore.c (#3255)

* Match CMakeOptions.txt options default values (#3258)

* Fix SetClipboardText for web (#3257)

* [Image] Validate that ImageDrawRectangleRec is drawing entirely inside the image (#3264)

* Add a function to clone a sound and share data with another sound.

* rename items based on feedback

* PR Feedback, use custom unload for sound alias, not variant of normal sound unloading

* sound_multi example

* Validate that image rect drawing is inside the image so we don't overflow a buffer

* remove files that should not have been added.

* remove changes that should not have been

* revert

* adsfasdfsdfsdf

* Add Vector3 Projecting and Rejection to Raymath (#3263)

* Update raymath.h

* formatting

* [Feature] IsKey... safety checks and more (#3256)

* [Feature] Add GetKeyRepeat

* Update rcore.c

* Simpler design, only one repeat per frame

* Update config.h

* Update rcore.c

* Add KEYBOARD_KEYS_MASK

* Update config.h

* reversions

* Update rcore.c

* Update rcore.c

* change docs

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update raylib.h

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Fix bug where default shaders was not linking. (#3261)

* Formating review

* Add missing cmake options (#3267)

* Fix CMake extraneous -lglfw (#3266)

Closes #3265.

The problem: LIBS_PRIVATE is a list of library names (used by pkg-config), but the shared library of the same name doesn't always exist.

* Fix example/models/models_loading_gltf.c controls (#3268)

* Fix example/models/models_loading_m3d.c controls (#3269)

* Remove e from secondes (#3270)

* Fix example/audio/audio_module_player.c help instructions and small bug (#3272)

* Fix example/audio/audio_module_player.c help instructions and small bug

* Update example/audio/audio_module_player.png screenshot

* Use type name instead of valid specifier

long long --> long long int

* REVIEWED: `GetFileLength()`, added comment #3262

* Update examples/models/models_loading_gltf.png;m3d.png screenshots (#3273)

* Remove a duplicated screenshot and add missing one (#3275)

* Add examples/shaders/shaders_lightmap.c to Makefiles (#3276)

* Fix examples/others/easings_testbed.c help instructions and small tweak (#3277)

* Fix examples/shaders/shaders_texture_outline.c help instructions (#3278)

* Fix examples/shapes/shapes_collision_area.c help instructions (#3279)

* RENAMED: LoadFont*() parameter names for consistency and coherence

* Fix uninitialized thread-locals in stbi #3282 (#3283)

* REVIEWED: Added `SetTextLineSpacing()` to multiline examples

* REVIEWED: Data size type consistency between functions #3168

* Some tweaks

* Use internal default allocators, instead of user-exposed ones

* Added rudimentary SVG support. (#2738)

* Added rudimentary SVG support. Added 2 functions ImageLoadSvg and ImageLoadSvgWithSize.

* Added an example on how to use ImageLoadSvgWithSize and adjusted Makefiles accordingly.

* Added actual correct example file.

* Reviewed the code to keep the raylib coding conventions in mind.
Moved the LoadImageSvg() code into LoadImage() guarded by SUPPORT_FILEFORMAT_SVG.
Renamed LoadImageSvgWithSize() to LoadImageSvg().
Added a LoadImageSvgFromString() function to parse the loaded SVG into an actual image. This does the bulk of the work.

* Fixed typo.

---------

Co-authored-by: Ray <raysan5@gmail.com>

* REVIEWED: `LoadImageSvg()`

* REVIEWED: `LoadImageSvg()`

* Add SUPPORT_FILEFORMAT_SVG to cmake (#3284)

* Fix examples/textures/textures_fog_of_war.c help instructions (#3285)

* Fix examples/textures/textures_image_rotate.c help instructions (#3286)

* Update rtextures.c

* Fix #3247

* Update config.h

* Fix #3293

* Disable UBSAN in zig builds. (#3292)

Zig debug builds automatically enable ubsan.
As the fix for #1891 had to be reverted, debug builds using zig will crash like so:

```
Illegal instruction at address 0x3237d2
raylib/src/rlgl.h:3690:91: 0x3237d2 in rlDrawVertexArrayElements (/home/rcorre/src/raylib-zig-template/raylib/src/rcore.c)
    glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)buffer + offset);
```

This disables UBSAN when using zig to build raylib.

* Update README.md (#3290)

specially -> especially

* Update cmake SUPPORT_FILEFORMAT_SVG default value (#3291)

* Mouse offset and scaling must be considered also on web!

* Update rcore.c

* Update Makefile : clean raygui.c & physac.c (#3296)

* Remove PLATFORM_RPI (#3232)

* Remove PLATFORM_RPI

* remove build artifacts

---------

Co-authored-by: MichaelFiber <michael@cubeofb.org>
Co-authored-by: Ray <raysan5@gmail.com>

* Review to avoid UBSAN complaining #1891

* added raylib-raku to bindings (#3299)

* examples: core: adds 2D camera two player split screen (#3298)

* Reviewed examples for consistency

* Update rtext.c

* Some code restructuring for input functions, consistency review

* Remove unneeded #if (#3301)

Co-authored-by: MichaelFiber <michael@cubeofb.org>

* Revert "Disable UBSAN in zig builds. (#3292)" (#3303)

This reverts commit a316f9e7fc.

Issue #1891 was fixed again, so this is no longer needed.

* rtextures: Fix ImageDraw() source clipping when drawing beyond top left (#3306)

* REVIEWED: `TextToPascal()` issue when first char is uppercase

* Implement FLAG_WINDOW_RESIZABLE for web (#3305)

Fixes #3231

* Update BINDINGS.md (#3307)

Fix Kaylib binding. Reroute to a new repository.
Binding renamed.

* Update webassembly.yml

* Add claw-raylib to BINDINGS.md (#3310)

* Add SetWindowMaxSize for desktop and web (#3309)

* Add SetWindowMaxSize for desktop and web

* Remove SizeInt and respective adjustments

* Update rtextures.c

* Reviewed parameters for consistency

* Rename windowM* to screenM* (#3312)

* Update BINDINGS.md (#3317)

Update TurboRaylib bindings

* Update rmodels.c

* Update BINDINGS.md with vaiorabbit/raylib-bindings (#3318)

* fixed spelling mistake

* put back parenthesis

* reverted major allignment changes

* reverted parser output changes

* reverted one more indentation change

---------

Co-authored-by: Brian-E <brian@intra.fo>
Co-authored-by: Ray <raysan5@gmail.com>
Co-authored-by: ubkp <118854183+ubkp@users.noreply.github.com>
Co-authored-by: ashn <60763262+ashn-dot-dev@users.noreply.github.com>
Co-authored-by: actondev (Christos) <chris.actondev@gmail.com>
Co-authored-by: vitopigno <103512727+VitusVeit@users.noreply.github.com>
Co-authored-by: Asdqwe <asdqwe@asdqwe.com>
Co-authored-by: Jeffery Myers <jeffm2501@gmail.com>
Co-authored-by: Ethan Simpson <ethansimpson@xtra.co.nz>
Co-authored-by: Nickolas McDonald <43690021+n77y@users.noreply.github.com>
Co-authored-by: Branimir Ričko <rickobranimir@gmail.com>
Co-authored-by: iacore <74560659+iacore@users.noreply.github.com>
Co-authored-by: Ethan Conneely <Econn50@outlook.com>
Co-authored-by: Johannes Barthelmes <615914+jbarthelmes@users.noreply.github.com>
Co-authored-by: bXi <bluepunk@gmail.com>
Co-authored-by: Ryan Roden-Corrent <ryan@rcorre.net>
Co-authored-by: Ikko Eltociear Ashimine <eltociear@gmail.com>
Co-authored-by: SuperUserNameMan <yoann@terminajones.com>
Co-authored-by: MichaelFiber <42419558+michaelfiber@users.noreply.github.com>
Co-authored-by: MichaelFiber <michael@cubeofb.org>
Co-authored-by: Dan Vu <danvu.hustle@gmail.com>
Co-authored-by: Gabriel dos Santos Sanches <gabrielssanches@gmail.com>
Co-authored-by: Rob Loach <robloach@gmail.com>
Co-authored-by: Peter0x44 <peter0x44@disroot.org>
Co-authored-by: Kenta <106167071+Its-Kenta@users.noreply.github.com>
Co-authored-by: bohonghuang <1281299809@qq.com>
Co-authored-by: turborium <45082001+turborium@users.noreply.github.com>
Co-authored-by: Wilson Silva <wilson.dsigns@gmail.com>
2023-09-17 20:16:14 +02:00
Ray 33cc18ed51 Update BINDINGS.md 2023-09-17 13:32:44 +02:00
Wilson Silva f9c6ca468a Update BINDINGS.md with vaiorabbit/raylib-bindings (#3318) 2023-09-16 19:56:38 +02:00
Ray 06986f36b3 Update rmodels.c 2023-09-15 17:04:07 +02:00
turborium 18b22523cc Update BINDINGS.md (#3317)
Update TurboRaylib bindings
2023-09-15 12:32:50 +02:00
ubkp 8a1779b2ad Rename windowM* to screenM* (#3312) 2023-09-14 11:57:23 +02:00
Ray 97ef81914c Reviewed parameters for consistency 2023-09-13 17:05:38 +02:00
Ray 528b879955 Update rtextures.c 2023-09-13 17:05:22 +02:00
ubkp 719365f209 Add SetWindowMaxSize for desktop and web (#3309)
* Add SetWindowMaxSize for desktop and web

* Remove SizeInt and respective adjustments
2023-09-13 16:37:11 +02:00
bohonghuang 2b1849e57d Add claw-raylib to BINDINGS.md (#3310) 2023-09-13 16:35:37 +02:00
Ray 2e7a7877a5 Update webassembly.yml 2023-09-12 15:11:16 +02:00
Kenta 3ab7f70e31 Update BINDINGS.md (#3307)
Fix Kaylib binding. Reroute to a new repository.
Binding renamed.
2023-09-11 23:19:43 +02:00
Peter0x44 9d230d753b Implement FLAG_WINDOW_RESIZABLE for web (#3305)
Fixes #3231
2023-09-11 19:03:33 +02:00
Ray e75f85ce58 REVIEWED: TextToPascal() issue when first char is uppercase 2023-09-11 19:01:24 +02:00
Rob Loach 30f8dd6e37 rtextures: Fix ImageDraw() source clipping when drawing beyond top left (#3306) 2023-09-11 19:00:30 +02:00
Ryan Roden-Corrent b8cd10264b Revert "Disable UBSAN in zig builds. (#3292)" (#3303)
This reverts commit a316f9e7fc.

Issue #1891 was fixed again, so this is no longer needed.
2023-09-09 17:32:28 +02:00
MichaelFiber 37f60e75e7 Remove unneeded #if (#3301)
Co-authored-by: MichaelFiber <michael@cubeofb.org>
2023-09-09 09:47:07 +02:00
Ray b68d0850b1 Some code restructuring for input functions, consistency review 2023-09-08 20:01:52 +02:00
Ray 10e4aa32f8 Update rtext.c 2023-09-08 20:01:19 +02:00
Ray 1896268775 Reviewed examples for consistency 2023-09-08 13:27:13 +02:00
Gabriel dos Santos Sanches 2d5d0c2999 examples: core: adds 2D camera two player split screen (#3298) 2023-09-08 12:22:12 +02:00
Dan Vu ecc80bbcea added raylib-raku to bindings (#3299) 2023-09-08 11:13:00 +02:00
Ray 30a9a24db9 Review to avoid UBSAN complaining #1891 2023-09-07 18:00:10 +02:00
MichaelFiber 18e9784c6d Remove PLATFORM_RPI (#3232)
* Remove PLATFORM_RPI

* remove build artifacts

---------

Co-authored-by: MichaelFiber <michael@cubeofb.org>
Co-authored-by: Ray <raysan5@gmail.com>
2023-09-07 17:42:28 +02:00
SuperUserNameMan 8cf76ec113 Update Makefile : clean raygui.c & physac.c (#3296) 2023-09-07 17:35:02 +02:00
Ray b0c6972e5c Update rcore.c 2023-09-06 23:33:29 +02:00
Ray d7debba222 Mouse offset and scaling must be considered also on web! 2023-09-06 23:16:31 +02:00
Ray d55527953a Merge branch 'master' of https://github.com/raysan5/raylib 2023-09-05 20:04:30 +02:00
Ray 9cce5a93ff Fix #3293 2023-09-05 20:04:21 +02:00
Asdqwe 76fe16259d Update cmake SUPPORT_FILEFORMAT_SVG default value (#3291) 2023-09-05 11:03:59 +02:00
Ikko Eltociear Ashimine 97a8fe1e15 Update README.md (#3290)
specially -> especially
2023-09-05 11:03:32 +02:00
Ryan Roden-Corrent a316f9e7fc Disable UBSAN in zig builds. (#3292)
Zig debug builds automatically enable ubsan.
As the fix for #1891 had to be reverted, debug builds using zig will crash like so:

```
Illegal instruction at address 0x3237d2
raylib/src/rlgl.h:3690:91: 0x3237d2 in rlDrawVertexArrayElements (/home/rcorre/src/raylib-zig-template/raylib/src/rcore.c)
    glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)buffer + offset);
```

This disables UBSAN when using zig to build raylib.
2023-09-05 11:02:25 +02:00
Ray c104a97590 Update config.h 2023-09-04 18:51:44 +02:00
Ray bdda1efd44 Fix #3247 2023-09-04 18:43:25 +02:00
Ray 8a82e17a79 Update rtextures.c 2023-09-04 18:43:03 +02:00
Asdqwe c147ab51c9 Fix examples/textures/textures_image_rotate.c help instructions (#3286) 2023-09-03 11:03:00 +02:00
Asdqwe a69d401433 Fix examples/textures/textures_fog_of_war.c help instructions (#3285) 2023-09-02 22:50:59 +02:00
Asdqwe 8bd6bb622c Add SUPPORT_FILEFORMAT_SVG to cmake (#3284) 2023-09-02 22:38:10 +02:00
Ray 67a693fc5b REVIEWED: LoadImageSvg() 2023-09-02 19:20:56 +02:00
Ray d6f3891009 REVIEWED: LoadImageSvg() 2023-09-02 13:16:44 +02:00
bXi c03ab03627 Added rudimentary SVG support. (#2738)
* Added rudimentary SVG support. Added 2 functions ImageLoadSvg and ImageLoadSvgWithSize.

* Added an example on how to use ImageLoadSvgWithSize and adjusted Makefiles accordingly.

* Added actual correct example file.

* Reviewed the code to keep the raylib coding conventions in mind.
Moved the LoadImageSvg() code into LoadImage() guarded by SUPPORT_FILEFORMAT_SVG.
Renamed LoadImageSvgWithSize() to LoadImageSvg().
Added a LoadImageSvgFromString() function to parse the loaded SVG into an actual image. This does the bulk of the work.

* Fixed typo.

---------

Co-authored-by: Ray <raysan5@gmail.com>
2023-09-02 13:00:18 +02:00
Ray 75e5cd86d7 Use internal default allocators, instead of user-exposed ones 2023-09-02 12:58:47 +02:00
Ray 6e18d96e7a Some tweaks 2023-09-02 12:54:36 +02:00
Ray 0f447f1fb6 REVIEWED: Data size type consistency between functions #3168 2023-09-02 12:05:34 +02:00
Ray d41e3141f1 REVIEWED: Added SetTextLineSpacing() to multiline examples 2023-09-02 11:48:19 +02:00
Johannes Barthelmes 0f39051562 Fix uninitialized thread-locals in stbi #3282 (#3283) 2023-09-02 11:41:33 +02:00
Ray ec6d3bb688 RENAMED: LoadFont*() parameter names for consistency and coherence 2023-09-01 23:23:01 +02:00
Asdqwe 927a030bbf Fix examples/shapes/shapes_collision_area.c help instructions (#3279) 2023-08-30 22:43:19 +02:00
Asdqwe 3d0d54e070 Fix examples/shaders/shaders_texture_outline.c help instructions (#3278) 2023-08-30 22:42:01 +02:00
Asdqwe fefe8fcda9 Fix examples/others/easings_testbed.c help instructions and small tweak (#3277) 2023-08-30 22:40:49 +02:00
Asdqwe 46bac461ce Add examples/shaders/shaders_lightmap.c to Makefiles (#3276) 2023-08-30 22:40:24 +02:00
Asdqwe 1d2b43402e Remove a duplicated screenshot and add missing one (#3275) 2023-08-30 22:39:44 +02:00
Asdqwe 752baac00c Update examples/models/models_loading_gltf.png;m3d.png screenshots (#3273) 2023-08-29 19:28:03 +02:00
Ray 8157d4283e REVIEWED: GetFileLength(), added comment #3262 2023-08-29 19:26:15 +02:00
Ray 150663f78a Use type name instead of valid specifier
long long --> long long int
2023-08-29 19:25:44 +02:00
Asdqwe d047597244 Fix example/audio/audio_module_player.c help instructions and small bug (#3272)
* Fix example/audio/audio_module_player.c help instructions and small bug

* Update example/audio/audio_module_player.png screenshot
2023-08-29 19:04:27 +02:00
Ethan Conneely fc0d132566 Remove e from secondes (#3270) 2023-08-28 22:49:45 +02:00
Asdqwe de3dc94d5b Fix example/models/models_loading_m3d.c controls (#3269) 2023-08-27 21:15:02 +02:00
Asdqwe 9393500bff Fix example/models/models_loading_gltf.c controls (#3268) 2023-08-27 21:14:20 +02:00
iacore 76adf883fd Fix CMake extraneous -lglfw (#3266)
Closes #3265.

The problem: LIBS_PRIVATE is a list of library names (used by pkg-config), but the shared library of the same name doesn't always exist.
2023-08-27 15:43:39 +02:00
Asdqwe 71a8d09a63 Add missing cmake options (#3267) 2023-08-27 15:42:45 +02:00
Ray 9646497216 Formating review 2023-08-27 00:30:56 +02:00
Branimir Ričko b27e98a428 Fix bug where default shaders was not linking. (#3261) 2023-08-26 18:55:57 +02:00
Nickolas McDonald 9c9fba6a6c [Feature] IsKey... safety checks and more (#3256)
* [Feature] Add GetKeyRepeat

* Update rcore.c

* Simpler design, only one repeat per frame

* Update config.h

* Update rcore.c

* Add KEYBOARD_KEYS_MASK

* Update config.h

* reversions

* Update rcore.c

* Update rcore.c

* change docs

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update raylib.h

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c
2023-08-26 14:48:28 +02:00
Ethan Simpson 828d273698 Add Vector3 Projecting and Rejection to Raymath (#3263)
* Update raymath.h

* formatting
2023-08-26 14:44:52 +02:00
Jeffery Myers 21f5482e0d [Image] Validate that ImageDrawRectangleRec is drawing entirely inside the image (#3264)
* Add a function to clone a sound and share data with another sound.

* rename items based on feedback

* PR Feedback, use custom unload for sound alias, not variant of normal sound unloading

* sound_multi example

* Validate that image rect drawing is inside the image so we don't overflow a buffer

* remove files that should not have been added.

* remove changes that should not have been

* revert

* adsfasdfsdfsdf
2023-08-26 14:43:14 +02:00
ubkp 4fa66f2635 Fix SetClipboardText for web (#3257) 2023-08-26 14:40:30 +02:00
Asdqwe 8f228626a2 Match CMakeOptions.txt options default values (#3258) 2023-08-26 14:35:53 +02:00
vitopigno 5ed83dfa29 Update rcore.c (#3255) 2023-08-21 00:36:00 +02:00
Ray dfd0436428 Reviewed IsKeyPressedRepeat() #3248 2023-08-21 00:34:35 +02:00
actondev (Christos) b3f82a148a Add IsKeyPressedRepeat (desktop only) (#3245)
Since the key pressed are handle by comparing current vs previous
state (ie frame), a special way is needed to handle key repeats.
2023-08-20 23:53:20 +02:00
Ray 83628933f0 Merge branch 'master' of https://github.com/raysan5/raylib 2023-08-20 21:36:50 +02:00
Ray 8189bddefb tweaks 2023-08-20 21:36:36 +02:00
actondev (Christos) 820343e7ac add build.zig options for individual modules (#3254) 2023-08-20 21:27:39 +02:00
Ray f95dc2d565 Merge branch 'master' of https://github.com/raysan5/raylib 2023-08-19 20:09:53 +02:00
Ray 5a33f19964 Revert "Fix #3246"
This reverts commit e4dcbd5180.
2023-08-19 20:09:43 +02:00
ubkp 016b7d0a3a Fix text_unicode.c example crashing (#3250)
* Fix text_unicode.c example crashing

* Adjust the text_unicode.c example crashing fix
2023-08-19 13:43:00 +02:00
Ray e4dcbd5180 Fix #3246 2023-08-17 15:05:52 +02:00
ashn a86c93ebc0 Ignore unused return value of GetCodepointNext in GetCodepointCount (#3241)
* Ignore unused return value of GetCodepointNext in GetCodepointCount

Removes the last warning from non-external libraries when compiling with
the default build configuration on x64 Linux.

* Remove unnecessary void cast in GetCodepointCount
2023-08-15 00:09:27 +02:00
Ray e2d4463886 Update BINDINGS.md 2023-08-15 00:04:07 +02:00
ubkp e0afb8942e Fix examples/others/rlgl_standalone.c compilation issue (#3242) 2023-08-14 21:55:13 +02:00
Ray 7a1c0d2547 Added fortran-raylib 2023-08-14 21:10:24 +02:00
Ray bf705a63de REVIEWED: DrawLineCatmullRom() 2023-08-12 19:31:29 +02:00
Ray d873d0f173 ISSUE: DrawLineCatmullRom(), needs review 2023-08-12 18:45:59 +02:00
Ray 9161c55d59 REVIEWED: Code formatting 2023-08-12 18:40:18 +02:00
Ray fc88518067 ADDED: Spline drawing functions ->
- `DrawLineBSpline()`
 - `DrawLineCatmullRom()`
2023-08-12 14:00:50 +02:00
ubkp c25b52b1b3 Fix rcamera.h issues (#3240) 2023-08-11 10:19:50 +02:00
Ray 93f59a6f59 Review tabs and trail-spaces 2023-08-10 22:47:17 +02:00
Ray f1c31bee27 Fix #3177 #3109 2023-08-10 22:45:25 +02:00
RadsammyT 0959f6ebf6 fix typos in rmodels, rshapes, rtext modules (#3236) 2023-08-10 00:21:14 +02:00
ashn 90f1749965 Ignore unused function warnings from external headers when compiling with GCC and Clang (#3235) 2023-08-09 19:17:12 +02:00
Ray 42cfabc670 REVIEWED: Old pragma formating 2023-08-09 10:00:26 +02:00
RadsammyT 03ecf2202e Fix typos in rcore.c comments (#3234)
* Fix typos in rcore.c comments

thought i corrected "dettach"
Fix typos in rcore.c comments

* 'fordward' > forward
2023-08-08 20:10:40 +02:00
Nikolas bef818e210 Fix build for OpenGL 2.1, where half floats are part of an extension (#3233) 2023-08-08 20:09:22 +02:00
mohad12211 db55bed72b fix: check if ctrl modifier is among the currently set modifiers (#3230) 2023-08-07 19:51:36 +02:00
Le Juez Victor c9864d8ac1 Fixed Android app black screen issue when reopening after incomplete closing (#3227)
* Fixed black screen issue when resuming the app on Android

Partly explained here: https://github.com/raysan5/raylib/issues/3127

* Fix APP_CMD_TERM_WINDOW for Android
2023-08-06 22:04:20 +02:00
yujiri8 b82217eaaa Tweak build.zig to work with cross-compiling (#3225) 2023-08-06 09:25:37 +02:00
Nikolas dc621ca388 Support 16-Bit HDR textures (#3220)
* Support 16-Bit HDR textures

* Fix build on emscripten

* Move helper functions
2023-08-05 23:16:26 +02:00
Ray 6094869e3e Fix material loading #3126 2023-08-04 18:14:47 +02:00
Jeffery Myers 62f5382d56 [AUDIO] Add an example of how to use LoadSoundAlias (#3223)
* Add a function to clone a sound and share data with another sound.

* rename items based on feedback

* PR Feedback, use custom unload for sound alias, not variant of normal sound unloading

* sound_multi example
2023-08-04 17:14:04 +02:00
Jeffery Myers 601cadbae6 [AUDIO] Add a function to make an alias of a sound and share it's sample data (#3219)
* Add a function to clone a sound and share data with another sound.

* rename items based on feedback

* PR Feedback, use custom unload for sound alias, not variant of normal sound unloading
2023-08-04 16:40:10 +02:00
vitopigno d3058fe589 [CORE] Support for SetWindowTitle and InitWindow for web (#3222)
* Update raylib.h

Changed SetWindowTitle's description

* Update rcore.c

SetWindowTitle now works on web

* Update rcore.c

InitWindow title now works with web platform too.
2023-08-04 12:04:19 +02:00
ubkp 5b4aaf4eb1 Adds CMake option for SUPPORT_CUSTOM_FRAME_CONTROL (#3221) 2023-08-03 10:29:45 +02:00
ubkp 464e714a2e Adds BORDERLESS_WINDOWED_MODE for PLATFORM_DESKTOP (#3216) 2023-08-02 19:16:35 +02:00
Jeffery Myers 04678bc585 int math done with floats causes warnings. (#3218) 2023-08-02 19:12:38 +02:00
Joseph Montanez b60c691816 Update BINDINGS.md (#3217)
Updated Raylib-PHP to support Raylib 4.5
2023-08-02 09:05:02 +02:00
Matheus C. França e7664d5684 build change (#3214)
ref.: https://github.com/ziglang/zig/pull/16446
2023-08-01 10:46:40 +02:00
ubkp 4fd40f0333 Fixes GetCurrentMonitor() detection inconsistency issue (#3215) 2023-08-01 10:42:50 +02:00
Alexander Klingenbeck d3ea649832 Update BINDINGS.md to include rayjs (#3212) 2023-07-30 19:08:59 +02:00
ndytts 44659b7ba8 Fix android soname in src/Makefile (#3211) 2023-07-29 13:46:04 +02:00
ubkp 962030e70a Changes SetWindowMonitor() to no longer force fullscreen (#3209)
* Changes SetWindowMonitor() to no longer force fullscreen

* Readds fullscreen support
2023-07-28 20:08:41 +02:00
Nikolas 5d28bad0ad Fix LoadTextureCubemap for manual layouts (#3204) 2023-07-27 22:41:43 +02:00
ashn ac6f889dfc Fix misleading indentation in src/Makefile (#3202) 2023-07-26 17:50:07 +02:00
bohonghuang 298f93ef50 Fix DrawBillboardPro to allow source of negative size (#3197) (#3203) 2023-07-26 17:46:57 +02:00
Ray 32b54be5cb Update FAQ.md 2023-07-24 12:32:22 +02:00
ubkp 090b857912 Fix mouse wheel not working in PLATFORM_RPI or PLATFORM_DRM (#3193) 2023-07-23 20:35:41 +02:00
ubkp 295e8c2a2f Optimize and simplify the gesture system (#3190)
* Optimize and simplify the gesture system

* Decouples GESTURE_SWIPE_* from GESTURE_DRAG
2023-07-22 20:50:04 +02:00
Jakub Václav Flasar ad2338b994 build.zig: Support for building with PLAFORM_DRM (#3191)
- Adds an option -Dplatform_drm when using zig build
- When building for linux, checks whether -Dplatform_drm is present and configures the build accordingly.
2023-07-21 14:08:35 +02:00
smalltimewizard 1310617a92 Optimization of ImageDrawRectangleRec() (#3185)
A significant performance increase can be had by copying the first row to all other rows.
2023-07-20 13:50:56 +02:00
Alberto González Palomo 5635e4214c Add note about sample format to AttachAudioStreamProcessor() (#3188) 2023-07-20 13:41:35 +02:00
Danil 055fd752c2 Fixed GetMonitorName description (#3184) (#3189) 2023-07-20 10:56:35 +02:00
Alberto González Palomo 7124a14a60 Document buffer format for audio processors. (#3186) 2023-07-19 23:11:29 +02:00
Rokas Puzonas d6f16b7664 Update usage of 'sinf()' and 'cosf()' to be correct (#3181)
* Update usage of 'sinf()' and 'cosf()' to be correct

* Update formatting of arithmetic operations
2023-07-19 13:46:14 +02:00
ubkp 954c60100f Fix GESTURE_DRAG and GESTURE_SWIPE_* issues (mostly) for web (#3183) 2023-07-19 11:33:10 +02:00
Ray a9ff13a367 Update CMakeOptions.txt 2023-07-18 18:07:49 +02:00
Ray 52541b4a1f ADDED: SUPPORT_FONT_ATLAS_WHITE_REC
Support creating a 3x3 pixels white rectangle at the bottom-right corner of the generated font atlas image, useful for shapes+text drawing in a single draw call!
2023-07-18 17:57:10 +02:00
Ray e0c80f5ddd Revert "Makefile change for cross compiling. (#3176)"
This reverts commit 70286c7cdc.
2023-07-16 20:18:38 +02:00
Ray 86f95d7150 Reviewed C compilation issues and formatting 2023-07-16 13:24:49 +02:00
Michael Anghelone 70286c7cdc Makefile change for cross compiling. (#3176)
Working from wsl and compiling for windows this change makes it much easier to compile a static library for windows on arm.
To compile a static library for windows on arm:

```
make PLATFORM=PLATFORM_DESKTOP TARGET_OS=WINDOWS CROSS_CC=/llvm/bin/aarch64-w64-mingw32-gcc CROSS_AR=/llvm/bin/aarch64-w64-mingw32-ar
```

This does not work to compile a shared library yet, only static.
2023-07-16 13:08:55 +02:00
ubkp b980268ba7 [example] Core Input Gestures for Web (#3172)
* [example] Core Input Gestures for Web

* Fix Doubletap for web

* Changes TAP_TIMEOUT and rgGetCurrentTime to seconds
2023-07-16 13:07:29 +02:00
Roy Qu 22895ba14f fix: cmake option "OPENGL_VERSION" doesn't work (#3170) 2023-07-13 21:20:06 +02:00
Ray bc9c063254 Update external sdefl and sinfl 2023-07-12 15:49:38 +02:00
ubkp 8096f142ec Add a new task the issue template about checking the wiki (#3169) 2023-07-12 12:02:33 +02:00
Ray 290ec11e7c Merge branch 'master' of https://github.com/raysan5/raylib 2023-07-12 10:37:17 +02:00
Ray 7f21cf1dcf Revert "UPDATED: sdefl and sinfl compression libraries"
This reverts commit e190b7eee9.
2023-07-12 10:37:10 +02:00
Anand Swaroop e8181a5ddf Update latest h-raylib version (#3166) 2023-07-11 15:21:49 +02:00
Ray 2061bfc5e8 Reviewed parameter names to avoid issues #3159 2023-07-10 19:29:10 +02:00
Ray bc40012ca3 Added missing structure on standalone mode #3160 2023-07-10 19:15:55 +02:00
Ray b807c590cb Merge branch 'master' of https://github.com/raysan5/raylib 2023-07-10 19:13:53 +02:00
Ray 0b9fae3c53 Reviewed rcamera/rgestures file-macros for consistency #3161 2023-07-10 19:13:44 +02:00
ubkp 4b6cbd2340 Fix Touch pointCount for web (#3163) 2023-07-10 18:58:56 +02:00
Evan Pratten 91e4eea52d Add raylib-ffi to bindings list (#3164) 2023-07-10 18:58:10 +02:00
o3o 334e96d470 update bindbd-raylib3 to raylib 4.5 (#3157) 2023-07-06 12:32:02 +02:00
Ray 685d47938b Reverted MeasureTextEx() change #3105 2023-07-06 12:31:01 +02:00
Ray 668b37e111 REVIEWED: GenImageFontAtlas(), make atlas size less conservative 2023-07-06 12:29:28 +02:00
Ray 4f9235f6eb Merge branch 'master' of https://github.com/raysan5/raylib 2023-07-05 18:36:59 +02:00
Ray 58bd10edb2 Update rtext.c 2023-07-05 18:36:54 +02:00
ubkp 13a26a0fa2 Fix degrees of swipe gestures for web (#3155) 2023-07-05 16:43:00 +02:00
Wytek01 3c4ce9c99b Update examples_template.c to raylib 4.5 (#3156) 2023-07-05 16:39:38 +02:00
Ray 225b4fb3e2 REVIEWED: Vector2Angle() 2023-07-04 16:58:43 +02:00
ubkp dd2d64e058 Fix pinch gestures for web (#3153) 2023-07-04 11:08:58 +02:00
ubkp ffe4d36e0a Fix swipe gestures for web (#3151) 2023-07-03 09:29:26 +02:00
Ray fdc28fce80 Reviewed vector2angle example 2023-07-02 20:05:15 +02:00
Ray e8af875756 Minor format tweak, another issue introduced... 2023-07-02 18:54:50 +02:00
Gisteron 64bb2fe3ec fix vector angle example mode 0 circle segment drawing (#3150) 2023-07-02 18:51:27 +02:00
Ray d1ab031a27 ADDED: SetWindowFocused() #3142 2023-07-02 17:48:00 +02:00
Ray 5361d498c3 WARNING: REDESIGN: Vector2Angle()<-->Vector2LineAngle() #2887 2023-07-02 17:27:38 +02:00
Ray 4fc5e82e30 REVIEWED: TextToUpper(), TextToLower(), TextToPascal() 2023-07-02 11:10:42 +02:00
Ray 3e4e4b32fd WARNING: BREAKING: ADDED: SetTextLineSpacing() 2023-07-02 10:52:20 +02:00
Ray 48e2663d03 REVIEWED: Issue #3105 2023-07-02 10:51:39 +02:00
Ray df90da0b37 Update rcore.c 2023-07-02 10:50:40 +02:00
Ray e190b7eee9 UPDATED: sdefl and sinfl compression libraries 2023-06-30 09:47:16 +02:00
Ray ceafbcf9d2 REVIEWED: SetShapesTexture(), allow reseting 2023-06-28 00:37:24 +02:00
Kenta 5834e970eb Update BINDINGS.md (#3138)
Change C3 to Zlib
Update Raylib-nelua's name as Raylib.nelua to reflect repo change.
Update Raylib.nelua licence to Zlib
2023-06-27 22:03:42 +02:00
Jeffery Myers 0c126af717 casting warnings in rtextures (#3134) 2023-06-24 23:38:09 +02:00
Ray 2d518bfbcd REVIEWED: ProcessMaterialsOBJ() #3125 2023-06-24 13:32:13 +02:00
Ray 77d025ebda Merge branch 'master' of https://github.com/raysan5/raylib 2023-06-24 13:27:07 +02:00
Ray 974460b072 REVIEWED: rlLoadShaderBuffer() #3104 2023-06-24 13:26:43 +02:00
Ian Rash fa698fb05e Update BINDINGS.md for Crystal (#3132)
Just updated
2023-06-24 13:22:23 +02:00
Le Juez Victor 5e1a81555c Review android_main() in rcore.c (#3121) 2023-06-20 11:01:57 +02:00
Dante Catalfamo 3a90acf08e Add options to zig compile (#3115)
* Add options to zig compile options

Support for compiling with raygui, raymath, and physac.
Also outputs the required headers.

Raygui should be located `../raygui` relative to the repo root
Physac should be located `../physac` relative to the repo root

This behavior matches options in the Makefile

* Move Options struct

* Remove physac, explicit raymath, always copy rlgl.h and raymath.h

* Remove unused options from build.zig

* Add srcdir as include path for raygui.h
2023-06-18 11:48:50 +02:00
Ray 830e328df0 Remove trailing spaces 2023-06-17 16:48:18 +02:00
lesleyrs 2209e5b0ca fix window flags order (#3114) 2023-06-16 18:08:10 +02:00
Ray a0a18384cb Fix typo 2023-06-16 16:34:47 +02:00
iacore 7392c4b0c5 Better examples/core_input_gamepad (#3110)
* examples/core_input_gamepad: Add visuals for LT,RT

* examples/core_input_gamepad: arrows left/right to choose gamepad

* Style change
2023-06-14 20:46:10 +02:00
Chema Guerra f385d0ce1c Continuation of support for ES3/WebGL2 (#3107)
* Continuation of support for ES3/WebGL2

* GetTouchPointState()

* Amends to the WebGL2 PR

---------

Co-authored-by: root <root@DESKTOP-GLOV9QV>
Co-authored-by: chemguerra <online@chemaguerra.com>
2023-06-12 08:18:31 +02:00
Charles 2e00d16f3d GLTF: fix segfault in animNormals memcpy when mesh.normals == NULL (#3103) 2023-06-10 22:15:24 +02:00
Ray 6aada7d5ec Updated examples to raygui 4.0-dev 2023-06-09 18:07:25 +02:00
Le Juez Victor 753c0b3853 Addition of support for vox files in version 200. (#3097) 2023-06-05 01:13:08 +02:00
Ray f8b352f6d9 ADDED: ExportImageToMemory()
Only PNG supported for now
2023-06-03 19:51:16 +02:00
Ray ba802fdd5e tweaks 2023-06-03 19:50:46 +02:00
Pixel Phobic b1b6ae3905 Full Movement Added to Right Analog Stick (#3095)
I Added Analog Stick Support to the rcamera module, However this code only allowed for 4 Directions of Movement, This Changed adds the full range of Movement to the Right Analog Stick.
2023-06-02 10:29:45 +02:00
Peter0x44 2dec56e7b7 Add error if raylib.h is included in a C++98 program (#3093)
The color macros don't work properly in C++98, because they require
aggregate initialzation, which is a C++11 feature. So, explicitly state
how to fix this issue, instead of letting the compiler give a more vague
error message like:

main.cpp:8:23: error: expected '(' for function-style cast or type construction
      ClearBackground(BLACK);
                      ^~~~~
/opt/homebrew/Cellar/raylib/4.5.0/include/raylib.h:179:35: note: expanded from macro 'BLACK'
 #define BLACK      CLITERAL(Color){ 0, 0, 0, 255 }         // Black

NOTE: Don't use this check with MSVC because by default, it reports
199711L  regardless of any C++ version passed on command line
Only passing `/Zc:__cplusplus` will make MSVC set this correctly

see: https://learn.microsoft.com/en-us/cpp/build/reference/zc-cplusplus
2023-06-01 09:47:52 +02:00
Ray e497603678 ADDED: Experimental support for OpenGL ES 3.0 -WIP-
Just added the required flags to request the OpenGL ES 3.0 context but it has not been tested...
2023-05-31 18:36:33 +02:00
A Billy a18667c2e9 cross compilation for PLATFORM_DRM (#3091)
* added cross compilation options for DRM

* fixed identation
2023-05-30 21:34:08 +02:00
yujiri8 45c00ab9d4 build.zig: Fix cross-compiling from Linux (#3090) 2023-05-30 21:33:01 +02:00
Ray 924bb7226b UPDATED: sdefl and sinfl DEFLATE compression libraries 2023-05-30 21:12:03 +02:00
RayIT 15cbf313bb Enhanced cmake part for OpenBSD (#3086)
* Fixed compile on OpenBSD

* Changed to not use seperate UNIX for cmake
2023-05-28 14:49:33 +02:00
RayIT 4a371a5197 Fixed compile on OpenBSD (#3085) 2023-05-28 11:33:14 +02:00
Nikita K aad51d4704 BINDINGS.md: Janet bindings supported version update (#3083) 2023-05-27 13:11:33 +02:00
Jason Liang 20860e2ba0 Fix a link in the FAQ (#3082) 2023-05-27 09:27:44 +02:00
Ray 5ef50ae139 REVIEWED: ImageRotate() formatting 2023-05-26 14:01:19 +02:00
LuraMoth 144ae120ab Add new file formats to FAQ (#3079)
I noticed some file formats from the new release of raylib were missing so I decided to help out and update it!
2023-05-25 09:15:53 +02:00
Dane Madsen e465ed0850 Added ImageRotate (#3078)
* Added ImageRotate

* Quick rename of the example

* Update ImageRotate by changing doubles to floats and checking code convention

* Update API
2023-05-24 09:22:51 +02:00
Ray bf69b38056 Added security check to file reading (memory allocations) 2023-05-22 16:08:14 +02:00
Ray 2937f2010c Review coding conventions 2023-05-22 16:06:03 +02:00
Dane Madsen a4a6d4da8a Add GenImageGradientSquare (#3077)
* Add GenImageGradientSquare to allow square gradients

* Fix GenImageGradientSquare and add to textures_image_generation example

* Remove params from GenImageGradientSquare
2023-05-22 15:20:28 +02:00
Ray 84ae26cdc0 Update raylib.h 2023-05-21 11:35:25 +02:00
Dane Madsen e96dc46d38 Replaced GenImageGradientH and GenImageGradientV with GenImageLinearGradient (#3074)
* Replaced GenImageGradientH and GenImageGradientV with GenImageLinearGradient

* renamed GenImageLinearGradient to GenImageGradientLinear
2023-05-21 11:33:47 +02:00
Ray 1b4634702c Minor tweak 2023-05-21 11:20:42 +02:00
Ray 3a841ac130 REVIEWED: GenImagePerlinNoise(), clamp values #3071 2023-05-21 10:28:04 +02:00
Ray f31df7521a REVIEWED: GenImagePerlinNoise(), no change 2023-05-21 00:14:09 +02:00
Ray 51387dfbfb tweak 2023-05-18 16:14:18 +02:00
Ray a3e78c5453 Update README.md 2023-05-18 12:00:51 +02:00
Ray fe6973a4f6 Update README.md 2023-05-18 11:59:35 +02:00
Ray 76e39e502c Update rtextures.c 2023-05-17 23:14:14 +02:00
Ray 3a3e672804 UPDATE: miniaudio v0.11.12 --> v0.11.16 2023-05-17 11:54:32 +02:00
Ray c3f049fd74 review formatting 2023-05-16 11:02:00 +02:00
Le Juez Victor 675efbda3b Fix Android app freeze after calling CloseWindow() (#3067)
Fixed that the Android application was not closed properly after calling `CloseWindow()` and continued to run.
2023-05-16 11:00:44 +02:00
Ray e17cf9ecd7 REVIEWED: Formating 2023-05-15 11:30:31 +02:00
Pixel Phobic 3f8ef4e05f Updated (rcamera) To Add Analog Stick Cam Controls (#3066)
I Noticed While Writing Some code for My Game im Making that there Isn't an Easy way to control the Camera With The Analog Sticks on Controller.

I Added  a Couple Lines to the UpdateCamera Function :)
2023-05-15 11:25:44 +02:00
Crynux 3438325e7d Update rmodels.c; free fileData for LoadModelAnimationsGLTF (#3065)
fileData wasn't freed for LoadModelAnimationsGLTF causing a memory leak. Added UnloadFileData line, freeing it.
2023-05-15 11:24:37 +02:00
Gamer-Kold 6b92d71ea1 Reverted commits that deprecated the build.zig files, and added a note to all of them stating version of zig they were using (#3060)
* Revert "Fixed broken build.zig files. Now works with latest stable compiler (as of commit, latest is 0.10.1) (#3045)"

This reverts commit de748dfffe so that zig
build script works with master branch of zig.

* Added a note to build.zig files that denotes what version of zig they have been tested with.

* Standardised the note in the build.zig files
2023-05-15 11:23:36 +02:00
hamyy 26a3536958 GetCurrentMonitor() bugfix (#3058)
* GetCurrentMonitor() bugfix

* GetCurrentMonitor() bugfix
2023-05-14 21:20:43 +02:00
lesleyrs 818312683e update cmake example project (#3062)
* update cmake example project

* off is the correct one
2023-05-14 21:15:32 +02:00
Michael Scherbakow cc17a7656c Update build.zig be be able to build with current zig master (#3064) 2023-05-14 21:14:16 +02:00
JupiterRider 5978358e58 Update BINDINGS.md (#3053) 2023-05-11 19:48:53 +02:00
Ray 452e3b494c REVIEWED: GetCollisionRec() 2023-05-10 19:25:12 +02:00
manuel5975p af4b97a301 Update GetCollisionRec (#3052)
* Update rshapes.c

Add a much more efficient GetCollisionRec implementation

* Update GetCollisionRec

Replace macros with ternary operators
2023-05-10 19:19:59 +02:00
Ray 152262dbfc Update cgltf.h 2023-05-10 12:48:17 +02:00
Ray fe595d60f7 Remove trailing spaces 2023-05-08 18:57:36 +02:00
Kenta 81e2c97095 Update BINDINGS.md (#3050)
Update C3 binding to use Raylib version 4.5
2023-05-08 16:00:21 +02:00
Shoozza 204c6765bd Fix vs code project (#3048)
* Modify remove trailing whitespace

* Fix invalid SetCameraMode call and missing argument to UpdateCamera for VSCode project
2023-05-07 20:22:37 +02:00
Scott Helvick 05e71f990c Version bump for CL bindings (#3049) 2023-05-07 20:21:47 +02:00
Alfred Reinold Baudisch 53b7b26c45 Added ModelAnimation.name, initially with GLTF animation names loaded (#3044) 2023-05-07 10:33:14 +02:00
Gamer-Kold de748dfffe Fixed broken build.zig files. Now works with latest stable compiler (as of commit, latest is 0.10.1) (#3045)
Co-authored-by: Talha Qamar <qamartalha@proton.me>
2023-05-06 12:04:40 +02:00
Ray 5573f0f1c7 REVIEWED: Ligthmap example 2023-05-04 20:35:20 +02:00
Jussi Viitala abcbd9817e Lightmap example. (#3043) 2023-05-04 20:21:35 +02:00
Ray a48bb6e1ed ADDED: Comment to clarify raymath semantics 2023-05-02 20:51:54 +02:00
Ray fc56940055 REVIEWED: ExportDataAsCode() 2023-05-02 20:40:45 +02:00
Ray 3a21301724 ADDED: Comment about Matrix conventions 2023-05-02 19:29:14 +02:00
Ray 7d68aa6869 REVIEWED: Modules description layout 2023-05-01 14:04:22 +02:00
Ray a4a5a798bd Update rlgl_compute_shader.c 2023-05-01 14:03:32 +02:00
star-tek-mb ed2caa1277 fix for latest zig master (#3037) 2023-05-01 11:02:34 +02:00
Ray 59596e4266 Update rcore.c 2023-04-29 20:39:36 +02:00
Thiago P 66f0de2807 WingBGI now leads to the correct website! (#3033)
The old link led to an unregistered site (http://www.codecutter.net/tools/winbgim/). The actual domain has changed to (https://winbgim.codecutter.org/). 
I checked the wayback machine, it's the same site, take a look: https://web.archive.org/web/20190421035959/http://www.codecutter.net/tools/winbgim/.
2023-04-29 20:34:14 +02:00
Le Juez Victor 662dfad670 Correction of values ​​used only once in GenMeshCubicmap (#3032)
* Correction of values ​​used only once in GenMeshCubicmap

The mapWidth and mapHeight values ​​were only used as a limit in the for loop when they could be used throughout the function.

* mapWidth and mapHeight removed from GenMeshCubicmap

mapWidth and mapHeight have been removed from GenMeshCubicmap in favor of using cubicmap.width and cubicmap.height
2023-04-29 17:03:19 +02:00
kolunmi 98cb7a19a1 ensure distance is greater than 0 in CameraMoveToTarget (#3031) 2023-04-27 22:17:57 +02:00
Ray e2996f167e Update rtextures.c 2023-04-25 20:01:26 +02:00
Ray 64f2f86d32 Update rtextures.c 2023-04-25 15:15:57 +02:00
Ray 6472928cf1 REVIEWED: ImageDrawRectangleRec() #3027 2023-04-25 14:16:48 +02:00
Ray ac2e9cd00f REVIEWED: Update CORE.Input.Touch.pointCount #3024 2023-04-23 11:48:01 +02:00
Chris b9b045cdd8 Update BINDINGS.md (#3026) 2023-04-23 11:41:34 +02:00
Ray 838fc7e303 REVIEWED: Some old TODOs 2023-04-22 21:17:53 +02:00
Dor Shapira 05af08080e Update BINDINGS.md (#3023)
update raypyc version to 4.6-dev
2023-04-22 19:38:56 +02:00
Dan Bechard 2d04dd8b88 Fix off-by-one error in CheckCollisionPointRec (#3022)
Checking `<= x + w` causes off-by-one error where `CheckCollisionPointRec` will return true at the same time for two rectangles rendered right next to each, but which don't overlap (e.g. when making a 2D tile editor). This is clearly not what was intended.
2023-04-22 10:15:19 +02:00
Mingjie Shen 7b7c0c83ef Fix offset used before range check (#3021)
This use of offset 'i' should follow the range check.
2023-04-22 10:13:11 +02:00
Soutaisei 535680668b Update BINDINGS.md (#3017)
Update Kaylib to Raylib version 4.5
2023-04-19 21:25:25 +02:00
Ray 771957458d Avoid shader attribute not found log 2023-04-17 17:50:46 +02:00
Ray 9d38363e09 Remove trailing spaces 2023-04-17 12:18:06 +02:00
RadsammyT e2da32e2da [raudio] Rewritten ExportWaveAsCode() file saving to be more like rtextures ExportImageAsCode() (#3013)
* Update raudio.c

Review `raudio.c`: rewritten `ExportWaveAsCode()` to be more like rtextures.c `ExportImageAsCode()'

* no tab november

accidentally inserted a tab somewhere. corrected it.
2023-04-15 10:58:00 +02:00
Benjamin Thomas 70d7f67bd8 CMake project example: fix a couple of typos (#3014) 2023-04-15 10:55:40 +02:00
Ray 709b14180a Make assets loading extension case insensitive #3008 2023-04-13 23:08:32 +02:00
Ray 9aa71f04f2 Avoid tracelog about not found uniforms #3003 2023-04-10 11:02:00 +02:00
eternalStudent 8f741d894a Minor fix in DrawLineBezier* (#3006)
When `i` starts with `0`, `t` is also `0`, which results in `previous == startPos == current`, this segment is not only redundant, but it also causes division-by-zero since `sqrtf(dx*dx + dy*dy)` is zero.
2023-04-09 22:43:06 +02:00
Jeffery Myers e57ee9c0e8 Fix warnings in raylib for MSVC (#3004) 2023-04-09 22:42:15 +02:00
fubark 06c17ab7f1 Update BINDINGS.md (#3002) 2023-04-08 19:05:41 +02:00
Ray d8c7b01a3c REVIEWED: GetGlyphIndex() #3000 2023-04-06 12:49:59 +02:00
chocolate42 8367abad1a [rtext] Fix GetCodepointNext() to return default value on invalid input with size=0 (#2997)
* Fix GetCodepointNext to return default value with size=0 on invalid input. Modify LoadCodepoints to work when GetCodepointNext returns a size of 0. All internal use of GetCodepointNext and GetCodepointPrev checked. This fix may break external code dealing with invalid input as the old code erroneously never returned a size of 0, external code that doesn't properly check for size=0 may endlessly loop or overflow a buffer on invalid input.

* Change default behaviour of GetCodepointNext to return a size of 1 instead of 0. This matches existing prod behaviour and guarantees size 1..4 is returned. Simplify internal code that uses GetCodepointNext that previously had to account for size=0.

* Simplified progressing through a UTF-8 string in ImageTextEx and MeasureTextEx. This change matches existing precedent in DrawTextEx

* GetCodepointNext: Add 10xxxxxx checks to multibyte encodings.

---------

Co-authored-by: anon <anon>
2023-04-06 12:34:37 +02:00
Jorge A. Gomes 17c443ee6d Update BINDINGS.md (raylib-py -> 4.5) (#2992)
Co-authored-by: Ray <raysan5@gmail.com>
2023-03-29 13:52:33 +02:00
Astie Teddy 1a110dcbd7 Update BINDINGS.md (raylib-lua -> 4.5) (#2989) 2023-03-25 23:26:38 +01:00
Ray 02bd709043 Update BINDINGS.md 2023-03-25 10:38:21 +01:00
Steven Schveighoffer 1fc8f1bdbf Update raylib-d binding version to 4.5 (#2988) 2023-03-25 10:32:46 +01:00
WIITD 57082d6600 update raylib-freebasic to 4.5 (#2986) 2023-03-23 22:26:55 +01:00
Ray 6287f68c0b Lazy loading of default font for image loading (no InitWindow) 2023-03-22 20:11:36 +01:00
Ray 0925851f89 Update rl_gputex.h 2023-03-22 20:11:03 +01:00
Ray 770e239f73 Minor tweaks to raylib events automation system 2023-03-22 19:47:42 +01:00
Ray 0d4db7ad7f Update CMakeLists.txt 2023-03-22 12:43:18 +01:00
Ray 19892a3c3a Update resource arch for 64bit #2978 2023-03-22 11:15:00 +01:00
Ray ecb6a6af32 Review format 2023-03-22 11:08:46 +01:00
Rico P 8b8eddc8e2 slightly optimize Vector3Normalize (#2982) 2023-03-22 11:01:05 +01:00
Hanaxar e55bdd5d8a Fix packing logic error in ``GenImageFontAtlas`` (#2979)
Basic packing algorithm currently follows this order: Copy pixel data -> Move offsetX for current glyph -> Check remaining space for current glyph...
Since X offset already moved according current glyph, remaining space should be checked for next glyph. Because of this, occasionally, current logic causes glyphs wrapping around texture.
Proposed fix accomplishes that by moving offsetX check to the beginning of the loop.
2023-03-22 11:00:13 +01:00
Hanaxar 02a8a49961 Calculate exact image size in GenImageFontAtlas (#2963)
* Calculate exact image size in GenImageFontAtlas

Calculate exact image size with a method based on total glyph width and glyph row count
Current method seemed a little bit overkill with square root, log and power functions and only approximates image size which can be wonky with some weird fonts like cursive fonts.
Proposed method calculates image size directly with a simpler method and results exact image size needed.

* Update rtext.c

* Update rtext.c

Changed do-while to while loop, and also added an extra step to calculate maximum glyph width and excluding it from image width for extra safety.
2023-03-22 10:59:28 +01:00
Jarrod Davis 7565e274b1 Update BINDINGS.md (#2983)
Adding raylib for Pascal
2023-03-22 08:55:58 +01:00
gingerBill d61303b1b0 Update BINDINGS.md for raylib Odin 4.5 (#2981) 2023-03-21 22:46:20 +01:00
Gunko Vadim 04229c5854 Update BINDINGS.md (#2980)
update ray4laz to raylib 4.5
2023-03-21 20:03:38 +01:00
Ray a139ba9c48 Update README.md 2023-03-21 12:04:03 +01:00
Mansour Quddus 4f43ceb0d2 add missing space in one of the cameraDescriptions (#2977) 2023-03-21 08:31:29 +01:00
Ray 9f7a49bec3 Updated version to avoid confusion with 4.5 release 2023-03-20 18:03:37 +01:00
Ikko Eltociear Ashimine ace7aef0e6 Fix typo in rmodels.c (#2976)
Upate -> Update
2023-03-20 16:43:22 +01:00
Rob Loach e450c75f6f BINDINGS: Update various versions to 4.5 (#2974) 2023-03-20 16:41:16 +01:00
Webfra 08670ecea1 Add const qualifier to char * path argument in qoaplay_open() (#2972)
* Add const qualifier to char * path argument
in qoa_open()

* Remove unnecessary cast
2023-03-19 20:34:22 +01:00
Michael Scherbakow 03e19c7f43 Update raylib.zig version to 4.5 (#2971) 2023-03-19 18:27:21 +01:00
Anand Swaroop 3c02f0c75b Update h-raylib version (#2970) 2023-03-19 15:38:30 +01:00
Ray 2e02474b7a Update core_loading_thread.c 2023-03-19 11:25:29 +01:00
Rob Loach c14c7f0b69 raudio: Fix warning on discarded const qualifier (#2967)
The `qoaplay_open()` function expects a `char *`, but we are passing in a `const char *`. While this works just fine, it does issue a compiler warning when strict:

```
src/raudio.c: In function ‘LoadMusicStream’:
src/raudio.c:1290:45: warning: passing argument 1 of ‘qoaplay_open’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 1290 |         qoaplay_desc *ctxQoa = qoaplay_open(fileName);
      |                                             ^~~~~~~~
In file included from src/raudio.c:233:
src/external/qoaplay.c:86:34: note: expected ‘char *’ but argument is of type ‘const char *’
   86 | qoaplay_desc *qoaplay_open(char *path)
      |                            ~~~~~~^~~~
```

This change casts the argument to a `char *` to fix the warning.
2023-03-19 11:16:52 +01:00
Niels Martignène 76b5959bb5 Fix missing symbol when rglfw.c on BSD platforms (#2968) 2023-03-19 09:43:51 +01:00
ashn fec96137e8 Update Makefile comment to indicate arm64 as a supported Linux desktop platform (#2965) 2023-03-18 17:37:04 +01:00
Ray 18a36b3e06 Update raylib.sln 2023-03-18 17:35:14 +01:00
Ray 40d01162b9 Merge branch 'master' of https://github.com/raysan5/raylib 2023-03-17 00:05:51 +01:00
Ray e8a5d7b85c Update CHANGELOG 2023-03-17 00:05:40 +01:00
Brian E e06047419c Added my BQN Library to the list (#2962)
I'm the only maintainer and have been working hard recently to get my library to be as nice to use as possible. I found out about this language list, and getting a new language on it didn't seem so bad. A bonus for my efforts.
2023-03-16 22:45:42 +01:00
Ray 03516b1c68 Update npes_saved_w64devkit.txt 2023-03-15 19:09:30 +01:00
Ray 7ab24b94ee Delete c_raylib.xml 2023-03-15 19:09:27 +01:00
Ray bf3e527dab Update config.h 2023-03-15 17:51:23 +01:00
Ray b31c836456 Update CHANGELOG 2023-03-15 17:51:03 +01:00
ashn 1aacefd6fa Add raylib-sunder to BINDINGS.md (#2958) 2023-03-15 14:56:24 +01:00
Ray 3b4f9faebc UPDATED: Notepad++ instellisense data 2023-03-15 13:17:14 +01:00
Ray 159e6b6f24 UPDATED: raylib-parser output files (TXT, XML, JSON, LUA) 2023-03-15 13:13:48 +01:00
Ray ad2067340f REVIEWED: TraceLog(), avoid possible buffer overflow 2023-03-15 13:03:55 +01:00
veins1 cf04425bc2 Spelling (#2957) 2023-03-14 19:23:17 +01:00
Ray 796d96408b Update HISTORY.md 2023-03-14 14:06:37 +01:00
Ray 54ccb18e87 Update write_depth.fs 2023-03-14 13:39:33 +01:00
Ray 3d64598e11 Update Makefile 2023-03-14 13:14:19 +01:00
Ray 7ac2b4a226 Update HISTORY.md 2023-03-14 13:07:24 +01:00
Ray 2b9ef7d15c Update ROADMAP.md 2023-03-14 13:06:22 +01:00
Ray 975c70d2b7 Update rlgl.h 2023-03-14 13:06:17 +01:00
Ray a6300d828a Update CHANGELOG 2023-03-14 13:05:58 +01:00
Ray 1a361fdfe2 Update Makefile.Web 2023-03-13 23:24:30 +01:00
Ray 5a2c49b954 Updated Makefiles to include all missing new examples 2023-03-13 23:13:02 +01:00
Ray 90ec0d52e0 Reviewed filename 2023-03-13 23:12:23 +01:00
Ray a7f81b06b9 Remove trailing spaces 2023-03-13 12:08:23 +01:00
Ray 393b0d1a80 Delete rcamera.old.h 2023-03-13 12:06:54 +01:00
Ray 9a115106b4 Update miniaudio.h 2023-03-13 11:48:34 +01:00
Ray a3b7bd0891 Update webassembly.yml 2023-03-13 11:44:49 +01:00
Ray dad0e64aa8 Update HISTORY.md 2023-03-13 11:44:02 +01:00
Ray 90e36d1883 Update ROADMAP.md 2023-03-13 10:54:06 +01:00
Ray 8873aca268 Update CHANGELOG 2023-03-12 21:09:50 +01:00
Ray ce28dfbdeb Update CHANGELOG 2023-03-12 21:03:21 +01:00
Ray e4bc2c643e Update README.md 2023-03-12 20:52:24 +01:00
Ray 54f01e151c Update CHANGELOG 2023-03-12 20:50:19 +01:00
Ray 11e9a0d41c Update CHANGELOG 2023-03-12 20:48:49 +01:00
Ray 4f38830058 Some tweaks 2023-03-12 20:14:32 +01:00
Ray 520ea94de8 Update version to raylib 4.5 2023-03-12 19:52:24 +01:00
Ray 8ca3212701 REVIEWED: UpdateCameraPro() to use Vector3 2023-03-12 19:40:43 +01:00
Ray f9c4cc2040 ADDED: UpdateCameraPro() -Experimental-
REVIEWED: rcamera module formating
REVIEWED: `core_3d_camera_example`
2023-03-12 19:28:42 +01:00
Ray b436c8d7e5 ADDED: Security check for emscripten_run_script() #2954 2023-03-12 13:48:11 +01:00
Ray ee3e40c663 Update rcore.c 2023-03-12 13:47:02 +01:00
Ray 4fd1e04e70 Update CHANGELOG 2023-03-07 21:03:44 +01:00
Ray 4f7b5ff59f WARNING: REMOVED: UnloadModelKeepMeshes() 2023-03-07 20:40:45 +01:00
Ray ab1e246367 REVIEWED: Data types validation 2023-03-07 20:33:45 +01:00
Ray 15716e59dc Update CHANGELOG 2023-03-07 20:07:54 +01:00
Ray aa3c7f4614 Merge branch 'master' of https://github.com/raysan5/raylib 2023-03-07 19:55:02 +01:00
Ray ae53600d31 WARNING: REMOVED: Multichannel audio support API 2023-03-07 19:54:53 +01:00
Ray 57f0015a08 Update CHANGELOG 2023-03-07 19:51:17 +01:00
Ray 1b873b028f WARNING: REMOVED: Multichannel audio support API
It was quite restrictive and hacky implementation, just load multiple types same sound to play multiple instances.
2023-03-07 19:48:47 +01:00
Ray 3a332d241c Update CHANGELOG 2023-03-07 11:32:37 +01:00
Sid K 0b18882a94 fix(build): Fix DLL build on Windows (#2951)
Changes the DLL export condition to apply to platform WIN32 instead of
compiler MSVC
2023-03-06 21:10:18 +01:00
Ray 8f7e2cd179 Replace TABS by 4 spaces 2023-03-06 15:05:57 +01:00
Ray 614e0518a7 Remove trailing spaces 2023-03-06 14:58:58 +01:00
Ray cf1ebada0e Tweak WindowDropCallback() #2943 2023-03-06 13:15:13 +01:00
Ray aae7ab64c7 Update raudio.c 2023-03-06 13:00:30 +01:00
Ray 68ee0bb8dd ADDED: QOA music streaming (with auxiliar lib)
Some format tweaks
2023-03-06 12:33:49 +01:00
Ray d3f5bc4043 REVIEWED: GetWindowHandle() #2950 2023-03-05 20:06:45 +01:00
Ray f4f6e25340 Support QOA audio file format by default 2023-03-05 14:07:02 +01:00
Ray 9614d3353b REVIEWED: QOA audio file export 2023-03-05 13:49:18 +01:00
Ray ab14ad5d75 Close issue #2949 2023-03-05 11:26:37 +01:00
Ray 0eeb499288 Update qoa.h 2023-03-05 11:17:47 +01:00
Ray 5492f52adc Change default threading model for COM objects
It shouldn't matter much but it could avoid some conflicts with other libraries in the future (like `tinyfiledialogs`).
2023-03-05 00:09:56 +01:00
Ray 1611cd54e7 REVIEWED: GetWindowHandle() #2938 2023-03-04 18:56:04 +01:00
Ray 6897b43599 REVIEWED: core_drop_files #2943 2023-03-03 20:13:35 +01:00
Antonis Geralis 394b31faff Add GL_MIN GL_MAX blending equations (#2945) 2023-02-26 12:01:42 +01:00
Ray 73c9f72c52 Update rtextures.c 2023-02-25 22:32:50 +01:00
Ray 7fd2bf1a32 Minimal tweak 2023-02-25 01:07:52 +01:00
Ray 215eb967e8 Update rcore.c 2023-02-24 18:31:16 +01:00
Ray cb2ba3675c REVIEWED: rlUnloadFramebuffer() #2937 2023-02-24 16:19:25 +01:00
Ray ca98a84d68 Update rtext.c 2023-02-24 15:27:25 +01:00
fubark 110eab56a7 Add Cyber to BINDINGS.md (#2939) 2023-02-24 00:48:28 +01:00
Ray d5a31168ce REVIEWED: Data validation 2023-02-23 18:08:15 +01:00
Ray d652b95fbf ADDED: Security checks 2023-02-22 17:28:25 +01:00
Ray 153470d605 REVIEWED: GenMeshTangents(), avoid crash on missing texcoords data #2927 2023-02-21 23:55:55 +01:00
Ray b4d824d6fc REVIEWED: GetMonitorWidth() and GetMonitorHeight() #2934 2023-02-21 23:10:03 +01:00
Ray 8169d0eab2 REVIEWED: IsWindowFocused() to consider Android App state #2935 2023-02-21 23:01:23 +01:00
Ray b2926b2d28 Update rtextures.c 2023-02-21 13:20:52 +01:00
Ray 3cade2a1a0 REVIEWED: IsImageReady() and IsTexureReady()
Reordered some functions to avoid config.h issues when disabling some features.
2023-02-21 13:20:04 +01:00
Ray bcae065c88 REVIEWED: IsShaderReady() 2023-02-21 13:15:11 +01:00
Ray 1347a15539 ADDED: SetWindowIcons() to set multiple icon image sizes 2023-02-21 13:14:51 +01:00
hkc d26a56d4e1 Added mixed audio processor (#2929)
* Use RL_QUADS/RL_TRIANGLES for single-pixel drawing

Addresses problem mentioned in
https://github.com/raysan5/raylib/issues/2744#issuecomment-1273568263
(in short: when drawing pixels using DrawPixel{,V} in camera mode,
upscaled pixel becomes a line instead of bigger pixel)

* [rtextures] Fixed scaling down in ImageTextEx

Closes #2755

* Added global audio processor

* Renamed struct member to follow naming conventions

* Added example for AttachAudioMixedProcessor
2023-02-20 11:13:24 +01:00
Ray 47dd842e81 Minor format tweaks 2023-02-15 18:11:46 +01:00
Ray f594f14510 Reviewed typo and formating 2023-02-15 18:01:42 +01:00
Ray 2766835ed4 REPLACE: TABS by 4 spaces 2023-02-15 17:36:31 +01:00
Jeffery Myers 9eaed07b77 Make the oribital camera work like it used to (it is not just a copy of third person) (#2926) 2023-02-15 17:17:00 +01:00
Ray beb44f1dac Avoid centering mouse when program launches 2023-02-15 13:11:26 +01:00
Ray 903d85e323 Make sure window position always inits in the middle of the current monitor 2023-02-15 12:53:41 +01:00
Ray 5dedb27ce0 REVIEWED: Issue with camera jump on first frame 2023-02-14 22:51:34 +01:00
veins1 ec95aa2e04 Move camera after rotation (#2923)
Moving camera after rotation is set to avoid 1 frame delay in movement direction
2023-02-14 22:29:32 +01:00
Ray 1cfb484100 ADDED: Example project to VS 2023-02-14 20:31:42 +01:00
Ray e843be7ea5 ADDED: rcamera dependencies details 2023-02-14 20:13:13 +01:00
Ray 547819766f ADDED: Example project to VS2022 solution 2023-02-14 20:12:53 +01:00
Ray 50d17393a5 Create models_loading_m3d.vcxproj 2023-02-14 20:00:56 +01:00
Ray ea590c44a9 REVIEWED: Camera redesign PR 2023-02-14 20:00:51 +01:00
Crydsch Cube 73989a4981 WIP rcamera redesign vector (#2563)
* core functionality CAMERA_FREE

* fix example

* add remaining camera modes

* add view bobbing

* view bobbing

* catch curser in SetCameraMode

* adjust examples

* fix compilation on linux

* fix example text_draw_3d

* actually fix text_draw_3d

* Updated camera API

* Improve Vector3RotateByAxisAngle() function

* remove camera.mode dependency from low-level functions

* remove camera.mode from struct

* fixes after rebase

* adjust examples for new UpdateCamera function

* adjust example models_loading_m3d

---------

Co-authored-by: Ray <raysan5@gmail.com>
2023-02-14 17:47:21 +01:00
Ray f1bcabcc37 Update CHANGELOG 2023-02-12 13:48:11 +01:00
Ray a9c28d7583 Update CHANGELOG 2023-02-12 13:46:26 +01:00
Ray 22287a78c5 Update qoa.h 2023-02-12 13:29:39 +01:00
Ray 96a9b4e1f2 REVIEWED: config.h format and inconsistencies 2023-02-12 13:28:35 +01:00
Ray 21961a786d REVIEWED: Vertex colors support on M3D loading #2878 2023-02-12 12:10:01 +01:00
Ray 4647441ad8 Update rl_gputex.h 2023-02-12 01:10:54 +01:00
BugraAlptekinSari 4ae0a416f4 Added raymarch example and thumbnail for write depth (#2919) 2023-02-11 13:37:50 +01:00
Julio C. Galindo 6ae21d6581 Fixed some grammar mistakes and typos. (#2914)
* Fixed some grammar mistakes.

* Fixed some typos.
2023-02-09 13:17:47 +01:00
Sasquatch ヽ(´ー` )┌ 5c6a756014 Update raylib-hx bindings to 4.2 in BINDINGS.md (#2916) 2023-02-08 13:45:34 +01:00
Nikolas f784961b9c Enable GetWindowHandle() on macOS (#2915) 2023-02-07 22:18:14 +01:00
Ray e187b693ea Update raudio.c 2023-02-06 11:02:46 +01:00
star-tek-mb 04ab76b889 zig build: do not use deprecated functions (#2913) 2023-02-06 10:28:24 +01:00
Ray 1fea266472 Clean trailing spaces 2023-02-05 16:30:23 +01:00
Ray c91190fc6e Review QOA sound loading -WIP- 2023-02-05 16:28:04 +01:00
star-tek-mb ff70a04bf5 update zig build to latest master (#2910)
also, adds package manager support
2023-02-05 13:03:03 +01:00
Ray 60d0ab418a some typos review 2023-02-05 11:44:12 +01:00
HKrogstie 8c50da167d fix DrawMesh using SHADER_LOC_COLOR_SPECULAR as a material map (#2908) (#2909) 2023-02-05 11:04:30 +01:00
Ray 589892af07 Support QOA audio format on ExportWave() -WIP- 2023-02-04 20:27:47 +01:00
Ray 901c4553d2 ADDED: QOA audio format support -WIP- 2023-02-04 20:20:21 +01:00
Ray 43e45cbb81 Replace TABS by 4 spaces 2023-02-04 20:19:51 +01:00
Ray 7914332c40 Update qoi.h 2023-02-03 14:54:28 +01:00
Ian McFarlane b9e49cdca6 rcamera: move y clamp to before 3d projection (#2905) 2023-02-03 14:52:15 +01:00
Antonis Geralis 212f331583 Update core_input_gamepad.c (#2903) 2023-02-01 15:13:25 +01:00
Ray d827a65e59 Update external libraries
Switch to official `stb_vorbis.c` instead of using an outdated fork
2023-02-01 11:45:42 +01:00
Ray a151cbd37a ADDED: Vector2LineAngle() #2887
REVIEWED: `Vector2Angle()`
2023-02-01 11:18:55 +01:00
Nikolas 89171a2608 Add WASM support for Zig build (#2901)
* Add WASM support for Zig build

* Improve Web example building

* Remove emscript example building with Zig again

* Readd windows emscripten variables
2023-02-01 11:09:03 +01:00
Ray c94c666d04 Review formatting for M3D loading vertex colors 2023-01-30 17:05:12 +01:00
Uneven Prankster 929a46cbab [models] Fix M3D vertex color import. (#2878)
* Fix vertex color import for .m3d

* Only load vertex colors when color map and/or materials are present

* Only execute when color array is present

---------

Co-authored-by: Uneven Prankster <unevenprankster@pm.me>
2023-01-30 17:00:39 +01:00
Dor Shapira df5a736c00 fix typo (#2899)
patrix=>matrix
2023-01-28 19:26:41 +01:00
Rob Loach 7fff1ba0b0 ADDED: IsModelReady(), IsMaterialReady(), IsTextureReady(), IsRenderTextureReady() (#2895) 2023-01-28 12:13:09 +01:00
Antonis Geralis 0b42da4085 Raylib.h has exceeded 512 functions! (#2896) 2023-01-27 23:33:15 +01:00
Rob Loach 83ff7b2466 ADDED: IsShaderReady(), IsImageReady(), IsFontReady(), IsWaveReady(), IsSoundReady(), IsMusicReady() (#2892)
These IsReady() functions provide a method in order to verify whether or not the object was loaded successfully. They're useful to make sure the assets are there prior to using them.
2023-01-27 19:24:03 +01:00
Jeffery Myers 81ca2f0bf3 Fix warnings and bad project settings for 4.5 release (#2894) 2023-01-27 19:20:42 +01:00
Ray af66e751db Update CHANGELOG 2023-01-26 23:20:14 +01:00
Ray 000cb5a47d Update CHANGELOG 2023-01-26 23:18:06 +01:00
Kenta f088548261 Update BINDINGS.md (#2889)
Update Kaylib license to Zlib
2023-01-26 10:52:59 +01:00
Ray 0125790801 Update rmodels.c 2023-01-25 23:13:17 +01:00
Jeffery Myers 63da7cdec6 add include guards on config.h (#2888) 2023-01-25 22:26:03 +01:00
Antonis Geralis 4adba0d3c3 Add wayland support (#2883) 2023-01-25 22:25:25 +01:00
Dor Shapira 7cdffcec52 fixed typo (#2886)
pilepine=>pipeline
chosing=>choosing
additioanlly=>additionally
attachmment=>attachment
initialize=>inititialize
Binded=>Bound
lattest=>latest

hi @raysan5, I ran rlgl.h into some "typo checking" program(basically a JetBrains IDE), and here are all the things that the program was able to spot and fix. as my English isn't really well I would like it if you could check that I didn't make any mistakes in the typo fixing...
2023-01-24 23:43:09 +01:00
Ray f68bb8c707 REVIEWED: rlGenTextureMipmaps(), GPU generation only 2023-01-24 17:17:25 +01:00
Ray 5149da5719 Merge branch 'master' of https://github.com/raysan5/raylib 2023-01-24 17:16:44 +01:00
Ray 5b3c5e1a16 REVIEWED: ProcessMaterialsOBJ() available when required 2023-01-24 17:16:35 +01:00
PencilAmazing 542ef8904a [models] Load bone names from IQM file if available (#2882)
* Load bone names from IQM file if available

* Formatting and default bone name
2023-01-23 19:55:02 +01:00
Ray 393a03a46e Removed twitter badge, twitter API seems to be limited 2023-01-23 15:28:45 +01:00
Rob Loach 4706891cae Add RAYLIB_VERSION numbers to raylib.h (#2856)
Ran into an issue in raylib-cpp where a user was using raylib 4.5-dev, even though the library currently only targets 4.2. With having RAYLIB_VERSION_MAJOR and RAYLIB_VERSION_MINOR, we will be able to target different versions of raylib in different ways, via C preprocessor conditionals.

For example:
``` c
newColor = ColorTint(BLUE, RED);
TraceLog(LOG_INFO, "The color should be tinted, but this isn't supported in ryalib <= 4.2");
```
2023-01-22 15:29:29 +01:00
Rob Loach d8af76f67c Fix to use TRACELOG() instead of TraceLog() for internal modules (#2881)
There were a few raylib modules that continued to use TraceLog() instead of the TRACELOG() macro. This change ensures that all the internal raylib modules use the TRACELOG() pattern consistently.
2023-01-22 11:10:38 +01:00
Ray 78ae3b38a6 minor format tweak 2023-01-21 19:31:47 +01:00
Antonis Geralis e539aad118 Fix android sound issue #2118 (#2875) 2023-01-21 18:52:31 +01:00
Uneven Prankster 19715546b3 Stub out rlCubemapParameters if under GL 1.1. (#2876)
Co-authored-by: Uneven Prankster <unevenprankster@pm.me>
2023-01-21 18:51:33 +01:00
KOLANICH 342b18da03 Add packaging for distros with deb- and rpm-based packages. (#2877) 2023-01-21 18:50:38 +01:00
Jeffery Myers c649bec26c Have LoadMaterials call the same code that OBJ loader does so that we can read MTL files (#2872) 2023-01-20 16:13:19 +01:00
Masoud Naservand e64606a82f Correct the set paths in bat files in examples/ (#2870)
Co-authored-by: Masoud Naservand <masoud.naservand@gmail.com>
2023-01-20 16:07:43 +01:00
Jeffery Myers edaca16d7c Fix warnings in raylib project from MSVC (#2871) 2023-01-20 16:05:19 +01:00
Jeffery Myers 116603e61c don't try to free a void* buffer as if it's a cgltf_data structure (#2867) 2023-01-19 21:21:05 +01:00
Uneven Prankster 76468bb8d8 Add rlCubemapParameters to rlgl.h (#2862)
Co-authored-by: Uneven Prankster <unevenprankster@pm.me>
2023-01-19 20:53:30 +01:00
Ghost 2a2f2b20b8 Fixed bug : touches become sticky (#2857)
Touches became sticky and didn't disappear after using more than 2 fingers, fixed by getting the touch count of how many fingers are on the screen, and only looping through the available/pressed down touch points instead of looping through the maximum touch points.
Tested with more than 10 touch points, and with different MAX points value, working perfectly.
2023-01-14 19:41:42 +01:00
Kenta aed131a8f0 Update BINDINGS.md (#2858)
* Update BINDINGS.md

Add Kaylib - Kotlin/Native binding for 4.5-dev (proper binding).
Add Raylib-Nelua - Nelua binding for 4.5-dev with working wasm export.

* Update BINDINGS.md
2023-01-14 19:40:48 +01:00
Tobias Mock d224414eb1 Update raylib-ocaml to 4.2.0 (#2853) 2023-01-11 18:07:35 +01:00
Daijiro Fukuda c6376acfc4 Set initial window position for display-sized fullscreen (#2742) 2023-01-10 12:45:53 +01:00
Ray 3028bffd4c Minor tweaks 2023-01-10 12:38:21 +01:00
Go Watanabe f549f67be9 OpenGLES 2.0 support on PLATFORM_DESKTOP (#2840)
* OpenGLES 2.0 support on PLATFORM_DESKTOP

* exmples raylib_opengl_interop desktop GLES2 support

* rename gles2.h -> glad_gles2.h
2023-01-10 12:34:06 +01:00
Ray 6dd1d2d931 ADDED: Required define on Linux #2729 2023-01-10 12:20:45 +01:00
Ray bba6ae5622 RENAME: type to projection #2851 2023-01-10 12:16:42 +01:00
Ray ce8000ee7e REVIEWED: GetClipboardText() on PLATFORM_WEB 2023-01-04 20:13:44 +01:00
Ray 89755e52bf REVIEWED: rLoadTextureDepth() fixed issue 2023-01-04 17:35:51 +01:00
Ray 73234d2a28 Avoid trying to setup uniform for invalid locations 2023-01-03 17:44:06 +01:00
Ray 39f9045703 Update models_loading_gltf.c 2023-01-02 20:59:25 +01:00
Ray b854909803 Update models_loading_gltf.c 2023-01-02 20:48:02 +01:00
Ray d3c1a04983 REVIEWED: GLTF animations support #2844 2023-01-02 20:46:33 +01:00
Charles f2e3d6eca7 [models] Add GLTF animation support (#2844)
* add GLTF animation support

* use correct index when allocating animVertices and animNormals

* early exit LoadModelAnimationsGLTF if the gtlf file fails to parse

* update models/models_loading_gltf.c to play gltf animation

Updated the .blend file to use weights rather than bone parents so it
fits into the framework. Exported with weights to the .glb file.

* fix order of operations for bone scale in UpdateModelAnimation

* minor doc cleanup and improvements

* fix formatting

* fix float formatting

* fix brace alignment and replace asserts with log messages
2023-01-02 20:23:48 +01:00
Ray fabedf7636 Merge branch 'master' of https://github.com/raysan5/raylib 2023-01-02 17:06:55 +01:00
Ray 62f63f9e48 REVIEWED: Avoid possible gamepad index as -1 #2839
WARNING: It could require further review of `GamepadThread()` function where `js_event gamepadEvent.number` detecting current pressed button could generate a missmatch with index 0 (reserved for button unknow). Or maybe `0` could just be `GAMEPAD_BUTTON_NONE`? In that case, consistency with other inputs should be carefully considered...
2023-01-02 17:06:52 +01:00
Antonis Geralis 1dbcce8b56 Use explicit atomics (#2849)
* Use explicit atomics

* missed one

* use relaced ordering
2023-01-02 16:48:53 +01:00
Ray 0ccc1d3686 Update year to 2023 2023-01-01 19:07:58 +01:00
Ray 5ba41e4f7f REVIEWED: shaders_write_depth example 2023-01-01 18:31:03 +01:00
BugraAlptekinSari 3cfb9a6e83 [example] Writing into the depth buffer (#2836)
* Add a depth buffer example.

* Fixed a typo
2023-01-01 18:17:28 +01:00
Ray 30b75702df Update year to 2023 2023-01-01 18:09:22 +01:00
Ray e2a8066fca Update year to 2023 2023-01-01 16:07:51 +01:00
Ray b59fab7ee6 Update year to 2023 2023-01-01 16:00:56 +01:00
Wytek01 713e26332f Update year to 2023 (#2846)
* Update year to 2023

* Update raylib.h year to 2023
2023-01-01 12:55:49 +01:00
Antonis Geralis ba38fe5b97 core_loading_thread example join thread on completion (#2845)
* core_loading_thread example join thread on completion

* error checking
2022-12-31 19:25:35 +01:00
turborium dbdbbea471 Add new Delphi/Lazarus bindings (#2838)
TurboRaylib - dynamic bindings of ray lib for Delphi/Lazarus
2022-12-28 11:04:55 +01:00
Ray 03cc540d5f Minor tweak 2022-12-18 18:00:21 +01:00
Ray d7f7c94c4d REVIEWED: Vector2Angle() 2022-12-18 18:00:14 +01:00
Ray 72b9f3c5de Minor tweaks 2022-12-17 12:15:19 +01:00
Antonis Geralis d1a104bba4 Fix vector2angle (#2832)
* Fix vector2angle

* Fix ;

* use acosf

* need a break

* add comments
2022-12-17 12:13:40 +01:00
Ray c2b56c583a Merge branch 'master' of https://github.com/raysan5/raylib 2022-12-14 13:00:29 +01:00
Ray 619331f4a7 REVIEWED: Issue with depth textures on WebGL #2824 2022-12-14 12:57:39 +01:00
Alexander Heinrich 3419aef677 Fix Vector2Angle() (#2829)
With this fix the function still returns negative values, which is
wrong. But we keep this behaviour to maintain backwards compatibility.
2022-12-13 18:59:00 +01:00
Ray 445ce51e51 Update Makefile 2022-12-13 10:46:49 +01:00
simendsjo 884d30b85a Use GLVND also for old cmake versions (#2826)
Use GLVND also when legacy implementations exist for old cmake versions
<= 3.10. This is a breaking change for old cmake versions (prior to
around 2017-10-05) which will now use GLVND rather than defaulting to
libGL.

This fixes the following warning when building:

    CMake Warning (dev) at /gnu/store/qv13zgbmyx0vjav8iiqp772kp6rxvwnd-cmake-3.24.2/share/cmake-3.24/Modules/FindOpenGL.cmake:315 (message):
      Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
      available.  Run "cmake --help-policy CMP0072" for policy details.  Use the
      cmake_policy command to set the policy and suppress this warning.

      FindOpenGL found both a legacy GL library:

        OPENGL_gl_LIBRARY: /home/simendsjo/.guix-profile/lib/libGL.so

      and GLVND libraries for OpenGL and GLX:

        OPENGL_opengl_LIBRARY: /home/simendsjo/.guix-profile/lib/libOpenGL.so
        OPENGL_glx_LIBRARY: /home/simendsjo/.guix-profile/lib/libGLX.so

      OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
      compatibility with CMake 3.10 and below the legacy GL library will be used.
    Call Stack (most recent call first):
      cmake/LibraryConfigurations.cmake:21 (find_package)
      src/CMakeLists.txt:46 (include)
    This warning is for project developers.  Use -Wno-dev to suppress it.

See https://cmake.org/cmake/help/latest/policy/CMP0072.html

Closes #2825
2022-12-11 13:37:38 +01:00
Ray c04c3668cb Update windows.yml 2022-12-10 13:09:05 +01:00
Ray 855a5f3701 Update windows.yml 2022-12-10 13:06:13 +01:00
Ray 6d59a21e99 Update windows.yml 2022-12-10 13:01:57 +01:00
Ray 935a306b29 Update windows.yml 2022-12-10 12:44:25 +01:00
Ray 2c9d116a5c ADDED: ColorTint(), ColorContrast() 2022-12-07 12:52:42 +01:00
Ray f1368c36dd ADDED: ColorBrightness() 2022-12-05 00:24:55 +01:00
Ray 4de64f5750 Expose OpenGL blending mode factors and functions/equations 2022-12-04 13:22:37 +01:00
Ray 89698844a1 REVIEWED: Example: textures_textured_curve 2022-12-04 11:01:59 +01:00
Jeffery Myers 57dd345dc3 Add a textured curve example (#2821) 2022-12-03 22:55:05 +01:00
Ray 5b5dff3f9e format tweak 2022-12-02 11:59:54 +01:00
Ray a4079ad565 Update Makefile 2022-12-02 11:59:43 +01:00
Hristo Iliev 387c060006 Fix an issue when compiling for web (#2820)
It would try to use the glfw on the system but we're cross-compiling for web where the implementation is provided by emscripten's team
2022-11-30 10:36:01 +01:00
Ray 0b6d4b376f REVIEWED: Image fileformat support: PIC, PNM 2022-11-29 17:28:23 +01:00
Ray d241ee8516 ADDED: Optional support for PNM images (.ppm, .pgm) 2022-11-29 10:58:27 +01:00
Ray 2edf5a9584 REVIEWED: Issue with shader linkage 2022-11-29 10:45:10 +01:00
jtainer 50a716c0d9 Updated rcore.c, renamed 'time' to 'nanoSeconds' (#2816)
* Updated rcore.c, renamed 'time' to 'time_nsec'

When PLATFORM_ANDROID, PLATFORM_RPI or PLATFORM_DRM were defined, there is a compilation error to redefinition of the variable 'time', so the second instance of 'time' was changed to 'time_nsec' which both fixes the name collision and more accurately describes what that variable represents.

* Renamed 'time_nsec' to 'nanoSeconds'
2022-11-29 00:46:10 +01:00
Daijiro Fukuda 57bd84510f Fix wrong compile definition (#2815) 2022-11-28 22:36:22 +01:00
Daijiro Fukuda 66a2cdee40 Fix array out of range (#2814)
This breaks other values of the struct.
2022-11-28 22:35:44 +01:00
Ray bbf9935828 Update github workflows 2022-11-28 21:03:21 +01:00
Ray fc5894e734 REVIEWED: Some compilation warnings (for strict rules) 2022-11-28 14:16:59 +01:00
Antonis Geralis 2fd6d7e8c0 Use const for pointer float array (#2807)
* Use const for pointer float array

* missed a definition
2022-11-24 00:58:56 +01:00
Antonis Geralis 2c77b31e30 Correct types for rlBindImageTexture (#2808) 2022-11-24 00:58:31 +01:00
gtrxAC c48de2d1af Rename lighting_instanced shader (glsl100) to lighting_instancing (#2805)
* JSON parser: Use array for function params (#2255)

* Parser: follow C convention of type before name

* Update file names in build scripts

* Rename lighting_instanced shader to instancing
2022-11-22 18:16:44 +01:00
Ray c0010105c2 REVIEWED: UnloadDirectoryFiles() 2022-11-22 17:09:39 +01:00
Ray f6558fe6e0 Minor tweaks 2022-11-22 01:02:54 +01:00
Alex Macafee 36bb57d1be Add raylib-vapi (#2804) 2022-11-21 13:14:20 +01:00
Ray e6306e5e76 REVIEWED: rlCullFace() -> rlSetCullFace()
Reviewed formating to follow raylib coding conventions.
2022-11-15 12:34:01 +01:00
jtainer 2761aa40dd Added function rlCullFace (#2797)
rlCullFace sets the face culling mode to RL_FRONT or RL_BACK which correspond to GL_FRONT and GL_BACK respectively.
2022-11-15 12:30:32 +01:00
Pere001 c8fd93d356 Warning on GetRandomValue range limit (#2800)
Added a comment explaining the range limitations of GetRandomValue.
Added a run-time warning TRACELOG when GetRandomValue is called with an invalid range.
2022-11-15 12:29:19 +01:00
Ray 2604b9f72b Merge branch 'master' of https://github.com/raysan5/raylib 2022-11-15 12:26:30 +01:00
Ray 3c51d066f1 Avoid using DrawCubeTexture() 2022-11-15 12:26:22 +01:00
Ray 656f47b7cc Update cmake.yml 2022-11-15 12:23:24 +01:00
Ray 2a88dc9bb7 Update linux_examples.yml 2022-11-15 12:22:26 +01:00
Ray fadc29d811 WARNING: REMOVED: DrawCubeTexture(), DrawCubeTextureRec()
Those two functions have been moved to a new example: `models_draw_cube_texture`. The reasons for this decision:
 - Function inflexibility: Many users with the need to draw a textured cube could need to customize the texture applied to every face, that function did not allow that kind of functionality.
 - rlgl functionality exposure: The implementation exposed will teach users how to implement custom textured triangles drawing.
2022-11-15 12:16:28 +01:00
Jorge A. Gomes 4bb71c8fa2 Raylib-py updated to 4.2, plus parallel project (#2798)
Now Raylib-py is a releases-only project.
For now on, code maintenance will happen in a parallel project created to automate the binding generation: RaylibpyCtbg
2022-11-12 18:56:54 +01:00
Scott Helvick baabe22f7a Add Claylib (CL bindings + convenience layer) (#2796) 2022-11-11 17:23:02 +01:00
Ray 025db8f227 Merge branch 'master' of https://github.com/raysan5/raylib 2022-11-10 12:03:26 +01:00
Ray 31edd13a72 Minor formating tweaks 2022-11-10 12:03:17 +01:00
Julianiolo 82e0644195 Fix Makefile emscripten path (#2785) 2022-11-10 11:51:51 +01:00
Ray 3888299bf5 WARNING: REMOVED: DrawTextureTiled()
This function implementation has been moved to the related example. Current implementation can be probably customized depending on user needs.
2022-11-10 10:17:37 +01:00
Ray 7f68c65406 WARNING: REMOVED: DrawTextureQuad()
This function can be easely replicated using `DrawtexturePro()` and actually it was doing some assumptions not transparent to the user. Even the function name was confusing. No example was available for it and actually noone requested one example.
2022-11-10 10:11:28 +01:00
Ray 84a2a88572 WARNING: REMOVED: DrawTexturePoly()
Function moved to `examples/textures/textures_polygon.c`, so users can learn from the implementation and create custom variants as required.
2022-11-10 10:05:11 +01:00
red thing fca58c8e2f dray is now 4.2.0 (#2792) 2022-11-09 07:42:58 +01:00
Martin Wickham 311a57f9fc Add frameworks needed on macos (#2793) 2022-11-09 07:40:59 +01:00
Dor Shapira 773c0d78d8 removing typo (#2790) 2022-11-08 21:47:05 +01:00
Ray ca6f58eed1 Update rcore.c 2022-11-05 00:31:13 +01:00
RGDTAB dbdfad7ace Fix ExportDataAsCode() data types (#2787) 2022-11-04 20:39:04 +01:00
Roman Akberov 1cb81e3f4c Fix examples/build.zig for the latest Zig version (#2786) 2022-11-02 18:41:21 +01:00
IsaacTCB 4c4a703841 Fix Android x86 Architecture name (#2783)
When building a x86 project, the folder inside lib is named i686. However Android x86 actually expects the folder to be called x86.
2022-10-30 12:18:12 +01:00
Angga Permana d91f30958f Fix deprecation error on android api higher than 23 (#2778) 2022-10-27 11:38:25 +02:00
nobytesgiven 5113817507 Improved billboards example, highlighting rotation and draw order (#2779)
* Improved billboards example, highlighting rotation and draw order

* changes to conform to the raylib conventions

* NOW it conforms

Co-authored-by: nobytesgiven <nobytesgiven@users.noreply.github.com>
2022-10-26 19:16:35 +02:00
Ray 28e8b2add3 REVIEWED: Issue with OpenURL() 2022-10-26 18:04:20 +02:00
Dor Shapira bcb47255b9 fixing typo (#2781)
fixing typo
2022-10-26 17:14:52 +02:00
Dor Shapira bc60812d68 added raylib-python-ctypes bindings (#2780) 2022-10-26 17:14:24 +02:00
Yunoinsky df4199e2c1 Add ChezScheme support (#2776) 2022-10-26 09:12:14 +02:00
nobytesgiven c4abf68351 fixed blur issue on opaque pictures & added example (#2775)
Co-authored-by: nobytesgiven <nobytesgiven@users.noreply.github.com>
2022-10-26 09:11:14 +02:00
Ray 865f823835 Review -s 2022-10-25 21:03:33 +02:00
nobytesgiven dbecb95024 Added Box and Gaussian blurring (#2770)
* Added Box and Gaussian blurring

* Removed dependence of gaussian blur to box blur & Fixed precision errors

Co-authored-by: nobytesgiven <nobytesgiven@users.noreply.github.com>
2022-10-25 17:56:06 +02:00
Ian Rash 072e92615a Updated support for crystal (#2774)
All fresh and current.
2022-10-25 10:51:40 +02:00
nobytesgiven e5d332dea2 Fix bezier line breaking #2735 (#2767)
* Fixed bezier line breaking #2735

* converted tabs to spaces

* typo

* Changed doubles to floats

* removed heap allocations\

Co-authored-by: nobytesgiven <nobytesgiven@users.noreply.github.com>
2022-10-24 16:35:47 +02:00
Ray d5cd5ebd80 Update to latest miniaudio (dev) 2022-10-24 13:37:20 +02:00
Ray d71505bdc6 Update Makefile 2022-10-24 13:37:08 +02:00
Ray 483f10397e review note 2022-10-20 20:09:54 +02:00
Ray d9f434afb9 Added -s EXPORTED_RUNTIME_METHODS=ccall to examples web build #2739 2022-10-20 20:07:29 +02:00
InKryption 40cf84e7e5 build.zig: let user decide how to set build mode + fix linker warning (#2763)
* build.zig: let user decide how to set build mode

This should delegate the responsibility of calling `standardReleaseOptions` and setting the build mode of the `*LibExeObjStep` step to the caller, especially since this might not be the process by which one wants to determine the build mode.

Also changes hides `getSrcDir` to enforce usage of `srcdir`, and asserts that the file is in fact inside a directory.

* build.zig: set root_src param to `null`

Supplying the header file as the root source here appears to cause a linker warning of the form:
```
LLD Link... warning(link): unexpected LLD stderr:
ld.lld: warning: {build_root}/zig-cache/o/{hash}/libraylib.a: archive member '{build_root}/zig-cache/o/{hash}/raylib.o' is neither ET_REL nor LLVM bitcode
```
Passing `null` instead fixes it.
2022-10-20 18:33:12 +02:00
Peter0x44 b8e14a4f99 Review parser Makefile (#2765)
* parser: Fail gracefully if a nonexistent file is passed on the command line

Before, if a nonexistent file was passed to LoadFileText(), it would
return NULL, and the parser would happily dereference it.

* parser: Refactor Makefile and update the path to easings.h (now reasings.h)

Before, the `make all` target would simply segfault, see 0a679d79
Now, if a file in the `make all` target doesn't exist, make will write
an error.

Individual API files can be generated likeso, provided the header file
the target depends on exists:

FORMAT=JSON EXTENSION=json make raygui_api.json

In order for the `make all` target to succeed, raygui.h, physac.h and
rmem.h need to be added to the correct directory.
2022-10-20 17:29:03 +02:00
ianband 7e7939e1ad Add DrawCapsule(Wires) (#2761)
* Add DrawCapsule & DrawCapsuleWires

* Add DrawCapsule & DrawCapsuleWires to example

Co-authored-by: Ian Band <ian.r.band@gmail.com>
2022-10-17 11:36:53 +02:00
Rob Loach c5e89241c5 BINDINGS: Add Umka bindings to BINDINGS.md (#2760)
[raylib-umka](https://github.com/robloach/raylib-umka) provides [Umka scripting language](https://github.com/vtereshkov/umka-lang) bindings to raylib.
2022-10-16 00:25:52 +02:00
hkc 0b69bc28c6 Fix ImageTextEx and ImageDrawTextEx scaling (#2756)
* Use RL_QUADS/RL_TRIANGLES for single-pixel drawing

Addresses problem mentioned in
https://github.com/raysan5/raylib/issues/2744#issuecomment-1273568263
(in short: when drawing pixels using DrawPixel{,V} in camera mode,
upscaled pixel becomes a line instead of bigger pixel)

* [rtextures] Fixed scaling down in ImageTextEx

Closes #2755
2022-10-14 17:43:12 +02:00
Ray e61639f6fc ADDED: GenImageText()
Probably useless but interesting for education. It generated a grayscale image directly from text data.
2022-10-14 10:51:43 +02:00
Kenta ccd4f8b5ae Add C3 binding to BINDINGS.md (#2757) 2022-10-13 23:00:53 +02:00
Anut-py 11fd883ee4 Add Haskell bindings to BINDINGS.md (#2753) 2022-10-12 22:04:11 +02:00
CrezyDud aa67f7c39a Fix & Simplify .vox signature check (#2752)
and make version check be only 150 not over 150
2022-10-12 17:14:18 +02:00
hartmannathan f080367a0c examples/core/core_custom_logging.c: Fix typo (#2751) 2022-10-12 17:12:28 +02:00
Ray 07bbfe86b9 Update core_basic_window.c 2022-10-11 22:28:40 +02:00
hkc 8ebe62b4dd Use RL_QUADS/RL_TRIANGLES for single-pixel drawing (#2750)
Addresses problem mentioned in
https://github.com/raysan5/raylib/issues/2744#issuecomment-1273568263
(in short: when drawing pixels using DrawPixel{,V} in camera mode,
upscaled pixel becomes a line instead of bigger pixel)
2022-10-11 18:45:34 +02:00
Szieberth Ádám 4cca234f46 avoid leading spaces in text_rectangle_bounds (#2746) 2022-10-11 12:14:40 +02:00
Dor Shapira 0d04ceafbf build raylib_api without the 'vectex' tyops (#2749) 2022-10-11 12:14:01 +02:00
Dor Shapira 8025b052b3 fixing typo (#2748) 2022-10-11 11:20:29 +02:00
JupiterRider cb085a1b50 Update BINDINGS.md (#2745) 2022-10-07 19:03:08 +02:00
Ray cee0fc5d78 Update README.md 2022-10-07 16:33:39 +02:00
Ray 38025362ee Update version to raylib 4.5-dev to avoid confusions with 4.2 2022-10-07 16:22:44 +02:00
Ray 7a15861d44 Update rlgl.h 2022-10-06 00:56:18 +02:00
Ray 26969c2c38 Added BLEND_CUSTOM_SEPARATE #2741 2022-10-05 13:57:38 +02:00
Ray 25d846aa9a Avoid early return calls 2022-10-05 13:34:19 +02:00
Ray 9017be3259 Reviewed latest PR formating and variables naming #2741 2022-10-05 13:29:34 +02:00
凌溢狐 2d88958d35 Add rlSetBlendFactorsSeparate and custom blend mode modification checks (#2741) 2022-10-05 13:05:44 +02:00
Ray 2e26cf48e8 Merge branch 'master' of https://github.com/raysan5/raylib 2022-10-03 00:07:34 +02:00
Ray 7459d906de Update rtext.c 2022-10-03 00:07:22 +02:00
_Tradam 62d228346b Update build.zig to work with last GLFW update (#2737) 2022-10-02 20:29:48 +02:00
veins1 2872b2fff5 Clear PCM buffer state when closing audio device (#2736)
Fix for #2714
2022-10-02 19:30:26 +02:00
Ray 33e7f7cc59 WARNING: DrawLineBezier() implementation needs review #2721 2022-10-02 11:11:13 +02:00
Rob Loach 0daaaddeef Fix Gestures to use GetTime() if it's available (#2733) 2022-10-02 10:47:17 +02:00
Random 03f5fce672 removed glfwSetWindowPos on InitWindow (#2732)
* removed glfwSetWindowPos on InitWindow

* removed execute permission from CMakeLists
2022-10-02 10:46:33 +02:00
Ray 178a356cb4 minor tweaks 2022-09-30 23:07:29 +02:00
Random f14955512f fix issue #2728 (#2731)
* fix issue #2728

* updated gamecontrollerdb: fixes GLFW warning due to invalid entry
2022-09-30 10:09:49 +02:00
Ray 45da03df23 Reviewed monitor checking order 2022-09-29 12:00:20 +02:00
Ray 4fe6f885f7 Update gamepad mappings with latest gamecontrollerdb, fix #2725 2022-09-29 11:23:25 +02:00
Ray 357f782f4e Merge branch 'master' of https://github.com/raysan5/raylib 2022-09-29 11:08:02 +02:00
Ray 0ced04f0df Fix #2722 2022-09-29 11:08:00 +02:00
Dor Shapira 587e61def9 fixing new typoes (#2727) 2022-09-28 20:04:59 +02:00
Dor Shapira 5c404c79da Update raylib.h (#2726) 2022-09-28 20:04:41 +02:00
Michael Scherbakow 8f88c61bdf update build.zig (#2720)
zig `master` now enforces to use addIncludePath instead of addIncludeDir
2022-09-27 01:27:22 +02:00
bXi e9ca38fafa Clarified working of ImageDrawCircle and ImageDrawCircleV (#2719) 2022-09-26 12:24:10 +02:00
Ray 7ab056b6ef REVIEWED: GeneshHeightmap(), fix #2716 2022-09-25 15:41:49 +02:00
Ray 2ef0b064e5 Fix isssue #2718 2022-09-25 14:09:28 +02:00
Ray ea87491a82 ADDED: Support CAPS/NUM lock keys registering if locked 2022-09-25 00:14:59 +02:00
Ray 810a0330ab WARNING: Several changes on UTF-8/Codepoints API
- ADDED: `GetCodepointPrevious()`
 - RENAMED: `GetCodepoint()` -> `GetCodepointNext()`, actually, reimplemented
 - `GetCodepoint()` has been kept for the moment, for compatibility and also because implementation is different
 - RENAMED: `TextCodepointsToUTF8()` to `LoadUTF8()`, simpler name and more aligned with raylib conventions (functions loading memory start with Load*()), parameters should be descriptive of functionailty.
 - ADDED: `UnloadUTF8()`, aligned with `LoadUTF8()` to avoid allocators issues.
2022-09-22 20:35:55 +02:00
Ray 4b1d4b4f6b Update rcore.c 2022-09-22 20:30:02 +02:00
Ray 907e9e1fe2 Update text_codepoints_loading.c 2022-09-22 20:29:54 +02:00
Ray 4311ffc9e1 REVIEWED: New functions coding conventions 2022-09-19 18:47:16 +02:00
Rob Loach 2093fdcc53 Added: ImageDrawCircleLines, ImageDrawCircleLinesV (#2713)
This adds `ImageDrawCircleLines()` and `ImageDrawCircleLinesV()` to draw outlines of circles, and updates `ImageDrawCircle()` draw a filled circle to match the effect of `DrawCircle()` and `DrawCircleLines()`.
2022-09-19 18:41:17 +02:00
Ray 0e5cd442be REVIEWED: Renamed some shaders, fix #2707 2022-09-19 18:29:08 +02:00
Ray 5530a3ceb8 REVIEWED: ScanDirectoryFilesRecursively(), fix #2704 2022-09-19 18:20:36 +02:00
Ray 6e8f3b0f45 Update rlgl.h 2022-09-19 10:35:34 +02:00
Ray 12e8cef9cf REMOVED: Mipmaps software generation for OpenGL 1.1
As generation is done in software, it's up to the user to do it. `ImageMipmaps()` is already provided for reference.
2022-09-19 10:31:55 +02:00
Denis Pobedrya 27781a4767 Remove touch points on touch up events on Android (#2711)
Fixes #2683

Remove elements from touch point related arrays when touch up and
similar events are processed. This makes GetTouchPointCount() always
report the actual count of touch points, and all positions returned by
GetTouchPosition() correspond to positions of currently happening
touches.
2022-09-18 23:01:10 +02:00
Gunko Vadim 7e3a50b4ac Update BINDINGS.md (#2710) 2022-09-18 22:36:59 +02:00
Nikolas 42ecd72547 [rlgl] Check for extensions before enabling them (#2706)
* [rlgl] Check for extensions before enabling them

* Shift to glad on macOS

* #undef CORE_OPENGL_33

* Remove version hack and fix ASTC compression assumption

* Remove loader from glad

* Use GLAD_MALLOC/FREE instead of malloc/free

* More explicit extension checking
2022-09-18 21:08:51 +02:00
Denis Pobedrya 8f597b3cc3 Basic gamepad support for Android (#2709)
Currently assumes a single gamepad, has no code specific to gamepad
detection (gamepad is "detected" when an event related to gamepad
arrives). Also assumes that all gamepads look roughly like an xbox/ps
controller. Both assumptions are not strictly true, but an
implementation like that probably covers 85% of usecases.

Also it doesn't update previousButtonState so functions
IsGamepadButtonPressed() and IsGamepadButtonReleased() don't work, but
they didn't work previously on Android anyway, and they are flaky on
desktop as they are now, so the mechanism for these two functions
probably should be reworked anyway.

It's certainly an improvement compared to the previous android gamepad
handling code, which put gamepad events into touch related structs.
2022-09-18 19:58:52 +02:00
Denis Pobedrya ff25402f68 Fix viewport scaling bug on android after context rebind (#2703)
On android after rebinding context (which happens when you minimize and
navigate back to an app, or when you turn a screen off and back on)
there's a bug that viewport has a wrong scale and part of it is off
screen.

The change fixes it on devices I tried, but the solution feels hacky to
me. However when I attempted instead to call SetupViewport() again which
feels like a more proper solution, it didn't fix it.
2022-09-18 11:28:55 +02:00
Denis Pobedrya 8e57c8ace3 Fix touchscreen input related functions on Android (#2702)
Fix display -> screen coordinate conversion for android platform and
move it to the platform event handling code, simplifying
GetTouchPosition() function implementation.

Co-authored-by: Denis Pobedrya <denis.pobedrya@gmail.com>
2022-09-17 23:15:11 +02:00
AQuantumPotato 494a581339 Update BINDINGS.md (#2701)
Updated the list of projects that support 4.2
2022-09-17 23:14:00 +02:00
Rob Loach 4c3d577ddb CMake: Project template fix to easily target raylib version (#2700) 2022-09-17 23:12:57 +02:00
Ray c328f09efc Move compressed textures loading to a separate self-contained library 2022-09-17 19:26:23 +02:00
Ray cb9b8f73c0 ADDED: GenImagePerlinNoise() 2022-09-17 13:39:49 +02:00
murilluhenrique eaa0b9102b Fix typo (#2696) 2022-09-16 00:06:25 +02:00
Nikolas a12ddacb7b Enable DXT compression on __APPLE__ targets (#2694) 2022-09-12 12:21:41 +02:00
Ray 853c66baed REVIEWED: CheckCollisionPointPoly() 2022-09-10 23:56:52 +02:00
Ray cf76d23476 Minor format tweaks 2022-09-10 10:23:38 +02:00
Ray cf24c021a3 WARNING: BREAKING: Reviewed SSBO usage to avoid long long
raylib library tries to avoid `long long` usage. Several SSBO functions have been reviewed (including some renames for consistency) to minimize `long long` type usage.
2022-09-09 00:26:47 +02:00
Ray b478364914 REVIEWED: Removed comment, fixes #2691 2022-09-09 00:04:08 +02:00
hartmannathan c1b4881e8a examples/core/core_custom_logging.c: Fix typo (#2692) 2022-09-08 16:10:15 +02:00
Ray ac1ffbad1d REVIEWED: Data type to unsigned 2022-09-07 00:39:38 +02:00
Ray b09725fa84 REPLACED: rlVertex2i() by rlVertex2f() 2022-09-05 18:45:33 +02:00
Ray e59442bfab REMOVED: rlPushMatrix()/rlPopMatrix() from rshapes
This simplification will allow the usage of `rshapes` as STANDALONE mode in a future. Only a small set of `rlgl` functions are required and they can be "more" easely replaced if no `rlPushMatrix()`/`rlPopMatrix()` are involved.

More simplification planned for the future, maybe the textures dependencies.
2022-09-05 18:23:25 +02:00
Ray 9996e328cb WARNING: BREAKING: Removed rlCheckRenderBatchLimit() requirement
Updated version to `rlgl 4.2`
2022-09-05 13:20:09 +02:00
Ray ad5ffd78d6 REVIEWED: rlgl enums and comments 2022-09-05 11:15:28 +02:00
Ray 0917290e95 REVIEWED: M3D model loading #2688 2022-09-04 18:49:54 +02:00
Ray ac3420faac Update core_custom_frame_control.c 2022-09-04 12:32:40 +02:00
skylar ee5a87826d Fixed a bug in the 2d camera platformer example (#2687)
canJump used to alternate between true and false when on ground
2022-09-04 11:48:33 +02:00
Ray f4b4054de5 REVIEWED: CheckCollisionPointPoly() 2022-09-04 10:45:01 +02:00
Jacek aff98d7f2a Check collision point polygon (#2685)
* Update raylib.h

* CheckCollisionPointPolygon()

* typo
2022-09-04 10:39:03 +02:00
Ray 082920eb80 WARNING: RENAMED exported symbol to raylib_version #2671 2022-09-02 21:35:08 +02:00
Ray de968e3623 WARNING: RENAMED symbol raylibVersion to raylib_version
I want to note this is a special symbol exported
2022-09-02 21:32:58 +02:00
Ray 2a798d64a2 Export raylibVersion symbol. Fixes #2671 2022-09-02 21:28:19 +02:00
Stan 234576da71 Removed raylib_opengl_interop.c from PLATFORM=Web build (#2682) 2022-09-02 09:13:35 +02:00
Ray fb1037a241 ADDED: Complete support for M3D animations! #2648 2022-09-01 20:46:06 +02:00
Ray 64cca24526 ADDED: RL_TEXTURE_MIPMAP_BIAS_RATIO support to rlTextureParameters() for OpenGL 3.3 #2674 2022-09-01 11:18:22 +02:00
Ray a598754b5b Update windows.yml 2022-09-01 11:04:10 +02:00
Ray bb4d9297b5 Update windows.yml 2022-09-01 10:52:03 +02:00
Ray 4938966e76 Update windows.yml 2022-09-01 10:45:30 +02:00
Ray cabaa53302 Update windows.yml 2022-09-01 10:44:25 +02:00
Ray bfab101ac2 Update windows.yml 2022-09-01 10:42:11 +02:00
Ray 23cc39a265 Implemented latest .M3D improvements #2648 2022-09-01 10:27:16 +02:00
Ray 0c7ba773ec Fixed issue with LoadIQM() #2676 2022-09-01 10:14:45 +02:00
Ray 4b76aa09dd ADDED: lighting.fs for GLSL120 Fix #2651 2022-08-29 14:36:07 +02:00
Ray d66692149b Update README.md 2022-08-28 18:04:47 +02:00
Ray 7f5567eec0 Reviewed GLFW compilation requirements on Linux: _GNU_SOURCE
Reasons to NOT define `_GNU_SOURCE`:

 - access to lots of nonstandard GNU/Linux extension functions
 - access to traditional functions which were omitted from the POSIX standard (often for good reason, such as being replaced with better alternatives, or being tied to particular legacy implementations)
 - access to low-level functions that cannot be portable, but that you sometimes need for implementing system utilities like mount, ifconfig, etc.
 - broken behavior for lots of POSIX-specified functions, where the GNU folks disagreed with the standards committee on how the functions should behave and decided to do their own thing.
2022-08-28 15:48:12 +02:00
Ray be2328f848 Update Makefile 2022-08-28 15:39:22 +02:00
Ray 568fe42cb1 Reviewed GLFW issue with ppoll() function 2022-08-28 15:37:09 +02:00
Ray 482dbfc52e Avoid error on implicit-function-declaration 2022-08-28 15:28:57 +02:00
Ray 10ae54379a Update posix_poll.c 2022-08-28 15:25:34 +02:00
Ray 2236197d49 Update rglfw.c 2022-08-28 15:20:16 +02:00
Ray 9e0e08cba4 WARNING: UPDATED GLFW to latest master branch!
WARNING: This could be a BREAKING CHANGE for some platforms! I'm afraid something could be wrong on `rglfw.c` module.

To be able to compile on Windows I had to modify `glfw/src/platform.c` line 74. I couldn't manage to compile without that change, help is welcome!
2022-08-28 14:16:51 +02:00
Dmitry Matveyev 8508ae3d15 Update NimraylibNow! bindings version (#2667) 2022-08-28 13:35:39 +02:00
Milan Nikolic 99948a86e1 Update raylib-go bindings (#2665) 2022-08-27 18:07:30 +02:00
Ray f66b1a3136 REVIEWED: Support M3D file loading #2648 2022-08-26 10:04:38 +02:00
Ray ae745e4fa8 ADDED: -latomic library on Linux (only required for ARM32)
This linkage is only required for arm 32bit but I don't know how to detect that specific architecture in the Makefile...
2022-08-22 11:25:35 +02:00
Ray e92bc8ca4e REVIEWED: M3D implementation #2648 2022-08-22 11:11:05 +02:00
Rodrigo Escar aa4111a3b2 Fix PATH for Web target (#2647) 2022-08-21 11:45:37 +02:00
Daijiro Fukuda 7bb8ffc29e Win32: resolve some symbols re-definition of windows.h in glfw3native.h (#2643)
* Win32: resolve some symbols re-definition of windows.h in glfw3native.h

This reflects GLFW's fix: https://github.com/glfw/glfw/issues/1348

This enables to build with a external GLFW containing the
following fix:

* https://github.com/glfw/glfw/commit/05f6c13d119ea2662c97527d2421fb4cffd3dbfc

Currently, glfw3native.h of the internal GLFW is customized at
https://github.com/raysan5/raylib/commit/2feea87b616292b5bce4454a42c2d048f1cce7d8

This fix is compatible with the current customized glfw3native.h.

This fix enables us to update it to the latest and remove the
customization.

* Win32: remove unneeded typedef
2022-08-21 11:44:16 +02:00
Rob Loach e835311d0d BINDINGS: raylib-cpp has support for raylib 4.2 (#2652)
https://github.com/robloach/raylib-cpp
2022-08-21 11:43:27 +02:00
Ray 4ee5fdf619 ADDED: Support M3D model file format (meshes and materials) #2648 2022-08-20 14:01:54 +02:00
Ray 35c777ef2c REVIEWED: Avoid crash on bad data provided 2022-08-18 15:11:23 +02:00
Ray 904c505125 minor tweak 2022-08-18 15:10:40 +02:00
irishgreencitrus d8ed3fb31e Update raylib.jl and raylib.v to 4.2.0 (#2644) 2022-08-17 16:36:03 +02:00
Ray 2ad7967db8 REVIEW: Fix issue with external GLFW missing define #2638 2022-08-17 10:19:52 +02:00
Michael Scherbakow 95d3a6ac52 update raylib.zig to 4.2 (#2642) 2022-08-15 23:55:58 +02:00
moosey f049f9dd3a Tiny documentation fix in reasings.h (#2640) 2022-08-15 09:15:43 +02:00
WIITD 67f8424eb0 raylib-freebasic updated to 4.2 (#2639) 2022-08-15 09:12:30 +02:00
Ray 7db6fe02fd Fixed issue with new output format 2022-08-14 12:56:55 +02:00
Ray bf2ad9df5f P A I N 2022-08-13 22:42:38 +02:00
Ray 092b6f956e WARNING: REVIEWED: rlCheckRenderBatchLimit() 2022-08-13 22:30:11 +02:00
Ray 48c7f65b77 minor tweaks 2022-08-13 22:28:47 +02:00
HarriP e0b487c641 Fix string lacking null termination in IsFileExtension (#2637)
When file extension is longer or equal length compared to buffer holding lowercased string, strncpy does not null terminate the string.
Increased buffer size by 1 to ensure it will always be null-terminated, so that following strcmp does not read out of buffer bounds.
2022-08-13 17:36:29 +02:00
Dan Bechard 56072a631d Fix Codepoint position truncation (#2636)
This truncation causes text that spans the zero coord boundary to round differently left or zero vs. right of zero, in turn causing letters to appear squished together. If you actually need the position to be an integer, you should instead `floorf()` the float, rather than doing an integer truncation, but I don't see any reason to convert it to an integer in the first place. Everything else in the equation is a float.
2022-08-13 11:18:57 +02:00
Gunko Vadim f2fbdd1999 Update BINDINGS.md (#2631)
Update to ray4laz
2022-08-12 08:16:12 +02:00
Richard Smith 03bf7e81dd updating jaylib binding to 4.2 (#2630) 2022-08-12 00:42:07 +02:00
Richard Smith 14b1aef194 update raylib-python-cffi bindings to 4.2 (#2629) 2022-08-12 00:40:53 +02:00
Ray d658e6772d Update android.yml 2022-08-11 20:26:45 +02:00
Ray 965057dbe2 Update android.yml 2022-08-11 20:25:58 +02:00
Ray b38dceb2de Update android.yml 2022-08-11 20:22:42 +02:00
Ray 764254d93e Update android.yml 2022-08-11 20:16:48 +02:00
Ray b55cb32d9b Update android.yml 2022-08-11 20:10:59 +02:00
Ray 931af3a242 Update windows.yml 2022-08-11 20:04:59 +02:00
Ray 372983c06e Update HISTORY.md 2022-08-11 19:16:37 +02:00
Ray 8b8b5ef70e Merge branch 'master' of https://github.com/raysan5/raylib 2022-08-11 19:16:32 +02:00
Ray feb9c52374 Update CHANGELOG 2022-08-11 19:16:16 +02:00
SomeUnusualGames 71e43612d6 Fix typos and reworded a question in the FAQ (#2628) 2022-08-11 17:54:24 +02:00
Eliza Milburn b24947c0d0 Improve the readability of the FAQ page (#2627) 2022-08-11 14:39:21 +02:00
Ray 60d9cbd754 Update CHANGELOG 2022-08-11 13:39:46 +02:00
Peter0x44 4c71f5f76e Reword FAQ page, and fix some typos (#2626) 2022-08-11 13:05:00 +02:00
Ray 75ece337ae Revert "Update core_3d_camera_mode.c"
This reverts commit 4f6fbaed41.
2022-08-11 12:28:21 +02:00
Ray 4f6fbaed41 Update core_3d_camera_mode.c 2022-08-11 12:27:51 +02:00
Ray ddb8be3564 Merge branch 'master' of https://github.com/raysan5/raylib 2022-08-11 12:03:43 +02:00
Ray b3ed01dbab Create FAQ.md 2022-08-11 12:03:35 +02:00
archie2x e87caa2687 Fix #2621: Set CMP0054 policy to NEW and appropriately quote ${PLATFORM} (#2622) 2022-08-09 09:52:56 +02:00
Ray b0f3a2c217 Update c_raylib.xml 2022-08-08 19:43:02 +02:00
Ray d1a5d381d8 Updated Npp scripts 2022-08-08 19:20:02 +02:00
Jacob Dennis 621d6ae856 Updated to work with zig master branch (#2620)
Specifically, std.fs.OpenDirOptions struct no longer has the iterable
flag, now it's a standalone function call std.fs.openIterableDir
2022-08-08 17:36:22 +02:00
Ray 8127044748 Update CHANGELOG 2022-08-08 12:47:40 +02:00
Ray 2c0071c851 Reviewed issue with negative key #2619 2022-08-07 19:19:18 +02:00
Ray 63a23a6b74 REMOVED: VS2019 project 2022-08-06 19:31:01 +02:00
Ray 304c820a8e Merge branch 'master' of https://github.com/raysan5/raylib 2022-08-06 19:23:45 +02:00
Ray 86ac792d9a Review projects details for raylib 4.2 2022-08-06 19:23:36 +02:00
veins1 4b2357dc34 Can't alt-tab out of fullscreen window (#2618) 2022-08-06 18:42:52 +02:00
Ray e47a3afbd8 Update BINDINGS.md 2022-08-06 18:41:50 +02:00
Ray 3ce5941106 Update BINDINGS.md 2022-08-06 18:41:03 +02:00
Anthony Walter 3edf43f1d6 Added new Free Pascal bindings (#2617) 2022-08-06 18:39:48 +02:00
Angga Permana e06ed6c608 Fix 4coder project template (#2616) 2022-08-06 08:18:32 +02:00
Ray ec8fabceeb Updated Notepad++ intellisense data 2022-08-05 20:02:36 +02:00
Ray 14990209ef Added comments 2022-08-05 20:01:35 +02:00
Ray d1c53910b7 Update parser outputs for raylib 4.2 2022-08-05 20:01:25 +02:00
Ray 5940790379 Update raylib_parser.c 2022-08-05 20:00:58 +02:00
Ray 19d6f2a961 Update HISTORY.md 2022-08-05 19:59:59 +02:00
Ray 7faeaa757c Update CHANGELOG 2022-08-05 19:43:32 +02:00
veins1 d70e5cd26b Small simplifications (#2615) 2022-08-05 12:16:49 +02:00
veins1 82b76149da GetMusicTimePlayed bug fix (#2614)
GetMusicTimePlayed() was calculated using buffered frames, not played frames.
For example: calling LoadMusicStream->UpdateMusicStream->GetMusicTimePlayed would return non-zero value, even though no music was playing.
2022-08-05 08:36:59 +02:00
hartmannathan b0b6381745 Fix typo in README: s/instrallation/installation/ (#2613) 2022-08-04 23:53:36 +02:00
Ramiro Magno 3e4a8bb640 Update bindings with raylibr (#2611)
Add R package raylibr as a new binding for the R language
2022-08-04 16:01:19 +02:00
TheManTheMythTheGameDev 090e47dca0 Fix rendering issue in audio_raw_stream.c example (#2608) 2022-08-03 08:36:23 +02:00
Ray 1a35f73d84 Review some warnings 2022-08-02 21:17:19 +02:00
Ray 50663f0890 Merge branch 'master' of https://github.com/raysan5/raylib 2022-08-02 21:17:07 +02:00
Ray 7c9d55f4d9 Move parser output to output 2022-08-02 21:17:03 +02:00
Ray 0739152057 Update README.md 2022-08-02 21:16:46 +02:00
Ray 66108c47d9 Update raylib_parser.c 2022-08-02 21:10:35 +02:00
Ray 75c8df348f Update README.md 2022-08-02 21:07:47 +02:00
Ray 273c780b67 Update raylib_parser.c 2022-08-02 21:05:31 +02:00
Ray 2ce0722fb8 Update README.md 2022-08-02 21:02:11 +02:00
Ray 72b2d1335a Update cgltf.h 2022-08-02 19:05:42 +02:00
Ray b79df1c329 Updated easings examples 2022-08-02 18:55:49 +02:00
Ray d791c1cf64 Update miniaudio.h 2022-08-02 18:50:12 +02:00
Ray 94165a40b9 REMOVED: rmem library from raylib sources
Moved to own repo: https://github.com/raylib-extras/rmem
2022-08-02 18:50:08 +02:00
Ray dd455c626e Update rlgl.h 2022-08-02 18:33:00 +02:00
Ray 0ce8a8f360 Remove easings.h from raylib/src, moved to examples 2022-08-02 18:31:57 +02:00
Ray b187d6ca16 Delete rlights.h 2022-08-02 18:30:54 +02:00
Ray 5840cd6e50 Remove unneeded comment 2022-08-02 18:12:57 +02:00
Ray df5514088e REVIEWED: GetMouseWheelMove(), avoid move scaling on PLATFORM_WEB
Tested with latest emscripten 3.1.18
2022-08-02 18:07:44 +02:00
Ray 312fa64b88 Updated raylib resource data (32bit) 2022-08-02 18:06:00 +02:00
Ray 222997f951 Update HISTORY.md 2022-08-02 17:26:20 +02:00
Ray 2a2c9e4da8 minor tweaks 2022-08-02 17:25:24 +02:00
Ray 6ecb29f33f REMOVED: Sponsors doc
This file requires manual maintenance and continuous review, it also changes from day to day moving sponsors from present-to-past and sometimes the other way round.

GitHub already lists the sponsors on the user profile, in a better an more visual way.

I also have doubts this should be a document distributed with raylib sources...
2022-08-02 12:03:03 +02:00
Ray ddbe8972bc REMOVE: Unmaintained and outdated contributors doc 2022-08-02 10:38:13 +02:00
Ray 9cbbf149d8 Update audio_music_stream.c 2022-08-02 10:23:54 +02:00
Ray 328d65b1b3 Update Makefile.Web 2022-08-02 10:22:22 +02:00
Ray c457835938 Update audio_raw_stream.c 2022-08-02 10:22:17 +02:00
Ray d68ddda766 Added note for multi-threading web compilation 2022-08-02 09:59:12 +02:00
Ray 24e6bf0565 Update shapes_draw_ring.c 2022-08-02 09:58:56 +02:00
Ray 4492e64cb5 Update version 2022-08-02 09:27:13 +02:00
Ray 191c340409 Update Makefile.Web 2022-08-02 09:26:46 +02:00
Ray ed7548051b Update version to 4.2 2022-08-02 09:21:03 +02:00
Ray eb8d14e5b2 Update version to raylib 4.2 2022-08-02 00:36:59 +02:00
Ray fd191a32ea Remove trailing spaces 2022-08-02 00:36:31 +02:00
Ray fe9e82b2e6 Remove line breaks 2022-08-02 00:30:57 +02:00
Ray b20d416131 Added latest examples 2022-08-02 00:30:26 +02:00
Ray dacd500ef0 Update CHANGELOG 2022-08-02 00:00:57 +02:00
Ray a0b4b28427 Update Makefile.Web 2022-08-01 23:57:09 +02:00
Ray f9b71e7bcd Update Makefile 2022-08-01 23:57:05 +02:00
Ray 0f47054ece Added example to VS2022 2022-08-01 23:45:14 +02:00
veins1 a6b3c8aa1e Music doesn't stop looping fix (#2605)
This PR fixes a bug when music.looping is set to false but the music continues looping.
Also using proper functions to seek to start of an audio file.
Removed old comment.
2022-08-01 20:07:32 +02:00
Ray 2e5fc3d0c2 Avoid cleaning the front buffer to a specific color!
ISSUE: Front buffer and backbuffer have different clear colors, if no `ClearBackground()` is called by user, there is screen flickering on buffers swap.

It's up to the user to call `ClearBackground()` if desired
2022-08-01 10:05:40 +02:00
Ray f596815973 Merge branch 'master' of https://github.com/raysan5/raylib 2022-08-01 09:57:29 +02:00
Ray 7853155f99 REMOVED: Config option: SUPPORT_MOUSE_CURSOR_POINT 2022-08-01 09:57:11 +02:00
BlueStag f31e4ebb3d Use American spelling of colourSpace (#2604) 2022-07-31 21:09:41 +02:00
sDos280 85bd13c41d removing typo, Colours->Colors (#2603) 2022-07-31 10:31:14 +02:00
sDos280 d59ea21405 removing typo in line 41 line, presssed -> pressed (#2602) 2022-07-31 01:51:25 +02:00
Ray 93b633b6e6 Create audio_stream_effects.png 2022-07-29 19:56:36 +02:00
Ray bc8cecc6aa Update CHANGELOG 2022-07-29 19:56:27 +02:00
Ray 6c61f83d63 Update ROADMAP.md 2022-07-29 18:45:14 +02:00
veins1 0ef3e4c4d5 Audio looping fix (#2579)
* WAVs looping fix. But broke other formats looping

* Fix audio looping issue

* Follow raylib formatting

* Cast void* to char* to make MSVC compiler happy

Co-authored-by: Ray <raysan5@gmail.com>
2022-07-29 13:10:59 +02:00
Ray b6f87023ad Update rlgl_standalone.c 2022-07-29 12:38:01 +02:00
Ray fccdb68df8 Create audio_stream_effects.c 2022-07-29 12:36:56 +02:00
Ray 277dd2bb57 Update audio_music_stream.c 2022-07-29 12:36:51 +02:00
Ray 721e7914b1 Update audio_music_stream.c 2022-07-29 12:08:04 +02:00
Ray e4229e1be7 Merge branch 'master' of https://github.com/raysan5/raylib 2022-07-29 12:01:26 +02:00
Ray bb6b43b7cb REVIEWED: GenImageFontAtlas() #2556
Just reviewed font atlas size estimation, now it considers `fontSize` instead of `chars[i].image.height`, increasing considerably the atlas size estimation.
2022-07-29 12:01:18 +02:00
Nikolay Krasheninnikov 52345fd883 [raymath] Rotation functions returns clockwise rotation matrix, #2595 (#2599)
Co-authored-by: Nikolai Krasheninnikov <nikolai.krasheninnikov@kronshtadt.ru>
2022-07-29 11:54:37 +02:00
Ray 241d6526b0 Some camera improvements #2563
Reviewed some camera functionality:

 - Reviewed camera swinging (up-down movement)
 - Reviewed camera tilting (left-right movement)
 - Make movement independent of frame-rate
 - removed unneeded variables

NOTE: Camera rotation has some speed issues on first person when fixed 60 fps are used: it moves too fast. Independent framerate movement is not properly implemented.
2022-07-29 10:04:12 +02:00
Ray 7b05444af8 Review comments and parameter names 2022-07-29 09:45:19 +02:00
Piotr Wierciński 024a803665 rtextures: Improve numerical stability of float multiplication (#2596)
Dimensions of Rectangle should be casted to int before multiplication,
otherwise there is a risk for underallocation/overallocation of memory.
2022-07-27 17:31:52 +02:00
Piotr Wierciński 5a2f25cc7c rtextures: Fix ImageFromImage crash (#2594)
Height of the rectangle can be float, which
may lead to doing extra iteration of loop and
writing out of bounds.
2022-07-26 20:53:36 +02:00
MyUncle 6f3a633f2e add: cmake config include guard (#2592) 2022-07-26 14:28:26 +02:00
Crydsch 00c7509454 add Vector3RotateByAxisAngle (#2590) 2022-07-26 14:27:28 +02:00
hitomi kirigri 64710e6030 fix QuaternionFromMatrix & QuaternionEquals (#2591)
Co-authored-by: kirigiri hitomi <chenjw@hiscene.com>
2022-07-26 14:25:31 +02:00
Ray d78177d246 Update year 2022-07-25 00:52:10 +02:00
Ray 39d9d1da42 Update config.h 2022-07-25 00:48:15 +02:00
/ˈɛvən/ 4b0f28b782 add hare-raylib to BINDINGS.md (#2589) 2022-07-24 10:40:27 +02:00
Ray 65c3edf797 ADDED: Missing examples to VS2022 solution #2580 2022-07-23 12:48:15 +02:00
Julianiolo 6ed1ce0082 fixed build for cygwin (#2588) 2022-07-23 12:33:23 +02:00
Ray 0abba4dc18 Update README.md 2022-07-22 11:48:00 +02:00
Andrew 55c43fcd26 Update README.md (#2587)
* Update README.md

Simple change of
- "specially" -> "especially" when appropriate
- "fileformats" -> "file formats"

* Update README.md

Remove an unwanted change in the README file.
2022-07-22 11:33:54 +02:00
George Linkovsky b40696eab6 Fix Vector3ClampValue and Vector2ClampValue (#2585)
Co-authored-by: Timofffee <timofffee@gmail.com>
2022-07-20 14:46:11 +02:00
Ray 4a9391ae83 REVIEWED: examples descriptions 2022-07-20 01:28:37 +02:00
Ray 4fced50fd1 Reviewed example formating 2022-07-19 22:06:18 +02:00
Ray a3a6b3f24a Update core_2d_camera.c 2022-07-19 22:05:07 +02:00
Jeffery Myers 39ead974a4 add mouse zoom example (#2583) 2022-07-19 21:55:10 +02:00
Jeffery Myers e9029d3d00 [CORE] Fix Warnings (#2582)
* Fix raymath warning with floor to floorf

* signed unsigned missmatches
2022-07-19 06:36:03 +02:00
Mike DX 0f7c4f762f Update BINDINGS.md (#2581)
Added Binding for VALA language
2022-07-19 00:47:43 +02:00
Ray 49a534b5d4 Removed raudio.h from public header 2022-07-15 19:11:42 +02:00
Ray cccea34c6f Update raudio.c 2022-07-15 19:09:14 +02:00
Ray 8aa105fd5b WARNING: REMOVED: raudio_standalone example
Moved to raudio library repo: https://github.com/raysan5/raudio
2022-07-15 19:05:05 +02:00
Ray 6c2c176a99 Added note 2022-07-15 18:53:08 +02:00
Ray 3ebfee5dbc REVIEWED: UpdateMusicStream() #2228
Trying to implement proper looping, independently of frame rate.
2022-07-11 21:19:21 +02:00
Ray 0379b94b7a Minor tweaks 2022-07-11 21:18:31 +02:00
Ray b92573e711 Update raudio.c 2022-07-10 23:00:09 +02:00
CastimierDev 0ac825b22a set the maintained bindings in alphabetical order (#2570)
reordered the maintained bindings into alphabetical order
2022-07-10 21:43:33 +02:00
Ray 2245500245 Added comment about buffer refill issue on looping #2228 2022-07-10 21:39:13 +02:00
Ray 066bd5be87 Reviewed formating 2022-07-10 21:38:33 +02:00
Ray 29a0f60778 REVIEWED: ImageResize() #2572 2022-07-10 21:12:34 +02:00
Ray 05dc300296 Remove unneded TABS 2022-07-09 19:36:33 +02:00
Audi Nugraha d1aabb3957 Allow DLL creation using TCC (#2569)
* Fix Undefined Symbol `_ftelli64`

* Add files via upload

* Update raylib.h

* Update raylib.h
2022-07-09 19:33:18 +02:00
Ray 5842a6a399 Merge branch 'master' of https://github.com/raysan5/raylib 2022-07-09 00:13:27 +02:00
Ray 53e3375186 Create rlgl_standalone.png 2022-07-09 00:12:50 +02:00
Richard Smith f7e1550eea Fix fat universal (arm64 + x86_64) macos Github Actions build (#2567)
* test if clang supports multiple targets

* didnt work, so trying lipo to join separate targets together

* add CUSTOM_LDFLAGS to try to fix arm64 mac dynamic build

* fix sym links

* try again to fix sym links

* auto extract raylib version numbers from makefile

* fix macos missing gnu grep

* dont use custom name for raylib dlls
2022-07-08 07:57:10 +02:00
Ray 41a19cd007 Merge branch 'master' of https://github.com/raysan5/raylib 2022-07-07 20:23:48 +02:00
Ray 5f9972dfd1 Update raylib.sln 2022-07-07 20:23:46 +02:00
Ray 1343f5f31f Update CHANGELOG 2022-07-07 19:58:14 +02:00
Ray 0295ab968c Update README.md 2022-07-07 19:14:08 +02:00
Ray ab23e2f130 Merge branch 'master' of https://github.com/raysan5/raylib 2022-07-07 19:12:44 +02:00
Ray 61695c5315 Added some examples screenshots 2022-07-07 19:12:37 +02:00
Ray 4e763b4aa3 Update example reviews raylib versions 2022-07-07 19:07:09 +02:00
Ray 870b7fa05f Added new examples to Makefile 2022-07-07 18:29:06 +02:00
Ray ff838b48fd UPDATED: examples: Assigned **DIFFICULTY LEVELS**! 2022-07-07 14:34:38 +02:00
Ray 8e229ada1d ADDED: example: textures_gif_player 2022-07-07 12:15:55 +02:00
Ray e121058eb6 RENAMED: example: textures_rectangle -> textures_sprite_anim 2022-07-07 12:09:30 +02:00
Ray e3ff5f3dc2 ADDED: example: textures_fog_of_war 2022-07-07 11:13:45 +02:00
Ray 9e97a2c4a1 ADDED: example: core_window_should_close 2022-07-07 11:07:41 +02:00
Ray 8f65cb1d94 ADDED: example: text_codepoints_loading 2022-07-07 01:00:57 +02:00
Ray 7fb7591e4f Update raylib.h 2022-07-05 13:27:07 +02:00
Ray e722a8dbef WARNING: BREAKING: REMOVED: *StorageValue() functions
Those functions were platform dependent and user has no control over the file created. They have been removed from raylib and just moved to `core_storage_values` example.
2022-07-05 13:24:14 +02:00
Ray e0f0a5f663 REMOVED: GenMeshBinormals(), actually, never implemented 2022-07-05 12:55:51 +02:00
Ray d0f53db65f REMOVED: example: core_quat_conversion 2022-07-05 00:54:50 +02:00
Ray cd53531050 Added some comments 2022-07-05 00:50:23 +02:00
Ray bf07d17cec REMOVED: example: core_quat_conversion
This example requires a complete remake to be more clear. Also current quaternion maths could have issues.
2022-07-05 00:50:04 +02:00
Ray 5c5db2c016 Update rlgl_compute_shader.c 2022-07-04 18:34:38 +02:00
Ray c6c71fe73c REVIEWED: DrawMesh() #2511
Disable color vertex attribute if not provided by mesh
2022-07-04 17:47:47 +02:00
Ray 850321cf2b Update ROADMAP.md 2022-07-03 13:37:17 +02:00
Ray f579a3a708 REVIEWED: DecompressData() 2022-07-03 11:11:50 +02:00
Ray 061e828524 REVIEWED: example: gltf models loading -WIP- 2022-07-01 14:02:30 +02:00
Omer Kilinc b84fc30284 Fixed various grammar mistakes (#2559)
* Fixed various grammar mistakes

* Fixed various grammar mistakes

* Update README.md
2022-07-01 13:47:50 +02:00
Ray 9be186624c REVIEWED: DrawBillboard*() 2022-06-29 21:56:19 +02:00
Ray 61e691d94f Remove unneeded rlPushMatrix() 2022-06-27 13:27:16 +02:00
Ray e9fcc8a391 Update CHANGELOG 2022-06-26 19:46:13 +02:00
Ray da5d04061e Updated PLATFORM_RPI info #2547 2022-06-25 12:10:28 +02:00
Ray e4972f4cdd REMOVED: Physac projects #2551 2022-06-24 20:44:40 +02:00
Ray 1211047e1c Removed physac #2543 2022-06-24 11:09:12 +02:00
veclavtalica 63568721f9 fix: precision loss, discard unused (#2541) 2022-06-24 10:59:31 +02:00
Richard Smith 3c3f08c416 Fix CMake build on Raspberry Pi OS Bullseye (#2548) 2022-06-24 10:50:24 +02:00
Hanaxar 6f231ea9ac Fix signedness in rlBindImageTexture (#2539)
rlGetGlTextureFormats was expecting unsigned int, corrected variables according to that.
2022-06-23 12:23:14 +02:00
veclavtalica b1fb469e0d fix: small things in CONVENTIONS.md (#2536) 2022-06-23 08:03:16 +02:00
Ray d7a0b46006 Update rlights.h 2022-06-22 00:35:06 +02:00
Ray 77b9ca50e0 Update shaders_basic_lighting.c 2022-06-22 00:35:04 +02:00
Ray 3879decb9f REVIEWED: example: shaders_mesh_instancing
Simplified example
2022-06-21 21:06:03 +02:00
Ray 371aa0fe7f Update rlgl.h 2022-06-21 20:59:54 +02:00
Ray 5044ce9de3 Reviewed batch buffer overflow #2526 2022-06-21 20:28:50 +02:00
Ray 68c7cc0cc4 minor tweak 2022-06-21 19:53:28 +02:00
Ray c1b01c0d5d Added new comment to examples 2022-06-21 19:53:18 +02:00
Dan Bechard 8bd3ecaa66 Share PCM streaming buffer to reduce dynamic allocations (#2532) 2022-06-21 19:26:21 +02:00
Ray 0afa79067b Revert "Update rlgl.h"
This reverts commit 8fe6bfabbf.
2022-06-18 20:47:49 +02:00
Ray 5426262ae6 REVIEWED: IsFileExtension() #2530
Max file extension size set to 16
2022-06-18 20:44:15 +02:00
Ray 8fe6bfabbf Update rlgl.h 2022-06-18 19:24:11 +02:00
Ray 6f3b2a7661 Update rlgl.h 2022-06-18 16:22:47 +02:00
Ray c1d9489294 Update rcore.c 2022-06-18 16:22:42 +02:00
Ray 8d9c45a08a tweak 2022-06-17 21:24:59 +02:00
Ray d4f60f8303 REVIEWED: LoadDroppedFiles(), fixed issues 2022-06-17 12:06:58 +02:00
The Tophat Demon a6e31cadbd Changed ExportFontAsCode to use given font's padding. (#2525) 2022-06-17 00:12:21 +02:00
Roy Qu 0964353073 fix: round off error in ColorAlphaBlend (#2524) 2022-06-16 14:47:46 +02:00
Ray 309ad3e08b REVIEWED: rlTextureParameters(), reset anisotropy level 2022-06-16 13:07:38 +02:00
Ray 7ed3d870fe REVIEWED: rlGenTextureMipmaps(), removed filtering setup 2022-06-16 13:07:09 +02:00
Ray 2824aacd5d Update rcore.c 2022-06-16 13:06:18 +02:00
Pijus c392f0c16b Add wrap (#2522)
* add wrap function

* fixed Wrap function wrapping wrong
2022-06-14 21:28:39 +02:00
Ray 377dcef9f4 Revert "add wrap function (#2521)"
This reverts commit 81157e4e72.
2022-06-14 20:53:35 +02:00
Pijus 81157e4e72 add wrap function (#2521) 2022-06-14 19:12:37 +02:00
Ray d37a63fad7 Reviewed easings include 2022-06-12 23:01:48 +02:00
Ray 9998a86625 Update rcore.c 2022-06-12 22:56:24 +02:00
Ray a2c56b5929 Update rmem.h 2022-06-12 21:22:01 +02:00
Ray 043fa4cba7 Removed extras directory 2022-06-12 21:13:46 +02:00
Ray 7743af853a Update easings.h 2022-06-12 21:13:27 +02:00
Ray ad56a49da8 Reviewed latest PR 2022-06-12 20:51:31 +02:00
Steven Schveighoffer e1e0bc4266 Add function to read both X and Y mouse scrolling from a trackpad (#2517)
(GetMouseWheelMoveV).
2022-06-12 17:30:07 +02:00
Ray 875601c4cc REVIEWED: FilePathList, consider maximum capacity 2022-06-12 11:32:10 +02:00
Ray 96292bc859 Update models_skybox.c 2022-06-12 01:00:13 +02:00
Ray f9426912f6 Update text_font_filters.c 2022-06-12 00:52:15 +02:00
Ray ad332f49ed Update core_drop_files.c 2022-06-12 00:04:25 +02:00
Ray 8c2019f5ad Update core_drop_files.c 2022-06-12 00:01:47 +02:00
Ray b8f67c6285 WARNING: BREAKING: REDESIGNED: Filepath loading API
REDESIGNED: `LoadDirectoryFiles()`
ADDED: `LoadDirectoryFilesEx()`
REDESIGNED: `LoadDroppedFiles()`
ADDED: `IsPathFile()`

This BIG BREAKING change simplifies the functions and gives more control to the user:
 - A new `struct FilePathList` has been added to avoid exposing complex pointers.
 - User is responsible of memory loading/unloading
 - Filepaths loading support recursive directories and file extension filters
2022-06-11 23:24:13 +02:00
Ray f7744404d6 Remove physics projects 2022-06-11 23:01:22 +02:00
Ray b1c413237c Update config.h 2022-06-11 20:44:47 +02:00
Ray b9f617aaee Update raylib.h 2022-06-11 18:13:15 +02:00
Ray 702f2bccfc REVIEWED: Issue with MOUSE_PASSTROUGH #2516 2022-06-11 18:12:39 +02:00
Ray b549baa6b7 New feature: support MOUSE_PASSTHROUGH #2516 2022-06-11 12:08:16 +02:00
Ray 4a6e8bb90b Minor formattng tweak 2022-06-09 21:01:51 +02:00
gulrak 5e3ef42201 GetMonitorWidth()/GetMonitorHeight(): return current video resolution instead max available (#2514)
* GetMonitorWidth()/GetMonitorHeight(): current video resolution instead max available

* adapt header comment to reflect change
2022-06-09 21:00:04 +02:00
Ray 59a808516e Update README.md 2022-06-08 23:05:51 +02:00
Ray 484a61c1d4 Update CHANGELOG 2022-06-08 21:17:37 +02:00
Ray 3fc1bd0670 Update CHANGELOG 2022-06-08 21:15:33 +02:00
rc-05 70ec71a373 Update BINDINGS.md (#2513) 2022-06-08 13:57:02 +02:00
flashback-fx 8c55b40e9e Unify busy waiting behavior across conditional compilation branches (#2508)
* Unify busy waiting behavior across conditional compilation branches

* Inline busy waiting code instead of using static function
2022-06-07 21:01:29 +02:00
Ray ae715ba0d8 Update CHANGELOG 2022-06-07 20:43:27 +02:00
Ray b3187e1291 Update CHANGELOG 2022-06-07 19:06:23 +02:00
Ray a7459043c6 Update CHANGELOG 2022-06-07 19:03:44 +02:00
Ray b5191a03b2 Update CHANGELOG 2022-06-07 18:50:31 +02:00
Ray a53411013a Update CHANGELOG 2022-06-07 18:48:20 +02:00
Ray dca23cb3ff RENAMED: BLEND_ALPHA_PREMUL to BLEND_ALPHA_PREMULTIPLY 2022-06-07 18:46:14 +02:00
Ray fc86b5c1b4 Added raylib 4.2 release CHANGELOG 2022-06-07 14:15:06 +02:00
Ray 9dd28feadf Added rea change 2022-06-07 14:14:04 +02:00
Ray bf208decc0 REVIEWED: Compilation warnings 2022-06-07 10:04:24 +02:00
Daw-Ran Liou 06db2767fe Update cl-raylib binding (#2509)
Commit d57c8136426b7cc8a39e77f05097c8585d4bb1eb from longlene/cl-raylib now puts
the binding on track with raylib version 4.0.
2022-06-07 00:05:58 +02:00
Ray 9c676e599e Update android.yml 2022-06-06 20:53:48 +02:00
Ray e6bc401c93 WARNING: RENAMED: GetDroppedFiles() to LoadDroppedFiles()
RENAMED: `ClearDroppedFiles()` to `UnloadDroppedFiles()`
2022-06-06 20:39:37 +02:00
Ray ebbcc2ffce WARNING: RENAMED: GetDirectoryFiles() to LoadDirectoryFiles()
RENAMED: `ClearDirectoryFiles()` to `UnloadDirectoryFiles()`
2022-06-06 20:30:24 +02:00
Ray 461cdda71e Reviewed latest PR, variable name 2022-06-06 20:23:14 +02:00
flashback-fx c11d30bafe Change WaitTime argument from milliseconds to seconds (#2506) 2022-06-06 20:18:37 +02:00
Ray 609d92003b WARNING: REMOVED raygui from raylib/src/extras 2022-06-06 11:11:39 +02:00
Ray 8da566d6e7 WARNING: Removed physac from raylib sources/examples
`physac` is available on its own repo
2022-06-06 11:00:06 +02:00
Ray 865a44adda REVIEWED: Mouse device support on PLATFORM_DRM #2381 2022-06-05 11:34:23 +02:00
flashback-fx cda89ebb58 Fix regression that was causing video stuttering (#2503) 2022-06-05 11:14:26 +02:00
Ray 6fccfc57a4 Minor tweak 2022-06-02 19:22:42 +02:00
Ray 91af3a3152 Update text_draw_3d.c 2022-06-02 19:22:31 +02:00
Ray 99841b8fde Merge branch 'master' of https://github.com/raysan5/raylib 2022-05-31 23:25:33 +02:00
Ray a28dfbae9f REVIEWED: Batch limits check #2489 2022-05-31 23:25:21 +02:00
Naveen 023eb3380d chore: Set permissions for GitHub actions (#2496)
Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
2022-05-31 23:23:12 +02:00
Ray d0318aac4a REVIEWED: DrawBillboardPro() #2494 2022-05-30 20:30:16 +02:00
Ray 8294e04749 Correct typo 2022-05-29 18:23:48 +02:00
Ray fe28aa7c9b Review log messages 2022-05-29 17:39:10 +02:00
Ray 1f806b555d ADDED: -latomic linkage, required by miniaudio on ARM 32bit #2452 2022-05-20 17:45:36 +02:00
gulrak 789e504069 use GetWindowScaleDPI to calculate size for rlReadScreenPixels in screenshot/recording (#2446) 2022-05-20 17:25:47 +02:00
Patrick 76c3881944 Fixed Android CMake build error (#2486)
`android_native_app_glue.c` wasn't appended to the `raylib_sources` as other libraries were.

Co-authored-by: Patrick Martin <martinpatrick@google.com>
2022-05-20 17:21:45 +02:00
Jonathan Poncelet 5bdd8f134f Improved boolean definitions (#2485) 2022-05-19 21:21:09 +02:00
Ray 426e8252d4 Update raylib-jai binding 2022-05-19 17:33:30 +02:00
Angga Permana d3caee0e72 generate compile_commands.json to be used by language server (#2481)
* cmake: Generate compile commands

* Update README.md

simplify build process
2022-05-19 13:18:12 +02:00
Ray 6259dc4121 Revert "UPDATE: DEFLATE algorithm"
This reverts commit d786af83fc.
2022-05-18 16:23:52 +02:00
Ray d786af83fc UPDATE: DEFLATE algorithm 2022-05-18 13:39:07 +02:00
Ray 5ecc289201 REVIEWED: Support OpneBSD for timming functions 2022-05-16 19:24:16 +02:00
Crydsch 020e903193 Fix lgtm warnings (#2477)
* Comparison is always true because finalSample >= 1

* Comparison is always false because keyCount >= 0
2022-05-14 15:02:29 +02:00
Ray db16833d8c ADDED: EnableEventWaiting() / DisableEventWaiting()
Events waiting can be enabled/disabled, it toggles event polling.
2022-05-12 16:51:46 +02:00
Ray f3aac87422 Some minor tweaks 2022-05-12 16:35:28 +02:00
ptarabbia ea598f7d77 Fix crash with delay demo. (#2472) 2022-05-12 15:26:36 +02:00
Rob Loach c0275df820 Easings: Add function descriptions (#2471) 2022-05-12 14:48:51 +02:00
Crydsch b2c2b5ee21 remove fps requirement for drm connector selection (#2468) 2022-05-09 17:12:38 +02:00
Ray df3f64bfd2 Corrected typo 2022-05-07 18:04:34 +02:00
lazaray aa318674e8 Add support for calculated defines to parser (#2463)
* Add support for calculated defines to parser

* Regenerate parser output
2022-05-06 20:23:07 +02:00
lazaray bbc8d39185 Add support for truncating parser input (#2464)
* Add support for truncating parser input

* Remove RLAPI from implementations in rlgl.h
2022-05-06 20:18:39 +02:00
Daniel Nagy 19f88241ec Flush stdout after trace messages (#2465)
This immediately shows log messages when stdout is not connected to a
tty.
2022-05-06 20:15:13 +02:00
Capital-EX 7fc9662480 Update Note About Factor's Raylib Bindings (#2466)
Factor's bindings have been moved into the main repo. Additionally, they have been updated to 4.0.
2022-05-06 19:24:24 +02:00
Ray ed29b4eedf Update utils.c 2022-05-06 00:46:43 +02:00
Ray d9a30b8480 ADDED: ExportDataAsCode() 2022-05-06 00:14:28 +02:00
Ray ed2ab55034 Remove line ending spaces 2022-05-05 20:39:14 +02:00
lazaray 4eb3d8857f Reorder parser (#2462)
* Reorder parser output

* Regenerate parser output

* Reorder parser line reading

* Reorder parser data parsing

* Reorder remaining parser stuff
2022-05-04 13:44:55 +02:00
lazaray df6caea25d Parser improvements (#2461)
* Fix parser function description detection

Some functions in easings.h are defined on a single line and include a
division which was mistaken for the start of the description.

* Fix parser detection of macros including spaces

* Add support for self-referencing structs to parser

* Fix parser code style

* Fix parser handling of multiple fields on one line

* Increase parser MAX_STRUCT_FIELDS

For internal rlglData State struct (internal structs are still not
supported but this makes it less wrong).

* Add description helper to parser

* Regenerate parser output

* Add cakkbacks to parser

* Regenerate parser output

* Refactor funcLines to be an array of line numbers

It used to be an array of pointers into the text buffer but was changed
to be an array of pointers to the lines. Now it is an array of line
numbers like the others.

* Fix code style

* Move array size from name to type

* Regenerate parser output
2022-05-04 11:06:01 +02:00
Benedek Szilvasy 8cb03ef524 Add racket-raylib to BINDINGS.md (#2454) 2022-05-01 21:50:11 +02:00
lazaray 6f044c57ac Add aliases to parser (#2444)
* Fix parser indentation

* Fix  parser comments

* Add aliases to parser

* Regenerate parser output

* Fix parser handling of multiple fields on one line

* Regenerate parser output

* Fix parser code style
2022-05-01 12:34:15 +02:00
Ray 666aa44a84 Reviewed some comments 2022-05-01 11:14:28 +02:00
Ray f169530d8f Update raylib.h 2022-04-29 17:52:22 +02:00
Ray 5c66cc1c9b Update rcore.c 2022-04-28 17:38:52 +02:00
Ratul Krisna db6c677755 Update raylib haxe binding name (#2451)
As title says
2022-04-28 12:14:51 +02:00
Michael Scherbakow 28ac82aeb0 add raylib.zig bindings (#2449) 2022-04-28 10:59:16 +02:00
Leonardo Montagner 3580267479 Fix Issue #2441 (#2442)
Remove line that caused a memory leak
2022-04-26 12:25:39 +02:00
Ray a7ce537d32 Check for mouse devices on PLATFORM_DRM 2022-04-26 09:30:20 +02:00
Ray 38a3523f59 REVIEWED: SwapScreenBuffers() for PLATFORM_DRM
Avoid calling `abort()`, `LOG_ERROR` already manages it. Code looks cleaner now.
2022-04-25 21:00:17 +02:00
Ray bdfa256cea Update rlgl.h 2022-04-25 19:35:23 +02:00
Ray 6e722d416b Update rcore.c 2022-04-25 19:35:19 +02:00
Ray e543922055 Review formatting 2022-04-24 17:58:51 +02:00
Juan Carlos González Amestoy f2c7b0d3bf - Fix issue #2371 (#2437) 2022-04-24 17:05:45 +02:00
Ray 74ca81338e REDESIGNED: Set rlgl internal framebuffer #2420 2022-04-24 12:37:50 +02:00
Ray dc553d1996 Update rlgl.h 2022-04-24 12:25:26 +02:00
Ray f798ee2bc1 Update rlgl.h 2022-04-24 12:19:41 +02:00
Maiko Steeman ccfac59c60 Fix for vr rendering not taking render target size into account (#2424) 2022-04-24 11:48:50 +02:00
Ray e1ee4b1466 Reviewed MouseScrollCallback() #2371 2022-04-24 11:16:35 +02:00
Ray d433de7efa Initialize (reset) input global state #2360 2022-04-24 11:02:50 +02:00
Ray 233cf3970c Removed bool type from raymath, it broke raylib 2022-04-24 00:38:11 +02:00
Ray ff95f05386 Update rlgl.h 2022-04-24 00:29:15 +02:00
Ray 47d768c3d6 REVIEWED: ToggleFullscreen() 2022-04-23 23:40:56 +02:00
Ray 015a71fc40 Update raymath.h 2022-04-23 23:39:50 +02:00
Ray be3ae71aec Review new functions formatting 2022-04-23 23:24:13 +02:00
saccharineboi 52befa0815 Augment raymath.h with useful functions (#2428)
* Augment raymath.h with useful functions

* Rename Vector2ClampMagnitude and Vector3ClampMagnitude to Vector2ClampValue and Vector3ClampValue

* Remove Vector3{Up,Down,Left,Right,Forward,Backward}
2022-04-23 23:13:33 +02:00
Anilforextra a5daee3812 Optimize Some Image Functions. (#2429) 2022-04-23 10:51:47 +02:00
tuckie 559ffc6331 Update BINDINGS.md (#2431)
node-raylib is updated to 4.0!
2022-04-11 18:13:43 +02:00
Ray f71cc53bc9 WARNING: RENAMED: some parameters from length to size
When referring to byte array SIZE, I find it more clear than length
2022-04-06 20:50:50 +02:00
GoldenThumbs 07240b96ad Fix OpenGL 4.3 graphics option in CMake (#2427) 2022-04-05 09:59:53 +02:00
Benedek Szilvasy aa8af23f10 Fix string defines generating invalid XML (#2426) 2022-04-05 00:00:41 +02:00
Anilforextra 9c66e2f97e [Examples] Free Allocated Matrices. (#2425) 2022-04-04 10:32:46 +02:00
ZimonIsHim c064eefe26 Update SPONSORS.md (#2423) 2022-04-01 17:03:35 +02:00
Ray 709ec1663d Update audio_music_stream.c 2022-03-30 20:25:46 +02:00
Ray 1612ba63ab ADDED: Audio stream processors support -WIP- #2212
This feature is still under consideration/testing and it doesn't work properly, at least the Delay Effect processor.
2022-03-30 20:13:02 +02:00
Ray 90fc7c0376 WARNING: BREAKING: REMOVED: GetRayCollisionModel() #2405 2022-03-30 20:11:22 +02:00
Satoshi Tanaka 5abb87a0d2 Fix QuaternionScale (#2419) 2022-03-30 19:53:44 +02:00
Ray 9c2d337e99 Update rtext.c 2022-03-29 18:11:33 +02:00
Ray 3bcb19e040 Merge branch 'master' of https://github.com/raysan5/raylib 2022-03-28 11:58:25 +02:00
Ray cfe7823453 REMOVED: MatrixNormalize() #2412 2022-03-28 11:58:16 +02:00
Ray c2c1c93041 Corrected typo 2022-03-26 10:42:46 +01:00
Ray 418a595b6f Corrected typo 2022-03-25 15:39:32 +01:00
Ray 45cc806a5c Update README.md 2022-03-25 11:24:03 +01:00
Ray 69ccf6d472 Update README.md 2022-03-25 11:12:49 +01:00
Ray a2399bd2bc Update README.md 2022-03-25 11:00:09 +01:00
Ray 8e28872fe1 Rename audio callback 2022-03-25 10:19:40 +01:00
Ray 381236051f ADDED: Audio stream input callback #2212 -WIP-
WARNING: This addition is based on a PR and it's still under review, not sure if it will be maintained in the future. In general, raylib tries to avoid callbacks usage mechanisms.
2022-03-24 20:49:11 +01:00
Ray bcd84cd36d Some code reviews -WIP- 2022-03-24 18:56:53 +01:00
Ray 22c17da4d7 Update to miniaudio 11.8 2022-03-24 18:22:09 +01:00
Ray ca12ef48e9 Fixes #2408 2022-03-24 11:44:52 +01:00
Ray 65f28460a1 Update shaders_raymarching.c 2022-03-22 23:53:32 +01:00
Ray 3634adf8d4 Update textures_draw_tiled.c 2022-03-22 21:11:56 +01:00
Ray bd95408b06 Update textures_draw_tiled.c 2022-03-22 21:10:51 +01:00
Ray cb62cb675f Minor tweaks const 2022-03-22 18:45:41 +01:00
irishgreencitrus 40794da9e4 Add raylib.jl binding for Julia (#2403) 2022-03-22 14:45:26 +01:00
Ray 0da7830745 REVIEWED: Avoid some float -> double promotions 2022-03-20 12:15:51 +01:00
Jeffery Myers c65efecf0a Verify there is enough space in the batch for the npatch geometry. (#2401) 2022-03-19 22:26:27 +01:00
João Távora 9ecbc465a9 Fix too many opening parens in src/rtextures.c (#2398)
This is a tiny change that makes code in src/rtextures.c "fold"
correctly in editors/IDE's by matching the number of opening
parenthesis to closing parenthesis.  One of those editors is Emacs ;-)
2022-03-18 12:32:00 +01:00
Rodrigo Escar 9723489ccc Implements OpenURL() for Android Platform (#2396) 2022-03-18 11:41:41 +01:00
Ethan Conneely 3d812f8d0c Fix inline enum (#2393) 2022-03-17 11:52:13 +01:00
Kristian Lein-Mathisen 4954778f68 Improve joystick visualisation in gamepad example again (#2391)
As prior commit, but complete fix for XBox controller and trigger
buttons too.

> The joystick range is a float from -1 through +1. Casting this to int
> yields only three possible values: -1, 0, and 1. This gives a
> misleading joystick placement in the demo.
>
> By casting to int after the multiplication to get pixel values, the
> demo reveals the analog feel of the joystick.
2022-03-14 17:16:09 +01:00
Kristian Lein-Mathisen ec7250ca54 Improve joystick visualisation in gamepad example (#2390)
The joystick range is a float from -1 through +1. Casting this to int
yields only three possible values: -1, 0, and 1. This gives a
misleading joystick placement in the demo.

By casting to int after the multiplication, the demo reveals the
analog feel of the joystick.
2022-03-14 16:00:59 +01:00
Ray d2119848ed REVIEWED: OpenURL() 2022-03-14 15:31:37 +01:00
Antonis Geralis f3b0d7f2fe Add naylib (#2386)
* Add naylib

* Fix license
2022-03-13 22:16:18 +01:00
Guido Bartolucci c3a7bd8c51 Updated Zig bindings to reflect updates to that library (#2385)
* Updated zig bindings info

* Updated raylib-zig license
2022-03-12 21:31:24 +01:00
tixvage 3f01b8a93f Fixed an issue in Makefile when using raygui and physac on unix systems (#2384)
* Fixed an issue when using raygui and physac on unix systems
hash "#" is single-line comment character in bash so echo ignores #include and #define

* tab fix
2022-03-12 21:30:54 +01:00
Ray a5a098c97f Remove space 2022-03-12 21:27:24 +01:00
Komari Spaghetti 8065504aba Simplify build.zig to not require user to specify raylib path (#2383)
We can figure out the source file location based on the location of the
build.zig file. No need to require the library user to specify where
raylib is stored.
2022-03-11 19:04:24 +01:00
Anilforextra cda1324e87 Vector2/Vector3: Add squared distance. (#2376) 2022-03-09 20:05:08 +01:00
Ethan Conneely 43dbe67431 Update parser (#2375)
* Add variable len args support

* Api Regen for 4.1dev
2022-03-08 20:00:09 +01:00
Michael Vetter e9f97e1165 Add repology badge (#2367)
So we can see which distributions package raylib.
And in which version they are.
2022-03-08 19:02:39 +01:00
Marco G. Maia c5d2cc8e66 Update raylib-config.cmake (#2374)
Updated cmake to windows users.
So they can `find_package(raylib [...])` with exported target as raylib instead of ${raylib_LIBRARIES}, etc
2022-03-08 18:58:27 +01:00
megagrump 7584ce6f48 Increase atlas size guesstimate; print warnings if atlas size is too small (#2365) 2022-03-01 11:26:48 +01:00
Chris Warren-Smith 7bbaba38e4 Update BINDINGS.md (#2366)
Update SmallBASIC to 4.1-dev
2022-02-28 14:38:04 +01:00
Ray 7fa75cb24e Removed memset() 2022-02-27 22:32:17 +01:00
Ray ead8003044 Possible fix for #2360 2022-02-25 20:41:18 +01:00
Conifer Coniferoslav 296b57e1f5 Update Swift binding version (#2352)
3.7 -> 4.0
2022-02-22 10:28:30 +01:00
Ray 6e9ec253c8 Support clipboard copy/paste on web 2022-02-20 22:07:52 +01:00
raysan5 937e7b3dd9 REVIEWED: Some functions input parametes that should be const 2022-02-20 20:35:28 +01:00
Antonis Geralis 68bad6986d make const (#2348)
* make const

* make const
2022-02-20 20:12:55 +01:00
DavidLyhedDanielsson 761669272f Fix free camera panning in the wrong direction (#2347) 2022-02-20 19:52:13 +01:00
raysan5 d4382f4a52 Removed trailing spaces 2022-02-18 20:30:46 +01:00
Antonis Geralis 963de06d08 follow style guide (#2346)
* follow style guide

* Update rmodels.c
2022-02-17 00:54:21 +01:00
raysan5 4f2bfc5476 Reviewed bug on FindNearestConnectorMode() 2022-02-15 19:38:28 +01:00
Chris 4815065c47 Update Raylib-cs bindings version (#2343) 2022-02-15 19:35:17 +01:00
Jaedeok Kim b54e9db764 Optimize Vector2Rotate() function (#2340) 2022-02-13 18:43:17 +01:00
megagrump f40eed5adf add premultiplied alpha blend mode (#2342) 2022-02-13 18:42:24 +01:00
Ray 4bc6e0d7de Update rtext.c 2022-02-13 10:47:19 +01:00
Ray 9cf170e6e9 Reviewed makefile to use right shell on right platform 2022-02-13 10:47:09 +01:00
raysan5 8c9a0221a4 Update Makefile 2022-02-12 19:38:14 +01:00
raysan5 2f3fc41c33 Allow setting a custom PLATFORM_SHELL 2022-02-12 19:31:27 +01:00
raysan5 6ef6dbff2d REVIEWED: PLATFORM_OS for PLATFORM_WEB 2022-02-12 19:08:31 +01:00
raysan5 d0008ae8cd REVIEWED: Issue when compiling for PLATFORM_WEB 2022-02-12 18:06:21 +01:00
Peter0x44 dd15531e25 Properly fix make clean under windows (#2341)
* Properly fix make clean under sh.exe

* Ensure make clean works properly under Windows if RAYLIB_RELEASE_PATH is modified
2022-02-12 17:59:48 +01:00
raysan5 ddba8478c5 Revert "Reviewed Makefile clean target to use CMD shell on Windows"
This reverts commit ab47c6401e.
2022-02-12 17:58:38 +01:00
raysan5 ab47c6401e Reviewed Makefile clean target to use CMD shell on Windows
Tested on the following environments:
 - w64devkit.exe
 - Windows 10 cmd
 - Notepad++ NppExec console
2022-02-12 17:37:12 +01:00
Peter0x44 81cced4d83 Fix make clean target failing when shell is not cmd (#2338)
GNU make on Windows first tries to find sh.exe on the path,
and will execute build rules using it if it is present.
The make clean target uses the builtin cmd.exe command del, which
won't work under sh.exe

The reason this is not done for the entire Makefile is because it would
break cross-compilation of raylib.
2022-02-10 20:52:34 +01:00
gtrxAC 30797d3201 Update file names in build scripts (#2339)
* JSON parser: Use array for function params (#2255)

* Parser: follow C convention of type before name

* Update file names in build scripts
2022-02-10 20:51:46 +01:00
Scribe of the Ziggurat 96452637d9 Add BSD support for zig builds (#2332)
- Adds a new OS clause to build.zig for the BSDs
- Tested on my FreeBSD box using https://github.com/Not-Nik/raylib-zig
- All demos build and render just fine.  Nice !
2022-02-09 08:23:14 +01:00
locriacyber 1e436be51d Make audio examples compile with external glfw on Linux (#2329) 2022-02-05 13:33:05 +01:00
iskolbin c895bed5e6 Added defines to parser (#2269)
* added defines to parser

* added value and description for defines in parser

* parser: fixed lua defines output, fixed makefile for raygui, added LONG type for defines

* parser defines: remove postfix for LONG/FLOAT, support for hexadecimal consts, convert hex ints to decimal for JSON output

* removed defines from raylib_apis
2022-02-03 14:56:00 +01:00
Audi Nugraha a0895f1a3c Fix Undefined Symbol _ftelli64 (#2319) 2022-02-03 12:00:33 +01:00
megagrump c54d9cd552 simplify QuaternionInvert (#2324) 2022-01-31 09:39:21 +01:00
Macoy Madson 680cc72d43 Add missing defines to CUSTOMIZE_BUILD block (#2318)
This fixes compilation and linking errors when CUSTOMIZE_BUILD is
ON. Any option wasn't actually applied if it wasn't in this list.

I also added a message which makes it a bit easier to confirm you have
successfully enabled an option.
2022-01-29 19:12:13 +01:00
Macoy Madson 6e9bb7e480 Add missing defines to CUSTOMIZE_BUILD block (#2318)
This fixes compilation and linking errors when CUSTOMIZE_BUILD is
ON. Any option wasn't actually applied if it wasn't in this list.

I also added a message which makes it a bit easier to confirm you have
successfully enabled an option.
2022-01-29 19:11:45 +01:00
raysan5 44d3cee5d1 Minor tweak 2022-01-28 21:25:40 +01:00
Ray d38fe92c3f RENAMED: GetFileSize() to GetFileLength()
`GetFileSize()` conflicts with the infamous `windows.h`
2022-01-28 00:23:28 +01:00
raysan5 0f00c41aad ADDED: GetFileSize() 2022-01-27 14:07:05 +01:00
raysan5 524bf57b74 Update qoi.h 2022-01-26 16:33:38 +01:00
Siddharth Roy e5ee69a0f5 Add DrawTextCodepoints (#2308)
* Add DrawTextCodepoints

* Fixed top comment
2022-01-26 12:55:34 +01:00
Ray 76b6efc827 Support export .jpeg files 2022-01-26 11:30:38 +01:00
raysan5 ebdc34a20e Update minshell.html 2022-01-25 14:04:55 +01:00
Tobias Mock b4e0f7ab08 Update raylib-ocaml to 4.0 (#2305) 2022-01-23 12:22:25 +01:00
Ray b422e407e8 Update rtextures.c 2022-01-22 18:42:44 +01:00
Nikolas 5b8b24c0c5 Fix GetApplicationDirectory on macOS (#2304)
Previously failed to build with an implicit declaration of `_NSGetExecutablePath`.
2022-01-22 17:25:53 +01:00
Roy Qu 45ef46c5e8 fix: material color won't be loaded if there's no texture for that material (#2298) 2022-01-21 12:52:07 +01:00
Philip Shenk dfac74ffa7 updated VSCode project to work with latest raylib makefile and 'working for web' instructions (#2296) 2022-01-21 08:53:25 +01:00
Laurentino Luna 3c359ff4bc Review code conventions for specific defines for GetApplicationDirectory() (#2293)
Unless these imports require to have this format, the code has been adjusted to the conventions
2022-01-18 18:30:19 +01:00
Jeffery Myers bec27a6ebc [CORE] Fixes for GetApplicationDirectory on 32 bit windows builds (#2290)
* Fix a signature error with the windows calls in GetApplicationDirectory for 32 bit builds.

* break is better than loop var to -1
2022-01-17 18:05:48 +01:00
raysan5 61d0c71b3c REVIEWED: example: shapes_top_down_lights 2022-01-16 18:07:11 +01:00
Jeffery Myers 4b998cfd05 [Examples] Top down lights example (#2199)
* Start 2d lights example.

* finish example

* update image.

* Cleanup render textures

* Fixes to handle shadows on edges that are near to the light better.

* tabs

* move to shapes

Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2022-01-16 17:47:17 +01:00
raysan5 15b36e04b2 Review formating 2022-01-16 17:16:04 +01:00
ptarabbia 5ac07122bd Add panning to raudio and update audio_raw_stream example. (#2205)
* Add panning to raudio and update audio_raw_stream example.

* remove pan smoothing, code formatting changes following pull request comments

Co-authored-by: Ray <raysan5@gmail.com>
2022-01-16 12:49:58 +01:00
Ray 48a463cca8 REVIEWED: Vector2Transform(() 2022-01-15 22:19:48 +01:00
Ray 8ee0eb8f36 ADDED: Vector2Transform() 2022-01-15 22:12:58 +01:00
Jeffery Myers f4dea6919a [CORE] Bug and formating fixes for GetApplicatonDir (#2285)
* Fix formating problems with GetApplicationDir.
Don't ever return an empty string

* always return a valid path even if it's ./

* remove the need for the dll and just use the normal GetModuleFileName function
2022-01-14 20:16:25 +01:00
raysan5 f57727995a REVIEWED: rlLoadShaderCode() 2022-01-13 19:05:45 +01:00
Matthew Owens e621efe79f rlLoadShaderCode - set ShaderId variables to RLGL.State.default[VF]ShaderId if repesctive Code is NULL (#2281) 2022-01-13 18:42:44 +01:00
Ray 464026f15c Update rcore.c 2022-01-12 12:00:47 +01:00
Ray a134b8bc6d Update Makefile 2022-01-11 15:39:08 +01:00
Ray b61c9afd04 Update Makefile, simplified 2022-01-11 11:57:26 +01:00
Ray 0416d5ff7b Update Makefile 2022-01-11 11:26:45 +01:00
Ray cabb5518e5 Improve Makefile organization 2022-01-11 11:20:04 +01:00
hartmannathan aaf0175d07 Fix typo in comment: s/simluate/simulate/ (#2277) 2022-01-11 09:04:09 +01:00
Archie 7b7424802f Fixes an error in the spelling of "appearance" (#2276) 2022-01-10 23:55:21 +01:00
Ray 8db56cfc3b Added minimal web shell 2022-01-10 22:31:30 +01:00
Ray 8089ef0f2d Merge branch 'master' of https://github.com/raysan5/raylib 2022-01-10 13:55:04 +01:00
Ray b4e0ed6007 Review formating 2022-01-10 13:54:51 +01:00
Rob Loach c0da80c2b8 cmake: Update CMake project template with docs and web (#2274) 2022-01-10 08:55:32 +01:00
Nikolas a6aa5a1e4c Make zig build functionality available to zig programs (#2271) 2022-01-08 22:13:44 +01:00
hero2002 9d6fcd1710 Fixed Compiling Raylib for android Using cmake (#2270)
* Fixed Compiling Raylib for android Using cmake

* improved the cmake config for android so it don't conflict

* improved the cmake config for android so it don't conflict
2022-01-08 20:14:10 +01:00
Ray 7a159664bc Improved shader loading code 2022-01-08 20:12:03 +01:00
Ray 612c4ad1dc Reviewed possible issue with shaders detaching 2022-01-08 19:55:14 +01:00
Jeffery Myers fbf34f7c0d [CORE] Add a function to return the application directory. (#2256)
* Add a function to return the application directory.

* CI fixes
2022-01-08 19:47:52 +01:00
Ray 549ca669aa Added VS2022 project 2022-01-05 23:40:22 +01:00
Ray f7ed804131 Review parameters description size (not used) 2022-01-05 21:35:01 +01:00
gtrxAC 2e3cfdcc2f JSON parser: Use array for function params (#2255) (#2264)
* JSON parser: Use array for function params (#2255)

* Parser: follow C convention of type before name
2022-01-04 14:06:10 +01:00
Ray 2116a98745 ADDED: ExportFontAsCode() 2022-01-03 20:45:56 +01:00
Ray 62858e11f7 Review tracelogs 2022-01-03 20:45:19 +01:00
Calvin Day 744bbd12a7 Update Raylib-J version/licence info (#2258) 2022-01-03 10:08:53 +01:00
Gerber Lóránt Viktor ba1e91b4d7 Change comment about custom blend modes in rlgl.h (#2260) 2022-01-02 22:50:39 +01:00
Ray 7eb341ccaf WARNING: REVIEWED: A big bug with GetMouseWheelMove() 2022-01-01 17:49:07 +01:00
ArnautDaniel f5a832e770 Update BINDINGS.md (#2257) 2022-01-01 17:18:29 +01:00
raysan5 a940f41b4b Update year to 2022 2021-12-31 20:06:22 +01:00
raysan5 bb875b1db7 Update rcore.c 2021-12-31 18:18:27 +01:00
raysan5 8f2d9838a3 Reviewed fullscreen switch on PLATFORM_WEB
The previous implementation somewhat break the expected behaviour for games and examples when pressing the `Fullscreen` button in the provided `shell.html`.

Just reverted for the moment for further investigation.
2021-12-31 17:46:31 +01:00
Ray 4bb894f171 tweaks 2021-12-31 11:01:43 +01:00
Tushar Singh d91b9171fa [Feature] Added SetWindowOpacity(float opacity) (#2254)
* Added drawing text with shadow

* Added SetWindowOpacity()

* Edited Mis-spell

* Fixed conventions
2021-12-30 13:13:50 +01:00
raysan5 fef5be0bc7 Merge branch 'master' of https://github.com/raysan5/raylib 2021-12-29 19:06:56 +01:00
raysan5 c862c4bdf2 Support CUSTOM_CFLAGS 2021-12-29 19:06:43 +01:00
Ray 79992a8d50 Update linux.yml 2021-12-29 19:05:23 +01:00
Ray be5f36444d Update macos.yml 2021-12-29 19:05:00 +01:00
Ray b1607ad9e7 Update linux.yml 2021-12-29 19:01:20 +01:00
raysan5 e222209732 Reviewed CFLAGS 2021-12-29 18:22:31 +01:00
shivajiva101 0d064b7808 Added: missing / (#2253)
Specify root as the starting point for the linux compiler path
2021-12-29 01:07:30 +01:00
raysan5 c9db9e6bb7 Updated version number to avoid confusions with release 2021-12-28 15:40:26 +01:00
raysan5 803ce9f44b Detected some pixel-errors due to rounding issues on position 2021-12-28 15:39:57 +01:00
Ray 611e54e67e Reviewed makefiles 2021-12-27 19:01:07 +01:00
Ray 5f2bc20191 Update Makefile 2021-12-27 16:49:01 +01:00
Ray 8844ad6f0b Update Makefile 2021-12-27 16:38:11 +01:00
Ray bf0fed8431 Update Makefile 2021-12-27 16:14:58 +01:00
Laurentino Luna 011aebe4b3 Update SPONSORS.md (#2248)
Add catmanl + fix broken redirects
2021-12-27 16:03:35 +01:00
raysan5 423fdb320a Update raudio.c 2021-12-24 19:57:32 +01:00
Antonis Geralis dcc0791502 check not null before accessing by index (#2243) 2021-12-24 19:54:25 +01:00
salotz f66ae2366f fix scopes binding URL (#2240) 2021-12-23 11:12:05 +01:00
Ray 4874c45ebf REVIEWED: ExportWaveAsCode() 2021-12-23 11:02:20 +01:00
Ray 31dd7b95bc Update Makefile.Web 2021-12-23 11:01:52 +01:00
salotz bb014ee61b add the raylib-scopes binding (#2238) 2021-12-22 10:38:39 +01:00
Ray 9e5a9892be REVIEWED: PlaySoundMulti() #2231 2021-12-21 23:57:13 +01:00
raysan5 58f2bf4181 REVIEWED: Export format for float 32bit 2021-12-21 20:32:58 +01:00
raysan5 a7bc5196cc Update dr_wav.h 2021-12-21 20:21:00 +01:00
Damien Pitard bb7b13ef3c fixed cross-compilation from x86-64 (debian buster) to Raspberry Pi (raspbian) (#2233) 2021-12-21 19:03:25 +01:00
Michał KM 87b9ee9183 updated license of raylib-freebasic bindings (#2235) 2021-12-21 14:44:12 +01:00
Uneven Prankster 588de4d095 Re-enable QOI support (#2236)
* Updated QOI to latest version.

* Enable back QOI support!

* Stray extra space! Should be good now.
2021-12-21 14:42:27 +01:00
raysan5 22d0baa896 Review makefiles debug flag 2021-12-21 12:24:03 +01:00
Laurentino Luna dcb0e62095 Remove TODO on Makefile (#2232)
Justification: original comment said the following
"TODO: Add other platforms. Remove sudo requirement, i.e. add USER mode."

For the other platforms part, installing is included on unix-like
systems, so for example Windows doesn't have a path where to install
libraries.

Removing the requirement for sudo is also quite contradictory since
we're writing files to directories which require root. Not sure what the
original commiter meant by USER mode.
2021-12-20 17:04:36 +01:00
Ray 5499388a4c REVIEWED: GenMeshCylinder() #2225 2021-12-19 13:40:55 +01:00
Ray 278c9fa5bd REVIEWED: LoadTextureCubemap() #2224 2021-12-19 13:17:37 +01:00
Ray 76daf6e364 REVIEWED: LoadTextureCubemap() #2223 2021-12-19 13:10:43 +01:00
Ray 05428df667 ADDED NOTE: ImageDraw() does not support f32bit #2222
Added a note for a future improvement
2021-12-19 12:48:06 +01:00
Jeffery Myers f5e951145a Add a comment to LoadFontEx to specify how to get the default character set. (#2221)
Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2021-12-18 19:33:19 +01:00
raysan5 ef5be632fe REVIEWED: ExportMesh() #2220 2021-12-17 20:55:38 +01:00
Tomas S 87fa23beee Fix build results path on Linux and RPi (#2218)
Built files should be put into src/ not into the project root
as it was now on these platforms
2021-12-16 17:10:13 +01:00
Benedek Szilvasy 51c929ef21 Parse struct descriptions (#2214)
* Update struct parser to parse from lines buffer

* Parse struct description

* Fix erroneous comment
2021-12-16 16:34:55 +01:00
Tomas S 60b1f29783 Fix RPi make install (#2217) 2021-12-16 16:29:09 +01:00
ptarabbia 2db44bc34a Turn on interpolation for XM playback (#2216) 2021-12-16 16:28:30 +01:00
ptarabbia 86611e6459 Fix issue #2092 (#2215) 2021-12-16 16:27:31 +01:00
Ray 55d310fcc3 REVIEWED: EscapeBackslashes() in raylib-parser 2021-12-16 14:59:40 +01:00
Benedek Szilvasy fffd78e7c8 Parse enum descriptions and value descriptions (#2208)
* Parse enum descriptions and value descriptions

* Put braces on newline

* Properly escape strings

* Realise that XML doesn't actually need backslash escapes

* Replace FPrintfEscapes with EscapeBackslashes

* Remove #include <stdarg.h>

* Update EscapeBackslashes description
2021-12-16 14:49:17 +01:00
Ray 48918ca5c6 REVIEWED: DrawMesh*() issue #2211 2021-12-16 00:19:41 +01:00
Ray 1653fc5bb5 Update rcore.c 2021-12-16 00:19:09 +01:00
raysan5 0454acaacf REVIEWED: Clear SSBO buffers on loading #2185 2021-12-15 13:09:24 +01:00
Ray 20f4d8c147 Reviewed typo 2021-12-10 11:41:45 +01:00
Ray 7787102573 Remove hardcoded path #2200 2021-12-10 10:42:13 +01:00
Andrea Fontana c0715c1225 Fixed functions Vector2Angle and Vector3Angle (#2203)
* Fixed functions Vector2Angle and Vector3Angle

* typo

* Unrolled everything.
2021-12-09 22:30:52 +01:00
Ray fd0e3a4fdd REVIEWED: GetCodepoint() #2201 2021-12-09 20:13:53 +01:00
peter elliott fe95d82890 Add raylib-guile to BINDINGS.md (#2202) 2021-12-09 20:08:58 +01:00
Ray f09a916587 Update raudio.c 2021-12-08 14:02:54 +01:00
Ray ed1e1f35df REVIEWED: GenImageCellular() #2178 2021-12-08 11:01:41 +01:00
raysan5 7d25480723 REVIEWED: DrawTextureTiled() #2173 2021-12-07 19:06:18 +01:00
raysan5 81240fe960 REVIEWED: vox_loader.h, 64bit issue #2186 2021-12-07 19:00:58 +01:00
Jaedeok Kim 72f3b00b00 Fix Vector2Angle() not working as expected (#2196) 2021-12-07 10:45:36 +01:00
Steven Schveighoffer 3d0b56045a Add raylib-d binding. Also fix some spelling/grammar (#2194) 2021-12-07 00:09:54 +01:00
Ray ef6959ed54 ADDED: raylibVersion symbol #2190 2021-12-06 19:53:09 +01:00
Ray e7f48eb16b Tweaks 2021-12-06 19:08:06 +01:00
HarriP 3cb4ef2599 Fix inverse length in Vector2Normalize (#2189)
Following the pattern in Vector3Normalize.
2021-12-06 19:07:05 +01:00
Steven Schveighoffer fa7337e19c Vector2Angle returns degrees instead of radians, but all other raymath (#2193)
functions use radians, making this awkward to use.
2021-12-06 19:05:28 +01:00
Ray 93f05d851d Update webassembly.yml 2021-12-06 18:37:44 +01:00
Ray c5eaaed873 Update Makefile 2021-12-06 12:09:44 +01:00
Ray c4a62ca1e4 ADDED: Modules info at initialization 2021-12-06 12:02:57 +01:00
Novaleaf 895f5ddd98 raylib-cslo switches to MPL-2.0 (#2187)
from LGPL 2.1
2021-12-05 10:24:35 +01:00
Ray e637ad9d2a Support custom modules inclusion
Allow to choose which modules are compiled with raylib, if some modules are excluded from compilation, required functionality is not available but smaller builds are possible.
2021-12-04 19:56:02 +01:00
Ray 48d4806e53 Update raylib_compile_execute.bat 2021-12-03 15:39:46 +01:00
Ray 930941e85e Added a couple of notes 2021-12-03 00:30:27 +01:00
raysan5 ba8c73a327 Added some reference code to load bones id and weight data for animations 2021-12-02 20:48:12 +01:00
Gunko Vadim d6517f9cd9 Add License to Ray4Laz (#2182) 2021-12-02 19:22:13 +01:00
Ray 3aff6dd63e Update BINDINGS.md 2021-12-02 18:35:56 +01:00
raysan5 6a0d5f6335 Added Licenses to BINDINGS
Only added to updated ones
2021-12-02 18:30:41 +01:00
raysan5 59c4facd90 Disabled QOI image format 2021-12-01 20:56:39 +01:00
Tobias Berger 7c6adc5d97 Update LICENSE.md (#2179)
Fix typo in link
2021-12-01 15:12:56 +01:00
Richard Smith 65e07036a6 update to Jaylib 4.0 in BINDINGS.md (#2177) 2021-11-30 13:13:12 +01:00
Ray d1b8d4f2c7 REVIEWED: Updated QOI to first official release 2021-11-28 01:22:56 +01:00
Anders Holmberg 71f2e2b1e4 Add macos support to zig build system (#2175) 2021-11-27 10:46:18 +01:00
Ray 2b2141902b ADDED: Support for QOI image format 2021-11-27 10:35:00 +01:00
red thing 49a5547386 dray has been updated to raylib v4.0! (#2171) 2021-11-25 09:11:40 +01:00
Ray 9088135b49 REVIEWED: Formating and comments 2021-11-25 01:07:54 +01:00
Arnaud Valensi b248a00c90 Fix scissor on macos (#2170)
* Expose GetRenderWidth and GetRenderHeight functions

* Fix scissor on macos

* Fix typo
2021-11-25 01:03:20 +01:00
Novaleaf e60aa8e935 add raylib-cslo to bindings.md (#2169) 2021-11-23 22:21:39 +01:00
Novaleaf c5fc7c7640 allow physac to be built as a shared library (#2168)
if `BUILD_LIBTYPE_SHARED` is defined allow build as a shared dll
2021-11-23 22:21:01 +01:00
Dmitry Matveyev 460eba53c7 Update NimraylibNow!'s supported Raylib version (#2166) 2021-11-23 08:57:22 +01:00
めぐみ発動機 (isVowel / GreenWing) 924b1c7b0c fixed typo: aproximation to approximation (#2164) 2021-11-21 18:06:52 +01:00
めぐみ発動機 (isVowel / GreenWing) 478b70e53e fixed typo: aproximation to approximation (#2163) 2021-11-21 18:06:20 +01:00
Ratul Krisna 4d3c79f91f Updated hxRaylib to 4.0 (#2158) 2021-11-19 15:42:18 +01:00
Lorenzo 73bded3b0c Move raylib-v7 to list of unmaintained bindings (#2156)
raylib-v7 is no longer being maintained as per their README.
2021-11-18 21:22:14 +01:00
raysan5 7755cd0019 Tweak to minimize buffer overflow possibility 2021-11-18 10:25:28 +01:00
Jochum van der Ploeg 3a9f089018 Added dart-raylib to BINDINGS.md (#2149) 2021-11-17 22:13:39 +01:00
WilledgeR e24443bbbc Fixes CC while compiling for ANDROID_ARCH x86 (#2148)
* Override CC while compiling for ANDROID_ARCH x86

* REfix Override CC while compiling
2021-11-17 20:45:07 +01:00
raysan5 03f55d8f9e Minor tweaks 2021-11-17 13:36:28 +01:00
Ray be371ebf99 REVIEWED: LoadTextureFromImage()
Allow texture loading with no data transfer (in case image.data = NULL)
2021-11-15 11:41:05 +01:00
Ray b7bf220598 REVIEWED: rlUpdateTexture() 2021-11-15 10:25:24 +01:00
Ray ed125f27b0 Merge branch 'master' of https://github.com/raysan5/raylib 2021-11-15 10:14:03 +01:00
Ray 5a6aa52a7c REVIEWED: ExportMesh() #2138 2021-11-15 10:14:00 +01:00
Ronnie Holm 6342cf103a Fix memory leak in parser (#2136) 2021-11-13 18:40:35 +01:00
Milan Nikolic 864e3ee9f3 Update BINDINGS.md (#2131) 2021-11-11 19:37:11 +01:00
Ray 2c38dad214 Merge branch 'master' of https://github.com/raysan5/raylib 2021-11-11 18:26:28 +01:00
Ray c8f029dba9 Expose MAX_KEYBOARD_KEYS and MAX_MOUSE_BUTTONS #2127 2021-11-11 18:26:25 +01:00
iskolbin 802a1a1529 added LUA output format for parser; added Makefile for raylib_parser; added raylib_api.lua parser result; added raylib_parser binary to gitignore (#2129) 2021-11-11 18:12:30 +01:00
Ian Rash fc268129ef Update BINDINGS.md (#2130)
I just updated it to 4.0. :)
2021-11-11 18:09:50 +01:00
lib-omar 91135c8799 Fixed file/alloc limitation in GetDirectoryFiles() (#2126)
MAX_DIRECTORY_FILES macro removed.
ClearDirectoryFiles() tweaked to reflect changes.
2021-11-10 19:52:30 +01:00
Ray da7e0ba9d9 ouch 2021-11-10 13:37:50 +01:00
Ray c82390e3f1 Reviewed descriptions and notes 2021-11-10 13:31:42 +01:00
Ray 4853082a4f REVIEWED: DrawRectanglePro(), support TRIANGLES drawing 2021-11-10 13:28:43 +01:00
Ray f6180efd35 REVIEWED: CheckCollision*() consistency 2021-11-10 13:28:05 +01:00
Ray 7158c80448 tweak 2021-11-10 13:26:50 +01:00
Laurentino Luna 15fffa12a6 Update parser files (#2125) 2021-11-10 00:30:21 +01:00
Uneven Prankster 35cbacc68b Allow GL4.3 capabilities to be shown (#2124)
Now that 4.3 was added this can be enabled with the compile flag.
2021-11-09 15:24:39 +01:00
Ray 44ba3a50ba Updated ODIN binding 2021-11-09 13:29:56 +01:00
Ray 14e4992d73 REVIEWED: rlGetCompressedFormatName() 2021-11-09 11:53:18 +01:00
Ray 21ec8c38ae Review variables initialization
- All variables are initialized on declaration, some arrays were not properly initialized
 - Static array buffers require memset() for re-initialization on every function call
2021-11-09 11:49:03 +01:00
Luke Krasnoff 8ec5b2dc2f Protect TextIsEqual from NULLs (#2121) 2021-11-09 11:37:55 +01:00
Calvin Day 3f595fda26 Update BINDINGS.md (#2119)
Raylib-J currently targets 3,7 and is still in active development
2021-11-08 18:43:33 +01:00
Ray 42f5903b91 Update BINDINGS.md 2021-11-07 20:24:48 +01:00
Michał KM bb87d2ae82 Update BINDINGS.md (#2116) 2021-11-07 17:17:02 +01:00
Kai 43c8c8ec34 README.md: HTTP => HTTPS (#2114) 2021-11-07 16:42:45 +01:00
AKDev 9cb8934688 Updated the version of nelua-raylib to 4.0 (#2113) 2021-11-07 14:57:47 +01:00
Ray f67947325b Update README.md 2021-11-07 12:56:34 +01:00
Ray 1bfdc468da Update BINDINGS.md 2021-11-07 11:53:03 +01:00
Ratul Krisna f78b666c26 Changed hxRaylib version to 4.0-dev (#2112) 2021-11-07 11:51:39 +01:00
KonPet 34f9f51835 Fix Render Batch Limit not being checked in DrawRectangleGradientEx() (#2111) 2021-11-07 11:50:15 +01:00
Richard Smith 9e6133bb09 update BINDINGS.md (#2108) 2021-11-06 17:35:05 +01:00
irishgreencitrus bf6dac5fa3 Updated the raylib.v binding to the latest version (#2103) 2021-11-05 21:01:54 +01:00
mandar1jn 2021f09db4 added the guide for working with raylib on Chrome OS to the readme (#2101) 2021-11-05 15:30:18 +01:00
Astie Teddy 6055e44518 Update BINDINGS.md (#2100)
https://github.com/TSnake41/raylib-lua/releases/tag/v4.0a
2021-11-05 14:38:08 +01:00
Gunko Vadim db0cc3c036 Update BINDINGS.md (#2099) 2021-11-05 08:08:40 +01:00
Rob Loach 87a4ee52b9 BINDINGS: raylib-cpp now targets raylib 4.0.0 (#2098)
https://github.com/RobLoach/raylib-cpp/releases/tag/v4.0.0
2021-11-05 08:08:09 +01:00
o3o 7bf8d6bc98 Update BINDINGS.md (#2097) 2021-11-05 00:02:01 +01:00
Ray a56b8cd2b7 Corrected typo 2021-11-04 20:44:47 +01:00
Ray 0851960397 Update android.yml 2021-11-04 20:08:45 +01:00
Ray a31784759d Update linux.yml 2021-11-04 20:08:25 +01:00
Ray 453a5b49a0 Update webassembly.yml 2021-11-04 20:07:59 +01:00
Ray e7f24ade0b Update macos.yml 2021-11-04 20:07:32 +01:00
Ray e14c6441ce Add some extra libraries to release packages 2021-11-04 19:46:17 +01:00
Ray d18f3fca30 Reviewed broken link 2021-11-03 14:12:48 +01:00
raysan5 7f4ae653f3 Review display output order 2021-11-03 13:24:56 +01:00
raysan5 703df42586 Avoid duplicate output info on PLATFORM_RPI 2021-11-03 12:55:46 +01:00
Ray 13376de059 Reviewed scripts 2021-11-02 20:58:15 +01:00
Ray 677f5b0795 Review Notepad++ scripts for the supported compilers 2021-11-02 20:40:33 +01:00
Ray d32bbabe0e Update SPONSORS.md 2021-11-02 19:16:46 +01:00
Ray c3d32c156c REMOVED: Network examples
They were not working
2021-11-02 18:59:52 +01:00
Ray 1aaa55c38e Update Makefile 2021-11-02 18:54:01 +01:00
Ray de0fca51a8 Updated scripts 2021-11-02 18:49:53 +01:00
Ray 5e3db0aa83 Updated some scripts paths
NOTE: New raylib release installer uses `w64devkit`, smaller and more updated than regular `mingw64-w64` default project. Paths are updated properly.
2021-11-02 18:40:45 +01:00
Ray fadef24b62 Update ROADMAP.md 2021-11-02 16:46:49 +01:00
Ray 689a534c66 Update ROADMAP.md 2021-11-02 16:45:21 +01:00
Ray 9d93ca6fc8 Update ROADMAP.md 2021-11-02 16:42:00 +01:00
Ray 86d3e68d55 Add proper license to raylib-parser 2021-11-02 12:03:42 +01:00
Ray 9e17134949 Update HISTORY.md 2021-11-02 12:01:08 +01:00
Ray 290d68c11e Update README.md 2021-11-02 12:00:23 +01:00
Ray 2c8bc8ad47 Updated for the upcoming release! 2021-11-02 11:52:04 +01:00
AKDev de070ba25f added another odin binding (#2094)
You can change the name to whatever you want to because the binding doesn't have a name.
2021-11-02 11:25:14 +01:00
Ray e930ad3102 Reviewed spelling mistake 2021-11-01 23:06:26 +01:00
Ray 2fe488a71c Update version in CMake 2021-11-01 23:05:23 +01:00
Ray 0af2c139e2 Update CHANGELOG 2021-11-01 21:02:47 +01:00
Ray 191e8cf02b Update HISTORY.md 2021-11-01 21:02:23 +01:00
Ray 8737d697dc Update HISTORY.md 2021-11-01 21:00:52 +01:00
Ray 765a31597a Update CHANGELOG 2021-11-01 20:20:12 +01:00
raysan5 70a2118c49 REMOVED: rnet.h
It was not working properly... recommended to use `nbnet` instead.
2021-11-01 20:08:14 +01:00
raysan5 b02e737074 Update raygui.h 2021-11-01 20:07:22 +01:00
Ray fdb7cd0587 Update HISTORY.md 2021-11-01 19:45:05 +01:00
raysan5 bba035c20c Minor type tweak 2021-11-01 19:14:55 +01:00
Ray be361ed3dc Update README.md 2021-11-01 11:52:15 +01:00
Ray 8c0f9c7f5a Update miniaudio.h 2021-11-01 11:37:47 +01:00
Ray 8abba960c7 Review comments 2021-11-01 11:26:13 +01:00
Ray 8649032428 Update comment 2021-11-01 01:08:55 +01:00
Ray 6e8387468f Update CHANGELOG 2021-10-31 23:56:15 +01:00
Ray 27987f3fe6 Update README.md 2021-10-31 22:59:34 +01:00
Ray ef32377336 Updated Notepad++ raylib intellisense functions 2021-10-31 18:12:50 +01:00
AKDev a2b69c0905 removed raylib-d (#2091)
Because the repository and the author's GitHub profile doesn't exist anymore
2021-10-31 18:09:53 +01:00
Ray 1fac09d0f4 REVIEWED: example: Compute shader Game-of-life 2021-10-31 12:28:04 +01:00
Astie Teddy f090f5444c Add Conway's Game of Life compute shader example. (#2088)
* Add Conway's Game of Life compute shader example.

* Fix various shaders problems, and tune command buffer size.

* Various coding convention changes.
2021-10-31 11:46:38 +01:00
Peter0x44 2bb4d36c43 Add missing file extensions for drag-and-drop support (#2090) 2021-10-30 23:43:07 +02:00
Ray b7240d6a36 Update raygui.h 2021-10-27 11:25:24 +02:00
Ray 65076464d5 REVIEWED: KeyCallback()
Register keys independently of the actions
2021-10-26 22:27:18 +02:00
Ray 72758de6ea Reviewed warnings 2021-10-26 22:26:28 +02:00
Ray 25642cff36 Update comments for OpenGL 4.3 2021-10-26 22:23:16 +02:00
Ray cd61463d23 Update README.md 2021-10-26 09:19:17 +02:00
Ray 0171bdfb9c Update raylib.pc.in 2021-10-26 09:13:30 +02:00
Jeffery Myers daeccd03ac Fix VC warnings for examples (#2085) 2021-10-25 10:21:16 +02:00
Jeffery Myers 086f76ba7a Fix warnings in raylib build (#2084) 2021-10-25 10:18:42 +02:00
mandar1jn e5cdfab97d made it so the cmake workflow runs on cmake related changes (#2083) 2021-10-25 02:05:11 +02:00
mandar1jn affb707dd9 fixing the library so the workflows compile (#2082) 2021-10-24 18:24:01 +02:00
mandar1jn 4c497779a2 Updated workflow files (#2079)
* Updated workflow files

* added the manual trigger to the android workflow
2021-10-24 17:33:21 +02:00
TheSergey496 08441e8b2d When one of the colliding lines is vertical or horizontal, not all collisions were correctly detected due to floating point error. (#2081) 2021-10-24 17:31:13 +02:00
Ray d02310e8ce Update README.md 2021-10-23 20:23:16 +02:00
raysan5 62965aa6d7 Comments tweaks 2021-10-23 14:17:26 +02:00
raysan5 04a4efb591 Added some comments on LoadGLTF() 2021-10-23 14:00:05 +02:00
raysan5 c4f0e80895 REVIEWED: Size of bones id supported, max 255 bones per mesh 2021-10-23 13:59:20 +02:00
raysan5 ebee8ba3bb REVIEWED: LoadGLTF() #2075 2021-10-23 11:42:02 +02:00
mausimus 8f5bd3e185 web: clear resizedLastFrame (#2077) 2021-10-23 10:52:36 +02:00
Richard Smith fcc6a61d9e replace hardcoded number of mouse buttons with MAX_MOUSE_BUTTONS (#2076) 2021-10-23 10:52:04 +02:00
Ray ae13f438ba Update Makefile.Web 2021-10-22 23:08:42 +02:00
raysan5 18db2c4f01 REVIEWED: LoadGLTF()
Reorganized code and added some feature and listed restrictions. Some gltf models do not work yet.
2021-10-22 21:27:11 +02:00
raysan5 1fd8052527 Update raylib.vcxproj 2021-10-22 21:24:39 +02:00
raysan5 6ce38e599a Remove big asset 2021-10-22 21:24:26 +02:00
raysan5 83b6cd00c6 Reviewed VS2019 projects 2021-10-22 15:41:28 +02:00
raysan5 1883343944 Update core_input_gamepad.c 2021-10-22 15:04:31 +02:00
raysan5 ebad28d831 REVIEWED: gltf models loading, reverted to a previous version (with some tweaks) 2021-10-22 14:53:11 +02:00
raysan5 befdb5963e REMOVED: IsGamepadName()
This function is not required, users can check it with `GetGamepadName()`
2021-10-22 12:21:31 +02:00
raysan5 83cd22ee5a Minor tweaks 2021-10-22 12:20:42 +02:00
raysan5 dd6e006d78 Reviewed multitouch example #1988 2021-10-22 11:53:47 +02:00
Ray cbeb29d9d1 Update webassembly.yml 2021-10-21 22:40:13 +02:00
Ray 317db34059 Reviewed to support raygui and physac on building 2021-10-21 21:17:25 +02:00
Ray 1d61be5804 Merge branch 'master' of https://github.com/raysan5/raylib 2021-10-21 21:09:49 +02:00
Ray 13bb656a91 Update Makefile 2021-10-21 21:09:40 +02:00
Ray 16f5a04983 Update webassembly.yml 2021-10-21 21:08:28 +02:00
Ray 9afda9359b Reviewed physac building 2021-10-21 21:04:28 +02:00
Ray 2d82788e42 Reviewed uniform name 2021-10-20 11:55:00 +02:00
Ray 5761bf7e19 Merge branch 'master' of https://github.com/raysan5/raylib 2021-10-20 11:40:59 +02:00
Ray fba117478d Update Makefile.Web 2021-10-20 11:40:46 +02:00
Richard Smith 8e599908d9 Re-write Code::Blocks template to work on Linux and Macos (#2073)
* update code::blocks example to support linux

* add macos support

* update screenshot

* update templates readme
2021-10-19 19:50:21 +02:00
Raffaele ae7127232d Add D bindings to Raylib (#2072)
* Added the bindings for Scheme48.

* Add D bindings to Raylib
2021-10-19 15:41:49 +02:00
raysan5 2e151408bb REVIEWED: models_yaw_pitch_roll 2021-10-19 14:58:04 +02:00
raysan5 fec0ce34c5 Remove trailing spaces 2021-10-19 14:57:12 +02:00
raysan5 719c1551cc Reviewed latest PR formatting and details 2021-10-19 13:30:23 +02:00
warzes 9f2ff3e4d6 Support create OpenGL debug context in OpenGL 4.3 (#2068)
* - support create OpenGL debug context in OpenGL 4.3

* - additional events in debug message
- fixed glEnable(GL_DEBUG_OUTPUT)

* Reviewed OpenGL Debug Context
2021-10-19 12:43:27 +02:00
procfxgen 963021d393 VS2019 solution update (#2071)
* new models_magicavoxel_loading example

* Portable header-only file "magicavoxel_loader.h" for MagicaVoxel loader example.

* models_magicavoxel_loading example added to CMakeLists.txt and Makefile

* fix models_magicavoxel_loading example for linux.

* * vox_loader into "src/external/vox_loader.h"
 * vox file support for "models.c"
 * updated example "models/models_magicavoxel_loading.c"

* * Fix Vox_FreeArrays (removed memory leak)

* * removed magicavoxel_loader.h

* * Revert vs2019 solution

* * vox_loader.h -> Support custom memory allocators
* vox_loader.h -> Reverse Y<>Z for left to right handed system
* models/models_magicavoxel_loading.c -> fix model center

* * vox_loader.h -> Removed Raylib dependencies

* * Changed Vox_LoadFileName to Vox_LoadFromMemory

* VS2019 models_mesh_magicavoxel_loading.vcxproj added

* vs2019 project rename models_loading_vox
2021-10-19 10:50:14 +02:00
Ray 7763ccd8ad Resync .obj models! gitignore was ignoring them! 2021-10-18 23:17:37 +02:00
Jarosław Jaros d8e0b2e27c Allow to run any file (#2069) 2021-10-18 22:00:54 +02:00
raysan5 6ac3043e88 WARNING: REMOVED: glTF loading
Actually, it was broken and it that code has no maintainer.
2021-10-18 14:11:56 +02:00
raysan5 2ec8ce649a ADDED: EncodeDataBase64() and DecodeDataBase64() 2021-10-18 14:10:51 +02:00
raysan5 bc47d36e90 Merge branch 'master' of https://github.com/raysan5/raylib 2021-10-18 13:26:07 +02:00
raysan5 1c9093fd24 Avoid GRAPHICS_API_OPENGL_* defines
Those defines are only used inside `rlgl` module
2021-10-18 13:25:59 +02:00
Ray 0543f897a9 Update README.md 2021-10-18 13:24:44 +02:00
raysan5 b28e353626 Reviewed glDisableVertexAttribArray() issue #2068 2021-10-18 13:22:52 +02:00
raysan5 a3f9ba8704 Removed useless GL calls #2068 2021-10-18 13:16:07 +02:00
Ray ccf4329792 Review comments 2021-10-18 00:23:26 +02:00
Uneven Prankster a6fb2dafc6 Fix rlLoadComputeShaderProgram define (#2067)
Now uses correct version.
2021-10-17 23:11:42 +02:00
raysan5 7a16834124 UPDATE: Officially support OpenGL 4.3 2021-10-17 21:41:19 +02:00
raysan5 628e6e52f3 Update examples screenshots 2021-10-17 21:39:52 +02:00
raysan5 f437f7b405 Reviewed makefile and examples building 2021-10-17 21:00:52 +02:00
raysan5 cf12992b6a Remove trailing spaces 2021-10-17 21:00:20 +02:00
raysan5 67a1e84859 Merge branch 'master' of https://github.com/raysan5/raylib 2021-10-17 19:10:48 +02:00
raysan5 6243466770 Create Makefile.Web 2021-10-17 19:10:33 +02:00
raysan5 0f8caeb186 Added new examples to Makefile 2021-10-17 19:10:28 +02:00
raysan5 c20df9aa47 Reviewed examples 2021-10-17 19:10:09 +02:00
Ray c41e0f0c45 Update CHANGELOG 2021-10-17 19:07:29 +02:00
Sage Hane 16d015d81e build.zig: Use addCSourceFiles (#2066) 2021-10-17 19:04:08 +02:00
warzes d47d7c0001 Fixing the error of loading VOX models. (#2065)
* - Fixing the error of loading VOX models.

* - fixed spaces
2021-10-17 10:22:58 +02:00
michaelfiber c87e91d27a Update SetupViewport so that it doesn't subtract offset from render dimensions when calling rlViewport (#2064)
Co-authored-by: Michael <michael@cubeofb.org>
2021-10-17 10:21:51 +02:00
Ray 99f6707e2c Support OpenGL 4.3
- Support Compute Shaders by rlgl API
 - Support SSBO by rlgl API
2021-10-16 23:49:31 +02:00
Ray e36dc01b91 Support GRAPHICS_API_OPENGL_43 2021-10-16 23:39:21 +02:00
Ray 8523d13683 Update rlgl.h 2021-10-16 23:30:30 +02:00
Astie Teddy dba29e4405 Compute shaders support (#2061)
* Add basic compute shader and ssbo support in rlgl.

* Add rlBindImageTexture (untested), now requires SUPPORT_COMPILE_SHADERS

* Delete glad.c

* Delete glad.h

* Delete khrplatform.h

* Revert to previous glad.h

* Remove "glad.c"

Co-authored-by: Ray <raysan5@gmail.com>
2021-10-16 23:26:25 +02:00
Ray 0aefe256d0 REVIEWED: rlLoadDrawQuad() description #2058 2021-10-16 22:39:22 +02:00
Ray 1b793e76dc Reviewed memory usage 2021-10-16 22:36:47 +02:00
Ray 226c0e362c Merge branch 'master' of https://github.com/raysan5/raylib 2021-10-15 11:25:28 +02:00
Ray 84edd22612 Reviewed unsigned int issue (discussion #2054) 2021-10-15 11:25:17 +02:00
raysan5 2a6bd973bd Review some comments 2021-10-14 15:38:50 +02:00
raysan5 d7266ea8f3 Merge branch 'master' of https://github.com/raysan5/raylib 2021-10-14 13:41:55 +02:00
raysan5 ef858b0dbb Review examples 2021-10-14 13:37:22 +02:00
Ryan Roden-Corrent 588131c9d5 Add zig buildfile for examples. (#2051)
* Add zig buildfile for examples.

- `zig build` to compile all examples
- `zig build [module]` to compile all examples for a module (e.g. `zig build core`)
- `zig build [example]` to compile _and run_ a particular example (e.g. `zig build core_basic_window`)

You can use `-Dtarget=` to compile for a non-native platform, such as
`zig build -Dtarget=x86_64-windows-gnu` to compile from Linux to
Windows.

* Skip pthread example on Windows.

* Select appropriate lib file based on target.
2021-10-14 13:24:00 +02:00
Ray 52c1a4e7d0 Update SPONSORS.md 2021-10-14 12:45:41 +02:00
Ray f9c8e31ed7 Update SPONSORS.md 2021-10-14 12:30:46 +02:00
Ray 9ac5a96408 Update rmodels.c 2021-10-14 10:52:24 +02:00
Ray 8a5bc933de Starting to review glTF loading -WIP- 2021-10-14 10:43:29 +02:00
Ray 3e604a8645 Remove trailing spaces 2021-10-14 00:11:37 +02:00
Ray 83b3478fe4 Reviewed some TODO 2021-10-13 23:45:57 +02:00
raysan5 51b147cd32 Update models_loading_vox.c 2021-10-13 21:08:58 +02:00
raysan5 4390d3a122 Avoid raylib dependency 2021-10-13 20:47:57 +02:00
raysan5 a77afd5c8f Reviewed some MSVC warnings 2021-10-13 20:47:42 +02:00
raysan5 32c9d411b2 REVIEWED LoadVOX() -WIP-
It seems vox loader is not working properly...
2021-10-13 20:28:58 +02:00
raysan5 1350361f58 Reviewed formatting 2021-10-13 19:34:37 +02:00
Horrowind e545286369 Fix issue with empty cylinder (#2050)
* Add DrawCylinderEx and DrawCylinderWiresEx

* Modify examples/models/models_geometric_shapes.c to show the
usage of DrawCylinder(Wires)Ex

* Simplified DrawCylinder and DrawCylinderWires to use the -Ex versions.

* This reverts commits f49b2598dd and
4542b32e4e.

* Fixed formatting.
Renamed base_angle to baseAngle.
Remove most of the raymath.h calls.

* Added check for empty cylinder.

* Added check for empty cylinder.

* Fix bug.

Co-authored-by: Horrowind <you@example.com>
2021-10-13 19:32:30 +02:00
raysan5 942731cc22 REVIEWED: macOS does not require GLAD library #2052
It directly uses the libraries provided by the system
2021-10-13 19:29:29 +02:00
raysan5 4e88160e78 Update raylib.h 2021-10-13 19:22:47 +02:00
Ray a1db0220a1 REVIEWED: LoadFontFromImage()
Avoid crash on wrong sprite font
2021-10-12 23:00:00 +02:00
raysan5 f9d4601057 Create LICENSE 2021-10-12 21:26:41 +02:00
raysan5 f1659d78d3 Reviewed models examples paths 2021-10-12 21:01:49 +02:00
raysan5 007e840be1 Remove VS2019 solution projects 2021-10-12 20:27:03 +02:00
raysan5 d92531b81d Rename examples for consistency 2021-10-12 20:23:59 +02:00
raysan5 670eab8b17 Review comments 2021-10-12 20:23:46 +02:00
raysan5 252bd22738 Merge branch 'master' of https://github.com/raysan5/raylib 2021-10-12 20:22:12 +02:00
raysan5 0b0711027a Remove unimplemented function 2021-10-12 20:21:56 +02:00
Ray e168c6dd81 Update CHANGELOG 2021-10-12 19:50:51 +02:00
Horrowind 526e68afa8 Add DrawCylinder(Wires)Ex (#2049)
* Add DrawCylinderEx and DrawCylinderWiresEx

* Modify examples/models/models_geometric_shapes.c to show the
usage of DrawCylinder(Wires)Ex

* Simplified DrawCylinder and DrawCylinderWires to use the -Ex versions.

* This reverts commits f49b2598dd and
4542b32e4e.

* Fixed formatting.
Renamed base_angle to baseAngle.
Remove most of the raymath.h calls.

Co-authored-by: Horrowind <you@example.com>
2021-10-12 19:36:06 +02:00
raysan5 1b91ac0b0d REVIEWED: EXAMPLE: shaders_shapes_outline
Removed unneeded resources to use raylib ones.
2021-10-12 13:36:31 +02:00
raysan5 599d6e810f REVIEWED: models resources structure 2021-10-12 12:47:50 +02:00
raysan5 75b5cc0084 REMOVED: EXAMPLE: models_gltf_animation 2021-10-12 12:47:10 +02:00
raysan5 9a568654be REMOVED: EXAMPLE: models_material_pbr 2021-10-12 12:46:41 +02:00
raysan5 4a1bd12e2d REVIEWED: DrawCubeTextureRec() formatting 2021-10-12 12:08:12 +02:00
Ray 282ec9bb76 Formatting tweak 2021-10-10 23:48:16 +02:00
Ray a91f61262e Review RLAPI to avoid warnings 2021-10-10 23:24:05 +02:00
Ray f8719e7ec3 Reviewed latest PR formatting 2021-10-10 22:38:58 +02:00
Arnaud Valensi 7c36f3f6b8 Fix dpi issues (#1987) 2021-10-10 22:34:56 +02:00
Jeffery Myers 3d6d5558c9 Add CheckCollisionPointLine to the header, it appears to have been missed (#2042) 2021-10-10 17:06:15 +02:00
Raffaele a39a44c12f Added the bindings for Scheme48. (#2043) 2021-10-10 17:05:26 +02:00
Jeffery Myers 60bedb4f87 [Documentation] Move older and abandoned bindings to new section at the end of the file (#2040)
* Move older and abandoned bindings to new section at the end of the file

* cleanup

* raylib forever is auto
2021-10-10 00:26:15 +02:00
Jeffery Myers 62554db48d Add missing #endif to windows API defines (#2038) 2021-10-08 19:12:21 +02:00
Ray 94650f0def Simplified RLAPI preprocessor branching 2021-10-08 17:22:58 +02:00
Jeffery Myers 33ed452439 Fix dll exports so that raylib builds in visual studio again. (#2037) 2021-10-07 20:17:45 +02:00
Ray bb2763cc1f Update models_rlgl_solar_system.c 2021-10-07 16:08:39 +02:00
raysan5 3e71232a04 WARNING: BREAKING: REMOVED: GenImagePerlinNoise()
raylib was using `stb_perlin.h` library to generate perlin noise, it seems that recently this library has been flagged as it could be infringing some algorythm patent. For security, it has been removed from raylib.
2021-10-06 21:20:36 +02:00
raysan5 700d448d75 Updated external libraries 2021-10-06 21:13:17 +02:00
raysan5 8722ff7043 REVIEWED: RLGL.State.vertexCounter (See detailed comment)
`RLGL.State.vertexCounter` is a generic counter and it's reused for all `rlRenderBatch`, actually, once render batch is filled, required vertex count is provided through the draw calls, so, the total accumulated count of vertices is not directly registered inside the rlRenderBatch.

`RLGL.State.vertexCounter` keeps that count but one possible improvement(?) could be moving the `vertexCounter` inside `rlRenderBatch` to always keep a register of the total accumulated vertices in that batch (despite that info is provided by the accumulated `draws[i].vertexCount`.

Simplifying, `RLGL.State.vertexCounter = SUM(draws[i].vertexCount)`

The decision to move the counter out of `rlVertexBuffer` is to keep only the data that I think should belong to `rlVertexBuffer` and make it more generic, aligned with raylib `Mesh` structure.

The decision to not add it to `rlRenderBatch` is because it could contain multiple `rlVertexBuffer` and it would be confusing (because it would only register the count of the last filled one).
2021-10-06 11:44:57 +02:00
Ray 8d7f97ee04 Remove trailing spaces 2021-10-06 01:20:46 +02:00
Ray 9a4fb25285 REDESIGNED: Simplify vertex data recording
Instead of registering vertex texcoords and colors on every call, we keep the last defined value and we record everything on `glVertex*()`. Actually that behavior is aligned with OpenGL 1.1 standard.
2021-10-06 01:17:20 +02:00
raysan5 7439c7547b Review functions specifiers 2021-10-05 19:20:21 +02:00
raysan5 c8b16d72e2 Merge branch 'master' of https://github.com/raysan5/raylib 2021-10-05 18:33:53 +02:00
raysan5 b972b8d324 REVIEWED: API functions specifiers 2021-10-05 18:33:41 +02:00
AKDev 67de7c4483 added nelua-raylib and removed raylib-nelua (#2033)
removed raylib-nelua because it's the same as nelua-raylib but with some significant improvements 😸
2021-10-05 16:44:33 +02:00
Ray 9f4a839853 Update CHANGELOG 2021-10-04 10:44:32 +02:00
mausimus 6541895901 Revert "reset resizedLastFrame on web platform (#2020)" (#2032) 2021-10-04 09:47:41 +02:00
tomarigr 5d8c477d12 [rcore] fix rpi4 Failed to get DRM resources (#2031)
* [rcore] fix rpi4 Failed to get DRM resources

card1 is not always the the correct card to use on rpi4
rpi os finds the correct card and links it to /dev/dri/by-path/platform-gpu-card during boot.
this fix makes sure that we always point to the correct card on rpi4

* Update rcore.c
2021-10-04 01:59:59 +02:00
Ray 79f36799e7 REVIEWED: Avoid raymath dependency
Still, it depends on Matrix type... rcamera module should be completely reviewed...
2021-10-03 14:08:21 +02:00
Ray 369cb0a3c5 Format tweak 2021-10-03 13:51:53 +02:00
Ray 9b3d74db6b ADDED: GetImageColor() #2024 2021-10-03 12:55:52 +02:00
Ray 92417c4485 Update raylib.h 2021-10-03 12:33:40 +02:00
Ray 22345ff62a Minor format tweak 2021-10-03 12:17:15 +02:00
SAOMDVN 3fc4a4c974 Added DrawLineBezierCubic() (#2021)
Co-authored-by: SAOMDVN <saomdvn@users.noreply.github.com>
2021-10-03 12:15:56 +02:00
Ray 03a88678da Update core_basic_window.c 2021-10-03 12:14:31 +02:00
Dennis E. Hamilton f60e0e6c94 Tidying the core_basic_window.c in projects/scripts (#2025)
* Match build-windows.bat changes

The location for manual setting of the vcvarsall.bat location moved to line 38 in the latest change.

* Update flags for clean x64/x86 building

std:c11 is required for initialization features used in raylib.  UTF-8 for consistency in contemporary systems.  /W3 gets rid of puzzling slack byte and linker in-lining warnings.  /sdl for some insecure library usages in the user code that beginners should learn about early.

* 2021-10-01 core_basic_windows.c adjustment

 1. The press F6 message and the placement of the compiled executable statement are incorrect for the scripts case.
 2. <raylib.h> because "raylib.h" is meaningful only when compiling inside raylib/src/ folder.
 3. main(void) to get rid of a novice-confusing warning.
2021-10-03 12:13:46 +02:00
Laurentino Luna 9fce26bb06 Supress most warnings on rmodels.c (#2029)
* Supress most warnings on rmodels.c

NOTE: unused symbols have been deleted and the following report will show in what location they were previously.

Unused symbols:
- ArrayInt - vox_loader.h: line 84
- initArrayInt - vox_loader.h: line 168
- insertArrayInt - vox_loader.h: line 175
- freeArrayInt - vox_loader.h: line 186
- offsetX, offsetY, offsetZ - vox_loader.h: line 610
- chunkTotalChildSize - vox_loader.h: line 623

Other warnings:
- initialization discards 'const' qualifier - vox_loader.h: line 572
- incompatible types for VoxVector3 and Vector3 - rmodels.c: line 5748
- incompatible types for VoxColor and Color - rmodels: line 5749

* Remove ToVector3 and ToColor functions and assign values directly
2021-10-03 12:11:20 +02:00
Ray f869229b7f Minor format tweaks 2021-10-03 12:09:59 +02:00
Ray 239c37246a WARNING: REVIEWED: Follow a set of conventions
CONVENTIONS:
  - Functions are always self-contained, no function use another raymath function inside, required code is directly re-implemented inside
  - Functions input parameters are always received by value
  - Functions use always a "result" variable for return
  - Functions are always defined inline
  - Angles are always in radians (DEG2RAD/RAD2DEG macros provided for convenience)
2021-10-03 11:44:59 +02:00
Chris 9882796df0 Rename BRDG typo to BDRF (#2028) 2021-10-02 14:07:42 +02:00
Dennis E. Hamilton e34c0911f9 Cleanup x64/x86 options in scripts/build-windows.bat (#2023)
* Match build-windows.bat changes

The location for manual setting of the vcvarsall.bat location moved to line 38 in the latest change.

* Update flags for clean x64/x86 building

std:c11 is required for initialization features used in raylib.  UTF-8 for consistency in contemporary systems.  /W3 gets rid of puzzling slack byte and linker in-lining warnings.  /sdl for some insecure library usages in the user code that beginners should learn about early.
2021-09-30 22:29:35 +02:00
mausimus 93efa565f9 reset resizedLastFrame on web platform (#2020) 2021-09-29 23:27:10 +02:00
mausimus dfbb134bfe RLGL: restore draw batch state after limit check (#2018) 2021-09-29 23:26:29 +02:00
Vadim Boev 92f6290dbb Build Android App with Visual Studio 2019 (#2013)
* Add support Android build for Visual Studio

* Delete projects/VS2019-Android/raylib_android/ARM64/Debug directory

* Delete projects/VS2019-Android/raylib_android/raylib_android/raylib_android.NativeActivity/ARM64/Debug directory

* Delete projects/VS2019-Android/raylib_android/raylib_android/raylib_android.Packaging/ARM64/Debug directory

* Delete projects/VS2019-Android/raylib_android/raylib_android/raylib_android.Packaging/ARM/Debug directory

* Delete projects/VS2019-Android directory

* Build Android App with Visual Studio 2019
2021-09-27 17:57:06 +02:00
Ray 2474d50dba Update raylib.h 2021-09-27 17:52:15 +02:00
Ray e40ece55d5 Update raylib.h 2021-09-27 17:51:57 +02:00
raysan5 18c92b3104 ADDED: Vector3Angle() 2021-09-27 13:57:06 +02:00
raysan5 dd7d65a6b4 Remove tabs 2021-09-27 13:55:45 +02:00
Tommi Sinivuo 206e1def6f Add Zig build file (#2014)
The build file builds Raylib as a static library for either
Windows or Linux.
2021-09-25 19:24:48 +02:00
Tristan Schulz b7063ab879 [models] Animation System Fix Part 1 (#2009)
* Fixed gltf missing transforms on load

mend

* extracted Matrix calculation in to static method and added skinning check

* fixed formatting

* Fixed write to access to nullptr when animation has no normals

* Refactored UpdateModelAnimation to only update changed vertices when needed (allows for multi animation playing)

* add check for models that were missed during BindGLTFPrimitiveToBones to not segfault the program

* fixed id mismatch between animation and model

* draft on fixing the mesh to skin mapping

* dont look at this

* removing debug info
2021-09-23 21:06:51 +02:00
raysan5 10d7718011 UPDATED: raylib resource files 2021-09-23 20:53:31 +02:00
raysan5 ddc1fdf6d5 REVIEWED: SeekMusicStream() formating 2021-09-23 18:11:24 +02:00
Uneven Prankster 7fa521fae4 Fix + Return if attempting to seek on a module format (#2008) 2021-09-23 17:38:37 +02:00
Ray 08ea5e419e REVIEWED: LoadImageAnim() #2005 2021-09-23 00:23:57 +02:00
Ray 00a763ea44 Reviewed some TODO comments 2021-09-23 00:18:47 +02:00
Laurentino Luna dcd289d931 Modify TODO to NOTE on Makefile (#2007)
'# TODO: see 'install' target.' should be a note rather than something
to do.
2021-09-22 23:49:11 +02:00
Timon de Groot 025246620f Add function DrawCubeTextureRec (#2001)
* Add function DrawCubeTextureRec

* Add EOF newline

* Remove unneeded example
2021-09-22 21:56:38 +02:00
Uneven Prankster 19ef765382 SeekMusicStream initial implementation (#2006) 2021-09-22 21:55:13 +02:00
Ryan Roden-Corrent 9607ea5c0a Use unsigned int for animation count. (#2002)
LoadModelAnimations takes an `int` for the animation count parameter.
The animation count should never be negative, so it makes sense to
specify it as unsigned in the API. This matches the API for
UnloadModelAnimations, which expects an unsigned int. Both GLTF and IQMM
also store the animation count internally as unsigned, and we were
casting to a signed int for no reason.

GLTF actually uses `size_t` internally, so we're technically risking
overflow, but having 2^32 animations seems unlikely.
2021-09-22 13:04:10 +02:00
Ray 8a434b4fd4 Update rmodels.c 2021-09-22 13:02:44 +02:00
Ray 0e037555fe Update raylib.h 2021-09-22 12:59:40 +02:00
Ray de173a93c8 Update rmodels.c 2021-09-22 12:19:25 +02:00
Ray 37c047eabc Update rmodels.c 2021-09-22 11:28:52 +02:00
Ray c1432386a5 Update Makefile 2021-09-22 11:13:10 +02:00
Conifer b5f281bacd Update BINDINGS.md (#2003)
Update the link to new and better Swift binding to Raylib by STREGAsGate
2021-09-22 10:11:44 +02:00
Ray 23b827b66c Update macos.yml 2021-09-22 00:57:42 +02:00
Ray d851208413 Update linux.yml 2021-09-22 00:56:58 +02:00
Ray 3caa15e696 Update webassembly.yml 2021-09-22 00:55:46 +02:00
Ray 99ab4d6cb8 WARNING: MODULES RENAMING!!!
raylib modules have been slightly renamed to add some identity and note that they are independent modules that can be used as standalone separate parts of raylib if required.

The renamed modules are:
 - `core` -> `rcore`
 - `shapes` -> `rshapes`
 - `textures` -> `rtextures`
 - `text` -> `rtext`
 - `models` -> `rmodels`
 - `camera` -> `rcamera`
 - `gestures` -> `rgestures`
 - `core` -> `rcore`

All the build systems has been adapted to this change.
2021-09-22 00:15:06 +02:00
Ray 8b3d054408 Minor reviews 2021-09-21 23:49:42 +02:00
raysan5 7d995d95eb Merge branch 'master' of https://github.com/raysan5/raylib 2021-09-21 15:31:35 +02:00
raysan5 a09311a8fc Tweaks 2021-09-21 15:31:26 +02:00
Uneven Prankster 339fdf4c31 Add up argument to DrawBillboardPro (#1941)
* Add `up` argument to `DrawBillboardPro`

* Replace tab with proper spaces
2021-09-21 15:22:30 +02:00
raysan5 c96de3a23a ADDED: GetTouchPointId(index) #1972 2021-09-21 15:11:33 +02:00
raysan5 1627f34032 Reviewed some compilation issues #1997 2021-09-21 15:06:06 +02:00
Richard Smith 59cabc7d11 Update BINDINGS.md (#2000) 2021-09-21 14:54:52 +02:00
Chris 89f031673b Fix mappings.h issue from glfw update (#1995)
- Ran GenerateMappings.cmake to restore mapping changes
2021-09-19 20:33:18 +02:00
Tommi Sinivuo 3c55f067a8 Add SetRandomSeed(unsigned int seed) function (#1994)
Specifying a fixed seed for the random number generator is often
used in games for various reasons.

By adding an api function for seeding the random number generator
we solve two different problems regarding the seeding:

1) The underlying RNG implementation does not leak to client code
   (as would be the case if we called srand directly from the
   client code)
2) Seeding the RNG would be simple from other programming languages
   (especially in cases where calling libc functions is non-trivial)
2021-09-17 21:26:21 +02:00
MrSwedish 23fabb1d67 Prevent INVALID_SOCKET to be defined twice on linux (#1993)
i got an error because of this lol
2021-09-17 01:05:38 +02:00
Neil Barkhina e9d3d4fa1f Implemented GetGamepadName() for emscripten (#1986)
* implemented GetGamepadName for emscripten

* updated gamepad to use existing name as arary

* removed unnecessary platform_web check
2021-09-12 18:02:54 +02:00
Hristo Stamenov 024adc2538 Add find opengl for widnows too. (#1985)
* Add find opengl for widnows too.

* Also fix set LIBS_PRIVATE to bi similar to linux and apple targets
2021-09-10 20:31:36 +02:00
raysan5 72983d4e20 Typo 2021-09-10 19:01:24 +02:00
raysan5 b63c2619e3 Update Makefile for web compilation
Some flags are only for the linker, not the compiler
2021-09-10 19:01:09 +02:00
Ray 40ec7a6236 Update core.c 2021-09-10 17:23:48 +02:00
Ray 352ea80a1f REVIEWED: Vox loader 2021-09-10 15:37:31 +02:00
procfxgen a422d2fc8b Vox loaded (#1981)
* new models_magicavoxel_loading example

* Portable header-only file "magicavoxel_loader.h" for MagicaVoxel loader example.

* models_magicavoxel_loading example added to CMakeLists.txt and Makefile

* fix models_magicavoxel_loading example for linux.

* * vox_loader into "src/external/vox_loader.h"
 * vox file support for "models.c"
 * updated example "models/models_magicavoxel_loading.c"

* * Fix Vox_FreeArrays (removed memory leak)

* * removed magicavoxel_loader.h

* * Revert vs2019 solution

* * vox_loader.h -> Support custom memory allocators
* vox_loader.h -> Reverse Y<>Z for left to right handed system
* models/models_magicavoxel_loading.c -> fix model center

* * vox_loader.h -> Removed Raylib dependencies

* * Changed Vox_LoadFileName to Vox_LoadFromMemory
2021-09-10 15:24:01 +02:00
Ray 803094f41f REVIEWED: Touch input system #1975 #1960
- ADDED: `GetTouchPointCount()` to core module, removed from gestures module.
 - Support multiple touch points: `MAX_TOUCH_POINTS`.
2021-09-10 15:19:12 +02:00
Ray 2c13e43c32 Review font loading log info 2021-09-10 15:16:34 +02:00
Nikolay Krasheninnikov 18d73eef19 Fixes target direction for first person camera mode. (#1977)
Co-authored-by: Nikolai Krasheninnikov <nikolai.krasheninnikov@kronshtadt.ru>
2021-09-10 11:51:59 +02:00
Tristan Schulz 7bf31dd468 Fixed loading obj models with no materials (#1984) 2021-09-09 18:14:15 +02:00
Steven Schveighoffer 1a6adc5f74 Fix dynamic library issues on Macos (#1978) 2021-09-06 23:17:12 +02:00
raysan5 b15715ca80 Merge branch 'master' of https://github.com/raysan5/raylib 2021-09-05 21:49:49 +02:00
raysan5 8d3ff3fda8 Updated Makefile for latest Android NDK r32 LTS
It seems now it's required to use archiver `llvm-ar`
2021-09-05 21:49:47 +02:00
Tristan Schulz 24a38dbd3f [models] LoadGLTF fixed missing transformations and nonroot skinning problem (#1964)
* Fixed gltf missing transforms on load

mend

* extracted Matrix calculation in to static method and added skinning check

* fixed formatting
2021-09-05 21:15:40 +02:00
raysan5 4120f12375 REVIEWED: Vox loading, mostly formating 2021-09-05 20:39:34 +02:00
procfxgen dfc465ca6d new models_magicavoxel_loading example (#1940)
* new models_magicavoxel_loading example

* Portable header-only file "magicavoxel_loader.h" for MagicaVoxel loader example.

* models_magicavoxel_loading example added to CMakeLists.txt and Makefile

* fix models_magicavoxel_loading example for linux.

* * vox_loader into "src/external/vox_loader.h"
 * vox file support for "models.c"
 * updated example "models/models_magicavoxel_loading.c"

* * Fix Vox_FreeArrays (removed memory leak)

* * removed magicavoxel_loader.h

* * Revert vs2019 solution
2021-09-04 19:55:09 +02:00
raysan5 93168304cd Update shell.html 2021-09-03 15:24:05 +02:00
Ray 9ff8ad853c Update raygui.h 2021-09-02 00:39:47 +02:00
Ray 59e7275464 REVIEWED: Glyphs 2021-09-02 00:35:55 +02:00
Ray fa79ae8a3d Merge branch 'master' of https://github.com/raysan5/raylib 2021-09-01 23:41:00 +02:00
Ray 9362eaf9c6 REVIEWED: Naming: length vs size 2021-09-01 23:40:51 +02:00
atticus dfadb3ee37 fix various memory leaks (#1969) 2021-09-01 23:15:32 +02:00
Ray 6e76baa6a9 WARNING: BREAKING: RENAMED: Font struct variables
RENAMED: GetCodepointsCount() -> GetCodepointCount()
RENAMED: GetTouchPointsCount() -> GetTouchPointCount()
2021-09-01 23:11:31 +02:00
Ray a0f8682905 REVIEWED: <name>Count for consistency
Following english rules, it should be singular name before Count.
2021-09-01 23:09:30 +02:00
Tristan Schulz e8fa7ceb79 [models] Fixed counting loop for face amount per material (#1967) 2021-09-01 21:29:20 +02:00
Ray 68bcfa1192 Minor tweak 2021-08-28 22:54:47 +02:00
raysan5 d98e61c6eb Minor format tweaks 2021-08-28 12:01:16 +02:00
Hussein Sarea 66c6ec4465 Add pyraylib (#1961) 2021-08-28 09:57:13 +02:00
Ray 936199d8de Review dates 2021-08-27 18:50:02 +02:00
Ray 18af18479f REVIEWED: ExportWaveAsCode() 2021-08-27 18:49:03 +02:00
Ray b7ae0df3d9 REVIEWED: Decouple DrawMesh() and DrawMeshInstanced() #1958 2021-08-27 12:13:44 +02:00
Richard Smith cac856119c Change GetColor to take unsigned int (#1954) 2021-08-26 17:31:01 +02:00
irishgreencitrus 1286bc076f Add raylib.v binding (#1955)
Added raylib.v binding for Vlang
2021-08-26 17:27:31 +02:00
Ray 3d33c559e7 REVIEWED: Examples compilation 2021-08-26 00:14:34 +02:00
Ray 14e443afba REVIEWED: OpenGL 1.1 compilation issue 2021-08-25 23:41:33 +02:00
Ray 7749a2805c UPDATED: raygui to latest version -WIP-
Note this new raygui version embeds ricons and `GuiTextBoxMulti()` is not working properly
2021-08-25 00:51:37 +02:00
Ray a04dbe7ffd Update shaders_shapes_outline.c 2021-08-25 00:41:48 +02:00
Ray 913f185f82 Renamed some static functions for more consistent naming 2021-08-25 00:22:16 +02:00
Laurentino Luna 6575d31379 Fix tcc not finding emmintrin.h (#1947)
* Fix tcc not finding emmintrin.h

This allows to compile raylib with tcc with no errors.

* Remove __TINYC__ check from stb_image.h

This will be placed under textures.c

* Move tcc check to textures.c

Avoiding to change stb_image.h
2021-08-24 16:34:52 +02:00
raysan5 7c1889c282 REVIEWED: Support mouse wheel on x-axis #1948 2021-08-24 15:26:59 +02:00
Luiz Pestana 45fd75952d Revert "Ignore generated example binaries (#1884)" (#1946)
This reverts commit 4a01139c8d.
2021-08-23 20:05:34 +02:00
Ray 51fbde178f Update shaders_shapes_outline.c 2021-08-22 01:08:27 +02:00
Ray b154bc33f5 Added note on GLFW custom allocators for the future 2021-08-22 01:08:11 +02:00
Ray d98779abef Minor tweak to avoid false error logs 2021-08-22 01:07:37 +02:00
Ray aefdb9f9cf REMOVED: Old function names defines
As far as next raylib version will be 4.0, no backward compatibility hacks will be maintained.
2021-08-21 23:57:41 +02:00
Ray ff523d55ac Updated raygui #1939 2021-08-20 11:56:25 +02:00
atticus 6d20430ccc add NULL check (#1925) 2021-08-20 11:47:51 +02:00
Ray a5beb940f8 Remove trailing spaces 2021-08-16 23:23:16 +02:00
Ray f3385b6ad2 Update rlgl.h 2021-08-16 19:52:57 +02:00
Ray ef8526ae36 Update rlgl.h 2021-08-16 19:26:10 +02:00
Ray 92a13878dc Add some comments 2021-08-16 19:23:06 +02:00
Ray 1b4c58b66f WARNING: BREAKING: Use frameCount on audio
This is a big change for optimization and a more professional understanding of audio. Instead of dealing with samples, now we deal with frames, like miniaudio does, so, avoiding continuous conversions from samples to frames.
2021-08-16 11:06:31 +02:00
Dennis E. Hamilton e203fb58c6 Match build-windows.bat changes (#1923)
The location for manual setting of the vcvarsall.bat location moved to line 38 in the latest change.
2021-08-16 09:53:14 +02:00
raysan5 462e7aec52 Updated RAYLIB_VERSION to 4.0-dev
Several breaking changes have been done lately so I think it's better to mark raylib for next release as 4.0.
2021-08-15 13:25:14 +02:00
raysan5 aae60e1e44 REVIEWED: extern "C" definition position for consistency
Note that `extern "C"` calling convention only affects objects that need to be seen by the linker, in our case only functions... but it would also be required by global variables exposed, if any.
2021-08-15 13:02:53 +02:00
raysan5 848cdb267a Support C++ usage as standalone library 2021-08-15 12:58:34 +02:00
raysan5 760cfd361e REVIEWED: PHYSACDEF definition and C++ issues #1918 2021-08-15 12:52:12 +02:00
630Studios 092435d51c [Models] Fix for issue #1809 (#1917)
* GenMeshTangents Fix

* GenMeshTangents Fix - Comment Update

* GenMeshTangents Fix - Comment Update final

* Code Style Changes

* Code Style Changes Final

* Code Style Changes Final 2

* GenMeshTangents better handling for issue #1876

* GenMeshTangents better handling for issue #1876

* GenMeshTangents: Better fix for issue #1876

* vboId location fix

* rlUpdateVertexBuffer - bufferId is an unsigned int

* Fix for issue#1809 - Obj with more materials then mesh caused crash

* Fix for issue#1809 - Formatting Update
2021-08-12 21:01:40 +02:00
raysan5 1dff5814be ADDED: rlUpdateVertexBufferElements() #1915 2021-08-12 21:01:09 +02:00
raysan5 26db391576 ADDED: rlActiveDrawBuffers() #1911
- ADDED: rlEnableColorBlend()/rlDisableColorBlend()
2021-08-12 20:38:57 +02:00
630Studios ce3214b82d [rlgl] rlUpdateVertexBuffer (#1914)
* GenMeshTangents Fix

* GenMeshTangents Fix - Comment Update

* GenMeshTangents Fix - Comment Update final

* Code Style Changes

* Code Style Changes Final

* Code Style Changes Final 2

* GenMeshTangents better handling for issue #1876

* GenMeshTangents better handling for issue #1876

* GenMeshTangents: Better fix for issue #1876

* vboId location fix

* rlUpdateVertexBuffer - bufferId is an unsigned int
2021-08-12 09:47:00 +02:00
raysan5 621a8766a8 WARNING: BREAKING: Renamed CharInfo to GlyphInfo and more...
This commit introduces some breaking changes for library consistency, hopefully not too dramatic... Here the full list:
 - RENAMED: struct `CharInfo` to `GlyphInfo`, actually that's the correct naming for the data contained. It contains the character glyph metrics and the glyph image; in the past it also contained rectangle within the font atlas but that data has been moved to `Font` struct directly, so, `GlyphInfo` is a more correct name.
 - RENAMED: `CodepointToUtf8()` to `CodepointToUTF8()`, capitalization of UTF-8 is the correct form, it would also require de hyphen but it can be omitted in this case.
 - RENAMED: `TextToUtf8()` to `TextCodepointsToUTF8` for consistency and more detail on the functionality.
 - ADDED: `GetGlyphInfo()` to get glyph info for a specific codepoint
 - ADDED: `GetGlyphAtlasRec()` to get glyph rectangle within the generated font atlas
 - Some additional tweaks for consistency
2021-08-11 21:16:39 +02:00
raysan5 b6541b7a55 REVIEWED: DrawTextPro()
WARNING: DrawTextPro() requires including `rlgl.h`, before it was only dependant on `textures` module.
2021-08-11 19:02:15 +02:00
raysan5 7e27c2ffa8 TODO: DrawTextPro() rotation not working? 2021-08-11 18:53:06 +02:00
raysan5 b55418effd ADDED: DrawTextPro() with text rotation support 2021-08-11 18:31:56 +02:00
raysan5 5a259fa10f WARNING: REMOVED: DrawTextRec() and DrawTextRecEx()
- DrawTextRec() and DrawTextRecEx() have been moved to example, those functions could be very specific depending on user needs so it's better to give the user the full source in case of special requirements instead of allowing a function with +10 input parameters.
2021-08-11 18:31:32 +02:00
Tommi Sinivuo 0ba49cce45 Add *.so.* to .gitignore to ignore build artifacts (#1912)
When building a shared Raylib library on Linux, the build process
produces 3 files: libraylib.so (symlink), libraylib.so.381 (symlink)
and libraylib.so.3.8.1 (the library).

Only the first one of these (.so) is currently ignored by Git.
Adding *.so.* to .gitinore makes Git ignore the rest of them as
well.
2021-08-11 11:56:05 +02:00
raysan5 b54422c970 Merge branch 'master' of https://github.com/raysan5/raylib 2021-08-10 21:32:29 +02:00
Ryan Roden-Corrent ef9fdd0fa5 Document Get{Key,Char}Pressed return value. (#1909)
I think it is useful to know what the empty behavior is in cases where
you are enumerating key presses (e.g. implementing "press any key to
continue").
2021-08-10 18:38:32 +02:00
raysan5 e3f0a11053 Update CHANGELOG 2021-08-10 17:48:31 +02:00
raysan5 311fe8f35b Replaced TABS by spaces 2021-08-08 21:09:11 +02:00
raysan5 a135d9c25d REVIEWED: Avoid conflict with bool 2021-08-08 13:23:04 +02:00
raysan5 ee72497eef REVIEWED: Some warnings... 2021-08-08 13:02:51 +02:00
raysan5 5e63cd3c97 ADDED: GenMeshCone() #1903 2021-08-08 11:29:24 +02:00
Ryan Roden-Corrent e6fe8169c2 Fix Makefile to build WASM examples. (#1906)
* Fix Makefile to build WASM examples.

- Add --preload-file flag before specifying the resource dir
- Add empty resource dir to `shapes/` (otherwise wasm-ld will fail)
- Add wasm outputs to .gitigore

* Delete .gitignore

Co-authored-by: Ray <raysan5@gmail.com>
2021-08-07 23:30:48 +02:00
raysan5 7ca9131fd4 Update rlgl_standalone.c 2021-08-07 11:58:39 +02:00
Ray 07e0b10515 Added rayex, elixir binding 2021-08-07 11:28:35 +02:00
raysan5 aa67903f96 Improve rlgl description 2021-07-31 19:58:30 +02:00
raysan5 5b6d83b533 REVIEWED: rlgl defines for consistency 2021-07-31 19:46:44 +02:00
raysan5 3e75a2109d REVIEWED: rlgl module header info 2021-07-31 19:08:13 +02:00
raysan5 7013e60926 Update models_rlgl_solar_system.c 2021-07-31 18:44:07 +02:00
raysan5 559f1919c6 REVIEWED: Improved font loading info 2021-07-31 18:41:44 +02:00
raysan5 73c8ddc8bf REVIEWED: raylib_opengl_interop 2021-07-31 18:36:06 +02:00
raysan5 b805754aa1 REVIEWED: Avoid bool type collisions 2021-07-31 18:10:26 +02:00
raysan5 0f8cfd6031 Update rlgl_standalone.c 2021-07-30 13:52:00 +02:00
raysan5 dffd1435e9 Revert "REVIEWED: Avoid UBSAN warnings #1891"
This reverts commit a8e9e1387f.
2021-07-30 13:50:33 +02:00
raysan5 a8e9e1387f REVIEWED: Avoid UBSAN warnings #1891 2021-07-30 13:47:21 +02:00
raysan5 1613057881 Update raudio.c 2021-07-30 13:45:01 +02:00
raysan5 b4fddf146b REVIEWED: Added new mechanism to avoid data types collision between modules that share same data types and can be used in standalone mode 2021-07-30 13:44:52 +02:00
raysan5 aeb1a0da84 REVERTED: Removed the need for rlMatrix
Now rlgl uses the `Matrix` type, just make sure it has been previously defined somewhere... I don't like this approach but it's probably the easier one for the users... still looking for a better solution... maybe using something like
`#define MATRIX_TYPE`, so it can be checked in other modules.
2021-07-30 12:54:54 +02:00
raysan5 71373ee524 Update Makefile 2021-07-30 12:48:09 +02:00
raysan5 1cc25d1a2d Review include path that was breaking the build 2021-07-30 12:14:31 +02:00
raysan5 bd70a22412 Review some issues 2021-07-30 11:56:14 +02:00
raysan5 8b7f43f89b WARNING: BREAKING CHANGE: rlgl complete decoupling from raylib -WIP-
rlgl has been redesigned to avoid any dependency to `raylib` or `raymath`, all functions using some of those libs have been reviewed.
 - REMOVED: `Texture2D`, `Shader` structs dependency
 - REMOVED: `Vector3`, `Matrix` structs dependency
 - REMOVED: raymath functions dependency, all required math is implemented in rlgl
 - ADDED: `rlMatrix` custom rlgl type
 - ADDED: `utils.c`: `rlMatrixFromMatrix()` and `rlMatrixToMatrix()` for a safe conversion between raylib<->rlgl matrix types
 - ADDED: `rl` prefix to all `rlgl` structs
 - Other small tweaks here and there
2021-07-29 21:57:50 +02:00
raysan5 58e9a0894f Reviewed some functions to avoid calling other functions 2021-07-29 21:50:50 +02:00
iskolbin 6ef3ab3d3a impoves raylib_parser: makes it generic, adds -d key for functions define (RLAPI for raylib.h), increases maxiumum number of fields in structs and values in enums, doubles max length of struct field names; split float3/float16 struct typedefs in raymath to allow parser to process the file (#1901) 2021-07-29 20:37:44 +02:00
raysan5 a9f6ff6fe3 Add external folder to build (just in case) 2021-07-29 20:32:30 +02:00
Ray cd1464390c Update CONVENTIONS.md 2021-07-29 12:11:12 +02:00
Kyle Appelgate d8ca13f4c6 fixed DisableCursor() on web by registering an empty mouse click event function in emscripten (#1900) 2021-07-28 21:38:31 +02:00
raysan5 8fecf45f4c REVIEWED: rnet include from extras 2021-07-28 19:48:20 +02:00
raysan5 96aadec503 REVIEWED: Info on image loading failure 2021-07-28 19:47:53 +02:00
raysan5 c219fc02cd Review includes to use extras libraries 2021-07-28 17:29:49 +02:00
raysan5 75d675ab4d Review physac.h path 2021-07-28 17:21:34 +02:00
raysan5 69a82c7a0d ADDED: raygui to extras libraries for convenience 2021-07-28 13:15:43 +02:00
raysan5 0c3902b543 ADDED: GetModelBoundingBox()
Reorganized models functionality, it still needs some review...
2021-07-28 13:15:10 +02:00
raysan5 7c7ee1cdc8 REVERTED: Mesh indices issue #1891 2021-07-28 13:12:16 +02:00
raysan5 0c17d1e14f Minor formatting tweak 2021-07-28 12:58:43 +02:00
raysan5 0352aa2094 Replace TABS by 4 spaces 2021-07-28 12:55:38 +02:00
raysan5 a9230a6c07 Update shapes_logo_raylib_anim.c 2021-07-28 12:50:18 +02:00
Jeffery Myers c706b33b30 Don't normalize zero length vectors. (#1896) 2021-07-28 08:59:39 +02:00
raysan5 e9c7ab925f REVIEWED: rlDrawVertexArrayElements() #1891 2021-07-27 23:35:54 +02:00
raysan5 70ed52dd5d REVIEWED: QuaternionFromAxisAngle() #1892 2021-07-27 23:30:08 +02:00
Uneven Prankster 4e363b5479 Remove unused UWP defines (#1894)
* Unused UWP define removal

* Further removal of unusued UWP defines
2021-07-26 17:40:10 +02:00
AKDev 9839ea6667 Added another raylib binding for nelua (#1890) 2021-07-25 19:45:04 +02:00
Níckolas Daniel da Silva 87b542085b Update SPONSORS.md (#1886) 2021-07-24 19:55:21 +02:00
Ray 647b54a2dc Update BINDINGS.md 2021-07-23 23:38:44 +02:00
Jeffery Myers 548961aea1 State that raylib works with both C and C++ and move raylib-cpp to a wrapper section instead of a language binding, for less confusion. (#1885)
Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2021-07-23 23:33:32 +02:00
Ray 00911b0842 Reviewed ImageDrawLine() formating 2021-07-23 23:32:20 +02:00
Alexander Buhl ff2b8d6db1 Fixes #1873 Implemented remaining 7/8 of ImageDrawLine (#1874)
* Implemented remaining 7/8 of ImageDrawLine

The existing code was correct for one octant, it now works for all 8
Added two internal functions, _ImageDrawLineHorizontal and _ImageDrawLineVertical, whithout which it would've been 4 times as much code.

* ImageDrawLine: Replaced 3 functions with 1

Removed both freshly added internal functions
Crammed it all into one

* ImageDrawLine shortened significantly using maths

Substituted X and Y, then wrote one abstract loop instead of 4 specific loops.
Lots of comments to explain what I'm doing for future maintainers.

* Now conforms with style conventions

Also reworded a comment to sound more... fomal.
2021-07-23 23:17:04 +02:00
Ray 0fa295c72d Review formating to follow raylib style conventions 2021-07-23 18:16:08 +02:00
Luiz Pestana 4a01139c8d Ignore generated example binaries (#1884) 2021-07-23 18:04:09 +02:00
GoldenThumbs 64e786fe28 Add example shaders_shapes_outline.c (#1883) 2021-07-18 23:45:13 +02:00
Luiz Pestana 5c76c33d7d Raspberry RPI/DRM keyboard fix (#1879)
Legacy keyboard support was blocking the render loop, also it was keeping the last key status until the next key.
2021-07-17 20:27:48 +02:00
630Studios 53bb87c8fb [Models] Better Fix for GenMeshTangents issue #1876 (#1878)
* GenMeshTangents Fix

* GenMeshTangents Fix - Comment Update

* GenMeshTangents Fix - Comment Update final

* Code Style Changes

* Code Style Changes Final

* Code Style Changes Final 2

* GenMeshTangents better handling for issue #1876

* GenMeshTangents better handling for issue #1876

* GenMeshTangents: Better fix for issue #1876

* vboId location fix
2021-07-17 01:33:49 +02:00
630Studios 9aaf7a8057 GenMeshTangents Fix (#1877)
* GenMeshTangents Fix

* GenMeshTangents Fix - Comment Update

* GenMeshTangents Fix - Comment Update final

* Code Style Changes

* Code Style Changes Final
2021-07-16 22:14:13 +02:00
raysan5 56cab4b6a9 REVIEWED: shaders_basic_lighting #1865
Simplified the example
2021-07-16 17:18:32 +02:00
raysan5 c4804c4c0c REVIEWED: Wrong normal matrix calculation #1870 2021-07-16 17:12:22 +02:00
raysan5 8809ae66c6 REVIEWED: Possible memory leak 2021-07-16 16:11:22 +02:00
raysan5 85dc2cc03a Minor format tweaks 2021-07-16 16:10:53 +02:00
raysan5 db4cfc9fbd Reviewed resources licenses 2021-07-16 16:10:35 +02:00
raysan5 7d2845a661 Improve assets license information 2021-07-16 14:29:20 +02:00
raysan5 30a3dae8a6 Update texel_checker.png 2021-07-16 14:27:56 +02:00
GoldenThumbs 59acb6dbea Updated models.c (#1871)
- fixed issue where vertex positions being passed in place of vertex normals.
2021-07-13 12:18:52 +02:00
Humberto Yeverino Jr 8277597bcf Fix Android multi-touch (#1869) 2021-07-13 12:17:47 +02:00
Daniel Nagy 8a46b5e6c0 Use 60 FPS for textures_image_loading example (#1867) 2021-07-11 18:47:31 +02:00
raysan5 ae230dae46 Update Makefile 2021-07-09 18:49:36 +02:00
raysan5 7062415aec WARNING on emscripten_set_fullscreenchange_callback() 2021-07-09 18:49:29 +02:00
raysan5 5ed814e950 Minor tweaks and comments 2021-07-09 17:36:20 +02:00
Tobias Mock 2156cd4a84 Update raylib-ocaml to 3.7 (#1864) 2021-07-09 00:00:53 +02:00
Ray 3a74534c39 Added a note 2021-07-07 21:41:45 +02:00
raysan5 4d438ed68d REVIEWED: RPI: Keyboard stdin input #1769 2021-07-06 18:25:00 +02:00
raysan5 bfff2c432c Minor tweaks on DRM system 2021-07-06 17:16:50 +02:00
raysan5 bcf3ad87e8 Update raylib.vcxproj 2021-07-05 20:00:53 +02:00
raysan5 a958cebdd9 Update audio_raw_stream.c 2021-07-05 19:47:50 +02:00
raysan5 e6aa713a37 REVIEWED: Need to set default buffer size for raw data #1770
This design should probably be changed...
2021-07-05 19:45:57 +02:00
Richard Smith e18aad0653 Update BINDINGS.md (#1862) 2021-07-05 19:03:53 +02:00
raysan5 9aedfbec69 Review formatting 2021-07-05 18:45:17 +02:00
raysan5 c0ca8a74bc WARNING: BREAKING: REMOVED PLATFORM_UWP support
After lot of investigation, I'm afraid I'm removing official UWP support from raylib, I'll keep the current implementation in a separate branch (UWP), just in case. It seems Microsoft is trying to replace UWP in the long term, they announced lack of support for the new WinUI 3 and they seem to be moving to Windows App SDK.

Also, on current implementation, the code is divided between raylib and the example, requiring multiple callback hooks, making it difficult to follow and maintain.

And realistically speaking, raylib is probably not the best option for anyone willing to target UWP, neither Xbox consoles.
2021-07-05 12:34:23 +02:00
Ray 63b1860010 Update README.md 2021-07-05 11:52:50 +02:00
Ray 0c78b8d182 Update README.md 2021-07-05 11:52:31 +02:00
Ray 4e79e23a20 Update README.md 2021-07-05 11:52:13 +02:00
raysan5 dbb2bbf207 REMOVED: VS2017 project, outdated
This project has been superseded by VS2019 with a better configuration and more complete solution, including more examples
2021-07-04 20:58:18 +02:00
raysan5 64916ba232 REMOVED: Old VSCode project
It would be nice that TCC option was integrated in main VSCode project
2021-07-04 20:55:39 +02:00
Ray 8a7812f1f5 Update README.md 2021-07-04 20:51:57 +02:00
raysan5 d432d03aea REVIEWED: Infinite loop on closing #1861 2021-07-04 20:29:20 +02:00
raysan5 c15d08d6ec Review some comments 2021-07-03 21:48:35 +02:00
raysan5 f8753bda01 Update core.c 2021-07-03 21:31:52 +02:00
raysan5 652b17d68d Review variables initialization 2021-07-03 21:25:30 +02:00
raysan5 efba81442a Update link address for miniaudio 2021-07-03 21:25:05 +02:00
raysan5 1aec0a90bc Merge branch 'master' of https://github.com/raysan5/raylib 2021-07-01 21:43:24 +02:00
raysan5 f81dfce19f Minor tweaks 2021-07-01 21:43:13 +02:00
Calvin Day 2a70638e26 Added Raylib-J (#1860) 2021-07-01 20:30:22 +02:00
raysan5 1fe137db44 Create core_basic_screen_manager.png 2021-06-30 18:54:36 +02:00
raysan5 fe8dad48e2 ADDED: EXAMPLE: core_basic_screen_manager 2021-06-30 18:53:55 +02:00
raysan5 2cda1502a3 WARNING: REMOVED: Game templates
It's seems noone has ever used them
2021-06-30 18:38:39 +02:00
raysan5 a6728a2203 REVIEWED: emscripten versions 2021-06-30 17:12:58 +02:00
raysan5 9e7ca41f58 Remove trailing spaces 2021-06-30 16:39:07 +02:00
raysan5 0776f1e106 Merge branch 'master' of https://github.com/raysan5/raylib 2021-06-30 16:38:39 +02:00
raysan5 de4611ecf6 REVIEWED: Advance template 2021-06-30 16:38:23 +02:00
masterex1000 ee24d17895 Fix DecompressData() pointer issue (#1856) 2021-06-29 23:06:09 +02:00
raysan5 da8d76d826 Review issue with pointer #1854 2021-06-29 11:26:34 +02:00
raysan5 6f30a19dd7 Update uwp_events.h 2021-06-28 14:23:55 +02:00
raysan5 2911cf2a48 Reviewed comments 2021-06-28 14:23:45 +02:00
Ray e5cf3f9555 WARNING: BREAKING: Functions renamed for consistency
RENAMED: GetTextureData() -> LoadImageFromTexture()
RENAMED: GetScreenData() -> LoadImageFromScreen()
2021-06-28 09:39:31 +02:00
raysan5 5f03201616 Minor tweaks 2021-06-26 22:43:20 +02:00
raysan5 8eb7cf1fee REVIEWED: Enum values descriptions 2021-06-26 22:13:45 +02:00
raysan5 0624af09fd Update raygui.h 2021-06-26 21:11:34 +02:00
raysan5 2f75657350 WARNING: REMOVED: Some deprecated function names mapping
Some functions/values have been deprecated for long time but some mapping was kept for convenience. Some of those mappings have been removed...
2021-06-26 21:07:00 +02:00
Ray 00c8795385 Minor tweaks to follow code conventions 2021-06-26 13:45:39 +02:00
Ray 89708edf7f REVIEWED: Latest PR to follow raylib code conventions 2021-06-26 13:45:15 +02:00
Hristo Stamenov 71700254b4 Major revamp gltf (#1849)
* Added my own model and license to Raylib exclusively created by me and provided for use in the examples (and other projects if anyone decides to)

* Use animation vertices on initial load if possible.

* Added girl model to model example

* Revamped GLTF model loading as it was wrong by default. Also updated some comments.

GLTF models were loaded only by mesh but they should be loaded recursively by hierarchical nodes because tehre are some static node transformations that are to be applied to the vertices. It also resulted in more meshes being included in some models.

It is the correct way of loading GLTF and what is suggested in the official examples.

Currenlty limiting to only one scene but more can be included later.

* Refactored the new names and structure of extracted functions.

* Safer and easier read value.

* Made reading easier for accessor->bufferView->buffer in GLTF.

Now there is no need to check for supported types or anything.

* Correct inclusion of limits.h in the cases of MSVC based compilers vs the world

* Removed weird example file
2021-06-26 13:22:00 +02:00
Ray aa86e9d399 REVIEWED: Minor tweaks on log messages 2021-06-26 13:18:39 +02:00
Ray 4b6e6ce20e REVIEWED: Improved log info on image/textures laoding
ADDED: rlGetPixelFormatName()
2021-06-26 13:07:14 +02:00
Ray 7cbfca8bd1 REVIEWED: Simplified code to avoid extra functions calls 2021-06-26 13:06:22 +02:00
Ray e0720a0a55 WARNING: REVIEWED: Default shader uniform names
When a shader is loaded, by default, several locations are tried to be set automatically.
2021-06-25 13:35:43 +02:00
Ray d4c03b47ec REVIEWED: LoadShader() and default locations
Reviewed locations descriptions
2021-06-25 00:46:14 +02:00
Ray a226e11aac Update CONVENTIONS.md 2021-06-24 19:03:05 +02:00
Ray d3d362090c Update CONVENTIONS.md 2021-06-24 18:59:09 +02:00
Ruminant f3eff740ce fix to LoadShaderFromMemory (#1851)
- the shader.locs now match the LoadShader function

Without this change, the lighting sample looks incorrect when
using LoadShaderFromMemory

Co-authored-by: Ruminant <psp5150+git@gmail.com>
2021-06-24 18:48:48 +02:00
Ray f4c171aa45 Create CONVENTIONS.md 2021-06-24 18:48:08 +02:00
Ray 953882e86f REVIEWED: CORE.Storage.basePath
Simplified some code
2021-06-24 18:13:25 +02:00
Ray 46ad7b87e8 Update text.c 2021-06-24 18:11:48 +02:00
Ray 4e9afac2a5 REVIEWED: WaitTime() #1841
Avoid global variables dependency, now the function is self-contained.
2021-06-24 11:01:44 +02:00
Ray 2cce5a24c9 Merge branch 'master' of https://github.com/raysan5/raylib 2021-06-24 10:39:56 +02:00
Ray 43efe92e21 Update core_basic_window.c 2021-06-24 10:39:43 +02:00
Nikhilesh S f7a6b94f46 Allow SetWindowSize() on web (#1847) 2021-06-23 10:02:18 +02:00
Ray 7203acdef9 Minor format tweaks 2021-06-23 09:59:11 +02:00
Ray 3db26f82ea WARNING: BREAKING: Functions renamed!
RENAMED: GetCodepoints() -> LoadCodepoints(), now codepoint array data is loaded dynamically instead of reusing a limited static buffer.
ADDED: UnloadCodepoints() to safely free loaded codepoints
RENAMED: GetNextCodepoint() -> GetCodepoint()
2021-06-23 09:58:49 +02:00
Ray 716e26aa37 Review BeginTextureMode() usage
Moved outside BeginDrawing()/EndDrawing() to illustrate drawing is happening to an external texture (not screen)
2021-06-23 01:25:09 +02:00
Ray f989048bda Reviewed example 2021-06-23 01:16:21 +02:00
Ray 49d2897b24 Update core_custom_frame_control.c 2021-06-22 21:24:15 +02:00
Ray 6f60622619 ADDED: Example: core_custom_frame_control 2021-06-22 21:20:14 +02:00
Ray 429c5a9a9a Review and un-expose InitTimer()
Actually it's not required for SUPPORT_CUSTOM_FRAME_CONTROL
2021-06-22 20:26:59 +02:00
Ray 7f2a071c51 Formatting review 2021-06-22 20:14:44 +02:00
Ray 2efb50cc63 Update .gitignore 2021-06-22 20:01:57 +02:00
Sky 9095dd9e82 Add support for resizing Emscripten canvas (#1840) 2021-06-22 18:25:52 +02:00
Diesirae 30a0f6f292 Fix DrawTextRec (#1843)
* fix text wrapping

* fix indent

* fix indent

* fix indent

* fix DrawTextRec
2021-06-22 18:16:04 +02:00
Guillaume DEVOILLE 52f1c7df6d Fix missing fclose in tinyobj loader (#1842)
Missing fclose in tinyobj loader.
2021-06-22 18:12:42 +02:00
FSasquatch 906c7f591e Added hxRaylib (#1846) 2021-06-22 18:07:47 +02:00
Ray 115cc7dede Review GetFPS() 2021-06-21 00:46:30 +02:00
Adrian Guerrero Vera 96d5dd24aa core: added GetMouseDelta() (#1832)
* core: added `GetMouseDelta()`

Thanks to previousPosition added by raysan it is now possible to create the GetMouseDelta() function.

Returns a Vector2 with the difference between the current and previous position of the mouse in a frame.

Useful for creating camera scrolling, among others.

* Added changes noted by raysan
2021-06-21 00:11:27 +02:00
raysan5 28093c46a8 Disable SUPPORT_EVENTS_AUTOMATION by default 2021-06-19 19:54:36 +02:00
PtitLuca c37f776e87 fix: change relevant occurences of MeshBoundingBox to GetMeshBoundingBox (#1836) 2021-06-18 13:11:10 +02:00
Ray 1dd9fbae94 Merge branch 'master' of https://github.com/raysan5/raylib 2021-06-17 18:18:26 +02:00
Ray 8be5ec2288 Avoid SUPPORT_MOUSE_CURSOR_POINT 2021-06-17 18:18:16 +02:00
Sirvoid 1a420b77e3 Fixed: Binding vertex position twice (#1835) 2021-06-17 15:42:37 +02:00
Ray 0e65e5877f Update rlgl_standalone.c 2021-06-17 12:54:05 +02:00
Ray e07054d0d4 RENAMED: SwapBuffers() -> SwapScreenBuffer()
Avoid possible symbol collisions
2021-06-17 12:47:03 +02:00
Ray b733e76c86 Update physac.h 2021-06-17 12:26:33 +02:00
Ray 19b71f5f13 WARNING: Exposed SUPPORT_CUSTOM_FRAME_CONTROL #1729 2021-06-17 12:17:50 +02:00
Ray ab032919df RENAMED: Wait() -> WaitTime() 2021-06-17 11:47:05 +02:00
Ray 68e408474d Renamed SUPPORT_MOUSE_CURSOR_NATIVE -> SUPPORT_MOUSE_CURSOR_POINT 2021-06-17 11:17:39 +02:00
Ray 942657fc7c Remove Color struct requirement 2021-06-17 00:28:51 +02:00
Ray 4decbb2586 RENAMED: MeshTangents() -> GenMeshTangents()
RENAMED: MeshBinormals() -> GenMeshBinormals()
2021-06-17 00:04:24 +02:00
Ray f3d38018cd Comment tweak 2021-06-17 00:03:24 +02:00
Ray 3ae40c35e6 Update examples_template.c 2021-06-16 14:09:28 +02:00
Ray 4b93feb172 Remove trail spaces 2021-06-13 17:08:30 +02:00
Ray d875891a3c Improved raylib parser to export data as XML
- Improved command-line
 - Added XML support
 - Added sample outputs: DEFAULT, JSON, XML
 - Reviewed LoadFileText() bug
 - Removed trailing spaces
2021-06-13 16:34:51 +02:00
Ray 3e68059556 Merge branch 'master' of https://github.com/raysan5/raylib 2021-06-13 12:08:44 +02:00
Ray 213c990eda Reviewed issue 2021-06-13 12:08:32 +02:00
Tobias Mock 929fa5780d Add nullptr check before passing arg (#1825) 2021-06-13 11:52:24 +02:00
Richard Smith 7d03048f1d updating raylib python cffi version (#1826)
* Update BINDINGS.md

* Update BINDINGS.md
2021-06-12 23:46:21 +02:00
FSasquatch ae9cea03f0 Changed windows-build to build-windows (#1822) 2021-06-12 18:23:56 +02:00
Ray de7b8ad551 NEW CRAZY FEATURE: EVENTS AUTOMATION!
https://youtu.be/3dZenkpmRzM
2021-06-11 12:27:46 +02:00
Francisco Javier Andrés Casas Barrientos 4dd5643402 Added missing null terminator (#1820)
Added missing null terminator when adding characters to the string, otherwise garbage values are read (often zeros which are equal to '\0', but not every time).

This error results in random characters appearing in the text box every one in a while:
```
asdfg??? ll??
```
It is corrected with the proposed fix.

This problem was observed by my student, Gonzalo Rivera Lazo.
2021-06-10 20:24:08 +02:00
Ray 0b8e0f05a7 Register mouse previous position 2021-06-10 18:03:25 +02:00
Ray b188008a1c Review code formatting 2021-06-10 18:00:44 +02:00
Ray 7bc2e922c9 Review some comments 2021-06-10 17:49:55 +02:00
Ray b0dcdf688f Reviewed functions description
Replaced: Returns -> Get
2021-06-10 17:43:58 +02:00
Ray d3387c952a Reviewed Input variables and comments 2021-06-10 17:11:31 +02:00
Ray 3643974949 Corrected bug on enum 2021-06-10 11:38:02 +02:00
Ray 8980bcfe4b Added some enum comments 2021-06-10 11:31:34 +02:00
Hristo Stamenov e1babab3cc There no longer is a library glfw_objlib and now it is only glfw. (#1818) 2021-06-09 09:49:13 +02:00
Ray 97b074ac26 Update GLFW to latest version #1817 2021-06-08 21:02:24 +02:00
Ray 76a907bb79 Remove tabs 2021-06-08 21:01:17 +02:00
Deathbat2190 9681a072d0 Fix parsing multiple struct fields defined in one line (#1813) 2021-06-06 13:22:42 +02:00
Rob Loach 32f3f53718 parser: Add JSON support with --json (#1812) 2021-06-06 10:21:56 +02:00
raysan5 246798a0ba Update Makefile 2021-06-05 20:15:03 +02:00
Ray 88a8395b8e Added raylib_oding_bindings 2021-06-05 14:02:06 +02:00
raysan5 e95d8bc655 Minor format tweaks 2021-06-05 12:33:05 +02:00
raysan5 6445200a93 Removed GetAudioStreamBufferSizeDefault() 2021-06-05 12:32:52 +02:00
Ray e00d2439b9 WARNING: BREAKING: Consistency renamings
RENAMED: InitAudioStream() -> LoadAudioStream()
RENAMED: CloseAudioStream() -> UnloadAudioStream()
2021-06-03 23:36:47 +02:00
Ray 7e68e733f5 Update models_material_pbr.c 2021-06-03 21:04:23 +02:00
Ray 0565fb9fb6 Update models_mesh_picking.c 2021-06-03 20:58:04 +02:00
Ray 121c689b78 Review code formatting 2021-06-03 20:25:28 +02:00
Crydsch edeaff4bd4 Better collisions (#1803)
* review collisions ray-box and ray-sphere

* Applied raysan's refactor
Improved GetRayCollisionBox

* Replace GetRayCollisionGround with GetCollisionQuad

* Update example core_3d_picking

* Update example models_loading

* Fixed issues after merge

* remove debug stuff

Co-authored-by: Cry dsch <chris.obo@gmx.net>
2021-06-03 20:15:27 +02:00
Ray 2370af598e Reviewed example: core_split_screen 2021-06-03 19:35:36 +02:00
Jeffery Myers deaa84d28d Add a split screen example showing render texture use and multiple cameras. (#1806)
Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2021-06-03 19:09:43 +02:00
Deathbat2190 2efb5a36ca Small parser bugfix (#1805) 2021-06-02 20:47:37 +02:00
isaac553876299 d1ac38171c Update raymath.h (#1802) 2021-06-01 17:00:40 +02:00
Marco G. Maia 1a7dace57e Update docs for supported blend modes (#1801) 2021-06-01 15:00:19 +02:00
Ray 0870295a7c RENAMED: enum Gestures -> Gesture
Consistency tweak
2021-05-31 20:40:27 +02:00
Ray 5e3cf28642 Update raudio.c 2021-05-31 19:32:48 +02:00
Ray 23398f0198 Update Makefile 2021-05-31 19:02:26 +02:00
Ray e991fefb89 Update Makefile 2021-05-31 18:51:56 +02:00
Ray d39d26f275 Update models_loading.c 2021-05-31 18:36:03 +02:00
Ray 9cc2cee936 Update text_draw_3d.c 2021-05-31 18:32:35 +02:00
Ray b359a1575e Update core_3d_picking.c 2021-05-31 18:27:53 +02:00
Ray 8f4261e9d4 Remove unused declarations 2021-05-31 12:58:49 +02:00
Ray 565319184c Reviewed struct field name 2021-05-31 12:37:03 +02:00
Ray 2760304d66 Update CMakeLists.txt 2021-05-31 12:27:26 +02:00
Ray 9bd3d78374 WARNING: Moved some **extra** raylib libraries to /extras/ directory 2021-05-31 11:43:56 +02:00
Ray 1c5de9721a WARNING: BREAKING: RENAMED: RayHitInfo to RayCollision #1781
- RENAMED: RayHitInfo to RayCollision
- RENAMED/REDESIGNED: Multiple Ray collision functions to be more consistent and return RayCollision data -WIP-
2021-05-31 11:41:56 +02:00
Ray 7bcb2ad4f1 Update uwp_events.h 2021-05-31 11:39:20 +02:00
Ray 89e734de6b Review config flags #1784 2021-05-30 22:31:14 +02:00
Julianiolo cc4de1d1f9 note (#1797) 2021-05-30 18:33:38 +02:00
Ray 71995d52b3 REVIEWED: exit() on LOG_FATAL instead of LOG_ERROR #1796 2021-05-30 18:02:06 +02:00
Ray a178a2170b Structs tweaks for consistency 2021-05-30 13:34:02 +02:00
Ray 3c1c13b660 ADDED: raylib header parser 2021-05-30 11:51:15 +02:00
Ray 0369ec9adf Some code tweaks 2021-05-30 11:50:32 +02:00
Ray c828e481fb Review code format 2021-05-29 13:56:08 +02:00
Ray e3ba11bead Review some comments 2021-05-29 13:54:05 +02:00
Hristo Stamenov beeac18eb1 Fix QuaternionToMatrix returning transposed result. (#1793) 2021-05-29 13:53:00 +02:00
Hristo Stamenov 470574517a Implement vertex color attribute for GLTF and IQM (#1790)
Added a simple cube with vertex colors for testing both.
2021-05-26 20:23:13 +02:00
Ray c5ef96272f Merge branch 'master' of https://github.com/raysan5/raylib 2021-05-26 20:21:40 +02:00
Ray 1c7c8c682c REVIEWED: models_skybox #1792 #1778 2021-05-26 20:21:37 +02:00
Milan Nikolic ded6754de4 Update raylib-go bindings (#1791) 2021-05-26 15:07:42 +02:00
Ray 05aff1e097 Merge branch 'master' of https://github.com/raysan5/raylib 2021-05-25 23:19:06 +02:00
Ray 7959d95db0 Review raylib structs comments 2021-05-25 23:19:03 +02:00
Ben Beshara 6fe0a229e2 Bumped minimum GLFW vers in cmake (#1788) 2021-05-25 12:19:36 +02:00
Ray 9f45fea31e Remove line break in DrawTextRecEx() 2021-05-25 11:59:34 +02:00
DanielG e5e401c640 Fixed CMake linking on MacOS (#1783)
Added links to IOKit, Cocoa, and OpenGL to the CMake build file for MacOS platforms
2021-05-24 11:05:08 +02:00
Chris 6c874feb7b Update BINDINGS.md (#1782) 2021-05-23 17:52:17 +02:00
Ray 03710c9d8e Some code tweaks for consistency 2021-05-22 16:54:04 +02:00
Ray cb698dd37d Update Makefile 2021-05-22 16:51:51 +02:00
Ray b36422083e Remove headers from shaders 2021-05-22 16:09:34 +02:00
Ray 5765b7895c Minor comments tweaks 2021-05-22 14:35:10 +02:00
raysan5 4aa680d6d3 Merge branch 'master' of https://github.com/raysan5/raylib 2021-05-21 22:59:38 +02:00
raysan5 60ca8acd0a Update version to 3.8-dev to note breaking changes
Some breaking changes were introduced lately, it's better to note that current version is not 3.7 anymore...
2021-05-21 22:59:00 +02:00
Bxil 352db3a183 Removes debug information from release builds (#1780) 2021-05-21 21:59:21 +02:00
Ray 4a099c3658 Review ExportImage() to use SaveFileData() #1779 2021-05-20 20:37:46 +02:00
Ray 23a08a483e WARNING: RENAMED: IsMusicPlaying() -> IsMusicStreamPlaying() 2021-05-20 19:27:04 +02:00
Ray f33cec64aa Use output->boneCount instead of nodes_count 2021-05-20 19:25:09 +02:00
Ray e401d5c48e WARNING: RENAMED: MeshBoundingBox() -> GetMeshBoundingBox()
Renamed for consistency with other function in raylib.
2021-05-20 19:24:28 +02:00
Ray 9360e4e2c1 Comment minor tweak 2021-05-20 19:14:42 +02:00
Ray 7b6b87ec5b Update VS2019 project: rlgl_standalone 2021-05-20 19:14:20 +02:00
Guillaume DEVOILLE b90ac7bd31 Fixed over-allocation of buffer (#1772)
output->framePoses[frame] is over-allocated.
framePoses is a 2D array:
- first dimension: frames (allocated l. 4717)
- second dimension: nodes (allocated l. 4731)
Second dimension should be allocated of nodes_count transformations only.
2021-05-15 00:41:33 +02:00
Gianni Alessandroni a84e98ba6c Hotfix for smooth pixel-perfect camera example [core_2d_camera_smooth_pixelperfect.c] (#1771)
* Hotfix for glitchy camera

Super small fix that was causing the camera to glitch every x amount of seconds/pixels. Works much better now, 3/4 lines changed.

* fixed dumb visual studio formatting problems
2021-05-14 18:06:47 +02:00
Ray 232378ed2d Merge branch 'master' of https://github.com/raysan5/raylib 2021-05-14 14:01:51 +02:00
Ray 3baba7ffe8 Review some VS warnings and messages 2021-05-14 14:01:42 +02:00
Guillaume DEVOILLE 45b0dc63cd Fixed GLTF boneWeights uint32 loading (#1768)
boneWeights uint32 were loaded in normals instead of boneWeights.
2021-05-13 13:58:51 +02:00
Ray fff06d24da Merge branch 'master' of https://github.com/raysan5/raylib 2021-05-12 19:51:39 +02:00
Ray 6c56fe2670 Update shell.html 2021-05-12 19:51:29 +02:00
Bxil dbe1c9c6e6 Removes Whole Program Optimization (#1767) 2021-05-12 19:20:27 +02:00
Astie Teddy d8e1a77da5 Update raylib-lua and raylib-wren binding versions (#1766) 2021-05-12 19:02:13 +02:00
Ray 6bd63de8d0 Reviewed latest PR
REMOVED: DrawBillboardEx()
2021-05-11 01:02:53 +02:00
nobytesgiven ac204a11f7 Redesigned billboards - added rotation/pro functions (#1759)
* Redesigned billboards - added rotation/pro functions

* updated parameters

Co-authored-by: nobytesgiven <nobytesigiven@github.com>
2021-05-11 00:55:43 +02:00
Gianni Alessandroni 4ab28fffb4 Added smooth pixel-perfect camera example + Small typo fix in examples_template.c (#1760)
* Typo fix

Changed "bsasic" to "basic" in the comments.

* Added pixel-perfect camera example

Added pixel-perfect camera example, both the .c file and the cover .png image. The example works with any resolution you want, as long as the ratio stays the same
(ex. 16:9, 4:3) ecc.

* Fixed Typecasts

Fixed compiler errors (implicit conversions)

* Precomputed rectangles, time-based movement and whitespace fix

Moved the source and destination rectangles for the renderTexture into their own variables, modified the animation to be time-based instead of frame-based, fixed the bug with whitespaces.

* Fixed spacing and added more consistency with sinf() and cosf()

* Fixed *= operator spacing
2021-05-10 20:16:12 +02:00
Lambert Wang e39e45824d Add RenderPolyLinesEx routine (#1758)
Co-authored-by: Lambert Wang <lambert.ww@gmail.com>
2021-05-10 20:08:58 +02:00
Dmitry Matveyev 5d831f3f18 Update NimraylibNow! - Nim language bindings version to 3.7 (#1764) 2021-05-10 19:43:17 +02:00
ProphesorIks 1d0767022d ~Updated project version (#1761)
Updated to fix versioning and linking issues.
Old version would cause examples to not be linked on fresh raylib install or linked with an old library version on updated raylib install.
2021-05-10 00:51:37 +02:00
Lambert Wang 2545f62565 Added support for additional mouse buttons (#1753)
* Added support for additional mouse buttons

* Renamed mouse button enum

Co-authored-by: Lambert Wang <lambert.ww@gmail.com>
2021-05-08 18:26:24 +02:00
Antonio Jose Ramos Marquez 2565c01158 check for vao extension (#1757) 2021-05-08 18:24:14 +02:00
Jeffery Myers 133e6f097d Convert the half sleep to a sleep that is a fraction of the target FPS (Default 95%) to reduce CPU use. (#1756)
Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2021-05-07 19:49:44 +02:00
Ray b62c86572e REVIEWED: raudio_standalone #1752 2021-05-07 15:38:13 +02:00
Astie Teddy c82d9cb89a Unset CORE.Window.ready on CloseWindow (#1749)
Window shouldn't be considered ready when CloseWindow has been called.
2021-05-05 19:08:15 +02:00
Rudolf Kemmler 1269ce8a6f modified Makefile.Android.linux in templates/simple_game (#1748)
switched out @echo for @printf to make it actually print newlines instead of literal \n's

Co-authored-by: Rudolf Kemmler <admin@rudolf-kemmler.de>
2021-05-04 22:53:59 +02:00
Ray a41ed986bd Expose RAYLIB_VERSION in raylib.h #1747 2021-05-04 11:20:47 +02:00
Ray c4eaf0076d Update raylib version 2021-05-04 11:19:28 +02:00
Ray e5708a8f36 Comment tweak 2021-05-03 19:05:53 +02:00
Ray 2015828fc6 Security check in case of not valid font 2021-05-03 19:05:43 +02:00
Ray 4c1af4cc90 Update BINDINGS.md 2021-04-30 13:01:25 +02:00
Théo Cavignac ecc00357b4 Update BINDINGS.md (#1744)
Bump version supported version by raylib-ocaml.
2021-04-29 12:13:28 +02:00
Ray a3e7664dcf Fixed bug that overrides other flags
This issue prevented enabling MSAA on several platforms
2021-04-29 00:07:28 +02:00
Ray ffadeeeb84 Decoupling rlgl from platform layer
Now rlgl only depends on OpenGL and it's completely decoupled from platform layer libraries (EGL)
2021-04-28 23:57:46 +02:00
Ray f516f4099b Corrected issue #1742 2021-04-28 19:27:50 +02:00
Ray d6708de7b0 Update README.md 2021-04-27 23:55:05 +02:00
Ray a113d3326b Disable raylib code 2021-04-27 23:12:04 +02:00
Ray fe607323aa Updated projects 2021-04-27 23:00:49 +02:00
Ray 131672f199 Updated linkage libraries #1732 2021-04-27 22:58:49 +02:00
Rabia Alhaffar 9b6a005819 Updated raylua and raylib-boo to raylib 3.7! (#1741) 2021-04-27 21:08:31 +02:00
Rabia Alhaffar 399894ac90 Fixed definition of UNCOMPRESSED_R8G8B8A8 (#1740) 2021-04-27 20:17:47 +02:00
Ray 89d5b3df44 ADDED: raylib-swift binding 2021-04-27 11:27:31 +02:00
Ray 6ebe76cba7 Minor tweaks 2021-04-27 11:05:05 +02:00
Ray 1aa8a4ff90 REVIEWED: rlLoadExtensions()
On PLATFORM_ANDROID, PLATFORM_RPI, PLATFORM_DRM and PLATFORM_UWP glfwGetProcAddress() is not defines, actually those platforms use egl platform windowing system.
2021-04-27 11:04:48 +02:00
Rob Loach fcf3a04825 BINDINGS: raylib-cpp targets raylib 3.7.0 (#1739)
https://github.com/RobLoach/raylib-cpp/releases/tag/v3.7.0
2021-04-27 10:31:15 +02:00
Gunko Vadim 5751776a73 Update BINDINGS.md (#1738) 2021-04-26 21:59:34 +02:00
Ray b6c8d343dc Update CHANGELOG 2021-04-26 18:00:33 +02:00
Jeffery Myers b663724293 Generate a mesh in client code. (#1735) 2021-04-26 17:30:07 +02:00
Ray bb33033389 Merge branch 'master' of https://github.com/raysan5/raylib 2021-04-26 00:36:22 +02:00
Ray a44815e939 REMOVED: GenMeshDefault() 2021-04-26 00:36:13 +02:00
Jeffery Myers 30db611e92 Disable projects that won't build by default from 2019 solution build configuration. (#1734) 2021-04-25 23:56:32 +02:00
Jeffery Myers 6c518008a5 Fixes for 64 bit typecast warnings (#1733) 2021-04-25 18:50:26 +02:00
raysan5 8719858655 Added opengl32.lib to the linker #1732 2021-04-25 13:51:17 +02:00
raysan5 0e2845ec26 Review OpenGL 1.1 building #1732
It works compiling with MinGW
2021-04-25 13:32:24 +02:00
raysan5 c4041043f5 Reviewed VS2019 projects 2021-04-24 19:58:24 +02:00
Ray 7ad17386f6 Update raylib.h 2021-04-23 17:24:25 +02:00
Ray f4abc05d62 Update README.md 2021-04-23 13:21:57 +02:00
Ray 8a55c60e47 Update shaders_mesh_instancing.c 2021-04-23 09:09:34 +02:00
Ray 03815ec4fe RPI4: Improve DRM card check #1723 2021-04-22 21:01:48 +02:00
Ray 9a0accddb8 Update HISTORY.md 2021-04-22 18:56:42 +02:00
Ray dcf52c132f Remove trail spaces 2021-04-22 18:55:24 +02:00
Ray f92ee46d86 Update README.md 2021-04-22 18:52:41 +02:00
Ray 2a9ffcc0a1 Update README.md 2021-04-22 18:48:36 +02:00
Ray b4e586f272 Update CHANGELOG 2021-04-22 18:41:51 +02:00
Ray cf201e0794 Update CHANGELOG 2021-04-22 18:39:33 +02:00
Ray 1161df0ee4 Added screenshots 2021-04-22 18:34:33 +02:00
Ray 715a46277e Update README.md 2021-04-22 18:33:59 +02:00
Ray 5ef777219a Reviewed templates Makefiles 2021-04-21 21:23:04 +02:00
Ray ac79d22a9b Reviewed file comments 2021-04-21 00:41:55 +02:00
Ray 0a6694708d Update README.md 2021-04-20 23:57:04 +02:00
Ray 52f91bc652 Update README.md 2021-04-20 12:31:12 +02:00
Ray 8812213c01 Update README.md 2021-04-20 12:30:31 +02:00
Ray ca8329c330 Update raylib_logo_animation.gif 2021-04-20 12:29:54 +02:00
Ray dec9f24673 Merge branch 'master' of https://github.com/raysan5/raylib 2021-04-20 12:19:13 +02:00
Ray 1e65817d05 Update models.c 2021-04-20 12:19:04 +02:00
Ray a599fd1095 Update CHANGELOG 2021-04-20 12:17:06 +02:00
Ray 3bf9ea1a4b Merge branch 'master' of https://github.com/raysan5/raylib 2021-04-20 12:16:18 +02:00
Ray bb743e8c6e ADDED: UpdateMeshBuffer() 2021-04-20 12:16:16 +02:00
Ray d533183b7f Update README.md 2021-04-20 00:43:48 +02:00
Ray f903686060 Update README.md 2021-04-19 23:51:19 +02:00
Ray f21e520c9c Update README.md 2021-04-19 23:29:40 +02:00
Ray 1c5cf90a52 Merge branch 'master' of https://github.com/raysan5/raylib 2021-04-19 22:40:13 +02:00
Ray d1537bfd61 Update raylib_logo_animation.gif 2021-04-19 22:39:59 +02:00
Ray 9b0dd543e0 Update README.md 2021-04-19 22:36:33 +02:00
Ray 9011b936cf Create raylib_logo_animation.gif 2021-04-19 22:34:30 +02:00
Stephan Soller 93d3212914 [examples] Added an example for raylib OpenGL interop (#1726)
* Added an example for raylib OpenGL interop.

* Removed C99 variable-length array to fix MSVC errors

* Moved the opengl interop example from shaders to others.
2021-04-19 20:28:14 +02:00
Ray 63a1bf373c Merge branch 'master' of https://github.com/raysan5/raylib 2021-04-19 19:41:41 +02:00
Ray 899afcbdca Minor tweaks 2021-04-19 19:41:32 +02:00
Stephan Soller 7f1068ef96 Added zoom independent sharp edges to the SDF text example. (#1727) 2021-04-19 19:40:34 +02:00
nathants 1c45a882f7 use bone weights for animation (#1728) 2021-04-19 18:26:40 +02:00
Ray 581bd0eb02 Remove trailing spaces 2021-04-18 23:50:32 +02:00
Ray 63432724c7 Update CHANGELOG 2021-04-18 21:18:53 +02:00
Ray 223091f44c Review extensions issue on macOS 2021-04-18 20:33:49 +02:00
Ray d4ccca81db WARNING: REDESIGNED: rlLoadExtensions() #1295
Added config flag: SUPPORT_GL_DETAILS_INFO
2021-04-18 20:24:19 +02:00
Peter Arato 2ad3eb1d57 Update and fix android linux makefile template (#1725) 2021-04-17 17:58:25 +02:00
Ray 640fc4d0a0 Minor tweaks 2021-04-16 21:19:28 +02:00
Ray 657b527bc6 Update SPONSORS.md 2021-04-16 12:52:22 +02:00
Ray 74fc4b1a03 Update SPONSORS.md 2021-04-16 12:47:33 +02:00
Ray e91eabdb09 Update SPONSORS.md 2021-04-16 12:45:01 +02:00
Ray a3a9416b33 Update SPONSORS.md 2021-04-16 12:37:04 +02:00
Ray 815a064abe Update SPONSORS.md 2021-04-16 12:33:54 +02:00
Ray 929ff45568 Update ROADMAP.md 2021-04-16 11:57:33 +02:00
Ray c96304c83f Update HISTORY.md 2021-04-16 11:23:19 +02:00
noloop 8453ff837b Fix old directories used and windows/linux portability (#1722)
* Fix olds directories used and windows/linux portability

* Fix windows/linux portability
2021-04-16 00:25:40 +02:00
Ray 4badff1c2f Update CONTRIBUTING.md 2021-04-15 12:31:55 +02:00
Ray 68f664afa4 Create CONTRIBUTORS.md 2021-04-14 21:18:54 +02:00
Ray fbf1f32807 Update CONTRIBUTING.md 2021-04-14 21:16:04 +02:00
Ray ac95a2e27c Update CMakeOptions.txt 2021-04-14 21:14:55 +02:00
Ray 45823a36eb Added some OpenGL extensions comments 2021-04-14 21:07:04 +02:00
Ray 37f523fdeb Update external libraries 2021-04-14 21:06:00 +02:00
Ray 646f1f06c4 Merge branch 'master' of https://github.com/raysan5/raylib 2021-04-14 21:05:28 +02:00
Ray d7b6505f64 Update Makefile 2021-04-14 21:05:23 +02:00
Ray dc8a86557e Update README.md 2021-04-14 11:38:10 +02:00
Ray d289085ce3 Reviewed DrawLine3D() limits #1721 2021-04-13 01:08:39 +02:00
Ray 06f16f199a REVIEWED: DrawLine3D() #1721
Increased batch limit check to compensate internal buffers alignment for lines drawing
2021-04-13 00:05:21 +02:00
Ray afb254b985 Update rlgl.h 2021-04-11 00:58:04 +02:00
Ray d2cb628a66 Some defines simplification 2021-04-11 00:55:45 +02:00
Ray fcab72f915 Update history -WIP- 2021-04-10 01:16:15 +02:00
Ray caa375412b Update CHANGELOG 2021-04-10 00:37:19 +02:00
Ray 88089f22f3 Update history for raylib 3.7 -WIP- 2021-04-10 00:34:54 +02:00
Ray 44f7f8a997 Update CHANGELOG 2021-04-10 00:28:08 +02:00
Jon c74230a9ea Enable DRM platform cross compilation support (#1717)
* Log a warning if chdir failed, use agnostic CHDIR instead of chdir

* Only include libdrm directory explicitly when not cross compiling
2021-04-09 19:57:14 +02:00
Ray d17c519f88 Update with more changes from commits... -WIP- 2021-04-09 13:01:17 +02:00
Jeffery Myers f6f9a3d925 use xm streams in the same sample sample size as the output device (#1716) 2021-04-09 11:00:21 +02:00
Ray 09e6f42f2e Update Notepad++ Intellisense 2021-04-09 01:28:52 +02:00
Chris 3cdac3e11e Fix off by one bug with GetGamepadAxisCount on PLATFORM_DESKTOP (#1715)
- Found testing core_input_gamepad. The last axis was not drawn.
- GLFW_GAMEPAD_AXIS_LAST is defined to the last axis which is 5
not the total number which is 6.
2021-04-09 00:55:47 +02:00
Ray 8a8948780e REVIEWED: GetKeyPressed() #1712 2021-04-09 00:21:56 +02:00
Ray 49e17044c9 Update resource files 2021-04-09 00:20:43 +02:00
Ray 15ee280632 Update CHANGELOG -WIP- 2021-04-08 00:06:41 +02:00
Ray 45c964c1e6 Update core_vr_simulator.c 2021-04-07 12:30:45 +02:00
Ray bafa13f207 Update core_vr_simulator.c 2021-04-07 12:27:11 +02:00
Ray bdc5686e4c Update shaders_julia_set.c 2021-04-07 12:25:04 +02:00
Ray ed96bc6441 Update core_vr_simulator.c 2021-04-07 12:24:43 +02:00
Ray 6719c3a1cd REVIEWED: OpenGL 2.1 compilation 2021-04-07 09:39:41 +02:00
Ergoold 85ef9d8f2e Fix ImageClearBackground (#1711)
- Dividing by height instead of width results in missing parts of the image.
2021-04-07 00:02:37 +02:00
Ray b3f75b91ff REDESIGNED: Vr stereo mode 2021-04-06 23:23:03 +02:00
Ray 84d0d21f23 Reviewed Vr stereo 2021-04-06 23:06:03 +02:00
Ray 71b86bf4d0 REDESIGNED: Vr stereo rendering 2021-04-06 22:49:41 +02:00
Saikyun fd663024ea added import in order for alloca to work on macos (#1710) 2021-04-06 21:42:00 +02:00
Ray 6d3c66a179 Merge branch 'master' of https://github.com/raysan5/raylib 2021-04-06 21:40:05 +02:00
Ray 68124599e1 Corrected issue on RPI 2021-04-06 21:39:54 +02:00
frithrah b2545e053a Minimum number of segments in circle sector functions changed from hard-coded to based on degree range. (#1707)
Co-authored-by: Simon <simon@frithrah.com>
2021-04-06 14:29:58 +02:00
Ray 109d00cb14 Reorganized shaders functions 2021-04-06 13:10:12 +02:00
Ray 551944e15b Minor comment tweaks 2021-04-06 13:04:15 +02:00
Ray 0a34a35403 Update miniaudio.h 2021-04-06 11:57:51 +02:00
Ray 802ca161d3 REVIEWED: Some rlgl cleaning on unused types 2021-04-06 00:43:38 +02:00
raysan5 a8dd4127f3 Added security check to avoid internal render batch overflow 2021-04-05 13:59:52 +02:00
raysan5 0e04ae561e Merge branch 'master' of https://github.com/raysan5/raylib 2021-04-05 13:48:03 +02:00
raysan5 7b37caa96c REVIEWED: Model scale #1700 2021-04-05 13:47:52 +02:00
m4ntr0n1c abf481023b Update to the xm player routine and support functionalities (#1701)
* Update jar_xm.h

Major bug fixes and refactoring

* Update jar_xm.h

update to version 0.31
2021-04-05 13:46:09 +02:00
raysan5 c2c141f941 Update version to raylib 3.7 2021-04-05 13:36:23 +02:00
raysan5 b52cd8f605 Reorganized functions by module 2021-04-05 13:35:59 +02:00
raysan5 5fd441969d REVIEWED: rlLoadShaderDefault()
Operate over global variable
2021-04-05 13:35:42 +02:00
raysan5 14aa29d18b Update rlgl.h 2021-04-04 15:10:39 +02:00
raysan5 4c9d2e719e Merge branch 'master' of https://github.com/raysan5/raylib 2021-04-04 14:59:29 +02:00
raysan5 66f3434571 REDESIGNED: Shapes texture/rec moved to shapes module 2021-04-04 14:59:17 +02:00
Rob Loach d58b7b509e Make SaveFile* callbacks return a boolean (#1697) 2021-04-03 08:56:42 +02:00
raysan5 c21baf0d92 ADDED: GenMeshDefault() #1556 2021-04-02 15:56:35 +02:00
raysan5 46650b5fb1 Reviewed skybox and pbr examples 2021-04-02 15:41:44 +02:00
raysan5 51f3129c5d Reviewed examples 2021-04-02 15:34:32 +02:00
raysan5 ccdf7ff335 REDESIGN: Move GenTexture*() functions to PBR example #721
Removed functions from rlgl module.
2021-04-02 14:29:33 +02:00
raysan5 67dda62867 REVIEWED: GenTexture*() functions #721
Avoid RLGL data dependency to allow moving the functions somewhere else
2021-04-02 14:01:30 +02:00
raysan5 7e2531fe35 REVIEWED: ToggleFullscreen() on web #1241
After some investigation, I came to the conclusion it's impossible to get a solution that works for all situations. Fullscreen mode on web depends on the browser, the canvas and also the desired scaling strategy of the user. Just choose a solution that fits me needs for now and let the user manage the canvas on their webs (hopefully not requiring ToggleFullscreen() call).

Also removed several useless related callbacks.
2021-04-02 13:46:56 +02:00
raysan5 38df0760cc Review compress/decompress logs 2021-04-02 13:43:10 +02:00
raysan5 d64f27bad1 Remove old flag 2021-04-02 13:42:07 +02:00
raysan5 2b6e7c8632 Update Makefile 2021-04-02 13:41:54 +02:00
raysan5 b54d96205f Review libc dependency 2021-04-01 21:22:18 +02:00
Ray 1da0176cad Update README.md 2021-04-01 20:42:18 +02:00
raysan5 aed0fee2ca Remove trailing spaces 2021-04-01 20:24:33 +02:00
raysan5 b4975619ed Review comments 2021-04-01 20:23:05 +02:00
raysan5 736d5920c7 Update core_input_gamepad.c 2021-04-01 20:22:52 +02:00
raysan5 cdc3754449 ADDED: Support model normal matrix location #1691 2021-03-31 20:44:16 +02:00
raysan5 2488d361b6 Review formatting 2021-03-31 20:15:04 +02:00
raysan5 c772de702b REVIEWED: DrawMeshInstanced() matrix computations
Simplified some parts and reviewed for a correct computation of matrices, considering stereo render view/projection per eye transformations
2021-03-31 19:59:23 +02:00
raysan5 434a3a276d REVIEWED: Define instancing API entry points for RPI 2021-03-31 18:41:03 +02:00
raysan5 8e51e6d1df REVIEWED: CheckCollisionPointLine()
Use fabsf() instead of abs()
2021-03-31 18:40:33 +02:00
raysan5 fd3e2fda00 RENAMED: example: shaders_mesh_instancing
shaders_rlgl_mesh_instanced -> shaders_mesh_instancing
2021-03-31 18:40:04 +02:00
raysan5 8f1d81df0f Review code formatting 2021-03-31 17:55:46 +02:00
mkupiec1 3d1a05d588 [shapes] CheckCollisionPointTriangle (fix), CheckCollisionPointLine (new routine) (#1695)
* CheckCollisionPointTriangle

* New feature proposal to existing collision detection routines.
It checks if point [point] belongs to line created between two points [p1] and [p2] with defined margin in pixels[threshold].
1693
2021-03-31 16:50:05 +02:00
raysan5 98a2e16d4d REVIEWED: RPI instancing checks #1679 2021-03-31 16:44:14 +02:00
raysan5 b5aaf33058 Review matrix multiplication 2021-03-28 22:04:04 +02:00
raysan5 aaf0d8b839 REVIEWED: rlgl: Stereo render is working again
As a bonus, stereo render is compatible with mesh instancing now!
2021-03-28 21:35:58 +02:00
raysan5 00e71faed6 REVIEWED: text_draw_3d, code formatting 2021-03-28 21:09:34 +02:00
raysan5 6a24dd8945 REVIEWED: tinyobjloader #1568 2021-03-28 20:51:29 +02:00
raysan5 b8c3b8277c Reviewed UWP project #1681 2021-03-28 20:21:50 +02:00
raysan5 8f3e91ae83 REVIEWED: models_gltf_model #1684 2021-03-28 20:15:57 +02:00
raysan5 23a764190e ADDED: LoadShaderFromMemory() #1690 2021-03-28 20:12:48 +02:00
raysan5 bc6b16beb2 REVIEWED: DrawTexturePoly() 2021-03-28 20:07:59 +02:00
Vlad Adrian 668ba870e4 Added draw 3d text example (#1689) 2021-03-28 16:08:14 +02:00
Carlos Hernandez Barbera 7eaeffc8d9 GetCollisionRayMesh makes use of triangle count (#1688)
Co-authored-by: Carlos Hernandez Barbera <carloshdezbarbera@gmail.com>
2021-03-27 18:24:39 +01:00
Maksymilian Mika f38ced15e7 Fixing pointer arithmetic to avoid error [-Werror=pointer-arith] (#1685) 2021-03-27 07:54:44 +01:00
Dan Bechard b6ca524bdd Preserve floating point values in DrawRectangleLinesEx (#1683) 2021-03-26 20:15:19 +01:00
Ray f9bab14fdb REVIEWED: DrawMeshInstanced() 2021-03-26 00:12:29 +01:00
Ray c6828070dc Update models_yaw_pitch_roll.c 2021-03-26 00:11:48 +01:00
Ray fb9a437f8a REVIEWED: OpenGL 1.1 working again 2021-03-25 20:35:48 +01:00
Ray cba412cc31 WARNING: BREAKING: rlgl redesign -WIP-
rlgl module has been completely redesigned to move Mesh/Material structures to [models] module. Still some work to do, broken elements:
 - [models] OpenGL 1.1 mesh rendering: DrawMesh()
 - [models] Mesh Instancing: DrawMeshInstanced()
 - [models] Stereo rendering: DrawMesh()
 - [models] GL_FLOAT, GL_UNSIGNED_INT exposed
 - [models] GenMeshCustom()
 - [rlgl] GenTexture*() functions removal?
2021-03-25 14:28:12 +01:00
chriscamacho 9569d6a802 Add DrawTexturedPoly and example (#1677)
* adds DrawTexturedPoly with example

* the actual example ... ahem

* moved DrawTexturePoly to textures function and example
NB function name changed to fit with other DrawTextureXXX functions
(no "d" )

Co-authored-by: codifies <you@example.com>
2021-03-25 14:22:10 +01:00
Ray dd59350485 REVIEW: instancing example formating 2021-03-25 13:41:32 +01:00
Max 7e58838895 added animation and keyboard controls to rlgl mesh Instancing example (#1678) 2021-03-25 11:12:59 +01:00
Jeffery Myers 13f97471a2 Change the color of the FPS display if the FPS is low (orange for <30, red for < 15). (#1676)
Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2021-03-24 17:59:05 +01:00
Ray bb73a8089a Reviewed DrawFPS() comment 2021-03-24 17:06:32 +01:00
Ray 9bea64b5e4 REMOVED: DrawGizmo()
This is a very simple and specific implementation that should be better addressed by the users
2021-03-24 17:02:40 +01:00
Ray 9047025ab7 Update textures.c 2021-03-24 00:41:01 +01:00
Ray c2bc3d22a1 REVIEWED: DrawRectangleRounded() performance #1523
Function analyzed using RenderDoc. It's a complex function and could require many triangles for the corners but it seems overall it's quite optimized!
2021-03-24 00:25:53 +01:00
Ray 60bfee4a7d Added security check for render batch #1670 2021-03-23 23:45:14 +01:00
Victor c5b0a1f005 Fix activeTextureId to have MAX_BATCH_ACTIVE_TEXTURES elements instead of the hardcoded 4 (#1674) 2021-03-23 20:17:23 +01:00
Chris 2532c396ed Fix 90 degree bug with DrawTexturePro and DrawRectanglePro (#1673)
- The vertices did not map to where I expected causing rotation to be
off by 90 degrees. I reorganized the vertices making it easier to
reason about which fixes this.
- The order for drawing is now topLeft, bottomLeft, bottomRight,
topRight.
2021-03-23 14:40:26 +01:00
Ray 71fe0bff95 Update text_raylib_fonts.c 2021-03-23 12:20:28 +01:00
Ray 89278953ae Update text_raylib_fonts.c 2021-03-23 12:20:11 +01:00
Ray 3e6ee028e5 Update rlgl.h 2021-03-23 12:15:52 +01:00
Ray 6f5a4a9351 REVIEWED: rlgl_standalone usage 2021-03-23 11:51:09 +01:00
Dan Bechard 5325d8d2ba Don't call sqrtf when axis already normalized (#1672) 2021-03-23 11:32:25 +01:00
Davidson Francis 81738bfa98 Fix PATH for other PLATFORM_OS's (#1671)
The Raylib root Makefile for PLATFORM=PLATFORM_WEB is assumed to
run in Windows environments, which makes it incorrectly set the
PATH variable, so Linux (and possibly other) environments are not
able to find binaries from EMSDK_PATH.

Fix this by checking which PLATFORM_OS and configure PATH
accordingly.
2021-03-23 07:53:25 +01:00
Jeffery Myers e48b9a6da1 [Examples] Warning fixes (pt 1) (#1668)
* Fix some warnings in examples.

* cleanups from review

Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2021-03-23 07:51:52 +01:00
Jeffery Myers c6dd41495b typecast warning fixes. (#1667)
Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2021-03-22 20:45:46 +01:00
Ray 2ce28f75ad WARNING: BREAKING: REDESIGNED: rlgl module
- Many functions renamed to follow rl*() convention
- Some internal functions exposed in the API
- Some functionality moved to other modules
- Reorganized all functions by categories
- Make sure it keeps working with OpenGL 1.1 and 2.1
2021-03-22 20:45:04 +01:00
Ray 24dae29a03 Review latest PR and some formatting 2021-03-22 20:41:33 +01:00
Jeffery Myers 2c0a533948 [AUDIO] Music Looping enhancements (#1665)
* Add loop functions for music files.
Tell xm tracker to loop tracker when loop state changes.
Don't let looped xm tracker streams restart, they are infinite
Use modulo to make time tracker for xm looped streams work correctly.

* Remove loop functions, set XM loop in update based on flag.
Formatting cleanups.

Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2021-03-22 20:36:13 +01:00
Rabia Alhaffar 8e1e1ef970 Changed IsKeyPressed('R') to IsKeyPressed(KEY_R) for Physics examples! (#1666) 2021-03-22 16:44:12 +01:00
Jeffery Myers b573ff3e7a [AUDIO] Use device native sample rates (#1660)
* Init MinAudio to a sample rate of 0 to let the device pick the rate.
Read the rate from the device after it starts up.
Convert AUDIO_DEVICE_SAMPLE_RATE from a #def into an int, that is set from the device's rate
Set all sample systems to use the AUDIO_DEVICE_SAMPLE_RATE as the target rate to minimize resampling.

* use device sample rate instead of separate var
let config define a device sample rate if it wants to, but let the default be 0 for native rate.

* Don't use fixed sample rates for tracker files.
Remove config default audio buffer size and replace with a function that computes one for a reasonable frame rate at the output sample rate.
2021-03-21 22:07:55 +01:00
Ray c37f61d31f REVIEWED: rlgl module #1523 2021-03-21 20:31:35 +01:00
Ray e0e68aad54 Update Makefile 2021-03-21 18:33:16 +01:00
Ray 2f943aaff0 Reverting align change #1658 2021-03-21 18:32:05 +01:00
Ray ed4ca6a7f3 WARNING: BREAKING: rlgl module redesign -WIP-
- Some rlgl functions have been moved to core
 - Some functions have been made internal to rlgl
 - rlgl functions prefixed with rl*()
2021-03-21 01:29:31 +01:00
Ray f4f6f665f7 Fixed possible issue with memory alignment #1658 2021-03-20 21:02:20 +01:00
Ray dcde99bbb8 Corrected issue with HighDPI on macOS 2021-03-20 20:58:24 +01:00
Ray 364fbbd283 Review Discord link with Vanity URL 2021-03-20 20:22:44 +01:00
Ray 95f9a6171b Review HighDPI macOS support #1510 2021-03-20 20:06:38 +01:00
Sean Heber f4d6bad607 Considering the window's scale when setting the viewport. (#1659)
This appears to fix the issue with macOS windows opening with the wrong scale.
2021-03-20 19:57:29 +01:00
Ray a76fcaba3e BIG CHANGE: REDESIGNED: Vr device simulator #1582
Vr simulator has been moved to core module and completely redesigned. Now user is in charge of stereo-render fbo and also in full control of distortion shader. Code is a bit more complex but better aligned with other raylib examples.
2021-03-20 18:36:25 +01:00
Ray 4fba09794f Example considering HighDPI on RenderTexture draw #1086 2021-03-20 13:34:06 +01:00
Ray 5049137715 Added KEY_NULL #520 2021-03-20 13:08:13 +01:00
Ray 4fb6f4af75 Merge branch 'master' of https://github.com/raysan5/raylib 2021-03-20 13:02:53 +01:00
Ray 95282edaf9 REVIEWED: HighDPI support on macOS retina #1510 2021-03-20 13:02:44 +01:00
Rabia Alhaffar 96e5e0dfb2 Fixed funny typo mistake... (#1657) 2021-03-20 01:18:44 +01:00
Ray 75882f3254 Delete Avocado.glb 2021-03-20 00:02:28 +01:00
Ray 442abaab72 Updated example assets 2021-03-19 22:39:39 +01:00
Ray 5967c1ba1a REVIEWED: BeginMode3D() 2021-03-19 21:55:47 +01:00
Ray be8d5a7ae2 RENAMED: camera.type -> camera.projection 2021-03-19 20:14:14 +01:00
Ray 9909068714 Removed trailing spaces 2021-03-19 19:43:44 +01:00
Ray e28f754fbe Reviewed latest PR: formatting and some comments 2021-03-19 19:42:36 +01:00
Chris 45670fbf2d Optimize DrawTexturePro and DrawRectanglePro transformations (#1632)
* Optimize DrawTexturePro and DrawRectanglePro transformations
- Add check so rotation is only applied if rotation != 0.0f.
- Replace matrix usage by calculating the vertex data directly.

* Fix error with windows build and trim whitespace
2021-03-19 19:19:10 +01:00
frithrah 2f367a905e Changed DrawRing and DrawCircleSector angle params from int to float to allow greater accuracy. (#1656)
Co-authored-by: Simon <simon@frithrah.com>
2021-03-19 19:13:55 +01:00
Ray 7a566a07ea Update text_input_box.c 2021-03-19 19:12:08 +01:00
Ray fe9181c1b4 REVIEWED: QuaternionFromEuler() #1651 2021-03-19 18:24:12 +01:00
Ray 3e25760950 REMOVED: GetMouseCursor()
This function could be confusing depending on the context, it's better to let the user track the current active cursor
2021-03-19 18:20:14 +01:00
Ray 8527dbc6e2 WARNING: REMOVED: GamepadNumber enum 2021-03-19 18:16:05 +01:00
Ray 07d82a91c5 WARNING: BREAKING: RENAMED: camera.type to camera.projection 2021-03-19 13:56:46 +01:00
Ray d4e2c331b1 REVIEWED: BeginMode3D()
Simplified some code
2021-03-19 13:20:23 +01:00
Ray a1d9987e7c WARNING: BREAKING: REVIEWED some enums naming
Now enum names are more consistent between them.
2021-03-19 13:19:54 +01:00
Ray 664fbb87f5 REVIEWED: Material params #1649
Just assigned a fixed memory size for custom Material parameters in case of being required, so we shouldn't worry about allocating/freeing them.
2021-03-18 13:57:53 +01:00
Ray ca1f2f9078 REVIEWED: MatrixRotateZYX() #1642 2021-03-18 13:47:18 +01:00
Ray 8b0574a217 REVIEWED: DrawLine3D() #1643 2021-03-18 13:41:58 +01:00
Ray 0cbb3878c9 Merge branch 'master' of https://github.com/raysan5/raylib 2021-03-18 13:39:06 +01:00
Ray 2b9d81c9bc REVIEWED: QuaternionFromEuler() #1651 2021-03-18 13:38:56 +01:00
Joseph Montanez 45b1e3c72c raylib-php && raylib-phpcpp support 3.5 (#1654) 2021-03-18 13:22:39 +01:00
Ray e5834210d3 Update models_skybox.c 2021-03-17 19:40:59 +01:00
Ray 1cc838cef4 Update textures.c 2021-03-17 19:37:03 +01:00
Ray bae423be41 Create reload.fs 2021-03-17 19:18:31 +01:00
Ray ff6d5c8ddb REVIEWED: shaders_multi_sample2d 2021-03-17 19:03:51 +01:00
Ray aba69146f2 Support instancing in OpenGL ES 2.0 if available
Checking for extension and enabling it if available
2021-03-17 13:56:00 +01:00
Ray 3c76b5cc8e Update to latest emscripten 2021-03-17 13:53:31 +01:00
xdrie 811e241f22 Update dray bindings version to 3.5 (#1650)
I just updated dray to bind to the raylib 3.5 api.
2021-03-15 08:07:49 +01:00
Hristo Stamenov bc9194690c Implement UnloadModelAnimations (#1648) 2021-03-14 19:30:18 +01:00
Ray f7e48c95cd Added some comments on libc dependencies 2021-03-14 14:14:51 +01:00
Ray 1afd56dbf6 Use UnloadFileData() 2021-03-14 14:14:31 +01:00
Hristo Stamenov f9b79403d1 Improve gltf support (#1647)
* Implement a load values from accessor function.
Added some more value types for the different GLTF attributes.
Fixed crash when loading animated triangle.

* Split GLTF model loading into separate functions for readability.

* Fixed the already working models that I broke when introducing GLTFReadValue.
Improved the example for gltf models to be able to switch between a few models.

* Removed license from screen. It is pu inside a license file anyway.

* Small improvements on the naming of functions
Removed (*model). and replaced it with model->
2021-03-14 12:09:31 +01:00
Ray 01e28263be WARNING: VERY BREAKING CHANGE: Renamed some enum values for consistency
Some enums values have been renamed to be more consistent and also provide a more detailed description:
 - ShaderLocationIndex:    LOC_VERTEX_POSITION -> SHADER_SHADER_LOC_VERTEX_POSITION
 - ShaderUniformDataType:  UNIFORM_VEC2 -> SHADER_UNIFORM_VEC2
 - MaterialMapType: MAP_ALBEDO -> MATERIAL_MAP_ALBEDO
 - PixelFormat: UNCOMPRESSED_GRAYSCALE -> PIXELFORMAT_UNCOMPRESSED_GRAYSCALE
2021-03-14 11:05:51 +01:00
Ray 75038baf71 Reviewed UWP project config 2021-03-13 13:08:05 +01:00
Ray fe3256be9f Renamed some functions to use latest raylib version 2021-03-12 18:00:36 +01:00
Ray 0872365938 Add config flag: SUPPORT_WINMM_HIGHRES_TIMER #1641
Useful to avoid WinMM requirement and useful to avoid possible performance issues.
2021-03-12 17:18:48 +01:00
Ray 755ed388b2 Minor tweak to avoid warning 2021-03-12 17:17:53 +01:00
Hristo Stamenov 5c2983f510 Gltf model and animations exploring problems (#1635)
* Added bone binding to whole mesh and not only set vertices.
+ Also added missed setting of the animation count.
+ Removed double ; on one line

* Added more of the gltf sample models

https://github.com/KhronosGroup/glTF-Sample-Models
We need to make it working for all of them.

* Binding to initial bind pose added.

* Fix cube disappearing bug because lerpPercent could be Inf.

* Fixed for rigged figure also
2021-03-09 00:11:08 +01:00
Ray f0ab4723b9 Merge branch 'master' of https://github.com/raysan5/raylib 2021-03-09 00:07:19 +01:00
Ray b7f2059dc3 Update miniaudio.h 2021-03-09 00:07:08 +01:00
Hristo Stamenov ef9f67749a Fix fullscreen resolution (#1637)
* Always try to set vsync.
Use the internal monitor function to correctly get the display for windows.

* Modified how fullscreen gets toggled.

- Removed the unsetting and setting of the resize callback function. Instead of that I moved the fullscreen flag setting into a more correct place before setting the fullscreen so that this flag can be used in the callback.
- In the resize callback now window size is only set when it is not fullscreen resulting in preserving the window size.
- When going fullscreen the larges resolution is used so that there are no problems of the type when you minimize the window you cannot use anything else in your desktop because the resolution might be too low. If a low res effect is desired one should use render texture (this is the approach all game engines use).

* Set correct return to window in case of fail to get monitor.

* Set the refresh rate on the mode.

* Made changes based on review from @raysan5

Co-authored-by: Jeffery Myers <JeffM2501@gmail.com>
2021-03-08 22:51:10 +01:00
Kirottu 19651cfaad Added SUPPORT_STANDARD_FILEIO flag support for the CMake build system (#1638)
* Update CMakeOptions.txt

* Update config.h.in

* Added SUPPORT_STANDARD_FILEIO to CMakeOptions.txt

* Fixed typo

* Added SUPPORT_STANDARD_FILEIO to CompileDefinitions.cmake

Co-authored-by: KirottuM <kirottum@protonmail.com>
2021-03-08 22:12:27 +01:00
Ray 8dc3057fe5 Update windows_examples.yml 2021-03-08 19:21:24 +01:00
Ray 915b0780d6 Update core_3d_picking.c 2021-03-08 19:19:43 +01:00
Ray 55bf595cae Create windows_examples.yml 2021-03-08 19:17:42 +01:00
Ray 955d4d3d1a Create linux_examples.yml 2021-03-08 19:09:22 +01:00
Ray 8a30a2408c ADDED: Required callbacks
Removed memory allocation callbacks
2021-03-08 18:48:27 +01:00
Jeffery Myers 3e6f0d7372 Always try to set vsync. (#1636)
Use the internal monitor function to correctly get the display for windows.
2021-03-08 18:08:37 +01:00
Ray 0d096b43c2 Update some comments to warn users about callbacks 2021-03-04 20:44:22 +01:00
Ray b084552808 ADDED: Config flag: SUPPORT_STANDARD_FILEIO
This new flag allows omitting stdio.h library in case of a custom implementation is used.
2021-03-04 20:36:04 +01:00
Ray 7ad1370193 Some naming tweaks 2021-03-04 20:22:58 +01:00
Ray 1ed72b7812 Minor struct organization tweak 2021-03-04 12:08:54 +01:00
Ray c4a7c702b4 FEATURE: Several callbacks added -WIP- #1523 #1329
NOTE: This feature is still under consideration and not complete.
2021-03-04 12:06:28 +01:00
Ray af3926af4b REVIEWED: Examples to new enum values 2021-03-04 11:51:54 +01:00
Ray c8ed231eca Update text_font_filters.c 2021-03-03 23:05:52 +01:00
Ray ca22a87949 REVIEWED: TextFormat() #1626 2021-03-03 19:55:09 +01:00
Ray c938d71d15 Corrected issue with enums renamed 2021-03-03 19:51:23 +01:00
Ray 0b108c2087 Corrected bug 2021-03-03 19:49:10 +01:00
Ray dfe797060a WARNING: BREAKING: RENAMED: enums values
RENAMED: TextureFilterMode values
RENAMED: TextureWrapMode values
2021-03-03 19:47:37 +01:00
Ray 408f5aedb8 WARNING: BREAKING: RENAMED enum values
RENAMED: CubemapLayoutType and NPatchType
2021-03-03 19:36:28 +01:00
hristo 81908f7960 Removing +1 on comparing extesnions because this way it checked the file extension without the . against the file extension with the . resulting in always false. (#1629) 2021-03-03 15:41:15 +01:00
waotzi e09f5179e6 replace vraylib link (#1627)
the vraylib binding from  MajorHard doesn't seem to be getting any updates, so maybe replace it with the working fork?
2021-03-03 00:03:55 +01:00
Ray ab36fbf24a Reviewed defines, try to avoid elif statements 2021-03-02 12:45:23 +01:00
Ray 2a5ce96047 REVIEWED: Wait() to support FreeBSD #1618 2021-03-02 12:44:53 +01:00
Ray 01b3c97c42 Some misc tweaks 2021-03-02 02:03:52 +01:00
Ray 8df56c5843 REVIEWED: rlUnloadMesh() 2021-03-02 01:41:30 +01:00
Ray c514431e79 REVIEWED: rlUnloadMesh() 2021-03-02 01:35:30 +01:00
Ray bcc4418ff0 REVIEWED: GetFileExtension() to include the dot #1523 2021-03-02 01:07:08 +01:00
Ray 2ff5fa73e9 REVIEWED: rlUnloadMesh() #1615 2021-03-02 00:34:10 +01:00
Ray 742206c1f2 Review formatting 2021-03-02 00:31:04 +01:00
masterex1000 4e6253b546 Add check to flip quaternion (#1624) 2021-03-02 00:29:48 +01:00
Ray 5902cc6d9b REVIEWED: GetScreen*() #1570
Now GetScreenWidth() and GetScreenHeight() return the current fbo width and height.
2021-03-01 23:51:32 +01:00
Ray 3f6a08535f REVIEWED: CheckCollisionLines() 2021-03-01 23:39:08 +01:00
Jeffery Myers 0f10c44578 Fixes gl state after HDR texture functions. (#1621)
Updates skybox demo to show how to do both HDR and non HDR skyboxes

Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2021-02-28 23:31:25 +01:00
Rabia Alhaffar b64fe4dfed Readded survived copy of Harbour bindings! (#1616) 2021-02-26 15:54:24 +01:00
Ray 58e4efbba8 Review bug on OpenGL 1.1 2021-02-26 13:40:43 +01:00
Rabia Alhaffar 4e1c7a9f46 Added raylib-v7 and done edit as comparing between JavaScript bindings... (#1614) 2021-02-25 18:26:29 +01:00
Agnis "NeZvērs" Aldiņš ead339fa96 LoadMusicStreamFromMemory OGG support (#1613) 2021-02-25 11:55:08 +01:00
Agnis "NeZvērs" Aldiņš 24839c7cfb jar_xm_create_context_safe requesting const char* (#1611)
Fixing compiler warning for passing (unsigned char*) to (const char*)
2021-02-24 12:23:39 +01:00
Chris Sinclair 84ab4ce007 Patch up GLTF Skeleton loading (#1610)
* Add support for u8 bone indicies when loading glTF

* Fix segfault for glTF animations not keyframed at 0

When loading glTF animations we lerp between keyframes, and previously
assume that if the frame we are considering has a later keyframe, there
must be a previous keyframe. This is not true if the animation's first
keyframe is some time into the animation. In this case we now
effectively clamp to that first keyframe for any time prior to it.

* Respect parent bones tranform when loading glTF animations

We previously assumed that when loading glTF animations, the bones were
ordered with those higher up the skeleton tree (i.e. closer to the root)
came first in the list of nodes. This may not be true, so now we
repeatedly loop, preparing each level of the skeleton tree one after the
other, starting at the root level. This ensures that any parent
transforms are applied before transforming any child bones.

We also ensure that we have forced the loading of animation data before
attempting to interpolate to generate the animation frames for use
later, without this no animations are applied.

Finally we remove the check that assumed the first node in the nodes
list is the root, and use an invalid index value as the sentinal value
for when a node has no parent. Previously this was 0, which made
distinguishing between root nodes and children of the first node
impossible.
2021-02-24 09:25:20 +01:00
Agnis "NeZvērs" Aldiņš 0cb748f30b LoadMusicStreamFromMemory wav mp3 flac support (#1609) 2021-02-24 09:22:21 +01:00
Agnis "NeZvērs" Aldiņš 209445ccde LoadMusicStreamFromMemory (#1606)
* define SUPPORT_FILEFORMAT_MOD in config.h

* RLAPI LoadModuleFromData() definition in raylib.h

* LoadModuleFromData() definition in raudio.h

* LoadModuleFromData implementation in raudio.c

* Rename API to LoadMusicStreamFromMemory & default unload.

* raudio.c tabs to spaces

* Styling curly bracket and removing dev debugging TRACELOG

Co-authored-by: nezvers <agnis16@inbox.lv>
2021-02-22 19:45:52 +01:00
Ray 478f4de7ae Update models_material_pbr.c #1571 2021-02-21 12:31:50 +01:00
Ray ef8318f5e3 [models] Move vboId ALLOC/FREE to rlgl module #1603
Actually, it seems more logical that rlgl takes care of OpenGL data than the models module...

Also, models module loaded vertex data is unloaded by models module.
2021-02-21 12:09:52 +01:00
Airbus5717 34f5532fad Update BINDINGS.md (#1605) 2021-02-21 10:45:18 +01:00
RedCubeDev d84a015725 Added ReCT Binding (Relib) to the list (#1604)
hey!
Ive made a Raylib Binding for my Programming language ReCT! Its still a fairly small language (~30 users) but it would be really cool to be featured here, tho I'd completely understand if only relevant languages are allowed on the list
2021-02-21 10:44:41 +01:00
Jeffery Myers 48a7cd3c87 [Examples] Fix typecast warnings in examples. (#1601)
* Fixing typecast warnings generated by visual studio 2019 in examples.

* Changes to fixes based on feedback

Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2021-02-20 23:37:32 +01:00
Paul Jurczak 82cdd88ffe Fixed DrawLineEx (#1598)
* Fixed DrawLineEx

Corrected the issue https://github.com/raysan5/raylib/issues/1596

* Removed raymath dependency for DrawLineEx
2021-02-20 23:35:43 +01:00
Jeffery Myers 0726491ef8 Fixes to make rnet and it's examples build on Windows in visual studio 2019. (#1602)
Mostly typecasts, and some int to unsigned short changes, and including the windsock 2 library in the examples.

Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2021-02-20 21:13:20 +01:00
Jeffery Myers eb47cc5e93 Fix warnings generated by Visual Studio 2019 in new model loading code. (#1600)
Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2021-02-20 19:42:32 +01:00
Ray 4604271c6a Code formatting tweaks 2021-02-20 11:22:32 +01:00
Redcamellia 0a8cb60eee fixed the right and left button not working (#1595) 2021-02-20 11:18:43 +01:00
Jeffery Myers 2375464213 [Physics] Fix typecast warnings generated by visual studio 2019 (#1599)
* More warning fixes for physics and math

* fix a crash introduced with the warning changed.

Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2021-02-20 11:15:40 +01:00
Rabia Alhaffar d96b422809 Fixed example doesn't show gamepad for Xbox 360 controllers with different drivers (#1597) 2021-02-18 21:52:39 +01:00
Jeffery Myers 0f5aab3a1c check to make sure parent bone is not null before trying to compute its offset from the root (#1594) 2021-02-16 10:29:00 +01:00
Rob Loach b530b584b5 Rename raylib-js to raylib-duktape (#1591)
While it is JavaScript, I'd rather this be named raylib-duktape since there are different implementations of javascript available. Like QuickJS, V7, or Node.js.
2021-02-15 17:41:15 +01:00
Rabia Alhaffar e300d268f9 Fixed problem related to IsKeyPressed function! (#1589) 2021-02-15 13:28:52 +01:00
Chris ccb083af52 [raudio] Fix load and unload issues with Music (#1588)
* Add MUSIC_AUDIO_NONE to MusicContextType and format fixes
- Useful to check the context type to see if the format is recognized. Defaulting to wav causes issues where formats are assumed to
be wav.

* Fix memory issues with LoadMusicStream and UnloadMusicStream
- Set ctxType and ctxData even if the format fails to load.
- Set ctxData to NULL if it fails and check for null inside UnloadMusicStream.
- Change RL_MALLOC when loading formats to RL_CALLOC to prevent undefined behavior.
- Add NULL check when unloading xm file.
2021-02-14 17:37:34 +01:00
jpe230 c7476f0aa5 Fix support of touchscreens for RPI (#1586)
-Checks for absolute pressure in absolute events to simulate a touch or a left mouse click.
-Updates touch position on absolute events.
2021-02-14 17:36:24 +01:00
raysan5 f3df64210b Update physac.h 2021-02-14 16:47:47 +01:00
raysan5 7035435948 Update core.c 2021-02-14 16:47:19 +01:00
raysan5 0c63c7c907 Possible callbacks -WIP- 2021-02-14 16:47:08 +01:00
raysan5 2b1ec5d8d2 Review some comments 2021-02-14 16:46:33 +01:00
raysan5 a474511356 Update Makefile 2021-02-14 16:46:05 +01:00
raysan5 6037adcace Update raylib.rc 2021-02-11 16:32:07 +01:00
raysan5 83f0c771d5 ADDED: ALL examples projects to VS2019 solution 2021-02-11 16:02:17 +01:00
raysan5 44a6b86d68 Create raylib_144x144.png 2021-02-11 15:59:22 +01:00
Ray 02d6402f4f Update CMakeBuilds badge 2021-02-11 11:51:37 +01:00
Ray ccdf2a3a9e Update cmake.yml 2021-02-11 11:50:55 +01:00
Ray aaab355df7 Add CMake workflow badge 2021-02-11 11:49:58 +01:00
BrokenKeyboard d93b8f6544 Fix spelling mistake (#1581)
Sorry if this is a bit of a useless pr
2021-02-09 22:29:01 +01:00
Ray 36e434099d Update android.yml 2021-02-09 15:54:12 +01:00
Ray bf008234e2 Update linux.yml 2021-02-09 15:53:56 +01:00
Ray 16c0f92f18 Update macos.yml 2021-02-09 15:53:30 +01:00
Ray a5af604b2d Update webassembly.yml 2021-02-09 15:52:07 +01:00
Ray 4f40b4a961 Update windows.yml 2021-02-09 15:51:34 +01:00
raysan5 043eb5882b Review Makefile to support PLATFORM_RPI #1580 2021-02-09 15:42:03 +01:00
raysan5 00a0461c7a REDESIGNED: VS2019 build paths
REMOVED: core_basic_window.cpp
2021-02-09 14:06:40 +01:00
raysan5 cdf8ea7e30 Update advance_game.c 2021-02-09 13:23:20 +01:00
raysan5 9619e5cbf8 Review some warnings and formatting 2021-02-09 13:23:06 +01:00
raysan5 4e68524871 REMOVED: GetGamepadButton() internal func 2021-02-09 12:14:50 +01:00
masterex1000 52d0e86cc6 Poll inputs after frame sleep (#1573) 2021-02-08 16:57:19 +01:00
Rob Loach cdd35d4b09 BINDINGS: Remove Harbour (#1574)
It looks like the Harbour bindings disappeared? Did they exist at one point?
2021-02-08 13:15:40 +01:00
hristo 70965f20d5 Disabling WindowSizeCallback around fullscreen toggle. (#1480)
* Disabling WindowSizeCallback around fullscreen toggle.

#1294 fixed the issue that toggle fullscreen changes the screen size because of the WindowSizeCallback. The proposed edit by @raysan5 was to comment out WindowSizeCallback which I essentially simplified to disable the callback around the set window monitor functions.

The developers using the ToggleFullscreen function should be aware that they need to size the screen correctly on that same frame. Otherwise they should check if fullscreen and size properly using the GetMonitorWidth and GetMonitorHeight functions.

* Update core.c

Fix issue from merge
2021-02-07 20:55:27 +01:00
raysan5 67206a5415 Review latest PR formating 2021-02-07 20:52:11 +01:00
Gil Barbosa Reis 9081defd46 Fix initialize GLFW's Joystick subsystem before window is created on Desktop platforms (#1554) (#1572) 2021-02-07 20:49:37 +01:00
raysan5 090c790e50 Review formating for latest PR 2021-02-07 20:47:40 +01:00
hristo 6be1be4573 Fix wrong values shown for monitor width and height in pixels when fullscreen is toggled. (#1479)
This solves issue #1322 which in my opinion was prematurely closed. As the monitor resolution is expected to be the maximum that the monitor supports. My change is that as per GLFW documentation you can get all current video modes sorted by max resolution. When you toggle fullscreen the first video mode returned would be the current screen resolution setup but that doesn't help if you want to know the maximum supported.
2021-02-07 20:44:38 +01:00
raysan5 c49ce58f02 REVIEWED: Multichannel sound system #1548
I don't like this solution but I think it's valid in the meantime....
2021-02-07 19:20:30 +01:00
raysan5 b2215cf017 REVIEWED: Replace GetImageData() by LoadImageColors() 2021-02-06 13:29:22 +01:00
raysan5 b7b718a545 REVIEWED: example: Replaced GetImageData() 2021-02-06 13:15:23 +01:00
raysan5 0f309b9b16 REMOVED: MeshNormalsSmooth() #1421
Current implementation is probably wrong and it should be reimplemented from scratch, in the meantime, I prefer to remove the function.
2021-02-05 19:49:05 +01:00
raysan5 edb54c6cb1 REVIEWED: CloseAudioBufferPool(), uninit buffers properly #1548 2021-02-05 19:45:13 +01:00
raysan5 5663c81803 REVIEWED: raudio: Some LOG_ERROR -> LOG_WARNING #1562 2021-02-05 19:19:44 +01:00
raysan5 56ff944def Update miniaudio to v0.10.32 #1562 2021-02-05 19:18:44 +01:00
raysan5 62ccec0ac5 REMOVED: SetTraceLogExit()
I feel nobody has ever used this function...
2021-02-05 14:36:28 +01:00
raysan5 421e5d4829 REVIEWED: DecompressData() 2021-02-05 14:35:43 +01:00
kernelkinetic e831bf02c5 removed redundant call to eglGetConfig (https://github.com/raysan5/raylib/issues/1550) (#1567) 2021-02-05 13:55:09 +01:00
raysan5 97a7875648 REVIEWED: Gamepad issues on Android 2021-02-05 13:52:25 +01:00
raysan5 4407533a41 REVIEWED: DecompressData(), memory reallocation 2021-02-05 13:52:01 +01:00
Ray 3431d58586 Designing some callbacks -WIP- 2021-02-05 10:17:21 +01:00
raysan5 005bc4c414 REVIEWED: LoadShaderProgram() #1563
Try to avoid a possible false-positive memory leak...
2021-02-02 12:33:01 +01:00
raysan5 ed9c10a3e6 Update raudio.c 2021-02-02 11:42:49 +01:00
hristo c8e427ad23 Update loading of gltf animation. (#1561)
This is to account for GLTF info being more like instructions on how to build your animation instead of verbose description of each pose.
2021-02-02 10:49:42 +01:00
Jeffery Myers 2884b88101 out is a keyword in shaders and can't be used as a variable name. (#1558)
Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2021-01-31 21:37:27 +01:00
raysan5 aebcd9b551 Update models_first_person_maze.c 2021-01-31 16:22:24 +01:00
raysan5 96db787657 REVIEWED: Gamepad system, specially for RPI 2021-01-31 03:07:26 +01:00
Jeffery Myers e818dc27cd Use local (") includes for GLFW since it is included with the source tree. (#1557)
This change helps some platforms produce fewer errors/warnings.

Co-authored-by: Jeffery Myers <JefMyers@blizzard.com>
2021-01-30 22:22:14 +01:00
raysan5 bc332018f6 REVIEWED: SetGamepadMappings()
return value for all platforms
2021-01-28 18:37:52 +01:00
hristo 731ab15d57 Gltf animation support (#1551)
* Added example for gltf animation and split some functions for loading model animations into IQM and GLTF similar to how models are being loaded.

* Removed wrongly duplicated function

* Bone loading for gltf model (not working at this point)

* Loading info about vertex to joint connection but animation is still not working

* Skeleton and pose is correctly loaded. Need to communicate about interpolation in GLTF

* The model almost looks like a real person on animation.

* Fixed model loading with bones.

Also updated license info on the model.

* Cleaned up some code and updated examples.

* Fix identation issues

* Fix identation issues

* Fix identation issues
2021-01-28 11:29:06 +01:00
hristo 88a6f16c9a Documentation cmake (#1549)
* Documenting the compiler flags

* Moved some android compiler flags and added documentation on them too.

* Some more restructuring.

Removed unnecessary comments that were self described by the code.
Added some more explanations around certain parts of CMake and especially around compiler flags.
2021-01-26 14:34:27 +01:00
raysan5 65b299c6cf Replace tabs by 4 spaces 2021-01-25 17:53:04 +01:00
hristo f3ce3a6f74 Removing config.h.in file (#1546)
CMake relied on this file for configurations and also was interfering in the regular config.h by having a separate definition if building with CMake. This was not entirely correct so instead we will define compile time definitions separately through CMake (CompileDefinitions.cmake) and also will use the provided EXTERNAL_CONFIG_FLAGS that I found that will not use config.h in through the build process.

I also introduced a new compiler option (CUSTOMIZE_BUILD) that when OFF will use the default config.h and when ON will show other options for redefining your own options.

Fixed an error in rlgl.h where if you have both RLGL_STANDALONE and SUPPORT_VR_SIMULATOR you get a compile time error.
2021-01-25 10:47:53 +01:00
hristo 4bf7b00013 Removing test file. (#1545)
This test file is just testing compilation with the library works correctly but is no longer needed because:
- it is not cross platform
- it taps into the CTest system which is better suited for real unit/integration tests
- it can be incorporated into the pipeline of github actions instead in the future
2021-01-25 10:44:30 +01:00
hristo 1d23e15692 Added a windows and linux simple compile with cmake (#1543)
* Added a windows and linux simple compile with cmake

Will expand on the file but it will be nice to know if they are some extremely breaking changes in the future. cmake.yml will run two task one for linux build and one for windows build essentially checking that both are working. We can add all platforms later.

* Renaming the task to "CMake Builds" and removing the test step.

Commented out the test step as I don't yet know what the two bash files are doing but they are failing the build.
2021-01-24 21:09:01 +01:00
Nikolas a0d2b64747 Fix issue when trying to build raylib statically (#1544) 2021-01-22 23:43:06 +01:00
Ray f4f208c4ae ADDED: UploadMesh() #1529
Upload mesh data to GPU and get VAO/VBO identifiers
2021-01-22 12:16:19 +01:00
Ray 721768bdb0 Remove automatic pointer lock on mouse click #1513 2021-01-22 11:57:57 +01:00
Ray f2c0981c57 Review typo 2021-01-22 11:57:18 +01:00
hristo 05dfbf3cd4 Remove STATIC and SHARED variables. (#1542)
As described in the official documentation https://cmake.org/cmake/help/v3.0/variable/BUILD_SHARED_LIBS.html this flag is global by default and controls if the library will be built as a shared or a static library allowing us to define only one call to the add_library function (without specifying its type). It is also added as an option to be visible in CMake GUI applications.
2021-01-22 00:07:22 +01:00
Ray 18ab694f70 ADDED: SetGamepadMappings() #1506 2021-01-21 14:39:03 +01:00
Ray 677f420bf0 REVIEWED: physac module and examples #1525 2021-01-20 20:55:12 +01:00
Ray b845f3886a Minor tweak to Makefile 2021-01-20 17:18:45 +01:00
Ray d20efde49d Merge branch 'master' of https://github.com/raysan5/raylib 2021-01-20 17:07:06 +01:00
Ray 01b7509a39 Review screen capture / gif recording #1540 2021-01-20 17:06:53 +01:00
Ray 407c014eb4 Update Makefile 2021-01-20 17:06:30 +01:00
Ray 5e6eb0b847 Update raylib to v3.5 :P 2021-01-19 12:36:30 +01:00
Rob Loach 3e3e41eaba Update node-raylib to 3.5 (#1539)
[`node-raylib`](https://github.com/robloach/node-raylib) is now on raylib 3.5.0
2021-01-17 09:31:56 +01:00
Richard Smith f21aa0352b Update BINDINGS.md (#1538) 2021-01-16 20:01:28 +01:00
hristo 6cc27e9797 Fix cmake build error dirent (#1536)
* Better ignore support for idea projects.

Added a wildcard at the end because different configurations would have a diffeerent build directory.

* Removed external from being a relative include directory for target raylib.

Fixes #1533
2021-01-16 14:04:01 +01:00
Gil Barbosa Reis 1866be0475 Fix absolute path handling in GetFileName and GetDirectoryPath (#1534) (#1535) 2021-01-16 10:33:13 +01:00
Ray eb7820b2b0 Review comment 2021-01-15 00:20:35 +01:00
Ray b7f275efb3 Review warning 2021-01-15 00:20:23 +01:00
Ray 186e52c4d8 REVIEWED: DecompressData()
Corrected bug!
2021-01-14 20:42:01 +01:00
Ray a3c56d9052 go-raylib updated to 3.5 2021-01-14 19:53:58 +01:00
Dmitry Matveyev 8d3381b490 Add NimraylibNow! wrapper for Nim to bindings [ci skip] (#1532) 2021-01-14 17:09:34 +01:00
hristo 9821725c6b Big cmake changes (#1514)
* Delete emscripten.cmake

This file is not needed at this point. EMSDK provides a toolchain file that has a lot more things in it and is better supported. Project currently works fine with the documentation provided in Emscripten SDK on how to build projects.

* First pass file separation.

The main two files are cleaner now. Only important things can be seen. Major changes include:
- raylib_static is now the alias instead of raylib
- Repeating segments are removed and pulled into separate files into <root>/cmake
- File is reordered to make more sense
- Installs are better structured
- Library is build into an output directory "raylib" instead of "src"
- All public header files are now set as a public header file
- Source files need to be listed (it is a bad practice to capture them using wildcards and file globs)
- CMakeLists are better commented

* Second pass on the example dirs.

They are quite complex so I'm more hesitant to do major changes. Also it works pretty well. Noticed that I forgot one of the seperated files and added it into src/CMakeLists.txt.

* Returned the header copy as it was convenient to have the public headers copied.

* A better description to the variable RAYLIB_IS_MAIN

Co-authored-by: Rob Loach <robloach@gmail.com>

* Remove debug message

Co-authored-by: Rob Loach <robloach@gmail.com>

* Improvements based on review.

* Simplify the install condition to not be platform specific as it was before.

Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>

* Remove some CMAKE variables as they don't affect the build in any way

Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>

Co-authored-by: Rob Loach <robloach@gmail.com>
Co-authored-by: Alexander Neumann <30894796+Neumann-A@users.noreply.github.com>
2021-01-13 23:10:02 +01:00
Davidson Francis 3d22709808 Fixes Android builds on Linux environments (#1530)
* simple_game: Configure Make and makefile for Linux environments

* simple_game: Fix build issues on Android plaform with Linux HOST

The Makefile.Android.linux file was out of date with the rest of the
project, so this commit updates the paths, as well as leaving some as
optional, if it is already configured as an environment variable.

In addition, it corrects the build error related to static raylib:
the makefile was trying to generate libmain.so using the path of the
NDK libraries, instead of using those of the Android system, which
resulted in crashes in the generated apk.
2021-01-13 23:07:34 +01:00
Ray a0a840101c Update miniaudio to v0.10.30 #1518 2021-01-12 22:51:26 +01:00
Ray 5d1d590692 REDESIGN: Compresion API
Now it compresses/decompresses valid DEFLATE streams instead of zlib streams. It uses the minimal and efficient libraries: sdefl/sinfl.
2021-01-12 21:15:11 +01:00
Ray dfa11e22cf Add comments 2021-01-12 20:25:09 +01:00
Ray c256b26629 Reorder function 2021-01-12 20:24:58 +01:00
Ray 12e7be63f7 Merge branch 'master' of https://github.com/raysan5/raylib 2021-01-12 20:24:43 +01:00
Ray 477653a0d6 Update Makefile 2021-01-12 20:24:31 +01:00
Dmitry Matveyev 04a1bb1390 Reorder typedefs in physac.h to be in header part (#1528) 2021-01-12 20:12:14 +01:00
Ray bbc09288bd rlOrtho() reverted change 2021-01-09 12:37:21 +01:00
Jeffery Myers b76dc06297 It's top-bottom not bottom-top in GL space. (#1517) 2021-01-07 23:13:44 +01:00
Dan J 33ed142306 Add info to readme for conan dependency manager (#1516)
Co-authored-by: resttime <resttime@users.noreply.github.com>
2021-01-07 10:02:48 +01:00
badlydrawnrod 49f9bff260 Fix keyboard state change detection on RPI (#1488)
* Fix keyboard state change detection on RPI

* Rework RaspberryPi evdev keyboard input.

- Extract evdev keyboard handling into PollKeyboardEvents()
- Move keyboard polling to main thread
- Rename EventThreadSpawn() to ConfigureEvdevDevice() as it doesn't necessarily spawn threads
- Remove unused code (KeyEventFifo and lastKeyPressed)

* Replace tabs with 4 spaces.
2021-01-06 20:46:12 +01:00
Kirottu 22da9087b1 Include SUPPORT_DATA_STORAGE flag for building with CMake (#1515)
* Update CMakeOptions.txt

* Update config.h.in
2021-01-06 20:45:32 +01:00
Victor Gallet a6cd6eedbe Remove unused condition in 'GenerateMipmaps' function for GRAPHICS_API_OPENGL_11 (#1496) 2021-01-06 13:27:32 +01:00
raysan5 7bd33e4406 Review rlOrtho() to avoid return in the middle of the function
I usually try to avoid any return in the middle of functions, I try to keep them always at the end of the functions.
2021-01-06 13:26:55 +01:00
Jeffery Myers 5d4aada526 Don't create an ortho matrix when the viewport is 0 in any axis. (#1504)
* Don't create an ortho matrix when the viewport is 0 in any axis.
Not all compilers divide by 0 and return inf, some segfault.
The matrix is not used by anything when minimized, so it just needs to not be called.

* Better fix that always ensures the rlgl matrix is always valid

* Better fix that always ensures the rlgl matrix is always valid
2021-01-06 13:21:58 +01:00
hristo 551597d579 Removed a repeating allocation of memory (#1507)
Resolves #1495
This line allocated some memory that was already allocated in the beginning of the function and was essentially creating a leak.
2021-01-03 22:43:09 +01:00
Tornike Goshadze 4bce0f27e6 Update Raylib-cs bindings version (#1508) 2021-01-03 22:20:02 +01:00
Chris 320732ae6b Update mappings.h in glfw using GenerateMappings.cmake (#1505) 2021-01-02 21:46:39 +01:00
raysan5 d7b4b9e485 Update year to 2021 2021-01-02 18:15:13 +01:00
ayshvab f5815b781a Update project.4coder (#1503)
Fix run .cmd for win
2021-01-02 11:36:11 +01:00
ArnautDaniel 10b5e2e73a Update Gforth and Factor bindings (#1500) 2020-12-31 16:10:29 +01:00
Victor Gallet 57fef97433 Modify the check condition for the screen window height and width. It can't be less than zero because it's an unsigned int (#1497) 2020-12-31 13:29:35 +01:00
Victor Gallet 03278a74bf Avoid dereferencing a null pointer in the 'LoadMaterials' function in the models module (#1498) 2020-12-31 13:28:53 +01:00
Victor Gallet 9fe153ae29 Avoid dereferencing a null pointer in the 'LoadSounsFromWave' function if the audioBuffer is null (#1499) 2020-12-31 13:28:16 +01:00
Artur Mustafin 2f966531a7 added missing constants (#1493)
Co-authored-by: funcelot <artur.mustafin@gmail.com>
2020-12-30 21:05:55 +01:00
Jeffery Myers 4c8bebc0d7 Add a current monitor function for window mode windows. (#1492) 2020-12-30 17:29:39 +01:00
Jeffery Myers 24b6dcf29f lookup the returned monitor in the list of monitors to get an index. (#1490) 2020-12-30 00:08:56 +01:00
raysan5 22b179e66c Review rlights helper module #1489 2020-12-29 22:01:48 +01:00
raysan5 9ed29725a0 Review code formatting 2020-12-29 20:42:29 +01:00
Jeffery Myers 59bb759855 Faster version of ImageClearBackground and ImageDrawRectangleRec (#1487)
* Don't use DrawRect to clear an image, a pixel loop is an order of magnitude faster.

* Update ImageDrawRectangle to be faster too.
2020-12-29 20:39:53 +01:00
hristo 75c6fd047b Monitor utilites (#1485)
* Added a new utility function to get the current monitor.

Some of the other functions rely on passing on a monitor id but we only have a function for querying the count of monitors available.

* Updated the comment to correctly reflect the function action
2020-12-29 13:37:08 +01:00
hristo d3db690c42 I noticed that toggle fullscreen always gets the primary monitor when its more intuitive to use the monitor that the window is currently in. (#1486)
This monitor should even probably be passed as an id instead to make it more consistent with the rest of the API but this would break existing applications so I am hesitant to change the function signature directly.
2020-12-29 13:35:47 +01:00
raysan5 abdd57db0b Review comments formating 2020-12-28 11:19:05 +01:00
Matheus Duarte 227496bea7 providing and example on how to apply the screen scale (as done in the virtual mouse) to the real mouse, to work with raygui (#1481) 2020-12-28 11:10:39 +01:00
Ray 068fc48fda Update HISTORY.md 2020-12-27 16:26:52 +01:00
Astie Teddy af39344e99 TSnake41/raylib-lua updated to 3.5 (#1478)
[raylua v3.5a](https://github.com/TSnake41/raylib-lua/releases/tag/v3.5a) has been released
2020-12-27 01:25:22 +01:00
Rob Loach 92b7e63bb5 Update raylib-cpp to state that it targets 3.5 (#1477)
[raylib-cpp](https://github.com/robloach/raylib-cpp) now targets raylib 3.5.0 as of [raylib-cpp 3.5.0-alpha1](https://github.com/RobLoach/raylib-cpp/releases/tag/v3.5.0-alpha1).
2020-12-26 22:24:27 +01:00
Rabia Alhaffar b74be185c2 Corrected raylib-mruby version + Updated raylua bindings! (#1476) 2020-12-26 20:42:54 +01:00
Rabia Alhaffar ad8a46d261 Again, Renamed version... (#1475)
Sorry for that, At least i'm correct now ;)
2020-12-26 20:27:21 +01:00
Rabia Alhaffar 10626ad6f8 Edited version of raylib-mruby to comply with 2.5 (Renamed to 2.4-dev) (#1474) 2020-12-26 19:25:02 +01:00
Rabia Alhaffar f5db106eb6 Detected versions of some libs... (#1473) 2020-12-26 15:44:01 +01:00
raysan5 521ed1cef0 Review DrawLineBezierQuad(), formating and aprameters order 2020-12-26 13:09:34 +01:00
Violet White de13fca3b1 Add Quadratic Bezier drawing (#1468)
* Add quadratic bezier to shapes.c

* Add DrawLineBezierQuad to header
2020-12-26 13:04:38 +01:00
Ray b59ca95a16 Update commits since last version 2020-12-26 13:04:05 +01:00
badlydrawnrod 6631fc4c6d Fix use of GuiSliderBar in examples. (#1470) 2020-12-26 13:02:42 +01:00
Gunko Vadim 23208357c1 Update BINDINGS.md (#1472) 2020-12-26 13:01:24 +01:00
Rabia Alhaffar 9f3351cf7b Boo bindings updated to 3.5 (#1471) 2020-12-25 23:29:13 +01:00
Ray e25e380e80 Update webassembly.yml 2020-12-25 02:07:24 +01:00
Ray 1320d9e303 Update macos.yml 2020-12-25 02:06:50 +01:00
Ray e4477472f3 Update android.yml 2020-12-25 02:05:39 +01:00
Ray 60ffc9f59b Update linux.yml 2020-12-25 02:04:18 +01:00
Ray 79435bf34e Update windows.yml 2020-12-25 02:03:33 +01:00
Ray ef5667c078 Update HISTORY.md 2020-12-25 01:35:22 +01:00
Ray b6557166f2 Update README.md 2020-12-25 01:31:15 +01:00
Ray a7599b83a5 Update HISTORY.md 2020-12-25 01:25:40 +01:00
Ray 047747a4cc Update HISTORY.md 2020-12-25 01:22:58 +01:00
raysan5 e8ea105b3d Update HISTORY.md 2020-12-25 01:21:09 +01:00
raysan5 1caa31396e Update CHANGELOG 2020-12-25 01:20:19 +01:00
raysan5 b973c2f08e Update SPONSORS.md 2020-12-24 23:21:44 +01:00
raysan5 e0c1f25116 Update ROADMAP.md 2020-12-24 23:10:42 +01:00
raysan5 d38e01d186 Minor tweak 2020-12-24 23:10:29 +01:00
raysan5 ea0f6c7a26 Replace TABS by 4 spaces 2020-12-24 23:07:52 +01:00
Ray b93c4b0c20 Update CHANGELOG 2020-12-24 19:33:52 +01:00
raysan5 ec3845fa9f Review some RPI4 tracelogs 2020-12-24 19:09:05 +01:00
raysan5 3e041a27b1 Update Makefile 2020-12-24 19:08:02 +01:00
raysan5 5ffce8f230 Review tracelog messages for DRM platform 2020-12-24 17:56:08 +01:00
raysan5 8073c5ec93 Update README.md 2020-12-24 15:51:46 +01:00
raysan5 13a288d13a Update README.md 2020-12-24 15:48:43 +01:00
Ray 5662403488 Update README.md 2020-12-24 15:32:15 +01:00
raysan5 b68e522ffc Updated several files while porting examples to web 2020-12-24 13:51:24 +01:00
raysan5 bab1b9c1c5 Review example formating 2020-12-23 20:59:14 +01:00
raysan5 d9a9bacb48 Review formatting 2020-12-23 20:30:00 +01:00
raysan5 10a57f297e Merge branch 'master' of https://github.com/raysan5/raylib 2020-12-23 17:50:08 +01:00
raysan5 60a3746a80 Remove dup example 2020-12-23 17:49:54 +01:00
Ray 002258aa57 Update CHANGELOG 2020-12-23 17:44:00 +01:00
Ray c59ea67b97 Update CHANGELOG 2020-12-23 17:43:06 +01:00
raysan5 7e459dc38b Review Android Makefiles to required version 2020-12-23 17:05:51 +01:00
raysan5 f8a2903cec Review issues when compiling for Android 2020-12-23 17:05:07 +01:00
raysan5 ef46003270 Update raylib functions parser to generate XML intellisense file
Update Notepad++ functions intellisense
2020-12-23 16:35:39 +01:00
raysan5 1df89039ad Update Makefile(s) 2020-12-23 16:34:21 +01:00
raysan5 0a9e080998 Remove trailing spaces 2020-12-23 15:03:26 +01:00
raysan5 547960ca71 Update raylib version 2020-12-23 13:48:53 +01:00
raysan5 59949bf848 Update resource file 2020-12-23 13:48:43 +01:00
Ray 28b3571517 Update CHANGELOG 2020-12-23 13:26:31 +01:00
raysan5 aa38532cc3 Remove unused variable 2020-12-23 13:03:13 +01:00
raysan5 9216e96315 Corrected typo 2020-12-23 13:02:40 +01:00
raysan5 0da827d754 Corrected small issue 2020-12-23 12:54:57 +01:00
raysan5 871c3d87b4 REMOVED: Travis CI 2020-12-23 12:46:06 +01:00
raysan5 b78ee13791 ADDED: CheckCollisionLines()
Removed function from raymath
2020-12-23 12:45:53 +01:00
Ray 2bdb45f280 Remove Travis CI badge 2020-12-23 12:30:00 +01:00
Victor Gallet 668b3e4cfb [Math Feature]: Add two functions for Vector2 to know if two lines intersect and two segments intersect (#1466)
* Add a function to know if two lines intersect each other and if yes, get the intersection point

* Remove indents

* Rework the declaration of the 'Vector2LineIntersect' function, and add the 'Vector2SegmentIntersect' function

* Remove bad indents

* Fix compilation issues

* Fix compilation error

* Fix compilation error

* Replace keyword '_Bool' by 'bool'
2020-12-21 21:04:02 +01:00
Ray 51e75be9d1 Update CHANGELOG 2020-12-20 11:05:24 +01:00
Ray 976932e05e Set version for raylib 3.5 2020-12-19 20:38:49 +01:00
Ray d82113ec34 Camera funcs, review params names
Just for a better consistency
2020-12-19 20:14:34 +01:00
Ray 9097d0b4ef REVIEW: CheckCollisionSpheres() params naming 2020-12-19 20:05:32 +01:00
Ray f30354fc35 Minor tweak 2020-12-19 20:01:07 +01:00
Ray d2d72b1dfb ADDED: MemAlloc() / MemFree() #1440
Exposing internal memory allocator/free, useful for advance users when required
2020-12-19 19:43:25 +01:00
Ray cbf7369a3d Update raylib.h 2020-12-19 19:28:06 +01:00
Ray 2374281204 Avoid *Rec suffix in some variables
Pefixing/Suffixing some data type identifier in the variables is not a convention used in raylib, just reviewed it for consistency...

Still, I kept the *Rec suffix in some functions.
2020-12-19 19:27:31 +01:00
Ray 015e715278 Corrected DrawTextRecEx() bug 2020-12-19 19:12:51 +01:00
Ray e404a18226 Support font chars padding on drawing #1432
Previous implementation did not consider any padding while drawing the characters on screen (despite being available on the font atlas), so, only minimum character area was drawn.

If some text effect shader was required (shadow, glow, outline...), there was no space in the drawn quad to draw that pixels effect.

This commit corrects that issue.
2020-12-19 12:16:23 +01:00
Ray 51e8f37688 Minimal tweak 2020-12-19 00:22:58 +01:00
Ray c36a6f3d9f Update textures.c 2020-12-19 00:01:14 +01:00
Ray e07bc372a1 WARNING: RENAMED several functions for consistency #1440
This is a BREAKING CHANGE!

To address the linked issue, several functions have been renamed and couterpart functions have been created to free loaded memory:
 - RENAMED: GetImageData() -> LoadImageColors()
 - RENAMED: GetImagePalette() -> LoadImagePalette()
 - RENAMED: GetWaveData() -> LoadWaveSamples()
 - ADDED: UnloadImageColors()
 - ADDED: UnloadImagePalette()
 - ADDED: UnloadWaveSamples()
2020-12-18 21:03:08 +01:00
Ray 5dd142beb6 Added some Web checks for missing GLFW functions 2020-12-18 19:32:52 +01:00
Ray 96542269d0 WARNING: GetKeyPressed() <-> GetCharPressed() #1336
Previous GetKeyPressed() method was actually returning unicode codepoints equivalent values instead of the key-code of the pressed key. So, it has been replaced by GetCharPressed(), returning unicode codepoints and GetKeyPressed() now returns key-codes.
2020-12-18 18:58:02 +01:00
Ray 893a64712e Support mouse input on example #1465 2020-12-18 18:36:04 +01:00
hristo 0987507ef5 Add headers to install cmake (#1462)
* Changed extension for web from .bc to .a

I did this to support vcpkg expectation. When using the library from vcpkg for web you would install it using vcpkg install raylib:wasm32-emscripten but also vcpkg expects the output lib to be with .a extension instead of .bc

Doesn't make a difference for standalone builds or when raylib is used as a subdirectory dependency.

* Added headers to install targets to fix vcpkg usage

Currently vcpkg works by installing the cmake target into its packages directory. The problem is that install only copies the public header at this point so we need to add the others to the install targets.
2020-12-16 19:11:21 +01:00
Andrea Fontana ef0dcaabf9 Changing JPG compression (#1463)
Since I don't think the purpose of raylib is to save space compressing image, I think it could be a good idea to keep quality from 90 to 100.
2020-12-16 19:07:18 +01:00
Ray f5b4656801 Added additional charsPadding initialization #1432 2020-12-14 23:51:55 +01:00
Ray 5f690819e7 REVIEWED: Font struct, added charsPadding #1432 -WIP-
Not implemented usage of this variable yet but already setup for the future... some functions require review to consider it on drawing...
2020-12-14 23:47:11 +01:00
Ray e69f2f0c26 REVIEWED: DrawGrid(), issue with buffer limits check #1417 2020-12-14 23:39:12 +01:00
Ray d360a49f36 ADDED: UnloadFileData() / UnloadFileText() #1440 2020-12-14 20:47:58 +01:00
Ray cd3eb3d8bd Added some security checks on GenMesh*() #1454 2020-12-14 20:41:58 +01:00
Jeffery Myers 7a0e73331d Add mesh collision function so we can check meshes directly instead of having to put them in a model. (#1459)
Make model collision function call the mesh function.
2020-12-14 19:26:32 +01:00
hristo a840d8a77d Changed extension for web from .bc to .a (#1461)
I did this to support vcpkg expectation. When using the library from vcpkg for web you would install it using vcpkg install raylib:wasm32-emscripten but also vcpkg expects the output lib to be with .a extension instead of .bc

Doesn't make a difference for standalone builds or when raylib is used as a subdirectory dependency.
2020-12-14 19:24:56 +01:00
hristo 3ec8ac52f8 Building examples by default only if raylib is standalone. (#1460)
This change only modifies the default value. In cmake you can have raylib as a subdirectory (dependency) and when you have it as dependency you wouldn't probably want to use the example by default. You can still use the option to enable them though.
2020-12-14 19:24:20 +01:00
hristo 6e79476650 Fixed the build for web using CMake. (#1452)
* Fixed the build for web using CMake.

I found that the build for me was failing and I added some if defined checks in the core.c file where the glfwSetWindowAttrib was used. (error: implicit declaration of function 'glfwSetWindowAttrib' is invalid in C99 [-Werror,-Wimplicit-function-declaration])

I also changed some values in the toolchain file so that it correctly uses the .bat files when on windows.

* Cleaned up the additional variables (they are not important)

* Added more improvements to cmakelists

Added the option to use the system provided Emscripten toolchain to be more uniform with other libraries.

Fixed and issue which prevented example being built from cmake and also building with html extensions properly.

* Fixed ENUM to STRING because of a missed warning
2020-12-13 20:29:47 +01:00
Jeffery Myers 11ebb54674 Don't put the obj and temp files for all the projects in the same place, it causes conflicts (#1458) 2020-12-13 16:08:22 +01:00
Alexander Buhl a798fd401f Fixed #1455 (#1456)
* Fixed #1455

Fixed writing out of array bounds
Adjusted FPS comment to match value
Deleted unused function at the end, which has never been in use in the history of this file

* Fixed #1455

Readded the function
2020-12-13 16:06:55 +01:00
Jeffery Myers 342d4faf14 Add options to set line width and aliasing to rlGL layer. (#1457)
* Add options to set line width and aliasing to rlGL layer.

* Don't do line smoothing in OpenGLES
2020-12-13 10:58:24 +01:00
Ray e6ae4879f6 Added security check to pitch change #1450 2020-12-12 13:07:46 +01:00
Ray 459c4754dc Reviewed SetAudioBufferPitch() #1450 2020-12-12 13:01:31 +01:00
Jeffery Myers 039503e7c2 Add functions to enable/disable depth writes to go with functions for depth tests. (#1451) 2020-12-05 21:53:19 +01:00
Jeffery Myers 03df593263 Add function to get the position of a monitor (and fix some comments) (#1449) 2020-12-05 21:51:20 +01:00
Ray 62406259d7 Corrected minor windows flags issues 2020-12-03 20:33:46 +01:00
Ray dd45d0ed64 Update VS2019 project 2020-12-03 20:22:06 +01:00
Ray c4aee2d09a Add VS2019 project 2020-12-03 20:19:54 +01:00
Ray 7955381fb3 Update core_basic_window.c 2020-12-03 20:19:32 +01:00
Ray 7e9028ae08 Update user name 2020-12-03 20:17:50 +01:00
Ray 1c9726fd8c Update core_window_flags.c 2020-12-03 20:17:21 +01:00
Ray d1119816d7 Review comment 2020-12-03 20:16:46 +01:00
Ray 0540f0ad32 Review window flags 2020-12-03 20:16:35 +01:00
Ray 84ab00d52e Merge branch 'master' of https://github.com/raysan5/raylib 2020-12-02 08:29:14 +01:00
Ray 63d33d7a7a Update CMakeLists.txt 2020-12-02 08:27:43 +01:00
Jeffery Myers 679a26a195 Two small quality of life changes to projects. (#1448)
1) use the latest windows SDK not a specific one.
2) use the project dir as the root for the include dir for raylib, to help if the project is ever included in some other solution.
2020-12-02 07:35:48 +01:00
Ray 60928ec82c ADDED: UnloadModelKeepMeshes() #1441 2020-12-01 23:44:10 +01:00
Ray 0481053dad Review for issue #1446 2020-12-01 23:23:30 +01:00
Ray 59be7b9c29 Update CMakeLists.txt 2020-12-01 23:21:35 +01:00
Ray 83916bd3c2 Updated GLFW to latest 3.4 (github master - 16Nov2020)
WARNING: Some CMake files not changed
WARNING: glfw_native.h contains custom changes
2020-11-30 09:11:22 +01:00
Ray 23ed67cce0 Review some config options 2020-11-30 09:00:40 +01:00
Jeffery Myers df249f5513 Fix typecast warnings in raylib code as reported by visual studio 2019 (#1443) 2020-11-30 08:14:11 +01:00
Seth Archambault d43268b317 Added GLFW_OPENGL_FORWARD_COMPAT for Apple Support (#1445)
Without GLFW_OPENGL_FORWARD_COMPAT, running this as a standalone will yield the error:
```
NSGL: The targeted version of macOS only supports forward-compatible core profile contexts for OpenGL 3.2 and above
```
2020-11-29 10:15:51 +01:00
Random 0322fc28d4 optimized MatrixLookAt (#1442) 2020-11-29 10:08:22 +01:00
Seth Archambault ed0fda2b40 Added Apple Compilation Instructions (#1444)
Stumbled on this example and I love this! Adding instructions that work for me on MacOS.. Note that glfw3 will need to be statically built locally and copied to this external/libs directory on mac. I can upload my static version, but it probably makes sense to do this only if there's some general naming convention for adding platform specific folders. Like "external_osx/lib" or "external/lib_osx". Then I'll drop my static libs in there.
2020-11-29 09:53:29 +01:00
raysan5 d6f4f3ee88 REMOVED: GetImageDataNormalized()
Let the advance users manage it as they want...
2020-11-28 19:11:31 +01:00
raysan5 14c1ee2681 ADDED: UnloadFontData() 2020-11-28 19:07:41 +01:00
Ray 28213c2a20 Update CHANGELOG 2020-11-25 00:24:51 +01:00
Ray 687dd34c38 Update CHANGELOG 2020-11-25 00:14:51 +01:00
Ray 3d1ae3500c REVIEWED: Window state flags -WIP-
WARNING: Several functions removed, replaced by SetWindowState() / ClearWindowState() equivalents, only for advance users.
ADDED: ClearWindowState() to reset window state
REMOVED: HideWindow() / UnhideWindow()
REMOVED: DecorateWindow() / UndecorateWindow()
2020-11-23 23:46:05 +01:00
Ray 468a0bedd8 REDESIGNED: Window state config #1367 -WIP-
Some flags not working properly yet...
2020-11-23 00:49:27 +01:00
Ray a560fe9a1e Added some comments 2020-11-22 10:56:17 +01:00
Ray 11da1714d5 Added raylib Harbour binding 2020-11-22 09:34:42 +01:00
Ray 8e48268310 Update CHANGELOG 2020-11-22 00:16:26 +01:00
Ray bb9d734f69 Exposing some file access results to user layer #1420 2020-11-22 00:10:16 +01:00
Ray 36dc302c25 Reverted to previous working version #1434 2020-11-21 14:14:25 +01:00
Ray 9bb4d84577 Update CHANGELOG 2020-11-20 23:23:26 +01:00
Ray 4eae76302f REPLACED: rgif.h by msf_gif.h
The improvement in performance is considerable!
2020-11-20 00:34:18 +01:00
Ray 4a7ab0ae24 Update windows.yml 2020-11-19 20:21:05 +01:00
Ray 7564097d5e Update webassembly.yml 2020-11-19 20:19:18 +01:00
Ray 7f6cd93d62 WARNING: Multiple funcs reviewed!
There were some problems about frameCount vs sampleCount that could cause some breaks.

raylib audio structs stores sampleCount = frameCount*channels.

Most libraries return framesCount instead of sampleCount.

stb_vorbis seems to refer to framesCount as samples.

All required functions have been reviewed.
2020-11-19 20:11:11 +01:00
Ray 72e51cd6de Review formating 2020-11-19 20:06:35 +01:00
Ray 700bff5fd8 Version tweak 2020-11-19 20:01:40 +01:00
Ray 9471794449 Update to latest tiniobjloader
WARNING: OBJ loading is broken at this point...
2020-11-17 00:30:12 +01:00
Ray a54d9f734b rlUpdateTexture(): Corrected issue 2020-11-16 15:18:05 +01:00
Richard Smith 94dd2f81e9 Update BINDINGS.md for raylib-python-cffi 3.1-dev (#1433) 2020-11-16 15:17:03 +01:00
Ray f448542dd2 Review issues with FLAC loading 2020-11-16 12:20:50 +01:00
raysan5 4d5ee7953c Updated tinyobjloader 2020-11-15 14:31:43 +01:00
raysan5 cb517d0050 Update tinyobj_loader_c.h 2020-11-15 14:19:55 +01:00
raysan5 a3d33d9222 Update tinyobj_loader_c.h 2020-11-15 14:18:59 +01:00
raysan5 82d61a5875 Updated stb_image v2.26 and stb_image_write v1.15 2020-11-15 14:11:36 +01:00
raysan5 66f9fbaa88 Update cgltf.h
v1.8
2020-11-15 14:06:39 +01:00
raysan5 321f55bce1 Update audio libraries #1423
miniaudio -> v0.10.25
dr_wav -> v0.12.14
dr_mp3 -> v0.6.19
dr_flac -> v0.12.22
2020-11-15 14:04:28 +01:00
raysan5 8ff2b387f9 Review code formating 2020-11-15 13:17:11 +01:00
Ilya3point999K bd287efa4c Fixed zero-window upscaling (#1428)
There is no zero-check, so window upscales to nothing.
SetupFramebuffer() is kinda wrong, it uses not its params, but global variables. I won't touch it, maybe it has purpose
2020-11-15 13:13:21 +01:00
raysan5 9b2b660f91 Commented new feature 2020-11-15 13:10:12 +01:00
raysan5 55dc8171f8 [text] Consider characters padding -WIP- #1432 2020-11-15 12:39:59 +01:00
Ray c222e231f0 Added SmallBASIC binding 2020-11-08 17:47:21 +01:00
Ray 3e1cd487df Remove trailing spaces 2020-11-03 23:47:33 +01:00
kernelkinetic f46514b855 Fixed keyboard stuttering but for cmake only (#1422)
* fixed mouse movements are bound to the screen resolution (https://github.com/raysan5/raylib/issues/1392)

* fixed keyboard stuttering on PLATFORM_RPI and PLATFORM_DRM (https://github.com/raysan5/raylib/issues/1392)

* fixed keyboard stuttering on PLATFORM_RPI and PLATFORM_DRM (https://github.com/raysan5/raylib/issues/1392)
2020-11-03 23:39:56 +01:00
Ray 05ab39ed9f REVIEWED: SaveFileText() error checking 2020-11-01 19:42:50 +01:00
Ray 5ac9cb04c2 Reverted ChangeDirectory() redesign
It returns true on success again
2020-11-01 19:06:21 +01:00
Ray 01d9af12f7 REDESIGNED: ChangeDirectory()
Not returning error code (or success), just log if it fails
2020-11-01 18:14:55 +01:00
Ray 8e15dae5ed Review contributed examples 2020-11-01 13:39:48 +01:00
Ray 5f79ad9765 Update CHANGELOG 2020-11-01 13:38:42 +01:00
Dominus Iniquitatis fc1fc250e7 A couple of little comment fixes (#1416) 2020-10-31 14:40:35 +01:00
Ray 8327857488 Update shaders_multi_sample2d.c 2020-10-31 11:49:19 +01:00
Ray fbc51e822b REDESIGNED: Multiple sampler2D usage on batch system
New implementation allow enabling additional textures per batch only.
2020-10-31 11:48:44 +01:00
Ray 8a16348131 Support multiple sample2D on batch drawing #1333 2020-10-29 20:22:52 +01:00
Ray 60d874caf8 REVIEWED: GetWindowScaleDPI() #1086 2020-10-29 19:29:59 +01:00
Ray 37e2d993e7 Updated assets
Reduce size and better license CC0
2020-10-29 18:41:05 +01:00
Ray 2bcd3a6df5 Simplified example and resources sizes 2020-10-28 20:35:44 +01:00
Ray d99ac093d4 Support additional texture units for default batch system #1333
This path requires some testing...
2020-10-26 20:13:08 +01:00
Ray d9e591f235 Review some comments 2020-10-26 20:11:58 +01:00
raysan5 482b8a5e7e Some tweaks 2020-10-24 10:37:15 +02:00
Ray 88dbaae3be Update CHANGELOG 2020-10-21 23:32:24 +02:00
Ray e820aae80b Added raylib 3.5 CHANGELOG -WIP- 2020-10-21 23:27:00 +02:00
Ray f12db180cd Reviewed PR #1407 2020-10-21 11:08:37 +02:00
Chance Snow 9833fe45eb Added desktop cursor getter and setter functions (#1407)
* [core] Added desktop cursor getter and setter functions

* Example: Set mouse cursor in text input box

* Setup standard cursors _after_ GLFW window initialization

* Remove old `int GetMouseWheelMove` declaration
2020-10-21 10:55:52 +02:00
Rabia Alhaffar eb3e9e4df5 Added version of raylib-cppsharp via used raylib license date! (#1413)
It's 2.5
@raysan5 Oh...There are 4 bindings has license date of 2016, But unsure if 1.6.0 or 1.5.0 or 1.4.0 :(

Co-authored-by: Ray <raysan5@gmail.com>
2020-10-21 00:13:39 +02:00
Rabia Alhaffar 5df08daa3f Added Boo bindings for raylib! (#1412) 2020-10-20 21:03:19 +02:00
kernelkinetic 3c9f7263e5 fixed mouse movements are bound to the screen resolution (https://github.com/raysan5/raylib/issues/1392) (#1410) 2020-10-13 22:26:40 +02:00
raysan5 fa357b8d5d Review undesired changes 2020-10-10 19:27:18 +02:00
raysan5 c62c4df749 Updated miniaudio #1402 2020-10-10 19:25:23 +02:00
chriscamacho 6ebf6b4e72 allow for multiple materials in obj files (#1408)
* allow for multiple materials in obj files also fix obj_loader hash map issues

* minor fix for warning

Co-authored-by: codifies <nospam@antispam.com>
2020-10-08 20:31:59 +02:00
Ray 41192c6d4a Replace 0.f by 0.0f 2020-10-05 20:19:18 +02:00
Doyle b29311c7ca mouse: Return float movement for precise scrolling where possible (#1397) 2020-10-05 20:16:23 +02:00
Ray a4ea9f872f Review "aggregate initializations" #1403 2020-10-05 20:04:33 +02:00
Daniel-Junior Dubé a8685ee4fd Add Vector2Reflect to raymath.h (#1400)
Vector3Reflect exists but not Vector2Reflect. The code is pretty much the same.
I'm not sure what RMDEF does, but I added it to match other function definitions (haven't done much C programming, maybe I'm missing something). Can someone explain to me what it does?
2020-10-04 12:12:52 +02:00
Intasx 7e62d973f9 Add some bindings' versions (#1398)
Raylib-forever: 3.1-dev
It generates the c-to-nim bindings straight from the source.

nim-raylib: 3.1-dev
It uses Raylib-forever.

raylib-php: 3.0
Tested it using the provided binaries.

raylib-java: 2.0
Tested it using the provided binaries.
2020-10-02 08:01:21 +02:00
Tobias Jammer 0c29ca8166 Fix 1393 (#1395) 2020-09-29 17:57:28 +02:00
Ray a850246030 Review Texture type
Texture type also maps to Texture2D and TextureCubemap
2020-09-28 00:40:32 +02:00
raysan5 446f9fff00 Added note 2020-09-27 11:14:49 +02:00
seanpringle 4bcddc3b15 [wip] rlDrawMeshInstanced (#1318)
* rlDrawMeshInstanced first attempt

* rlDrawMeshInstanced OpenGL 3.3 and VAO checks

* rlDrawMeshInstanced GetShaderAttribLocation; comments

* example instanced shader

* RLGL_STANDALONE RAYMATH_STANDALONE Vector4

* apply suggested naming changes; add instanced mesh example

* remove orphan variables
2020-09-27 10:29:05 +02:00
kernelkinetic e90b4d8915 Platform DRM (#1388)
* updated README.md

* fixed CMakeLists.txt to allow building and debugging with Visual Studio Code and CMAKE Tools extension

* added PLATFORM_DRM
contains mouse pointer code from https://github.com/chriscamacho

* removed redundant cleanup in InitGraphicsDevice

* fixed DRM connector mode selection

* added choosen DRM connected mode to log output

* added respecting TargetFPS on DRM mode selection, default to 60

* added support for GetMonitorRefreshRate

* changed SUPPORT_MOUSE_CURSOR_RPI to SUPPORT_MOUSE_CURSOR_NATIVE

* changed avoidProgressive to allowInterlaced

* cleanup, function extraction and improved mode selection

* README reverted to original for PR

* line endings fixed for core.c

* removed old code

* mouse pointer reverted to small square

* replaced SetGraphicDeviceName() by DEFAULT_GRAPHIC_DEVICE_DRM

Co-authored-by: kernelkinetic <kernelkinetic@outlook.com>
2020-09-27 10:18:43 +02:00
raysan5 c2e56f2604 REVIEW: GenTextureCubemap(), avoid using models.c functions
- DrawCube() belongs to models.c -> rl*() alternative should be used
2020-09-26 11:51:42 +02:00
raysan5 b9053eebe7 Added new GIF recording library (not used yet) 2020-09-26 11:41:49 +02:00
raysan5 eef82b04ac REVIEW: Replace rlglDraw() calls by DrawRenderBatch() internal calls 2020-09-25 18:19:19 +02:00
raysan5 fe8bf2fa55 REVIEWED: GenTextureCubemap(), use rlgl functionality only
Function has been reviewed to avoid any direct OpenGL call and use rlgl functionality, also, GenDrawCube() has been replaced by the internal batch system with DrawCube().

WARNING: rlEnableTexture() call must be issued after enabling the current framebuffer when using batch mechanism because it includes a set of security checks to avoid batch overflow and push/pop matrix operations.
2020-09-25 18:14:46 +02:00
Adam Griffiths b9ece86ffd Add join_paths and join prefix with include/lib dirs (#1383)
Fixes #1380: incorrect usage of CMake paths which causes issues
on some more complicated environments (NixOS especially).
2020-09-25 16:20:49 +02:00
raysan5 bd512764ff REVIEW: example: models_cubicmap_pbr #1384
It does not work properly yet but it compiles correctly
2020-09-23 14:19:10 +02:00
raysan5 4a97a5c63a Update models_skybox.c 2020-09-23 14:18:15 +02:00
raysan5 032b2db398 REVIEWED: GenTextureCubemap()
Added some tracelog messages
2020-09-21 13:18:53 +02:00
André L. Alvares 59bbba19a7 update raylib-nelua repository url (#1382)
The repository is not a mirror anymore.
2020-09-20 18:46:51 +02:00
coderoth c05dbb4581 Updated joystick mappings with latest version of gamecontrollerdb (executed GenerateMappings.cmake), so that raylib can identify more joysticks (#1381) 2020-09-19 21:51:32 +02:00
raysan5 8d41683917 REVIEWED: models_skybox example
Now supports dynamic panoramic view, just drag and drop
2020-09-19 20:42:19 +02:00
raysan5 789c5fbdf9 Updated build script to generate .a on WebAssembly
This is the recommended way
2020-09-18 20:53:57 +02:00
raysan5 4a242c2889 Updated library build script for HTML5 (emscripten 2.0.4) 2020-09-18 20:48:25 +02:00
raysan5 b5d50ee51a EXAMPLE: models_skybox works on OpenGL ES 2.0 2020-09-18 20:47:39 +02:00
raysan5 79d63e6ca1 Review comment 2020-09-18 16:44:28 +02:00
raysan5 55204dae03 Review Makefile path 2020-09-18 16:43:48 +02:00
raysan5 152665ff48 REDESIGNED: GenTexture*() #721
Functions have been redesigned to use rlgl and allow to externalize them (aka removing them from rlgl because they use custom shaders...).
2020-09-18 13:50:51 +02:00
Ray b7867fb10d Update raylib-pas binding version
Related to commit https://github.com/tazdij/raylib-pas/pull/15
2020-09-18 12:25:22 +02:00
raysan5 ccda320be4 REVIEWED: rlFramebufferAttach() to support texture layers
Required to attach multiple color textures and multiple cubemap faces
2020-09-18 11:37:57 +02:00
kernelkinetic 6038c8fdd5 fixed wrong error message for input device on RPI (#1379)
* fixed wrong error message for input device

* error message without errnofor input device on RPI
 to prevent from including additional header

Co-authored-by: kkl <klingenberger@bfmc.de>
2020-09-18 08:52:52 +02:00
raysan5 04406c0f1a Corrected minor framebuffer issue on OpenGL ES 2.0 2020-09-18 02:14:05 +02:00
raysan5 cdc8850e68 WARNING: REDESIGN of rlgl framebuffers API #721
This redesign allows more flexibility when creating RenderTexture and a simplification (and hopefully removal) of `GenTexture*()` functions, that should not belong to this model but the user code, due to the use of custom shaders.

Also, this new API opens the door for a possible GBuffers type and advance rendering possibilities...

Some functions of the API have been also simplified or even removed.

rlgl module can be used as an standalone library, so, a version for the library has been added: v3.1.0, matching current raylib version.
2020-09-18 02:11:49 +02:00
raysan5 fa2c114636 WARNING: struct RenderTexture2D: Removed depthTexture
Not required anymore, attachment type is queried when required
2020-09-17 13:44:03 +02:00
raysan5 6da3c1e7c3 Reverted previous change 2020-09-16 16:37:31 +02:00
raysan5 cbdb9bfe42 REVIEWED: UnloadShader() issue
Avoid unloading default shader, raylib will take care of it
2020-09-16 16:33:17 +02:00
raysan5 b870b9f828 Minor: remove tabs 2020-09-16 13:17:31 +02:00
raysan5 90befff4b8 Make sure to detach data before deleting
Before deleting certain objects, they must be detached from their parents. That's the case for shader objects after linkage to shader program and also for the texture/cubemaps/renderbuffers attached to framebuffers. If objects are deleted before detached, they are kept in memory to avoid accessing deleted data.
2020-09-16 13:17:16 +02:00
raysan5 11fbd49b73 Avoid GETCWD() warning #1371 2020-09-16 11:44:48 +02:00
raysan5 43d82c1f21 Add security checks when loading data from memory 2020-09-16 11:33:56 +02:00
raysan5 c5c156d65e Review GenDrawCube() and GenDrawQuad()
Better organized and commented
2020-09-15 13:44:04 +02:00
raysan5 2d96196d25 REVIEWED: SaveWAV() to use memory write insted of file 2020-09-15 13:17:10 +02:00
raysan5 405d3fac0c Corrected issue with floor() #1377 2020-09-15 11:40:51 +02:00
raysan5 0983d7b45c Solved issues when compiled for OpenGL 1.1 2020-09-15 11:30:20 +02:00
Ray 8cf0be4b6c Review memory loading functions signesness 2020-09-14 19:20:38 +02:00
raysan5 5073619962 REVIEWED: GetTextureData(), allow retrieving 32bit float data 2020-09-14 16:03:45 +02:00
raysan5 43b9113c0c Reverted some previous changes... 2020-09-14 15:55:31 +02:00
raysan5 d7853127db Reviewed some structs to reduce size and padding
Also updated raylib Wiki about struct sizes in 32bit and 64bit
2020-09-14 15:36:50 +02:00
ArnautDaniel ddba31d423 Add Gforth bindings and update Factor bindings (#1375) 2020-09-13 21:37:55 +02:00
Ray c196b09d33 Remove function declaration added by error 2020-09-13 16:43:19 +02:00
Ray db652daf42 ADDED: LoadFontFromMemory() (TTF only) #1327 2020-09-13 16:42:31 +02:00
Ray 88c5deac87 WARNING: REDESIGNED: LoadFontData() 2020-09-13 16:41:52 +02:00
Ray 250a0e3592 Minor tweak 2020-09-13 16:40:34 +02:00
Ray 63b739bbfa Corrected issue on log 2020-09-13 16:01:51 +02:00
Ray dace2172d1 Update cgltf library to v1.7 2020-09-13 15:55:48 +02:00
Ray 5b60a743bd ADDED: LoadWaveFromMemory() #1327 2020-09-13 15:38:57 +02:00
Ray 768b29dd74 ADDED: LoadImageFromMemory() #1327 2020-09-13 15:37:15 +02:00
Ray cb8cbb038b WARNING: RENAMED: GetExtension() to GetFileExtension() 2020-09-13 14:07:08 +02:00
raysan5 f1ed8be5d7 REDESIGNED: ColorFromHSV()
Replaced Vector3 by direct values, easier to use and understand
2020-09-07 19:33:06 +02:00
raysan5 85d5744679 REVIEW: glfwSetWindowMaximizeCallback() not available on web 2020-09-07 15:34:21 +02:00
georgjz 311aa0ab58 Added Gambit Scheme to bindings (#1369) 2020-09-05 16:25:04 +02:00
Ray 6120ec9437 Added QuickJS-raylib version 2020-09-02 12:42:35 +02:00
Ray 4bc918fb9f Added some more versions to bindings 2020-09-02 11:27:59 +02:00
Rabia Alhaffar 17b01e3b7a Added more versions info! (#1366)
Co-authored-by: Ray <raysan5@gmail.com>
2020-09-02 11:03:54 +02:00
Rob Loach 900a28c165 Add versions for various bindings (#1365)
- raylib-cpp
- raylib-lua-sol
- node-raylib
- raylib-js
- raylib-chaiscript
- raylib-squirrel

Co-authored-by: Ray <raysan5@gmail.com>
2020-09-02 11:02:54 +02:00
Rabia Alhaffar 9781e1ca8f Update BINDINGS.md (#1364) 2020-09-02 00:02:50 +02:00
Ray 796f61d447 Added some versions... PLEASE HELP! 2020-09-01 23:31:12 +02:00
Ray 76ceb1daaa Added go-raylib binding and some versions 2020-09-01 23:27:27 +02:00
Ray ed6d27f495 Add langauge links and version field (to be filled) 2020-09-01 23:17:46 +02:00
raysan5 1134024985 Update rlgl.h 2020-09-01 21:27:47 +02:00
raysan5 05cdaf7d01 MOVED: rlUnproject() [rlgl] -> Vector3Unproject() [raymath] 2020-09-01 21:08:45 +02:00
raysan5 a1422ba1c1 Review custom blend modes mechanism
rlBlendMode() has been added to rlgl to be used on BLEND_CUSTOM. This functionality is exposed to advance users.

In any case, new blending modes could be added if required.
2020-09-01 21:02:19 +02:00
cedemax bfafb80cde Multiple blendmodes (#1324)
Co-authored-by: max <max.cedercreutz@cetopo.com>
2020-09-01 20:33:49 +02:00
Juan Medina dcbe481a28 adding new windows functions (#1357) 2020-09-01 20:29:13 +02:00
Ray e4d891fa37 Added some missing bindings 2020-08-31 18:54:04 +02:00
raysan5 ffe2364334 Update miniaudio to version 0.10.18 2020-08-30 20:01:38 +02:00
raysan5 8b5485f822 Remove unused variable 2020-08-30 20:00:56 +02:00
smaludzi 8d615a99f6 Added Never language to the list of bindings. (#1361) 2020-08-30 19:58:30 +02:00
Ray 103df6c408 Added raylib-ocaml 2020-08-29 18:42:40 +02:00
raysan5 945a02798b DrawTextEx(): Minor tweak 2020-08-29 13:57:59 +02:00
Ray 9da0656c2f Update CI badges links 2020-08-23 21:21:31 +02:00
raysan5 d0ebeb1713 Reorder some functions 2020-08-23 21:18:39 +02:00
raysan5 ea832628c4 Review last PR formatting to follow raylib standards 2020-08-23 21:10:59 +02:00
chriscamacho d140dc81c0 work on quat and matrix math - deleted multiple copies of raymath.h causing issues (#1359)
Co-authored-by: codifies <nospam@antispam.com>
2020-08-23 21:01:26 +02:00
raysan5 816856eb75 Corrected compiling issue
When using USE_PTHREADS=1 on libraylib.bc compilation, program requires --shared-memory passed to the linker and despite it compiles, it fails on execution (at least for me).
2020-08-23 21:01:10 +02:00
Ray c101f916fa Update README.md 2020-08-21 14:03:13 +02:00
Ray 94f32848b8 Update README.md 2020-08-21 14:02:27 +02:00
Ray 606a69ded7 Remove Android and HTML5 builds 2020-08-21 13:53:44 +02:00
Ray f688ec6b51 Update webassembly.yml 2020-08-21 13:16:46 +02:00
Ray 89cf02ba56 Update macos.yml 2020-08-21 13:16:40 +02:00
Ray b22a4ecdf9 Update windows.yml 2020-08-21 13:16:35 +02:00
Ray a33111ae9d Update linux.yml 2020-08-21 13:16:32 +02:00
Ray 6b5f68af5e Update android.yml 2020-08-21 13:16:30 +02:00
Ray 336c6b7055 Update webassembly.yml 2020-08-21 13:03:15 +02:00
Ray 2d8e8a3b84 Update webassembly.yml 2020-08-21 12:53:04 +02:00
Ray 890ea77246 Update webassembly.yml 2020-08-21 12:48:59 +02:00
Ray 7bb92972d1 Update windows.yml 2020-08-20 20:53:32 +02:00
Ray 58ab0e462e Update windows.yml 2020-08-20 20:51:55 +02:00
raysan5 e785ca73b5 Review compilation parameter for objective C code on GLFW 2020-08-20 19:37:03 +02:00
raysan5 06ff1ce2aa Minor tweak for consistency 2020-08-20 19:31:54 +02:00
Ray c1585dda02 Update linux.yml 2020-08-20 19:30:05 +02:00
Ray b5f508c336 Update windows.yml 2020-08-20 19:23:42 +02:00
Ray 801e255a36 Update linux.yml 2020-08-20 19:21:51 +02:00
Ray 01563c2d48 Update windows.yml 2020-08-20 19:18:23 +02:00
Ray 58d452c78d Update linux.yml 2020-08-20 19:13:59 +02:00
Ray c500b9c036 Update windows.yml 2020-08-20 19:10:38 +02:00
Ray 5ec0f68937 Update linux.yml 2020-08-20 19:05:17 +02:00
Ray 5c755d4afd Update windows.yml 2020-08-20 19:00:21 +02:00
Ray 74637ef884 Update linux.yml 2020-08-20 18:57:05 +02:00
Ray 3c85cea36e Remove AppVeyor badge 2020-08-20 18:54:51 +02:00
Ray f5a6397a57 AppVeyor replaced by GitHub Actions 2020-08-20 18:51:41 +02:00
Ray f6aa8f7c6d Update linux.yml 2020-08-20 18:50:23 +02:00
Ray 418e6f3e18 Update linux.yml 2020-08-20 18:44:21 +02:00
Ray a55786c994 Update linux.yml 2020-08-20 18:37:38 +02:00
Ray 145803092b Update windows.yml 2020-08-20 18:34:22 +02:00
Ray 7d2243ea92 Update linux.yml 2020-08-20 18:31:16 +02:00
Ray e54ed5fc58 Update windows.yml 2020-08-20 18:28:56 +02:00
Ray 00b7f08ca9 Update windows.yml 2020-08-20 18:23:37 +02:00
Ray 23ca58175e Update linux.yml 2020-08-20 18:22:43 +02:00
Ray ed22e2f4a4 Update windows.yml 2020-08-20 18:17:14 +02:00
Ray 85aee79050 Update windows.yml 2020-08-20 18:12:50 +02:00
Ray 10c294a021 Update linux.yml 2020-08-20 18:11:44 +02:00
Ray eedea1d2de Update windows.yml 2020-08-20 18:00:14 +02:00
Ray 784b24e35e Update linux.yml 2020-08-20 17:45:28 +02:00
Ray 7737085c1b Update windows.yml 2020-08-20 17:41:08 +02:00
raysan5 3490e0c1b4 Removed unneded PNG chunks 2020-08-20 17:40:28 +02:00
raysan5 45b28b9d3d Merge branch 'master' of https://github.com/raysan5/raylib 2020-08-20 17:37:20 +02:00
raysan5 b499b50154 Avoid architecture selection on gcc, use correct gcc version instead
Review raylib resource file for DLL compilation
2020-08-20 17:37:01 +02:00
Ray c47fb0a463 Update windows.yml 2020-08-20 12:38:56 +02:00
Ray d6a566da06 Update windows.yml 2020-08-20 12:34:10 +02:00
Ray aa6c3c869d Update windows.yml 2020-08-20 12:28:32 +02:00
Ray d43514a44d Update windows.yml 2020-08-20 12:21:38 +02:00
Ray 600d7b524d Update windows.yml 2020-08-20 12:16:03 +02:00
Ray cb5e4f9b44 Update windows.yml 2020-08-20 12:09:43 +02:00
Ray ec768bb83e Update windows.yml 2020-08-20 12:07:13 +02:00
Ray 9d74f27abd Update webassembly.yml 2020-08-20 12:03:07 +02:00
Ray 4f55d833d3 Update webassembly.yml 2020-08-20 00:23:55 +02:00
Ray 2d86705314 Update webassembly.yml 2020-08-20 00:13:15 +02:00
Ray 3352d54554 Update webassembly.yml 2020-08-20 00:10:52 +02:00
Ray 5876825bcd Update webassembly.yml 2020-08-20 00:05:23 +02:00
Ray 864ff48e11 Update linux.yml 2020-08-19 23:16:18 +02:00
Ray 9c00b1338c Update windows.yml 2020-08-19 23:13:48 +02:00
Ray d64d017c1c Update android.yml 2020-08-19 20:06:34 +02:00
Ray a91962b1de Update macos.yml 2020-08-19 19:55:11 +02:00
Ray 73d401b8d7 Update macos.yml 2020-08-19 19:50:47 +02:00
Ray 73c81455df Update macos.yml 2020-08-19 19:40:38 +02:00
Ray 2e50485a54 Update macos.yml 2020-08-19 19:30:35 +02:00
Ray c577e7310c Update macos.yml 2020-08-19 19:27:16 +02:00
Ray 771ea1f9e0 Update macos.yml 2020-08-19 19:23:18 +02:00
Ray 18f98987be Update macos.yml 2020-08-19 19:12:17 +02:00
raysan5 249708dbb8 Support externally provided library name
It can be useful in some cases qhen compiling for multiple architectures
2020-08-19 19:11:18 +02:00
Ray 78f78e69ba Update android.yml 2020-08-19 18:48:44 +02:00
Ray c119908c15 Update macos.yml 2020-08-19 18:48:16 +02:00
Ray 3178992889 Update linux.yml 2020-08-19 18:47:58 +02:00
Ray f16b9267de Update webassembly.yml 2020-08-19 18:46:39 +02:00
Ray c345a9a356 Update webassembly.yml 2020-08-19 18:08:09 +02:00
Ray 9d50f23f80 Update webassembly.yml 2020-08-19 18:04:03 +02:00
Ray 052c821102 Update webassembly.yml 2020-08-19 18:02:35 +02:00
Ray 59277566e3 Update webassembly.yml 2020-08-19 17:54:52 +02:00
Ray 14e12db675 Update android.yml 2020-08-19 17:39:43 +02:00
Ray b0708c43bf Update README.md 2020-08-19 17:38:07 +02:00
Ray 7471eb11a7 Create webassembly.yml 2020-08-19 17:37:21 +02:00
Ray f52c5cb9b5 Update windows.yml 2020-08-19 17:22:55 +02:00
Ray 1d6d58ef5b Update linux.yml 2020-08-19 17:22:15 +02:00
Ray dfb1460236 Update macos.yml 2020-08-19 17:20:44 +02:00
Ray 33002a9e91 Update README.md 2020-08-19 17:07:29 +02:00
Ray fdc875a579 Update android.yml 2020-08-19 16:52:11 +02:00
raysan5 1e9de0f9ff Review Android arch names to lowercase 2020-08-19 16:51:43 +02:00
Ray ba547648df Update android.yml 2020-08-19 16:43:12 +02:00
raysan5 44dd1fc7f5 Trying to configure android_native_app_glue target compilation 2020-08-19 16:30:33 +02:00
raysan5 48f0dfa18e Update Makefile 2020-08-19 16:25:51 +02:00
raysan5 ac0362d30e Update Makefile 2020-08-19 16:17:27 +02:00
raysan5 687187b5cf Merge branch 'master' of https://github.com/raysan5/raylib 2020-08-19 16:13:28 +02:00
raysan5 34c8f4c39c Update Makefile 2020-08-19 16:13:16 +02:00
Ray 1bea69001c Update android.yml 2020-08-19 15:58:52 +02:00
Ray 4d627a29ad Update android.yml 2020-08-19 15:54:06 +02:00
Ray 467ef87a76 Update android.yml 2020-08-19 15:50:32 +02:00
Ray 2217b93f30 Update android.yml 2020-08-19 15:47:54 +02:00
raysan5 cc8626f6bb Update Makefile 2020-08-19 15:47:36 +02:00
Ray 0c76431efb Update android.yml 2020-08-19 15:37:49 +02:00
Ray 028a86cc53 Update android.yml 2020-08-19 15:34:19 +02:00
Ray f7d37292a6 Update android.yml 2020-08-19 15:31:21 +02:00
Ray 97a40e6140 Update android.yml 2020-08-19 15:29:03 +02:00
Ray 5df73fe627 Update android.yml 2020-08-19 15:22:38 +02:00
raysan5 6760338eb0 Merge branch 'master' of https://github.com/raysan5/raylib 2020-08-19 15:21:34 +02:00
raysan5 1316183b3a Trying to automate Android building... 2020-08-19 15:21:20 +02:00
Ray 606f4ea47c Update android.yml 2020-08-19 15:14:22 +02:00
Ray 39e267c029 Create android.yml 2020-08-19 14:05:13 +02:00
raysan5 3416858d1c Update Makefile 2020-08-19 14:04:53 +02:00
raysan5 0d05004468 Added resource file for DLL compilation info 2020-08-19 11:59:50 +02:00
Ray 391a23ad84 Update README.md 2020-08-19 11:37:14 +02:00
raysan5 d98c471883 Add LDFLAGS when required 2020-08-19 11:25:13 +02:00
Ray 903b7b5213 Update README.md 2020-08-19 11:13:33 +02:00
Ray 71bd9f04fe Update macos.yml 2020-08-19 10:43:48 +02:00
Ray 5427e08c18 Update macos.yml 2020-08-19 10:39:57 +02:00
raysan5 05b3ca0a83 Update Makefile 2020-08-19 10:38:53 +02:00
Ray 721f015e07 Update linux.yml 2020-08-19 10:36:25 +02:00
Ray d875ea4d24 Update macos.yml 2020-08-19 10:35:05 +02:00
Ray 0fc897e82f Update macos.yml 2020-08-19 10:32:56 +02:00
raysan5 d90767ad83 Delete ci_src_examples_win.yml.disabled 2020-08-19 10:04:17 +02:00
raysan5 861fd68bda Delete cd_src_release.yml.disabled 2020-08-19 10:03:00 +02:00
Ray 9436b63f5f Update macos.yml 2020-08-19 10:00:19 +02:00
Ray f3091185ca Update linux.yml 2020-08-18 15:24:20 +02:00
Ray 279182ca14 Update linux.yml 2020-08-18 15:21:42 +02:00
Ray db8927f6b1 Update linux.yml 2020-08-18 15:17:10 +02:00
Ray 0d0c3d2504 Update linux.yml 2020-08-18 15:05:32 +02:00
Ray a142e7c3d0 Update linux.yml 2020-08-18 14:45:17 +02:00
Ray 96e4f369bd Update linux.yml 2020-08-18 14:17:11 +02:00
Ray b6bd00ebff Update macos.yml 2020-08-18 14:12:55 +02:00
Ray 0f5b01eb73 Update windows.yml 2020-08-18 14:07:55 +02:00
Ray 6c9e6cb097 Update linux.yml 2020-08-18 14:03:05 +02:00
Ray a29f0695ef Update linux.yml 2020-08-18 13:53:40 +02:00
Ray 3d24dbc7b4 Update windows.yml 2020-08-18 13:51:25 +02:00
Ray 2a198651de Update linux.yml 2020-08-18 13:40:11 +02:00
Ray eb656a1982 Update windows.yml 2020-08-18 13:24:46 +02:00
Ray 53f3103a93 Update linux.yml 2020-08-18 13:20:48 +02:00
Ray c1ee4c3e7e Update windows.yml 2020-08-18 13:11:32 +02:00
Ray 3fb0fa673a Update windows.yml 2020-08-18 13:00:59 +02:00
Ray 5552323553 Update windows.yml 2020-08-18 00:52:02 +02:00
Ray 122f86b4c5 Update windows.yml 2020-08-18 00:39:57 +02:00
Ray 45dad5d903 Update windows.yml 2020-08-18 00:37:19 +02:00
Ray b6e0766d86 Update windows.yml 2020-08-18 00:35:29 +02:00
Ray 28917c0d14 Update windows.yml 2020-08-18 00:31:50 +02:00
Ray 0b366ec4b6 Update windows.yml 2020-08-18 00:24:53 +02:00
Ray 337068dad0 Update windows.yml 2020-08-18 00:23:40 +02:00
Ray e41ba55036 Update windows.yml 2020-08-18 00:15:33 +02:00
Ray 84103ae936 Update windows.yml 2020-08-17 23:41:17 +02:00
Ray 9ef1ef93e7 Update windows.yml 2020-08-17 23:26:28 +02:00
raysan5 ab8ec9adad Support multiple build architectures (x86, x64) 2020-08-17 23:23:42 +02:00
Ray 8af787cabc Update windows.yml 2020-08-17 23:01:17 +02:00
Ray d64f5ee02a Update windows.yml 2020-08-17 22:53:44 +02:00
Ray 6f98c0c9b6 Update windows.yml 2020-08-17 22:49:03 +02:00
Ray eb8cf7e4d2 Update windows.yml 2020-08-17 22:48:12 +02:00
Ray 5f78b78489 Update windows.yml 2020-08-17 22:42:34 +02:00
raysan5 5c097b26d4 Merge branch 'master' of https://github.com/raysan5/raylib 2020-08-17 22:41:38 +02:00
raysan5 090490389e Improved Makefile clean on Windows 2020-08-17 22:41:26 +02:00
Ray cd1b71b3f9 Update windows.yml 2020-08-17 22:27:44 +02:00
raysan5 921f0c02e2 Update Makefile 2020-08-17 22:27:22 +02:00
Ray f618c41061 Update windows.yml 2020-08-17 21:54:39 +02:00
Ray 38d4768cdd Update windows.yml 2020-08-17 21:42:37 +02:00
Ray f86126aaea Update windows.yml 2020-08-17 21:25:16 +02:00
Ray e7f507c204 Update windows.yml 2020-08-17 21:20:02 +02:00
Ray c6ddaaf953 Update windows.yml 2020-08-17 21:10:34 +02:00
Ray ebeee7ebed Update windows.yml 2020-08-17 21:07:03 +02:00
Ray 6df0f2c535 Update linux.yml 2020-08-17 21:05:42 +02:00
Ray 1d9cdc1d83 Update macos.yml 2020-08-17 21:04:58 +02:00
Ray be6e1e7c06 Update macos.yml 2020-08-17 21:04:20 +02:00
Ray 6f012d44d4 Update linux.yml 2020-08-17 21:03:58 +02:00
Ray ceea5cb99b Update and rename ci_src_examples_linux.yml to linux.yml 2020-08-17 21:02:56 +02:00
Ray 62302b1f71 Update and rename ci_src_examples_macos.yml to macos.yml 2020-08-17 20:54:10 +02:00
Ray 18aef2f781 Rename ci_src_examples_win.yml to ci_src_examples_win.yml.disabled 2020-08-17 20:49:04 +02:00
Ray 4fd227527e Rename cd_src_release.yml to cd_src_release.yml.disabled 2020-08-17 20:48:44 +02:00
Ray 2dd4ab9535 Update windows.yml 2020-08-17 20:47:58 +02:00
Ray a96b2b5b0d Update windows.yml 2020-08-17 20:46:25 +02:00
Ray e3709a9754 Create windows.yml 2020-08-17 20:40:17 +02:00
raysan5 2d0811d94c Update Makefile 2020-08-17 20:38:06 +02:00
raysan5 c32ae480af RENAMED: FormatText() -> TextFormat()
This function was renamed for consistency in raylib 3.0, just unified all examples to use TextFormat() instead of FormatText()
2020-08-16 11:28:15 +02:00
raysan5 26f6a64a39 NEW EXAMPLE: shaders_hot_reloading #1198 2020-08-16 11:18:25 +02:00
raysan5 ebdeab7e25 Code reorganization on example 2020-08-16 11:17:33 +02:00
Ray 7b346dbbe1 Review issue with .fnt -> .png path #1351
When .fnt file is in the .exe path, image path was wrongly calculated
2020-08-15 11:32:23 +02:00
Ray 902a97f540 Update BINDINGS.md 2020-08-15 11:00:32 +02:00
Ray 53b17765f4 Added raylib-luajit 2020-08-13 10:53:09 +02:00
Gaëtan Blaise-Cazalet 810f51b3e7 Change raylib version for VSCode mingw project makefile (#1347) 2020-08-12 15:04:17 +02:00
raysan5 ad1b3330b7 Support mulstiple WAV sampleSize for MusicStream #1340
24bit per sample is not supported internally and automatically converted 16bit
2020-08-11 19:08:07 +02:00
Henrique de Lima 702341ae6e Making the windows build script a bit faster by verifying if the msvc environment was set up previously and only setting it up if it wasn't (#1346) 2020-08-10 21:08:51 +02:00
Ray 959d0d2591 Review Makefiles for WEB compilation 2020-08-08 14:08:56 +02:00
Ahmad Fatoum 1841a6bd3b CMake: allow spaces in CMAKE_INSTALL_PREFIX
We use @CMAKE_INSTALL_PREFIX@ in the pkg-config template, but the way we
use it breaks when used with a path containing a space. Use quote to fix
this. This now means, we probably can't have quotes, but that's of
lesser concern.
2020-08-08 01:11:45 +02:00
Ahmad Fatoum 6108ba89df CMake: don't use raylib_static name for MinGW on Windows
There are no *.lib files that could overwrite each other when building
both static and shared versions of raylib at once. So just use the
normal library name without _static suffix.
2020-08-08 01:11:45 +02:00
raysan5 2c7dc70878 Reset close status for next frame #1339 2020-08-06 11:47:46 +02:00
Ray 2d866d5118 Added raylib-jai 2020-08-05 12:19:13 +02:00
Rfaile313 9e75f870bb Update Makefile for web (#1332)
When you install emsdk out of the box, the directory is no longer `$(EMSDK_PATH)/python/33.7.4_64bit` but rather `$(EMSDK_PATH)/python/3.7.4-pywin32_64bit` noting the `3.7.4-pywin32_64bit` change on the last file.

Thus, without adjusting this in the raylib Makefile it will throw an error:

```
PS C:\raylib\raylib\src> make PLATFORM=PLATFORM_WEB -B                                                                  emcc -c core.c -Wall -D_DEFAULT_SOURCE -Wno-missing-braces -Werror=pointer-arith -fno-strict-aliasing -std=gnu99 -Os -s USE_GLFW=3 -I. -Iexternal/glfw/include -Iexternal/glfw/deps/mingw -DPLATFORM_WEB -DGRAPHICS_API_OPENGL_ES2              '"python"' is not recognized as an internal or external command,                                                        operable program or batch file.  
```

However, changing this line in the Makefile compiles raylib for web as expected

`"raylib library generated (libraylib.bc)!"`
2020-08-02 20:21:59 +02:00
raysan5 168948d91d Update raudio_standalone.c 2020-07-31 12:31:40 +02:00
raysan5 7eb6cb470b Update raudio_standalone.c 2020-07-31 12:13:10 +02:00
raysan5 6e9e7bd6bc LoadSound(): Use memory loading (WAV, OGG, MP3, FLAC) #1312 2020-07-31 12:13:04 +02:00
Adrie 3c095f9d34 Fix color of ambient light (#1330) 2020-07-30 12:51:58 +02:00
seanpringle 1d895616f7 rlCheckErrors (#1321)
* rlglCheckErrors

* rlglCheckErrors LOG_WARNING

* rename to rlCheckErrors; improve messages; revert core.c
2020-07-30 12:50:20 +02:00
raysan5 9c2ff464b0 Support pthreads on PLATFORM_WEB compilation 2020-07-28 20:36:10 +02:00
raysan5 20301d1e5d Corrected issue with framebuffer size storage #1298 2020-07-28 11:44:45 +02:00
raysan5 488c60d139 Small shader fix on vec3 initialization #1298 2020-07-28 11:27:05 +02:00
Ray b5eb104b08 Consider empty title for window #1323 2020-07-24 18:20:37 +02:00
Ray 14d37464ad DrawTriangleFan(): Add a comment about vertex order #1316 2020-07-22 11:12:04 +02:00
seanpringle cebcdea80f [wip] MeshNormalsSmooth() (#1317)
* MeshSmoothNormals() by average

* wrong comment

* spelling

* use correct function naming convention
2020-07-20 11:05:18 +02:00
raysan5 6ec847a93f Find a better mechanism to avoid FBO on OpenGL 2.1 if required #1290 2020-07-17 19:41:38 +02:00
raysan5 feedf332a8 Issue with render size assignment on RPI/Android #1314 2020-07-17 18:39:31 +02:00
raysan5 642f42bb4f Reviewed comment in LoadIQM() #1315 2020-07-17 18:22:09 +02:00
seanpringle bdd253a66a clamp ray hit y position to ground plane height (#1311) 2020-07-15 11:13:03 +02:00
Random 7760575d3f fix emcc warning (-Wparentheses-equality) (#1310) 2020-07-14 21:25:21 +02:00
raysan5 6fb5207694 Update resources LICENSE 2020-07-14 19:17:08 +02:00
raysan5 67acb0f840 Update audio resources LICENSE 2020-07-14 19:11:09 +02:00
raysan5 dd5f448f25 Update Makefile Android 2020-07-14 19:09:58 +02:00
raysan5 0b52c57a24 Update Makefile emsdk paths 2020-07-14 19:07:51 +02:00
raysan5 d2d50bc60f Update miniaudio to v0.10.14 2020-07-14 18:59:00 +02:00
seanpringle a9d676a5fd scale perspective top calc for near culing plane (#1309) 2020-07-14 10:36:22 +02:00
raysan5 bf429a0058 Remove conditional __EMSCRIPTEN__
Not required anymore
2020-07-13 18:57:46 +02:00
Random 4de362b405 Updated miniaudio to v0.10.13, fixes emscripten compilation error (#1306) 2020-07-13 18:56:17 +02:00
raysan5 0db0e6acd8 WARNING: REMOVED: LoadImageEx()
Reason for removal: This function forces a specific Image data format, it copies data internally (it could be confusing and lead to memory leaks), it's redundant, there is a simpler alternative and raylib promotes using structures directly
2020-07-10 19:18:29 +02:00
raysan5 7199dd570f REVIEW: Pointer lock emscripten API does not work #1241
It seems some internals change recently due to web security reasons and some emscripten HTML5 funtionalities like pointerLock or fullscreen modes behave very weird or just don't work as expected
2020-07-10 18:23:17 +02:00
raysan5 3f4c6fee11 Correct issue when not supporting GIF format 2020-07-10 17:24:37 +02:00
raysan5 c57323f29c ADDED: LoadImageAnim() to load animated sequence of images 2020-07-10 13:59:01 +02:00
raysan5 fa7799143e Update miniaudio to v0.10.12, solves #1288 2020-07-10 13:29:42 +02:00
raysan5 57dc8a91dd Disable FBO support on OpenGL 2.1 #1290 2020-07-10 13:14:56 +02:00
Random 86a8f1d5d5 Chromium needs a larger audio buffer (#1300)
* Chromium needs a larger audio buffer: https://github.com/dr-soft/miniaudio/issues/150

* changed PLATFORM_WEB to __EMSCRIPTEN__
2020-07-10 12:34:35 +02:00
raysan5 b4ff6fdde3 Review skybox shaders 2020-07-10 12:20:57 +02:00
raysan5 956f61cf14 Merge branch 'master' of https://github.com/raysan5/raylib 2020-07-10 12:20:40 +02:00
raysan5 0877019fb6 Review comment 2020-07-10 12:15:52 +02:00
Daniel Jour 2d4956feeb Fix format-security error in rlgl_standalone.c (#1305)
See #1304
2020-07-10 11:17:46 +02:00
Terry Nguyen 871cd1a76a Free leaked allocations from render objects (#1302) 2020-07-09 20:42:20 +02:00
Doyle 00fda3be65 Fix incorrect color transform to 255 space (#1297) 2020-07-05 20:02:32 +02:00
Ray 6832da5aa7 Update SPONSORS.md 2020-07-04 11:49:54 +02:00
Ray 5986eee6ab Expose additional configuration options
Some internal defines have been exposed in config.h
2020-06-30 11:05:09 +02:00
Ray 00557df17f Update SPONSORS.md 2020-06-29 21:15:27 +02:00
Vlad Adrian 4d71e9b44f Added new function DrawTextureTiled() (#1291)
* Implemented DrawTextureTiled()

* Example added
2020-06-27 23:59:14 +02:00
Ray eae6e6a828 Minor format tweak 2020-06-27 14:11:21 +02:00
Ray 5b294b7cff Corrected issue with OpenGL 1.1 support 2020-06-27 14:10:53 +02:00
Ray 03846342bb Update SPONSORS.md 2020-06-25 16:50:51 +02:00
Ray ba39a1b304 ADDED: UpdateTextureRec() 2020-06-25 16:26:59 +02:00
Shylie 25fb24ba7d [add] GetMonitorRefreshRate(int monitor); (#1289) 2020-06-24 18:28:57 +02:00
Ray be80708d41 REVIEWED: textures_raw_data #1286 2020-06-23 01:06:05 +02:00
Ray 38530ebf12 REVIEWED: ToggleFullscreen(), issue #1287 2020-06-23 00:39:06 +02:00
Ray bd13d4a471 Add missing include 2020-06-23 00:33:51 +02:00
raysan5 e18c4c1158 REVIEWED: ColorAlphaBlend(), support tint color 2020-06-20 23:32:32 +02:00
Reece Mackie 6b94ce2204 [UWP] Fix time query precision (#1284) 2020-06-20 21:13:32 +02:00
raysan5 7ed7116e27 REVIEWED: ColorAlphaBlend(), integers-version, optimized #1218 2020-06-20 19:57:09 +02:00
raysan5 5a862bce29 REVIEWED: ImageDraw(), consider negative source offset properly #1283 2020-06-20 18:49:15 +02:00
raysan5 da582e2eec REVIEWED: ImageDraw() #1283 2020-06-20 18:10:21 +02:00
peppemas 0e26d514b8 Fix bug #1270 (#1282)
* Fix bug #1270

Added an argument to the shader in order to flip the texture

* Fix Bug #1270

* Fix bug #1270
2020-06-20 17:55:56 +02:00
Ray c833644a0e Update SPONSORS.md 2020-06-19 13:42:23 +02:00
raysan5 c078640fa5 Commented Fade() macro 2020-06-16 10:37:31 +02:00
raysan5 afcc584fb6 RE-ADDED: Fade() function to avoid multiple breaking changes
Probably there is a better way to do this but this is a temporary solution for backward compatibility
2020-06-16 10:36:05 +02:00
raysan5 589d606000 REDESIGNED: ImageDraw(), optimized #1218
After multiple tests and lot of redesign, current implementation is the fastest one. It also considers several fast-paths for maximum speed!
2020-06-15 12:06:41 +02:00
raysan5 32c0a7a135 Small code optimization 2020-06-15 12:05:03 +02:00
raysan5 bfa6544030 REDESIGNED: ImageResize(), optimized #1218 2020-06-15 12:04:18 +02:00
raysan5 691c1f9391 REDESIGNED: ImageFromImage(), optimized #1218 2020-06-15 12:03:33 +02:00
raysan5 ad954dc7ab WARNING: BIG CHANGE: Move Color functions to texture module
WARNING: Some functions ADDED and some RENAMED:
- RENAMED: Fade() -> ColorAlpha() [Added #define for compatibility]
- ADDED: ColorAlphaBlend()
- ADDED: GetPixelColor()
- ADDED: SetPixelColor()
2020-06-15 12:02:50 +02:00
raysan5 ec09fea29a REDESIGNED: ImageDraw(), optimization #1218
Trying a new optimization approach, some additional functions added, they will be probably exposed soon.
2020-06-11 22:47:25 +02:00
raysan5 15bfe44e73 REVIEWED: ImageDraw(), optimizations test #1218
Despite all the effort put on function optimization, dealing with alpha blending is complex, considering src and dst could have different pixel format...
2020-06-11 12:47:47 +02:00
raysan5 a6e6a99cb6 REDESIGNED: ImageAlphaClear(), optimized #1218 2020-06-10 23:10:16 +02:00
raysan5 4745ebeed5 REVIEWED: ImageResizeCanvas(), optimization #1218
Optimized to avoid ImageCrop() calls, now we define the source image rectangle and we just copy that data over the new canvas.
2020-06-10 21:21:37 +02:00
raysan5 dea0279a74 REVIEWED: ExportImage(), optimized 2020-06-09 19:52:10 +02:00
raysan5 7ef0fb4192 REVERTED: ExportImage() changes
Always using RGBA for now.
2020-06-08 21:18:42 +02:00
raysan5 82f7dd017e REVIEWED: ImageAlphaPremultiply(), optimization 2020-06-08 18:24:53 +02:00
raysan5 40bc6afdbd REVIEWED: ImageAlphaClear(), minor optimization 2020-06-08 18:23:59 +02:00
Chang Si Yuan 6264c4901b Fix wrong height used when using scissor mode with render texture of different height from window (#1272) 2020-06-08 10:32:23 +02:00
Chang Si Yuan 73cc33b493 Fix extra memory allocated when updating color buffer in mesh (#1271) 2020-06-08 10:31:39 +02:00
raysan5 87592e2625 Update textures.c 2020-06-07 20:32:43 +02:00
raysan5 d0e9228660 REDESIGNED: ImageResizeCanvas(), optimized #1218 2020-06-07 18:33:30 +02:00
raysan5 a9fb0aa207 ImageToPOT() renamed parameter 2020-06-07 18:32:20 +02:00
raysan5 b5174a9990 REVIEWED: ImageCrop() #1218
Further optimization, moving data line-by-line
Old optimization left for reference
2020-06-07 12:57:57 +02:00
raysan5 b7d53ce314 REVIEWED: ImageToPOT() #1218
Using ImageResizeCanvas()
2020-06-07 12:56:47 +02:00
raysan5 78c3d619f9 REVIEWED: ImageAlphaCrop() #1218
Now uses GetImageAlphaBorder()
2020-06-07 12:33:42 +02:00
raysan5 02ff68e1a3 REDESIGNED: ImageCrop(), optimized #1218 2020-06-07 12:16:27 +02:00
raysan5 7cf1e76d53 REVIEWED: ExportImage(), optimized #1218
Avoid GetImageData() retrieval and free
2020-06-07 11:57:22 +02:00
raysan5 776e4a37ef REDESIGNED: ImageRotateCCW(), optimized #1218 2020-06-07 11:53:13 +02:00
raysan5 79e2fbe0c6 REDESIGNED: ImageRotateCW(), optimized #1218 2020-06-07 11:52:55 +02:00
raysan5 d278eae4a3 REDESIGNED: ImageFlipHorizontal(), optimized #1218
Added several optimized options for future reference (if required)
2020-06-07 11:52:21 +02:00
raysan5 93d6dd3023 REDESIGNED: ImageFlipVertical(), optimized #1218 2020-06-07 11:51:26 +02:00
raysan5 5d0b2c796e Remove warning from GetDirectoryPath() 2020-06-07 11:50:03 +02:00
raysan5 992fefa823 Merge branch 'master' of https://github.com/raysan5/raylib 2020-06-07 11:49:24 +02:00
raysan5 0fda4b1183 Update raysan.png 2020-06-07 11:49:10 +02:00
frithrah e07512e213 Fixed buffer overflow in GenMeshPoly (#1269)
Co-authored-by: frithrah <simon@frithrah.com>
2020-06-05 19:13:31 +02:00
raysan5 00af1c0607 Update explosion.png 2020-06-03 01:30:07 +02:00
raysan5 9ce838806b [examples] Review/change audio resources 2020-06-03 01:29:24 +02:00
raysan5 6b9e49e965 [example] Update textures_sprite_explosion 2020-06-03 00:07:13 +02:00
raysan5 5867a63068 Update textures_sprite_button.png 2020-06-03 00:06:52 +02:00
raysan5 d8e079dad3 [example] Update textures_particles_blending 2020-06-03 00:06:47 +02:00
raysan5 3792951023 REVIEWED: GetPixelDataSize() to consider compressed data properly 2020-06-02 23:08:34 +02:00
raysan5 a4333035c7 Use TRACELOG() macro instead of TraceLog() function 2020-06-02 23:07:42 +02:00
raysan5 b00ab118c6 [examples] text_font_sdf - Corrected bug 2020-06-02 23:07:11 +02:00
raysan5 8a501ef06d Review some png images 2020-06-02 12:58:46 +02:00
raysan5 82fca43406 Replaced some resources for better licensing
Some resources used in examples have not a clear license, so, I'm replacing some of them for clearly licensed versions or resources created by me under CC0. License file to be added.
2020-05-31 23:31:43 +02:00
branlix3000 0e1d7d6430 Fixing Android build from Linux. Letting ANDROID_NDK to be modified at compile time. Default path to the ANDROID_TOOLCHAIN have changed in the latest Android command-line tools release. (#1264)
Co-authored-by: Branlix 3000 <branlix@3000.3k>
2020-05-31 21:18:33 +02:00
raysan5 fed4716c3b resources PNG chunks cleaning 2020-05-28 21:18:58 +02:00
raysan5 15e1e9ba24 Added resources license 2020-05-28 21:17:40 +02:00
raysan5 64747478fe Renamed some resources for naming consistency 2020-05-28 21:17:16 +02:00
raysan5 36a15a745c Remove unused font 2020-05-28 21:16:13 +02:00
jvocaturo 6e84120b89 fix bug in QuaternionFromVector3ToVector3 (#1263) 2020-05-27 17:52:23 +02:00
raysan5 c43e889e39 Corrected bug on TextJoin() 2020-05-27 13:45:11 +02:00
ChrisDill aff47d1564 Added bool IsCursorOnScreen(void). (#1262)
- The Mouse struct already stores cursorOnScreen. This function simply exposes it to the usage code.
2020-05-26 11:59:25 +02:00
Ray ae334e9a6e Update SPONSORS.md 2020-05-25 23:56:22 +02:00
raysan5 1c5df677e1 REDESIGNED: ExportWaveAsCode() to use memory buffer 2020-05-24 15:48:07 +02:00
raysan5 b0f245d8c5 Review ExportImageAsCode() comment 2020-05-24 15:47:15 +02:00
raysan5 8120547639 Added LoadWAV()/SaveWAV() memory buffer sample code
It could be useful in a future...
2020-05-24 00:20:32 +02:00
raysan5 a6fcd32339 Support WAV music streaming #1198
Switched custom WAV laoding/saving funtionality to drwav library, it also provides the required mechanisms to stream wav data.
2020-05-23 23:19:59 +02:00
raysan5 427e543d84 Corrected issue
Compression API requires functions provided by stbi_image_write (DEFLATE compression)
2020-05-23 23:17:34 +02:00
raysan5 fe5fe230b9 Update dr_wav.h 2020-05-23 23:16:40 +02:00
raysan5 394bf00ba5 REDESIGNED: ExportMesh() to use memory buffer #1232
This change could introduce an issue on dataSize precalculation...
2020-05-23 19:48:40 +02:00
raysan5 4e8e90b6df Add note comment on ExportImageAsCode() 2020-05-23 19:46:58 +02:00
raysan5 0bcb892975 REDESIGNED: LoadIQM(), LoadModelAnimations() to use mem buffers 2020-05-23 19:24:15 +02:00
raysan5 94789dd24a Review usage of sizeof(), unify conventions
All functions requiring sizeof() now follow the same convention:

NUM_ELEMENTS*NUM_SUBELEMENTS*sizeof()
2020-05-23 19:23:40 +02:00
raysan5 b95673f701 Use RL_FREE() instead of free() 2020-05-23 19:21:46 +02:00
raysan5 d3dece3343 REDESIGNED: ExportImageAsCode() to use memory buffer #1232 2020-05-23 18:24:53 +02:00
raysan5 c1e0978555 Replaced strncat() by memcpy() in some functions 2020-05-23 18:05:41 +02:00
raysan5 795c079c55 Corrected issues on LoadPKM() 2020-05-23 18:04:58 +02:00
Karlo Licudine a33dd87c99 Added Blend Modes example. (#1261) 2020-05-22 02:30:23 +02:00
raysan5 c1bb051e61 Avoid some warnings 2020-05-22 02:26:47 +02:00
raysan5 76f8e84901 Reviewed LoadBMFont() to load data from memory #1232 2020-05-22 02:19:45 +02:00
raysan5 70cd2f1edf Tweak 2020-05-22 02:18:50 +02:00
raysan5 0e56bc2929 Replace file accesses by memory accesses
Several functions used to load external files have been reviewed to just load the full file with LoadFileData() and load data from memory from there. This way all file access functionality is centralized in utils module.

Functions reviewed: LoadDDS(), LoadPKM(), LoadKTX(), LoadPVR(), LoadASTC(), SaveKTX()
2020-05-22 01:47:30 +02:00
raysan5 a2955bc5b3 Corrected issue with multichannel on CloseAudioDevice() 2020-05-22 00:32:23 +02:00
raysan5 cdbe1b6190 Review buffer limits on rectangle drawing 2020-05-21 18:57:45 +02:00
raysan5 b3eea3d322 Avoid loading texcoords and normasl from model if not existent 2020-05-18 18:35:47 +02:00
raysan5 6acb7bcfe4 Avoid glGetStringi() on OpenGL 2.1 2020-05-18 13:24:21 +02:00
Random d9a96c4ca0 added BLEND_SET (#1251)
* added BLEND_SET

* renamed BLEND_SET to BLEND_ADD_COLORS
2020-05-16 13:39:38 +02:00
Noor Wachid abb94bd2ff Adding Normalize and Remap functions (#1247)
* Adding Norm and Remap functions

// Normalize input value within input range
// Remap input value within input range to output range

* Rename Norm to Normalize

To make it uniforms with Raylib's functions

* Calculate Remap without other functions
2020-05-15 13:08:28 +02:00
raysan5 b897ae092a ADDED: Ecample: embedded files loading 2020-05-14 23:58:36 +02:00
ThePituLegend d14c51aa2a Introduced Vector2 and Vector3 Square Lenght. (#1248)
* Introduced Vector2 and Vector3 Square Lenght.

* Square length functions renamed
2020-05-14 22:31:58 +02:00
raysan5 7b001164ef Review formatting GetPRevDirectoryPath() 2020-05-14 17:37:54 +02:00
raysan5 64d44d131d Emscripten fullscreen -WIP- 2020-05-14 17:35:26 +02:00
ivn 730375faf7 fix bug in GetPrevDirectoryPath on Unix-like systems (#1246) 2020-05-14 17:30:32 +02:00
raysan5 257f232d41 WARNING: BREAKING CHANGE: Review audio looping system
Current looping system was broken, `loopCount` has been converted to `bool looping` and user can enable/disable with `music.looping = false`. `SetMusicLoopCount()` has been removed.
2020-05-14 14:00:37 +02:00
raysan5 3a33fe0fd9 Avoid LoadImageEx() usage internally
At this point LoadImageEx() could be removed from raylib... still thinking about it...
2020-05-14 13:37:52 +02:00
raysan5 65b7047111 Remove some [textures] function dependencies
- LoadFontDefault() -> Some code simplifications
 - LoadFontFromImage() -> Avoid LoadImageEx()
 - LoadFontData() -> Avoid GenImageColor(), ImageFormat()
 - LoadBMFont() -> Avoid ImageCopy(), ImageFormat()
2020-05-14 13:36:22 +02:00
raysan5 ca6016cc71 TextToInteger() always exposed 2020-05-14 13:32:57 +02:00
raysan5 4ec40e720c GenMeshCubicmap() added comments and simplification 2020-05-11 17:54:23 +02:00
Ray 45450db45a Update BINDINGS.md 2020-05-11 13:58:28 +02:00
Ray d7b0422769 Update BINDINGS.md 2020-05-11 13:43:58 +02:00
GoldenThumbs 763aa5b8a2 Fixed Generated Normals for GenMeshCubicmap (#1244)
Just flipped the signs of `n5` and `n6` at lines `2021` and `2022`.
2020-05-11 11:41:21 +02:00
raysan5 4e3ab8f27d Update config.h.in 2020-05-09 17:37:02 +02:00
raysan5 3a4e3d8747 Update CMakeOptions.txt 2020-05-09 17:36:16 +02:00
raysan5 3a6af2cc57 Remove SUPPORT_IMAGE_DRAWING flag
ImageDraw() is actually used in multiple functions and it aslo depends on several functions...
2020-05-09 17:17:54 +02:00
raysan5 913ef1d56f Misc code reviews 2020-05-09 13:05:54 +02:00
Mickaël Malécot 0bd64b7975 Gamepad axis bug fixes and improvement (#1228)
* Fix gamepad axis count

* Fix Xbox axis drawing

* Ignore low axis values

* Revert "Fix gamepad axis count"

This reverts commit f08ae4bf

* Fix GamepadAxis API

* Fix conflict with master

* Revert Gamepad MAX definitions

* Revert MAX_GAMEPAD_AXIS update
2020-05-09 12:39:41 +02:00
raysan5 7efed56b66 Added [text] flag: SUPPORT_TEXT_MANIPULATION 2020-05-09 12:38:33 +02:00
raysan5 7a1d3d807f WARNING: RENAMED: ImageExtractPalette() -> GetImagePalette() 2020-05-09 12:07:18 +02:00
raysan5 cb3bdf09c6 Merge branch 'master' of https://github.com/raysan5/raylib 2020-05-09 12:05:08 +02:00
raysan5 959447d8ed Reorganized texture functions
Removed ImageAlphaMask() dependency on [text] LoadBMFont()
2020-05-09 12:05:00 +02:00
Ray 2d1cbe3cb3 Update .gitignore 2020-05-08 22:48:10 +02:00
sikor666 db4a618c6f Fix materials loading for IQM models (#1227) 2020-05-08 20:27:10 +02:00
armageddon421 df5c522049 Update CMakeLists.txt to fix CMake build for Raspberry Pi (#1229) 2020-05-07 22:22:09 +02:00
Ray 4e29294caa Update BINDINGS.md 2020-05-07 19:22:43 +02:00
Ray a813c40abf Update BINDINGS.md 2020-05-07 19:19:13 +02:00
Ray 37dccd98a6 Added bindings: raylib-purebasic, clj-raylib 2020-05-07 18:37:55 +02:00
raysan5 d357b116fe Reviewed missing check for JPG 2020-05-07 18:08:35 +02:00
raysan5 6fa6757a8b Comment tweak 2020-05-07 13:39:41 +02:00
raysan5 f6ca045735 ADDED: DrawTriangle3D() and DrawTriangleStrip3D()
Those functions could be very useful for custom triangle data drawing, using internal batch system.
2020-05-07 12:46:45 +02:00
raysan5 2e8299742b Comments review 2020-05-07 12:45:44 +02:00
raysan5 67d8b43b0e Review first person movement Y waving
Some comments added
2020-05-07 12:45:23 +02:00
raysan5 fdad1f023b Avoid all MSVC compile warnings
Most warning were related to types conversion (casting required) and unsigned/signed types comparisons.

Added preprocessor directives (_CRT_SECURE_NO_DEPRECATE; _CRT_NONSTDC_NO_DEPRECATE) to avoid warnings about unsafe functions, those functions are safe while used properly and recommended alternatives are MS only.

Some external libraries still generate warnings.
2020-05-06 19:12:09 +02:00
Ray 9a1e934621 Added raylib D bindings! 2020-05-06 11:38:21 +02:00
raysan5 526c85773f Replace deprectared usleep() calls 2020-05-06 11:33:08 +02:00
Rfaile313 845596c30a No need for "LOGO_RECS_SIDE" maybe an artifact? (#1236)
Game will not compile with those four lines of code.
2020-05-06 11:27:55 +02:00
Ray 72443f8f25 Removed RaylibSharp (dead link) 2020-05-02 11:56:24 +02:00
Ray 695e937102 Added binding raylib-Forever 2020-05-02 11:48:07 +02:00
raysan5 b8055925bf Update raymath.h 2020-05-01 18:19:54 +02:00
raysan5 6a8e4795da Update core_input_multitouch.c 2020-05-01 18:16:04 +02:00
raysan5 af744b07c3 Review latest PR formatting 2020-05-01 18:04:47 +02:00
Anata 4583987fb9 Add Vector2MoveTowards function (#1233) 2020-05-01 17:50:41 +02:00
raysan5 c83477ffca WARNING: Big internal redesign!
Created RenderBatch type and related functions to allow rlgl users creating custom and separate render batches and not only rely on one internal render batch.

This feature has not been exposed on raylib yet because it implies some breaking changes. Right now a custom RenderBatch is just used internally in rlgl.
2020-05-01 17:34:43 +02:00
raysan5 51c3bef497 Review exposed #defines and allow user re-defining
There are multiple #define values around raylib, usually not exposed for redefinition, just reviewed all of them to allow users redefining them on compile time if required.

Also, multiple #define have been renamed and commented.
2020-05-01 17:31:44 +02:00
raysan5 1c15dc7292 Reviewed UWP update
Mostly code formatting tweaks
2020-04-30 21:00:09 +02:00
raysan5 0981dde9d4 Remove strcmp() requirement 2020-04-30 20:17:16 +02:00
raysan5 4ca4326bf9 Review LoadGLTF() to read from memory buffer 2020-04-30 19:51:57 +02:00
Reece Mackie 4b03860810 UWP rework (#1231)
* First draft of UWP rework.

* Read desc

- Moved UWP specific functions to uwp_events.h
- Removed BaseApp.
- Implemented example UWP lifecycle.

* Added GIF recording and screenshot support.

* Character inputs and filesystem stuff

* Fix game closing on Xbox when B is pressed.

* Fix the gamepad binding hack

* Add as many keys as I believe are possible.

* Implemented mouse locking of a sort.

* Remove rogue todo, the rest are for a game dev using this example.

* Implemented touch how I "think" it should work. I cant test this.

* Review.
2020-04-30 19:48:39 +02:00
Ray 2f454aa4b0 Added latest SPONSORS to list! Thank you very much! 2020-04-29 22:54:40 +02:00
Ray b1a0f9873b Added raylib-beef to list 2020-04-29 21:10:11 +02:00
raysan5 ac8f436c3b Init CORE.Window.focused 2020-04-29 20:55:17 +02:00
raysan5 e65d15f6ad Merge branch 'master' of https://github.com/raysan5/raylib 2020-04-27 18:03:05 +02:00
raysan5 94ab5e2aab Review issue with vertex batch overflow #1223 2020-04-27 18:02:54 +02:00
Ray 06f6497181 Update README.md 2020-04-27 17:49:57 +02:00
raysan5 6e2d39c51b ADDED: IsWindowFocused() 2020-04-27 17:41:29 +02:00
Ray ce2e48af52 Update to use latest emscripten and android ndk
- To support ASYNCIFY instead of EMTERPRETER
 - No need to generate a standalone toolchain for Android NDK
2020-04-26 13:46:15 +02:00
raysan5 72cc3e0530 Corrected issue #1203 2020-04-26 13:23:03 +02:00
raysan5 8e59ecb50c ADDED: GetWindowScaleDPI() 2020-04-24 23:17:32 +02:00
ivn b73e7372d8 Fix for building examples with latest emsk (LLVM): remove EMTERPRETIFY, add ASYNCIFY (#1215) 2020-04-23 15:45:26 +02:00
Kevin Yonan dd7dd1ac8b Mempool and other Allocators Optimization (#1211)
Optimizations of allocators.
Renamed 'Stack' to 'Arena'.
Replaced certain define constants with an anonymous enum.
Refactored MemPool to no longer require active or deferred defragging.
2020-04-22 13:11:45 +02:00
Dani Martin 0570e49d14 [android] Extend validity of the certificate (#1212)
For uploading a apk to Google Play a minimun of 25 years (9125 days) is needed for the validity of the key.

More info:
https://developer.android.com/studio/publish/app-signing
2020-04-22 13:09:41 +02:00
Ray 3494a29603 Update README.md 2020-04-21 21:19:20 +02:00
flashback-fx 596499416f Update easings.h (#1210)
Make easings.h use powf and sqrtf instead of pow and sqrt.
2020-04-21 21:17:58 +02:00
raysan5 00b3199859 Added raymath to examples 2020-04-16 13:49:19 +02:00
raysan5 c8309327f8 Merge branch 'master' of https://github.com/raysan5/raylib 2020-04-16 13:49:05 +02:00
raysan5 baf5e02f43 Remove comment 2020-04-16 13:48:47 +02:00
Ray 2f044acb4e Update new-issue-template.md 2020-04-15 20:05:19 +02:00
Ray ff58f7e846 Update new-issue-template.md 2020-04-15 20:04:14 +02:00
Ray 736c6761a2 Create config.yml 2020-04-15 20:02:51 +02:00
Ray c30d394efe Update new-issue-template.md 2020-04-15 19:58:51 +02:00
Stefan E. Mayer 6582084e9b Set the correct version of make on macos (#1202) 2020-04-14 19:50:53 +02:00
Ray 3f1029c281 Added binding: jaylib (Java) 2020-04-14 13:04:51 +02:00
raysan5 8d51ad567f Review UWP project -WIP- 2020-04-13 16:40:04 +02:00
G3bE 32387317bf Make raymath more consistent (#1197)
* Make raymath naming and functions more consistent

* Minor fixes

* Fix examples

* Fix Physac

* New naming rules

* Apply naming to Quaternion functions

* Apply to models.c

* Remove *MulitplyValue / *DivideValue
2020-04-13 16:32:45 +02:00
raysan5 f0fe03087a Remove tshirt design
It makes no sense to have this here...
2020-04-13 15:35:56 +02:00
raysan5 26f39e41a9 Remove games from building 2020-04-13 15:10:42 +02:00
raysan5 fd5d1dfcb6 WARNING: REMOVED raylib/games - Moved to raysan5/raylib-games
Move raylib games to another repo. It will reduce repo size for new clones.

I considered also removing the related history with [`git filter-repo`](https://github.com/newren/git-filter-repo) (the current sane alternative to the deprecated `filter-branch`) but it has some implications: It would had made a new repository with distinct history and checksums. If the repo was previously published,
the history of the new one won't have been compatible with the history others have pulled.
2020-04-13 13:31:45 +02:00
raysan5 eb04be8141 Review VSCode tasks 2020-04-13 12:07:05 +02:00
Stefan E. Mayer c21e9a721b Fix VSCode (#1193)
* Executable is called game, not main

* Use make not mingw32-make on macOS
2020-04-13 11:51:40 +02:00
pah arif b4af1b2cc0 add makefile to support multiple C files (#1195)
* tcc-based vscode project for windows

Signed-off-by: misterpah <misterpah@gmail.com>

* add makefile to support multiple C files
2020-04-11 20:01:28 +02:00
raysan5 5ff5be388f Merge branch 'master' of https://github.com/raysan5/raylib 2020-04-11 12:03:59 +02:00
raysan5 a7311af8c3 Corrected examples after API change: ImageDrawText*() 2020-04-11 11:26:16 +02:00
pah arif 17ee57c458 tcc-based vscode project for windows (#1191)
Signed-off-by: misterpah <misterpah@gmail.com>
2020-04-11 11:23:00 +02:00
raysan5 cc816345bf WARNING: API BREAK: Removed LoadImagePro()
Actually this function is useless and potentially dangerous, internally, a shallow copy of data was done. Same could be accomplished accesing image.data directly.
2020-04-10 19:26:36 +02:00
raysan5 b132da0ac2 WARNING: API BREAK: Reviewed ImageDrawText*() params order
To unify with DrawText*() equivalent functions
2020-04-10 19:10:15 +02:00
raysan5 d419602c99 Review display size init for RPI 2020-04-09 23:50:00 +02:00
raysan5 926651b708 Optimized ImageDrawPixel()
Now it's blazing fast. It modifies image.data directly.

Previous version could take up to 3-4 seconds to draw a line... now it takes some nanoseconds...
2020-04-09 22:44:10 +02:00
raysan5 0abe557af1 Fixed issue with ImageDrawLine() 2020-04-08 12:37:52 +02:00
Ahmad Fatoum 6c9f6cf084 Revert "CMake: Don't create symlinks on unsupporting file systems (#539)"
As noted in #539, the symlink check was to support compiling raylib on
VirtualBox vboxfs as no symlinks are supported there.

With me using Linux as daily driver outside VirtualBox now, this 'feature'
is most likely unused by anyone, but still annoys other users (#791).
Just revert it and be done with it. If there are really others building
raylib on vboxfs or a similarly crippled file system under Linux, they
should now step forward when their build breaks.

This reverts commit b8ca51fd01.
2020-04-08 11:01:26 +02:00
Shy 81c44e32c3 ignore symlink creation failure error 2020-04-08 07:05:43 +02:00
raysan5 2b5188c4b3 Updated VS2017.UWP output folders 2020-04-07 21:19:43 +02:00
raysan5 a25d3b7ff4 Update raylib.vcxproj 2020-04-07 21:14:36 +02:00
raysan5 42f09eb2b8 Delete .gitignore 2020-04-07 18:52:07 +02:00
raysan5 ef9e9bfa7d Review Android piepline
- Removed generate_android_toolchain, since version r21 AndroidNDK it's the toolchain
 - Removed external lib native_app_glue, provided by AndroidNDK
2020-04-07 17:54:08 +02:00
raysan5 f31b87fae8 Remove ANGLE project
Actually, project just adds 50MB of ANGLE libraries not related to raylib.
Also reviewed UWP project to consume ANGLE from the NuGet package.
2020-04-07 17:43:21 +02:00
raysan5 3b174876b3 Update launch.json 2020-04-07 16:43:40 +02:00
raysan5 62b7064e90 Corrected issue with depth initialization #1179 2020-04-06 19:58:28 +02:00
Ray 0a25b9d39b Update README.md 2020-04-06 13:30:32 +02:00
raysan5 5fb6155eea Removed unused Duck model. 2020-04-06 11:37:47 +02:00
Louis Johnson 4f40f8bc47 added log warning for unsupported file extension for music stream (#1176)
* added log warning for unsupported file extension for music stream

* updated error log message for music stream when file format isn't supported
2020-04-06 11:26:09 +02:00
Ray 8d0888afef Update SPONSORS.md 2020-04-05 23:26:32 +02:00
Benjamin Stigsen 2d6303e9fe Allow for empty replacement string (#1178) 2020-04-05 22:42:59 +02:00
raysan5 90fb53bccc Review android_fopen() to support SDCard access 2020-04-05 17:51:27 +02:00
raysan5 4ceb4d3bf3 Some code tweaks, comments and defines 2020-04-05 17:50:37 +02:00
Benjamin Stigsen 9c280bc7af TextReplace changes (#1172)
- Added NULL return if the replacement string (`by`) is empty
- Reordered sanity checks since there's no need to initialize variables if the strings are invalid.
2020-04-04 14:25:57 +02:00
SasLuca 8444c3f705 Fixed offset check in GenImageFontAtlas (#1171)
* Fixed offset check in GenImageFontAtlas

* Fixed code formatting to follow raylib notation rules
2020-04-02 23:53:29 +02:00
Ray 7ef114d1da Set build type to Release only #1164 2020-04-01 11:07:01 +02:00
raysan5 adb20569be Review shared library building 2020-04-01 11:06:05 +02:00
Ray 07f3a65a96 Update ROADMAP.md 2020-03-31 23:00:48 +02:00
Ray 6a8b1079c1 Update project version for release 2020-03-30 23:42:17 +02:00
Ray 703850b341 Update README.md 2020-03-30 23:28:38 +02:00
raysan5 8da6307456 Get icons back on shell.html
It seems there is some related issue on emscripten side... but I'll keep the icons here despite not displayed properly for the moment.
2020-03-30 21:34:45 +02:00
raysan5 e469f4ebf7 Update config.h, enable some file-formats by default 2020-03-30 17:42:42 +02:00
raysan5 8941cf3e66 Update textures.c 2020-03-30 17:42:19 +02:00
raysan5 68cad30646 Remove useless files 2020-03-30 17:27:03 +02:00
raysan5 fc7ec5e907 Update raylib.h 2020-03-30 17:11:35 +02:00
Dani Martin 1a948849f3 [cppcheck] Fix minor warnings in models.c and raudio.c (#1162)
Errores fixes:
models.c,2843 Either the condition 'fileData!=NULL' is redundant or there is possible null pointer dereference: fileData.
raudio.c,805, 806, 807, 808, %d in format string (no. 2) requires 'int' but the argument type is 'unsigned int'.
2020-03-30 17:08:01 +02:00
Ray bba10504e2 Update HISTORY.md 2020-03-30 16:30:34 +02:00
Ray ff11a6fbe8 Update CHANGELOG 2020-03-30 16:25:59 +02:00
Ray 27ebe78313 Update CHANGELOG 2020-03-30 16:23:37 +02:00
raysan5 44961d1975 Update core_basic_window.c 2020-03-30 16:09:09 +02:00
raysan5 e8a8d544c5 Review formating and signegness issues 2020-03-30 14:38:16 +02:00
Dani Martin 62cdb2299b [cppcheck] Improvements in SaveStorageValue() in core.c (#1160)
* [cppcheck] Improvements in SaveStorageValue() in core.c

in file core.c cppcheck shows errors only in function SaveStorageValue():

* Common realloc mistake: 'fileData' nulled but not freed upon failure
* Memory pointed to by 'fileData' is freed twice.

Validation:
* Tested examples/core/core_storage_values.c
* Launched Unit Test for this function
* Rerun CPPCHECK afer fix

* [cppcheck] Change functions header to accept only positive position in files

Changes:
* Functions SaveStorageValue(), LoadStorageValue() (core.c)
* Functions LoadFileData(), SaveFileData() (utils.c)
* Headers in raylib.h

Validation:
* Tested examples/core/core_storage_values.c
* Launched Unit Test for these functions
* Rerun CPPCHECK afer fix
2020-03-30 13:51:36 +02:00
Ray 9b66883e0b Update README.md 2020-03-30 13:29:05 +02:00
Ray d1b0d6a6dc Update README.md 2020-03-30 13:28:30 +02:00
Ray c47ba58494 Update README.md 2020-03-30 13:23:20 +02:00
Valentin Lemière 41582f0448 Fix "variable is reassigned before use" linter warning on raymath.h (#1158) 2020-03-29 22:03:10 +02:00
raysan5 3e76d3a3d3 Added example: shaders_spotlight 2020-03-29 14:25:09 +02:00
raysan5 733ed972f7 Reorganize image functions 2020-03-29 13:37:33 +02:00
raysan5 5d7050bdf9 Reorganize image/texture functions for consistency 2020-03-29 13:31:12 +02:00
Rob Loach a025636fa1 Update ImageDraw*() functions to match arguments of Draw*() (#1156)
* Update ImageDraw*() functions to match arguments of Draw*()

Updated draw functions:
ImageDrawPixel()
ImageDrawPixelV()
ImageDrawCircle()
ImageDrawCircleV()
ImageDrawLine()
ImageDrawLineV()
ImageDrawRectangle()
ImageDrawRectangleV()
ImageDrawRectangleRec()

* [nodepadpp] Update Notepad++ ImageDraw defintions

This updates the Notepad++ definitions with the updated ImageDraw methods.

* [examples] Add ImageDraw calls to textures_image_drawing

* Update ImageDraw*() methods
2020-03-29 12:43:34 +02:00
Ray 3c3dfde3f9 Added binding: raylib-zig 2020-03-28 19:35:20 +01:00
Ray 5829fdb73e Added binding: raylib-ats2 2020-03-28 19:30:00 +01:00
Ray 9b74c40fc2 Update HISTORY.md 2020-03-28 19:17:51 +01:00
raysan5 66e0d774bd Revert "Update compilation warning flags (#1151)"
This reverts commit 2528854664.
2020-03-28 18:39:56 +01:00
raysan5 a5e1aff99b [example] Integrate virtual mouse in main example 2020-03-28 18:36:30 +01:00
raysan5 e333eb415b Update window rc 2020-03-28 18:27:56 +01:00
Ray 02df366a7a Update HISTORY.md 2020-03-27 20:40:00 +01:00
Ray 976a10c891 Update CHANGELOG 2020-03-27 20:31:20 +01:00
raysan5 d28e73849b Review TRACELOG() messages 2020-03-27 18:49:21 +01:00
raysan5 d7b15ac1cf Review TRACELOG() categories 2020-03-27 18:45:37 +01:00
raysan5 c0c775e45d [rlgl] Review TRACELOG() messages, categorized 2020-03-27 18:31:36 +01:00
raysan5 b5842434c2 Corrected missing semicolon 2020-03-27 18:31:16 +01:00
raysan5 c7e9951795 [core] Review TRACELOG() messages, categorized 2020-03-27 18:06:09 +01:00
raysan5 70ed975b99 [models] Review TRACELOG() messages, categorized 2020-03-27 17:43:51 +01:00
raysan5 7e2b1b4ff0 [textures] Review TRACELOG() messages 2020-03-27 17:43:38 +01:00
raysan5 915b5f370b [raudio] Review TRACELOG() messages, categorized 2020-03-27 17:43:24 +01:00
raysan5 0c6c421508 [raudio] Review TRACELOG() messages, categorized 2020-03-27 17:16:30 +01:00
raysan5 bc2c6251f8 [text] Review TRACELOG() messages, categorized 2020-03-27 17:16:07 +01:00
raysan5 b9dd459d5a [textures] Review TRACELOG() messages, categorized 2020-03-27 17:15:44 +01:00
raysan5 28da2522fe [utils] Review TRACELOG() messages, categorized 2020-03-27 17:15:26 +01:00
Dani Martin 2528854664 Update compilation warning flags (#1151)
* Update compilation warning flags

Removed the -Wall flag that allow many warnings and added manually all the warning flags that don't generate warnings in the src/external folder.
Specifically, these are some of the flags reporting errors in src/external:

-Wmissing-prototypes
-Wunused-variable
-Wunused-value
-Wunused-parameter
-Wunused-function

* Uptade compilation flags in examples with missing -std=c99
2020-03-26 18:48:34 +01:00
raysan5 7ae7a87f8a Remove trail spaces 2020-03-25 19:41:51 +01:00
raysan5 3d41c1b6cd Minor tweaks 2020-03-25 19:38:55 +01:00
raysan5 96005f2566 ADDED: IsWindowFullscreen() 2020-03-25 18:52:38 +01:00
raysan5 e37d021cd3 Enable IQM models support on config.h 2020-03-25 18:51:46 +01:00
raysan5 133a882556 Update config.h 2020-03-25 18:39:28 +01:00
raysan5 74339b9fdc [example] Review shaders_spotlight to work on GLSL 100 2020-03-25 18:39:21 +01:00
chriscamacho 2dbcef218c spotlight example, each spot has own radius, mouse countrol (#1148)
NB glsl100 shader needs testing on "bare metal"

Co-authored-by: codifies <nospam@antispam.com>
2020-03-25 10:28:16 +01:00
Random e07281f8bd Fixed DrawTextRecEx() selection when wordwrap is ON (again) (#1149) 2020-03-25 10:27:43 +01:00
raysan5 5e670be239 REVIEWED: shaders_spotlight example
It seems something is not working properly...
2020-03-24 19:49:09 +01:00
raysan5 05abaee0e0 Update core_window_letterbox_virtual_mouse.c 2020-03-24 19:10:50 +01:00
raysan5 d657537821 Support mtl loading by tinyobj_parse_obj() #1134
I don't like this solution but well... let's use it for the moment...
2020-03-24 18:42:57 +01:00
Ray 5fe0db347c Update HISTORY.md 2020-03-24 15:03:55 +01:00
Ray 649665eac9 Update CHANGELOG 2020-03-24 15:01:09 +01:00
chriscamacho efe359d613 as per request spotlight example (#1146)
Co-authored-by: codifies <nospam@antispam.com>
2020-03-24 14:27:14 +01:00
Anata c45fe62abc Add files via upload (#1147)
Virtual mouse with window letterbox, and Clamp
2020-03-24 14:25:44 +01:00
Ádám Dóda 584e2d664c GenMeshHeightmap flat shading normals (#1140) 2020-03-24 13:27:49 +01:00
raysan5 51a8e1d692 Remove define not required 2020-03-24 13:26:34 +01:00
Doyle da836a732c Android: Better track touch input returned from IsMouse*() (#1144)
* Android: Better track touch input returned from IsMouse*()

Switch to actually tracking touch input to use for "mouse" input rather
than the gestures system. The gesture system as an abstraction ontop of
raw touch input loses some information needed to map to "mouse"
input.

Before,
- IsMouseButtonReleased() triggers immediately after the initial touch
(because GESTURE_TAP activates immediately on touch) instead of waiting for the
touch to be released.
- IsMouseButtonUp() returns false, when it should just be the opposite
of IsMouseButtonDown().
- IsMouseButtonDown() returns true only after GESTURE_HOLD (which
activates after some period of time after GESTURE_TAP), when instead it
should just be true whenever there is touch input i.e. gesture !=
GESTURE_NONE or alternatively when any input is received on the screen.

After this PR, touches map closer to mouse input.
- IsMouseButtonReleased() triggers when touch is released (last frame
was touched, this frame not touched).
- IsMouseButtonUp() returns the opposite of IsMouseButtonDown()
- IsMouseButtonDown() is true when
(AMOTION_EVENT_ACTION_DOWN || AMOTION_EVENT_ACTION_MOVE) and false when
(AMOTION_EVENT_ACTION_UP)

* RPI: Include index check for RPI in GetTouchPosition()
2020-03-24 13:23:34 +01:00
raysan5 6bab884d1d Added note on examples not supporting GLSL100 2020-03-24 12:39:05 +01:00
Ahmad Fatoum 4e6db307e4 appveyor: configure for Release with Debug Info
We build the library as debug with AppVeyor and package it this way,
which is unfortunate, because on Windows it's linked against debug
variants of the C runtime. Fix this by build RelWithDebInfo instead

Fixes #1128.
2020-03-24 06:37:22 +01:00
Ahmad Fatoum 0229f9b1a4 CMakeLists.txt: report generated CMAKE_CONFIGURATION_TYPES
We might want to customize this in feature for multi-config builds (e.g.
a Visual studio build with both Debug and Release configurations).

Output the variable value for user awareness.
2020-03-24 06:37:22 +01:00
chriscamacho 6bbaca118f ended up using the 100 version shaders as off the top of my (#1142)
head can't think of any improvement I could use on the shaders for
version 120
This has been tested on Linux (Desktop) requires testing on a Rpi

Co-authored-by: codifies <nospam@antispam.com>
2020-03-23 23:07:42 +01:00
Ray ba3b4b2d08 Set a release date for raylib 3.0! 2020-03-23 20:56:31 +01:00
raysan5 fcdb120935 Comment tweaks 2020-03-23 20:24:20 +01:00
raysan5 8f45370073 Comment tweaks 2020-03-23 20:24:09 +01:00
Ray 502bc61931 Update HISTORY.md 2020-03-23 14:30:19 +01:00
Ray 5a39b22521 Update CHANGELOG 2020-03-23 14:22:06 +01:00
Ray 6c44c9d730 Update HISTORY.md 2020-03-21 21:14:26 +01:00
Ray a523c64718 Update CHANGELOG 2020-03-21 20:33:46 +01:00
raysan5 5aebd2a16c Review formating from PR #1138 2020-03-21 20:30:40 +01:00
Sourav Gupta 574c689ff7 Added draw functions to ImageDraw*() (#1138)
Added draw functions:
ImageClearBackground()
ImageDrawPixel()
ImageDrawLineEx()
ImageDrawCircle()
2020-03-21 20:23:50 +01:00
Ray b178c992a1 Update README.md 2020-03-21 20:21:08 +01:00
Ray a4d31e1dad Added raylib 3.0 notes -WIP- 2020-03-21 20:20:37 +01:00
Ray e151487fde Review history introduction 2020-03-21 19:13:16 +01:00
Ray 061848cd0c Updated badges links 2020-03-21 18:48:04 +01:00
Ray ab1c12c449 Update Travis/AppVeyor badges 2020-03-21 15:05:02 +01:00
Ray 8db8401bc1 Review Travis/AppVeyor badges 2020-03-21 13:50:24 +01:00
Ray 58a81dd760 Update README.md 2020-03-21 13:48:53 +01:00
Ray a5838e40d9 Update CONTRIBUTING.md 2020-03-21 13:37:48 +01:00
Ray 78e8fd1c31 Update CHANGELOG 2020-03-21 13:32:53 +01:00
Ray 2d07d29a1c Update README.md 2020-03-21 13:29:03 +01:00
Ray 19bbcbb486 Update badges 2020-03-21 13:26:19 +01:00
Ray b6ba3dacb9 Playing with badges 2020-03-21 13:23:20 +01:00
Ray 65d9d0aac1 Testing badges 2020-03-21 13:22:06 +01:00
Ray b9c966f902 Playing with badges... 2020-03-21 13:01:50 +01:00
Ray d62368f133 Update README.md 2020-03-21 12:43:27 +01:00
Ray 3d66a6c93f Added: new binding to Carp 2020-03-21 11:28:18 +01:00
Doyle 01e035e28b Android: Track touch motion across screen (#1137)
This was working in 2.6 but no longer does in current git tree.
It appears touch position is only tracked on
AMOTION_EVENT_ACTION_[DOWN|UP], which only registers the initial touch
on the screen. Subsequent movement is not tracked into CORE.

Touch position and the Gesture System appears to be updated twice in
AndroidInputCallback in what looks like perhaps a copy paste error (code
is identical) with the exception of tracking AMOTION_EVENT_ACTION_UP in
the 2nd copy of the code (but this is not necessary to track).

If you need to track the first touch or release touch position, you can
do so with checking IsMouseButton[Pressed|Released] on the same frame.

This patch makes it so the touch position is always updated, and merges the
duplicated code into 1 singular code path.
2020-03-19 16:56:48 +01:00
raysan5 4af4483f5f Added security check in case init fails #1135 2020-03-17 20:57:01 +01:00
raysan5 2344941974 Replace external libraries custom allocators by raylib ones #1074
NOTE: Two libraries still use custom allocators: glfw and stb_vorbis
2020-03-17 13:40:07 +01:00
Ray 6f41b9594a Update README.md 2020-03-16 20:46:28 +01:00
Ray 3e049c09d5 ADDED: XD Pascal bindings 2020-03-16 19:11:06 +01:00
Henrique de Lima 92e1205f40 Adding the option to change the target platform(x86/x64), Generating the .pdb file on debug builds, and correcting comments that called the script 'windows-build.bat' instead of 'build-windows.bat' (#1133) 2020-03-16 10:32:39 +01:00
raysan5 71b06caed4 Corrected typo 2020-03-15 17:06:08 +01:00
raysan5 4611406c68 REVIEWED: ImageTextEx() to support line breaks #1131
NOTE: This functionality has an important issue, line space is fixed to 1.5 font.baseSize pixels, depending on the font and how it has been generated that spacing could be too wide or too narrow...
2020-03-15 16:18:48 +01:00
Doyle 427be604b9 Android: Set display.[width, height] before screen size check (#1132)
In `InitGraphicsDevice(...)`, the Android section has a screen security check
like other platforms- but CORE.display.width, CORE.display.height are
not set yet, so the security check sets it to 0. So ensure we query the
device's screen width and height before the screen size security check.

This also gives you the ability to run a proper full-screen application
on Android without any scaling and guess work on the target device by
setting screen width and height to 0 in `InitWindow(...)` and using
`GetScreen[Width|Height]()` to get the actual values.
2020-03-15 15:56:43 +01:00
Ray d57b5ac89a Added note on transparent framebuffer w/o X11 on RPI 2020-03-12 17:47:35 +01:00
Ray 82937e1564 Update .gitignore 2020-03-12 13:02:18 +01:00
Ray 7fa12844ed [text] TextToUpper(): Added note on diacritics 2020-03-12 13:02:09 +01:00
Ray af011bc952 ADDED Binding: FreeBasic 2020-03-09 18:52:41 +01:00
Ray 4c728f0b54 Minor tweaks 2020-03-09 18:45:37 +01:00
Ray 5895fb6adc Address issue #1125 2020-03-09 13:01:10 +01:00
Ahmad Fatoum eb6f8bd0ba Revert "Always use latest raylib version for cmake (#1123)" (#1126)
We didn't use the latest version, but a compatible version, which is established by raylib-config-version.cmake.

It's ok to have a minimal version, so revert b7c0d5b6dd.
2020-03-09 08:29:47 +01:00
G3bE b7c0d5b6dd Always use latest raylib version for cmake (#1123)
* Always use latest raylib version

* Always use latest raylib version

* Always use latest raylib version
2020-03-08 18:04:29 +01:00
SasLuca 680f9d5772 Changed if to else if. (#1122) 2020-03-08 18:03:23 +01:00
Astie Teddy 20d8889a03 ADDED Bindings: raylua-lua (raylua) (#1124) 2020-03-08 18:02:37 +01:00
Ray c67bc02dd1 Reviewed missing include 2020-03-07 21:54:54 +01:00
Ray 1b56f7917e Update raylib version 2020-03-05 19:33:54 +01:00
Ray 7639726193 ADDED Bindings: raylib-luamore, raylib-nelua, raylib-mosaic 2020-03-05 18:58:10 +01:00
Ray fb2ed693e4 Android: Support file saving to internal data storage 2020-03-05 18:12:41 +01:00
Ray 966e8adcf9 Reviewed and Updated Android compilation scripts 2020-03-05 12:25:39 +01:00
Ray c3386300d3 Remove comment 2020-03-04 18:23:31 +01:00
Ray cb4c676f5d Added BlitzMax binding 2020-03-04 13:12:16 +01:00
Ray 74c486201d ADDED: LoadFileText() and SaveFileText()
Improved file access checks
2020-03-04 00:21:46 +01:00
Ray 6b8f30964d WARNING: Corrected issue with IsKeyDown() #1119 2020-03-03 16:43:15 +01:00
Ray dc2e5c1751 Update core.c 2020-03-03 16:10:31 +01:00
Ray 645a5b2507 Avoid icons in shell
Very weird... lately icons are not properly displayed on browser!
2020-03-03 15:53:13 +01:00
Ray 3a073db029 REVIEWED: Mouse/Touch input system
After several reviews, now it seems everything works as expected.
2020-03-03 14:58:54 +01:00
Ray a6297a2be1 Some code tweaks 2020-03-03 01:21:06 +01:00
Ray 8724cf2ea5 Support any mouse button for gesture detection 2020-03-02 13:29:36 +01:00
Ray 485787059a Review shader exaples to work on web (GLSL 100) 2020-03-02 13:27:54 +01:00
Ray 08615d3247 Review some comment 2020-03-02 12:22:57 +01:00
Ray a1b2d96d9c Support touch drawing on web 2020-03-02 12:22:38 +01:00
i-right-i 3c2ee1cc75 Update raymath.h (#1118)
* Update raymath.h

Added Vector2Rotate Function.

* Update raymath.h
2020-03-02 10:22:08 +01:00
Ray 117696a893 Update textures_mouse_painting.c 2020-03-02 00:09:05 +01:00
Ray 2f5a7ddcc6 Added comment on IsMouseButtonDown() issue
IsMouseButtonDown() does not process touch state down properly, state is reseted every frame...
2020-03-02 00:07:06 +01:00
Ray 18a9982126 Reviewed IsMouseButtonDown() 2020-03-01 01:29:34 +01:00
Ray 41d3c47ffe Update Makefile 2020-03-01 01:28:49 +01:00
Ray 7428747ef0 REDESIGNED input system for better mouse/touch support 2020-02-29 22:10:23 +01:00
Ray 1ee6290fcf Replaced fabs() by fabsf() when required 2020-02-28 12:54:39 +01:00
brankoku 572969d8b7 LoadText() tweak (#1113)
Guarantee string is zero-terminated
2020-02-28 08:23:05 +01:00
Ray f2247c6f0a REVIEWED: LoadText() 2020-02-28 00:32:46 +01:00
Ray 05992a6fce Tweaks 2020-02-27 16:37:32 +01:00
Ray c8464bc731 Corrected return value 2020-02-27 16:22:34 +01:00
Ray b2098a2d60 REDESIGN: ExportImage()
Use new file I/O ABI
2020-02-27 16:15:58 +01:00
Ray ac73e3b5e2 REDESIGN: ExportWave()
Use new file I/O ABI
2020-02-27 16:15:20 +01:00
Ray 1be68d8cfe Tweak on variable init 2020-02-27 16:14:50 +01:00
Ray eb86d69a38 Review default config flags 2020-02-27 16:14:31 +01:00
Ray acfa967e89 Corrected issue with variable name 2020-02-27 13:56:27 +01:00
Ray 5ff0776235 Remove trail spaces and some tweaks 2020-02-27 13:33:09 +01:00
Ray 2a408d789c REDESIGNED: LoadImage() -WIP-
Using new file I/O ABI
2020-02-27 13:21:51 +01:00
Ray 5100cb3e7f REDESIGNED: LoadImageRaw(), LoadAnimatedGIF()
Using new file I/O ABI
2020-02-27 13:21:21 +01:00
Ray b029fb6d31 REDESIGNED: LoadFontEx()
Using new file I/O ABI
2020-02-27 13:19:58 +01:00
Ray 245ba2a152 LoadText(): Added comment 2020-02-27 13:19:13 +01:00
Ray 89ecad1e29 Review macros 2020-02-27 13:18:55 +01:00
Ray 23bde477e5 REDESIGN: LoadStorageValue()/SaveStorageValue()
Using new file I/O ABI
2020-02-27 13:18:15 +01:00
Ray 2294947660 Update core_storage_values.c 2020-02-26 23:42:41 +01:00
Ray 5aed36e76d Tweaks on fullsccreen detection... 2020-02-26 23:42:06 +01:00
Ray e5b5aea998 WARNING: RENAMED: Storage functions
Renamed functions for consistency:

 - StorageLoadValue() > LoadStorageValue()
 - StorageSaveValue() > SaveStorageValue()
2020-02-26 23:40:53 +01:00
Ray fadd74358b Security check 2020-02-26 23:38:12 +01:00
Ray 7912fac815 Correct typo 2020-02-26 23:19:29 +01:00
Ray fa4e0c1a26 Reviewed example 2020-02-26 20:47:08 +01:00
Ray 1046449339 ADDED: LoadFileData(), SaveFileData() 2020-02-26 20:29:33 +01:00
Ray c5d5d19443 Remove trail spaces 2020-02-26 20:23:55 +01:00
Ray 0f783aab34 Remove TraceLog() dependency on standalone mode 2020-02-26 20:23:36 +01:00
Ray 7849db65e0 Remove TraceLog() dependency on standalone mode 2020-02-26 20:23:06 +01:00
Ray 9b5a796213 Use float math functions 2020-02-26 20:20:52 +01:00
Ray 32e374d941 [core] SetWindowSize() try to support PLATFORM_WEB -WIP- 2020-02-24 12:35:53 +01:00
Ray 113a580021 [rlgl] LoadText() variable scope improvement 2020-02-24 12:05:54 +01:00
Ray a77273d8d8 Make sure current text buffer is empty #1109 2020-02-24 11:15:02 +01:00
Ray 310fd9b147 Update to latest emscripten toolchain
Corrected issue on web compilation
2020-02-22 17:21:10 +01:00
Ray 01d8642520 Merge branch 'master' of https://github.com/raysan5/raylib 2020-02-22 10:38:37 +01:00
Ray 30f3e49f3d Improve inputs on Android 2020-02-22 10:38:32 +01:00
Ray 0b8aded399 Support ToggleFullscreen() on web 2020-02-22 10:37:43 +01:00
Ray d2aeafcf1e Update Makefile 2020-02-22 10:36:34 +01:00
Ray 81881a120c Comment tweak 2020-02-22 10:36:20 +01:00
Tyler Jessilynn Bezera e7fdf8a13d Expand GLTF Model support (#1108)
* Update GLTF support to include loading color for albdeo (saved in the color value of the materialmap), support occlussion and emmission maps.. as well as some quality of life updates.

* clean up to use single image
2020-02-22 10:17:30 +01:00
Ray a750bcceec Support links on WebAssembly 2020-02-21 01:13:41 +01:00
Ray 67d0bf75a7 Update Makefile paths to use emscripten upstream
Note that emscripten upstream branch implements the new asyncify implementation, expected to be faster than emterpreter one.
2020-02-20 23:00:29 +01:00
Ray a8a21312e1 Removed TABS 2020-02-20 13:46:49 +01:00
Ray 42dad5df95 [rnet] Renamed some functions 2020-02-20 13:46:33 +01:00
Ray e176a476c0 [rnet] Review network examples formatting 2020-02-20 12:42:37 +01:00
Ray 19390eaf09 [rnet] Examples review -WIP- 2020-02-19 18:16:20 +01:00
Ray faff512140 [rnet] Convert to header-only
Some functions renamed
2020-02-19 18:15:59 +01:00
Ray 946a6cb280 Review mouse inputs 2020-02-19 12:44:57 +01:00
Ray 7d789763d6 Update API version 2020-02-19 12:35:30 +01:00
Ray d62a2f793f Improved GetFPS() calculation for average 2020-02-19 12:20:15 +01:00
Ray 9eefcb7939 Update miniaudio.h 2020-02-19 12:19:41 +01:00
o3o 36bf8a60d8 Fix #1103 (#1104)
Fix 1102
2020-02-18 23:19:30 +01:00
Ray 6d1cdf25a7 [rnet] Review module formating
Align formating with other raylib modules coding style.
2020-02-18 18:15:22 +01:00
Ray 51db3b589d Review function name on RAUDIO_STANDALONE 2020-02-18 18:14:22 +01:00
Ray b18940d3c6 Remove spaces 2020-02-18 18:03:28 +01:00
Ray 3f25c52a29 Some security checks in case music is not properly loaded 2020-02-18 16:30:52 +01:00
Ray 39e73ccc4d [text] TextLength() security check 2020-02-17 00:47:05 +01:00
Ray df4b55d657 Comment fprintf() calls 2020-02-17 00:46:41 +01:00
Ray 80dbbef0f5 Update Notepad++ intellisense 2020-02-14 23:48:40 +01:00
Ray 23b75281ad Add function prototype 2020-02-14 23:10:02 +01:00
Ray 91b2dc2aa9 [raudio] ADDED: SetAudioStreamBufferSizeDefault()
There could be some cases where we need to define the internal audio buffer size, now it's possible.

RENAMED: InitAudioBuffer() to LoadAudioBuffer()
RENAMED: CloseAudioBuffer() to UnloadAudioBuffer()

Renamed some defines and reviewed some comments.
2020-02-14 17:13:37 +01:00
Ray 7459a5c6ef Remove "No Audio Buffer" traces 2020-02-14 11:44:50 +01:00
Ray 8820baf5cc Update miniaudio.h 2020-02-13 11:41:33 +01:00
Ray 3b3e163c48 [raudio] Corrected issue with OGG sound loading 2020-02-13 11:41:28 +01:00
Ray 83fb4613c1 Review some RPI issues 2020-02-13 00:13:56 +01:00
Ray 1b20182d33 Updated periodSize reference 2020-02-12 14:45:02 +01:00
Ray 7dfe42d6d0 Trace log comment review 2020-02-12 13:49:08 +01:00
Ray 55f0647213 [core] Avoid pixel bleeding issue on MSAA 2020-02-12 13:48:50 +01:00
Ray 484c6b360f Reviewed Cppcheck issues #1098 2020-02-12 13:16:18 +01:00
SasLuca dec85f741a Fixed memory leaks in textures.c (#1097) 2020-02-11 22:25:27 +01:00
Ray 87d5b51256 REVIEWED: GetDirectoryPath()
Check if provided path is a full path containing system root letter: C:\
2020-02-11 19:12:49 +01:00
Ray aa3b413390 SUPPORT_HALFBUSY_WAIT_LOOP 2020-02-11 19:01:29 +01:00
Ray ee43a14f19 Update CHANGELOG 2020-02-11 16:52:52 +01:00
raysan5 64c23f8477 REVIEWED: VS2017.UWP project
It seems there is some problem on drawing... :(
2020-02-10 17:45:50 +01:00
raysan5 49145e90a2 Remove spacing 2020-02-10 13:16:34 +01:00
raysan5 28e12a6c6a [raudio] Update to latest miniaudio 0.10 2020-02-10 12:42:40 +01:00
raysan5 131132f17d Minor tweaks 2020-02-10 10:56:48 +01:00
raysan5 884e868e92 Review DEBUG trace log and custom allocators
Not exposing some data structures
2020-02-10 10:56:39 +01:00
raysan5 eb2483338f REVIEWED: Makefile, examples clean target #1087 2020-02-09 21:06:51 +01:00
raysan5 becd3c3831 REVIEWED: GenMeshCylinder(), solved issue #1088 2020-02-09 21:04:03 +01:00
raysan5 34fafb733f Corrected issue with toupper() usage 2020-02-09 16:11:32 +01:00
raysan5 90c129fd61 Review some libc dependency comments 2020-02-09 16:11:11 +01:00
raysan5 9922160ab4 Minor tweaks 2020-02-09 13:23:12 +01:00
Ray 1d324d5496 Update CHANGELOG 2020-02-07 18:02:09 +01:00
Ray 03c38396f3 Update CHANGELOG 2020-02-07 17:55:10 +01:00
Ray 85cecb2aae Update CHANGELOG for raylib 3.0 -WIP- 2020-02-07 17:39:29 +01:00
Ray d15b93839b Update ROADMAP.md 2020-02-07 16:32:57 +01:00
Ray b06497cad6 Update BINDINGS.md 2020-02-07 12:09:54 +01:00
Ray f632e32100 Corrected typo 2020-02-07 12:09:34 +01:00
Ray 52a6d756f4 Added raylib-chibi binding 2020-02-07 12:09:05 +01:00
Ray f4ca5b378a Review missing include 2020-02-06 18:10:52 +01:00
Ray 97054e4e0f Review ALL games to raylib 3.0 2020-02-06 18:07:25 +01:00
Ray 86bdf60887 Corrected issue with TextToUpper() and TextToLower()
This issue was breaking multiple things...
2020-02-06 17:52:33 +01:00
Ray 4b4f052fea Review game templates 2020-02-06 16:56:01 +01:00
Ray 2de92e3c07 Minor format tweaks 2020-02-06 16:44:04 +01:00
Ray 85e7856989 Update resource files 2020-02-06 16:37:38 +01:00
Ray b4293edd70 Update GLFW to latest master 2020-02-06 16:30:48 +01:00
Ray 6c7685da3f Update external libraries 2020-02-06 16:29:57 +01:00
Ray ea40bda88c Added func used in comments 2020-02-04 17:52:40 +01:00
Ray 1184db83f7 Review GetCurrentTime() 2020-02-04 17:06:08 +01:00
Ray ca600b44a0 Update gestures.h 2020-02-04 17:02:06 +01:00
Ray b5fe41f41a Review libc dependencies and remove when possible
Just for clarification, no plans to remove libc dependency, just did some code analysis to see how much raylib depend on stardard C library. My conclusions:

 - stdlib.h: primary dependency is for malloc() and free()
 - stdio.h: primary dependency is for FILE access, maybe it could go through a custom ABI?
 - string.h: just around 8 functions required
 - math.h: just around 8 functions required
 - others: 1-2 functions required for some other headers
2020-02-04 16:55:24 +01:00
Ray 3cd9e3896a tweak 2020-02-04 15:43:14 +01:00
David Reid 7024628c65 Update to miniaudio 0.10 (#1092)
* Update to miniaudio 0.10

This replaces the old ma_pcm_converter with ma_data_converter.

At this time of this commit, miniaudio 0.10 is still in the testing
phase. To make it easier to update miniaudio.h during this period, I've
temporarily moved the @raysan5 Win32 customizations to raudio.c because
there may be quite a few updates to miniaudio.h during this time.

* Use miniaudio's built-in volume control.
2020-02-04 13:43:31 +01:00
Ray d2bb6185f1 Review issue with RLGL TraceLog() 2020-02-03 20:20:00 +01:00
Ray c3f06b7470 Remove all trail spaces 2020-02-03 19:26:28 +01:00
Ray a7afd8de99 Update rlgl.h 2020-02-03 19:25:05 +01:00
Ray cde26c743c Replace TraceLog() function by TRACELOG macro
Added SUPPORT_TRACELOG_DEBUG config
2020-02-03 19:13:24 +01:00
Ray 40b73a8a91 Develop branch integration (#1091)
* [core] REDESIGNED: Implement global context

* [rlgl] REDESIGNED: Implement global context

* Reviewed globals for Android

* Review Android globals usage

* Update Android globals

* Bump raylib version to 3.0 !!!

* [raudio] REDESIGNED: Implement global context

* [raudio] Reorder functions

* [core] Tweaks on descriptions

* Issues with SUPPORT_MOUSE_GESTURES

* [camera] Use global context

* REDESIGN: Move shapes drawing texture/rec to RLGL context

* Review some issues on standalone mode

* Update to use global context

* [GAME] Upload RE-PAIR game from GGJ2020 -WIP-

* Update game: RE-PAIR

* [utils] TRACELOG macros proposal

* Update config.h
2020-02-03 18:31:30 +01:00
Ray 6f3c99a295 Update project version for release 2020-02-03 18:21:37 +01:00
Ray 9ce2331cc1 [build] Makefile examples modularization
Now examples can be compiled by module, that's useful when compilation fails at some point
2020-01-30 13:47:39 +01:00
Ray cacd4a9d90 Some examples tweaks 2020-01-30 12:27:04 +01:00
Ray be7f717a24 Update to be detected by GitHub 2020-01-29 14:53:19 +01:00
Ray 4992edab24 ADDED: DrawPoint3D() 2020-01-29 12:21:22 +01:00
Ray af3df8bdd6 Review PHYSAC_NO_THREADS on WebAssembly 2020-01-29 12:10:50 +01:00
Ray 02a533768c Review bool type check 2020-01-29 12:10:09 +01:00
Ray 46046bf018 Review spacing 2020-01-29 12:09:56 +01:00
Ray bc29720024 Renamed Mat2 to Matrix2x2 2020-01-29 12:09:35 +01:00
Ray 6a2e51ec78 Added comments related to #837 2020-01-29 11:42:55 +01:00
Ray e6d304cdc2 Tweak to avoid compilation warning 2020-01-28 18:35:14 +01:00
Ray 4663cc03f3 Removed big examples 2020-01-28 18:34:59 +01:00
Ray 77484cb19c Update README.md 2020-01-28 18:32:48 +01:00
Ray 15345ded25 Removed big examples (models_solar_system_rlgl) 2020-01-28 18:30:55 +01:00
Ray c715cae18d Some tweaks 2020-01-28 16:40:12 +01:00
Ray 98a7d35bab Corrected issue with matrix order multiplication #1054 2020-01-27 16:32:28 +01:00
Ray 4f7d090fb2 ADDED: DrawEllipse() and DrawEllipseLines() #1047 2020-01-27 16:21:37 +01:00
Ray 954f029118 Support touch/mouse indistinctly
REMOVED: IsTouchDetected()
2020-01-27 15:31:43 +01:00
Ray 4fa2c32906 Review touch input scaling for PLATFORM_WEB #163
Now touch inputs scale proportionally to the canvas size
2020-01-27 12:09:31 +01:00
Ray 7e9bed5c89 Review default font scale filter for HighDPI mode 2020-01-26 18:53:34 +01:00
Ray 5ec87c4c6f ADDED: TextCopy() #1083 2020-01-26 18:38:46 +01:00
Ray 05443cd0c8 Corrected bug #989 2020-01-26 18:29:13 +01:00
Ray b02c6127a0 Minor tweaks 2020-01-26 13:27:37 +01:00
Ray 46774a8167 REVIEWED: GetDirectoryPath() 2020-01-26 13:01:35 +01:00
Ray f28c1ef675 ADDED: IsTouchDetected() 2020-01-24 19:45:51 +01:00
Ray eee995ec3d ADDED: GetWorldToScreenEx()
Addressing issue #1056
2020-01-24 18:54:53 +01:00
Ray a3ca859db2 Allow MAX_BATCH_BUFFERING config at compile time 2020-01-24 18:36:20 +01:00
Ray 40d6c15798 Addressed issue #1051
Allow frustrum culling near/far distance configuration at compile time.
2020-01-24 18:35:58 +01:00
Ray d41386d661 Minor tweaks to avoid warnings 2020-01-24 18:23:36 +01:00
Ray 7ae426c377 Redesigned TextToInteger() 2020-01-24 17:58:19 +01:00
Ray fa0d5bbf9e Remove duplicate function 2020-01-23 21:12:50 +01:00
Ray d10ff78822 WARNING: Renamed Vector3Multiply() to Vector3Scale()
Renamed for consistency with Vecto2Scale()
Also renamed Vector3MultiplyV() to Vector3Multiply()
2020-01-23 21:10:12 +01:00
Ray e932d23cf4 Update cgltf.h 2020-01-22 23:24:11 +01:00
Ray 49b723e76d Correct issue with define 2020-01-22 15:11:22 +01:00
Ray 71017993ce Remove unneeded traces 2020-01-21 00:32:35 +01:00
raysan5 42d56d2f37 Added SUPPORT_HALFBUSY_WAIT_LOOP 2020-01-19 17:31:55 +01:00
raysan5 cff38308b7 Support custom allocator 2020-01-19 13:05:21 +01:00
raysan5 9c52a4932d Corrected issue with types 2020-01-19 12:49:33 +01:00
raysan5 edc1d2511d Review module to fit raylib conventions
Support custom allocators
2020-01-19 12:29:21 +01:00
raysan5 1c4dadcf68 Support custom memory allocators 2020-01-19 12:10:09 +01:00
raysan5 d797bb3e1c Support custom memory allocators 2020-01-19 11:42:16 +01:00
raysan5 bec467705e Review custom allocators 2020-01-19 11:23:38 +01:00
raysan5 fe0d04c879 Review functions modifiers 2020-01-19 11:23:27 +01:00
raysan5 406373caa9 Review functions definition modifiers 2020-01-19 11:22:28 +01:00
Victor Gallet 6a46dcb374 Fix compilation when the SUPPORT_MESH_GENERATION feature is not supported (previously, the loadModel function was using the GenMeshCube texture, if no model founded, to generate a default cube mesh (#1075) 2020-01-17 23:06:46 +01:00
Yunoinsky 7e77dc7a21 Create makefile for building android app on osx (#1070)
* Create makefile for building android app on osx

This makefile can work on macos to build android app

* Update and rename Makefile.macos.android to Makefile.Android.macos

Rename the makefile for android macos.

* Update Makefile.Android.macos

replace the user specific folder with env var $HOME
2020-01-16 16:41:49 +01:00
Ray 56e7a75a77 Update ci_src_examples_win.yml 2020-01-15 18:28:29 +01:00
Ray 0b4af7d341 Update ci_src_examples_win.yml 2020-01-15 18:25:02 +01:00
Ray 8deac79028 Update ci_src_examples_win.yml 2020-01-15 18:22:55 +01:00
Ray 2031c06880 Update ci_src_examples_win.yml 2020-01-15 18:20:16 +01:00
Ray 20e446cc7d Review Makefiles for web compilation 2020-01-15 18:00:13 +01:00
Ray 1eae4b483b Commented unnecessary printf()/puts() calls 2020-01-15 13:14:06 +01:00
Ray 1f82b0d847 Comment tweak 2020-01-15 13:13:30 +01:00
Ray b0ce16b460 LoadFontData(): generate empty image for space
This could be required on texture packing ;)
2020-01-15 11:53:46 +01:00
Ray 237972652d GetImageAlphaBorder() return 0 in case of blank image 2020-01-15 11:52:50 +01:00
Ray 9f699af138 Merge branch 'master' of https://github.com/raysan5/raylib 2020-01-15 11:22:15 +01:00
Ray 4525c897e2 GetImageData() returns NULL if image size is 0 2020-01-15 11:22:00 +01:00
jbosh 019434a37e Fix for short non-looping sounds (#1067)
Short non-looping sounds can sometimes think they need to keep playing and will output their first few frames again. This helps to break out of all the loops instead of just this one.
2020-01-14 09:15:52 +01:00
Ray 22b7713287 IsFileExtension(): Review issue with no-extension files 2020-01-12 13:56:03 +01:00
Ray a748c3bf25 Review VS2017 project to support x64 properly 2020-01-12 13:52:01 +01:00
Ray cc827041a9 Update ci_src_examples_win.yml 2020-01-10 17:20:51 +01:00
Ray 95d31b0986 Update ci_src_examples_win.yml 2020-01-10 17:10:32 +01:00
Ray e30995c65c Update ci_src_examples_win.yml 2020-01-10 17:05:38 +01:00
Ray 2829cec720 Update ci_src_examples_win.yml 2020-01-10 16:37:23 +01:00
Ray a63a422972 Update ci_src_examples_win.yml 2020-01-10 16:13:41 +01:00
Ray e043dad2a6 Update ci_src_examples_win.yml 2020-01-10 16:09:45 +01:00
Ray aca9f20c2e Update ci_src_examples_win.yml 2020-01-10 16:04:04 +01:00
Ray da51abf07f Update ci_src_examples_win.yml 2020-01-10 16:00:19 +01:00
Ray 31af42ee8e Update ci_src_examples_win.yml 2020-01-10 15:58:29 +01:00
Ray c77f97c84a Update ci_src_examples_win.yml 2020-01-10 15:52:33 +01:00
Ray d8f1aad494 Added CI badges 2020-01-10 13:45:30 +01:00
Ray 6b2aa173fc Update cd_src_release.yml 2020-01-10 13:05:19 +01:00
Ray 2cf8352b95 Update cd_src_release.yml 2020-01-10 13:04:48 +01:00
Ray 55e7428924 Update cd_src_release.yml 2020-01-10 12:38:53 +01:00
Ray c7fe2c772e Update cd_src_release.yml 2020-01-10 12:04:16 +01:00
Ray a4a10a6edd Update cd_src_release.yml 2020-01-10 11:29:08 +01:00
Ray c2e79a212c Update cd_src_release.yml 2020-01-10 11:23:35 +01:00
Ray 680cbdf1f0 Update ci_src_examples_macos.yml 2020-01-10 11:20:43 +01:00
Ray 9961e3b0d7 Update ci_src_examples_win.yml 2020-01-10 11:10:05 +01:00
Ray 5997fa8fe1 Update ci_src_examples_win.yml 2020-01-10 11:05:49 +01:00
Ray 59a44bf5b9 Update ci_src_examples_win.yml 2020-01-10 10:56:53 +01:00
Ray 30f21438bc Update README.md 2020-01-10 00:05:31 +01:00
Ray ebcbe292c1 Update ci_src_examples_linux.yml 2020-01-09 23:53:16 +01:00
Ray b978dec51c Update cd_src_release.yml 2020-01-09 23:51:47 +01:00
Ray 8cef1d12f2 Create cd_src_release.yml 2020-01-09 23:45:41 +01:00
Ray a77505c554 Update ci_src_examples_linux.yml 2020-01-09 23:39:43 +01:00
Ray e0d4cc3143 ADDED: DrawPolyLines() 2020-01-09 18:34:20 +01:00
Ray fcf15fe8c0 Removed comment 2020-01-09 18:33:50 +01:00
Ray 1694887f9b Update ci_src_examples_win.yml 2020-01-09 17:33:53 +01:00
Ray 0237231a8d Update ci_src_examples_win.yml 2020-01-09 17:30:35 +01:00
Ray e88099bfd3 Update ci_src_examples_win.yml 2020-01-09 17:27:52 +01:00
Ray 887881486b Update ci_src_examples_win.yml 2020-01-09 17:27:03 +01:00
Ray f21bd8836a Update ci_src_examples_win.yml 2020-01-09 17:21:12 +01:00
Ray 18c309fb38 Update ci_src_examples_win.yml 2020-01-09 17:13:53 +01:00
Ray bc07636d6b Update ci_src_examples_win.yml 2020-01-09 17:06:34 +01:00
Ray 7104911236 Update ci_src_examples_win.yml 2020-01-09 16:55:12 +01:00
Ray ca329bba0d Update ci_src_examples_win.yml 2020-01-09 16:53:00 +01:00
Ray d1a4c1f789 Update ci_src_examples_win.yml 2020-01-09 16:50:01 +01:00
Ray 451969de1b Update ci_src_examples_macos.yml 2020-01-09 16:36:01 +01:00
Ray 7fe8d25253 Update ci_src_examples_linux.yml 2020-01-09 16:35:42 +01:00
Ray b17937dda8 Create ci_src_examples_macos.yml 2020-01-09 16:33:57 +01:00
Ray 6f0a4a7663 Rename ccpp.yml to ci_src_examples_linux.yml 2020-01-09 16:06:58 +01:00
Ray 98f4e06a37 Create ci_src_examples_win.yml 2020-01-09 16:06:17 +01:00
Ray 1db9a85b5d Added more examples to list 2020-01-09 14:16:10 +01:00
Ray e5c9e5e328 Added new categories 2020-01-09 13:57:24 +01:00
Ray eb8512b43c Added some more examples 2020-01-09 13:45:34 +01:00
Ray 6321dd4614 Added shapes examples 2020-01-09 13:32:19 +01:00
Ray 689f3c086b Update README.md 2020-01-09 13:26:26 +01:00
Ray 9f79ed2972 Create core_2d_camera_platformer.png 2020-01-09 13:23:40 +01:00
Ray 421bbde1e0 Redesigning tables 2020-01-09 13:22:14 +01:00
Ray 10982fa184 Renamed directory 2020-01-09 13:14:57 +01:00
Ray a1809fad4c Renamed directory: physac -> physics
Examples categories are independent from the module they use, despite in some cases module name matches category name.
2020-01-09 13:11:56 +01:00
Ray 8f05322263 Review example and screenshots 2020-01-09 12:58:24 +01:00
Ray 358ca7595d Review IsFileExtension() to be case-insensitive 2020-01-09 10:43:21 +01:00
Ray 89fedf0bb9 Comments review 2020-01-08 18:33:21 +01:00
Ray 4211056354 Reviewed some comments 2020-01-08 18:21:08 +01:00
Ray 6d56c99a37 Reorganized some variables for consistency 2020-01-08 17:19:06 +01:00
Ray f46fcb8307 IsAudioBufferPlaying() replace ERROR by WARNING 2020-01-08 12:41:36 +01:00
Ray b708965ab7 Added examples images to README 2020-01-07 19:06:44 +01:00
Ray 3c8b7a41b2 Merge branch 'master' of https://github.com/raysan5/raylib 2020-01-07 16:45:39 +01:00
Ray a08508f6a4 Renamed LICENSE.md to LICENSE 2020-01-07 16:45:17 +01:00
Ray 7e0929e3b4 Create README.md 2020-01-07 16:26:41 +01:00
raysan5 793977db4a Review resources LICENSE 2020-01-06 19:50:26 +01:00
raysan5 b5b3bbb30b Review variable name 2020-01-06 19:49:52 +01:00
raysan5 615cb35d96 VS2017 project: Added x64 platform configuration
NOTE: When building for 64bit in raylib static mode, CloseWindow() symbol collides with user32.lib symbol. No solution for that at the moment, just compile raylib as shared library (raylib.dll), actually it can be chosen on project configurations.
2020-01-05 20:13:35 +01:00
raysan5 21c30f43d4 Update year to 2020 2020-01-05 20:01:54 +01:00
raysan5 c20ccfe274 Review PR #1040 naming and formating 2019-12-29 13:55:15 +01:00
raysan5 c0d1425aac Remove TABS 2019-12-29 13:53:05 +01:00
raysan5 350cb0a8a8 GenTextureCubemap(): renamed parameter 2019-12-29 13:52:48 +01:00
chriscamacho cedd5efe4c fixed free camera pitch (#1040) 2019-12-29 13:47:01 +01:00
las3rlars f8bd56b07f Normals was not correctly updated when using animated meshes (#1052)
* Normal vbo not correctly updated
2019-12-29 12:17:36 +01:00
Ray 9fbf5c8ca2 Review VS2017 project configuration 2019-12-25 10:12:59 +01:00
illegalinstruction caa1f45643 Forcibly ensure .xm playback starts in the right place; fixes #1043. (#1045) 2019-12-21 13:02:54 +01:00
Ray 5e8b6b0157 Review flags and web compilation 2019-12-16 18:07:17 +01:00
Ray 8473e94879 Add some comments on desktop multi-touch 2019-12-16 18:06:48 +01:00
Ray 8dece6a179 Update README.md 2019-12-15 23:09:20 +01:00
Ray ccf085ac70 Merge branch 'master' of https://github.com/raysan5/raylib 2019-12-15 23:02:35 +01:00
Ray dde1d68a02 Remove KDevelop 2019-12-15 23:02:04 +01:00
Ray 14884a2a6c Update supported projects 2019-12-15 23:01:08 +01:00
Ray 9c62d8a400 Remove VS2015 project 2019-12-15 22:57:53 +01:00
Shylie 6e1326143e Typo fixes (#1039)
* Update SPONSORS.md

* Update SPONSORS.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md
2019-12-13 20:40:47 +01:00
Ray 03e6006ac8 Corrected bug on rlReadTexturePixels() 2019-12-11 23:26:42 +01:00
Ray e614942a2d Read texture data as RGBA from FBO on GLES 2.0 2019-12-11 23:22:10 +01:00
Ray 1397242d88 Small code tweak to avoid warning 2019-12-11 23:14:32 +01:00
Ray b8246d8592 Minor format tweaks for PR #1036 2019-12-10 00:18:29 +01:00
Justin 7eacac24d5 SetWindowMonitor made functioning again. (#1036)
* We get the video mode from the target monitor and use that to set, therefore
keeping windowed-fullscreen
* Added a GLFW_AUTO_ICONIFY 0 hint so that glfw does not minimize the window
when changing focus from a windowed fullscreen window. This is more expected
behavior for windowed full screen, when a user alt-tabs or clicks on a window in
the other monitor, they expect their windowed-fullscreen window to remaining up.
2019-12-10 00:14:56 +01:00
Ahmad Fatoum 2a64aa2abd external: glfw: reinstate export of GLFW_PKG_{DEPS,LIBS}
We were doing this before, but it was deleted during the
last GLFW update. Readd it to fix the associated macOS CI failure.

Fixes: ea5cd42e6 ("Update GLFW to version 3.4")
2019-12-05 00:29:24 +01:00
Ray f976b03a4f Update ccpp.yml 2019-12-04 20:23:13 +01:00
Ray 8db130289e Update ccpp.yml 2019-12-04 20:11:34 +01:00
raysan5 3aad221b1e Review some shaders to work on GLSL 100
Tested on Raspberry Pi... Just note that platform is very limited by GPU...
2019-12-04 19:52:53 +01:00
Ray ff499fe57d Update ccpp.yml 2019-12-04 18:42:50 +01:00
Ray 3c75bb5e6d Update ccpp.yml 2019-12-04 18:34:11 +01:00
Oskari Timperi 8a08a9b225 Fix IsMouseButtonReleased() when press/release events come too fast (#1032)
If press/release events for a mouse button come too fast, then using
`IsMouseButtonReleased()` does not work. This has been noticed when
using a touchpad on Linux when tapping with two fingers two emulate
right mouse button click.

The situation looks like this:

```
BeginDrawing           <-- current==released, previous==released
Pressed                <-- current=pressed
Released               <-- current=released
IsMouseButtonReleased  <-- returns false because current==previous
EndDrawing             <-- previous=released
```

The fix is to update the previous mouse button state in addition to
current mouse button state when `MouseButtonCallback()` is called by
glfw. Now the situation is as follows:

```
BeginDrawing           <-- current==released, previous==released
Pressed                <-- current=pressed, previous=released
Released               <-- current=released, previous=pressed
IsMouseButtonReleased  <-- returns true because current!=previous
EndDrawing             <-- previous=released
```
2019-12-04 18:29:11 +01:00
Ray 1b7d136daa Create ccpp.yml 2019-12-04 18:25:17 +01:00
raysan5 f346c672fb Work on macOS HighDPI issue #826 2019-12-04 18:09:56 +01:00
raysan5 08adb4b8c3 Check and testing timming #865 2019-12-04 17:59:17 +01:00
raysan5 3d936061c8 Corrected issue #1027 2019-12-04 11:05:46 +01:00
Ray 95f3b6e18e Review VSync on fullscreen mode
It seems to work ok on my old Intel HD Graphics card... it should work anywhere else
2019-12-01 13:58:29 +01:00
MasterZean 8eecbbe4aa fixes for switching full-screen and v-sync (#963)
* fixes for switching full-screen and v-sync

* requireVsync flag
2019-12-01 13:46:09 +01:00
Ray ea5cd42e6c Update GLFW to version 3.4 2019-12-01 13:30:02 +01:00
Ray 3ffe34f9bb ADDED: DrawTextCodepoint()
- Renamed GetGlyphIndex() parameter
 - Review DrawTextEx() implementation
 - Review DrawTextRecEx() implementation
2019-12-01 13:28:14 +01:00
Ray 416a52b5bc Minor comments tweak 2019-12-01 12:55:33 +01:00
Ray 91faf72dda Rename and review: core_2d_camera_platformer 2019-11-25 13:06:56 +01:00
Ray 60e8511543 Update miniaudio.h to v0.9.8 2019-11-25 11:42:49 +01:00
Ray 97abaff4c5 Support rlPushMatrix() and rlPopMatrix() on mesh drawing 2019-11-25 11:29:04 +01:00
Ray 5ad65d9291 Minor format tweaks 2019-11-25 11:26:26 +01:00
Darryl Dixon - Piece Digital 776304e8e8 Comments (#1026)
* swapped comments, expanded comment for clarity

* revert alignments

* adjusted for consistency
2019-11-25 00:13:05 +01:00
raysan5 d5aab98ac9 Review PR #1015
Just simplified code a bit
2019-11-24 14:08:27 +01:00
brankoku 1f66f0d9a2 [text] TextFormat() caching (#1015) 2019-11-24 14:01:35 +01:00
raysan5 c1a02e9fca Review PR #1022
Actually OpenAL is not used any more, it should be using CoreAudio
2019-11-24 13:43:48 +01:00
Richard Smith f987ac9dca fix example build on macos (#1022) 2019-11-24 13:41:23 +01:00
raysan5 1d3f230c92 Review key input queue PR #1012
Keeping original API
2019-11-24 13:39:45 +01:00
Ushio ae301a1d23 add api FIFO based character input. (#1012)
* add api FIFO based character input.

* rename input character functions

* replace tab to space x4 #1012
2019-11-24 12:46:00 +01:00
Ushio b132ae099b Fix camera not working problem at align z direction. #924 (#1013)
* Fix camera not working problem at align z direction. #924

* replace tab to space x4
2019-11-24 12:37:52 +01:00
Ray 2783d0d63e DrawPoint3D(): PR review 2019-11-22 00:33:50 +01:00
Eric J 5d27c1e6c9 Add DrawPoint3D() function to models.c (#1019)
Uses fewer vertexes than using DrawCube() or DrawSphere() for points.  The small line is on analogy to the code for DrawPoint() in shapes.c.
2019-11-22 00:30:19 +01:00
Kevin Yonan d2882a68fe Adding double ended stack & Mempool Reset function (#1021) 2019-11-22 00:27:23 +01:00
Ray 2ae5849826 Update BINDINGS.md 2019-11-22 00:18:03 +01:00
Ray 25ae374f62 Added raylib binding 2019-11-20 21:46:04 +01:00
JuDelCo 8b7db29ba0 Fix Makefile missing X11 lib when building as a shared library on Linux. (#1018) 2019-11-15 19:46:20 -08:00
JuDelCo 74642ba1c6 Fix VSCode template for debugging. (#1014) 2019-11-12 19:30:45 +01:00
brankoku 96b0563249 [rlgl] Create function rlUpdateMeshAt (#1010)
* [rlgl] Create function `rlUpdateMeshAt`

* [rlgl] Update function `rlUpdateMeshAt`
2019-11-11 11:49:13 +01:00
ChrisDill 00c611a5fb [Core] Added ColorFromNormalized which is the reverse of ColorNormalize. (#1011) 2019-11-08 21:02:41 +01:00
brankoku bba8454034 rlUpdateMesh now supports updating indices (#1009) 2019-11-06 11:43:36 +01:00
raysan5 29b9b054dd REVIEW: rlLoadTexture()
Corrected bug when loading a RenderTexture texture passing NULL data.
2019-11-04 13:40:59 +01:00
raysan5 e8b89b5ecf REVIEW: GetImageData() and GetImageAlphaBorder() 2019-11-04 13:30:55 +01:00
Pablo Marcos Oltra 5d9df629d7 Fix generation of web examples (#1007)
At least on Linux, CMake seems to add automatically
the '-rdynamic' flag. As a result, Emscripten
generates a fat HTML file that does not work.
Removing it allows HTML+JS+WASM generation.
2019-11-01 19:09:38 +01:00
Ray dc6136e820 Review formatting for PR #1004 2019-10-29 16:03:21 +01:00
João Coelho 75b0264f35 fix various problems, thanks CppCheck :) (#1005)
* explained a bit more the core_window_letterbox example

* fixed a few 'ups' moments that could lead to mild head pain and time loss
2019-10-29 15:57:19 +01:00
Ray 64c588e9d8 Review latest PR #1003 2019-10-29 15:56:14 +01:00
Jean-Seb / jseb 862ef0524e Raysan (#1003)
* new linux makefile for Android portages

* Revert "projects: CMake: bump up minimal raylib version (#983)"

This reverts commit 82306af111.

* new PR for upstream

* for Raysan
2019-10-29 15:54:01 +01:00
Ray d73abe73e5 REDESIGN: TextToUtf8()
ADDED: CodepointToUtf8()
2019-10-28 20:53:32 +01:00
Ray 6bf746d531 Corrected issue with function renamed 2019-10-28 20:39:39 +01:00
Ray f6df47dfe5 ADDED: TextToUtf8() -WIP-
RENAMED: TextCountCodepoints() -> GetCodepointsCount()
2019-10-27 23:56:48 +01:00
Donald Duvall 3f12fa54f7 Update Bindings list include raylib-pas info (#1001) 2019-10-27 17:15:25 +01:00
chriscamacho 90b3dceb54 added GetMatrixProjection fixed issue with GL11 where model matrix was identity (#999) 2019-10-27 12:13:18 +01:00
Industrious Nomad a6db31c01e updated RayMarching Demo (#997)
* Removed Unused Uniforms

uniform vec3 viewUp;
uniform float deltaTime;

* Removed Unused uniforms

uniform vec3 viewUp;
uniform float deltaTime;

* Updated Source

  Added   - #define PLATFORM_DESKTOP line for desktop users.
            This now will correctly find the proper glsl version for the raymarching.fs file.
  Removed - Uniforms --> deltaTime and viewUp. Including the code that was setting them.
            They were never used and they were triggering a log warning.
  Removed - The const from both screenWidth and screenHeight.
            Now they can be used to update the shader resolution when screen is resized.
            NOTE : This is a quick fix and probably not the best idea.
  Added   - IsWindowResized() to check if screen is resized.
            If window is resized then width, height and shader resolution are updated.
  Changed - MIT tag at bottom right color value to BLACK. Now it's easier to see.

* Closer Match to original code

* Removed the PLATFORM_DESKTOP Define
2019-10-26 09:45:15 +02:00
Ray 39e22046c1 ClearDirectoryFiles(): Corrected issue #994 2019-10-25 14:29:12 +02:00
chriscamacho 3d8b1165a8 mem leak in gltf loader (#995) 2019-10-23 10:42:17 +02:00
Ray 163a9e1f41 ClearDirectoryFiles() corrected bug 2019-10-23 00:46:41 +02:00
Ray 9b6227688f Corrected issue #992 2019-10-22 23:31:04 +02:00
Ray 3c2ce77b7b ClearDirectoryFiles(): Corrected memory leak #991 2019-10-22 23:18:42 +02:00
Ray 1878a9ea01 Corrected possible memory leak #993 2019-10-22 23:15:41 +02:00
Ray 06910eedfd Minor comment tweak 2019-10-22 23:15:26 +02:00
Ray ca92f43c27 Review some defines 2019-10-22 00:37:10 +02:00
Ray ea70c47a1a Review latest PR 2019-10-21 17:55:37 +02:00
Tyler Jessilynn Bezera 3f7fa6d6e7 Add multi texture support for materials in GLTF format (#979)
* Initial commit of addition for GLTF materials.. should support loading more than just albedo map.

* Clean up

* fixed seg faults and leaks

* temp don't overwrite defuse colour when rendering

* undid something dumb!

* correctly mixed diffuse map color when rendering to preserve not overwrite it
2019-10-21 17:38:23 +02:00
Ray ab52f98480 Update text.c 2019-10-21 17:37:47 +02:00
Ray c1d282d9e8 Corrected bug on no-extension 2019-10-21 17:37:43 +02:00
raysan5 e25f4dca1f Update external libraries 2019-10-19 17:26:58 +02:00
raysan5 68dcb55349 Corrected bug on ImageDrawRectangleLines() 2019-10-19 17:26:45 +02:00
Ray b75511248d Remove trailing spaces 2019-10-17 17:18:03 +02:00
Ray e40c26dea5 REVIEWED: GetCodepoints() issue
- Improved LoadBMFont()
2019-10-17 17:07:09 +02:00
Ray 7baa2975ec REDESIGNED: IsFileExtension()
Now it accepts a ';' separated list of extensions, useful to check multiple extensions
2019-10-11 20:13:11 +02:00
Ray e0cb892d2d ADDED: GetCodepoints()
Get the unicode equivalent characters (as int array) from a UTF-8 text array... maybe this function is renamed to be clearer to users...
2019-10-11 20:12:15 +02:00
Ray 12d3e21f1b REVIEW: ImageAlphaMask()
When adding alpha mask to GRAYSCALE image, if using ImageFormat(), it could change pixel values, now we avoid that, mask is just added as an extra channel
2019-10-11 20:08:41 +02:00
chriscamacho 161c8b7d08 corrected examples Makefile target (#985) 2019-10-11 14:54:13 +02:00
elitepleb 82306af111 projects: CMake: bump up minimal raylib version (#983)
While at it, add comment to indicate what the version signifies.

[a3f: updated commit message]
2019-10-10 12:39:40 +02:00
Michael Vetter 596338b26a Check whether parsing mtl file was succesful (#982) 2019-10-03 21:05:21 +02:00
Michael Vetter eb772bc1e0 Check whether GLTF was loaded correctly (#981) 2019-10-03 17:07:32 +02:00
Michael Vetter 047f093503 Remove dead assignments (#980)
The result of `success` is actually never used. Either we should check
for it and return or remove it. I assume just checking the last one is
okay.
2019-10-03 17:06:08 +02:00
Ray df84f93938 Add security checks on file writting 2019-09-30 17:32:06 +02:00
Ray a8e63b9724 Convert default shader to const strings 2019-09-25 16:45:17 +02:00
Catalin Moldovan 99e86d180b Const corectness for LoadShaderCode (#977)
* Const corectness for LoadShaderCode

* Added const for standalone variant as well.
2019-09-25 16:31:10 +02:00
AlexHCC 8adcec185e Improve code readability (#976) 2019-09-24 23:08:07 +02:00
Ray 3fcf2ee19a Example renamed 2019-09-22 22:13:22 +02:00
Ray bdcb16e7bb Review PR and comments 2019-09-22 21:47:19 +02:00
chriscamacho a679b0ccc0 contributed simple shader example (#973)
Contributed simple shader example
2019-09-22 21:28:50 +02:00
AlexHCC acedf4a0d5 Fixed regular polygon shape rendering (#972) 2019-09-22 21:25:39 +02:00
Ray 1f730b3b35 Review ImageCrop() security checks 2019-09-20 15:55:55 +02:00
Ray b331edd7a6 Let the user choose the formats 2019-09-20 15:54:10 +02:00
Ray 9d53e07883 Added preprocessor macros for GIF 2019-09-19 17:36:48 +02:00
chriscamacho bce2dd1231 fixed leak with PBR example (#971) 2019-09-19 17:11:37 +02:00
Ray d089e1cd34 ADDED: LoadAnimatedGIF() -WIP-
Still looking for a better way to integrate it into raylib API, maybe add a LoadImageAnim()?
2019-09-19 16:09:36 +02:00
Ray 741afde3bc Review PR formatting 2019-09-19 13:36:55 +02:00
chriscamacho 314c4061df fixs issue mem leak with LoadModel / OBJ and issue with -1 material index (#969) 2019-09-19 13:28:01 +02:00
raysan5 08165fed18 Review DecompressData() types, for consistency 2019-09-15 11:15:33 +02:00
raysan5 112874fe07 Review issue with HDR pixels loading 2019-09-14 20:07:44 +02:00
raysan5 c10348cc85 Review conditions 2019-09-14 19:01:33 +02:00
Ray 904a7ee032 Update for latest emsdk configuration
Note that latest emsdk changed paths
2019-09-13 17:08:20 +02:00
Ray 4ccf1e61be Corect typo 2019-09-13 17:07:29 +02:00
chriscamacho 6916ff58b1 fixed some memory leaks, still issue with material index allocation leaking 4 bytes (possibly double allocation) (#964) 2019-09-13 13:29:52 +02:00
Ray e5d5f6e367 Review possible memory leak with my_strndup() 2019-09-13 12:58:42 +02:00
Ray 7caedff9ca Review weird PBR shader issue >_< 2019-09-12 19:22:47 +02:00
Ray d9d9c6111b RENAMED: text_sprite_font > text_font_spritefont 2019-09-12 16:30:39 +02:00
Ray 8d6f179062 RENAMED: text_ttf_loading > text_font_filters 2019-09-12 16:29:26 +02:00
Ray 7e08b312d5 RENAMED: text_bmfont_ttf > text_font_loading 2019-09-12 16:28:58 +02:00
Ray c6d2502bdb Review example crashing
Note this example is not working properly, it still requires some review.
2019-09-12 16:27:58 +02:00
Ray a2fd427224 Comment tweak 2019-09-12 16:26:37 +02:00
Ray 74ed3d07f9 Add glTF Duck model 2019-09-12 16:26:19 +02:00
Ray ce58b168f6 REMOVED: models_obj_viewer 2019-09-12 16:25:33 +02:00
Ray c247c371c3 REDESIGNED: models_obj_loading > models_loading 2019-09-12 16:25:14 +02:00
Ray 0a2177b4bc ADDED: GetWindowPosition() 2019-09-10 12:43:44 +02:00
Ray ae2452d280 ADDED small compression API
- ADDED: CompressData()
 - ADDED: DecompressData()
2019-09-09 21:56:16 +02:00
Ray 2d6bc1ff42 Update raudio.h 2019-09-09 21:54:40 +02:00
Ray dec5f332ad Revert "Update tinyobj_loader_c.h"
This reverts commit 53b32f1c20.
2019-09-08 16:46:08 +02:00
Ray d93f8eadf8 REVIEW: GetFileName(): Security checks 2019-09-08 01:11:53 +02:00
Ray 53b32f1c20 Update tinyobj_loader_c.h 2019-09-05 13:15:47 +02:00
Ray 402ce4e53b Update plane_diffuse.png 2019-09-04 15:04:09 +02:00
Ray 861a619053 Review dr_flac usage
Replaced DEPRECATED functions
2019-09-03 23:24:09 +02:00
Ray fc95ceadf0 Remove sampleLeft from Music struct... -WIP-
...moved to internal AudioBuffer structure as totalFramesProcessed, now time measure works again... but there is some problem with looping...
Also note some inconsistencies between frames and samples, it seems those concepts are not considered correctly in the code.
2019-09-03 23:08:02 +02:00
chriscamacho dde1e0671f examples makefile not deleting examples in Linux (#955)
I'm not sure why the clean command is so complex (especially given that find -type f -executable | xargs rm -fv works!)
but I fixed the version as is, to support x-pie-executable which was preventing it deleting anything on my system...
2019-08-27 19:58:49 +02:00
raysan5 4e43192561 Review latest PR 2019-08-27 13:15:56 +02:00
arvyy 97101d1003 Add screen->world and world->screen functions for 2D; add extended camera2D example (#947) 2019-08-27 13:05:28 +02:00
raysan5 37bb8e9554 UpdateModelAnimation() - Added security check 2019-08-27 12:23:30 +02:00
raysan5 41732bebe8 Formatting tweak 2019-08-27 12:22:54 +02:00
raysan5 e2183f0b99 Update version in case no config.h is being used 2019-08-27 12:10:09 +02:00
raysan5 f565ff018e REMOVED: FLAG_SHOW_LOGO
raylib logo animation has been removed. That funtionality was very restrictive, not configurable at all and hardly ever used, also, it added a coupling dependency of `core` module with `shapes` and `text` modules.
2019-08-27 11:24:04 +02:00
raysan5 8241dcf80b Review models loading, memory initialization 2019-08-27 11:16:43 +02:00
raysan5 c661cad692 Review all RL_CALLOC() calls
All data should be properly initialized by now
2019-08-27 10:56:49 +02:00
raysan5 37a6f12037 Unload model shaders and textures
They are not automatically unloaded when unloading the model!
2019-08-26 21:19:04 +02:00
raysan5 addbd88833 Expose scissor functionality 2019-08-26 21:09:03 +02:00
Zatherz 8e86f3586d IsAudioBufferProcessed -> IsAudioStreamProcessed (#951)
It appears that you've missed renaming this function here, which makes trying to compile standalone raudio.c error out.
2019-08-26 00:34:54 +02:00
Ray e67c842faa Tweak on atlas size computing
Some generated fonts were not fitting the image...
2019-08-24 20:03:47 +02:00
Ray 061294e4d1 Update miniaudio.h 2019-08-24 10:11:32 +02:00
raysan5 20fa362700 Review comment 2019-08-21 18:59:15 +02:00
raysan5 20257f3e49 Uniform initialization not supported on GLSL 100 2019-08-20 21:17:06 +02:00
raysan5 3db13edd89 Support mouse cursor on RPI native
Reduced bunnymark limits
2019-08-20 20:39:22 +02:00
raysan5 a727f5768f Review OpenGL ES 2.0 extensions check 2019-08-20 19:33:46 +02:00
raysan5 bf0db83134 Merge branch 'master' of https://github.com/raysan5/raylib 2019-08-20 19:33:05 +02:00
raysan5 ef3b01dffc RPI: Corrected issue when creating 3d projection view 2019-08-20 19:32:12 +02:00
Ray 64575e711b Update README.md 2019-08-20 13:15:48 +02:00
Ray 3414910809 Update README.md 2019-08-20 13:15:10 +02:00
Ray 2f42b0ce85 REVIEW: TextSplit()
Just adding a security check
2019-08-19 15:09:54 +02:00
Colday96 12bcdb977a Update shapes.c for smoother collision detection (#946)
By removing the equal sign, if the 2 rects a right next to each other and not overlapping, there will be no collision detection. This is what a majority of other game libraries do and would make it easier to implement collisions for tile based games.
2019-08-19 13:32:17 +02:00
Ray 973d32f9a7 Reviewed issue #943 2019-08-19 12:17:02 +02:00
Ray 049a1c8f6d Merge branch 'master' of https://github.com/raysan5/raylib 2019-08-19 12:09:25 +02:00
Ray 4b79f63d07 new example: shaders_fog 2019-08-19 12:08:45 +02:00
Oraoto 7ebcd06652 Fix uninitialized vboId in GenMeshHeightmap (#949) 2019-08-19 10:25:26 +02:00
Ray ce8d7042c6 PR formatting review 2019-08-16 16:15:47 +02:00
arvyy d8b8c0f3fc change Camera2D behavior (#945) 2019-08-16 16:09:50 +02:00
raysan5 c387bc586d RENAMED: IsAudioBufferProcessed() -> IsAudioStreamProcessed()
Renamed for consistency with similar functions
2019-08-13 17:41:31 +02:00
raysan5 c629b16ebc Corrected issue on compressed textures data size 2019-08-12 12:35:23 +02:00
raysan5 cef1e6e2e2 Added notes about vertex order 2019-08-11 21:26:12 +02:00
raysan5 740834bb83 REVIEW: GetDirectoryPath() and GetPrevDirectoryPath() 2019-08-11 12:04:54 +02:00
Wayde Reitsma 2c2ccadd32 Small fix in GetMouseY (#940) 2019-08-11 11:17:20 +02:00
chriscamacho 6f2f09947f addition to raylib to create matrix from 3 euler angles (#938) 2019-08-09 17:04:52 +02:00
Ray e6e48675cc Formating tweaks 2019-08-08 23:08:54 +02:00
raysan5 108f7f6fee Corrected small issue on miniaudio
ONly Neon processors
2019-08-08 10:32:42 +02:00
raysan5 2234158049 Merge branch 'master' of https://github.com/raysan5/raylib 2019-08-08 10:18:25 +02:00
raysan5 3ebc55fdfe Reviewed comment 2019-08-08 10:18:12 +02:00
Kevin Yonan 084fb31186 Removing '__RemoveNode' (#935)
Replaced '__RemoveNode' as it was causing invalid memory accesses with regular doubly linked list deletion algorithm.
Replaced double pointer iterator in 'MemPoolAlloc' with single pointer iterator.
Fixed undefined variables errors in 'MemPoolFree' for the freelist bucket.
2019-08-08 10:00:23 +02:00
chriscamacho 2d5cc5ddbf fixed xmloader bug, user must free model shaders and textures as they might be shared (#933) 2019-08-08 09:57:21 +02:00
Michael Vetter f3555a1016 Fix memleak in physics_restitution example (#932) 2019-08-07 09:24:56 +02:00
Michael Vetter 5f1990e044 Fix build caused by GetImageAlphaBorder() (#931)
Fix build failure introduced in 2a913b6587
2019-08-07 09:23:15 +02:00
Ray 3d46297cc1 Update external libraries 2019-08-07 00:33:57 +02:00
Ray 439e73a8ec Change raylib version to 2.6-dev 2019-08-07 00:33:33 +02:00
Ray 3d5fa81bf2 WARNING: Redesigned structs
- Mesh, Shader, Material structs have been reviewed to minimize size when passed by value, all required code has been reviewed.
 - GetCollisionRayModel() reviewed to avoid pointer, not required because model is not modified inside the function
 - UnloadMesh() reviewed, pointer not required
 - CheckCollisionRay*() parameters name reviewed
2019-08-07 00:32:44 +02:00
Ray 2a913b6587 ADDED: GetImageAlphaBorder() 2019-08-07 00:28:05 +02:00
Ray 042499188c ADDED: DirectoryExists() and GetPrevDirectoryPath() 2019-08-07 00:27:32 +02:00
Ray b354c10072 ADDED: DirectoryExists()
ADDED: GetPrevDirectoryPath()
2019-08-07 00:26:33 +02:00
Michael Vetter 6267fd1865 Fix memory leak in LoadGLTF() (#929)
Free texturePath in LoadGLTF()
2019-08-06 23:09:27 +02:00
culacant f518c4e939 Fix loading multiple animations from .iqm file (#928)
* Fix loading multiple animations from .iqm file

* Fix memory leak in models_animation example

* Added export instructions to the animation example

* use raylib free

* include <stdlib.h> to appease the travis CI gods

* replace tabs with spaces
2019-08-06 23:08:58 +02:00
NimbusFox e53e42f43d Improved Android Building (#930)
Added in a check for x86 and x86_64 branches of android

Added in $(OS) checks to see if we're running on windows or *nix

Added a default location for android ndks and sdks at /usr/lib/android
2019-08-06 23:06:26 +02:00
Ray 94abe0db88 Allow GitHub Sponsors only 2019-08-03 12:57:06 +02:00
Leandro Gabriel 89c16baf18 Replace tabs with spaces and update year of copyright notices (#927)
* Update year of copyright notices

* Fix mistake in comment

* Fix typo ("algorythms")

* Replace tabs with spaces

* Remove trailing whitespace and fix mistake in comment

* Fix ExportImageAsCode missing comment rectangle corner

* Replace tab with spaces

* Replace tabs with spaces
2019-08-03 11:07:41 +02:00
João Coelho 68ffbc06c7 explained a bit more the core_window_letterbox example (#925) 2019-08-02 15:16:43 +02:00
Kevin Yonan f81cb1a252 End of July rmem Update (#923)
Object Pool Changes:
-- changed 'size' member name of 'union ObjInfo' to 'index' to better name its purpose.
Memory Pool Changes:
-- Added memory node buckets to store and allocate smaller, more frequent byte sizes.
-- Replaced 'memset' call to deinitialize free list data with NULL and 0 assignments.
-- Removed some no-longer-needed commented-out code.
-- Changed insertion sort code to put the largest size at the tail rather than the head.
-- Made certain pointer variables as constant pointers.
2019-07-31 11:24:33 +02:00
raysan5 1da7e1da8c Review VSCode project 2019-07-30 14:00:10 +02:00
Kevin Yonan 5775f9d224 Patched potential bug when defragging. (#920)
* Patched potential bug when defragging.

Patched a potential bug concerning the '__RemoveNode' function as, when removing certain nodes that are either at the head or tail, it can yield a free list node of size 0 bug as the previous node was removed and its size was set to 0 but not fully removed from the other nodes.

* A few more potential bug patches.
2019-07-28 21:37:31 +02:00
raysan5 38ee6156f8 Update textures_mouse_painting.c 2019-07-28 19:04:30 +02:00
raysan5 b83d165764 Replace tabs by spaces 2019-07-28 15:33:55 +02:00
raysan5 895f9613d2 Added image saved message 2019-07-28 15:26:22 +02:00
raysan5 602d2a65dd Reviewed new examples 2019-07-28 15:09:01 +02:00
ChrisDill 879c874330 Added scissor test and mouse painting examples proposed in #890 (#919)
- Updated Makefile with new examples
2019-07-28 11:12:13 +02:00
raysan5 153f078bd1 Update raygui.h 2019-07-27 12:42:18 +02:00
raysan5 9a478bef1a Avoid ricons.h 2019-07-27 12:04:47 +02:00
raysan5 a1c551c6c4 Reviewed rlTextureParameters()
Reviewed latest PR to also consider OpenGL 1.1 extension support (unprobable).
2019-07-27 11:59:41 +02:00
Reece Mackie e44eae3cd5 Changes without CLion mess (#916) 2019-07-27 11:53:00 +02:00
Antonio Radovcic 814952c01d #917 This commit changes the path to 'shell.html' in all Makefiles (#918) 2019-07-27 11:45:49 +02:00
raysan5 6baf8bccb1 Removed functions modifiers 2019-07-27 11:44:50 +02:00
raysan5 f46ffb98a6 Update raygui.h 2019-07-27 11:44:13 +02:00
Ray 65d003507b Update FUNDING.yml 2019-07-27 09:56:24 +02:00
Ray 251f90cd31 WARNING: Replaced Music pointer by struct
Now, multiple music parameters are exposed to the user!
2019-07-26 10:26:39 +02:00
Ray 8e870f0eda Try to support stack matrices on models drawing
Not working yet... :(
2019-07-24 22:40:12 +02:00
Ray 7c05e498fc Test Camera on Android
It can break building on that platform...
2019-07-24 22:39:33 +02:00
Ray eed53a5b44 Changed macro CLITERAL 2019-07-24 22:38:57 +02:00
Ray 9909c83012 REMOVED: LoadWaveEx()
Completely useless and actually buggy!
2019-07-24 22:38:40 +02:00
Ray 73a3d4a183 Review comments 2019-07-24 22:38:06 +02:00
Ray ae95111006 Some variables renamed 2019-07-24 22:37:24 +02:00
Ray 8730f22371 Remove note 2019-07-24 22:37:00 +02:00
Ray a5329efb23 Some tweaks revisiting an old game... 2019-07-24 22:36:52 +02:00
Ray b4d67499a7 BREAKING CHANGE: Read description
Changes:

 - Font structure has been redesigned, CharInfo structure contained character rectangle within font texture, it has not much sense, considering that it was an information relative to the font atlas generated and not the character itself, so character rectangles have been moved out from CharInfo to Font.
 - CharInfo included a data parameters to contain character pixel data (usually grayscale), generated on TTF font generation. It was inconsistent with other fonts types, so, now CharInfo includes directly an Image of the glyph.
 - REDESIGNED: GenImageFontAtlas(), additional recs parameter added, loaded and filled inside the function to export atlas characters rectangles, instead of silently modify the input CharInfo data.
 - REVIEWED: ImageTextEx(), funtion retrieved the font atlas image from the GPU, that was slow and problematic in several platforms. Now it uses directly the CharInfo image. Support for unicode codepoints has also been added.
 - REDESIGNED: ImageDraw(), now it includes an additional parameter, the color tint, not only it could be useful for several situations but also function signature is more consistent with similar functions.
 - ADDED: ImageFromImage() to generate a new image from a piece of another image.
 - REVIEWED: GetNextCodepoint(), renamed parameters to be more clear.

Also all examples and games that were affected by those changes have been reviewed.
2019-07-24 15:05:14 +02:00
Ray 543c0ba30d Added Sound parameters data 2019-07-24 14:48:45 +02:00
Ahmad Fatoum 47137b1489 CMake: fix dependency build with -Draylib_USE_STATIC_LIBS=ON
Fixes #899, which made apparent three issues with how static libraries
are handled in raylib-config.cmake:

- XPREFIX is set before pkg_check_modules, which causes a duplicate
  STATIC in variables, e.g. PC_RAYLIB_STATIC_STATIC_.*
- raylib_static is searched for, but no library exists with that name
- raylib_LDFLAGS isn't populated properly

This commit fixes these.
2019-07-24 00:12:38 +02:00
Ray 7b448f59e2 Update raylib.h 2019-07-23 23:37:14 +02:00
Ray 2cb3b91913 Try to avoid collision with CoreAudio on macOS 2019-07-23 23:08:29 +02:00
Ray 2433f30b4b Reviewed ImageDraw() and ImageResizeCanvas()
Added security checks in case provided image to functions hasn't been properly loaded... just to avoid program crashes.
2019-07-23 22:24:25 +02:00
Ray b44b7dd310 WARNING: Complete review of raudio -WIP-
This module has been completely reviewed, old structures still contained OpenAL useless data, a full module revision. Some of the changes:
 - Redesigned internal MusicData structure
 - Exposed MusicStream structure data
 - Reviewed AudioStream structure
 - Redesigned Sound structure

Still some work to do...
2019-07-23 22:21:01 +02:00
Ray 632d064b21 Review text functions return value
It needs to be freed
2019-07-22 21:29:50 +02:00
Ray bc3983a3dd Solved issue #912 2019-07-22 21:15:25 +02:00
Kevin Yonan f501d42e47 Increasing threshold size for traversing memory blocks (#914)
L235 - Increased the memory threshold size so that we can further reduce fragmentation by allocating memory blocks that is close to the requested size by 16 bytes.
2019-07-22 10:17:27 +02:00
Ray 4b2f6b2b5f Check buffer limit on DrawBillboardRec() 2019-07-22 00:12:51 +02:00
Ray 3fd48a14a2 Create SPONSORS.md 2019-07-18 23:19:22 +02:00
Ray 55e76dab47 Update FUNDING.yml 2019-07-16 23:32:49 +02:00
Ray 8d576aaf2b Update FUNDING.yml 2019-07-16 20:36:08 +02:00
raysan5 e5271dbdc3 Move raylib memory pool docs to raylib Wiki 2019-07-15 19:30:58 +02:00
raysan5 e8829538c9 Review rmem functions naming and coding conventions 2019-07-15 19:25:55 +02:00
Kevin Yonan c563b53afb Submitting rmem memory and object pool module (#898)
* Submitting rmem memory and object pool module

* changed 'restrict' to '__restrict' so it can compile for MSVC

Added `const` to parameters for `MemPool_Realloc`

* Update and rename mempool README.txt to mempool_README.md

* Update mempool_README.md

* Update mempool_README.md

* Update and rename objpool README.txt to objpool_README.md

* implementing changes

* updating header for changes.

* forgot to change _RemoveNode to __RemoveNode

* removing l

* removing l

* Updating documentation on MemPool_CleanUp function

* Updating documentation on ObjPool_CleanUp function

* changed *_CleanUp function parameter

Replaced `void*` pointer to pointer param to `void**` so it's more explicit.

* Updating header to reflect changes to the *_CleanUp functions

* A single change for the mempool and a patch for the objpool.

Object Pool Patch: if you deplete the object pool to 0 free blocks and then free back one block, the last given block will be rejected because it was exactly at the memory holding the entire pool.
Mempool change: switched memory aligning the size from the constructor to when allocating.
2019-07-15 18:28:09 +02:00
Aldrin Martoq e19616592d Adding solar system examples. (#900) 2019-07-15 18:26:47 +02:00
raysan5 24566c0cf3 Delete CODE_OF_CONDUCT.md 2019-07-15 13:41:58 +02:00
raysan5 a386cedae6 Review extensions loading and freeing 2019-07-12 14:36:20 +02:00
raysan5 83f6ae148a Merge branch 'master' of https://github.com/raysan5/raylib 2019-07-12 14:33:13 +02:00
raysan5 f9a2d89ed2 Use function GetSizeBase64() 2019-07-12 14:33:06 +02:00
Ray b4da7b6777 Review VSCode project 2019-07-02 18:36:09 +02:00
Ray 4ad1fa85a4 Remove old OpenAL comments 2019-06-29 11:26:31 +02:00
Ray 892813de76 Review multichannel PR addition
- Capital letters at beginning
- for loop spacing and brackets
- Functions naming for consistency
- Example following examples template
- Other tweaks
2019-06-29 11:26:08 +02:00
chriscamacho 83a4eb0852 add multi channel audio to raudio (#895)
* added multi channel sound replay to raudio
added -fPIC to Makefile for Linux
added simple lighting and audio multi channel to examples Makefile

* not properly reporting audio buffer pool size...
2019-06-29 10:49:42 +02:00
Leandro Gabriel a4e307ed96 Fix typo in comment (onlyl -> only) 2019-06-24 16:06:02 +02:00
Ray 65a21ab416 Renamed screenWidth & screenHeight 2019-06-19 16:01:47 +02:00
Ray 1b249ac1e1 Define some globals 2019-06-19 15:43:35 +02:00
Ray e0854696b4 ADDED: DrawTriangleStrip() 2019-06-17 10:29:58 +02:00
Ray f951f0c536 RENAMED: LoadDefaultFont() -> LoadFontDefault()
Renamed internal function for consistency with similar functions.
2019-06-16 23:42:51 +02:00
Ray e36a80f730 Code tweaks 2019-06-16 23:37:16 +02:00
Ray d21422687a Some formatting tweaks 2019-06-16 23:36:04 +02:00
Ray 9a7d4ccb79 Merge pull request #893 from kawa-yoiko/rlgl-quad-padding
Fix vertex padding not zeroed for quads
2019-06-15 19:58:28 +02:00
Shiqing 5baab54f93 Fix vertex padding not zeroed for quads, close #891 2019-06-15 13:51:56 +08:00
Ray 721d18589f Corrected issue with input threads (RPI) 2019-06-14 18:24:55 +02:00
Ray dccd61bef9 Support new flag: FLAG_WINDOW_ALWAYS_RUN
Do not stop update/draw on window minimized

WARNING: SetConfigFlag() was reviewed to support int flags
2019-06-14 17:18:33 +02:00
Ray 9c991bd079 Remove example from Android building 2019-06-14 13:35:42 +02:00
Ray 81d8302d53 ADDED: shaders_basic_lighting 2019-06-14 12:59:40 +02:00
Ray a43d49ed72 Added CMake flags
Reviewed comments
2019-06-12 12:21:23 +02:00
Ray 0c60af8981 Tweak: Change check order 2019-06-12 12:14:36 +02:00
Ray 9609ebf49a Corrected IQM function declaration 2019-06-12 12:12:59 +02:00
Ray 55380f8489 Review DEBUG mode 2019-06-12 12:08:39 +02:00
Ray 266df463cc Support externally provided compiler 2019-06-12 12:03:34 +02:00
Ray 5fec3ef895 Merge pull request #879 from DarkElvenAngel/Keyboard-patch
Keyboard patch
2019-06-12 12:00:52 +02:00
Ray 396b830db5 Update CONTRIBUTING.md 2019-06-12 11:30:18 +02:00
DarkElvenAngel 034e9ba1b8 Add files via upload 2019-06-10 17:09:53 -04:00
DarkElvenAngel d7f4be0715 Merge pull request #1 from raysan5/master
Update
2019-06-10 16:12:06 -04:00
Ray baf7d7d19a Update BINDINGS.md 2019-06-09 23:15:42 +02:00
Ray 632d16e27d Added raylib-python-cffi 2019-06-09 22:54:56 +02:00
Ray f6db1ef9c5 Merge pull request #876 from XiaochuanWang/patch-2
Update Makefile
2019-06-09 21:38:37 +02:00
Ray 9b3b28c81f Merge pull request #875 from XiaochuanWang/patch-1
Update Makefile
2019-06-09 21:38:23 +02:00
XiaochuanWang 391555a063 Update Makefile
corrected file location for "raylib.rc.data", which will cause an error during compilation
2019-06-09 01:45:51 +10:00
XiaochuanWang 63e320d405 Update Makefile
a minor issue: where the location of the file "raylib.rc.data" is wrong, and this will cause an error in compilation.
2019-06-09 01:08:10 +10:00
Ray 59b7412772 Updated games building 2019-06-07 00:16:08 +02:00
Ray 718f7a0161 Remove wrong files 2019-06-06 23:56:05 +02:00
Ray dee602464b Merge branch 'master' of https://github.com/raysan5/raylib 2019-06-06 23:52:53 +02:00
Ray baf225dc01 Update emsdk version for testing 2019-06-06 23:52:49 +02:00
Ray 6945511e82 Update example 2019-06-06 23:52:25 +02:00
Ray e1f3f84e84 Merge pull request #873 from msmshazan/ANGLE-fix
Changed ANGLE binaries location
2019-06-06 14:23:37 +02:00
Mohamed Shazan eb1b2535f6 Change ANGLE binaries location 2019-06-06 16:44:37 +05:30
Ray 566a8d17c8 Update CONTRIBUTING.md 2019-06-06 12:45:24 +02:00
Ray af38e18389 Review projects <PlatformToolset> to use default 2019-06-06 12:19:39 +02:00
Ray 37ce51b274 Merge pull request #872 from msmshazan/ANGLE-fix
Added VS2017.ANGLE Project
2019-06-06 11:51:43 +02:00
Ray 498c172d8e Review function prototype 2019-06-06 11:38:45 +02:00
Mohamed Shazan 272d9d58e3 Add VS2017.ANGLE Project 2019-06-06 15:03:03 +05:30
Ray 7b4831f1b7 Update LICENSE.md 2019-06-05 13:35:34 +02:00
Ray bdbc05c0dc Review font 2019-06-05 13:35:22 +02:00
Ray e3ef738264 Replace TABS by spaces 2019-06-05 13:01:58 +02:00
Ray 03720b30a1 Review contributed example 2019-06-05 12:58:53 +02:00
Ray ddaa4a304d Review contributor info 2019-06-05 12:58:35 +02:00
Ray 24c7549698 Merge pull request #869 from codecat/example-waving-cubes
Added waving cubes example
2019-06-05 12:30:55 +02:00
Ray c5f605e888 Merge pull request #862 from a3f/master
build: increment API_VERSION after release
2019-06-05 12:29:28 +02:00
Ray 5c8191f8a7 Merge pull request #867 from PompPenguin/master
Removed unused code for CAMERA_THIRD_PERSON
2019-06-05 12:29:00 +02:00
Codecat 923f4b9bbd Added waving cubes example 2019-06-05 10:35:20 +02:00
Ahmad Fatoum e103320ad8 build: increment API_VERSION after release
With v2.5.0 out, increment API_VERSION, so binaries dynamically linked
against the released raylib aren't accidentally paired with a development
or later released raylib that may be incompatible.
2019-06-05 08:58:24 +02:00
PompPenguin 7367140fb4 Update camera.h
Removed unused code for CAMERA_THIRD_PERSON.
2019-06-04 18:06:10 -04:00
Ray df7a058216 Review projects paths 2019-06-05 00:04:31 +02:00
PompPenguin 1ba5f1515d Merge pull request #1 from raysan5/master
Merge pull request #866 from PompPenguin/master
2019-06-04 18:01:17 -04:00
Ray 0b7373446d Merge pull request #866 from PompPenguin/master
Update camera.h
2019-06-04 23:46:01 +02:00
PompPenguin 767ac9bc3e Update camera.h
Updated CAMERA_THIRD_PERSON
2019-06-04 17:29:18 -04:00
Ray 6f9c176d93 Support SSH keyboard on RPI 2019-06-04 18:09:17 +02:00
Ray 538dfa010d Merge pull request #858 from NerdThings/cmake-mp3-fix
Add MP3 config to config.h.in
2019-06-02 21:48:48 +02:00
Reece Mackie 2eb7e96f4b Add MP3 config 2019-06-02 19:31:17 +01:00
Ray 093042b760 Comments review 2019-06-01 13:08:48 +02:00
Ray 434e460c18 Example instructions tweak for clarity 2019-05-31 16:42:16 +02:00
Ray 65474c621c Update raylib.c.tags 2019-05-31 11:59:06 +02:00
Ray a9f33c9a89 Reduce textures size 2019-05-31 10:03:44 +02:00
Ray 22a363d1ec Update npes_saved_tcc.txt 2019-05-31 10:03:17 +02:00
Ray 1ccb7f287e Update LICENSE.md 2019-05-31 10:02:15 +02:00
Ray a352e4ddac Update LICENSE.md 2019-05-31 10:01:50 +02:00
Ray 56cb60b323 Update to raylib 2.5 2019-05-31 09:57:22 +02:00
Ray 1a32e76fbd Review compilation resources 2019-05-30 18:09:33 +02:00
Ray e5a73b7398 Review compiler scripts 2019-05-30 17:44:06 +02:00
Ray 22cd55d585 Updated Notepad++ intellisense to raylib 2.5 2019-05-30 17:25:01 +02:00
Ray f9888d15ac Merge pull request #855 from neonmoe/patch-buildscripts
Fix and update projects/scripts
2019-05-29 17:41:25 +02:00
Ray bb34398796 Merge pull request #856 from wbrbr/master
Fix jar_xm_reset
2019-05-29 17:39:20 +02:00
Wilhem Barbier e660621389 Fix jar_xm_reset 2019-05-29 17:15:11 +02:00
Ray 20bdc3bc2a Merge pull request #854 from ChrisDill/master
Added array bounds check to textures_bunnymark
2019-05-29 16:40:02 +02:00
Jens Pitkanen 228f86d3ca Fix and update projects/scripts 2019-05-29 17:36:44 +03:00
Chris Dill 42d57bbe00 Added array bounds check to textures_bunnymark 2019-05-29 13:58:31 +01:00
Ray 5d3905d4d4 Update HISTORY.md 2019-05-29 13:55:50 +02:00
Ray efdc6f87d5 Define standard examples size 2019-05-29 13:47:57 +02:00
Ray 51a28739dd Update HISTORY.md 2019-05-29 13:36:09 +02:00
Ray 9fa0d10779 Update CONTRIBUTING.md 2019-05-29 12:18:04 +02:00
Ray c211568abc Create FUNDING.yml 2019-05-29 09:32:39 +02:00
Ray e5e330bf17 Merge pull request #853 from Narice/master
Added Narice to the CONTRIBUTING.md
2019-05-28 12:24:01 +02:00
Ray 4e0a5909e7 Hide progress bar 2019-05-28 12:08:04 +02:00
Narice b34bc421ff Added Narice to the CONTRIBUTING.md 2019-05-28 11:25:06 +02:00
Ray 63b89f53f9 Update ROADMAP.md 2019-05-28 00:33:52 +02:00
Ray b57563a41b Update ROADMAP.md 2019-05-28 00:32:59 +02:00
Ray aa0afb55a5 Update ROADMAP.md 2019-05-28 00:30:42 +02:00
Ray 18b8461502 Update CHANGELOG 2019-05-28 00:30:33 +02:00
Ray bf0aed2655 Update HISTORY.md 2019-05-27 23:41:15 +02:00
Ray 405e40ea03 Update CONTRIBUTING.md 2019-05-27 20:50:27 +02:00
Ray e37d5cec6d Update CHANGELOG 2019-05-27 20:21:24 +02:00
Ray a488701d1d Update README.md 2019-05-27 15:31:57 +02:00
Ray 95d25b0192 Update README.md 2019-05-27 15:25:41 +02:00
Ray bef809d841 Setup version for release 2019-05-27 13:03:14 +02:00
Ray 87774a0a21 Review variables initialization 2019-05-27 00:18:15 +02:00
Ray 241c4c8d14 Review easings PR 2019-05-25 01:33:03 +02:00
Ray 163a6581aa Merge pull request #852 from flashback-fx/master
easings.h refinement and example
2019-05-25 00:32:49 +02:00
flashback-fx bc285f71ed rename easings_example.c to easings_testbed.c 2019-05-24 22:24:01 +00:00
flashback-fx d5f664373d Move easings_example to its proper place 2019-05-24 22:18:44 +00:00
flashback-fx b7d4856745 Add easings example 2019-05-24 19:10:14 +00:00
flashback-fx d4487bcfa7 Use tgmath.h and float constants in easings.h 2019-05-24 19:07:59 +00:00
Ray 2eb280e836 Delete HELPME.md 2019-05-24 12:22:40 +02:00
Ray 675330af39 Update CONTRIBUTING.md 2019-05-24 12:22:20 +02:00
Ray bcb83a3127 Merge pull request #850 from wbrbr/xm_fix
Add rewind for the XM music format
2019-05-23 17:17:17 +02:00
Wilhem Barbier dec604bd71 Move jar_xm_reset to jar_xm.h 2019-05-23 16:40:15 +02:00
Ray 5e8ffec0f6 Merge pull request #849 from wbrbr/master
Fix unitialized struct member bug (#848)
2019-05-22 23:40:37 +02:00
Wilhem Barbier 78817305c5 Add rewind for the XM music format 2019-05-22 22:16:18 +02:00
Wilhem Barbier 13a1744ca9 Fix #848 2019-05-22 20:29:34 +02:00
Ray 978f3a9570 Update Makefile 2019-05-22 18:31:50 +02:00
Ray 31bcaffd7d Added AudioContext Resume/Suspend button 2019-05-22 16:13:59 +02:00
Ray f45691ca8d Rename function to follow javascript notation 2019-05-22 16:12:47 +02:00
Ray 7421ac9e24 Add code to resume blocked AudioContexts 2019-05-22 12:33:28 +02:00
Ray a33b0002ee Review js formatting for better readability 2019-05-22 10:55:03 +02:00
Ray 5f0866463c Update Makefile 2019-05-22 10:41:24 +02:00
Ray be7e56f51e Move emscripten web shell to src 2019-05-22 10:40:51 +02:00
Ray e6ca2c4ba3 Comment tweaks 2019-05-22 09:57:17 +02:00
Ray 3bfcecb3af Review metat tags and embed logo 2019-05-21 23:30:34 +02:00
Ray 477f05db13 Review games 2019-05-21 22:36:52 +02:00
Ray b1806f6600 Add config SUPPORT_SSH_KEYBOARD_RPI
Allow to reconfigure stdin to read input keys, this process could lead to undesired effects. Use with care.

Disabled by default.
2019-05-21 20:59:13 +02:00
Ray 322cf34fe0 Update Makefile 2019-05-21 18:02:29 +02:00
Ray cea0150c6e Ignore web bitcode lib 2019-05-21 18:02:20 +02:00
Ray 8b4f58b9e9 Review sample games 2019-05-21 17:47:06 +02:00
Ray 0027868d1f Review Makefiles 2019-05-21 17:46:52 +02:00
Ray f325978b26 Update issue templates 2019-05-21 10:31:06 +02:00
Ray 8db2203bcc Review paths 2019-05-21 10:16:52 +02:00
Ray 3dfbeb5488 Update core_3d_picking.c 2019-05-21 10:16:39 +02:00
Ray 316b6aa181 Reverted change that breaks mouse on web 2019-05-20 17:21:46 +02:00
Ray 72ab65277b Avoid some warnings 2019-05-20 16:37:44 +02:00
Ray b525039e0a Review ALL examples 2019-05-20 16:36:42 +02:00
Ray a43a7980a3 Update raylib version to 2.5 2019-05-20 11:21:55 +02:00
Ray 371abb0a26 Review glTF implementation formatting
Added comments for the future
2019-05-20 11:13:38 +02:00
Ray 9a52c716cc Merge pull request #842 from wbrbr/gltf2
Load glTF
2019-05-20 10:49:02 +02:00
Wilhem Barbier e01a381aec Load glTF 2019-05-18 11:36:47 +02:00
Ray c1594fa445 Tweaks 2019-05-18 01:31:48 +02:00
Ray 6332bc0398 Corrected issue with shader loading
When using FormatText() several times in same function, returned string is static and so, the same is returned, resulting in failures on shader loading.
2019-05-18 01:24:00 +02:00
Ahmad Fatoum 5ef7beb0c5 Makefile: move -x objective-c option before filename
From the Clang documentation[1]:
> -x<language>, --language <arg>, --language=<arg>
> Treat subsequent input files as having type <language>

Follow the advice. Fixes #840.
[1]: https://clang.llvm.org/docs/ClangCommandLineReference.html
2019-05-17 20:27:43 +02:00
Ahmad Fatoum e1ecebfff9 Revert "fixed GLFW compiler flag for OSX"
This reverts #841 commit 97160fd970.
2019-05-17 20:27:42 +02:00
Ray 245cf2400e Review shader examples 2019-05-17 20:03:04 +02:00
Ray 0ec46e8976 Merge pull request #841 from iskolbin/master
[build] fixed GLFW compiler flag for OSX
2019-05-17 17:38:46 +02:00
Ilya Kolbin 97160fd970 fixed GLFW compiler flag for OSX 2019-05-17 17:56:05 +03:00
Ray 970f1e8ff1 examples review 2019-05-17 01:17:40 +02:00
Ray ce87d2ced4 new example: shaders_eratosthenes
Contributed by ProfJski
2019-05-16 17:23:31 +02:00
Ray 9fd410b8a8 Review shader to use provided texture coordinates
Now shader uses `fragTexCoord` that are the full screen texture coordinates normalized, instead of `gl_fragCoord`, the unnormalized screen coordinates
2019-05-16 17:07:59 +02:00
Ray cf4fde9456 Corrected bug on NEON 2019-05-16 16:10:52 +02:00
Ray 9994f16479 Review build config on web 2019-05-16 15:40:28 +02:00
Ray 25ac9bfb28 Update dr_flac, dr_mp3, dr_wav to latest version 2019-05-16 15:31:33 +02:00
Ray 579d932551 Update miniaudio to v0.9.4 2019-05-16 15:30:41 +02:00
Ray f44dfa1ef2 Implement VR distortion shader for GLSL 100 2019-05-16 15:30:03 +02:00
Ray f1ffb3f573 Review shaders for GLSL 100 2019-05-16 10:05:14 +02:00
Ray 84fb2e00df Merge pull request #838 from eggmund/master
Update julia set example.
2019-05-15 19:03:39 +02:00
eggmund eb7beb59b6 Ammended comment.
Also changed path to shader back to what it was originally.
2019-05-15 17:59:03 +01:00
eggmund a7c5e3cab7 Updating julia set example.
Now dividing by the zoom instead of multiplying (in the shader), so zoom works as expected. Also zoom increase/decrease is now scaled depending on the current zoom.
2019-05-15 17:55:19 +01:00
Ray 998b4180e1 Update example! 2019-05-15 17:00:50 +02:00
Ray 5a1a0a3492 Corrected issue with multi-mesh obj models
Note that all meshes are loaded as a single one at this moment, loading should be improved!
2019-05-15 15:12:56 +02:00
Ray 0b18133e46 Update shaders_julia_set.c 2019-05-15 13:10:00 +02:00
Ray d878a0aecb Update shaders_julia_set.c 2019-05-15 12:53:13 +02:00
Ray ab44033ed6 Added new examples to Makefile 2019-05-15 12:24:09 +02:00
Ray 0eece03205 Corrected issue with texture flip X 2019-05-15 12:22:29 +02:00
Ahmad Fatoum 4d8b9e595a external: glfw: Revert "Added WinMM library"
This reverts commit 4773de26a5.

which adds -lwinmm at the wrong place. It should be in the raylib
linker flags, not GLFW's.
2019-05-15 08:14:24 +02:00
Ahmad Fatoum e7995c483d .travis.yml: update wayland dependency ECM version
extra-cmake-modules 5.38.0a is no longer hosted at the specified
kernel.org link. Use the occasion to move on to 5.58.

Because newer ECM debian packages have the control.tar file
xz-compressed, we need to update dpkg as well on trusty.
For more information, see
https://bugs.launchpad.net/ubuntu/+source/dpkg/+bug/1730627
2019-05-15 08:13:25 +02:00
Ahmad Fatoum 0467f32cc1 examples: CMake: restrict OpenGL deprecation warnings to macOS 2019-05-15 08:13:20 +02:00
Ahmad Fatoum e8a376c80c CMake: add winmm.dll as Windows dependency
Fixes: e0e2346c22 ("NO SUPPORT_BUSY_WAIT_LOOP by default")
2019-05-15 08:11:41 +02:00
Ray 3f7b14aeed Corrected web issue 2019-05-14 18:02:11 +02:00
Ray 7eb488a350 Improve support for web building
Note that building examples for web as they are (no code adaptation for web avoiding while loop) implies using the emterpreter... and that's very slow!
2019-05-14 18:01:20 +02:00
Ray 424d3ca8d9 examples review
Redesigns, deletes and renames

Also noted authors propertly on contributed examples
2019-05-14 15:34:23 +02:00
Ray 2edec8ae28 Some example tweaks 2019-05-14 00:08:21 +02:00
Ray 6f7b721d81 Merge branch 'master' of https://github.com/raysan5/raylib 2019-05-14 00:07:44 +02:00
Ray 6804c2189e new examples: shaders_texture_waves 2019-05-14 00:07:34 +02:00
raysan5 00431396b0 Merge branch 'master' of https://github.com/raysan5/raylib 2019-05-12 21:53:21 +02:00
raysan5 d50aa32ec8 Update CMakeLists.txt 2019-05-12 21:51:19 +02:00
Ray 4b8c56ebd3 Merge pull request #835 from eggmund/master
Added julia set shader example.
2019-05-12 21:50:48 +02:00
hmmmmmmmm aea3b2df65 Fixed another small comment error 2019-05-12 17:31:04 +01:00
eggmund c25154064d Fixed small error in comments 2019-05-12 17:14:52 +01:00
eggmund 49a49e492a Added julia set shader example. 2019-05-12 16:50:56 +01:00
raysan5 561c486ceb Add WinMM library for linkage
Now it's required on Windows if not using a busy wait loop
2019-05-10 20:51:48 +02:00
Ray 2ee3b2576c Merge pull request #833 from Demizdor/fix_selection
Fixed DrawTextRecEx() selection when wordwrap is ON
2019-05-10 15:19:41 +02:00
Demizdor 509d9411a1 Fixed DrawTextRecEx() selection when wordwrap is ON 2019-05-10 13:57:24 +03:00
Ray a2ed65aa14 Make code a bit clearer for beginners 2019-05-09 16:10:55 +02:00
Ray 46bac0ba2c Add comment in CheckCollisionSpheres() 2019-05-09 16:09:49 +02:00
Ray 5fd3f13cb6 Merge pull request #832 from ProfJski/master
Remove sqrt() from CheckCollisionSpheres()
2019-05-09 16:04:52 +02:00
ProfJski 1655463ba5 Update models.c 2019-05-08 14:14:57 -04:00
ProfJski 4330b098f3 Merge pull request #1 from ProfJski/ProfJski-patch-1
Update CheckCollisionSpheres() to avoid sqrt
2019-05-08 14:04:46 -04:00
ProfJski d3dae38449 Update CheckCollisionSpheres() to avoid sqrt
Square root calls are computationally expensive.  In this case, they can be avoided.  Instead of checking distance<RadA+RadB, check distance squared against (RadA+RadB) squared.  The dot product of Vector3Subtract(B,A) with itself gives distance squared, so I used this code instead of an element-by-element computation of distance squared.  The only downside is that your geometric code is very readable, whereas this is less so.
2019-05-08 13:54:12 -04:00
Ray 97c8a28aaa Remove trail spaces 2019-05-08 18:33:09 +02:00
Ray ecea95f50f Update raylib.rc.data 2019-05-08 17:14:46 +02:00
Ray 4773de26a5 Added WinMM library
Required for high resolution timer
2019-05-07 22:56:38 +02:00
Ray f6d1ffd4cd Tweak ON flag 2019-05-07 15:23:56 +02:00
Ray 9824387773 Added resource file for raylib.dll
Some minor tweaks
2019-05-07 15:16:14 +02:00
Ray f6d1448da9 Review CMake option flags 2019-05-07 15:15:23 +02:00
Ray e0e2346c22 NO SUPPORT_BUSY_WAIT_LOOP by default 2019-05-07 10:05:21 +02:00
Ray afd90a5a56 Add comment tweak 2019-05-07 09:50:40 +02:00
Ray 5d09ca550f Update issue templates 2019-05-06 22:27:16 +02:00
Ray 7be6e3e288 Update issue templates 2019-05-06 17:31:49 +02:00
Ray 7a23a35eed Remove broken example: standard_lighting 2019-05-06 16:39:25 +02:00
Ray 621965cb8c Move bunnymark example to another module 2019-05-06 16:38:58 +02:00
Ray 8bafe03ee0 Update text_unicode.c 2019-05-06 10:54:45 +02:00
Ray eeef7fdb51 Review example formatting 2019-05-06 10:46:56 +02:00
Ray 528e164ac5 Corrected issue with wrong text measuring 2019-05-06 10:17:34 +02:00
Ray 80c8599e81 Avoid warnings pre-evaluating values
Variable operations inside the functions should be evaluated before the function operations.
2019-05-06 10:07:06 +02:00
Ray 4c33d38812 Avoid warnings pre-evaluating values
Variable operations inside the functions should be evaluated before the function operations.
2019-05-06 10:05:43 +02:00
Ray 2ddc4bacba Example review 2019-05-06 09:41:54 +02:00
Ahmad Fatoum 3e0e91013f Revert "CMake: make unsequenced modifications an error"
This reverts commit 23c1c0bdb2.

Because add_if_flag_compiles apparently allows unsequenced
even if the compiler doesn't support it..
2019-05-04 23:56:38 +02:00
Ahmad Fatoum 23c1c0bdb2 CMake: make unsequenced modifications an error
They not only result in discrepancies between different compiler,
but trigger undefined behavior. Avoid them by having them break
the CMake build and CI.
2019-05-04 23:20:29 +02:00
Ahmad Fatoum 43bfb979e5 examples: CMake: warn once only about macOS OpenGL deprecation
Otherwise compiling rlgl is too spammy. While at it remove
the now unneeded CheckIncludeFiles.
2019-05-04 23:05:30 +02:00
Ahmad Fatoum ae2e48c77f CMake: don't use system GLFW headers if using built-in GLFW
This fixes the current CI failure.
2019-05-04 23:04:52 +02:00
Ahmad Fatoum 7d57a64337 Travis CI: build, don't download, external GLFW
CI is failing because we still test with GLFW 3.2, while
the internal GLFW is 3.3. To avoid such breakages in future,
build and install our own GLFW instead of relying on an external
Debian package.
2019-05-04 23:04:52 +02:00
Ahmad Fatoum 36d8a648f0 external: glfw: reinstate export of GLFW_PKG_{DEPS,LIBS}
We were doing this before, but it was deleted during the
last GLFW update. Readd it to fix the associated macOS CI failure.

Fixes: cd934c9f6 ("Update GLFW to 3.3.1")
2019-05-04 22:28:21 +02:00
Ahmad Fatoum 2cda760312 examples: CMake: don't build core_loading_thread if no pthreads
The example requires pthreads and now C11 <stdatomic.h>, thus skip it
if either isn't available.

This also fixes the current Travis CI build failure for the
Windows configuration.
2019-05-04 21:23:41 +02:00
Ahmad Fatoum 6681fd7df2 examples: core_loading_thread: fix race condition
A plain variable is insuffecient for inter-thread communication. Both the
compiler and the processor may reorder accesses. The compiler could even
cache dataLoaded with the result that STATE_FINISHED becomes unreachable.

Fix this by using C11 atomic_bool, which guarantees sequential consistency.

This fixes #827.
2019-05-04 21:23:19 +02:00
Ahmad Fatoum 53d9beb534 examples: core_loading_thread: use symbolic names for state machine states
And while at it, use a switch clause to make the state machine
structure clearer.
2019-05-04 17:15:48 +02:00
Ray 0fe409bfa9 Renamed example 2019-05-03 17:57:36 +02:00
Ray f53395694d Create examples_template.c 2019-05-03 17:56:58 +02:00
Ray 62f1511e5f Batch of 9 new shapes examples!
Some examples included in this batch require the included libraries: `easings.h` and `raygui.h`. Examples included:

 - shapes_bouncing_ball
 - shapes_collision_area
 - shapes_following_eyes
 - shapes_draw_circle_sector (requires raygui.h)
 - shapes_draw_rectangle_rounded (requires raygui.h)
 - shapes_draw_ring (requires raygui.h)
 - shapes_easings_ball_anim (requires easings.h)
 - shapes_easings_box_anim (requires easings.h)
 - shapes_easings_rectangle_array (requires easings.h)
2019-05-03 16:00:16 +02:00
Ray 0c53360a3a new example: textures_sprite_explosion 2019-05-03 15:56:07 +02:00
Ray c6b7f9c5b0 Some minor comments 2019-05-03 15:55:24 +02:00
Ray f44888e466 Force HighDPI on macOS 2019-05-03 09:45:16 +02:00
Ray 4d00b5a8bb Merge pull request #824 from kawa-yoiko/highdpi-cmakeopt
Add SUPPORT_HIGH_DPI to CMakeOptions.txt
2019-05-03 09:42:48 +02:00
Shiqing 780cefc3b0 Add SUPPORT_HIGH_DPI to CMakeOptions.txt 2019-05-03 12:24:20 +08:00
Ray 0b2bad4205 Update models_first_person_maze.c 2019-05-02 13:24:02 +02:00
Ray beda4180cd Added missing include 2019-05-02 13:15:05 +02:00
Ray a9ebf8e10d new example: textures_sprite_button 2019-05-02 13:01:36 +02:00
Ray 34feacc148 new example: core_loading_thread
Data loading in a second thread with progress bar in main thread
2019-05-02 12:22:54 +02:00
Ray d46160fb6e example review: models_first_person_maze
Added walls collision check
2019-05-02 12:22:15 +02:00
Ray fc56f8d9ef Work on touch_as_mouse input -WIP- 2019-05-02 09:46:01 +02:00
Ray 73a54fcc3d Update Makefile 2019-05-02 00:15:46 +02:00
Ray 0f84f9f51f Merge pull request #823 from Narice/master
Defined PI (#822)
2019-05-02 00:07:31 +02:00
Narice a54af067c2 Added guards to PI define
Added guards to not redefine it if the user is using it with raylib.h
also added an 'f' at the end of the define to keep compliant with raylib's PI define
2019-05-01 22:03:32 +02:00
Narice 59c436c922 Defined PI (#822)
PI is not always defined in math.h, thus it must be defined in this header
2019-05-01 21:41:51 +02:00
Ray c9025ed205 Corrected issue with texture rendering
Not sure if already corrected...
2019-05-01 16:15:33 +02:00
Ray bb2841a26d WARNING: Support high DPI displays
This change could break things. So, I created SUPPORT_HIGH_DPI flag to enable it (disabled by default).

Basically, it detects HighDPI display and scales all drawing (and mouse input) appropiately to match the equivalent "standardDPI" screen size on highDPI. It uses screenScaling matrix to do that.

This scaling comes with some undesired effects, like aliasing on default font text (keep in mind that font is pixel-perfect, not intended for any non-rounded scale factor).

The only solution for this aliasing would be some AA postpro filter or implementing the highDPI scaling in a different way: rendering to a texture and scaling it with FILTER_BILINEAR, check `core_window_scale_letterbox.c` example for reference.

Use at your own risk.
2019-05-01 14:30:36 +02:00
raysan5 270f563964 Minor tweaks 2019-04-28 18:30:27 +02:00
raysan5 100c82e369 Review formatting to follow raylib style 2019-04-28 18:23:21 +02:00
Ray fc6186a632 Merge pull request #821 from NerdThings/gamepad-rework
Gamepad Rework
2019-04-28 18:12:36 +02:00
Reece Mackie a51f3be38f Fix web 2019-04-28 16:53:20 +01:00
Reece Mackie f36ba6a2f4 Damn, made a mistake 2019-04-28 16:32:05 +01:00
Reece Mackie 948a442704 Update gamepad example to use new enums 2019-04-28 16:20:14 +01:00
Reece Mackie 86eba24970 This is dumb... 2019-04-28 16:08:07 +01:00
Reece Mackie e69688437a Why does visual studio keep using tabs!!! 2019-04-28 16:06:56 +01:00
Reece Mackie d42965b0b0 Fix tabs 2019-04-28 16:05:45 +01:00
Reece Mackie 3244ec2a1d Add another UWP comment for clarity 2019-04-28 16:03:23 +01:00
Reece Mackie 7ca856f9b7 Formatting changes 2019-04-28 15:59:39 +01:00
Reece Mackie f8c6226826 Merge branch 'master' into gamepad-rework 2019-04-28 15:54:50 +01:00
raysan5 40940f4398 Some formatting review 2019-04-28 16:45:23 +02:00
raysan5 7c10f971c1 Expose enable/disable backface culling
Some tweaks on BeginVrDrawing()
2019-04-28 16:03:59 +02:00
raysan5 55cb13f1b8 Remove example on Android 2019-04-28 15:46:08 +02:00
raysan5 604a8c0b78 WARNING: Functions renamed
Two functions have been renamed for coherence; previous naming was confusing for several users:

 - DrawPolyEx()         ---> DrawTriangleFan()
 - DrawPolyExLines() ---> DrawLineStrip()
2019-04-28 14:45:46 +02:00
Reece Mackie e0580e6322 Fix merge 2019-04-27 21:59:01 +01:00
Ray f70a640b2d Merge pull request #820 from NerdThings/readme-fix
Fix Readme
2019-04-27 22:48:32 +02:00
raysan5 e8c413b7cd Review UWP implementation
Basically, formating review and some variables naming to follow raylib conventions.
2019-04-27 22:47:03 +02:00
Reece Mackie c1f33eb817 Line cleaning 2019-04-27 21:43:32 +01:00
Reece Mackie 3506e3bf21 Update README.md 2019-04-27 21:42:22 +01:00
Reece Mackie 56ded3259d More work, UWP now supports it and deleted old gamepads 2019-04-27 21:36:57 +01:00
Reece Mackie 9434dc588a Merge branch 'master' into gamepad-rework 2019-04-27 20:51:04 +01:00
Reece Mackie b911cefab3 First gamepad stuff 2019-04-27 20:49:33 +01:00
Reece Mackie 2de1f31821 UWP Support Overhaul (#819)
* Working build

* Fix build again, stop deleting files

* Hotfix crash, needs investigating

* Remove VS2015.UWP, I cannot update the project

* Lots of UWP work, added keyboard and mouse press support. Still need to finish scroll wheel, mouse position and cursor hiding, plus other stuff that I haven't seen yet.

* Implemented a ton more things, added BaseApp.h to provide common code to UWP apps.

* Remove constant window dimensions

* Enable and Disable cursor support.

* Actually use mouse delta

* Gamepad Support

* Cleaning and small tweaks

* Restore original example.

* Update comment

* Use 'Messages' to handle the cursor functions so code is more portable.

* Comment

* Comment unused message fields and use vector for mouse pos instead.

* Move messages to utils.h and use messages for everything. No more plat-specific code in raylib.h

* Working build

* Fix build again, stop deleting files

* Hotfix crash, needs investigating

* Remove VS2015.UWP, I cannot update the project

* Lots of UWP work, added keyboard and mouse press support. Still need to finish scroll wheel, mouse position and cursor hiding, plus other stuff that I haven't seen yet.

* Implemented a ton more things, added BaseApp.h to provide common code to UWP apps.

* Remove constant window dimensions

* Enable and Disable cursor support.

* Actually use mouse delta

* Gamepad Support

* Cleaning and small tweaks

* Restore original example.

* Update comment

* Use 'Messages' to handle the cursor functions so code is more portable.

* Comment

* Comment unused message fields and use vector for mouse pos instead.

* Move messages to utils.h and use messages for everything. No more plat-specific code in raylib.h

* Tested some desktop stuff and added projection matrix updates for window resizing.

* Fixed big bad mouse bug

* Fix alt buttons and add hack to combat flickery key presses (far from perfect)

* Remove debug code

* Final commit

* Well, so I thought

* Wow, i am bad

* Remove packages folder

* Remove useless include

* Apply requested changes and fix linux build

* Try to stop packages folder

* Have we fixed the formatting properly?

* Third time's the charm?

* Where did this come from?

* Re-fix

* Autoformat is gonna kill

* Fixed XBOX ONE Support

* Fix tabs
2019-04-27 20:33:51 +02:00
Ray f37e55a77b Reverted HiDPI changes, they break 2D mode on HiDPI :( 2019-04-25 13:45:37 +02:00
Ray c76863b289 Working on HiDPI support -WIP-
Trying to define a global transformation matrix to scale all content for HiDPI.
2019-04-25 11:39:45 +02:00
Ray 04ed4dd40c Renamed internal variable
Probably required for HiDPI support
2019-04-25 11:02:13 +02:00
Ray e1cd4674e7 Merge pull request #817 from Demizdor/fix_draw_text_rec_ex
Fixed text selection in DrawTextRecEx()
2019-04-24 22:39:40 +02:00
Demizdor 86f9ea6e7a Fixed selection in DrawTextRecEx() 2019-04-24 22:08:57 +03:00
Ray 96cd3b5abc Merge pull request #815 from ChrisDill/testing
Added project for 4coder
2019-04-24 11:42:39 +02:00
Chris Dill 6d65aa1acb Removed game binary 2019-04-24 10:13:13 +01:00
Chris Dill 303c886852 Added project for 4coder
Using example from the VSCode project
2019-04-24 09:44:08 +01:00
Ray 600cdb61a3 new example: models_first_person_maze -WIP- 2019-04-23 23:28:11 +02:00
Ray cc1dd6b410 Review camera module
This module still requires further work but 3rd person camera is less broken now...
2019-04-23 23:27:08 +02:00
Ray f4ad144537 Merge pull request #812 from Demizdor/fix_draw_rectangle_rounded
Fix for DrawRectangleRounded
2019-04-23 21:39:38 +02:00
Demizdor 0e683005b4 Fix for DrawRectangleRounded 2019-04-23 20:48:00 +03:00
Ray 0c567cd259 WARNING: Issues on web building
Found some issues when building for web using latest emscripten 1.38.30, traced the error and found that eglGetProcAdress does not return function pointers for VAO functionality, supported by extension.

It requires more investigation but now it works (avoiding VAO usage)
2019-04-23 18:10:38 +02:00
Ray 3aafa9d5ba Set a version for rGIF library 2019-04-23 16:01:38 +02:00
Ray 372d77957f Update STB libraries to latest version 2019-04-23 16:01:18 +02:00
Ray 958bf43eac Update README.md 2019-04-23 15:22:20 +02:00
Ray 4ad81ba2d4 Alloc custom allocators on standalone mode 2019-04-23 15:14:15 +02:00
Ray 87b75a6c95 Review issues on OpenGL 1.1 2019-04-23 15:12:08 +02:00
Ray 10c2eea14b Correct RL_FREE bug 2019-04-23 15:07:28 +02:00
Ray e67ebabb02 Support custom memory management macros
Users can define their custom memory management macros.

NOTE: Most external libraries support custom macros in the same way, raylib should redefine those macros to raylib ones, to unify custom memory loading. That redefinition is only implemented as example for stb_image.h in [textures] module.
2019-04-23 14:55:35 +02:00
Ray 8ed71b9d5a Some tweaks to custom memory management system 2019-04-23 14:51:32 +02:00
Ray 9835be7b7a Remove unnecesary GLFW deps (used by examples) 2019-04-23 14:50:58 +02:00
Ray 7e444d5a45 Renamed file to avoid breaking build 2019-04-22 22:47:50 +02:00
Ray e26cc01ba8 More rnet review to avoid warnings/errors 2019-04-22 21:50:45 +02:00
Ray 2d4c2ff351 Review rnet errors 2019-04-22 20:54:50 +02:00
Ray c7907a203b Update miniaudio to v0.9.3 2019-04-22 20:32:11 +02:00
Ray f7d978e726 Reviewed rnet inclusion
Move to own header for a more deep review of the module
2019-04-22 20:27:54 +02:00
Jak 4b8d06f501 [rnet] module WIP (#809)
Added experimental network module
2019-04-22 20:03:00 +02:00
Ray e41cb774c2 Merge pull request #789 from myd7349/fix-cmake-for-win32
Fix CMake support on Win32
2019-04-22 19:32:15 +02:00
Ray cd934c9f66 Update GLFW to 3.3.1 2019-04-22 19:00:43 +02:00
Ray a0449594e4 Merge branch 'master' of https://github.com/raysan5/raylib 2019-04-22 18:58:38 +02:00
Ray 152b7471e9 Comment HiDPI window request
At least until a proper solution is found!
2019-04-22 18:46:05 +02:00
Ray 9ace10ff73 Merge pull request #810 from Demizdor/unicode_implementation
Unicode implementation
2019-04-22 18:34:17 +02:00
Ray 2249f12304 Expose rlgl functions on shared libraries 2019-04-22 18:25:30 +02:00
Vlad Adrian 98070982bf Fix formatting ...not very good at this 2019-04-21 22:05:25 +03:00
Vlad Adrian 3dda1c41ec Fixed formatting! Grumble, grumble... 2019-04-21 21:51:03 +03:00
Demizdor 86c887f0cf Added unicode example 2019-04-21 13:44:17 +03:00
Demizdor f3a5a6871d Initial unicode implementation for UTF8 encoded text 2019-04-21 12:27:46 +03:00
Ray 8c22f685d1 Check buffer overflow 2019-04-14 22:29:14 +02:00
Ray d690e734f9 Merge pull request #799 from flashjaysan/master
Update raymath.h
2019-04-13 15:08:28 +02:00
flashjaysan 310d1d1589 Update raymath.h
Removed a useless semicolon.
2019-04-13 14:35:07 +02:00
Ray 0ef146438a Merge pull request #798 from bjornwah/master
Use typedef rather than #define in order to avoid issues in applicati…
2019-04-13 13:17:20 +02:00
Björn Wahlstrand 7cc8faf7da Use typedef rather than #define in order to avoid issues in application code 2019-04-12 21:41:30 +02:00
Ray c1d3ba67f8 Update CHANGELOG 2019-04-12 13:46:44 +02:00
Ray fc5dd5d99f FLAG not supported on web GLFW implementation 2019-04-12 13:44:16 +02:00
Ray df90ba6e46 WARNING: Added GLFW hint to support hi-DPI
This needs to be tested on a hi-DPI monitor, probably requiring a FLAG to enable it would be a good idea...
2019-04-12 13:31:05 +02:00
Ray 99537efccf Review some examples 2019-04-12 13:29:53 +02:00
Ray 4e58d4102c Corrected typo 2019-04-12 13:29:37 +02:00
Ray 70fc549818 Working on raylib 2.5 changelog... 2019-04-12 13:03:49 +02:00
Ray 30d51ec26c Reorganize struct 2019-04-12 11:29:01 +02:00
Ray 75384add98 Added Crystal binding 2019-04-12 00:01:32 +02:00
Ray 8774cb3c24 Removed iqm example
Already integrated into raylib
2019-04-11 23:38:13 +02:00
Ray e54a74f4e7 new example: shapes_rectangle_scaling_mouse 2019-04-11 18:07:20 +02:00
Ray 24f07aaf5a new example: core_window_scale_letterbox 2019-04-11 17:40:13 +02:00
Ray 129703fad1 new example: shaders_texture_drawing 2019-04-11 16:53:20 +02:00
Ray 6fc97643bf new example: textures_background_scrolling 2019-04-11 16:53:02 +02:00
Ray 01367fcb1e Review cubemap generation 2019-04-11 16:11:54 +02:00
Ray a28dfd4a7b Corrected standalone usage 2019-04-11 15:54:10 +02:00
Ray 5bfa675350 Review VR simulator mechanism
- No default VR device parameteres inside raylib
- VR device parameter should be provided by user
- VR distortion shader should be provided by user
2019-04-11 13:53:01 +02:00
Ray aa8d10c48a Update BINDINGS.md 2019-04-11 11:57:50 +02:00
Ray c7e5585ab9 Added binding to Factor 2019-04-11 11:29:35 +02:00
Ray 1934f2a2f4 Some tweaks 2019-04-11 00:11:11 +02:00
Ray 6168a4ca37 Comments review 2019-04-10 23:50:48 +02:00
Ray 45c820eeb4 Set default white texture for diffuse mat 2019-04-10 22:39:42 +02:00
Ray 21092266b5 Check textures available before loading 2019-04-10 00:44:24 +02:00
Ray 802afe8fe5 Replaced size_t by unsigned int 2019-04-10 00:34:46 +02:00
myd7349 148eefb9bb Resolve CI failure with MinGW 2019-04-09 20:41:40 +08:00
Ray f939f6abc2 Update Makefile 2019-04-09 13:23:56 +02:00
Ray 32ccecb8ca Start working on glTF loading... 2019-04-09 13:23:51 +02:00
myd7349 5134a3b61d Take care of raylib_USE_STATIC_LIBS when calling find_library 2019-04-09 18:03:26 +08:00
myd7349 61181f2c49 Fix CMake support on Win32 2019-04-09 18:03:25 +08:00
Ray 94335e30df Avoid example on Android 2019-04-08 12:50:09 +02:00
Ray b8ada4b877 Review creation years 2019-04-08 12:25:13 +02:00
Ray 81b63890dd Merge pull request #793 from ChillerDragon/pr_copyright_2k19
Happy new year 2019
2019-04-07 17:53:48 +02:00
ChillerDragon f21761fbbb Happy new year 2019 2019-04-07 17:49:12 +02:00
Ray c23ceec338 Added missing include -_- 2019-04-05 17:29:30 +02:00
Ray 9282b8ba83 ADDED: SetShaderValueTexture()
Some tweaks
2019-04-05 17:08:46 +02:00
Ray c600dd0766 Review PBR shaders
Issue was related to vertex tangent attibutes not uploaded to GPU, a quick solution was implemented for new vertex attributes loading for already existing meshes... I don't like it specially but it will work for now.
2019-04-05 16:43:09 +02:00
Ray 0f9fe34c3a Start setting things up for raylib 2.5 2019-04-05 13:44:04 +02:00
Ray 92733d6695 BIG UPDATE: New models functions for animations!
Multiple functions added and some reviewed to adapt to the new multi-mesh, multi-material and animated models.
2019-04-05 13:15:56 +02:00
Ray 38a13b76d1 Corrected issue with LoadMesh() 2019-04-05 13:13:42 +02:00
Ray a728376cdf Rename enum type 2019-04-05 13:13:10 +02:00
Ray 28b9de661d Minor tweaks 2019-04-05 13:12:54 +02:00
Ray a103086443 Removed trail spaces 2019-04-04 13:50:52 +02:00
Ray 3e1e7d740f Review merged PR formatting
Removed trail spaces
2019-04-04 13:50:28 +02:00
Ray 6ecd8249bc Merge pull request #787 from Demizdor/master
Added `DrawRoundedRect()` and `DrawRoundedRectLines()`
2019-04-04 13:42:20 +02:00
Ray d89d24c5e8 BIG UPDATE: Support model animations! 2019-04-04 13:33:54 +02:00
Ray 22dece2935 Animated vertex renaming 2019-04-04 13:32:17 +02:00
Ray f1cbdd6b3a Corrected some issues
- Support compiling for OpenGL 1.1
- Free meshes/materials memory after usage...
2019-04-01 18:22:56 +02:00
Ray 86212e8462 Support material loading from OBJ/MTL 2019-04-01 12:41:32 +02:00
Ray e5edbb7104 Reviewed OBJ loading implementation -WIP-
One mesh files can be loaded correctly

MISSING:
 - Multimesh OBJ loading
 - Materials loading
2019-04-01 12:17:29 +02:00
Ray 0a492b5dea Retarget VS2017 solution 2019-04-01 12:09:00 +02:00
Ray fe702cd6a2 Implementing LoadOBJ() -WIP-
It seems obj loading is working ok but there is some problem with drawing...
2019-04-01 00:16:56 +02:00
Ray 3e806ad9d4 Reviewed data assignation 2019-04-01 00:15:45 +02:00
Ray 26fb2e0f3a Update cube.obj 2019-04-01 00:15:14 +02:00
Demizdor eda982e261 Reimplemented DrawRoundedRectLines() 2019-03-31 16:15:40 +03:00
Vlad Adrian ecbd17910d Added DrawRoundedRectLines() 2019-03-31 13:22:50 +03:00
Vlad Adrian 1415d514ba Update raylib.h 2019-03-31 13:20:45 +03:00
Demizdor a28023b58f Added DrawRoundedRect() 2019-03-30 22:18:29 +02:00
Ray 2217c04ecf Update standard_lighting.c 2019-03-29 20:54:45 +01:00
Ray be6d237b9e Review models examples 2019-03-29 20:22:50 +01:00
Ray a197f40bb4 Default to white cube mesh if not loaded 2019-03-29 20:22:30 +01:00
Ray 6f371dab08 Some formatting review 2019-03-29 19:43:27 +01:00
Ray afab8b36ab Merge pull request #786 from Demizdor/draw_ring
Added DrawRing(), DrawRingLines() and DrawCircleSectorLines()
2019-03-29 17:28:37 +01:00
Ray 19debd2b4e Review some warnings 2019-03-29 17:28:10 +01:00
Ray 8a73c5d0b4 Replace custom OBJ/MTL implementations by tinyobj_loader -WIP- 2019-03-29 17:15:22 +01:00
Ray a643dc4ca0 WARNING: Redesigned model struct for multi-meshes
This is quite a big change, Model struct has been redesigned to support multiple meshes and multiple materials, most 3d fileformats contain multiple meshes and reference multiple materials.

Consequently, multiple functions have been reviewed.

LoadOBJ(), LoadIQM(), LoadGLFT() now return a Model.

Current LoadOBJ() is not valid anymore, actually, tinyobj_loader_c library is considered for replacement.
2019-03-29 16:48:23 +01:00
Demizdor ab9c6da26f Added DrawRing(), DrawRingLines() and DrawCircleSectorLines() 2019-03-29 16:22:09 +02:00
Ray 876c64b1e5 WARNING: This could break something
If we have no data to update/draw, we avoid update/draw. On `DrawBuffersDefault()` if no vertes data is available nothing is drawn but some globals: vertexData, projection, modelview, draws... are reseted.

There shouldn't be any problem if we don't touch those globals in case no vertex have been processed but, just in case, I warn about it.
2019-03-29 12:27:50 +01:00
Ray 69656cb090 Added comment 2019-03-29 12:23:02 +01:00
Ray 8e98fa8754 Merge pull request #785 from Berni8k/master
RaspberryPi Keyboard input with evdev
2019-03-28 22:26:48 +01:00
Berni8k ea96d0afea Fixes compile error when SUPPORT_GESTURES_SYSTEM is undefined on RPi 2019-03-28 20:38:13 +01:00
Berni8k b1e914bbf3 RaspberryPi Keyboard input with evdev
Based on pull request from user "DarkElvenAngel", better integrated with the current event system and enhanced with buffer to help with fast typing at low framerates.
2019-03-28 19:46:39 +01:00
Ray 88dfd2ab23 REDESIGNED: DrawCircleSector() 2019-03-28 18:53:41 +01:00
Ray 186d34827a Align LINES and TRIANGLES drawing
When drawing LINES or TRIANGLES, vertex are accumulated in same buffer as QUADS and new draw calls are registered but QUADS drawing uses an index buffer for optimization, so, when adding LINES/TRIANGLES vertices we need to make sure next draw calls for QUADS keep aligned with indices buffer.

To get that we just add some alignment vertex at the end of the LINES/TRIANGLES draw calls, to make them multiple of 4 vertex.
2019-03-28 18:05:32 +01:00
Ray 165ced9428 Small tweak 2019-03-28 13:03:25 +01:00
Ray 3a1e884d03 Update BINDINGS.md 2019-03-27 20:19:33 +01:00
Ray 7524fdc3e1 Review gestures disable flag 2019-03-25 12:30:20 +01:00
Ray a7b06e7f01 Update BINDINGS.md 2019-03-25 10:13:42 +01:00
Ray 86ef08c408 Update README.md 2019-03-25 10:12:38 +01:00
Ray b0bfe5812f Update BINDINGS.md 2019-03-24 21:51:23 +01:00
Ray 6bd62d2448 Move bindings to BINDINGS.md 2019-03-20 16:44:51 +01:00
Ray 7725a74303 Create BINDINGS.md 2019-03-20 16:44:32 +01:00
Ray 1203b7ad8f Add Geany autocomplete tags 2019-03-20 10:58:06 +01:00
Ray c001bdb2de Checking issue with sound volume
It seems individual sound volume level is not set...
2019-03-20 10:57:41 +01:00
Ray aa00d77110 Support additional modules building -WIP-
The idea is supporting additional raygui and physac modules building with raylib but those modules are distributed as header-only libraries and it makes a bit dificult to build them inside raylib...
2019-03-18 18:46:39 +01:00
raysan5 0bbf857b00 Review build release path, default to src directory 2019-03-17 12:21:51 +01:00
raysan5 f02a0334d8 ADDED: GetScreenData() 2019-03-17 11:58:02 +01:00
raysan5 2a92d6af3e Support no-audio no-models modules compilation
Renamed flags for convenience.
2019-03-16 13:02:16 +01:00
raysan5 a61d3ad512 SetWindowIcon() redesigned
Now core does not depend on textures module directly, only through text module.
2019-03-16 13:00:46 +01:00
Ray 29d1323bd1 Work on ImageResizeCanvas() 2019-03-15 13:34:09 +01:00
Ray cbfa35a39e REVIEW: ImageResizeCanvas() -WIP- 2019-03-15 00:56:02 +01:00
Ray ff1bcfb2fa Remove comment 2019-03-13 10:26:33 +01:00
Ray 5e8427a8b5 REDESIGNED: GetFileNameWithoutExt()
Removed possible memory leak when using this function
2019-03-13 10:07:01 +01:00
Ray b6dd31c653 Merge pull request #775 from rsachetto/master
Adding DrawCubeWiresV for convenience
2019-03-13 09:42:56 +01:00
Ray 32e6a419c1 Reorder one flag 2019-03-12 16:29:41 +01:00
Ray 477ea4d660 Support external config flags 2019-03-12 16:00:26 +01:00
Ray 76e968f6b7 Updated audio library: mini_al -> miniaudio 2019-03-12 11:54:45 +01:00
Rafael Sachetto 9f54a69cec Adding DrawCubeWiresV for convenience 2019-03-08 15:06:17 -03:00
Ray 2f97a3f835 Proposed Model struct review 2019-03-05 16:46:48 +01:00
Ray 2e99c6cefb ADDED: IsWindowResized() 2019-03-04 22:58:20 +01:00
raysan5 d7fd6e0f1a Corrected issue with possible 0 division
Reported on rfxgen tool, it crashes on some parameters
2019-03-02 14:29:04 +01:00
Ray 36fa0207f2 Some spacing review 2019-02-28 23:06:37 +01:00
Ray 50da9f623e Return value in GetClipboardText() 2019-02-28 22:25:27 +01:00
Ray d679a97e92 Removed some NULL pointer checks 2019-02-28 18:39:58 +01:00
Ray 5735f13fe5 Merge pull request #773 from Skabunkel/master
Removed unnecessary if
2019-02-28 18:36:13 +01:00
Skabunkel a90c9c5ade Removed unnecessary 2019-02-28 17:50:47 +01:00
Ray b570b32337 Added some comments on #594 2019-02-28 16:28:49 +01:00
Ray 32c61b1fa0 Merge pull request #767 from Skabunkel/master
Fixed segmentation fult created by quick fix
2019-02-24 12:41:11 +01:00
Skabunkel fc11b360af ... tabs again... _facepalm_ 2019-02-24 01:57:31 +01:00
Skabunkel 03f7483537 Missed one 2019-02-24 01:56:17 +01:00
Skabunkel f2d5cddfc8 Fixed segmentation fult created by quick fix 2019-02-24 01:48:29 +01:00
Ray 56c79a10de Merge pull request #766 from Skabunkel/master
#764 - Quick fix that clears alot of memory.
2019-02-24 01:15:32 +01:00
Skabunkel 374b4d3faf Tabs to spaces 2019-02-24 00:17:54 +01:00
Skabunkel 795c5e949d #764 - Quick fix that clears alot of memory, there seems to be more hiding somewhere else. 2019-02-24 00:13:50 +01:00
Ray 854e5d2f7e Merge pull request #762 from ftk/pitchfix
Fix audio pitch
2019-02-23 17:58:21 +01:00
ftk 8ad608888e fix audio pitch 2019-02-23 10:36:25 +00:00
Ray 374811c440 Change ternary operator formatting 2019-02-22 13:13:11 +01:00
Ray 8382ab9ada Merge pull request #761 from Demizdor/master
Fixed height bug in DrawTextRecEx()
2019-02-22 12:15:19 +01:00
Ray a886f5e743 Remove TABS 2019-02-22 12:12:21 +01:00
Demizdor 40a76cf021 Fixed height bug in DrawTextRecEx() 2019-02-22 12:27:20 +02:00
Ray 641895b5ba Remove end-line spaces 2019-02-21 18:45:19 +01:00
Ray 75298b50fb Corrected issue with OpenURL()
It was not working on Windows 10
2019-02-21 11:28:10 +01:00
Ray b3568e6d15 Merge pull request #760 from RobLoach/libraylib-a
Remove compiled libraylib.a
2019-02-19 12:06:46 +01:00
Rob Loach 497fb4e49f Remove compiled libraylib.a 2019-02-18 23:36:29 -05:00
Ray d62652c5b2 Update cgltf library
Added some comments to loader function...
2019-02-18 18:46:17 +01:00
Ray 5d0ea7f110 Corrected issue #758 2019-02-18 16:43:01 +01:00
Ray 8a21830b77 Merge pull request #755 from neonmoe/fix-config-flags
Fix config.h flags
2019-02-15 17:58:00 +01:00
Jens Pitkanen eed69d4127 Fix the image manipulation config flag 2019-02-15 17:56:36 +02:00
Jens Pitkanen f9963d4ed4 Fix config.h flags 2019-02-14 13:52:18 +02:00
Ray bc86b0f78b Corrected path issue 2019-02-14 00:06:05 +01:00
Ray 981be58d03 Corrected issue #750 2019-02-13 17:49:02 +01:00
Ray 297dd641e8 ADDED: DrawCircleSector() 2019-02-13 00:06:06 +01:00
Ray e46c23128e Avoid AudioBuffer symbol collision on macOS
raudio AudioBuffer internal struct collides on macOS with CoreAudio same name struct. In this case struct has been renamed because is internal to raudio... but probably all system should be redesigned.
2019-02-12 15:53:34 +01:00
Ray c379e04628 Update mini_al.h 2019-02-12 13:01:43 +01:00
Ray 43b199d534 Corrected issue 2019-02-12 12:31:26 +01:00
Ray 2e3310c9de Review scripts name and mini_al inclusion 2019-02-12 12:18:26 +01:00
Ray 944a388b1b Include mini_al directly, no separate module 2019-02-12 12:18:01 +01:00
Ray e7466eb0c4 Corrected function usage 2019-02-12 00:40:10 +01:00
Ray d00b8f9ffc Updated external libraries 2019-02-12 00:25:21 +01:00
Ray e996fe2ff5 ADDED: GetClipboardText(), SetClipboardText() 2019-02-11 18:03:06 +01:00
Ray 6dbec47488 Redesigned TextSplit() function 2019-02-11 18:02:32 +01:00
Ray dde99f45d9 Merge pull request #749 from Syphonx/master
LoadBMFont filepath fix
2019-02-10 23:52:52 +01:00
Jak Barnes 1e15616b69 Fixed as issue where strrchr in LoadBMFont would only look for forward slashes, instead of backslashes causing strlen to fail on a null string 2019-02-10 16:01:44 +00:00
Ray 366313bfd0 Update rlgl.h 2019-02-06 18:07:34 +01:00
Ray 68a2bf0e6b Update rlgl.h 2019-02-06 17:35:26 +01:00
Ray 7370ae7b82 Update rlgl.h 2019-02-06 16:51:36 +01:00
Ray d356b1d1cc Reviewed fbo creation and VR system 2019-02-06 14:21:44 +01:00
Ray 7615512af1 ADDED: TextToInteger()
Custom implementation that returns -1 if it fails (no negative values supported)
2019-02-06 14:20:14 +01:00
Ray d0d81ea545 Review ExportMesh() header 2019-02-06 10:51:06 +01:00
Ray c200642887 Review issue with aspect ratio...
...while using a RenderTexture combined with 3d mode
2019-02-04 17:10:12 +01:00
Ray fef7bbb495 Delete libraylib.a 2019-02-04 16:29:01 +01:00
Ray db56d432e4 ADDED: rlLoadTextureDepth()
REDESIGNED: rlLoadRenderTexture()
ADDED: rlRenderTextureAttach()
ADDED: rlRenderTextureComplete()
2019-02-04 16:28:17 +01:00
Ray fce48e85f4 ADDED: LoadTextureCubemap()
Probably uncomplete, not tested yet...
2019-02-04 13:27:36 +01:00
Ray 5755c5e310 Review DrawTextRecEx() formatting 2019-02-04 09:57:02 +01:00
Ray 01ace743d0 Merge pull request #734 from Demizdor/master
Added DrawTextRecEx()
2019-02-03 20:47:13 +01:00
Ray 9740e5d3ed Update utils.c 2019-01-29 12:45:10 +01:00
Ray 3363cfa61a Corrected log naming 2019-01-29 12:33:08 +01:00
Ray 7699787473 Added new game: Cat vs Roomba
GGJ2019 game
2019-01-27 15:16:10 +01:00
Ray 30c025f913 Merge pull request #735 from RobLoach/patch-1
Fix clang++ compilation errors
2019-01-24 15:17:51 +01:00
Ray f80f216297 Merge pull request #736 from RobLoach/patch-2
Fix font cannot be narrowed to type 'int'
2019-01-24 15:16:33 +01:00
Rob Loach 90d5bb79e5 Fix font cannot be narrowed to type 'int'
Getting the following strict error....

```
src/text.c:117:105: error: constant expression evaluates to 2398692640 which
      cannot be narrowed to type 'int' [-Wc++11-narrowing]
...0x00000000, 0x00000000, 0x00200020, 0x0001b000, 0x00000000, 0x00000000, 0x8ef92520, 0x00020a00...
                                                                             ^~~~~~~~~~
```

Switching it to an unsigned int fixes it.
2019-01-23 22:28:10 -05:00
Rob Loach d897e14161 Revert the screenWidth change 2019-01-23 20:08:51 -05:00
Rob Loach feb6afcd61 Fix clang++ compilation errors
clang was complaining about the type conversions. For example...
```
node_modules/raylib-src/src/core.c:1888:15: error: cannot initialize a variable of type 'char *' with an
      rvalue of type 'void *'
        char *cmd = calloc(strlen(url) + 10, sizeof(char));
              ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
2019-01-23 20:07:47 -05:00
Demizdor 6f66425946 Added DrawTextRecEx() 2019-01-23 21:36:54 +02:00
Ray 68db3a894a Merge pull request #733 from RobLoach/delete-lib-file
Remove libraylib.a
2019-01-23 11:43:58 +01:00
Rob Loach 30ea4bdcce Remove libraylib.a 2019-01-23 00:46:29 -05:00
Ray df40735067 Added CMD compilation scripts for examples
They could be useful for some people...
2019-01-21 23:59:35 +01:00
Ray 4467292a2d Review last PR formatting 2019-01-21 10:32:14 +01:00
Ray e91c84e33a Remove comment 2019-01-21 10:25:59 +01:00
Ray 9b97cf6972 Merge pull request #731 from MarcoLizza/reorganizing-logging
Reorganizing logging
2019-01-21 10:09:51 +01:00
Marco Lizza 343fef4aa4 Changing enums, now referenced as int. 2019-01-21 10:05:40 +01:00
Marco Lizza aaced97b12 Fixing badly (redefined) enums. 2019-01-21 10:02:53 +01:00
Ray 7349993015 Merge pull request #730 from pbalcer/examples-web-fix-preload
cmake: fix resource preloading for web examples
2019-01-21 09:52:08 +01:00
Marco Lizza f1d13aa469 Adding function to control the "exit-on-error" behaviour. 2019-01-20 22:24:41 +01:00
Marco Lizza 932e9dbd09 Fixing logging level configuration API. 2019-01-20 22:24:09 +01:00
Marco Lizza 78904d2bcc Fixing TraceLog function to work on levels. 2019-01-20 22:23:07 +01:00
Marco Lizza c1c801e5c3 Reworking log level as incremental. 2019-01-20 22:22:21 +01:00
Piotr Balcer 3065cbbce9 cmake: preload resources into web examples
No examples built for the Web platform functioned properly due to lack
of resources in the virtual file system provided by emscripten.

This patch addresses this problem by adding
'--preload-file local_path/resources@resources' emcc option to link
flags whenever necessary.
2019-01-20 15:24:30 +01:00
Piotr Balcer 1bfa1b8696 cmake: use ALLOW_MEMORY_GROWTH=1 for web examples
The default memory limit for emscripten applications is 16 mergabytes,
which might be to little for some examples, especially given that the
resources are also included in that limit.

Normally, using this option disables some asm.js optimizations, but
there's no such cost for WebAssembly.
2019-01-20 14:49:22 +01:00
raysan5 0d2cfce18e Review raudio comments 2019-01-19 16:51:41 +01:00
raysan5 557456cace Review window title 2019-01-19 14:15:55 +01:00
Ahmad Fatoum 6c812b56d9 CMake: pkg-config: fix usage for RedHat-like systems (#728)
$prefix/lib isn't in pc_path on Fedora 28:

    [root@fedora-28 ~]# pkg-config --variable=pc_path pkg-config
    /usr/lib64/pkgconfig:/usr/share/pkgconfig

This has the effect that the pkg-config file is written to the
correct location but pkg-config --libs raylib doesn't output
the correct library path. This fixes this problem by substituting
the directory names into the .pc, same as we do with the CMakeLists.txt
since #518.

This issue popped up during the automated test of the Perl bindings:
    https://github.com/athreef/Alien-raylib/issues/3
2019-01-19 13:52:55 +01:00
raysan5 d41e50f866 Allow ShowWindow usage ;) 2019-01-19 12:34:04 +01:00
Ray 762b85e6c9 Merge pull request #725 from dtcristo/patch-1
Remove `raylib-rust`
2019-01-19 00:22:11 +01:00
Ray 3703430f57 Renamed ShowWindow() to UnhideWindow() -WIP-
Function provisional renaming... that's not the end of this issue...
2019-01-17 16:29:36 +01:00
Ray a43f87e391 Crazy test 2019-01-16 17:25:48 +01:00
David Cristofaro 5d34c6ccaa Remove raylib-rust 2019-01-16 22:10:37 +11:00
Ray ced7321089 Readded alpha clear to rlReadScreenPixels()
When capturing framebuffer, if some element with transparency has been drawn, it retrieves that data... it could be a bit annoying in some situations because we could expect color compositing with background color... It depends on the situation and our needs... but most of the time we don't want that transparency on screenshots.
2019-01-16 10:04:59 +01:00
Ray c93bf336fe Update utils.c 2019-01-15 12:32:41 +01:00
Ray f1bcc131dc Let user choose to clear scissor area 2019-01-15 12:08:11 +01:00
Ray 60967d8cdc Merge pull request #723 from MarcoLizza/trace-log-failing-on-OTHER
Trace log failing on other
2019-01-15 12:04:28 +01:00
Marco Lizza efcb68ceca Fixing LOG_OTHER missing. 2019-01-14 17:09:41 +01:00
Marco Lizza ce98cc6285 Adding MACRO constant to specify the internal buffer size. 2019-01-14 17:09:17 +01:00
Ray 42bfa7e3ff Make sure no parameters can be passed 2019-01-14 13:49:56 +01:00
Ray e811279a75 Review code formatting on ColorFromHSV()
Following raylib notation rules
2019-01-14 13:49:17 +01:00
Ray c16fcddf8b Merge pull request #722 from Demizdor/master
Added ColorFromHSV()
2019-01-14 13:43:06 +01:00
Demizdor da1714f411 Added ColorFromHSV() 2019-01-14 12:49:00 +02:00
Ray 49a69e3e27 Allow capturing transparent background 2019-01-11 18:55:04 +01:00
Ray e13975beeb Some security checks added 2019-01-11 18:54:48 +01:00
Ray 25205b5113 Reverted flag value (but kept order)
This specific change could be very annoying for people already using FLAG_MSAA_4X_HINT, their programs will compile correctly but window won't be shown...
2019-01-11 12:21:02 +01:00
Ray 7132ba44db Reviewed latest PR 2019-01-10 17:06:26 +01:00
Ray 91ea007478 Merge pull request #719 from MarcoLizza/window-visibility
Window visibility
2019-01-10 16:57:30 +01:00
Ray 56173d7cf4 Merge branch 'master' into window-visibility 2019-01-10 16:57:15 +01:00
Marco Lizza 6056a2a5cf Reworking API upon suggestion. 2019-01-10 16:43:21 +01:00
Ray 93471b0a7c WARNING: Renamed module: audio -> raudio
Planning to promote raudio module as a simple and easy-to-use front-end for the amazing mini_al library, so the name change.

Name comes from raylib-audio but in spanish it also remembers to word "raudo", meaning  "very fast", an analogy that fits perfectly to the usefulness and performance of the library!

Consequently, raylib version has been bumped to 2.4-dev.
2019-01-10 16:32:40 +01:00
Marco Lizza c743734235 Ditto. 2019-01-10 14:55:25 +01:00
Marco Lizza a15251bcdb Adding window visibility functions. 2019-01-10 14:55:19 +01:00
Marco Lizza 5adcc30a2e Adding window visibility configuration flag. 2019-01-10 14:54:55 +01:00
Ray 64fd131ed5 Some improvements on SetShaderValue()
- Unsigned int not supported on OpenGL ES 2.0 -> Removed
- Reorganized enum -> Removed BOOL (not uniformType)
- Support sample2D uniform type
2019-01-10 12:28:23 +01:00
Ray 55f8dbc755 WARNING: Redesigned SetShaderValue() 2019-01-10 11:25:26 +01:00
Ray 7c4a0f963d Reviewed path 2019-01-10 11:24:34 +01:00
Ray 35bcbd1b60 Merge pull request #718 from MarcoLizza/shaders-uniforms-array
Shaders uniforms array
2019-01-09 17:01:59 +01:00
Marco Lizza 0c5bee4c9a Limiting FPS to 60 for uniformity with other examples. 2019-01-09 16:33:09 +01:00
Marco Lizza 0fe56b1674 Adding basic palette-switching example using uniform arrays. 2019-01-09 16:20:56 +01:00
Marco Lizza 73597332b6 Adding uniform array support for shaders. 2019-01-09 16:18:00 +01:00
Marco Lizza adf0c64864 Fixing typo in examples makefile, preventing build. 2019-01-09 16:08:10 +01:00
Ray df54e73b21 Update shell.html 2019-01-08 21:05:23 +01:00
Ray 185ac9bdc1 Merge pull request #717 from neonmoe/patch-build-scripts
Add project/scripts
2019-01-08 18:16:28 +01:00
Jens Pitkanen fa250e5d17 Add project/scripts 2019-01-08 18:31:50 +02:00
Ray 010c655f79 Added required define on TCC compiler 2019-01-08 10:10:20 +01:00
Ahmad Fatoum 8bc4050377 Revert "core: workaround window not being rendered till moved on macOS Mojave"
This reverts commit 1fe6d9fc06.

Because upstream GLFW now contains a fix.
2019-01-08 09:03:22 +01:00
Ahmad Fatoum c3d2b1b184 glfw: Update GLFW to current master
glfw/glfw@5595fa3ae6 implements a proper fix for the macOS Mojave
problem of OpenGL windows not being rendered until moved or manually
updated.

Pull in the current master and rebase the three patches we have on top:
- two commits we have for reuse of the GLFW CMake build system for Wayland
It hasn't yet to be acknowledged upstream.
- one commit removing #include <windows.h> in glfw3native.h to avoid
duplicate declarations.

Fixes #655 and #665.
2019-01-08 09:03:22 +01:00
Ahmad Fatoum f719de4bf8 external: glfw: Ignore {docs/examples/tests}/ directories 2019-01-08 09:03:22 +01:00
Ahmad Fatoum 182bdd2e0a Travis CI: bump installed wayland-protocols to v1.15
Move away from v1.12 as GLFW now requires >= 1.15.
2019-01-08 09:03:22 +01:00
Ahmad Fatoum 285de106d4 Travis CI: emscripten: properly fix failing CMake install stage
The .travis.yml is getting increasingly ugly. We should maybe consider
creating separate shell scripts for each target..
2019-01-06 23:09:20 +01:00
Ray 85a2cda36d Added raylib-lua-ffi 2019-01-06 21:27:05 +01:00
Ray b0345abd76 Added raylib-chaiscript and node-raylib 2019-01-06 21:22:23 +01:00
Ahmad Fatoum dc415b9a5e Travis CI: emscripten: fix failing CMake install stage 2019-01-06 21:14:46 +01:00
raysan5 1036de389a Some minor tweaks analyzing code
Specific textures generation code is quite redundant and not flexible for the user, I'm trying to figure out some easy way to allow raylib users to do the same without needing those functions (very specific and shader dependant). RenderTexture loading and Cubemap textures support must be improved.
2019-01-06 21:07:09 +01:00
Ahmad Fatoum d3a46cc9d4 Travis CI: s/make/cmake --build/ for msvc compatibility
CMake defaults to generating a Visual Studio build on Windows,
which doesn't involve make. Thus use cmake --build to abstract
that detail away. We already do that in the appveyor.yml.

The install line is a bit hacky: cmake might not be in the search
path when using sudo, thus use "$(which cmake)" to get the path,
sudo doesn't seem to be available on the Travis CI windows
environment, so use $(which sudo) without quotes to expand to
nothing if that's the case...
2019-01-06 20:42:51 +01:00
Ahmad Fatoum 127c44dafe Revert "Update .travis.yml"
This reverts commit 214aa0c1b0.
2019-01-06 19:53:17 +01:00
Ahmad Fatoum 4fb3527aa8 README.md: Change Travis Badge Branch to master
It was develop before, which is no longer used.
2019-01-06 15:55:39 +01:00
raysan5 f4fe7f4d4c Review BRDF texture generation
Actually, that function should be redesigned...
2019-01-06 15:49:29 +01:00
raysan5 5c614f6975 Some code tweaks 2019-01-05 19:24:42 +01:00
raysan5 a41cc08f9b Support screenshots and GIF capturing on Android and Web 2019-01-05 18:03:09 +01:00
raysan5 490e930665 Reviewed example 2019-01-05 17:25:35 +01:00
raysan5 1038e79b36 Corrected issue with text measure on Latin-1 chars
Considering chars inputs come in UTF8 form!
2019-01-05 15:04:18 +01:00
raysan5 0bacc978c3 Corrected issue on web 2019-01-04 15:48:25 +01:00
raysan5 214aa0c1b0 Update .travis.yml 2019-01-03 16:07:51 +01:00
raysan5 34d110bb3e Trying to get Windows build on Travis CI 2019-01-03 15:15:54 +01:00
raysan5 644eddda11 REMOVED: ShowLogo()
Same functionality could be achieved using FLAGS... but also considering removing raylib logo animation...
2019-01-03 13:55:59 +01:00
raysan5 d427f17210 REVIEWED some functions parameters
Decided to allow user to provide values directly instead of requiring a Vector2 struct, probably more confortable to use.

 - SetMousePosition()
 - SetMouseOffset()
 - SetMouseScale()
2019-01-03 13:53:20 +01:00
Ray 0333e5b6c2 Merge pull request #711 from ChrisDill/SetMouseOffset
Added SetMouseOffset
2019-01-03 13:35:28 +01:00
ChrisDill f9c43dc379 Mouse functions changed
- SetMouseScale changed to take in a Vector2.
- Added mouseOffset global which is used in mouse read functions.
2019-01-02 19:09:34 +00:00
raysan5 d2e861fdce Test Windows compilation on Travis CI 2019-01-02 18:00:22 +01:00
Ray 30e79b4727 Merge pull request #708 from BaZom/master
utils: declare funopen only on Android
2019-01-02 17:41:43 +01:00
raysan5 63f9f91ea8 Avoid crashing if music file not loaded 2019-01-02 14:05:20 +01:00
ChrisDill a707574f33 Default mouseScale fixed
- Didn't set X and Y values correctly.
2019-01-02 10:46:19 +00:00
ChrisDill 8933298864 Added SetMouseOffset
- Changed mouseScale to Vector2.
- Added SetMouseOffset to change XY of mouseScale.
2019-01-02 10:14:55 +00:00
raysan5 d5735720b0 Update Makefile for Emscripten 2019-01-01 20:53:30 +01:00
raysan5 9740b1eb70 Update mini_al to latest version (Web Audio / AAudio backends) 2019-01-01 20:52:57 +01:00
Basem Abughallya 9a40529ae7 utils: declare funopen only on Android
funopen is only needed on Android, so declare it
only there. This fixes following MinGW build failure:

utils.c:50:7: error: conflicting types for ‘funopen’
 FILE *funopen(const void *cookie, int (*readfn)(void *, char *, int),
       ^~~~~~~
In file included from utils.c:45:0:
/usr/include/stdio.h:586:7: note: previous declaration of ‘funopen’ was here
 FILE *funopen (const void *__cookie,
       ^~~~~~~
2018-12-29 17:44:47 +01:00
raysan5 d0d99d3503 Corrected issue with MOD/XM loop 2018-12-29 15:07:03 +01:00
raysan5 0619571149 ADDED: DrawTextRec() and example 2018-12-29 14:44:28 +01:00
raysan5 95d3f24c68 Use QUADS for DrawPolyEx() 2018-12-29 00:29:28 +01:00
raysan5 a072385c6d Corrected issue on draws resetting 2018-12-29 00:00:52 +01:00
raysan5 414c3ee1f9 ADDED: DrawTextureQuad()
Useful for tiling and offset parameters definition.
2018-12-26 23:44:16 +01:00
raysan5 91a7b0e5ef Corrected typo 2018-12-26 13:57:10 +01:00
raysan5 01338b0a14 WARNING: BREAKING CHANGE
Added a bunch of useful text management functions.
Consequently, some already available functions like `FormatText()` and `SubText()` has been renamed for consistency. Created temporal fallbacks for old names.
raylib version bumped to 2.3.
2018-12-26 13:26:34 +01:00
raysan5 9a8320c52b REVIEWED: DrawRectanglePro() 2018-12-26 10:51:13 +01:00
raysan5 af4a177af4 Corrected issue with internal buffer
Problem aligning provided vertex data to multiples of four, because main buffer is intended to bu used with indexed quads... but also shared with triangles and lines.
2018-12-26 10:34:45 +01:00
raysan5 7b8965eb38 Support float texture data on OpenGL ES 2.0 2018-12-25 15:19:25 +01:00
raysan5 35a6e9a074 Corrected issue with MOD playing
Despite issue is corrected, now module loop doesn't work...
2018-12-25 15:18:35 +01:00
raysan5 96207a8a02 REVIEWED: LoadFontEx()
Changed parameters order for consistency with LoadFontData() and other functions when an array is passed by parameter and array size is the following parameter.
2018-12-25 15:17:42 +01:00
raysan5 1982eabe6e Some code tweaks 2018-12-24 17:46:23 +01:00
raysan5 7fb2459916 Added some TODO note
OpenGL extensions loading could be improved...
2018-12-24 17:45:34 +01:00
raysan5 47358fe5ce Tweaks to support OpenGL ES 2.0 desktop 2018-12-24 17:09:46 +01:00
raysan5 92f68ac6be Review DrawPolyEx()
Also reviewed rlCheckBufferLimit()
2018-12-24 14:09:51 +01:00
Ray 4ec4dc691f Use stb_vorbis.h as header only 2018-12-21 00:17:44 +01:00
Ray e48f2f9d43 Delete libraylib.a 2018-12-20 12:59:00 +01:00
Ray 87ad244ee0 Exposed LoadFontFromImage() 2018-12-20 12:58:27 +01:00
Ray 5aea693f69 Update models_obj_viewer.c 2018-12-20 11:50:21 +01:00
Ray 788bb78989 Some tweaks 2018-12-20 10:40:28 +01:00
Ray 6ef1e1d938 new example: shaders_raymarching 2018-12-20 09:55:33 +01:00
Ray c053de3c7d new example: models_obj_viewer 2018-12-20 09:52:52 +01:00
Ray b6d2f96645 Corrected issue 2018-12-19 18:08:59 +01:00
Ray af33e3848e Improved BeginScissorMode()
Now rectangle coordinates refer to upper-left corner instead of bottom-left
2018-12-19 17:06:23 +01:00
Ray 49055a9b17 Keep reviewing RPI keyboard input... 2018-12-19 15:31:20 +01:00
Ray 66c360d385 Corrected issue on plane drawing 2018-12-19 11:55:58 +01:00
Ray a22ee0c0e1 Review RPI keyboard inputs -WIP- 2018-12-18 19:11:12 +01:00
Ray 39c05e30d0 Reviewed rlReadTexturePixels() for OpenGL ES 2.0
Now it should work... but this behaviour could be driver dependant...
2018-12-18 18:20:20 +01:00
Ray 2f56119568 Corrected issue when scaling 2018-12-18 18:19:11 +01:00
Ray 965a91cebb Support PIC image format loading 2018-12-18 18:18:40 +01:00
Ray 8f95518858 Reviewed some examples to work on RPI 2018-12-18 17:22:13 +01:00
Ray db96cf4a8b Corrected bug on OpenGL ES quads drawing 2018-12-18 16:52:18 +01:00
Ray 5a9e03fddf Avoid example on Android compilation 2018-12-18 01:00:39 +01:00
Ray f822650a3b Support externally provided compilation flags
Useful in case raylib compilation want to be automated and compilation config flags provided by command line.
2018-12-18 00:20:08 +01:00
Ray fe346fa8d8 Added a possible dependency include path for glfw 2018-12-16 00:44:09 +01:00
Ray f9e4faff09 Review standard lighting sample -WIP-
It's broken.
2018-12-16 00:35:30 +01:00
Ray 7d81e673ed ADDED: GenMeshPoly()
To generate 2D polygonal shape
2018-12-15 23:31:56 +01:00
Ray 4008a075a8 Added scissor functionality
To draw only in defined area of the screen
ADDED: BeginScissorMode(), EndScissorMode()
2018-12-15 23:30:55 +01:00
Ray cbbd67ab5a Some code tweaks
- Reorganized some variables: Not used on OpenGL 1.1
- Now mipmaps can be generated on OpenGL 1.1 backend
- Renamed whiteTexture to defaultTextureId
2018-12-14 10:00:44 +01:00
Ray c0c329b231 Update models_rlgl_solar_system.c 2018-12-12 11:32:11 +01:00
Ray 97e40ced57 WARNING: BIG rewrite of rlgl module
This commit implements a big update of rlgl module, intended to optimize some parts. This change could break some code bases... hopefully not, but it could.
The BIG changes to the module are:
 - Replaced LINES-TRIANGLES-QUADS buffers by a single one, now all vertex data is accumulated on a single buffer and managed with registered draw calls. LINES-TRIANGLES-QUADS could be used the same way as before, rlgl will manage them carefully. That's a big improvement of the system.
 - Support multi-buffering if required. Just define MAX_BATCH_BUFFERING desired size (currently set to 1 batch). Should be enough for most of the situations.
 - Removed temporal accumulative buffers for matrix transformations, now transformations are directly applied to vertex when on rlVertex3f()
 - Reviewed rlPushMatrix()/rlPopMatrix() to be consistent with OpenGL 1.1, probably I should remove that ancient behaviour but... well, it was not consistent and now it is.
 - Minor tweaks: LoadText(), I broke it in last update... also multiple comments reviewed.
 - TODO: MAX_BATCH_ELEMENTS checking should probably be reviewed... done some tests and it works but...
2018-12-11 18:54:48 +01:00
Ray 7361ed24e2 Added support for .otf fonts
stb_truetype supports some .otf fonts, just exposed that functionality.
2018-12-10 00:29:52 +01:00
Ray a8ac6e2ef9 Increase text management buffers size 2018-12-04 13:15:42 +01:00
Ray 4c869ca656 Update CONTRIBUTING.md 2018-12-03 23:44:34 +01:00
Ray 5ef4661216 Comments removed 2018-12-03 16:48:01 +01:00
Ray 8b75a1a990 Improved textures wrap support 2018-12-03 12:00:05 +01:00
Ray f552d43547 Reviewed some comments 2018-12-03 11:24:11 +01:00
Ray 5086c60e2f Replaced #defines by enums 2018-12-03 11:04:32 +01:00
Ray 1774260dab Some tweaks 2018-11-30 01:57:53 +01:00
Ray 874c0910e3 Replaced default release paths 2018-11-28 17:35:42 +01:00
Ray ab0287bd4e Some tweaks to LoadText() 2018-11-28 12:34:03 +01:00
Ray 0bf82ff6f4 free memory for extList 2018-11-27 12:23:41 +01:00
Ray b5c6736592 Reimplement ImageAlphaCrop() 2018-11-27 10:20:41 +01:00
Ray 69ae794465 Updated stb libs to latest version 2018-11-27 09:23:30 +01:00
Ray 456483f104 Allow file download from MEMFS
Support file download to disk from memory filesystem.
2018-11-26 17:16:26 +01:00
Ray 969e48e3dd Enable SDL2 library for audio on Web
Solves audio cracking issues
2018-11-26 17:15:43 +01:00
Ray c6b526de66 Support file drag & drop on Web
Using by default memory filesystem (MEMFS), provided by Emscripten
2018-11-26 17:15:00 +01:00
Ray 2deb35be27 Review emscripten path 2018-11-23 17:03:07 +01:00
Ray bc8d3f30ec Updated to latest mini_al 2018-11-23 17:02:54 +01:00
Ray 83d90c6e49 Review totalSampleCount for OGG and FLAC 2018-11-23 11:58:45 +01:00
Ray ee20ccc86d Create raylib_compile_sources.bat 2018-11-22 12:29:33 +01:00
Ray ab4b0508a2 Added Geany project template for Windows 2018-11-22 11:55:27 +01:00
Ray 98fee844d1 Some tweaks on VSCode
Now it works on Windows for me but there are lots of hardcoded paths around... I don't like it.
2018-11-20 19:02:26 +01:00
Ray 31d0fd820d Avoid program crash on audio device fail 2018-11-20 11:27:10 +01:00
Ray ac23af9bf0 Review resources naming
raylib resource data file for Windows platform (containing raylib icon and metadata for executable file) has been renamed to a more consistent name: raylib.rc.data

Also required to work with tcc compiler.
2018-11-19 15:18:11 +01:00
Ray ed269b8d9a Review RenderTexture drawing usage
Now `BeginTextureMode()` does not clean buffers automatically, that behaviour has been changed because there could be some case (i.e. painting software) where texture buffer does not ned to be cleared; user is responsible of clearing buffers using `ClearBackground()`
2018-11-19 09:40:01 +01:00
Ray 829538249f Merge pull request #683 from iwoplaza/patch-1
Update core.c
2018-11-19 09:27:45 +01:00
Ray fcb2b74342 Corrected issue with MSAA 2018-11-19 09:23:38 +01:00
Ray de02f14283 Updated mini_al 2018-11-17 10:04:12 +01:00
Ray 6351971c7f Corrected typo 2018-11-17 10:03:40 +01:00
Ray c8385aba83 Review SetWindowIcon() 2018-11-17 00:46:42 +01:00
Ray ed9ef642ad Update README.md 2018-11-14 23:24:38 +01:00
Ray ffcd13bd9f Merge pull request #688 from jubalh/master
Check for single apostrophe in OpenURL()
2018-11-13 15:03:24 +01:00
Michael Vetter 8f70c3baed Check for single apostrophe in OpenURL()
When doing a8dffc63fb I was not aware that
printing a warning and not executing the code would be an option. I only
learned that through 618f220851.

So I propose that we allow all URLs except if the string contains a `'`.
Which could end the URL and call another command via `system()`.

Related to https://github.com/raysan5/raylib/issues/686
2018-11-13 10:59:52 +01:00
Ray 618f220851 OpenURL() - Added small security check 2018-11-12 14:59:31 +01:00
Ray d2f4cc1142 Merge pull request #687 from jubalh/openurlwarning
Add warning to OpenURL()
2018-11-12 14:41:36 +01:00
Michael Vetter a8dffc63fb Add warning to OpenURL()
See https://github.com/raysan5/raylib/issues/686
2018-11-12 12:32:41 +01:00
Ray 30a1edd40e Review OpenURL() 2018-11-12 00:34:32 +01:00
Ray 657897b493 Merge pull request #685 from jubalh/master
Improve OpenURL()
2018-11-10 12:04:22 +01:00
Michael Vetter 80dbe636cd core: OpenURL() fix xdg-open call
Calling just `xdg-open` is not right. One needs to pack the URL in `'`.
If we don't do this then some special characters (like ampersand) will
be executed.

Maybe this is true for Windows and Apple case too, but I don't own any
such system. So please merge this, and if it's true for more cases let's
use `sprintf()` in the other cases too.
2018-11-10 08:36:15 +01:00
Michael Vetter 4c83cee810 core: Use dynamic string in OpenURL()
OpenURL() is a function that most games probably will never need.
Wasting 512 bytes to store of a static char to store an the URL is not
wise.

I propose to have it dynamic building the string on the fly.
2018-11-10 08:29:53 +01:00
Ray 5167f78d5f ADDED: OpenURL()
Corrected bug on ImageDrawRectangleLines()
2018-11-09 23:09:02 +01:00
Ray 6428317739 Corrected 1px thick issue 2018-11-07 22:50:27 +01:00
Ray e17bd422fa Corrected issue with line drawing 2018-11-07 22:31:35 +01:00
GoblinBob 8e219272e5 Update core.c
Some projects need the buffer to not be empited when drawing to the render texture. I would suggest making maybe a variation of the function if you'd like to keep backwards compatibility, maybe like: BeginTextureModeNoClear() ?
2018-11-07 21:06:00 +01:00
Ray b356ef5564 Modifies some Image functions
REVIEWED: ImageDrawRectangle()
ADDED: ImageDrawRectangleLines()
2018-11-07 17:58:26 +01:00
Ray 065994219e Review parameter issue with MSVC 2018-11-06 16:11:11 +01:00
Ray ff64e860a1 Minor review 2018-11-06 15:12:01 +01:00
Ray fc1c9505ba Remove end-line spaces 2018-11-06 15:10:50 +01:00
Ray e340517a73 Support custom texture on shapes drawing
By default, internal white texture was used to draw most of the shapes; some time ago, support for white font character from default internal font was added. That way, all basic drawing (shapes, text) could be performed without a texture change and in a single drawing pass.

Now, we move a step further and we allow configuring the texture (and rectangle) used to do the shapes drawing.
2018-11-06 15:06:01 +01:00
Ray c79b342f0b Corrected issue with sampleCount 2018-11-05 10:22:59 +01:00
Ray 0f6f326a86 Add flag: SUPPORT_EVENTS_WAITING
Wait for input events passively (sleep) instead of polling events actively every frame
2018-10-31 23:19:29 +01:00
Ray f7667aad8d Reviewed audio issues
- Updated dr_mp3 and implemented it
- Reviewed sampleCount vs frameCount
- Reviewed XM playing (some weird things...)
2018-10-31 17:04:24 +01:00
Ray b051f7778f Corrected typo 2018-10-29 16:39:54 +01:00
Ray 298203a41a ADDED: Some functions...
text:     IsEqualText() -WIP-
audio:  SaveWAV()
audio:  ExportWaveAsCode()
textures:  ExportImageAsCode()
2018-10-29 16:18:06 +01:00
Ray 78064dee09 Merge pull request #676 from jubalh/pathdefines
Pathdefines
2018-10-25 16:45:30 +02:00
Michael Vetter b13c9716e4 Fix GetDirectoryFiles description
The comment sais it allows max 256 files, but the MAX_DIRECTORY_FILES
define actually is set to 512.
2018-10-25 16:18:44 +02:00
Michael Vetter 65b5de962d Use seperate blog for MAX_FILEPATH_LENGTH define
Let's have a seperate if linux block for this. Since we will need to
define MAX_FILEPATH_LENGTH for all other cases. And its more readable
like this.
2018-10-25 16:16:44 +02:00
Michael Vetter 9bad248b54 Use filepath define
On Linux systems the length of the path is defined in linux/limits.h as
PATH_MAX.
Lets use that for MAX_FILEPATH_LENGTH, which is a define that we can
find in some comments in the code that is actually never used. Instead
often we see 256 handwritten.
So lets have MAX_FILEPATH_LENGTH as a proper define, being set to
PATH_MAX on Linux and to 256 on Windows systems.
2018-10-25 16:09:38 +02:00
Ray 0f0d271a85 Merge pull request #675 from MurrayIRC/master
VSCode Project Updates
2018-10-24 23:12:04 +02:00
Ray fc6f5a92f3 Reviewed functions definition 2018-10-24 22:24:59 +02:00
Murray Campbell bcbe042dd2 Merge pull request #8 from MurrayIRC/vscode-updates
Vscode updates
2018-10-24 14:37:42 -05:00
Murray Campbell d916ac9b5d Update Makefile 2018-10-24 14:36:57 -05:00
Murray Campbell 411b2827a8 Update tasks.json 2018-10-24 14:35:51 -05:00
Murray Campbell 5b0ab656f1 Update launch.json 2018-10-24 14:35:03 -05:00
Murray Campbell 03fb5499a0 Merge pull request #7 from raysan5/master
pull
2018-10-24 14:33:53 -05:00
Ray 72431c6c36 Code tweaks 2018-10-24 13:45:17 +02:00
Ray 550dd40cb3 ADDED: SplitText() function 2018-10-23 15:43:19 +02:00
Ray b5bcf2c934 Review code formatting for RPI inputs 2018-10-22 11:48:16 +02:00
Ray 0694caaa22 Merge pull request #674 from Berni8k/master
Added RaspberryPi option to ignore duplicate touchscreens (Default on)
2018-10-22 09:23:17 +02:00
Berni8k 3d825eb973 Added RaspberryPi option to ignore duplicate touchscreens (On by default) 2018-10-21 15:06:40 +01:00
Ray 804b291ff1 Merge pull request #673 from Berni8k/master
Added multitouch example
2018-10-21 11:38:44 +02:00
Berni8k 7a712d00e6 Added multitouch example 2018-10-21 10:10:50 +01:00
Ray 30f2483bdb Merge pull request #672 from Berni8k/master
RaspberryPi Mouse and touch overhaul
2018-10-21 09:56:26 +02:00
Berni8k e07ec6a2e8 Overhaul mouse and touch for RaspberryPi \n\nNow all '/dev/input/event*' devices are now used for input. No longer uses '/dev/input/mouse*', keyboard and gamepad continue to use existing method\nMultitouch is now supported on RPi with 10 point multitouch\nFixed bugs with IsMouseButtonPressed(Used to constantly fire when holding button) and GetMouseWheelMove(Did not work)\n Fixed exesive CPU usage of GamepadThread 2018-10-21 00:09:17 +01:00
Ray bd383fe219 Tweak for OpenGL 2.1
Why am I still supporting this???
2018-10-20 12:48:03 +02:00
Berni8k 464a559020 Merge pull request #1 from raysan5/master
Update
2018-10-20 12:34:40 +02:00
Ray 161b18edea Reviewed possible issue with external libs 2018-10-20 12:30:37 +02:00
Ray 1f4866276a Corrected typo 2018-10-19 21:50:50 +02:00
Ray 16914dfaa2 Reviewed possible issue with...
...disposing RenderTexture.
2018-10-19 21:40:34 +02:00
Ray 2759218368 Added comment on issue 2018-10-19 16:17:44 +02:00
Ray fa5cebdfd2 Comment tweak 2018-10-19 16:17:29 +02:00
Ray 3b674cd281 Some security checks on font loading 2018-10-18 17:48:33 +02:00
Ray 764766bfb2 Some formatting tweaks 2018-10-18 16:00:11 +02:00
Ray 1dba2788bb Merge pull request #669 from dj0nes/master
Remove non-Windows includes from Makefile
2018-10-18 13:49:33 +02:00
Dillon Jones 59bbad9360 Remove non-Windows includes from Makefile 2018-10-18 07:31:22 -04:00
Ray c2aa1fed7b Removed OpenAL backend 2018-10-18 11:38:42 +02:00
Ray 8bac72f4fa Working on MP3 loading
Loading full mp3 file works but loading for music streaming does not work, it seems total number of samples is not obtained correctly from mp3 file...
2018-10-17 19:39:16 +02:00
Ray 8a88e65a94 Update src/external/dr_mp3.h 2018-10-17 19:37:53 +02:00
Ray b8b8936cd7 Review defines 2018-10-16 10:53:01 +02:00
Ray f566173927 Merge pull request #664 from ChrisDill/master
Update .gitignore
2018-10-16 10:38:40 +02:00
Ray d1c4a4f873 Merge pull request #663 from jubalh/fileexists
Add FileExists() function
2018-10-16 10:38:09 +02:00
ChrisDill a7a70004f1 Update .gitignore
- Ignore files in Debug.DLL from building VS2017 project.
2018-10-15 15:19:58 +01:00
Michael Vetter d8331bde3a Add FileExists() function 2018-10-14 14:21:02 +02:00
raysan5 e371609a12 Merge branch 'master' of https://github.com/raysan5/raylib 2018-10-13 16:31:22 +02:00
raysan5 68d2b0c071 Corrected description 2018-10-13 16:30:44 +02:00
Ray e9f3f6347f Update LICENSE.md 2018-10-13 16:03:42 +02:00
raysan5 cd6c362485 Corrected func name typo 2018-10-13 16:00:54 +02:00
raysan5 c7b601b624 Renamed new PR function
RENAME: GetLastWriteTime() to GetFileModTime()
2018-10-13 15:59:17 +02:00
Ray fc4e9e7a37 Merge pull request #661 from ChrisDill/master
Added GetLastWriteTime to allow for file reloading
2018-10-13 15:53:02 +02:00
ChrisDill c2b36af60f Added GetLastWriteTime to allow for file reloading
- Added a function to get the last write time of a file. I used this so I can reload files or resources if the time since they were last loaded changes.
2018-10-12 13:53:36 +01:00
Ahmad Fatoum 5945805b15 CMake: remove erroneous status message
OPENGL_VERSION is the version requested by the user,
not the detected one...
2018-10-11 13:52:25 +02:00
Ahmad Fatoum 9b25da5f98 CMake: Fix build breakage trying to set OpenGL version
Fixes #660.
2018-10-11 13:41:47 +02:00
Ray 9ac5a8b1a0 Update CONTRIBUTING.md 2018-10-11 13:38:03 +02:00
Ray c7c6d1ed4e Update CONTRIBUTING.md 2018-10-11 10:54:27 +02:00
Ray 43b4d25a7f Update CONTRIBUTING.md 2018-10-11 10:53:19 +02:00
Ray 13844df2ea Review raylib bindings 2018-10-11 10:49:28 +02:00
Ray a12cafe84d Merge pull request #659 from noshbar/text-memory-leak
Fixes memory leak in text.c
2018-10-11 00:21:25 +02:00
Ray 126ab49221 Minor tweaks 2018-10-10 23:55:36 +02:00
Ray 64778e8cd8 Merge pull request #657 from noshbar/minor-game-fixes
3 minor sample game cleanups:
2018-10-10 23:46:59 +02:00
Ray b8b8e6ab7d Merge pull request #656 from noshbar/vs2017-fix
Physac.h fix for variable array size declaration.
2018-10-10 23:44:20 +02:00
Ray 4a4efaa25e Merge pull request #658 from noshbar/incorrect-GenImageFontAtlas-def
GenImageFontAtlas prototype in raylib.h is incorrect.
2018-10-10 23:44:08 +02:00
noshbar ec6b21bd91 Fixes memory leak in text.c
GenImageFontAtlas() allocates an array of stbrp_rect for the packing functions, but it never frees them.
2018-10-10 22:41:20 +02:00
noshbar ccaf462cbf GenImageFontAtlas prototype in raylib.h is incorrect.
The prototype of GenImageFontAtlas() in the main raylib.h header has a set of swapped parameter names.
Going through the usage of the function within raylib itself, it appears as if the correct order is:
1) charsCount
2) fontSize

However, it's exposed to the world as the other way around, which may cause some major confusion.
2018-10-10 22:28:17 +02:00
noshbar 1d548eaa4b 3 minor sample game cleanups:
* changed bitwise & to logical &&
* removed redundant state check
* moved a strcpy inside a NULL check to prevent a crash.
  NOTE: nothing sensible will happen as a result, but no crash at least.
2018-10-10 22:05:13 +02:00
noshbar 7f7f3b7cd5 Physac.h fix for variable array size declaration.
Generating the projects using CMake, targeting VS2017, results in an error when compiling.
This is due to physac.h trying to make a 'vertices' array of size 'int count', making it const does not work, either.

This changes the static declaration to a malloc/free combo.

Tested using the physics-demo.
2018-10-10 21:52:50 +02:00
Ray f238b9ea3c Small tweak to avoid warning 2018-10-10 12:31:55 +02:00
Ray a511337ce8 ADDED: GetFileNameWithoutExt 2018-10-10 12:01:59 +02:00
Ray 555fdec958 Corrected issues with VS2017 compilation 2018-10-09 00:20:39 +02:00
Ray 2320c2febf ADDED: ImageExtractPalette() 2018-10-08 18:57:33 +02:00
Ray 4f5937e89b OSX native window keeps breaking... 2018-10-08 18:51:41 +02:00
Ray 717cf77129 Corrected issue with dirent.h inclusion...
...and MacOSX OBJC types definition...
2018-10-08 18:38:39 +02:00
Ray 2652e7d1c1 Avoid multiple gl.h inclusions
Expose native Cocoa Window again...
2018-10-08 18:08:39 +02:00
Ray 81d28c5784 dirent.h implementation for MSVC
This implementation is a bit limited, does not support wide characters directories but it's a temporal solution...

This solution uses "io.h" (like MinGW provided one) while other modern solutions use the "windows.h", that result in duplicate symbols issues... need to review it carefully.
2018-10-08 16:55:01 +02:00
Ray 6e4bd60978 Trying to include dirent.h for MSVC 2018-10-08 16:25:47 +02:00
Ray 2d324f22a7 Corrected issue with native window handler on OSX
Could not be retrieved for now...
2018-10-08 16:12:09 +02:00
Ray 97f6454982 Corrected issue with native handler on OSX 2018-10-08 13:29:42 +02:00
Ray ca1e309d9d Corrected issue with GetWindowHandle()
Not supported for the moment, issues with Linux (symbol `Font` redefined) and OSX (NSGL type redefined)
2018-10-08 13:14:15 +02:00
Ray 2feea87b61 Multiple changes, check description
REVIEW: Reorganized global variables for consistency
ADDED: GetWindowHandle() to get native window handle
ADDED: GetDirectoryFiles() to get files list for a DIR
2018-10-08 12:29:02 +02:00
Ahmad Fatoum 46c0e73c6c README.md: add link to raylib bindings list 2018-10-07 21:54:14 +02:00
Ahmad Fatoum c4b7d17516 CMake: report what kind of libraries will be built 2018-10-07 21:34:19 +02:00
Ahmad Fatoum 2981713e4f CMake: accept standard -DBUILD_SHARED_LIBS as well
-DBUILD_SHARED_LIBS=OFF == -DSHARED=OFF -DSTATIC=ON
-DBUILD_SHARED_LIBS=ON  == -DSHARED=ON  -DSTATIC=OFF

Fixes #626.
2018-10-07 21:34:18 +02:00
Ray 93f68fa612 Merge pull request #655 from a3f/master
core: workaround window not being rendered till moved on macOS Mojave
2018-10-07 09:16:54 +02:00
Ahmad Fatoum 1fe6d9fc06 core: workaround window not being rendered till moved on macOS Mojave
Apple ought to fix their OpenGL implementation, but with OpenGL now
deprecated this might not happen.

This has been reported upstream in GLFW in glfw/glfw#1334.
The workaround comes from kovidgoyal/kitty@b82e74f99

This also fixes the HiDPI (Retina) scaling issues reported in #497,
so the workaround is enabled anywhere __APPLE__ is defined.
2018-10-07 02:14:30 +02:00
Ahmad Fatoum 6572d5ff8c raylib.h: include <stdbool.h> if available
Previously, if <raylib.h> was #included prior to another header that
defined bool, the compilation would fail.
This is e.g. the case for <perl.h> and <objc/objc.h> which both fall
back to the <stdbool.h> if C99 is available.

The following commit includes <objc/objc.h> in src/core.c, which causes
the same problem.

Avoid this by checking for C99 bool like we already do for C++'s.
2018-10-07 00:39:51 +02:00
Ahmad Fatoum a56b3c2194 CMake: suppress OpenGL deprecation warnings on macOS Mojave
A single warning at configuration time is enough.
2018-10-07 00:33:05 +02:00
Ray 35ee4fa685 Merge pull request #653 from pamarcos/physac_fix
[physac] Fix physac's fixed time step
2018-10-04 21:21:28 +02:00
Pablo Marcos Oltra 35634f37c8 Fix physac's fixed time step 2018-10-04 18:29:50 +02:00
Ray 589152b658 Review void pointer incrementation 2018-10-01 15:45:01 +02:00
Ray d67edb591a Support KXT image file export
[textures] Added SaveKTX()
[rlgl] Exposed rlGetGlTextureFormats()
2018-10-01 15:30:48 +02:00
Ray ecb787d76f Update version number (internally) 2018-10-01 15:29:34 +02:00
Ray 47fab2f54d Merge pull request #650 from ChrisDill/master
Added monitor functions
2018-09-30 16:43:09 +02:00
ChrisDill 67dc50ef00 Changed monitor functions to use a index
- Using same idea as SetWindowMonitor to take in a index with 0 being the primary monitor.
2018-09-30 15:20:02 +01:00
ChrisDill 6b84b76b70 Forgot #else in platform check
- Added else so return not compiled twice.
2018-09-29 14:28:07 +01:00
ChrisDill ed95337eb8 Added platform check
- Added PLATFORM_DESKTOP check for Monitor functions to try to fix issue on android.
- Not sure what return types should be when not on desktop. Added rough guess for now.
2018-09-29 14:10:29 +01:00
ChrisDill ed79d53e1a Changed tabs to spaces
- Fixed tabs used instead of 4 spaces
2018-09-27 16:23:11 +01:00
ChrisDill 73701c12b2 Merge remote-tracking branch 'upstream/master' 2018-09-27 15:54:02 +01:00
ChrisDill 1836e02c1e Added monitor functions
- Get number of monitors
- Get size, physical size and name of primary monitor. Could pass monitor id instead not sure.
2018-09-27 15:52:56 +01:00
Ray 29eddb9ff3 Updated icon data 2018-09-26 16:02:42 +02:00
Ray abfbc42df7 PNG image size optimization 2018-09-25 12:53:31 +02:00
Ray d1e5b4b546 New icon generation
Size reduced 91%
2018-09-25 10:41:15 +02:00
raysan5 756065d42c Review iconography
WIP
2018-09-24 14:21:31 +02:00
Ray 9e046a4293 Merge pull request #646 from MurrayIRC/master
Linux Support for VSCode Project
2018-09-22 09:40:34 +02:00
Murray Campbell 9c6a98aa61 Merge pull request #6 from MurrayIRC/MurrayIRC-vscode
Linux Support for VSCode Project
2018-09-21 18:19:48 -05:00
Murray Campbell d17c323f98 Update tasks.json 2018-09-21 18:18:38 -05:00
Murray Campbell 65c74c7cfa Update c_cpp_properties.json 2018-09-21 18:16:27 -05:00
Murray Campbell 46b171a80c Update Makefile 2018-09-21 18:12:11 -05:00
Murray Campbell 4757ead493 Update launch.json 2018-09-21 18:10:50 -05:00
Murray Campbell c015529088 Merge pull request #5 from raysan5/master
merge
2018-09-21 18:09:53 -05:00
Ray 9efe5c6802 Support MP3 wave loading -NOT TESTED- 2018-09-19 15:57:46 +02:00
Ray be599a9ece enjoy! 2018-09-18 21:34:02 +02:00
Ray 27c3afd91c enjoy! 2018-09-18 21:30:52 +02:00
Ray 2bd18ab91e Support ExportImage() as raw pixel data
Added note on KTX 2.2
2018-09-17 19:00:51 +02:00
Ray f503fded67 Support image export 2018-09-17 17:06:58 +02:00
Ray ec5c9686b3 Improved data export capabilities!
REVIEWED: ExportImage()
REVIEWED: ExportMesh()
ADDED: ExportWave()
REMOVED: Internal funcs: SavePNG(), SaveBMP()

NOTE: These changes break the API (parameters order)
2018-09-17 16:56:02 +02:00
Ray 3a1a489545 Removed TABS 2018-09-14 13:00:48 +02:00
Ray 5b09630d45 Update mini_al to v0.8.8
Some minor tweaks around
2018-09-14 12:47:31 +02:00
Ray f32e23c11b Merge pull request #641 from ChrisDill/master
Added a few missing functions to raymath
2018-09-13 12:51:45 +02:00
ChrisDill 1e1bbaa40b Added a few missing functions to raymath
- Added Vector2MultiplyV
- Added Vector2DivideV
- Added Vector3Divide
- Added Vector3DivideV
2018-09-13 11:43:10 +01:00
Ray 37acf0aa22 Update README.md 2018-09-09 17:36:24 +02:00
Ray 1ef715ab76 Merge pull request #639 from ratkingsminion/patch-1
Update models.c
2018-09-06 22:47:24 +02:00
F.H 9f1489dc1d Update models.c
fix bug with GenMeshPlane() creating too many vertices/texcoords/normals for the plane mesh
2018-09-06 21:11:00 +02:00
Ray dfb8837c46 Support aliased font texture generation
Useful for bitmaps pixelated fonts where anti-aliasing is not desired!
Change also enables additional font generation mechanisms in a future (cleartype, hinting...).
2018-09-06 16:56:21 +02:00
Ray 1fcb3c0317 Started working on IQM/glTF loaders 2018-09-05 10:59:05 +02:00
Ray 10c22c8d61 Review example to show text tinting 2018-09-05 10:48:33 +02:00
Ray ac31f51c5e Corrected issue with font tint 2018-09-05 10:47:57 +02:00
Ray d0608b031a Corrected issue with types 2018-09-05 10:47:40 +02:00
Ray 57dfe55759 Merge pull request #637 from MurrayIRC/master
Updated VSCode project to support OSX building / debugging.
2018-08-30 18:41:21 +02:00
Murray Campbell f97bb085bf Merge pull request #4 from MurrayIRC/patch-4
Added OSX build tasks
2018-08-30 09:50:09 -05:00
Murray Campbell ea84cce27d Merge pull request #3 from MurrayIRC/patch-3
Added OSX launch configurations for debug and release
2018-08-30 09:49:23 -05:00
Murray Campbell 1feb68baaa Merge pull request #2 from MurrayIRC/patch-2
Fixed included libs for OSX
2018-08-30 09:47:27 -05:00
Murray Campbell be29c13bfd Merge pull request #1 from MurrayIRC/patch-1
Added a configuration for OSX
2018-08-30 09:46:51 -05:00
Murray Campbell 04c4537283 Update README.md 2018-08-30 09:43:53 -05:00
Murray Campbell 921e4eaa87 Added OSX build tasks
Users will have to specify their personal installation of raylib.
2018-08-30 09:42:33 -05:00
Murray Campbell 1608745312 Added OSX launch configurations for debug and release 2018-08-30 09:40:58 -05:00
Murray Campbell 166fdbe9c0 Fixed included libs for OSX
This was causing linker errors on OSX
2018-08-30 09:33:41 -05:00
Murray Campbell 5eded83d68 Added a configuration for OSX
This requires the user to explicitly specify the path to their raylib folder. We need a better way around this (something like what we do for windows would help).
2018-08-30 09:29:37 -05:00
raysan5 adf08c88ea Added link to raylib-haskell binding 2018-08-25 18:47:05 +02:00
raysan5 d6241d18ab Removed release directory
With the CI system, release directory has not much sense, actually,
every new commit it gets outdated and latest stable release is already
available in GitHub Release tab.
2018-08-25 18:33:28 +02:00
raysan5 207b5a26b1 Create release directory if not exist 2018-08-25 18:25:51 +02:00
raysan5 ba257bc447 Support autosave also on C compilation 2018-08-25 18:07:08 +02:00
raysan5 a2de3d99e0 Updated compilation script to save file automatically 2018-08-25 18:06:13 +02:00
raysan5 af919e5c9f Review naming to follow raylib conventions
strprbrk() does not follow raylib function name convention but as it is
very similar to the standard strpbrk(), we'll keep the naming... also,
don't like to mix static functions with API functions but as strprbrk()
is just used in the two functions below, it's ok to be there... maybe it
could be refactored in a future or even move the logic inside the
required functions...
2018-08-25 17:55:25 +02:00
Ray fe2f8d77a9 Merge pull request #635 from a3f/master
core: Support slashes as well in GetFileName & GetDirectoryPath
2018-08-25 10:51:31 +02:00
Ahmad Fatoum 85213795d1 GetDirectoryPath: return NULL, don't crash when no slash
Noted in #634.
2018-08-25 09:27:41 +02:00
Ahmad Fatoum 5dda105a79 core: Support slashes as well in GetFileName & GetDirectoryPath
Fixes #634.
2018-08-25 09:23:40 +02:00
Ray 4259ff78e1 Merge pull request #633 from unequaled86/patch-1
lerp for vector2 and float
2018-08-21 16:29:10 +02:00
Oğuzhan Çankaya 2bef76735d lerp for vector2 and float 2018-08-21 04:14:43 +03:00
Ray 20656af122 Merge pull request #631 from sunshinehunter/patch-1
Fixes path to rlgl.h in README.md
2018-08-20 15:44:45 +02:00
sunshinehunter 04a11c86e3 Fixes path to rlgl.h in README.md
The link to rlgl in the README was broken, it previously pointed to a .c file which doesn't exist (anymore).
2018-08-20 13:38:01 +02:00
Ray 0e340f7116 Merge pull request #629 from justinclift/keyboard_keys_v2
Add the remaining numeric keypad keys, and a few other missing ones
2018-08-19 19:30:19 +02:00
Justin Clift 699cadcf98 Add the remaining numeric keypad keys, and a few other missing ones 2018-08-19 18:00:16 +01:00
Ray d52b6c23ee Merge pull request #628 from justinclift/keyboard_keys_v1
Add the plus and minus keys on both the main keyboard and keypad
2018-08-19 17:58:01 +02:00
Justin Clift 6a5dbeace8 Add the plus and minus keys on both the main keyboard and keypad 2018-08-19 14:40:30 +01:00
Ray 506b7b8d7c Corrected issue with batch overflows
When a batch reach its vertex limit, a draw call is issued and batch restarted for refilling but if the draw call was issued for vertex data accumulated inside rlPushMatrix/rlPopMatrix, draw call was issued before the rlPopMatrix, consequently modelview matrix was not properly recovered before the draw call... obviously, it only happened the following draw calls, not the first one...

Now it works ok but this system needs to reviewed, noticed and important frames drop when processing around 20 dynamic batch draw calls, it means filling MAX_QUADS_BATCH (8192) quads of data 20 times per frame, including data updating and sending for draw processing.

Doing some maths, it means:
Vertex data (float) -----> 8192 quads * 4 vertex * 3 comp * 4 byte = 393216 bytes
Texcoords data (float) -> 8192 quads * 4 vertex * 2 comp * 4 byte = 262144 bytes
Color data (uchar) -----> 8192 quads * 4 vertex * 4 comp * 1 byte = 131072 bytes

Thats a total of 786432 bytes (0.75MB) sent to GPU 20 times per frame for processing... I'm testing in an Intel HD Graphics integrated, I imagine is too much data to be sent and and it causes stalls, so the frames drop...
2018-08-17 13:55:46 +02:00
Ray 732b775a1d Proper variables initialization 2018-08-17 11:41:49 +02:00
Ray 4c84208644 Working on batch reset issue
Corrected memory leak!
2018-08-17 01:34:45 +02:00
Ray eef44fd930 Merge pull request #625 from ChrisDill/master
Raymath dllexport fix
2018-08-16 23:04:17 +02:00
ChrisDill c669c6762f Improved raymath defines
- Using raylib.h as reference, added define checks for BUILD_LIBTYPE_SHARED and USE_LIBTYPE_SHARED.
2018-08-16 18:20:49 +01:00
ChrisDill a187361c6f Raymath dllexport fix if _WIN32 defined
- Added check for dllexport to compile if _WIN32 defined.
- If not defined then use the original RMDEF.
2018-08-16 12:54:45 +01:00
ChrisDill 42b52ecdb1 Raymath dllexport fix
- Added __declspec(dllexport) to RMDEF in raymath.h. This allows them to be accessed when importing from raylib.dll.
2018-08-16 11:29:30 +01:00
Ray e4f74e85a4 Merge pull request #624 from ChrisDill/master
Added Sublime Text 3 project template
2018-08-15 16:04:21 +02:00
ChrisDill a23feee6f3 Added Sublime Text 3 project template
- Added Sublime Text project file.
- Added Sublime Text build system.
2018-08-15 11:38:38 +01:00
Ray 46411e1c55 Renamed n-patch sample 2018-08-14 19:26:50 +02:00
Ray b88bfa7267 Review PR formatting 2018-08-14 09:57:31 +02:00
Ray 20ff9dc663 Merge pull request #622 from Joefish/rectcollision-optim
Shapes: Simplifies CheckCollisionRecs
2018-08-14 09:55:53 +02:00
Ray 477928dd0f Merge pull request #623 from Joefish/snake-fix
Games: Fixes bugs in Snake
2018-08-14 09:47:15 +02:00
Joseph-Eugene Winzer 1cef8ea1bf Shapes: Simplifies CheckCollisionRecs
By comparing the edges of the rectangles relative to each other we can
determine if they intersect or not.
2018-08-14 00:14:06 +02:00
Joseph-Eugene Winzer ab7acd6e34 Games: Snake: Fixes snake head collision with fruit
CheckCollisionRecs() returns true on edge-collision what means that the
snake eats the fruit when colliding with it but also when sliding by one
unit above or below the fruit.
2018-08-13 23:58:42 +02:00
Joseph-Eugene Winzer b4c02d94a0 Games: Snake: Fixes fruit spawn position
If the initial fruit position collides with the snake's body a new
position for the fruit is generated but without adding the grid offset.
2018-08-13 23:52:18 +02:00
Ray 34493ed231 Merge pull request #620 from mackron/dr/mini_al
Update mini_al to 0.8.5.
2018-08-13 17:11:39 +02:00
David Reid 3200b23469 Update mini_al.
This should improve the Raspberry Pi experience.
2018-08-12 13:45:12 +10:00
Ray 00f5f2ead2 Merge pull request #616 from overdev/master
[Feature Request] 9-patch drawing function
2018-08-09 22:42:05 +02:00
Jorge A. Gomes dab78d59f3 Update textures.c
See raylib/examples/textures/textures_image_9patch.c for how to use `DrawTextureNPatch` function.
2018-08-08 16:42:39 -03:00
Jorge A. Gomes 5f89e35d1c Update raylib.h 2018-08-08 16:39:10 -03:00
Jorge A. Gomes 921cacacfb Added example screenshot. 2018-08-08 16:26:51 -03:00
Jorge A. Gomes 051cf1346b Added texture_image_9patch.c example 2018-08-08 16:22:51 -03:00
Jorge A. Gomes 34c3ae5ab3 Added 9-patch texture used in the example code. 2018-08-08 16:21:33 -03:00
Ray 7634cbeb22 Updated mini_al
Corrected issue with sound playing (pop sound at the end)
2018-08-08 18:26:05 +02:00
Ray aa1bb1e33d Update CONTRIBUTING.md 2018-08-07 19:18:22 +02:00
Ray 06be400ca3 Reviewed AnimatedModel struct
Just reviewing for a possible adaptation of AnimatedModel to default raylib Model...
2018-08-07 11:31:32 +02:00
Ray b042fe12e6 Reviewed spacings on latest PR 2018-08-06 20:49:47 +02:00
Ray 61b32e45ed Merge pull request #618 from kimkulling/fix_compiler_warnings
Fix compiler warnings
2018-08-06 20:43:28 +02:00
Kim Kulling f5f7ed79b8 Fix compiler warnings of lib 2018-08-05 23:53:34 +02:00
Kim Kulling b2cac82fa0 Fix compiler warings in texture.c and more. 2018-08-05 00:34:35 +02:00
Kim Kulling ecf8bff4aa Fix compiler warnings, first part 2018-08-04 10:32:16 +02:00
Jorge A. Gomes 28424141f0 Update textures.c
Added support form vertical and horizontal 3-patches.
Corrected the distortion caused when destRec size is smaller than 4x4. Now even 1x10 or 0x0 sizes are drawn correctly.
2018-08-03 20:53:15 -03:00
Jorge A. Gomes 6ef03ea4e8 Update raylib.h
Added support form vertical and horizontal 3-patches.
Corrected the distortion caused when destRec size is smaller than 4x4. Now even 1x10 or 0x0 sizes are drawn correctly.
2018-08-03 20:50:13 -03:00
Ray d4bb444fe5 Merge pull request #609 from pamarcos/fix_physac_examples
[physac] Fix Physac examples to be run without creating new thread
2018-08-03 12:47:53 +02:00
Jorge A. Gomes 7cc2a5585b Update textures.c
Added DrawNinePatch() function implementation.
2018-08-03 04:51:26 -03:00
Jorge A. Gomes c9ca14e659 Update raylib.h
Added NinePatch struc definition and function prototype.
2018-08-03 04:48:46 -03:00
Ray d999e5a016 Added VSCode project template 2018-07-31 11:26:52 +02:00
Ray b6f2fb613e Merge pull request #612 from ethan-tqa/master
fix problem when compiling with MSVC 2017, error C2177
2018-07-30 13:56:28 +02:00
Ethan Trịnh 6ea8c62b43 make sure that the constant is of float type, not double 2018-07-30 19:35:13 +08:00
Ethan Trịnh 741513842a fix problem when compiling with MSVC 2017, built-in CMake: C2177 constant too big 2018-07-30 19:02:20 +08:00
Ahmad Fatoum 8bea6abe8c Add CMake entry to projects/README.md 2018-07-30 12:24:04 +02:00
Ahmad Fatoum 286c41af52 Sync with upstream GLFW pull request
The GLFW tree distributed with raylib has two modifications:

- GLFW_PKG_{DEPS,LIBS} are exported to PARENT_SCOPE, so we can use them
  in our pkg-config file
- An intermediary glfw_objlib target is added, so we can reexport GLFW
  symbols from libraylib.a

rglfw can fix the second point, but for Wayland usage, we would have to
replicate protocol generation, so we just leverage GLFW's existing
support instead.

To make maintenance easier, I have submitted a pull request for
including these modifications to upstream GLFW.
And to make that one easier, this patch dog-foods the modifications,
so raylib users can help find regressions. :-)

glfw/glfw#1307
2018-07-29 23:56:16 +02:00
Ray 7154a83313 Merge pull request #610 from pamarcos/fix_chdir_macos
[games] Prevent GLFW changing working dir to 'Resources'
2018-07-29 23:40:13 +02:00
Pablo Marcos Oltra 907e27ef4e Fix Physac examples to be run without creating new thread 2018-07-29 21:32:39 +02:00
Ahmad Fatoum 78487f7521 CMake: Make the raylib project as a whole embeddable
So user code can use add_subdirectory to build it (similar to what we do
with GLFW or what the projects/CMake/CMakeLists.txt can do).
2018-07-29 21:28:23 +02:00
Pablo Marcos Oltra 89cec68565 Prevent GLFW changing working dir to 'Resources' 2018-07-29 18:38:31 +02:00
Ahmad Fatoum e82505b873 Add projects/CMake example
The CMakeLists.txt checks for an installed raylib and downloads and
installs one if none is found. Afterwards, it builds core_basic_window.c
2018-07-29 18:27:59 +02:00
Ahmad Fatoum 548dbeb1ca Fix typo (s/proedural/procedural) 2018-07-29 13:04:16 +02:00
Ahmad Fatoum 6905a875ed Merge pull request #608 from a3f/master
CMake: Major cleanup to support find_package(raylib)
2018-07-29 12:56:19 +02:00
Ahmad Fatoum 5a94a280d0 CMake: include rlgl_standalone in -DBUILD_EXAMPLES
With the recent CMake cleanup, getting raylib's dependencies for use
when building rlgl_standalone is quite straight forward, so lets enable
it again.

Fixes #508, just properly this time. :)
2018-07-29 12:35:36 +02:00
Ahmad Fatoum 2ae6df47fc CMake: Set -DMACOS_FATLIB=OFF by default
Homebrew doesn't ship 32-bit libraries anymore, so using both
-DUSE_EXTERNAL_GLFW and -DMACOS_FATLIB with a Homebrew GLFW would fail.
With -DUSE_EXTERNAL_GLFW=OFF, this is not a problem, but I think keeping
it off by default makes more sense. If someone wants universal
libraries, they can just toggle it.
2018-07-29 12:35:36 +02:00
Ahmad Fatoum 4d209d45aa core: Don't use GLFW_TRANSPARENT_FRAMEBUFFER with older GLFWs
PLATFORM_WEB is not the only platform that doesn't define
GLFW_TRANSPARENT_FRAMEBUFFER, it's also recent enough that it's not
included in the most recent GLFW 3.2.1 release, so this error can creep
up when using USE_EXTERNAL_GLFW.
2018-07-29 12:35:36 +02:00
Ahmad Fatoum 3f09726331 CMake: Major cleanup to support find_package(raylib)
Remove that link_libraries_to_executable() hack and defines a proper
raylib target that can be used with target_link_libraries.

The same target is also available for external (user) code by using
find_package(raylib).

This results in:

- Remove hardcoded build directories from examples and games CMakeLists.txt
- Allow rlgl_standalone and other special examples to be built easily
- Allow CMake projects to find_package(raylib instead of fiddling with pkg-config
- Makes code a little more maintainable
- Fixes #471, #606.
- Makes code less confusing by removing the double use of PLATFORM (#584).

Note that this is still not _The Right Way_(TM), because normally
raylib-config.cmake (or its includes) would be automatically generated.
I didn't manage to get that to work though, so I went the easier route
of just wrapping pkg_check_modules for consumption by find_package.
2018-07-29 12:35:35 +02:00
Ahmad Fatoum 3e5093eab0 CI: Build with all optional formats enabled
also makes one configuration shared-only

dr_flac is not built on i386, because GCC 4.8 complains about asm("cpuid"
clobbering ebx, as it's using ebx for PIC.

Instead of downloading a newer GCC (and multilib),
disable FLAC for that one configuration...
2018-07-29 12:13:01 +02:00
Ahmad Fatoum 69e147417b Travis CI: Add OpenAL-Configuration 2018-07-29 12:13:00 +02:00
Ray cf021e3811 Merge pull request #607 from jubalh/fixmu
Fix bug in LoadMusicStream
2018-07-29 10:36:52 +02:00
Michael Vetter 186c1b157e Fix bug in LoadMusicStream
free() and NULL at the end.
2018-07-29 09:52:18 +02:00
raysan5 7964b28fac Corrected bug LoadMusicStream() 2018-07-28 18:19:53 +02:00
raysan5 0cf92c59d7 Corrected timing typo 2018-07-28 18:13:19 +02:00
raysan5 dc3327fba8 Reviewed music loading 2018-07-28 18:07:06 +02:00
raysan5 6f61e26a3c Reviewed custom logging functionality 2018-07-28 17:57:05 +02:00
Ray 9150b54b3e Merge pull request #603 from jubalh/lse
Deal with failed LoadMusicStream
2018-07-28 11:15:41 +02:00
Michael Vetter 7a5b1b13e2 Deal with failed LoadMusicStream
It would be good to have a way to continue execution even when loading a stream didn't work.
 Free music and set it to NULL in case something went wrong, so that users can check for it.
2018-07-27 15:58:27 +02:00
Pablo Marcos Oltra c69f7953c7 Add SetTraceLogCallback to enable users setting custom logging (#597) 2018-07-26 21:57:45 +02:00
Ray 64e9d72c07 Reviewed audio example 2018-07-25 14:38:12 +02:00
Ray 4d45173a77 Merge pull request #591 from triplefox/patch-1
Complete raw_audio_stream example
2018-07-25 14:25:55 +02:00
Ray 78c8774685 Merge pull request #593 from jubalh/update_builder_example
Update Builder example
2018-07-25 13:56:47 +02:00
Michael Vetter 01197172cc Update Builder example
Update Builder example for raylib 2.0.0.
External OpenAL and GLFW are not required anymore.
2018-07-25 13:01:16 +02:00
James Hofmann 959f8e45f8 Complete raw_audio_stream example
1. Always synthesize a complete frame of audio, using a second buffer (this prevents gaps in playback)
2. Sine is computed correctly, with an adjustable frequency
3. User can modulate frequency in real-time with mouse
4. Entire audio buffer data is shown, visually demonstrating how sine changes in wavelength
2018-07-25 03:01:48 -07:00
Ray 94b0c49f5d Merge pull request #590 from pamarcos/fix_rlgl_standalone
Fix rlgl.h to be used as a standalone
2018-07-25 11:10:04 +02:00
Pablo Marcos Oltra 8d134edaf7 Fix rlgl.h to be used as a standalone 2018-07-25 10:36:18 +02:00
Ahmad Fatoum 184e6de775 CMake: Don't build rlgl_standalone as part of the examples
Closes #588.
2018-07-25 00:51:42 +02:00
Ahmad Fatoum b7d8c62bfd Traivs CI: Add newer (9.4.1) Xcode configuration 2018-07-25 00:51:39 +02:00
Pablo Marcos Oltra fa0de480f0 Fix HTML5 examples and games using CMake (#589)
Mimic the Makefile by outputting html + js instead of LLVM IR.
2018-07-25 00:39:17 +02:00
Ray 361d878b4c Updated animations support 2018-07-24 18:52:56 +02:00
Ray 198a023527 First working version of IQM animations
Still a work in progress but it already works...
Current riqm API could be simplified...
2018-07-24 18:28:58 +02:00
Ahmad Fatoum a5311eddf0 Travis CI: remove stray $ in .travis.yml
Fixes: 1d0ba96 ("Add GLFW-installed-but-using-our-GLFW-anyway configuration")
2018-07-23 21:13:54 +02:00
Ahmad Fatoum 2b8c9f9a17 CMake: Fail when -D{PLATFORM,OPENGL_VERSION}=INVALID_VALUE
as well as -DUSE_EXTERNAL_GLFW.

Nips issues like #584 in the bud.
2018-07-23 21:00:48 +02:00
Ahmad Fatoum 1d0ba96c9e Travis CI: Add GLFW-installed-but-using-our-GLFW-anyway configuration 2018-07-23 19:45:44 +02:00
Ray f992609184 Create CODE_OF_CONDUCT.md 2018-07-23 13:37:25 +02:00
Ray cae8f96361 Merge pull request #583 from leereilly/exclamation-period
Remove period after exclamation
2018-07-23 10:08:08 +02:00
Lee Reilly e0c19ab5af Remove period
Fixes https://www.reddit.com/r/gamedev/comments/90z6fy/raylib_20_released/e2v5qpl/ :)
2018-07-22 23:31:03 -07:00
raysan5 eadd72a639 Updated MSVC lib release 2018-07-22 19:28:05 +02:00
Ahmad Fatoum 639ce09c9d Travis CI: Fix emscripten build breakage 2018-07-21 19:42:23 +02:00
Ray 3632b160d5 Merge pull request #579 from jessp/patch-2
Convert window render sizes to floats
2018-07-21 19:37:35 +02:00
Jess Peter f3d144bf0e Convert window render sizes to floats
GLSL 1.10 is typesafe ([PDF specs](https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.1.10.pdf), page 22), so this shader will not load properly during build.

It's not a super important change, but I came across it while playing with the examples on my pi.
2018-07-21 18:56:16 +02:00
raysan5 82e4a12fd3 Added Android Makefile for games 2018-07-21 17:38:47 +02:00
raysan5 74a0814a8f Review formatting 2018-07-21 17:19:44 +02:00
raysan5 08f2725c8b Review templates Makefiles 2018-07-21 17:14:29 +02:00
raysan5 e5030e28f6 Updated html5 library 2018-07-21 17:14:13 +02:00
raysan5 4c15515ba6 Support examples with Emterpreter
Examples can be compiled for web with no code change at all! Usually
examples need to be refactored for web... using emscripten code
interpreter (emterpreter), it can manage synchronous while() loops
internally... as a downside, execution is very slow...
2018-07-21 17:13:59 +02:00
raysan5 7dc66d2d3f Looking for a place for raylib resource file 2018-07-21 16:18:33 +02:00
raysan5 864511fe57 Review VS2015 and VS2017 projects 2018-07-21 15:44:59 +02:00
raysan5 2875f4cf11 Remove VS2017 UWP project
Not properly configured, use VS2015.UWP as reference
2018-07-21 15:44:06 +02:00
Ray 6e812cf147 Working on MP3 support 2018-07-19 23:15:46 +02:00
Ray 103044926b Avoid config.h in standalone mode 2018-07-16 19:24:40 +02:00
Ray 6efb89c51e Updated to latest mini_al dev 2018-07-16 19:21:54 +02:00
Ray bff3bb758a Reviewed audio_standalone
Now it works with mini_al library
2018-07-16 19:03:52 +02:00
Ray b80ec381c8 Reviewed lighting example...
No model available, this example should probably be redesigned...
2018-07-16 18:44:18 +02:00
Ray 98273f0152 Reviewed compilation options 2018-07-16 18:43:24 +02:00
Ray 4d4d9b0170 Removed Oculus example
Oculus API has changed so much that it has no sense to keep this example here... it was funny to test it in the past...
2018-07-16 18:41:40 +02:00
Ray 5b37178af9 Reviewed rlgl_standalone example 2018-07-16 18:22:03 +02:00
Ray 096fd6f2c3 Converted rlgl module in header-only
This change allows rlgl.h usage as independent single-file header-only module... still some tweaks required, like removing GLAD dependency... required extensions could be manually loaded!

Also removed shader_distortion.h, embedded in rlgl.h
2018-07-16 17:53:47 +02:00
Ray 40551958dd Update HISTORY.md 2018-07-16 10:14:41 +02:00
Ray 98de843827 Update HISTORY.md 2018-07-16 10:13:23 +02:00
Ray 546254b439 Update CONTRIBUTING.md 2018-07-16 10:06:30 +02:00
Ray 475a1a263d raylib 2.0... make history... 2018-07-16 02:08:10 +02:00
Ray c5f65c0b16 Updated common documents 2018-07-16 02:07:48 +02:00
Ray d127d8e9f8 Updated Notepad++ raylib intellisense 2018-07-15 23:19:06 +02:00
Ray 0c631e6b5a Corrected comment 2018-07-15 21:24:59 +02:00
Ray 7d7c6fc42d Reviewed example for clarity 2018-07-15 20:24:18 +02:00
Ray dfc4baaa35 Added new example: text_font_sdf 2018-07-15 20:04:12 +02:00
Ray 292499bdeb Reviewed LoadFontData() and GenImageFontAtlas() 2018-07-15 20:03:05 +02:00
Ray 971a7419ec Start reviewing IQM loader... 2018-07-13 20:29:23 +02:00
Ray cadcc05a84 Reviewed Code::Blocks project template
- Removed unnecesary files
 - Renamed project
 - Reviewed paths
2018-07-13 20:26:56 +02:00
Ray b5b4da1d05 Update README.md 2018-07-13 19:58:36 +02:00
Ray ea72c9e5af Merge pull request #577 from D3nX/master
Added Code::Blocks template !
2018-07-13 19:57:38 +02:00
D3nX f0ac73ef8b Update README.md 2018-07-13 21:48:53 +04:00
D3nX 4e367d2db8 Update and rename REAME.md to README.md 2018-07-13 21:48:39 +04:00
D3nX 2f3011c457 Delete raylib_codeblocks_tpl.exe 2018-07-13 21:46:33 +04:00
D3nX 90d35b2ac4 Delete raylib_codeblocks_tpl.exe 2018-07-13 21:46:13 +04:00
D3nX 1c9537b5e7 Add files via upload 2018-07-13 21:45:43 +04:00
Ray c19bd3eb04 Update CHANGELOG 2018-07-13 12:45:52 +02:00
Ray 5774d31893 Example tweak 2018-07-12 11:29:41 +02:00
Ray d2c0d1bfef Update rpi release library 2018-07-11 16:52:10 +02:00
Ray 9e2c418a92 Removed dev from version 2018-07-11 16:40:08 +02:00
Ray eb296a5605 Reviewed shared library generation 2018-07-11 16:39:41 +02:00
Ray 43178f3488 Updated mini_al to latest dev version
Corrects issue with audio on RPI
2018-07-11 16:39:26 +02:00
Ahmad Fatoum 414bb6018b CMake: Add Libs.private to Libs if installing static only
pkg-config --libs --static raylib and pkg-config --libs raylib
should give the same result if there is no shared raylib installed.
2018-07-10 21:20:01 +02:00
Ahmad Fatoum 758a774173 Travis CI: Add arm32-android configuration 2018-07-10 18:08:39 +02:00
Ray 240ecd6332 Update mingw32 release 2018-07-10 12:10:31 +02:00
Ray d34c1285e0 Review Android Makefiles 2018-07-10 11:52:30 +02:00
raysan5 22bf279672 Corrected issue on 32bit ARM build 2018-07-09 13:06:40 +02:00
raysan5 3c02a9fc66 Support multiple data type aliases
Vector4 -> Quaternion
Texture2D -> Texture
RenderTexture2D -> RenderTexture
Camera3D -> Camera
SpriteFont -> Font
2018-07-09 10:23:53 +02:00
raysan5 f939378764 Support ARM and ARM64 Android building 2018-07-09 03:00:52 +02:00
Ray e23fb6e1d5 Removed Gitter 2018-07-07 20:01:55 +02:00
raysan5 c6d188a09a Reviewed latest commit for Android gamepad support 2018-07-07 10:15:19 +02:00
Ray 50088bf49b Merge pull request #570 from SethArchambault/master
SNES-like GAMEPAD Support added for Android, Makefile has optional support for 32bit
2018-07-07 09:38:19 +02:00
Ray 7c80a517b4 Merge pull request #571 from mackron/dr/mini_al
Update mini_al with a fix for macOS.
2018-07-07 09:33:48 +02:00
David Reid 8651e14955 Update mini_al with a fix for macOS. 2018-07-07 10:36:19 +10:00
Seth Archambault fa36c5294a Merge branch 'master' of https://github.com/raysan5/raylib 2018-07-06 13:37:17 -04:00
Seth Archambault f981daf1df Added SNES-style GAMEPAD SUPPORT 2018-07-06 13:33:46 -04:00
Ahmad Fatoum 7f040009ee Add null statement after goto label to pacify CI
Fixes: #568
2018-07-06 02:30:38 +02:00
Ray 0ab3d85aa0 Merge pull request #568 from mackron/dr/mini_al
Update Audio Libraries
2018-07-06 00:31:21 +02:00
Ray 4ec4481eca Merge pull request #569 from culacant/master
fixed so it breaks
2018-07-05 23:47:14 +02:00
culacant b129ba09a6 fixed so it breaks 2018-07-05 23:35:53 +02:00
Ray 311d8b92f5 Upload IQM loader project -WIP- 2018-07-05 21:56:52 +02:00
raysan5 103bc7dfc6 Corrected issue with GetFontDefault()
Note for me: Replace All is NOT your friend...
2018-07-05 19:17:06 +02:00
raysan5 d881c73257 Renamed GetDefaultFont() to GetFontDefault()
Library consistency rename... yes, I know, it breaks the API...
2018-07-05 19:08:24 +02:00
raysan5 1f1d8eeeeb Checking Android input functionality
Joystick support is not implemented just yet, not difficult but it
requires some work...
2018-07-05 19:00:49 +02:00
David Reid 4582d548b1 Merge branch 'dr/mini_al' of https://github.com/mackron/raylib into dr/mini_al 2018-07-05 23:14:56 +10:00
David Reid b7d7704098 Update mini_al to version 0.8. 2018-07-05 23:12:20 +10:00
David Reid 6c96fa6301 Update external audio libraries. 2018-07-05 22:57:45 +10:00
David Reid c598701873 Fix bug with FLAC music streams. 2018-07-05 22:57:17 +10:00
David Reid 1d354bc704 Merge branch 'master' of https://github.com/raysan5/raylib into dr/mini_al 2018-07-05 22:33:16 +10:00
Ahmad Fatoum 7c36237048 Example: Don't load texture removed from source tree
Fixes: c3b948b1 ("Replaced skybox HDR image")
2018-07-03 23:14:24 +02:00
Ray 91586fd7bc Merge pull request #566 from a3f/master
CMake: Reuse libraries found by glfw CMake config
2018-07-03 22:09:07 +02:00
Ahmad Fatoum c3aeaf4a49 Travis CI: Add test case for pkg-config 2018-07-03 21:35:28 +02:00
Ahmad Fatoum 61747508b0 CMake: Reuse libraries found by glfw CMake config
if (${PLATFORM} MATCHES "Desktop")
  target_link_libraries(${RAYLIB}_shared glfw ${GLFW_LIBRARIES})

was never true because PLATFORM STREQUAL "PLATFORM_DESKTOP"...

This fixes #551 and makes the changes suggested in #552 (commited as 965cc8ab)
unnecessary.
2018-07-03 21:35:27 +02:00
Ahmad Fatoum 33c830353b CMake: Fix regression in USE_EXTERNAL_GLFW=IF_POSSIBLE
Fixes: e1e036a6 ("Disable glfw only when it is not found and not external", #558)
2018-07-03 09:24:31 +02:00
Ray 74fd0e7ca4 Added function: ImageColorReplace() 2018-07-03 00:57:58 +02:00
Ray 7b971e0623 Added Quaternion typedef 2018-07-02 18:53:46 +02:00
Ray 1727bbabb1 Added some latest changes... 2018-07-02 16:39:27 +02:00
Ray 276974de05 Removed function prototype
This function was added in text module as GenImageFontAtlas()
2018-07-02 16:39:04 +02:00
David Reid fec0a4f2e3 Merge branch 'master' of https://github.com/raysan5/raylib into dr/mini_al 2018-07-01 20:52:50 +10:00
David Reid bce7a7b576 Update mini_al. 2018-07-01 20:51:10 +10:00
Ray 7dedb84fd0 Added function: Vector3RotateByQuaternion()
Rotate a Vector3 by a Quaternion
2018-06-30 22:00:16 +02:00
Ray d0166c9d45 Spacing tweaks 2018-06-30 21:56:26 +02:00
Ray a1d9c33995 Reviewed models and examples 2018-06-30 20:02:32 +02:00
Ray c8b378ae50 Added new example screenshot 2018-06-30 20:01:10 +02:00
Ray afe81d94ce Re-added: LoadFontEx() 2018-06-30 19:58:44 +02:00
Ray 64207b11c0 Removed unused textures 2018-06-30 19:58:08 +02:00
Ray 1f3bbf457c Merge pull request #561 from JellyPixelGames/master
Fix incorrect log agent names
2018-06-29 01:23:01 +02:00
Michael Campagnaro 859b1cf574 Fix incorrect log agent names 2018-06-28 18:41:32 -04:00
Ray dbfd8d713f Reviewed comments section 2018-06-26 01:36:13 +02:00
Ray bd957c7442 Merge pull request #557 from Martinfx/max-support-bsd-os
Added support OpenBSD, NetBSD, DragonFly OS
2018-06-24 12:44:58 +02:00
Ray b1d3810011 Merge pull request #558 from yurivict/master
Fisable glfw only when it is not found and not external.
2018-06-23 17:52:42 +02:00
maficccc@gmail.com 59ebe1b7c3 Added support OpenBSD, NetBSD, DragonFly 2018-06-23 17:02:07 +02:00
maficccc@gmail.com 965cc8ab6f Added support DragonFly os from BSD family 2018-06-23 17:02:04 +02:00
Yuri e1e036a602 Fisable glfw only when it is not found and not external. 2018-06-23 07:30:35 -07:00
Ray 1630597f08 Review OBJ loading example
Replaced old dwarf model
2018-06-21 16:48:54 +02:00
Ray 1ff8947864 Reviewed skybox example 2018-06-21 16:48:20 +02:00
Ray c3b948b1b2 Replaced skybox HDR image
Note that HDR exposured possibilities are not used on this example...
2018-06-21 00:50:03 +02:00
Ray d573a5ad60 Removed dwarf 3d model
Replaced by medieval 3d assets
2018-06-21 00:35:50 +02:00
Ray 0e135118fd Improved GenImageFontAtlas() 2018-06-21 00:18:13 +02:00
Ray d6f56c0d5c Merge branch 'master' of https://github.com/raysan5/raylib 2018-06-20 00:52:29 +02:00
Ray 75ba5aca55 Improved font generation and SDF
Added: data to CharInfo struct
Added: LoadFontData()
Added: GenImageFontAtlas()
Removed: LoadFontEx()
Removed: LoadTTF() [internal]
Some code tweaks
2018-06-20 00:52:14 +02:00
Ray 179231504a Create README.md 2018-06-19 18:03:45 +02:00
Ray 372e4a1139 Reviewed some functions
- GetImageData()
- GetImageDataNormalized()
2018-06-12 16:30:03 +02:00
Ray San 64804f30e6 Comment review 2018-06-12 13:27:41 +02:00
Ray San 0c01c08718 Corrected issue, flag not supported...
...by emscripten glfw javascript implementation
2018-06-12 13:21:36 +02:00
Ray San 59fd261491 Added function: GetImageDataNormalized()
Reviewed: GetImageData()
Reviewed: ImageFormat()
2018-06-12 13:13:09 +02:00
Ray San 7d0e09ff4c Corrected bug 2018-06-12 12:05:28 +02:00
Ray San b588af5ce2 Corrected breaking build 2018-06-12 10:45:00 +02:00
raysan5 b48d225a43 Propose new function: GenImageFont() 2018-06-10 19:29:01 +02:00
Ray 817ae07505 Some comments cleaning
ImageDraw() code tweak
2018-06-06 00:43:52 +02:00
Ray 31cd4a1a48 Latest library release compilation 2018-06-03 23:58:17 +02:00
Ray 5b21f6cf6f Improved game drawing
Reduced draw calls
2018-06-03 23:58:00 +02:00
Ray 0e6458cfee Added ImageRotate*() functions 2018-06-03 21:05:01 +02:00
Ray 61a1c59472 Corrected possible issue with CMake for GLFW 2018-06-02 18:47:19 +02:00
Ray 9688c677de Review window creation hints 2018-06-02 18:26:57 +02:00
Ray c7d6a44e33 Update GLFW to latest dev version (master branch) 2018-06-02 18:26:29 +02:00
Ray b1b4a11bdb Corrected issue with function definition 2018-06-02 13:05:23 +02:00
Ray 0c1bc039a2 Merge branch 'master' of https://github.com/raysan5/raylib 2018-06-02 12:47:15 +02:00
Ray afc4181752 Work on ImageResizeCanvas() 2018-06-02 12:47:05 +02:00
Ray fcef578c9a Added Notepad++ NppExec scripts 2018-06-01 11:36:31 +02:00
Ray 2536bea379 Added: ImageResizeCanvas() -WIP-
Added note idea on ImageFormat() for future redesign (to support
16bit-32bit pixel-formats)
2018-06-01 00:53:40 +02:00
Ray 129c890a28 Removed assert()
Not used in raylib this mechanism
2018-05-30 00:06:23 +02:00
Ray 8f4b53384c Replaced tabs by spaces 2018-05-29 09:09:40 +02:00
Ray d873314c27 Reviewed Windows resource file name 2018-05-29 00:52:08 +02:00
Ray 0148432588 fabsf() not working with TCC
Replaced by fabs() that seem to work ok
2018-05-28 00:48:45 +02:00
Ray dbff40944a Corrected issue with floats on TCC
It seems TCC was not casting correctly int values to float in some
specific situations
2018-05-28 00:48:07 +02:00
Ray 1f0cc57ec7 Corrected issue with compiler param
Added android_native_app_glue module to raylib compilation instead of
compiling it as static lib at apk generation.
2018-05-27 19:06:14 +02:00
M f89afaa335 CMake: Fix cannot find -lX11 (#552)
Temporary measure to fix a breakage on FreeBSD.
See #551 for more details.
2018-05-26 20:56:24 +02:00
Ray San 8f4fa5006b Added a note 2018-05-22 12:09:12 +02:00
Ray San f454af08bb Review include (already included) 2018-05-22 12:08:58 +02:00
raysan5 559b9b8cc3 Corrected possible memory leak 2018-05-21 18:57:54 +02:00
raysan5 44181baf04 Working on Android APK building 2018-05-21 18:13:52 +02:00
David Reid 63cf43b729 Fix some warnings. 2018-05-21 20:46:22 +10:00
David Reid 647c08ef4c Fix a copy paste typo. 2018-05-21 20:39:42 +10:00
David Reid f1b624d38b Update mini_al. 2018-05-21 20:39:19 +10:00
David Reid 6d8cc250bd Merge branch 'master' of https://github.com/raysan5/raylib into dr/mini_al 2018-05-21 20:26:28 +10:00
Ahmad Fatoum e025e62445 cmake: Fix PLATFORM_WEB build
Did this ever work? Surely, doesn't look like it...
2018-05-21 12:15:39 +02:00
Ahmad Fatoum cea78e4fc1 Travis CI: Test Android configuration (#546)
I don't know if this actually works, but it compiles, which is good enough for CI.
2018-05-21 01:27:17 +02:00
Ahmad Fatoum bd2300fed3 CMake+Android: Skip tests with SetCameraMode
src/core.c does explicitly skip including <camera.h> on Android
and tests fail. Therefore skip these failing tests.

Closes #507.
2018-05-21 01:17:13 +02:00
Ahmad Fatoum ad8509732c CMake: Fix (Add?) Android support
Not sure if this ever worked, but now it at least compiles.
2018-05-21 01:08:29 +02:00
Ahmad Fatoum ff55af14f9 CMake: Move reusable code to new cmake/ directory 2018-05-21 01:08:29 +02:00
Ahmad Fatoum ae26e083b4 CMake: Add default build type if none specified
Release, unless we are in a Git repo, then it's Debug.
2018-05-21 01:08:28 +02:00
Ahmad Fatoum 20ddc6a2bb Move utils.cmake to separate cmake/ directory 2018-05-21 01:08:28 +02:00
raysan5 a752092055 Removed 32bit arm Android library
From 2019 64bit support will be mandatory to publish an Android app.
Google plans to require that new apps target Oreo (API level 26) in
August of 2018.
2018-05-20 19:13:10 +02:00
raysan5 8e0cd51afb Support shared library building on Android 2018-05-20 18:49:58 +02:00
raysan5 ca69068814 Added function: rlCheckBufferLimit() 2018-05-20 01:55:46 +02:00
raysan5 3b70b66a08 Love OpenGL gotchas... make my life more enjoyable! 2018-05-20 00:41:12 +02:00
raysan5 24adca4ad0 Manual mipmap generation review
On OpenGL 1.1 only is supported for 32bit RGBA textures
2018-05-20 00:39:56 +02:00
raysan5 25d5e907ec Some code review (mainly comments) 2018-05-20 00:37:16 +02:00
Ahmad Fatoum a1ec0a5bc3 Merge pull request #545 from jubalh/master
Increase API version
2018-05-18 18:41:09 +02:00
Michael Vetter 5cfbb53f6c Increase API version
Please do this whenever necessary. And adapt it before releasing a new
RC. The RC should already have the correct one.
2018-05-18 16:04:18 +02:00
Ray fb4265f646 Reviewed Android pipeline
Now defaults to Clang, ARM64 and API 21
2018-05-17 00:59:53 +02:00
Ray 0b05169aa7 Some warnings review 2018-05-17 00:58:58 +02:00
Ray 88c2337225 Preliminary support for MP3 fileformat -WIP- 2018-05-17 00:04:58 +02:00
Ray 2aae62cea2 Header tweak and comments 2018-05-17 00:04:36 +02:00
Ray 1d3e4ef437 Corrected issue on file extension check 2018-05-17 00:04:12 +02:00
Ray 542eb6f250 Restore removed projects 2018-05-14 00:33:15 +02:00
Ray bb43755a9d Corrected issue on LoadASTC() 2018-05-12 23:33:03 +02:00
Ahmad Fatoum eed170f852 CMake: Fix typo... s/USE_PIC/WITH_PIC/ 2018-05-12 19:05:30 +02:00
Ahmad Fatoum 0f1aaa474a CMake: (Properly) build glfw separately with CMake
This reverts commit 2d6fb5c628,
and adds a fix for Alien::raylib's test failures.

The tests failed because the resulting static library didn't reexport
GLFW symbols. As a fix, we now have GLFW create a CMake "object library"
target that we can link with both the static and shared raylib.

This is arguably ugly... Proper fix would probably be a GLFW upstream
object library target.

Closes #536.
2018-05-12 18:38:20 +02:00
Ray a09d6fd428 Merge pull request #542 from a3f/no-no-pie
Makefile: Remove unnecessary -no-pie for older GCC support
2018-05-12 12:39:02 +02:00
Ahmad Fatoum c1b9104d54 Makefile: Remove unnecessary -no-pie for older GCC support
Currently, if:
* GCC doesn't supports -no-pie: Build error
* GCC supports -no-pie
    * GCC is not configured with --enable-default-pie: No-op
    * GCC is configured with --enable-default-pie:
            Slightly worse performance because we still generate -fpie code
            (-pie affects linker, -fpie affects compiler)

So instead of probing for existence of -fno-pie -no-pie, remove it altogether.

Fixes #540: Build breakage on Debian 8 with gcc 4.9.
2018-05-12 11:41:12 +02:00
Ahmad Fatoum 2d6fb5c628 Revert "CMake: Build glfw separately with CMake"
This reverts commit 0adb4b67de,
because it failed tests for Alien::raylib:
http://www.cpantesters.org/distro/A/Alien-raylib.html
2018-05-11 23:43:35 +02:00
Ray 245704df72 Reviewed examples 2018-05-11 18:14:51 +02:00
Ray 0790171125 Updated raylib_icon resource 2018-05-11 18:14:42 +02:00
Ray aa76985c0d Review raylib version to 2.0
Review raylib_icon resource
2018-05-11 18:14:19 +02:00
Ahmad Fatoum 281dbf5d83 Merge pull request #538 from a3f/master
CMake+CI: Add Wayland configuration
2018-05-11 01:41:24 +02:00
Ahmad Fatoum a0f9c2b1eb Travis CI: Test Wayland configuration as well 2018-05-11 01:25:13 +02:00
Ahmad Fatoum 7243cebad1 Travis CI: Test building with external GLFW 2018-05-11 01:24:38 +02:00
Ahmad Fatoum 0adb4b67de CMake: Build glfw separately with CMake
Makes it easier to support Wayland later on.
2018-05-11 01:24:27 +02:00
Ahmad Fatoum 0df501be91 Add GLFW source tree to src/external
We need the CMake stuff for wayland configuration.
Otherwise, we would have to replicate that ourselves.
This is the full 7ef34eb06de54dd9186d3d21a401b2ef819b59e7 tree except
for tests/ examples/ and docs/
2018-05-10 23:07:26 +02:00
Ahmad Fatoum f11fe80180 CMake: Use same message for symlink check and result 2018-05-10 23:07:25 +02:00
Ahmad Fatoum b8ca51fd01 CMake: Don't create symlinks on unsupporting file systems (#539)
Panders to the idiosyncrasies of my work flow:
I have my raylib build directory mounted as a VirtualBox vboxfs for use
with my Linux VM, but vboxfs doesn't support symlinks, while raylib shared
library versioning on Unix expects symlinks to work.
If this happens, library versioning is now disabled on Unix with
an error message instead of just failing the build.
2018-05-10 21:03:43 +02:00
Ray 8ae8d3ac78 Reorganized project templates folder 2018-05-10 17:35:02 +02:00
Ray f26a38a9e1 Merge branch 'master' of https://github.com/raysan5/raylib 2018-05-09 00:24:08 +02:00
Ray 9ea2a69bfd Corrected issue on rectangle drawing 2018-05-09 00:23:56 +02:00
Ray ac2dbba5b7 Update CHANGELOG 2018-05-08 23:35:21 +02:00
Ray 3a803ac95e Removed unnecesary define 2018-05-08 23:04:13 +02:00
Ray 6884d3bc14 Merge pull request #531 from sherjilozair/patch_implicit_type
Patch implicit type
2018-05-06 22:52:51 +02:00
Sherjil Ozair 8e9ff75f1c Use fabsf for floats, and avoid implicit type casting 2018-05-06 12:47:46 -04:00
Ray 04db494db0 Renamed shader variable 2018-05-06 00:44:59 +02:00
Ray f14492432d Avoid exposing native GLFW3 functionality
Try to avoid types conflict with Font
2018-05-04 23:03:56 +02:00
Ray San ec33e7d705 BREAKING CHANGE: Renamed SpriteFont type to Font
- Preparing MP3 files support
- Jumped version to raylib 2.0-dev (too many breaking changes...)
2018-05-04 16:59:48 +02:00
Ray San 6045062a05 Renamed some functions
- Renamed Begin3dMode() --> BeginMode3D()
- Renamed Begin2dMode() --> BeginMode2D()
- Renamed End3dMode() --> EndMode3D()
- Renamed End2dMode() --> EndMode2D()
2018-05-04 16:54:05 +02:00
Ray San 6324697ffd Rectangle parameters changed to float
- Some examples tweaks
- Reviewed ImageFormat()
- Use float for text fontSize
2018-05-04 16:25:31 +02:00
Ray San 9d103b7c2f Removed line breaks from functions
Useful to parse raylib.h to generate raylib-lua and Notepad++
intellisense XML info
2018-05-03 19:19:35 +02:00
raysan5 198d739256 BREAKING CHANGE: Renamed Camera -> Camera3D
Just added a fallback in the meantime...
2018-05-01 12:31:03 +02:00
raysan5 400c345f96 Added tangent computation alternative method
As stated in the note, I'm not sure if math is right, just followed a
reference implementation...
2018-04-30 11:21:44 +02:00
raysan5 23e335d933 Implemented MeshTangents()
- Added Vector3OrthoNormalize() to raymath.h - not sure if it is correct
- Implemented MeshBinormals() - Mesh struct has not a place for them...
- Updated model_material_pbr example - tested but not working on my GPU
(old Intel HD), actually, it never worked on it...
2018-04-30 02:47:48 +02:00
raysan5 c51203ae7e Corrected alpha blending on ImageDraw() 2018-04-29 18:39:57 +02:00
raysan5 dff1028466 Replaced ColorToFloat() by ColorNormalize() 2018-04-29 18:39:46 +02:00
raysan5 8d81b6e4e4 Support shapes drawing using only QUADS
Also added new compilation FLAGS for that pourpose
2018-04-29 12:53:32 +02:00
raysan5 ada6668b24 Expose file-dropping functions symbols 2018-04-29 11:49:10 +02:00
raysan5 ca5f7ebd10 Added compile flag: SUPPORT_SCREEN_CAPTURE
Allow compiling the library with support for automatic screen capture
(KEY_F12)
2018-04-29 11:37:39 +02:00
Ray 0045402c99 Corrected patreon link! 2018-04-23 20:59:10 +02:00
David Reid 3ca5047c82 Update mini_al. 2018-04-22 07:24:18 +10:00
David Reid af4d23aa82 Update mini_al. 2018-04-21 22:13:02 +10:00
David Reid 24cab8f920 Update mini_al. 2018-04-21 20:39:31 +10:00
David Reid 0febaa2446 Update external audio libraries. 2018-04-21 18:57:00 +10:00
David Reid f5ebbfb6bc Merge branch 'master' of https://github.com/raysan5/raylib into dr/mini_al 2018-04-21 17:26:40 +10:00
Ray 847bdaf682 Implemented default mesh
In case mesh loading fails, a cube is generated instead!
2018-04-19 20:20:34 +02:00
Ray 76a6bf6c52 Review spacing for cosistency 2018-04-19 20:19:53 +02:00
raysan5 afda1d0815 Updated project to link default C lib statically 2018-04-15 19:50:00 +02:00
Ray 739df34f5e Merge pull request #524 from TheLumaio/master
Add more key definitions
2018-04-14 01:15:20 +02:00
lumaio teon 5ef6cc1fb9 Add more key definitions 2018-04-13 17:14:04 -04:00
Ahmad Fatoum 3f59bdfc76 mini_al: Use WinAPI interlocked ops with tcc
Seems tcc doesn't provide __sync_*. See #435.
2018-04-11 11:29:49 +02:00
Ahmad Fatoum 8b0fef6c34 raymath: Workaround tcc inline function limitation
Reported in #435, tcc generates out-of-line definitions for inline
symbols, something it shouldn't.  This fix punishes tcc for that
by making applications it compiles (slightly) larger...
2018-04-11 10:43:27 +02:00
Ray San 4cc12ef2b3 Review camera definition on examples 2018-04-11 10:13:00 +02:00
Ray San cc3b8645df Updated release version 2018-04-10 10:37:48 +02:00
Ray 8e44f7b3c7 Reviewed config.h formatting
Added raylib version to config
2018-04-09 23:01:20 +02:00
Ray 54e24d905a Init frame timming measure variables 2018-04-09 22:28:41 +02:00
Ray cd616258c6 Merge pull request #522 from a3f/master
Refactor all #define SUPPORT_* into a config.h
2018-04-08 22:46:44 +02:00
Ray 9e7dedf5af Merge pull request #521 from TheLumaio/master
Added GetCollisionRayModel
2018-04-08 22:28:19 +02:00
Ahmad Fatoum 1dbce35247 CMake: Generate config.h from CMakeOptions.txt
I would have liked config.h to be selected by include dir configuration,
but this way is less intrusive.
2018-04-07 23:39:53 +02:00
Ahmad Fatoum 1841afad11 Refactor all #define SUPPORT_* into a config.h
That way, a user needs only to touch a single file to configure what
features raylib is built with.
Include guards are left out intentionally, because config.h should only
be included in source files, not headers.

Later on, config.h can also define the raylib version (#461).
2018-04-07 23:37:48 +02:00
Ahmad Fatoum d88523f03a Split CMake options into separate CMakeOptions.txt 2018-04-07 22:41:43 +02:00
Milan Nikolic 3caa044bf2 Add GNUInstallDirs and USE_AUDIO/USE_WAYLAND options to CMake (#518) 2018-04-07 16:32:14 +02:00
lumaio teon 7bd0f8b28c Fix mesh picking example 2018-04-07 04:00:06 -04:00
lumaio teon d2cc5b88df Removed useless GetCollisionRayMesh and libraylib.a 2018-04-07 03:49:56 -04:00
lumaio teon d003c23ecf Added GetCollisionRayModel 2018-04-06 12:04:09 -04:00
Ray b8bd1d2ea6 Remove unnecesary NPOT check
Now PLATFORM checks only used on core and utils modules
2018-04-05 19:22:45 +02:00
Ray 005f2ffb75 Simplified some code 2018-04-05 19:18:44 +02:00
Ray 931b672c92 Added: ImageDrawRectangle()
Renamed SaveImageAs() to ExportImage() for consistency on what actually happens with data.
2018-04-04 12:02:20 +02:00
Ray 6edf15b9f9 Added funtion: ExportMesh() 2018-04-04 12:00:54 +02:00
Ray 322cebcbaf Updated to latest raylib changes
Removed OpenAL and GLFW3 dependencies on building.
Reviewed platforms and flags
2018-04-03 22:44:45 +02:00
Ray 9393d1d76f Merge branch 'master' of https://github.com/raysan5/raylib 2018-04-03 12:43:42 +02:00
Ray San fe1c04d1b8 Removed old code 2018-04-03 12:42:28 +02:00
Ray 533780aadf Review ImageDraw() alpha blending
Not sure if math is ok... just left a commented piece of code that uses pre-multiplied alpha.
2018-04-03 12:42:22 +02:00
Ray 0c0ff2802e Review games Makefile 2018-04-02 18:46:22 +02:00
Ray 3e0de31424 Merge pull request #504 from Martinfx/master
Fix potential bugs from static analysis
2018-04-02 18:10:38 +02:00
Ray befd363966 Update README.md 2018-04-02 15:38:33 +02:00
raysan5 375adf86a6 Review math usage to reduce temp variables 2018-04-02 15:16:45 +02:00
raysan5 6985953e3d Update release to latest raylib version
Note that only some lib versions have been updated
2018-04-02 14:50:16 +02:00
raysan5 e18e8c6276 Review UWP configuration 2018-04-02 14:49:27 +02:00
raysan5 bbdf9f4880 Review InitWindow() to avoid void pointer
Reviewed for PLATFORM_ANDROID and PLATFORM_UWP
2018-04-02 14:49:01 +02:00
maficccc@gmail.com 201007e426 Fix sscanf() without field limits can crash with huge input data 2018-04-02 13:30:20 +02:00
maficccc@gmail.com db98dba10f Fix Allocator sizeof operand mismatch 2018-04-02 13:30:20 +02:00
maficccc@gmail.com 03ca9508bf Fix Dead initialization 2018-04-02 13:30:20 +02:00
maficccc@gmail.com 44eedf235d Redundant assignment of 'angle' to itself 2018-04-02 13:30:20 +02:00
maficccc@gmail.com 551cf50685 Fix Uninitialized argument value 2018-04-02 13:30:20 +02:00
maficccc@gmail.com 6a3eca3f92 Fix value stored to 'body' is never read 2018-04-02 13:30:20 +02:00
maficccc@gmail.com ca9e652f8b Remove dead assignment 2018-04-02 13:30:19 +02:00
Martinfx 28a9a181cb Fix use after free 2018-04-02 13:30:19 +02:00
maficccc@gmail.com 9459186125 Fix call argument is an uninitialized value 2018-04-02 13:30:19 +02:00
maficccc@gmail.com df74607479 Fix warning: illegal character encoding in string literal 2018-04-02 13:30:19 +02:00
maficccc@gmail.com e659336c11 Fix value stored to 'num_channels' is never read 2018-04-02 13:30:19 +02:00
Ray e72b96ada1 Merge pull request #508 from a3f/master
Allow use of main instead of android_main
2018-04-02 10:48:02 +02:00
raysan5 bd2c81d481 Review links 2018-04-01 23:33:37 +02:00
Ray 564baa22d6 Merge pull request #513 from autious/master
Add orthographic 3d rendering mode
2018-04-01 00:27:20 +02:00
Jacques Heunis b4e2f5b45c Initialize the timer after the graphics device on desktop and web platforms. (#516)
This is already the order that is used for Android. It doesn't appear to
make a difference on desktop but on web using the timer before it's been
initialized (by glfwInit, inside InitGraphicsDevice) causes the a long
(and variable but often several seconds) sleep between the first and
second frame.

Fixes: 468309d ("Early-exit InitWindow if InitGraphicsDevice fails")
2018-03-31 12:22:44 +02:00
Max Danielsson 42e64e931b Simplify camera data switch in orthographic 3d example 2018-03-27 21:16:25 +02:00
Max Danielsson 6c049fdd76 Move deduplicate aspect variable in begin render.
Changes motivated by commentary in pull request 513
2018-03-27 19:59:54 +02:00
Max Danielsson e38d28543a Remove state bool in camera projection type example.
Changes made based on commentary in pull request 513
2018-03-27 19:58:42 +02:00
Max Danielsson d91179f8ab Add orthographic projection example 2018-03-25 18:49:15 +02:00
Max Danielsson 5ecee69088 Add 3d orthographic projection mode 2018-03-25 18:33:19 +02:00
Ray 22c8ea76aa Merge pull request #510 from mackron/patch-2
Fix an infinite loop in ALSA backend of mini_al.
2018-03-20 09:53:08 +01:00
David Reid a8e2c7de9c Fix an infinite loop in ALSA backend of mini_al. 2018-03-20 18:39:21 +10:00
Ray deffad1701 Review tabs issue when compiling...
...PLATFORM_ANDROID on Windows, using MinGW-w64 (x86) provided Make (GCC
7.2)
2018-03-19 23:49:14 +01:00
Ray aab6c11ce1 Merge pull request #509 from mackron/patch-1
Fix a buffer overflow in the OSS/BSD backend of mini_al.
2018-03-18 13:15:32 +01:00
David Reid 4a69c2d75e Fix a buffer overflow in the OSS/BSD backend. 2018-03-18 14:37:41 +10:00
Ahmad Fatoum 2c219fb814 Allow use of main instead of android_main
Inspired by #504.
Instead of requiring the user to do PLATFORM_ANDROID #ifdefery,
have the android_main entry point exported by raylib and call
the user-defined main. This way many games could (in theory)
run unmodified on Android and elsewhere.

This is untested!
2018-03-16 21:37:22 +01:00
Ray 61e0e4b4f3 Complete review of raymath for API consistency 2018-03-16 13:47:01 +01:00
Ray San 9318dc98ce Support case-insensitive extension check 2018-03-16 13:09:49 +01:00
Ray 487bc613fd Updated raylib dev version 2018-03-15 12:37:52 +01:00
Ray 9d8f15c19d Reviewed raymath changes 2018-03-15 12:37:23 +01:00
Ray 6c6d6776c0 Merge pull request #482 from a3f/master
raymath.h: Use C99 inline semantics
2018-03-15 12:27:40 +01:00
Ray 4cae2b8829 Merge pull request #505 from Martinfx/max-add-memory-sanitizer
Add memory sanitizer for better debug
2018-03-14 16:11:29 +01:00
maficccc@gmail.com 4c0925067a Add message warning for msan 2018-03-14 15:23:14 +01:00
maficccc@gmail.com 82491fcf6c Add memory sanitizer for better debug 2018-03-14 00:13:23 +01:00
raysan5 b9573e583f Merge branch 'master' of https://github.com/raysan5/raylib 2018-03-11 11:02:03 +01:00
raysan5 d6c1159fce Corrected typo 2018-03-11 11:01:58 +01:00
Ray 8bc2813b0c Merge pull request #500 from victorfisac/fork/master
[fork/master] Fixed some memory leaks and add null checks for consistency
2018-03-11 10:51:15 +01:00
raysan5 a0127d8300 Corrected typo 2018-03-11 10:49:51 +01:00
raysan5 fd5e457bb4 Correct issue with triangleCount 2018-03-11 10:41:49 +01:00
victorfisac 5b4197afeb Updated copyright years 2018-03-10 21:14:11 +01:00
victorfisac d6fee9da29 Fixed compilation code comment in header 2018-03-10 19:30:25 +01:00
victorfisac 3201bad65a Fixed memory leaks in physics step operations 2018-03-10 19:25:17 +01:00
victorfisac 8f1d6f3850 Merge branch 'master' of github.com:raysan5/raylib into fork/master 2018-03-10 19:10:37 +01:00
Ray San df50eada53 Added new functions
- SetWindowSize() to scale Windows in runtime
- SetMouseScale() to scale mouse input, useful when rendering game to a
RenderTexture2D that will be scaled to Window size (used on rFXGen tool)
2018-03-09 11:43:53 +01:00
Ray 276847eca9 Correct issue with tangents 2018-03-04 23:24:30 +01:00
maficccc@gmail.com 8cb324b2da Fix result of operation is garbage or undefined 2018-03-04 16:26:49 +01:00
raysan5 85850a955a Removed additional code
GLFW has been updated to latest version, probably this code is not
required any more due to already been integrated into library... but it
needs to be tested...
2018-03-03 16:01:24 +01:00
raysan5 3b4a64f2d6 Updated GLFW library to latest version 2018-03-03 15:58:44 +01:00
Ray fd2adbe62d Renamed CalculateBoundingBox() to MeshBoundingBox()
Renamed function for consistency with a possible Mesh manipulation functions (maybe added in a future). Naming follows Image*() manipulation functions.
2018-02-26 12:10:45 +01:00
Ray a7207dc6d4 Removed tangents generation
It has no sense to be inside LoadOBJ(), mesh processing moved to own functions: MeshTangents() and MeshBinormals(). Not exposed to user yet.
2018-02-26 12:02:05 +01:00
Ahmad Fatoum 3f48ffb1b6 Fix two memory leaks in jar_xm.h
Found by LeakSanitizer in #494.
2018-02-26 00:14:19 +01:00
RDR8 18f61948ce Update Makefile
$ make clean
Makefile:296: *** missing separator.  Stop.
2018-02-25 22:27:32 +01:00
Ahmad Fatoum 80bf636f81 Don't exceed signed int range when shifting left
Fixes UB in #489, found by UBSan.
2018-02-25 03:17:57 +01:00
Ahmad Fatoum 76aca9b0d1 Fix possible buffer overflow in LoadBMFont
Width specifier doesn't include NUL terminator.
Fixes #487 found by AddressSanitizer.
2018-02-25 03:03:37 +01:00
Ray c5f7863689 Merge pull request #492 from a3f/raylib-master
jar_xm: Workaround for unaligned pointer accesses
2018-02-25 00:04:50 +01:00
Ahmad Fatoum 1430d01906 jar_xm: Workaround for unaligned pointer accesses
jar_xm.h does some shady pointer casts leading to unaligned accesses
and breaking strict aliasing. x86 has special circuitry for doing
unaligned accesses, but on other architectures, it may trap and require
kernel fix-up or crash outright. With this patch, one obstacle in
porting raylib to the GameBoy Advance has been removed. Go for it ;-)

To avoid having to rewrite that `mempool' code, insert padding before
structs and instruct the compiler (GCC, most importantly), to be gentle
when optimizing.

This fixes #490 (Unless we got ourselves 256-bit pointers, if so,
hello future!)
2018-02-24 23:59:56 +01:00
Ray 6026ed61a5 Merge pull request #480 from RDR8/master-patch-makefiles
Update Makefiles. Automate example usage of staged libraylib.so.
2018-02-24 23:57:46 +01:00
Ahmad Fatoum f52d2de582 raymath.h: Use C99 inline semantics
RAYMATH_EXTERN_INLINE was renamed to RAYMATH_HEADER_ONLY, which user code
may define if they want to use it as header-only library. If multiple
files in the same project define RAYMATH_HEADER_ONLY, they might each
have duplicate out-of-line definitions of the same functions.

By default, raymath.h exposes inline definitions, which instructs the
compiler _not_ to generate out-of-line definitons, if out-of-line
definitions are required, those of the file defined with
RAYLIB_IMPLEMENTATION are used instead. There may be only one such file.

In C++ mode, the compiler will select only one out-of-line definition
automatically, so no need to define a RAYLIB_IMPLEMENTATION.

Unfortunately, we have to remove raymath function declaration from
raylib.h as those declarations would lead to duplicate out-of-line
definitions which would yield linker errors. This problem didn't
exist with GNU89 or C++, because there multiple defintions are ok,
but in C99 they aren't.
2018-02-24 23:39:23 +01:00
Ahmad Fatoum ed6962edd3 Make MatrixToFloat and Vector3ToFloat reentrant
Besides making it thread-safe, it suppresses a GCC warning
when making them static inline in an upcoming patch.
2018-02-24 23:39:17 +01:00
RDR8 2b5fc12036 Update Makefiles. Enable example usage of staged libraylib.so. 2018-02-24 14:24:55 -06:00
Ahmad Fatoum a5881fb9cc Revert "raymath.h: Use C99 inline semantics"
This reverts commit 6ffc8cb799.
and commit e4d7bbec1e.
which I pushed by mistake...
2018-02-24 15:40:08 +01:00
Ahmad Fatoum c9043b5a87 CMake: Add options to use -fsanitize={address,undefined}
To make bugs like #485, #486, #487 and #488 easier to find in future.
2018-02-24 15:37:38 +01:00
Ahmad Fatoum 6ffc8cb799 raymath.h: Use C99 inline semantics
RAYMATH_EXTERN_INLINE was renamed to RAYMATH_HEADER_ONLY, which user code
may define if they want to use it as header-only library. If multiple
files in the same project define RAYMATH_HEADER_ONLY, they might each
have duplicate out-of-line definitions of the same functions.

By default, raymath.h exposes inline definitions, which instructs the
compiler _not_ to generate out-of-line definitons, if out-of-line
definitions are required, those of the file defined with
RAYLIB_IMPLEMENTATION are used instead. There may be only one such file.

In C++ mode, the compiler will select only one out-of-line definition
automatically, so no need to define a RAYLIB_IMPLEMENTATION.

Unfortunately, we have to remove raymath function declaration from
raylib.h as those declarations would lead to duplicate out-of-line
definitions which would yield linker errors. This problem didn't
exist with GNU89 or C++, because there multiple defintions are ok,
but in C99 they aren't.
2018-02-24 15:37:37 +01:00
Ahmad Fatoum e4d7bbec1e Make MatrixToFloat and Vector3ToFloat reentrant
Besides making it thread-safe, it suppresses a GCC warning
when making them static inline in an upcoming patch.
2018-02-24 15:37:37 +01:00
Ray 077bef4286 Support 4 components mesh.tangent data
Added struct Vector4 for convenience
2018-02-24 12:31:32 +01:00
Ray 6d64327a87 Reviewed unloading model data
When UnloadModel() --> UnloadMaterial(), avoid unloading default shader (if used) and avoid unlaoding default texture (if used), that data is managed by raylib internally. The question is... should UnloadModel() also UnloadMaterial()?
2018-02-22 12:39:17 +01:00
Ray cd5e2e0f17 Corrected cursor issue for Wayland 2018-02-22 00:01:13 +01:00
Ray 326fe09777 Reviewed compilation for OpenGL 1.1 2018-02-21 23:47:48 +01:00
Ray 97bf2706c4 Removed flag -fgnu89-inline 2018-02-21 23:28:34 +01:00
Ray 788049df09 Update README.md 2018-02-20 11:04:02 +01:00
Ray 81546308cd Update README.md 2018-02-20 10:48:34 +01:00
Ray 11612fce27 Reviewed timming system for macOS
Apparently, before macOS Sierra version, clock_gettime was not available, using MATCH timming system instead
2018-02-20 10:30:51 +01:00
Ahmad Fatoum 1652943f98 Docs: Replace references to raylib develop branch
Found by grepping for '(blob|tree)/develop'.  See #443 for more information.
2018-02-19 13:58:25 +01:00
Ahmad Fatoum d892243d18 CI: Build artifacts for master, not develop tags
See #443 for more information.
2018-02-19 13:56:55 +01:00
Ray f6231aa8b6 Merge pull request #474 from raysan5/develop
Integrate develop branch (LAST INTEGRATION)
2018-02-19 12:08:35 +01:00
Ray 7e32a627e8 Corrected path backslash 2018-02-19 00:03:24 +01:00
raysan5 0958904eac Added comments to review function ImageTextEx() 2018-02-18 19:29:13 +01:00
raysan5 4492a70a4b Support UTF8 basic characters on ImageTextEx()
Supported UTF8 range equivalent to [128..255] (80h..FFh)
Exposed and renamed text function GetGlyphIndex()
Renamed spriteFont parameter name to simply font
Small security check on transmission mission ending screen
2018-02-18 18:07:57 +01:00
raysan5 50fc4f7164 Reviewed transmission mission game
Support string replacing to generate newspaper headline
ISSUE: UTF8 characters not supported when drawing to Image
2018-02-17 21:23:45 +01:00
Ray 769cf23e53 Merge pull request #470 from jubalh/develop
Add Builder project files
2018-02-16 12:12:59 +01:00
Michael Vetter 883ed20e7c Add note about glfw3 and openAL 2018-02-16 11:53:04 +01:00
Michael Vetter e0a3a51b75 Builder project: Add note about examples 2018-02-16 11:25:12 +01:00
Michael Vetter 6ebc3fd29a Add core_basic_window project example for Builder 2018-02-16 11:23:02 +01:00
Michael Vetter 988f5b7832 Add Builder project template 2018-02-16 11:20:21 +01:00
Ahmad Fatoum 051040af2d CMake: Remove _RAYLIB suffix from -D{SHARED,STATIC}_RAYLIB
They were named so for compatibility with make, but make doesn't use
the anymore. I always forget whether it's SHARED_RAYLIB or
RAYLIB_SHARED...

For now, RAYLIB_SHARED and STATIC_RAYLIB may still be used,
but print a deprecation warning.
2018-02-16 05:58:18 +01:00
Ray ffde83d85f Merge pull request #467 from raysan5/develop
Integrate develop branch
2018-02-14 22:44:09 +01:00
Ray 36750ffb9a BREAKING CHANGE: Renamed function for consistency
Rename: GetHexValue() renamed to ColorToInt()
Added: ColorToHSV()
2018-02-12 11:55:22 +01:00
Ray 7530a60abc Update README.md 2018-02-12 11:53:47 +01:00
Ray dd8f0765b8 Merge pull request #465 from raysan5/develop
Integrate develop branch into master
2018-02-12 11:27:26 +01:00
Ray 8af5f9dfe0 Avoid rendering SPACE character! 2018-02-12 11:25:00 +01:00
Ray 51124bfb74 Merge pull request #464 from RDR8/develop-make-install-linux
Linux make install improvements
2018-02-12 11:23:31 +01:00
RDR8 97f8b85429 Update Makefile 2018-02-12 09:19:24 +00:00
RDR8 f742f1289d Update Makefile 2018-02-12 05:17:02 +00:00
RDR8 0be4d802ee Update Makefile 2018-02-12 01:25:08 +00:00
RDR8 5616314069 Update Makefile 2018-02-12 00:15:58 +00:00
RDR8 4c4b564392 Update Makefiles for Linux installation. See prior commit.
These changes are intended to provide context and control over the Linux make install process. make install RAYLIB_LIBTYPE=SHARED now works as expected. libraylib.so is properly installed with attendant runtime links. The examples will be running against the newly installed libraylib.so unless otherwise specified with RAYLIB_RUNTIME_PATH. See raylib/src/Makefile and raylib/examples/Makefile for usage of RAYLIB_INSTALL_PATH, RAYLIB_H_INSTALL_PATH, and RAYLIB_RUNTIME_PATH variables. RAYLIB_RUNTIME_PATH in particular is interesting for portability since sudo isn't needed.
The default configuration and workflow is essentially unchanged and unaffected.
2018-02-11 23:42:22 +00:00
RDR8 e86b4d4e03 Update Makefiles for Linux installation. 2018-02-11 22:58:15 +00:00
Ahmad Fatoum 1be72a2e72 pkg-config: Empty Requires.private on shared-only build
If user doesn't build the static library,
`pkg-config --static --libs raylib` should be equivalent to
`pkg-config --libs raylib`.
2018-02-11 20:10:50 +01:00
Ahmad Fatoum 09b022305f mini_al: Support {Net,Open}BSD OSS
Fixes this build failure:
http://www.cpantesters.org/cpan/report/a069fade-0e1f-11e8-a1cf-bb670eaac09d
2018-02-11 12:20:17 +01:00
Ray d90a33b850 Some reviews for Android compilation 2018-02-11 01:48:53 +01:00
Ray 231a69417a Corrected masteVolume setting 2018-02-11 01:28:30 +01:00
Ray 7bf6becc94 Reviewed mini_al implementation
- Some functions renamed
- Comments reviewed
- Functions reorganized
2018-02-11 01:12:16 +01:00
Ray 6d922b3e1f Renamed iconography 2018-02-10 23:29:40 +01:00
Ahmad Fatoum 468309d06c Early-exit InitWindow if InitGraphicsDevice fails
Otherwise we may run into LoadDefaultFont and crash in rlLoadTexture
Also moves InitTimer() before InitGraphicsDevice(), to allow it to be
tested even if InitWindow ultimately fails.
2018-02-09 22:54:35 +01:00
Ray f72b315cb6 Updated external libraries 2018-02-09 00:01:00 +01:00
Ray 2ace360230 Merge pull request #462 from a3f/develop
InitWindow: return false if no monitor found
2018-02-08 12:24:51 +01:00
Ahmad Fatoum a976e76ae6 InitWindow: return false if no monitor found
Otherwise we run into an assertion failure inside GLFW's glfwGetVideoMode.
Example:
http://www.cpantesters.org/cpan/report/b4ba5894-0bdb-11e8-841e-2c60b04e1d2d

This is related to #456.
2018-02-08 12:06:21 +01:00
Ray 4d5d1e0434 Added function LoadShaderCode()
Allows loading of shader from text code string directly
2018-02-05 01:03:13 +01:00
Ray b908a4078a Merge pull request #460 from raysan5/develop
Integrate develop branch
2018-02-04 13:47:42 +01:00
raysan5 5437458469 Merge branch 'develop' of https://github.com/raysan5/raylib into develop 2018-02-04 13:46:45 +01:00
raysan5 3a11cc5e31 Incremeted version to align with CMake 2018-02-04 13:44:41 +01:00
Ray 327aec9da4 Merge pull request #459 from a3f/develop
Bump version to 1.9.4
2018-02-04 13:44:20 +01:00
Ahmad Fatoum 19f280f4b7 Bump version to 1.9.4 2018-02-04 13:36:08 +01:00
Ahmad Fatoum 184df917be Travis CI: Don't use external GLFW
While nice to test, this would mean that the tagged release will depend
on GLFW as well… Therefore disable it for now.
2018-02-04 13:35:18 +01:00
Ray d50e291e86 Merge pull request #458 from raysan5/develop
Integrate develop branch into master
2018-02-04 12:51:24 +01:00
raysan5 6dc2f979cc Updated raylib version
Note that this version is under development and could be buggy on some
platforms...
2018-02-04 12:33:46 +01:00
raysan5 c32ed921a2 Security check in case window initialization fails 2018-02-04 12:31:16 +01:00
raysan5 8f287e72d2 Merge branch 'develop' of https://github.com/raysan5/raylib into develop 2018-02-04 12:26:33 +01:00
raysan5 70e0070a85 Reviewed window initialization
In case graphic device could not be created it returns false instead of
failing with an error tracelog (and consequently closing the program).
Window initialization success could be checked with new function
IsWindowReady()
2018-02-04 12:26:28 +01:00
Ahmad Fatoum cb66c89dfa CMake: Rename WITH_SYSTEM_GLFW to USE_EXTERNAL_GLFW
for consistency with Makefile. Requested by @raysan5 in #453.
2018-02-04 12:10:23 +01:00
Ray e2861fa71f Merge pull request #456 from a3f/develop
Return false from InitWindow if glfwInit or glfwCreateWindow fails -TO REVIEW AS DISCUSSED-
2018-02-04 11:55:18 +01:00
Ahmad Fatoum 26c9176a14 Return false from InitWindow if glfwInit or glfwCreateWindow fails
You can't do much with raylib if glfwInit or glfwCreateWindow fails,
currently it just exits by means of TraceLog(LOG_ERROR.
User code, however, might want to fall back to a text-only UI
or display a warning if raylib can't be used.
2018-02-03 14:53:58 +01:00
Ahmad Fatoum 44cd4faf83 exit(3), don't crash, when glfwCreateWindow fails
glfwSetWindowPos was called on a NULL window, triggering an assert
inside GLFW. Check for failure and exit cleanly by means of
TraceLog(LOG_ERROR instead.
2018-02-03 14:46:26 +01:00
Ahmad Fatoum 2b2b1f91ee CMake: Fix typo in GLFW detection
Let it be noted I utterly dislike their syntax.
2018-02-03 13:30:59 +01:00
Ray 5bb23c6c06 Update README.md 2018-02-03 11:33:05 +01:00
Ray 7918c0bf71 Removed external dependencies 2018-02-03 11:31:54 +01:00
Ahmad Fatoum 7f5fa4d49c CMake: Add tristate option for using system GLFW (#455)
-DWITH_SYSTEM_GLFW=ON: Link against system glfw and fail otherwise
-DWITH_SYSTEM_GLFW=OFF: Use embedded rglfw.c
-DWITH_SYSTEM_GLFW=IF_POSSIBLE: Probe for system glfw but fallback to
                                rglfw if unavailable

Also change Linux 64-bit CI build to install system glfw and use it,
so this doesn't bitrot.

Addresses #453.
2018-02-03 10:17:51 +01:00
Ahmad Fatoum 007ae1b7b3 CMake: Fix typo in MACOS_FATLIB 2018-02-03 09:38:57 +01:00
Ray San d1ef6869a9 Added function DrawRectangleLinesEx() 2018-02-02 11:01:38 +01:00
Ray 58346414f7 Corrected typo 2018-01-31 15:32:40 +01:00
Ray 44c95af463 Added missing keys definitions 2018-01-31 14:08:08 +01:00
Ray 227880977e Do not ignore Makefiles! 2018-01-29 14:01:06 +01:00
Ray eb508bf75f Upload GGJ18 game: transmission mission
Game developed in the GGJ18, it has some bugs and ending screen is
incomplete... I'll try to keep working a bit more on it.
2018-01-29 13:46:04 +01:00
Ray 1ce8c80de9 Corrected several issues... 2018-01-28 16:52:18 +01:00
Ahmad Fatoum f955b2255d GLFW: Fix build error on Linux < v2.6.39
Cherry-pick from upstream glfw/glfw#1196
Found in CPANtesters test of Alien::raylib:
http://www.cpantesters.org/cpan/report/d956d128-0339-11e8-b0d1-b6c4abd39192
2018-01-27 14:53:04 +01:00
Ahmad Fatoum 2090ad8119 CMake: Add missing 0 to minimum version
Removed by mistake.
2018-01-27 02:00:40 +01:00
Ahmad Fatoum 7f7aac643a CMake: Search dependencies and build pkg-config's Libs.private with it 2018-01-27 01:57:21 +01:00
Ahmad Fatoum 1093766669 CMake: remove OpenAL dependency 2018-01-27 01:05:17 +01:00
Ahmad Fatoum d5bbcbc15f Travis CI: Don't set CFLAGS=-m64 for macOS build 2018-01-27 01:05:17 +01:00
Ahmad Fatoum 1ab3c058f5 Drop libglew-dev as prereq for Travis build
Noted by @eserte in athreef/Alien-raylib#2. Thanks!
2018-01-26 22:14:05 +01:00
Ray 1d5fbef93d Clear fbo for drawing
Just in case ClearBackground() is not used after BeginTextureMode(), it clears fbo to color defined by previous ClearBackground()
2018-01-26 11:49:00 +01:00
Ray 779719f5dc Merge pull request #440 from a3f/develop
Make function calls without prior declaration an error
2018-01-26 01:17:19 +01:00
Ahmad Fatoum 520f317a75 #include header for time() on Windows 2018-01-25 23:12:03 +01:00
Ahmad Fatoum 03ee03e2a6 #include header for glInsertEventMarkerEXT on macOS 2018-01-25 23:00:07 +01:00
Ahmad Fatoum 8be93762d9 Make function calls without prior declaration an error
which is the default behavior on C99 and up.
2018-01-25 22:34:29 +01:00
Ray c2ec88f930 Support DEBUG library building 2018-01-25 10:07:51 +01:00
Ray 2dcaddc81c Review mipmaps generation issue
When changing image format, mipmaps are lost and regenerated from
scratch
2018-01-23 13:23:34 +01:00
Ray 04af83ff99 Improved pixel formats support
Review rlLoadTexture() function to make it simpler, now OpenGL texture
glInternalFormat, glFormat and glType are retrieved with new function
GetGlFormats()
2018-01-22 00:20:42 +01:00
Ray cbef78ea18 Review VS2017 projects configurations 2018-01-22 00:17:07 +01:00
Ray e604fe1ace Added VS2017 UWP project
Reviewed VS2015 UWP project
2018-01-19 13:07:32 +01:00
Ray 8e0a277f7c Reviewed UWP branch integration 2018-01-19 12:02:15 +01:00
Ray 6f73008007 Merge pull request #434 from raysan5/testing_uwp
Integration of UWP support
2018-01-19 11:43:21 +01:00
Ray 750323da53 Merge branch 'develop' into testing_uwp 2018-01-19 11:41:51 +01:00
Ray 5931bd501c Merge pull request #433 from a3f/develop
GCC/Clang: Treat void pointer arithmetic as error
2018-01-18 13:35:09 +01:00
Ahmad Fatoum 30ef3f3122 GCC/Clang: Treat void pointer arithmetic as error
As an extension, GNU C treats sizeof(void) as 1. MSVC doesn't.
Make it an error on GCC/Clang to avoid accidental MSVC breakage.
2018-01-18 13:22:41 +01:00
Ahmad Fatoum a2edc9d641 MSVC: Fix void pointer arithmetic error
GNU C allows it as a compiler extension, but MSVC doesn't.
2018-01-18 13:20:13 +01:00
Ray ce9f191f1b Added function: ImageMipmaps() 2018-01-18 00:23:45 +01:00
kai bdb61306ac CMake: build shape and texture examples (#432) 2018-01-17 20:14:14 +01:00
Ray 727cb1819b Reviewed VS2015 projects
- Support OpenGL 1.1 if selected macro
- Corrected MSVC compiler issues with (void *) data
- Removed raylib.dll project
- Created DEBUG_DLL and RELEASE_DLL configurations
2018-01-17 14:21:23 +01:00
Ray c8e97df233 Reviewed function GenImagePerlinNoise()
Added support for noise image offset
2018-01-17 00:43:30 +01:00
Ray dd3b3dbadb Redesigned rlLoadTexture()
- Added support for mipmap levels loading
- Removed internal function LoadTextureCompressed(), not required any
more...
2018-01-16 00:00:05 +01:00
- 61679a4bbc Review releases, removed external dependencies
Not required any more!
2018-01-15 13:59:51 +01:00
- 230e78a23e Code tweak while using OpenAL backend 2018-01-15 13:54:25 +01:00
- f2a675ae53 Reviewed Makefiles...
- Renamed VERSION to RAYLIB_VERSION
- Renamed API_VERSION to RAYLIB_API_VERSION
- Renamed RAYLIB_RELEASE to RAYLIB_RELEASE_PATH
- Support Web Assembly compilation on PLATFORM_WEB
2018-01-15 13:54:06 +01:00
- 493a67e6d5 Support canvas scaling with window 2018-01-15 12:53:14 +01:00
- ddf6c65d00 Review Makefiles and templates 2018-01-15 12:52:58 +01:00
Ray f818ec0e05 Merge pull request #428 from SamNChiet/testing_uwp
Add mouse input and revert keyboard to callback model
2018-01-13 11:00:56 +01:00
Sam C 1f70a8984a Add mouse input and revert keyboard to callback model
Mouse input is implemented, with all bells-and-whistles. This includes
cursor locking and scroll wheel support.

Keyboard input is reverted to a callback model to better reflect the
existing architecture in "core.c"
2018-01-12 20:56:35 -08:00
Ray 278d8575bd Added new function: ImageAlphaCrop() 2018-01-11 10:22:32 +01:00
Ray c37d2d448d Corrected issue with matrices
Matrix stack system should be reviewed but, in the meantime,
currentMatrix should be reseted in order of 3d to work
2018-01-08 01:03:04 +01:00
Ray fcb0cae605 Use busy wait loop
If not using busy wait loop, linkage with WINMM in Windows platform is
required
2018-01-07 23:55:23 +01:00
Ray 4dcc02ff1e Launch draw call if buffer limits reached
Note that this solution is a temporal patch, not properly tested and
prone to fail, specially if matrix are pushed into the stack...
2018-01-07 23:54:11 +01:00
raysan5 e4be917d1b Added new image functions
- Added: ImageAlphaClear()
- Added: ImageAlphaPremultiply()
- Reorganized some functions
2018-01-07 00:51:26 +01:00
raysan5 b97134c3e1 Review float pixel format textures support 2018-01-06 18:17:38 +01:00
raysan5 7caa3201d5 Improved pixel formats support
- Renamed enum TextureFormat to PixelFormat for consistency
- Added support for pixel format UNCOMPRESSED_R32
- Using GetPixelDataSize() where required
2018-01-06 13:43:48 +01:00
raysan5 1f0f8c33fa Added function declaration 2018-01-06 02:51:28 +01:00
raysan5 7fa2861160 Added function: GetPixelDataSize()
Just found I need that function...
2018-01-06 02:50:20 +01:00
raysan5 0e48396369 Corrected issue with new functionality
Using default font texture as base white texture for rectangles reduces
draw calls considerably, actually, raygui can be drawn with a single
pass!
2018-01-06 02:44:47 +01:00
raysan5 b760f16f9b Reviewed framebuffers cleaning
Issues when dealing with FBOs
2018-01-06 02:43:38 +01:00
raysan5 1a82e1ab26 Added function GetFileName()
Review comments
2018-01-02 02:26:05 +01:00
raysan5 e1baae0249 Removed function DrawRectangleT()
Functionality integrated in DrawRectangle() and selectable with config
flag USE_DEFAULT_FONT_TEXTURE
2018-01-01 16:54:32 +01:00
raysan5 e69424c86f Reviewed text input 2017-12-31 23:50:22 +01:00
Ray f51dcd8bfa Merge pull request #427 from SamNChiet/testing_uwp
Add Keyboard Input
2017-12-29 09:54:34 +01:00
Sam C ff984d13db Revert accidental inclusion of binary+build files
This removes the binary files I accidentally tacked onto the "Add keyboard input" commit
2017-12-28 21:05:30 -08:00
Sam C 9941a6f4aa Replace keyboard callbacks with polling 2017-12-28 13:00:03 -08:00
Sam C c801830bcc Add keyboard input 2017-12-28 10:44:03 -08:00
raysan5 e7cf03b1e4 Minor tweaks 2017-12-28 19:27:02 +01:00
raysan5 7965f983ba Support Wayland display on Linux desktop 2017-12-28 18:14:39 +01:00
raysan5 b19e155b34 Support UNCOMPRESSED_R32G32B32A32 texture format 2017-12-28 17:58:37 +01:00
raysan5 c93bca8c27 Review Makefile config flags
Support external GLFW usage
Renamed some flags for consistency
2017-12-28 17:58:09 +01:00
raysan5 0bd06eec51 Renamed function to SetTraceLog()
I think is clearer this way...
2017-12-24 16:49:54 +01:00
raysan5 e517d8fd16 Added function SetTraceLogTypes()
Trace log messages could be configured with this function to select wich
ones are shown
2017-12-24 16:47:33 +01:00
raysan5 e574428343 Some formatting tweaks 2017-12-24 16:12:52 +01:00
raysan5 f44dbf21cf Review physac timming system 2017-12-24 15:59:03 +01:00
Ray 0bb90d21c6 Merge pull request #424 from Martinfx/develop
Added next BSD OS
2017-12-23 18:57:26 +01:00
raysan5 b5a1282c6b Updated VS2015 projects
Removed GLFW3 and OpenAL Soft dependencies
2017-12-23 18:52:35 +01:00
Martinfx dae426d9c6 Fixed path for FreeBSD 2017-12-23 18:29:44 +01:00
Martinfx 9b7a24331d Added next bsd os 2017-12-23 18:12:19 +01:00
Ray San 00c34a035c Updated copyright year 2017-12-20 12:37:08 +01:00
Ray San 27c274bc3c Corrected issue with SaveImageAs()
That function depends on SavePNG() and forces platform check on textures
module, that behaviour should be changed, platform definition should be
only required on core module...
2017-12-20 12:36:47 +01:00
Ray San e8bb53ed35 Corrected issue on OpenGL ES compilation 2017-12-20 12:35:12 +01:00
Ray San 61afd07bd7 Force OpenAL backend on some platforms
OpenAL audio backend is being forced on HTML5 and OSX
2017-12-20 12:34:18 +01:00
Ray San 1320044e94 Review code formatting 2017-12-20 11:37:43 +01:00
Ray b63ffcfa0f Some code tweaks
Audio module requires a complete formatting review....
2017-12-20 00:34:31 +01:00
Ray San 5290390494 Expose GetTime() function to users
Monotonic time since InitWindow() could be retrieved with this function.
2017-12-19 14:06:54 +01:00
Ray a7de5bf6d9 Merge pull request #423 from RDR8/patch-1
Update CONTRIBUTING.md
2017-12-19 09:37:43 +01:00
RDR8 22e72cb0a1 Update CONTRIBUTING.md 2017-12-19 02:27:12 -06:00
RDR8 8d5484bbe0 Fix some typos in CONTRIBUTING.md (#422) 2017-12-19 09:19:43 +01:00
Ahmad Fatoum 647d8b2d53 Remove Alien::raylib from bindings list
* `Alien::raylib` downloads raylib, builds it and installs it in the Perl module path (Basically abusing CPAN as package manager)
* `Graphics::Raylib::XS` depends on `Alien::raylib` and reexports all C symbols as XS symbols usable in Perl
* `Graphics::Raylib` depends on `Graphics::Raylib::XS` and is the actual Perl wrapper with a Perlish API, which users should be using
2017-12-18 15:35:10 +01:00
Ray San f3f3e7cf6d Removed contributors file
Contributors added to contributing file
2017-12-18 12:23:29 +01:00
Ray bd4aa2459f Create CONTRIBUTING.md 2017-12-18 12:06:58 +01:00
Ray bc6ae93a48 Added some comments on GetTime()
Reviewing GetTime() functionality
2017-12-18 00:06:57 +01:00
Ray San b155333178 Support audio module skip on compiling
Some programs like tools could not require audio support
2017-12-15 17:02:29 +01:00
Ray San e17a9a8216 Updated mini_al to latest version 2017-12-15 17:01:50 +01:00
Ray San 53ad53d051 Manually review previous PR 2017-12-15 13:44:31 +01:00
Ray bcdde6c65a Merge pull request #420 from questor/develop
Develop
2017-12-15 13:28:33 +01:00
Ray 35d54dd7e4 Merge pull request #421 from a3f/develop
Build shared libs, games and examples on CI
2017-12-14 13:47:25 +01:00
Ahmad Fatoum 263e81b5c9 Build shared libs, games and examples on CI
Now with external OpenAL and GLFW dependencies removed,
we don't have to worry about installing them in CI.
Shared libraries are now always built along with static libs.
Games and examples are built everwhere except for Visual Studio,
because Physac needs pthreads, which VS doesn't provide.
2017-12-14 13:26:10 +01:00
user 2affac820e make raylib not clash with windows-header 2017-12-14 11:52:45 +01:00
user 217917530b fix for eventmarker missed in first cl 2017-12-14 11:51:17 +01:00
user 48d0c93ace make GetTime available to user of library 2017-12-14 11:50:35 +01:00
user b872de951b fix for GetMatrixModelview (former cl) 2017-12-14 11:49:31 +01:00
user d51f382ef8 optimized matrixrotate function by removing identity matrix 2017-12-14 11:48:33 +01:00
user b5395b22cc make raymath compiling with msvc in c++ mode 2017-12-14 11:47:52 +01:00
user 07b522c113 make matrix stack work closer to old opengl implementation 2017-12-14 11:46:38 +01:00
user a7f2fedbfb compilefix for function declaration (win only) 2017-12-14 11:45:47 +01:00
user 0e18b14605 added debug-event-markers for opengl so that you're able to set markers for renderdoc or other gpu debuggers what your program is currently doing 2017-12-14 11:44:48 +01:00
user 963551ee6e added possibility to get modelview matrix from rlgl to be able to send it to shaders 2017-12-14 11:43:06 +01:00
user 69c8fa409a fixed function declaration differ from implementation 2017-12-14 11:42:06 +01:00
user 54587d7fdb proper if-clauses for disabling functionality in text.c 2017-12-14 11:41:31 +01:00
user 08fc886afd added proper define checks for png-save if it's disabled 2017-12-14 11:40:08 +01:00
Ray 2388cbc3cd Corrected crash on shader loading
If shader file could not be found on loading it crashed, instead added
fallback to default shader!
2017-12-13 20:10:13 +01:00
Ray a6f9cc5629 Remove rres support
Let the user choose if using rres external library
2017-12-11 11:55:02 +01:00
Ray 3e1d6859db Merge pull request #417 from a3f/develop
Add library versioning to Make/CMake build systems
2017-12-11 11:40:46 +01:00
Ahmad Fatoum 4a7840b752 Remove Meson build system
Less maintenance overhead that way,
given that make/CMake now also do library versioning.
2017-12-11 11:15:14 +01:00
Ahmad Fatoum d24b89bb0e Add library versioning to Make/CMake build systems
See #401 for the discussion.
Also bumps version number to 1.9.2 without the -dev,
because neither ELF nor MachO like such a suffix.
The -dev suffix will have to be restricted to the git tags.
2017-12-11 10:25:06 +01:00
Ahmad Fatoum de78fa69bc Fix CI builds after mini_al changes 2017-12-10 21:35:38 +01:00
Ahmad Fatoum 203b2f65d1 Fix typo in preprocessor macro 2017-12-10 21:11:04 +01:00
raysan5 5ae2c0d15b Added Wayland support
Updated to latest GLFW library and working on Wayland support, still
looking how to implement it on raylib because it just exposes
PLATFORM_DESKTOP and defaults to X11 windowing system on Linux...
2017-12-09 19:05:42 +01:00
David Reid 950f31e620 Update mini_al. 2017-12-06 18:48:47 +10:00
Ray San 3b5a26099e Removed OpenAL Soft dependency on building
OpenAL Soft backend is still available in audio module, I'm thinking if
exposing it for building in some way or just left it there for advance
users to switch to it manually in case of necessity...
2017-12-05 14:01:35 +01:00
Ray San 33eec31575 Updated external libraries dependencies
Added dr_wav for a future use
2017-12-05 13:23:04 +01:00
Ray San acbfba9250 Updated library features and dependencies 2017-12-05 13:22:26 +01:00
Ray 9d0ee6c2f6 Merge pull request #413 from mackron/dr/mini_al
mini_al integration
2017-12-05 11:23:16 +01:00
David Reid 104391f82b Update mini_al. 2017-12-05 18:49:00 +10:00
Ray 54d0acc3b6 Change version number for develop
Updated raylib version to 1.9-dev for development pourposes.

Next raylib version is planned to implement a big amount of changes, so
the version bump.
2017-12-05 00:05:05 +01:00
Ray San 0cd327ccb2 Moved QuaternionNlerp() function 2017-12-04 11:03:45 +01:00
David Reid 82f88e5df9 Potential fixes for Raspberry Pi. 2017-12-03 11:20:02 +10:00
Ray San 25a232a6f3 Merge branch 'develop' of https://github.com/raysan5/raylib into develop 2017-11-30 16:59:13 +01:00
Ray San 9a7524661f Removed GLFW3 linking and added rglfw 2017-11-30 16:59:09 +01:00
Ray 14b81c20c1 Merge pull request #410 from SamNChiet/testing_uwp
Add UWP gamepad input polling
2017-11-30 09:26:42 +01:00
Sam C 9dbd30c44b Add UWP gamepad input polling
Add a basic UWP gampead poll function with zero changes to code outside of App.cpp
2017-11-29 20:43:41 -08:00
Martinfx 825d15b069 Fixed broken include for AppVeyor 2017-11-29 17:06:40 +01:00
Ray 55396ae2b8 Merge pull request #407 from Martinfx/develop
Added support compilation with cmake for FreeBSD
2017-11-29 14:54:29 +01:00
Martinfx 69a1c19735 Fixed use ${LIBS_PRIVATE} for FreeBSD 2017-11-29 13:17:02 +01:00
Martinfx 2f471414c2 Added compile with cmake for FreeBSD 2017-11-29 00:05:39 +01:00
Martinfx 2cf37708c0 Added glfw support for FreeBSD 2017-11-29 00:04:29 +01:00
Ray San c9722161d1 Support GetCurrentTime() on macOS 2017-11-27 12:46:40 +01:00
Ahmad Fatoum ca921e5a53 CMake: Explicitly ask for C99 support
Otherwise using a compiler that defaults to -std=c89 or -std=gnu89 will
fail. Example:
http://www.cpantesters.org/cpan/report/abb85066-d283-11e7-9926-b2f4efb9c382

Apparently, -m32 Travis CI build was broken: -m32 was overridden by
-std=gnu99.  This fixes that.
2017-11-27 02:10:56 +01:00
Ray 7099e4ea4d Merge pull request #400 from a3f/develop
Note that raylib can now be installed via Homebrew
2017-11-26 11:24:35 +01:00
Ahmad Fatoum a78a1504a8 Note that raylib can be installed via Homebrew
[ci skip]
2017-11-26 10:54:35 +01:00
Ahmad Fatoum f991a075e1 Build examples and games on Travis CI
They were disabled because they failed to build,
but this patch set fixes the build on Linux and macOS.

This doesn't apply to the AppVeyor build on Windows yet;
it currently fails at linking with OpenAL.
2017-11-25 21:45:31 +01:00
raysan5 853cc6f4c9 Added authorization token 2017-11-25 19:40:05 +01:00
Ahmad Fatoum d54ea107f7 [CI] Push Github artifacts only on tag
Forgot that one the first time round, which created some unnecssary
releases.
2017-11-24 23:03:02 +01:00
Ahmad Fatoum 13fa61f7d9 CI: Only push binaries for develop branch builds
... for now.
Syntax was confusing Travis CI, AppVeyor is reporting 401,
so lets see if this change at least fixes Travis.

If this doesn't work, it might be that @raysan5's token is required.
2017-11-24 22:53:07 +01:00
Ray 8337787ced Merge pull request #396 from a3f/develop
Setup CMake package target and CI auto-deploy tags
2017-11-24 22:33:08 +01:00
Ahmad Fatoum 49c5a433df Setup CMake package target and CI auto-deploy tags
cmake --build . --target package # or make package if make is used

can now be used to create binary packages for raylib.

AppVeyor and Travis CI are configured to push the artifacts
that result from building git tags to the related Github releases page.
2017-11-24 21:24:35 +01:00
Ray 10dc276423 Merge pull request #395 from a3f/develop
Generate and install pkg-config pc file and allow static/shared builds in one go
2017-11-24 18:49:49 +01:00
Ahmad Fatoum 44376c04fa Generate and install pkg-config pc file
After installation, compiling new programs is possible with
    $ cc game.c `pkg-config --static --libs --cflags raylib`
or
    $ cc game.c `pkg-config --libs --cflags raylib`
depending on configuration

Also adds following configuration options:
- WITH_PIC "Compile static library as position-independent code"
- STATIC_RAYLIB "Build raylib as a static library"
- MACOS_FATLIB  "Build fat library for both i386 and x86_64 on macOS"
2017-11-24 17:15:33 +01:00
David Reid a0d9913c7c Potential fixes for audio on RPI and Emscripten builds. 2017-11-24 22:13:33 +10:00
David Reid 5463e14886 Audio: Fix a bug with AudioStreams.
This bug is a result of the buffer of an AudioStream being smaller than
that of a period of the backend playback device. In this situation,
AudioStream's would have pauses between buffer updates because the
backend is not able to re-fill the AudioStream buffer's quick enough
due to it's periods being longer than the AudioStream buffer.
2017-11-24 21:54:00 +10:00
Ray 589cec0dd5 Update README.md 2017-11-24 12:40:08 +01:00
Ray f9d9ff7e48 Update README.md 2017-11-23 10:14:53 +01:00
Ray 83029225d6 Update README.md 2017-11-23 10:13:40 +01:00
Ray 08200f8f40 Merge pull request #393 from a3f/develop
Add AppVeyor CI for automatic Windows Builds
2017-11-23 09:59:36 +01:00
Ahmad Fatoum 17c91bad6f Disable CRT "secure" warnings
Suppresses 88 of the 213 warnings reported when compiling with
MSVC 2015 on AppVeyor.
2017-11-23 07:56:02 +01:00
Ahmad Fatoum 1e1b20c889 Add AppVeyor CI for automatic Windows Builds
We already have automatic Linux and macOS build via Travis CI.
This adds the same for Windows x86 and x86_64 with both
Microsoft Visual Studio 2015 as well as MinGW-w64.
2017-11-23 00:47:58 +01:00
Ray 96e0f0e35e Merge pull request #392 from a3f/develop
Fix macOS build of new rglfw.c approach
2017-11-22 23:16:52 +01:00
Ahmad Fatoum b2acff66de Fix macOS build of new rglfw.c approach
There have been two problems:

* GLFW itself was compiled with the definitions for compiling
_against_ GLFW (fixed by removing requirement for external glfw)

* rglfw.c was being compiled as C code, although it includes
Objective C files.

This _might_ break the Windows build, needs to be checked.

Fixes #391, but as noted I'd prefer though a separate source directory
and build script for GLFW.
2017-11-22 23:11:41 +01:00
Ahmad Fatoum 899e1fbd94 Avoid duplicate definition of feature macro
Feature macros need to be defined before #including any headers,
preferably through the build system, but this is good enough.

Fixes a compile error on my fork's Travis CI.
2017-11-22 22:58:18 +01:00
Ray f70a0a996c Review file issue 2017-11-22 19:51:38 +01:00
Ray San 9ec8c0f1d6 Updated OSX compilation with clang 2017-11-22 17:30:09 +01:00
Ray San 1be826fb16 Removed useless file 2017-11-22 17:30:09 +01:00
Ray 25ceec9b8f Corrected default textures locations
By default, we look for texture1 for LOC_MAP_SPECULAR and texture2 for
LOC_MAP_NORMAL
2017-11-22 14:56:45 +01:00
David Reid 8b3694a34d Fix a crash in audio mixing code. 2017-11-22 18:36:48 +10:00
Ray 6624672bfa Merge pull request #389 from Martinfx/master
Added  clean to Makefile for FreeBSD
2017-11-21 23:26:01 +01:00
Martinfx 398d793dbb Added FreeBSD clean for Makefile 2017-11-21 19:30:52 +01:00
David Reid c71b01c8ac Update mini_al with fixes for OpenSL and SDL backends. 2017-11-21 06:35:38 +10:00
David Reid 14b889be41 Update mini_al with a potential fix for HTML5. 2017-11-20 21:47:07 +10:00
David Reid 3238cba47c Log the name of the playback device. 2017-11-19 19:38:23 +10:00
David Reid 49e945f958 Update mini_al with fixes and improvements for Emscripten. 2017-11-19 12:15:01 +10:00
David Reid 84ef860443 Update mini_al with experimental support for SDL/Emscripten. 2017-11-18 22:30:20 +10:00
David Reid f9144ac5b0 Rename a variable for consistency. 2017-11-18 12:15:48 +10:00
David Reid 3be83dac7e Update mini_al. 2017-11-18 11:51:51 +10:00
David Reid b9bb80d004 Add some logging and update mini_al. 2017-11-18 10:27:44 +10:00
David Reid 60d7215b2a mini_al: Unify the buffer system for Sounds and AudioStreams. 2017-11-18 08:42:14 +10:00
Ray San 6d317c7afe Remove glfw3 dependency
Full sources already included and compiled with raylib (rglfw)
2017-11-17 18:43:39 +01:00
Ray San e2e4b8df28 Remove unneeded glfw dependencies
Only required by examples
2017-11-17 18:42:39 +01:00
Ray San a6877c82c6 Added alternative license to rgif.h library
Just in case of legal conflict with public domain software, added MIT
alternative license.
2017-11-17 18:30:19 +01:00
David Reid 261b00e9e8 Update mini_al. 2017-11-17 21:12:05 +10:00
Ray San a6416f82a7 Reviewed file comments 2017-11-16 17:59:35 +01:00
David Reid 96be62e88b Update mini_al.h 2017-11-16 21:49:45 +10:00
David Reid e03afbf2fa Add support for pitch shifting.
This commit should bring the mini_al backend up to feature parity with
the OpenAL backend.
2017-11-15 22:04:23 +10:00
David Reid 322d868841 Fix minor errors with the OpenAL backend. 2017-11-14 21:44:57 +10:00
David Reid 88d2810fa3 Bug fixes for Music with mini_al. 2017-11-14 21:15:50 +10:00
Ray 68024f1b0b Added desktop platform check...
...to define proper values
2017-11-13 21:37:00 +01:00
David Reid 3a96a66fdf Bring up to date with changes to mini_al. 2017-11-13 21:46:29 +10:00
Ray San 9c65caea8c Added GLFW sources to raylib
Compiling GLFW library with raylib avoids external dependencies, this
way we solve version problems in some platforms
2017-11-13 12:09:41 +01:00
Ray San 6105ff9959 Added VS2015 UWP solution 2017-11-13 08:44:17 +01:00
David Reid e52f4282d6 Update comments. 2017-11-12 22:57:31 +10:00
David Reid ac4c911ad7 Work on porting Music to mini_al. 2017-11-12 21:55:24 +10:00
David Reid 68bf6c9701 Initial work on porting AudioStream to use mini_al. 2017-11-12 20:59:16 +10:00
raysan5 24b12e5e23 Remove PLATFORM_ checks from raylib header
Now header is truly multiplatform...

Actually still a small pending check on XBOX gamepad controls that
hopefully will be removed with next GLFW 3.3
2017-11-12 11:45:35 +01:00
raysan5 02dd4d32b5 Allow custom distortion shader - IN PROGRESS - 2017-11-12 11:00:28 +01:00
raysan5 09228752ce Review default shaders usage on loading 2017-11-12 10:33:44 +01:00
David Reid b0852002b8 Rename SoundInternal to SoundData for consistency with MusicData. 2017-11-12 14:54:37 +10:00
David Reid 75433a670e Initial work on adding support for mini_al. 2017-11-12 14:17:05 +10:00
Ray San b6b58991e6 Working on UWP support
Support Universal Windows Platform (UWP):
- Windows 10 App
- Windows Phone
- Xbox One
2017-11-10 12:37:53 +01:00
Ray e12182f59b Merge pull request #384 from nounoursheureux/develop
Store the default shaders
2017-11-10 12:10:49 +01:00
Wilhem Barbier 7ef604fbf5 Store the default shaders 2017-11-09 20:47:22 +01:00
Ray San 0eb222bda1 Issue with libraries renamed on Raspbian Stretch
libEGL and libGLESv2 have been renamed on latest Raspbian Stretch
version (also included on latest Jessie upgrade).

It seems to be done to avoid conflicts between official Mesa libs and
Broadcomm provided ones.
2017-11-07 13:02:15 +01:00
Ray 99d3803d16 Added VS2017 raylib project 2017-11-06 23:56:03 +01:00
Ray San 37986b26cb Corrected issue with text drawing on image 2017-11-06 14:13:50 +01:00
Ray San 2f024dbfef Corrected possible issue on FBO creation
USE_DEPTH_RENDERBUFFER on OpenGL 2.1
2017-11-06 13:58:11 +01:00
Ray San 4fe8e05a7f Review GLSL 120 shaders
Not tested, could have errors
2017-11-06 13:49:33 +01:00
Ray San 81518ccd13 Corrected issue with shader locations init
On RPI, after latest drivers update, models were not rendered properly
cause of that...
2017-11-06 13:41:13 +01:00
Ray 2eceecb7b7 Merge pull request #382 from nounoursheureux/develop
Have SetShaderValue(i) take a const pointer
2017-11-05 22:47:55 +01:00
Wilhem Barbier 879c2f484b SetShaderValue take const pointer 2017-11-05 21:57:29 +01:00
Ray 085779707f Uploaded shaders for GLSL 120 2017-11-05 17:13:17 +01:00
Ray 24657ca789 Review textures to be POT
Could correct possible issues on OpenGL 1.1
2017-11-05 17:06:50 +01:00
Ray 5f65380732 Merge branch 'develop' of https://github.com/raysan5/raylib into develop 2017-11-05 09:58:31 +01:00
Ray aa6a1b4283 Corrected issue with missing defines 2017-11-05 09:58:25 +01:00
raysan5 36ae9c8c3a Compile DLL avoiding extra dependencies
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin>dumpbin.exe
D:\GitHub\raylib\release\libs\win32\msvc\raylib.dll /DEPENDENTS

Microsoft (R) COFF/PE Dumper Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.

Dump of file D:\GitHub\raylib\release\libs\win32\msvc\raylib.dll

File Type: DLL

Image has the following dependencies:

KERNEL32.dll
glfw3.dll
OpenAL32.dll

Summary

4000 .data
1000 .gfids
23000 .rdata
5000 .reloc
1000 .rsrc
68000 .text
1000 _RDATA
2017-11-04 18:36:15 +01:00
Ray d43af4918b Improve textures support for OpenGL 2.1 2017-11-04 16:57:46 +01:00
Ray 9e0105a1a3 Corrected function name 2017-11-04 16:57:20 +01:00
Ray San c570f7ca63 Rebuild dynamic libs for MSVC (VS2015)
Added support for raylib DLL building on MSVC
2017-11-03 17:32:13 +01:00
Ray San 244007a99b Review Fade() functionality 2017-11-03 12:41:03 +01:00
Ray San 3c3d56bb4a Renamed data types to standard names 2017-11-03 12:40:46 +01:00
Ray San 3d755d617a Some code tweaks... 2017-11-02 20:08:52 +01:00
Ray San 415e7e972c Review some issues, view description
- Review RPI compilation (core_drop_files not supported)
- Review ImageFormat(), some issues
- GetTextureData() reviewed for RPI
2017-10-30 13:51:46 +01:00
Ray San f460b3842e Added new example: text drawing on image 2017-10-30 09:37:16 +01:00
Ray 743cc6add6 Review new build platform: FreeBSD
Corrected issue with RPI_CROSS_COMPILE
2017-10-30 00:14:13 +01:00
raysan5 ecf797cc7d Updated VS2015 project include and link paths 2017-10-29 14:33:35 +01:00
Ray 52cd0395b4 Merge pull request #373 from Martinfx/master
Added support FreeBSD
2017-10-28 22:22:04 +02:00
Martinfx f897169160 Removed comment 2017-10-28 18:53:32 +02:00
Martinfx 47c7f3624f Added support FreeBSD for example 2017-10-28 18:41:29 +02:00
Martinfx b3110c14fe Added support FreeBSD 2017-10-28 17:30:02 +02:00
Ray San ab01cd45bc Review rlReadTexturePixels()
Improve second option to retrieve texture data from fbo...

Still requires some testing...
2017-10-25 12:46:26 +02:00
Ray San 31c8c86d8e Comment tweak...
...while reviewing GetTextureData() functionality on OpenGL ES 2.0
2017-10-25 12:33:44 +02:00
Ray 9b24554698 Added youtube channel link
Hopefully new videos comming soon...
2017-10-25 11:37:19 +02:00
Ray 539a9ca50e Corrected ImageTextEx()
- Added new function: GenImageColor()

ImageDraw() should be reviewed... specially alpha blending...
2017-10-25 01:24:17 +02:00
Ray cbe0dcedfe Corrected issue with ttf font y-offset 2017-10-25 00:30:58 +02:00
Ray 61b0ab5332 Corrected some issues on game
Now it works! :)
2017-10-24 00:27:25 +02:00
Ray 9668f546d3 Example shader correction 2017-10-23 22:41:06 +02:00
raysan5 bd2e3b2a90 Removed file 2017-10-23 00:21:20 +02:00
Ray 8380c488be Merge pull request #371 from raysan5/develop
Integrate Develop branch
2017-10-22 20:43:57 +02:00
Ray 2ba43b595e Update file 2017-10-22 20:07:40 +02:00
Ray ad31730b6a Added cross-compiler RPI libs 2017-10-22 20:00:38 +02:00
Ray 6cec382f65 Comments tweak 2017-10-22 20:00:18 +02:00
Ray b6c9b54316 Simplified desktop examples compilation 2017-10-22 12:09:00 +02:00
Ray 551de156bb Name tweak 2017-10-22 12:08:42 +02:00
Ray a483e17f50 Adapted games to compile for Android 2017-10-22 11:48:41 +02:00
Ray 3f9d76f227 Updated Makefile to support Android 2017-10-22 11:12:10 +02:00
Ray 33da9bc8f6 Simplified flags 2017-10-22 11:07:55 +02:00
Ray 368b0320c6 Added resource config file 2017-10-22 11:07:17 +02:00
Ray San df67e799dd Updated release versions for raylib 1.8 2017-10-20 17:14:58 +02:00
Ray 18601f7619 Merge pull request #369 from raysan5/develop
Integrate Develop branch
2017-10-20 16:15:23 +02:00
Ray 1ef818b032 Update example 2017-10-20 13:59:08 +02:00
Ray d9d9546ee5 Updated to latest library version 2017-10-20 12:13:21 +02:00
Ray 1375a616b2 Some examples code tweaks 2017-10-20 00:18:21 +02:00
Ray San 037fbc571a Remove unused file 2017-10-19 14:37:00 +02:00
Ray San e3dcccb936 Updated raylib release 1.8 2017-10-19 14:19:04 +02:00
Ray San 86df9168e7 Updated raylib VS2015 project 2017-10-19 14:14:18 +02:00
Ray San 1474172b4a Updated for raylib 1.8 2017-10-19 13:25:51 +02:00
Ray 53280a56e3 Merge pull request #367 from raysan5/develop
Integrate Develop branch
2017-10-18 00:12:27 +02:00
Ray 5b71e5b3d1 Update CHANGELOG 2017-10-17 13:37:07 +02:00
Ray San 7057d08369 Review VR functionality
To be more generic and configurable
2017-10-17 13:32:15 +02:00
Ray San 8ace02c2ff Added new examples to build...
...and reviewed some details
2017-10-17 13:30:41 +02:00
Ray San 76c821a68d Add screenshot 2017-10-17 11:52:01 +02:00
Ray San 5dc216f419 Improved some examples 2017-10-17 11:51:50 +02:00
Ray San b065edc878 Review issue with resources folder 2017-10-16 13:40:48 +02:00
Ray San 7f602c9e1e Updated libraries for Windows 2017-10-16 13:37:25 +02:00
Ray San a6ccc14d39 Corrected issue with OpenAL Soft static 2017-10-16 13:37:10 +02:00
Ray 63507d5f81 Review some issues
It seems there are some platform-dependant issues
2017-10-14 18:04:21 +02:00
raysan5 0a3473a2a9 Reverted to old OpenAL libraries
mingw32 libraries provided were compiled with a different GCC version
(different computer) and seemed to be incompatible on linkage (missing
symbols).
2017-10-14 12:29:02 +02:00
raysan5 afea7e2aff Web release for raylib 1.8 2017-10-14 12:26:00 +02:00
raysan5 4909f9711c Small tweak, remove tabs 2017-10-14 12:25:36 +02:00
raysan5 0d8a994d95 Review templates for Android
- Removed useless templates
- Reviewed all Makefiles
- Rework some code for Android support
- Added resources to advance template
2017-10-14 12:25:08 +02:00
raysan5 d012316b87 NEW self-contained Android Makefile for APK build 2017-10-14 00:14:57 +02:00
raysan5 ba4b39a025 Working on game templates 2017-10-14 00:14:24 +02:00
raysan5 5430d5d52e Review Makefiles 2017-10-14 00:13:23 +02:00
raysan5 975e611bb8 Added new logo sizes (required for Android) 2017-10-14 00:11:58 +02:00
raysan5 9446746001 Corrected issues on examples 2017-10-14 00:11:37 +02:00
raysan5 ea5f4eabf8 Remove android_project template 2017-10-14 00:10:55 +02:00
raysan5 dffe635fd3 Remove basic_test template 2017-10-14 00:10:03 +02:00
Ray c043226b56 Merge pull request #366 from a3f/develop
Fix warning about unsequenced modification of variable
2017-10-13 14:03:15 +02:00
Ahmad Fatoum 107294f3e6 Fix bug, add some whitespace 2017-10-13 13:55:01 +02:00
Ahmad Fatoum cd6d752217 Fix warning about unsequenced modification of variable
Variable t was read and modified without interleaving sequence points,
technically undefined behavior. Report by Clang's -Wunsequenced
2017-10-12 19:51:21 +02:00
raysan5 8928248c71 Review comments about raylib 2017-10-12 14:07:31 +02:00
raysan5 c63051bd9e Added glfw3 msvc lib 2017-10-12 13:56:42 +02:00
Ray d649ff0823 Update README.md 2017-10-12 13:51:29 +02:00
Ray dc6e559bf6 Merge pull request #365 from a3f/develop
Add Travis CI integration
2017-10-12 11:29:09 +02:00
Ahmad Fatoum f4a2d1ef29 Add Travis CI integration
Also adds commented-out deployment on tag specification
(push build artifacts to Github releases page).
2017-10-12 10:16:30 +02:00
Ray e129d52897 Update README.md 2017-10-11 22:47:46 +02:00
Ray San 399d4b5f46 Check to avoid bool redefinition 2017-10-11 13:29:01 +02:00
Ray San 7114c1b1f3 Updated compilation output paths 2017-10-11 13:28:38 +02:00
Ray San 32d855470d Updated release libraries for win32/mingw32 2017-10-11 13:28:16 +02:00
Ray San 1bab8f05cc Cleaning Android project template
Notice that requries libraries are directly taken from
raylib/release/libs/android folder and nativeLoader.java is generated by
Makefile on the go
2017-10-11 12:15:40 +02:00
Ray San d302316e51 Reorganize release and dependencies 2017-10-11 11:22:49 +02:00
Ray San ef6674a99d More work on Android building... 2017-10-10 14:06:21 +02:00
raysan5 2051be3825 Add mesh generation example -IN PROGRESS- 2017-10-09 10:13:02 +02:00
Ray San 7b63b0b132 Android APK building...
Using shared libraries just don't work...
2017-10-05 14:04:22 +02:00
Ray 9640a7d7df Update CONTRIBUTORS.md 2017-10-05 13:07:37 +02:00
Ray San 9000fc28a3 Keep working on Android shared libs... 2017-10-04 12:51:53 +02:00
Ray San 412c52499a Reverted change that breaks 3D drawing
It should be reviewed more carefully...
2017-10-04 12:13:32 +02:00
Ray San ddea9d68bf Review VR simulator
Requires some work, distortion shader could be move out of raylib to
example code...
2017-10-04 12:11:40 +02:00
Ray San ca0ff82046 Keep working on Makefiles... 2017-10-03 15:02:32 +02:00
Ray c273fe9756 Update HISTORY.md 2017-10-02 23:46:57 +02:00
Ray 6dd97409d6 Update HISTORY.md 2017-10-02 23:36:50 +02:00
Ray San b2789949ee Working on Makefiles... 2017-10-02 14:12:03 +02:00
Ray San 1288d6a5df Updated android_native_app_glue 2017-10-02 13:06:34 +02:00
Ray San ea0decece8 Updated OpenAL Soft headers 2017-10-02 13:06:19 +02:00
Ray San 144b0ed695 Renamed gif writting library 2017-10-02 13:06:04 +02:00
Ray 515a7c3526 Merge branch 'develop' of https://github.com/raysan5/raylib into develop 2017-10-02 00:12:55 +02:00
Ray b043c5e277 Trying to correct drawing issues... 2017-10-02 00:12:52 +02:00
Ray 52f7ee6b5f Update ROADMAP.md 2017-09-30 00:56:22 +02:00
Ray 87920111aa Update CHANGELOG 2017-09-30 00:47:16 +02:00
Ray 4f9de9527f Review gradient rectangle drawing
Added: DrawRectangleGradientV()
Added: DrawRectangleGradientH()
2017-09-30 00:46:31 +02:00
Ray 639f41cf54 Renamed example file 2017-09-30 00:45:03 +02:00
Ray 541dceb87b Updated libraries for release
OpenAL Soft and raylib compiled for release and stripped
2017-09-29 23:45:21 +02:00
Ray 1c7416910e Default to OpenAL static lib 2017-09-29 23:44:31 +02:00
Ray San 2fbc2eede6 Updated to work! 2017-09-29 14:13:17 +02:00
Ray San c418aa2fb0 Keep working on Android custom building...
...almost there! raylib already works, issues with OpenAL Soft
linkage...
2017-09-29 13:58:49 +02:00
Ray San ccd6271a7f Added some compiler flags for Android 2017-09-29 13:57:00 +02:00
Ray San c45eeb8024 Code tweaks and comments for Android 2017-09-29 13:56:37 +02:00
Ray San becddd7725 Updated raylib Android release 2017-09-29 13:56:15 +02:00
Ray San dc4dba4857 Strip down functionality for testing 2017-09-28 17:12:34 +02:00
Ray San f5dcb51efe Work on custom Android build
- Renamed some folders
- Added some files for testing
- Removed useless files
2017-09-28 17:05:43 +02:00
Ray San e284adcfc1 Added verbose output 2017-09-27 14:35:17 +02:00
Ray San 96b8c9dd5a More work on Android APK building...
For some reason it's not working properly... :(
2017-09-26 12:00:50 +02:00
Ray San 42db9584de Working on Android APK building... 2017-09-26 11:18:58 +02:00
Ray 8068b86742 Merge pull request #361 from raysan5/master
Integrate master changes into develop...
2017-09-26 09:14:04 +02:00
Ray 4a63e5dfb3 Merge pull request #360 from raysan5/develop
Integrate Develop branch
2017-09-26 09:13:16 +02:00
Ray 5ace947a80 Create CONTRIBUTORS.md 2017-09-26 09:12:47 +02:00
Ray 7ca90d87f9 Move CONTRIBUTORS list to own file 2017-09-26 09:12:02 +02:00
Ray 2068037417 Code tweak 2017-09-26 00:51:31 +02:00
Ray ed9744756e Updated ( 2017-09-26 00:38:34 +02:00
Ray 934e6c01ab Merge pull request #359 from jubalh/develop
Increment version in meson build file
2017-09-25 12:23:03 +02:00
Michael Vetter 4a406fa94b Increment version in meson build file
Increment raylib version and so lib version number.
2017-09-25 12:15:48 +02:00
raysan5 8462ed73fe Added JAVA_HOME 2017-09-23 19:41:02 +02:00
raysan5 b0f033b43a Some work on rres... 2017-09-23 19:30:42 +02:00
Ray 4a8644e999 Update Android libs and building 2017-09-23 18:40:30 +02:00
Ray c317ffeca6 Updated comments and paths 2017-09-23 18:24:58 +02:00
Ray 86ebb877fe Working on project Makefile for Android 2017-09-23 18:08:19 +02:00
Ray 00274f070f Working on Android APK building with Makefile 2017-09-23 00:25:31 +02:00
Ray ff9b486ebe Removed matrix resetting...
to emulate OpenGL funcionality
2017-09-22 13:53:29 +02:00
Ray b9250cc47b Update HELPME.md 2017-09-18 01:22:24 +02:00
Ray 42505f0d0a Update ROADMAP.md 2017-09-18 01:19:28 +02:00
raysan5 20968830c0 Added mesh generation functions 2017-09-18 00:59:22 +02:00
Ray 1d91a46008 Corrected out-of-bounds array issue 2017-09-13 22:23:24 +02:00
raysan5 f3f6d3fd8e Added new functions
SetWindowTitle()
GetExtension()
2017-09-08 09:35:54 +02:00
Ray fb334e2fd1 Testing shapes generation using additional library 2017-09-02 17:42:22 +02:00
victorfisac dd50348b4d Merge branch 'master' of https://github.com/raysan5/raylib 2017-09-02 08:25:38 +02:00
raysan5 12cb3afd9e Added function DrawRectangleGradientEx()
Moved function DrawRectangleT() from text module to shapes
Added some comments
2017-08-27 21:02:24 +02:00
Ray b951f8700e Merge pull request #349 from raysan5/master
Integrate master changes into develop branch
2017-08-27 20:59:55 +02:00
Ray 958fed26c9 Merge pull request #348 from define-private-public/cmake_partial
CMake based build system.
2017-08-27 20:58:49 +02:00
ASDF e173db19f7 CMake based build system.
Some people might find this handly
2017-08-27 13:28:02 -04:00
victorfisac 353912b215 Merge branch 'master' of https://github.com/raysan5/raylib 2017-08-27 12:48:51 +02:00
Ray c074783861 Merge pull request #346 from raysan5/develop
Integrate Develop branch
2017-08-25 01:53:15 +02:00
raysan5 0fc1323c80 Renamed modelviewprojection matrix 2017-08-25 01:43:55 +02:00
raysan5 74fd671763 Remove old comment... 2017-08-24 23:57:34 +02:00
raysan5 b0adac96b7 Review issue with mipmaps setup
On DDS files mipmapCount header parameter could be unused and set to 0,
resulting in a wrong mipmap count and wrong compressed texture loading.
2017-08-24 20:33:30 +02:00
raysan5 93a4b5e851 Added compiler flag...
...to avoid issue on Arch Linux
2017-08-24 18:27:31 +02:00
Ray f78747130c Merge pull request #345 from JellyPixelGames/fix-typos
Fix typo in raymath.h
2017-08-24 11:52:44 +02:00
Michael Campagnaro 18bf0ac044 Fix typo in raymath.h 2017-08-23 22:55:43 -04:00
raysan5 88839b093c Added function DrawRectangleT()
Usefult to draw rectangles using default font texture
2017-08-06 10:44:50 +02:00
raysan5 0169b72bdc Minor tweaks 2017-08-06 10:43:43 +02:00
raysan5 6369b47f11 Force OpenGL 3.3 on OSX if selected OpenGL 2.1 2017-08-04 19:18:55 +02:00
raysan5 ae35c37c8a Corrected game to run on OpenGL 1.1 2017-08-04 18:56:36 +02:00
raysan5 eeca607506 Review transforms to match OpenGL 1.1 2017-08-04 18:34:51 +02:00
raysan5 1f310f7d4b new example added: models_plane_rotations 2017-08-04 13:38:21 +02:00
raysan5 2ec8880197 Updated stb libs to latest version 2017-08-04 12:58:39 +02:00
raysan5 fba117e3cd Removed old tool
Not usable any more, raylib changed internally
2017-07-31 19:42:26 +02:00
Ray 7045ceaaed Merge pull request #342 from define-private-public/patch-2
Make physac work on OS X
2017-07-31 08:09:01 +02:00
Benjamin Summerton 71d9426565 Make physac work on OS X
Physac wasn't working on OS X.  It looks like the necessary timing code wasn't being compiled in by the preprocessor.

fixes #340
2017-07-30 23:56:58 -04:00
Ray d071418cba Added Vector3MultiplyV()
To multiply Vector3 by Vector3
2017-07-28 20:58:38 +02:00
Ray 2a263f7b5f Corrected compilation on OpenGL ES 2.0 2017-07-28 19:59:04 +02:00
raysan5 17d40b2f37 Corrected function name 2017-07-25 18:26:22 +02:00
Ray c59651bff0 Update README.md 2017-07-25 18:20:26 +02:00
raysan5 c764b3d03e Some tweaks 2017-07-25 18:10:07 +02:00
Ray 1fcca40db5 Update README.md 2017-07-25 11:40:04 +02:00
Ray 98f447f714 Update README.md 2017-07-25 11:28:22 +02:00
raysan5 072684d276 Removed webpage from raylib repo
Moved to own repo at @raysan5/raylib.com
2017-07-24 20:04:54 +02:00
raysan5 b2712b6db7 Corrected issue on QuaternionFromVector3ToVector3() 2017-07-23 17:29:51 +02:00
raysan5 f57367e786 Implemented some changes 2017-07-23 13:20:35 +02:00
raysan5 a766e2c480 Updated Vector math to new naming 2017-07-22 22:15:50 +02:00
raysan5 3655c6e466 Renamed Vector*() functions to Vector3*()
For consistency!
2017-07-22 22:13:26 +02:00
raysan5 2227742e96 Corrected bug on texture rotation 2017-07-22 18:10:34 +02:00
raysan5 814f665bc1 Reviewed features list 2017-07-22 16:58:22 +02:00
raysan5 2fc7bc9504 Reviewed example with new maths 2017-07-22 13:02:02 +02:00
raysan5 cbb134946c Corrected GetMouseRay() and rlUnproject()
Now it works great with reviewed maths
2017-07-22 11:02:40 +02:00
raysan5 c756227e11 Remove BOM from file encoding 2017-07-22 10:44:24 +02:00
raysan5 00d2768bc9 Corrected bug on MatrixPerspective()
Some other tweaks...
2017-07-22 10:35:49 +02:00
Ray bee980e90f Merge pull request #333 from define-private-public/patch-1
Update Makefile in `examples/`
2017-07-22 09:48:59 +02:00
Benjamin Summerton c43caeccb6 Update Makefile in examples/
We need to grab the OS name before determining what the path should be.
2017-07-21 19:30:24 -04:00
raysan5 c6cd07c373 Some tweaks raymath related 2017-07-21 17:46:44 +02:00
raysan5 e52032f646 Complete review of raymath
Now it should be coherent with OpenGL math standards
2017-07-21 17:19:28 +02:00
raysan5 9040526f17 Adapt to new materials system 2017-07-21 17:17:37 +02:00
raysan5 38d9fcb08e Moved some functions to raymath
Exposed some raymath useful functions to raylib API
2017-07-21 15:25:35 +02:00
raysan5 980d9d4cd4 rlgl usable as standalone library 2017-07-21 10:42:57 +02:00
raysan5 84aff31973 MatrixPerspective() angle required in radians
Consistent with similar functions in raymath
2017-07-21 10:42:41 +02:00
raysan5 163339991c Review heightmap example for raylib 1.8 2017-07-21 09:55:10 +02:00
raysan5 92729662f4 Additional path check 2017-07-21 09:49:23 +02:00
raysan5 2679c4ae9b Review mesh loading and textures generation 2017-07-21 09:34:09 +02:00
raysan5 63fd96354e Simplify a bit GenTexture*() functions
Still shader dependant, locations set should be moved out
2017-07-20 14:27:59 +02:00
raysan5 4c06725461 Removed useless functions
SetMaterialTexture() and UnsetMaterialTexture()... too shader
dependant...
2017-07-20 14:27:17 +02:00
raysan5 52cd5c6324 Corrected some issues
Corrected compilation for OpenGL 1.1
Review mesh data uploading to GPU
2017-07-20 12:26:25 +02:00
raysan5 0dabb2708b Reorganized a couple of functions 2017-07-19 19:53:53 +02:00
raysan5 76c6f0b1e6 Working on PBR system
Moved PBR material loading to example, right decision?
2017-07-19 18:55:32 +02:00
Ray e8b65422c4 Merge pull request #329 from define-private-public/328.shared-library-on-os-x
Able to make a .dylib for OS X
2017-07-19 10:14:36 +02:00
raysan5 d368403a13 Working on PBR materials, renamed some data 2017-07-19 10:09:34 +02:00
Benjamin N. Summerton ba32d6a753 Able to make a .dylib for OS X 2017-07-18 22:37:09 -04:00
Ray 8f569e59b1 Review shared library generation 2017-07-17 14:16:23 +02:00
Ray bf169f7f42 Added PBR required resources 2017-07-17 14:06:27 +02:00
raysan5 e893f3629e Corrected some issues 2017-07-17 12:02:46 +02:00
Ray 6546474fa4 Manual integration of material-pbr into develop 2017-07-17 00:33:40 +02:00
Ray 025dab9907 Updated twitter address 2017-07-16 23:11:59 +02:00
victorfisac eb7b5e59bb Merge branch 'master' of https://github.com/raysan5/raylib 2017-07-15 16:05:00 +02:00
raysan5 8ca8550739 Removed function reference 2017-07-08 14:22:48 +02:00
raysan5 013f80f3a3 Added command line compiling with MSVC
That's just a reference file, needs review
2017-07-08 14:20:05 +02:00
raysan5 53fbeeea71 Corected some issues with jar_xm
Problems when compiling with VS2015
Probably DEBUG(...) macro is not the best naming...
2017-07-08 14:19:27 +02:00
raysan5 36fcffeaae Incremented version number for reference 2017-07-02 19:29:21 +02:00
raysan5 6589c808b5 Review some formatting for consistency 2017-07-02 19:29:01 +02:00
raysan5 5f0f87ecce Added VS2015 raylib release files 2017-07-02 14:41:14 +02:00
raysan5 65cf3080a5 Review VS2015 projects configurations 2017-07-02 14:33:40 +02:00
raysan5 c04cb0a65e Review TraceLog() usage 2017-07-02 12:43:49 +02:00
raysan5 9f09f6f550 Rename enum LogType names...
...to avoid possible conflicting symbols
2017-07-02 12:35:13 +02:00
raysan5 bfa66f446a Review raylib path on rpi 2017-07-02 12:09:02 +02:00
Ray c949b74114 Merge pull request #315 from joeld42/obj-loader-fix
Fix for OBJ loading
2017-07-01 10:23:47 +02:00
Joel Davis e0c95ede50 Prevent bogus triangle being added when there is whitespace at end of .OBJ file 2017-06-30 23:37:19 -07:00
Ray 83b4b13a2c Merge pull request #314 from nounoursheureux/develop
Fix some typos (lenght -> length)
2017-06-29 16:31:40 +02:00
Wilhem Barbier 056a494baf Fix some other typos 2017-06-29 10:36:58 +02:00
Wilhem Barbier aba3739c13 Fix some typos in raymath.h 2017-06-29 10:30:21 +02:00
Ray 495b6d8883 Merge pull request #313 from nounoursheureux/develop
Removed an unwanted file and fixed an example
2017-06-29 09:05:46 +02:00
Wilhem Barbier 3c9aa780f9 Removed an unwanted file and fixed an example 2017-06-28 19:14:20 +02:00
Ray 5f5bd20f07 Merge pull request #312 from nounoursheureux/image_gen
Add a density parameter to GenImageRadialGradient
2017-06-28 18:27:55 +02:00
Wilhem Barbier 786cd63057 Add a density parameter to GenImageRadialGradient 2017-06-28 17:27:47 +02:00
Ray c3049a9b06 Merge pull request #311 from nounoursheureux/image_gen
Add more image generation functions: radial gradient and perlin noise
2017-06-28 16:20:25 +02:00
Ray c51f63f661 Merge pull request #310 from nounoursheureux/save_image
Add the SaveImageAs function
2017-06-28 15:58:05 +02:00
Wilhem Barbier 3fe268d004 Swap the two parameters 2017-06-28 15:38:34 +02:00
Wilhem Barbier a0ac8ee2c4 Add more image generation functions: radial gradient and perlin noise 2017-06-28 15:29:56 +02:00
Wilhem Barbier 954757532a Add the SaveImageAs function 2017-06-28 14:32:44 +02:00
Ray 92ca68aac8 Merge pull request #309 from nounoursheureux/image_gen
Add some image generation functions
2017-06-28 13:39:18 +02:00
Wilhem Barbier fcd13fd5d2 Add some functions to generate images
Namely:
- GenImageHorizontalV
- GenImageHorizontalH
- GenImageChecked
- GenImageWhiteNoise
- GenImageCellular

The gradient implementation may be a bit naive, for example it doesn't do any gamma correction.
2017-06-28 12:56:04 +02:00
Ray c46abd34d4 Merge pull request #305 from jubalh/mesondepv
Add version info to glfw dependency
2017-06-13 16:33:11 +02:00
Michael Vetter 03c4ed6b3f Add version info to glfw dependency
glfwSetWindowMonitor and some other functions are only available from 3.2
onwards.
2017-06-13 16:07:57 +02:00
Ray 8c1f32f2fe Additional check on file open 2017-06-12 14:21:50 +02:00
Ray eee8393eb0 Merge pull request #303 from jubalh/mesongnu
Meson: use gnu99
2017-06-11 23:59:29 +02:00
Ray 5370fe18e0 Additional check for bool header definition 2017-06-11 23:58:46 +02:00
Michael Vetter 4fad1607ed Meson: use gnu99
We use variable init in for loops, so need c99.
2017-06-11 23:53:03 +02:00
Ray 4b1bc7f65e Merge pull request #301 from jubalh/time
Add define to have CLOCK_MONOTONIC work in c99
2017-06-11 16:22:53 +02:00
Michael Vetter 272073785f Add define to have CLOCK_MONOTONIC work in c99
If we compile with c99 without gnu extensions (gnu99) we need this
define, to have CLOCK_MONOTONIC and similar macros available
2017-06-11 11:20:30 +02:00
Ray b6d7fa9bb0 Merge pull request #299 from jubalh/soversion
Add library versioning
2017-06-08 22:18:10 +02:00
Michael Vetter 1a61dc2c77 Meson: build library with so version
This should always be the number of the raylib release.
Especially when the new version is ABI incompatible the major version
should be bumped.
2017-06-08 17:03:25 +02:00
Ray 9dd3c03153 Merge pull request #297 from jubalh/meson
Initial meson support
2017-06-08 13:19:41 +02:00
raysan5 402a8bfd68 Added note about transposing 2017-06-05 18:53:53 +02:00
raysan5 43cb6414f6 Added note about transposing 2017-06-05 18:53:37 +02:00
Michael Vetter 567831a693 Allow static/dynamic library building with meson
Using the library() function instead of shared_library() allows changing
of the library type via the default_library option.
This allows for easy change between static and dynamic library building.

Use 'meson --default-library=static builddir' to build as static, if no builddir yet exists.
Use 'mesonconf -Ddefault_library=static builddir' to change the type for
an existing builddir.
2017-06-05 14:35:44 +02:00
Michael Vetter 9c524ee3a6 Add meson files for basic Linux building 2017-06-05 14:34:47 +02:00
Michael Campagnaro 1adc031301 Fix link in readme 2017-06-05 14:33:47 +02:00
Ray 99c7ca4f4a Merge pull request #296 from sir-pinecone/fix-readme-link
Fix link in readme
2017-05-31 12:21:41 +02:00
Michael Campagnaro 60f0d78170 Fix link in readme 2017-05-31 05:51:18 -04:00
Ray a08cf1ce63 Merge pull request #295 from jubalh/cflags
Accept external CFLAGS
2017-05-29 20:47:03 +02:00
Michael Vetter 6809380d3d Accept external CFLAGS
Some distributions build the programs with a specific set of CFLAGS.
Lets allow that by adding raylibs flags.
2017-05-29 19:00:53 +02:00
Ray d5c43099cd Upload image 2017-05-28 21:29:59 +02:00
raysan5 f54501a355 Review gif recording (simplified) 2017-05-27 14:40:05 +02:00
raysan5 90f3f870c2 Added bunnymark example 2017-05-22 20:47:28 +02:00
raysan5 d0190af69f Renamed file (issues with Makefile) 2017-05-22 20:47:17 +02:00
Ray 07534497e6 Updated libs 2017-05-19 10:34:42 +02:00
Ray 910b4b5d53 Merge pull request #290 from raysan5/develop
Added patron to list
2017-05-19 01:02:01 +02:00
Ray 95b39e5345 Added patron to list 2017-05-19 00:59:21 +02:00
Ray 9f8a2e4612 Merge pull request #289 from raysan5/develop
Integrate develop branch
2017-05-19 00:56:03 +02:00
Ray 413d059fd8 Some tweaks and additions 2017-05-19 00:55:02 +02:00
Ray afb841b7dd Reverted to previous OpenAL version
Issues when pausin musing and trying to resume (not resuming!)
2017-05-18 23:26:20 +02:00
Ray c068de183b Added Android lib 2017-05-18 23:00:34 +02:00
Ray 949ed3f9f8 Merge pull request #288 from raysan5/develop
Integrate develop branch
2017-05-18 19:25:44 +02:00
Ray 9b24120cd9 Updated libs 2017-05-18 19:24:24 +02:00
Ray d033c87d27 Update HISTORY.md 2017-05-18 19:01:12 +02:00
Ray f1acd4a065 Update CHANGELOG 2017-05-18 19:00:18 +02:00
Ray e01a1ba10c Support Gif recording 2017-05-18 18:57:11 +02:00
Ray 1a37f09b02 Update README.md 2017-05-18 00:22:48 +02:00
Ray 4a4fffe439 Updated to latest version 2017-05-18 00:13:58 +02:00
Ray a083d4726f Update HISTORY.md 2017-05-17 17:56:45 +02:00
Ray aec6c0350a Update HISTORY.md 2017-05-17 17:47:40 +02:00
Ray 9f50c6e611 Added gif file writter library
Setup for a new amazing feature! ;)
2017-05-17 16:01:55 +02:00
Ray b4a68d2c87 Update HISTORY.md 2017-05-17 11:28:18 +02:00
Ray 636a2acc95 Update ROADMAP.md 2017-05-17 11:01:23 +02:00
Ray ad174def77 Update LICENSE.md 2017-05-17 09:25:41 +02:00
Ray 2800b2a19a Update CHANGELOG 2017-05-17 09:09:23 +02:00
Ray b6b01f5420 Merge pull request #287 from raysan5/develop
Integrate develop branch
2017-05-17 01:06:05 +02:00
Ray 1e2d3d93fe Some more patreons 2017-05-17 01:04:50 +02:00
Ray bc981a0628 Added patreons to web 2017-05-17 01:04:21 +02:00
Ray 34ce1048d0 Update README.md 2017-05-17 00:58:27 +02:00
Ray 33aef15555 Updated architecture diagram 2017-05-17 00:54:14 +02:00
Ray 9819614276 Comments tweaks 2017-05-17 00:33:40 +02:00
Ray 0780cd4e6a Web review 2017-05-17 00:33:29 +02:00
Ray a5bfd7db22 Some reviews for RPI 2017-05-16 15:23:01 +02:00
Ray e563ebe240 Update README.md
Reviewed comments and added acknowledgements
2017-05-16 00:43:57 +02:00
Ray f8a4498a24 Merge pull request #286 from raysan5/develop
Integrate develop branch
2017-05-16 00:20:17 +02:00
Ray 65e6a6db53 Improved shaders_postprocessing example 2017-05-16 00:14:14 +02:00
Ray c9d6b7e356 Merge branch 'develop' of https://github.com/raysan5/raylib into develop 2017-05-15 22:48:13 +02:00
Ray aba25e9ba3 Move shaders to examples 2017-05-15 22:48:04 +02:00
Ray b3b828c8bb Update README.md 2017-05-15 18:55:18 +02:00
Ray dd7b64a536 Simplify README
Move raylib history to another file
2017-05-15 18:36:38 +02:00
Ray 4ca229ed7f Renamed file 2017-05-15 18:26:53 +02:00
Ray a8f142e736 Renamed file 2017-05-15 18:23:09 +02:00
Ray 6a48e7376b Review example 2017-05-15 18:20:27 +02:00
Ray 4a31ce4bd2 Reorganize code 2017-05-15 18:07:23 +02:00
Ray 87a3970222 Move android_native_app_glue to folder 2017-05-15 18:06:26 +02:00
Ray 5f09c71f98 Review comments for better organization 2017-05-15 11:30:09 +02:00
Ray 2a2bee8964 raylib v1.7 release 2017-05-14 18:34:55 +02:00
Ray 31b598cbc6 Review Android template libraries
Updated to latest version, not tested
2017-05-14 18:33:42 +02:00
Ray fb0f2fd181 Moved Android header to external folder 2017-05-14 18:33:15 +02:00
Ray 01e65664dd Reviewed some comments... 2017-05-14 18:32:47 +02:00
Ray 32e5e20734 Update to latest OpenAL Soft version (1.18.0-dev)
Note that Android and Desktop versions of OpenAL Soft come from the same
sources, recompiled for every platform
2017-05-14 18:32:27 +02:00
Ray 026f9829e5 Review header comments 2017-05-14 18:30:51 +02:00
Ray a63ad0fec4 Remove OculusSDK library
Just waiting for a better future alternative (multiplatform)... OpenXR ?
2017-05-14 18:30:21 +02:00
Ray edb9e4159d Remove ndk-build based src building
Replaced by standaloane-toolchain based building, included in
src/Makefile
2017-05-14 18:29:05 +02:00
Ray 1ed3d3285f Merge pull request #285 from raysan5/develop
Integrate develop branch
2017-05-12 14:01:39 +02:00
raysan5 42ad00b7c2 Some test images for compressed texture formats 2017-05-11 23:14:15 +02:00
Ray fd5c36fc32 Avoid math function duplicates 2017-05-11 17:22:25 +02:00
Ray 3d6c1f3f4f Remove useless files 2017-05-11 17:08:33 +02:00
Ray 518bdfc134 Some work on Android build 2017-05-11 16:45:49 +02:00
Ray 35fe34ba0f Added some useful functions 2017-05-11 16:24:40 +02:00
Ray 27bccdbd50 Review some path for image sharing 2017-05-10 19:40:49 +02:00
Ray 3ec2365103 Added Wave Collector web version 2017-05-10 19:40:26 +02:00
Ray 76062247f8 Corrected some issues
Now works in WEB!
2017-05-10 19:39:52 +02:00
Ray 93e2fd8ea1 Some tweaks 2017-05-10 19:37:48 +02:00
Ray 16842233c9 Review issue and added some comments 2017-05-10 19:34:57 +02:00
Ray 0880be638e Renamed RayHitInfo variables 2017-05-10 00:57:48 +02:00
Ray 7f6b16add4 HDR textures vertical flip 2017-05-09 22:32:21 +02:00
Ray bac50fbba5 Review functions descriptions 2017-05-09 22:03:46 +02:00
Ray 321027a242 Added comments to create transparent framebuffer
Comments to create transparent framebuffer on RPI,
when activate you see though full screen window the console below!
2017-05-09 18:11:02 +02:00
Ray 0ca874c710 Merge pull request #282 from raysan5/develop
Integrate Develop branch
2017-05-09 09:35:58 +02:00
Ray 4c27412eff Corrected issue #281 2017-05-09 09:33:32 +02:00
Ray f05d6dfc3c Some comment tweaks
Still some work left on camera...
2017-05-08 21:16:46 +02:00
Ray 8ccb558996 First person camera now works on web 2017-05-08 21:04:14 +02:00
Ray fd1fe3ac14 Lock cursor on first person camera 2017-05-08 21:03:48 +02:00
Ray 35c6aff21f Corrected bug on HDR loading 2017-05-08 12:50:24 +02:00
Ray 50c887cb0a Support HDR R32G32B32 float textures loading 2017-05-08 12:31:47 +02:00
Ray 822c2ddad5 Some defines tweaks for consistency 2017-05-08 02:47:44 +02:00
Ray 83aba22e49 Improved hi-res timer on Win32 2017-05-08 02:37:37 +02:00
Ray a522914183 Included required paths for web compilation 2017-05-08 01:33:34 +02:00
Ray 3861bc80f2 StopMusicStream() review 2017-05-08 00:55:47 +02:00
Ray 39732d04ec Comments review 2017-05-08 00:55:26 +02:00
Ray 0ebd8b0f6e Review Android compiling 2017-05-08 00:47:15 +02:00
Ray 3bdf367711 Support model.transform
Combine it with transform introduced as function parameters
2017-05-04 17:42:24 +02:00
Ray 70a7c65668 Return angles as degrees 2017-05-04 17:41:51 +02:00
Ray 18b31f6792 Added two new functions to raymath 2017-05-04 00:35:41 +02:00
Ray 9c66d961d0 Merge branch 'develop' of https://github.com/raysan5/raylib into develop 2017-05-03 14:17:25 +02:00
Ray 2d5c8e61b1 Some code tweaks 2017-05-03 14:16:53 +02:00
Ray 73774aadd6 Review makefiles 2017-05-03 14:16:42 +02:00
Ray a64e909e55 Added games license 2017-05-03 14:16:11 +02:00
Ray c4500901eb Added HTML5 games 2017-05-03 14:15:49 +02:00
Ray 33069cddc5 Merge pull request #275 from victorfisac/develop
Added function to set window minimum dimensions
2017-05-03 01:20:08 +02:00
victorfisac e197665e1d Added function to set window minimum dimensions...
useful when using FLAG_WINDOW_RESIZABLE.
2017-05-02 15:04:32 +02:00
victorfisac db0cfa935f Merge remote-tracking branch 'refs/remotes/raysan5/develop' into develop 2017-05-02 14:18:11 +02:00
Ray d593bd0081 Some code tweaks 2017-04-30 13:03:31 +02:00
Ray 2d6213af60 Renamed deprecated function name 2017-04-28 00:30:23 +02:00
Ray 86f2d4b9f9 Commented pointer lock on web 2017-04-28 00:29:50 +02:00
Ray 66320582a3 Some work on example games 2017-04-28 00:29:23 +02:00
Ray c785d84d30 Merge pull request #270 from raysan5/develop
Move compiled game to right folder
2017-04-24 00:23:26 +02:00
Ray be40d97954 Move compiled game to right folder 2017-04-24 00:22:41 +02:00
Ray 71fe3c0b08 Merge pull request #269 from raysan5/develop
Integrate develop branch
2017-04-24 00:18:53 +02:00
raysan5 9a515ae9db Review examples list -IN PROGRESS- 2017-04-23 19:28:53 +02:00
raysan5 b4f4b179c2 Light my ritual web compilation 2017-04-23 19:28:35 +02:00
raysan5 0b869948c6 TraceLog() output tweak 2017-04-23 19:27:48 +02:00
raysan5 332f3b4f9d Set canvas background to black...
..to avoid blending issues with white background
2017-04-23 19:24:39 +02:00
raysan5 3c99093aed Rename variables for consistency 2017-04-23 12:30:36 +02:00
raysan5 f2656871e9 Review Makefiles default raylib path 2017-04-23 12:11:27 +02:00
raysan5 7bcae59477 Support XM modules by default 2017-04-23 12:06:05 +02:00
raysan5 3a1e6ab0b6 Review game code (something broken) 2017-04-23 12:05:47 +02:00
raysan5 9b072dc346 Review game examples Makefiles 2017-04-23 12:05:18 +02:00
raysan5 cfec2b40a4 Organize structs vs enums 2017-04-22 22:35:19 +02:00
raysan5 247da006ae Rename parameter 2017-04-22 22:35:04 +02:00
raysan5 b0f8ea27e3 Renamed function for lib consistency
LoadSpriteFontTTF() --> LoadSpriteFontEx()
2017-04-22 19:04:54 +02:00
Ray 5620e73914 Merge pull request #266 from Triangle345/patch-3
basic_game - update makefile
2017-04-21 23:04:02 +02:00
Eugene F ec22577e5a basic_game - update makefile
Removed glew from basic_game makefile as glew is not part of the raylib package (no glew in mingw).
2017-04-21 16:20:40 -04:00
Ray e38a7fcede Small tweak 2017-04-21 00:08:37 +02:00
Ray e7f0d0eef1 Corrected issue with alloca.h on GCC 2017-04-21 00:08:24 +02:00
Ray ecfe31bf1d Make TraceLog() public to the API
enum LogType could require some revision...
2017-04-21 00:08:00 +02:00
Ray 8d3750e36d Turn transparent pixels to black 2017-04-20 23:26:16 +02:00
Ray 1df7a8b4a6 Update some files 2017-04-20 18:09:30 +02:00
Ray 517a7e3466 Review makefiles 2017-04-20 00:57:03 +02:00
Ray 0ed82150f0 Merge pull request #263 from raysan5/develop
Added examples web images
2017-04-20 00:51:15 +02:00
Ray 61ce160023 Added examples web images
Added loader webs (previously ignored)
2017-04-20 00:49:39 +02:00
Ray bc1bfe54d6 Merge pull request #262 from raysan5/develop
Integrate develop branch
2017-04-20 00:21:38 +02:00
Ray 35172430c6 Added SUPPORT_VR_SIMULATOR flag 2017-04-18 11:49:02 +02:00
Ray a5c8ce2a34 Upload new game: Koala Seasons 2017-04-18 10:42:15 +02:00
Ray 99c226b344 Delete some old data...
- Removed raylib_demo (outdated)
- Removed some old examples
2017-04-18 10:30:37 +02:00
Ray be4d530ebe Removed rBMF fonts 2017-04-18 10:15:24 +02:00
raysan5 4b8a0268ed Added physac examples to web
Some tweaks on original src files
2017-04-17 17:25:27 +02:00
raysan5 881f134f4d Review and recompile web examples 2017-04-17 16:42:01 +02:00
raysan5 3e082f1d62 Updated physac to latest version 2017-04-16 19:08:34 +02:00
raysan5 b4d28cc7a1 Working on examples...
- Removed rbmf font example
- Reviewed physac examples
2017-04-16 19:08:19 +02:00
raysan5 c67cffea38 Updated STB libs to latest version 2017-04-16 14:06:04 +02:00
victorfisac 8849a4c752 Merge remote-tracking branch 'refs/remotes/raysan5/develop' into develop 2017-04-16 14:03:39 +02:00
raysan5 f5894278b7 Added Vector2 math functions
Reviewed some Vector3 functions
Added auxiliary Clamp() function
2017-04-16 13:48:46 +02:00
raysan5 7e65c300b6 Make public TakeScreenshot() function 2017-04-16 13:47:49 +02:00
raysan5 9956344215 new example: shapes_lines_bezier 2017-04-14 15:37:50 +02:00
raysan5 843731e048 new example: text_input_box 2017-04-14 15:37:36 +02:00
raysan5 4315b82ea7 Replaced some images and updated examples 2017-04-14 13:58:39 +02:00
Ray 82c54449bf Merge pull request #260 from RDR8/develop-c99-cflags
Added _DEFAULT_SOURCE to CFLAGS for C99 compatibility
2017-04-13 11:16:10 +02:00
RDR8 774b120335 PLATFORM_WEB cleanup 2017-04-12 22:05:54 -05:00
RDR8 1bba1242f4 Added _DEFAULT_SOURCE to CFLAGS for C99 compatibility 2017-04-12 20:26:29 -05:00
raysan5 677c5cc9a8 Removed useless files 2017-04-10 15:30:36 +02:00
Ray f7bebf9861 Working on web examples
Reorganizing folders
Review examples
Work on makefile and loader.html
2017-04-09 23:46:47 +02:00
Ray 8374460c39 Added glfw3 lib (for VS2015) 2017-04-08 23:32:30 +02:00
Ray 20d205cae5 Working on examples... 2017-04-08 23:31:58 +02:00
Ray 5fd83708cf Added web files to ignore 2017-04-08 11:19:11 +02:00
Ray 17b3f5e02e Support generic target compilation 2017-04-08 11:12:25 +02:00
Ray d2d4b17633 Web: Support pointer lock 2017-04-08 00:16:03 +02:00
Ray ca338b3318 Merge branch 'develop' of https://github.com/raysan5/raylib into develop 2017-04-07 00:51:26 +02:00
Ray 29067e19d9 Redesigned textures_rectangle example 2017-04-07 00:51:08 +02:00
Ray 74255b6eb2 Corrected project paths 2017-04-07 00:50:20 +02:00
Ray 795c6b465c Working on web examples 2017-04-07 00:49:49 +02:00
Ray eb7212fe42 Merge pull request #258 from victorfisac/develop
Calculate tangents when loading a mesh
2017-04-06 20:45:32 +02:00
victorfisac 82577ededc Comment unused variables from tangent calculations 2017-04-06 15:34:04 +02:00
victorfisac 4b7ea25603 Remove testing binormals implementation 2017-04-06 15:33:20 +02:00
victorfisac 0c2a58cf96 Add tangents calculation when loading OBJ file 2017-04-06 15:31:48 +02:00
victorfisac 54f070a0f4 Merge remote-tracking branch 'refs/remotes/raysan5/develop' into develop 2017-04-06 15:28:04 +02:00
Ray c47b04a2c6 Working on web examples 2017-04-05 00:29:39 +02:00
Ray fdf8501e81 Improve vr support and simulator 2017-04-05 00:02:40 +02:00
Ray 99affa0caf Corrected issue when retrieving texture from GPU 2017-04-04 23:44:36 +02:00
Ray 407746193d Merge pull request #256 from raysan5/develop
Integrate develop branch
2017-04-04 12:17:08 +02:00
Ray 1f56e8e5d0 Minor code tweaks 2017-04-04 12:16:13 +02:00
Ray dd4dd0e87d Reorganize examples folder 2017-04-04 01:54:49 +02:00
Ray 5a230659ef Working in random crash...
Related to UpdateMusicStream(), in stb_vorbis
2017-04-04 00:21:52 +02:00
Ray c3b8a41f95 Remove function declaration 2017-04-03 23:10:49 +02:00
Ray 50bc77ed96 Improve web examples -IN PROGRESS- 2017-04-03 23:10:27 +02:00
victorfisac 256bc6e1dc Merge remote-tracking branch 'refs/remotes/raysan5/develop' into develop 2017-04-03 20:31:10 +02:00
Ray e6ed85e993 Update web examples -WORK IN PROGRESS- 2017-04-01 00:51:31 +02:00
Ray 0a33fbf8bb Corrected TraceLog issue 2017-04-01 00:48:40 +02:00
Ray 9724443c5b Remove Lua lib from vs2015 2017-04-01 00:47:39 +02:00
victorfisac 0d06c946f2 Merge remote-tracking branch 'refs/remotes/raysan5/develop' into develop 2017-03-30 02:46:19 +02:00
Ray 954a24545f Merge pull request #251 from RDR8/4krishna
Restore inadvertant changes to Makefiles
2017-03-29 23:27:11 +02:00
RDR8 44de97ea16 Fine-tuning PLATFORM_WEB CFLAGS 2017-03-29 16:04:29 -05:00
RDR8 f65bd8e4a0 Edit examples/Makefile PLATFORM_WEB CFLAGS to match src/Makefile 2017-03-29 14:49:20 -05:00
RDR8 4889f240fe Restore inadvertant changes to Makefiles 2017-03-29 12:59:46 -05:00
Ray 080a79f0b0 Added IsFileExtension()
Replaced old GetExtension() function
Make IsFileExtension() public to the API
2017-03-29 00:35:42 +02:00
Ray 2f65975c5e Remove RBMF fileformat support 2017-03-29 00:02:40 +02:00
Ray b5dd18a70c Review Sleep() usage, return to busy-wait-loop 2017-03-28 19:15:27 +02:00
Ray 5338bbf70d Merge pull request #250 from raysan5/develop
Integrate develop branch
2017-03-26 23:06:17 +02:00
Ray 90b36bd274 Merge branch 'develop' of https://github.com/raysan5/raylib into develop 2017-03-26 22:49:11 +02:00
Ray b7a8a40e71 Work on configuration flags 2017-03-26 22:49:01 +02:00
Ray 160408f269 Merge pull request #249 from RDR8/games-linux
Fixed some games. Replaced font.size with font.baseSize. Uncommented linux libs.
2017-03-26 14:43:21 +02:00
RDR8 72b90bff0f Merge remote-tracking branch 'origin/develop' into games-linux 2017-03-25 21:13:17 -05:00
RDR8 efc4b2941b Missed a couple 2017-03-25 21:03:28 -05:00
RDR8 0c16af01e5 Replaced font.size with font.baseSize. Uncommented linux libs. Typo or two 2017-03-25 20:41:04 -05:00
Ray 5387b45431 Working on configuration flags 2017-03-25 12:01:01 +01:00
victorfisac b2f0c7ca8b Merge remote-tracking branch 'refs/remotes/raysan5/develop' into develop 2017-03-24 15:37:58 +01:00
Ray 3f0c296422 Merge pull request #248 from RDR8/linux-c99
linux-c99
2017-03-24 10:43:34 +01:00
RDR8 ff44cb02e7 Always something 2017-03-24 03:42:10 -05:00
RDR8 9eaff6902f Sweep blank lines 2017-03-24 03:37:49 -05:00
RDR8 f1bb245999 Strip trailing spaces 2017-03-24 03:32:07 -05:00
RDR8 e23c120c8b Automate compiler flags selection. 2017-03-24 03:28:12 -05:00
RDR8 9875198a56 c99 fix, some linux housekeeping 2017-03-24 01:20:24 -05:00
Ray 6ba5217c28 Merge pull request #246 from RDR8/staging-linux-gitignore
staging-linux-gitignore
2017-03-22 14:10:28 +01:00
RDR8 314e1e0fd5 Merge remote-tracking branch 'upstream/develop' into staging-linux-gitignore 2017-03-21 11:19:34 -05:00
RDR8 c87006f85a Don't ignore release libraries. 2017-03-21 11:16:18 -05:00
Ray 004117a05c core: configuration flags 2017-03-21 13:22:59 +01:00
Ray 2ac7b684b5 text: configuration flags 2017-03-21 13:22:47 +01:00
Ray 974a6d4031 Corrected bug 2017-03-21 13:21:07 +01:00
RDR8 ae0b776eaf Merge remote-tracking branch 'upstream/develop' into staging-linux-gitignore 2017-03-20 22:48:43 -05:00
Ray 59652c75b4 Review some comments 2017-03-20 20:34:44 +01:00
RDR8 7b42492941 Merge branch 'staging-linux-gitignore' of https://github.com/RDR8/raylib into staging-linux-gitignore 2017-03-20 13:54:03 -05:00
RDR8 8278eebfac Ignore vim temporary files, .a and .so, games/ 2017-03-20 13:47:15 -05:00
RDR8 3f3ee5e37f Ignore additional vim temporary files, .a and .so files, games/ executables 2017-03-20 13:33:53 -05:00
Ray fee5e8cfac Add files via upload 2017-03-19 18:40:41 +01:00
raysan5 46c2f2058f Added new patrons 2017-03-19 18:18:55 +01:00
raysan5 8f5ff64420 Working on file header comments... 2017-03-19 12:52:58 +01:00
raysan5 ca8c565617 Review contact information 2017-03-19 12:52:13 +01:00
raysan5 5d1f661661 Remove Oculus support from code
Moved to custom example, now raylib only supports simulated VR
rendering.
Oculus code was too device dependant... waiting for OpenXR.
2017-03-14 01:05:22 +01:00
raysan5 3813722f17 Added function: DrawLineBezier() 2017-03-14 00:22:53 +01:00
raysan5 63c65f8cc5 Updated game to raylib v1.7 2017-03-12 12:37:43 +01:00
Ray 2c0604aa29 Merge pull request #245 from raysan5/develop
Integrate develop branch
2017-03-12 11:40:41 +01:00
raysan5 023a08aeb9 Added some tools images 2017-03-12 11:39:00 +01:00
raysan5 7154b42f48 Corrected naming issue 2017-03-09 18:52:56 +01:00
Ray 7c888edba1 Corrected typo introduced in last commit 2017-03-09 16:25:15 +01:00
Ray 4ec65c0d25 Corrected issue with reserved words: near, far 2017-03-09 16:23:36 +01:00
Ray 81897e7771 Corrected bugs on RPI compilation 2017-03-09 13:13:13 +01:00
Ray b898a161f7 Merge pull request #242 from raysan5/master
Integrate master changes into develop
2017-03-07 09:49:53 +01:00
Ray 6d1519c132 Merge pull request #241 from raysan5/develop
Integrate develop branch
2017-03-07 09:49:04 +01:00
- cb29b1d2ac Removed unnecesary libs 2017-03-07 09:45:18 +01:00
Ray 6e683d57e8 Merge pull request #240 from victorfisac/develop
Updated Physac and examples with last changes
2017-03-07 08:45:53 +01:00
victorfisac c964559bc9 Update physac source and examples with new changes 2017-03-06 22:57:33 +01:00
Ray cb463a37ef Merge pull request #239 from victorfisac/develop
Fix bug in isGrounded state calculations
2017-03-06 16:24:03 +01:00
victorfisac f88a943418 Fix bug in isGrounded state calculations 2017-03-06 09:58:28 +01:00
victorfisac f9277f2163 Merge remote-tracking branch 'refs/remotes/raysan5/master' 2017-03-06 09:47:08 +01:00
victorfisac 9261c3b8dc Merge remote-tracking branch 'refs/remotes/raysan5/develop' into develop 2017-03-06 09:40:04 +01:00
raysan5 b734802743 Revert test code... 2017-03-05 21:05:17 +01:00
raysan5 59038bae96 Added function: DrawLineEx()
Supports line thickness
2017-03-05 21:04:07 +01:00
Ray c05701253e Merge pull request #238 from raysan5/develop
Integrate Develop branch
2017-03-05 19:17:34 +01:00
raysan5 aaf9c648d3 Merge branch 'develop' of https://github.com/raysan5/raylib into develop 2017-03-05 19:17:05 +01:00
raysan5 d1c9afd1d8 Work on timming functions...
It seems Sleep() behaves weird on my computer, disabled by default
returning to the busy wait loop... also re-implemented DrawFPS() to
avoid frame blitting...
2017-03-05 19:17:00 +01:00
Ray 47e3fbfc12 Update basic_game.c 2017-03-05 15:59:59 +01:00
Ray b347c35ef4 Merge pull request #237 from raysan5/master
Integrate master change into develop
2017-03-05 15:50:36 +01:00
Ray bb7b9adb37 Merge pull request #236 from raysan5/develop
Integrate Develop branch
2017-03-05 15:49:19 +01:00
Ray b16f118452 Add files via upload 2017-03-05 15:48:32 +01:00
raysan5 203d1a154e Clear music buffers on stop 2017-03-05 10:55:58 +01:00
raysan5 9cfaa81a7e Added some flags and functions to manage window
- SetWindowPosition(int x, int y);
- SetWindowMonitor(int monitor);
2017-03-05 10:55:29 +01:00
Ray 9cda98b4e9 Merge pull request #234 from bugcaptor/fix-vs2015-build-audio_c
fix for audio.c(607): error C2036 in Visual Studio.
2017-03-03 09:17:13 +01:00
bugcaptor de103ecc5e fix for audio.c(607): error C2036: 'void *': unknown size in Visual Studio 2015. 2017-03-02 10:07:09 +09:00
Ray 2ac956208d Update Makefile 2017-02-28 12:00:31 +01:00
Ray c46989a1d9 Merge pull request #230 from OdnetninI/develop
Examples Linux Physics Fix
2017-02-23 17:59:13 +01:00
OdnetninI bbdbc098dc Examples Linux Physics Fix
According to Man Pages, timespec with std=c99 needs "_POSIX_C_SOURCE 199309L". Due a some kind of bug, "#define _POSIX_C_SOURCE 199309L" doesn't work, so we must use "-D_POSIX_C_SOURCE=199309L" in compiler options.
2017-02-23 17:13:57 +01:00
Ray San d8c19be047 Review .html typo 2017-02-23 16:45:18 +01:00
Ray e54c8ecdf8 Merge pull request #229 from OdnetninI/develop
Fixed examples link
2017-02-23 16:38:58 +01:00
OdnetninI 34e791376d Fixed examples link
Last character 'l' was missing on examples link.
2017-02-23 16:32:19 +01:00
Ray 05cff44d0a Improved modules description -IN PROGRESS-
Working in modules configuration flags...
2017-02-16 00:50:02 +01:00
Ray 1c364cc507 Review rres loading to support multiple parts 2017-02-16 00:19:30 +01:00
Ray 177af272f0 Added function DrawRectanglePro() 2017-02-16 00:19:03 +01:00
raysan5 4cb3e4a240 Support resources divided in multiple parts
Every part is a resource itself, they are loaded in an array
2017-02-15 10:44:59 +01:00
raysan5 05f039f85f Corrected issue with OpenAL being 'keg only' on OSX
Also reviewed issue with stdbool when compiling with clang
2017-02-11 23:34:41 +01:00
raysan5 afcd748fdf Reviewed fread() usage around the code 2017-02-11 23:17:56 +01:00
Ray b4988777ef [audio] Renamed variable 2017-02-09 22:19:48 +01:00
Ray f8d94aeba5 Merge pull request #224 from raysan5/develop
Integrate develop branch
2017-02-09 18:25:16 +01:00
Ray San 42d5e3bd24 [web] Added new social networks
Replaced tabs by spaces
2017-02-09 18:13:23 +01:00
Ray San 836c1636a2 Remove lighting system from rlgl standalone header 2017-02-08 20:02:40 +01:00
Ray 9492901133 Merge pull request #223 from raysan5/develop
Integrate develop branch into master
2017-02-07 09:40:06 +01:00
Ray San 1f6eb1fc61 Moved raylib webpage to docs folder
raylib webpage has been completely reorganized and moved from gh-pages
(a pain to work with) to docs folder. Useless libs have been removed,
webs have been renamed, etc.

Now it would be easier (hopefully) to update webpage. :)
2017-02-06 18:48:56 +01:00
Ray f2f05a734d Added audio function: SetMusicLoopCount()
Useful to set number of repeats for a music, needs to be tested...
2017-02-06 01:03:58 +01:00
Ray ac6b4d3830 Added audio function: SetMasterVolume() 2017-02-06 00:44:54 +01:00
Ray 734776b923 Commented code for review 2017-02-06 00:44:21 +01:00
raysan5 7bf6a712cc Remove rlua from raylib main repo
Moved to own repo at https://github.com/raysan5/raylib-lua
2017-02-05 03:15:43 +01:00
raysan5 c4bd214cf0 Added function SetWindowIcon()
Only DESKTOP platforms (Windows, Linus, OSX)
2017-02-05 03:00:35 +01:00
raysan5 1a879ba08e Refactor SpriteFont struct
Now it uses CharInfo data, this way, it's better aligned with the future
RRES file format data layout for sprite font characters.
2017-02-05 02:59:39 +01:00
Ray a08117155d Init memory for screenshot to zero 2017-02-01 00:28:28 +01:00
Ray 495108a2e9 Updated raylib version to 1.7
Preparing for next version... still some work left... :P
2017-01-29 23:08:19 +01:00
Ray 30bb24aa6e Updated Gestures enum 2017-01-29 22:29:54 +01:00
Ray c85dfd4bc6 Remove unecessary spaces... 2017-01-28 23:02:30 +01:00
Ray b681e8c277 Implemented Wait()
Now program is halted (OS signal call) for required amount of time every
frame, so CPU usage drops to zero, instead of using a busy wait loop.
2017-01-28 00:56:45 +01:00
Ray 37a64df7b9 Move lighting system out of raylib
Lighting is implemented as a raylib example now
2017-01-27 23:03:08 +01:00
Ray 7b5f61ddf7 Merge pull request #218 from gen2brain/develop
Integrate Android build into Makefile
2017-01-26 22:25:41 +01:00
Milan Nikolic a1527f5620 Fix RPi build and add missing directories 2017-01-26 21:49:18 +01:00
Milan Nikolic 3c3a9318ff Integrate Android build into Makefile 2017-01-26 20:58:00 +01:00
Ray d8edcafe5a Wait for events when window is minimized...
...instead of keep polling
2017-01-25 11:38:15 +01:00
Ray ff7108389b Updated some code... for perfect transition 2017-01-25 00:44:04 +01:00
Ray San 8a549c3fbe Working in some bugs and screen transition
Detected a VERY weird code behaviour... :(
2017-01-24 12:14:15 +01:00
Ray 825eab37e2 Revert unneeded change 2017-01-24 00:32:16 +01:00
Ray 762d2580cd Some code improvements
Render wave in a render target
Implemented combo system
Removed big useless audio (fxWave)
2017-01-22 17:23:04 +01:00
Ray f164ec80d6 Upload wave collector - GGJ17 game 2017-01-22 15:31:56 +01:00
Ray 7586031410 Support 32bit wav data 2017-01-19 13:18:04 +01:00
Ray 7cd24d2706 Updated stb external libraries 2017-01-18 23:27:41 +01:00
Ray San 3b120bd7d9 Some tweaks for consistency 2017-01-18 19:14:39 +01:00
Ray San fc7d4cef18 Stop sound source before unloading 2017-01-18 17:25:25 +01:00
Ray San 46f95a730a Corrected bug on OGG sound loading 2017-01-18 17:04:20 +01:00
raysan5 6d6659205c Add support for 32-bit PCM sample data 2017-01-15 01:25:09 +01:00
raysan5 53457e4664 Work on rres file format -IN PROGRESS- 2017-01-15 01:11:38 +01:00
raysan5 e5a2def57f Code formatting 2017-01-15 01:10:34 +01:00
raysan5 61f6b0f707 Removed GetNextPOT(), review TraceLog() 2017-01-15 01:10:23 +01:00
raysan5 4a158d972d Added LoadText() function
Actually, renamed ReadTextFile() from rlgl and make it public
2017-01-15 01:09:15 +01:00
Ray 4ea8494f3e Merge pull request #216 from AudioMorphology/develop
modified:   core.c
2017-01-14 20:25:07 +01:00
AudioMorphology 07a2c00e84 modified: core.c 2017-01-14 16:18:06 +00:00
raysan5 1ca445a9b9 Merge branch 'develop' of https://github.com/raysan5/raylib into develop 2017-01-07 18:13:39 +01:00
raysan5 fbda9c4180 Support rRES data loading 2017-01-07 18:12:59 +01:00
Ray 9b334dcd25 Merge pull request #214 from AudioMorphology/develop
Added RPi Touchscreen device event reader
2017-01-05 23:07:43 +01:00
Richard R. Goodwin 21181f8167 added RPi touch interface 2017-01-05 21:36:40 +00:00
Richard R. Goodwin d4f5c4e133 modified: src/core.c 2017-01-05 21:20:28 +00:00
raysan5 658c280669 Lattest PR review
Function names, code formatting...
2017-01-05 19:33:05 +01:00
Ray 0369bb4c8c Merge pull request #212 from joeld42/jbd_picking
Raycast Picking Utilities
2017-01-05 17:33:23 +01:00
Joel Davis d5d391faaf Added RaycastMesh function and example test case 2017-01-02 21:56:25 -08:00
Ray 81388363fa Merge pull request #211 from joeld42/rlgl-updatemesh-fix
Fix vbo indices for rlglUpdateMesh
2017-01-02 13:23:11 +01:00
Joel Davis 037da8879a Added RaycastGround and ray picking example 2016-12-31 15:06:39 -08:00
Joel Davis 674ee2cf75 Fix vbo indexes for rlglUpdateMesh 2016-12-31 14:05:30 -08:00
raysan5 202f45415c rRES raylib resources custom file format support
First version of custom raylib resources file format -IN DEVELOPMENT-
2016-12-27 17:42:22 +01:00
raysan5 bf3a213e44 Some functions review and additions
- Improved ImageCopy() to support compressed formats
- Renaming file-formats header structs for consistency
- Review variables naming on ImageDither() for consistency
- Improved LoadImagePro() to make a copy of data
- Preliminary support of rRES file format on LoadImage()
2016-12-27 17:40:59 +01:00
raysan5 e7464d5fc3 Review some formatting and naming
- Renamed WritePNG() to SavePNG() for consistency with other file
loading functions
- Renamed WriteBitmap() to SaveBMP() for consistency with other file
loading functions
- Redesigned SaveBMP() to use stb_image_write
2016-12-27 17:37:35 +01:00
raysan5 3c91dc099d Added some comments to sample
Some work still required...
2016-12-26 11:46:07 +01:00
raysan5 5da815234c Improved FLAC audio support 2016-12-26 10:52:57 +01:00
raysan5 a27be5f2a9 Added support for gamepads on PLATFORM_WEB
Feature NOT TESTED yet...
2016-12-25 20:42:22 +01:00
raysan5 14cdd7fbff Added raw image file reading data check 2016-12-25 20:41:36 +01:00
raysan5 852f3d4fd0 Review comments and formatting 2016-12-25 02:01:13 +01:00
raysan5 6d6c542a1d Review some functions for consistency
Removed: LoadTextureEx()
Added: LoadImagePro()
2016-12-25 02:00:36 +01:00
raysan5 d8bf84f118 Added mesh loading functions 2016-12-25 01:59:23 +01:00
raysan5 5de597579f Complete review of audio module 2016-12-25 01:58:56 +01:00
Ray 4419ee9802 Merge pull request #210 from ficoos/fixes
Fixes
2016-12-22 11:47:59 +01:00
Saggi Mizrahi aaea2eb9a6 Fix building audio_standalone example on linux
Signed-off-by: Saggi Mizrahi <saggi@mizrahi.cc>
2016-12-22 03:27:02 +02:00
Saggi Mizrahi 1aa775eca8 Fix physac.h building on linux
Signed-off-by: Saggi Mizrahi <saggi@mizrahi.cc>
2016-12-22 03:26:54 +02:00
Saggi Mizrahi b2d4cd66a7 Fix warnings in lua binding
Signed-off-by: Saggi Mizrahi <saggi@mizrahi.cc>
2016-12-22 03:26:46 +02:00
Saggi Mizrahi c394708c43 Change UpdateSound() to accept const void *
The function means to accept a const * so let's declare it.
Will allow passing const buffers in games.
Also constness is next to godliness!

Signed-off-by: Saggi Mizrahi <saggi@mizrahi.cc>
2016-12-22 03:25:42 +02:00
Saggi Mizrahi 5df10d824c Fix bad call to oculus API
Missing passing of &camera

Signed-off-by: Saggi Mizrahi <saggi@mizrahi.cc>
2016-12-22 03:25:28 +02:00
Ray 060d501cd1 Update to ignore Linux binaries (no extension) 2016-12-21 00:04:44 +01:00
Ray 4a9b77dd70 Corrected bug sound playing twice
Samples count was not properly calculated on WAV loading
2016-12-20 00:33:45 +01:00
Ray 814507906f Improving rRES custom format support -IN PROGRESS-
Start removing old rRES functions.
2016-12-17 19:05:40 +01:00
Ray 673ea62b27 Merge pull request #206 from joeld42/jbd_bugfix
Added SetupViewport so high-DPI fix applies to EndTextureMode
2016-12-15 22:42:31 +01:00
Joel Davis 06b8727d70 Moved viewport code into SetupViewport so high-DPI fix can be applied to EndTextureMode 2016-12-14 23:58:15 -08:00
Ray d5c0f9d386 Replaced log2() function by equivalent
log2() is not available in some standard C library implementations
2016-12-09 10:15:44 +01:00
Ray 377dcb025f Corrected some warnings 2016-12-05 01:14:18 +01:00
Ray ab9f5d5780 Corrected path slash separator 2016-11-26 11:12:31 +01:00
Ray f5d792e551 Update Lua naming
Replaced LUA by Lua
2016-11-25 22:26:36 +01:00
Ray d91ad4e2aa Update README.md 2016-11-25 01:47:30 +01:00
Ray 177c58d23a Update README.md
Added some missing contributors...
2016-11-25 01:46:51 +01:00
Ray b9310f7d3a Updated background color 2016-11-24 22:41:26 +01:00
raysan5 46ce30a2eb Corrected bugs for OpenGL 1.1 backend 2016-11-24 19:02:34 +01:00
raysan5 44e21d84cd Remove useless file 2016-11-24 19:02:15 +01:00
victorfisac ce56fcb1ed Merge remote-tracking branch 'refs/remotes/raysan5/master' 2016-02-26 14:32:30 +01:00
1470 changed files with 506310 additions and 162993 deletions
+8
View File
@@ -0,0 +1,8 @@
# These are supported funding model platforms
github: raysan5
patreon: # raylib
open_collective: # Replace with a single Open Collective username
ko_fi: # raysan
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
custom: # Replace with a single custom sponsorship URL
+1
View File
@@ -0,0 +1 @@
blank_issues_enabled: false
@@ -0,0 +1,41 @@
---
name: new issue template
about: generic template for new issues
title: "[module] Short description of the issue/bug/feature"
labels: ''
assignees: ''
---
**WARNING: Please, read this note carefully before submitting a new issue:**
It is important to realise that **this is NOT A SUPPORT FORUM**, this is for reproducible BUGS with raylib ONLY.
There are lots of generous and helpful people ready to help you out on [raylib Discord forum](https://discord.gg/raylib) or [raylib reddit](https://www.reddit.com/r/raylib/).
Remember that asking for support questions here actively takes developer time away from improving raylib.
---
Please, before submitting a new issue verify and check:
- [ ] I tested it on latest raylib version from master branch
- [ ] I checked there is no similar issue already reported
- [ ] I checked the documentation on the [wiki](https://github.com/raysan5/raylib/wiki)
- [ ] My code has no errors or misuse of raylib
### Issue description
*Briefly describe the issue you are experiencing (or the feature you want to see added to raylib). Tell us what you were trying to do and what happened instead. Remember, this is not the best place to ask questions. For questions, go to [raylib Discord server](https://discord.gg/raylib).*
### Environment
*Provide your Platform, Operating System, OpenGL version, GPU details where you experienced the issue.*
### Issue Screenshot
*If possible, provide a screenshot that illustrates the issue. Usually an image is better than a thousand words.*
### Code Example
*Provide minimal reproduction code to test the issue. Please, format the code properly and try to keep it as simple as possible, just focusing on the experienced issue.*
+100
View File
@@ -0,0 +1,100 @@
name: Android
on:
workflow_dispatch:
push:
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/android.yml'
pull_request:
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/android.yml'
release:
types: [published]
permissions:
contents: read
jobs:
build:
permissions:
contents: write # for actions/upload-release-asset to upload release asset
runs-on: windows-latest
strategy:
fail-fast: false
max-parallel: 1
matrix:
ARCH: ["arm64", "x86_64"]
env:
RELEASE_NAME: raylib-dev_android_api29_${{ matrix.ARCH }}
steps:
- name: Checkout
uses: actions/checkout@master
- name: Setup Release Version
run: |
echo "RELEASE_NAME=raylib-${{ github.event.release.tag_name }}_android_api29_${{ matrix.ARCH }}" >> $GITHUB_ENV
shell: bash
if: github.event_name == 'release' && github.event.action == 'published'
- name: Setup Android NDK
id: setup-ndk
uses: nttld/setup-ndk@v1
with:
ndk-version: r25
add-to-path: false
env:
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
- name: Setup Environment
run: |
mkdir build
cd build
mkdir ${{ env.RELEASE_NAME }}
cd ${{ env.RELEASE_NAME }}
mkdir include
mkdir lib
cd ../..
# Generating static + shared library for 64bit arquitectures and API version 29
- name: Build Library
run: |
cd src
make PLATFORM=PLATFORM_ANDROID ANDROID_ARCH=${{ matrix.ARCH }} ANDROID_API_VERSION=29 ANDROID_NDK=${{ env.ANDROID_NDK_HOME }} RAYLIB_LIBTYPE=STATIC RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib"
make PLATFORM=PLATFORM_ANDROID ANDROID_ARCH=${{ matrix.ARCH }} ANDROID_API_VERSION=29 ANDROID_NDK=${{ env.ANDROID_NDK_HOME }} RAYLIB_LIBTYPE=SHARED RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
cd ..
shell: cmd
- name: Generate Artifacts
run: |
cp -v ./src/raylib.h ./build/${{ env.RELEASE_NAME }}/include
cp -v ./src/raymath.h ./build/${{ env.RELEASE_NAME }}/include
cp -v ./src/rlgl.h ./build/${{ env.RELEASE_NAME }}/include
cp -v ./CHANGELOG ./build/${{ env.RELEASE_NAME }}/CHANGELOG
cp -v ./README.md ./build/${{ env.RELEASE_NAME }}/README.md
cp -v ./LICENSE ./build/${{ env.RELEASE_NAME }}/LICENSE
cd build
tar -czvf ${{ env.RELEASE_NAME }}.tar.gz ${{ env.RELEASE_NAME }}
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ env.RELEASE_NAME }}.tar.gz
path: ./build/${{ env.RELEASE_NAME }}.tar.gz
- name: Upload Artifact to Release
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./build/${{ env.RELEASE_NAME }}.tar.gz
asset_name: ${{ env.RELEASE_NAME }}.tar.gz
asset_content_type: application/gzip
if: github.event_name == 'release' && github.event.action == 'published'
+111
View File
@@ -0,0 +1,111 @@
name: CMakeBuilds
on:
workflow_dispatch:
push:
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/cmake.yml'
- 'CMakeList.txt'
- 'CMakeOptions.txt'
- 'cmake/**'
pull_request:
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/cmake.yml'
- 'CMakeList.txt'
- 'CMakeOptions.txt'
- 'cmake/**'
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
permissions:
contents: read
jobs:
build_windows:
name: Windows Build
# The CMake configure and build commands are platform agnostic and should work equally
# well on Windows or Mac. You can convert this to a matrix build if you need
# cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Create Build Environment
# Some projects don't allow in-source building, so create a separate build directory
# We'll use this as our working directory for all subsequent commands
run: cmake -E make_directory ${{github.workspace}}/build
- name: Configure CMake
# Use a bash shell so we can use the same syntax for environment variable
# access regardless of the host operating system
shell: powershell
working-directory: ${{github.workspace}}/build
# Note the current convention is to use the -S and -B options here to specify source
# and build directories, but this is only available with CMake 3.13 and higher.
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
run: cmake $env:GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$env:BUILD_TYPE -DPLATFORM=Desktop
- name: Build
working-directory: ${{github.workspace}}/build
shell: powershell
# Execute the build. You can specify a specific target with "--target <NAME>"
run: cmake --build . --config $env:BUILD_TYPE
- name: Test
working-directory: ${{github.workspace}}/build
shell: powershell
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C $env:BUILD_TYPE
build_linux:
name: Linux Build
# The CMake configure and build commands are platform agnostic and should work equally
# well on Windows or Mac. You can convert this to a matrix build if you need
# cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Create Build Environment
# Some projects don't allow in-source building, so create a separate build directory
# We'll use this as our working directory for all subsequent commands
run: cmake -E make_directory ${{github.workspace}}/build
- name: Setup Environment
run: |
sudo apt-get update -qq
sudo apt-get install gcc-multilib
sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev
- name: Configure CMake
# Use a bash shell so we can use the same syntax for environment variable
# access regardless of the host operating system
shell: bash
working-directory: ${{github.workspace}}/build
# Note the current convention is to use the -S and -B options here to specify source
# and build directories, but this is only available with CMake 3.13 and higher.
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DPLATFORM=Desktop
- name: Build
working-directory: ${{github.workspace}}/build
shell: bash
# Execute the build. You can specify a specific target with "--target <NAME>"
run: cmake --build . --config $BUILD_TYPE
- name: Test
working-directory: ${{github.workspace}}/build
shell: bash
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C $BUILD_TYPE
+134
View File
@@ -0,0 +1,134 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
name: "CodeQL"
on:
workflow_dispatch:
# push:
# branches: [ "main", "master" ]
pull_request:
branches: '*'
schedule:
- cron: '0 0 * * 1'
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
jobs:
analyze:
name: Analyze
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners
# Consider using larger runners for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-20.04' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'cpp' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ]
# Use only 'java' to analyze code written in Java, Kotlin or both
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: recursive
- name: Create Build Environment
# Some projects don't allow in-source building, so create a separate build directory
# We'll use this as our working directory for all subsequent commands
run: cmake -E make_directory ${{github.workspace}}/build
- name: Setup Environment
run: |
sudo apt-get update -qq
sudo apt-get install gcc-multilib
sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev
- name: Configure CMake
# Use a bash shell so we can use the same syntax for environment variable
# access regardless of the host operating system
shell: bash
working-directory: ${{github.workspace}}/build
# Note the current convention is to use the -S and -B options here to specify source
# and build directories, but this is only available with CMake 3.13 and higher.
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DPLATFORM=Desktop
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
queries: security-and-quality
- name: Build
# Execute the build. You can specify a specific target with "--target <NAME>"
run: |
cd build
cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DPLATFORM=Desktop
cmake --build . --config $BUILD_TYPE
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:${{matrix.language}}"
upload: false
id: step1
# Filter out rules with low severity or high false positve rate
# Also filter out warnings in third-party code
- name: Filter out unwanted errors and warnings
uses: advanced-security/filter-sarif@v1
with:
patterns: |
-**:cpp/path-injection
-**:cpp/world-writable-file-creation
-**:cpp/poorly-documented-function
-**:cpp/potentially-dangerous-function
-**:cpp/use-of-goto
-**:cpp/integer-multiplication-cast-to-long
-**:cpp/comparison-with-wider-type
-**:cpp/leap-year/*
-**:cpp/ambiguously-signed-bit-field
-**:cpp/suspicious-pointer-scaling
-**:cpp/suspicious-pointer-scaling-void
-**:cpp/unsigned-comparison-zero
-**/cmake*/Modules/**
-**/src/external/glfw/**
input: ${{ steps.step1.outputs.sarif-output }}/cpp.sarif
output: ${{ steps.step1.outputs.sarif-output }}/cpp.sarif
- name: Upload CodeQL results to code scanning
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: ${{ steps.step1.outputs.sarif-output }}
category: "/language:${{matrix.language}}"
- name: Upload CodeQL results as an artifact
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: codeql-results
path: ${{ steps.step1.outputs.sarif-output }}
retention-days: 5
+111
View File
@@ -0,0 +1,111 @@
name: Linux
on:
workflow_dispatch:
push:
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/linux.yml'
pull_request:
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/linux.yml'
release:
types: [published]
permissions:
contents: read
jobs:
build:
permissions:
contents: write # for actions/upload-release-asset to upload release asset
runs-on: ubuntu-20.04
strategy:
fail-fast: false
max-parallel: 1
matrix:
bits: [32, 64]
include:
- bits: 32
ARCH: "i386"
ARCH_NAME: "i386"
COMPILER_PATH: "/user/bin"
- bits: 64
ARCH: "x86_64"
ARCH_NAME: "amd64"
COMPILER_PATH: "/user/bin"
env:
RELEASE_NAME: raylib-dev_linux_${{ matrix.ARCH_NAME }}
steps:
- name: Checkout code
uses: actions/checkout@master
- name: Setup Release Version
run: |
echo "RELEASE_NAME=raylib-${{ github.event.release.tag_name }}_linux_${{ matrix.ARCH_NAME }}" >> $GITHUB_ENV
shell: bash
if: github.event_name == 'release' && github.event.action == 'published'
- name: Setup Environment
run: |
sudo apt-get update -qq
sudo apt-get install gcc-multilib
sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev
mkdir build
cd build
mkdir ${{ env.RELEASE_NAME }}
cd ${{ env.RELEASE_NAME }}
mkdir include
mkdir lib
cd ../../../raylib
# ${{ matrix.ARCH }}-linux-gnu-gcc -v
# TODO: Support 32bit (i386) static/shared library building
- name: Build Library
run: |
cd src
make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=STATIC RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" CUSTOM_CFLAGS="-m32" -B
# make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=SHARED RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
cd ..
if: matrix.bits == 32
- name: Build Library
run: |
cd src
make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=STATIC RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=SHARED RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
cd ..
if: matrix.bits == 64
- name: Generate Artifacts
run: |
cp -v ./src/raylib.h ./build/${{ env.RELEASE_NAME }}/include
cp -v ./src/raymath.h ./build/${{ env.RELEASE_NAME }}/include
cp -v ./src/rlgl.h ./build/${{ env.RELEASE_NAME }}/include
cp -v ./CHANGELOG ./build/${{ env.RELEASE_NAME }}/CHANGELOG
cp -v ./README.md ./build/${{ env.RELEASE_NAME }}/README.md
cp -v ./LICENSE ./build/${{ env.RELEASE_NAME }}/LICENSE
cd build
tar -czvf ${{ env.RELEASE_NAME }}.tar.gz ${{ env.RELEASE_NAME }}
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ env.RELEASE_NAME }}.tar.gz
path: ./build/${{ env.RELEASE_NAME }}.tar.gz
- name: Upload Artifact to Release
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./build/${{ env.RELEASE_NAME }}.tar.gz
asset_name: ${{ env.RELEASE_NAME }}.tar.gz
asset_content_type: application/gzip
if: github.event_name == 'release' && github.event.action == 'published'
+42
View File
@@ -0,0 +1,42 @@
name: Linux Examples
on:
workflow_dispatch:
push:
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/linux_examples.yml'
pull_request:
branches: [ master ]
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/linux_examples.yml'
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Environment
run: |
sudo apt-get update -qq
sudo apt-get install -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev
- name: Build Library
run: |
cd src
make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=STATIC
cd ..
- name: Build Examples
run: |
cd examples
make PLATFORM=PLATFORM_DESKTOP -B
cd ..
+116
View File
@@ -0,0 +1,116 @@
name: macOS
on:
workflow_dispatch:
push:
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/macos.yml'
pull_request:
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/macos.yml'
release:
types: [published]
permissions:
contents: read
jobs:
build:
permissions:
contents: write # for actions/upload-release-asset to upload release asset
runs-on: macos-latest
env:
RELEASE_NAME: raylib-dev_macos
steps:
- name: Checkout
uses: actions/checkout@master
- name: Setup Release Version
run: |
echo "RELEASE_NAME=raylib-${{ github.event.release.tag_name }}_macos" >> $GITHUB_ENV
shell: bash
if: github.event_name == 'release' && github.event.action == 'published'
- name: Setup Environment
run: |
mkdir build
cd build
mkdir ${{ env.RELEASE_NAME }}
cd ${{ env.RELEASE_NAME }}
mkdir include
mkdir lib
cd ../..
# Generating static + shared library, note that i386 architecture is deprecated
# Defining GL_SILENCE_DEPRECATION because OpenGL is deprecated on macOS
- name: Build Library
run: |
cd src
clang --version
# Extract version numbers from Makefile
brew install grep
RAYLIB_API_VERSION=`ggrep -Po 'RAYLIB_API_VERSION\s*=\s\K(.*)' Makefile`
RAYLIB_VERSION=`ggrep -Po 'RAYLIB_VERSION\s*=\s\K(.*)' Makefile`
# Build raylib x86_64 static
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=STATIC CUSTOM_CFLAGS="-target x86_64-apple-macos10.12 -DGL_SILENCE_DEPRECATION"
mv libraylib.a /tmp/libraylib_x86_64.a
make clean
# Build raylib arm64 static
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=STATIC CUSTOM_CFLAGS="-target arm64-apple-macos11 -DGL_SILENCE_DEPRECATION" -B
mv libraylib.a /tmp/libraylib_arm64.a
make clean
# Join x86_64 and arm64 static
lipo -create -output ../build/${{ env.RELEASE_NAME }}/lib/libraylib.a /tmp/libraylib_x86_64.a /tmp/libraylib_arm64.a
# Build raylib x86_64 dynamic
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED CUSTOM_CFLAGS="-target x86_64-apple-macos10.12 -DGL_SILENCE_DEPRECATION" CUSTOM_LDFLAGS="-target x86_64-apple-macos10.12" -B
mv libraylib.${RAYLIB_VERSION}.dylib /tmp/libraylib_x86_64.${RAYLIB_VERSION}.dylib
make clean
# Build raylib arm64 dynamic
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED CUSTOM_CFLAGS="-target arm64-apple-macos11 -DGL_SILENCE_DEPRECATION" CUSTOM_LDFLAGS="-target arm64-apple-macos11" -B
mv libraylib.${RAYLIB_VERSION}.dylib /tmp/libraylib_arm64.${RAYLIB_VERSION}.dylib
# Join x86_64 and arm64 dynamic
lipo -create -output ../build/${{ env.RELEASE_NAME }}/lib/libraylib.${RAYLIB_VERSION}.dylib /tmp/libraylib_x86_64.${RAYLIB_VERSION}.dylib /tmp/libraylib_arm64.${RAYLIB_VERSION}.dylib
ln -sv libraylib.${RAYLIB_VERSION}.dylib ../build/${{ env.RELEASE_NAME }}/lib/libraylib.dylib
ln -sv libraylib.${RAYLIB_VERSION}.dylib ../build/${{ env.RELEASE_NAME }}/lib/libraylib.${RAYLIB_API_VERSION}.dylib
cd ..
- name: Generate Artifacts
run: |
cp -v ./src/raylib.h ./build/${{ env.RELEASE_NAME }}/include
cp -v ./src/raymath.h ./build/${{ env.RELEASE_NAME }}/include
cp -v ./src/rlgl.h ./build/${{ env.RELEASE_NAME }}/include
cp -v ./CHANGELOG ./build/${{ env.RELEASE_NAME }}/CHANGELOG
cp -v ./README.md ./build/${{ env.RELEASE_NAME }}/README.md
cp -v ./LICENSE ./build/${{ env.RELEASE_NAME }}/LICENSE
cd build
tar -czvf ${{ env.RELEASE_NAME }}.tar.gz ${{ env.RELEASE_NAME }}
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ env.RELEASE_NAME }}.tar.gz
path: ./build/${{ env.RELEASE_NAME }}.tar.gz
- name: Upload Artifact to Release
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./build/${{ env.RELEASE_NAME }}.tar.gz
asset_name: ${{ env.RELEASE_NAME }}.tar.gz
asset_content_type: application/gzip
if: github.event_name == 'release' && github.event.action == 'published'
+86
View File
@@ -0,0 +1,86 @@
name: WebAssembly
on:
workflow_dispatch:
push:
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/webassembly.yml'
pull_request:
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/webassembly.yml'
release:
types: [published]
jobs:
build:
runs-on: windows-latest
env:
RELEASE_NAME: raylib-dev_webassembly
steps:
- name: Checkout
uses: actions/checkout@master
- name: Setup emsdk
uses: mymindstorm/setup-emsdk@v12
with:
version: 3.1.30
actions-cache-folder: 'emsdk-cache'
- name: Setup Release Version
run: |
echo "RELEASE_NAME=raylib-${{ github.event.release.tag_name }}_webassembly" >> $GITHUB_ENV
shell: bash
if: github.event_name == 'release' && github.event.action == 'published'
- name: Setup Environment
run: |
mkdir build
cd build
mkdir ${{ env.RELEASE_NAME }}
cd ${{ env.RELEASE_NAME }}
mkdir include
mkdir lib
cd ../..
- name: Build Library
run: |
cd src
emcc -v
make PLATFORM=PLATFORM_WEB EMSDK_PATH="D:/a/raylib/raylib/emsdk-cache/emsdk-main" RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
cd ..
- name: Generate Artifacts
run: |
copy /Y .\src\raylib.h .\build\${{ env.RELEASE_NAME }}\include\raylib.h
copy /Y .\src\raymath.h .\build\${{ env.RELEASE_NAME }}\include\raymath.h
copy /Y .\src\rlgl.h .\build\${{ env.RELEASE_NAME }}\include\rlgl.h
copy /Y .\CHANGELOG .\build/${{ env.RELEASE_NAME }}\CHANGELOG
copy /Y .\README.md .\build\${{ env.RELEASE_NAME }}\README.md
copy /Y .\LICENSE .\build\${{ env.RELEASE_NAME }}\LICENSE
cd build
7z a ./${{ env.RELEASE_NAME }}.zip ./${{ env.RELEASE_NAME }}
dir
shell: cmd
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ env.RELEASE_NAME }}.zip
path: ./build/${{ env.RELEASE_NAME }}.zip
- name: Upload Artifact to Release
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./build/${{ env.RELEASE_NAME }}.zip
asset_name: ${{ env.RELEASE_NAME }}.zip
asset_content_type: application/zip
if: github.event_name == 'release' && github.event.action == 'published'
+150
View File
@@ -0,0 +1,150 @@
name: Windows
on:
workflow_dispatch:
push:
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/windows.yml'
pull_request:
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/windows.yml'
release:
types: [published]
permissions:
contents: read
jobs:
build:
permissions:
contents: write # for actions/upload-release-asset to upload release asset
runs-on: windows-latest
strategy:
fail-fast: false
max-parallel: 1
matrix:
compiler: [mingw-w64, msvc16]
bits: [32, 64]
include:
- compiler: mingw-w64
bits: 32
ARCH: "i686"
WINDRES_ARCH: pe-i386
- compiler: mingw-w64
bits: 64
ARCH: "x86_64"
WINDRES_ARCH: pe-x86-64
- compiler: msvc16
bits: 32
ARCH: "x86"
VSARCHPATH: "Win32"
- compiler: msvc16
bits: 64
ARCH: "x64"
VSARCHPATH: "x64"
env:
RELEASE_NAME: raylib-dev_win${{ matrix.bits }}_${{ matrix.compiler }}
GNUTARGET: default
steps:
- name: Checkout
uses: actions/checkout@master
- name: Setup Release Version
run: |
echo "RELEASE_NAME=raylib-${{ github.event.release.tag_name }}_win${{ matrix.bits }}_${{ matrix.compiler }}" >> $GITHUB_ENV
shell: bash
if: github.event_name == 'release' && github.event.action == 'published'
- name: Setup Environment
run: |
dir
mkdir build
cd build
mkdir ${{ env.RELEASE_NAME }}
cd ${{ env.RELEASE_NAME }}
mkdir include
mkdir lib
cd ../../../raylib
# Setup MSBuild.exe path if required
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v1.1
if: matrix.compiler == 'msvc16'
- name: Build Library (MinGW-w64 32bit)
run: |
cd src
x86_64-w64-mingw32-gcc.exe --version
windres.exe --version
dir C:\msys64\mingw64\bin
make PLATFORM=PLATFORM_DESKTOP CC=x86_64-w64-mingw32-gcc.exe RAYLIB_LIBTYPE=STATIC RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" CUSTOM_CFLAGS=-m32
//windres.exe -i raylib.dll.rc -o raylib.dll.rc.data -O coff --target=${{ matrix.WINDRES_ARCH }}
//make PLATFORM=PLATFORM_DESKTOP CC=${{ matrix.ARCH }}-w64-mingw32-gcc.exe RAYLIB_LIBTYPE=SHARED RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
cd ..
shell: cmd
if: |
matrix.compiler == 'mingw-w64' &&
matrix.bits == 32
- name: Build Library (MinGW-w64 64bit)
run: |
cd src
${{ matrix.ARCH }}-w64-mingw32-gcc.exe --version
windres.exe --version
dir C:\msys64\mingw64\bin
make PLATFORM=PLATFORM_DESKTOP CC=${{ matrix.ARCH }}-w64-mingw32-gcc.exe RAYLIB_LIBTYPE=STATIC RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib"
windres.exe -i raylib.dll.rc -o raylib.dll.rc.data -O coff --target=${{ matrix.WINDRES_ARCH }}
make PLATFORM=PLATFORM_DESKTOP CC=${{ matrix.ARCH }}-w64-mingw32-gcc.exe RAYLIB_LIBTYPE=SHARED RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
cd ..
shell: cmd
if: |
matrix.compiler == 'mingw-w64' &&
matrix.bits == 64
- name: Build Library (MSVC16)
run: |
cd projects/VS2022
msbuild.exe raylib.sln /target:raylib /property:Configuration=Release /property:Platform=${{ matrix.ARCH }}
copy /Y .\build\raylib\bin\${{ matrix.VSARCHPATH }}\Release\raylib.lib .\..\..\build\${{ env.RELEASE_NAME }}\lib\raylib.lib
msbuild.exe raylib.sln /target:raylib /property:Configuration=Release.DLL /property:Platform=${{ matrix.ARCH }}
copy /Y .\build\raylib\bin\${{ matrix.VSARCHPATH }}\Release.DLL\raylib.dll .\..\..\build\${{ env.RELEASE_NAME }}\lib\raylib.dll
copy /Y .\build\raylib\bin\${{ matrix.VSARCHPATH }}\Release.DLL\raylib.lib .\..\..\build\${{ env.RELEASE_NAME }}\lib\raylibdll.lib
cd ../..
shell: cmd
if: matrix.compiler == 'msvc16'
- name: Generate Artifacts
run: |
copy /Y .\src\raylib.h .\build\${{ env.RELEASE_NAME }}\include\raylib.h
copy /Y .\src\raymath.h .\build\${{ env.RELEASE_NAME }}\include\raymath.h
copy /Y .\src\rlgl.h .\build\${{ env.RELEASE_NAME }}\include\rlgl.h
copy /Y .\CHANGELOG .\build\${{ env.RELEASE_NAME }}\CHANGELOG
copy /Y .\README.md .\build\${{ env.RELEASE_NAME }}\README.md
copy /Y .\LICENSE .\build\${{ env.RELEASE_NAME }}\LICENSE
cd build
7z a ./${{ env.RELEASE_NAME }}.zip ./${{ env.RELEASE_NAME }}
dir
shell: cmd
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ env.RELEASE_NAME }}.zip
path: ./build/${{ env.RELEASE_NAME }}.zip
- name: Upload Artifact to Release
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./build/${{ env.RELEASE_NAME }}.zip
asset_name: ${{ env.RELEASE_NAME }}.zip
asset_content_type: application/zip
if: github.event_name == 'release' && github.event.action == 'published'
+36
View File
@@ -0,0 +1,36 @@
name: Windows Examples
on:
workflow_dispatch:
push:
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/windows_examples.yml'
pull_request:
branches: [ master ]
paths:
- 'src/**'
- 'examples/**'
- '.github/workflows/windows_examples.yml'
permissions:
contents: read
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v1
- name: Build Library (MSVC16)
run: |
cd projects/VS2019
msbuild.exe raylib.sln /property:Configuration=Release /property:Platform=x86
cd ../..
shell: cmd
+53 -33
View File
@@ -3,13 +3,8 @@
# Ignore VIM's backup generated files
*.swp
# Ignore Android generated files and folders
src_android/obj/
templates/android_project/bin/
templates/android_project/obj/
templates/android_project/libs/
local.properties
*.swo
*~
# Ignore thumbnails created by windows
Thumbs.db
@@ -18,9 +13,10 @@ Thumbs.db
# *.obj --> Can be confused with 3d model!
*.pdb
*.aps
*.vcproj.*.user
*.vcxproj*
*.sln
*.user
# *.vcproj
# *.vcxproj*
# *.sln
*.vspscc
*_i.c
*.i
@@ -34,22 +30,36 @@ Thumbs.db
*.cache
*.ilk
*.log
.vs
[Bb]in
[Dd]ebug/
[Dd]ebug.win32/
*.sbr
*.sdf
obj/
[Rr]elease.win32/
[R]elease/
_ReSharper*/
[Tt]est[Rr]esult*
ipch/
*.opensdf
*.db
*.opendb
packages/
!examples/models/resources/models/obj/
# Ignore compiled binaries
*.o
*.exe
!tools/rREM/rrem.exe
*.a
*.bc
*.so
*.so.*
# Ignore wasm data in examples/
examples/**/*.wasm
examples/**/*.data
examples/**/*.js
examples/**/*.html
# Ignore files build by xcode
*.mode*v*
@@ -64,27 +74,37 @@ xcschememanagement.plist
._.*
xcuserdata/
DerivedData/
*.dll
src/libraylib.a
src/libraylib.bc
# oculus example
!examples/oculus_glfw_sample/
# VSCode project
.vscode
# external libraries DLLs
!src/external/glfw3/lib/win32/glfw3.dll
!src/external/openal_soft/lib/win32/OpenAL32.dll
!src/external/OculusSDK/LibOVR/LibOVRRT32_1.dll
!src/external/pthread/lib/pthreadGC2.dll
# Jetbrains project
.idea/
cmake-build-*/
# Visual Studio project
project/vs2015/*.db
project/vs2015/*.opendb
!project/vs2015/raylib.sln
!project/vs2015/raylib/*.vcxproj
!project/vs2015/examples/*.vcxproj
!project/vs2015/external/glfw3/lib/win32/glfw3.dll
!project/vs2015/external/openal_soft/lib/win32/OpenAL32.dll
!project/vs2015/external/openal_soft/lib/win64/OpenAL32.dll
!project/vs2015/external/lua/lib/win32/lua53.dll
# CMake stuff
CMakeCache.txt
CMakeFiles
CMakeScripts
Testing
cmake_install.cmake
cmake_uninstall.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
build
# Ignore GNU global tags
GPATH
GRTAGS
GTAGS
# Zig programming language
zig-cache/
zig-out/
build/
build-*/
docgen_tmp/
# Parser stuff
parser/raylib_parser
+162
View File
@@ -0,0 +1,162 @@
# raylib bindings and wrappers
Some people ported raylib to other languages in form of bindings or wrappers to the library. Here is a list with all the ports available. Feel free to send a PR if you know of any binding/wrapper not in this list.
### Language Bindings
| name | raylib version | language | license | repo |
|:------------------:|:---------------:|:---------:|:----------:|-----------------------------------------------------------|
| raylib | **4.5** | [C/C++](https://en.wikipedia.org/wiki/C_(programming_language)) | Zlib | https://github.com/raysan5/raylib |
| raylib-boo | 3.7 | [Boo](http://boo-language.github.io/)| MIT | https://github.com/Rabios/raylib-boo |
| Raylib-cs | **4.5** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | Zlib | https://github.com/ChrisDill/Raylib-cs |
| Raylib-CsLo | 4.2 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 | https://github.com/NotNotTech/Raylib-CsLo |
| cl-raylib | 4.0 | [Common Lisp](https://common-lisp.net/) | MIT | https://github.com/longlene/cl-raylib |
| claylib/wrap | **4.5** | [Common Lisp](https://common-lisp.net/) | Zlib | https://github.com/defun-games/claylib |
| claw-raylib | **auto** | [Common Lisp](https://common-lisp.net/) | Apache-2.0 | https://github.com/bohonghuang/claw-raylib |
| chez-raylib | **auto** | [Chez Scheme](https://cisco.github.io/ChezScheme/) | GPLv3 | https://github.com/Yunoinsky/chez-raylib |
| raylib-cr | **4.6-dev (5e1a81)** | [Crystal](https://crystal-lang.org/) | Apache-2.0 | https://github.com/sol-vin/raylib-cr |
| ray-cyber | 4.5 | [Cyber](https://cyberscript.dev) | MIT | https://github.com/fubark/ray-cyber |
| raylib-c3 | **4.5** | [C3](https://c3-lang.org/) | Zlib | https://github.com/Its-Kenta/Raylib-C3 |
| dart-raylib | 4.0 | [Dart](https://dart.dev/) | MIT | https://gitlab.com/wolfenrain/dart-raylib |
| bindbc-raylib3 | **4.5** | [D](https://dlang.org/) | BSL-1.0 | https://github.com/o3o/bindbc-raylib3 |
| dray | 4.2 | [D](https://dlang.org/) | Apache-2.0 | https://github.com/redthing1/dray |
| raylib-d | **4.5** | [D](https://dlang.org/) | Zlib | https://github.com/schveiguy/raylib-d |
| dlang_raylib | 4.0 | [D](https://dlang.org) | MPL-2.0 |https://github.com/rc-05/dlang_raylib |
| rayex | 3.7 | [elixir](https://elixir-lang.org/) | Apache-2.0 | https://github.com/shiryel/rayex |
| raylib-factor | **4.5** | [Factor](https://factorcode.org/) | BSD | https://github.com/factor/factor/blob/master/extra/raylib/raylib.factor |
| raylib-freebasic | **4.5** | [FreeBASIC](https://www.freebasic.net/) | MIT | https://github.com/WIITD/raylib-freebasic |
| fortran-raylib | **4.5** | [Fortran](https://fortran-lang.org/) | ISC | https://github.com/interkosmos/fortran-raylib |
| raylib for Pascal | **4.5** | [Object Pascal](https://en.wikipedia.org/wiki/Object_Pascal) | Modified Zlib | https://github.com/tinyBigGAMES/raylib |
| raylib-go | **5.0** | [Go](https://golang.org/) | Zlib | https://github.com/gen2brain/raylib-go |
| raylib-guile | **auto** | [Guile](https://www.gnu.org/software/guile/) | Zlib | https://github.com/petelliott/raylib-guile |
| gforth-raylib | 3.5 | [Gforth](https://gforth.org/) | MIT | https://github.com/ArnautDaniel/gforth-raylib |
| h-raylib | **4.6-dev** | [Haskell](https://haskell.org/) | Apache-2.0 | https://github.com/Anut-py/h-raylib |
| raylib-hx | 4.2 | [Haxe](https://haxe.org/) | Zlib | https://github.com/foreignsasquatch/raylib-hx |
| hb-raylib | 3.5 | [Harbour](https://harbour.github.io) | MIT | https://github.com/MarcosLeonardoMendezGerencir/hb-raylib |
| jaylib | 4.5 | [Janet](https://janet-lang.org/) | MIT | https://github.com/janet-lang/jaylib |
| jaylib | **4.5** | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | GPLv3+CE | https://github.com/electronstudio/jaylib/ |
| raylib-j | 4.0 | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | Zlib | https://github.com/CreedVI/Raylib-J |
| raylib.jl | 4.2 | [Julia](https://julialang.org/) | Zlib | https://github.com/irishgreencitrus/raylib.jl |
| kaylib | 3.7 | [Kotlin/native](https://kotlinlang.org) | ? | https://github.com/electronstudio/kaylib |
| KaylibKit | **4.5**| [Kotlin/native](https://kotlinlang.org) | Zlib | https://codeberg.org/Kenta/KaylibKit |
| raylib-lua | **4.5** | [Lua](http://www.lua.org/) | ISC | https://github.com/TSnake41/raylib-lua |
| raylua | 4.0 | [Lua](http://www.lua.org/) | MIT | https://github.com/Rabios/raylua |
| raylib-matte | 4.6-dev | [Matte](https://github.com/jcorks/matte/) | MIT | https://github.com/jcorks/raylib-matte |
| nelua-raylib | 4.0 | [nelua](https://nelua.io/) | MIT | https://github.com/AKDev21/nelua-raylib |
| Raylib.nelua | **4.5** | [nelua](https://nelua.io/) | Zlib | https://github.com/Its-Kenta/Raylib-Nelua |
| NimraylibNow! | 4.2 | [Nim](https://nim-lang.org/) | MIT | https://github.com/greenfork/nimraylib_now |
| raylib-bindings | **4.5** | [Ruby](https://www.ruby-lang.org/en/) | Zlib | https://github.com/vaiorabbit/raylib-bindings |
| raylib-Forever | auto | [Nim](https://nim-lang.org/) | ? | https://github.com/Guevara-chan/Raylib-Forever |
| naylib | auto | [Nim](https://nim-lang.org/) | MIT | https://github.com/planetis-m/naylib |
| node-raylib | **4.5** | [Node.js](https://nodejs.org/en/) | Zlib | https://github.com/RobLoach/node-raylib |
| raylib-odin | **4.5** | [Odin](https://odin-lang.org/) | BSD-3Clause | https://github.com/odin-lang/Odin/tree/master/vendor/raylib |
| raylib_odin_bindings | 4.0-dev | [Odin](https://odin-lang.org/) | MIT | https://github.com/Deathbat2190/raylib_odin_bindings |
| raylib-ocaml | **4.5** | [OCaml](https://ocaml.org/) | MIT | https://github.com/tjammer/raylib-ocaml |
| TurboRaylib | **4.5** | [Object Pascal](https://en.wikipedia.org/wiki/Object_Pascal) | MIT | https://github.com/turborium/TurboRaylib |
| Ray4Laz | **4.5** | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal)| Zlib | https://github.com/GuvaCode/Ray4Laz |
| Raylib.4.0.Pascal | 4.0 | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal)| Zlib | https://github.com/sysrpl/Raylib.4.0.Pascal |
| pyraylib | 3.7 | [Python](https://www.python.org/) | Zlib | https://github.com/Ho011/pyraylib |
| raylib-python-cffi | 4.2 | [Python](https://www.python.org/) | EPL-2.0 | https://github.com/electronstudio/raylib-python-cffi |
| raylibpyctbg | **4.5** | [Python](https://www.python.org/) | MIT | https://github.com/overdev/raylibpyctbg |
| raylib-py | **4.5** | [Python](https://www.python.org/) | MIT | https://github.com/overdev/raylib-py |
| raylib-python-ctypes | 4.6-dev | [Python](https://www.python.org/) | MIT | https://github.com/sDos280/raylib-python-ctypes |
| raylib-pkpy-bindings | 4.6-dev | [pocketpy](https://pocketpy.dev/) | MIT | https://github.com/blueloveTH/pkpy-bindings |
| raylib-php | **4.5** | [PHP](https://en.wikipedia.org/wiki/PHP) | Zlib | https://github.com/joseph-montanez/raylib-php |
| raylib-phpcpp | 3.5 | [PHP](https://en.wikipedia.org/wiki/PHP) | Zlib | https://github.com/oraoto/raylib-phpcpp |
| raylibr | 4.0 | [R](https://www.r-project.org) | MIT | https://github.com/jeroenjanssens/raylibr |
| raylib-ffi | 4.5 | [Rust](https://www.rust-lang.org/) | GPLv3 | https://github.com/ewpratten/raylib-ffi |
| raylib-rs | 3.5 | [Rust](https://www.rust-lang.org/) | Zlib | https://github.com/deltaphc/raylib-rs |
| Relib | 3.5 | [ReCT](https://github.com/RedCubeDev-ByteSpace/ReCT) | ? | https://github.com/RedCubeDev-ByteSpace/Relib |
| racket-raylib | 4.0 | [Racket](https://racket-lang.org/) | MIT/Apache-2.0 | https://github.com/eutro/racket-raylib |
| raylib-swift | 4.0 | [Swift](https://swift.org/) | MIT | https://github.com/STREGAsGate/Raylib |
| raylib-scopes | auto | [Scopes](http://scopes.rocks) | MIT | https://github.com/salotz/raylib-scopes |
| raylib-smallBasic | 4.1-dev | [SmallBASIC](https://github.com/smallbasic/SmallBASIC) | GPLv3 | https://github.com/smallbasic/smallbasic.plugins/tree/master/raylib |
| raylib-umka | **4.5** | [Umka](https://github.com/vtereshkov/umka-lang) | Zlib | https://github.com/robloach/raylib-umka |
| raylib.v | 4.2 | [V](https://vlang.io/) | Zlib | https://github.com/irishgreencitrus/raylib.v |
| raylib-vapi | 4.2 | [Vala](https://vala.dev/) | Zlib | https://github.com/lxmcf/raylib-vapi |
| raylib-wren | 4.0 | [Wren](http://wren.io/) | ISC | https://github.com/TSnake41/raylib-wren |
| raylib-zig | 4.2 | [Zig](https://ziglang.org/) | MIT | https://github.com/Not-Nik/raylib-zig |
| raylib.zig | **4.5** | [Zig](https://ziglang.org/) | MIT | https://github.com/ryupold/raylib.zig |
| hare-raylib | **auto** | [Hare](https://harelang.org/) | Zlib | https://git.sr.ht/~evantj/hare-raylib |
| raylib-sunder | **auto** | [Sunder](https://github.com/ashn-dot-dev/sunder) | 0BSD | https://github.com/ashn-dot-dev/raylib-sunder |
| rayed-bqn | **auto** | [BQN](https://mlochbaum.github.io/BQN/) | MIT | https://github.com/Brian-ED/rayed-bqn |
| rayjs | 4.6-dev | [QuickJS](https://bellard.org/quickjs/) | MIT | https://github.com/mode777/rayjs |
| raylib-raku | **auto** | [Raku](https://www.raku.org/) | Artistic License 2.0 | https://github.com/vushu/raylib-raku |
| Raylib.lean | 4.5 | [Lean4](https://lean-lang.org/) | BSD-3-Clause | https://github.com/KislyjKisel/Raylib.lean |
### Utility Wrapers
These are utility wrappers for specific languages, they are not required to use raylib in the language but may adapt the raylib API to be more inline with the language's pardigm.
| name | raylib version | language | license | repo |
|:------------------:|:-------------: | :--------:|:-------:|:-------------------------------------------------------------|
| raylib-cpp | **4.5** | [C++](https://en.wikipedia.org/wiki/C%2B%2B) | Zlib | https://github.com/robloach/raylib-cpp |
| claylib | **4.5** | [Common Lisp](https://common-lisp.net/) | Zlib | https://github.com/defun-games/claylib |
### Older or Unmaintained Language Bindings
These are older raylib bindings that are more than 2 versions old or have not been maintained.
| name | raylib version | language | repo |
|:------------------:|:-------------: | :--------:|----------------------------------------------------------------------|
| raylib-cppsharp | 2.5 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | https://github.com/phxvyper/raylib-cppsharp |
| RaylibFS | 2.5 | [F#](https://fsharp.org/) | https://github.com/dallinbeutler/RaylibFS |
| raylib_d | 2.5 | [D](https://dlang.org/) | https://github.com/Sepheus/raylib_d |
| bindbc-raylib | 3.0 | [D](https://dlang.org/) | https://github.com/o3o/bindbc-raylib |
| go-raylib | 3.5 | [Go](https://golang.org/) | https://github.com/chunqian/go-raylib |
| raylib-goplus | 2.6-dev | [Go](https://golang.org/) | https://github.com/Lachee/raylib-goplus |
| ray-go | 2.6-dev | [Go](https://golang.org/) | https://github.com/hecate-tech/ray-go |
| raylib-luamore | 3.0 | [Lua](http://www.lua.org/) | https://github.com/HDPLocust/raylib-luamore |
| LuaJIT-Raylib | 2.6 | [Lua](http://www.lua.org/) | https://github.com/Bambofy/LuaJIT-Raylib |
| raylib-lua-sol | 2.5 | [Lua](http://www.lua.org/) | https://github.com/RobLoach/raylib-lua-sol |
| raylib-lua-ffi | 2.0 | [Lua](http://www.lua.org/) | https://github.com/raysan5/raylib/issues/693 |
| raylib-lua | 1.7 | [Lua](http://www.lua.org/) | https://github.com/raysan5/raylib-lua |
| raylib-nelua | 3.0 | [Nelua](https://nelua.io/) | https://github.com/Andre-LA/raylib-nelua |
| raylib-nim | 2.0 | [Nim](https://nim-lang.org/) | https://github.com/Skrylar/raylib-nim |
| raylib-Nim | 1.7 | [Nim](https://nim-lang.org/) | https://gitlab.com/define-private-public/raylib-Nim |
| nim-raylib | 3.1-dev | [Nim](https://nim-lang.org/) | https://github.com/tomc1998/nim-raylib |
| raylib-haskell | 2.0 | [Haskell](https://www.haskell.org/) | https://github.com/DevJac/raylib-haskell |
| raylib-cr | 2.5-dev | [Crystal](https://crystal-lang.org/) | https://github.com/AregevDev/raylib-cr |
| raylib.cr | 2.0 | [Crystal](https://crystal-lang.org/) | https://github.com/sam0x17/raylib.cr |
| cray | 1.8 | [Crystal](https://crystal-lang.org/) | https://gitlab.com/Zatherz/cray |
| raylib-pas | 3.0 | [Pascal](https://en.wikipedia.org/wiki/Pascal_(programming_language)) | https://github.com/tazdij/raylib-pas |
| raylib-pascal | 2.0 | [Pascal](https://en.wikipedia.org/wiki/Pascal_(programming_language)) | https://github.com/drezgames/raylib-pascal |
| Graphics-Raylib | 1.4 | [Perl](https://www.perl.org/) | https://github.com/athreef/Graphics-Raylib |
| raylib-ruby | 2.6 | [Ruby](https://www.ruby-lang.org/en/) | https://github.com/a0/raylib-ruby |
| raylib-ruby-ffi | 2.0 | [Ruby](https://www.ruby-lang.org/en/) | https://github.com/D3nX/raylib-ruby-ffi |
| raylib-mruby | 2.5-dev | [mruby](https://github.com/mruby/mruby) | https://github.com/lihaochen910/raylib-mruby |
| raylib-java | 2.0 | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | https://github.com/XoanaIO/raylib-java |
| clj-raylib | 3.0 | [Clojure](https://clojure.org/) | https://github.com/lsevero/clj-raylib |
| QuickJS-raylib | 3.0 | [QuickJS](https://bellard.org/quickjs/) | https://github.com/sntg-p/QuickJS-raylib |
| raylib-duktape | 2.6 | [JavaScript (Duktape)](https://en.wikipedia.org/wiki/JavaScript) | https://github.com/RobLoach/raylib-duktape |
| raylib-v7 | 3.5 | [JavaScript (v7)](https://en.wikipedia.org/wiki/JavaScript) | https://github.com/Rabios/raylib-v7 |
| raylib-chaiscript | 2.6 | [ChaiScript](http://chaiscript.com/) | https://github.com/RobLoach/raylib-chaiscript |
| raylib-squirrel | 2.5 | [Squirrel](http://www.squirrel-lang.org/) | https://github.com/RobLoach/raylib-squirrel |
| racket-raylib-2d | 2.5 | [Racket](https://racket-lang.org/) | https://github.com/arvyy/racket-raylib-2d |
| raylib-php-ffi | 2.4-dev | [PHP](https://en.wikipedia.org/wiki/PHP) | https://github.com/oraoto/raylib-php-ffi |
| raylib-haxe | 2.4 | [Haxe](https://haxe.org/) | https://github.com/ibilon/raylib-haxe |
| ringraylib | 2.6 | [Ring](http://ring-lang.sourceforge.net/) | https://github.com/ringpackages/ringraylib |
| raylib-scm | 2.5 | [Chicken Scheme](https://www.call-cc.org/) | https://github.com/yashrk/raylib-scm |
| raylib-chibi | 2.5 | [Chibi-Scheme](https://github.com/ashinn/chibi-scheme) | https://github.com/VincentToups/raylib-chibi |
| raylib-gambit-scheme | 3.1-dev | [Gambit Scheme](https://github.com/gambit/gambit) | https://github.com/georgjz/raylib-gambit-scheme |
| Euraylib | 3.0 | [Euphoria](https://openeuphoria.org/) | https://github.com/gAndy50/Euraylib |
| raylib-odin | 3.0 | [Odin](https://odin-lang.org/) | https://github.com/kevinw/raylib-odin |
| vraylib | 3.5 | [V](https://vlang.io/) | https://github.com/waotzi/vraylib |
| raylib-vala | 3.0 | [Vala](https://wiki.gnome.org/Projects/Vala) | https://code.guddler.uk/mart/raylibVapi |
| raylib-jai | 3.1-dev | [Jai](https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md) | https://github.com/kujukuju/raylib-jai |
| ray.zig | 2.5 | [Zig](https://ziglang.org/) | https://github.com/BitPuffin/zig-raylib-experiments |
| raylib-Ada | 3.0 | [Ada](https://www.adacore.com/about-ada) | https://github.com/mimo/raylib-Ada |
| raykit | ? | [Kit](https://www.kitlang.org/) | https://github.com/Gamerfiend/raykit |
| ray.mod | 3.0 | [BlitzMax](https://blitzmax.org/) | https://github.com/bmx-ng/ray.mod |
| raylib-mosaic | 3.0 | [Mosaic](https://github.com/sal55/langs/tree/master/Mosaic) | https://github.com/pluckyporcupine/raylib-mosaic |
| raylib-xdpw | 2.6 | [XD Pascal](https://github.com/vtereshkov/xdpw) | https://github.com/vtereshkov/raylib-xdpw |
| raylib-carp | 3.0 | [Carp](https://github.com/carp-lang/Carp) | https://github.com/pluckyporcupine/raylib-carp |
| raylib-fb | 3.0 | [FreeBasic](https://www.freebasic.net/) | https://github.com/IchMagBier/raylib-fb |
| raylib-purebasic | 3.0 | [PureBasic](https://www.purebasic.com/) | https://github.com/D-a-n-i-l-o/raylib-purebasic |
| raylib-ats2 | 3.0 | [ATS2](http://www.ats-lang.org/) | https://github.com/mephistopheles-8/raylib-ats2 |
| raylib-beef | 3.0 | [Beef](https://www.beeflang.org/) | https://github.com/M0n7y5/raylib-beef |
| raylib-never | 3.0 | [Never](https://github.com/never-lang/never) | https://github.com/never-lang/raylib-never |
| raylib.cbl | 2.0 | [COBOL](https://en.wikipedia.org/wiki/COBOL) | *[code examples](https://github.com/Martinfx/Cobol/tree/master/OpenCobol/Games/raylib)* |
Missing some language or wrapper? Feel free to create a new one! :)
Usually, raylib bindings follow the convention: `raylib-{language}`
Let me know if you're writing a new binding for raylib, I will list it here!
+1696 -20
View File
File diff suppressed because it is too large Load Diff
+56
View File
@@ -0,0 +1,56 @@
cmake_minimum_required(VERSION 3.0)
project(raylib)
# Avoid excessive expansion of variables in conditionals. In particular, if
# "PLATFORM" is "DRM" than:
#
# if (${PLATFORM} MATCHES "DRM")
#
# may expand e.g to:
#
# if (/usr/lib/aarch64-linux-gnu/libdrm.so MATCHES "DRM")
#
# See https://cmake.org/cmake/help/latest/policy/CMP0054.html
cmake_policy(SET CMP0054 NEW)
# Directory for easier includes
# Anywhere you see include(...) you can check <root>/cmake for that file
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
# RAYLIB_IS_MAIN determines whether the project is being used from root
# or if it is added as a dependency (through add_subdirectory for example).
if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
set(RAYLIB_IS_MAIN TRUE)
else()
set(RAYLIB_IS_MAIN FALSE)
endif()
# Sets compiler flags and language standard
include(CompilerFlags)
# Registers build options that are exposed to cmake
include(CMakeOptions.txt)
# Enforces a few environment and compiler configurations
include(BuildOptions)
# Main sources directory (the second parameter sets the output directory name to raylib)
add_subdirectory(src raylib)
# Uninstall target
if(NOT TARGET uninstall)
configure_file(
"${CMAKE_MODULE_PATH}/Uninstall.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
endif()
if (${BUILD_EXAMPLES})
MESSAGE(STATUS "Building examples is enabled")
add_subdirectory(examples)
endif()
enable_testing()
+103
View File
@@ -0,0 +1,103 @@
### Config options ###
include(CMakeDependentOption)
include(EnumOption)
enum_option(PLATFORM "Desktop;Web;Android;Raspberry Pi;DRM" "Platform to build for.")
enum_option(OPENGL_VERSION "OFF;4.3;3.3;2.1;1.1;ES 2.0;ES 3.0" "Force a specific OpenGL Version?")
# Configuration options
option(BUILD_EXAMPLES "Build the examples." ${RAYLIB_IS_MAIN})
option(CUSTOMIZE_BUILD "Show options for customizing your Raylib library build." OFF)
option(ENABLE_ASAN "Enable AddressSanitizer (ASAN) for debugging (degrades performance)" OFF)
option(ENABLE_UBSAN "Enable UndefinedBehaviorSanitizer (UBSan) for debugging" OFF)
option(ENABLE_MSAN "Enable MemorySanitizer (MSan) for debugging (not recommended to run with ASAN)" OFF)
# Shared library is always PIC. Static library should be PIC too if linked into a shared library
option(WITH_PIC "Compile static library as position-independent code" OFF)
option(BUILD_SHARED_LIBS "Build raylib as a shared library" OFF)
option(MACOS_FATLIB "Build fat library for both i386 and x86_64 on macOS" OFF)
cmake_dependent_option(USE_AUDIO "Build raylib with audio module" ON CUSTOMIZE_BUILD ON)
enum_option(USE_EXTERNAL_GLFW "OFF;IF_POSSIBLE;ON" "Link raylib against system GLFW instead of embedded one")
if(UNIX AND NOT APPLE)
option(USE_WAYLAND "Use Wayland for window creation" OFF)
endif()
option(INCLUDE_EVERYTHING "Include everything disabled by default (for CI usage" OFF)
set(OFF ${INCLUDE_EVERYTHING} CACHE INTERNAL "Replace any OFF by default with \${OFF} to have it covered by this option")
# raylib modules included
cmake_dependent_option(SUPPORT_MODULE_RSHAPES "Include module: rshapes" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_MODULE_RTEXTURES "Include module: rtextures" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_MODULE_RTEXT "Include module: rtext" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_MODULE_RMODELS "Include module: rmodels" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_MODULE_RAUDIO "Include module: raudio" ON CUSTOMIZE_BUILD ON)
# rcore.c
cmake_dependent_option(SUPPORT_CAMERA_SYSTEM "Provide camera module (rcamera.h) with multiple predefined cameras: free, 1st/3rd person, orbital" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_GESTURES_SYSTEM "Gestures module is included (rgestures.h) to support gestures detection: tap, hold, swipe, drag" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_RPRAND_GENERATOR "Include pseudo-random numbers generator (rprand.h), based on Xoshiro128** and SplitMix64" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_MOUSE_GESTURES "Mouse gestures are directly mapped like touches and processed by gestures system" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_SSH_KEYBOARD_RPI "Reconfigure standard input to receive key inputs, works with SSH connection" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_DEFAULT_FONT "Default font is loaded on window initialization to be available for the user to render simple text. If enabled, uses external module functions to load default raylib font (module: text)" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_SCREEN_CAPTURE "Allow automatic screen capture of current screen pressing F12, defined in KeyCallback()" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_GIF_RECORDING "Allow automatic gif recording of current screen pressing CTRL+F12, defined in KeyCallback()" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_BUSY_WAIT_LOOP "Use busy wait loop for timing sync instead of a high-resolution timer" OFF CUSTOMIZE_BUILD OFF)
cmake_dependent_option(SUPPORT_EVENTS_WAITING "Wait for events passively (sleeping while no events) instead of polling them actively every frame" OFF CUSTOMIZE_BUILD OFF)
cmake_dependent_option(SUPPORT_WINMM_HIGHRES_TIMER "Setting a higher resolution can improve the accuracy of time-out intervals in wait functions" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_COMPRESSION_API "Support for compression API" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_EVENTS_AUTOMATION "Support automatic generated events, loading and recording of those events when required" OFF CUSTOMIZE_BUILD OFF)
cmake_dependent_option(SUPPORT_CUSTOM_FRAME_CONTROL "Enabling this flag allows manual control of the frame processes, use at your own risk" OFF CUSTOMIZE_BUILD OFF)
# rshapes.c
cmake_dependent_option(SUPPORT_QUADS_DRAW_MODE "Use QUADS instead of TRIANGLES for drawing when possible. Some lines-based shapes could still use lines" ON CUSTOMIZE_BUILD ON)
# rtextures.c
cmake_dependent_option(SUPPORT_IMAGE_EXPORT "Support image exporting to file" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_IMAGE_GENERATION "Support procedural image generation functionality (gradient, spot, perlin-noise, cellular)" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_IMAGE_MANIPULATION "Support multiple image editing functions to scale, adjust colors, flip, draw on images, crop... If not defined only three image editing functions supported: ImageFormat(), ImageAlphaMask(), ImageToPOT()" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_PNG "Support loading PNG as textures" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_DDS "Support loading DDS as textures" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_HDR "Support loading HDR as textures" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_PIC "Support loading PIC as textures" ${OFF} CUSTOMIZE_BUILD OFF)
cmake_dependent_option(SUPPORT_FILEFORMAT_PNM "Support loading PNM as textures" ${OFF} CUSTOMIZE_BUILD OFF)
cmake_dependent_option(SUPPORT_FILEFORMAT_KTX "Support loading KTX as textures" ${OFF} CUSTOMIZE_BUILD OFF)
cmake_dependent_option(SUPPORT_FILEFORMAT_ASTC "Support loading ASTC as textures" ${OFF} CUSTOMIZE_BUILD OFF)
cmake_dependent_option(SUPPORT_FILEFORMAT_BMP "Support loading BMP as textures" ${OFF} CUSTOMIZE_BUILD OFF)
cmake_dependent_option(SUPPORT_FILEFORMAT_TGA "Support loading TGA as textures" ${OFF} CUSTOMIZE_BUILD OFF)
cmake_dependent_option(SUPPORT_FILEFORMAT_JPG "Support loading JPG as textures" ${OFF} CUSTOMIZE_BUILD OFF)
cmake_dependent_option(SUPPORT_FILEFORMAT_GIF "Support loading GIF as textures" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_QOI "Support loading QOI as textures" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_PSD "Support loading PSD as textures" ${OFF} CUSTOMIZE_BUILD OFF)
cmake_dependent_option(SUPPORT_FILEFORMAT_PKM "Support loading PKM as textures" ${OFF} CUSTOMIZE_BUILD OFF)
cmake_dependent_option(SUPPORT_FILEFORMAT_PVR "Support loading PVR as textures" ${OFF} CUSTOMIZE_BUILD OFF)
cmake_dependent_option(SUPPORT_FILEFORMAT_SVG "Support loading SVG as textures" ${OFF} CUSTOMIZE_BUILD OFF)
# rtext.c
cmake_dependent_option(SUPPORT_FILEFORMAT_FNT "Support loading fonts in FNT format" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_TTF "Support loading font in TTF/OTF format" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_TEXT_MANIPULATION "Support text manipulation functions" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FONT_ATLAS_WHITE_REC "Support white rec on font atlas bottom-right corner" ON CUSTOMIZE_BUILD ON)
# rmodels.c
cmake_dependent_option(SUPPORT_MESH_GENERATION "Support procedural mesh generation functions, uses external par_shapes.h library. NOTE: Some generated meshes DO NOT include generated texture coordinates" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_OBJ "Support loading OBJ file format" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_MTL "Support loading MTL file format" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_IQM "Support loading IQM file format" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_GLTF "Support loading GLTF file format" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_VOX "Support loading VOX file format" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_M3D "Support loading M3D file format" ON CUSTOMIZE_BUILD ON)
# raudio.c
cmake_dependent_option(SUPPORT_FILEFORMAT_WAV "Support loading WAV for sound" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_OGG "Support loading OGG for sound" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_XM "Support loading XM for sound" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_MOD "Support loading MOD for sound" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_MP3 "Support loading MP3 for sound" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_QOA "Support loading QOA for sound" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_FILEFORMAT_FLAC "Support loading FLAC for sound" ${OFF} CUSTOMIZE_BUILD OFF)
# utils.c
cmake_dependent_option(SUPPORT_STANDARD_FILEIO "Support standard file io library (stdio.h)" ON CUSTOMIZE_BUILD ON)
cmake_dependent_option(SUPPORT_TRACELOG "Show TraceLog() output messages. NOTE: By default LOG_DEBUG traces not shown" ON CUSTOMIZE_BUILD ON)
+76
View File
@@ -0,0 +1,76 @@
## Contributing to raylib
Hello contributors! Welcome to raylib!
Do you enjoy raylib and want to contribute? Nice! You can help with the following points:
- `C programming` - Can you write/review/test/improve the code?
- `Documentation/Tutorials/Example` - Can you write some tutorial/example?
- `Porting to other platforms` - Can you port/adapt/compile raylib on other systems?
- `Web Development` - Can you help [with the website](https://github.com/raysan5/raylib.com)?
- `Testing` - Can you find some bugs in raylib?
This document contains a set of guidelines to contribute to the project. These are mostly guidelines, not rules.
Use your best judgement, and feel free to propose changes to this document in a pull request.
### raylib philosophy
- raylib is a tool to **ENJOY** videogames programming, every function in raylib is designed as a mini-tutorial on itself.
- raylib is **SIMPLE** and **EASY-TO-USE**, I tried to keep it compact with a small set of functions, if a function is too complex, better not including it.
- raylib is open source and free; educators and institutions can use this tool to **TEACH** videogames programming completely for free.
- raylib is collaborative; contribution of tutorials / code examples / bug fixes / code comments are highly appreciated.
- raylib's license (and its external libs respective licenses) allow using raylib on commercial projects.
### Some interesting reads to start with
- [raylib history](HISTORY.md)
- [raylib architecture](https://github.com/raysan5/raylib/wiki/raylib-architecture)
- [raylib license](LICENSE)
- [raylib roadmap](ROADMAP.md)
[raylib Wiki](https://github.com/raysan5/raylib/wiki) contains some information about the library and is open to anyone for edit.
Feel free to review it if required, just take care not to break something.
### raylib C coding conventions
Despite being written in C, raylib does not follow the standard Hungarian notation for C,
it [follows Pascal-case/camel-case notation](https://github.com/raysan5/raylib/wiki/raylib-coding-conventions),
more common on C# language. All code formatting decisions have been carefully taken
to make it easier for students/users to read, write and understand code.
Source code is extensively commented for that purpose, raylib primary learning method is:
> `Learn by reading code and examples`
For detailed information on building raylib and examples, please check [raylib Wiki](https://github.com/raysan5/raylib/wiki).
### Opening new Issues
To open new issue for raylib (bug, enhancement, discussion...), just try to follow these rules:
- Make sure the issue has not already been reported before by searching on GitHub under Issues.
- If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a
title and clear description, as much relevant information as possible, and a code sample demonstrating the unexpected behavior.
- If applies, attach some screenshot of the issue and a .zip file with the code sample and required resources.
- On issue description, add a brackets tag about the raylib module that relates to this issue.
If don't know which module, just report the issue, I will review it.
- You can check other issues to see how is being done!
### Sending a Pull-Request
- Make sure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
- Don't send big pull requests (lots of changelists), they are difficult to review. It's better to send small pull requests, one at a time.
- Verify that changes don't break the build (at least on Windows platform). As many platforms where you can test it, the better, but don't worry
if you cannot test all the platforms.
### Contact information
If you have any doubt, don't hesitate to [contact me](mailto:ray@raylib.com)!.
You can write me a direct mail but you can also contact me on the following networks:
- [raylib Discord](https://discord.gg/raylib) - A direct communication channel for project discussions.
- [raylib twitter](https://twitter.com/raysan5) - My personal twitter account, I usually post about raylib, you can send me PMs.
- [raylib reddit](https://www.reddit.com/r/raylib/) - A good place for discussions or to ask for help.
- [raylib web](http://www.raylib.com/) - On top-right corner there is a bunch of networks where you can find me.
Thank you very much for your time! :)
+94
View File
@@ -0,0 +1,94 @@
## C Coding Style Conventions
Here it is a list with some of the code conventions used by raylib:
Code element | Convention | Example
--- | :---: | ---
Defines | ALL_CAPS | `#define PLATFORM_DESKTOP`
Macros | ALL_CAPS | `#define MIN(a,b) (((a)<(b))?(a):(b))`
Variables | lowerCase | `int screenWidth = 0;`, `float targetFrameTime = 0.016f;`
Local variables | lowerCase | `Vector2 playerPosition = { 0 };`
Global variables | lowerCase | `bool windowReady = false;`
Constants | lowerCase | `const int maxValue = 8;`
Pointers | MyType *pointer | `Texture2D *array = NULL;`
float values | always x.xf | `float gravity = 10.0f`
Operators | value1*value2 | `int product = value*6;`
Operators | value1/value2 | `int division = value/4;`
Operators | value1 + value2 | `int sum = value + 10;`
Operators | value1 - value2 | `int res = value - 5;`
Enum | TitleCase | `enum TextureFormat`
Enum members | ALL_CAPS | `PIXELFORMAT_UNCOMPRESSED_R8G8B8`
Struct | TitleCase | `struct Texture2D`, `struct Material`
Struct members | lowerCase | `texture.width`, `color.r`
Functions | TitleCase | `InitWindow()`, `LoadImageFromMemory()`
Functions params | lowerCase | `width`, `height`
Ternary Operator | (condition)? result1 : result2 | `printf("Value is 0: %s", (value == 0)? "yes" : "no");`
Some other conventions to follow:
- **ALWAYS** initialize all defined variables.
- **Do not use TABS**, use 4 spaces instead.
- Avoid trailing spaces, please, avoid them
- Control flow statements always are followed **by a space**:
```c
if (condition) value = 0;
while (!WindowShouldClose())
{
}
for (int i = 0; i < NUM_VALUES; i++) printf("%i", i);
// Be careful with the switch formatting!
switch (value)
{
case 0:
{
} break;
case 2: break;
default: break;
}
```
- All conditions checks are **always between parenthesis** but not boolean values:
```c
if ((value > 1) && (value < 50) && valueActive)
{
}
```
- When dealing with braces or curly brackets, open-close them in aligned mode:
```c
void SomeFunction()
{
// TODO: Do something here!
}
```
**If proposing new functions, please try to use a clear naming for function-name and functions-parameters, in case of doubt, open an issue for discussion.**
## Files and Directories Naming Conventions
- Directories will be named using `snake_case`: `resources/models`, `resources/fonts`
- Files will be named using `snake_case`: `main_title.png`, `cubicmap.png`, `sound.wav`
_NOTE: Avoid any space or special character in the files/dir naming!_
## Games/Examples Directories Organization Conventions
- Data files should be organized by context and usage in the game, think about the loading requirements for data and put all the resources that need to be loaded at the same time together.
- Use descriptive names for the files, it would be perfect if just reading the name of the file, it was possible to know what is that file and where fits in the game.
- Here it is an example, note that some resources require to be loaded all at once while other require to be loaded only at initialization (gui, font).
```
resources/audio/fx/long_jump.wav
resources/audio/music/main_theme.ogg
resources/screens/logo/logo.png
resources/screens/title/title.png
resources/screens/gameplay/background.png
resources/characters/player.png
resources/characters/enemy_slime.png
resources/common/font_arial.ttf
resources/common/gui.png
```
+138
View File
@@ -0,0 +1,138 @@
# Frequently Asked Questions
- [What is raylib?](#what-is-raylib)
- [What can I do with raylib?](#what-can-i-do-with-raylib)
- [Which kinds of games can I make with raylib?](#which-kinds-of-games-can-i-make-with-raylib)
- [Can I create non-game applications with raylib?](#can-i-create-non-game-applications-with-raylib)
- [How can I learn to use raylib? Is there some official documentation or tutorials?](#how-can-i-learn-to-use-raylib-is-there-some-official-documentation-or-tutorials)
- [How much does it cost?](#how-much-does-it-cost)
- [What is the raylib license?](#what-is-the-raylib-license)
- [What platforms are supported by raylib?](#what-platforms-are-supported-by-raylib)
- [What programming languages can I use with raylib?](#what-programming-languages-can-i-use-with-raylib)
- [Why is it coded in C?](#why-is-it-coded-in-c)
- [Is raylib a videogames engine?](#is-raylib-a-videogames-engine)
- [What does raylib provide that other engines or libraries don't?](#what-does-raylib-provide-that-other-engines-or-libraries-dont)
- [How does raylib compare to Unity/Unreal/Godot?](#how-does-raylib-compare-to-unityunrealgodot)
- [What development tools are required for raylib?](#what-development-tools-are-required-for-raylib)
- [What are raylib's external dependencies?](#what-are-raylibs-external-dependencies)
- [Can I use raylib with other technologies or libraries?](#can-i-use-raylib-with-other-technologies-or-libraries)
- [What file formats are supported by raylib?](#what-file-formats-are-supported-by-raylib)
- [Does raylib support the Vulkan API?](#does-raylib-support-the-vulkan-api)
- [What could I expect to see in raylib in the future?](#what-could-i-expect-to-see-in-raylib-in-the-future)
- [Who are the raylib developers?](#who-are-the-raylib-developers)
- [MORE QUESTIONS...](https://github.com/raysan5/raylib/wiki/Frequently-Asked-Questions)
### What is raylib?
raylib is a C programming library, designed to be simple and easy-to-use. It provides a set of functions intended for graphics/multimedia applications programming.
### What can I do with raylib?
raylib can be used to create any kind of graphics/multimedia applications: videogames, tools, mobile apps, web applications... Actually it can be used to create any application that requires something to be shown in a display with graphic hardware acceleration (OpenGL); including [IoT](https://en.wikipedia.org/wiki/Internet_of_things) devices with a graphics display.
### Which kinds of games can I make with raylib?
With enough time and effort any kind of game/application can be created but small-mid sized 2d videogames are the best fit. The raylib [examples](https://www.raylib.com/examples.html)/[games](https://www.raylib.com/games.html) and [raylibtech](https://raylibtech.itch.io/) tools are an example of what can be accomplished with raylib.
### Can I create non-game applications with raylib?
Yes, raylib can be used to create any kind of application, not just videogames. For example, it can be used to create [desktop/web tools](https://raylibtech.itch.io/) or also applications for an IoT devices like [Raspberry Pi](https://www.raspberrypi.org/).
### How can I learn to use raylib? Is there some official documentation or tutorials?
raylib does not provide a "standard" API reference documentation like other libraries, all of the raylib functionality is exposed in a simple [cheatsheet](https://www.raylib.com/cheatsheet/cheatsheet.html). Most of the functions are self-explanatory and the required parameters are very intuitive. It's also highly recommended to take a look to [`raylib.h`](https://github.com/raysan5/raylib/blob/master/src/raylib.h) header file or even the source code, that is very clean and organized, intended for teaching.
raylib also provides a big [collection of examples](https://www.raylib.com/examples.html), to showcase the multiple functionality usage (+120 examples). Examples are categorized by the internal module functionality and also define an estimated level of difficulty to guide the users checking them.
There is also a [FAQ on the raylib Wiki](https://github.com/raysan5/raylib/wiki/Frequently-Asked-Questions) with common technical questions.
There are also many tutorials on the internet and YouTube created by the growing raylib community along the years.
[raylib Discord Community](https://discord.gg/raylib) is also a great place to join and ask questions, the community is very friendly and always ready to help.
### How much does it cost?
raylib is [free and open source](https://github.com/raysan5/raylib). Anyone can use raylib library for free to create games/tools/apps but also the source code of raylib is open for anyone to check it, modify it, adapt it as required or just learn how it works internally.
### What is the raylib license?
raylib source code is licensed under an unmodified zlib/libpng license, which is an OSI-certified, BSD-like license that allows static linking with closed source software. Check [LICENSE](https://github.com/raysan5/raylib/blob/master/LICENSE) for further details.
### What platforms are supported by raylib?
raylib source code can be compiled for the following platforms:
- Windows (7, 8.1, 10, 11)
- Linux - Desktop (multiple distributions, X11 and Wayland based)
- Linux - Native (no windowing system, [DRM](https://en.wikipedia.org/wiki/Direct_Rendering_Manager))
- macOS (multiple versions, including ARM64)
- FreeBSD, OpenBSD, NetBSD, DragonFly
- Raspberry Pi (desktop and native)
- Android (multiple API versions and architectures)
- HTML5 (WebAssembly)
- Haiku
raylib code has also been ported to several [homebrew](https://en.wikipedia.org/wiki/Homebrew_(video_games)) platforms: N3DS, Switch, PS4, PSVita.
Also note that raylib is a low-level library that can be easily ported to any platform with OpenGL support (or similar API).
### What programming languages can I use with raylib?
raylib original version is coded in C language (using some C99 features) but it has bindings to +60 programming languages. Check [BINDINGS.md](https://github.com/raysan5/raylib/blob/master/BINDINGS.md) for details.
### Why is it coded in C?
It's a simple language, no high-level code abstractions like [OOP](https://en.wikipedia.org/wiki/Object-oriented_programming), just data types and functions. It's a very enjoyable language to code.
### Is raylib a videogames engine?
I personally consider raylib a graphics library with some high-level features rather than an engine. The line that separates a library/framework from an engine could be very confusing; raylib provides all the required functionality to create simple games or small applications but it does not provide 3 elements that I personally consider any "engine" should provide: Screen manager, GameObject/Entity manager and Resource Manager. Still, most users do not need those elements or just code simple approaches on their own.
### What does raylib provide that other engines or libraries don't?
I would say "simplicity" and "enjoyment" at a really low-level of coding but actually is up to the user to discover it, to try it and to see if it fits their needs. raylib is not good for everyone but it's worth a try.
### How does raylib compare to Unity/Unreal/Godot?
Those engines are usually big and complex to use, providing lot of functionality. They require some time to learn and test, they usually abstract many parts of the game development process and they usually provide a set of tools to assist users on their creations (like a GUI editor).
raylib is a simple programming library, with no integrated tools or editors. It gives full control to users at a very low-level to create graphics applications in a more handmade way.
### What development tools are required for raylib?
To develop raylib programs you only need a text editor (with recommended code syntax highlighting) and a compiler.
A [raylib Windows Installer](https://raysan5.itch.io/raylib) package is distributed including the Notepad++ editor and MinGW (GCC) compiler pre-configured for Windows for new users as an starter-pack but for more advance configurations with other editors/compilers, [raylib Wiki](https://github.com/raysan5/raylib/wiki) provides plenty of configuration tutorials.
### What are raylib's external dependencies?
raylib is self-contained, it has no external dependencies to build it. But internally raylib uses several libraries from other developers, mostly used to load specific file-formats.
A detailed list of raylib dependencies could be found on the [raylib Wiki](https://github.com/raysan5/raylib/wiki/raylib-dependencies).
### Can I use raylib with other technologies or libraries?
Yes, raylib can be used with other libraries that provide specific functionality. There are multiple examples of raylib integrations with libraries like Spine, Tiled, Dear Imgui and several physics engines.
### What file formats are supported by raylib?
raylib can load data from multiple standard file formats:
- Image/Textures: PNG, BMP, TGA, JPG, GIF, QOI, PSD, DDS, HDR, KTX, ASTC, PKM, PVR
- Fonts: FNT (sprite font), TTF, OTF
- Models/Meshes: OBJ, IQM, GLTF, VOX, M3D
- Audio: WAV, OGG, MP3, FLAC, XM, MOD, QOA
### Does raylib support the Vulkan API?
No, raylib is built on top of OpenGL API, and there are currently no plans to support any other graphics APIs. In any case, raylib uses rlgl as an abstraction layer to support different OpenGL versions. If really required, a Vulkan backend equivalent could be added but creating that abstraction layer would imply a considerable amount of work.
### What could I expect to see in raylib in the future?
The main focus of the library is simplicity. Most of the efforts are invested in maintainability and bug-fixing. Despite new small features are regularly added, it's not the objective for raylib to become a full-featured engine. Personally I prefer to keep it small and enjoyable.
### Who are the raylib developers?
The main raylib developer and maintainer is [Ramon Santamaria](https://www.linkedin.com/in/raysan/) but there's 360+ contributors that have helped by adding new features, testing the library and solving issues in the 9+ years life of raylib.
The full list of raylib contributors can be seen [on GitHub](https://github.com/raysan5/raylib/graphs/contributors).
-37
View File
@@ -1,37 +0,0 @@
help me!
--------
Im working hard on raylib but my resources are quite limited. If you enjoy raylib and want to help / contribute in some way,
please, [let me know][raysan5].
The following help is highly appreciated:
- C programming - Can you write / review / test / improve the code?
- Documentation / Tutorials / Example writters - Can you write some tutorial / example?
- Web Development - Can you help with the web? Can you setup a forum?
- Porting to Linux, OSX, RaspberryPi, consoles... - Can you compile and test raylib on another systems?
- Testers of current features and multiple systems - Can you find some bug on raylib?
If you can not help on any of the above points but you still want to contribute in some way... please, consider helping
with a small [donation](http://www.raylib.com/helpme.htm) or contributing with [raylib patreon](https://www.patreon.com/raysan5). It will really motivate to continue improving this project (and pay some bills… or some coffee).
raylib philosophy
------------------
* raylib is a tool to LEARN videogames programming, every single function in raylib should be a tutorial on itself.
* raylib is SIMPLE and EASY-TO-USE, I tried to keep it compact with a small set of functions, if a function is too complex or has not a clear usefulness, better not to include it.
* raylib is open source and free; educators and institutions can use this tool to TEACH videogames programming completely by free.
* raylib is collaborative; contribution of tutorials / code-examples / bugs-solving / code-comments are highly appreciated.
* raylib's license (and its external libs respective licenses) allow using it for commercial products.
contact
-------
* Webpage: [http://www.raylib.com](http://www.raylib.com)
* Twitter: [http://www.twitter.com/raysan5](http://www.twitter.com/raysan5)
* Facebook: [http://www.facebook.com/raylibgames](http://www.facebook.com/raylibgames)
* Reddit: [https://www.reddit.com/r/raylib](https://www.reddit.com/r/raylib)
* Twitch: [http://www.twitch.tv/raysan5](http://www.twitch.tv/raysan5)
* Patreon: [https://www.patreon.com/raysan5](https://www.patreon.com/raysan5)
[raysan5]: mailto:raysan5@gmail.com "Ramon Santamaria - Ray San"
+473
View File
@@ -0,0 +1,473 @@
![raylib logo](logo/raylib_256x256.png)
introduction
------------
I started developing videogames in 2006 and some years later I started teaching videogames development to young people with artistic profile, most of students had never written a single line of code.
I decided to start with C language basis and, after searching for the most simple and easy-to-use library to teach videogames programming, I found [WinBGI](https://winbgim.codecutter.org/); it was great and it worked very well with students, in just a couple of weeks, those students that had never written a single line of code were able to program (and understand) a simple PONG game, some of them even a BREAKOUT!
But WinBGI was not the clearer and most organized library for my taste. There were lots of things I found confusing and some function names were not clear enough for most of the students; not to mention the lack of transparencies support and no hardware acceleration.
So, I decided to create my own library, hardware accelerated, clear function names, quite organized, well structured, plain C coding and, the most important, primarily intended to learn videogames programming.
My previous videogames development experience was mostly in C# and [XNA](https://en.wikipedia.org/wiki/Microsoft_XNA) and I really loved it, so, I decided to use C# language style notation and XNA naming conventions. That way, students were able to move from raylib to XNA, MonoGame or similar libs extremely easily.
raylib started as a weekend project and after three months of hard work, **raylib 1.0 was published on November 2013**.
Enjoy it.
notes on raylib 1.1
-------------------
On April 2014, after 6 month of first raylib release, raylib 1.1 has been released. This new version presents a complete internal redesign of the library to support OpenGL 1.1, OpenGL 3.3+ and OpenGL ES 2.0.
- A new module named [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.h) has been added to the library. This new module translates raylib-OpenGL-style immediate mode functions (i.e. rlVertex3f(), rlBegin(), ...) to different versions of OpenGL (1.1, 3.3+, ES2), selectable by one define.
- [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.h) also comes with a second new module named [raymath](https://github.com/raysan5/raylib/blob/master/src/raymath.h), which includes a bunch of useful functions for 3d-math with vectors, matrices and quaternions.
Some other big changes of this new version have been the support for OGG files loading and stream playing, and the support of DDS texture files (compressed and uncompressed) along with mipmaps support.
Lots of code changes and lot of testing have concluded in this amazing new raylib 1.1.
notes on raylib 1.2
-------------------
On September 2014, after 5 month of raylib 1.1 release, it comes raylib 1.2. Again, this version presents a complete internal redesign of [core](https://github.com/raysan5/raylib/blob/master/src/rcore.c) module to support two new platforms: [Android](http://www.android.com/) and [Raspberry Pi](http://www.raspberrypi.org/).
It's been some month of really hard work to accomodate raylib to those new platforms while keeping it easy for the users. On Android, raylib manages internally the activity cicle, as well as the inputs; on Raspberry Pi, a complete raw input system has been written from scratch.
- A new display initialization system has been created to support multiple resolutions, adding black bars if required; user only defines desired screen size and it gets properly displayed.
- Now raylib can easily deploy games to Android devices and Raspberry Pi (console mode).
Lots of code changes and lot of testing have concluded in this amazing new raylib 1.2.
In December 2014, new raylib 1.2.2 was published with support to compile directly for web (html5) using [emscripten](http://kripken.github.io/emscripten-site/) and [asm.js](http://asmjs.org/).
notes on raylib 1.3
-------------------
On September 2015, after 1 year of raylib 1.2 release, arrives raylib 1.3. This version adds shaders functionality, improves tremendously textures module and also provides some new modules (camera system, gestures system, immediate-mode gui).
- Shaders support is the biggest addition to raylib 1.3, with support for easy shaders loading and use. Loaded shaders can be attached to 3d models or used as fullscreen postrocessing effects. A bunch of postprocessing shaders are also included in this release, check raylib/shaders folder.
- Textures module has grown to support most of the internal texture formats available in OpenGL (RGB565, RGB888, RGBA5551, RGBA4444, etc.), including compressed texture formats (DXT, ETC1, ETC2, ASTC, PVRT); raylib 1.3 can load .dds, .pkm, .ktx, .astc and .pvr files.
- A brand new [camera](https://github.com/raysan5/raylib/blob/master/src/rcamera.c) module offers to the user multiple preconfigured ready-to-use camera systems (free camera, 1st person, 3rd person). Camera modes are very easy to use, just check examples: [core_3d_camera_free.c](https://github.com/raysan5/raylib/blob/master/examples/core_3d_camera_free.c) and [core_3d_camera_first_person.c](https://github.com/raysan5/raylib/blob/master/examples/core_3d_camera_first_person.c).
- New [gestures](https://github.com/raysan5/raylib/blob/master/src/rgestures.h) module simplifies gestures detection on Android and HTML5 programs.
- [raygui](https://github.com/raysan5/raylib/blob/master/src/raygui.h), the new immediate-mode GUI module offers a set of functions to create simple user interfaces, primary intended for tools development. It's still in experimental state but already fully functional.
Most of the examples have been completely rewritten and +10 new examples have been added to show the new raylib features.
Lots of code changes and lot of testing have concluded in this amazing new raylib 1.3.
notes on raylib 1.4
-------------------
On February 2016, after 4 months of raylib 1.3 release, it comes raylib 1.4. For this new version, lots of parts of the library have been reviewed, lots of bugs have been solved and some interesting features have been added.
- First big addition is a set of [Image manipulation functions](https://github.com/raysan5/raylib/blob/master/src/raylib.h#L673) have been added to crop, resize, colorize, flip, dither and even draw image-to-image or text-to-image. Now a basic image processing can be done before converting the image to texture for usage.
- SpriteFonts system has been improved, adding support for AngelCode fonts (.fnt) and TrueType Fonts (using [stb_truetype](https://github.com/nothings/stb/blob/master/stb_truetype.h) helper library). Now raylib can read standard .fnt font data and also generate at loading a SpriteFont from a TTF file.
- New [physac](https://github.com/raysan5/raylib/blob/master/src/physac.h) physics module for basic 2D physics support. Still in development but already functional. Module comes with some usage examples for basic jump and level interaction and also force-based physic movements.
- [raymath](https://github.com/raysan5/raylib/blob/master/src/raymath.h) module has been reviewed; some bugs have been solved and the module has been converted to a header-only file for easier portability, optionally, functions can also be used as inline.
- [gestures](https://github.com/raysan5/raylib/blob/master/src/rgestures.c) module has redesigned and simplified, now it can process touch events from any source, including mouse. This way, gestures system can be used on any platform providing an unified way to work with inputs and allowing the user to create multiplatform games with only one source code.
- Raspberry Pi input system has been redesigned to better read raw inputs using generic Linux event handlers (keyboard:`stdin`, mouse:`/dev/input/mouse0`, gamepad:`/dev/input/js0`). Gamepad support has also been added (experimental).
Other important improvements are the functional raycast system for 3D picking, including some ray collision-detection functions,
and the addition of two simple functions for persistent data storage. Now raylib user can save and load game data in a file (only some platforms supported). A simple [easings](https://github.com/raysan5/raylib/blob/master/src/easings.h) module has also been added for values animation.
Up to 8 new code examples have been added to show the new raylib features and +10 complete game samples have been provided to learn
how to create some classic games like Arkanoid, Asteroids, Missile Commander, Snake or Tetris.
Lots of code changes and lots of hours of hard work have concluded in this amazing new raylib 1.4.
notes on raylib 1.5
-------------------
On July 2016, after 5 months of raylib 1.4 release, arrives raylib 1.5. This new version is the biggest boost of the library until now, lots of parts of the library have been redesigned, lots of bugs have been solved and some **AMAZING** new features have been added.
- VR support: raylib supports **Oculus Rift CV1**, one of the most anticipated VR devices in the market. Additionally, raylib supports simulated VR stereo rendering, independent of the VR device; it means, raylib can generate stereo renders with custom head-mounted-display device parameteres, that way, any VR device in the market can be **simulated in any platform** just configuring device parameters (and consequently, lens distortion). To enable VR is [extremely easy](https://github.com/raysan5/raylib/blob/master/examples/core_oculus_rift.c).
- New materials system: now raylib supports standard material properties for 3D models, including diffuse-ambient-specular colors and diffuse-normal-specular textures. Just assign values to standard material and everything is processed internally.
- New lighting system: added support for up to 8 configurable lights and 3 light types: **point**, **directional** and **spot** lights. Just create a light, configure its parameters and raylib manages render internally for every 3d object using standard material.
- Complete gamepad support on Raspberry Pi: Gamepad system has been completely redesigned. Now multiple gamepads can be easily configured and used; gamepad data is read and processed in raw mode in a second thread.
- Redesigned physics module: [physac](https://github.com/raysan5/raylib/blob/master/src/physac.h) module has been converted to header only and usage [has been simplified](https://github.com/raysan5/raylib/blob/master/examples/physics_basic_rigidbody.c). Performance has also been singnificantly improved, now physic objects are managed internally in a second thread.
- Audio chiptunese support and mixing channels: Added support for module audio music (.xm, .mod) loading and playing. Multiple mixing channels are now also supported. All this features thanks to the amazing work of @kd7tck.
Other additions include a [2D camera system](https://github.com/raysan5/raylib/blob/master/examples/core_2d_rcamera.c), render textures for offline render (and most comprehensive [postprocessing](https://github.com/raysan5/raylib/blob/master/examples/shaders_postprocessing.c)) or support for legacy OpenGL 2.1 on desktop platforms.
This new version is so massive that is difficult to list all the improvements, most of raylib modules have been reviewed and [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.c) module has been completely redesigned to accomodate to new material-lighting systems and stereo rendering. You can check [CHANGELOG](https://github.com/raysan5/raylib/blob/master/CHANGELOG) file for a more detailed list of changes.
Up to 8 new code examples have been added to show the new raylib features and also some samples to show the usage of [rlgl](https://github.com/raysan5/raylib/blob/master/examples/rlgl_standalone.c) and [audio](https://github.com/raysan5/raylib/blob/master/examples/audio_standalone.c) raylib modules as standalone libraries.
Lots of code changes (+400 commits) and lots of hours of hard work have concluded in this amazing new raylib 1.5.
notes on raylib 1.6
-------------------
On November 2016, only 4 months after raylib 1.5, arrives raylib 1.6. This new version represents another big review of the library and includes some interesting additions. This version conmmemorates raylib 3rd anniversary (raylib 1.0 was published on November 2013) and it is a stepping stone for raylib future. raylib roadmap has been reviewed and redefined to focus on its primary objective: create a simple and easy-to-use library to learn videogames programming. Some of the new features:
- Complete [raylib Lua binding](https://github.com/raysan5/raylib-lua). All raylib functions plus the +60 code examples have been ported to Lua, now Lua users can enjoy coding videogames in Lua while using all the internal power of raylib. This addition also open the doors to Lua scripting support for a future raylib-based engine, being able to move game logic (Init, Update, Draw, De-Init) to Lua scripts while keep using raylib functionality.
- Completely redesigned [audio module](https://github.com/raysan5/raylib/blob/master/src/raudio.c). Based on the new direction taken in raylib 1.5, it has been further improved and more functionality added (+20 new functions) to allow raw audio processing and streaming. [FLAC file format support](https://github.com/raysan5/raylib/blob/master/src/external/dr_flac.h) has also been added. In the same line, [OpenAL Soft](https://github.com/kcat/openal-soft) backend is now provided as a static library in Windows to allow static linking and get ride of OpenAL32.dll. Now raylib Windows games are completey self-contained, no external libraries required any more!
- [Physac](https://github.com/victorfisac/Physac) module has been moved to its own repository and it has been improved A LOT, actually, library has been completely rewritten from scratch by [@victorfisac](https://github.com/victorfisac), multiple samples have been added together with countless new features to match current standard 2D physic libraries. Results are amazing!
- Camera and gestures modules have been reviewed, highly simplified and ported to single-file header-only libraries for easier portability and usage flexibility. Consequently, camera system usage has been simplified in all examples.
- Improved Gamepad support on Windows and Raspberry Pi with the addition of new functions for custom gamepad configurations but supporting by default PS3 and Xbox-based gamepads.
- Improved textures and text functionality, adding new functions for texture filtering control and better TTF/AngelCode fonts loading and generation support.
Build system improvement. Added support for raylib dynamic library generation (raylib.dll) for users that prefer dynamic library linking. Also thinking on advance users, it has been added pre-configured [Visual Studio C++ 2015 solution](https://github.com/raysan5/raylib/tree/master/project/vs2015) with raylib project and C/C++ examples for users that prefer that professional IDE and compiler.
New examples, new functions, complete code-base review, multiple bugs corrected... this is raylib 1.6. Enjoy making games.
notes on raylib 1.7
-------------------
On May 2017, around 6 month after raylib 1.6, comes another raylib instalment, raylib 1.7. This time library has been improved a lot in terms of consistency and cleanness. As stated in [this patreon article](https://www.patreon.com/posts/raylib-future-7501034), this new raylib version has focused efforts in becoming more simple and easy-to-use to learn videogames programming. Some highlights of this new version are:
- More than 30 new functions added to the library, functions to control Window, utils to work with filenames and extensions, functions to draw lines with custom thick, mesh loading, functions for 3d ray collisions detailed detection, functions for VR simulation and much more... Just check [CHANGELOG](CHANGELOG) for a detailed list of additions!
- Support of [configuration flags](https://github.com/raysan5/raylib/issues/200) on every raylib module. Advance users can customize raylib just choosing desired features, defining some configuration flags on modules compilation. That way users can control library size and available functionality.
- Improved [build system](https://github.com/raysan5/raylib/blob/master/src/Makefile) for all supported platforms (Windows, Linux, OSX, RPI, Android, HTML5) with a unique Makefile to compile sources. Added support for Android compilation with a custom standalone toolchain and also multiple build compliation flags.
- New [examples](http://www.raylib.com/examples.html) and [sample games](http://www.raylib.com/games.html) added. All samples material has been reviewed, removing useless examples and adding more comprehensive ones; all material has been ported to latest raylib version and tested in multiple platforms. Examples folder structure has been improved and also build systems.
- Improved library consistency and organization in general. Functions and parameters have been renamed, some parts of the library have been cleaned and simplyfied, some functions has been moved to examples (lighting, Oculus Rift CV1 support) towards a more generic library implementation. Lots of hours have been invested in this process...
Some other features: Gamepad support on HTML5, RPI touch screen support, 32bit audio support, frames timing improvements, public log system, rres file format support, automatic GIF recording...
And here it is another version of **raylib, a simple and easy-to-use library to enjoy videogames programming**. Enjoy it.
notes on raylib 1.8
-------------------
October 2017, around 5 months after latest raylib version, another release is published: raylib 1.8. Again, several modules of the library have been reviewed and some new functionality added. Main changes of this new release are:
- [Procedural image generation](https://github.com/raysan5/raylib/blob/master/examples/textures/textures_image_generation.c) function, a set of new functions have been added to generate gradients, checked, noise and cellular images from scratch. Image generation could be useful for certain textures or learning pourpouses.
- [Parametric mesh generation](https://github.com/raysan5/raylib/blob/master/examples/models/models_mesh_generation.c) functions, create 3d meshes from scratch just defining a set of parameters, meshes like cube, sphere, cylinder, torus, knot and more can be very useful for prototyping or for lighting and texture testing.
- PBR Materials support, a completely redesigned shaders and material system allows advance materials definition and usage, with fully customizable shaders. Some new functions have been added to generate the environment textures required for PBR shading and a a new complete [PBR material example](https://github.com/raysan5/raylib/blob/master/examples/models/models_material_pbr.c) is also provided for reference.
- Custom Android APK build pipeline with [simple Makefile](https://github.com/raysan5/raylib/blob/master/templates/simple_game/Makefile). Actually, full code building mechanism based on plain Makefile has been completely reviewed and Android building has been added for sources and also for examples and templates building into final APK package. This way, raylib Android building has been greatly simplified and integrated seamlessly into standard build scripts.
- [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.h) module has been completely reviewed and most of the functions renamed for consistency. This way, standalone usage of rlgl is promoted, with a [complete example provided](https://github.com/raysan5/raylib/blob/master/examples/others/rlgl_standalone.c). rlgl offers a pseudo-OpenGL 1.1 immediate-mode programming-style layer, with backends to multiple OpenGL versions.
- [raymath](https://github.com/raysan5/raylib/blob/master/src/raymath.h) library has been also reviewed to align with other advance math libraries like [GLM](https://github.com/g-truc/glm). Matrix math has been improved and simplified, some new Quaternion functions have been added and Vector3 functions have been renamed all around the library for consistency with new Vector2 functionality.
Additionally, as always, examples and templates have been reviewed to work with new version (some new examples have been added), all external libraries have been updated to latest stable version and latest Notepad++ and MinGW have been configured to work with new raylib. For a full list of changes, just check [CHANGELOG](CHANGELOG).
New installer provided, web updated, examples re-builded, documentation reviewed... **new raylib 1.8 published**. Enjoy coding games.
notes on raylib 2.0
-------------------
It's been 9 month since last raylib version was published, a lots of things have changed since then... This new raylib version represents an inflexion point in the development of the library and so, we jump to a new major version... Here it is the result of almost **5 years and thousands of hours of hard work**... here it is... **raylib 2.0**
In **raylib 2.0** the full API has been carefully reviewed for better consistency, some new functionality has been added and the overall raylib experience has been greatly improved... The key features of new version are:
- **Complete removal of external dependencies.** Finally, raylib does not require external libraries to be installed and linked along with raylib, all required libraries are contained and compiled within raylib. Obviously some external libraries are required but only the strictly platform-dependant ones, the ones that come installed with the OS. So, raylib becomes a self-contained platform-independent games development library.
- **Full redesign of audio module to use the amazing miniaudio library**, along with external dependencies removal, OpenAL library has been replaced by [miniaudio](https://github.com/dr-soft/miniaudio), this brand new library offers automatic dynamic linking with default OS audio systems. Undoubtly, the perfect low-level companion for raylib audio module!
- **Support for continuous integration building*** through AppVeyor and Travis CI. Consequently, raylib GitHub develop branch has been removed, simplyfing the code-base to a single master branch, always stable. Every time a new commit is deployed, library is compiled for **up-to 12 different configurations**, including multiple platforms, 32bit/64bit and multiple compiler options! All those binaries are automatically attached to any new release!
- **More platforms supported and tested**, including BSD family (FreeBSD, openBSD, NetBSD, DragonFly) and Linux-based family platforms (openSUSE, Debian, Ubuntu, Arch, NixOS...). raylib has already been added to some package managers! Oh, and last but not less important, **Android 64bit** is already supported by raylib!
- **Support for TCC compiler!** Thanks to the lack of external dependencies, raylib can now be easily compiled with a **minimal toolchain**, like the one provide by Tiny C Compiler. It opens the door to an amazing future, allowing, for example, static linkage of libtcc for **runtime compilation of raylib-based code**... and the library itself if required! Moreover, TCC is blazing fast, it can compile all raylib in a couple of seconds!
- Refactored all raylib configuration #defines into a **centralized `config.h` header**, with more than **40 possible configuration options** to compile a totally customizable raylib version including only desired options like supported file-formats or specific functionality support. It allows generating a trully ligth-weight version of the library if desired!
A part of that, lots of new features, like a brand **new font rendering and packaging system** for TTF fonts with **SDF support** (thanks to the amazing STB headers), new functions for **CPU image data manipulation**, new orthographic 3d camera mode, a complete review of `raymath.h` single-file header-only library for better consistency and performance, new examples and way, [way more](https://github.com/raysan5/raylib/blob/master/CHANGELOG).
Probably by now, **raylib 2.0 is the simplest and easiest-to-use library to enjoy (and learn) videogames programming**... but, undoubtly its development has exceeded any initial objective; raylib has become a simple and easy-to-use trully multiplatform portable standalone media library with thousands of possibilities... and that's just the beginning!
notes on raylib 2.5
-------------------
After almost one years since latest raylib installment, here it is **raylib 2.5**. A lot of work has been put on this new version and consequently I decided to bump versioning several digits. The complete list of changes and additions is humungous, details can be found in the [CHANGELOG](CHANGELOG), and here it is a short recap with the highlight improvements.
- New **window management and file system functions** to query monitor information, deal with clipboard, check directory files info and even launch a URL with default system web browser. Experimental **High-DPI monitor support** has also been added through a compile flag.
- **Redesigned Gamepad mechanism**, now generic for all platforms and gamepads, no more specific gamepad configurations.
**Redesigned UWP input system**, now raylib supports UWP seamlessly, previous implementation required a custom input system implemented in user code.
- `rlgl` module has been redesigned to **support a unique buffer for shapes drawing batching**, including LINES, TRIANGLES, QUADS in the same indexed buffer, also added support for multi-buffering if required. Additionally, `rlPushMatrix()`/`rlPopMatrix()` functionality has been reviewed to behave exactly like OpenGL 1.1, `models_rlgl_solar_system` example has been added to illustrate this behaviour.
- **VR simulator** has been reviewed to **allow custom configuration of Head-Mounted-Device parameters and distortion shader**, `core_vr_simulator` has been properly adapted to showcase this new functionality, now the VR simulator is a generic configurable stereo rendering system that allows any VR device simulation with just a few lines of code or even dynamic tweaking of HMD parameters.
- Support for **Unicode text drawing**; now raylib processes UTF8 strings on drawing, supporting Unicode codepoints, allowing rendering mostly any existent language (as long as the font with the glyphs is provided). An amazing example showing this feature has also been added: `text_unicode`.
- Brand **new text management API**, with the addition of multiple functions to deal with string data, including functionality like replace, insert, join, split, append, to uppercase, to lower... Note that most of those functions are intended for text management on rendering, using pre-loaded internal buffers, avoiding new memory allocation that user should free manually.
- Multiple **new shapes and textures drawing functions** to support rings (`DrawRing()`, `DrawRingLines()`), circle sectors (`DrawCircleSector()`, `DrawCircleSectorLines()`), rounded rectangles (`DrawRectangleRounded()`, `DrawRectangleRoundedLines()`) and also n-patch textures (`DrawTextureNPatch()`), detailed examples have been added to illustrate all this new functionality.
- Experimental **cubemap support**, to automatically load multiple cubemap layouts (`LoadTextureCubemap()`). It required some internal `rlgl` redesign to allow cubemap textures.
- **Skeletal animation support for 3d models**, this addition implied a redesign of `Model` data structure to accomodate multiple mesh/multiple materials support and bones information. Multiple models functions have been reviewed and added on this process, also **glTF models loading support** has been added.
This is a just a brief list with some of the changes of the new **raylib 2.5** but there is way more, about **70 new functions** have been added and several subsystems have been redesigned. More than **30 new examples** have been created to show the new functionalities and better illustrate already available ones.
It has been a long year of hard work to make raylib a solid technology to develop new products over it.
notes on raylib 3.0
-------------------
After **10 months of intense development**, new raylib version is ready. Despite primary intended as a minor release, the [CHANGELIST](CHANGELOG) has grown so big and the library has changed so much internally that it finally became a major release. Library **internal ABI** has reveived a big redesign and review, targeting portability, integration with other platforms and making it a perfect option for other progamming [language bindings](BINDINGS.md).
- All **global variables** from the multiple raylib modules have been moved to a **global context state**, it has several benefits, first, better code readability with more comprehensive variables naming and categorization (organized by types, i.e. `CORE.Window.display.width`, `CORE.Input.Keyboard.currentKeyState` or `RLGL.State.modelview`). Second, it allows better memory management to load global context state dynamically when required (not at the moment), making it easy to implement a **hot-reloading mechanism** if desired.
- All **memory allocations** on raylib and its dependencies now use `RL_MALLOC`, `RL_FREE` and similar macros. Now users can easely hook their own memory allocations mechanism if desired, having more control over memory allocated internally by the library. Additionally, it makes it easier to port the library to embedded devices where memory control is critical. For more info check raylib issue #1074.
- All **I/O file accesses** from raylib are being moved to **memory data access**, now all I/O file access is centralized into just four functions: `LoadFileData()`, `SaveFileData()`, `LoadFileText()`, `SaveFileText()`. Users can just update those functions to any I/O file system. This change makes it easier to integrate raylib with **Virtual File Systems** or custom I/O file implementations.
- All **raylib data structures** have been reviewed and optimized for pass-by-value usage. One of raylib distinctive design decisions is that most of its functions receive and return data by value. This design makes raylib really simple for newcomers, avoiding pointers and allowing complete access to all structures data in a simple way. The downside is that data is copied on stack every function call and that copy could be costly so, all raylib data structures have been optimized to **stay under 64 bytes** for fast copy and retrieve.
- All **raylib tracelog messages** have been reviewd and categorized for a more comprehensive output information when developing raylib applications, now all display, input, timer, platform, auxiliar libraries, file-accesses, data loading/unloading issues are properly reported with more detailed and visual messages.
- `raudio` module has been internally reviewed to accomodate the new `Music` structure (converted from previous pointer format) and the module has been adapted to the **highly improved** [`miniaudio v0.10`](https://github.com/dr-soft/miniaudio).
- `text` module reviewed to **improve fonts generation** and text management functions, `Font` structure has been redesigned to better accomodate characters data, decoupling individual characters as `Image` glyphs from the font atlas parameters. Several improvements have been made to better support Unicode strings with UTF-8 encoding.
- **Multiple new examples added** (most of them contributed by raylib users) and all examples reviewed for correct execution on most of the supported platforms, specially Web and Raspberry Pi. A detailed categorized table has been created on github for easy examples navigation and code access.
- New **GitHub Actions CI** system has been implemented for Windows, Linux and macOS code and examples compilation on every new commit or PR to make sure library keeps stable and usable with no breaking bugs.
Note that only key changes are listed here but there is way more! About **30 new functions**, multiple functions reviewed, bindings to [+40 programming languages](https://github.com/raysan5/raylib/blob/master/BINDINGS.md) and great samples/demos/tutorials [created by the community](https://discord.gg/raylib), including raylib integration with [Spine](https://github.com/WEREMSOFT/spine-raylib-runtimes), [Unity](https://unitycoder.com/blog/2019/12/09/using-raylib-dll-in-unity/), [Tiled](https://github.com/OnACoffeeBreak/raylib_tiled_import_with_tmx), [Nuklear](http://bedroomcoders.co.uk/implementing-a-3d-gui-with-raylib/), [enet](https://github.com/nxrighthere/NetDynamics) and [more](https://github.com/raysan5/raylib/issues/1079)!
It has been **10 months of improvements** to create the best raylib ever.
Welcome to **raylib 3.0**.
notes on raylib 3.5 - 7th Anniversary Edition
---------------------------------------------
It's December 25th... this crazy 2020 is about to finish and finally the holidays gave me some time to put a new version of raylib. It's been **9 months since last release** and last November raylib become 7 years old... I was not able to release this new version back then but here it is. Many changes and improvements have happened in those months and, even, last August, raylib was awarded with an [Epic Megagrant](https://www.unrealengine.com/en-US/blog/epic-megagrants-fall-2020-update)! Bindings list kept growing to [+50 programming languages](BINDINGS.md) and some new platforms have been supported. Let's see this new version details:
First, some general numbers of this new update:
- **+650** commits since previous RELEASE
- **+30** functions ADDED (for a TOTAL of **475**!)
- **+90** functions REVIEWED/REDESIGNED
- **+30** contributors (for a TOTAL of **170**!)
- **+8** new examples (for a TOTAL of **+120**!)
Here the list with some highlights for `raylib 3.5`.
- NEW **Platform** supported: **Raspberry Pi 4 native mode** (no X11 windows) through [DRM](https://en.wikipedia.org/wiki/Direct_Rendering_Manager) subsystem and GBM API. Actually this is a really interesting improvement because it opens the door to raylib to support other embedded platforms (Odroid, GameShell, NanoPi...). Also worth mentioning the un-official homebrew ports of raylib for [PS4](https://github.com/orbisdev/orbisdev-orbisGl2) and [PSVita](https://github.com/psp2dev/raylib4Vita).
- NEW **configuration options** exposed: For custom raylib builds, `config.h` now exposes **more than 150 flags and defines** to build raylib with only the desired features, for example, it allows to build a minimal raylib library in just some KB removing all external data filetypes supported, very useful to generate **small executables or embedded devices**.
- NEW **automatic GIF recording** feature: Actually, automatic GIF recording (**CTRL+F12**) for any raylib application has been available for some versions but this feature was really slow and low-performant using an old gif library with many file-accesses. It has been replaced by a **high-performant alternative** (`msf_gif.h`) that operates directly on memory... and actually works very well! Try it out!
- NEW **RenderBatch** system: `rlgl` module has been redesigned to support custom **render batches** to allow grouping draw calls as desired, previous implementation just had one default render batch. This feature has not been exposed to raylib API yet but it can be used by advance users dealing with `rlgl` directly. For example, multiple `RenderBatch` can be created for 2D sprites and 3D geometry independently.
- NEW **Framebuffer** system: `rlgl` module now exposes an API for custom **Framebuffer attachments** (including cubemaps!). raylib `RenderTexture` is a basic use-case, just allowing color and depth textures, but this new API allows the creation of more advance Framebuffers with multiple attachments, like the **G-Buffers**. `GenTexture*()` functions have been redesigned to use this new API.
- Improved **software rendering**: raylib `Image*()` API is intended for software rendering, for those cases when **no GPU or no Window is available**. Those functions operate directly with **multi-format** pixel data on RAM and they have been completely redesigned to be way faster, specially for small resolutions and retro-gaming. Low-end embedded devices like **microcontrollers with custom displays** could benefit of this raylib functionality!
- File **loading from memory**: Multiple functions have been redesigned to load data from memory buffers **instead of directly accessing the files**, now all raylib file loading/saving goes through a couple of functions that load data into memory. This feature allows **custom virtual-file-systems** and it gives more control to the user to access data already loaded in memory (i.e. images, fonts, sounds...).
- NEW **Window states** management system: raylib `core` module has been redesigned to support Window **state check and setup more easily** and also **before/after Window initialization**, `SetConfigFlags()` has been reviewed and `SetWindowState()` has been added to control Window minification, maximization, hidding, focusing, topmost and more.
- NEW **GitHub Actions** CI/CD system: Previous CI implementation has been reviewed and improved a lot to support **multiple build configurations** (platforms, compilers, static/shared build) and also an **automatic deploy system** has been implemented to automatically attach the diferent generated artifacts to every new release. As the system seems to work very good, previous CI platforms (AppVeyor/TravisCI) have been removed.
A part of those changes, many new functions have been added, some redundant functions removed and many functions have been reviewed for consistency with the full API (function name, parameters name and order, code formatting...). Again, this release represents is a **great improvement for raylib and marks the way forward** for the library. Make sure to check [CHANGELOG](CHANGELOG) for details! Hope you enjoy it!
Happy holidays! :)
notes on raylib 3.7
-------------------
April 2021, it's been about 4 months since last raylib release and here it is already a new one, this time with a bunch of internal redesigns and improvements. Surprisingly, on April the 8th I was awarded for a second time with the [Google Open Source Peer Bonus Award](https://opensource.googleblog.com/2021/04/announcing-first-group-of-google-open-source-peer-bonus-winners.html) for my contribution to open source world with raylib and it seems the library is getting some traction, what a better moment for a new release? Let's see what can be found in this new version:
Let's start with some numbers:
- **+100** closed issues (for a TOTAL of **+900**!)
- **+400** commits since previous RELEASE
- **+50** functions ADDED (**+30** of them to rlgl API)
- **+30** functions REVIEWED/REDESIGNED
- **+40** new contributors (for a TOTAL of **+210**!)
Highlights for `raylib 3.7`:
- **REDESIGNED: `rlgl` module for greater abstraction level**. This suppose an **important change in raylib architecture**, now `rlgl` functionality is self-contained in the module and used by higher-level layers (specially by `core` module), those upper layers are the ones that expose functionality to the main API when required, for example the `Shaders`, `Mesh` and `Materials` functionality. Multiple `rlgl` functions have been renamed for consistency, in this case, following the `rl*()` prefix convention. Functions have also been reorganized internally by categories and `GenTexture*()` functions have been removed from the library and moved to [`models_material_pbr`](https://github.com/raysan5/raylib/blob/master/examples/models/models_material_pbr.c) example.
- **REDESIGNED: VR simulator and stereo rendering mechanism**. A **brand new API** has been added, more comprehensive and better integrated with raylib, the **new stereo rendering** can be combined with `RenderTexture` and `Shader` API allowing the user to **manage fbo and distortion shader directly**. Also, the new rendering mechanism supports **instancing on stereo rendering**! Check the updated [`core_vr_simulator`](https://github.com/raysan5/raylib/blob/master/examples/core/core_vr_simulator.c) example for reference!
- **ADDED: New file access callbacks system**. Several new callback functions have been added to the API to allow custom file loaders. A [nice example](https://github.com/RobLoach/raylib-physfs) it's the **raylib integration with a virtual file system** [PhysFS](https://icculus.org/physfs/).
- **ADDED: glTF animations support**. glTF is the preferred models file format to be used with raylib and along the addition of a models animation API on latest raylib versions, now animations support for glTF format has come to raylib, thanks for this great contribution to [Hristo Stamenov](@object71)
- **ADDED: Music streaming support from memory**. raylib has been adding the `Load*FromMemory()` option to all its supported file formats but **music streaming** was not supported yet... until now. Thanks to this great contribution by [Agnis "NeZvērs" Aldiņš](@nezvers), now raylib supports music streamming from memory data for all supported file formats: WAV, OGG, MP3, FLAC, XM and MOD.
- **RENAMED: enums values for consistency**. Most raylib enums names and values names have been renamed for consistency, now all value names start with the type of data they represent. It increases clarity and readability when using those values and also **improves overall library consistency**.
Beside those key changes, many functions have been reviewed with improvements and bug fixes, many of them contributed by the community! Thanks! And again, this release sets a **new milestone for raylib library**. Make sure to check [CHANGELOG](CHANGELOG) for detailed list of changes! Hope you enjoy this new raylib installment!
Happy **gamedev/tools/graphics** programming! :)
notes on raylib 4.0 - 8th Anniversary Edition
---------------------------------------------
It's been about 6 months since last raylib release and it's been **8 years since I started with this project**, what an adventure! It's time for a new release: `raylib 4.0`, **the biggest release ever** and an inflexion point for the library. Many hours have been put in this release to make it special, **many library details have been polished**: syntax, naming conventions, code comments, functions descriptions, log outputs... Almost all the issues have been closed (only 3 remain open at the moment of this writing) and some amazing new features have been added. I expect this **`raylib 4.0`** to be a long term version (LTS), stable and complete enough for any new graphic/game/tool application development.
Let's start with some numbers:
- **+130** closed issues (for a TOTAL of **+1030**!)
- **+550** commits since previous RELEASE
- **+20** functions ADDED to raylib API
- **+60** functions ADDED to rlgl API
- **+40** functions RENAMED/REVIEWED/REDESIGNED
- **+60** new contributors (for a TOTAL of **+275**!)
Highlights for `raylib 4.0`:
- **Naming consistency and coherency**: `raylib` API has been completely reviewed to be consistent on naming conventions for data structures and functions, comments and descriptions have been reviewed, also the syntax of many symbols for consistency; some functions and structs have been renamed (i.e. `struct CharInfo` to `struct GlyphInfo`). Output log messages have been also improved to show more info to the users. Several articles have been writen in this process: [raylib_syntax analysis](https://github.com/raysan5/raylib/wiki/raylib-syntax-analysis) and [raylib API usage analysis](https://gist.github.com/raysan5/7c0c9fff1b6c19af24bb4a51b7383f1e). In general, a big polishment of the library to make it more consistent and coherent.
- **Event Automation System**: This new _experimental_ feature has been added for future usage, it allows to **record input events and re-play them automatically**. This feature could be very useful to automatize examples testing but also for tutorials with assited game playing, in-game cinematics, speedruns, AI playing and more! Note this feature is still experimental.
- **Custom game-loop control**: As requested by some advance users, **the game-loop control can be exposed** compiling raylib with the config flag: `SUPPORT_CUSTOM_FRAME_CONTROL`. It's intended for advance users that want to control the events polling and also the timming mechanisms of their games.
- [**`rlgl 4.0`**](https://github.com/raysan5/raylib/blob/master/src/rlgl.h): This module has been completely **decoupled from platform layer** and raylib, now `rlgl` single-file header-only library only depends on the multiple OpenGL backends supported, even the dependency on `raymath` has been removed. Additionally, **support for OpenGL 4.3** has been added, supporting compute shaders and Shader Storage Buffer Objects (SSBO). Now `rlgl` can be used as a complete standalone portable library to wrap several OpenGL version and providing **a simple and easy-to-use pseudo-OpenGL immediate-mode API**.
- [**`raymath 1.5`**](https://github.com/raysan5/raylib/blob/master/src/raymath.h): This module has been reviewed and some new conventions have been adopted to make it **more portable and self-contained**:
- Functions are self-contained, no function use other raymath function inside, required code is directly re-implemented
- Functions input parameters are always received by value
- Functions use always a "result" variable for return
- Angles are always in radians (`DEG2RAD`/`RAD2DEG` macros provided for convenience)
- [**`raygui 3.0`**](https://github.com/raysan5/raygui): The **official raylib immediate-mode gui library** (included in `raylib/src/extras`) has been updated to a new version, embedding the icons collection and adding mulstiple improvements. It has been simplified and constrained for a better focus on its task: provide a simple and easy-to-use immediate-mode-gui library for small tools development.
- [**`raylib_parser`**](https://github.com/raysan5/raylib/tree/master/parser): Added **new tool to parse `raylib.h`** and tokenize its enums, structs and functions, extracting all required info (name, params, descriptions...) into custom output formats (TXT, XML, JSON...) for further processing. This tool is specially useful to **automatize bindings generation**. Hopefully, this tool will make life easier to binding creators to update their bindings for raylib 4.0 or adding new ones!
- **Zig and Odin official support for raylib**: Those two new amazing programming languages are officially supporting raylib, `Zig` lists raylib as an [official example for C interoperatibility](https://ziglang.org/learn/samples/#c-interoperability) and Odin [officially supports raylib as a vendor library](https://github.com/odin-lang/Odin/tree/master/vendor/raylib). Both languages also have several bingings to raylib. Additionally, Zig build system supported has been added to compile raylib library and examples.
Those are some of the key features for this new release but actually there is way more! **Support for `VOX` ([MagikaVoxel](https://ephtracy.github.io/)) 3d model format** has been added, **new [raylib_game_template](https://github.com/raysan5/raylib-game-template)** repo shared, **new `EncodeDataBase64()` and `DecodeDataBase64()` functions** added, **improved HiDPI support**, new `DrawTextPro()` with support for text rotations, completely **reviewed `glTF` models loading**, added **`SeekMusicStream()` for music seeking**, many new examples and +20 examples reviewed... **hundreds of improvements and bug fixes**! Make sure to check [CHANGELOG](CHANGELOG) for a detailed list of changes!
Undoubtely, **this is the best raylib ever**. Enjoy gamedev/tools/graphics programming! :)
notes on raylib 4.2
-------------------
**New raylib release!** Nine months after latest raylib, here it is a new version. It was supposed to be just a small update but, actually, it's a huge update with lots of changes a improvements. It has been possible thanks to the many contributors that has helped with issues and improvements, it's the **update with more contributors to date** and that's amazing!
Some numbers to start with:
- **+200** closed issues (for a TOTAL of **1230**!)
- **+540** commits since previous RELEASE (for a TOTAL of **+6000**!)
- **+20** functions ADDED to raylib API (for a TOTAL of **502**!)
- **+60** functions REVIEWED/REDESIGNED
- **+70** new contributors (for a TOTAL of **+360**!)
Highlights for `raylib 4.2`:
- **raylib extra libraries cleanup**: raylib has been on diet and all the _extra_ libraries included on previous releases have been removed from raylib. Now raylib only includes the original **7** raylib modules: `rcore`, `rlgl`, `rshapes`, `rtextures`, `rtext`, `rmodels` and `raudio`. But no worries, _extra_ libraries have not been deleted, they have been moved to their own repos for better maintainability and more focus on its functionality. The libraries moved out from raylib repo are: [`raygui`](https://github.com/raysan5/raygui), [`physac`](https://github.com/raysan5/physac), [`rmem`](https://github.com/raylib-extras/rmem), [`reasings`](https://github.com/raylib-extras/reasings) and [`raudio`](https://github.com/raysan5/raudio) (standalone mode). On that same line, a new **amazing GitHub group:** [`raylib-extras`](https://github.com/raylib-extras) has been created by @JeffM2501 to contain raylib extra libraries as well as other raylib add-ons provided by the community. Jeff has done an amazing work on that line, providing multiple libraries and examples for raylib, like [custom first-person and third person camera systems](https://github.com/raylib-extras/extras-c/tree/main/cameras), [Dear ImGui raylib integration](https://github.com/raylib-extras/rlImGui), [multiple specific examples](https://github.com/raylib-extras/examples-c) and even a complete [RPG Game Example](https://github.com/raylib-extras/RPGExample)! Great work Jeff! :D
- **raylib examples review**: The +120 raylib examples have been reviewed to add clearer information about when the were first created (raylib version used) and when they were updated for the last time. But the greatest improvement for users has been the **addition of an estimated difficulty level** for every example, [web has been updated accordingly](https://www.raylib.com/examples.html) to reflect those difficulty levels. Now examples are classified with **1 to 4 stars** depending on difficulty to help users with their learning process. Personally, I think this "small" addition could be a game-changer to better guide new users on the library adoption! Additionally, this new raylib release includes 7 new examples; the most interesting one: [`text_codepoints_loading`](https://www.raylib.com/examples/text/loader.html?name=text_codepoints_loading) that illustrates how to load and draw custom codepoints from a font file, very useful for Asian languages.
- [**`rres 1.0`**](https://github.com/raysan5/rres): New `rres` **resources packaging file-format**, including a [`rres-raylib`](https://github.com/raysan5/rres/blob/master/src/rres-raylib.h) library implementation and [`rrespacker`](https://raylibtech.itch.io/rrespacker) tool. `rres` file format has been [under development for +8 years](https://github.com/raysan5/rres#design-history) and it was originally created to be part of raylib. It was highly inspired by _XNA XNB_ resources file format but design has changed a lot along the years. This first release of the format specs is engine-agnostic and has been designed to be portable to any engine, including lots of professional features like data processing, compression and encryption.
- [**`raygui 3.2`**](https://github.com/raysan5/raygui): The **official raylib immediate-mode gui library** designed for tools development has been updated to a new version aligned with raylib 4.2. Multiple controls have been reviewed for library consistency, now all controls follow a similar function signature. It has been battle-tested with the development of +8 published tools in the last months. The tools can be seen and used for free in the [raylib technologies tools page](https://raylibtech.itch.io/). Worth mentioning that several of those **tools have been open sourced** for anyone to use, compile, contribute or learn how the code works.
- [**`raylib_parser`**](https://github.com/raysan5/raylib/tree/master/parser): Multiple contributors **using the tool to automatize bindings creation** have contributed with improvements of this **tool to parse `raylib.h`** (and other raylib-style headers) to tokenize its enums, structs and functions. Processed data can be exported to custom file formats (i.e XML, JSON, LUA) for bindings generation or even docs generation if required.
- **New file system API**: Current API has been redesigned to be more comprehensive and better aligned with raylib naming conventions, two new functions are provided `LoadDirectoryFiles()`/`LoadDirectoryFilesEx()` to load a `FilePathList` for provided path, supporting extension filtering and recursive directory scan. `LoadDroppedFiles()` has been renamed to better reflect its internal functionality. Now, all raylib functions that start with `Load*()` allocate memory internally and a equivalent `Unload*()` function is defined to take care of that memory internally when not required any more!
- **New audio stream processors API** (_experimental_): Now real-time audio stream data processors can be added using callbacks to played Music. It allows users to create custom effects for audio like delays of low-pass-filtering (example provided). The new API uses a callback system and it's still _ highly experimental_, it differs from the usual level of complexity that provides raylib and it is intended for advance users. It could change in the future but, actually, `raudio` module is in the spotlight for future updates; [miniaudio](https://github.com/mackron/miniaudio) implements a new higher-level API that can be useful in the future for raylib.
As always, there are more improvements than the key features listed, make sure to check raylib [CHANGELOG](CHANGELOG) for the detailed list of changes; for this release a `WARNING` flag has been added to all the changes that could affect bindings or productivity code. **raylib keeps improving one more version** and a special focus on maintainability has been put on the library for the future. Specific/advance functionality will be provided through **raylib-extras** repos and raylib main repo devlelopment will be focused on what made raylib popular: being a simple and easy-to-use library to **enjoy videogames programming**.
**Enjoy gamedev/tools/graphics programming!** :)
notes on raylib 4.5
-------------------
It's been **7 months** since latest raylib release. As usual, **many parts of the library have been reviewed and improved** along those months. Many issues have been closed, staying under 10 open issues at the moment of this writting and also many PRs from contributors have been received, reviewed and merged into raylib library. Some new functions have been added and some others have been removed to improve library coherence and avoid moving too high level, giving the users the tools to implement advance functionality themselfs over raylib. Again, this is a big release with a considerable amount of changes and improvements. Here it is a small summary highlighting this new **rayib 4.5**.
Some numbers for this release:
- **+100** closed issues (for a TOTAL of **+1340**!)
- **+350** commits since previous RELEASE (for a TOTAL of **+6350**!)
- **+25** functions ADDED to raylib API (for a TOTAL of **516**!)
- **+40** functions REVIEWED/REDESIGNED
- **+40** new contributors (for a TOTAL of **405**!)
Highlights for `raylib 4.5`:
- **`NEW` Improved ANGLE support on Desktop platforms**: Support for OpenGL ES 2.0 on Desktop platforms (Windows, Linux, macOS) has been reviewed by @wtnbgo GitHub user. Now raylib can be compiled on desktop for OpenGL ES 2.0 and linked against [`ANGLE`](https://github.com/google/angle). This _small_ addition open the door to building raylib for all **ANGLE supported backends: Direct3D 11, Vulkan and Metal**. Please note that this new feature is still experimental and requires further testing!
- **`NEW` Camera module**: A brand new implementation from scratch for `rcamera` module, contributed by @Crydsch GitHub user! **New camera system is simpler, more flexible, more granular and more extendable**. Specific camera math transformations (movement/rotation) have been moved to individual functions, exposing them to users if required. Global state has been removed from the module and standalone usage has been greatly improved; now `rcamera.h` single-file header-only library can be used externally, independently of raylib. A new `UpdateCameraPro()` function has been added to address input-dependency of `UpdateCamera()`, now advance users have **full control over camera inputs and movement/rotation speeds**!
- **`NEW` Support for M3D models and M3D/GLTF animations**: 3d models animations support has been a limited aspect of raylib for long time, some versions ago IQM animations were supported but raylib 4.5 also adds support for the brand new [M3D file format](https://bztsrc.gitlab.io/model3d/), including animations and the long expected support for **GLTF animations**! The new M3D file format is **simple, portable, feature complete, extensible and open source**. It also provides a complete set of tools to export/visualize M3D models from/to Blender! Now raylib supports up to **3 model file-formats with animations**: `IQM`, `GLTF` and `M3D`.
- **`NEW` Support QOA audio format (import/export)**: Just a couple of months ago the new [QOA file format](https://qoaformat.org/) was published, a very simple, portable and open source quite-ok-audio file format. raylib already supports it, added to `raudio` module and including audio loading from file, loading from memory, streaming from file, streaming from memory and **exporting to QOA** audio format. **Because simplicity really matters to raylib!**
- **`NEW` Module for compressed textures loading**: [`rl_gputex`](https://github.com/raysan5/raylib/blob/master/src/external/rl_gputex.h), a portable single-file header-only small library to load compressed texture file-formats (DDS, PKM, KTX, PVR, ASTC). Provided functionality is not new to raylib but it was part of the raylib `rtextures` module, now it has been moved into a separate self-contained library, **improving portability**. Note that this module is only intended to **load compressed data from files, ready to be uploaded to GPU**, no compression/decompression functionality is provided. This change is a first step towards a better modularization of raylib library.
- **Reviewed `rlgl` module for automatic limits checking**: Again, [`rlgl`](https://github.com/raysan5/raylib/blob/master/src/rlgl.h) has been reviewed to simplify usage. Now users do not need to worry about reaching the internal render-batch limits when they send their triangles to draw 2d/3d, `rlgl` manages it automatically! This change allows a **great simplification for other modules** like `rshapes`, `rtextures` and `rmodels` that do not need to worry about bufffer overflows and can just define as many vertex as desired!
- **Reviewed `rshapes` module to minimize the rlgl dependency**: Now `rshapes` 2d shapes drawing functions **only depend on 6 low-level functions**: `rlBegin()`, `rlEnd()`, `rlVertex3f()`, `rlTexCoord2f()`, `rlNormal3f()`, `rlSetTexture()`. With only those pseudo-OpenGl 1.1 minimal functionality, everything can be drawn! This improvement converts `rshapes` module in a **self-contained, portable shapes-drawing library that can be used independently of raylib**, as far as entry points for those 6 functions are provided by the user. It even allows to be used for software rendering, with the proper backend!
- **Added data structures validation functions**: Multiple functions have been added by @RobLoach GitHub user to ease the validation of raylib data structures: `IsImageReady()`, `IsTextureReady()`, `IsSoundReady()`... Now users have a simple mechanism to **make sure data has been correctly loaded**, instead of checking internal structure values by themselfs.
As usual, those are only some highlights but there is much more! New image generators, new color transformation functionality, improved blending support for color/alpha, etc... Make sure to check raylib [CHANGELOG]([CHANGELOG](https://github.com/raysan5/raylib/blob/master/CHANGELOG)) for a detailed list of changes! Please, note that all breaking changes have been flagged with a `WARNING` in the CHANGELOG, specially useful for binding creators!
**raylib keeps improving one more version** with a special focus on maintainability and sustainability. Always working towards making the library more **simple and easy-to-use**.
Let's keep **enjoying games/tools/graphics programming!** :)
notes on raylib 5.0
-------------------
It's been **7 months** since latest raylib release and **10 years** since raylib 1.0 was officially released... what an adventure! In the last 10 years raylib has improved a lot, new functions have been added, many new features and improvements implemented, up to **500 contributors** have helped to shape the library as it is today. `raylib 5.0` is the final result of all this incredible amount of work and dedication. Here it is the summary with the key features and additions of this NEW major version of raylib.
Some numbers for this release:
- **+200** closed issues (for a TOTAL of **+1540**!)
- **+550** commits since previous RELEASE (for a TOTAL of **+6950**!)
- **+35** functions ADDED to raylib API (for a TOTAL of **552**!)
- **+60** functions REVIEWED/REDESIGNED
- **+80** new contributors (for a TOTAL of **+500**!)
Highlights for `raylib 5.0`:
- **`rcore` module platform-split**: Probably the biggest raylib redesign in the last 10 years. raylib started as a library targeting 3 desktop platforms: `Windows`, `Linux` and `macOS` (thanks to `GLFW` underlying library) but with the years support for several new platforms has been added (`Android`, `Web`, `Rapsberry Pi`, `RPI native`...); lot of the platform code was shared so the logic was all together on `rcore.c` module, separated by compilation flags. This approach was very handy but also made it very difficult to support new platforms and specially painful for contributors not familiar with the module, navigating +8000 lines of code in a single file. A big redesign was really needed but the amount of work required was humungus and quite scary for a solo-developer like me, moreover considering that everything was working and the chances to break things were really high. Fortunately, some contributors were ready for the task (@ubkp, @michaelfiber, @Bigfoot71) and thanks to their initiative and super-hard work, the `rcore` [platform split](https://github.com/raysan5/raylib/blob/master/src/platforms) has been possible! This new raylib architecture greatly improves the platforms maintenance but also greatly simplifies the addition of new platforms. A [`platforms/rcore_template.c`](https://github.com/raysan5/raylib/blob/master/src/platforms/rcore_template.c) file is provided with the required structure and functions to be filled for the addition of new platforms, actually it has been simplified to mostly filling some pre-defined functions: `InitPlatform()`, `ClosePlatform`, `PollInputEvents`... Undoubtely, **this redesign opens the doors to a new era for raylib**, letting the users to plug new platforms as desired.
- **`NEW` Platform backend supported: SDL**: Thanks to the new `rcore` platform-split, the addition of new platforms/backends to raylib has been greatly simplified. As a proof of concept, [`SDL2`](https://libsdl.org/) platform backend has been added to raylib as an aternative for `GLFW` library for desktop builds: [`platforms/rcore_desktop_sdl`](https://github.com/raysan5/raylib/blob/master/src/platforms/rcore_desktop_sdl.c). Lot of work has been put to provide exactly the same features as the other platforms and carefully test the new implementation. Now `SDL2` fans can use this new backend, just providing the required include libraries on compilation and linkage (not included in raylib, like `GLFW`). `SDL` backend support also **eases the process of supporting a wider range of platforms** that already support `SDL`.
- **`NEW` Platform backend supported: Nintendo Switch (closed source)**: The addition of the `SDL` backend was quite a challenge but to really verify the robustness and ease of the new platform plugin system, adding support for a console was a more demanding adventure. Surprisingly, only two days of work were required to add support for `Nintendo Switch` to raylib! Implementation result showed an outstanding level of simplicity, with a **self-contained module** (`rcore_swith.cpp`) supporting graphics and inputs. Unfortunately this module can not be open-sourced due to licensing restrictions.
- **`NEW` Splines drawing and evaluation API**: A complete set of functions has been added to [draw](https://github.com/raysan5/raylib/blob/master/src/raylib.h#L1258) and [evaluate](https://github.com/raysan5/raylib/blob/master/src/raylib.h#L1270) different types of splines: `Linear`, `Basis`, `Catmull-Rom`, `Quadratic Bezier` and `Cubic Bezier`. Splines are extremely useful for game development (describe paths, control NPC movement...) but they can also be very useful on tools development (node-conections, elements-movement, 3d modelling, animations...). This was the missing feature on the raylib [`rshapes`](https://github.com/raysan5/raylib/blob/master/src/rshapes.h) module to make it complete! Note that `rshapes` module can also be used independently of raylib just providing the **only 6 functions required for vertex definition and drawing**.
- **`NEW` Pseudo-random numbers generator: rprand**: After several years of users asking for this missing piece, a brand new pseudo-random generator module has been added to raylib. [`rprand`](https://github.com/raysan5/raylib/blob/master/src/external/rprand.h) implements the `Xoshiro128**` algorithm combined with `SplitMix64`, specially suited for **fast software pseudo-random numbers generation**. The module also implies some useful functions to generate non-repetitive random numbers sequences, functionality exposed by raylib. usage of this module can be controlled by a compilation flag, in case the default libc `rand()` function was preferred.
- **`NEW` Automation Events System API**: This new system was first added in `raylib 4.0` as an experimental feature but it was a bit clumsy and there was no API exposed to users. For the new `raylib 5.0` the system has been redesigned and [proper API](https://github.com/raysan5/raylib/blob/master/src/raylib.h#L1135) added for the users. With this new events automation system, users can **record input events for later replay**, very useful feature for testing automation, tutorials generation, assisted game playing, in-game cinematics, speedruns saving or even AI assited game playing!
- **`NEW` [`raygui 4.0`](https://github.com/raysan5/raygui)**: The **official raylib immediate-mode gui library** designed for tools development has been updated to a new version, aligned with raylib 5.0. This new version is a complete redesign of raygui to unify all controls structure and usage, now all controls have the same function signature!. `raygui` has been battle-tested with the development of +12 published tools in the last few years. The tools can be seen and used for free in the [raylib technologies tools page](https://raylibtech.itch.io/). Worth mentioning that several of those **tools have been open sourced** for anyone to use, compile, contribute or learn how the code works.
- **`NEW` raylib web examples functionality**: Beside the addition of several new examples, the web examples functionality has been improved. Examples have been organized by [complexity level](https://www.raylib.com/examples.html), marked with one star for simple examples and up to 4 stars for more complex ones. A new option has been added to web to allow to **filter examples by function-name** usage, to ease the learning process when looking for an usage example of some function. Finally, **open-graph metadata** information has been added to all examples individual webpages, improving a the visuals and information when sharing those webpages on social networks, sharing the example screenshot and details.
As always, those are only some highlights of the new `raylib 5.0` but there is many more improvements! Support for 16-bit HDR images/textures, SVG loading and scaling support, new OpenGL ES 3.0 graphic backend, new image gradient generators, sound alias loading, improved 3d models loading, multiple optimizations, new bindings, CodeQL integration and much more!
Make sure to check raylib [CHANGELOG]([CHANGELOG](https://github.com/raysan5/raylib/blob/master/CHANGELOG)) for a detailed list of changes!
Undoubtely, this is the **biggest raylib update in 10 years**. Many new features and improvements with a special focus on maintainabiliy and long-term sustainability. **Undoubtely, this is the raylib of the future**.
**Enjoy programming!** :)
+16
View File
@@ -0,0 +1,16 @@
Copyright (c) 2013-2023 Ramon Santamaria (@raysan5)
This software is provided "as-is", without any express or implied warranty. In no event
will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial
applications, and to alter it and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you
wrote the original software. If you use this software in a product, an acknowledgment
in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented
as being the original software.
3. This notice may not be removed or altered from any source distribution.
-381
View File
@@ -1,381 +0,0 @@
license
=======
source code
-----------
raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified,
BSD-like license that allows static linking with closed source software:
Copyright (c) 2013-2016 Ramon Santamaria (@raysan5)
This software is provided "as-is", without any express or implied warranty. In no event
will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial
applications, and to alter it and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you
wrote the original software. If you use this software in a product, an acknowledgment
in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented
as being the original software.
3. This notice may not be removed or altered from any source distribution.
fonts
------
All rBMF fonts provided with raylib are free to use (freeware) and have been designed by the following people:
* Alpha Beta - Brian Kent (AEnigma)
* Setback - Brian Kent (AEnigma)
* Jupiter Crash - Brian Kent (AEnigma)
* Alagard - Hewett Tsoi
* Romulus - Hewett Tsoi
* Mecha - Captain Falcon
* PixelPlay - Aleksander Shevchuk
* PixAntiqua - Gerhard Großmann
3d models
---------
dwarf 3d model used in examples is created by David Moreno and licensed as Creative Commons Attribution-NonCommercial 3.0
Full license provided below:
Creative Commons Legal Code
Attribution-NonCommercial 3.0 Unported
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
DAMAGES RESULTING FROM ITS USE.
License
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
CONDITIONS.
1. Definitions
a. "Adaptation" means a work based upon the Work, or upon the Work and
other pre-existing works, such as a translation, adaptation,
derivative work, arrangement of music or other alterations of a
literary or artistic work, or phonogram or performance and includes
cinematographic adaptations or any other form in which the Work may be
recast, transformed, or adapted including in any form recognizably
derived from the original, except that a work that constitutes a
Collection will not be considered an Adaptation for the purpose of
this License. For the avoidance of doubt, where the Work is a musical
work, performance or phonogram, the synchronization of the Work in
timed-relation with a moving image ("synching") will be considered an
Adaptation for the purpose of this License.
b. "Collection" means a collection of literary or artistic works, such as
encyclopedias and anthologies, or performances, phonograms or
broadcasts, or other works or subject matter other than works listed
in Section 1(f) below, which, by reason of the selection and
arrangement of their contents, constitute intellectual creations, in
which the Work is included in its entirety in unmodified form along
with one or more other contributions, each constituting separate and
independent works in themselves, which together are assembled into a
collective whole. A work that constitutes a Collection will not be
considered an Adaptation (as defined above) for the purposes of this
License.
c. "Distribute" means to make available to the public the original and
copies of the Work or Adaptation, as appropriate, through sale or
other transfer of ownership.
d. "Licensor" means the individual, individuals, entity or entities that
offer(s) the Work under the terms of this License.
e. "Original Author" means, in the case of a literary or artistic work,
the individual, individuals, entity or entities who created the Work
or if no individual or entity can be identified, the publisher; and in
addition (i) in the case of a performance the actors, singers,
musicians, dancers, and other persons who act, sing, deliver, declaim,
play in, interpret or otherwise perform literary or artistic works or
expressions of folklore; (ii) in the case of a phonogram the producer
being the person or legal entity who first fixes the sounds of a
performance or other sounds; and, (iii) in the case of broadcasts, the
organization that transmits the broadcast.
f. "Work" means the literary and/or artistic work offered under the terms
of this License including without limitation any production in the
literary, scientific and artistic domain, whatever may be the mode or
form of its expression including digital form, such as a book,
pamphlet and other writing; a lecture, address, sermon or other work
of the same nature; a dramatic or dramatico-musical work; a
choreographic work or entertainment in dumb show; a musical
composition with or without words; a cinematographic work to which are
assimilated works expressed by a process analogous to cinematography;
a work of drawing, painting, architecture, sculpture, engraving or
lithography; a photographic work to which are assimilated works
expressed by a process analogous to photography; a work of applied
art; an illustration, map, plan, sketch or three-dimensional work
relative to geography, topography, architecture or science; a
performance; a broadcast; a phonogram; a compilation of data to the
extent it is protected as a copyrightable work; or a work performed by
a variety or circus performer to the extent it is not otherwise
considered a literary or artistic work.
g. "You" means an individual or entity exercising rights under this
License who has not previously violated the terms of this License with
respect to the Work, or who has received express permission from the
Licensor to exercise rights under this License despite a previous
violation.
h. "Publicly Perform" means to perform public recitations of the Work and
to communicate to the public those public recitations, by any means or
process, including by wire or wireless means or public digital
performances; to make available to the public Works in such a way that
members of the public may access these Works from a place and at a
place individually chosen by them; to perform the Work to the public
by any means or process and the communication to the public of the
performances of the Work, including by public digital performance; to
broadcast and rebroadcast the Work by any means including signs,
sounds or images.
i. "Reproduce" means to make copies of the Work by any means including
without limitation by sound or visual recordings and the right of
fixation and reproducing fixations of the Work, including storage of a
protected performance or phonogram in digital form or other electronic
medium.
2. Fair Dealing Rights. Nothing in this License is intended to reduce,
limit, or restrict any uses free from copyright or rights arising from
limitations or exceptions that are provided for in connection with the
copyright protection under copyright law or other applicable laws.
3. License Grant. Subject to the terms and conditions of this License,
Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
perpetual (for the duration of the applicable copyright) license to
exercise the rights in the Work as stated below:
a. to Reproduce the Work, to incorporate the Work into one or more
Collections, and to Reproduce the Work as incorporated in the
Collections;
b. to create and Reproduce Adaptations provided that any such Adaptation,
including any translation in any medium, takes reasonable steps to
clearly label, demarcate or otherwise identify that changes were made
to the original Work. For example, a translation could be marked "The
original work was translated from English to Spanish," or a
modification could indicate "The original work has been modified.";
c. to Distribute and Publicly Perform the Work including as incorporated
in Collections; and,
d. to Distribute and Publicly Perform Adaptations.
The above rights may be exercised in all media and formats whether now
known or hereafter devised. The above rights include the right to make
such modifications as are technically necessary to exercise the rights in
other media and formats. Subject to Section 8(f), all rights not expressly
granted by Licensor are hereby reserved, including but not limited to the
rights set forth in Section 4(d).
4. Restrictions. The license granted in Section 3 above is expressly made
subject to and limited by the following restrictions:
a. You may Distribute or Publicly Perform the Work only under the terms
of this License. You must include a copy of, or the Uniform Resource
Identifier (URI) for, this License with every copy of the Work You
Distribute or Publicly Perform. You may not offer or impose any terms
on the Work that restrict the terms of this License or the ability of
the recipient of the Work to exercise the rights granted to that
recipient under the terms of the License. You may not sublicense the
Work. You must keep intact all notices that refer to this License and
to the disclaimer of warranties with every copy of the Work You
Distribute or Publicly Perform. When You Distribute or Publicly
Perform the Work, You may not impose any effective technological
measures on the Work that restrict the ability of a recipient of the
Work from You to exercise the rights granted to that recipient under
the terms of the License. This Section 4(a) applies to the Work as
incorporated in a Collection, but this does not require the Collection
apart from the Work itself to be made subject to the terms of this
License. If You create a Collection, upon notice from any Licensor You
must, to the extent practicable, remove from the Collection any credit
as required by Section 4(c), as requested. If You create an
Adaptation, upon notice from any Licensor You must, to the extent
practicable, remove from the Adaptation any credit as required by
Section 4(c), as requested.
b. You may not exercise any of the rights granted to You in Section 3
above in any manner that is primarily intended for or directed toward
commercial advantage or private monetary compensation. The exchange of
the Work for other copyrighted works by means of digital file-sharing
or otherwise shall not be considered to be intended for or directed
toward commercial advantage or private monetary compensation, provided
there is no payment of any monetary compensation in connection with
the exchange of copyrighted works.
c. If You Distribute, or Publicly Perform the Work or any Adaptations or
Collections, You must, unless a request has been made pursuant to
Section 4(a), keep intact all copyright notices for the Work and
provide, reasonable to the medium or means You are utilizing: (i) the
name of the Original Author (or pseudonym, if applicable) if supplied,
and/or if the Original Author and/or Licensor designate another party
or parties (e.g., a sponsor institute, publishing entity, journal) for
attribution ("Attribution Parties") in Licensor's copyright notice,
terms of service or by other reasonable means, the name of such party
or parties; (ii) the title of the Work if supplied; (iii) to the
extent reasonably practicable, the URI, if any, that Licensor
specifies to be associated with the Work, unless such URI does not
refer to the copyright notice or licensing information for the Work;
and, (iv) consistent with Section 3(b), in the case of an Adaptation,
a credit identifying the use of the Work in the Adaptation (e.g.,
"French translation of the Work by Original Author," or "Screenplay
based on original Work by Original Author"). The credit required by
this Section 4(c) may be implemented in any reasonable manner;
provided, however, that in the case of a Adaptation or Collection, at
a minimum such credit will appear, if a credit for all contributing
authors of the Adaptation or Collection appears, then as part of these
credits and in a manner at least as prominent as the credits for the
other contributing authors. For the avoidance of doubt, You may only
use the credit required by this Section for the purpose of attribution
in the manner set out above and, by exercising Your rights under this
License, You may not implicitly or explicitly assert or imply any
connection with, sponsorship or endorsement by the Original Author,
Licensor and/or Attribution Parties, as appropriate, of You or Your
use of the Work, without the separate, express prior written
permission of the Original Author, Licensor and/or Attribution
Parties.
d. For the avoidance of doubt:
i. Non-waivable Compulsory License Schemes. In those jurisdictions in
which the right to collect royalties through any statutory or
compulsory licensing scheme cannot be waived, the Licensor
reserves the exclusive right to collect such royalties for any
exercise by You of the rights granted under this License;
ii. Waivable Compulsory License Schemes. In those jurisdictions in
which the right to collect royalties through any statutory or
compulsory licensing scheme can be waived, the Licensor reserves
the exclusive right to collect such royalties for any exercise by
You of the rights granted under this License if Your exercise of
such rights is for a purpose or use which is otherwise than
noncommercial as permitted under Section 4(b) and otherwise waives
the right to collect royalties through any statutory or compulsory
licensing scheme; and,
iii. Voluntary License Schemes. The Licensor reserves the right to
collect royalties, whether individually or, in the event that the
Licensor is a member of a collecting society that administers
voluntary licensing schemes, via that society, from any exercise
by You of the rights granted under this License that is for a
purpose or use which is otherwise than noncommercial as permitted
under Section 4(c).
e. Except as otherwise agreed in writing by the Licensor or as may be
otherwise permitted by applicable law, if You Reproduce, Distribute or
Publicly Perform the Work either by itself or as part of any
Adaptations or Collections, You must not distort, mutilate, modify or
take other derogatory action in relation to the Work which would be
prejudicial to the Original Author's honor or reputation. Licensor
agrees that in those jurisdictions (e.g. Japan), in which any exercise
of the right granted in Section 3(b) of this License (the right to
make Adaptations) would be deemed to be a distortion, mutilation,
modification or other derogatory action prejudicial to the Original
Author's honor and reputation, the Licensor will waive or not assert,
as appropriate, this Section, to the fullest extent permitted by the
applicable national law, to enable You to reasonably exercise Your
right under Section 3(b) of this License (right to make Adaptations)
but not otherwise.
5. Representations, Warranties and Disclaimer
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
7. Termination
a. This License and the rights granted hereunder will terminate
automatically upon any breach by You of the terms of this License.
Individuals or entities who have received Adaptations or Collections
from You under this License, however, will not have their licenses
terminated provided such individuals or entities remain in full
compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
survive any termination of this License.
b. Subject to the above terms and conditions, the license granted here is
perpetual (for the duration of the applicable copyright in the Work).
Notwithstanding the above, Licensor reserves the right to release the
Work under different license terms or to stop distributing the Work at
any time; provided, however that any such election will not serve to
withdraw this License (or any other license that has been, or is
required to be, granted under the terms of this License), and this
License will continue in full force and effect unless terminated as
stated above.
8. Miscellaneous
a. Each time You Distribute or Publicly Perform the Work or a Collection,
the Licensor offers to the recipient a license to the Work on the same
terms and conditions as the license granted to You under this License.
b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
offers to the recipient a license to the original Work on the same
terms and conditions as the license granted to You under this License.
c. If any provision of this License is invalid or unenforceable under
applicable law, it shall not affect the validity or enforceability of
the remainder of the terms of this License, and without further action
by the parties to this agreement, such provision shall be reformed to
the minimum extent necessary to make such provision valid and
enforceable.
d. No term or provision of this License shall be deemed waived and no
breach consented to unless such waiver or consent shall be in writing
and signed by the party to be charged with such waiver or consent.
e. This License constitutes the entire agreement between the parties with
respect to the Work licensed here. There are no understandings,
agreements or representations with respect to the Work not specified
here. Licensor shall not be bound by any additional provisions that
may appear in any communication from You. This License may not be
modified without the mutual written agreement of the Licensor and You.
f. The rights granted under, and the subject matter referenced, in this
License were drafted utilizing the terminology of the Berne Convention
for the Protection of Literary and Artistic Works (as amended on
September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996
and the Universal Copyright Convention (as revised on July 24, 1971).
These rights and subject matter take effect in the relevant
jurisdiction in which the License terms are sought to be enforced
according to the corresponding provisions of the implementation of
those treaty provisions in the applicable national law. If the
standard suite of rights granted under applicable copyright law
includes additional rights not granted under this License, such
additional rights are deemed to be included in the License; this
License is not intended to restrict the license of any rights under
applicable law.
Creative Commons Notice
Creative Commons is not a party to this License, and makes no warranty
whatsoever in connection with the Work. Creative Commons will not be
liable to You or any party on any legal theory for any damages
whatsoever, including without limitation any general, special,
incidental or consequential damages arising in connection to this
license. Notwithstanding the foregoing two (2) sentences, if Creative
Commons has expressly identified itself as the Licensor hereunder, it
shall have all rights and obligations of Licensor.
Except for the limited purpose of indicating to the public that the
Work is licensed under the CCPL, Creative Commons does not authorize
the use by either party of the trademark "Creative Commons" or any
related trademark or logo of Creative Commons without the prior
written consent of Creative Commons. Any permitted use will be in
compliance with Creative Commons' then-current trademark usage
guidelines, as may be published on its website or otherwise made
available upon request from time to time. For the avoidance of doubt,
this trademark restriction does not form part of the License.
Creative Commons may be contacted at https://creativecommons.org/.
+117 -245
View File
@@ -1,278 +1,150 @@
<img src="https://github.com/raysan5/raylib/blob/master/logo/logo256x256.png" width=256>
<img align="left" style="width:260px" src="https://github.com/raysan5/raylib/blob/master/logo/raylib_logo_animation.gif" width="288px">
about
-----
**raylib is a simple and easy-to-use library to enjoy videogames programming.**
raylib is a simple and easy-to-use library to learn videogames programming.
raylib is highly inspired by Borland BGI graphics lib and by XNA framework and it's especially well suited for prototyping, tooling, graphical applications, embedded systems and education.
raylib is highly inspired by Borland BGI graphics lib and by XNA framework.
*NOTE for ADVENTURERS: raylib is a programming library to enjoy videogames programming; no fancy interface, no visual helpers, no debug button... just coding in the most pure spartan-programmers way.*
NOTE for ADVENTURERS: raylib is a programming library to learn videogames programming;
no fancy interface, no visual helpers, no auto-debugging... just coding in the most
pure spartan-programmers way. Are you ready to learn? Jump to [code examples!](http://www.raylib.com/examples.htm)
Ready to learn? Jump to [code examples!](https://www.raylib.com/examples.html)
history
-------
---
I've developed videogames for some years and 4 years ago I started teaching videogames development
to young people with artistic profile, most of them had never written a single line of code.
<br>
I started with C language basis and, after searching for the most simple and easy-to-use library to teach
videogames programming, I found WinBGI; it was great and it worked very well with students, in just a
couple of weeks that people that had never written a single line of code were able to program (and understand)
a simple PONG and some of them even a BREAKOUT!
[![GitHub Releases Downloads](https://img.shields.io/github/downloads/raysan5/raylib/total)](https://github.com/raysan5/raylib/releases)
[![GitHub Stars](https://img.shields.io/github/stars/raysan5/raylib?style=flat&label=stars)](https://github.com/raysan5/raylib/stargazers)
[![GitHub commits since tagged version](https://img.shields.io/github/commits-since/raysan5/raylib/4.5.0)](https://github.com/raysan5/raylib/commits/master)
[![GitHub Sponsors](https://img.shields.io/github/sponsors/raysan5?label=sponsors)](https://github.com/sponsors/raysan5)
[![Packaging Status](https://repology.org/badge/tiny-repos/raylib.svg)](https://repology.org/project/raylib/versions)
[![License](https://img.shields.io/badge/license-zlib%2Flibpng-blue.svg)](LICENSE)
But WinBGI was not the clearer and most organized lib. There were a lot of things I found useless and
confusing and some function names were not clear enough for most of the students; not to mention points
like no transparencies support or no hardware acceleration.
[![Discord Members](https://img.shields.io/discord/426912293134270465.svg?label=Discord&logo=discord)](https://discord.gg/raylib)
[![Subreddit Subscribers](https://img.shields.io/reddit/subreddit-subscribers/raylib?label=reddit%20r%2Fraylib&logo=reddit)](https://www.reddit.com/r/raylib/)
[![Youtube Subscribers](https://img.shields.io/youtube/channel/subscribers/UC8WIBkhYb5sBNqXO1mZ7WSQ?style=flat&label=Youtube&logo=youtube)](https://www.youtube.com/c/raylib)
[![Twitch Status](https://img.shields.io/twitch/status/raysan5?style=flat&label=Twitch&logo=twitch)](https://www.twitch.tv/raysan5)
So, I decided to create my own lib, hardware accelerated, clear function names, quite organized, well structured,
plain C coding and, the most important, primarily intended to LEARN videogames programming.
I've coded quite a lot in C# and XNA and I really love it (in fact, my students learn C# after C),
so, I decided to use C# language notation and XNA naming conventions. That way, students can jump from
raylib to XNA, MonoGame or similar libs extremely easily.
raylib started as a weekend project and after three months of hard work, raylib 1.0 was published on November 2013.
Enjoy it.
notes on raylib 1.1
-------------------
On April 2014, after 6 month of first raylib release, raylib 1.1 has been released. This new version presents a
complete internal redesign of the library to support OpenGL 1.1, OpenGL 3.3+ and OpenGL ES 2.0.
A new module named [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.h) has been added to the library. This new module translates raylib-OpenGL-style
immediate mode functions (i.e. rlVertex3f(), rlBegin(), ...) to different versions of OpenGL (1.1, 3.3+, ES2), selectable by one define.
[rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.h) also comes with a second new module named [raymath](https://github.com/raysan5/raylib/blob/master/src/raymath.h), which includes
a bunch of useful functions for 3d-math with vectors, matrices and quaternions.
Some other big changes of this new version have been the support for OGG files loading and stream playing, and the
support of DDS texture files (compressed and uncompressed) along with mipmaps support.
Lots of code changes and lot of testing have concluded in this amazing new raylib 1.1.
notes on raylib 1.2
-------------------
On September 2014, after 5 month of raylib 1.1 release, it comes raylib 1.2. Again, this version presents a
complete internal redesign of [core](https://github.com/raysan5/raylib/blob/master/src/core.c) module to support two new platforms: [Android](http://www.android.com/) and [Raspberry Pi](http://www.raspberrypi.org/).
It's been some month of really hard work to accomodate raylib to those new platforms while keeping it easy for the user.
On Android, raylib manages internally the activity cicle, as well as the inputs; on Raspberry Pi, a complete raw input
system has been written from scratch.
A new display initialization system has been created to support multiple resolutions, adding black bars if required;
user only defines desired screen size and it gets properly displayed.
Now raylib can easily deploy games to Android devices and Raspberry Pi (console mode).
Lots of code changes and lot of testing have concluded in this amazing new raylib 1.2.
In December 2014, new raylib 1.2.2 was published with support to compile directly for web (html5) using [emscripten](http://kripken.github.io/emscripten-site/) and [asm.js](http://asmjs.org/).
notes on raylib 1.3
-------------------
On September 2015, after 1 year of raylib 1.2 release, arrives raylib 1.3. This version adds shaders functionality,
improves tremendously textures module and also provides some new modules (camera system, gestures system, IMGUI).
Shaders support is the biggest addition to raylib 1.3, with support for easy shaders loading and use. Loaded shaders can be
attached to 3d models or used as fullscreen postrocessing effects. A bunch of postprocessing shaders are also included
in this release, check raylib/shaders folder.
Textures module has grown to support most of the internal texture formats available in OpenGL (RGB565, RGB888, RGBA5551, RGBA4444, etc.), including compressed texture formats (DXT, ETC1, ETC2, ASTC, PVRT); raylib 1.3 can load .dds, .pkm, .ktx, .astc and .pvr files.
A brand new [camera](https://github.com/raysan5/raylib/blob/develop/src/camera.c) module offers to the user multiple preconfigured ready-to-use camera systems (free camera, 1st person, 3rd person).
Camera modes are very easy to use, just check examples: [core_3d_camera_free.c](https://github.com/raysan5/raylib/blob/develop/examples/core_3d_camera_free.c) and [core_3d_camera_first_person.c](https://github.com/raysan5/raylib/blob/develop/examples/core_3d_camera_first_person.c).
New [gestures](https://github.com/raysan5/raylib/blob/develop/src/gestures.h) module simplifies gestures detection on Android and HTML5 programs.
[raygui](https://github.com/raysan5/raylib/blob/develop/src/raygui.h), the new IMGUI (Immediate Mode GUI) module offers a set of functions to create simple user interfaces,
primary intended for tools development. It's still in experimental state but already fully functional.
Most of the examples have been completely rewritten and +10 new examples have been added to show the new raylib features.
Lots of code changes and lot of testing have concluded in this amazing new raylib 1.3.
notes on raylib 1.4
-------------------
On February 2016, after 4 months of raylib 1.3 release, it comes raylib 1.4. For this new version,
lots of parts of the library have been reviewed, lots of bugs have been solved and some interesting features have been added.
First big addition is a set of [Image manipulation functions](https://github.com/raysan5/raylib/blob/develop/src/raylib.h#L673) have been added to crop, resize, colorize, flip, dither and even draw image-to-image or text-to-image.
Now a basic image processing can be done before converting the image to texture for usage.
SpriteFonts system has been improved, adding support for AngelCode fonts (.fnt) and TrueType Fonts (using [stb_truetype](https://github.com/nothings/stb/blob/master/stb_truetype.h) helper library).
Now raylib can read standard .fnt font data and also generate at loading a SpriteFont from a TTF file.
New [physac](https://github.com/raysan5/raylib/blob/develop/src/physac.h) physics module for basic 2D physics support. Still in development but already functional.
Module comes with some usage examples for basic jump and level interaction and also force-based physic movements.
[raymath](https://github.com/raysan5/raylib/blob/develop/src/raymath.h) module has been reviewed; some bugs have been solved and the module has been converted to a header-only file for easier portability, optionally, functions can also be used as inline.
[gestures](https://github.com/raysan5/raylib/blob/develop/src/gestures.c) module has redesigned and simplified, now it can process touch events from any source, including mouse.
This way, gestures system can be used on any platform providing an unified way to work with inputs and allowing the user to create multiplatform games with only one source code.
Raspberry Pi input system has been redesigned to better read raw inputs using generic Linux event handlers (keyboard:`stdin`, mouse:`/dev/input/mouse0`, gamepad:`/dev/input/js0`).
Gamepad support has also been added (experimental).
Other important improvements are the functional raycast system for 3D picking, including some ray collision-detection functions,
and the addition of two simple functions for persistent data storage. Now raylib user can save and load game data in a file (only some platforms supported).
A simple [easings](https://github.com/raysan5/raylib/blob/develop/src/easings.h) module has also been added for values animation.
Up to 8 new code examples have been added to show the new raylib features and +10 complete game samples have been provided to learn
how to create some classic games like Arkanoid, Asteroids, Missile Commander, Snake or Tetris.
Lots of code changes and lots of hours of hard work have concluded in this amazing new raylib 1.4.
notes on raylib 1.5
-------------------
On July 2016, after 5 months of raylib 1.4 release, arrives raylib 1.5. This new version is the biggest boost of the library until now, lots of parts of the library have been redesigned, lots of bugs have been solved and some **AMAZING** new features have been added.
VR support: raylib supports **Oculus Rift CV1**, one of the most anticipated VR devices in the market. Additionally, raylib supports simulated VR stereo rendering, independent of the VR device; it means, raylib can generate stereo renders with custom head-mounted-display device parameteres, that way, any VR device in the market can be **simulated in any platform** just configuring device parameters (and consequently, lens distortion). To enable VR is [extremely easy](https://github.com/raysan5/raylib/blob/develop/examples/core_oculus_rift.c).
New materials system: now raylib supports standard material properties for 3D models, including diffuse-ambient-specular colors and diffuse-normal-specular textures. Just assign values to standard material and everything is processed internally.
New lighting system: added support for up to 8 configurable lights and 3 light types: **point**, **directional** and **spot** lights. Just create a light, configure its parameters and raylib manages render internally for every 3d object using standard material.
Complete gamepad support on Raspberry Pi: Gamepad system has been completely redesigned. Now multiple gamepads can be easily configured and used; gamepad data is read and processed in raw mode in a second thread.
Redesigned physics module: [physac](https://github.com/raysan5/raylib/blob/develop/src/physac.h) module has been converted to header only and usage [has been simplified](https://github.com/raysan5/raylib/blob/develop/examples/physics_basic_rigidbody.c). Performance has also been singnificantly improved, now physic objects are managed internally in a second thread.
Audio chiptunese support and mixing channels: Added support for module audio music (.xm, .mod) loading and playing. Multiple mixing channels are now also supported. All this features thanks to the amazing work of @kd7tck.
Other additions include a [2D camera system](https://github.com/raysan5/raylib/blob/develop/examples/core_2d_camera.c), render textures for offline render (and most comprehensive [postprocessing](https://github.com/raysan5/raylib/blob/develop/examples/shaders_postprocessing.c)) or support for legacy OpenGL 2.1 on desktop platforms.
This new version is so massive that is difficult to list all the improvements, most of raylib modules have been reviewed and [rlgl](https://github.com/raysan5/raylib/blob/develop/src/rlgl.c) module has been completely redesigned to accomodate to new material-lighting systems and stereo rendering. You can check [CHANGELOG](https://github.com/raysan5/raylib/blob/develop/CHANGELOG) file for a more detailed list of changes.
Up to 8 new code examples have been added to show the new raylib features and also some samples to show the usage of [rlgl](https://github.com/raysan5/raylib/blob/develop/examples/rlgl_standalone.c) and [audio](https://github.com/raysan5/raylib/blob/develop/examples/audio_standalone.c) raylib modules as standalone libraries.
Lots of code changes (+400 commits) and lots of hours of hard work have concluded in this amazing new raylib 1.5.
notes on raylib 1.6
-------------------
On November 2016, only 4 months after raylib 1.5, arrives raylib 1.6. This new version represents another big review of the library and includes some interesting additions. This version conmmemorates raylib 3rd anniversary (raylib 1.0 was published on November 2013) and it is a stepping stone for raylib future. raylib roadmap has been reviewed and redefined to focus on its primary objective: create a simple and easy-to-use library to learn videogames programming. Some of the new features:
Complete raylib LUA binding. All raylib functions plus the +60 code examples have been ported to LUA, now LUA users can enjoy coding videogames in LUA while using all the internal power of raylib. This addition also open the doors to LUA scripting support for a future raylib-based engine, being able to move game logic (Init, Update, Draw, De-Init) to LUA scripts while keep using raylib functionality.
Completely redesigned audio module. Based on the new direction taken in raylib 1.5, it has been further improved and more functionality added (+20 new functions) to allow raw audio processing and streaming. FLAC file format support has also been added. In the same line, OpenAL Soft backend is now provided as a static library in Windows to allow static linking and get ride of OpenAL32.dll. Now raylib Windows games are completey self-contained, no external libraries required any more!
Physac module has been moved to its own repository and it has been improved A LOT, actually, library has been completely rewritten from scratch by @victorfisac, multiple samples have been added together with countless new features to match current standard 2D physic libraries. Results are amazing!
Camera and gestures modules have been reviewed, highly simplified and ported to single-file header-only libraries for easier portability and usage flexibility. Consequently, camera system usage has been simplified in all examples.
Improved Gamepad support on Windows and Raspberry Pi with the addition of new functions for custom gamepad configurations but supporting by default PS3 and Xbox-based gamepads.
Improved textures and text functionality, adding new functions for texture filtering control and better TTF/AngelCode fonts loading and generation support.
Build system improvement. Added support for raylib dynamic library generation (raylib.dll) for users that prefer dynamic library linking. Also thinking on advance users, it has been added pre-configured Visual Studio C++ 2015 solution with raylib project and C/C++ examples for users that prefer that professional IDE and compiler.
New examples, new functions, complete code-base review, multiple bugs corrected... this is raylib 1.6. Enjoy making games.
[![Windows](https://github.com/raysan5/raylib/workflows/Windows/badge.svg)](https://github.com/raysan5/raylib/actions?query=workflow%3AWindows)
[![Linux](https://github.com/raysan5/raylib/workflows/Linux/badge.svg)](https://github.com/raysan5/raylib/actions?query=workflow%3ALinux)
[![macOS](https://github.com/raysan5/raylib/workflows/macOS/badge.svg)](https://github.com/raysan5/raylib/actions?query=workflow%3AmacOS)
[![WebAssembly](https://github.com/raysan5/raylib/workflows/WebAssembly/badge.svg)](https://github.com/raysan5/raylib/actions?query=workflow%3AWebAssembly)
[![CMakeBuilds](https://github.com/raysan5/raylib/workflows/CMakeBuilds/badge.svg)](https://github.com/raysan5/raylib/actions?query=workflow%3ACMakeBuilds)
[![Windows Examples](https://github.com/raysan5/raylib/actions/workflows/windows_examples.yml/badge.svg)](https://github.com/raysan5/raylib/actions/workflows/windows_examples.yml)
[![Linux Examples](https://github.com/raysan5/raylib/actions/workflows/linux_examples.yml/badge.svg)](https://github.com/raysan5/raylib/actions/workflows/linux_examples.yml)
features
--------
* Written in plain C code (C99)
* Uses PascalCase/camelCase notation
* Hardware accelerated with OpenGL (1.1, 2.1, 3.3 or ES2)
* Unique OpenGL abstraction layer (usable as standalone module): [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.c)
* Powerful fonts module with multiple SpriteFonts formats support (XNA bitmap fonts, AngelCode fonts, TTF)
* Outstanding texture formats support, including compressed formats (DXT, ETC, PVRT, ASTC)
* Basic 3d support for Shapes, Models, Billboards, Heightmaps and Cubicmaps
* Materials (diffuse, normal, specular) and Lighting (point, directional, spot) support
* Shaders support, including Model shaders and Postprocessing shaders
* Powerful math module for Vector and Matrix operations: [raymath](https://github.com/raysan5/raylib/blob/master/src/raymath.c)
* Audio loading and playing with streaming support and mixing channels (WAV, OGG, FLAC, XM, MOD)
* VR stereo rendering support with configurable HMD device parameters
* Multiple platforms support: Windows, Linux, Mac, **Android**, **Raspberry Pi**, **HTML5** and **Oculus Rift CV1**
* Custom color palette for fancy visuals on raywhite background
* Minimal external dependencies (GLFW3, OpenGL, OpenAL)
* Complete binding to LUA
- **NO external dependencies**, all required libraries are [bundled into raylib](https://github.com/raysan5/raylib/tree/master/src/external)
- Multiple platforms supported: **Windows, Linux, MacOS, RPI, Android, HTML5... and more!**
- Written in plain C code (C99) using PascalCase/camelCase notation
- Hardware accelerated with OpenGL (**1.1, 2.1, 3.3, 4.3, ES 2.0, ES 3.0**)
- **Unique OpenGL abstraction layer** (usable as standalone module): [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.h)
- Multiple **Fonts** formats supported (TTF, OTF, Image fonts, AngelCode fonts)
- Multiple texture formats supported, including **compressed formats** (DXT, ETC, ASTC)
- **Full 3D support**, including 3D Shapes, Models, Billboards, Heightmaps and more!
- Flexible Materials system, supporting classic maps and **PBR maps**
- **Animated 3D models** supported (skeletal bones animation) (IQM, M3D, glTF)
- Shaders support, including model shaders and **postprocessing** shaders
- **Powerful math module** for Vector, Matrix and Quaternion operations: [raymath](https://github.com/raysan5/raylib/blob/master/src/raymath.h)
- Audio loading and playing with streaming support (WAV, QOA, OGG, MP3, FLAC, XM, MOD)
- **VR stereo rendering** support with configurable HMD device parameters
- Huge examples collection with [+140 code examples](https://github.com/raysan5/raylib/tree/master/examples)!
- Bindings to [+70 programming languages](https://github.com/raysan5/raylib/blob/master/BINDINGS.md)!
- **Free and open source**
raylib uses on its core module the outstanding [GLFW3](http://www.glfw.org/) library. The best option by far I found for
multiplatform (Windows, Linux, Mac) window/context and input management (clean, focused, great license, well documented, modern, ...).
basic example
--------------
This is a basic raylib example, it creates a window and draws the text `"Congrats! You created your first window!"` in the middle of the screen. Check this example [running live on web here](https://www.raylib.com/examples/core/loader.html?name=core_basic_window).
```c
#include "raylib.h"
raylib uses on its [audio](https://github.com/raysan5/raylib/blob/master/src/audio.c) module, [OpenAL Soft](http://kcat.strangesoft.net/openal.html) audio library, in multiple flavours,
to accomodate to Android, Raspberry Pi and HTML5.
int main(void)
{
InitWindow(800, 450, "raylib [core] example - basic window");
On Android, raylib uses `native_app_glue module` (provided by Android NDK) and native Android libraries to manage window/context, inputs and activity cycle.
while (!WindowShouldClose())
{
BeginDrawing();
ClearBackground(RAYWHITE);
DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY);
EndDrawing();
}
On Raspberry Pi, raylib uses Videocore API and EGL for window/context management and raw inputs reading.
CloseWindow();
On Oculus Rift CV1, raylib uses Oculus PC SDK libraries but only the core C library ([LibOVR](https://github.com/raysan5/raylib/tree/develop/src/external/OculusSDK/LibOVR)); runtime library (LibOVRRT32_1.dll) must be linked at compilation time.
return 0;
}
```
raylib is licensed under a zlib/libpng license. View [LICENSE](https://github.com/raysan5/raylib/blob/master/LICENSE.md).
build and installation
----------------------
tools requirements
raylib binary releases for Windows, Linux, macOS, Android and HTML5 are available at the [Github Releases page](https://github.com/raysan5/raylib/releases).
raylib is also available via multiple [package managers](https://github.com/raysan5/raylib/issues/613) on multiple OS distributions.
#### Installing and building raylib on multiple platforms
[raylib Wiki](https://github.com/raysan5/raylib/wiki#development-platforms) contains detailed instructions on building and usage on multiple platforms.
- [Working on Windows](https://github.com/raysan5/raylib/wiki/Working-on-Windows)
- [Working on macOS](https://github.com/raysan5/raylib/wiki/Working-on-macOS)
- [Working on GNU Linux](https://github.com/raysan5/raylib/wiki/Working-on-GNU-Linux)
- [Working on Chrome OS](https://github.com/raysan5/raylib/wiki/Working-on-Chrome-OS)
- [Working on FreeBSD](https://github.com/raysan5/raylib/wiki/Working-on-FreeBSD)
- [Working on Raspberry Pi](https://github.com/raysan5/raylib/wiki/Working-on-Raspberry-Pi)
- [Working for Android](https://github.com/raysan5/raylib/wiki/Working-for-Android)
- [Working for Web (HTML5)](https://github.com/raysan5/raylib/wiki/Working-for-Web-(HTML5))
- [Working anywhere with CMake](https://github.com/raysan5/raylib/wiki/Working-with-CMake)
*Note that the Wiki is open for edit, if you find some issues while building raylib for your target platform, feel free to edit the Wiki or open an issue related to it.*
#### Setup raylib with multiple IDEs
raylib has been developed on Windows platform using [Notepad++](https://notepad-plus-plus.org/) and [MinGW GCC](https://www.mingw-w64.org/) compiler but it can be used with other IDEs on multiple platforms.
[Projects directory](https://github.com/raysan5/raylib/tree/master/projects) contains several ready-to-use **project templates** to build raylib and code examples with multiple IDEs.
*Note that there are lots of IDEs supported, some of the provided templates could require some review, so please, if you find some issue with a template or you think they could be improved, feel free to send a PR or open a related issue.*
learning and docs
------------------
raylib has been developed using exclusively two tools:
raylib is designed to be learned using [the examples](https://github.com/raysan5/raylib/tree/master/examples) as the main reference. There is no standard API documentation but there is a [**cheatsheet**](https://www.raylib.com/cheatsheet/cheatsheet.html) containing all the functions available on the library a short description of each one of them, input parameters and result value names should be intuitive enough to understand how each function works.
* Notepad++ (text editor) - [http://notepad-plus-plus.org/](http://notepad-plus-plus.org/)
* MinGW (GCC compiler) - [http://www.mingw.org/](http://www.mingw.org/)
Those are the tools I recommend to develop with raylib, in fact, those are the tools my students use.
I believe those are the best tools to train spartan-programmers.
Some additional documentation about raylib design can be found in [raylib GitHub Wiki](https://github.com/raysan5/raylib/wiki). Here are the relevant links:
Someone could argue about debugging. raylib is a library intended for learning and I think C it's a clear enough language
to allow writing small-mid size programs with a printf-based debugging. All raylib examples have also been written this way.
- [raylib cheatsheet](https://www.raylib.com/cheatsheet/cheatsheet.html)
- [raylib architecture](https://github.com/raysan5/raylib/wiki/raylib-architecture)
- [raylib library design](https://github.com/raysan5/raylib/wiki)
- [raylib examples collection](https://github.com/raysan5/raylib/tree/master/examples)
- [raylib games collection](https://github.com/raysan5/raylib-games)
Since raylib v1.1, you can download a Windows Installer package for easy installation and configuration. Check [raylib Webpage](http://www.raylib.com/)
building source (generate libraylib.a)
--------------------------------------
contact and networks
---------------------
Check raylib wiki page: [Compile for...](https://github.com/raysan5/raylib/wiki)
raylib is present in several networks and raylib community is growing everyday. If you are using raylib and enjoying it, feel free to join us in any of these networks. The most active network is our [Discord server](https://discord.gg/raylib)! :)
building examples
-----------------
- Webpage: [https://www.raylib.com](https://www.raylib.com)
- Discord: [https://discord.gg/raylib](https://discord.gg/raylib)
- Twitter: [https://www.twitter.com/raysan5](https://www.twitter.com/raysan5)
- Twitch: [https://www.twitch.tv/raysan5](https://www.twitch.tv/raysan5)
- Reddit: [https://www.reddit.com/r/raylib](https://www.reddit.com/r/raylib)
- Patreon: [https://www.patreon.com/raylib](https://www.patreon.com/raylib)
- YouTube: [https://www.youtube.com/channel/raylib](https://www.youtube.com/c/raylib)
Check raylib wiki page: [Compile for...](https://github.com/raysan5/raylib/wiki)
contributors
------------
contact
<a href="https://github.com/raysan5/raylib/graphs/contributors">
<img src="https://contrib.rocks/image?repo=raysan5/raylib&max=500&columns=20&anon=1" />
</a>
license
-------
* Webpage: [http://www.raylib.com](http://www.raylib.com)
* Twitter: [http://www.twitter.com/raysan5](http://www.twitter.com/raysan5)
* Facebook: [http://www.facebook.com/raylibgames](http://www.facebook.com/raylibgames)
* Reddit: [https://www.reddit.com/r/raylib](https://www.reddit.com/r/raylib)
* Twitch: [http://www.twitch.tv/raysan5](http://www.twitch.tv/raysan5)
* Patreon: [https://www.patreon.com/raysan5](https://www.patreon.com/raysan5)
raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, BSD-like license that allows static linking with closed source software. Check [LICENSE](LICENSE) for further details.
If you are using raylib and you enjoy it, please, [let me know][raysan5].
If you feel you can help, then, [helpme!](http://www.raylib.com/helpme.htm)
acknowledgements
---------------
I believe that time is the most valuable resource and the following people have invested part of their time
contributing (in some way or another) to make raylib project better. Huge thanks!
- [Zopokx](https://github.com/Zopokx) for testing the web.
- [Elendow](http://www.elendow.com) for testing and helping on web development.
- Victor Dual for implementing and testing 3D shapes functions.
- Marc Palau for implementing and testing 3D shapes functions and contribute on camera and gestures modules.
- Kevin Gato for improving texture internal formats support and helping on raygui development.
- Daniel Nicolas for improving texture internal formats support and helping on raygui development.
- Marc Agüera for testing and using raylib on a real product ([Koala Seasons](http://www.koalaseasons.com))
- Daniel Moreno for testing and using raylib on a real product ([Koala Seasons](http://www.koalaseasons.com))
- Daniel Gomez for testing and using raylib on a real product ([Koala Seasons](http://www.koalaseasons.com))
- Sergio Martinez for helping on raygui development and tools development (raygui_styler).
- [Victor Fisac](https://github.com/victorfisac) for developing physics raylib module (physac) and implementing materials and lighting systems... among multiple other improvements and multiple tools and games.
- Albert Martos for helping on raygui and porting examples and game-templates to Android and HTML5.
- Ian Eito for helping on raygui and porting examples and game-templates to Android and HTML5.
- [procedural](https://github.com/procedural) for testing raylib on Linux, correcting some bugs and adding several mouse functions.
- [Chris Hemingway](https://github.com/cHemingway) for improving raylib on OSX build system.
- [Emanuele Petriglia](https://github.com/LelixSuper) for working on multiple GNU/Linux improvements and developing [TicTacToe](https://github.com/LelixSuper/TicTacToe) raylib game.
- [Joshua Reisenauer](https://github.com/kd7tck) for adding audio modules support (XM, MOD) and reviewing audio system.
- Marcelo Paez (paezao) for his help on OSX to solve High DPI display issue. Thanks Marcelo!
[raysan5]: mailto:raysan5@gmail.com "Ramon Santamaria - Ray San"
raylib uses internally some libraries for window/graphics/inputs management and also to support different file formats loading, all those libraries are embedded with and are available in [src/external](https://github.com/raysan5/raylib/tree/master/src/external) directory. Check [raylib dependencies LICENSES](https://github.com/raysan5/raylib/wiki/raylib-dependencies) on [raylib Wiki](https://github.com/raysan5/raylib/wiki) for details.
+80 -37
View File
@@ -1,48 +1,91 @@
roadmap
-------
# raylib roadmap
Current version of raylib is quite complete and functional but there is still a lot of things to add and improve.
Here it is a wish list of features I would like to add and functions to improve.
Here it is a wishlist with features and ideas to improve the library. Note that features listed here are usually long term improvements or just describe a route to follow for the library. There are also some additional places to look for raylib improvements and ideas:
Note raylib source code has multiple TODO points with pending things to review and improve. Check [GitHub Issues](https://github.com/raysan5/raylib/issues) for further details!
- [GitHub Issues](https://github.com/raysan5/raylib/issues) has several open issues for possible improvements or bugs to fix.
- [raylib source code](https://github.com/raysan5/raylib/tree/master/src) has multiple *TODO* comments around code with pending things to review or improve.
- raylib wishlists discussions are open to everyone to ask for improvements, feel free to check and comment:
- [raylib wishlist 2021](https://github.com/raysan5/raylib/discussions/1502)
- [raylib wishlist 2022](https://github.com/raysan5/raylib/discussions/2272)
- [raylib 5.0 wishlist](https://github.com/raysan5/raylib/discussions/2952)
raylib 1.x
_Current version of raylib is complete and functional but there is always room for improvements._
Basic GPU stats sytem (memory, draws, time...)
Improved custom file-format (.rres) and packaging tool
Procedural image generation functions (spot, gradient, noise...)
Procedural mesh generation functions (cube, cone, sphere...)
Touch-based camera controls for Android
Gamepad support on HTML5
raylib 1.6
**raylib 5.x**
- [ ] `rcore`: Support additional platforms: iOS, Xbox Series S|X
- [ ] `rcore_web`: Avoid GLFW dependency, functionality can be directly implemented using emscripten SDK
- [ ] `rlgl`: Review GLSL shaders naming conventions for consistency
- [ ] `textures`: Improve compressed textures support, loading and saving
- [ ] `rmodels`: Improve 3d objects loading, specially animations (obj, gltf)
- [ ] `raudio`: Implement miniaudio high-level provided features
- [ ] `examples`: Review all examples, add more and better code explanations
- [ ] Software renderer backend? Maybe using `Image` provided API
[DONE] LUA scripting support (raylib lua wrapper)
[DONE] Redesigned audio module
**raylib 4.x**
- [x] Split core module into separate platforms?
- [x] Redesign gestures system, improve touch inputs management
- [x] Redesign camera module (more flexible) ([#1143](https://github.com/raysan5/raylib/issues/1143), https://github.com/raysan5/raylib/discussions/2507)
- [x] Better documentation and improved examples, reviewed webpage with examples complexity level
- [x] Focus on HTML5 ([raylib 5k gamejam](https://itch.io/jam/raylib-5k-gamejam)) and embedded platforms (RPI and similar SOCs)
- [x] Additional support libraries: [raygui](https://github.com/raysan5/raygui), [rres](https://github.com/raysan5/rres)
raylib 1.5
[DONE] Support Oculus Rift CV1 and VR stereo rendering (simulator)
[DONE] Redesign Shaders/Textures system -> New Materials system
[DONE] Support lighting: Omni, Directional and Spot lights
[DONE] Redesign physics module (physac)
[DONE] Chiptunes audio modules support
**raylib 4.0**
- [x] Improved consistency and coherency in raylib API
- [x] Continuous Deployment using GitHub Actions
- [x] rlgl improvements for standalone usage (avoid raylib coupling)
- Basic CPU/GPU stats system (memory, draws, time...) ([#1295](https://github.com/raysan5/raylib/issues/1295)) - _DISCARDED_
- Software rendering backend (avoiding OpenGL) ([#1370](https://github.com/raysan5/raylib/issues/1370)) - _DISCARDED_
- Network module (UDP): `rnet` ([#753](https://github.com/raysan5/raylib/issues/753)) - _DISCARDED_ - Use [nbnet](https://github.com/nathhB/nbnet).
raylib 1.4
**raylib 3.0**
- [x] Custom memory allocators support
- [x] Global variables moved to global context
- [x] Optimize data structures for pass-by-value
- [x] Trace log messages redesign ([#1065](https://github.com/raysan5/raylib/issues/1065))
- [x] Continuous Integration using GitHub Actions
[DONE] TTF fonts support (using stb_truetype)
[DONE] Raycast system for 3D picking (including collisions detection)
[DONE] Floyd-Steinberg dithering on 16bit image format conversion
[DONE] Basic image manipulation functions (crop, resize, draw...)
[DONE] Storage load/save data functionality
[DONE] Add Physics module (physac)
[DONE] Remove GLEW dependency -> Replaced by GLAD
[DONE] Redesign Raspberry PI inputs system
[DONE] Redesign gestures module to be multiplatform
[DONE] Module raymath as header-only and functions inline
[DONE] Add Easings module (easings.h)
**raylib 2.5**
- [x] Support Animated models
- [x] Support glTF models file format
- [x] Unicode support on text drawing
Any feature missing? Do you have a request? [Let me know!][raysan5]
**raylib 2.0**
- [x] Removed external dependencies (GLFW3 and OpenAL)
- [x] Support TCC compiler (32bit and 64bit)
[raysan5]: mailto:raysan5@gmail.com "Ramon Santamaria - Ray San"
[isssues]: https://github.com/raysan5/raylib/issues
**raylib 1.8**
- [x] Improved Materials system with PBR support
- [x] Procedural image generation functions (spot, gradient, noise...)
- [x] Procedural mesh generation functions (cube, sphere...)
- [x] Custom Android APK build pipeline (default Makefile)
**raylib 1.7**
- [x] Support configuration flags
- [x] Improved build system for Android
- [x] Gamepad support on HTML5
**raylib 1.6**
- [x] Lua scripting support (raylib Lua wrapper)
- [x] Redesigned audio module
- [x] Support FLAC file format
**raylib 1.5**
- [x] Support Oculus Rift CV1 and VR stereo rendering (simulator)
- [x] Redesign Shaders/Textures system -> New Materials system
- [x] Support lighting: Omni, Directional and Spot lights
- [x] Redesign physics module (physac)
- [x] Chiptunes audio modules support
**raylib 1.4**
- [x] TTF fonts support (using stb_truetype)
- [x] Raycast system for 3D picking (including collisions detection)
- [x] Floyd-Steinberg dithering on 16bit image format conversion
- [x] Basic image manipulation functions (crop, resize, draw...)
- [x] Storage load/save data functionality
- [x] Add Physics module (physac)
- [x] Remove GLEW dependency -> Replaced by GLAD
- [x] Redesign Raspberry PI inputs system
- [x] Redesign gestures module to be multiplatform
- [x] Module raymath as header-only and functions inline
- [x] Add Easings module (easings.h)
+7
View File
@@ -0,0 +1,7 @@
const std = @import("std");
const raylib = @import("src/build.zig");
// This has been tested to work with zig 0.11.0
pub fn build(b: *std.Build) void {
raylib.build(b);
}
+12
View File
@@ -0,0 +1,12 @@
include(CheckCCompilerFlag)
function(add_if_flag_compiles flag)
CHECK_C_COMPILER_FLAG("${flag}" COMPILER_HAS_THOSE_TOGGLES)
set(outcome "Failed")
if(COMPILER_HAS_THOSE_TOGGLES)
foreach(var ${ARGN})
set(${var} "${flag} ${${var}}" PARENT_SCOPE)
endforeach()
set(outcome "compiles")
endif()
message(STATUS "Testing if ${flag} can be used -- ${outcome}")
endfunction()
+18
View File
@@ -0,0 +1,18 @@
if(${PLATFORM} MATCHES "Desktop" AND APPLE)
if(MACOS_FATLIB)
if (CMAKE_OSX_ARCHITECTURES)
message(FATAL_ERROR "User supplied -DCMAKE_OSX_ARCHITECTURES overrides -DMACOS_FATLIB=ON")
else()
set(CMAKE_OSX_ARCHITECTURES "x86_64;i386")
endif()
endif()
endif()
# This helps support the case where emsdk toolchain file is used
# either by setting it with -DCMAKE_TOOLCHAIN_FILE=<path_to_emsdk>/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake
# or by using "emcmake cmake -B build -S ." as described in https://emscripten.org/docs/compiling/Building-Projects.html
if(EMSCRIPTEN)
SET(PLATFORM Web CACHE STRING "Forcing PLATFORM_WEB because EMSCRIPTEN was detected")
endif()
# vim: ft=cmake
+121
View File
@@ -0,0 +1,121 @@
# Adding compile definitions
target_compile_definitions("raylib" PUBLIC "${PLATFORM_CPP}")
target_compile_definitions("raylib" PUBLIC "${GRAPHICS}")
function(define_if target variable)
if (${${variable}})
message(STATUS "${variable}=${${variable}}")
target_compile_definitions(${target} PUBLIC "${variable}")
endif ()
endfunction()
if (${CUSTOMIZE_BUILD})
target_compile_definitions("raylib" PUBLIC EXTERNAL_CONFIG_FLAGS)
define_if("raylib" USE_AUDIO)
define_if("raylib" SUPPORT_MODULE_RSHAPES)
define_if("raylib" SUPPORT_MODULE_RTEXTURES)
define_if("raylib" SUPPORT_MODULE_RTEXT)
define_if("raylib" SUPPORT_MODULE_RMODELS)
define_if("raylib" SUPPORT_MODULE_RAUDIO)
define_if("raylib" SUPPORT_CAMERA_SYSTEM)
define_if("raylib" SUPPORT_GESTURES_SYSTEM)
define_if("raylib" SUPPORT_MOUSE_GESTURES)
define_if("raylib" SUPPORT_SSH_KEYBOARD_RPI)
define_if("raylib" SUPPORT_DEFAULT_FONT)
define_if("raylib" SUPPORT_SCREEN_CAPTURE)
define_if("raylib" SUPPORT_GIF_RECORDING)
define_if("raylib" SUPPORT_BUSY_WAIT_LOOP)
define_if("raylib" SUPPORT_EVENTS_WAITING)
define_if("raylib" SUPPORT_WINMM_HIGHRES_TIMER)
define_if("raylib" SUPPORT_COMPRESSION_API)
define_if("raylib" SUPPORT_EVENTS_AUTOMATION)
define_if("raylib" SUPPORT_CUSTOM_FRAME_CONTROL)
define_if("raylib" SUPPORT_QUADS_DRAW_MODE)
define_if("raylib" SUPPORT_IMAGE_EXPORT)
define_if("raylib" SUPPORT_IMAGE_GENERATION)
define_if("raylib" SUPPORT_IMAGE_MANIPULATION)
define_if("raylib" SUPPORT_FILEFORMAT_PNG)
define_if("raylib" SUPPORT_FILEFORMAT_DDS)
define_if("raylib" SUPPORT_FILEFORMAT_HDR)
define_if("raylib" SUPPORT_FILEFORMAT_PIC)
define_if("raylib" SUPPORT_FILEFORMAT_PNM)
define_if("raylib" SUPPORT_FILEFORMAT_KTX)
define_if("raylib" SUPPORT_FILEFORMAT_ASTC)
define_if("raylib" SUPPORT_FILEFORMAT_BMP)
define_if("raylib" SUPPORT_FILEFORMAT_TGA)
define_if("raylib" SUPPORT_FILEFORMAT_JPG)
define_if("raylib" SUPPORT_FILEFORMAT_GIF)
define_if("raylib" SUPPORT_FILEFORMAT_QOI)
define_if("raylib" SUPPORT_FILEFORMAT_PSD)
define_if("raylib" SUPPORT_FILEFORMAT_PKM)
define_if("raylib" SUPPORT_FILEFORMAT_PVR)
define_if("raylib" SUPPORT_FILEFORMAT_SVG)
define_if("raylib" SUPPORT_FILEFORMAT_FNT)
define_if("raylib" SUPPORT_FILEFORMAT_TTF)
define_if("raylib" SUPPORT_TEXT_MANIPULATION)
define_if("raylib" SUPPORT_MESH_GENERATION)
define_if("raylib" SUPPORT_FILEFORMAT_OBJ)
define_if("raylib" SUPPORT_FILEFORMAT_MTL)
define_if("raylib" SUPPORT_FILEFORMAT_IQM)
define_if("raylib" SUPPORT_FILEFORMAT_GLTF)
define_if("raylib" SUPPORT_FILEFORMAT_VOX)
define_if("raylib" SUPPORT_FILEFORMAT_M3D)
define_if("raylib" SUPPORT_FILEFORMAT_WAV)
define_if("raylib" SUPPORT_FILEFORMAT_OGG)
define_if("raylib" SUPPORT_FILEFORMAT_XM)
define_if("raylib" SUPPORT_FILEFORMAT_MOD)
define_if("raylib" SUPPORT_FILEFORMAT_MP3)
define_if("raylib" SUPPORT_FILEFORMAT_QOA)
define_if("raylib" SUPPORT_FILEFORMAT_FLAC)
define_if("raylib" SUPPORT_STANDARD_FILEIO)
define_if("raylib" SUPPORT_TRACELOG)
if (UNIX AND NOT APPLE)
target_compile_definitions("raylib" PUBLIC "MAX_FILEPATH_LENGTH=4096")
else ()
target_compile_definitions("raylib" PUBLIC "MAX_FILEPATH_LENGTH=512")
endif ()
target_compile_definitions("raylib" PUBLIC "MAX_GAMEPADS=4")
target_compile_definitions("raylib" PUBLIC "MAX_GAMEPAD_AXIS=8")
target_compile_definitions("raylib" PUBLIC "MAX_GAMEPAD_BUTTONS=32")
target_compile_definitions("raylib" PUBLIC "MAX_TOUCH_POINTS=10")
target_compile_definitions("raylib" PUBLIC "MAX_KEY_PRESSED_QUEUE=16")
target_compile_definitions("raylib" PUBLIC "STORAGE_DATA_FILE=\"storage.data\"")
target_compile_definitions("raylib" PUBLIC "MAX_CHAR_PRESSED_QUEUE=16")
target_compile_definitions("raylib" PUBLIC "MAX_DECOMPRESSION_SIZE=64")
if (${GRAPHICS} MATCHES "GRAPHICS_API_OPENGL_33" OR ${GRAPHICS} MATCHES "GRAPHICS_API_OPENGL_11")
target_compile_definitions("raylib" PUBLIC "DEFAULT_BATCH_BUFFER_ELEMENTS=8192")
elseif (${GRAPHICS} MATCHES "GRAPHICS_API_OPENGL_ES2")
target_compile_definitions("raylib" PUBLIC "DEFAULT_BATCH_BUFFER_ELEMENTS=2048")
endif ()
target_compile_definitions("raylib" PUBLIC "DEFAULT_BATCH_DRAWCALLS=256")
target_compile_definitions("raylib" PUBLIC "MAX_MATRIX_STACK_SIZE=32")
target_compile_definitions("raylib" PUBLIC "MAX_SHADER_LOCATIONS=32")
target_compile_definitions("raylib" PUBLIC "MAX_MATERIAL_MAPS=12")
target_compile_definitions("raylib" PUBLIC "RL_CULL_DISTANCE_NEAR=0.01")
target_compile_definitions("raylib" PUBLIC "RL_CULL_DISTANCE_FAR=1000.0")
target_compile_definitions("raylib" PUBLIC "DEFAULT_SHADER_ATTRIB_NAME_POSITION=\"vertexPosition\"")
target_compile_definitions("raylib" PUBLIC "DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD=\"vertexTexCoord\"")
target_compile_definitions("raylib" PUBLIC "DEFAULT_SHADER_ATTRIB_NAME_NORMAL=\"vertexNormal\"")
target_compile_definitions("raylib" PUBLIC "DEFAULT_SHADER_ATTRIB_NAME_COLOR=\"vertexColor\"")
target_compile_definitions("raylib" PUBLIC "DEFAULT_SHADER_ATTRIB_NAME_TANGENT=\"vertexTangent\"")
target_compile_definitions("raylib" PUBLIC "DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2=\"vertexTexCoord2\"")
target_compile_definitions("raylib" PUBLIC "MAX_TEXT_BUFFER_LENGTH=1024")
target_compile_definitions("raylib" PUBLIC "MAX_TEXT_UNICODE_CHARS=512")
target_compile_definitions("raylib" PUBLIC "MAX_TEXTSPLIT_COUNT=128")
target_compile_definitions("raylib" PUBLIC "AUDIO_DEVICE_FORMAT=ma_format_f32")
target_compile_definitions("raylib" PUBLIC "AUDIO_DEVICE_CHANNELS=2")
target_compile_definitions("raylib" PUBLIC "AUDIO_DEVICE_SAMPLE_RATE=44100")
target_compile_definitions("raylib" PUBLIC "DEFAULT_AUDIO_BUFFER_SIZE=4096")
target_compile_definitions("raylib" PUBLIC "MAX_TRACELOG_MSG_LENGTH=128")
target_compile_definitions("raylib" PUBLIC "MAX_UWP_MESSAGES=512")
endif ()
+79
View File
@@ -0,0 +1,79 @@
include(AddIfFlagCompiles)
# Makes +/- operations on void pointers be considered an error
# https://gcc.gnu.org/onlinedocs/gcc/Pointer-Arith.html
add_if_flag_compiles(-Werror=pointer-arith CMAKE_C_FLAGS)
# Generates error whenever a function is used before being declared
# https://gcc.gnu.org/onlinedocs/gcc-4.0.1/gcc/Warning-Options.html
add_if_flag_compiles(-Werror=implicit-function-declaration CMAKE_C_FLAGS)
# Allows some casting of pointers without generating a warning
add_if_flag_compiles(-fno-strict-aliasing CMAKE_C_FLAGS)
if (ENABLE_MSAN AND ENABLE_ASAN)
# MSAN and ASAN both work on memory - ASAN does more things
MESSAGE(WARNING "Compiling with both AddressSanitizer and MemorySanitizer is not recommended")
endif()
if (ENABLE_ASAN)
# If enabled it would generate errors/warnings for all kinds of memory errors
# (like returning a stack variable by reference)
# https://clang.llvm.org/docs/AddressSanitizer.html
add_if_flag_compiles(-fno-omit-frame-pointer CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
add_if_flag_compiles(-fsanitize=address CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
endif()
if (ENABLE_UBSAN)
# If enabled this will generate errors for undefined behavior points
# (like adding +1 to the maximum int value)
# https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
add_if_flag_compiles(-fno-omit-frame-pointer CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
add_if_flag_compiles(-fsanitize=undefined CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
endif()
if (ENABLE_MSAN)
# If enabled this will generate warnings for places where uninitialized memory is used
# https://clang.llvm.org/docs/MemorySanitizer.html
add_if_flag_compiles(-fno-omit-frame-pointer CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
add_if_flag_compiles(-fsanitize=memory CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
endif()
if(CMAKE_VERSION VERSION_LESS "3.1")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
add_if_flag_compiles(-std=gnu99 CMAKE_C_FLAGS)
endif()
else()
set (CMAKE_C_STANDARD 99)
endif()
if(${PLATFORM} MATCHES "Android")
# If enabled will remove dead code during the linking process
# https://gcc.gnu.org/onlinedocs/gnat_ugn/Compilation-options.html
add_if_flag_compiles(-ffunction-sections CMAKE_C_FLAGS)
# If enabled will generate some exception data (usually disabled for C programs)
# https://gcc.gnu.org/onlinedocs/gcc-4.2.4/gcc/Code-Gen-Options.html
add_if_flag_compiles(-funwind-tables CMAKE_C_FLAGS)
# If enabled adds stack protection guards around functions that allocate memory
# https://www.keil.com/support/man/docs/armclang_ref/armclang_ref_cjh1548250046139.htm
add_if_flag_compiles(-fstack-protector-strong CMAKE_C_FLAGS)
# Marks that the library will not be compiled with an executable stack
add_if_flag_compiles(-Wa,--noexecstack CMAKE_C_FLAGS)
# Do not expand symbolic links or resolve paths like "/./" or "/../", etc.
# https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html
add_if_flag_compiles(-no-canonical-prefixes CMAKE_C_FLAGS)
endif()
+9
View File
@@ -0,0 +1,9 @@
macro(enum_option var values description)
set(${var}_VALUES ${values})
list(GET ${var}_VALUES 0 default)
set(${var} "${default}" CACHE STRING "${description}")
set_property(CACHE ${var} PROPERTY STRINGS ${${var}_VALUES})
if (NOT ";${${var}_VALUES};" MATCHES ";${${var}};")
message(FATAL_ERROR "Unknown value ${${var}}. Only -D${var}=${${var}_VALUES} allowed.")
endif()
endmacro()
+36
View File
@@ -0,0 +1,36 @@
if(USE_EXTERNAL_GLFW STREQUAL "ON")
find_package(glfw3 3.3.3 REQUIRED)
elseif(USE_EXTERNAL_GLFW STREQUAL "IF_POSSIBLE")
find_package(glfw3 3.3.3 QUIET)
endif()
if (glfw3_FOUND)
set(LIBS_PRIVATE ${LIBS_PRIVATE} glfw)
endif()
# Explicitly check against "ON", because USE_EXTERNAL_GLFW is a tristate option
# Also adding only on desktop (web also uses glfw but it is more limited and is added using an emcc linker flag)
if(NOT glfw3_FOUND AND NOT USE_EXTERNAL_GLFW STREQUAL "ON" AND "${PLATFORM}" MATCHES "Desktop")
MESSAGE(STATUS "Using raylib's GLFW")
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(GLFW_INSTALL OFF CACHE BOOL "" FORCE)
set(GLFW_USE_WAYLAND ${USE_WAYLAND} CACHE BOOL "" FORCE)
set(WAS_SHARED ${BUILD_SHARED_LIBS})
set(BUILD_SHARED_LIBS OFF CACHE BOOL " " FORCE)
add_subdirectory(external/glfw)
set(BUILD_SHARED_LIBS ${WAS_SHARED} CACHE BOOL " " FORCE)
unset(WAS_SHARED)
list(APPEND raylib_sources $<TARGET_OBJECTS:glfw>)
include_directories(BEFORE SYSTEM external/glfw/include)
elseif("${PLATFORM}" STREQUAL "DRM")
MESSAGE(STATUS "No GLFW required on PLATFORM_DRM")
else()
MESSAGE(STATUS "Using external GLFW")
set(GLFW_PKG_DEPS glfw3)
endif()
+28
View File
@@ -0,0 +1,28 @@
install(
TARGETS raylib EXPORT raylib-targets
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
)
# PKG_CONFIG_LIBS_PRIVATE is used in raylib.pc.in
if (NOT BUILD_SHARED_LIBS)
include(LibraryPathToLinkerFlags)
set(PKG_CONFIG_LIBS_PRIVATE ${GLFW_PKG_LIBS})
string(REPLACE ";" " " PKG_CONFIG_LIBS_PRIVATE "${PKG_CONFIG_LIBS_PRIVATE}")
elseif (BUILD_SHARED_LIBS)
set(PKG_CONFIG_LIBS_EXTRA "")
endif ()
join_paths(libdir_for_pc_file "\${exec_prefix}" "${CMAKE_INSTALL_LIBDIR}")
join_paths(includedir_for_pc_file "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
configure_file(../raylib.pc.in raylib.pc @ONLY)
configure_file(../cmake/raylib-config-version.cmake raylib-config-version.cmake @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/raylib.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/raylib-config-version.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/raylib")
install(FILES ${PROJECT_SOURCE_DIR}/../cmake/raylib-config.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/raylib")
# populates raylib_{FOUND, INCLUDE_DIRS, LIBRARIES, LDFLAGS, DEFINITIONS}
include(PopulateConfigVariablesLocally)
populate_config_variables_locally(raylib)
+26
View File
@@ -0,0 +1,26 @@
# This module provides function for joining paths
# known from most languages
#
# Original license:
# SPDX-License-Identifier: (MIT OR CC0-1.0)
# Explicit permission given to distribute this module under
# the terms of the project as described in /LICENSE.rst.
# Copyright 2020 Jan Tojnar
# https://github.com/jtojnar/cmake-snips
#
# Modelled after Pythons os.path.join
# https://docs.python.org/3.7/library/os.path.html#os.path.join
# Windows not supported
function(join_paths joined_path first_path_segment)
set(temp_path "${first_path_segment}")
foreach(current_segment IN LISTS ARGN)
if(NOT ("${current_segment}" STREQUAL ""))
if(IS_ABSOLUTE "${current_segment}")
set(temp_path "${current_segment}")
else()
set(temp_path "${temp_path}/${current_segment}")
endif()
endif()
endforeach()
set(${joined_path} "${temp_path}" PARENT_SCOPE)
endfunction()
+124
View File
@@ -0,0 +1,124 @@
# Set OpenGL_GL_PREFERENCE to new "GLVND" even when legacy library exists and
# cmake is <= 3.10
#
# See https://cmake.org/cmake/help/latest/policy/CMP0072.html for more
# information.
if(POLICY CMP0072)
cmake_policy(SET CMP0072 NEW)
endif()
if (${PLATFORM} MATCHES "Desktop")
set(PLATFORM_CPP "PLATFORM_DESKTOP")
if (APPLE)
# Need to force OpenGL 3.3 on OS X
# See: https://github.com/raysan5/raylib/issues/341
set(GRAPHICS "GRAPHICS_API_OPENGL_33")
find_library(OPENGL_LIBRARY OpenGL)
set(LIBS_PRIVATE ${OPENGL_LIBRARY})
link_libraries("${LIBS_PRIVATE}")
if (NOT CMAKE_SYSTEM STRLESS "Darwin-18.0.0")
add_definitions(-DGL_SILENCE_DEPRECATION)
MESSAGE(AUTHOR_WARNING "OpenGL is deprecated starting with macOS 10.14 (Mojave)!")
endif ()
elseif (WIN32)
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
find_package(OpenGL QUIET)
set(LIBS_PRIVATE ${OPENGL_LIBRARIES} winmm)
elseif (UNIX)
find_library(pthread NAMES pthread)
find_package(OpenGL QUIET)
if ("${OPENGL_LIBRARIES}" STREQUAL "")
set(OPENGL_LIBRARIES "GL")
endif ()
if ("${CMAKE_SYSTEM_NAME}" MATCHES "(Net|Open)BSD")
find_library(OSS_LIBRARY ossaudio)
endif ()
set(LIBS_PRIVATE m pthread ${OPENGL_LIBRARIES} ${OSS_LIBRARY})
else ()
find_library(pthread NAMES pthread)
find_package(OpenGL QUIET)
if ("${OPENGL_LIBRARIES}" STREQUAL "")
set(OPENGL_LIBRARIES "GL")
endif ()
set(LIBS_PRIVATE m atomic pthread ${OPENGL_LIBRARIES} ${OSS_LIBRARY})
if ("${CMAKE_SYSTEM_NAME}" MATCHES "(Net|Open)BSD")
find_library(OSS_LIBRARY ossaudio)
set(LIBS_PRIVATE m pthread ${OPENGL_LIBRARIES} ${OSS_LIBRARY})
endif ()
if (NOT "${CMAKE_SYSTEM_NAME}" MATCHES "(Net|Open)BSD" AND USE_AUDIO)
set(LIBS_PRIVATE ${LIBS_PRIVATE} dl)
endif ()
endif ()
elseif (${PLATFORM} MATCHES "Web")
set(PLATFORM_CPP "PLATFORM_WEB")
set(GRAPHICS "GRAPHICS_API_OPENGL_ES2")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -s USE_GLFW=3 -s ASSERTIONS=1 --profiling")
set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
elseif (${PLATFORM} MATCHES "Android")
set(PLATFORM_CPP "PLATFORM_ANDROID")
set(GRAPHICS "GRAPHICS_API_OPENGL_ES2")
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
list(APPEND raylib_sources ${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c)
include_directories(${ANDROID_NDK}/sources/android/native_app_glue)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--exclude-libs,libatomic.a -Wl,--build-id -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings -u ANativeActivity_onCreate -Wl,-undefined,dynamic_lookup")
find_library(OPENGL_LIBRARY OpenGL)
set(LIBS_PRIVATE m log android EGL GLESv2 OpenSLES atomic c)
elseif ("${PLATFORM}" MATCHES "DRM")
set(PLATFORM_CPP "PLATFORM_DRM")
set(GRAPHICS "GRAPHICS_API_OPENGL_ES2")
add_definitions(-D_DEFAULT_SOURCE)
add_definitions(-DEGL_NO_X11)
add_definitions(-DPLATFORM_DRM)
find_library(GLESV2 GLESv2)
find_library(EGL EGL)
find_library(DRM drm)
find_library(GBM gbm)
if (NOT CMAKE_CROSSCOMPILING)
include_directories(/usr/include/libdrm)
endif ()
set(LIBS_PRIVATE ${GLESV2} ${EGL} ${DRM} ${GBM} atomic pthread m dl)
endif ()
if (NOT ${OPENGL_VERSION} MATCHES "OFF")
set(${SUGGESTED_GRAPHICS} "${GRAPHICS}")
if (${OPENGL_VERSION} MATCHES "4.3")
set(GRAPHICS "GRAPHICS_API_OPENGL_43")
elseif (${OPENGL_VERSION} MATCHES "3.3")
set(GRAPHICS "GRAPHICS_API_OPENGL_33")
elseif (${OPENGL_VERSION} MATCHES "2.1")
set(GRAPHICS "GRAPHICS_API_OPENGL_21")
elseif (${OPENGL_VERSION} MATCHES "1.1")
set(GRAPHICS "GRAPHICS_API_OPENGL_11")
elseif (${OPENGL_VERSION} MATCHES "ES 2.0")
set(GRAPHICS "GRAPHICS_API_OPENGL_ES2")
elseif (${OPENGL_VERSION} MATCHES "ES 3.0")
set(GRAPHICS "GRAPHICS_API_OPENGL_ES3")
endif ()
if ("${SUGGESTED_GRAPHICS}" AND NOT "${SUGGESTED_GRAPHICS}" STREQUAL "${GRAPHICS}")
message(WARNING "You are overriding the suggested GRAPHICS=${SUGGESTED_GRAPHICS} with ${GRAPHICS}! This may fail")
endif ()
endif ()
if (NOT GRAPHICS)
set(GRAPHICS "GRAPHICS_API_OPENGL_33")
endif ()
set(LIBS_PRIVATE ${LIBS_PRIVATE} ${OPENAL_LIBRARY})
if (${PLATFORM} MATCHES "Desktop")
set(LIBS_PRIVATE ${LIBS_PRIVATE} glfw)
endif ()
+24
View File
@@ -0,0 +1,24 @@
function(library_path_to_linker_flags LD_FLAGS LIB_PATHS)
foreach(L ${LIB_PATHS})
get_filename_component(DIR ${L} PATH)
get_filename_component(LIBFILE ${L} NAME_WE)
STRING(REGEX REPLACE "^lib" "" FILE ${LIBFILE})
if (${L} MATCHES "[.]framework$")
set(FILE_OPT "-framework ${FILE}")
set(DIR_OPT "-F${DIR}")
else()
set(FILE_OPT "-l${FILE}")
set(DIR_OPT "-L${DIR}")
endif()
if ("${DIR}" STREQUAL "" OR "${DIR}" STREQUAL "${LASTDIR}")
set (DIR_OPT "")
endif()
set(LASTDIR ${DIR})
set(${LD_FLAGS} ${${LD_FLAGS}} ${DIR_OPT} ${FILE_OPT} PARENT_SCOPE)
string (REPLACE ";" " " ${LD_FLAGS} "${${LD_FLAGS}}")
endforeach()
endfunction()
+18
View File
@@ -0,0 +1,18 @@
# Packaging
SET(CPACK_PACKAGE_NAME "raylib")
SET(CPACK_PACKAGE_CONTACT "raysan5")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Simple and easy-to-use library to enjoy videogames programming")
SET(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
SET(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
SET(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
SET(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/../README.md")
SET(CPACK_RESOURCE_FILE_WELCOME "${PROJECT_SOURCE_DIR}/../README.md")
SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/../LICENSE")
SET(CPACK_PACKAGE_FILE_NAME "raylib-${PROJECT_VERSION}$ENV{RAYLIB_PACKAGE_SUFFIX}")
SET(CPACK_GENERATOR "ZIP;TGZ;DEB;RPM") # Remove this, if you want the NSIS installer on Windows
SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) # can be used to generate deps, slow and requires tools.
SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libatomic1, libc6, libglfw3, libglu1-mesa | libglu1, libglx0, libopengl0")
SET(CPACK_DEBIAN_PACKAGE_NAME "lib${CPACK_PACKAGE_NAME}-dev")
SET(CPACK_RPM_PACKAGE_NAME "lib${CPACK_PACKAGE_NAME}-devel")
include(CPack)
@@ -0,0 +1,11 @@
macro(populate_config_variables_locally target)
get_property(raylib_INCLUDE_DIRS TARGET ${target} PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
#get_property(raylib_LIBRARIES TARGET ${target} PROPERTY LOCATION) # only works for SHARED
get_property(raylib_LDFLAGS TARGET ${target} PROPERTY INTERFACE_LINK_LIBRARIES)
get_property(raylib_DEFINITIONS TARGET ${target} PROPERTY DEFINITIONS)
set(raylib_INCLUDE_DIRS "${raylib_INCLUDE_DIRS}" PARENT_SCOPE)
#set(raylib_LIBRARIES "${raylib_INCLUDE_DIRS}" PARENT_SCOPE)
set(raylib_LDFLAGS "${raylib_LDFLAGS}" PARENT_SCOPE)
set(raylib_DEFINITIONS "${raylib_DEFINITIONS}" PARENT_SCOPE)
endmacro()
+21
View File
@@ -0,0 +1,21 @@
if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt")
endif()
file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
string(REGEX REPLACE "\n" ";" files "${files}")
foreach(file ${files})
message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
exec_program(
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
OUTPUT_VARIABLE rm_out
RETURN_VALUE rm_retval
)
if(NOT "${rm_retval}" STREQUAL 0)
message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
endif()
else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
endif()
endforeach()
+21
View File
@@ -0,0 +1,21 @@
set(PACKAGE_VERSION "@PROJECT_VERSION@")
if(PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION)
set(PACKAGE_VERSION_EXACT TRUE)
endif()
if(NOT PACKAGE_FIND_VERSION VERSION_GREATER PACKAGE_VERSION)
set(PACKAGE_VERSION_COMPATIBLE TRUE)
else(NOT PACKAGE_FIND_VERSION VERSION_GREATER PACKAGE_VERSION)
set(PACKAGE_VERSION_UNSUITABLE TRUE)
endif(NOT PACKAGE_FIND_VERSION VERSION_GREATER PACKAGE_VERSION)
# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "")
return()
endif()
if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "@CMAKE_SIZEOF_VOID_P@")
math(EXPR installedBits "8 * 8")
set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
set(PACKAGE_VERSION_UNSUITABLE TRUE)
endif()
+79
View File
@@ -0,0 +1,79 @@
# - Try to find raylib
# Options:
# raylib_USE_STATIC_LIBS - OFF by default
# raylib_VERBOSE - OFF by default
# Once done, this defines a raylib target that can be passed to
# target_link_libraries as well as following variables:
#
# raylib_FOUND - System has raylib installed
# raylib_INCLUDE_DIRS - The include directories for the raylib header(s)
# raylib_LIBRARIES - The libraries needed to use raylib
# raylib_LDFLAGS - The linker flags needed with raylib
# raylib_DEFINITIONS - Compiler switches required for using raylib
if (NOT TARGET raylib)
set(XPREFIX PC_RAYLIB)
find_package(PkgConfig QUIET)
pkg_check_modules(${XPREFIX} QUIET raylib)
if (raylib_USE_STATIC_LIBS)
set(XPREFIX ${XPREFIX}_STATIC)
endif()
set(raylib_DEFINITIONS ${${XPREFIX}_CFLAGS})
find_path(raylib_INCLUDE_DIR
NAMES raylib.h
HINTS ${${XPREFIX}_INCLUDE_DIRS}
)
set(RAYLIB_NAMES raylib)
if (raylib_USE_STATIC_LIBS)
set(RAYLIB_NAMES libraylib.a raylib.lib ${RAYLIB_NAMES})
endif()
find_library(raylib_LIBRARY
NAMES ${RAYLIB_NAMES}
HINTS ${${XPREFIX}_LIBRARY_DIRS}
)
set(raylib_LIBRARIES ${raylib_LIBRARY})
set(raylib_LIBRARY_DIRS ${${XPREFIX}_LIBRARY_DIRS})
set(raylib_LIBRARY_DIR ${raylib_LIBRARY_DIRS})
set(raylib_INCLUDE_DIRS ${raylib_INCLUDE_DIR})
set(raylib_LDFLAGS ${${XPREFIX}_LDFLAGS})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(raylib DEFAULT_MSG
raylib_LIBRARY
raylib_INCLUDE_DIR
)
mark_as_advanced(raylib_LIBRARY raylib_INCLUDE_DIR)
if (raylib_USE_STATIC_LIBS)
add_library(raylib STATIC IMPORTED GLOBAL)
else()
add_library(raylib SHARED IMPORTED GLOBAL)
endif()
string (REPLACE ";" " " raylib_LDFLAGS "${raylib_LDFLAGS}")
set_target_properties(raylib
PROPERTIES
IMPORTED_LOCATION "${raylib_LIBRARIES}"
IMPORTED_IMPLIB "${raylib_LIBRARIES}"
INTERFACE_INCLUDE_DIRECTORIES "${raylib_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${raylib_LDFLAGS}"
INTERFACE_COMPILE_OPTIONS "${raylib_DEFINITIONS}"
)
if (raylib_VERBOSE)
message(STATUS "raylib_FOUND: ${raylib_FOUND}")
message(STATUS "raylib_INCLUDE_DIRS: ${raylib_INCLUDE_DIRS}")
message(STATUS "raylib_LIBRARIES: ${raylib_LIBRARIES}")
message(STATUS "raylib_LDFLAGS: ${raylib_LDFLAGS}")
message(STATUS "raylib_DEFINITIONS: ${raylib_DEFINITIONS}")
endif()
endif()
Binary file not shown.

Before

Width:  |  Height:  |  Size: 371 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

+146
View File
@@ -0,0 +1,146 @@
# Setup the project and settings
project(examples)
# Directories that contain examples
set(example_dirs
audio
core
models
others
shaders
shapes
text
textures
)
# Next few lines will check for existence of symbols or header files
# They are needed for the physac example and threads examples
set(CMAKE_REQUIRED_DEFINITIONS -D_POSIX_C_SOURCE=199309L)
include(CheckSymbolExists)
check_symbol_exists(CLOCK_MONOTONIC time.h HAVE_CLOCK_MONOTONIC)
check_symbol_exists(QueryPerformanceCounter windows.h HAVE_QPC)
set(CMAKE_REQUIRED_DEFINITIONS)
if (HAVE_QPC OR HAVE_CLOCK_MONOTONIC)
set(example_dirs ${example_dirs} physac)
endif ()
include(CheckIncludeFile)
CHECK_INCLUDE_FILE("stdatomic.h" HAVE_STDATOMIC_H)
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
find_package(Threads)
if (CMAKE_USE_PTHREADS_INIT AND HAVE_STDATOMIC_H)
add_if_flag_compiles("-std=c11" CMAKE_C_FLAGS)
if (THREADS_HAVE_PTHREAD_ARG)
add_if_flag_compiles("-pthread" CMAKE_C_FLAGS)
endif ()
if (CMAKE_THREAD_LIBS_INIT)
link_libraries("${CMAKE_THREAD_LIBS_INIT}")
endif ()
endif ()
if (APPLE AND NOT CMAKE_SYSTEM STRLESS "Darwin-18.0.0")
add_definitions(-DGL_SILENCE_DEPRECATION)
MESSAGE(AUTHOR_WARNING "OpenGL is deprecated starting with macOS 10.14 (Mojave)!")
endif ()
# Collect all source files and resource files
# into a CMake variable
set(example_sources)
set(example_resources)
foreach (example_dir ${example_dirs})
# Get the .c files
file(GLOB sources ${example_dir}/*.c)
list(APPEND example_sources ${sources})
# Any any resources
file(GLOB resources ${example_dir}/resources/*)
list(APPEND example_resources ${resources})
endforeach ()
if(NOT CMAKE_USE_PTHREADS_INIT OR NOT HAVE_STDATOMIC_H)
# Items requiring pthreads
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_loading_thread.c)
endif ()
if (${PLATFORM} MATCHES "Android")
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/standard_lighting.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_3d_picking.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_vr_simulator.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_3d_camera_free.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_3d_camera_first_person.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_world_screen.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_mesh_picking.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_cubicmap.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_skybox.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_mesh_picking.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_mesh_generation.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_heightmap.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_billboard.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_rlgl_solar_system.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_rlgl_full_solar_system.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_solar_system.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_obj_viewer.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_animation.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_first_person_maze.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_magicavoxel_loading.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_custom_uniform.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_model_shader.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_postprocessing.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_raymarching.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_palette_switch.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_basic_lighting.c)
elseif (${PLATFORM} MATCHES "Web")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Os -s USE_GLFW=3 -s ASSERTIONS=1 -s WASM=1 -s ASYNCIFY")
# Since WASM is used, ALLOW_MEMORY_GROWTH has no extra overheads
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -s ALLOW_MEMORY_GROWTH=1 --no-heap-copy")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --shell-file ${CMAKE_SOURCE_DIR}/src/shell.html")
set(CMAKE_EXECUTABLE_SUFFIX ".html")
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/raylib_opengl_interop.c)
# Remove the -rdynamic flag because otherwise emscripten
# does not generate HTML+JS+WASM files, only a non-working
# and fat HTML
string(REPLACE "-rdynamic" "" CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS}")
elseif ("${PLATFORM}" STREQUAL "DRM")
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/raylib_opengl_interop.c)
endif ()
include_directories(BEFORE SYSTEM others/external/include)
if (NOT TARGET raylib)
find_package(raylib 2.0 REQUIRED)
endif ()
# Do each example
foreach (example_source ${example_sources})
# Create the basename for the example
get_filename_component(example_name ${example_source} NAME)
string(REPLACE ".c" "" example_name ${example_name})
# Setup the example
add_executable(${example_name} ${example_source})
target_link_libraries(${example_name} raylib)
string(REGEX MATCH ".*/.*/" resources_dir ${example_source})
string(APPEND resources_dir "resources")
if (${PLATFORM} MATCHES "Web" AND EXISTS ${resources_dir})
# The local resources path needs to be mapped to /resources virtual path
string(APPEND resources_dir "@resources")
set_target_properties(${example_name} PROPERTIES LINK_FLAGS "--preload-file ${resources_dir}")
endif ()
endforeach ()
# Copy all of the resource files to the destination
file(COPY ${example_resources} DESTINATION "resources/")
+573 -479
View File
File diff suppressed because it is too large Load Diff
+405
View File
@@ -0,0 +1,405 @@
#**************************************************************************************************
#
# raylib makefile for Android project (APK building)
#
# Copyright (c) 2017-2023 Ramon Santamaria (@raysan5)
#
# This software is provided "as-is", without any express or implied warranty. In no event
# will the authors be held liable for any damages arising from the use of this software.
#
# Permission is granted to anyone to use this software for any purpose, including commercial
# applications, and to alter it and redistribute it freely, subject to the following restrictions:
#
# 1. The origin of this software must not be misrepresented; you must not claim that you
# wrote the original software. If you use this software in a product, an acknowledgment
# in the product documentation would be appreciated but is not required.
#
# 2. Altered source versions must be plainly marked as such, and must not be misrepresented
# as being the original software.
#
# 3. This notice may not be removed or altered from any source distribution.
#
#**************************************************************************************************
# Define required raylib variables
PLATFORM ?= PLATFORM_ANDROID
RAYLIB_PATH ?= ..\..
# Define Android architecture (armeabi-v7a, arm64-v8a, x86, x86-64) and API version
# Starting in 2019 using ARM64 is mandatory for published apps,
# Starting on August 2020, minimum required target API is Android 10 (API level 29)
ANDROID_ARCH ?= ARM64
ANDROID_API_VERSION = 29
# Android required path variables
# NOTE: Starting with Android NDK r21, no more toolchain generation is required, NDK is the toolchain on itself
ifeq ($(OS),Windows_NT)
ANDROID_NDK = C:/android-ndk
ANDROID_TOOLCHAIN = $(ANDROID_NDK)/toolchains/llvm/prebuilt/windows-x86_64
else
ANDROID_NDK ?= /usr/lib/android/ndk
ANDROID_TOOLCHAIN = $(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64
endif
ifeq ($(ANDROID_ARCH),ARM)
ANDROID_ARCH_NAME = armeabi-v7a
endif
ifeq ($(ANDROID_ARCH),ARM64)
ANDROID_ARCH_NAME = arm64-v8a
endif
ifeq ($(ANDROID_ARCH),x86)
ANDROID_ARCH_NAME = x86
endif
ifeq ($(ANDROID_ARCH),x86_64)
ANDROID_ARCH_NAME = x86_64
endif
# Required path variables
# NOTE: JAVA_HOME must be set to JDK (using OpenJDK 13)
JAVA_HOME ?= C:/open-jdk
ANDROID_HOME ?= C:/android-sdk
ANDROID_BUILD_TOOLS ?= $(ANDROID_HOME)/build-tools/29.0.3
ANDROID_PLATFORM_TOOLS = $(ANDROID_HOME)/platform-tools
# Android project configuration variables
PROJECT_NAME ?= raylib_game
PROJECT_LIBRARY_NAME ?= main
PROJECT_BUILD_ID ?= android
PROJECT_BUILD_PATH ?= $(PROJECT_BUILD_ID).$(PROJECT_NAME)
PROJECT_RESOURCES_PATH ?= resources
PROJECT_SOURCE_FILES ?= raylib_game.c
NATIVE_APP_GLUE_PATH = $(ANDROID_NDK)/sources/android/native_app_glue
# Some source files are placed in directories, when compiling to some
# output directory other than source, that directory must pre-exist.
# Here we get a list of required folders that need to be created on
# code output folder $(PROJECT_BUILD_PATH)\obj to avoid GCC errors.
PROJECT_SOURCE_DIRS = $(sort $(dir $(PROJECT_SOURCE_FILES)))
# Android app configuration variables
APP_LABEL_NAME ?= rGame
APP_COMPANY_NAME ?= raylib
APP_PRODUCT_NAME ?= rgame
APP_VERSION_CODE ?= 1
APP_VERSION_NAME ?= 1.0
APP_ICON_LDPI ?= $(RAYLIB_PATH)/logo/raylib_36x36.png
APP_ICON_MDPI ?= $(RAYLIB_PATH)/logo/raylib_48x48.png
APP_ICON_HDPI ?= $(RAYLIB_PATH)/logo/raylib_72x72.png
APP_SCREEN_ORIENTATION ?= landscape
APP_KEYSTORE_PASS ?= raylib
# Library type used for raylib: STATIC (.a) or SHARED (.so/.dll)
RAYLIB_LIBTYPE ?= STATIC
# Library path for libraylib.a/libraylib.so
RAYLIB_LIB_PATH = $(RAYLIB_PATH)/src
# Define copy command depending on OS
ifeq ($(OS),Windows_NT)
COPY_COMMAND ?= copy /Y
else
COPY_COMMAND ?= cp -f
endif
# Shared libs must be added to APK if required
# NOTE: Generated NativeLoader.java automatically load those libraries
ifeq ($(RAYLIB_LIBTYPE),SHARED)
PROJECT_SHARED_LIBS = lib/$(ANDROID_ARCH_NAME)/libraylib.so
endif
# Compiler and archiver
ifeq ($(ANDROID_ARCH),ARM)
CC = $(ANDROID_TOOLCHAIN)/bin/armv7a-linux-androideabi$(ANDROID_API_VERSION)-clang
AR = $(ANDROID_TOOLCHAIN)/bin/arm-linux-androideabi-ar
endif
ifeq ($(ANDROID_ARCH),ARM64)
CC = $(ANDROID_TOOLCHAIN)/bin/aarch64-linux-android$(ANDROID_API_VERSION)-clang
AR = $(ANDROID_TOOLCHAIN)/bin/aarch64-linux-android-ar
endif
ifeq ($(ANDROID_ARCH),x86)
CC = $(ANDROID_TOOLCHAIN)/bin/i686-linux-android$(ANDROID_API_VERSION)-clang
AR = $(ANDROID_TOOLCHAIN)/bin/i686-linux-android-ar
endif
ifeq ($(ANDROID_ARCH),x86_64)
CC = $(ANDROID_TOOLCHAIN)/bin/x86_64-linux-android$(ANDROID_API_VERSION)-clang
AR = $(ANDROID_TOOLCHAIN)/bin/x86_64-linux-android-ar
endif
# Compiler flags for arquitecture
ifeq ($(ANDROID_ARCH),ARM)
CFLAGS = -std=c99 -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16
endif
ifeq ($(ANDROID_ARCH),ARM64)
CFLAGS = -std=c99 -target aarch64 -mfix-cortex-a53-835769
endif
# Compilation functions attributes options
CFLAGS += -ffunction-sections -funwind-tables -fstack-protector-strong -fPIC
# Compiler options for the linker
CFLAGS += -Wall -Wa,--noexecstack -Wformat -Werror=format-security -no-canonical-prefixes
# Preprocessor macro definitions
CFLAGS += -DANDROID -DPLATFORM_ANDROID -D__ANDROID_API__=$(ANDROID_API_VERSION)
# Paths containing required header files
INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(NATIVE_APP_GLUE_PATH)
# Linker options
LDFLAGS = -Wl,-soname,lib$(PROJECT_LIBRARY_NAME).so -Wl,--exclude-libs,libatomic.a
LDFLAGS += -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings
# Force linking of library module to define symbol
LDFLAGS += -u ANativeActivity_onCreate
# Library paths containing required libs
LDFLAGS += -L. -L$(PROJECT_BUILD_PATH)/obj -L$(PROJECT_BUILD_PATH)/lib/$(ANDROID_ARCH_NAME) -L$(ANDROID_TOOLCHAIN)\sysroot\usr\lib
# Define any libraries to link into executable
# if you want to link libraries (libname.so or libname.a), use the -lname
LDLIBS = -lm -lc -lraylib -llog -landroid -lEGL -lGLESv2 -lOpenSLES -ldl
# Generate target objects list from PROJECT_SOURCE_FILES
OBJS = $(patsubst %.c, $(PROJECT_BUILD_PATH)/obj/%.o, $(PROJECT_SOURCE_FILES))
# Android APK building process... some steps required...
# NOTE: typing 'make' will invoke the default target entry called 'all',
all: create_temp_project_dirs \
copy_project_required_libs \
copy_project_resources \
generate_loader_script \
generate_android_manifest \
generate_apk_keystore \
config_project_package \
compile_project_code \
compile_project_class \
compile_project_class_dex \
create_project_apk_package \
zipalign_project_apk_package \
sign_project_apk_package
# Create required temp directories for APK building
create_temp_project_dirs:
ifeq ($(OS),Windows_NT)
if not exist $(PROJECT_BUILD_PATH) mkdir $(PROJECT_BUILD_PATH)
if not exist $(PROJECT_BUILD_PATH)\obj mkdir $(PROJECT_BUILD_PATH)\obj
if not exist $(PROJECT_BUILD_PATH)\obj mkdir $(PROJECT_BUILD_PATH)\obj\src
if not exist $(PROJECT_BUILD_PATH)\src mkdir $(PROJECT_BUILD_PATH)\src
if not exist $(PROJECT_BUILD_PATH)\src\com mkdir $(PROJECT_BUILD_PATH)\src\com
if not exist $(PROJECT_BUILD_PATH)\src\com\$(APP_COMPANY_NAME) mkdir $(PROJECT_BUILD_PATH)\src\com\$(APP_COMPANY_NAME)
if not exist $(PROJECT_BUILD_PATH)\src\com\$(APP_COMPANY_NAME)\$(APP_PRODUCT_NAME) mkdir $(PROJECT_BUILD_PATH)\src\com\$(APP_COMPANY_NAME)\$(APP_PRODUCT_NAME)
if not exist $(PROJECT_BUILD_PATH)\lib mkdir $(PROJECT_BUILD_PATH)\lib
if not exist $(PROJECT_BUILD_PATH)\lib\$(ANDROID_ARCH_NAME) mkdir $(PROJECT_BUILD_PATH)\lib\$(ANDROID_ARCH_NAME)
if not exist $(PROJECT_BUILD_PATH)\bin mkdir $(PROJECT_BUILD_PATH)\bin
if not exist $(PROJECT_BUILD_PATH)\res mkdir $(PROJECT_BUILD_PATH)\res
if not exist $(PROJECT_BUILD_PATH)\res\drawable-ldpi mkdir $(PROJECT_BUILD_PATH)\res\drawable-ldpi
if not exist $(PROJECT_BUILD_PATH)\res\drawable-mdpi mkdir $(PROJECT_BUILD_PATH)\res\drawable-mdpi
if not exist $(PROJECT_BUILD_PATH)\res\drawable-hdpi mkdir $(PROJECT_BUILD_PATH)\res\drawable-hdpi
if not exist $(PROJECT_BUILD_PATH)\res\values mkdir $(PROJECT_BUILD_PATH)\res\values
if not exist $(PROJECT_BUILD_PATH)\assets mkdir $(PROJECT_BUILD_PATH)\assets
if not exist $(PROJECT_BUILD_PATH)\assets\$(PROJECT_RESOURCES_PATH) mkdir $(PROJECT_BUILD_PATH)\assets\$(PROJECT_RESOURCES_PATH)
if not exist $(PROJECT_BUILD_PATH)\obj\screens mkdir $(PROJECT_BUILD_PATH)\obj\screens
else
mkdir -p $(PROJECT_BUILD_PATH)
mkdir -p $(PROJECT_BUILD_PATH)/obj
mkdir -p $(PROJECT_BUILD_PATH)/obj/src
mkdir -p $(PROJECT_BUILD_PATH)/src
mkdir -p $(PROJECT_BUILD_PATH)/src/com
mkdir -p $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)
mkdir -p $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)
mkdir -p $(PROJECT_BUILD_PATH)/lib
mkdir -p $(PROJECT_BUILD_PATH)/lib/$(ANDROID_ARCH_NAME)
mkdir -p $(PROJECT_BUILD_PATH)/bin
mkdir -p $(PROJECT_BUILD_PATH)/res
mkdir -p $(PROJECT_BUILD_PATH)/res/drawable-ldpi
mkdir -p $(PROJECT_BUILD_PATH)/res/drawable-mdpi
mkdir -p $(PROJECT_BUILD_PATH)/res/drawable-hdpi
mkdir -p $(PROJECT_BUILD_PATH)/res/values
mkdir -p $(PROJECT_BUILD_PATH)/assets
mkdir -p $(PROJECT_BUILD_PATH)/assets/$(PROJECT_RESOURCES_PATH)
mkdir -p $(PROJECT_BUILD_PATH)/obj/screens
endif
$(foreach dir, $(PROJECT_SOURCE_DIRS), $(call create_dir, $(dir)))
define create_dir
mkdir -p $(PROJECT_BUILD_PATH)/obj/$(1)
endef
# Copy required shared libs for integration into APK
# NOTE: If using shared libs they are loaded by generated NativeLoader.java
copy_project_required_libs:
ifeq ($(RAYLIB_LIBTYPE),SHARED)
$(COPY_COMMAND) $(RAYLIB_LIB_PATH)/libraylib.so $(PROJECT_BUILD_PATH)/lib/$(ANDROID_ARCH_NAME)/libraylib.so
endif
ifeq ($(RAYLIB_LIBTYPE),STATIC)
$(COPY_COMMAND) $(RAYLIB_LIB_PATH)/libraylib.a $(PROJECT_BUILD_PATH)/lib/$(ANDROID_ARCH_NAME)/libraylib.a
endif
# Copy project required resources: strings.xml, icon.png, assets
# NOTE: Required strings.xml is generated and game resources are copied to assets folder
copy_project_resources:
$(COPY_COMMAND) $(APP_ICON_LDPI) $(PROJECT_BUILD_PATH)/res/drawable-ldpi/icon.png
$(COPY_COMMAND) $(APP_ICON_MDPI) $(PROJECT_BUILD_PATH)/res/drawable-mdpi/icon.png
$(COPY_COMMAND) $(APP_ICON_HDPI) $(PROJECT_BUILD_PATH)/res/drawable-hdpi/icon.png
ifeq ($(OS),Windows_NT)
@echo ^<?xml version="1.0" encoding="utf-8"^?^> > $(PROJECT_BUILD_PATH)/res/values/strings.xml
@echo ^<resources^>^<string name="app_name"^>$(APP_LABEL_NAME)^</string^>^</resources^> >> $(PROJECT_BUILD_PATH)/res/values/strings.xml
if exist $(PROJECT_RESOURCES_PATH) C:\Windows\System32\xcopy $(PROJECT_RESOURCES_PATH) $(PROJECT_BUILD_PATH)\assets\$(PROJECT_RESOURCES_PATH) /Y /E /F
else
@echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>" > $(PROJECT_BUILD_PATH)/res/values/strings.xml
@echo "<resources><string name=\"app_name\">$(APP_LABEL_NAME)</string></resources>" >> $(PROJECT_BUILD_PATH)/res/values/strings.xml
@[ -d "$(PROJECT_RESOURCES_PATH)" ] || cp -rf $(PROJECT_RESOURCES_PATH) $(PROJECT_BUILD_PATH)/assets/$(PROJECT_RESOURCES_PATH)
endif
# Generate NativeLoader.java to load required shared libraries
# NOTE: Probably not the bet way to generate this file... but it works.
generate_loader_script:
ifeq ($(OS),Windows_NT)
@echo package com.$(APP_COMPANY_NAME).$(APP_PRODUCT_NAME); > $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
@echo. >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
@echo public class NativeLoader extends android.app.NativeActivity { >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
@echo static { >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
ifeq ($(RAYLIB_LIBTYPE),SHARED)
@echo System.loadLibrary("raylib"); >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
endif
@echo System.loadLibrary("$(PROJECT_LIBRARY_NAME)"); >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
@echo } >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
@echo } >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
else
@echo "package com.$(APP_COMPANY_NAME).$(APP_PRODUCT_NAME);" > $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
@echo "" >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
@echo "public class NativeLoader extends android.app.NativeActivity {" >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
@echo " static {" >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
ifeq ($(RAYLIB_LIBTYPE),SHARED)
@echo " System.loadLibrary(\"raylib\");" >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
endif
@echo " System.loadLibrary(\"$(PROJECT_LIBRARY_NAME)\");" >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
@echo " }" >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
@echo "}" >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
endif
# Generate AndroidManifest.xml with all the required options
# NOTE: Probably not the bet way to generate this file... but it works.
generate_android_manifest:
ifeq ($(OS),Windows_NT)
@echo ^<?xml version="1.0" encoding="utf-8"^?^> > $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo ^<manifest xmlns:android="http://schemas.android.com/apk/res/android" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo package="com.$(APP_COMPANY_NAME).$(APP_PRODUCT_NAME)" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo android:versionCode="$(APP_VERSION_CODE)" android:versionName="$(APP_VERSION_NAME)" ^> >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo ^<uses-sdk android:minSdkVersion="$(ANDROID_API_VERSION)" /^> >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo ^<uses-feature android:glEsVersion="0x00020000" android:required="true" /^> >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo ^<application android:allowBackup="false" android:label="@string/app_name" android:icon="@drawable/icon" ^> >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo ^<activity android:name="com.$(APP_COMPANY_NAME).$(APP_PRODUCT_NAME).NativeLoader" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo android:configChanges="orientation|keyboardHidden|screenSize" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo android:screenOrientation="$(APP_SCREEN_ORIENTATION)" android:launchMode="singleTask" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo android:clearTaskOnLaunch="true"^> >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo ^<meta-data android:name="android.app.lib_name" android:value="$(PROJECT_LIBRARY_NAME)" /^> >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo ^<intent-filter^> >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo ^<action android:name="android.intent.action.MAIN" /^> >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo ^<category android:name="android.intent.category.LAUNCHER" /^> >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo ^</intent-filter^> >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo ^</activity^> >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo ^</application^> >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo ^</manifest^> >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
else
@echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>" > $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " package=\"com.$(APP_COMPANY_NAME).$(APP_PRODUCT_NAME)\" " >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " android:versionCode=\"$(APP_VERSION_CODE)\" android:versionName=\"$(APP_VERSION_NAME)\" >" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " <uses-sdk android:minSdkVersion=\"$(ANDROID_API_VERSION)\" />" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " <uses-feature android:glEsVersion=\"0x00020000\" android:required=\"true\" />" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " <application android:allowBackup=\"false\" android:label=\"@string/app_name\" android:icon=\"@drawable/icon\" >" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " <activity android:name=\"com.$(APP_COMPANY_NAME).$(APP_PRODUCT_NAME).NativeLoader\"" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " android:theme=\"@android:style/Theme.NoTitleBar.Fullscreen\"" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " android:configChanges=\"orientation|keyboardHidden|screenSize\"" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " android:screenOrientation=\"$(APP_SCREEN_ORIENTATION)\" android:launchMode=\"singleTask\"" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " android:clearTaskOnLaunch=\"true\">" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " <meta-data android:name=\"android.app.lib_name\" android:value=\"$(PROJECT_LIBRARY_NAME)\" />" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " <intent-filter>" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " <action android:name=\"android.intent.action.MAIN\" />" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " <category android:name=\"android.intent.category.LAUNCHER\" />" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " </intent-filter>" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " </activity>" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo " </application>" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
@echo "</manifest>" >> $(PROJECT_BUILD_PATH)/AndroidManifest.xml
endif
# Generate storekey for APK signing: $(PROJECT_NAME).keystore
# NOTE: Configure here your Distinguished Names (-dname) if required!
generate_apk_keystore:
ifeq ($(OS),Windows_NT)
if not exist $(PROJECT_BUILD_PATH)/$(PROJECT_NAME).keystore $(JAVA_HOME)/bin/keytool -genkeypair -validity 10000 -dname "CN=$(APP_COMPANY_NAME),O=Android,C=ES" -keystore $(PROJECT_BUILD_PATH)/$(PROJECT_NAME).keystore -storepass $(APP_KEYSTORE_PASS) -keypass $(APP_KEYSTORE_PASS) -alias $(PROJECT_NAME)Key -keyalg RSA
else
@[ -f "$(PROJECT_BUILD_PATH)/$(PROJECT_NAME).keystore" ] || $(JAVA_HOME)/bin/keytool -genkeypair -validity 10000 -dname "CN=$(APP_COMPANY_NAME),O=Android,C=ES" -keystore $(PROJECT_BUILD_PATH)/$(PROJECT_NAME).keystore -storepass $(APP_KEYSTORE_PASS) -keypass $(APP_KEYSTORE_PASS) -alias $(PROJECT_NAME)Key -keyalg RSA
endif
# Config project package and resource using AndroidManifest.xml and res/values/strings.xml
# NOTE: Generates resources file: src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/R.java
config_project_package:
$(ANDROID_BUILD_TOOLS)/aapt package -f -m -S $(PROJECT_BUILD_PATH)/res -J $(PROJECT_BUILD_PATH)/src -M $(PROJECT_BUILD_PATH)/AndroidManifest.xml -I $(ANDROID_HOME)/platforms/android-$(ANDROID_API_VERSION)/android.jar
# Compile native_app_glue code as static library: obj/libnative_app_glue.a
compile_native_app_glue:
$(CC) -c $(NATIVE_APP_GLUE_PATH)/android_native_app_glue.c -o $(PROJECT_BUILD_PATH)/obj/native_app_glue.o $(CFLAGS)
$(AR) rcs $(PROJECT_BUILD_PATH)/obj/libnative_app_glue.a $(PROJECT_BUILD_PATH)/obj/native_app_glue.o
# Compile project code into a shared library: lib/lib$(PROJECT_LIBRARY_NAME).so
compile_project_code: $(OBJS)
$(CC) -o $(PROJECT_BUILD_PATH)/lib/$(ANDROID_ARCH_NAME)/lib$(PROJECT_LIBRARY_NAME).so $(OBJS) -shared $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS)
# Compile all .c files required into object (.o) files
# NOTE: Those files will be linked into a shared library
$(PROJECT_BUILD_PATH)/obj/%.o:%.c
$(CC) -c $^ -o $@ $(INCLUDE_PATHS) $(CFLAGS) --sysroot=$(ANDROID_TOOLCHAIN)/sysroot
# Compile project .java code into .class (Java bytecode)
compile_project_class:
$(JAVA_HOME)/bin/javac -verbose -source 1.7 -target 1.7 -d $(PROJECT_BUILD_PATH)/obj -bootclasspath $(JAVA_HOME)/jre/lib/rt.jar -classpath $(ANDROID_HOME)/platforms/android-$(ANDROID_API_VERSION)/android.jar -d $(PROJECT_BUILD_PATH)/obj $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/R.java $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
# Compile .class files into Dalvik executable bytecode (.dex)
# NOTE: Since Android 5.0, Dalvik interpreter (JIT) has been replaced by ART (AOT)
compile_project_class_dex:
$(ANDROID_BUILD_TOOLS)/dx --verbose --dex --output=$(PROJECT_BUILD_PATH)/bin/classes.dex $(PROJECT_BUILD_PATH)/obj
# Create Android APK package: bin/$(PROJECT_NAME).unsigned.apk
# NOTE: Requires compiled classes.dex and lib$(PROJECT_LIBRARY_NAME).so
# NOTE: Use -A resources to define additional directory in which to find raw asset files
create_project_apk_package:
$(ANDROID_BUILD_TOOLS)/aapt package -f -M $(PROJECT_BUILD_PATH)/AndroidManifest.xml -S $(PROJECT_BUILD_PATH)/res -A $(PROJECT_BUILD_PATH)/assets -I $(ANDROID_HOME)/platforms/android-$(ANDROID_API_VERSION)/android.jar -F $(PROJECT_BUILD_PATH)/bin/$(PROJECT_NAME).unsigned.apk $(PROJECT_BUILD_PATH)/bin
cd $(PROJECT_BUILD_PATH) && $(ANDROID_BUILD_TOOLS)/aapt add bin/$(PROJECT_NAME).unsigned.apk lib/$(ANDROID_ARCH_NAME)/lib$(PROJECT_LIBRARY_NAME).so $(PROJECT_SHARED_LIBS)
# Create signed APK package using generated Key: bin/$(PROJECT_NAME).signed.apk
sign_project_apk_package:
$(JAVA_HOME)/bin/jarsigner -keystore $(PROJECT_BUILD_PATH)/$(PROJECT_NAME).keystore -storepass $(APP_KEYSTORE_PASS) -keypass $(APP_KEYSTORE_PASS) -signedjar $(PROJECT_BUILD_PATH)/bin/$(PROJECT_NAME).signed.apk $(PROJECT_BUILD_PATH)/bin/$(PROJECT_NAME).unsigned.apk $(PROJECT_NAME)Key
# Create zip-aligned APK package: $(PROJECT_NAME).apk
zipalign_project_apk_package:
$(ANDROID_BUILD_TOOLS)/zipalign -f 4 $(PROJECT_BUILD_PATH)/bin/$(PROJECT_NAME).signed.apk $(PROJECT_NAME).apk
# Install $(PROJECT_NAME).apk to default emulator/device
# NOTE: Use -e (emulator) or -d (device) parameters if required
install:
$(ANDROID_PLATFORM_TOOLS)/adb install $(PROJECT_NAME).apk
# Check supported ABI for the device (armeabi-v7a, arm64-v8a, x86, x86_64)
check_device_abi:
$(ANDROID_PLATFORM_TOOLS)/adb shell getprop ro.product.cpu.abi
# Monitorize output log coming from device, only raylib tag
logcat:
$(ANDROID_PLATFORM_TOOLS)/adb logcat -c
$(ANDROID_PLATFORM_TOOLS)/adb logcat raylib:V *:S
# Install and monitorize $(PROJECT_NAME).apk to default emulator/device
deploy:
$(ANDROID_PLATFORM_TOOLS)/adb install $(PROJECT_NAME).apk
$(ANDROID_PLATFORM_TOOLS)/adb logcat -c
$(ANDROID_PLATFORM_TOOLS)/adb logcat raylib:V *:S
#$(ANDROID_PLATFORM_TOOLS)/adb logcat *:W
# Clean everything
clean:
ifeq ($(OS),Windows_NT)
del $(PROJECT_BUILD_PATH)\* /f /s /q
rmdir $(PROJECT_BUILD_PATH) /s /q
else
rm -r $(PROJECT_BUILD_PATH)
endif
@echo Cleaning done
File diff suppressed because it is too large Load Diff
+205
View File
@@ -0,0 +1,205 @@
## Building the Examples
The examples assume you have already built the `raylib` library in `../src`.
### With GNU make
- `make` builds all examples
- `make [module]` builds all examples for a particular module (e.g `make core`)
### With Zig
The [Zig](https://ziglang.org/) toolchain can compile `C` and `C++` in addition to `Zig`.
You may find it easier to use than other toolchains, especially when it comes to cross-compiling.
- `zig build` to compile all examples
- `zig build [module]` to compile all examples for a module (e.g. `zig build core`)
- `zig build [example]` to compile _and run_ a particular example (e.g. `zig build core_basic_window`)
## EXAMPLES LIST
### category: core
Examples using raylib core platform functionality like window creation, inputs, drawing modes and system functionality.
| ## | example | image | difficulty<br>level | version<br>created | last version<br>updated | original<br>developer |
|----|----------|--------|:-------------------:|:------------------:|:------------------:|:----------|
| 01 | [core_basic_window](core/core_basic_window.c) | <img src="core/core_basic_window.png" alt="core_basic_window" width="80"> | ⭐️☆☆☆ | 1.0 | 1.0 | [Ray](https://github.com/raysan5) |
| 02 | [core_input_keys](core/core_input_keys.c) | <img src="core/core_input_keys.png" alt="core_input_keys" width="80"> | ⭐️☆☆☆ | 1.0 | 1.0 | [Ray](https://github.com/raysan5) |
| 03 | [core_input_mouse](core/core_input_mouse.c) | <img src="core/core_input_mouse.png" alt="core_input_mouse" width="80"> | ⭐️☆☆☆ | 1.0 | **4.0** | [Ray](https://github.com/raysan5) |
| 04 | [core_input_mouse_wheel](core/core_input_mouse_wheel.c) | <img src="core/core_input_mouse_wheel.png" alt="core_input_mouse_wheel" width="80"> | ⭐️☆☆☆ | 1.1 | 1.3 | [Ray](https://github.com/raysan5) |
| 05 | [core_input_gamepad](core/core_input_gamepad.c) | <img src="core/core_input_gamepad.png" alt="core_input_gamepad" width="80"> | ⭐️☆☆☆ | 1.1 | **4.2** | [Ray](https://github.com/raysan5) |
| 06 | [core_input_multitouch](core/core_input_multitouch.c) | <img src="core/core_input_multitouch.png" alt="core_input_multitouch" width="80"> | ⭐️☆☆☆ | 2.1 | 2.5 | [Berni](https://github.com/Berni8k) |
| 07 | [core_input_gestures](core/core_input_gestures.c) | <img src="core/core_input_gestures.png" alt="core_input_gestures" width="80"> | ⭐️⭐️☆☆ | 1.4 | **4.2** | [Ray](https://github.com/raysan5) |
| 08 | [core_2d_camera](core/core_2d_camera.c) | <img src="core/core_2d_camera.png" alt="core_2d_camera" width="80"> | ⭐️⭐️☆☆ | 1.5 | 3.0 | [Ray](https://github.com/raysan5) |
| 09 | [core_2d_camera_mouse_zoom](core/core_2d_camera_mouse_zoom.c) | <img src="core/core_2d_camera_mouse_zoom.png" alt="core_2d_camera_mouse_zoom" width="80"> | ⭐️⭐️☆☆ | **4.2** | **4.2** | [Jeffery Myers](https://github.com/JeffM2501) |
| 10 | [core_2d_camera_platformer](core/core_2d_camera_platformer.c) | <img src="core/core_2d_camera_platformer.png" alt="core_2d_camera_platformer" width="80"> | ⭐️⭐️⭐️☆ | 2.5 | 3.0 | [avyy](https://github.com/avyy) |
| 11 | [core_2d_camera_split_screen](core/core_2d_camera_split_screen.c) | <img src="core/core_2d_camera_split_screen.png" alt="core_2d_camera_split_screen" width="80"> | ⭐️⭐️⭐️⭐️ | **4.5** | **4.5** | [Gabriel dos Santos Sanches](https://github.com/gabrielssanches) |
| 12 | [core_3d_camera_mode](core/core_3d_camera_mode.c) | <img src="core/core_3d_camera_mode.png" alt="core_3d_camera_mode" width="80"> | ⭐️☆☆☆ | 1.0 | 1.0 | [Ray](https://github.com/raysan5) |
| 13 | [core_3d_camera_free](core/core_3d_camera_free.c) | <img src="core/core_3d_camera_free.png" alt="core_3d_camera_free" width="80"> | ⭐️☆☆☆ | 1.3 | 1.3 | [Ray](https://github.com/raysan5) |
| 14 | [core_3d_camera_first_person](core/core_3d_camera_first_person.c) | <img src="core/core_3d_camera_first_person.png" alt="core_3d_camera_first_person" width="80"> | ⭐️⭐️☆☆ | 1.3 | 1.3 | [Ray](https://github.com/raysan5) |
| 15 | [core_3d_camera:split_screen](core/core_3d_camera_split_screen.c) | <img src="core/core_3d_camera_split_screen.png" alt="core_3d_camera_split_screen" width="80"> | ⭐️⭐️⭐️⭐️ | 3.7 | **4.0** | [Jeffery Myers](https://github.com/JeffM2501) |
| 16 | [core_3d_picking](core/core_3d_picking.c) | <img src="core/core_3d_picking.png" alt="core_3d_picking" width="80"> | ⭐️⭐️☆☆ | 1.3 | **4.0** | [Ray](https://github.com/raysan5) |
| 17 | [core_world_screen](core/core_world_screen.c) | <img src="core/core_world_screen.png" alt="core_world_screen" width="80"> | ⭐️⭐️☆☆ | 1.3 | 1.4 | [Ray](https://github.com/raysan5) |
| 18 | [core_custom_logging](core/core_custom_logging.c) | <img src="core/core_custom_logging.png" alt="core_custom_logging" width="80"> | ⭐️⭐️⭐️☆ | 2.5 | 2.5 | [Pablo Marcos Oltra](https://github.com/pamarcos) |
| 19 | [core_window_flags](core/core_window_flags.c) | <img src="core/core_window_flags.png" alt="core_window_flags" width="80"> | ⭐️⭐️⭐️☆ | 3.5 | 3.5 | [Ray](https://github.com/raysan5) |
| 20 | [core_window_letterbox](core/core_window_letterbox.c) | <img src="core/core_window_letterbox.png" alt="core_window_letterbox" width="80"> | ⭐️⭐️☆☆ | 2.5 | **4.0** | [Anata](https://github.com/anatagawa) |
| 21 | [core_window_should_close](core/core_window_should_close.c) | <img src="core/core_window_should_close.png" alt="core_window_should_close" width="80"> | ⭐️☆☆☆ | **4.2** | **4.2** | [Ray](https://github.com/raysan5) |
| 22 | [core_drop_files](core/core_drop_files.c) | <img src="core/core_drop_files.png" alt="core_drop_files" width="80"> | ⭐️⭐️☆☆ | 1.3 | **4.2** | [Ray](https://github.com/raysan5) |
| 23 | [core_random_values](core/core_random_values.c) | <img src="core/core_random_values.png" alt="core_random_values" width="80"> | ⭐️☆☆☆ | 1.1 | 1.1 | [Ray](https://github.com/raysan5) |
| 24 | [core_storage_values](core/core_storage_values.c) | <img src="core/core_storage_values.png" alt="core_storage_values" width="80"> | ⭐️⭐️☆☆ | 1.4 | **4.2** | [Ray](https://github.com/raysan5) |
| 25 | [core_vr_simulator](core/core_vr_simulator.c) | <img src="core/core_vr_simulator.png" alt="core_vr_simulator" width="80"> | ⭐️⭐️⭐️☆ | 2.5 | **4.0** | [Ray](https://github.com/raysan5) |
| 26 | [core_loading_thread](core/core_loading_thread.c) | <img src="core/core_loading_thread.png" alt="core_loading_thread" width="80"> | ⭐️⭐️⭐️☆ | 2.5 | 3.0 | [Ray](https://github.com/raysan5) |
| 27 | [core_scissor_test](core/core_scissor_test.c) | <img src="core/core_scissor_test.png" alt="core_scissor_test" width="80"> | ⭐️☆☆☆ | 2.5 | 3.0 | [Chris Dill](https://github.com/MysteriousSpace) |
| 28 | [core_basic_screen_manager](core/core_basic_screen_manager.c) | <img src="core/core_basic_screen_manager.png" alt="core_basic_screen_manager" width="80"> | ⭐️☆☆☆ | **4.0** | **4.0** | [Ray](https://github.com/raysan5) |
| 29 | [core_custom_frame_control](core/core_custom_frame_control.c) | <img src="core/core_custom_frame_control.png" alt="core_custom_frame_control" width="80"> | ⭐️⭐️⭐️⭐️ | **4.0** | **4.0** | [Ray](https://github.com/raysan5) |
| 30 | [core_smooth_pixelperfect](core/core_smooth_pixelperfect.c) | <img src="core/core_smooth_pixelperfect.png" alt="core_smooth_pixelperfect" width="80"> | ⭐️⭐️⭐️☆ | 3.7 | **4.0** | [Giancamillo Alessandroni](https://github.com/NotManyIdeasDev) |
| 31 | [core_window_should_close](core/core_window_should_close.c) | <img src="core/core_window_should_close.png" alt="core_window_should_close" width="80"> | ⭐️⭐️☆☆ | **4.2** | **4.2** | [Ray](https://github.com/raysan5) |
### category: shapes
Examples using raylib shapes drawing functionality, provided by raylib [shapes](../src/shapes.c) module.
| ## | example | image | difficulty<br>level | version<br>created | last version<br>updated | original<br>developer |
|----|----------|--------|:-------------------:|:------------------:|:------------------:|:----------|
| 31 | [shapes_basic_shapes](shapes/shapes_basic_shapes.c) | <img src="shapes/shapes_basic_shapes.png" alt="shapes_basic_shapes" width="80"> | ⭐️☆☆☆ | 1.0 | **4.0** | [Ray](https://github.com/raysan5) |
| 32 | [shapes_bouncing_ball](shapes/shapes_bouncing_ball.c) | <img src="shapes/shapes_bouncing_ball.png" alt="shapes_bouncing_ball" width="80"> | ⭐️☆☆☆ | 2.5 | 2.5 | [Ray](https://github.com/raysan5) |
| 33 | [shapes_colors_palette](shapes/shapes_colors_palette.c) | <img src="shapes/shapes_colors_palette.png" alt="shapes_colors_palette" width="80"> | ⭐️⭐️☆☆ | 1.0 | 2.5 | [Ray](https://github.com/raysan5) |
| 34 | [shapes_logo_raylib](shapes/shapes_logo_raylib.c) | <img src="shapes/shapes_logo_raylib.png" alt="shapes_logo_raylib" width="80"> | ⭐️☆☆☆ | 1.0 | 1.0 | [Ray](https://github.com/raysan5) |
| 35 | [shapes_logo_raylib_anim](shapes/shapes_logo_raylib_anim.c) | <img src="shapes/shapes_logo_raylib_anim.png" alt="shapes_logo_raylib_anim" width="80"> | ⭐️⭐️☆☆ | 2.5 | **4.0** | [Ray](https://github.com/raysan5) |
| 36 | [shapes_rectangle_scaling](shapes/shapes_rectangle_scaling.c) | <img src="shapes/shapes_rectangle_scaling.png" alt="shapes_rectangle_scaling" width="80"> | ⭐️⭐️☆☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) |
| 37 | [shapes_lines_bezier](shapes/shapes_lines_bezier.c) | <img src="shapes/shapes_lines_bezier.png" alt="shapes_lines_bezier" width="80"> | ⭐️☆☆☆ | 1.7 | 1.7 | [Ray](https://github.com/raysan5) |
| 38 | [shapes_collision_area](shapes/shapes_collision_area.c) | <img src="shapes/shapes_collision_area.png" alt="shapes_collision_area" width="80"> | ⭐️⭐️☆☆ | 2.5 | 2.5 | [Ray](https://github.com/raysan5) |
| 39 | [shapes_following_eyes](shapes/shapes_following_eyes.c) | <img src="shapes/shapes_following_eyes.png" alt="shapes_following_eyes" width="80"> | ⭐️⭐️☆☆ | 2.5 | 2.5 | [Ray](https://github.com/raysan5) |
| 40 | [shapes_easings_ball_anim](shapes/shapes_easings_ball_anim.c) | <img src="shapes/shapes_easings_ball_anim.png" alt="shapes_easings_ball_anim" width="80"> | ⭐️⭐️☆☆ | 2.5 | 2.5 | [Ray](https://github.com/raysan5) |
| 41 | [shapes_easings_box_anim](shapes/shapes_easings_box_anim.c) | <img src="shapes/shapes_easings_box_anim.png" alt="shapes_easings_box_anim" width="80"> | ⭐️⭐️☆☆ | 2.5 | 2.5 | [Ray](https://github.com/raysan5) |
| 42 | [shapes_easings_rectangle_array](shapes/shapes_easings_rectangle_array.c) | <img src="shapes/shapes_easings_rectangle_array.png" alt="shapes_easings_rectangle_array" width="80"> | ⭐️⭐️⭐️☆ | 2.5 | 2.5 | [Ray](https://github.com/raysan5) |
| 43 | [shapes_draw_ring](shapes/shapes_draw_ring.c) | <img src="shapes/shapes_draw_ring.png" alt="shapes_draw_ring" width="80"> | ⭐️⭐️⭐️☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) |
| 44 | [shapes_draw_circle_sector](shapes/shapes_draw_circle_sector.c) | <img src="shapes/shapes_draw_circle_sector.png" alt="shapes_draw_circle_sector" width="80"> | ⭐️⭐️⭐️☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) |
| 45 | [shapes_draw_rectangle_rounded](shapes/shapes_draw_rectangle_rounded.c) | <img src="shapes/shapes_draw_rectangle_rounded.png" alt="shapes_draw_rectangle_rounded" width="80"> | ⭐️⭐️⭐️☆ | 2.5 | 2.5 | [Vlad Adrian](https://github.com/demizdor) |
| 46 | [shapes_top_down_lights](shapes/shapes_top_down_lights.c) | <img src="shapes/shapes_top_down_lights.png" alt="shapes_top_down_lights" width="80"> | ⭐️⭐️⭐️⭐️ | **4.2** | **4.2** | [Jeffery Myers](https://github.com/JeffM2501) |
### category: textures
Examples using raylib textures functionality, including image/textures loading/generation and drawing, provided by raylib [textures](../src/textures.c) module.
| ## | example | image | difficulty<br>level | version<br>created | last version<br>updated | original<br>developer |
|----|----------|--------|:-------------------:|:------------------:|:------------------:|:----------|
| 47 | [textures_logo_raylib](textures/textures_logo_raylib.c) | <img src="textures/textures_logo_raylib.png" alt="textures_logo_raylib" width="80"> | ⭐️☆☆☆ | 1.0 | 1.0 | [Ray](https://github.com/raysan5) |
| 48 | [textures_srcrec_dstrec](textures/textures_srcrec_dstrec.c) | <img src="textures/textures_srcrec_dstrec.png" alt="textures_srcrec_dstrec" width="80"> | ⭐️⭐️⭐️☆ | 1.3 | 1.3 | [Ray](https://github.com/raysan5) |
| 49 | [textures_image_drawing](textures/textures_image_drawing.c) | <img src="textures/textures_image_drawing.png" alt="textures_image_drawing" width="80"> | ⭐️⭐️☆☆ | 1.4 | 1.4 | [Ray](https://github.com/raysan5) |
| 50 | [textures_image_generation](textures/textures_image_generation.c) | <img src="textures/textures_image_generation.png" alt="textures_image_generation" width="80"> | ⭐️⭐️☆☆ | 1.8 | 1.8 | [Ray](https://github.com/raysan5) |
| 51 | [textures_image_loading](textures/textures_image_loading.c) | <img src="textures/textures_image_loading.png" alt="textures_image_loading" width="80"> | ⭐️☆☆☆ | 1.3 | 1.3 | [Ray](https://github.com/raysan5) |
| 52 | [textures_image_processing](textures/textures_image_processing.c) | <img src="textures/textures_image_processing.png" alt="textures_image_processing" width="80"> | ⭐️⭐️⭐️☆ | 1.4 | 3.5 | [Ray](https://github.com/raysan5) |
| 53 | [textures_image_text](textures/textures_image_text.c) | <img src="textures/textures_image_text.png" alt="textures_image_text" width="80"> | ⭐️⭐️☆☆ | 1.8 | **4.0** | [Ray](https://github.com/raysan5) |
| 54 | [textures_to_image](textures/textures_to_image.c) | <img src="textures/textures_to_image.png" alt="textures_to_image" width="80"> | ⭐️☆☆☆ | 1.3 | **4.0** | [Ray](https://github.com/raysan5) |
| 55 | [textures_raw_data](textures/textures_raw_data.c) | <img src="textures/textures_raw_data.png" alt="textures_raw_data" width="80"> | ⭐️⭐️⭐️☆ | 1.3 | 3.5 | [Ray](https://github.com/raysan5) |
| 56 | [textures_particles_blending](textures/textures_particles_blending.c) | <img src="textures/textures_particles_blending.png" alt="textures_particles_blending" width="80"> | ⭐️☆☆☆ | 1.7 | 3.5 | [Ray](https://github.com/raysan5) |
| 57 | [textures_npatch_drawing](textures/textures_npatch_drawing.c) | <img src="textures/textures_npatch_drawing.png" alt="textures_npatch_drawing" width="80"> | ⭐️⭐️⭐️☆ | 2.0 | 2.5 | [Jorge A. Gomes](https://github.com/overdev) |
| 58 | [textures_background_scrolling](textures/textures_background_scrolling.c) | <img src="textures/textures_background_scrolling.png" alt="textures_background_scrolling" width="80"> | ⭐️☆☆☆ | 2.0 | 2.5 | [Ray](https://github.com/raysan5) |
| 59 | [textures_sprite_anim](textures/textures_sprite_anim.c) | <img src="textures/textures_sprite_anim.png" alt="textures_sprite_anim" width="80"> | ⭐️⭐️☆☆ | 1.3 | 1.3 | [Ray](https://github.com/raysan5) |
| 60 | [textures_sprite_button](textures/textures_sprite_button.c) | <img src="textures/textures_sprite_button.png" alt="textures_sprite_button" width="80"> | ⭐️⭐️☆☆ | 2.5 | 2.5 | [Ray](https://github.com/raysan5) |
| 61 | [textures_sprite_explosion](textures/textures_sprite_explosion.c) | <img src="textures/textures_sprite_explosion.png" alt="textures_sprite_explosion" width="80"> | ⭐️⭐️☆☆ | 2.5 | 3.5 | [Ray](https://github.com/raysan5) |
| 62 | [textures_bunnymark](textures/textures_bunnymark.c) | <img src="textures/textures_bunnymark.png" alt="textures_bunnymark" width="80"> | ⭐️⭐️⭐️☆ | 1.6 | 2.5 | [Ray](https://github.com/raysan5) |
| 63 | [textures_mouse_painting](textures/textures_mouse_painting.c) | <img src="textures/textures_mouse_painting.png" alt="textures_mouse_painting" width="80"> | ⭐️⭐️⭐️☆ | 3.0 | 3.0 | [Chris Dill](https://github.com/MysteriousSpace) |
| 64 | [textures_blend_modes](textures/textures_blend_modes.c) | <img src="textures/textures_blend_modes.png" alt="textures_blend_modes" width="80"> | ⭐️☆☆☆ | 3.5 | 3.5 | [Karlo Licudine](https://github.com/accidentalrebel) |
| 65 | [textures_draw_tiled](textures/textures_draw_tiled.c) | <img src="textures/textures_draw_tiled.png" alt="textures_draw_tiled" width="80"> | ⭐️⭐️⭐️☆ | 3.0 | **4.2** | [Vlad Adrian](https://github.com/demizdor) |
| 66 | [textures_polygon](textures/textures_polygon.c) | <img src="textures/textures_polygon.png" alt="textures_polygon" width="80"> | ⭐️☆☆☆ | 3.7 | 3.7 | [Chris Camacho](https://github.com/codifies) |
| 67 | [textures_fog_of_war](textures/textures_fog_of_war.c) | <img src="textures/textures_fog_of_war.png" alt="textures_fog_of_war" width="80"> | ⭐️⭐️⭐️☆ | **4.2** | **4.2** | [Ray](https://github.com/raysan5) |
| 68 | [textures_gif_player](textures/textures_gif_player.c) | <img src="textures/textures_gif_player.png" alt="textures_gif_player" width="80"> | ⭐️⭐️⭐️☆ | **4.2** | **4.2** | [Ray](https://github.com/raysan5) |
### category: text
Examples using raylib text functionality, including sprite fonts loading/generation and text drawing, provided by raylib [text](../src/text.c) module.
| ## | example | image | difficulty<br>level | version<br>created | last version<br>updated | original<br>developer |
|----|----------|--------|:-------------------:|:------------------:|:------------------:|:----------|
| 69 | [text_raylib_fonts](text/text_raylib_fonts.c) | <img src="text/text_raylib_fonts.png" alt="text_raylib_fonts" width="80"> | ⭐️☆☆☆ | 1.7 | 3.7 | [Ray](https://github.com/raysan5) |
| 70 | [text_font_spritefont](text/text_font_spritefont.c) | <img src="text/text_font_spritefont.png" alt="text_font_spritefont" width="80"> | ⭐️☆☆☆ | 1.0 | 1.0 | [Ray](https://github.com/raysan5) |
| 71 | [text_font_filters](text/text_font_filters.c) | <img src="text/text_font_filters.png" alt="text_font_filters" width="80"> | ⭐️⭐️☆☆ | 1.3 | **4.2** | [Ray](https://github.com/raysan5) |
| 72 | [text_font_loading](text/text_font_loading.c) | <img src="text/text_font_loading.png" alt="text_font_loading" width="80"> | ⭐️☆☆☆ | 1.4 | 3.0 | [Ray](https://github.com/raysan5) |
| 73 | [text_font_sdf](text/text_font_sdf.c) | <img src="text/text_font_sdf.png" alt="text_font_sdf" width="80"> | ⭐️⭐️⭐️☆ | 1.3 | **4.0** | [Ray](https://github.com/raysan5) |
| 74 | [text_format_text](text/text_format_text.c) | <img src="text/text_format_text.png" alt="text_format_text" width="80"> | ⭐️☆☆☆ | 1.1 | 3.0 | [Ray](https://github.com/raysan5) |
| 75 | [text_input_box](text/text_input_box.c) | <img src="text/text_input_box.png" alt="text_input_box" width="80"> | ⭐️⭐️☆☆ | 1.7 | 3.5 | [Ray](https://github.com/raysan5) |
| 76 | [text_writing_anim](text/text_writing_anim.c) | <img src="text/text_writing_anim.png" alt="text_writing_anim" width="80"> | ⭐️⭐️☆☆ | 1.4 | 1.4 | [Ray](https://github.com/raysan5) |
| 77 | [text_rectangle_bounds](text/text_rectangle_bounds.c) | <img src="text/text_rectangle_bounds.png" alt="text_rectangle_bounds" width="80"> | ⭐️⭐️⭐️⭐️ | 2.5 | **4.0** | [Vlad Adrian](https://github.com/demizdor) |
| 78 | [text_unicode](text/text_unicode.c) | <img src="text/text_unicode.png" alt="text_unicode" width="80"> | ⭐️⭐️⭐️⭐️ | 2.5 | **4.0** | [Vlad Adrian](https://github.com/demizdor) |
| 79 | [text_draw_3d](text/text_draw_3d.c) | <img src="text/text_draw_3d.png" alt="text_draw_3d" width="80"> | ⭐️⭐️⭐️⭐️ | 3.5 | **4.0** | [Vlad Adrian](https://github.com/demizdor) |
| 80 | [text_codepoints_loading](text/text_codepoints_loading.c) | <img src="text/text_codepoints_loading.png" alt="text_codepoints_loading" width="80"> | ⭐️⭐️⭐️☆ | **4.2** | **4.2** | [Ray](https://github.com/raysan5) |
### category: models
Examples using raylib models functionality, including models loading/generation and drawing, provided by raylib [models](../src/models.c) module.
| ## | example | image | difficulty<br>level | version<br>created | last version<br>updated | original<br>developer |
|----|----------|--------|:-------------------:|:------------------:|:------------------:|:----------|
| 81 | [models_animation](models/models_animation.c) | <img src="models/models_animation.png" alt="models_animation" width="80"> | ⭐️⭐️☆☆ | 2.5 | 3.5 | [culacant](https://github.com/culacant) |
| 82 | [models_billboard](models/models_billboard.c) | <img src="models/models_billboard.png" alt="models_billboard" width="80"> | ⭐️⭐️⭐️☆ | 1.3 | 3.5 | [Ray](https://github.com/raysan5) |
| 83 | [models_box_collisions](models/models_box_collisions.c) | <img src="models/models_box_collisions.png" alt="models_box_collisions" width="80"> | ⭐️☆☆☆ | 1.3 | 3.5 | [Ray](https://github.com/raysan5) |
| 84 | [models_cubicmap](models/models_cubicmap.c) | <img src="models/models_cubicmap.png" alt="models_cubicmap" width="80"> | ⭐️⭐️☆☆ | 1.8 | 3.5 | [Ray](https://github.com/raysan5) |
| 85 | [models_first_person_maze](models/models_first_person_maze.c) | <img src="models/models_first_person_maze.png" alt="models_first_person_maze" width="80"> | ⭐️⭐️☆☆ | 2.5 | 3.5 | [Ray](https://github.com/raysan5) |
| 86 | [models_geometric_shapes](models/models_geometric_shapes.c) | <img src="models/models_geometric_shapes.png" alt="models_geometric_shapes" width="80"> | ⭐️☆☆☆ | 1.0 | 3.5 | [Ray](https://github.com/raysan5) |
| 87 | [models_mesh_generation](models/models_mesh_generation.c) | <img src="models/models_mesh_generation.png" alt="models_mesh_generation" width="80"> | ⭐️⭐️☆☆ | 1.8 | **4.0** | [Ray](https://github.com/raysan5) |
| 88 | [models_mesh_picking](models/models_mesh_picking.c) | <img src="models/models_mesh_picking.png" alt="models_mesh_picking" width="80"> | ⭐️⭐️⭐️☆ | 1.7 | **4.0** | [Joel Davis](https://github.com/joeld42) |
| 89 | [models_loading](models/models_loading.c) | <img src="models/models_loading.png" alt="models_loading" width="80"> | ⭐️☆☆☆ | 2.5 | **4.0** | [Ray](https://github.com/raysan5) |
| 90 | [models_loading_gltf](models/models_loading_gltf.c) | <img src="models/models_loading_gltf.png" alt="models_loading_gltf" width="80"> | ⭐️☆☆☆ | 3.7 | **4.2** | [Ray](https://github.com/raysan5) |
| 91 | [models_loading_vox](models/models_loading_vox.c) | <img src="models/models_loading_vox.png" alt="models_loading_vox" width="80"> | ⭐️☆☆☆ | **4.0** | **4.0** | [Johann Nadalutti](https://github.com/procfxgen) |
| 92 | [models_loading_m3d](models/models_loading_m3d.c) | <img src="models/models_loading_m3d.png" alt="models_loading_m3d" width="80"> | ⭐️☆☆☆ | **4.2** | **4.2** | [bzt](https://bztsrc.gitlab.io/model3d) |
| 93 | [models_orthographic_projection](models/models_orthographic_projection.c) | <img src="models/models_orthographic_projection.png" alt="models_orthographic_projection" width="80"> | ⭐️☆☆☆ | 2.0 | 3.7 | [Max Danielsson](https://github.com/autious) |
| 94 | [models_rlgl_solar_system](models/models_rlgl_solar_system.c) | <img src="models/models_rlgl_solar_system.png" alt="models_rlgl_solar_system" width="80"> | ⭐️⭐️⭐️⭐️ | 2.5 | **4.0** | [Ray](https://github.com/raysan5) |
| 95 | [models_yaw_pitch_roll](models/models_yaw_pitch_roll.c) | <img src="models/models_yaw_pitch_roll.png" alt="models_yaw_pitch_roll" width="80"> | ⭐️⭐️☆☆ | 1.8 | **4.0** | [Berni](https://github.com/Berni8k) |
| 96 | [models_waving_cubes](models/models_waving_cubes.c) | <img src="models/models_waving_cubes.png" alt="models_waving_cubes" width="80"> | ⭐️⭐️⭐️☆ | 2.5 | 3.7 | [codecat](https://github.com/codecat) |
| 97 | [models_heightmap](models/models_heightmap.c) | <img src="models/models_heightmap.png" alt="models_heightmap" width="80"> | ⭐️☆☆☆ | 1.8 | 3.5 | [Ray](https://github.com/raysan5) |
| 98 | [models_skybox](models/models_skybox.c) | <img src="models/models_skybox.png" alt="models_skybox" width="80"> | ⭐️⭐️☆☆ | 1.8 | **4.0** | [Ray](https://github.com/raysan5) |
### category: shaders
Examples using raylib shaders functionality, including shaders loading, parameters configuration and drawing using them (model shaders and postprocessing shaders). This functionality is directly provided by raylib [rlgl](../src/rlgl.c) module.
| ## | example | image | difficulty<br>level | version<br>created | last version<br>updated | original<br>developer |
|----|----------|--------|:-------------------:|:------------------:|:------------------:|:----------|
| 99 | [shaders_basic_lighting](shaders/shaders_basic_lighting.c) | <img src="shaders/shaders_basic_lighting.png" alt="shaders_basic_lighting" width="80"> | ⭐️⭐️⭐️⭐️ | 3.0 | **4.2** | [Chris Camacho](https://github.com/codifies) |
| 100 | [shaders_model_shader](shaders/shaders_model_shader.c) | <img src="shaders/shaders_model_shader.png" alt="shaders_model_shader" width="80"> | ⭐️⭐️☆☆ | 1.3 | 3.7 | [Ray](https://github.com/raysan5) |
| 101 | [shaders_shapes_textures](shaders/shaders_shapes_textures.c) | <img src="shaders/shaders_shapes_textures.png" alt="shaders_shapes_textures" width="80"> | ⭐️⭐️☆☆ | 1.7 | 3.7 | [Ray](https://github.com/raysan5) |
| 102 | [shaders_custom_uniform](shaders/shaders_custom_uniform.c) | <img src="shaders/shaders_custom_uniform.png" alt="shaders_custom_uniform" width="80"> | ⭐️⭐️☆☆ | 1.3 | **4.0** | [Ray](https://github.com/raysan5) |
| 103 | [shaders_postprocessing](shaders/shaders_postprocessing.c) | <img src="shaders/shaders_postprocessing.png" alt="shaders_postprocessing" width="80"> | ⭐️⭐️⭐️☆ | 1.3 | **4.0** | [Ray](https://github.com/raysan5) |
| 104 | [shaders_palette_switch](shaders/shaders_palette_switch.c) | <img src="shaders/shaders_palette_switch.png" alt="shaders_palette_switch" width="80"> | ⭐️⭐️⭐️☆ | 2.5 | 3.7 | [Marco Lizza](https://github.com/MarcoLizza) |
| 105 | [shaders_raymarching](shaders/shaders_raymarching.c) | <img src="shaders/shaders_raymarching.png" alt="shaders_raymarching" width="80"> | ⭐️⭐️⭐️⭐️ | 2.0 | **4.2** | [Ray](https://github.com/raysan5) |
| 106 | [shaders_texture_drawing](shaders/shaders_texture_drawing.c) | <img src="shaders/shaders_texture_drawing.png" alt="shaders_texture_drawing" width="80"> | ⭐️⭐️☆☆ | 2.0 | 3.7 | [Michał Ciesielski](https://github.com/) |
| 107 | [shaders_texture_outline](shaders/shaders_texture_outline.c) | <img src="shaders/shaders_texture_outline.png" alt="shaders_texture_outline" width="80"> | ⭐️⭐️⭐️☆ | **4.0** | **4.0** | [Samuel Skiff](https://github.com/GoldenThumbs) |
| 108 | [shaders_texture_waves](shaders/shaders_texture_waves.c) | <img src="shaders/shaders_texture_waves.png" alt="shaders_texture_waves" width="80"> | ⭐️⭐️☆☆ | 2.5 | 3.7 | [Anata](https://github.com/anatagawa) |
| 109 | [shaders_julia_set](shaders/shaders_julia_set.c) | <img src="shaders/shaders_julia_set.png" alt="shaders_julia_set" width="80"> | ⭐️⭐️⭐️☆ | 2.5 | **4.0** | [eggmund](https://github.com/eggmund) |
| 110 | [shaders_eratosthenes](shaders/shaders_eratosthenes.c) | <img src="shaders/shaders_eratosthenes.png" alt="shaders_eratosthenes" width="80"> | ⭐️⭐️⭐️☆ | 2.5 | **4.0** | [ProfJski](https://github.com/ProfJski) |
| 111 | [shaders_fog](shaders/shaders_fog.c) | <img src="shaders/shaders_fog.png" alt="shaders_fog" width="80"> | ⭐️⭐️⭐️☆ | 2.5 | 3.7 | [Chris Camacho](https://github.com/codifies) |
| 112 | [shaders_simple_mask](shaders/shaders_simple_mask.c) | <img src="shaders/shaders_simple_mask.png" alt="shaders_simple_mask" width="80"> | ⭐️⭐️☆☆ | 2.5 | 3.7 | [Chris Camacho](https://github.com/codifies) |
| 113 | [shaders_hot_reloading](shaders/shaders_hot_reloading.c) | <img src="shaders/shaders_hot_reloading.png" alt="shaders_hot_reloading" width="80"> | ⭐️⭐️⭐️☆ | 3.0 | 3.5 | [Ray](https://github.com/raysan5) |
| 114 | [shaders_mesh_instancing](shaders/shaders_mesh_instancing.c) | <img src="shaders/shaders_mesh_instancing.png" alt="shaders_mesh_instancing" width="80"> | ⭐️⭐️⭐️⭐️ | 3.7 | **4.2** | [seanpringle](https://github.com/seanpringle) |
| 115 | [shaders_multi_sample2d](shaders/shaders_multi_sample2d.c) | <img src="shaders/shaders_multi_sample2d.png" alt="shaders_multi_sample2d" width="80"> | ⭐️⭐️☆☆ | 3.5 | 3.5 | [Ray](https://github.com/raysan5) |
| 116 | [shaders_spotlight](shaders/shaders_spotlight.c) | <img src="shaders/shaders_spotlight.png" alt="shaders_spotlight" width="80"> | ⭐️⭐️☆☆ | 2.5 | 3.7 | [Chris Camacho](https://github.com/codifies) |
| 117 | [shaders_deferred_render](shaders/shaders_deferred_render.c) | <img src="shaders/shaders_deferred_render.png" alt="shaders_deferred_render" width="80"> | ⭐️⭐️⭐️⭐️ | 4.5 | 4.5 | [Justin Andreas Lacoste](https://github.com/27justin) |
### category: audio
Examples using raylib audio functionality, including sound/music loading and playing. This functionality is provided by raylib [raudio](../src/raudio.c) module. Note this module can be used standalone independently of raylib, check [raudio_standalone](others/raudio_standalone.c) example.
| ## | example | image | difficulty<br>level | version<br>created | last version<br>updated | original<br>developer |
|----|----------|--------|:-------------------:|:------------------:|:------------------:|:----------|
| 118 | [audio_module_playing](audio/audio_module_playing.c) | <img src="audio/audio_module_playing.png" alt="audio_module_playing" width="80"> | ⭐️☆☆☆ | 1.5 | 3.5 | [Ray](https://github.com/raysan5) |
| 119 | [audio_music_stream](audio/audio_music_stream.c) | <img src="audio/audio_music_stream.png" alt="audio_music_stream" width="80"> | ⭐️☆☆☆ | 1.3 | **4.2** | [Ray](https://github.com/raysan5) |
| 120 | [audio_raw_stream](audio/audio_raw_stream.c) | <img src="audio/audio_raw_stream.png" alt="audio_raw_stream" width="80"> | ⭐️⭐️⭐️☆ | 1.6 | **4.2** | [Ray](https://github.com/raysan5) |
| 121 | [audio_sound_loading](audio/audio_sound_loading.c) | <img src="audio/audio_sound_loading.png" alt="audio_sound_loading" width="80"> | ⭐️☆☆☆ | 1.1 | 3.5 | [Ray](https://github.com/raysan5) |
### category: others
Examples showing raylib misc functionality that does not fit in other categories, like standalone modules usage or examples integrating external libraries.
| ## | example | image | difficulty<br>level | version<br>created | last version<br>updated | original<br>developer |
|----|----------|--------|:-------------------:|:------------------:|:------------------:|:----------|
| 122 | [rlgl_standalone](others/rlgl_standalone.c) | <img src="others/rlgl_standalone.png" alt="rlgl_standalone" width="80"> | ⭐️⭐️⭐️⭐️ | 1.6 | **4.0** | [Ray](https://github.com/raysan5) |
| 123 | [rlgl_compute_shader](others/rlgl_compute_shader.c) | <img src="others/rlgl_compute_shader.png" alt="rlgl_compute_shader" width="80"> | ⭐️⭐️⭐️⭐️ | **4.0** | **4.0** | [Teddy Astie](https://github.com/tsnake41) |
| 124 | [easings_testbed](others/easings_testbed.c) | <img src="others/easings_testbed.png" alt="easings_testbed" width="80"> | ⭐️⭐️⭐️☆ | 3.0 | 3.0 | [Juan Miguel López](https://github.com/flashback-fx) |
| 125 | [raylib_opengl_interop](others/raylib_opengl_interop.c) | <img src="others/raylib_opengl_interop.png" alt="raylib_opengl_interop" width="80"> | ⭐️⭐️⭐️⭐️ | **4.0** | **4.0** | [Stephan Soller](https://github.com/arkanis) |
| 126 | [embedded_files_loading](others/embedded_files_loading.c) | <img src="others/embedded_files_loading.png" alt="embedded_files_loading" width="80"> | ⭐️⭐️☆☆ | 3.5 | 3.5 | [Kristian Holmgren](https://github.com/defutura) |
As always contributions are welcome, feel free to send new examples! Here it is an [examples template](examples_template.c) to start with!
+123
View File
@@ -0,0 +1,123 @@
/*******************************************************************************************
*
* raylib [audio] example - Mixed audio processing
*
* Example originally created with raylib 4.2, last time updated with raylib 4.2
*
* Example contributed by hkc (@hatkidchan) and reviewed by Ramon Santamaria (@raysan5)
*
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2023 hkc (@hatkidchan)
*
********************************************************************************************/
#include "raylib.h"
#include <math.h>
static float exponent = 1.0f; // Audio exponentiation value
static float averageVolume[400] = { 0.0f }; // Average volume history
//------------------------------------------------------------------------------------
// Audio processing function
//------------------------------------------------------------------------------------
void ProcessAudio(void *buffer, unsigned int frames)
{
float *samples = (float *)buffer; // Samples internally stored as <float>s
float average = 0.0f; // Temporary average volume
for (unsigned int frame = 0; frame < frames; frame++)
{
float *left = &samples[frame * 2 + 0], *right = &samples[frame * 2 + 1];
*left = powf(fabsf(*left), exponent) * ( (*left < 0.0f)? -1.0f : 1.0f );
*right = powf(fabsf(*right), exponent) * ( (*right < 0.0f)? -1.0f : 1.0f );
average += fabsf(*left) / frames; // accumulating average volume
average += fabsf(*right) / frames;
}
// Moving history to the left
for (int i = 0; i < 399; i++) averageVolume[i] = averageVolume[i + 1];
averageVolume[399] = average; // Adding last average value
}
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [audio] example - processing mixed output");
InitAudioDevice(); // Initialize audio device
AttachAudioMixedProcessor(ProcessAudio);
Music music = LoadMusicStream("resources/country.mp3");
Sound sound = LoadSound("resources/coin.wav");
PlayMusicStream(music);
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
UpdateMusicStream(music); // Update music buffer with new stream data
// Modify processing variables
//----------------------------------------------------------------------------------
if (IsKeyPressed(KEY_LEFT)) exponent -= 0.05f;
if (IsKeyPressed(KEY_RIGHT)) exponent += 0.05f;
if (exponent <= 0.5f) exponent = 0.5f;
if (exponent >= 3.0f) exponent = 3.0f;
if (IsKeyPressed(KEY_SPACE)) PlaySound(sound);
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(RAYWHITE);
DrawText("MUSIC SHOULD BE PLAYING!", 255, 150, 20, LIGHTGRAY);
DrawText(TextFormat("EXPONENT = %.2f", exponent), 215, 180, 20, LIGHTGRAY);
DrawRectangle(199, 199, 402, 34, LIGHTGRAY);
for (int i = 0; i < 400; i++)
{
DrawLine(201 + i, 232 - averageVolume[i] * 32, 201 + i, 232, MAROON);
}
DrawRectangleLines(199, 199, 402, 34, GRAY);
DrawText("PRESS SPACE TO PLAY OTHER SOUND", 200, 250, 20, LIGHTGRAY);
DrawText("USE LEFT AND RIGHT ARROWS TO ALTER DISTORTION", 140, 280, 20, LIGHTGRAY);
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
UnloadMusicStream(music); // Unload music stream buffers from RAM
DetachAudioMixedProcessor(ProcessAudio); // Disconnect audio processor
CloseAudioDevice(); // Close audio device (music streaming is automatically stopped)
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

@@ -2,12 +2,12 @@
*
* raylib [audio] example - Module playing (streaming)
*
* NOTE: This example requires OpenAL Soft library installed
* Example originally created with raylib 1.5, last time updated with raylib 3.5
*
* This example has been created using raylib 1.5 (www.raylib.com)
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2016 Ramon Santamaria (@raysan5)
* Copyright (c) 2016-2023 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
@@ -23,38 +23,43 @@ typedef struct {
Color color;
} CircleWave;
int main()
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
int screenWidth = 800;
int screenHeight = 450;
const int screenWidth = 800;
const int screenHeight = 450;
SetConfigFlags(FLAG_MSAA_4X_HINT); // NOTE: Try to enable MSAA 4X
SetConfigFlags(FLAG_MSAA_4X_HINT); // NOTE: Try to enable MSAA 4X
InitWindow(screenWidth, screenHeight, "raylib [audio] example - module playing (streaming)");
InitAudioDevice(); // Initialize audio device
InitAudioDevice(); // Initialize audio device
Color colors[14] = { ORANGE, RED, GOLD, LIME, BLUE, VIOLET, BROWN, LIGHTGRAY, PINK,
YELLOW, GREEN, SKYBLUE, PURPLE, BEIGE };
// Creates ome circles for visual effect
CircleWave circles[MAX_CIRCLES];
// Creates some circles for visual effect
CircleWave circles[MAX_CIRCLES] = { 0 };
for (int i = MAX_CIRCLES - 1; i >= 0; i--)
{
circles[i].alpha = 0.0f;
circles[i].radius = GetRandomValue(10, 40);
circles[i].position.x = GetRandomValue(circles[i].radius, screenWidth - circles[i].radius);
circles[i].position.y = GetRandomValue(circles[i].radius, screenHeight - circles[i].radius);
circles[i].speed = (float)GetRandomValue(1, 100)/20000.0f;
circles[i].radius = (float)GetRandomValue(10, 40);
circles[i].position.x = (float)GetRandomValue((int)circles[i].radius, (int)(screenWidth - circles[i].radius));
circles[i].position.y = (float)GetRandomValue((int)circles[i].radius, (int)(screenHeight - circles[i].radius));
circles[i].speed = (float)GetRandomValue(1, 100)/2000.0f;
circles[i].color = colors[GetRandomValue(0, 13)];
}
Music xm = LoadMusicStream("resources/audio/mini1111.xm");
PlayMusicStream(xm);
Music music = LoadMusicStream("resources/mini1111.xm");
music.looping = false;
float pitch = 1.0f;
PlayMusicStream(music);
float timePlayed = 0.0f;
bool pause = false;
@@ -67,43 +72,49 @@ int main()
{
// Update
//----------------------------------------------------------------------------------
UpdateMusicStream(xm); // Update music buffer with new stream data
UpdateMusicStream(music); // Update music buffer with new stream data
// Restart music playing (stop and play)
if (IsKeyPressed(KEY_SPACE))
if (IsKeyPressed(KEY_SPACE))
{
StopMusicStream(xm);
PlayMusicStream(xm);
StopMusicStream(music);
PlayMusicStream(music);
pause = false;
}
// Pause/Resume music playing
// Pause/Resume music playing
if (IsKeyPressed(KEY_P))
{
pause = !pause;
if (pause) PauseMusicStream(xm);
else ResumeMusicStream(xm);
if (pause) PauseMusicStream(music);
else ResumeMusicStream(music);
}
if (IsKeyDown(KEY_DOWN)) pitch -= 0.01f;
else if (IsKeyDown(KEY_UP)) pitch += 0.01f;
SetMusicPitch(music, pitch);
// Get timePlayed scaled to bar dimensions
timePlayed = (GetMusicTimePlayed(xm)/GetMusicTimeLength(xm)*(screenWidth - 40))*2;
timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music)*(screenWidth - 40);
// Color circles animation
for (int i = MAX_CIRCLES - 1; (i >= 0) && !pause; i--)
{
circles[i].alpha += circles[i].speed;
circles[i].radius += circles[i].speed*10.0f;
if (circles[i].alpha > 1.0f) circles[i].speed *= -1;
if (circles[i].alpha <= 0.0f)
{
circles[i].alpha = 0.0f;
circles[i].radius = GetRandomValue(10, 40);
circles[i].position.x = GetRandomValue(circles[i].radius, screenWidth - circles[i].radius);
circles[i].position.y = GetRandomValue(circles[i].radius, screenHeight - circles[i].radius);
circles[i].radius = (float)GetRandomValue(10, 40);
circles[i].position.x = (float)GetRandomValue((int)circles[i].radius, (int)(screenWidth - circles[i].radius));
circles[i].position.y = (float)GetRandomValue((int)circles[i].radius, (int)(screenHeight - circles[i].radius));
circles[i].color = colors[GetRandomValue(0, 13)];
circles[i].speed = (float)GetRandomValue(1, 100)/20000.0f;
circles[i].speed = (float)GetRandomValue(1, 100)/2000.0f;
}
}
//----------------------------------------------------------------------------------
@@ -112,30 +123,38 @@ int main()
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(WHITE);
ClearBackground(RAYWHITE);
for (int i = MAX_CIRCLES - 1; i >= 0; i--)
{
DrawCircleV(circles[i].position, circles[i].radius, Fade(circles[i].color, circles[i].alpha));
}
// Draw time bar
DrawRectangle(20, screenHeight - 20 - 12, screenWidth - 40, 12, LIGHTGRAY);
DrawRectangle(20, screenHeight - 20 - 12, (int)timePlayed, 12, MAROON);
DrawRectangleLines(20, screenHeight - 20 - 12, screenWidth - 40, 12, GRAY);
// Draw help instructions
DrawRectangle(20, 20, 425, 145, WHITE);
DrawRectangleLines(20, 20, 425, 145, GRAY);
DrawText("PRESS SPACE TO RESTART MUSIC", 40, 40, 20, BLACK);
DrawText("PRESS P TO PAUSE/RESUME", 40, 70, 20, BLACK);
DrawText("PRESS UP/DOWN TO CHANGE SPEED", 40, 100, 20, BLACK);
DrawText(TextFormat("SPEED: %f", pitch), 40, 130, 20, MAROON);
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
UnloadMusicStream(xm); // Unload music stream buffers from RAM
UnloadMusicStream(music); // Unload music stream buffers from RAM
CloseAudioDevice(); // Close audio device (music streaming is automatically stopped)
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

@@ -2,36 +2,39 @@
*
* raylib [audio] example - Music playing (streaming)
*
* NOTE: This example requires OpenAL Soft library installed
* Example originally created with raylib 1.3, last time updated with raylib 4.0
*
* This example has been created using raylib 1.3 (www.raylib.com)
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
* Copyright (c) 2015-2023 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
#include "raylib.h"
int main()
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
int screenWidth = 800;
int screenHeight = 450;
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [audio] example - music playing (streaming)");
InitAudioDevice(); // Initialize audio device
Music music = LoadMusicStream("resources/audio/guitar_noodling.ogg");
Music music = LoadMusicStream("resources/country.mp3");
PlayMusicStream(music);
float timePlayed = 0.0f;
bool pause = false;
float timePlayed = 0.0f; // Time played normalized [0.0f..1.0f]
bool pause = false; // Music playing paused
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
SetTargetFPS(30); // Set our game to run at 30 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
@@ -39,26 +42,28 @@ int main()
{
// Update
//----------------------------------------------------------------------------------
UpdateMusicStream(music); // Update music buffer with new stream data
UpdateMusicStream(music); // Update music buffer with new stream data
// Restart music playing (stop and play)
if (IsKeyPressed(KEY_SPACE))
if (IsKeyPressed(KEY_SPACE))
{
StopMusicStream(music);
PlayMusicStream(music);
}
// Pause/Resume music playing
// Pause/Resume music playing
if (IsKeyPressed(KEY_P))
{
pause = !pause;
if (pause) PauseMusicStream(music);
else ResumeMusicStream(music);
}
// Get timePlayed scaled to bar dimensions (400 pixels)
timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music)*100*4;
// Get normalized time played for current music stream
timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music);
if (timePlayed > 1.0f) timePlayed = 1.0f; // Make sure time played is no longer than music
//----------------------------------------------------------------------------------
// Draw
@@ -70,9 +75,9 @@ int main()
DrawText("MUSIC SHOULD BE PLAYING!", 255, 150, 20, LIGHTGRAY);
DrawRectangle(200, 200, 400, 12, LIGHTGRAY);
DrawRectangle(200, 200, (int)timePlayed, 12, MAROON);
DrawRectangle(200, 200, (int)(timePlayed*400.0f), 12, MAROON);
DrawRectangleLines(200, 200, 400, 12, GRAY);
DrawText("PRESS SPACE TO RESTART MUSIC", 215, 250, 20, LIGHTGRAY);
DrawText("PRESS P TO PAUSE/RESUME MUSIC", 208, 280, 20, LIGHTGRAY);
@@ -90,4 +95,4 @@ int main()
//--------------------------------------------------------------------------------------
return 0;
}
}

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

+215
View File
@@ -0,0 +1,215 @@
/*******************************************************************************************
*
* raylib [audio] example - Raw audio streaming
*
* Example originally created with raylib 1.6, last time updated with raylib 4.2
*
* Example created by Ramon Santamaria (@raysan5) and reviewed by James Hofmann (@triplefox)
*
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2015-2023 Ramon Santamaria (@raysan5) and James Hofmann (@triplefox)
*
********************************************************************************************/
#include "raylib.h"
#include <stdlib.h> // Required for: malloc(), free()
#include <math.h> // Required for: sinf()
#include <string.h> // Required for: memcpy()
#define MAX_SAMPLES 512
#define MAX_SAMPLES_PER_UPDATE 4096
// Cycles per second (hz)
float frequency = 440.0f;
// Audio frequency, for smoothing
float audioFrequency = 440.0f;
// Previous value, used to test if sine needs to be rewritten, and to smoothly modulate frequency
float oldFrequency = 1.0f;
// Index for audio rendering
float sineIdx = 0.0f;
// Audio input processing callback
void AudioInputCallback(void *buffer, unsigned int frames)
{
audioFrequency = frequency + (audioFrequency - frequency)*0.95f;
audioFrequency += 1.0f;
audioFrequency -= 1.0f;
float incr = audioFrequency/44100.0f;
short *d = (short *)buffer;
for (unsigned int i = 0; i < frames; i++)
{
d[i] = (short)(32000.0f*sinf(2*PI*sineIdx));
sineIdx += incr;
if (sineIdx > 1.0f) sineIdx -= 1.0f;
}
}
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [audio] example - raw audio streaming");
InitAudioDevice(); // Initialize audio device
SetAudioStreamBufferSizeDefault(MAX_SAMPLES_PER_UPDATE);
// Init raw audio stream (sample rate: 44100, sample size: 16bit-short, channels: 1-mono)
AudioStream stream = LoadAudioStream(44100, 16, 1);
SetAudioStreamCallback(stream, AudioInputCallback);
// Buffer for the single cycle waveform we are synthesizing
short *data = (short *)malloc(sizeof(short)*MAX_SAMPLES);
// Frame buffer, describing the waveform when repeated over the course of a frame
short *writeBuf = (short *)malloc(sizeof(short)*MAX_SAMPLES_PER_UPDATE);
PlayAudioStream(stream); // Start processing stream buffer (no data loaded currently)
// Position read in to determine next frequency
Vector2 mousePosition = { -100.0f, -100.0f };
/*
// Cycles per second (hz)
float frequency = 440.0f;
// Previous value, used to test if sine needs to be rewritten, and to smoothly modulate frequency
float oldFrequency = 1.0f;
// Cursor to read and copy the samples of the sine wave buffer
int readCursor = 0;
*/
// Computed size in samples of the sine wave
int waveLength = 1;
Vector2 position = { 0, 0 };
SetTargetFPS(30); // Set our game to run at 30 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
// Sample mouse input.
mousePosition = GetMousePosition();
if (IsMouseButtonDown(MOUSE_BUTTON_LEFT))
{
float fp = (float)(mousePosition.y);
frequency = 40.0f + (float)(fp);
float pan = (float)(mousePosition.x) / (float)screenWidth;
SetAudioStreamPan(stream, pan);
}
// Rewrite the sine wave
// Compute two cycles to allow the buffer padding, simplifying any modulation, resampling, etc.
if (frequency != oldFrequency)
{
// Compute wavelength. Limit size in both directions.
//int oldWavelength = waveLength;
waveLength = (int)(22050/frequency);
if (waveLength > MAX_SAMPLES/2) waveLength = MAX_SAMPLES/2;
if (waveLength < 1) waveLength = 1;
// Write sine wave
for (int i = 0; i < waveLength*2; i++)
{
data[i] = (short)(sinf(((2*PI*(float)i/waveLength)))*32000);
}
// Make sure the rest of the line is flat
for (int j = waveLength*2; j < MAX_SAMPLES; j++)
{
data[j] = (short)0;
}
// Scale read cursor's position to minimize transition artifacts
//readCursor = (int)(readCursor * ((float)waveLength / (float)oldWavelength));
oldFrequency = frequency;
}
/*
// Refill audio stream if required
if (IsAudioStreamProcessed(stream))
{
// Synthesize a buffer that is exactly the requested size
int writeCursor = 0;
while (writeCursor < MAX_SAMPLES_PER_UPDATE)
{
// Start by trying to write the whole chunk at once
int writeLength = MAX_SAMPLES_PER_UPDATE-writeCursor;
// Limit to the maximum readable size
int readLength = waveLength-readCursor;
if (writeLength > readLength) writeLength = readLength;
// Write the slice
memcpy(writeBuf + writeCursor, data + readCursor, writeLength*sizeof(short));
// Update cursors and loop audio
readCursor = (readCursor + writeLength) % waveLength;
writeCursor += writeLength;
}
// Copy finished frame to audio stream
UpdateAudioStream(stream, writeBuf, MAX_SAMPLES_PER_UPDATE);
}
*/
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(RAYWHITE);
DrawText(TextFormat("sine frequency: %i",(int)frequency), GetScreenWidth() - 220, 10, 20, RED);
DrawText("click mouse button to change frequency or pan", 10, 10, 20, DARKGRAY);
// Draw the current buffer state proportionate to the screen
for (int i = 0; i < screenWidth; i++)
{
position.x = (float)i;
position.y = 250 + 50*data[i*MAX_SAMPLES/screenWidth]/32000.0f;
DrawPixelV(position, RED);
}
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
free(data); // Unload sine wave data
free(writeBuf); // Unload write buffer
UnloadAudioStream(stream); // Close raw audio stream and delete buffers from RAM
CloseAudioDevice(); // Close audio device (music streaming is automatically stopped)
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

@@ -2,32 +2,35 @@
*
* raylib [audio] example - Sound loading and playing
*
* NOTE: This example requires OpenAL Soft library installed
* Example originally created with raylib 1.1, last time updated with raylib 3.5
*
* This example has been created using raylib 1.0 (www.raylib.com)
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
* Copyright (c) 2014-2023 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
#include "raylib.h"
int main()
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
int screenWidth = 800;
int screenHeight = 450;
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [audio] example - sound loading and playing");
InitAudioDevice(); // Initialize audio device
Sound fxWav = LoadSound("resources/audio/weird.wav"); // Load WAV audio file
Sound fxOgg = LoadSound("resources/audio/tanatana.ogg"); // Load OGG audio file
SetTargetFPS(60);
Sound fxWav = LoadSound("resources/sound.wav"); // Load WAV audio file
Sound fxOgg = LoadSound("resources/target.ogg"); // Load OGG audio file
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
@@ -46,7 +49,6 @@ int main()
ClearBackground(RAYWHITE);
DrawText("Press SPACE to PLAY the WAV sound!", 200, 180, 20, LIGHTGRAY);
DrawText("Press ENTER to PLAY the OGG sound!", 200, 220, 20, LIGHTGRAY);
EndDrawing();

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

+87
View File
@@ -0,0 +1,87 @@
/*******************************************************************************************
*
* raylib [audio] example - Playing sound multiple times
*
* Example originally created with raylib 4.6
*
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2023 Jeffery Myers (@JeffM2501)
*
********************************************************************************************/
#include "raylib.h"
#define MAX_SOUNDS 10
Sound soundArray[MAX_SOUNDS] = { 0 };
int currentSound;
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [audio] example - playing sound multiple times");
InitAudioDevice(); // Initialize audio device
// load the sound list
soundArray[0] = LoadSound("resources/sound.wav"); // Load WAV audio file into the first slot as the 'source' sound
// this sound owns the sample data
for (int i = 1; i < MAX_SOUNDS; i++)
{
soundArray[i] = LoadSoundAlias(soundArray[0]); // Load an alias of the sound into slots 1-9. These do not own the sound data, but can be played
}
currentSound = 0; // set the sound list to the start
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
if (IsKeyPressed(KEY_SPACE))
{
PlaySound(soundArray[currentSound]); // play the next open sound slot
currentSound++; // increment the sound slot
if (currentSound >= MAX_SOUNDS) // if the sound slot is out of bounds, go back to 0
currentSound = 0;
// Note: a better way would be to look at the list for the first sound that is not playing and use that slot
}
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(RAYWHITE);
DrawText("Press SPACE to PLAY a WAV sound!", 200, 180, 20, LIGHTGRAY);
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
for (int i = 1; i < MAX_SOUNDS; i++)
UnloadSoundAlias(soundArray[i]); // Unload sound aliases
UnloadSound(soundArray[0]); // Unload source sound data
CloseAudioDevice(); // Close audio device
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

+179
View File
@@ -0,0 +1,179 @@
/*******************************************************************************************
*
* raylib [audio] example - Music stream processing effects
*
* Example originally created with raylib 4.2, last time updated with raylib 4.2
*
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2022-2023 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
#include "raylib.h"
#include <stdlib.h> // Required for: NULL
// Required delay effect variables
static float *delayBuffer = NULL;
static unsigned int delayBufferSize = 0;
static unsigned int delayReadIndex = 2;
static unsigned int delayWriteIndex = 0;
//------------------------------------------------------------------------------------
// Module Functions Declaration
//------------------------------------------------------------------------------------
static void AudioProcessEffectLPF(void *buffer, unsigned int frames); // Audio effect: lowpass filter
static void AudioProcessEffectDelay(void *buffer, unsigned int frames); // Audio effect: delay
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [audio] example - stream effects");
InitAudioDevice(); // Initialize audio device
Music music = LoadMusicStream("resources/country.mp3");
// Allocate buffer for the delay effect
delayBufferSize = 48000*2; // 1 second delay (device sampleRate*channels)
delayBuffer = (float *)RL_CALLOC(delayBufferSize, sizeof(float));
PlayMusicStream(music);
float timePlayed = 0.0f; // Time played normalized [0.0f..1.0f]
bool pause = false; // Music playing paused
bool enableEffectLPF = false; // Enable effect low-pass-filter
bool enableEffectDelay = false; // Enable effect delay (1 second)
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
UpdateMusicStream(music); // Update music buffer with new stream data
// Restart music playing (stop and play)
if (IsKeyPressed(KEY_SPACE))
{
StopMusicStream(music);
PlayMusicStream(music);
}
// Pause/Resume music playing
if (IsKeyPressed(KEY_P))
{
pause = !pause;
if (pause) PauseMusicStream(music);
else ResumeMusicStream(music);
}
// Add/Remove effect: lowpass filter
if (IsKeyPressed(KEY_F))
{
enableEffectLPF = !enableEffectLPF;
if (enableEffectLPF) AttachAudioStreamProcessor(music.stream, AudioProcessEffectLPF);
else DetachAudioStreamProcessor(music.stream, AudioProcessEffectLPF);
}
// Add/Remove effect: delay
if (IsKeyPressed(KEY_D))
{
enableEffectDelay = !enableEffectDelay;
if (enableEffectDelay) AttachAudioStreamProcessor(music.stream, AudioProcessEffectDelay);
else DetachAudioStreamProcessor(music.stream, AudioProcessEffectDelay);
}
// Get normalized time played for current music stream
timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music);
if (timePlayed > 1.0f) timePlayed = 1.0f; // Make sure time played is no longer than music
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(RAYWHITE);
DrawText("MUSIC SHOULD BE PLAYING!", 245, 150, 20, LIGHTGRAY);
DrawRectangle(200, 180, 400, 12, LIGHTGRAY);
DrawRectangle(200, 180, (int)(timePlayed*400.0f), 12, MAROON);
DrawRectangleLines(200, 180, 400, 12, GRAY);
DrawText("PRESS SPACE TO RESTART MUSIC", 215, 230, 20, LIGHTGRAY);
DrawText("PRESS P TO PAUSE/RESUME MUSIC", 208, 260, 20, LIGHTGRAY);
DrawText(TextFormat("PRESS F TO TOGGLE LPF EFFECT: %s", enableEffectLPF? "ON" : "OFF"), 200, 320, 20, GRAY);
DrawText(TextFormat("PRESS D TO TOGGLE DELAY EFFECT: %s", enableEffectDelay? "ON" : "OFF"), 180, 350, 20, GRAY);
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
UnloadMusicStream(music); // Unload music stream buffers from RAM
CloseAudioDevice(); // Close audio device (music streaming is automatically stopped)
RL_FREE(delayBuffer); // Free delay buffer
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}
//------------------------------------------------------------------------------------
// Module Functions Definition
//------------------------------------------------------------------------------------
// Audio effect: lowpass filter
static void AudioProcessEffectLPF(void *buffer, unsigned int frames)
{
static float low[2] = { 0.0f, 0.0f };
static const float cutoff = 70.0f / 44100.0f; // 70 Hz lowpass filter
const float k = cutoff / (cutoff + 0.1591549431f); // RC filter formula
for (unsigned int i = 0; i < frames*2; i += 2)
{
float l = ((float *)buffer)[i], r = ((float *)buffer)[i + 1];
low[0] += k * (l - low[0]);
low[1] += k * (r - low[1]);
((float *)buffer)[i] = low[0];
((float *)buffer)[i + 1] = low[1];
}
}
// Audio effect: delay
static void AudioProcessEffectDelay(void *buffer, unsigned int frames)
{
for (unsigned int i = 0; i < frames*2; i += 2)
{
float leftDelay = delayBuffer[delayReadIndex++]; // ERROR: Reading buffer -> WHY??? Maybe thread related???
float rightDelay = delayBuffer[delayReadIndex++];
if (delayReadIndex == delayBufferSize) delayReadIndex = 0;
((float *)buffer)[i] = 0.5f*((float *)buffer)[i] + 0.5f*leftDelay;
((float *)buffer)[i + 1] = 0.5f*((float *)buffer)[i + 1] + 0.5f*rightDelay;
delayBuffer[delayWriteIndex++] = ((float *)buffer)[i];
delayBuffer[delayWriteIndex++] = ((float *)buffer)[i + 1];
if (delayWriteIndex == delayBufferSize) delayWriteIndex = 0;
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

+10
View File
@@ -0,0 +1,10 @@
| resource | author | licence | notes |
| :------------------- | :---------: | :------ | :---- |
| country.mp3 | [@emegeme](https://github.com/emegeme) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Originally created for "DART that TARGET" game |
| target.ogg | [@emegeme](https://github.com/emegeme) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Originally created for "DART that TARGET" game |
| target.flac | [@emegeme](https://github.com/emegeme) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Originally created for "DART that TARGET" game |
| coin.wav | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Made with [rFXGen](https://raylibtech.itch.io/rfxgen) |
| sound.wav | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Made with [rFXGen](https://raylibtech.itch.io/rfxgen) |
| spring.wav | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Made with [rFXGen](https://raylibtech.itch.io/rfxgen) |
| weird.wav | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Made with [rFXGen](https://raylibtech.itch.io/rfxgen) |
| mini1111.xm | [tPORt](https://modarchive.org/index.php?request=view_by_moduleid&query=51891) | [Mod Archive Distribution license](https://modarchive.org/index.php?terms-upload) | - |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-101
View File
@@ -1,101 +0,0 @@
-------------------------------------------------------------------------------------------
--
-- raylib [audio] example - Module playing (streaming)
--
-- This example has been created using raylib 1.6 (www.raylib.com)
-- raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
--
-- Copyright (c) 2014-2016 Ramon Santamaria (@raysan5)
--
-------------------------------------------------------------------------------------------
MAX_CIRCLES = 64
-- Initialization
-------------------------------------------------------------------------------------------
local screenWidth = 800
local screenHeight = 450
InitWindow(screenWidth, screenHeight, "raylib [audio] example - module playing (streaming)")
InitAudioDevice() -- Initialize audio device
local colors = { ORANGE, RED, GOLD, LIME, BLUE, VIOLET, BROWN, LIGHTGRAY, PINK,
YELLOW, GREEN, SKYBLUE, PURPLE, BEIGE }
-- Creates ome circles for visual effect
local circles = {}
for i = MAX_CIRCLES, 1, -1 do
circles[i] = {}
circles[i].alpha = 0.0
circles[i].radius = GetRandomValue(10, 40)
circles[i].position = Vector2(0, 0)
circles[i].position.x = GetRandomValue(circles[i].radius, screenWidth - circles[i].radius)
circles[i].position.y = GetRandomValue(circles[i].radius, screenHeight - circles[i].radius)
circles[i].speed = GetRandomValue(1, 100)/20000.0
circles[i].color = colors[GetRandomValue(1, 14)]
end
local xm = LoadMusicStream("resources/audio/mini1111.xm")
PlayMusicStream(xm)
local timePlayed = 0.0
SetTargetFPS(60) -- Set our game to run at 60 frames-per-second
-------------------------------------------------------------------------------------------
-- Main game loop
while not WindowShouldClose() do -- Detect window close button or ESC key
-- Update
---------------------------------------------------------------------------------------
for i = MAX_CIRCLES, 1, -1 do
circles[i].alpha = circles[i].alpha + circles[i].speed
circles[i].radius = circles[i].radius + circles[i].speed*10.0
if (circles[i].alpha > 1.0) then circles[i].speed = circles[i].speed*-1 end
if (circles[i].alpha <= 0.0) then
circles[i].alpha = 0.0
circles[i].radius = GetRandomValue(10, 40)
circles[i].position.x = GetRandomValue(circles[i].radius, screenWidth - circles[i].radius)
circles[i].position.y = GetRandomValue(circles[i].radius, screenHeight - circles[i].radius)
circles[i].color = colors[GetRandomValue(1, 14)]
circles[i].speed = GetRandomValue(1, 100)/20000.0
end
end
-- Get timePlayed scaled to bar dimensions
timePlayed = (GetMusicTimePlayed(xm)/GetMusicTimeLength(xm)*(screenWidth - 40))*2
UpdateMusicStream(xm) -- Update music buffer with new stream data
---------------------------------------------------------------------------------------
-- Draw
---------------------------------------------------------------------------------------
BeginDrawing()
ClearBackground(RAYWHITE)
for i = MAX_CIRCLES, 1, -1 do
DrawCircleV(circles[i].position, circles[i].radius, Fade(circles[i].color, circles[i].alpha))
end
-- Draw time bar
DrawRectangle(20, screenHeight - 20 - 12, screenWidth - 40, 12, LIGHTGRAY)
DrawRectangle(20, screenHeight - 20 - 12, timePlayed//1, 12, MAROON)
DrawRectangleLines(20, screenHeight - 20 - 12, screenWidth - 40, 12, WHITE)
EndDrawing()
---------------------------------------------------------------------------------------
end
-- De-Initialization
-------------------------------------------------------------------------------------------
UnloadMusicStream(xm) -- Unload music stream buffers from RAM
CloseAudioDevice() -- Close audio device (music streaming is automatically stopped)
CloseWindow() -- Close window and OpenGL context
-------------------------------------------------------------------------------------------
Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

-66
View File
@@ -1,66 +0,0 @@
-------------------------------------------------------------------------------------------
--
-- raylib [audio] example - Music playing (streaming)
--
-- NOTE: This example requires OpenAL Soft library installed
--
-- This example has been created using raylib 1.6 (www.raylib.com)
-- raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
--
-- Copyright (c) 2014-2016 Ramon Santamaria (@raysan5)
--
-------------------------------------------------------------------------------------------
-- Initialization
-------------------------------------------------------------------------------------------
local screenWidth = 800
local screenHeight = 450
InitWindow(screenWidth, screenHeight, "raylib [audio] example - music playing (streaming)")
InitAudioDevice() -- Initialize audio device
local music = LoadMusicStream("resources/audio/guitar_noodling.ogg")
PlayMusicStream(music)
local framesCounter = 0
local timePlayed = 0.0
SetTargetFPS(60) -- Set our game to run at 60 frames-per-second
-------------------------------------------------------------------------------------------
-- Main game loop
while not WindowShouldClose() do -- Detect window close button or ESC key
-- Update
---------------------------------------------------------------------------------------
framesCounter = framesCounter + 1
timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music)*100*4 -- We scale by 4 to fit 400 pixels
UpdateMusicStream(music) -- Update music buffer with new stream data
---------------------------------------------------------------------------------------
-- Draw
---------------------------------------------------------------------------------------
BeginDrawing()
ClearBackground(RAYWHITE)
DrawText("MUSIC SHOULD BE PLAYING!", 255, 200, 20, LIGHTGRAY)
DrawRectangle(200, 250, 400, 12, LIGHTGRAY)
DrawRectangle(200, 250, timePlayed//1, 12, MAROON)
EndDrawing()
---------------------------------------------------------------------------------------
end
-- De-Initialization
-------------------------------------------------------------------------------------------
UnloadMusicStream(music) -- Unload music stream buffers from RAM
CloseAudioDevice() -- Close audio device (music streaming is automatically stopped)
CloseWindow() -- Close window and OpenGL context
-------------------------------------------------------------------------------------------
-111
View File
@@ -1,111 +0,0 @@
/*******************************************************************************************
*
* raylib [audio] example - Raw audio streaming
*
* NOTE: This example requires OpenAL Soft library installed
*
* This example has been created using raylib 1.6 (www.raylib.com)
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
*
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
#include "raylib.h"
#include <stdlib.h> // Required for: malloc(), free()
#include <math.h> // Required for: sinf()
#define MAX_SAMPLES 20000
int main()
{
// Initialization
//--------------------------------------------------------------------------------------
int screenWidth = 800;
int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [audio] example - raw audio streaming");
InitAudioDevice(); // Initialize audio device
// Init raw audio stream (sample rate: 22050, sample size: 32bit-float, channels: 1-mono)
AudioStream stream = InitAudioStream(22050, 32, 1);
// Fill audio stream with some samples (sine wave)
float *data = (float *)malloc(sizeof(float)*MAX_SAMPLES);
for (int i = 0; i < MAX_SAMPLES; i++)
{
data[i] = sinf(((2*PI*(float)i)/2)*DEG2RAD);
}
// NOTE: The generated MAX_SAMPLES do not fit to close a perfect loop
// for that reason, there is a clip everytime audio stream is looped
PlayAudioStream(stream);
int totalSamples = MAX_SAMPLES;
int samplesLeft = totalSamples;
Vector2 position = { 0, 0 };
SetTargetFPS(30); // Set our game to run at 30 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
// Refill audio stream if required
if (IsAudioBufferProcessed(stream))
{
int numSamples = 0;
if (samplesLeft >= 4096) numSamples = 4096;
else numSamples = samplesLeft;
UpdateAudioStream(stream, data + (totalSamples - samplesLeft), numSamples);
samplesLeft -= numSamples;
// Reset samples feeding (loop audio)
if (samplesLeft <= 0) samplesLeft = totalSamples;
}
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(RAYWHITE);
DrawText("SINE WAVE SHOULD BE PLAYING!", 240, 140, 20, LIGHTGRAY);
// NOTE: Draw a part of the sine wave (only screen width)
for (int i = 0; i < GetScreenWidth(); i++)
{
position.x = i;
position.y = 250 + 50*data[i];
DrawPixelV(position, RED);
}
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
free(data); // Unload sine wave data
CloseAudioStream(stream); // Close raw audio stream and delete buffers from RAM
CloseAudioDevice(); // Close audio device (music streaming is automatically stopped)
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}
-97
View File
@@ -1,97 +0,0 @@
-------------------------------------------------------------------------------------------
--
-- raylib [audio] example - Raw audio streaming
--
-- NOTE: This example requires OpenAL Soft library installed
--
-- This example has been created using raylib 1.6 (www.raylib.com)
-- raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
--
-- Copyright (c) 2014-2016 Ramon Santamaria (@raysan5)
--
-------------------------------------------------------------------------------------------
MAX_SAMPLES = 20000
DEG2RAD = math.pi/180.0
-- Initialization
-------------------------------------------------------------------------------------------
local screenWidth = 800
local screenHeight = 450
InitWindow(screenWidth, screenHeight, "raylib [audio] example - raw audio streaming")
InitAudioDevice() -- Initialize audio device
-- Init raw audio stream (sample rate: 22050, sample size: 32bit-float, channels: 1-mono)
local stream = InitAudioStream(22050, 32, 1)
-- Fill audio stream with some samples (sine wave)
local data = {}
for i = 1, MAX_SAMPLES do
data[i] = math.sin(((2*math.pi*i)/2)*DEG2RAD)
end
-- NOTE: The generated MAX_SAMPLES do not fit to close a perfect loop
-- for that reason, there is a clip everytime audio stream is looped
PlayAudioStream(stream)
local totalSamples = MAX_SAMPLES
local samplesLeft = totalSamples
local position = Vector2(0, 0)
SetTargetFPS(30) -- Set our game to run at 30 frames-per-second
-------------------------------------------------------------------------------------------
-- Main game loop
while not WindowShouldClose() do -- Detect window close button or ESC key
-- Update
---------------------------------------------------------------------------------------
-- Refill audio stream if required
if (IsAudioBufferProcessed(stream)) then
local numSamples = 0
if (samplesLeft >= 4096) then numSamples = 4096
else numSamples = samplesLeft end
UpdateAudioStream(stream, data + (totalSamples - samplesLeft), numSamples)
samplesLeft = samplesLeft - numSamples
-- Reset samples feeding (loop audio)
if (samplesLeft <= 0) then samplesLeft = totalSamples end
end
---------------------------------------------------------------------------------------
-- Draw
---------------------------------------------------------------------------------------
BeginDrawing()
ClearBackground(RAYWHITE)
DrawText("SINE WAVE SHOULD BE PLAYING!", 240, 140, 20, LIGHTGRAY)
-- NOTE: Draw a part of the sine wave (only screen width)
for i = 1, GetScreenWidth() do
position.x = (i - 1)
position.y = 250 + 50*data[i]
DrawPixelV(position, RED)
end
EndDrawing()
---------------------------------------------------------------------------------------
end
-- De-Initialization
-------------------------------------------------------------------------------------------
CloseAudioStream(stream) -- Close raw audio stream and delete buffers from RAM
CloseAudioDevice() -- Close audio device (music streaming is automatically stopped)
CloseWindow() -- Close window and OpenGL context
-------------------------------------------------------------------------------------------
-59
View File
@@ -1,59 +0,0 @@
-------------------------------------------------------------------------------------------
--
-- raylib [audio] example - Sound loading and playing
--
-- NOTE: This example requires OpenAL Soft library installed
--
-- This example has been created using raylib 1.6 (www.raylib.com)
-- raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
--
-- Copyright (c) 2014-2016 Ramon Santamaria (@raysan5)
--
-------------------------------------------------------------------------------------------
-- Initialization
-------------------------------------------------------------------------------------------
local screenWidth = 800
local screenHeight = 450
InitWindow(screenWidth, screenHeight, "raylib [audio] example - sound loading and playing")
InitAudioDevice() -- Initialize audio device
local fxWav = LoadSound("resources/audio/weird.wav") -- Load WAV audio file
local fxOgg = LoadSound("resources/audio/tanatana.ogg") -- Load OGG audio file
SetTargetFPS(60)
-------------------------------------------------------------------------------------------
-- Main game loop
while not WindowShouldClose() do -- Detect window close button or ESC key
-- Update
---------------------------------------------------------------------------------------
if (IsKeyPressed(KEY.SPACE)) then PlaySound(fxWav) end -- Play WAV sound
if (IsKeyPressed(KEY.ENTER)) then PlaySound(fxOgg) end -- Play OGG sound
---------------------------------------------------------------------------------------
-- Draw
---------------------------------------------------------------------------------------
BeginDrawing()
ClearBackground(RAYWHITE)
DrawText("Press SPACE to PLAY the WAV sound!", 200, 180, 20, LIGHTGRAY)
DrawText("Press ENTER to PLAY the OGG sound!", 200, 220, 20, LIGHTGRAY)
EndDrawing()
---------------------------------------------------------------------------------------
end
-- De-Initialization
-------------------------------------------------------------------------------------------
UnloadSound(fxWav) -- Unload sound data
UnloadSound(fxOgg) -- Unload sound data
CloseAudioDevice() -- Close audio device
CloseWindow() -- Close window and OpenGL context
-------------------------------------------------------------------------------------------
-81
View File
@@ -1,81 +0,0 @@
/*******************************************************************************************
*
* raylib [audio] example - Using audio module as standalone module
*
* NOTE: This example does not require any graphic device, it can run directly on console.
*
* [audio] module requires some external libs:
* OpenAL Soft - Audio device management lib (http://kcat.strangesoft.net/openal.html)
* stb_vorbis - Ogg audio files loading (http://www.nothings.org/stb_vorbis/)
* jar_xm - XM module file loading
* jar_mod - MOD audio file loading
*
* Compile audio module using:
* gcc -c audio.c stb_vorbis.c -Wall -std=c99 -DAUDIO_STANDALONE
*
* Compile example using:
* gcc -o $(NAME_PART).exe $(FILE_NAME) audio.o stb_vorbis.o -lopenal32 -std=c99
*
* This example has been created using raylib 1.5 (www.raylib.com)
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
*
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
#include <stdio.h>
#include <conio.h> // Windows only, no stardard library
#include "audio.h"
#define KEY_ESCAPE 27
int main()
{
// Initialization
//--------------------------------------------------------------------------------------
unsigned char key;
InitAudioDevice();
Sound fxWav = LoadSound("resources/audio/weird.wav"); // Load WAV audio file
Sound fxOgg = LoadSound("resources/audio/tanatana.ogg"); // Load OGG audio file
Music music = LoadMusicStream("resources/audio/guitar_noodling.ogg");
PlayMusicStream(music);
printf("\nPress s or d to play sounds...\n");
//--------------------------------------------------------------------------------------
// Main loop
while (key != KEY_ESCAPE)
{
if (kbhit()) key = getch();
if (key == 's')
{
PlaySound(fxWav);
key = 0;
}
if (key == 'd')
{
PlaySound(fxOgg);
key = 0;
}
UpdateMusicStream(music);
}
// De-Initialization
//--------------------------------------------------------------------------------------
UnloadSound(fxWav); // Unload sound data
UnloadSound(fxOgg); // Unload sound data
UnloadMusicStream(music); // Unload music stream data
CloseAudioDevice();
//--------------------------------------------------------------------------------------
return 0;
}
+108
View File
@@ -0,0 +1,108 @@
const std = @import("std");
const builtin = @import("builtin");
// This has been tested to work with zig 0.11.0 (67709b6, Aug 4 2023)
fn add_module(comptime module: []const u8, b: *std.Build, target: std.zig.CrossTarget, optimize: std.builtin.OptimizeMode) !*std.Build.Step {
if (target.getOsTag() == .emscripten) {
@panic("Emscripten building via Zig unsupported");
}
const all = b.step(module, "All " ++ module ++ " examples");
const dir = try std.fs.cwd().openIterableDir(module, .{});
var iter = dir.iterate();
while (try iter.next()) |entry| {
if (entry.kind != .file) continue;
const extension_idx = std.mem.lastIndexOf(u8, entry.name, ".c") orelse continue;
const name = entry.name[0..extension_idx];
const path = try std.fs.path.join(b.allocator, &.{ module, entry.name });
// zig's mingw headers do not include pthread.h
if (std.mem.eql(u8, "core_loading_thread", name) and target.getOsTag() == .windows) continue;
const exe = b.addExecutable(.{
.name = name,
.target = target,
.optimize = optimize,
});
exe.addCSourceFile(.{ .file = .{ .path = path }, .flags = &.{} });
exe.linkLibC();
exe.addObjectFile(switch (target.getOsTag()) {
.windows => .{ .path = "../zig-out/lib/raylib.lib" },
.linux => .{ .path = "../zig-out/lib/libraylib.a" },
.macos => .{ .path = "../zig-out/lib/libraylib.a" },
.emscripten => .{ .path = "../zig-out/lib/libraylib.a" },
else => @panic("Unsupported OS"),
});
exe.addIncludePath(.{ .path = "../src" });
exe.addIncludePath(.{ .path = "../src/external" });
exe.addIncludePath(.{ .path = "../src/external/glfw/include" });
switch (target.getOsTag()) {
.windows => {
exe.linkSystemLibrary("winmm");
exe.linkSystemLibrary("gdi32");
exe.linkSystemLibrary("opengl32");
exe.addIncludePath(.{ .path = "external/glfw/deps/mingw" });
exe.defineCMacro("PLATFORM_DESKTOP", null);
},
.linux => {
exe.linkSystemLibrary("GL");
exe.linkSystemLibrary("rt");
exe.linkSystemLibrary("dl");
exe.linkSystemLibrary("m");
exe.linkSystemLibrary("X11");
exe.defineCMacro("PLATFORM_DESKTOP", null);
},
.macos => {
exe.linkFramework("Foundation");
exe.linkFramework("Cocoa");
exe.linkFramework("OpenGL");
exe.linkFramework("CoreAudio");
exe.linkFramework("CoreVideo");
exe.linkFramework("IOKit");
exe.defineCMacro("PLATFORM_DESKTOP", null);
},
else => {
@panic("Unsupported OS");
},
}
const install_cmd = b.addInstallArtifact(exe, .{});
const run_cmd = b.addRunArtifact(exe);
run_cmd.step.dependOn(&install_cmd.step);
const run_step = b.step(name, name);
run_step.dependOn(&run_cmd.step);
all.dependOn(&install_cmd.step);
}
return all;
}
pub fn build(b: *std.Build) !void {
// Standard target options allows the person running `zig build` to choose
// what target to build for. Here we do not override the defaults, which
// means any target is allowed, and the default is native. Other options
// for restricting supported target set are available.
const target = b.standardTargetOptions(.{});
// Standard optimization options allow the person running `zig build` to select
// between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. Here we do not
// set a preferred release mode, allowing the user to decide how to optimize.
const optimize = b.standardOptimizeOption(.{});
const all = b.getInstallStep();
all.dependOn(try add_module("audio", b, target, optimize));
all.dependOn(try add_module("core", b, target, optimize));
all.dependOn(try add_module("models", b, target, optimize));
all.dependOn(try add_module("others", b, target, optimize));
all.dependOn(try add_module("shaders", b, target, optimize));
all.dependOn(try add_module("shapes", b, target, optimize));
all.dependOn(try add_module("text", b, target, optimize));
all.dependOn(try add_module("textures", b, target, optimize));
}
@@ -1,11 +1,13 @@
/*******************************************************************************************
*
* raylib [core] example - 2d camera
* raylib [core] example - 2D Camera system
*
* This example has been created using raylib 1.5 (www.raylib.com)
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
* Example originally created with raylib 1.5, last time updated with raylib 3.0
*
* Copyright (c) 2016 Ramon Santamaria (@raysan5)
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2016-2023 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
@@ -13,78 +15,73 @@
#define MAX_BUILDINGS 100
int main()
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
int screenWidth = 800;
int screenHeight = 450;
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - 2d camera");
Rectangle player = { 400, 280, 40, 40 };
Rectangle buildings[MAX_BUILDINGS];
Color buildColors[MAX_BUILDINGS];
Rectangle buildings[MAX_BUILDINGS] = { 0 };
Color buildColors[MAX_BUILDINGS] = { 0 };
int spacing = 0;
for (int i = 0; i < MAX_BUILDINGS; i++)
{
buildings[i].width = GetRandomValue(50, 200);
buildings[i].height = GetRandomValue(100, 800);
buildings[i].y = screenHeight - 130 - buildings[i].height;
buildings[i].x = -6000 + spacing;
buildings[i].width = (float)GetRandomValue(50, 200);
buildings[i].height = (float)GetRandomValue(100, 800);
buildings[i].y = screenHeight - 130.0f - buildings[i].height;
buildings[i].x = -6000.0f + spacing;
spacing += (int)buildings[i].width;
spacing += buildings[i].width;
buildColors[i] = (Color){ GetRandomValue(200, 240), GetRandomValue(200, 240), GetRandomValue(200, 250), 255 };
}
Camera2D camera;
camera.target = (Vector2){ player.x + 20, player.y + 20 };
camera.offset = (Vector2){ 0, 0 };
Camera2D camera = { 0 };
camera.target = (Vector2){ player.x + 20.0f, player.y + 20.0f };
camera.offset = (Vector2){ screenWidth/2.0f, screenHeight/2.0f };
camera.rotation = 0.0f;
camera.zoom = 1.0f;
SetTargetFPS(60);
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
if (IsKeyDown(KEY_RIGHT))
{
player.x += 2; // Player movement
camera.offset.x -= 2; // Camera displacement with player movement
}
else if (IsKeyDown(KEY_LEFT))
{
player.x -= 2; // Player movement
camera.offset.x += 2; // Camera displacement with player movement
}
// Player movement
if (IsKeyDown(KEY_RIGHT)) player.x += 2;
else if (IsKeyDown(KEY_LEFT)) player.x -= 2;
// Camera target follows player
camera.target = (Vector2){ player.x + 20, player.y + 20 };
// Camera rotation controls
if (IsKeyDown(KEY_A)) camera.rotation--;
else if (IsKeyDown(KEY_S)) camera.rotation++;
// Limit camera rotation to 80 degrees (-40 to 40)
if (camera.rotation > 40) camera.rotation = 40;
if (camera.rotation > 40) camera.rotation = 40;
else if (camera.rotation < -40) camera.rotation = -40;
// Camera zoom controls
camera.zoom += ((float)GetMouseWheelMove()*0.05f);
if (camera.zoom > 3.0f) camera.zoom = 3.0f;
else if (camera.zoom < 0.1f) camera.zoom = 0.1f;
// Camera reset (zoom and rotation)
if (IsKeyPressed(KEY_R))
if (IsKeyPressed(KEY_R))
{
camera.zoom = 1.0f;
camera.rotation = 0.0f;
@@ -94,32 +91,32 @@ int main()
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(RAYWHITE);
Begin2dMode(camera);
BeginMode2D(camera);
DrawRectangle(-6000, 320, 13000, 8000, DARKGRAY);
for (int i = 0; i < MAX_BUILDINGS; i++) DrawRectangleRec(buildings[i], buildColors[i]);
DrawRectangleRec(player, RED);
DrawRectangle(camera.target.x, -500, 1, screenHeight*4, GREEN);
DrawRectangle(-500, camera.target.y, screenWidth*4, 1, GREEN);
End2dMode();
DrawLine((int)camera.target.x, -screenHeight*10, (int)camera.target.x, screenHeight*10, GREEN);
DrawLine(-screenWidth*10, (int)camera.target.y, screenWidth*10, (int)camera.target.y, GREEN);
EndMode2D();
DrawText("SCREEN AREA", 640, 10, 20, RED);
DrawRectangle(0, 0, screenWidth, 5, RED);
DrawRectangle(0, 5, 5, screenHeight - 10, RED);
DrawRectangle(screenWidth - 5, 5, 5, screenHeight - 10, RED);
DrawRectangle(0, screenHeight - 5, screenWidth, 5, RED);
DrawRectangle( 10, 10, 250, 113, Fade(SKYBLUE, 0.5f));
DrawRectangleLines( 10, 10, 250, 113, BLUE);
DrawText("Free 2d camera controls:", 20, 20, 10, BLACK);
DrawText("- Right/Left to move Offset", 40, 40, 10, DARKGRAY);
DrawText("- Mouse Wheel to Zoom in-out", 40, 60, 10, DARKGRAY);
@@ -131,9 +128,9 @@ int main()
}
// De-Initialization
//--------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}
}

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

+105
View File
@@ -0,0 +1,105 @@
/*******************************************************************************************
*
* raylib [core] example - 2d camera mouse zoom
*
* Example originally created with raylib 4.2, last time updated with raylib 4.2
*
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2022-2023 Jeffery Myers (@JeffM2501)
*
********************************************************************************************/
#include "raylib.h"
#include "rlgl.h"
#include "raymath.h"
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main ()
{
// Initialization
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - 2d camera mouse zoom");
Camera2D camera = { 0 };
camera.zoom = 1.0f;
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
// Translate based on mouse right click
if (IsMouseButtonDown(MOUSE_BUTTON_RIGHT))
{
Vector2 delta = GetMouseDelta();
delta = Vector2Scale(delta, -1.0f/camera.zoom);
camera.target = Vector2Add(camera.target, delta);
}
// Zoom based on mouse wheel
float wheel = GetMouseWheelMove();
if (wheel != 0)
{
// Get the world point that is under the mouse
Vector2 mouseWorldPos = GetScreenToWorld2D(GetMousePosition(), camera);
// Set the offset to where the mouse is
camera.offset = GetMousePosition();
// Set the target to match, so that the camera maps the world space point
// under the cursor to the screen space point under the cursor at any zoom
camera.target = mouseWorldPos;
// Zoom increment
const float zoomIncrement = 0.125f;
camera.zoom += (wheel*zoomIncrement);
if (camera.zoom < zoomIncrement) camera.zoom = zoomIncrement;
}
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(BLACK);
BeginMode2D(camera);
// Draw the 3d grid, rotated 90 degrees and centered around 0,0
// just so we have something in the XY plane
rlPushMatrix();
rlTranslatef(0, 25*50, 0);
rlRotatef(90, 1, 0, 0);
DrawGrid(100, 50);
rlPopMatrix();
// Draw a reference circle
DrawCircle(100, 100, 50, YELLOW);
EndMode2D();
DrawText("Mouse right button drag to move, mouse wheel to zoom", 10, 10, 20, WHITE);
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

+298
View File
@@ -0,0 +1,298 @@
/*******************************************************************************************
*
* raylib [core] example - 2D Camera platformer
*
* Example originally created with raylib 2.5, last time updated with raylib 3.0
*
* Example contributed by arvyy (@arvyy) and reviewed by Ramon Santamaria (@raysan5)
*
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2019-2023 arvyy (@arvyy)
*
********************************************************************************************/
#include "raylib.h"
#include "raymath.h"
#define G 400
#define PLAYER_JUMP_SPD 350.0f
#define PLAYER_HOR_SPD 200.0f
typedef struct Player {
Vector2 position;
float speed;
bool canJump;
} Player;
typedef struct EnvItem {
Rectangle rect;
int blocking;
Color color;
} EnvItem;
//----------------------------------------------------------------------------------
// Module functions declaration
//----------------------------------------------------------------------------------
void UpdatePlayer(Player *player, EnvItem *envItems, int envItemsLength, float delta);
void UpdateCameraCenter(Camera2D *camera, Player *player, EnvItem *envItems, int envItemsLength, float delta, int width, int height);
void UpdateCameraCenterInsideMap(Camera2D *camera, Player *player, EnvItem *envItems, int envItemsLength, float delta, int width, int height);
void UpdateCameraCenterSmoothFollow(Camera2D *camera, Player *player, EnvItem *envItems, int envItemsLength, float delta, int width, int height);
void UpdateCameraEvenOutOnLanding(Camera2D *camera, Player *player, EnvItem *envItems, int envItemsLength, float delta, int width, int height);
void UpdateCameraPlayerBoundsPush(Camera2D *camera, Player *player, EnvItem *envItems, int envItemsLength, float delta, int width, int height);
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - 2d camera");
Player player = { 0 };
player.position = (Vector2){ 400, 280 };
player.speed = 0;
player.canJump = false;
EnvItem envItems[] = {
{{ 0, 0, 1000, 400 }, 0, LIGHTGRAY },
{{ 0, 400, 1000, 200 }, 1, GRAY },
{{ 300, 200, 400, 10 }, 1, GRAY },
{{ 250, 300, 100, 10 }, 1, GRAY },
{{ 650, 300, 100, 10 }, 1, GRAY }
};
int envItemsLength = sizeof(envItems)/sizeof(envItems[0]);
Camera2D camera = { 0 };
camera.target = player.position;
camera.offset = (Vector2){ screenWidth/2.0f, screenHeight/2.0f };
camera.rotation = 0.0f;
camera.zoom = 1.0f;
// Store pointers to the multiple update camera functions
void (*cameraUpdaters[])(Camera2D*, Player*, EnvItem*, int, float, int, int) = {
UpdateCameraCenter,
UpdateCameraCenterInsideMap,
UpdateCameraCenterSmoothFollow,
UpdateCameraEvenOutOnLanding,
UpdateCameraPlayerBoundsPush
};
int cameraOption = 0;
int cameraUpdatersLength = sizeof(cameraUpdaters)/sizeof(cameraUpdaters[0]);
char *cameraDescriptions[] = {
"Follow player center",
"Follow player center, but clamp to map edges",
"Follow player center; smoothed",
"Follow player center horizontally; update player center vertically after landing",
"Player push camera on getting too close to screen edge"
};
SetTargetFPS(60);
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose())
{
// Update
//----------------------------------------------------------------------------------
float deltaTime = GetFrameTime();
UpdatePlayer(&player, envItems, envItemsLength, deltaTime);
camera.zoom += ((float)GetMouseWheelMove()*0.05f);
if (camera.zoom > 3.0f) camera.zoom = 3.0f;
else if (camera.zoom < 0.25f) camera.zoom = 0.25f;
if (IsKeyPressed(KEY_R))
{
camera.zoom = 1.0f;
player.position = (Vector2){ 400, 280 };
}
if (IsKeyPressed(KEY_C)) cameraOption = (cameraOption + 1)%cameraUpdatersLength;
// Call update camera function by its pointer
cameraUpdaters[cameraOption](&camera, &player, envItems, envItemsLength, deltaTime, screenWidth, screenHeight);
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(LIGHTGRAY);
BeginMode2D(camera);
for (int i = 0; i < envItemsLength; i++) DrawRectangleRec(envItems[i].rect, envItems[i].color);
Rectangle playerRect = { player.position.x - 20, player.position.y - 40, 40, 40 };
DrawRectangleRec(playerRect, RED);
EndMode2D();
DrawText("Controls:", 20, 20, 10, BLACK);
DrawText("- Right/Left to move", 40, 40, 10, DARKGRAY);
DrawText("- Space to jump", 40, 60, 10, DARKGRAY);
DrawText("- Mouse Wheel to Zoom in-out, R to reset zoom", 40, 80, 10, DARKGRAY);
DrawText("- C to change camera mode", 40, 100, 10, DARKGRAY);
DrawText("Current camera mode:", 20, 120, 10, BLACK);
DrawText(cameraDescriptions[cameraOption], 40, 140, 10, DARKGRAY);
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}
void UpdatePlayer(Player *player, EnvItem *envItems, int envItemsLength, float delta)
{
if (IsKeyDown(KEY_LEFT)) player->position.x -= PLAYER_HOR_SPD*delta;
if (IsKeyDown(KEY_RIGHT)) player->position.x += PLAYER_HOR_SPD*delta;
if (IsKeyDown(KEY_SPACE) && player->canJump)
{
player->speed = -PLAYER_JUMP_SPD;
player->canJump = false;
}
int hitObstacle = 0;
for (int i = 0; i < envItemsLength; i++)
{
EnvItem *ei = envItems + i;
Vector2 *p = &(player->position);
if (ei->blocking &&
ei->rect.x <= p->x &&
ei->rect.x + ei->rect.width >= p->x &&
ei->rect.y >= p->y &&
ei->rect.y <= p->y + player->speed*delta)
{
hitObstacle = 1;
player->speed = 0.0f;
p->y = ei->rect.y;
}
}
if (!hitObstacle)
{
player->position.y += player->speed*delta;
player->speed += G*delta;
player->canJump = false;
}
else player->canJump = true;
}
void UpdateCameraCenter(Camera2D *camera, Player *player, EnvItem *envItems, int envItemsLength, float delta, int width, int height)
{
camera->offset = (Vector2){ width/2.0f, height/2.0f };
camera->target = player->position;
}
void UpdateCameraCenterInsideMap(Camera2D *camera, Player *player, EnvItem *envItems, int envItemsLength, float delta, int width, int height)
{
camera->target = player->position;
camera->offset = (Vector2){ width/2.0f, height/2.0f };
float minX = 1000, minY = 1000, maxX = -1000, maxY = -1000;
for (int i = 0; i < envItemsLength; i++)
{
EnvItem *ei = envItems + i;
minX = fminf(ei->rect.x, minX);
maxX = fmaxf(ei->rect.x + ei->rect.width, maxX);
minY = fminf(ei->rect.y, minY);
maxY = fmaxf(ei->rect.y + ei->rect.height, maxY);
}
Vector2 max = GetWorldToScreen2D((Vector2){ maxX, maxY }, *camera);
Vector2 min = GetWorldToScreen2D((Vector2){ minX, minY }, *camera);
if (max.x < width) camera->offset.x = width - (max.x - width/2);
if (max.y < height) camera->offset.y = height - (max.y - height/2);
if (min.x > 0) camera->offset.x = width/2 - min.x;
if (min.y > 0) camera->offset.y = height/2 - min.y;
}
void UpdateCameraCenterSmoothFollow(Camera2D *camera, Player *player, EnvItem *envItems, int envItemsLength, float delta, int width, int height)
{
static float minSpeed = 30;
static float minEffectLength = 10;
static float fractionSpeed = 0.8f;
camera->offset = (Vector2){ width/2.0f, height/2.0f };
Vector2 diff = Vector2Subtract(player->position, camera->target);
float length = Vector2Length(diff);
if (length > minEffectLength)
{
float speed = fmaxf(fractionSpeed*length, minSpeed);
camera->target = Vector2Add(camera->target, Vector2Scale(diff, speed*delta/length));
}
}
void UpdateCameraEvenOutOnLanding(Camera2D *camera, Player *player, EnvItem *envItems, int envItemsLength, float delta, int width, int height)
{
static float evenOutSpeed = 700;
static int eveningOut = false;
static float evenOutTarget;
camera->offset = (Vector2){ width/2.0f, height/2.0f };
camera->target.x = player->position.x;
if (eveningOut)
{
if (evenOutTarget > camera->target.y)
{
camera->target.y += evenOutSpeed*delta;
if (camera->target.y > evenOutTarget)
{
camera->target.y = evenOutTarget;
eveningOut = 0;
}
}
else
{
camera->target.y -= evenOutSpeed*delta;
if (camera->target.y < evenOutTarget)
{
camera->target.y = evenOutTarget;
eveningOut = 0;
}
}
}
else
{
if (player->canJump && (player->speed == 0) && (player->position.y != camera->target.y))
{
eveningOut = 1;
evenOutTarget = player->position.y;
}
}
}
void UpdateCameraPlayerBoundsPush(Camera2D *camera, Player *player, EnvItem *envItems, int envItemsLength, float delta, int width, int height)
{
static Vector2 bbox = { 0.2f, 0.2f };
Vector2 bboxWorldMin = GetScreenToWorld2D((Vector2){ (1 - bbox.x)*0.5f*width, (1 - bbox.y)*0.5f*height }, *camera);
Vector2 bboxWorldMax = GetScreenToWorld2D((Vector2){ (1 + bbox.x)*0.5f*width, (1 + bbox.y)*0.5f*height }, *camera);
camera->offset = (Vector2){ (1 - bbox.x)*0.5f * width, (1 - bbox.y)*0.5f*height };
if (player->position.x < bboxWorldMin.x) camera->target.x = player->position.x;
if (player->position.y < bboxWorldMin.y) camera->target.y = player->position.y;
if (player->position.x > bboxWorldMax.x) camera->target.x = bboxWorldMin.x + (player->position.x - bboxWorldMax.x);
if (player->position.y > bboxWorldMax.y) camera->target.y = bboxWorldMin.y + (player->position.y - bboxWorldMax.y);
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

+167
View File
@@ -0,0 +1,167 @@
/*******************************************************************************************
*
* raylib [core] example - 2d camera split screen
*
* Addapted from the core_3d_camera_split_screen example:
* https://github.com/raysan5/raylib/blob/master/examples/core/core_3d_camera_split_screen.c
*
* Example originally created with raylib 4.5, last time updated with raylib 4.5
*
* Example contributed by Gabriel dos Santos Sanches (@gabrielssanches) and reviewed by Ramon Santamaria (@raysan5)
*
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2023 Gabriel dos Santos Sanches (@gabrielssanches)
*
********************************************************************************************/
#include "raylib.h"
#define PLAYER_SIZE 40
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 440;
InitWindow(screenWidth, screenHeight, "raylib [core] example - 2d camera split screen");
Rectangle player1 = { 200, 200, PLAYER_SIZE, PLAYER_SIZE };
Rectangle player2 = { 250, 200, PLAYER_SIZE, PLAYER_SIZE };
Camera2D camera1 = { 0 };
camera1.target = (Vector2){ player1.x, player1.y };
camera1.offset = (Vector2){ 200.0f, 200.0f };
camera1.rotation = 0.0f;
camera1.zoom = 1.0f;
Camera2D camera2 = { 0 };
camera2.target = (Vector2){ player2.x, player2.y };
camera2.offset = (Vector2){ 200.0f, 200.0f };
camera2.rotation = 0.0f;
camera2.zoom = 1.0f;
RenderTexture screenCamera1 = LoadRenderTexture(screenWidth/2, screenHeight);
RenderTexture screenCamera2 = LoadRenderTexture(screenWidth/2, screenHeight);
// Build a flipped rectangle the size of the split view to use for drawing later
Rectangle splitScreenRect = { 0.0f, 0.0f, (float)screenCamera1.texture.width, (float)-screenCamera1.texture.height };
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
if (IsKeyDown(KEY_S)) player1.y += 3.0f;
else if (IsKeyDown(KEY_W)) player1.y -= 3.0f;
if (IsKeyDown(KEY_D)) player1.x += 3.0f;
else if (IsKeyDown(KEY_A)) player1.x -= 3.0f;
if (IsKeyDown(KEY_UP)) player2.y -= 3.0f;
else if (IsKeyDown(KEY_DOWN)) player2.y += 3.0f;
if (IsKeyDown(KEY_RIGHT)) player2.x += 3.0f;
else if (IsKeyDown(KEY_LEFT)) player2.x -= 3.0f;
camera1.target = (Vector2){ player1.x, player1.y };
camera2.target = (Vector2){ player2.x, player2.y };
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginTextureMode(screenCamera1);
ClearBackground(RAYWHITE);
BeginMode2D(camera1);
// Draw full scene with first camera
for (int i = 0; i < screenWidth/PLAYER_SIZE + 1; i++)
{
DrawLineV((Vector2){(float)PLAYER_SIZE*i, 0}, (Vector2){ (float)PLAYER_SIZE*i, (float)screenHeight}, LIGHTGRAY);
}
for (int i = 0; i < screenHeight/PLAYER_SIZE + 1; i++)
{
DrawLineV((Vector2){0, (float)PLAYER_SIZE*i}, (Vector2){ (float)screenWidth, (float)PLAYER_SIZE*i}, LIGHTGRAY);
}
for (int i = 0; i < screenWidth/PLAYER_SIZE; i++)
{
for (int j = 0; j < screenHeight/PLAYER_SIZE; j++)
{
DrawText(TextFormat("[%i,%i]", i, j), 10 + PLAYER_SIZE*i, 15 + PLAYER_SIZE*j, 10, LIGHTGRAY);
}
}
DrawRectangleRec(player1, RED);
DrawRectangleRec(player2, BLUE);
EndMode2D();
DrawRectangle(0, 0, GetScreenWidth()/2, 30, Fade(RAYWHITE, 0.6f));
DrawText("PLAYER1: W/S/A/D to move", 10, 10, 10, MAROON);
EndTextureMode();
BeginTextureMode(screenCamera2);
ClearBackground(RAYWHITE);
BeginMode2D(camera2);
// Draw full scene with second camera
for (int i = 0; i < screenWidth/PLAYER_SIZE + 1; i++)
{
DrawLineV((Vector2){ (float)PLAYER_SIZE*i, 0}, (Vector2){ (float)PLAYER_SIZE*i, (float)screenHeight}, LIGHTGRAY);
}
for (int i = 0; i < screenHeight/PLAYER_SIZE + 1; i++)
{
DrawLineV((Vector2){0, (float)PLAYER_SIZE*i}, (Vector2){ (float)screenWidth, (float)PLAYER_SIZE*i}, LIGHTGRAY);
}
for (int i = 0; i < screenWidth/PLAYER_SIZE; i++)
{
for (int j = 0; j < screenHeight/PLAYER_SIZE; j++)
{
DrawText(TextFormat("[%i,%i]", i, j), 10 + PLAYER_SIZE*i, 15 + PLAYER_SIZE*j, 10, LIGHTGRAY);
}
}
DrawRectangleRec(player1, RED);
DrawRectangleRec(player2, BLUE);
EndMode2D();
DrawRectangle(0, 0, GetScreenWidth()/2, 30, Fade(RAYWHITE, 0.6f));
DrawText("PLAYER2: UP/DOWN/LEFT/RIGHT to move", 10, 10, 10, DARKBLUE);
EndTextureMode();
// Draw both views render textures to the screen side by side
BeginDrawing();
ClearBackground(BLACK);
DrawTextureRec(screenCamera1.texture, splitScreenRect, (Vector2){ 0, 0 }, WHITE);
DrawTextureRec(screenCamera2.texture, splitScreenRect, (Vector2){ screenWidth/2.0f, 0 }, WHITE);
DrawRectangle(GetScreenWidth()/2 - 2, 0, 4, GetScreenHeight(), LIGHTGRAY);
EndDrawing();
}
// De-Initialization
//--------------------------------------------------------------------------------------
UnloadRenderTexture(screenCamera1); // Unload render texture
UnloadRenderTexture(screenCamera2); // Unload render texture
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

+206
View File
@@ -0,0 +1,206 @@
/*******************************************************************************************
*
* raylib [core] example - 3d camera first person
*
* Example originally created with raylib 1.3, last time updated with raylib 1.3
*
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2015-2023 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
#include "raylib.h"
#include "rcamera.h"
#define MAX_COLUMNS 20
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera first person");
// Define the camera to look into our 3d world (position, target, up vector)
Camera camera = { 0 };
camera.position = (Vector3){ 0.0f, 2.0f, 4.0f }; // Camera position
camera.target = (Vector3){ 0.0f, 2.0f, 0.0f }; // Camera looking at point
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
camera.fovy = 60.0f; // Camera field-of-view Y
camera.projection = CAMERA_PERSPECTIVE; // Camera projection type
int cameraMode = CAMERA_FIRST_PERSON;
// Generates some random columns
float heights[MAX_COLUMNS] = { 0 };
Vector3 positions[MAX_COLUMNS] = { 0 };
Color colors[MAX_COLUMNS] = { 0 };
for (int i = 0; i < MAX_COLUMNS; i++)
{
heights[i] = (float)GetRandomValue(1, 12);
positions[i] = (Vector3){ (float)GetRandomValue(-15, 15), heights[i]/2.0f, (float)GetRandomValue(-15, 15) };
colors[i] = (Color){ GetRandomValue(20, 255), GetRandomValue(10, 55), 30, 255 };
}
DisableCursor(); // Limit cursor to relative movement inside the window
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
// Switch camera mode
if (IsKeyPressed(KEY_ONE))
{
cameraMode = CAMERA_FREE;
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Reset roll
}
if (IsKeyPressed(KEY_TWO))
{
cameraMode = CAMERA_FIRST_PERSON;
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Reset roll
}
if (IsKeyPressed(KEY_THREE))
{
cameraMode = CAMERA_THIRD_PERSON;
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Reset roll
}
if (IsKeyPressed(KEY_FOUR))
{
cameraMode = CAMERA_ORBITAL;
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Reset roll
}
// Switch camera projection
if (IsKeyPressed(KEY_P))
{
if (camera.projection == CAMERA_PERSPECTIVE)
{
// Create isometric view
cameraMode = CAMERA_THIRD_PERSON;
// Note: The target distance is related to the render distance in the orthographic projection
camera.position = (Vector3){ 0.0f, 2.0f, -100.0f };
camera.target = (Vector3){ 0.0f, 2.0f, 0.0f };
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f };
camera.projection = CAMERA_ORTHOGRAPHIC;
camera.fovy = 20.0f; // near plane width in CAMERA_ORTHOGRAPHIC
CameraYaw(&camera, -135 * DEG2RAD, true);
CameraPitch(&camera, -45 * DEG2RAD, true, true, false);
}
else if (camera.projection == CAMERA_ORTHOGRAPHIC)
{
// Reset to default view
cameraMode = CAMERA_THIRD_PERSON;
camera.position = (Vector3){ 0.0f, 2.0f, 10.0f };
camera.target = (Vector3){ 0.0f, 2.0f, 0.0f };
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f };
camera.projection = CAMERA_PERSPECTIVE;
camera.fovy = 60.0f;
}
}
// Update camera computes movement internally depending on the camera mode
// Some default standard keyboard/mouse inputs are hardcoded to simplify use
// For advance camera controls, it's reecommended to compute camera movement manually
UpdateCamera(&camera, cameraMode); // Update camera
/*
// Camera PRO usage example (EXPERIMENTAL)
// This new camera function allows custom movement/rotation values to be directly provided
// as input parameters, with this approach, rcamera module is internally independent of raylib inputs
UpdateCameraPro(&camera,
(Vector3){
(IsKeyDown(KEY_W) || IsKeyDown(KEY_UP))*0.1f - // Move forward-backward
(IsKeyDown(KEY_S) || IsKeyDown(KEY_DOWN))*0.1f,
(IsKeyDown(KEY_D) || IsKeyDown(KEY_RIGHT))*0.1f - // Move right-left
(IsKeyDown(KEY_A) || IsKeyDown(KEY_LEFT))*0.1f,
0.0f // Move up-down
},
(Vector3){
GetMouseDelta().x*0.05f, // Rotation: yaw
GetMouseDelta().y*0.05f, // Rotation: pitch
0.0f // Rotation: roll
},
GetMouseWheelMove()*2.0f); // Move to target (zoom)
*/
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(RAYWHITE);
BeginMode3D(camera);
DrawPlane((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector2){ 32.0f, 32.0f }, LIGHTGRAY); // Draw ground
DrawCube((Vector3){ -16.0f, 2.5f, 0.0f }, 1.0f, 5.0f, 32.0f, BLUE); // Draw a blue wall
DrawCube((Vector3){ 16.0f, 2.5f, 0.0f }, 1.0f, 5.0f, 32.0f, LIME); // Draw a green wall
DrawCube((Vector3){ 0.0f, 2.5f, 16.0f }, 32.0f, 5.0f, 1.0f, GOLD); // Draw a yellow wall
// Draw some cubes around
for (int i = 0; i < MAX_COLUMNS; i++)
{
DrawCube(positions[i], 2.0f, heights[i], 2.0f, colors[i]);
DrawCubeWires(positions[i], 2.0f, heights[i], 2.0f, MAROON);
}
// Draw player cube
if (cameraMode == CAMERA_THIRD_PERSON)
{
DrawCube(camera.target, 0.5f, 0.5f, 0.5f, PURPLE);
DrawCubeWires(camera.target, 0.5f, 0.5f, 0.5f, DARKPURPLE);
}
EndMode3D();
// Draw info boxes
DrawRectangle(5, 5, 330, 100, Fade(SKYBLUE, 0.5f));
DrawRectangleLines(5, 5, 330, 100, BLUE);
DrawText("Camera controls:", 15, 15, 10, BLACK);
DrawText("- Move keys: W, A, S, D, Space, Left-Ctrl", 15, 30, 10, BLACK);
DrawText("- Look around: arrow keys or mouse", 15, 45, 10, BLACK);
DrawText("- Camera mode keys: 1, 2, 3, 4", 15, 60, 10, BLACK);
DrawText("- Zoom keys: num-plus, num-minus or mouse scroll", 15, 75, 10, BLACK);
DrawText("- Camera projection key: P", 15, 90, 10, BLACK);
DrawRectangle(600, 5, 195, 100, Fade(SKYBLUE, 0.5f));
DrawRectangleLines(600, 5, 195, 100, BLUE);
DrawText("Camera status:", 610, 15, 10, BLACK);
DrawText(TextFormat("- Mode: %s", (cameraMode == CAMERA_FREE) ? "FREE" :
(cameraMode == CAMERA_FIRST_PERSON) ? "FIRST_PERSON" :
(cameraMode == CAMERA_THIRD_PERSON) ? "THIRD_PERSON" :
(cameraMode == CAMERA_ORBITAL) ? "ORBITAL" : "CUSTOM"), 610, 30, 10, BLACK);
DrawText(TextFormat("- Projection: %s", (camera.projection == CAMERA_PERSPECTIVE) ? "PERSPECTIVE" :
(camera.projection == CAMERA_ORTHOGRAPHIC) ? "ORTHOGRAPHIC" : "CUSTOM"), 610, 45, 10, BLACK);
DrawText(TextFormat("- Position: (%06.3f, %06.3f, %06.3f)", camera.position.x, camera.position.y, camera.position.z), 610, 60, 10, BLACK);
DrawText(TextFormat("- Target: (%06.3f, %06.3f, %06.3f)", camera.target.x, camera.target.y, camera.target.z), 610, 75, 10, BLACK);
DrawText(TextFormat("- Up: (%06.3f, %06.3f, %06.3f)", camera.up.x, camera.up.y, camera.up.z), 610, 90, 10, BLACK);
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

@@ -2,34 +2,40 @@
*
* raylib [core] example - Initialize 3d camera free
*
* This example has been created using raylib 1.3 (www.raylib.com)
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
* Example originally created with raylib 1.3, last time updated with raylib 1.3
*
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2015-2023 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
#include "raylib.h"
int main()
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
int screenWidth = 800;
int screenHeight = 450;
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera free");
// Define the camera to look into our 3d world
Camera camera;
Camera3D camera = { 0 };
camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position
camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
camera.fovy = 45.0f; // Camera field-of-view Y
camera.projection = CAMERA_PERSPECTIVE; // Camera projection type
Vector3 cubePosition = { 0.0f, 0.0f, 0.0f };
SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode
DisableCursor(); // Limit cursor to relative movement inside the window
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
@@ -39,9 +45,9 @@ int main()
{
// Update
//----------------------------------------------------------------------------------
UpdateCamera(&camera); // Update camera
if (IsKeyDown('Z')) camera.target = (Vector3){ 0.0f, 0.0f, 0.0f };
UpdateCamera(&camera, CAMERA_FREE);
if (IsKeyPressed('Z')) camera.target = (Vector3){ 0.0f, 0.0f, 0.0f };
//----------------------------------------------------------------------------------
// Draw
@@ -50,24 +56,22 @@ int main()
ClearBackground(RAYWHITE);
Begin3dMode(camera);
BeginMode3D(camera);
DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED);
DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON);
DrawGrid(10, 1.0f);
End3dMode();
DrawRectangle( 10, 10, 320, 133, Fade(SKYBLUE, 0.5f));
DrawRectangleLines( 10, 10, 320, 133, BLUE);
EndMode3D();
DrawRectangle( 10, 10, 320, 93, Fade(SKYBLUE, 0.5f));
DrawRectangleLines( 10, 10, 320, 93, BLUE);
DrawText("Free camera default controls:", 20, 20, 10, BLACK);
DrawText("- Mouse Wheel to Zoom in-out", 40, 40, 10, DARKGRAY);
DrawText("- Mouse Wheel Pressed to Pan", 40, 60, 10, DARKGRAY);
DrawText("- Alt + Mouse Wheel Pressed to Rotate", 40, 80, 10, DARKGRAY);
DrawText("- Alt + Ctrl + Mouse Wheel Pressed for Smooth Zoom", 40, 100, 10, DARKGRAY);
DrawText("- Z to zoom to (0, 0, 0)", 40, 120, 10, DARKGRAY);
DrawText("- Z to zoom to (0, 0, 0)", 40, 80, 10, DARKGRAY);
EndDrawing();
//----------------------------------------------------------------------------------
@@ -79,4 +83,4 @@ int main()
//--------------------------------------------------------------------------------------
return 0;
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

@@ -1,35 +1,41 @@
/*******************************************************************************************
*
* raylib [core] example - Initialize 3d mode
* raylib [core] example - Initialize 3d camera mode
*
* This example has been created using raylib 1.0 (www.raylib.com)
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
* Example originally created with raylib 1.0, last time updated with raylib 1.0
*
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2014-2023 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
#include "raylib.h"
int main()
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
int screenWidth = 800;
int screenHeight = 450;
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d mode");
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera mode");
// Define the camera to look into our 3d world
Camera camera;
Camera3D camera = { 0 };
camera.position = (Vector3){ 0.0f, 10.0f, 10.0f }; // Camera position
camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
camera.fovy = 45.0f; // Camera field-of-view Y
camera.projection = CAMERA_PERSPECTIVE; // Camera mode type
Vector3 cubePosition = { 0.0f, 0.0f, 0.0f };
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
@@ -46,14 +52,14 @@ int main()
ClearBackground(RAYWHITE);
Begin3dMode(camera);
BeginMode3D(camera);
DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED);
DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON);
DrawGrid(10, 1.0f);
End3dMode();
EndMode3D();
DrawText("Welcome to the third dimension!", 10, 40, 20, DARKGRAY);

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

+174
View File
@@ -0,0 +1,174 @@
/*******************************************************************************************
*
* raylib [core] example - 3d cmaera split screen
*
* Example originally created with raylib 3.7, last time updated with raylib 4.0
*
* Example contributed by Jeffery Myers (@JeffM2501) and reviewed by Ramon Santamaria (@raysan5)
*
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2021-2023 Jeffery Myers (@JeffM2501)
*
********************************************************************************************/
#include "raylib.h"
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera split screen");
// Setup player 1 camera and screen
Camera cameraPlayer1 = { 0 };
cameraPlayer1.fovy = 45.0f;
cameraPlayer1.up.y = 1.0f;
cameraPlayer1.target.y = 1.0f;
cameraPlayer1.position.z = -3.0f;
cameraPlayer1.position.y = 1.0f;
RenderTexture screenPlayer1 = LoadRenderTexture(screenWidth/2, screenHeight);
// Setup player two camera and screen
Camera cameraPlayer2 = { 0 };
cameraPlayer2.fovy = 45.0f;
cameraPlayer2.up.y = 1.0f;
cameraPlayer2.target.y = 3.0f;
cameraPlayer2.position.x = -3.0f;
cameraPlayer2.position.y = 3.0f;
RenderTexture screenPlayer2 = LoadRenderTexture(screenWidth / 2, screenHeight);
// Build a flipped rectangle the size of the split view to use for drawing later
Rectangle splitScreenRect = { 0.0f, 0.0f, (float)screenPlayer1.texture.width, (float)-screenPlayer1.texture.height };
// Grid data
int count = 5;
float spacing = 4;
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
// If anyone moves this frame, how far will they move based on the time since the last frame
// this moves thigns at 10 world units per second, regardless of the actual FPS
float offsetThisFrame = 10.0f*GetFrameTime();
// Move Player1 forward and backwards (no turning)
if (IsKeyDown(KEY_W))
{
cameraPlayer1.position.z += offsetThisFrame;
cameraPlayer1.target.z += offsetThisFrame;
}
else if (IsKeyDown(KEY_S))
{
cameraPlayer1.position.z -= offsetThisFrame;
cameraPlayer1.target.z -= offsetThisFrame;
}
// Move Player2 forward and backwards (no turning)
if (IsKeyDown(KEY_UP))
{
cameraPlayer2.position.x += offsetThisFrame;
cameraPlayer2.target.x += offsetThisFrame;
}
else if (IsKeyDown(KEY_DOWN))
{
cameraPlayer2.position.x -= offsetThisFrame;
cameraPlayer2.target.x -= offsetThisFrame;
}
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
// Draw Player1 view to the render texture
BeginTextureMode(screenPlayer1);
ClearBackground(SKYBLUE);
BeginMode3D(cameraPlayer1);
// Draw scene: grid of cube trees on a plane to make a "world"
DrawPlane((Vector3){ 0, 0, 0 }, (Vector2){ 50, 50 }, BEIGE); // Simple world plane
for (float x = -count*spacing; x <= count*spacing; x += spacing)
{
for (float z = -count*spacing; z <= count*spacing; z += spacing)
{
DrawCube((Vector3) { x, 1.5f, z }, 1, 1, 1, LIME);
DrawCube((Vector3) { x, 0.5f, z }, 0.25f, 1, 0.25f, BROWN);
}
}
// Draw a cube at each player's position
DrawCube(cameraPlayer1.position, 1, 1, 1, RED);
DrawCube(cameraPlayer2.position, 1, 1, 1, BLUE);
EndMode3D();
DrawRectangle(0, 0, GetScreenWidth()/2, 40, Fade(RAYWHITE, 0.8f));
DrawText("PLAYER1: W/S to move", 10, 10, 20, MAROON);
EndTextureMode();
// Draw Player2 view to the render texture
BeginTextureMode(screenPlayer2);
ClearBackground(SKYBLUE);
BeginMode3D(cameraPlayer2);
// Draw scene: grid of cube trees on a plane to make a "world"
DrawPlane((Vector3){ 0, 0, 0 }, (Vector2){ 50, 50 }, BEIGE); // Simple world plane
for (float x = -count*spacing; x <= count*spacing; x += spacing)
{
for (float z = -count*spacing; z <= count*spacing; z += spacing)
{
DrawCube((Vector3) { x, 1.5f, z }, 1, 1, 1, LIME);
DrawCube((Vector3) { x, 0.5f, z }, 0.25f, 1, 0.25f, BROWN);
}
}
// Draw a cube at each player's position
DrawCube(cameraPlayer1.position, 1, 1, 1, RED);
DrawCube(cameraPlayer2.position, 1, 1, 1, BLUE);
EndMode3D();
DrawRectangle(0, 0, GetScreenWidth()/2, 40, Fade(RAYWHITE, 0.8f));
DrawText("PLAYER2: UP/DOWN to move", 10, 10, 20, DARKBLUE);
EndTextureMode();
// Draw both views render textures to the screen side by side
BeginDrawing();
ClearBackground(BLACK);
DrawTextureRec(screenPlayer1.texture, splitScreenRect, (Vector2){ 0, 0 }, WHITE);
DrawTextureRec(screenPlayer2.texture, splitScreenRect, (Vector2){ screenWidth/2.0f, 0 }, WHITE);
DrawRectangle(GetScreenWidth()/2 - 2, 0, 4, GetScreenHeight(), LIGHTGRAY);
EndDrawing();
}
// De-Initialization
//--------------------------------------------------------------------------------------
UnloadRenderTexture(screenPlayer1); // Unload render texture
UnloadRenderTexture(screenPlayer2); // Unload render texture
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

@@ -2,39 +2,42 @@
*
* raylib [core] example - Picking in 3d mode
*
* This example has been created using raylib 1.3 (www.raylib.com)
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
* Example originally created with raylib 1.3, last time updated with raylib 4.0
*
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2015-2023 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
#include "raylib.h"
int main()
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
int screenWidth = 800;
int screenHeight = 450;
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d picking");
// Define the camera to look into our 3d world
Camera camera;
Camera camera = { 0 };
camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position
camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
camera.fovy = 45.0f; // Camera field-of-view Y
camera.projection = CAMERA_PERSPECTIVE; // Camera projection type
Vector3 cubePosition = { 0.0f, 1.0f, 0.0f };
Vector3 cubeSize = { 2.0f, 2.0f, 2.0f };
Ray ray; // Picking line ray
bool collision = false;
SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode
Ray ray = { 0 }; // Picking line ray
RayCollision collision = { 0 }; // Ray collision hit info
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
@@ -44,17 +47,27 @@ int main()
{
// Update
//----------------------------------------------------------------------------------
UpdateCamera(&camera); // Update camera
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
if (IsCursorHidden()) UpdateCamera(&camera, CAMERA_FIRST_PERSON);
// Toggle camera controls
if (IsMouseButtonPressed(MOUSE_BUTTON_RIGHT))
{
// NOTE: This function is NOT WORKING properly!
ray = GetMouseRay(GetMousePosition(), camera);
// Check collision between ray and box
collision = CheckCollisionRayBox(ray,
(BoundingBox){(Vector3){ cubePosition.x - cubeSize.x/2, cubePosition.y - cubeSize.y/2, cubePosition.z - cubeSize.z/2 },
(Vector3){ cubePosition.x + cubeSize.x/2, cubePosition.y + cubeSize.y/2, cubePosition.z + cubeSize.z/2 }});
if (IsCursorHidden()) EnableCursor();
else DisableCursor();
}
if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT))
{
if (!collision.hit)
{
ray = GetMouseRay(GetMousePosition(), camera);
// Check collision between ray and box
collision = GetRayCollisionBox(ray,
(BoundingBox){(Vector3){ cubePosition.x - cubeSize.x/2, cubePosition.y - cubeSize.y/2, cubePosition.z - cubeSize.z/2 },
(Vector3){ cubePosition.x + cubeSize.x/2, cubePosition.y + cubeSize.y/2, cubePosition.z + cubeSize.z/2 }});
}
else collision.hit = false;
}
//----------------------------------------------------------------------------------
@@ -64,9 +77,9 @@ int main()
ClearBackground(RAYWHITE);
Begin3dMode(camera);
BeginMode3D(camera);
if (collision)
if (collision.hit)
{
DrawCube(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, RED);
DrawCubeWires(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, MAROON);
@@ -78,16 +91,17 @@ int main()
DrawCube(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, GRAY);
DrawCubeWires(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, DARKGRAY);
}
DrawRay(ray, MAROON);
DrawGrid(10, 1.0f);
End3dMode();
DrawText("Try selecting the box with mouse!", 240, 10, 20, DARKGRAY);
if(collision) DrawText("BOX SELECTED", (screenWidth - MeasureText("BOX SELECTED", 30)) / 2, screenHeight * 0.1f, 30, GREEN);
EndMode3D();
DrawText("Try clicking on the box with your mouse!", 240, 10, 20, DARKGRAY);
if (collision.hit) DrawText("BOX SELECTED", (screenWidth - MeasureText("BOX SELECTED", 30)) / 2, (int)(screenHeight * 0.1f), 30, GREEN);
DrawText("Right click mouse to toggle camera controls", 10, 430, 10, GRAY);
DrawFPS(10, 10);
@@ -101,4 +115,4 @@ int main()
//--------------------------------------------------------------------------------------
return 0;
}
}

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

+334
View File
@@ -0,0 +1,334 @@
/*******************************************************************************************
*
* raylib [core] example - automation events
*
* Example originally created with raylib 5.0, last time updated with raylib 5.0
*
* Example based on 2d_camera_platformer example by arvyy (@arvyy)
*
* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
* BSD-like license that allows static linking with closed source software
*
* Copyright (c) 2023 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
#include "raylib.h"
#include "raymath.h"
#define GRAVITY 400
#define PLAYER_JUMP_SPD 350.0f
#define PLAYER_HOR_SPD 200.0f
#define MAX_ENVIRONMENT_ELEMENTS 5
typedef struct Player {
Vector2 position;
float speed;
bool canJump;
} Player;
typedef struct EnvElement {
Rectangle rect;
int blocking;
Color color;
} EnvElement;
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - automation events");
// Define player
Player player = { 0 };
player.position = (Vector2){ 400, 280 };
player.speed = 0;
player.canJump = false;
// Define environment elements (platforms)
EnvElement envElements[MAX_ENVIRONMENT_ELEMENTS] = {
{{ 0, 0, 1000, 400 }, 0, LIGHTGRAY },
{{ 0, 400, 1000, 200 }, 1, GRAY },
{{ 300, 200, 400, 10 }, 1, GRAY },
{{ 250, 300, 100, 10 }, 1, GRAY },
{{ 650, 300, 100, 10 }, 1, GRAY }
};
// Define camera
Camera2D camera = { 0 };
camera.target = player.position;
camera.offset = (Vector2){ screenWidth/2.0f, screenHeight/2.0f };
camera.rotation = 0.0f;
camera.zoom = 1.0f;
// Automation events
AutomationEventList aelist = LoadAutomationEventList(0); // Initialize list of automation events to record new events
SetAutomationEventList(&aelist);
bool eventRecording = false;
bool eventPlaying = false;
unsigned int frameCounter = 0;
unsigned int playFrameCounter = 0;
unsigned int currentPlayFrame = 0;
SetTargetFPS(60);
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose())
{
// Update
//----------------------------------------------------------------------------------
float deltaTime = 0.015f;//GetFrameTime();
// Dropped files logic
//----------------------------------------------------------------------------------
if (IsFileDropped())
{
FilePathList droppedFiles = LoadDroppedFiles();
// Supports loading .rgs style files (text or binary) and .png style palette images
if (IsFileExtension(droppedFiles.paths[0], ".txt;.rae"))
{
UnloadAutomationEventList(&aelist);
aelist = LoadAutomationEventList(droppedFiles.paths[0]);
eventRecording = false;
// Reset scene state to play
eventPlaying = true;
playFrameCounter = 0;
currentPlayFrame = 0;
player.position = (Vector2){ 400, 280 };
player.speed = 0;
player.canJump = false;
camera.target = player.position;
camera.offset = (Vector2){ screenWidth/2.0f, screenHeight/2.0f };
camera.rotation = 0.0f;
camera.zoom = 1.0f;
}
UnloadDroppedFiles(droppedFiles); // Unload filepaths from memory
}
//----------------------------------------------------------------------------------
// Update player
//----------------------------------------------------------------------------------
if (IsKeyDown(KEY_LEFT)) player.position.x -= PLAYER_HOR_SPD*deltaTime;
if (IsKeyDown(KEY_RIGHT)) player.position.x += PLAYER_HOR_SPD*deltaTime;
if (IsKeyDown(KEY_SPACE) && player.canJump)
{
player.speed = -PLAYER_JUMP_SPD;
player.canJump = false;
}
int hitObstacle = 0;
for (int i = 0; i < MAX_ENVIRONMENT_ELEMENTS; i++)
{
EnvElement *element = &envElements[i];
Vector2 *p = &(player.position);
if (element->blocking &&
element->rect.x <= p->x &&
element->rect.x + element->rect.width >= p->x &&
element->rect.y >= p->y &&
element->rect.y <= p->y + player.speed*deltaTime)
{
hitObstacle = 1;
player.speed = 0.0f;
p->y = element->rect.y;
}
}
if (!hitObstacle)
{
player.position.y += player.speed*deltaTime;
player.speed += GRAVITY*deltaTime;
player.canJump = false;
}
else player.canJump = true;
camera.zoom += ((float)GetMouseWheelMove()*0.05f);
if (camera.zoom > 3.0f) camera.zoom = 3.0f;
else if (camera.zoom < 0.25f) camera.zoom = 0.25f;
if (IsKeyPressed(KEY_R))
{
// Reset game state
player.position = (Vector2){ 400, 280 };
player.speed = 0;
player.canJump = false;
camera.target = player.position;
camera.offset = (Vector2){ screenWidth/2.0f, screenHeight/2.0f };
camera.rotation = 0.0f;
camera.zoom = 1.0f;
}
//----------------------------------------------------------------------------------
// Update camera
//----------------------------------------------------------------------------------
camera.target = player.position;
camera.offset = (Vector2){ screenWidth/2.0f, screenHeight/2.0f };
float minX = 1000, minY = 1000, maxX = -1000, maxY = -1000;
for (int i = 0; i < MAX_ENVIRONMENT_ELEMENTS; i++)
{
EnvElement *element = &envElements[i];
minX = fminf(element->rect.x, minX);
maxX = fmaxf(element->rect.x + element->rect.width, maxX);
minY = fminf(element->rect.y, minY);
maxY = fmaxf(element->rect.y + element->rect.height, maxY);
}
Vector2 max = GetWorldToScreen2D((Vector2){ maxX, maxY }, camera);
Vector2 min = GetWorldToScreen2D((Vector2){ minX, minY }, camera);
if (max.x < screenWidth) camera.offset.x = screenWidth - (max.x - screenWidth/2);
if (max.y < screenHeight) camera.offset.y = screenHeight - (max.y - screenHeight/2);
if (min.x > 0) camera.offset.x = screenWidth/2 - min.x;
if (min.y > 0) camera.offset.y = screenHeight/2 - min.y;
//----------------------------------------------------------------------------------
// Toggle events recording
if (IsKeyPressed(KEY_S))
{
if (!eventPlaying)
{
if (eventRecording)
{
StopAutomationEventRecording();
eventRecording = false;
ExportAutomationEventList(aelist, "automation.rae");
TraceLog(LOG_INFO, "RECORDED FRAMES: %i", aelist.count);
}
else
{
SetAutomationEventBaseFrame(180);
StartAutomationEventRecording();
eventRecording = true;
}
}
}
else if (IsKeyPressed(KEY_A))
{
if (!eventRecording && (aelist.count > 0))
{
// Reset scene state to play
eventPlaying = true;
playFrameCounter = 0;
currentPlayFrame = 0;
player.position = (Vector2){ 400, 280 };
player.speed = 0;
player.canJump = false;
camera.target = player.position;
camera.offset = (Vector2){ screenWidth/2.0f, screenHeight/2.0f };
camera.rotation = 0.0f;
camera.zoom = 1.0f;
}
}
if (eventPlaying)
{
// NOTE: Multiple events could be executed in a single frame
while (playFrameCounter == aelist.events[currentPlayFrame].frame)
{
TraceLog(LOG_INFO, "PLAYING: PlayFrameCount: %i | currentPlayFrame: %i | Event Frame: %i, param: %i",
playFrameCounter, currentPlayFrame, aelist.events[currentPlayFrame].frame, aelist.events[currentPlayFrame].params[0]);
PlayAutomationEvent(aelist.events[currentPlayFrame]);
currentPlayFrame++;
if (currentPlayFrame == aelist.count)
{
eventPlaying = false;
currentPlayFrame = 0;
playFrameCounter = 0;
TraceLog(LOG_INFO, "FINISH PLAYING!");
break;
}
}
playFrameCounter++;
}
if (eventRecording || eventPlaying) frameCounter++;
else frameCounter = 0;
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(LIGHTGRAY);
BeginMode2D(camera);
// Draw environment elements
for (int i = 0; i < MAX_ENVIRONMENT_ELEMENTS; i++)
{
DrawRectangleRec(envElements[i].rect, envElements[i].color);
}
// Draw player rectangle
DrawRectangleRec((Rectangle){ player.position.x - 20, player.position.y - 40, 40, 40 }, RED);
EndMode2D();
// Draw game controls
DrawRectangle(10, 10, 290, 145, Fade(SKYBLUE, 0.5f));
DrawRectangleLines(10, 10, 290, 145, Fade(BLUE, 0.8f));
DrawText("Controls:", 20, 20, 10, BLACK);
DrawText("- RIGHT | LEFT: Player movement", 30, 40, 10, DARKGRAY);
DrawText("- SPACE: Player jump", 30, 60, 10, DARKGRAY);
DrawText("- R: Reset game state", 30, 80, 10, DARKGRAY);
DrawText("- S: START/STOP RECORDING INPUT EVENTS", 30, 110, 10, BLACK);
DrawText("- A: REPLAY LAST RECORDED INPUT EVENTS", 30, 130, 10, BLACK);
// Draw automation events recording indicator
if (eventRecording)
{
DrawRectangle(10, 160, 290, 30, Fade(RED, 0.3f));
DrawRectangleLines(10, 160, 290, 30, Fade(MAROON, 0.8f));
DrawCircle(30, 175, 10, MAROON);
if (((frameCounter/15)%2) == 1) DrawText(TextFormat("RECORDING EVENTS... [%i]", aelist.count), 50, 170, 10, MAROON);
}
else if (eventPlaying)
{
DrawRectangle(10, 160, 290, 30, Fade(LIME, 0.3f));
DrawRectangleLines(10, 160, 290, 30, Fade(DARKGREEN, 0.8f));
DrawTriangle((Vector2){ 20, 155 + 10 }, (Vector2){ 20, 155 + 30 }, (Vector2){ 40, 155 + 20 }, DARKGREEN);
if (((frameCounter/15)%2) == 1) DrawText(TextFormat("PLAYING RECORDED EVENTS... [%i]", currentPlayFrame), 50, 170, 10, DARKGREEN);
}
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}

Some files were not shown because too many files have changed in this diff Show More