6785 Commits

Author SHA1 Message Date
Ray
16a0b966c3 Update rexm.c 2025-09-06 00:09:22 +02:00
Ray
4af48fba74 REXM: REVIEWED: UpdateSourceMetadata() and TextReplaceBetween() 2025-09-06 00:04:07 +02:00
Ray
446f015ac5 Review formating 2025-09-05 23:10:13 +02:00
Ray
b2684a9c38 Merge branch 'master' of https://github.com/raysan5/raylib 2025-09-05 23:07:46 +02:00
Ray
86ec1c08c2 Update rexm.c 2025-09-05 23:07:29 +02:00
Eike Decker
bd810368b0 Fixing base64 decoding error when input string is bad (#5170)
The following code would crash the previous version when calling MemFree:

	// 53 * A
        const char maliciousBase64Input[] = "AAAAAAAAAAAAAAAAAAAAAAAA"
		"AAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
        int decodedSize = 0;
        unsigned char *decodedData = DecodeDataBase64(
		maliciousBase64Input, &decodedSize);
        if (decodedData) {
		MemFree(decodedData);
        }

The reason is a lack of array bound checks in the decoding loop, which
corrupted here the heap (though this is platform dependent).

Adding the bound checks here prevents the memory corruption.

Tested with encoding random data of sizes 0-1023 and comparing it
with the decoded result.
2025-09-05 23:05:08 +02:00
Ray
eb816898e5 Revert "Added creation-review years to examples"
This reverts commit b5e25916fc.
2025-09-05 23:02:06 +02:00
Ray
84e606b8c7 Update rexm.c 2025-09-05 23:00:36 +02:00
Ray
1d4d8da3e9 Removed temp code to generate updated examples_list.txt 2025-09-05 22:59:42 +02:00
Ray
3e59797a68 REXM: ADDED: Read examples years created/reviewed info
ADDED: `UpdateSourceMetadata()`
2025-09-05 14:10:26 +02:00
Ray
424cdebda5 Updated examples_list.txt to include example year created/reviewed
Reviewed star used, aligned with empty star and examples header
2025-09-05 14:04:28 +02:00
Ray
b5e25916fc Added creation-review years to examples 2025-09-05 11:25:24 +02:00
Ray
47bdfb91a2 Update README.md 2025-09-05 10:57:25 +02:00
Ray
8e52aee853 Update rtext.c 2025-09-05 00:13:32 +02:00
Ray
389800fd34 REXM: REVIEWED: ScanExampleResources() 2025-09-04 23:55:23 +02:00
Ray
43305c4865 REXM: ADDED: RemoveVSProjectFromSolution() 2025-09-04 23:54:57 +02:00
Ray
d980642421 Merge branch 'master' of https://github.com/raysan5/raylib 2025-09-04 23:54:17 +02:00
Ray
51aa8776bb Update rtext.c 2025-09-04 23:53:26 +02:00
github-actions[bot]
55a1c58b64 Update raylib_api.* by CI 2025-09-04 21:26:00 +00:00
Ray
0203a47bf9 REDESIGNED: LoadTextLines()/UnloadTextLines() 2025-09-04 23:25:42 +02:00
Ray
8116ebd9bb Update rexm.c 2025-09-04 19:15:47 +02:00
Ray
a51cb7fe30 REXM: Updated some examples inconsistencies 2025-09-04 19:15:37 +02:00
Ray
91bc8d9b10 REXM: Remove duplicate entries on examples list on Update process 2025-09-04 18:57:32 +02:00
Ray
7646d08751 Updated some examples with inconsistencies 2025-09-04 18:57:00 +02:00
Ray
fb42819eab Added project to folder in solution 2025-09-04 16:56:38 +02:00
Ray
d418704c0b REXM: Update examples collection 2025-09-04 16:17:23 +02:00
Ray
293477e2b5 Reorganized examples list 2025-09-04 16:05:54 +02:00
Ray
6d7dd43c13 Update core_input_gestures_testbed.c 2025-09-04 16:05:38 +02:00
Ray
e21093d434 REXM: RENAME: example: core_input_gestures_web --> core_input_gestures_testbed 2025-09-04 15:59:53 +02:00
Ray
c17f82a78c REMOVED: core_basic_window_web
The example is not following examples conventions and it will be moved to `others` with a new name
2025-09-04 15:43:54 +02:00
Ray
d97e0a8ac7 REXM: RENAME: example: shaders_texture_drawing --> shaders_texture_rendering 2025-09-04 11:27:32 +02:00
Ray
427b0d2653 Update rexm.c 2025-09-04 11:26:39 +02:00
Ray
5f9465d569 Update rexm.c 2025-09-04 11:21:52 +02:00
Ray
d79f294af0 Update rexm.c 2025-09-04 11:20:48 +02:00
Ray
41dee9e9f9 REXM: RENAME: example: shaders_fog --> shaders_fog_rendering 2025-09-04 11:12:01 +02:00
Ray
3cbe911613 REXM: RENAME: example: models_billboard --> models_billboard_rendering 2025-09-04 11:04:00 +02:00
Ray
b17936de22 REXM: RENAME: example: models_billboard --> models_billboard_rendering 2025-09-04 10:55:48 +02:00
Ray
3659eee994 Update rexm.c 2025-09-04 10:50:35 +02:00
Ray
ba046a5d60 REVIEWED: DecompressData(), fixed buffer copying 2025-09-04 10:44:20 +02:00
Ray
f9e6c85cce Update rexm.c 2025-09-04 10:40:17 +02:00
Ray
9b99c5b04e REXM: Adding some UpdateSourceMetadata() -WIP- 2025-09-04 10:34:39 +02:00
Ray
64641c6a01 Update raudio.c 2025-09-04 10:33:26 +02:00
Ray
dd0587e12a Update shaders_texture_drawing.c 2025-09-04 10:33:22 +02:00
Ray
2e376c6f5b Update shaders_spotlight.c 2025-09-04 10:33:14 +02:00
Ray
48eac60171 REVIEWED: Potential issue with animated normals on OpenGL 1.1 2025-09-03 23:14:58 +02:00
Ray
2a295210fb Update shaders_spotlight.c 2025-09-03 19:58:38 +02:00
Ray
1008066644 Removed core_loading_thread project 2025-09-03 19:58:26 +02:00
Ray
a7e62e73d8 REXM: REMOVE: example: core_loading_thread
This example was POSIX only and had some special requirements for web, it made it more difficult to be managed from collection standard examples format.

It will be re-added in the `others` category, that is not processed for web.
2025-09-03 19:00:33 +02:00
Ray
5cbe013273 REXM: RENAME: example: models_skybox --> models_skybox_rendering 2025-09-03 18:48:20 +02:00
Ray
d8ee8a45c4 REXM: RENAME: example: textures_draw_tiled --> textures_tiled_drawing 2025-09-03 18:45:50 +02:00
Ray
33327760f1 REXM: RENAME: example: text_draw_3d --> text_3d_drawing 2025-09-03 18:43:17 +02:00
Ray
785ad4015c REXM: RENAME: example: textures_polygon --> textures_polygon_drawing 2025-09-03 18:40:53 +02:00
Ray
cadd28e5a0 REXM: RENAME: example: text_raylib_fonts -> text_sprite_fonts 2025-09-03 18:33:33 +02:00
Ray
2cb387b50a REVIEWED: Font atlas image generation, added some comments #5141 2025-09-03 18:30:00 +02:00
Ray
f53cd449ce Update config.h 2025-09-03 18:25:27 +02:00
Nikolas
b7eda8159c [build.zig] Make X11 the default display backend instead of choosing at runtime (#5168) 2025-09-03 18:17:07 +02:00
Ray
64d6a90d48 REXM: RENAME: example: text_unicode --> text_unicode_emojis 2025-09-03 18:14:47 +02:00
Ray
3a0c8009af Update rexm.c 2025-09-03 18:14:18 +02:00
Ray
d1768d387c Update utils.c 2025-09-03 13:37:08 +02:00
Ray
c579eef4b7 REVIEWED: Examples section comments, for better organization and consistency 2025-09-03 10:40:31 +02:00
Ray
1fa3c15942 Revert "add const qualifier to the first arg of TextJoin (#5166)"
This reverts commit 4e8d08523f.
2025-09-02 19:00:22 +02:00
JohnnyCena123
4e8d08523f add const qualifier to the first arg of TextJoin (#5166)
* add const qualifier to the first arg of TextJoin

* Update raylib_api.* by CI

* Update raylib.h

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ray <raysan5@gmail.com>
2025-09-02 18:58:39 +02:00
Ray
cb6a64843c Remove raylib logs 2025-09-02 18:52:10 +02:00
Ray
4fa8e23efc Update rexm.c 2025-09-02 18:52:00 +02:00
Ray
1dfff2252d rexm update 2025-09-02 18:44:27 +02:00
Ray
cf61a8b888 REXM: Update examples report 2025-09-02 18:38:20 +02:00
Ray
bcd46fb36b Update rexm.c 2025-09-02 18:38:04 +02:00
Ray
9fab2c8a13 REVIEWED: example: text_unicode_ranges 2025-09-02 18:34:58 +02:00
Ray
0fd5a1a3f5 REDESIGNED: example: text_unicode_ranges 2025-09-02 17:47:25 +02:00
Ray
d5ea6a87d9 Merge branch 'master' of https://github.com/raysan5/raylib 2025-09-02 17:47:13 +02:00
github-actions[bot]
17d9927a4f Update raylib_api.* by CI 2025-09-02 15:46:09 +00:00
Ray
b16d14f5ed Update text_font_sdf.c 2025-09-02 17:45:52 +02:00
Ray
29ce5d8aa9 WARNING: BREAKING: LoadFontData() redesigned, added parameter
This redesign is a big improvement on font loading time and memory requirements. It only loads glyphs available on font from requested codepoints and only processes those glyphs for packaging. When processing +10K codepoints (CJK), the loading time improves considerably.
2025-09-02 17:45:39 +02:00
Ray
aa475b1046 REVIEWED: Code sections description for consistency 2025-09-02 12:34:04 +02:00
Ray
8b3c68f8b5 Update core_random_sequence.c 2025-09-02 12:18:19 +02:00
Ray
8f32c502a7 REVIEWED: Code sections definition 2025-09-02 12:10:40 +02:00
Ray
b6ae380260 REVIEWED: Examples comments, consistent code sections 2025-09-02 12:10:16 +02:00
Ray
864459cbd2 Update core_3d_camera_fps.c 2025-09-01 20:59:37 +02:00
Ray
e18d167c8f REVIEWED: New examples added renaming, avoid duplicated .sln GUIDs 2025-09-01 20:47:59 +02:00
Ray
1777da9056 REVIEWED: Avoid realloc() calls, small security improvement 2025-09-01 20:37:23 +02:00
Ray
6226abb0d3 Merge branch 'master' of https://github.com/raysan5/raylib 2025-09-01 11:39:20 +02:00
Ray
708c1539e4 Update rtextures.c 2025-09-01 11:38:57 +02:00
github-actions[bot]
917533224f Update raylib_api.* by CI 2025-09-01 09:27:38 +00:00
Ray
0a92c863c4 Reverted const codepoints to avoid warnings 2025-09-01 11:27:11 +02:00
Ray
12ce72c32d REVIEWED: ExportImage() 2025-09-01 11:24:53 +02:00
wileyanderssen
998a18b641 removed macro that does nothing (#5163) 2025-09-01 11:17:51 +02:00
github-actions[bot]
223feca13a Update raylib_api.* by CI 2025-09-01 05:56:44 +00:00
0_stamina
7d07d21ee5 Update Camera3D.fovy description in raylib.h (#5164)
Previously stated it was the near plane width in orthographic, in actuality it's the height. The wording has been fixed, with added clarity that it's in world units so no conversion is needed.
2025-09-01 07:56:31 +02:00
Ray
82d65e110a Update build status badges 2025-08-31 12:22:50 +02:00
Jonathan Marler
f61c2c504d [rcore][win32] Adding native win32 backend (#4869)
* win32 backend

* [rcore][win32] use SwapBuffers instead of wglSwapLayerBuffers

I don't understand OpenGL well enough to know the difference between
SwapBuffers and wglSwapLayerBuffers but the former seems to double
my FPS (from 2000 to about 4000 in core_vr_simulator).

* [rcore][win32] stop lying to the OS about when our window is updated

Instead of calling BeginPaint/EndPaint in WM_PAINT which signals to the
OS that our window content is updated, now when we encounter the WM_PAINT
message instead we return back to the raylib application which will
trigger it to render a new frame. We've replaced the call to BeginPaint
and EndPaint with a call to ValidateRect in SwapBuffers, which, means
we're now correctly telling the OS when our window content is actually
up-to-date.

Note that this doesn't fix the window content not being updated during
a window resize/move beacuse thos have their own message loop which
doesn't return early when it's time to paint.

* [rcore][win32] fallback to finding functions from opengl32.dll

* [rcore][win32] fixes from review/for gcc

* [rcore][win32] incorporate style conventions

* [rcore][win32] workaround unused function error SetupFramebuffer

* [rcore][win32] re-enable sanitize flags check for MSAA_4X

* [rcore][win32] more style changes and remove old DPI cases

Added some more missing spaces after conditional statements.  Also
made unsupported MSAA_4X an assert instead of an abort and also
removed dpi-aware cases for older OS's.  More changes would be needed
to support those OS versions, namely, removing the dependency
on shcore.

* [rcore][win32] fixes for compling with w64devkit without -DUNICODE

* Update build.zig

* Update build.zig

---------

Co-authored-by: Ray <raysan5@gmail.com>
2025-08-31 12:13:21 +02:00
Ray
ecf032fe4f REVIEW: Avoid warning on fgets() return value 2025-08-31 12:11:48 +02:00
github-actions[bot]
d7f82aa7ae Update raylib_api.* by CI 2025-08-31 10:11:18 +00:00
Ray
edce3d41b2 REVERT: Making codepoints const, variable is used to generate list in case it was NULL 2025-08-31 12:11:03 +02:00
github-actions[bot]
f2adb0272d Update raylib_api.* by CI 2025-08-31 09:39:29 +00:00
Ray
ecedf40da6 REVIEW: const for codepoints arrays passed to function #5159 2025-08-31 11:39:14 +02:00
wileyanderssen
fce888c0c0 changed function params formatting (#5160) 2025-08-31 11:34:39 +02:00
maiphi
d9cb078299 FindNearestConnectorMode: prefer mode with smallest number of unused pixels (#5158)
Co-authored-by: Philipp Maierhoefer <particle@maierhoefer.net>
2025-08-31 11:34:05 +02:00
HaxSam
0d29d8d4b1 [build.zig]: a concrete approach to build for web with zig-build (#5157) 2025-08-31 11:32:19 +02:00
Ray
bbf884d7b3 Merge branch 'master' of https://github.com/raysan5/raylib 2025-08-29 21:32:34 +02:00
Ray
f0e49787cd minor tweak 2025-08-29 21:32:21 +02:00
JohnnyCena123
0e73e0ea64 reviewed ALL non-external files to follow raylib's convention of no spaces around / or * (#5153) 2025-08-29 14:53:16 +02:00
Hamza RAHAL
507c85900f fix: [digital_clock] minute hand doesn't appear (#5151) 2025-08-28 22:32:41 +02:00
Artem V. Ageev
03617e0bdd Add raylib-ada to BINDINGS.md (#5150) 2025-08-28 22:31:39 +02:00
JohnnyCena123
481daf2423 remove extra backslash in fix_win32_compatibility.h (#5148) 2025-08-28 22:30:25 +02:00
JohnnyCena123
4a4997c615 fix unnecessary warnings in some files (#5152) 2025-08-28 22:28:56 +02:00
github-actions[bot]
7103703313 Update raylib_api.* by CI 2025-08-26 08:17:48 +00:00
Ray
d2f6c4924c ADDED: [rtext] LoadTextLines()/UnloadTextLines() 2025-08-26 10:17:33 +02:00
Ray
ed3b5b2649 Update rexm.c 2025-08-26 09:23:18 +02:00
Ray
42abcb9492 Updated examples init window title 2025-08-26 00:36:32 +02:00
Ray
a72b4b177b Updated examples short description 2025-08-26 00:32:24 +02:00
Ray
a67b49498f Update rexm.c 2025-08-26 00:24:01 +02:00
Ray
3b16a72302 REXM: Allow building web examples locally on Windows platform 2025-08-25 21:23:30 +02:00
Ray
6343251857 Update rexm.c 2025-08-25 21:13:44 +02:00
Ray
60ac8f2a86 Renamed example 2025-08-25 21:11:37 +02:00
Ray
47db1da9ea REXM: RENAMED: example: core_3d_fps_controller to core_3d_camera_fps 2025-08-25 20:58:09 +02:00
Ray
8b68d548c9 Reviewing some examples titles 2025-08-25 20:57:18 +02:00
Ray
b04a94d1e1 Merge branch 'master' of https://github.com/raysan5/raylib 2025-08-25 20:56:20 +02:00
Ray
f9af011965 Update core_window_letterbox.c 2025-08-25 20:56:05 +02:00
annaymone
99c4d4b597 Add pub to compileRaylib (#5143)
This is necessary to allow for using the function in dependent `build.zig`s.
2025-08-25 00:55:13 +02:00
Ray
79497e1c88 REXM: Updated reports 2025-08-24 12:02:24 +02:00
Ray
2e95cdb2b5 Minor comment tweaks 2025-08-24 12:01:58 +02:00
Ray
c9564c0de8 Update update_examples.yml 2025-08-24 12:01:46 +02:00
JohnnyCena123
e796b00eb0 [workflows] (almost) rewrite update_examples.yml workflow (#5130)
* debug print the working directory

* trigger it on any branch (temporarily)

* nope, wrong fix

* dummy commit to trigger the workflow

* lets see if this works

* trigger the workflow when updating it

* nice typo

* add missing dollar signs

* debug list the contents of the repository

* dir/s instead of ls

* remove this, no longer needed

* backslashes maybe? windows...

* this should be a forward slash

* remove no longer needed spam

* debug check if examples dir exists

* LOG is disabled apparently

* ...

* temporarily disable this step to save time

* ubuntu maybe

* bash

* install deps

* link libc

* link libm

* now to test the rest

* emsdk is back

* add missing shaders

* Update examples collection

* add indentation

* remove emsdk cache

* ignore emsdk cache

* Update examples collection

* fix errors with the find command

* remove emsdk cache now

* i forgot to actually add it to gitignore

* fix error with git not finding anything to commit

* global config instead of repo specific

* clone raylib.com repo under the same owner as the raylib repo owner

* add proper access token

* reorganize it all

* remove non-existent example

* clone raylib.com before running rexm

* no extra slash

* Update examples collection

* copy updated examples to the right place

* remove unnecessary debug line from rexm.c

* Update examples collection

* Update examples collection

* use hardcoded absolute path to make

* add debug line

* semicolon

* fix wrong handling of make path

* fix wrong cwd

* rebuild raylib for web after installing it

* cleanuo

* conditionally push to repos, never on PR

* build rexm with make for consistency

* remove workflow run results

* add back the examples report files

* pause automatic commits

* revert makefile changes

* readd removed vs2022 project file

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-24 11:56:49 +02:00
Ray
04a3ab0ca7 REVIEW: Added warning in case of no [rcore] backend defined 2025-08-24 11:23:15 +02:00
Ray
52980c947d REVIEWED: [rtext] Provide more detailed info on glyphs failing to pack #5141 2025-08-24 11:07:55 +02:00
Ray
4d0c3affaa REXM: Update examples and lists 2025-08-24 10:53:47 +02:00
Ray
0e5837fb86 REXM: Fixed some issues, improved make call defining base path 2025-08-24 10:53:19 +02:00
Ray
f60333d9b2 Update update_examples.yml 2025-08-23 22:19:51 +02:00
Ray
785965fcef Update update_examples.yml 2025-08-23 22:18:17 +02:00
Ray
d0e6f60ef3 Update update_examples.yml 2025-08-23 22:13:18 +02:00
Ray
6c4f220e89 Update update_examples.yml 2025-08-23 22:07:39 +02:00
Ray
c95630b7d0 Update update_examples.yml 2025-08-23 22:00:06 +02:00
Ray
e9f655d002 Update update_examples.yml 2025-08-23 21:54:09 +02:00
Ray
41211b0c8c Update update_examples.yml 2025-08-23 21:45:50 +02:00
Ray
d320a029c8 REXM: Reviewed building, using default examples Makefile/Makefile.Web 2025-08-23 21:44:28 +02:00
Ray
f83c5cb6e1 Merge pull request #5138 from maiconpintoabreu/fix-glsl100
[examples][shaders] set glsl100 back to 100
2025-08-23 14:59:32 +02:00
Maicon Santana
69021939e6 fix write_depth.fs glsl120 2025-08-23 13:06:56 +01:00
Ray
9cc9f3bbbe Merge pull request #5139 from Siltnamis/stbtt_rl_malloc
use RL_MALLOC in stb_truetype
2025-08-23 13:07:04 +02:00
Siltnamis
3c9c66e72b use RL_MALLOC in stb_truetype 2025-08-23 13:10:27 +03:00
Maicon Santana
c6d7694286 set glsl100 back to 100 2025-08-23 10:17:11 +01:00
Ray
11bf3996cf REDM: Add web metadata validation and update 2025-08-23 02:00:21 +02:00
Ray
a7aeb2f2b5 REXM: Add example build option 2025-08-23 01:59:24 +02:00
Ray
500494f791 Update core_3d_fps_controller.c 2025-08-23 00:02:19 +02:00
Ray
1d17be6c1c Merge pull request #5137 from feive7/master
Clamp camera pitch
2025-08-22 23:41:34 +02:00
Ray
ce1cd0d7e6 Merge pull request #5128 from CashWasabi/zig-0.15
[build] Update `build.zig` (breaking)
2025-08-22 08:19:35 +02:00
Marcel Ochs
566eb34ff8 Update build.zig 2025-08-21 23:15:05 +02:00
feive7
8b0cbb6f47 Clamp camera pitch 2025-08-21 11:10:13 -07:00
Ray
ce8bcb332b Using internal defined File*() functions 2025-08-21 19:37:59 +02:00
Ray
fc082edccc Merge branch 'master' of https://github.com/raysan5/raylib 2025-08-21 19:37:10 +02:00
Ray
4e71e91a4a REXM: Replace example name on project file 2025-08-21 19:30:44 +02:00
Ray
18c50bb01b Merge pull request #5136 from alexander-nichols/fix-shader_normal_map-solution
[build] Fixed VS2022 broken build
2025-08-21 19:29:15 +02:00
Ray
09bd2df17b Merge pull request #5133 from rossberg/patch-1
[raudio] Properly close FLAC in UnloadMusicStream
2025-08-21 19:24:05 +02:00
Ray
0aa5e8169d Merge pull request #5132 from maiconpintoabreu/fix-examples
[examples][core] refactoring core_input_mouse.c to use IsCursorHidden function for consistency
2025-08-21 19:23:15 +02:00
alexander-nichols
5d9c8c365e [build] Fixed VS2022 broken build
Fixed bad references to shaders_normalmap in the project raylib\projects\VS2022\examples\shaders_normal_map.vcxproj

Changed GUID for shaders_normal_map as it coincided with that for core_3d_fps_controller {6B1A933E-71B8-4C1F-9E79-02D98830E671}
2025-08-21 17:42:07 +01:00
Andreas Rossberg
2deae294c6 [raudio] Properly close FLAC in UnloadMusicStream
Fix  raysan5/raylib#5131.
2025-08-21 13:02:19 +02:00
Maicon Santana
238163c6ca swap local variable isCursorHidden to use new method IsCursorHidden() 2025-08-21 11:31:40 +01:00
Ray
99cb82a82c REVIEWED: [rmodels] LoadGLFT(), avoid loading attributes already loaded, issue a warning. FIX: #4996 2025-08-20 16:39:45 +02:00
Ray
c3c33e9654 Merge pull request #5125 from JohnnyCena123/missing-vox-shaders
add missing shaders for glsl100, glsl120
2025-08-20 12:34:05 +02:00
Johnny Cena
a99649b455 remove unneeded checks 2025-08-20 12:18:51 +02:00
Johnny Cena
df200b942c add versions to new shaders 2025-08-20 12:16:57 +02:00
Johnny Cena
cb05945e76 add missing shaders 2025-08-20 12:09:30 +02:00
Ray
5b88e4fe5f Merge pull request #5124 from JeffM2501/fix_win32_compatibility
[utility] Add helper header to fix compatibility with windows.h
2025-08-19 20:18:00 +02:00
Jeffery Myers
15baf176b2 Add a utility header to external that undefines the parts of windows that conflict with raylib, allowing raylib functions to run unimpeded 2025-08-19 10:39:38 -07:00
Ray
d9392b94c4 Merge pull request #5123 from JeffM2501/clean_sound_alias
[raudio] Initialize sound alias properties as if it was a new sound
2025-08-19 17:26:51 +02:00
Jeffery Myers
572230c8ad Initialize sound alias properties as if it was a new sound 2025-08-19 08:16:20 -07:00
Ray
fd44c26584 Merge pull request #5122 from JohnnyCena123/workflow-typo
fix typo in workflow name
2025-08-19 13:26:28 +02:00
Ray
0658abc64c Update text_raylib_fonts.c 2025-08-19 13:22:15 +02:00
Ray
8ba4ff2143 Renamed directory for sprite fonts 2025-08-19 13:22:04 +02:00
Ray
25d00130a8 REVIEWED: example: text_unicode_ranges 2025-08-19 13:17:50 +02:00
Johnny Cena
01c68d7e75 fix typo in workflow name 2025-08-19 12:30:07 +02:00
Ray
291042352b Merge pull request #4886 from GuvaCode/master
[examples] Possible improvements for `text_codepoints_loading`, adding ranges
2025-08-19 12:00:25 +02:00
Ray
44207b293e RENAMED: GitHub Actions files, clearer naming 2025-08-19 11:54:32 +02:00
Ray
8562841c63 Update linux_examples.yml 2025-08-19 11:51:57 +02:00
Ray
f1796ff143 Update examples_update.yml 2025-08-19 11:50:41 +02:00
Ray
4492707e0e Update webassembly.yml 2025-08-19 11:50:38 +02:00
Ray
e3d714ae41 Update GitHub Actions names 2025-08-19 11:45:19 +02:00
Ray
df886a8abb REXM: Added VS2022 project for GitHub Actions building 2025-08-19 11:38:29 +02:00
Ray
915c02adf3 Update examples_update.yml 2025-08-19 11:20:38 +02:00
Ray
f0471aaddb Update examples_update.yml 2025-08-19 11:20:19 +02:00
Ray
e38e7a8141 Update examples_update.yml 2025-08-19 11:18:38 +02:00
Ray
df1244688e Revert "Update examples collection"
This reverts commit 87d3066428.
2025-08-19 11:17:59 +02:00
github-actions[bot]
87d3066428 Update examples collection 2025-08-19 09:15:28 +00:00
Ray
8bc9f30d87 Update examples_update.yml 2025-08-19 11:14:04 +02:00
Ray
e9b1bb25ab Create examples_update.yml 2025-08-19 11:02:01 +02:00
Ray
304045c63a REXM: Allow external path definition for VS solution file 2025-08-19 11:00:22 +02:00
Ray
a3da39cd81 REXM: Store example resource paths, could be useful... 2025-08-19 10:38:07 +02:00
Ray
87731e3db4 Create rexm.rc.data 2025-08-19 10:36:59 +02:00
Ray
cf1217f5c1 Update Makefile 2025-08-19 10:36:56 +02:00
Ray
a338b9694c Update build_example_web.bat 2025-08-19 10:36:31 +02:00
Ray
1098f41885 Update parse.yml 2025-08-19 10:36:22 +02:00
Ray
b1f6ab38b5 Merge pull request #5119 from jan-beukes/master
Fix SDL3 compilation error with gcc
2025-08-18 20:43:11 +02:00
Ray
595befec40 Update models_mesh_picking.c 2025-08-18 20:37:07 +02:00
Ray
0a513e6fbe Comment unused script instructions... 2025-08-18 15:04:50 +02:00
Ray
60b46062c6 REXM: Reviewed example rename on examples.js 2025-08-18 15:00:54 +02:00
Ray
6bf8249f75 Update examples_report.md 2025-08-18 15:00:24 +02:00
Ray
a8dfd9db76 REXM: RENAMED: shaders_normalmap --> shaders_normal_map 2025-08-18 14:35:04 +02:00
Jan Beukes
8772b0287c Fix SDL3 compilation error with gcc 2025-08-17 23:44:37 +02:00
Ray
284d9ddd89 Merge pull request #5118 from slendidev/sdl3fixes
Fix SDL3 build if using package
2025-08-17 21:35:35 +02:00
Ray
dcd012e00f REXM: Generate second report with examples with issues 2025-08-17 21:32:05 +02:00
Ray
24d1d64417 REXM: REVIEWED: ScanExampleResources() avoid resources to be saved by the program 2025-08-17 21:31:05 +02:00
Ray
6da0a180e6 REXM: Using Makefile.Web for specific web versions generation, only with required resources for every example 2025-08-17 21:30:16 +02:00
λxy.x
16bd18070f Fix SDL3 build if using package 2025-08-17 11:11:54 +03:00
Ray
0dc4ba53dc Minor format tweak 2025-08-16 21:06:13 +02:00
Ray
e4dfb6dbb5 Update rl_gputex.h 2025-08-16 20:24:54 +02:00
Ray
2e652bbef1 Merge pull request #5115 from maiconpintoabreu/web_resizable_window_mouse_issue
[rcore][web] Work around to fix mouse positioning on scaled window
2025-08-15 12:51:15 +02:00
Ray
5236b2420a Update rexm.c 2025-08-15 12:43:45 +02:00
Maicon Santana
73950befca Work around to fix mouse positioning on scaled window 2025-08-15 10:57:44 +01:00
Ray
d1b535c7b8 Merge branch 'master' of https://github.com/raysan5/raylib 2025-08-14 21:23:08 +02:00
Ray
ed06cdbbe4 Update examples_report.md 2025-08-14 21:22:57 +02:00
Ray
81615a91a6 Merge pull request #5111 from didas72/master
Adds more filters for conditional build of GetWindowHandle with GLFW
2025-08-14 21:13:27 +02:00
Ray
6252d92f79 Update rexm.c 2025-08-14 21:11:30 +02:00
Ray
a65bdd6cca REXM: Reviewed automatic validation and update -WIP- 2025-08-14 21:07:36 +02:00
Ray
afdc7972d6 REXM: Automatic validation and update of examples 2025-08-14 21:07:10 +02:00
Diogo Diniz
3ef5ee878c Adjusted formatting to comply with contribution guidelines 2025-08-14 19:58:22 +01:00
Ray
28b804a6ba REXM: Validate examples list against existing examples in repo 2025-08-14 20:38:27 +02:00
Ray
7037f131dc REVIEWED: example: core_3d_fps_controller 2025-08-14 20:37:52 +02:00
Ray
a9970484f3 Remove trailing spaces 2025-08-14 20:37:18 +02:00
Ray
be974bb67e Update CONVENTIONS.md 2025-08-14 20:36:08 +02:00
Diogo Diniz
eae1296b08 Fixed bad macro logic 2025-08-14 18:56:31 +01:00
Diogo Diniz
59c979a59d Added suggestions by planetis-m 2025-08-14 18:46:45 +01:00
Didas72
93f86fa074 fixes #5110
Adds more filters for conditional build of GetWindowHandle with glfw
2025-08-14 14:30:29 +01:00
Ray
3c9d3d9bef REXM: REVIEWED: Update examples status report when examples Updated 2025-08-13 23:54:44 +02:00
Ray
f0131f6ee6 Added missing project to solution 2025-08-13 23:53:35 +02:00
Ray
b17f00b6d9 REXM: Avoid external tool for UUIDv4 generation, implement custom function 2025-08-13 13:25:27 +02:00
Ray
ddebf5d7ac Update Makefile.Web 2025-08-13 12:34:55 +02:00
Ray
a7e66df56d Using define for buffers size 2025-08-13 12:33:38 +02:00
Ray
800be084b6 REXM: Implemented AddVSProjectToSolution() 2025-08-13 12:33:12 +02:00
Ray
ef81145776 Update examples_list.txt 2025-08-13 11:35:23 +02:00
Ray
74339d2008 REVIEWED: IsFileExtension() 2025-08-13 10:43:33 +02:00
Ray
8c7b3b7323 Update examples_report.md 2025-08-13 10:38:04 +02:00
Ray
601091b69e Update raylib.sln 2025-08-13 09:56:22 +02:00
Ray
388bc5075e Update raylib.sln 2025-08-13 08:56:50 +02:00
Ray
b7265c3df1 Update rexm.ico 2025-08-13 08:24:57 +02:00
Ray
cd1c206676 Update rl_gputex.h 2025-08-13 08:22:00 +02:00
Ray
76284f1a16 Corrected typo 2025-08-13 08:13:18 +02:00
Ray
dd19b8d2c2 REVIEWED: Requested window flags application after window initialization 2025-08-12 11:44:20 +02:00
Ray
195b968b86 Merge pull request #4837 from Andersama/support_all_window_flags_at_initialization
[rcore] Support window flags with initialization issues
2025-08-12 11:38:22 +02:00
Ray
95e4494cfe ADDED: cursorLocked variable and review required code #4940 #4955 2025-08-12 11:33:58 +02:00
Ray
c4414fa1ed Revert "Merge pull request #4945 from Moros1138/master"
This reverts commit bab234a160, reversing
changes made to 13e384ce71.
2025-08-12 10:58:56 +02:00
Ray
bab234a160 Merge pull request #4945 from Moros1138/master
[rcore][web] Review resizable canvas on `FLAG_WINDOW_RESIZABLE`
2025-08-12 10:31:12 +02:00
Ray
db2abfb9be Merge branch 'master' into master 2025-08-12 10:28:52 +02:00
Ray
13e384ce71 Merge pull request #5004 from nezvers/example_quake_controller
[examples] New example: `core_3d_fps_controller`
2025-08-12 09:54:23 +02:00
Ray
9aa1b86fdf Merge pull request #5109 from maiconpintoabreu/julia_set
[examples] Increasing julia_set maxInterations glsl100 to 255
2025-08-11 20:26:24 +02:00
Ray
503e6d8bb5 Merge branch 'master' into julia_set 2025-08-11 20:26:16 +02:00
Ray
9b598f6bcf REVIEWED: Shaders formating to follow raylib code conventions 2025-08-11 20:22:31 +02:00
Ray
8dae39fbda ADDED: Missing GLSL120 shaders 2025-08-11 20:22:02 +02:00
Maicon Santana
00f7121b1c Increasing maxInterations glsl100 to 255 to match with glsl330 and add glsl120 2025-08-11 18:16:00 +01:00
Ray
705ce45a33 FIX: Added callback broke keyboard input on web... #5107 2025-08-10 19:59:33 +02:00
Ray
9ff8862826 Merge pull request #5108 from lassade/fix-qoa-music-from-mem
fix: QOA when using with LoadMusicStreamFromMemory
2025-08-10 19:27:08 +02:00
Felipe Jorge
71b7734ce4 fix: QOA when using with LoadMusicStreamFromMemory, reduced the number of allocs and memcpy 2025-08-10 10:05:03 -03:00
Ray
e17e0933af Merge pull request #5104 from matthijskooijman/fix-ssh-backspace
Fix backspace key in Rpi SSH keyboard
2025-08-10 13:22:06 +02:00
Ray
27d7e61f28 Update rexm.c 2025-08-10 09:54:45 +02:00
Matthijs Kooijman
9582d25217 Fix backspace key in Rpi SSH keyboard
There was a typo in the generated keycode.
2025-08-09 21:04:09 +02:00
Ray
852c51343d Merge pull request #5103 from Not-Nik/raylib-zig-update
Update raylib-zig in BINDINGS.md
2025-08-09 19:08:17 +02:00
Nikolas
7bc22f71bd Update raylib-zig in BINDINGS.md 2025-08-09 19:04:00 +02:00
github-actions[bot]
60826855c4 Update raylib_api.* by CI 2025-08-08 21:09:03 +00:00
Ray
5daeffd91b Update parse.yml 2025-08-08 23:08:42 +02:00
Ray
e11bf1c978 Update Makefile 2025-08-08 23:07:08 +02:00
Ray
c6241b91a2 REVIEWED: IsFileExtension() to avoid other modules dependency #5071 2025-08-08 23:01:04 +02:00
Ray
f73b04c42c REXM: Copy examples web-build files to raylib.com 2025-08-08 21:54:15 +02:00
Ray
d6f9988e82 Update Makefile 2025-08-08 13:52:56 +02:00
Ray
c2f2878575 Merge pull request #5099 from JohnnyCena123/raysan-typo
fix typo in 'Ramon Santamaria'
2025-08-08 07:16:07 +02:00
JohnnyCena123
c25e9f641d fix typo in 'Ramon Santamaria' 2025-08-08 03:04:33 +03:00
Ray
17aec580f8 Merge pull request #5096 from wileyanderssen/master
removed unneeded comma
2025-08-07 19:01:53 +02:00
wileyanderssen
c6171d339c removed unneeded comma
hope this gets merged
2025-08-07 19:55:46 +03:00
Ray
df40357f19 Update linux.yml 2025-08-07 18:37:11 +02:00
Ray
570082deba WARNING: **NEW** raylib code CONVENTION: Comments do not end with '.' 2025-08-07 18:23:20 +02:00
Ray
6792e6e2dd Updated required files for new example: shaders_normalmap 2025-08-07 17:50:18 +02:00
Ray
2365ac8def REVIEWED: Example shaders_normalmap #5032 2025-08-07 17:31:11 +02:00
Ray
54473e2c2b REVIEWED: Example shaders_normalmap, it crashes #5032 2025-08-07 17:28:25 +02:00
Ray
47d1cc200d Merge branch 'master' of https://github.com/raysan5/raylib 2025-08-07 17:19:39 +02:00
Ray
8da4887c2d Update examples_list.txt 2025-08-07 17:19:27 +02:00
Ray
ea3932949c Merge pull request #5032 from Sir-Irk/normalmap_example
[examples] New example: `shaders_normalmap`
2025-08-07 17:17:29 +02:00
Ray
a06962ee38 Merge branch 'master' into normalmap_example 2025-08-07 17:17:12 +02:00
Ray
c19c6fc6e0 Merge pull request #5093 from maiconpintoabreu/check-newname-category
[remx] Add check for category on new name
2025-08-07 17:14:45 +02:00
Ray
948b48430d Merge pull request #5092 from maiconpintoabreu/fix-rename-missing-newname
[remx] Add warning for missing new name to avoid segmentation fault
2025-08-07 17:13:27 +02:00
Ray
881c68e323 Merge pull request #5091 from Auios/patch-2
fix: buffer overflow in jar_mod.h memcopy
2025-08-07 17:13:00 +02:00
Ray
ca61b8d555 Merge pull request #5090 from Auios/patch-1
Remove binding link for https://github.com/Rabios/raylib-v7
2025-08-07 17:09:20 +02:00
Ray
f0889a74fe EXAMPLES: Format tweaks 2025-08-07 17:08:22 +02:00
Ray
9f07cfe0b7 Update textures_image_kernel.c 2025-08-07 17:08:02 +02:00
Ray
f02c7fca8a Update shapes_double_pendulum.c 2025-08-07 17:07:45 +02:00
Ray
d45b00b191 Update shaders_rounded_rectangle.c 2025-08-07 17:07:26 +02:00
Ray
7e597dd574 Update rlgl_compute_shader.c 2025-08-07 17:07:10 +02:00
Ray
9003cd32ba Update models_rlgl_solar_system.c 2025-08-07 17:06:50 +02:00
Ray
366887b863 Update models_loading_vox.c 2025-08-07 17:06:39 +02:00
Ray
64fbf07e7b Update audio_sound_multi.c 2025-08-07 17:06:11 +02:00
Ray
5d4a233f52 Update examples_template.c 2025-08-07 17:05:57 +02:00
Ray
fd79b44920 Create distortion.fs 2025-08-07 17:05:50 +02:00
Ray
5eacc872c7 Update README.md 2025-08-07 17:05:45 +02:00
Ray
1fadc67fb3 ADDED: Missing resources on some examples 2025-08-07 17:05:25 +02:00
Ray
ff1087480c ADDED: New projects to VS2022 solution 2025-08-07 17:04:49 +02:00
Ray
c91c185221 Update examples_report.md 2025-08-07 17:04:22 +02:00
Ray
89e6ed2697 REXM: Reviewed VS project adding to solution, no tool to do it! -WIP- 2025-08-07 17:03:54 +02:00
Maicon Santana
fa5560881e Check for category on new name 2025-08-07 12:39:12 +01:00
Maicon Santana
36dc70443a Add warning for missing new name to avoid segmentation fault 2025-08-07 12:01:21 +01:00
Connor O'Connor
1c2ecfd6ab fix: buffer overflow in jar_mod.h memcopy 2025-08-06 23:13:05 -04:00
Connor O'Connor
5dc304b5a7 Remove binding link for https://github.com/Rabios/raylib-v7
This repo (and user) does not exist. Remove it.
2025-08-06 22:41:37 -04:00
Ray
a6f29e4f19 Update examples_report.md 2025-08-06 18:42:33 +02:00
Ray
b3513e4719 ADDED: Missing example VS2022 projects 2025-08-06 18:42:27 +02:00
Ray
c3a4217148 Update rexm.c 2025-08-06 18:25:58 +02:00
Ray
533f06109d Update README.md 2025-08-06 18:23:42 +02:00
Ray
c6f8f06f7e Update rexm.c 2025-08-06 18:20:34 +02:00
Ray
f64d405ef3 Update Makefile.Web 2025-08-06 18:18:39 +02:00
Ray
c477c68419 REXM: Automatically fix not found VS2022 project / solution 2025-08-06 18:14:52 +02:00
Ray
2878f7db22 Create examples_report.md 2025-08-06 15:43:15 +02:00
Ray
8bc1d62e88 REXM: Added legend info to report 2025-08-06 15:43:13 +02:00
Ray
59546eb54a REXM: Support examples data validation and **report generation** 2025-08-06 14:04:30 +02:00
Ray
c95fd5a803 REXM: Support paths customization with environment variables 2025-08-06 14:03:32 +02:00
Ray
c3cad65d30 Update examples_list.txt 2025-08-06 14:02:51 +02:00
Ray
095319602c REVIEWED: Compule for OpenGL 1.1 #5088 2025-08-06 13:09:56 +02:00
Ray
68a1190bf2 REXM: ADDED: Examples validation 2025-08-06 00:56:29 +02:00
Ray
64921e2d8a Merge pull request #5086 from maiconpintoabreu/ignore-compiled-rexm
[rexm] Add compiled rexm to gitignore
2025-08-05 13:18:20 +02:00
Maicon Santana
81eb48cad8 Add compiled rexm to gitignore 2025-08-05 11:44:41 +01:00
Ray
f306685469 Update rexm.c 2025-08-05 12:38:30 +02:00
Ray
99a43457e8 REXM: ADDED: Command; update to validate+update required files 2025-08-05 12:38:11 +02:00
Ray
90cf6a18da REXM: Renamed some variables 2025-08-05 12:37:11 +02:00
Ray
1f2b5d6282 Update examples_template.c 2025-08-05 10:04:54 +02:00
Ray
7b93591676 Added some notes to avoid platform-dependant .BAT scripts 2025-08-05 09:54:51 +02:00
Ray
02992ce63b UPDATE: Get example info from example header when added, to be added to collection 2025-08-05 09:54:17 +02:00
Ray
b683af298c Update examples_template.c 2025-08-05 09:40:01 +02:00
Ray
cdbe9d75ef Merge pull request #5085 from Not-Nik/culling_consistency
Make culling distances consistent across raylib
2025-08-05 00:45:47 +02:00
Nikolas
7267c1c8a1 Make culling distances consistent across raylib 2025-08-05 00:15:52 +02:00
Ray
e09c9ce281 Minor tweaks 2025-08-04 23:36:07 +02:00
Ray
945f1410d2 MOVED: rexm to tools directory 2025-08-04 23:24:43 +02:00
Ray
f5e95029b1 Update rexm.c 2025-08-04 20:44:22 +02:00
Ray
47c186dd87 WARNING: **BREAKING**: Moved raylib parser to tools/parser directory 2025-08-04 20:26:19 +02:00
Ray
cdfb9d7a0b Added some notes for example collection validation 2025-08-04 19:29:28 +02:00
Ray
a436d935f1 Update README.md 2025-08-04 19:28:07 +02:00
Ray
1293461f5e REXM: Some code reviews, README.md generation improvements 2025-08-04 19:27:48 +02:00
Ray
a457ab154e ADDED: Example resources for automatic removal
WARNING: Some of those resources could be shared by other examples in the category so for now we leave removed manual by users...
2025-08-04 18:11:57 +02:00
Ray
1f5fec851d UPDATE: Added Makefile.Web per-example target generation including used resources 2025-08-04 17:52:22 +02:00
Ray
bc0f93baea UPDATE: Added resources scanning from examples for automated copying 2025-08-04 17:51:48 +02:00
Ray
e130775e0d Updated for resources scanning system 2025-08-04 14:13:17 +02:00
Ray
80dd72ce12 REVIEWED: For automation simplification 2025-08-04 13:23:57 +02:00
Ray
d8952958db Update Makefile 2025-08-04 13:23:14 +02:00
Ray
72de562542 REVIEWED: Examples for automation processes 2025-08-04 13:23:04 +02:00
Ray
d43470a3d4 Minor comment reviews 2025-08-03 23:49:52 +02:00
Ray
d182ae7837 UPDATED: Support example removal 2025-08-03 23:32:54 +02:00
Ray
b11d089202 UPDATED: Implementing file rename requirements
Moved files update from collection to separate function
2025-08-03 22:56:15 +02:00
Ray
d194b8d503 ADDED: Some security checks to verify examples categories provided 2025-08-03 21:20:35 +02:00
Ray
8f8a5ada60 REVIEWED: Make sure environment is set in same process and not a child one 2025-08-03 21:19:55 +02:00
Ray
b4ecfb648d Merge pull request #5084 from kariem2k/fix_cmake_sdl3
Removed verbose logging on SDL3.
2025-08-03 19:53:53 +02:00
Karim Ahmed
603219d6d6 Removed verbose logging on SDL3. Happens every time the property is read! 2025-08-03 18:48:24 +01:00
Ray
c146be16cb Update rexm.c 2025-08-03 09:43:38 +02:00
Ray
6ddc9251c2 UPDATE: README.md example addition working 2025-08-03 01:18:19 +02:00
Ray
73baaeeb2e REVIEWED: LoadTextLines() 2025-08-03 01:17:50 +02:00
Ray
361e730f83 Merge pull request #5083 from JeffM2501/obj_double_load
[rModels] Don't Double Upload Meshes in LoadObj,
2025-08-03 00:29:20 +02:00
Jeff Myers
ffe76a4b67 Don't Upload Meshes in LoadObj, LoadModel will upload them. None of the other interchange format readers upload 2025-08-02 14:58:05 -07:00
Ray
1948453394 Update README.md 2025-08-02 20:11:31 +02:00
Ray
b044b52955 UPDATED: examples.js example addition working 2025-08-02 19:43:27 +02:00
Ray
528ad4964d UPDATE: Makefile example addition working 2025-08-02 19:21:36 +02:00
Ray
e76c5f7d64 Update rexm.c 2025-08-02 18:11:30 +02:00
Ray
0533987f80 Merge branch 'master' of https://github.com/raysan5/raylib 2025-08-02 18:01:32 +02:00
Ray
e01f3f158e Remove some testing code 2025-08-02 18:01:23 +02:00
github-actions[bot]
42619ea2df Update raylib_api.* by CI 2025-08-02 16:01:00 +00:00
Ray
c60763d19e UPDATED: LoadExamplesData() to support filtering and sorting 2025-08-02 18:00:41 +02:00
Ray
1c8eef9b0b Update raylib and generate ARM64 libraries for Windows, Linux, macOS 2025-08-02 17:59:34 +02:00
Ray
d3fe9e5036 Merge branch 'master' of https://github.com/raysan5/raylib 2025-08-02 17:58:47 +02:00
Ray
159a9eac4a Update build_example_web.bat 2025-08-02 17:58:44 +02:00
Ray
c4d733e864 Merge pull request #5082 from JeffM2501/render_target_size
[CORE} Make GetRenderWidth/Height return the FBO size if one is active
2025-08-02 17:40:37 +02:00
Jeffery Myers
bf536d68e1 Make GetRenderWidth and GetREnderHeight return the FBO size if one is active. 2025-08-02 08:37:11 -07:00
Ray
b01c8a7a90 UPDATE: Implementing examples commands -WIP- 2025-08-02 00:36:17 +02:00
Ray
a36905607c Update linux.yml 2025-08-01 20:19:35 +02:00
Ray
3e65b23f89 Update windows.yml 2025-08-01 20:10:35 +02:00
Ray
8adccfd521 Update windows.yml 2025-08-01 20:09:49 +02:00
Ray
fde3166e6a Merge pull request #5075 from killerdevildog/add-linux-arm64-builds
[build] Add ARM64 support to Linux builds
2025-08-01 20:07:56 +02:00
Ray
9477838193 ADDED: Some useful functions for examples info loading, using examples_list 2025-08-01 19:40:44 +02:00
Ray
cb91c02bea Merge branch 'master' of https://github.com/raysan5/raylib 2025-08-01 19:40:25 +02:00
Ray
a872de82ed Create examples_list, to be used by rexm or other tools for reference
NOTE: This file should be the source of truth for raylib examples collection, everything will be generated using this file as primary reference.
2025-08-01 19:39:30 +02:00
github-actions[bot]
9d07be6bde Update raylib_api.* by CI 2025-08-01 17:38:20 +00:00
Ray
234f4b2b10 Update raylib.h 2025-08-01 19:38:02 +02:00
Ray
10079e4e65 Reviewed minor formating issues 2025-08-01 18:58:24 +02:00
Ray
6b0174d034 REVIEWED: Examples Makefile to locate examples list: #EXAMPLES_LIST_* 2025-08-01 18:58:05 +02:00
Ray
9fa53aac6f Update examples_template.c 2025-08-01 18:56:54 +02:00
Ray
43bc00379c removed trailing spaces 2025-08-01 10:26:28 +02:00
Ray
ba798e9155 Merge pull request #5079 from zet23t/fixing-obj-loader-crash
[rmodels] Fixing OBJ loading crash when there are no normals present
2025-08-01 08:57:55 +02:00
Eike Decker
121c996c6e fixing OBJ loading crash when there are no normals present 2025-08-01 08:49:48 +02:00
Ray
e7bd177826 Merge pull request #5077 from lpow100/master
Added certain variable assigment to the rename option and fixed some arugment based logs
2025-08-01 01:27:43 +02:00
lpow100
65e3d67eb9 Merge branch 'master' of https://github.com/raysan5/raylib 2025-07-31 16:16:10 -07:00
lpow100
58e3c8604a Added setup for the rename command (NOT TESTED) 2025-07-31 16:16:07 -07:00
Ray
e0b58b7eee Update rexm.c 2025-08-01 01:08:31 +02:00
Ray
d88f27f08d NEW: ADDED: rexm - A simple command-line tool to manage raylib examples -WIP- 2025-08-01 00:30:01 +02:00
Ray
4b2654f851 Create examples_template.png 2025-07-31 23:55:50 +02:00
Ray
968385b5f4 Update examples_template.c 2025-07-31 23:55:46 +02:00
Ray
38ff5d00a0 Create build_example_web.bat 2025-07-31 23:55:26 +02:00
Quaylyn Rimer
11ccf11814 [build] Add ARM64 support to Linux builds
- Add ubuntu-24.04-arm runner for native ARM64 compilation
- Support building both static and shared libraries for ARM64
- Maintain backwards compatibility with existing x86/x64 builds
- Addresses issue #5051 for ARM64 pre-compiled binaries

Expected output: raylib-X.X-linux_arm64.tar.gz in releases
2025-07-30 22:40:54 -06:00
Ray
305c7a2ef9 Merge pull request #5073 from Luca-coder07/master
[examples] Add screenshot for core_basic_window_web
2025-07-31 00:26:26 +02:00
RANDRIA Luca
b273ba930b Add screenshot for core_basic_window_web
The veritable screenshot is this
2025-07-31 01:05:00 +03:00
RANDRIA Luca
756203581e Merge branch 'raysan5:master' into master 2025-07-31 01:00:02 +03:00
Ray
50acba3ce8 REVIEWED: rcore_web, cleaning and reorganizing 2025-07-30 17:31:49 +02:00
Ray
18ae6a377c Merge pull request #4956 from Moros1138/consume-keyboard-events
[rcore][web] Add `EmscriptenKeyboardCallback()` to consume key events
2025-07-30 17:03:10 +02:00
RANDRIA Luca
e662ac80d5 Merge branch 'raysan5:master' into master 2025-07-30 17:37:15 +03:00
Ray
12f0943bd9 Update rcore.c 2025-07-30 16:07:14 +02:00
Ray
b40e53f11c Remove double line spacing 2025-07-30 16:07:08 +02:00
Ray
414235dd17 Update shaders_multi_sample2d.c 2025-07-30 16:06:43 +02:00
RANDRIA Luca
37104195b4 add screenshot core_basic_window_web
There are no screenshot for this and the alt is seen
2025-07-30 16:54:06 +03:00
Ray
138010c1eb Merge branch 'master' of https://github.com/raysan5/raylib 2025-07-28 23:38:00 +02:00
Ray
5ca6bff8ca Update rl_gputex.h 2025-07-28 23:37:48 +02:00
Ray
70daf39eaf Merge pull request #5066 from lepasona/master
[glfw] Update `mappings.h`
2025-07-27 21:23:53 +02:00
Ray
47df461047 Merge pull request #5068 from lepasona/patch-1
[examples] typo: hardcoded gamepad ids in `core_input_gamepad.c`
2025-07-27 21:22:37 +02:00
lepasona
b230720842 example core_input_gamepad.c: fix hardcoded gamepad 0 2025-07-27 14:35:38 +00:00
lepasona
1da6b281de Update glfw mappings.h 2025-07-27 07:37:07 +00:00
Ray
1fc0b4955f REVIEWED: rl_gputex.h, added some info for future improvements 2025-07-26 13:36:03 +02:00
Ray
eb7f8912f8 Minor format tweaks 2025-07-26 12:50:29 +02:00
Ray
8343aed4f6 Avoid fatal errors on OBJ model loading 2025-07-26 12:50:12 +02:00
Ray
c9f9219fa6 REVIEWED: DRM cache buffers support #4988 2025-07-26 12:49:49 +02:00
Ray
5c680739bd Removed platform-specific flag from config.h #4988 2025-07-26 12:49:03 +02:00
Ray
86d9afc10c Merge pull request #4988 from rob-bits/master
[rcore][drm] Replace DRM swap buffer implementation with asynchronous page-flipping and triple framebuffer caching
2025-07-26 12:14:21 +02:00
Ray
715e174d13 Merge pull request #5062 from danilwhale/feat/get-proc-address
[rlgl] Add rlGetProcAddress
2025-07-26 12:07:43 +02:00
Ray
7262be85fd Minor format tweaks 2025-07-26 12:06:24 +02:00
Ray
4da399141a Merge pull request #5063 from kariem2k/fix_cmake_sdl3
Fixed: CMake support for SDL3
2025-07-26 11:49:05 +02:00
Ray
d7893141f3 REVIEWED: rl_gputex.h library to be usable standalone 2025-07-26 11:44:36 +02:00
Ray
94d8d7133b Merge pull request #5045 from sleeptightAnsiC/fix_gputex_logging
[rl_gputex] fix: decouple logging and memory allocation from Raylib
2025-07-26 11:25:58 +02:00
Karim Ahmed
32960af1dc Fixed:
Added CMake support for SDL3.
Now supports including SDL2 or SDL3 as a subdirectory within the project. The system will first check for SDL3, then SDL2. If neither is found, it will attempt find_package(SDL3), followed by find_package(SDL2). If all these checks fail, the process will terminate with an error.
2025-07-24 09:48:52 +01:00
Ray
9a042bc9ad Merge pull request #5061 from myQwil/zig_manual_module
[build][zig] use `addLibrary()` and set root modules manually
2025-07-23 22:13:29 +02:00
danil
d6a897e551 [rlgl]: Add rlGetProcAddress 2025-07-23 21:41:45 +03:00
Mike Will
dfa21c2d1f [build][zig] use addLibrary() and set root modules manually
These changes will be required by Zig version 0.15.0.
2025-07-23 11:56:58 -04:00
Ray
5434ae1100 Merge pull request #5057 from Joecheong2006/example-double-pendulum
[examples]: New example: `shapes_double_pendulum`
2025-07-22 21:01:31 +02:00
Joecheong2006
10fadd9185 Replaced scalar to float 2025-07-22 11:59:46 -07:00
Joecheong2006
b6ae5af4e3 Removed redefined RAD and DEG 2025-07-22 11:57:16 -07:00
Joecheong2006
8a0ab163d3 Changed to 4 spaces 2025-07-22 11:50:48 -07:00
JoeCheong
f3854cb406 Fixed typo 2025-07-22 11:39:24 -07:00
Joecheong2006
f1714a6234 [examples]: New shapes example - double pendulum 2025-07-21 14:59:51 -07:00
Ray
7b017b60d9 Move global variable to right code section 2025-07-21 10:57:21 +02:00
Ray
dedf382f64 Merge pull request #5053 from didas72/master
[rcore][linux] Fixes GetWindowHandle returning a bad handle under Linux X11
2025-07-20 21:23:32 +02:00
Didas72
36364192d5 Fixes GetWindowHandle returning a bad handle under Linux X11 2025-07-19 22:29:08 +01:00
Ray
9b6c09c32f Merge pull request #5049 from wwderw/master
[build] Update Makefile
2025-07-19 12:29:39 +02:00
wwderw
0b125a5fd7 Update Makefile
Remove .bc file removal from clean shell for windows configuration.
2025-07-19 04:54:05 -05:00
Ray
0b7dda8ab1 Merge pull request #5050 from katanya04/master
Update font load message
2025-07-19 11:44:11 +02:00
Catania
3d93b30262 Update font load message 2025-07-18 15:20:38 +02:00
Ray
78a06990c7 Merge pull request #5041 from PanicTitan/master
[example][web] Fix core_custom_frame_control.c to properly register inputs on web platform
2025-07-17 19:01:27 +02:00
Ray
82b80a6998 Review formatting, avoid variable 2025-07-17 18:49:58 +02:00
Ray
71b302846a Review formatting, avoid variable 2025-07-17 18:49:54 +02:00
Ray
8823aba9df Update rprand.h 2025-07-17 18:49:34 +02:00
Ray
6b9a685bae Merge pull request #5048 from veins1/patch-4
[raudio] Fix: music stopping early. Fix: GetMusicTimePlayed for short music
2025-07-17 18:44:29 +02:00
Ray
14582a9f06 Merge pull request #5047 from RomainPlmg/#5009-fix-colorreplace-alpha
[rtextures] Fix ImageColorReplace() alpha issue replacement
2025-07-17 18:43:10 +02:00
wwderw
093e5200d0 Update Makefile
Clean up library build for the web
2025-07-17 05:19:39 -05:00
veins1
0405de794a Fix for music stopping too early 2025-07-16 14:22:57 +00:00
veins1
d03ac97eff GetMusicTimePlayed fix for music shorter than buffer size 2025-07-16 14:18:38 +00:00
Romain Plumaugat
34af70866c [rtextures] Fix ImageColorReplace() alpha issue #5009 2025-07-15 23:19:39 +02:00
Ray
e00c5eb8b1 Merge pull request #5043 from vinnyhorgan/master
Fix warning log macro in rlgl
2025-07-15 20:20:27 +02:00
Ray
cbea2ff502 Merge pull request #5046 from maiconpintoabreu/updatestream-music
[raudio] Prevent UpdateMusicStream to run without music playing
2025-07-15 20:18:46 +02:00
Maicon Santana
3320a2c837 Fix to prevent UpdateMusicStream to run without music playing 2025-07-15 19:07:15 +01:00
katonar
8388160c32 - fixing SUPPORT_DRM_CACHE define check at the end of InitPlatform() 2025-07-15 13:58:23 +02:00
Ray
e7c043529c Merge pull request #5044 from backspaceoverload/fix-HalfToFloat
[rtextures] Fix HalfToFloat Mantissa hex value
2025-07-15 13:12:46 +02:00
sleeptightAnsiC
85bf04c7bf [rl_gputex] fix: decouple logging and memory allocation from Raylib
- make sure that src/external/rl_gputex.h uses it's own macros
    for printing warnings and allocating memory
- add few additional macros in order to decouple rl_gputex from headers
    that are being included by Raylib (e.g. *_MEMSET, *_NULL and so on)
- make sure that rl_gputex uses RL_*ALLOC, TRACELOG and RLAPI macros
    when (and only when) being included by src/rtextures.c
- replace LOG() and RL_GPUTEX_SHOW_LOG_INFO macros with: RL_GPUTEX_WARN
    and RL_GPUTEX_SHOW_WARN_INFO (this is a breaking change, but it was
    broken and unusable anyway, see:
    https://github.com/raysan5/raylib/issues/5039#issuecomment-3065732596 )
- fixes issue all issues mentioned in:
    https://github.com/raysan5/raylib/issues/5039#issuecomment-3065732596
- remove logging upon successfully saving a file; Raylib does this
    anyway and we want rl_gputex to only print WARNings upon failures;
    see: https://discord.com/channels/426912293134270465/541710686468702250/1394406734306480352
- add additional condition when saving a file; now checks for both
    fwrite() and fclose() failures; before it would warn about both,
    but only return result based on fclose()
- add some notes about the current state of compiling rl_gputex
    without depending on Raylib (spoiler: it's still broken...)
- bump rl_gputex version to 1.1 since this is a potential breaking
    change (only for people attempting to use it without Raylib)

Fixes: https://github.com/raysan5/raylib/issues/5039
Reference: https://discord.com/channels/426912293134270465/541710686468702250/1394403611852931255
2025-07-15 07:53:50 +02:00
backspaceoverload
44ebf32389 Fix HalfToFloat Mantissa hex value 2025-07-15 00:52:47 -03:00
Daniel Vincent Horgan
901afadbf1 fix warning log macro in rlgl 2025-07-14 15:36:02 +02:00
Ray
f34e240688 Merge pull request #5042 from Sir-Irk/ImageDrawLineEx_fix
[rtextures] Fix `ImageDrawLineEx()` line thickness
2025-07-14 10:30:34 +02:00
Jeremy Montgomery
fce3102f1c Remove excess comments 2025-07-14 00:11:17 -05:00
sir-irk
9f03d7c426 fixing comments 2025-07-13 23:02:02 -05:00
sir-irk
0c69c43c3a fix ImageDrawLineEx to be able to draw even numbered thicknesses 2025-07-13 22:37:41 -05:00
PanicTitan
9e908e4a76 Update core_custom_frame_control.c to work properly on web 2025-07-14 00:27:56 -03:00
Ray
20a07a65d7 Merge pull request #5037 from garrisonhh/fix-gaussian-blur
[rtextures] fix integer overflow in cast for `ImageBlurGaussian`
2025-07-10 19:06:34 +02:00
garrisonhh
8dbacafbe6 fix overflow in cast for ImageBlurGaussian 2025-07-10 12:48:29 -04:00
Ray
55a5674714 Merge pull request #5036 from sleeptightAnsiC/update_glfw_mappings_h
[glfw] update mappings.h using GenerateMappings.cmake
2025-07-10 09:02:13 +02:00
sleeptightAnsiC
930890555c [glfw] update mappings.h using GenerateMappings.cmake
I did this with the intention of fixing
https://github.com/raysan5/raylib/issues/5027
but it's hard to tell if it will help in that case or not.
Anyway, bumping the header with mappings should be done once in a while.

I haven't found any Raylib script for doing this, so here's how I did it
step-by-step with CMake rule provided by GLFW (I'm on Linux, but this
should be similar on any other POSIX system):
```sh
$ git clone https://github.com/raysan5/raylib.git
$ cd raylib/src/external/glfw/
$ cmake -B ./build -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF -DGLFW_BUILD_DOCS=OFF -G "Unix Makefiles"
$ make -C ./build update_mappings
$ rm -fr ./build
```
then I checked, if any mappings were deleted (without updating) with
following shell one-liner:
```sh
  # you must be at 'raylib/src/external/glfw/' when executing this
$ for i in $(git diff ./src/mappings.h | sed -n -e 's/^-"\([0-9a-z]*\),.*$/\1/p'); do grep <./src/mappings.h "$i" > /dev/null || echo "$i"; done;
```
which gave me the following IDs:
```txt
0300000066f700000500000000000000
030000000d0f00001600000000007803
03000000efbe0000edfe000000000000
03000000786901006e70000000000000
050000005e040000e002000030110000
03000000790000000600000010010000
030000000d0f00000d00000000010000
030000000d0f0000d800000072056800
03000000c0160000dc27000001010000
030000008916000000fd000024010000
```
I have checked all those IDs with `git log -p` against
https://github.com/mdqinc/SDL_GameControllerDB
and it seems that all of them were deleted by upstream (I was afraid that
maybe some mappings were added manually by a Raylib contributor and then
overwritten by my patch, but they weren't; All good!)
2025-07-10 01:37:25 +02:00
Ray
defbeee1a7 Merge pull request #5020 from Emil2010/master
update dr_libs
2025-07-08 21:45:17 +02:00
Ray
d972582bc7 Merge pull request #5025 from zedeckj/master
Fixed typo in example
2025-07-08 21:43:54 +02:00
Ray
5957564983 Merge pull request #5026 from jonathandw743/sdlfix
fixed compile error for PLATFORM sdl
2025-07-08 21:43:30 +02:00
Ray
eaea8e0b0a Merge pull request #5033 from wwderw/master
Update raudio.c
2025-07-08 21:42:47 +02:00
wwderw
8ef51850bf Update raudio.c
Allow for the use of raudio stand alone
2025-07-08 08:51:33 -05:00
sir-irk
32026ca78b fix preview image file name 2025-07-08 06:34:25 -05:00
sir-irk
86d2db2aa9 fix typo on UI and preview image 2025-07-08 05:51:14 -05:00
sir-irk
9a578dbce0 fix formatting 2025-07-08 05:47:11 -05:00
sir-irk
a94feef6d0 update readme 2025-07-08 05:36:39 -05:00
sir-irk
897a8fbc9f adding preview image 2025-07-08 05:28:15 -05:00
sir-irk
510dc763e9 adding normal map example 2025-07-08 05:05:30 -05:00
Ray
a92f67bf34 Merge pull request #5031 from AmityWilder/safety-comments
Safety Comments for Sound/Texture Update Functions
2025-07-08 08:49:11 +02:00
Amy Wilder
205b6a0926 Merge branch 'raysan5:master' into safety-comments 2025-07-07 21:52:54 -04:00
github-actions[bot]
9f6d37ecb4 Update raylib_api.* by CI 2025-07-08 01:51:52 +00:00
Amy Wilder
d4f09984ac Add safety notes to 'Update_' functions 2025-07-07 21:51:27 -04:00
katonar
5b182139ae - implementing Raylib coding convention 2025-07-07 17:55:32 +02:00
katonar
de62be0ec5 - created complier flag SUPPORT_DRM_CACHE, to enable triple buffered DRM caching 2025-07-07 17:28:23 +02:00
jonathandw743
79c29cbe24 fixed compile error for PLATFORM sdl 2025-07-06 11:36:44 +01:00
Jordan Zedeck
e91a3697ff Fixed typo 2025-07-06 01:59:03 -04:00
EmilSylveon
910f4083e1 update dr_libs 2025-07-05 00:53:01 +03:00
Ray
7f8dfc6c69 Merge pull request #5018 from maiconpintoabreu/fix-zig-wasm-win-mac
[Zig] Fix issue on zig build Emscripten run if no emsdk installed
2025-07-04 14:34:07 +02:00
Maicon
f1600a0c7e Fix issue on zig build emscripten run if the user has not installed emsdk 2025-07-04 10:24:32 +01:00
Ray
46f01e315d Merge pull request #5013 from maiconpintoabreu/zig-examples
[zig] Add run examples using zig and emscripten for web
2025-07-01 22:53:22 +02:00
Ray
2e74133a62 Merge pull request #5014 from fosskers/colin/cl-binding
docs: mention another Common Lisp binding
2025-07-01 22:52:52 +02:00
Ray
7f32b9a964 Merge pull request #5015 from Sir-Irk/gltf_model_fix
[rmodels] Fixing offset for processing tangents for GLTF/GLB loading
2025-07-01 22:50:30 +02:00
Ray
8cf932c822 Merge pull request #5016 from Sir-Irk/fix_pbr_example_tangents
[example] Fix pbr example shaders to use vec4 for vertexTangent
2025-07-01 22:48:59 +02:00
sir-irk
ed509193d9 remving w multiply on the tangent itself 2025-07-01 15:30:50 -05:00
sir-irk
f86295732a fixing shader tangents to be vec4 2025-07-01 15:18:11 -05:00
sir-irk
bee524e5e6 fixing offset for processing tangents for gltf loading 2025-07-01 13:23:05 -05:00
Maicon Santana
eef1bac3e2 fix misspelling 2025-06-30 19:38:34 +01:00
Maicon
0cae8890b8 Remove -fno-stack-protector as it is not needed and add requestFullscreen on exported methods 2025-06-30 09:54:20 +01:00
Colin Woodbury
1db006b082 docs: mention another Common Lisp binding 2025-06-30 05:40:17 +09:00
Maicon
8f50436dc9 Fix comments 2025-06-29 09:11:41 +01:00
Maicon
6e9c3acaa4 Add run examples using zig and emscripten for web 2025-06-29 09:04:58 +01:00
Ray
bdda18656b Merge pull request #5011 from maiconpintoabreu/update-emsdk-fix-touch
[zig] Update emsdk version for zig build to fix the issue with the EM_BOOL
2025-06-27 10:18:26 +02:00
Maicon
d659037fbe Update emsdk version for zig build to fix the issue with the EM_BOOL 2025-06-27 08:35:55 +01:00
Ray
c35e136471 Merge branch 'master' of https://github.com/raysan5/raylib 2025-06-24 20:11:37 +02:00
Ray
44f670899c REVIEWED: Avoid rtext dependency on rcore_desktop_sdl #4959 2025-06-24 20:11:35 +02:00
Ray
e09dcf6112 Merge pull request #5006 from ElDigoXD/patch-1
Fix typo on config.h
2025-06-24 19:53:56 +02:00
Diego Sanz
6266d0f419 Fix typo on config.h 2025-06-24 13:48:20 +02:00
Agnis Aldiņš "NeZvērs
ed022e89e5 fix preview crop 2025-06-23 16:22:14 +03:00
Agnis Aldiņš "NeZvērs
f6b7168ed4 Add preview image 2025-06-23 16:06:46 +03:00
Agnis Aldiņš "NeZvērs
fa9653d179 Fix function call 2025-06-23 13:50:24 +03:00
Agnis Aldiņš "NeZvērs
fca2317640 remove //#define PLATFORM_WEB 2025-06-23 13:44:50 +03:00
Agnis Aldiņš "NeZvērs
a2cf878190 cleanup variable shadowing 2025-06-23 13:43:38 +03:00
Agnis Aldiņš "NeZvērs
4233544670 Update core_3d_fps_controller.c 2025-06-23 13:32:08 +03:00
Agnis Aldiņš "NeZvērs
4d5a56a5f8 change game's resolution 2025-06-23 13:15:14 +03:00
Agnis Aldiņš "NeZvērs
eee9dd8c94 Example: core_3d_fps_controller
Quake like camera animations and strafe jump movement
2025-06-23 13:03:35 +03:00
Ray
b677376088 Delete shader in case compilation fails 2025-06-22 23:52:34 +02:00
Ray
1abac023bd Update rcore.c 2025-06-20 23:34:41 +02:00
Ray
8b0230f5b1 Merge pull request #5002 from mlorenc227/master
[rcore] Fix ScanDirectoryFilesRecursively
2025-06-20 23:32:31 +02:00
mlorenc
518ad8b018 Fix ScanDirectoryFilesRecursively
Fixes a regression since 5.5, where `ScanDirectoryFilesRecursively` no
longer does the "recursively" part due to `path` being `static`.

The issue was once already fixed in
5530a3ceb8
but recently made it back it in.
2025-06-20 01:39:01 +02:00
Ray
4bc8d3761c Merge pull request #4999 from danilwhale/raylib-cs.bleedingedge
bindings: add Raylib-cs.BleedingEdge
2025-06-17 16:50:14 +02:00
danil
43bad2612b docs: add Raylib-cs.BleedingEdge to the bindings 2025-06-17 17:15:09 +03:00
Ray
fd4375a74e Merge pull request #4992 from M374LX/rgfw-update
Update RGFW
2025-06-17 11:53:36 +02:00
Ray
17a618758f Merge pull request #4995 from Not-Nik/zig-raygui-options
Allow passing options to raygui in build.zig
2025-06-15 01:46:36 +02:00
Ray
abf255fbe7 Merge pull request #4993 from Marcos-cat/master
add uiua bindings to the list
2025-06-13 05:46:09 +02:00
Marcos Grzesiak
106bcf460a add uiua bindings to the list 2025-06-12 23:41:57 -04:00
M374LX
96c898852c Update RGFW 2025-06-12 19:23:12 -03:00
Ray
3e336e4470 Reviewed warning 2025-06-11 19:52:35 +02:00
Ray
59bcf680aa Code gardening... 2025-06-07 20:14:24 +02:00
Ray
8a3a8ee8e3 Update shapes_digital_clock.c 2025-06-07 20:14:10 +02:00
Ray
533c12c386 Small security tweaks 2025-06-07 15:33:35 +02:00
katonar
060bd787b1 Refactor: Replace DRM swap buffer implementation with asynchronous page-flipping and framebuffer caching
The original implementation created/destroyed framebuffers (FBs) per-frame, leading to kernel overhead and screen tearing. This commit replaces it with a different approach using:
- Asynchronous `drmModePageFlip()` with vblank sync
- Framebuffer caching to reduce repeated FB creation/removal operations
- Proper resource management through BO callbacks and buffer release synchronization
- Added error handling for busy displays, cache overflows, and flip failures
- Event-driven cleanup via page_flip_handler to prevent GPU/scanout conflicts

Co-authored-by: rob-bits
2025-06-05 15:50:07 +02:00
Ray
5f497d0687 REVIEWED: shapes_digital_clock example 2025-06-03 20:42:27 +02:00
Ray
cb369f8df7 Merge pull request #4985 from hmz-rhl/master
[examples] : adding new fancy clock
2025-06-03 20:22:08 +02:00
Hamza RAHAL
3f228f4594 [examples] : adding new fancy clock 2025-06-03 11:40:44 +02:00
Ray
8d319b1004 Merge pull request #4983 from M374LX/miniaudio-update
Update miniaudio to v0.11.22
2025-06-02 18:52:59 +02:00
Ray
d218db9eec Merge pull request #4982 from LainLayer/rgfw-timeout
Change `RGFW_window_eventWait` timeout to -1 to fix `EnableEventWaiting`
2025-06-02 18:50:11 +02:00
github-actions[bot]
59338c2c29 Update raylib_api.* by CI 2025-06-02 16:37:46 +00:00
Ray
714de02a88 Merge pull request #4980 from williewillus/pr4980
[rshapes] Fix incorrect parameter names in DrawRectangleGradientEx
2025-06-02 18:37:34 +02:00
Ray
c81097505c Merge pull request #4981 from garrisonhh/add-build-zig-zon-license
Add LICENSE to build.zig.zon
2025-06-02 18:36:11 +02:00
Ray
53faf7ae74 Merge pull request #4977 from jestarray/patch-2
add const qualifier to ImageDrawTriangleFan and ImageDrawTriangleStrip arguments
2025-06-02 18:35:08 +02:00
M374LX
bb5b5434a7 Update miniaudio to v0.11.22 2025-06-01 14:37:01 -03:00
alqeeu
51958d6e2c changed RGFW_window_eventWait timeout to -1 2025-06-01 17:37:31 +03:00
garrisonhh
b52a9f8a04 Add LICENSE to build.zig.zon 2025-06-01 10:11:42 -04:00
Vincent Lee
19ae6f2c2d [rshapes] Fix incorrect parameter names in DrawRectangleGradientEx
Examining the code shows that the rectangle is drawn winding counterclockwise, starting
with the top left. Therefore the colors used should be in the order: topLeft, bottomLeft,
bottomRight, topRight.

However, the variables actually being used are topLeft, bottomLeft, topRight,
bottomRight. I was confused by this as I was getting striping where I didn't expect any.
Put another way, the last two parameters are misnamed.

This diff swaps the parameter names and their usages. The result is that no runtime
behaviour changes: the same parameter order yields the same visual result both before and
after this change, but the parameter names now correctly reflect what they are actually
used for.

You can actually see this in the implementation of DrawRectangleGradientV, which
(correctly) passes top, bottom, bottom, top to DrawRectangleGradientEx.
2025-05-31 23:00:40 -07:00
github-actions[bot]
58a6846c8f Update raylib_api.* by CI 2025-05-31 21:26:50 +00:00
jestarray
296e3af470 add const qualifier to ImageDrawTriangleFan and ImageDrawTriangleStrip arguments 2025-05-31 14:24:56 -07:00
Ray
924c87db33 Merge pull request #4976 from M374LX/rgfw-update-dev
Update RGFW to 1.7.5-dev
2025-05-31 21:47:54 +02:00
M374LX
6eeaf1dd5b Update RGFW to 1.7.5-dev 2025-05-31 16:43:25 -03:00
Ray
c1bb53738e Merge pull request #4974 from M374LX/rgfw-escape-fix
RGFW: fix Escape always closing the window
2025-05-31 20:43:40 +02:00
Ray
9bf4388a4f Merge pull request #4965 from M374LX/rgfw-update
Update RGFW to 1.7
2025-05-31 20:42:08 +02:00
github-actions[bot]
3414d96eaf Update raylib_api.* by CI 2025-05-31 18:41:49 +00:00
Ray
20c0c92bdb Merge pull request #4963 from meowstr/master
[rshapes] Add DrawEllipseV and DrawEllipseLinesV
2025-05-31 20:41:37 +02:00
M374LX
bc2b2864e0 RGFW: fix Escape always closing the window 2025-05-31 14:24:38 -03:00
Nikolas
b26f6d34ba Allow passing options to raygui in build.zig 2025-05-30 14:30:24 +02:00
Ray
b9c2ecc447 Merge pull request #4969 from M374LX/update-comments
Update comments
2025-05-30 08:05:20 +02:00
github-actions[bot]
8f2ecfba4d Update raylib_api.* by CI 2025-05-30 02:04:09 +00:00
M374LX
3418172617 Update comments 2025-05-29 23:01:48 -03:00
Ray
015db1641f Merge pull request #4964 from M374LX/axes-comment
Update comment (gamepad axes)
2025-05-29 22:45:45 +02:00
M374LX
a9525bfbc2 Update RGFW to 1.7 2025-05-29 16:03:39 -03:00
M374LX
16f398b464 Update comment (gamepad axes) 2025-05-29 15:01:01 -03:00
Meowster
6d5aedbd38 Add DrawEllipseV and DrawEllipseLinesV 2025-05-29 07:10:52 -04:00
Ray
913c236487 REVIEWED: MAX_GAMEPAD_AXES 2025-05-29 12:51:08 +02:00
Ray
341bfb22cc REVIEWED: MAX_GAMEPAD_AXEX for consistency #4960 2025-05-29 12:25:00 +02:00
Ray
2afae1b3e1 Merge pull request #4962 from M374LX/rgfw-rctrl
RGFW backend: add missing Right Control key
2025-05-29 12:09:01 +02:00
Ray
f9fa63366c Merge pull request #4958 from M374LX/unused-var
Remove unused variable
2025-05-29 12:07:14 +02:00
M374LX
c0cf57f8f0 RGFW backend: add missing Right Control key 2025-05-28 22:38:16 -03:00
M374LX
299f5350a4 Remove unused variable 2025-05-28 19:49:57 -03:00
Moros Smith
f7fe8b88cb add EmscriptenKeyboardCallback to consume key events 2025-05-28 17:47:18 -04:00
github-actions[bot]
2d952d8e94 Update raylib_api.* by CI 2025-05-28 15:19:32 +00:00
Ray
d7148f5f9d REDESIGNED: Base64 encoding/decoding functions
Found some issues with output size when padding required, just re-implemented both functions from scratch.
2025-05-28 17:19:19 +02:00
Ray
5ddd13b775 REVIEWED: Hexadecimal formatting to be consistent 2025-05-28 17:18:02 +02:00
Moros Smith
8ef6473d33 return to ray's expected resize behavior 2025-05-25 18:58:35 -04:00
Moros Smith
cf2099f18a the holy grail 2025-05-24 20:33:27 -04:00
github-actions[bot]
8d9c1cecb7 Update raylib_api.* by CI 2025-05-22 15:07:11 +00:00
Ray
afb52b19a4 WARNING: REDESIGNED: EncodeDataBase64(), NULL terminated string returned
Note that returned output size considers the NULL terminator as an additional byte.
2025-05-22 17:06:55 +02:00
Ray
21f0fe2a73 Removed some spaces 2025-05-21 19:06:04 +02:00
Ray
e3b9dbe75b Merge pull request #4947 from padmadevd/master
[rcore] Fixed bug in hovering and input for android
2025-05-19 11:59:14 +02:00
Padmadev D
b6daa48a9c Update rcore_android.c
corrected coding conventions.
2025-05-19 15:09:58 +05:30
Ray
a1d57e83f0 Merge pull request #4948 from parzivail/bug/meshnormals
Fix typo in mesh animNormals
2025-05-19 07:16:48 +02:00
Colby Newman
21e711b13f Fix typo in mesh animNormals 2025-05-18 19:35:21 -04:00
Padmadev D
5da2d10118 Update rcore_android.c
Bug Fix Update
Code to Ignore Hovering Inputs Completely
2025-05-18 18:53:28 +05:30
Ray
2be18e2c54 Merge pull request #4944 from Pivok7/master
[examples] Basic pbr example fix
2025-05-18 15:09:47 +02:00
Moros Smith
358917ffc3 trigger resize event when going into and out of fullscreen mode 2025-05-17 21:08:57 -04:00
Moros Smith
d0d42e78ea inform glfw that a change of window size has taken place 2025-05-17 21:08:35 -04:00
Moros Smith
b618d7b35b use parentElement's dimensions for width/height 2025-05-17 21:08:07 -04:00
Pivok
0ffc8c517f Pbr example fix 2025-05-17 12:32:17 +02:00
Ray
8c99a508c6 REVIEWED: WindowSizeCallback(), GLFW
It is called on window minification and setting internal width/height to 0, that can break things
2025-05-14 23:49:24 +02:00
Ray
a51d334440 Merge branch 'master' of https://github.com/raysan5/raylib 2025-05-14 23:47:32 +02:00
Ray
9d4c31533d Update rtext.c 2025-05-14 23:47:03 +02:00
Ray
15a0cf89b8 Merge pull request #4936 from lumenkeyes/master
build.zig fixes for android targets
2025-05-13 20:54:13 +02:00
Ray
ba31219141 Merge pull request #4937 from Bigfoot71/fix-gen-tangents
[rmodels] Fix and improve `GenMeshTangents`
2025-05-13 20:52:51 +02:00
Ray
5076d5743b Merge pull request #4938 from JeffM2501/const_save_callback
[utils] fix const warning with SaveFileText callback
2025-05-13 20:51:47 +02:00
github-actions[bot]
4a1e9931a6 Update raylib_api.* by CI 2025-05-13 02:55:19 +00:00
Jeffery Myers
aa684a33de make save file callback match const correctness of calling function 2025-05-12 19:54:34 -07:00
Bigfoot71
d135eef462 fix and improve GenMeshTangents 2025-05-12 23:16:06 +02:00
Lumen Keyes
6f11e27bbe fix typo 2025-05-12 11:19:08 -06:00
Lumen Keyes
dea6a24777 build.zig fix: link EGL for Android 2025-05-12 11:13:32 -06:00
github-actions[bot]
63b988ade9 Update raylib_api.* by CI 2025-05-11 09:05:50 +00:00
Ray
f7d03efb49 REVIEWED: DecodeDataBase64(), follow convention:
- All `char *` refer to text strings
- All `unsigned char *` refer to generic byte arrays
2025-05-11 11:05:25 +02:00
Ray
3083f0cd43 REVIEWED: SaveFileText(), const input text 2025-05-11 11:03:49 +02:00
Ray
693c9c292a Formatting tweaks 2025-05-10 22:45:08 +02:00
Ray
4ac31f7cde Merge pull request #4928 from JeffM2501/unload_default_font
[rtext] Properly clean up the default font on unload
2025-05-10 21:47:53 +02:00
Jeffery Myers
ebaa922f6b Properly clean up the default font on unload, it may be reused if the window is created again 2025-05-08 09:57:31 -07:00
Ray
7e07278368 Update rprand.h 2025-05-08 17:06:29 +02:00
Ray
1402e830b4 Merge pull request #4926 from karl-zylinski/draw-sphere-normals
Add normals to DrawSphereEx
2025-05-08 00:26:21 +02:00
Ray
6fad12db73 Merge pull request #4927 from lumenkeyes/master
build.zig fixes for android targets
2025-05-06 18:41:53 +02:00
lumenkeyes
35de7b26a4 catch error in build.zig 2025-05-06 10:08:12 -06:00
lumenkeyes
eae3fd83d5 properly detect if abi is android 2025-05-06 10:04:54 -06:00
lumenkeyes
c4b9c0e039 properly generate android triple in build.zig 2025-05-06 09:46:42 -06:00
Karl Zylinski
a15548fb5a Add normals to DrawSphereEx 2025-05-06 13:09:05 +02:00
Ray
3d6e24af4f Merge pull request #4906 from Bigfoot71/fix-clip
[rlgl] Proposed fix for default near/far clipping range
2025-05-06 11:12:35 +02:00
Ray
512b1bed4f Merge pull request #4925 from JeffM2501/animated_meshes_GL11
[rmodels] support CPU animation in OpenGL 1.1
2025-05-06 00:54:54 +02:00
Jeffery Myers
e07e3354a3 Merge branch 'animated_meshes_GL11' of github.com:JeffM2501/raylib into animated_meshes_GL11 2025-05-05 15:51:13 -07:00
Jeffery Myers
ee2ab11cc5 Use the animated verts and normals in GL 1.1 if they exist 2025-05-05 15:49:23 -07:00
Jeffery Myers
95c96b345c Use the animated verts and normals in GL 1.1 if they exist 2025-05-05 14:54:35 -07:00
Ray
31d63d08e2 Merge pull request #4922 from Bigfoot71/review-file-dir-2
[rcore] Some adjustments for `FilePathList`
2025-05-05 16:57:22 +02:00
Ray
a7ad2d1965 Merge pull request #4918 from JeffM2501/default_font_image_leaks
[rText] Fix issues with default font being used before InitWindow in the image API.
2025-05-05 12:06:55 +02:00
Ray
3d292a6c3c Merge pull request #4923 from JeffM2501/gltf_bone_fix
[rmodels] Fix GLTF bone weight assignments for meshes that are parented to armature bones.
2025-05-05 10:22:21 +02:00
Jeffery Myers
e53a43b7b5 Assign meshes without bone weights to the bone they are attached to so they animate. 2025-05-04 17:32:37 -07:00
Bigfoot71
38aec920b5 makes path static in ScanDirectoryFilesRecursively 2025-05-04 14:47:52 +02:00
Bigfoot71
03988d2ce8 added a NULL check in UnloadDirectoryFiles 2025-05-04 14:46:39 +02:00
Le Juez Victor
c087144385 Merge branch 'raysan5:master' into fix-clip 2025-05-04 12:29:19 +02:00
Ray
82c87d1f69 Merge pull request #4920 from MrScautHD/patch-1
Update BINDINGS.md
2025-05-04 11:41:06 +02:00
MrScautHD
8533d284c1 Update BINDINGS.md 2025-05-04 11:20:11 +02:00
Jeffery Myers
94c5de33a0 Make the default font loadable before InitWindow, for use with the image API.
Make the default font loader early out if we have already loaded parts of it, so we don't leak memory
2025-04-30 17:56:30 -07:00
Ray
3a1d6261e2 Merge pull request #4916 from daniel-abbott/audio_sound_positioning_fix
[examples] PR for #4904, calculate 'right' Vector3 to correctly perform audio positioning.
2025-04-30 19:41:15 +02:00
Daniel Abbott
696f225f29 Update audio_sound_positioning.c
Calculate `right` Vector3 for correct audio stereo positioning.
2025-04-30 10:12:35 -06:00
Ray
1ec281e86f Merge pull request #4914 from Servall4/master
[raudio] fix: GetMusicTimePlayed returns incorrect time after restarting a paused track
2025-04-28 23:13:31 +02:00
Ray
d1a3f93077 Merge pull request #4915 from rael346/cmake-replace-custom-variable
cmake: replace custom variable with built-in one
2025-04-28 23:11:56 +02:00
Duy Tran
f0de896f36 cmake: replace custom variable with built-in one 2025-04-28 11:57:53 -04:00
Ivan Ugryumov
ec5ce8c7fe Update raudio.c 2025-04-28 14:29:51 +03:00
Ray
1d020d6db1 Merge pull request #4913 from rael346/cmake-uninstall-conflict
Only create uninstall target when raylib is top level
2025-04-27 21:12:10 +02:00
Duy Tran
629d4c1721 only create uninstall target when raylib is top level 2025-04-27 14:35:30 -04:00
Ray
27a4fe8851 Merge pull request #4910 from marler8997/fixEmscripten
build.zig: fix building raylib for emscripten
2025-04-26 22:50:49 +02:00
Jonathan Marler
8d03636132 build.zig: fix building raylib for emscripten
build.zig doesn't support the examples for the emscripten OS but it does
support the raylib library. However, the examples panic if emscripten
is configured which prevents it from building the library. I've replaced
this panic with a fail step to fix this.
2025-04-26 10:37:11 -06:00
Ray
5c954c1f52 Merge pull request #4909 from gfaster/alt_fix
Revert GLFW_SCALE_FRAMEBUFFER to pre GLFW 4.3 behavior
2025-04-26 15:14:58 +02:00
Ray
7c6537a34f Merge pull request #4907 from ZeanKey/master
[example] Closes #4901, Fix Problems in 'text_draw_3d.c'
2025-04-26 15:12:44 +02:00
Gavin Rohrer
10478ff756 Revert GLFW_SCALE_FRAMEBUFFER to pre GLFW 4.3 behavior 2025-04-25 14:32:02 -04:00
Z-AKey
12bf30ce04 Merge branch 'raysan5:master' into master 2025-04-22 16:49:12 -04:00
Zean Key
77f31178ed fixed text_draw_3d 2025-04-22 16:48:50 -04:00
Le Juez Victor
461c9c9d90 review tabs 2025-04-22 15:02:09 +02:00
Le Juez Victor
a7333a9dae review near/far 2025-04-22 15:00:54 +02:00
Ray
688a81d333 Update ROADMAP.md 2025-04-20 13:15:28 +02:00
Ray
f3b68184c0 Merge pull request #4903 from JeffM2501/audio_code_formatting
[RAUDIO]Fix code formatting issue from PR #4898
2025-04-20 11:20:28 +02:00
Jeffery Myers
0f6b9ee738 format math the way ray likes it 2025-04-18 07:27:20 -07:00
Ray
b185f482d0 Merge pull request #4896 from mUnicorn/fix_bones_animation_scale
[rmodels] Fix bones animation scale
2025-04-18 10:46:00 +02:00
Ray
73030e02d4 Merge pull request #4895 from AndrewHamel111/descriptive-window-flag-warning
Add Warning to direct users to appropriate WindowState / ConfigFlag function
2025-04-18 10:43:24 +02:00
Ray
cf1713e6dd REVIEWED: VS2022 projects use a custom resource file...
...instead of relying in src/raylib provided one. #4900
2025-04-18 10:25:40 +02:00
Ray
6b85aa7f72 Merge pull request #4900 from JeffM2501/duplicate_resource
[Examples] Remove duplicate resource file
2025-04-18 10:04:49 +02:00
Ray
fdc835d294 Merge pull request #4898 from JeffM2501/better_buffer_defaults
[RAUDIO] Better computation of the default audio stream buffer size
2025-04-18 09:59:14 +02:00
Ray
f6d05cc5e6 Merge pull request #4899 from JeffM2501/examples_casting_4-26-25
[Examples] Fix cast warnings in examples.
2025-04-18 09:56:37 +02:00
Zean Key
869ae8bbd2 [example] fix text size in text_draw_3d 2025-04-17 14:40:36 -04:00
Jeffery Myers
0b37251fbd Remove duplicate resource file 2025-04-16 18:26:06 -07:00
Jeffery Myers
eb3d96a36a Fix cast warnings in examples. 2025-04-16 18:23:55 -07:00
Jeffery Myers
5185d4c427 use the device channels and sample size when computing the default buffer size. 2025-04-16 18:13:41 -07:00
d.isakov
42a40b3920 move first mesh bones calculation under check for its presense 2025-04-16 08:04:58 +02:00
d.isakov
b4f1ff9a00 #4888 fix UpdateModelAnimationBones scale transform 2025-04-16 07:49:26 +02:00
AndrewHamel111
fdb92b373b Warning to direct users to appropriate function 2025-04-15 21:08:35 -04:00
Ray
5b940692ea REVIEWED: ExportFontAsCode() not checking isGpuReady #4894 2025-04-15 13:09:44 +02:00
Ray
80fcca4155 Update rcore_desktop_glfw.c 2025-04-14 12:37:06 +02:00
Ray
cc5739a6d7 REVIEWED: Some PRs formating 2025-04-13 20:55:38 +02:00
Ray
cb111ad15e Merge pull request #4883 from JeffM2501/highdpi_screenshot
[RCORE] Fix issue with screenshots on HIGHDPI displays
2025-04-12 20:56:36 +02:00
Ray
ab901c58bb Merge pull request #4881 from Bigfoot71/raylib-sound-positioning
[examples] Add 3D sound spatialization example
2025-04-12 20:55:29 +02:00
Ray
618adb858a Merge pull request #4884 from eutro/racket-raylib-5.5
Update `racket-raylib` version in BINDING.md
2025-04-12 20:54:43 +02:00
Ray
5000f9f6f8 Merge pull request #4887 from marler8997/buildZigFormat
build.zig: run zig fmt
2025-04-12 20:52:41 +02:00
Gunko Vadim
53cbd3cb11 rename 2025-04-12 07:10:14 +05:00
Gunko Vadim
0d86084709 Update text_unicode_font_example.c
The creation of the array has been rewritten, the size of the example has been reduced
2025-04-12 07:07:14 +05:00
Jonathan Marler
3d792f3363 build.zig: run zig fmt 2025-04-11 09:44:44 -06:00
Gunko Vadim
4184a5b251 Update text_unicode_font_example.c 2025-04-11 18:43:12 +05:00
Gunko Vadim
5d7e8010a5 example unicode font
A review of the code is required.  Since I'm not sure what's written correctly at all.
2025-04-11 14:39:06 +05:00
eutro
7a6b3ebf3a Update racket-raylib version in BINDING.md 2025-04-11 00:06:18 +01:00
Jeffery Myers
60eb3a14d7 Only scale the screenshot by the DPI scale if we are doing automatic High DPI scaling, otherwise the native resolution is correct. 2025-04-10 13:59:09 -07:00
Bigfoot71
59dc53d20e update readme 2025-04-09 18:09:50 +02:00
Bigfoot71
d5733ffb9a update example makefiles 2025-04-09 18:09:32 +02:00
Ray
a5639bb186 Merge pull request #4861 from luis605/view-depth-texture
[examples] Added new shader example: `shader_depth_texture`
2025-04-09 17:57:20 +02:00
Bigfoot71
a554ef339b add audio_sound_positionning example 2025-04-09 17:27:45 +02:00
Ray
5aa3f0ccc3 Merge pull request #4879 from brccabral/cmake_config_verbose
[cmake] set correct description for verbose option
2025-04-07 11:30:26 +02:00
Bruno Cabral
636e239e07 [cmake] set correct description for verbose option 2025-04-06 22:33:46 -07:00
luis605
4960cc74e0 [examples] Reviewed shader view depth 2025-04-04 22:41:34 +01:00
Ray
ceb1a5ea2b REVIEWED: Temporaly fix for issue #4874 2025-04-03 18:31:05 +02:00
Ray
f4f860b343 Merge pull request #4873 from zet23t/bugfix-4872-sdl-touch-handling-error
[rcore][SDL2] First touch position is overwritten with mouse pos
2025-04-02 19:19:54 +02:00
Eike Decker
1c4aa1378f [rcore][SDL2] First touch position is overwritten with mouse pos
I believe it makes sense to only do this when there are no known
touch points. I am not even sure if this should be done at all.

See https://github.com/raysan5/raylib/issues/4872 for more information.
2025-04-01 23:10:19 +02:00
Ray
b529f52dab Merge pull request #4871 from lumenkeyes/add-zig-android-target
small build.zig fix
2025-04-01 20:00:16 +02:00
Lumen Keyes
d0cf8961d3 fix typo 2025-04-01 10:54:51 -06:00
Lumen Keyes
33b2829a89 fix android-libc.txt generation
Previously, the libc paths file `android-libc.txt` was written to
the folder from which the user ran `zig build`. This caused
problems when using raylib as a dependency in other zig
projects, since raylib is not built in the project root, but the
`android-libc.txt` file was still generated in the project root. The file
should now be generated in .zig-cache, which should fix the isssue (and
leave the project root folder cleaner).
2025-04-01 10:43:22 -06:00
Ray
11e15ab2ac Merge pull request #4870 from lumenkeyes/add-zig-android-target
Add Android Target to build.zig
2025-04-01 01:28:20 +02:00
Ray
1a67dcb578 REVIEWED: RGB order on SDL3 #3568 2025-04-01 01:26:51 +02:00
Lumen Keyes
d52687eeee Add Android Target to build.zig
Added an Android target to the zig build script.
This allows a user to easily build with only Android-supported
libraries.
Library paths are automatically inferred as much as possible.
2025-03-31 13:36:51 -06:00
Ray
d4202a09e6 Merge pull request #4868 from marler8997/coreWindowFlagsBorderless
core_window_flags example: add borderless windowed toggle
2025-03-31 19:24:55 +02:00
Jonathan Marler
f19d4c71ab core_window_flags example: add borderless windowed toggle 2025-03-31 10:23:34 -06:00
Ray
902ffde898 Merge pull request #4865 from marler8997/core_highdpi_example
[examples] Adding `core_high_dpi` example
2025-03-29 16:42:45 +01:00
Jonathan Marler
336fd78f74 Add core_highdpi example
This example enables HIGHDPI and renders a scale showing how the logical
size compares to the pixel size of the window.
2025-03-28 16:48:21 -06:00
Ray
9a049d1d27 Merge pull request #4859 from MikiZX1/master
Update rcore_desktop_sdl.c
2025-03-28 18:03:32 +01:00
Ray
61aea2495a Merge pull request #4863 from marler8997/fixImmediateRestore
Prevent immediate window restore from minimize in core_window_flags
2025-03-28 18:02:12 +01:00
Ray
57a00b09b2 Merge pull request #4862 from marler8997/coreFlagsFps
Uncomment SetTargetFPS in core_window_flags
2025-03-28 17:56:30 +01:00
Ray
1f9d7c6f88 Merge pull request #4866 from marler8997/restoreWindowDesc
Improve description of RestoreWindow
2025-03-28 17:55:45 +01:00
Jonathan Marler
af16f7823a Improve description of RestoreWindow
Restore window currently says it sets the window state to:

   "not minimized/maximized"

However, if a window is maximized and then minimized, it's typical that
it would restore back to being maximized, which is what seems to happen
from my testing. I've reworded the description to better reflect
this behavior.
2025-03-28 10:39:22 -06:00
Ray
44f4400f5b Merge pull request #4864 from marler8997/excludeRglfw
[build] only include rglfw.c for glfw platform
2025-03-27 08:30:32 +01:00
Jonathan Marler
508ca5c80f [build] only include rglfw.c for glfw platform
It looks like raylib doesn't require rglfw.c if you're using the RGFW
backend.  I'm guessing the same is true for SDL but I haven't tested.
Excluding this one file brings the raylib library down from 6.9 MB to
6.3 MB for RGFW.

However, one of the examples requires the symbols from rglfw.c,
to accomodate this I added a function that will check whether raylib has
already included rglfw and if not include it for that one example.
2025-03-26 21:14:46 -06:00
Jonathan Marler
00fb09cebf Prevent immediate window restore from minimize in core_window_flags
The core_window_flags example automatically restores the window from
being minimized after 3 seconds. However, it only resets the frameCounter
if the window is minimized through the app from inputting KEY_N.  This
means if you miminize the window by other means (like pressing the minimize
button) then the example will immediately restore the window because the
frame counter wasn't reset. I've fixed this by setting the frameCounter
back to 0 once it's expired. I also added a note in the UI that the example
automatically restores the window so it's not a surprise.
2025-03-26 20:02:03 -06:00
Jonathan Marler
8749ba9ebf Uncomment SetTargetFPS in core_window_flags
I think this line was accidently commented out in this commit:

3d1ae3500c

The FPS limit is needed to get the desired wait time for the "hide window"
test, which uses the frame counter to hide the window for 3 seconds. On
my machine without this limit it runs at over 1000 FPS and it appears
like the hide window state is broken.

I also added some text that tells the user that it only hides the window
for 3 seconds so they're not surprised when the window automatically
reappears.
2025-03-26 16:35:31 -06:00
luis605
8ec52e3b25 Added example to build system 2025-03-26 19:47:45 +00:00
luis605
eeda7a4b82 Added shaders_view_depth example to the build system 2025-03-26 17:41:04 +00:00
Ray
001e78014c Merge pull request #4860 from marler8997/fixDivide0
Avoid divide by 0 in core_custom_frame_control example
2025-03-26 18:01:37 +01:00
luis605
e08fc8ab80 Added new example - [shader] render depth texture 2025-03-26 16:59:05 +00:00
Jonathan Marler
611c43719f Avoid divide by 0 in core_custom_frame_control example 2025-03-26 10:58:59 -06:00
MikiZX1
55c6864092 Update rcore_desktop_sdl.c
raylib app crashing when started and a gamepad is already connected to the PC (even if the gamepad is not used in the app). I only tested this with a gamepad that has a layout which is not recognized. Using SDL3 as backend.
2025-03-26 14:06:58 +01:00
Ray
beaadc9185 Merge pull request #4856 from marler8997/oneBuild
[build] remove examples/build.zig, incorporate into main build.zig
2025-03-25 22:39:13 +01:00
Ray
3d83c1c796 Format tweak 2025-03-25 19:27:55 +01:00
Jonathan Marler
ac17de5074 [build] remove examples/build.zig, incorporate into main build.zig
Removes the second build.zig in the examples directory and incorporates it
into the main build.zig. This gives the zig build system the data needed to
know if the raylib library needs to be rebuilt when running any example.
2025-03-25 11:05:59 -06:00
Ray
909c83fd4a Avoid path filtering on TakeScreenshot() 2025-03-25 16:22:46 +01:00
Ray
32c8f396c2 Merge branch 'master' of https://github.com/raysan5/raylib 2025-03-25 16:21:53 +01:00
Ray
63e608d485 comment tweak 2025-03-24 15:07:36 +01:00
Ray
f5c96302d5 Merge pull request #4850 from sleeptightAnsiC/fix_rcore__ChangeDirectory_TRACELOG
[rcore] fix: TRACELOG upon successfully changing directory
2025-03-23 19:13:12 +01:00
sleeptightAnsiC
8e9c3ceb57 [rcore] fix: TRACELOG upon successfully changing directory
InitWindow() prints CWD during initialization,
but ChangeDirectory() does not, which is quite confusing when you start
messing with CWD. Now said function should log similar message.
2025-03-22 21:20:17 +01:00
Ray
46cd07d2c7 WARNING: REVERTED CHANGE THAT BROKE BATCHING!!! #4849
I'm sorry... I did not detect this change was breaking batching... :(
2025-03-21 17:17:45 +01:00
Ray
266fba1111 Minor tweaks 2025-03-21 17:07:55 +01:00
Ray
add4da8fb3 Merge pull request #4845 from bamless/log-zoom
[examples] use logarithmic zoom scaling in 2d camera examples
2025-03-20 10:38:59 +01:00
Fabrizio Pietrucci
e140aca1b5 Increase zoom factor in core_2d_camera.c
This compensate for slower zoom speed due to log scaling
2025-03-19 20:19:19 +01:00
Fabrizio Pietrucci
8b84c999d2 Use logarithmic zoom scaling in 2d camera zoom examples 2025-03-19 19:48:04 +01:00
Ray
cd9206956c Merge pull request #4843 from theundergroundsorcerer/DrawCircleSector-quickfix
Add early return when angles are equal in DrawCircleSector and DrawCircleSectorLine functions.
2025-03-18 11:29:32 +01:00
Myrddin Krustowski
589ad0a33d Add early return to circle sector functions when angles are equal.
Prevents unnecessary work and division by zero (when segments=0) in DrawCircleSector/DrawCircleSectorLines when startAngle equals endAngle, matching existing behavior in DrawRing/DrawRingLines.
2025-03-18 11:51:58 +02:00
Ray
2f63a15630 Merge pull request #4836 from JeffM2501/unscale_on_resize
[rcore] Correctly handle window size on resize in auto-scaled HIGHDPI environment
2025-03-14 17:15:14 +01:00
Jeffery Myers
d56ab670c3 spaces not tabs 2025-03-14 08:18:26 -07:00
Ray
bbbdd1f080 Merge pull request #4839 from aidonmaster/patch-1
Converting int to char
2025-03-14 08:09:49 +01:00
Aidon
513753c394 Converting int to char
Fixes warning: narrowing conversion caused by trying to convert int to unsigned char
2025-03-13 21:50:20 -03:00
Ray
cb830bed72 Increased depth size and clip distances to avoid z-fighting issues 2025-03-13 16:34:39 +01:00
Ray
d0e638cc31 REVIEWED: Platform DRM messages... 2025-03-13 11:42:16 +01:00
Alex Anderson
99a9ecfaac [rcore] Support window flags with initialization issues
This may not be the correct approach, however this appears to work. The idea is that before modifying `CORE.Window.flags` when first creating the window we keep a copy of the flags in order to call `SetWindowState` after initialization has completed, which should behave as if `MaximizeWindow` or `MinimizeWindow`, or conceptually any other flag modifying function were called after `InitWindow`.

This pull request only performs this for the windows platform, modify as needed in the switch statement at the end for others.
2025-03-12 14:56:02 -07:00
Jeffery Myers
4bed3741c1 Unscale the window size on resize if we are doing automatic HighDPI scaling. 2025-03-12 14:16:50 -07:00
Ray
749a512f13 REVIEWED: ScanDirectoryFiles*() #4833 2025-03-12 12:44:40 +01:00
Ray
654d5c80c2 Merge pull request #4833 from MykBamberg/master
[rcore] Use snprintf to prevent buffer overflow in path construction
2025-03-12 12:40:25 +01:00
Ray
a0318e67aa Merge pull request #4835 from NiamhNightglow/master
Guard against DEBUG Redefinition
2025-03-12 11:29:11 +01:00
Nia Nightglow
fffbbad2f7 Guard against DEBUG Redefinition
Undefine DEBUG to avoid external redefinition
warnings/conflicts.  This is probably a common
definition for many external build systems'
debug configurations.

This ensures raylib will not emit
a warning about the DEBUG definition being
redefined in external build systems.
2025-03-12 00:13:01 -05:00
MykBamberg
daa2921476 [rcore] Use snprintf to prevent buffer overflow in path construction 2025-03-12 01:38:39 +01:00
Ray
b80250bee4 Merge pull request #4807 from RicoP/RicoP/sinfl_bsr
[rcore] sinfl_bsr fix for TCC
2025-03-11 08:32:32 +01:00
Rico P
0934cdba48 fix C++ style cast 2025-03-11 07:09:10 +01:00
Rico P
7dc409d060 potential fix for MSVC compile error 2025-03-11 07:03:57 +01:00
Rico P
e7872a700d update sinfl_bsr 2025-03-10 20:57:48 +01:00
Ray
7f8bf2233c REVIEWED: Formating to follow raylib conventions 2025-03-10 17:08:18 +01:00
Ray
bd8e59f18d Replace size_t by unsigned int 2025-03-10 17:07:18 +01:00
Ray
4c8c72778d Remove trailing spaces 2025-03-10 17:04:29 +01:00
Ray
9c62a7823b Update Makefile 2025-03-10 17:04:14 +01:00
Colleague Riley
0853c5b03f [rcore][RGFW] bug fixes (#4798)
* update RGFW to 1.6

* properly handle RGFW_quit events

* fix rcore_desktop_rgfw bugs

* update

* update

* uncomment out
2025-03-10 16:50:40 +01:00
Amy Wilder
61a026f7ef [examples] Reorganize some conditions to fix overlap bugs (#4829)
* Reorganize some conditions to fix overlap bugs

* Fix edge case where control point selection outlives mouse down
2025-03-09 11:40:24 +01:00
Ray
5bda46960c REVIEWED: Linux workflow to run on ubuntu-latest
Previous runner `ubuntu-20.04` is deprecated and being removed soon: https://github.com/actions/runner-images/issues/11101
2025-03-08 18:49:50 +01:00
David Vanderson
bbeade636c build.zig.zon: update hashes (#4826) 2025-03-08 12:42:17 +01:00
10aded
097e80d1c4 added comment to fingerprint line per recommendation from the standard 'build.zig.zon' file generated by 'zig init' in Zig 0.14.0 (#4827) 2025-03-08 02:21:50 +01:00
sleeptightAnsiC
f430d72a8c [examples] fix: use quotation marks when including raylib.h (#4821)
...so it will always prioritize local version of raylib instead of
system-wide installations, which is a huge problem when testing any
changes done locally to raylib as it might cause silent mismatch issues.
There were only 4 examples affected by this issue which were using
`#include <raylib.h>`. Other examples use proper `#include "raylib.h"`

Fixes: https://github.com/raysan5/raylib/issues/4820
2025-03-07 19:24:53 +00:00
zewenn
590f793755 Update build.zig.zon to use the new zig v0.14 version (#4819) 2025-03-07 19:24:01 +00:00
Kaluub
9ba0cdbe6d Fix GetCurrentMonitor comments. (#4812) 2025-03-07 19:21:08 +00:00
Ashish Bhattarai
f1385f3aec Fix stb_truetype composite glyph scaling logic (#4811) 2025-03-04 18:53:11 +01:00
Ray
cb3168a048 Wow! We surpassed the **8000** commits! AMAZING! :D 2025-03-02 17:42:10 +01:00
sleeptightAnsiC
34159399cf [rcore] fix crash in InitWindow, due to unchecked result of InitPlatform (#4803)
* [rcore] fix crash in InitWindow, due to unchecked result of InitPlatform

Check the result of InitPlatform(), if it isn't 0, report the Error
and return. This prevent crashes and allows for gracefully aborting
or recovering by checking IsWindowReady().

Partially-fixes: https://github.com/raysan5/raylib/issues/4801

* [rcore] style: store the result of InitPlatform() before checking it

Small style change that doesn't impact how the code behaves here.
Variable 'result' is not used anywhere else in this block,
it's just for compliance with Raylib's coding conventions.

Requested in PR: https://github.com/raysan5/raylib/pull/4803#discussion_r1976502788

* [rcore] use LOG_WARNING when InitPlatform() fails

...as this is preferred over LOG_ERROR.

Requested-by: https://github.com/raysan5/raylib/pull/4803#discussion_r1976651724
2025-03-02 17:05:09 +01:00
Rico P
539c45ee23 sinfl_bsr fix for TCC 2025-03-02 16:20:49 +01:00
Ray
b99c2848c1 Merge branch 'master' of https://github.com/raysan5/raylib 2025-03-02 13:43:32 +01:00
Ray
654131799e Minor tweaks 2025-03-02 13:43:15 +01:00
sleeptightAnsiC
a20d9dedf3 [desktop_glfw] fix InitPlatform crash caused by glfwCreateWindow... (#4804)
...returning NULL. This was causing a crash few lines later.

Refs: https://github.com/raysan5/raylib/issues/4801#issuecomment-2691201072
Partially-fixes: https://github.com/raysan5/raylib/issues/4801
2025-03-01 23:42:07 +01:00
Bruno Cabral
eb8a343e31 [cmake] Use STATIC lib ON by default (#4799)
* search raylib in custom directory

* avoid loading dynamic library when both are installed

* raylib_USE_STATIC_LIBS as option ON
2025-02-26 07:48:59 +01:00
Colleague Riley
e4dcdfa1f2 update RGFW to 1.6 (#4795) 2025-02-25 21:49:37 +01:00
Ray
e4993c5557 Merge branch 'master' of https://github.com/raysan5/raylib 2025-02-25 17:50:54 +01:00
Ray
557d071fa2 Reviewed shader loading message 2025-02-25 17:50:46 +01:00
jordan4ibanez
7cae259a6d Reviewed shaders comment wording (#4793) 2025-02-25 14:26:52 +01:00
Ray
da8a08006a Added some comments on latest change 2025-02-25 12:46:06 +01:00
Destructor17
27af359d1c [rlgl] Preserve texture on mode switching (#4364)
* Fix textures on draw mode switch

* formatting fix

* ident
2025-02-25 12:39:00 +01:00
Ray
e1ec595251 ADDED: Resource file to example projects #4790 2025-02-25 12:06:34 +01:00
Ray
0037ee5420 Merge branch 'master' of https://github.com/raysan5/raylib 2025-02-25 11:43:32 +01:00
Ray
256953957f Update Makefile 2025-02-25 11:43:25 +01:00
Ray
a979b10966 Minor format tweak 2025-02-25 11:43:22 +01:00
Rico P
1e2fd94209 fix linkage warnings under windows (#4766) 2025-02-24 13:54:17 +01:00
Slendi
8edbd07b5e Do not check GUI libs for DRM (#4792)
Signed-off-by: Slendi <slendi@socopon.com>
2025-02-24 13:53:30 +01:00
Ray
294da26042 Update raymath.h 2025-02-23 23:07:12 +01:00
Ray
fc5ff8db5c Update raymath.h 2025-02-23 23:06:31 +01:00
Ray
a5907bfdca REVIEWED: MatrixDeterminant() #4780 2025-02-23 23:04:52 +01:00
Mario Nachbaur
85a87baf69 Support IsWindowHidden() on web. (#4789) 2025-02-23 18:19:42 +01:00
Jay Rhoden
015ab9df18 Amend comment to explain what LoadCodepoints is doing. (#4787)
As a beginner, it was not clear to me what the purpose of the LoadCodepoints function is. I am trying to help past me.
2025-02-23 18:19:10 +01:00
Peter0x44
99d2119dd6 [build] Add CI for ARM64 with Visual Studio (#4781)
* [build] Add ARM64 configuration to raylib.sln

* [build] Add ARM64 to windows.yml
2025-02-21 15:31:50 +01:00
Ralph Caraveo
4522ecae1a [raudio] Fixed memory leak on early-return of WaveFormat func (#4779)
In the case of a failure within miniaudio on the function: ma_convert_frames, the dynamic memory allocated for the `data` variable  will leak on the early return.
2025-02-21 15:29:12 +01:00
Colleague Riley
c34ef35433 Update RGFW and ensure it's consistent with the GLFW backend (#4783)
* add PLATFORM_WEB_RGFW

* fix some bugs

* fix web_rgfw gamepad

* send fake screensize

* fix gamepad bugs (linux) | add L3 + R3 (gamepad)

* fix?

* update RGFW (again)

* update raylib (merge)

* fix xinput stuff

* delete makefile added by mistake

* update RGFW

* update RGFW (rename joystick to gamepad to avoid misunderstandings

* update RGFW (fix X11 bug)

* update RGFW

* use RL_MALLOC for RGFW

* update RGFW (fixes xdnd bug)

* fix some formating

* Update RGFW

* update RGFW

* undo change

* undo change

* undo change

* undo change

* have .scroll be 0 by default

* update RGFW

* update RGFW

* update RGFW

* fix year

* fix wasm key event bug

* update RGFW

* link to IOKit

* update
2025-02-21 12:32:09 +01:00
Ray
5ea60dd3ce Minor tweaks 2025-02-20 18:10:01 +01:00
Ray
32fcfd3549 Minor tweaks 2025-02-19 13:38:22 +01:00
sleeptightAnsiC
77df0ab1e8 [rcore_desktop_glfw.c] fix: make sure that GLFW uses RL_*alloc macros (#4777)
Raylib allows for providing custom allocators via macros.
GLFW supports this too, but via function pointers.

Make sure that GLFW uses those Raylib macros, by wrapping them in
function calls and setting them up inside of InitPlatform().
This is possible because of glfwInitAllocator() and GLFWallocator.

Fixes: https://github.com/raysan5/raylib/issues/4776
Relates-to: https://github.com/raysan5/raylib/issues/4751
2025-02-18 22:53:18 +01:00
Brian E
11090ab6cb [raylib.h] Added space after comma (#4774)
args for ImageResizeNN were missing a space in the arguments after a comma, i just added one.
2025-02-17 12:12:59 +01:00
vict-Yang
b49c079b1d Fix typo in rshapes.c (#4772) 2025-02-16 15:43:32 +01:00
Le Juez Victor
2b59e7475f Implement Android-specific functions (#4769)
`GetWindowScaleDPI` and monitor physical dimensions
2025-02-15 19:34:51 +01:00
Le Juez Victor
c647d33703 Better default values for normals and tangents (VBOs) (#4763) 2025-02-14 01:00:05 +01:00
mannikim
ee946b2f16 use strstr instead of TextFindIndex (#4764) 2025-02-14 00:58:33 +01:00
veins1
1d87932d93 TextSubtext fixes (#4759)
Fix buffer write overflow
Fix reading past the end of text
2025-02-12 23:12:10 +01:00
Thomas Anderson
a1de60f3ba added missing file (#4754) 2025-02-08 11:23:15 +01:00
github-actions[bot]
a61c710b45 Update raylib_api.* by CI 2025-02-08 10:22:50 +00:00
goto40
6a644b48f0 doc: audio stream processor, number of channels (#4753)
* doc: audio stream processor

* fixed accidental encoding effect
2025-02-08 11:22:34 +01:00
Ray
cceabf6961 Formatting review 2025-02-02 13:00:20 +01:00
Ray
cfe96931f5 REVIEWED: Formatting #4739 2025-02-02 12:59:34 +01:00
Nikolas
bddb5df0d4 [rmodels] Separate GLTF roughness and metallic channels on load (#4739) 2025-02-02 12:48:18 +01:00
Gil Reis
5a254e3d5e Set PLATFORM to Web by default when configuring web builds with emcmake (#4748) 2025-02-02 12:46:28 +01:00
Henrik A. Glass
4f5a20a634 Add missing increments of k in LoadImageDataNormalized() (#4745) 2025-02-01 21:30:21 +01:00
Chris Dill
1958de4a12 Update raylib-cs binding link (#4746) 2025-02-01 21:29:27 +01:00
whaley
e85ae86f70 [platforms/glfw] fix: allow GetGamepadButtonPressed() to return GAMEPAD_BUTTON_LEFT_TRIGGER_2 / GAME_PAD_BUTTON_RIGHT_TRIGGER_2 if they are pressed (#4742) 2025-02-01 10:50:25 +01:00
sleeptightAnsiC
99dfec070a [rtext] fix: misuse of cast in GetCodepointCount (#4741)
I was really wondering what is going on here :D I believe this code
tried initially to out-cast 'const' specifier but this is not needed here
at all. Currently, it just confuses whoever reads this so I changed it.
The old code would also trigger -Wcast-qual warning on some compilers.
2025-01-31 14:44:23 +01:00
Eike Decker
1f6de0c507 Replacing hardcoded canvas id references with module variable usages (#4735)
Should also have the benefit of being faster.
2025-01-31 00:34:51 +01:00
Ray
d46ba9a671 Merge branch 'master' of https://github.com/raysan5/raylib 2025-01-28 16:19:39 +01:00
Ray
9789ff123b REVERTING: emscripten_sleep() previous removal #4713 2025-01-28 16:19:30 +01:00
Peter0x44
2492dd3d0a [build] [Makefile]: Undefine _GNU_SOURCE for rglfw.c (#4732)
Currently, a warning about _GNU_SOURCE being redefined is emitted when
compiling rglfw.c

In file included from rglfw.c:99:
external/glfw/src/posix_poll.c:27:9: warning: "_GNU_SOURCE" redefined
   27 | #define _GNU_SOURCE
      |         ^~~~~~~~~~~
<command-line>: note: this is the location of the previous definition

This can be avoided by not defining _GNU_SOURCE on the command line for
this file.

Defining feature test macros in source code is not really good practice
so this should probably reviewed in glfw itself, at least to maybe check
 #ifdef _GNU_SOURCE first. But for now this change will suffice.

Fixes #4725
2025-01-27 23:15:09 +01:00
elite0OG
5504983c91 Update CMakeLists.txt (#4727)
Cmake warn remove
2025-01-27 09:20:10 +01:00
Asdqwe
f6f31a9f21 [rtextures] Fix HalfToFloat() and FloatToHalf() dereferencing issues with an union (#4729)
* Fix HalfToFloat() and FloatToHalf() dereferencing issues with an union

* Remove unnecessary initialization

* Moved the union to inside the functions
2025-01-26 21:26:18 +01:00
Ray
53ea275b9c Merge branch 'master' of https://github.com/raysan5/raylib 2025-01-26 19:43:01 +01:00
Ray
861ebafe62 Update shaders_mesh_instancing.c 2025-01-26 19:42:52 +01:00
Asdqwe
139de05e9d [rcore] [SDL2] Fix gamepad event handling by adding joystick instance id tracking (#4724)
* Fix gamepad SDL_JOYDEVICEADDED and SDL_JOYDEVICEREMOVED event handling for PLATFORM_DESKTOP_SDL by adding joystick instance id tracking

* Fix gamepad button handling
2025-01-25 20:49:42 +01:00
Nikolas
49d37b035f [rtexture] Cubemap mipmap loading improvements (#4721)
* [rtextures] Only build cubemap mipmaps when necessary

* [rtextures] Assign correct mipmap count to cubemaps
2025-01-24 10:41:32 +01:00
Anstro Pleuton
7bfc8e8ca7 [example] Add shaders_rounded_rectangle example (#4719)
* Add shaders_rounded_rectangle example

* Minor tweaks to example template (add star, more)

* Combine shaders

* Fix changes after review

---------

Co-authored-by: Anstro Pleuton <anstropleuton@github.com>
2025-01-23 10:51:36 +01:00
Ray
87f17538d0 Reviewed warning on shared library generation for web 2025-01-21 19:23:16 +01:00
sleeptightAnsiC
322ba54c08 Fix(WEB): Makefile: throw an error when trying to build SHARED library (#4718)
When asking Makefile to create SHARED library for WEB
	$ make TARGET_PLATFORM=PLATFORM_WEB RAYLIB_LIBTYPE=SHARED
it would instead silently create STATIC library
thus not fulfilling the request as expected

This commit adds an error in this case and stops further execution.

This is not consistent with Cmake, because Cmake throws the warning and
does not stop, but Cmake can easily recover from this case and people
probably does not even notice it. However, Makefile is something that
you have to handle yourself and you have to recover from any issues so
having an error and aborting with exit code 1 is more expected.
Otherwise people may spend a lot of time debugging Makefile in order to
understand what's even going on.

Fixes: https://github.com/raysan5/raylib/issues/4717
2025-01-21 19:20:51 +01:00
Ray
2c50da9a6a REVIEWED: -sASSERTIONS usage by linker #4717 2025-01-21 19:18:23 +01:00
Ray
d48b8afbb5 Update rcore_web.c 2025-01-20 14:01:57 +01:00
Anthony Carbajal
77c509db6e removed hardcoded sleep (#4713) 2025-01-20 12:14:18 +01:00
Anstro Pleuton
773e3f5f9f Update more examples inconsistencies (#4711)
Co-authored-by: Anstro Pleuton <anstropleuton@github.com>
2025-01-19 17:17:38 +01:00
sleeptightAnsiC
10d0616d1f fix(rtextures): TCC not being able to compile due to: 'emmintrin.h' not found (#4707)
define STBIR_NO_SIMD when __TINYC__ is defined so stb_image_resize2 will
not include *mmintrin which are not supported by all compilers.

There are similar checks for __TINYC__ already elswere in raylib
and they are also mostly there to disable SIMD headers.

Additionally, move similar check for stb_image, to be a little bit
deeper. Before it was defining STBI_NO_SIMD without including stb_image
It was also clashing with note, causing said note to make no sense.

Fixes: https://github.com/raysan5/raylib/discussions/2994
Reference: https://github.com/nothings/stb/issues/1738
2025-01-19 12:06:27 +01:00
github-actions[bot]
e70f9157bc Update raylib_api.* by CI 2025-01-18 19:25:01 +00:00
Chris
09272e2e11 Updted the comment for SetShaderValueTexture to reflect the difference between SetShaderValue using sampler2d and SetShaderValueTexture is the automatic bind of the texture. (#4703) 2025-01-18 20:24:48 +01:00
Ray
a16e26a52a Merge branch 'master' of https://github.com/raysan5/raylib 2025-01-18 20:19:13 +01:00
Ray
896ff68540 REVIEWED: Text functions usage notes #4704 2025-01-18 20:19:11 +01:00
Anstro Pleuton
945f181f1d [examples] Update examples to be consistent (#4699)
* Update examples inconsistencies

* Happy new years, examples!

* Missed one inconsistency

* Update final few examples inconsistencies

---------

Co-authored-by: Anstro Pleuton <anstropleuton@github.com>
2025-01-18 19:41:56 +01:00
Ray
74256943a4 REVIEWED: MAX_GAMEPAD_NAME_LENGTH #4695 2025-01-18 19:39:50 +01:00
Auz
8575150747 Bump BINDINGS.md version number for Raylib.nelua (#4698) 2025-01-18 19:26:47 +01:00
Ray
0275d13aa8 Update README.md 2025-01-17 11:32:23 +01:00
Anthony Carbajal
27e530eb18 update examples with difficulty stars (#4694)
* update examples with difficulty stars

* manual fix script issues

* manual fix script issues
2025-01-17 10:42:30 +01:00
Ray
7c7b087efb REVIEWED: example: shaders_deferred_render -WIP-
Not working but shader compiles and example runs... not sure if deferred rendering could be supported in OpenGL ES 2.0.
2025-01-16 19:48:31 +01:00
Ray
313067d749 Update rlgl.h 2025-01-16 19:47:21 +01:00
Ray
94f261c6d7 Update rmodels.c 2025-01-16 19:47:12 +01:00
Ray
7b570bdfdd Update models_point_rendering.c 2025-01-16 19:47:06 +01:00
Colleague Riley
6bf40eee4f Update to RGFW 1.5 (#4688)
* add PLATFORM_WEB_RGFW

* fix some bugs

* fix web_rgfw gamepad

* send fake screensize

* fix gamepad bugs (linux) | add L3 + R3 (gamepad)

* fix?

* update RGFW (again)

* update raylib (merge)

* fix xinput stuff

* delete makefile added by mistake

* update RGFW

* update RGFW (rename joystick to gamepad to avoid misunderstandings

* update RGFW (fix X11 bug)

* update RGFW

* use RL_MALLOC for RGFW

* update RGFW (fixes xdnd bug)

* fix some formating

* Update RGFW

* update RGFW

* undo change

* undo change

* undo change

* undo change

* have .scroll be 0 by default

* update RGFW

* update RGFW

* update RGFW

* fix year

* fix wasm key event bug
2025-01-16 00:34:27 +01:00
Eike Decker
5c1cce28a7 Using Module provided canvas id for event binding (#4690)
This change is replacing the hardcoded "#canvas" element references in
rcore_web to allow using canvas elements that use different names
(which is necessary when using multiple canvas elements on one page).

Also adding a cursor hiding example to mouse example.
2025-01-16 00:32:58 +01:00
Michael Kearns
35a9257d20 Update BINDINGS.md for official V language binding change (#4691)
The bindings from @EmmaTheMartian were moved to official status, so the link is updated. 
The name was normalized to be consistent with other 'vendored' names in other languages.
2025-01-15 12:00:06 +01:00
Ray
cfbba79bd3 REVIEWED: example: models_textures_tiling shaders 2025-01-12 20:59:12 +01:00
Ray
fddfb58f85 REVIEWED: Potential shader issues 2025-01-12 20:39:07 +01:00
Ray
af163ba22a REVIEWED: example: shaders_julia_set 2025-01-12 20:29:46 +01:00
tea☆
1cdf3bb791 [rshapes] Allow DrawRectangleRounded() to draw rectangles with a size < 1 (#4683)
Closes #4673
2025-01-12 18:46:49 +01:00
Ray
da5a868e2a REMOVED: example: core_gamepad_info 2025-01-12 18:21:59 +01:00
Ray
2f6230e366 Formatting review and examples review 2025-01-12 18:02:36 +01:00
Ray
4bceddd4de ADDED: example: models_tesseract 2025-01-12 16:19:32 +01:00
Ray
a1896c7a90 REVIEWED: Code/Web-Makefile formatting 2025-01-12 16:19:10 +01:00
github-actions[bot]
43db59d1aa Update raylib_api.* by CI 2025-01-11 22:38:42 +00:00
Ray
e227371265 REVIEWED: TextJoin(), convert const char ** to char**
It generates multiple issues: https://c-faq.com/ansi/constmismatch.html
2025-01-11 23:38:21 +01:00
Ray
8e450e4446 Reviewed shaders formating to follow raylib coding conventions 2025-01-11 19:36:46 +01:00
Ray
49b905077d remove trailing spaces 2025-01-11 19:36:26 +01:00
Ray
62d8969a56 Reviewed shader formating 2025-01-10 22:56:25 +01:00
Ray
2b2694a89f Fix #4680 2025-01-10 22:36:11 +01:00
veins1
08b089f620 Reviewed shaders_deferred_render (#4676)
Fixed: g-buffer textures binding
Fixed: Clearing screen with white would leak onto g-buffer textures
Reviewed comments
2025-01-10 17:41:40 +01:00
Michael Kearns
34f431b422 Update xcode-frameworks dependency for latest zig (#4675)
* Update build.zig.zon for latest framework commit

* Update build.zig.zon with correct hash

* Update build.zig.zon with the 'really' correct hash
2025-01-10 17:40:48 +01:00
Hakunamawatta
43dbaf21e7 [examples] Fix broken link (#4674) 2025-01-10 17:40:13 +01:00
Le Juez Victor
eee86dd7c9 [build][CMake] Fix cmake configuration issue for Android (#4671)
* fix cmake configuration issue for Android

* review comment
2025-01-10 17:37:57 +01:00
Le Juez Victor
b554b53ede fix pixel offset issue with DrawRectangleLines (#4669) 2025-01-10 17:36:52 +01:00
github-actions[bot]
433cc23ea4 Update raylib_api.* by CI 2025-01-10 12:06:46 +00:00
Ray
bf8962dbc7 REVIEWED: Remove some const from text buffer return values
Lately got some compilation `errors` related, it seems GCC 14 interprets some `const`-missmatch as errors instead of warnings (as previous versions).

But in any case, I don't see why an user won't be able to operate directly over of those returned buffers; `const` adds a restriction (for security reasons?) that in my opinion is useless.

From an expert on compilers (w64devkit creator), here there are some notes I agree with:

```
No const. It serves no practical role in optimization, and I cannot recall an instance where it caught, or would have caught, a mistake. I held out for awhile as prototype documentation, but on reflection I found that good parameter names were sufficient. Dropping const has made me noticeably more productive by reducing cognitive load and eliminating visual clutter. I now believe its inclusion in C was a costly mistake.

(One small exception: I still like it as a hint to place static tables in read-only memory closer to the code. I’ll cast away the const if needed. This is only of minor importance.)
```

Ref: https://nullprogram.com/blog/2023/10/08/
2025-01-10 13:06:28 +01:00
Le Juez Victor
ddd86a3387 [rshapes] Fix pixel offset issue with line drawing (#4666)
* fix pixel offset issue with `DrawRectangleRoundedLinesEx`

* improve fix - (pixel offset issue with `DrawRectangleRoundedLinesEx`)

* revert radius tweak (`DrawRectangleRoundedLines`)
2025-01-09 00:07:59 +01:00
K. Adam Christensen
5d9aed5d40 [rlgl] Optimize rlReadScreenPixels (#4667)
This optimization works in the following ways:

1. Reduces calls to malloc to 1. Instead of needing an extra array, we
can just swap the top half with the bottom half of the one array.

2. Unroll the inner for loop and remove a condition. Unrolling loops
buys some performance wins, but the real goal was to remove the if check
and just set the alpha channel to 255.

On my hidpi arm64 laptop, I saw ~60% improvement in performance in my
debug build (29 FPS vs 47 FPS). When optimized, the gains were roughly
10% (75 FPS vs 83%).

Signed-off-by: K. Adam Christensen <pope@shifteleven.com>
2025-01-08 18:53:27 +01:00
Maicon Santana
fc29bc27fd Fix Touch pointCount reduction (#4661) 2025-01-06 11:29:24 +01:00
Asdqwe
ad035edfac Fix camera initial position (#4657) 2025-01-05 12:30:43 +01:00
rexept
2f95e8382b typo fix (#4656) 2025-01-05 12:30:06 +01:00
Brian E
05c4d8a652 [rlgl.h] Fixed typo in top comment (#4658)
"renderer" to "rendered"
2025-01-05 12:29:31 +01:00
veins1
97fa3a73e8 Fix: Alt-Tab not working in borderless fullscreen (#3865) (#4655) 2025-01-03 17:36:48 +01:00
Peter0x44
0f6e85a975 [build] CMake: Don't build examples using audio if audio is disabled (#4652) 2025-01-01 12:18:11 +01:00
Ray
fa0eada61a Update year to 2025 2025-01-01 00:02:52 +01:00
Peter Zmanovsky
d1315e8a04 [rmodels] Fix leaks in LoadIQM() and LoadModelAnimationsIQM() (#4649)
Add calls to UnloadFileData() before return in cases of invalid IQM file.
2024-12-29 21:06:40 +01:00
Jeffery Myers
f355d6f1db Transform the vertex normals by the animated matrix (#4646) 2024-12-29 01:07:52 +01:00
Ray
c0f2067dba REVIEWED: LoadShaderFromMemory(), use default locations for default shader #4641 2024-12-28 16:35:42 +01:00
Asdqwe
5b822585e5 [rcore] [GLFW] [SDL2] Updates CORE.Window.eventWaiting and FLAG_WINDOW_ALWAYS_RUN handling (#4642)
* Add implementation for CORE.Window.eventWaiting on PLATFORM_DESKTOP_SDL

* Optimize GetFrameTime() reset

* Optimize FLAG_WINDOW_ALWAYS_RUN and GetFrameTime() reset for PLATFORM_DESKTOP_GLFW
2024-12-28 15:59:05 +01:00
Johannes
75b6b825df using addCMacro instead of defineCMacro (#4620)
Co-authored-by: Johannes Rønning <johannes@picterus.com>
2024-12-28 15:57:10 +01:00
Jeffery Myers
e062dc085c Add filters and platform files so they show up in MSVC for ease of editing (#4644) 2024-12-28 15:56:04 +01:00
Mario Nachbaur
7ecc47d12e Fix IsWindowFocused() on web. (#4640) 2024-12-26 20:12:53 +01:00
Asdqwe
4758867815 [rcore] [SDL2] Add implementation for FLAG_WINDOW_ALWAYS_RUN (#4598)
* Enable FLAG_WINDOW_ALWAYS_RUN by default on PLATFORM_DESKTOP_GLFW

* Revert enabling FLAG_WINDOW_ALWAYS_RUN by default on PLATFORM_DESKTOP_GLFW

* Add implementation for FLAG_WINDOW_ALWAYS_RUN on PLATFORM_DESKTOP_SDL

* Add reset for GetFrameTime()
2024-12-26 19:02:57 +01:00
Bot Randomness
51b9a0acfc Updated BINDINGS.md for Ruby (#4639)
Added a Ruby binding known as raylib-ruby on 4.5. (https://github.com/wilsonsilva/raylib-ruby)
2024-12-26 18:55:38 +01:00
Antonis Geralis
b07967993f Update version number for the nim wrapper (#4638) 2024-12-25 22:08:42 +01:00
Colleague Riley
c333e80497 Update RGFW (#4637)
* add PLATFORM_WEB_RGFW

* fix some bugs

* fix web_rgfw gamepad

* send fake screensize

* fix gamepad bugs (linux) | add L3 + R3 (gamepad)

* fix?

* update RGFW (again)

* update raylib (merge)

* fix xinput stuff

* delete makefile added by mistake

* update RGFW

* update RGFW (rename joystick to gamepad to avoid misunderstandings

* update RGFW (fix X11 bug)

* update RGFW

* use RL_MALLOC for RGFW

* update RGFW (fixes xdnd bug)

* fix some formating

* Update RGFW

* update RGFW

* undo change

* undo change

* undo change

* undo change

* have .scroll be 0 by default
2024-12-25 21:19:51 +01:00
Le Juez Victor
873bf31be3 [rmodels] Fix normal transform in UpdateModelAnimationBones (#4634)
* remove duplicate calculation of `invRotation` in `UpdateModelAnimationBones`

* fix normal transform in `UpdateModelAnimation`
2024-12-24 20:17:37 +01:00
Ray
ae3c0df206 Reviewed formating, removed assert() #4635 2024-12-24 20:14:54 +01:00
Jett
a7686c47b3 resolved a few segfaults with animation system (#4635)
* Update rmodels.c

resolves segfault with missing bone weights or bone IDs

* Update rmodels.c segfault with animation and missing normals/animnormals

* correct place.
2024-12-24 20:11:17 +01:00
Fancy2209
7868d600f4 [rtext] Fix default font alpha on Big Endian systems (#4624)
* Fix rtext default font alpha on Big Endian

* Endian Indepence
2024-12-23 22:25:22 +01:00
James Doyle
4fc908b38f Update BINDINGS.md (#4633)
Add some missing bindings for 5.5
2024-12-23 20:51:11 +01:00
veins1
e5d8de7c63 Fix: Setting flags disables fullscreen #4618 (#4619) 2024-12-23 19:26:50 +01:00
JupiterRider
a3a25da594 Update BINDINGS.md (#4628) 2024-12-23 19:25:41 +01:00
Ray
67b164bc04 Merge branch 'master' of https://github.com/raysan5/raylib 2024-12-23 19:24:09 +01:00
Ray
6f0d8611fe Formating tweaks 2024-12-23 19:24:07 +01:00
Jett
0212ed0a4b setting MAX_LEVEL based on actual mipcount input (#4622) 2024-12-20 14:14:13 +01:00
Fancy2209
26e12d6b35 Fix Typo in rcore_desktop_sdl.c (#4621) 2024-12-20 13:53:51 +01:00
Ray
ab83e6dd41 Image manipulation functions depend on a flag 2024-12-19 13:24:30 +01:00
Ray
03ff864087 Formating tweaks 2024-12-18 18:44:23 +01:00
Le Juez Victor
6eb1206660 fix shaders_deffered_render.c for OpenGL ES 3 (#4617)
This fixes an incomplete framebuffer issue due to the use of a texture format not supported in ES 3.
This commit also adds more information on how to manage deferred rendering.
2024-12-18 18:07:48 +01:00
Asdqwe
99cb4cbc36 Fix SetGamepadVibration() TRACELOG message (#4615) 2024-12-18 14:53:50 +01:00
Ray
783ca612cc Update Makefile 2024-12-18 12:51:00 +01:00
Colleague Riley
58004723d8 [rcore][RGFW] Add new backend option: PLATFORM_WEB_RGFW and update RGFW (#4480)
* add PLATFORM_WEB_RGFW

* fix some bugs

* fix web_rgfw gamepad

* send fake screensize

* fix gamepad bugs (linux) | add L3 + R3 (gamepad)

* fix?

* update RGFW (again)

* update raylib (merge)

* fix xinput stuff

* delete makefile added by mistake

* update RGFW

* update RGFW (rename joystick to gamepad to avoid misunderstandings

* update RGFW (fix X11 bug)

* update RGFW

* use RL_MALLOC for RGFW

* update RGFW (fixes xdnd bug)

* fix some formating
2024-12-18 12:03:42 +01:00
Ray
de6c09ee7a WARNING: REVIEWED: Use libraylib.web.a naming on PLATFORM_WEB
This change allows to have in same directory (currently `raylib/src`) two raylib build versions: Desktop and Web
2024-12-18 11:45:55 +01:00
Ray
f76734fc50 REVIEWED: UpdateModelAnimationBones(), break on first mesh found and formating 2024-12-18 11:43:43 +01:00
Kirandeep-Singh-Khehra
35c2408413 [rmodels] Optimized UpdateModelAnimationBones() function (#4602)
- Updating bones only once instead for each mesh.
 - Updating only one `model.meshes[].boneMatrices` and then using deep copy for other meshes instead of calculating for each bone in each mesh.

**Other points:**
 - Makes it a clean base/template/reference for bone updation functions. Because if using this as template then some calculations done in one mesh can affect bones in other mesh in next iteration(doubles the effect in for next mesh).

Signed-off-by: Kirandeep-Singh-Khehra <kirandeepsinghkhehra@gmail.com>
2024-12-18 11:39:50 +01:00
Asdqwe
cdaff163cb Fix show, hide, focus and unfocus window/flags states for SDL2 (#4610) 2024-12-18 11:39:30 +01:00
JupiterRider
714cd5ef5c add SetGamepadVibration to rgfw and template (#4612) 2024-12-18 11:38:11 +01:00
Asdqwe
bdfbd6e8cc Fix maximizing, minimizing and restoring windows for SDL2 (#4607) 2024-12-16 22:19:00 +01:00
Le Juez Victor
79facde353 fix rlActiveDrawBuffers for OpenGL ES 3 (#4605) 2024-12-16 00:51:42 +01:00
Per Hallsmark
d0504800d2 install rcamera.h (#4603)
Signed-off-by: Per Hallsmark <per.hallsmark@bitjuggler.se>
2024-12-15 11:16:08 +01:00
Jeffery Myers
93a1e75741 Disable the threading example in MSVC for release and debug build (was disabled for dll builds already) (#4594) 2024-12-13 09:21:45 +01:00
github-actions[bot]
0a26d9a26f Update raylib_api.* by CI 2024-12-13 08:21:27 +00:00
__hexmaster111
8a5a95c13a Removed inaccurate comment about negitves not being supported with TextToFloat And TextToInt Methods (#4596) 2024-12-13 09:21:13 +01:00
Ray
1f704be4e4 Review comments spacing for better alignment 2024-12-12 12:13:38 +01:00
Ray
6b220f2798 Review formating 2024-12-12 12:13:17 +01:00
Legendary Redfox
b747eeefa4 [documentation] Adding a related project (#4589)
* updated raylib-lua version

* Updated some bindings

* removed 404 bindings

* adding my bindings project to the list

* Adding a related project

* fixing the license foi ReiLua
2024-12-10 20:05:46 +01:00
Legendary Redfox
aeb33e6301 Adding my bindings to the list (#4586)
* updated raylib-lua version

* Updated some bindings

* removed 404 bindings

* adding my bindings project to the list
2024-12-08 15:24:02 +01:00
github-actions[bot]
83f6f3dabe Update raylib_api.* by CI 2024-12-08 11:52:21 +00:00
Rico P
2a2acff2d5 Make sure ShaderUniformDataType matches rlShaderUniformDataType (#4577)
* Make sure ShaderUniformDataType matches rlShaderUniformDataType

* Update raylib_api.* by CI

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ray <raysan5@gmail.com>
2024-12-08 12:52:06 +01:00
github-actions[bot]
732da949b7 Update raylib_api.* by CI 2024-12-08 11:49:07 +00:00
Michael
d2cd2a0152 [rlgl][rmodels] Add instranceTransform shader location index #4538 (#4579) 2024-12-08 12:48:54 +01:00
Asdqwe
93a67417b3 Fix examples Makefile PLATFORM define (#4582) 2024-12-08 12:46:43 +01:00
danil
2820fcc29e [examples] improve input_virtual_controls example (#4584) 2024-12-08 08:52:09 +01:00
0riginaln0
ca6c5f4f3c Update BINDINGS.md | Fennel Bindings (#4585) 2024-12-07 21:28:08 +01:00
Ray
602583bcdb Merge branch 'master' of https://github.com/raysan5/raylib 2024-12-03 19:14:29 +01:00
Ray
1f45e7af76 REVIEWED: Coding conventions 2024-12-03 19:14:14 +01:00
Caleb Heydon
5feccb1bab [rmodels] Fixed null pointer dereference in LoadGLTF (#4564)
* [rmodels] Fixed null pointer dereference in LoadGLTF

* [rmodels] Add parenthesis around conditionals in LoadGLTF
2024-12-03 18:35:24 +01:00
Legendary Redfox
1f0325b52c [documentation] Removing 404 repos from bindings (#4572)
* updated raylib-lua version

* Updated some bindings

* removed 404 bindings
2024-12-03 13:30:17 +01:00
Legendary Redfox
e9e463e8b2 [documentation] Updating keybindings versions (#4570)
* updated raylib-lua version

* Updated some bindings
2024-12-03 12:03:36 +01:00
Legendary Redfox
83587e94c8 updated raylib-lua version (#4567) 2024-12-02 21:01:22 +01:00
JupiterRider
402eab3837 Update BINDINGS.md (#4566) 2024-12-02 18:50:24 +01:00
ahmedqarmout2
87b3085f5c Added new Jai bindings to BINDINGS.md (#4565)
Co-authored-by: Ahmed Qarmout <ahmed.qarmout@mail.utoronto.ca>
2024-12-02 18:48:24 +01:00
Caleb Heydon
f3f5f38c0f [rmodels] Fix crash when NULL is passed to LoadImageFromCgltfImage (#4563) 2024-12-02 13:35:54 +01:00
github-actions[bot]
e5e2bc83c3 Update raylib_api.* by CI 2024-12-01 22:25:46 +00:00
Ray
b50d418ec7 Merge branch 'master' of https://github.com/raysan5/raylib 2024-12-01 23:25:27 +01:00
Ray
dd26df0be8 REVIEWED: Parser issue with comment #4558 2024-12-01 23:25:12 +01:00
Rico P
ff71e3a513 use unused variable. Fixes #4560 (#4561) 2024-12-01 23:22:46 +01:00
Ryan Johnston
e181069c62 Update BINDINGS.md (#4559)
Include CLIPSraylib in the list of language bindings.
2024-12-01 23:12:00 +01:00
Ray
962f1c26ff Review formatting to follow raylib conventions 2024-12-01 23:10:59 +01:00
Caleb Heydon
9047630ae7 [rmodels] Fix null pointer dereference in LoadImageFromCgltfImage (#4557) 2024-12-01 22:46:26 +01:00
Ray
503cd7ba34 Update raymath.h 2024-12-01 22:45:09 +01:00
Jonathan Akaba
1b4e73cf2f Update documentation for Vector2Angle (#4556) 2024-12-01 22:43:32 +01:00
Ray
6fbf08cc1f Update pbr.fs 2024-12-01 22:41:38 +01:00
Ray
f9cf684356 Update pbr.vs 2024-12-01 22:40:46 +01:00
Ray
698bfc48fe Update pbr.fs 2024-12-01 22:40:23 +01:00
Ray
6c59dc4a65 Update BINDINGS.md 2024-12-01 22:39:09 +01:00
devdad
645f9e31c9 I've created bindings for raylib 5.5 for c3-lang at https://c3-lang.org (#4555)
* basic pbr example

pbr implementation  includes rpbr.h and few shader files header only file, which self contain everything needed for pbr rendering. Few textures and one model of the car which is under free licence which is included inside basic_pbr.c example file  currently supported shader versions are 120 and 330 , version 100 has small issue which I have to resolve

* Unloading PBRMAterial

I forgot unloading PBRMaterial

* fix small issue with texOffset assigment.

value was Vector4 at first but I found out it would be unclear for and users, so I change to have two Vector2 instead, but forgot to assign offset .

* Changed size of textures and file name changed

Changed size of textures from 2048x2048 to 1024x1024 and file name changed to shaders_basic_pbr.c ,
Added the function PBRModel PBRModelLoadFromMesh(Mesh mesh);
but GenMeshPlane(2, 2.0, 3, 3) culdn't be used because it crash once GenMeshTangents() is used with that plane mesh

* Update to 5.5 version  of eexample and fix to work in web

set GLSL_VERSION            100

set precision highp float;
removed in keyword
fix for loop has to use only constant

* Update shader_basic_pbr example to work on web

changed to GLSL_VERSION            100
update glsl100 shader
set float  precision  to highp
removed keyword  in
change for loop tu use constant value  gives an error

* Update shader_basic_pbr example to work on web

changed to GLSL_VERSION            100
update glsl100 shader
set float  precision  to highp
removed keyword  in
change for loop tu use constant value  gives an error

* removed rpbr.h

removed rpbr.h

* Bindings for c3-lang    raylib 5.5 and raylib 5.0

I've created raylib 5.5 binding for c3-Lang  https://c3-lang.org
2024-12-01 22:37:28 +01:00
Mossieur-Patate
9d318a6fbf Update CONTRIBUTING.md + FAQ.md: small misprints (#4553)
* Update CONTRIBUTING.md: small misprint

* Update FAQ.md: small misprint
2024-12-01 22:35:19 +01:00
Caleb Heydon
58fe34d9cc [raudio] Fixed buffer overflow when loading WAV files (#4539) 2024-11-28 22:58:35 +01:00
RealDoigt
cd16c9ea91 Add the D Object Oriented Raylib wrapper to the list of BINDINGS.md (#4550)
* add the D Object Oriented Raylib wrapper to the list of BINDINGS.md

* copy pasted correct url

I couldn't do it from the web ui for some reason
2024-11-28 22:50:44 +01:00
github-actions[bot]
31a1047782 Update raylib_api.* by CI 2024-11-28 21:50:14 +00:00
Mossieur-Patate
2c4c6e6201 GetKeyName prototype (#4544)
* Update raylib.h: GeyKeyName prototype

Prototype for GetKeyName, which is already implemented elsewhere.

* Update raylib_to_parse.h: GetKeyName prototype
2024-11-28 22:50:00 +01:00
Kacper Zybała
ba1e14625a [build] CMake: Set CMake version to 3.12 (#4547) 2024-11-28 22:47:39 +01:00
Tymoteusz Moryto
949c31605b CMakeOptions.txt: Added a missing ) (#4545) 2024-11-28 22:46:52 +01:00
glowiak
623c4376cc The Jaylib binding is at 5.5 (#4546) 2024-11-28 22:46:04 +01:00
Ray
abb3c8e9f7 Revert "[build][cmake] Improve cmake config file generation (#4541)"
This reverts commit c53dd8a931.
2024-11-28 22:44:42 +01:00
Leonardo Guilherme de Freitas
c53dd8a931 [build][cmake] Improve cmake config file generation (#4541)
* Improve cmake config file generation

This allows for finding raylib on a non-standard location (eg, not in /usr/lib{,64})

* Only have glfw as private if using internal glfw and not static
2024-11-27 11:39:36 +01:00
Anthony Carbajal
79188f570b fixed spacing in sha1 comment (#4540) 2024-11-25 20:17:22 +01:00
Jeffery Myers
6141489b00 Fixes casting warnings with RGFW platform. (#4534) 2024-11-24 16:25:36 +01:00
listeria
e494c545b8 raymath: fix C++ operator overloads (#4535)
Co-authored-by: Listeria monocytogenes <listeria@disroot.org>
2024-11-24 16:24:34 +01:00
HaxSam
a9aa6b4988 [build.zig] improve build system for zig (#4531)
Is now possible to switch platform

Is now possible to diable raudio, rmodels, and so on

Made getOptions public so it can be used for zig wrappers
2024-11-24 16:22:51 +01:00
Ray
47f83aa58f Merge branch 'master' of https://github.com/raysan5/raylib 2024-11-22 11:06:53 +01:00
Ray
da6fa1d756 Fix #4529 2024-11-22 11:06:34 +01:00
github-actions[bot]
65e0d2cfda Update raylib_api.* by CI 2024-11-22 10:01:29 +00:00
Ray
50a2afff9e Update raylib version to 5.6-dev to avoid confusions with release 2024-11-22 11:01:10 +01:00
Asdqwe
a53a8958f2 Add implementation to GetWindowScaleDPI() for PLATFORM_WEB (#4526) 2024-11-22 10:52:55 +01:00
Ray
0d39e7137b Fix #4527 2024-11-21 12:38:29 +01:00
veins1
11429b48eb Fix for #4521 (#4523) 2024-11-20 21:28:46 +01:00
Gael Pérez
415a98965a update raymath.h: add Vector2CrossProduct function (#4520) 2024-11-20 11:27:14 +01:00
kimierik
532167d28b build.zig: fix raygui inclusion in windows crosscompilation (#4489) 2024-11-20 11:26:29 +01:00
devdad
6af664c04e Update shaders_basic_pbr example to work on web (#4516)
* basic pbr example

pbr implementation  includes rpbr.h and few shader files header only file, which self contain everything needed for pbr rendering. Few textures and one model of the car which is under free licence which is included inside basic_pbr.c example file  currently supported shader versions are 120 and 330 , version 100 has small issue which I have to resolve

* Unloading PBRMAterial

I forgot unloading PBRMaterial

* fix small issue with texOffset assigment.

value was Vector4 at first but I found out it would be unclear for and users, so I change to have two Vector2 instead, but forgot to assign offset .

* Changed size of textures and file name changed

Changed size of textures from 2048x2048 to 1024x1024 and file name changed to shaders_basic_pbr.c ,
Added the function PBRModel PBRModelLoadFromMesh(Mesh mesh);
but GenMeshPlane(2, 2.0, 3, 3) culdn't be used because it crash once GenMeshTangents() is used with that plane mesh

* Update to 5.5 version  of eexample and fix to work in web

set GLSL_VERSION            100

set precision highp float;
removed in keyword
fix for loop has to use only constant

* Update shader_basic_pbr example to work on web

changed to GLSL_VERSION            100
update glsl100 shader
set float  precision  to highp
removed keyword  in
change for loop tu use constant value  gives an error

* Update shader_basic_pbr example to work on web

changed to GLSL_VERSION            100
update glsl100 shader
set float  precision  to highp
removed keyword  in
change for loop tu use constant value  gives an error

* removed rpbr.h

removed rpbr.h
2024-11-20 11:25:31 +01:00
Jorge A. Gomes
57edbc3bab Update BINDINGS.md for raylib-py 5.5 (#4519) 2024-11-20 11:24:47 +01:00
Philipp
a145779e21 Update BINDINGS.md: fortran-raylib is on v5.5 (#4518) 2024-11-19 22:42:34 +01:00
Alexandre B A Villares
481095226d Update BINDINGS.md: github.com/electronstudio/raylib-python-cffi now 5.5 (#4517) 2024-11-19 22:41:14 +01:00
Ray
26548c1062 Remove trail-spaces 2024-11-19 12:33:13 +01:00
Ray
9e4f513a43 Reviewed formating 2024-11-19 12:31:57 +01:00
Ray
c78757a959 REVIEWED: GetClipboardImage(), make symbol available on all platforms 2024-11-19 12:31:49 +01:00
Ray
10789a4d49 Update rlgl.h 2024-11-19 12:31:14 +01:00
mikeemm
95e766472f [rmodels] Improve OBJ vertex data precision and lower memory usage by ExportMesh() (#4496)
* increased vertex data precision to match blender exports

* modified memory allocation to better fit higher precision data

* now accounting for newline characters during allocation

* now accounting for potentially higher vertex counts

* removed unnecessary final newline
2024-11-19 10:35:47 +01:00
Jannis
bd706dfcf2 Update BINDINGS.md for raylib-beef (#4514) 2024-11-19 10:35:10 +01:00
Andrew Dunbar
7127cba5cc typo/spello: arribes->arrives (#4515) 2024-11-19 10:33:36 +01:00
Alexandre B A Villares
21575856f4 Update BINDINGS.md: raylib-python-cffi is on v5.0 (#4512)
According to https://github.com/electronstudio/raylib-python-cffi
2024-11-19 09:05:39 +01:00
kovidomi
65f955a4dc Add missing VS2022 example projects for models_bone_socket and shaders_vertex_displacement (#4510) 2024-11-19 09:05:09 +01:00
Mute
f979cc62ee Fixed grammar mistakes in core_3d_camera_first_person.c (#4508)
Changed line 118 from, "// For advance camera controls, it's reecommended to compute camera movement manually", to, "// For advanced camera controls, it's recommended to compute camera movement manually".
2024-11-19 09:04:14 +01:00
Steven Schveighoffer
05b2603c45 Update raylib-d binding to 5.5 (#4506) 2024-11-19 09:03:39 +01:00
Rob Loach
fde3779ebd BINDINGS: raylib-cpp supports raylib 5.5 (#4511)
[raylib-cpp](https://github.com/RobLoach/raylib-cpp) has been updated to use the new raylib 5.5 functions. This is a great release! Thanks so much.
2024-11-19 00:37:33 +01:00
Ray
8375581f87 Update README.md 2024-11-19 00:19:39 +01:00
Gunko Vadim
71e0b8b581 Update BINDINGS.md (#4504) 2024-11-18 14:38:28 +01:00
Ray
c1ab645ca2 Update HISTORY.md 2024-11-18 13:21:10 +01:00
Ray
68503ed96f Update webassembly.yml 2024-11-16 19:00:28 +01:00
github-actions[bot]
88c922f433 Update raylib_api.* by CI 2024-11-16 17:45:33 +00:00
Ray
938b805bfb Update raylib.h 2024-11-16 18:45:16 +01:00
Ray
162efc1ec7 Update core_basic_window.c 2024-11-16 18:45:12 +01:00
Ray
da7ab04052 Update HISTORY.md 2024-11-16 18:44:48 +01:00
Ray
dd688d81a6 Thanks @everyone for everything 😄 2024-11-16 18:16:00 +01:00
Ray
d567b35d9a Update HISTORY.md 2024-11-16 17:57:00 +01:00
Ray
816b605054 Update CHANGELOG 2024-11-16 13:18:04 +01:00
Eike Decker
7c5d74e98e Fixing an OBJ loader bug that fragmented the loaded meshes (#4494)
The nextShapeEnd integer is a pointer in the OBJ data structures.
The faceVertIndex is a vertex index counter for the mesh we are
about to create. Both integers are not compatible, which causes
the code to finish the meshes too early, thus writing the OBJ data
incompletely into the target meshes.

It wasn't noticed because for the last mesh, it process all remaining
data, causing the last mesh to contain all remaining triangles.

This would have been noticed if the OBJ meshes used different textures
for each mesh.
2024-11-15 16:40:14 +01:00
Oussama Teyib
4f091f44a8 Fix typo in BINDINGS.md (#4493) 2024-11-15 08:26:22 +01:00
Jeffery Myers
a2f6ae6796 Fix warnings in examples (#4492)
Move shapes/shapes_rectangle_advanced to the correct folder in MSVC project
Add core_input_virtual_controls.vcxproj back into sln file
2024-11-15 08:25:09 +01:00
Ray
5e6cdf3a73 Update emsdk path on Windows to match new raylib installer package 2024-11-14 18:41:37 +01:00
Ray
76016aae20 Update raylib.ico 2024-11-14 16:40:04 +01:00
Ray
15eb8221e3 Updated raylib resource data 2024-11-14 16:39:58 +01:00
Ray
928535a828 Commented code issuing warnings on w64devkit (GCC)
Tested with w64devkit/MSVC and all seem to work as expected
2024-11-14 16:39:38 +01:00
Ray
637debb62d Updated Notepad++ autocomplete list for raylib 5.5 2024-11-14 16:38:55 +01:00
Ray
14d3bbbb86 Update raygui.h 2024-11-14 16:38:27 +01:00
Asdqwe
700e2c5e5d Fix touch count reset (#4488) 2024-11-14 10:49:35 +01:00
Ray
8af7985ece Update CHANGELOG 2024-11-14 10:46:34 +01:00
Ray
0c7edbc2ee Update HISTORY.md 2024-11-14 10:45:56 +01:00
Ray
2841eaba3e Merge branch 'master' of https://github.com/raysan5/raylib 2024-11-14 10:45:24 +01:00
Ray
f76a5e2b10 Update CHANGELOG 2024-11-14 10:45:19 +01:00
Asdqwe
377248b1ac Fix Makefile.Web (#4487) 2024-11-13 22:21:10 +01:00
kimierik
7053970f7b build.zig: remove raygui from options and re add adding raygui as a (#4485)
function
2024-11-13 18:52:12 +01:00
Ray
4ddf4679b4 Update CHANGELOG 2024-11-11 20:28:25 +01:00
Jeffery Myers
10fd4de258 Fix the example lighting shaders to use both frag and diffuse colors so they work with shapes and meshes. (#4482) 2024-11-11 19:55:33 +01:00
Everton Jr.
5cc06f4ba4 [rcore]: Issue an warning instead of an error when checking SUPPORT_CLIPBOARD_IMAGE necessary support detection (#4477) 2024-11-11 19:47:25 +01:00
Jeffery Myers
fb69b39d54 Fix a typecast warning in glfw clipboard access (#4479) 2024-11-11 19:46:54 +01:00
Jeffery Myers
2af4f31712 Fix the X axis of the second vertex of the Y negative cap of a cylinders, triangle fan (#4478) 2024-11-10 22:04:58 +01:00
Ray
09570a05b3 Merge branch 'master' of https://github.com/raysan5/raylib 2024-11-10 17:54:02 +01:00
Ray
85de743d1c Improved logos size 2024-11-10 17:53:50 +01:00
Tomas Slusny
ce3b121f07 build.zig: Remove addRaylib and fix raygui builds when using raylib as dep (#4475)
- addRaylib just duplicates what adding raylib as dependency already does
  so it do not needs to exist
- move raygui build to standard build process when flag is enabled. this
  works correctly when using raylib as dependency and having raygui as
  dependency as well. problem with previous approach was that raygui was in
  options but it was doing nothing because you had to also use addRaygui for
  it to be effective

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2024-11-10 13:47:15 +01:00
github-actions[bot]
d8feef5279 Update raylib_api.* by CI 2024-11-09 18:40:56 +00:00
Everton Jr.
00396e3436 [rcore] Clipboard Image Support (#4459)
* [rcore] add 'GetClipboardImage' for windows

* [rcore] GetClipboardImage removed some unneeded defines

* [rcore] PLATFORM_SDL: create a compatility layer for SDL3

* external: add win32_clipboard.h header only lib

* [rcore] using win32_clipboard on platforms rlfw and rgfw

* [rcore] fix warnings in SDL3 compatibility layer

* Makefile: Allow specifying SDL_LIBRARIES to link, this helps with SDL3

* Makefile: examples makefile now compile others/rlgl_standalone only when TARGET_PLATFORM is PLATFORM_DESKTOP_GFLW

* Makefile: examples makefile now compile others/rlgl_standalone only when TARGET_PLATFORM is PLATFORM_DESKTOP_GFLW

* [rcore]: PLATFORM_SDL: improve clipboard data retrieval

* external: remove unused function from win32_clipboard.h

* Makefile: allow for extra flags necessary when compiling for SDL3

* [rcore]: fix string typo

* [rcore]: Properly handle NULL dpi passing. As is allowed in SDL2

* external: fix arch finding on win32_clipboard.h to allow compilation on msvc cmake CI

* [rcore]: PLATFORM_SDL: Treat monitor as an ID in SDL3 as opposed to an index as in SDL2

* [rcore]: typo
2024-11-09 19:40:41 +01:00
Tomas Slusny
53b929cbfb Improve cross-compilation with zig builds (#4468)
- Add xcode_frameworks when cross compiling for mac (ref:
https://github.com/hexops/mach/blob/main/build.zig)
- Add emsdk when cross compiling for wasm (ref:
https://github.com/floooh/sokol-zig/blob/master/build.zig)

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2024-11-08 14:31:31 +01:00
Jett
dc489786b0 UpdateModelAnimation speedup (#4470)
If we borrow from the GPU skinned animation code, we can just multiply the vertex by the matrix * weight and shave a chunk of CPU time.
2024-11-08 14:28:39 +01:00
Jeffery Myers
55a64f51b8 fix float casting warnings (#4471) 2024-11-07 21:42:59 +01:00
Ray
a617e1e217 Update core_2d_camera_mouse_zoom.c 2024-11-06 12:00:39 +01:00
Ray
b47fffb48b Update Makefile.Web 2024-11-05 00:09:12 +01:00
decromo
281ee51aff implemented new linear gradient generation function (#4462) 2024-11-04 15:57:50 +01:00
Ray
ec953240b1 Update CHANGELOG 2024-11-03 21:02:13 +01:00
waveydave
66a4f2e90b Fix for issue 4454, MatrixDecompose() gave incorrect output for certain combinations of scale and rotation (#4461) 2024-11-03 20:36:32 +01:00
github-actions[bot]
6028052c7e Update raylib_api.* by CI 2024-11-03 12:12:25 +00:00
Ray
be360d2ad1 RENAMED: UpdateModelAnimationBoneMatrices() to UpdateModelAnimationBones()
Still, not fully convinced of those functions naming, despite quite descriptive, sounds a bit confusing to me...
2024-11-03 13:12:01 +01:00
Ray
24724d33bb Added last week commits info 2024-11-03 12:30:02 +01:00
MikiZX1
8e5d5f89c2 Update rmodels.c - 'fix' for GenMeshSphere artifact (#4460)
When creating a new sphere mesh with high number of slices/rings the top and bottom parts of the generated sphere are removed. This happens because the triangles in those parts, due to high resolution, end up being very small and are removed as part of the 'par_shapes' library's optimization. Adding par_shapes_set_epsilon_degenerate_sphere(0.0); before generating the sphere mesh sets the threshold for removal of small triangles is removed and the sphere is returned to raylib correctly.
2024-11-01 22:35:35 +01:00
Ray
9e2591e612 Update Makefile 2024-11-01 12:14:06 +01:00
Ray
b7ef2fd580 Update HISTORY.md 2024-11-01 12:07:27 +01:00
Asdqwe
b8c0842b2e Fix SetWindowSize() for PLATFORM_WEB (#4452) 2024-10-30 22:21:37 +01:00
Arche Washi
3bad05aa7b fix the issue with GetScreenWidth/GetScreenHeight that was identified on other platforms (#4451) 2024-10-30 20:13:53 +01:00
Everton Jr.
ad79d4a884 [shapes] Add shapes_rectangle_advanced example implementing a DrawRectangleRoundedGradientH function (#4435)
* [rshapes] Add  function

* "[shapes] rectangle advanced: fix screen width and height to fit with other examples"
2024-10-29 22:23:51 +01:00
Ray
d15e583460 Update rtext.c 2024-10-29 09:37:38 +01:00
Ray
10c8e4e435 Update rcore_desktop_glfw.c 2024-10-29 09:37:33 +01:00
Jeffery Myers
743e557e1e Fix inconsistent dll linkage warning on windows (#4447) 2024-10-29 09:34:57 +01:00
mpv-enjoyer
de7ab83f5a Fix empty input string for MeasureTextEx (#4448) 2024-10-29 09:33:03 +01:00
Ray
f59e185d7a Update README.md 2024-10-27 22:27:18 +01:00
Jeffery Myers
0e1fc33c5c Fix signed/unsigned mismatch in rlgl (#4443) 2024-10-26 22:59:50 +02:00
Colleague Riley
7fe5f7126b Fix MSVC errors for PLATFORM_DESKTOP_RGFW (#4441)
* (rcore_desktop_rgfw.c) fix errors when compiling with mingw

* define WideCharToMultiByte

* update RGFW

* move stdcall def to windows only

* fix raw cursor input

* Fix warnings, update RGFW, fix msvc errors (make sure windows macro _WIN32 is correct)
2024-10-26 22:59:10 +02:00
Nikolas
38cf9f3224 [rtextures] LoadTextureCubemap(): Copy image before generating mipmaps, to avoid dangling re-allocated pointers (#4439) 2024-10-26 22:52:24 +02:00
NishiOwO
ff66b49c19 fix (#4440) 2024-10-26 15:10:35 +02:00
Ray
7ad8fa689f REVIEWED: LoadTextureCubemap() to avoid crash #4429 2024-10-26 13:51:10 +02:00
Ray
8b9ea8cd5f Update Makefile 2024-10-26 13:46:56 +02:00
NishiOwO
3dcddaedd7 Fix examples Makefile for NetBSD (#4438)
* fix makefile

* moving to LDPATHS

* fix clean and ldlibs stuff
2024-10-26 13:41:54 +02:00
Ray
ec79bffa20 Update stb_truetype.h 2024-10-26 13:13:05 +02:00
Ray
dc679cd1c7 Update stb_image_resize2.h 2024-10-26 13:12:38 +02:00
Ray
28e7e2cffd Update stb_image.h 2024-10-26 13:12:36 +02:00
Ray
d0e11a8c92 Update qoa.h 2024-10-26 13:12:33 +02:00
Ray
e70bf2bce1 Update dr_wav.h 2024-10-26 13:12:30 +02:00
Ray
c085c73014 Update dr_mp3.h 2024-10-26 13:12:26 +02:00
Ray
c6b1ecc593 Update cgltf.h 2024-10-26 13:12:24 +02:00
Ray
1f6b3384fa Reviewed formatting, remove end-line points, for consistency with comments 2024-10-26 12:26:00 +02:00
Ray
80b490c8f1 Reviewed formating to follow raylib conventions #4429 2024-10-26 12:15:06 +02:00
Nikolas
7fedf9e0b8 [rtextures/rlgl] Load mipmaps for cubemaps (#4429)
* [rlgl] Load cubemap mipmaps

* [rtextures] Only generate mipmaps that don't already exist

* [rtextures] ImageDraw(): Implement drawing to mipmaps

* [rtextures] Load cubemap mipmaps
2024-10-26 12:09:38 +02:00
Asdqwe
91a4f04794 Use mingw32-make for Windows (#4436) 2024-10-26 11:39:24 +02:00
Ray
4e3fc84050 Minor format tweaks 2024-10-26 00:52:22 +02:00
Ray
22c77d17b7 REVIEWED: WebGL2 (OpenGL ES 3.0) backend flags (PLATFORM_WEB) #4330 2024-10-26 00:51:37 +02:00
Ray
7ac36e20cd Update Makefile.Web 2024-10-25 23:55:31 +02:00
Asdqwe
8b36253e2f [build] [web] Fix examples Makefile for PLATFORM_WEB (#4434)
* Fix examples Makefile for PLATFORM_WEB

* Replace shell with assignment operator

* Replace tab with spaces
2024-10-25 23:47:55 +02:00
Peter0x44
204872de09 [build] CMake: Don't build for wayland by default (#4432)
This is to align with the behavior of #4369, see #4371 for rationale on
disabling Wayland by default.
2024-10-25 09:47:35 +02:00
Jeffery Myers
f03f093909 Add input_virtual_controls to MSVC projects (#4433)
Fix input_virtual_controls example to use correct default font sizes
2024-10-25 09:47:04 +02:00
Jeffery Myers
728ccc96bc Use the vertex color as part of the base shader in GLSL330 (#4431) 2024-10-24 23:49:30 +02:00
Jeffery Myers
6c3b1fa1de Add shadow map example to MSVC projects (#4430) 2024-10-24 23:37:23 +02:00
IcyLeave6109
15f6c47f07 Use free camera in model shader example (#4428) 2024-10-24 17:49:47 +02:00
Ray
16368cd353 REVIEWED: DrawRectangleLines(), considering view matrix for lines "alignment" 2024-10-24 13:11:39 +02:00
RadsammyT
385187f795 [rshapes] Review DrawRectangleLines() pixel offset (#4261)
* [rshapes] Remove `DrawRectangleLines()`'s + 1 offset

* ... and replace it with a -/+ 0.5 offset divided by current cam's zoom.
2024-10-24 13:08:12 +02:00
Ray
530bb3dc57 Merge branch 'master' of https://github.com/raysan5/raylib 2024-10-24 12:53:24 +02:00
Ray
6962364bfb Update emsdk paths to latest versions 2024-10-24 12:53:16 +02:00
github-actions[bot]
cb73970f08 Update raylib_api.* by CI 2024-10-24 10:46:22 +00:00
Ray
6ff0b03629 REVIEWED: UpdateModelAnimationBoneMatrices() comments 2024-10-24 12:46:02 +02:00
Ray
5065b85d33 Update rlgl.h 2024-10-24 12:45:12 +02:00
Ray
6760d1bff8 Merge branch 'master' of https://github.com/raysan5/raylib 2024-10-24 12:25:14 +02:00
Ray
b0140b876b REVIEWED: GPU skninning on Web, some gotchas! #4412 2024-10-24 12:25:05 +02:00
github-actions[bot]
865265b832 Update raylib_api.* by CI 2024-10-24 09:58:05 +00:00
Ray
670fbd8c10 Merge branch 'master' of https://github.com/raysan5/raylib 2024-10-24 11:57:44 +02:00
Ray
3483a4d9cb Update raylib.h 2024-10-24 11:57:36 +02:00
github-actions[bot]
b0e77c7afd Update raylib_api.* by CI 2024-10-24 09:50:59 +00:00
Ray
5706cfd600 Update Makefile 2024-10-24 11:50:42 +02:00
Ray
d85c6fe2c0 Update raylib.h 2024-10-24 11:50:30 +02:00
Ray
26dfd4c3f8 Merge branch 'master' of https://github.com/raysan5/raylib 2024-10-24 10:01:06 +02:00
Ray
0f5e76f91f Update CHANGELOG 2024-10-24 10:00:57 +02:00
github-actions[bot]
c6a58d9744 Update raylib_api.* by CI 2024-10-24 08:00:11 +00:00
Ray
2072b4fa04 Update raylib.h 2024-10-24 09:59:54 +02:00
Ray
51bc6ca834 Merge branch 'master' of https://github.com/raysan5/raylib 2024-10-24 09:59:32 +02:00
Ray
4abc6c3989 Update CHANGELOG 2024-10-24 09:59:21 +02:00
Ray
f80a44c729 Update HISTORY.md 2024-10-24 09:58:37 +02:00
Jeffery Myers
0b650f62a6 [RTEXTURES] Remove the panorama cubemap layout option (#4425)
* Remove the panorama cubemap layout, it was not implemented.
Left a todo in the code for some aspiring developer to finish.

* Update raylib_api.* by CI

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-24 09:06:24 +02:00
Ray
eb04154c98 Update Makefile 2024-10-24 01:35:44 +02:00
Ray
00c1f0836b Update Makefile 2024-10-24 01:35:37 +02:00
Ray
ea81436bef Update CHANGELOG 2024-10-24 00:14:36 +02:00
Ray
6184a2db3d ADDED: CHANGELOG for raylib 5.5 -WIP- 2024-10-23 23:29:49 +02:00
Ray
708089f560 Reviewed and reverted unneeded module check, rtextures should not depend on rtext 2024-10-23 23:29:05 +02:00
Ray
de6487b177 Merge branch 'master' of https://github.com/raysan5/raylib 2024-10-23 23:28:08 +02:00
Ray
cd845368d8 Update skinning.fs 2024-10-23 23:28:01 +02:00
Asdqwe
157ee79a8e Add drawing for generic gamepad on core_input_gamepad example (#4424) 2024-10-23 20:31:57 +02:00
Franz
6f4407cb15 Fix typo in rshapes.c (#4421) 2024-10-23 17:04:15 +02:00
Cypress
df38564f62 Grammar fix in CONTRIBUTING.md (#4423)
"Can you write some tutorial/example?"
"Can you write some tutorials/examples?"
2024-10-23 17:03:50 +02:00
Asdqwe
fe6da67066 [examples] Add deadzone handling to core_input_gamepad example (#4422)
* Add deadzone handling to core_input_gamepad example

* Rename variables
2024-10-23 16:31:27 +02:00
Asdqwe
7a4a84a561 [rcore] Fix #4405 (#4420)
* Fix #4405 at runtime

* Add parameter validation

* Remove default global deadzone
2024-10-23 00:59:50 +02:00
Asdqwe
75a4c5bf20 Update core_input_gamepad example (#4416) 2024-10-23 00:28:20 +02:00
github-actions[bot]
ebcfc7f49e Update raylib_api.* by CI 2024-10-22 22:21:35 +00:00
Ray
4b60ce700f Update raylib.h 2024-10-23 00:21:14 +02:00
Ray
352f4ce2c4 Update config.h 2024-10-23 00:21:06 +02:00
Ray
79e2be68c2 Reviewed skinning shaders #4412 2024-10-23 00:20:59 +02:00
Sage Hane
53f7da2506 build.zig: Fix a minor issue with -Dconfig (#4418) 2024-10-22 18:31:26 +02:00
Sage Hane
55249faa58 build.zig: Re-add OpenGL to Linux deps (#4417) 2024-10-22 17:35:08 +02:00
Asdqwe
4cd243f0a3 Simplify EmscriptenResizeCallback() (#4415) 2024-10-22 13:44:53 +02:00
Sage Hane
b89bf0185a build.zig: Better specify Linux dependencies (#4406) 2024-10-22 13:20:09 +02:00
Ray
b2dca724c7 REVIEWED: skinning shader for GLSL 100 #4412 2024-10-22 10:41:43 +02:00
Anthony Carbajal
fe66bfb785 moved update out of draw area (#4413) 2024-10-22 10:31:44 +02:00
github-actions[bot]
2a0963ce09 Update raylib_api.* by CI 2024-10-21 22:06:52 +00:00
Asdqwe
f8f6aa0907 [rcore] Adds implementation to SetGamepadVibration() on PLATFORM_WEB and updates it on PLATFORM_DESKTOP_SDL to handle duration (#4410)
* Updates SetGamepadVibration()

* Handle MAX_GAMEPAD_VIBRATION_TIME

* Revert low/high parameters back to left/rightMotor

* Fix missin semicolon

* Convert duration to seconds

* Add SetGamepadVibration() implementation to PLATFORM_WEB
2024-10-22 00:06:37 +02:00
github-actions[bot]
ae150e9640 Update raylib_api.* by CI 2024-10-21 18:47:41 +00:00
Ray
cd3de0af0c Merge branch 'master' of https://github.com/raysan5/raylib 2024-10-21 20:47:10 +02:00
Ray
f4cbc1fbae REVIEWED: GetGestureHoldDuration() comments 2024-10-21 20:47:08 +02:00
Jeffery Myers
a2fcbc94fd [Raymath] Add matrix operators to raymath for C++ (#4409)
* Add matrix operators to raymath for C++

* Fix spaces
2024-10-21 18:38:42 +02:00
Ray
f60c6d472c Update raymath.h 2024-10-21 17:26:42 +02:00
Ray
f141c75cde Removed trailing spaces 2024-10-21 17:00:52 +02:00
Ray
c935ca3168 Reviewed formatting #4408 2024-10-21 16:59:55 +02:00
Rapha
f402147a63 Updated instanced rendering support loading (#4408) 2024-10-21 16:56:19 +02:00
Ray
7601468211 REVIEWED: Formatting and raymath version #4385 2024-10-21 16:25:45 +02:00
Jeffery Myers
72f8c354b0 [Raymath] Add C++ operator overloads for common math function (#4385)
* Update raylib_api.* by CI

* Add math operators for C++ to raymath

* better #define for disabling C++ operators

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-21 16:17:50 +02:00
Sage Hane
110ee74875 build.zig: Merge src/build.zig to build.zig (#4393)
* build.zig: Move `src/build.zig` to `build.zig`

* build.zig: Remove uses of `@src`

* build.zig: Update entry point
2024-10-21 12:57:11 +02:00
Asdqwe
9d0b1f0171 Adds SetWindowOpacity() implementation for PLATFORM_WEB (#4403) 2024-10-21 09:47:19 +02:00
Asdqwe
cb21fe88d3 Fix MaximizeWindow() for PLATFORM_WEB (#4404) 2024-10-21 09:45:46 +02:00
Asdqwe
4290a0d9f2 [rcore] [web] Updates SetWindowState() and ClearWindowState() to handle FLAG_WINDOW_MAXIMIZED for PLATFORM_WEB (#4402)
* Updates SetWindowState() and ClearWindowState() to handle FLAG_WINDOW_MAXIMIZED for PLATFORM_WEB

* Update MaximizeWindow() and RestoreWindow() to set/unset the FLAG_WINDOW_MAXIMIZED
2024-10-21 01:04:32 +02:00
Anthony Carbajal
680238689b removed extra update command (#4401) 2024-10-21 01:03:01 +02:00
Nikolas
51ff6586f4 [rtextures] ImageDraw(): Don't try to blend images without alpha (#4395) 2024-10-21 00:31:01 +02:00
Asdqwe
3dbbe60376 Adds MaximizeWindow() and RestoreWindow() implementation for PLATFORM_WEB (#4397) 2024-10-21 00:29:32 +02:00
Sage Hane
ce9259cd02 build.zig: Fix various issues around -Dconfig (#4398)
* build.zig: Fix various issues around `-Dconfig`

* build.zig: Parse all relevant flags from `src/config.h` at comptime
2024-10-21 00:27:25 +02:00
Le Juez Victor
23354e1551 correction of comments (#4400)
The indication of locations for bone ids and bone weights did not correspond to their default values ​​in config.h
2024-10-21 00:26:15 +02:00
Nikolas
902d3c92e3 [rl_gputex] Correctly load mipmaps from DDS files (#4399) 2024-10-21 00:25:33 +02:00
Sage Hane
dc5e6e0ad0 build.zig: Clean up my mess (#4387) 2024-10-18 21:03:27 +02:00
github-actions[bot]
c6d67f006d Update raylib_api.* by CI 2024-10-17 23:15:33 +00:00
Anthony Carbajal
80393c0fb6 [rcore] added sha1 implementation (#4390)
* added sha1 implementation

* added missing part

* fixed issue

* fix to match other implementations
2024-10-18 01:15:19 +02:00
Alan Arrecis
b201b74c3f Fix VSCode Makefile to support multiple .c files (#4391)
Updated the VSCode Makefile to allow compilation of multiple .c files instead of just one (main.c).
- Replaced `SRC` and `OBJS` definitions to dynamically include all .c and .h files in the project.
- This change enables automatic handling of any number of source files specifically in the VSCode setup.
2024-10-18 01:08:07 +02:00
Asdqwe
a2e31c4e1b Fix #4388 (#4392) 2024-10-17 15:35:49 +02:00
github-actions[bot]
d6399622a0 Update raylib_api.* by CI 2024-10-16 17:26:49 +00:00
Ray
8cbf34ddc4 WARNING: BREAKING: Renamed several functions for data validation #3930 2024-10-16 19:26:12 +02:00
github-actions[bot]
9b3d019502 Update raylib_api.* by CI 2024-10-16 14:50:42 +00:00
Ray
361b0e85c1 ADDED: Utility functions: ComputeCRC32() and ComputeMD5() 2024-10-16 16:49:50 +02:00
Jojaby
c9c830cb97 Fix rectangle width and height check to account for squares (#4382) 2024-10-15 19:04:30 +02:00
R-YaTian
8d267aaf23 qoi: Added support for image of channels 3 (#4384) 2024-10-15 19:03:17 +02:00
yuval_dev
99ff770edc Fix the type mismatch caused due to unsupported ?[]const u8 (#4383)
Co-authored-by: Yuval Herman <yuvalherman99@gmail.com>
2024-10-15 19:02:20 +02:00
Sage Hane
c18677e70f build.zig: Very minor fixes (#4381) 2024-10-13 20:24:39 +02:00
Ray
735308f8eb REVIEWED: CodepointToUTF8(), clean static buffer #4379 2024-10-13 20:02:40 +02:00
Sage Hane
bac3798ad3 build.zig: Fix @src logic and a few things (#4380) 2024-10-13 18:58:42 +02:00
Anand Swaroop
59417636ca Update BINDINGS.md (#4378) 2024-10-12 13:14:35 +02:00
github-actions[bot]
f5328a9bb6 Update raylib_api.* by CI 2024-10-10 19:17:48 +00:00
Ray
d29eb34cfb REMOVED: LoadImageSvg() 2024-10-10 21:17:31 +02:00
Ray
1effe92129 WARNING: REMOVED: SVG files loading and drawing, moving it to raylib-extras 2024-10-10 20:37:46 +02:00
Sage Hane
d3f86eb957 build.zig: Improve logic (#4375)
* build.zig: Fix `@src` logic

* build.zig: Clarify build error

* build.zig: Add option for enabling `raygui`

* build.zig: Expose `Options` type
2024-10-10 18:56:43 +02:00
William Culver
c4be013294 Fix build.zig (#4374) 2024-10-10 18:56:29 +02:00
Harald Scheirich
454acca84b Some update to gltf loading (#4373)
Only warns when there are more animations than currently implemented
Allows mesh indices to be unsigned char
2024-10-10 18:53:02 +02:00
Ray
3fb1ba25ac Removed tabs and triple line-breaks 2024-10-08 18:45:52 +02:00
Colleague Riley
44e37c5f97 Update RGFW (#4372)
* (rcore_desktop_rgfw.c) fix errors when compiling with mingw

* define WideCharToMultiByte

* update RGFW

* move stdcall def to windows only

* fix raw cursor input
2024-10-08 18:39:15 +02:00
Anthony Carbajal
712ab798d1 updated makefile to disable wayland by default (#4369) 2024-10-08 18:33:33 +02:00
Ray
89a37cd315 Update CHANGELOG 2024-10-07 21:03:55 +02:00
Anthony Carbajal
43b109a4e3 removed old comment (#4370) 2024-10-07 09:32:04 +02:00
Visen
b290d47bd5 [zig] Fix build.zig bug (#4366)
* fixed zig config.h bug

* zig fmt
2024-10-06 15:52:01 +02:00
Magnus Oblerion
74ce90ce67 [example] Input virtual controls example (#4342)
* Add files via upload

* Update core_input_gamepad_virtual.c

* Add files via upload

* Update and rename core_input_gamepad_virtual.c to core_virtual_Dpad.c

* Update and rename core_virtual_Dpad.c to core_input_virtual_controls.c

* Delete examples/core/core_input_gamepad_virtual.png

* Add files via upload

* Update Makefile

* Update Makefile.Web

* Update README.md

* Update README.md

* Create core_input_virtual_controls.vcxproj

* Delete projects/VS2022/examples/core_input_virtual_controls.vcxproj
2024-10-06 15:47:47 +02:00
Ray
f9e709915a Fix #4355 2024-10-04 11:24:02 +02:00
Anthony Carbajal
d06287d562 taken from FluxFlus PR (#4363) 2024-10-04 11:16:03 +02:00
Anthony Carbajal
da95f88c36 updated camera speeds with GetFrameTime (#4362) 2024-10-04 11:15:43 +02:00
Kacper Zybała
cded378205 [build] CMake: Fix GRAPHICS check (#4359) 2024-10-04 11:08:12 +02:00
Nikolas
0ef0791854 Allow Zig build script to change desktop backend (#4358) 2024-10-04 11:05:19 +02:00
Ashley Chekhov
20ce8ba046 Typo fix (#4356)
Seemed to be a typo. Hope this helps.
2024-10-04 11:04:26 +02:00
Asdqwe
96d91a3892 [rlgl] Fix rlgl standalone defaults (#4357)
* Fix rlgl standalone defaults

* Fix rmodels
2024-10-02 11:41:21 +02:00
Jeffery Myers
09987b01cc [MODELS] Better fix for GPU skinning issues (#4353)
* Make the max VBO match the animation flag.

* re-enable GPU skinning for mac, and fix the max buffer to be correct based on the GPU skinning support flag.
2024-10-02 10:49:56 +02:00
Asdqwe
d9c10ed264 Fixes GetClipboardText() memory leak for PLATFORM_DESKTOP_SDL (#4354) 2024-10-02 10:49:06 +02:00
Asdqwe
282d6478ba Complements the #4348 GPU skinning fix (#4352) 2024-10-01 12:09:06 +02:00
Jeffery Myers
0e7bcd5639 [MODELS] Disable GPU skinning for MacOS platform (#4348)
* Update raylib_api.* by CI

* Disable GPU skinning on MacOS
Add GPU skinning example to MSVC Projects.

* Update raylib_api.* by CI

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-30 12:10:02 +02:00
Ray
84a4d93bc4 Fix #4349 2024-09-30 12:06:53 +02:00
Jeffery Myers
0573ef0382 [SHAPES] Add more detail to comment for DrawPixel (#4344)
* Update raylib_api.* by CI

* Add comment that draw pixel uses geometry and may be slow

* Update raylib_api.* by CI

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-27 23:06:54 +02:00
Menno van der Graaf
55e83468c9 Fix isGpuReady flag on android (#4340) 2024-09-24 20:02:54 +02:00
Ray
13178b9373 Update rcore.c 2024-09-22 23:01:22 +02:00
Ray
291063c98f Update rcore.c 2024-09-22 22:56:21 +02:00
Ray
24a1cd8c5b Update rcore.c 2024-09-22 22:50:47 +02:00
Ray
352c450ad0 Update rcore.c 2024-09-22 22:43:35 +02:00
Ray
a643dd058b Merge branch 'master' of https://github.com/raysan5/raylib 2024-09-22 22:36:26 +02:00
Ray
100f6624d6 Update rcore.c 2024-09-22 22:36:17 +02:00
github-actions[bot]
1c7b18923c Update raylib_api.* by CI 2024-09-22 20:11:24 +00:00
Ray
55a25ac04b ADDED: MakeDirectory() 2024-09-22 22:11:08 +02:00
Ray
1eb8ff5e54 LoadFontDefault(): Initialize glyphs and recs to zero #4319 2024-09-22 18:05:58 +02:00
Daniil Kisel
7d3f04ca35 Update BINDINGS.md (#4337)
Updated Lean4 bindings
2024-09-22 14:36:06 +02:00
Daniil Kisel
daaca40416 Update parser's readme to mirror fixed help text (#4336) 2024-09-22 13:45:10 +02:00
Ridge3Dproductions
9337913766 Projects: Fix CMake example project (#4332)
* Update CMakeLists.txt

Add missing link flags

* Update README.md

Remove unneeded flag because this flag is defined in the updated CMakeList file

* Update CMakeLists.txt
2024-09-21 23:12:48 +02:00
Asdqwe
212b1e5fe7 Fix rlgl standalone defaults (#4334) 2024-09-21 23:11:40 +02:00
Ray
e5d0cc978a Some minor tweaks 2024-09-20 17:32:01 +02:00
github-actions[bot]
c09dadd9b5 Update raylib_api.* by CI 2024-09-20 15:30:53 +00:00
Daniel Holden
86ead96263 [rmodels] Optional GPU skinning (#4321)
* Added optional GPU skinning

* Added skinned bone matrices support for different file formats.

* Moved new shader locations to end of enum to avoid breaking existing examples. Added gpu skinning on drawing of instanced meshes.

* Added GPU skinning example.

* Removed variable declaration to avoid shadowing warning.
2024-09-20 17:30:37 +02:00
Brian E
2f0cf8fbe1 [BINDINGS.md] Added raylib-bqn, moved rayed-bqn (#4331)
* [BINDINGS.md] Added raylib-bqn, moved rayed-bqn

rayed-bqn has had a lot of progress and I've realized it has diverged too much from raylib, and so I made raylib-bqn to be a simple binding, while rayed-bqn will be a utility wrapper.

* removed accidental newline
2024-09-20 09:01:15 +02:00
github-actions[bot]
c762a99bd5 Update raylib_api.* by CI 2024-09-17 15:30:59 +00:00
Ray
0a03ed913b Update raylib.h 2024-09-17 17:30:40 +02:00
Ray
c2bd1845eb Reviewed #4323 2024-09-17 10:30:26 +02:00
Ray
627e76cf7b REVIEWED: Directory filter tag #4323 2024-09-17 10:26:32 +02:00
Ray
186787e311 Merge branch 'master' of https://github.com/raysan5/raylib 2024-09-15 13:21:22 +02:00
Ray
0e4ebaf89d REVIEWED: DrawTexturePro() to avoid negative dest rec #4316 2024-09-15 13:20:43 +02:00
github-actions[bot]
7ec1c288be Update raylib_api.* by CI 2024-09-15 11:05:15 +00:00
foxblock
16e9317220 [rcore] Add filtering folders to LoadDirectoryFilesEx()/ScanDirectoryFiles() (#4302)
* Add filtering folders in ScanDirectoryFiles and ScanDirectoryFilesRecursively

Add define FILTER_FOLDER for that purpose
Fix folder names matching filter being added to result

* Move FILTER_FOLDER define to internals of rcore and document option in comment
2024-09-15 13:05:01 +02:00
Ray
329b2df4f2 Merge branch 'master' of https://github.com/raysan5/raylib 2024-09-15 13:03:38 +02:00
Ray
e9bbf02b2b Update rtextures.c 2024-09-15 13:03:12 +02:00
github-actions[bot]
8d92e65773 Update raylib_api.* by CI 2024-09-15 11:02:18 +00:00
Ray
b807f633d9 REVIEWED: ColorLerp() formatting #4310 2024-09-15 13:01:59 +02:00
github-actions[bot]
68e7cadabc Update raylib_api.* by CI 2024-09-15 10:56:01 +00:00
SusgUY446
ddc523ffbe [rtextures] add MixColors. a function to mix 2 colors together (#4310)
* added MixColors function to mix 2 colors together (Line 1428 raylib.h and Line 4995 in rtextures.c)

* renamed MixColors to ColorLerp (https://github.com/raysan5/raylib/pull/4310#issuecomment-2340121038)

* changed ColorLerp to be more like other functions

---------

Co-authored-by: CI <-ci@not-real.com>
2024-09-15 12:55:45 +02:00
base
d02fcc5262 chore: GetApplicationDirectory definition for FreeBSD (#4318) 2024-09-15 12:51:20 +02:00
Jett
ed702673ea fix for hardcoded index values in vboID array (#4312)
changing any of the #defines in CONFIG.H would cause issues when rendering.
2024-09-11 22:57:19 +02:00
Alex
fd961deba7 Update BINDINGS.md (#4311)
I've updated the bindings
2024-09-10 07:44:25 +02:00
masnm
0656440e38 fix vld1q_f16 undeclared in arm on stb_image_resize2.h v2.10 (#4309) 2024-09-08 20:24:53 +02:00
masnm
10b01ba7c2 Change implicit conversion to explicit conversion to remove warning (#4308) 2024-09-06 23:16:17 +02:00
Chris Warren-Smith
ed61bdb568 Fix seg fault with long comment lines (#4306)
#4304
2024-09-04 13:07:00 +02:00
Michał Jaskólski
42022c3531 fix: In certain cases the connector status is reported UNKNOWN, should be conisdered as CONNECTED (#4305)
Co-authored-by: Michal Jaskolski <michal.jaskolski@hexagon.com>
2024-09-03 14:38:12 +02:00
carverdamien
59b44a4908 Add uConsole mapping (#4297) 2024-09-02 10:01:30 +02:00
hanaxars
5f49ec3d64 Fix missing equal sign (#4294)
I just noticed there is a missing equal sign. This PR fixes this.
2024-08-28 18:35:35 +02:00
Hesham Abourgheba
8ea5db3ec4 fix(rcore/android): Allow main() to return it its caller on configuration changes. (#4288) 2024-08-25 18:51:08 +02:00
Jeffery Myers
91a9888baa [rModels] Correctly split obj meshes by material (#4285)
* Correctly split meshes from tinyobj by material so they can be represented by raylib correctly

* PR Feedback
2024-08-25 18:49:52 +02:00
Ray
f5ef357810 Update rtext.c 2024-08-25 13:55:53 +02:00
Ray
5604f6d8a3 Update rlgl.h 2024-08-25 12:57:05 +02:00
Ray
157c7c21d4 ADDED: more uniform data type options #4137 2024-08-25 12:52:27 +02:00
Ray
dec7f12b14 Update raylib.h 2024-08-25 12:51:55 +02:00
Tchan0
8dbf371244 Examples makefiles: align /usr/local with /src Makefile (#4286)
* align /usr/local with src Makefile

Align /usr/local with the /src Makefile, where it can be overriden.

* /usr/local: allow override

align /usr/local with the /src Makefile, where it can be overriden
2024-08-25 11:23:08 +02:00
Tchan0
d314afc451 rlgl.h: glint64 did not exist before OpenGL 3.2 (#4284)
Compilation breaks on rlgl.h for early OpenGL versions.
Glint64 did not exist on those versions (< OpenGL 3.2)
2024-08-24 20:35:49 +02:00
Dave Green
0c06a08e07 [rcore][desktop_glfw] Keeping CORE.Window.position properly in sync with glfw window position (#4190)
* WindowPosCallback added.

CORE.Window.position is now properly kept in sync with the glfw window position.

* Update rcore_desktop_glfw.c

Comments updated.

* Setting CORE.Window.position correctly in InitPlatform() as well.

This also fixes not centering the window correctly when the high dpi flag was enabled.

* Fixes centering the window in the SetWindowMonitor() function.

Here the render size has to be used again in case the high dpi flag is enabled.

* Update Window Position

Update Window Position right away in ToggleFullscreen() & ToggleBorderlessWindowed() functions
2024-08-24 20:33:21 +02:00
Jeffery Myers
0aba21f71c [RCORE] Update comments on fullscreen and boderless window to describe what they do (#4280)
* Update raylib_api.* by CI

* update fullscreen and borderless comments to better describe what they do.

* Update raylib_api.* by CI

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-24 20:31:28 +02:00
Ray
4c9282b090 ADDED: isGpuReady flag, allow font loading with no GPU acceleration 2024-08-24 18:59:24 +02:00
Ray
78e86b6ea5 Update rlgl.h 2024-08-24 18:58:43 +02:00
Ray
414133dbe7 Update models_point_rendering.c 2024-08-24 18:56:06 +02:00
Colleague Riley
bc0bd98763 (rcore_desktop_rgfw.c) fix errors when compiling with mingw (#4282)
* (rcore_desktop_rgfw.c) fix errors when compiling with mingw

* define WideCharToMultiByte
2024-08-24 18:43:46 +02:00
github-actions[bot]
dfd8055270 Update raylib_api.* by CI 2024-08-24 16:42:52 +00:00
Reese Gallagher
7bde76ca2c [rmodels] More performant point cloud rendering with DrawModelPoints() (#4203)
* Added the ability to draw a model as a point cloud

* Added example to demonstrate drawing a model as a point cloud

* polished the demo a bit

* picture for example

* adhere to conventions for example

* update png to match aspect ratio

* minor changes

* address code convention comments

* added point rendering to makefiles

* added point rendering to readme and renumbered examples

* comment formatting

---------

Co-authored-by: Reese Gallagher <re325479@ucf.edu.com>
Co-authored-by: Ray <raysan5@gmail.com>
2024-08-24 18:42:38 +02:00
konstruktor227
b0c3013b51 [raudio] Support 24-bit FLACs in LoadMusicStreamFromMemory (#4279)
Force conversion to 16-bit, same as how it is done in `LoadMusicStream`.
This fixes the problem where 24-bit FLACs play silence or broken sound.
2024-08-23 22:51:29 +02:00
Menno van der Graaf
3079c69725 Replace deprecated Android function ALooper_pollAll with ALooper_pollOnce (#4275) 2024-08-23 22:32:20 +02:00
Peter0x44
ecf863969c [build] CMake: Fix warnings in projects/CMake/CMakeLists.txt (#4278)
Currently, when building, the cmake example in projects/CMake gives this
warning, with CMake 3.30.2

CMake Warning (dev) at /usr/share/cmake/Modules/FetchContent.cmake:1953 (message):
  Calling FetchContent_Populate(raylib) is deprecated, call
  FetchContent_MakeAvailable(raylib) instead.  Policy CMP0169 can be set to
  OLD to allow FetchContent_Populate(raylib) to be called directly for now,
  but the ability to call it with declared details will be removed completely
  in a future version.
Call Stack (most recent call first):
  CMakeLists.txt:20 (FetchContent_Populate)
This warning is for project developers.  Use -Wno-dev to suppress it.

Changing FetchContent_Populate to FetchContent_MakeAvailable didn't
cause any issues I could observe when building. I'm not sure why it
wasn't like that to begin with.
2024-08-23 22:29:40 +02:00
Bugsia
77172e34db Fixing GenImagePerlinNoise() being stretched, if Image is not rectangular (#4276) 2024-08-23 22:22:36 +02:00
Peter0x44
74350fa7cf [build] CMake: Delete BuildOptions.cmake (#4277)
This file seems to not do anything useful. From what I can tell the
OSX_FATLIB option sets CMAKE_OSX_ARCHITECTURES to "x86_64;i386". This
doesn't account for the arm that apple now has, as well as 32 bit
support being completely removed, and I think it's entirely reasonable
to expect users to pass the necessary architectures they want
themselves. It's possible this could break some users who rely on this,
but I sincerely doubt anyone does. The solution is trivial either way
(put -DCMAKE_OSX_ARCHITECTURES="i386;x86_64" on the command line
yourself)

The second part of BuildOptions.cmake claims to set PLATFORM to "Web" if
the emscripten toolchain file is used (if (EMSCRIPTEN)), but it does not
work correctly anyway. Currently, glfw searches for wayland and x11
libraries and fails likeso:

CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:645 (message):
  The following required packages were not found:
   - wayland-client>=0.2.7
   - wayland-cursor>=0.2.7
   - wayland-egl>=0.2.7
   - xkbcommon>=0.5.0

Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPkgConfig.cmake:873 (_pkg_check_modules_internal)
  src/external/glfw/src/CMakeLists.txt:163 (pkg_check_modules)

Considering this code doesn't work as described, it's okay to delete it.
I think a better check should be implemented, but that is for a
different PR.
2024-08-23 22:21:22 +02:00
listeria
cc88e0b780 rtext: always multiply by sign in TextToFloat() (#4273)
Co-authored-by: Listeria monocytogenes <listeria@disroot.org>
2024-08-21 17:45:14 +02:00
Jeffery Myers
c8bee7c439 [rmodels] Add a warning when loading an OBJ with multiple materials. (#4271)
* Update raylib_api.* by CI

* Add a temp warning about material assignments during OBJ loading if the file has more than one material. To be replaced when the OBJ translation code is fixed.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-21 17:11:59 +02:00
github-actions[bot]
bae0af241e Update raylib_api.* by CI 2024-08-21 12:08:09 +00:00
Paperdomo101
fa3f73d881 [rshapes] Review DrawGradient color parameter names (#4270)
void DrawCircleGradient(int centerX, int centerY, float radius, Color color1, Color color2);
void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, Color color2);
void DrawRectangleGradientH(int posX, int posY, int width, int height, Color color1, Color color2);
void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4);

Have been changed to:

void DrawCircleGradient(int centerX, int centerY, float radius, Color inner, Color outer);
void DrawRectangleGradientV(int posX, int posY, int width, int height, Color top, Color bottom);
void DrawRectangleGradientH(int posX, int posY, int width, int height, Color left, Color right);
void DrawRectangleGradientEx(Rectangle rec, Color topLeft, Color bottomLeft, Color topRight, Color bottomRight);
2024-08-21 14:07:52 +02:00
Ray
039df36f4b REVIEWED: Automation events mouse wheel #4263 2024-08-20 19:13:18 +02:00
hanaxars
7fab03c0b4 Fix warnings (#4264)
Fix following gcc warnings when SVG enabled:

rtextures.c: In function 'LoadImageSvg':
rtextures.c:374:52: warning: pointer targets in passing argument 1 of 'nsvgParse' differ in signedness [-Wpointer-sign]
  374 |             struct NSVGimage *svgImage = nsvgParse(fileData, "px", 96.0f);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    unsigned char *
In file included from rtextures.c:230:
external/nanosvg.h:2952:28: note: expected 'char *' but argument is of type 'unsigned char *'
 2952 | NSVGimage* nsvgParse(char* input, const char* units, float dpi)
      |                      ~~~~~~^~~~~
rtextures.c:407:43: warning: comparison of distinct pointer types lacks a cast [-Wcompare-distinct-pointer-types]
  407 |         if (isSvgStringValid && (fileData != fileNameOrString)) UnloadFileData(fileData);
      |                                           ^~
rtextures.c: In function 'LoadImageFromMemory':
rtextures.c:614:52: warning: passing argument 1 of 'nsvgParse' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
  614 |             struct NSVGimage *svgImage = nsvgParse(fileData, "px", 96.0f);
      |                                                    ^~~~~~~~
external/nanosvg.h:2952:28: note: expected 'char *' but argument is of type 'const unsigned char *'
 2952 | NSVGimage* nsvgParse(char* input, const char* units, float dpi)
      |                      ~~~~~~^~~~~
2024-08-19 13:41:20 +02:00
Colleague Riley
b432aa2b9c Update RGFW (#4259)
* update RGFW

* fix bug with GetCurrentMonitor

* update RGFW

* update RGFW

* clean up merge

* update RGFW
2024-08-17 14:00:54 +02:00
Lázaro Albuquerque
308b77cd42 Fix warnings (#4251)
* Update rmodels.c

fix these warnings:

```
/src/rmodels.c:5744:17: warning: missing initializer for field 'w' of 'Vector4' [-Wmissing-field-initializers]
[build]  5744 |                 Vector4 outTangent1 = {tmp[0], tmp[1], tmp[2]};
[build]       |                 ^~~~~~~
```

* Update rcore_web.c

fix warnings
2024-08-17 01:07:23 +02:00
Ray
f70d8a33cb REVIEWED: Shader load failing returns 0, instead of fallback 2024-08-17 00:46:08 +02:00
Ray
fa374f9cc9 Update webassembly.yml 2024-08-17 00:44:33 +02:00
Brian E
63ae57d2e3 Added raylib-APL to BINDINGS.md (#4253)
* Added raylib-APL to BINDINGS.md

* added back the newline

* Made APL binding be version 5.0 instead of auto

Also alligned the bars of the new entry.
2024-08-15 10:05:34 +02:00
Lázaro Albuquerque
6e644a27fc Change some global variables to have internal linkage (#4252)
* Change some global variables to have internal linkage

* Update rcore.c

* Update rcore.c
2024-08-13 19:16:07 +02:00
hanaxars
65c4003546 Make camera movement independant of framerate (#4247)
Instead of moving camera with constant speed per frame, speed is multiplied with delta time before movement.
2024-08-12 18:47:52 +02:00
Anthony Carbajal
418b878053 [Examples] set FPS to 60 (#4235)
* set FPS to 60

* remove extra commented lines
2024-08-10 20:07:23 +02:00
Asdqwe
46cb6af437 Fix core_input_gamepad_info example so all buttons are displayed within the window (#4241) 2024-08-09 19:03:14 +02:00
Maxim Knyazkin
13491a485a Fixed compilation for OpenGL ES (#4243) 2024-08-09 19:02:18 +02:00
Anthony Carbajal
e4529ff8f9 update text input box (#4229) 2024-08-09 09:18:00 +02:00
Anthony Carbajal
3c5bdae7ab update shapes bouncing ball (#4226) 2024-08-09 09:16:05 +02:00
Anthony Carbajal
06aeb21429 update shaders basic pbr (#4225) 2024-08-09 09:15:07 +02:00
Anthony Carbajal
85c6489d81 update models box collisions (#4224) 2024-08-09 09:12:26 +02:00
Anthony Carbajal
243801c2d1 update text writing anim (#4230) 2024-08-09 09:07:56 +02:00
Maxim Knyazkin
2590a30d04 [rlgl] Adding warnings in case OpenGL 4.3 is not enabled (#4202)
* Adding warnings for OpenGL 4.3

* Removed logging from frequently called functions
2024-08-09 09:05:46 +02:00
NishiOwO
fe9e371f27 [miniaudio] Fixing miniaudio and Makefile for NetBSD (#4212)
* fixing miniaudio

* another fix for NetBSD

* adding wl-r. should not affect other bsd
2024-08-09 09:04:18 +02:00
Anthony Carbajal
070c1c9d63 update examples missing unloadtexture (#4234) 2024-08-09 09:03:27 +02:00
Anthony Carbajal
5233b80fb7 update raygui (#4238) 2024-08-09 08:55:16 +02:00
Jeffery Myers
9ef678d90a Fix warnings (#4239)
* Update raylib_api.* by CI

* Fix typecast warnings

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-09 08:54:22 +02:00
freakmangd
cae0946764 Fix build.zig and use zig fmt (#4242)
+ `std.mem.split` is deprecated, `splitScalar` seems like the intended choice here
+ zig files should be formatted according to `zig fmt`
2024-08-09 08:53:29 +02:00
kai-z99
97c02b2425 [examples] Fix some examples (#4211)
* Add text

* small typo
2024-08-07 01:05:53 +02:00
Ray
5af331d708 REVIEWED #4206 2024-08-07 01:01:45 +02:00
Ray
db8b199363 Reviewed shader 2024-08-06 18:32:14 +02:00
CDM15y
b44b759b8f [examples][shaders_raymarching] Add raymarching.fs for GLSL120 (#4183)
* Create raymarching.fs

* Update raymarching.fs

* Update raymarching.fs

* Update raymarching.fs

Remove `fragColor` as it is unused

Move the license to the top of the code to improve readability.
2024-08-06 18:30:15 +02:00
Anthony Carbajal
4b84b5563e Update audio mixed processor (#4214)
* updated audio mixed processor

* remove float cast, better parenthesis
2024-08-06 18:29:10 +02:00
lnc3l0t
8b714e9dd9 [build.zig] check if wayland-scanner is installed (#4217)
#4150 introduced a default value for linux_display_backend,
which makes X11-only systems fail to build.
2024-08-06 18:28:33 +02:00
Ray
9c2ba3bfb7 REVIEWED: possible overflow... again #4206 2024-08-04 23:22:27 +02:00
Ray
923f983719 REVIEWED: Possible overflow #4206 2024-08-04 22:08:38 +02:00
Ray
b657001e0d REVIEWED: shaders_vertex_displacement 2024-08-04 22:06:20 +02:00
lnc3l0t
b2d48ff172 [build.zig] Override config.h definitions (#4193)
* [build.zig] Overridable definitions from config.h
The new Options field "config" holds a string the user can set in the
format "-Dflag_a=1 -Dflag_b=0 ..." to override the values set in
`config.h`.
The file is parsed and the default values are appended to the
compilation flags, if the user doesn't override them.
The user string is appended to the compilation flags.
The "-DEXTERNAL_CONFIG_FLAGS" is added to prevent "config.h" inclusion.

Note: a certain format is assumed for the formatting of config.h
Note: this commit references the closed issue #3516

* [build.zig] Only SUPPORT_* definitions are overridable

Lines from `config.h` which contains "SUPPORT" are added to compilation after being parsed:
- remove whitespace
- format to preprocessor option https://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html

The user supplied flags have priority over the ones read from the file.

NOTE: extension to commit 4da7f82e6f, the logic is simplified
because the SUPPORT flags only have binary values, which makes them easier to parse.
2024-08-04 22:01:28 +02:00
Dave Green
596cc3a645 [rcore][desktop_glfw] Set AUTO_ICONIFY flag to false per default (#4188)
* GLFW AUTO_ICONIFY flag is now set to false per default.

Previously AUTO_ICONIFY was only disabled if the user requested a Fullscreen window from the start. After that it was not possible to change this behavior on the user side anymore, even when changing to a Fullscreen window.

The AUTO_ICONIFY causes problems on macOS. On macOS if the window is minimized because of AUTO_ICONIFY than the only way to restore it is to click on the icon in the dock. In other words when AUTO_ICONIFY is enabled alt/cmd-tabbing through windows does not work correctly. On windows it works even when AUTO_ICONIFY is enabled.

Additionally if a raylib window is in Fullscreen mode on another monitor the AUTO_ICONIFY behavior is a problem because the user might want to window to stay on the monitor even if it loses focus. (problem on all OS's)

AUTO_ICONIFY also restores the monitor hardware resolution if a fullscreen window loses focus.

* Update rcore_desktop_glfw.c

Extra space removed and comments updated with a space at the beginning
2024-08-04 21:59:48 +02:00
Alex ZH
43b0c9410e [examples] Add new example: shaders_vertex_displacement (#4186)
* shaders-vertex_displacement init

* implement simulation of wave in ocean

* update examples/README & add some comments

* update comments

* add gl100 shaders
2024-08-04 21:58:26 +02:00
Randy Palamar
92f60a99f6 [rlgl] use GLint64 for glGetBufferParameteri64v (#4197) 2024-08-04 21:53:56 +02:00
Anthony Carbajal
6595bab8ff update make for examples (#4209) 2024-08-04 21:45:50 +02:00
Rico P
a8ec8472ff replace unicode characters by ascii characters in jar_xml to avoid warning in MSVC (#4196) 2024-08-02 21:04:33 +02:00
maxmutant
9e39788e07 [rcore] fix gamepad axis movement and its automation event recording (#4184)
* [rcore] fix gamepad axis movement and its automation event recording

This commit fixes 2 issues:
- Automation events aren't recorded for negative axis movements on
  gamepads (e.g. stick going left/up)
- 'GetGamepadAxisMovement' drift check isn't working correctly for
  triggers. Axis values between [-0.1, 0.1] are clamped to 0.0

Behaviour change:
- 'GetGamepadAxisMovement' returns default value for each axis, even
  if gamepad isn't attached.

* [rcore] inline body of 'GetGamepadAxisMovementDefault' and remove it
2024-07-28 22:07:47 +02:00
Dave Green
e5a1fc4f20 No longer set the RL_TEXTURE_FILTER_LINEAR when high dpi flag is enabled. (#4189) 2024-07-27 20:19:05 +02:00
Ray
efce4d69ce Merge branch 'master' of https://github.com/raysan5/raylib 2024-07-25 11:44:59 +02:00
Ray
5041d20f00 Update rcore_desktop_glfw.c 2024-07-25 11:44:49 +02:00
Jutastre
f5d2f8d545 Warning on invalid image data (#4179)
* Adds log warnings on invalid file data

* Separate error on missing file extension

* Changed LOG_ERROR to LOG_WARNING

---------

Co-authored-by: Jutastre <pukarlindgren@gmail.com>
2024-07-24 21:21:45 +02:00
Lázaro Albuquerque
bbcb0109e1 Add default vertex/fragment shader to OpenGL ES 3.0 based on the ones from OpenGL 3.3 (#4178) 2024-07-23 21:10:23 +02:00
Lázaro Albuquerque
30f9ca7eb6 A better default that saves the whopping amount of 28KB on the final bundle (#4177) 2024-07-22 22:23:03 +02:00
Colleague Riley
f1f08861a1 Update RGFW (#4176)
* update RGFW

* fix bug with GetCurrentMonitor

* update RGFW

* update RGFW

* clean up merge
2024-07-22 22:19:09 +02:00
Jaen
047a4da696 Fix Carp link - BINDINGS.md (#4175)
The current link 404's. Replace it with a fork.
2024-07-21 13:44:34 +02:00
github-actions[bot]
ad72e3ec8f Update raylib_api.* by CI 2024-07-21 08:28:53 +00:00
Ray
474ab48f8b Update rtextures.c 2024-07-21 10:28:34 +02:00
Ray
fde0dcd0ab ADDED: Working directory info at initialization 2024-07-21 10:28:23 +02:00
Ray
fc5eab5676 Update version to avoid confusions...
...considering that `raylib 5.5` official release could still take some time...
2024-07-21 10:28:01 +02:00
CDM15y
2d94d8d06d [examples] Fix PBR and Shadowmap example shaders for GLSL 1.20 (#4167)
* Update pbr.fs

remove presicion mediump float because it is for GLES, and not desktop GL

* Fix shadowmap.fs

also suffers the same problem as pbr.fs
2024-07-20 10:42:55 +02:00
Julianiolo
aa70d32786 Fix a dependance of rtexture to rtext (#4171) 2024-07-20 10:39:14 +02:00
Ray
996f50393e Minor tweaks 2024-07-19 00:39:58 +02:00
Ray
61393fff1f Update rcore_desktop_glfw.c 2024-07-19 00:39:11 +02:00
_Tradam
50000f4b01 added brainfuck bindings (#4169) 2024-07-18 21:06:18 +02:00
Lázaro Albuquerque
24726a4bc2 Removes the redundant USE_AUDIO flag (#4158) 2024-07-16 14:16:41 +02:00
red thing
0c03cbff90 Update BINDINGS.md: dray binding supports raylib 5.0 (#4163) 2024-07-16 14:00:30 +02:00
MrScautHD
576bee5cce Adding GetKeyName(int key) (WIP) (#4161) 2024-07-16 14:00:00 +02:00
jkaup
5ede47618b Fix crash when switching playback device (#4102)
Co-authored-by: jj <noname@nomail.fi>
2024-07-13 23:10:28 +02:00
Kai Kitagawa-Jones
8d5374a443 Replace glGetInteger64v with glGetBufferParameteri64v (#4154) 2024-07-11 21:31:13 +02:00
InventorXtreme
44c6cd2d37 [build.zig] GLFW Platform Detection Support (#4150)
* Zig Both Linux Desktop Platform Support

* Formating and Default Fix
Made formating fit within raylib standards and changed the default option to support both X11 and wayland on Linux.

* caught one hiding tab
2024-07-11 09:59:26 +02:00
Jeffery Myers
74680748b9 [Shapes] Remove duplicate color calls in DrawGrid (#4148)
* Update raylib_api.* by CI

* No need to call the color 4 times in a row, it's batched

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-09 19:45:07 +02:00
SuperUserNameMan
174313acbf WindowSizeCallback() should not try to handle DPI since already managed by GLFW (#4143)
If `FLAG_WINDOW_HIGHDPI` is set, `InitPlatform()` will aks GLFW to handle resize window content area based on the monitor content scale using : ` glfwWindowHint(GLFW_SCALE_TO_MONITOR, GLFW_TRUE); `

So `WindowSizeCallback()` does not have to handle it a second time.
2024-07-09 09:23:14 +02:00
Ray
fa03246d0e REVIEWED: Code formatting to follow raylib conventions 2024-07-09 09:21:57 +02:00
Colleague Riley
98662b6a4a update RGFW to RGFW 1.0 (#4144)
* update RGFW

* fix bug with GetCurrentMonitor
2024-07-09 09:12:03 +02:00
Ray
3abe728712 Minor tweaks 2024-07-08 22:54:19 +02:00
NishiOwO
598b7f5210 Add workaround for NetBSD (#4139) 2024-07-08 22:47:35 +02:00
Ray
9764fef262 Update models_billboard.c 2024-07-07 21:02:35 +02:00
Ray
43fe992b94 Merge branch 'master' of https://github.com/raysan5/raylib 2024-07-07 21:02:29 +02:00
Ray
b8e5179431 Update rmodels.c 2024-07-07 21:02:20 +02:00
github-actions[bot]
bc6cf61794 Update raylib_api.* by CI 2024-07-07 18:57:40 +00:00
Ray
df4ff4e78b REVIEWED: Direction must be normalized #4131 2024-07-07 20:57:18 +02:00
bohonghuang
6dd2a0e645 [rmodels] Consistent DrawBillboardPro with DrawTexturePro (#4132)
* [rmodels] Re-implement `DrawBillboardPro`

* [rmodels] Add comments to `DrawBillboardPro`

* [rmodels] Make `DrawBillboardPro` consistent with `DrawTexturePro`

* Update raylib_api.* by CI

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-07 20:27:51 +02:00
Ninad Sachania
b61303244c Fix Reddit badge (#4136) 2024-07-07 10:47:44 +02:00
Ray
a8240722c6 REVIEWED: CheckCollisionPointRec() 2024-07-07 09:09:34 +02:00
kai-z99
1039e3c1bd [rshapes] Give CheckCollisionPointCircle() its own implementation (#4135)
* remove function call

* fix
2024-07-07 09:05:25 +02:00
Ray
9a280cda0b Update rlgl.h 2024-07-04 11:12:24 +02:00
Ray
c95b2e88b7 Example review 2024-07-04 11:12:20 +02:00
Frank Kartheuser
8fbb447a6d Change SDL_Joystick to SDL_GameController (#4129)
With SDL_Joystick my game controller wasn't working properly. That's why I changed it to SDL_GameController.
2024-07-04 00:01:40 +02:00
Jeffery Myers
9d3bd43c6e [CORE] Fix MSVC warnings/errors and raymath.h in C++ (#4125)
* Update raylib_api.* by CI

* Fix MSVC warnings.
Make raymath.h work in C++ in MSVC

* whitespace cleanup

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-01 22:03:21 +02:00
Ray
ab20b2179f Update Makefile 2024-07-01 18:56:06 +02:00
Ray
9f47e562d9 Merge branch 'master' of https://github.com/raysan5/raylib 2024-07-01 18:49:54 +02:00
Ray
18d726be65 Update Makefile 2024-07-01 18:49:47 +02:00
github-actions[bot]
899d03e77e Update raylib_api.* by CI 2024-07-01 16:31:58 +00:00
Ray
2efd36a124 Merge branch 'master' of https://github.com/raysan5/raylib 2024-07-01 18:31:33 +02:00
Ray
2f49250baf WARNING: UPDATE: Starting works on raylib 5.5 release 2024-07-01 18:31:16 +02:00
github-actions[bot]
6d30220acc Update raylib_api.* by CI 2024-07-01 16:30:47 +00:00
Ray
fbd79cde5f Reverted memory allocators additional checks 2024-07-01 18:30:22 +02:00
Ray
d243094ede WARNING: BREAKING: Renamed PLATFORM_DESKTOP to PLATFORM_DESKTOP_GLFW
This could potentially be a breaking change, for consistency, now every possible desktop backend has the proper name assigned: GLFW, SDL, RGFW
raylib build system has been reviewed to fallback to `PLATFORM_DESKTOP_GLFW` by default when `PLATFORM_DESKTOP` defined
2024-07-01 18:28:44 +02:00
github-actions[bot]
1fb0565148 Update raylib_api.* by CI 2024-07-01 11:06:39 +00:00
Ray
2bc75b877a WARNING: TEST: Security check to address potential overflow cocerns 2024-07-01 13:06:15 +02:00
Ray
a1d516354e Merge branch 'master' of https://github.com/raysan5/raylib 2024-07-01 13:06:00 +02:00
Ray
61cfd1afcb Minor tweaks 2024-07-01 13:05:20 +02:00
Bruno Cabral
b5473d5ffd [rtextures] advance k in LoadImageColors (#4120)
Some formats are not advancing k to get pixels values
2024-07-01 12:24:01 +02:00
Mike Will
9e22fddf1a [build.zig] Make emscripten build compatible with Zig 0.13.0 (#4121) 2024-07-01 12:22:12 +02:00
Ray
c8313d9ebc Update Storage base path, use provided SDL base path 2024-07-01 11:44:20 +02:00
github-actions[bot]
4c90fc6eff Update raylib_api.* by CI 2024-06-30 09:38:16 +00:00
Ray
1e1061d5c7 REVIEWED: Formatting, follow raylib coding conventions 2024-06-30 11:37:58 +02:00
Ray
13e3092511 REVIEWED: DrawSphereEx(), added educational info 2024-06-30 11:15:45 +02:00
smalltimewizard
953df38ac4 [rmodels] DrawSphereEx() optimization (#4106)
* Optimize DrawSphereEx()

Precalculates sin/cos to eliminate unnecessary calls.

* Formatting correction to previous commit

* Bugfix to optimized DrawSphereEx()

OBO error -- added 1 additional precalculated cos/sin value to each array to complete the 360-degree wraparound. Technically the value of these last elements will always be the same as the first element due to 360-degree wraparound, but this is the simplest solution.

* Corrected missing free()

* Formatting correction

* New DrawSphereEx() algorithm
2024-06-30 11:09:21 +02:00
github-actions[bot]
d8214c916e Update raylib_api.* by CI 2024-06-30 09:07:57 +00:00
Ray
17cbc75aa7 REVIEWED: Formatting, follow raylib coding conventions 2024-06-30 11:07:38 +02:00
github-actions[bot]
a805f46f55 Update raylib_api.* by CI 2024-06-30 08:33:45 +00:00
Bruno Cabral
6e2661f92d [rtextures] Created ImageFromChannel() (#4105)
* created ImageFromChannel

Adds the possibility to extract a specific channel from an image

* naming convention

* example window height

* removed threshold

* removed alpha channel

* channel example organization

* updated channel example image
2024-06-30 10:33:32 +02:00
VitoTringolo
5b8efd68ba [rmodels] Return true if no need to interpolate to avoid log flooding (#4118) 2024-06-30 09:50:12 +02:00
Jeffery Myers
c1ea32655a [EXAMPLES] Default Skybox example to not use HDR (#4115)
* Update raylib_api.* by CI

* Default to not use HDR, and note that HDR support requires that raylib be built with HDR enabled.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-28 19:08:55 +02:00
SuperUserNameMan
a3ef381b3e rmodels.c, LoadImageFromCgltfImage() : fix base64 padding support (#4112)
* rmodels.c, LoadImageFromCgltfImage() : fix base64 padding support

This should fix the issue related to `.gltf` embeded image in base64 format, by ignoring `=` padding and calculating the data size in bytes correctly.

* follow guidelin convention

* try to follow guideline convention as much as possible

* clarify comments

i hope it's clear ennough
2024-06-28 09:56:27 +02:00
Colleague Riley
84971d81f3 Update RGFW and replace long switch in rcore_desktop_rgfw.c with a lookup table (#4108)
* Fix Makefile issues (RGFW) (linux) (macOS)

* Do not use nanosleep on windows at all (PLATFORM_DESKTOP_RGFW)

* remove #define RGFWDEF and make the #undefs only happen for their OS

* Update RGFW.h

* fix to match the RGFW updates

* remove line that shows the cursor for no reason

* Update RGFW, replace long switch with an array, update rgfw platform for RGFW

* update RGFW (fix reported glitch with drag and drop files) (linux)

* remove u16
2024-06-28 09:55:14 +02:00
VitoTringolo
05d76c74a6 Fix GLTF animations (#4107)
Co-authored-by: Vito Tringolo <vito.tringolo@recognitionrobotics.com>
2024-06-28 09:53:29 +02:00
InKryption
5e91444e3e [build.zig] pass the real build.zig file (#4113)
`@This()` was naively passed to `dependencyFromBuildZig` while inside
a file that is not actually the build file, causing a panic when
actually used. Passing `@import("../build.zig")` fixes this.
2024-06-27 22:25:15 +02:00
InKryption
57b5f11e2a [build.zig] Leverage dependencyFromBuildZig (#4109) 2024-06-27 11:52:36 +02:00
jspast
37205bba84 [web] Fix undesired scrollbars on shell files (#4104) 2024-06-25 22:15:29 +02:00
Ray
0979eafa84 WARNING: REMOVED: Default font fallback 2024-06-25 21:40:41 +02:00
Ray
4239e66c55 Update rshapes.c 2024-06-25 21:39:43 +02:00
Peter0x44
dfabbd8ba8 [rtext] Don't return default font if LoadFontEx fails (#4077)
It is currently impossible to check a font loaded successfully with
IsFontReady because LoadFontEx will always return a valid font.

DrawTextEx has this check:
if (font.texture.id == 0) font = GetFontDefault();  // Security check in case of not valid font

So anyone relying on the default font as a fallback for fonts failing to
load should still be covered.
2024-06-25 21:38:55 +02:00
Ray
3e441ae98b REVIEWED: DrawLine() #4075 2024-06-25 16:37:20 +02:00
github-actions[bot]
ec95ee85a3 Update raylib_api.* by CI 2024-06-24 16:42:01 +00:00
Ray
385e60dd41 Minor tweaks 2024-06-24 18:41:33 +02:00
Jeffery Myers
e96bab7ce6 [Build] Fix warnings when building in VS 2022 (#4095)
* Update raylib_api.* by CI

* Fix warnings when building examples in MSVC 2022

* fix auto-format that sneaked in there.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-24 17:47:32 +02:00
Peter0x44
4311db5ba5 [rmodels] Fix -Wstringop-truncation warning (#4096)
rmodels.c: In function ‘LoadBoneInfoGLTF.isra’:
rmodels.c:4874:32: warning: ‘strncpy’ specified bound 32 equals destination size [-Wstringop-truncation]
 4874 |         if (node.name != NULL) strncpy(bones[i].name, node.name, sizeof(bones[i].name));
      |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2024-06-24 09:29:10 +02:00
github-actions[bot]
f947f89061 Update raylib_api.* by CI 2024-06-24 07:28:17 +00:00
Le Juez Victor
c2df169847 [rtextures] Adding ImageDrawLineEx function (#4097)
* adding `ImageDrawLineEx` function
also review other functions for drawing lines in images

* fix `ImageDrawLineV`
2024-06-24 09:27:59 +02:00
github-actions[bot]
c7bda3d10f Update raylib_api.* by CI 2024-06-23 20:51:38 +00:00
Le Juez Victor
7e50270d49 [rtextures] Adding triangle drawing function for images (#4094)
* adding triangle drawing function for images

* remove unnecessary check

* fix an iteration mistake
2024-06-23 22:51:24 +02:00
SuperUserNameMan
7773254022 LoadIQM() set model.meshMaterial[] (#4092) 2024-06-23 21:14:03 +02:00
Paul Melis
d582becbc2 [rmodels] Initial work to correctly handle the node hierarchy in a glTF file (#4037)
* Initial work to correctly handle the node hierarchy in a glTF file.
Static meshes seem to work fine in my tests. Haven't tried anything
animated yet, but it's almost certainly broken.

* Fix variable naming, some comment tweaks

* Only count primitives made up of triangles in glTF meshes

* Update processing of gltf mesh animation data, to match earlier
changes to vertex/normal/tangent data
2024-06-22 19:42:11 +02:00
manuel5975p
5ba18575de [build] CMake: pass -sFULL_ES3 instead of -sFULL_ES3=1 (#4090)
* Allow ES3 in LibraryConfigurations.cmake

* Put FULL_ES3 as linker option

* Remove =1
2024-06-22 19:20:33 +02:00
Alice Nyaa
b0d49579c1 fixed LoadCodepoints returning a freed ptr when count is 0 (#4089) 2024-06-22 19:17:31 +02:00
Peter0x44
28f88fd984 Fix mistakes in example usages in raylib_parser help text (#4084) 2024-06-22 19:16:36 +02:00
Anthony Carbajal
0d59235ade add warning log multiple of 4 (#4080) 2024-06-22 19:15:21 +02:00
manuel5975p
e7acdd12d8 [build] CMake: support OpenGL ES3 in LibraryConfigurations.cmake (#4079)
* Allow ES3 in LibraryConfigurations.cmake

* Put FULL_ES3 as linker option
2024-06-21 09:07:01 +02:00
Anthony Carbajal
52f2a10db6 fixed issue with GetScreenWidth/GetScreenHeight (#4074) 2024-06-17 13:42:53 +02:00
Ray
dcf2f6a8e9 Added note about performace #4067 2024-06-16 11:17:34 +02:00
Lázaro Albuquerque
307c998495 [build] Making config.h fully available to CMake users (#4044)
* Create ParseConfigHeader.cmake

This script parses the config.h file to automate the process of exposing the configuration flags and configuration values found in the latter.

* Update CompileDefinitions.cmake

Makes use of the new functionality found in ParseConfigHeader.cmake to make things consistent.

* Update CMakeOptions.txt

Makes use of the new functionality found in ParseConfigHeader.cmake to make things consistent.

* Update CMakeLists.txt

Changes required to make possible building raylib for web on Windows 10.

* Update LibraryConfigurations.cmake

Removes a warning that linker-only flags were being passed to the compiler, which is in accordance to https://emscripten.org/docs/tools_reference/settings_reference.html.

* Update CMakeOptions.txt

Removed clutter.

* Update CompileDefinitions.cmake

Removed clutter.

* Update CompileDefinitions.cmake

Some applications might check for PLATFORM_WEB instead of __EMSCRIPTEN__.

* Update CompileDefinitions.cmake

Reverting

* Update CMakeLists.txt

USE_AUDIO is redundant in the presence of the already existent and more descriptive SUPPORT_MODULE_RAUDIO.

* Update CompileDefinitions.cmake

USE_AUDIO is redundant in the presence of the already existent and more descriptive SUPPORT_MODULE_RAUDIO.

* Update ParseConfigHeader.cmake

* Revert "Update CMakeLists.txt"

This reverts commit 1785fc06b5.

* Revert "Update CompileDefinitions.cmake"

This reverts commit 62f9a3a0ea.

* Revert "Update CMakeLists.txt"

This reverts commit 3e7912144e.

* Revert "Update LibraryConfigurations.cmake"

This reverts commit bcc4310c49.
2024-06-16 10:49:59 +02:00
kai-z99
a29d334734 [rmodels] Read uninitialized values in GenMeshTangents() - fix bounding case (#4066)
* fix

* assert
2024-06-16 10:44:31 +02:00
Lázaro Albuquerque
cc40a91343 [build] Fix some warnings on web builds and remove some redundant flags. (#4069)
* update

* Revert "update"

This reverts commit e8adcabd94.

* update

* remove a not stricly required flag
2024-06-16 10:42:50 +02:00
Ray
04735fa9bb Merge branch 'master' of https://github.com/raysan5/raylib 2024-06-16 10:42:02 +02:00
Ray
715633e0de REVIEWED: Spline cubic bezier example 2024-06-16 10:41:47 +02:00
github-actions[bot]
32c98717b1 Update raylib_api.* by CI 2024-06-16 08:23:57 +00:00
Ray
4119b6dd66 Update raylib.h 2024-06-16 10:23:38 +02:00
Santiago Pelufo
640eaca8bf [rshapes] Fix multisegment Bezier splines. (#3744)
* [rshapes] Fix multisegment Bezier splines.

It seems to me that these functions are wrong, if you step the index by 1 you move to a control point instead of the next segment.

* Fix example shapes/shapes_splines_drawing for bezier splines.

* Draw circles to fill gaps between bezier segments.
2024-06-16 10:21:54 +02:00
Mike Will
81ff879b04 zig: run examples from their directories (#4063)
So that they can find their respective resource folders.
2024-06-16 09:38:54 +02:00
Viktor Pocedulić
eff7b065eb [build.zig] Fix raygui build when using addRaygui externally (#4027)
When addRaygui is used from an external build, for example in a
bindings project, the build of a generated `raygui.c` fails with
"raylib.h not found" error from the compiler.

I've traced this down to a raylib step not adding its `src/` to the
shared list of include paths using `addIncludePath` but relying on
`addCSourceFiles` `.root` to provide the implicit include path for
raylib proper's own files.

If raygui is later added to the step the compiler won't know where
to look for `raylib.h` and friends and will fail to build.

This change simply adds raylib's `src/` to the include path list.
2024-06-16 09:37:45 +02:00
ShalokShalom
b4fbdc0283 Update Julia Bindings (#4068) 2024-06-14 22:46:50 +02:00
kai-z99
fca53c7799 optimize (#4065) 2024-06-14 08:19:17 +02:00
listeria
df849d2fb0 [raudio] fix mapping of wave data in LoadWaveSamples() (#4062)
Co-authored-by: Listeria monocytogenes <listeria@disroot.org>
2024-06-13 16:05:22 +02:00
TokyoSU
735c0160b5 Update rlgl.h (#4059)
- The function rlGetMatrixProjectionStereo and rlGetMatrixViewOffsetStereo have RLAPI for the function declaration and cause error when compiling using RLGL_IMPLEMENTATION.
2024-06-12 19:36:25 +02:00
Alexey Kutepov
33c598123c [raudio] Add 24 bits samples support for FLAC format (#4058)
Similarly to how it's done for WAV format, by forcing the conversion
to s16 on UpdateMusicStream().
2024-06-12 11:42:41 +02:00
Karl Zylinski
fffae1a975 Fix fragPosition using wrong matrix in lighting_instancing.vs (#4056)
fragPosition was multiplied by mvp*instanceTransform, but it should only be multiplied by instanceTransform. Compare to lighting.vs, there we only use mvp for gl_Position, but matModel for the fragPosition.
2024-06-11 20:55:13 +02:00
Jeffery Myers
2609211207 [SHAPES] Make functions that draw point arrays take them as const (#4051)
* Update raylib_api.* by CI

* make functions that take a pointer to an array take them as const pointers

* Update raylib_api.* by CI

* fix comment alignment.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-11 11:51:49 +02:00
VitoTringolo
0fc4b61906 LoadBoneInfoGLTF add check for animation name being NULL (#4053)
Co-authored-by: Vito Tringolo <vito.tringolo@recognitionrobotics.com>
2024-06-11 11:50:42 +02:00
Lázaro Albuquerque
c636618d77 Update Makefile (#4054)
Since the flag CUSTOM_CFLAGS should allow users customize things, in particular the optimization level, I figured it should come after other default ones.

Based on: "If you use multiple -O options, with or without level numbers, the last such option is the one that is effective."

Source: https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
2024-06-10 20:50:09 +02:00
MrScautHD
29ac31f409 Removed Raylib.NET (#4050) 2024-06-09 18:03:05 +02:00
carverdamien
a0a81fddee Make addRaylib use options.opengl_version (#4049) 2024-06-09 13:29:09 +02:00
Ray
8cbde7f84c tweaks 2024-06-09 13:16:29 +02:00
Ray
6b3c1148bf REVIEWED: Animation name being NULL #4037 2024-06-09 13:16:18 +02:00
Colleague Riley
8c712f82d1 Update RGFW (#4048)
* Fix Makefile issues (RGFW) (linux) (macOS)

* Do not use nanosleep on windows at all (PLATFORM_DESKTOP_RGFW)

* remove #define RGFWDEF and make the #undefs only happen for their OS

* Update RGFW.h

* fix to match the RGFW updates

* remove line that shows the cursor for no reason
2024-06-08 22:26:46 +02:00
fruzitent
7b92b5bde7 fix: infer CMAKE_MODULE_PATH in super-build (#4042) 2024-06-07 10:22:24 +02:00
Konrad Gutvik Grande
3948656d84 The example always showed a xbox controller, never a ps3 controller (#4040) 2024-06-07 10:21:02 +02:00
jgabaut
f05316b11d [rlgl] Rename near, far variables (#4039) 2024-06-06 15:29:15 +02:00
Sprix
e74d13e6db Fix examples not building with gestures system disabled (#4020)
Build no longer fails with -DSUPPORT_GESTURES_SYSTEM=OFF and -DBUILD_EXAMPLES=ON
2024-06-06 11:47:07 +02:00
Ray
38018192b8 RENAME: near, far vaiables 2024-06-06 10:12:23 +02:00
Ray
5767c4cd05 Update rcore_desktop.c 2024-06-04 23:00:12 +02:00
Paul Melis
e1379afb01 Fix #4024, cylinder drawing was incorrect due to imprecise angle (#4034)
* Fix #4024, cylinder drawing was incorrect due to imprecise angle
stepping (mostly noticeable with semi-transparent cylinders)

* Fix var name and spacing
2024-06-04 11:46:57 +02:00
IoIxD
39f12859dc rtext: added functions for camel case and snake case (reopened due to formatting errors) (#4033)
* rtext: added functions for camel case and snake case

* Update raylib_api.* by CI

* rtext: removed always false comparison

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-03 20:13:28 +02:00
Jett
06f8c4f733 LoadIQM: attempt to load texture from IQM at loadtime. (#4029)
tries to load the texture with the base path of the original IQM file, relative paths should work.
2024-06-03 09:03:33 +02:00
MrScautHD
0cad25f798 Update Raylib-CSharp to 5.1-dev. (#4030)
* Update BINDINGS.md

* Update BINDINGS.md

* Update BINDINGS.md
2024-06-03 08:52:51 +02:00
David Holland
11202bf299 [rmodels] Send full matModel to shader in DrawMesh (#4005) (#4022) 2024-06-02 11:52:00 +02:00
Jett
2998f8671b LoadModelAnimationsIQM: fix corrupted animation names (#4026)
Correctly copies animation names from IQM animation to raylib animation.
2024-06-02 11:51:25 +02:00
github-actions[bot]
1344979c70 Update raylib_api.* by CI 2024-05-30 06:24:58 +00:00
kai-z99
606cc1d897 [rshapes]Circle line collision function (#4018)
* inital function

* working 1

* optimize

* optimized dot product

* simplify

* cleanup

* cleanup

* cleanup

* comment

* var name change

* epsilon
2024-05-30 08:24:44 +02:00
vaezim
d7a8af144d Fix typos in markdowns and comments, Fix invalid links in HISTORY.md (#4017) 2024-05-30 08:22:07 +02:00
Le Juez Victor
f2344cd089 review color tint functions (#4015) 2024-05-29 23:44:20 +02:00
Ray
c04629f6d4 Update raylib.h 2024-05-29 17:38:19 +02:00
Ray
e37d19ab1e REVIEWED: ExportFontAsCode(), avoid const #4013 2024-05-29 17:28:55 +02:00
DarkAssassin23
2804e75869 [rtext] Added cast to ExportFontAsCode output to fix C++ compiler errors (#4013) 2024-05-29 17:22:59 +02:00
Dylan
2e38069475 [build.zig] Fix Zig emscripten build (#4012)
* Fix for issue #4010

Split the code for Zig's master branch and >= 0.12.0 due to changes in https://github.com/ziglang/zig/pull/19623

* Restore the cache_include path which was removed in error

Accidently removed a couple lines I didn't mean to 🙈
2024-05-29 17:07:28 +02:00
github-actions[bot]
a942a3bc70 Update raylib_api.* by CI 2024-05-29 15:02:00 +00:00
Ray
c335c3c52c ADDED: IsFileNameValid() 2024-05-29 17:01:42 +02:00
Le Juez Victor
797de0f9ad [rmodels] Multiplication of colors in DrawModelEx which can be simplified (#4002)
* simplifies color multiplication `DrawModelEx`

* add explicit casts
2024-05-29 13:16:19 +02:00
avx0
9cc7e3528f [parser] MemoryCopy() calls: Prevent buffer overflow by replacing hard-coded arguments (#4011)
In future, if a dev edits the second arg and miscalulates the corresponding 3rd arg, there will be a buffer overflow or the string (2nd arg) will be cut short. This commit prevents that.
2024-05-29 11:30:28 +02:00
Lionel Briand
785ec74b92 Update BINDINGS.md (#4004)
Add L-Briand/raylib-zig-bindings to the Language Bindings table
2024-05-24 18:26:17 +02:00
listeria
b429dbdc4b fix WaveCrop(): update wave->frameCount (#4003)
also allow `finalFrame = wave->frameCount' as the range of frames does
not include it.

Co-authored-by: Listeria monocytogenes <listeria@disroot.org>
2024-05-24 18:24:40 +02:00
Antonis Geralis
d9c5066382 nim bindings are in 5.1-dev, remove umaintained repos (#3999)
* nim bindings are in 5.1-dev, remove umaintained repos

* Update BINDINGS.md

* move to umaintained

* Update BINDINGS.md

* github editor is pranking me
2024-05-21 21:51:19 +02:00
Ray
b212750b85 Update rcore_desktop_sdl.c 2024-05-21 20:53:51 +02:00
Ray
3abb6d9eaf REVIEWED: ColorToInt() PR 2024-05-21 20:52:48 +02:00
JupiterRider
c7f098f4d2 Call SDL_GL_SetSwapInterval() after GL context creation (#3997) 2024-05-21 20:48:48 +02:00
OetkenPurveyorOfCode
9ef29aff9a [rtextures] Fix Undefined behaviour in ColorToInt (#3996) 2024-05-21 15:44:02 +02:00
Salvador Galindo
c4a51a3ebd fixed out of bounds error in GenMeshTangents (#3990) 2024-05-21 13:47:26 +02:00
Ray
b2f4f4d8fd Update BINDINGS.md 2024-05-21 13:10:38 +02:00
Carmine Pietroluongo
fc9634a4de Update BINDINGS.md (#3995) 2024-05-21 13:07:31 +02:00
IoIxD
74d7e78b70 BINDINGS.md: raylib-rs now at 5.0 (#3991) 2024-05-21 12:53:05 +02:00
github-actions[bot]
272a142ee5 Update raylib_api.* by CI 2024-05-21 06:14:05 +00:00
listeria
bb9bd73f43 fix WaveCrop() and use frames instead of samples (#3994)
Co-authored-by: Listeria monocytogenes <listeria@disroot.org>
2024-05-21 08:13:46 +02:00
Ray
9d67f4734b REVIEWED: LoadBMFont(), issue on not glyph data initialized 2024-05-18 07:41:37 +02:00
Ray
00ac9b6c53 Update config.h 2024-05-18 07:40:59 +02:00
FishingHacks
3d70d6179c [raudio] Removed drwav_uninit in LoadMusicStream to fix a crash (#3986) 2024-05-16 19:47:39 +02:00
Cemal Gönültaş
1d52985943 [rcore_web] Relative mouse mode issues. (#3940)
* [rcore_web] Relative mouse mode issues.

* Review formatting.
2024-05-16 12:01:27 +02:00
Jeffery Myers
f26bfa0c8e [RAYMATH] Revert Extern 'C' in raymath (#3985)
* Update raylib_api.* by CI

* Remove Extern C for raymath, it breaks some cases in mingw-w64 and does not fix any warning issues.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-16 07:42:52 +02:00
CosmicBagel
d6b22b17ae LazyPath.path has been deprecated, using b.path() (#3983)
This works in zig 0.12, LazyPath.path has been removed in zig 0.13

Co-authored-by: CosmicBagel <>
2024-05-15 23:20:34 +02:00
Ray
02d98a3e44 REVIEWED: 2d camera zoom, add alternative method #3977 2024-05-15 16:33:06 +02:00
Ray
479bd84400 Update shaders_palette_switch.c 2024-05-15 16:19:53 +02:00
Mike Will
46f9806359 Use logarithmic scaling for a 2d example with zoom functionality (#3977) 2024-05-15 16:19:22 +02:00
Peter0x44
bf5eecc71f [parser] Don't crash for files that don't end in newlines (#3981)
The parser assumes all lines end in newlines, but sometimes this isn't
true. Check for a null terminator along with '\n' when stripping leading
spaces.
2024-05-15 16:16:45 +02:00
Jeffery Myers
3d885ef919 [raymath] Add extern "C" to raymath header for C++ (#3978)
* Update raylib_api.* by CI

* Add an extern C to raymath to prevent warnings in C++

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-13 00:36:23 +02:00
Filyus
3f13f7921d Fix parsing of empty parentheses (#3974)
Co-authored-by: Filyus <fahmedyanov@dpg.email>
2024-05-13 00:33:09 +02:00
Alexei Mozaidze
f4b5622ba3 feat(zig): add opengl_version option (#3979)
Added `opengl_version` option to `src/build.zig`.
2024-05-13 00:27:02 +02:00
Ray
7a1cad3e61 Reviewed input params #3974 2024-05-12 13:31:38 +02:00
Colleague Riley
f62202198e remove #define RGFWDEF and make the #undefs only happen for their OS (RGFW) (#3971)
* Fix Makefile issues (RGFW) (linux) (macOS)

* Do not use nanosleep on windows at all (PLATFORM_DESKTOP_RGFW)

* remove #define RGFWDEF and make the #undefs only happen for their OS
2024-05-10 21:09:22 +02:00
Colleague Riley
8a5fd3ac1d Do not use "nanosleep" on windows at all (PLATFORM_DESKTOP_RGFW) (#3970)
* Fix Makefile issues (RGFW) (linux) (macOS)

* Do not use nanosleep on windows at all (PLATFORM_DESKTOP_RGFW)

---------

Co-authored-by: ColleagueRiley <ColleagueRiley@gmail.com>
2024-05-09 16:35:26 +02:00
Colleague Riley
6ec925554c Fix Makefile issues (RGFW) (linux) (macOS) (#3969)
Co-authored-by: ColleagueRiley <ColleagueRiley@gmail.com>
2024-05-09 14:18:18 +02:00
veins1
1aa3559155 Fixes for loading Music (#3966)
* Fixes for loading Music

Fix for #3889
Fixes for QOA crashes.
Memory leak FIX on unsuccessful .wav loading.

* Added comments
2024-05-07 20:44:41 +02:00
Ray
08ae888722 Update Makefile 2024-05-07 20:40:41 +02:00
Colleague Riley
9805fe0b1a make RGFW a custom platform (#3941)
* fix minor bugs and errors (x86) for the RGFW platform, update RGFW platform license, update makefile info for RGFW platform

* revert

* (RGFW) (winapi) fix mouse hide bug when cursor changes

* ensure PLATFORM_SHELL is defined (PLATFORM_RGFW)

---------

Co-authored-by: ColleagueRiley <ColleagueRiley@gmail.com>
2024-05-07 20:30:52 +02:00
gabriel-marques
fa2b1c8f09 Implementing GetMonitorWidth/Height for DRM (#3956)
* Implementing GetMonitorWidth/Height and GetMonitorPhysicalWidth/Height for drm

Added implementation for DRM for functions :
 - GetMonitorWidth()
 - GetMonitorHeight()
 - GetMonitorPhysicalWidth()
 - GetMonitorPhysicalHeight()
 - GetMonnitorName()

These functions take an argument but only the value 0 is accepted. This is because the DRM platform implementation manages only one screen for now

* Refactor "GetMonitor" properties for DRM Platform

Refactored GetMonitorHeight, GetMonitorWidth, GetMonitorPhysicalHeight,
GetMonitorPhysicalWidth and GetMonitorName to accept only argument "0"
as more than one screen is not supported in DRM platform.
2024-05-07 10:33:56 +02:00
MrScautHD
f69ae58304 Update BINDINGS.md (#3963) 2024-05-06 12:50:05 +02:00
Christian Haas
3d9aafed3b [rcore_desktop] Fix 3693 initial window geometry (#3950)
* Rework window placement and dimensions for multi-monitor setups;

- fullscreen apps use primary monitor, exclusively
- non-fullscreen apps come in two variants:
a) pre-determined window size by user
b) use-active-monitor dimensions by user specifying 0x0
Either way, the window shall be centred at the monitor where it was created

This may have been the original intent, yet the primary monitor was used also for the second case, regardless where the window opened.

* Clean up code, handle error, fix integer-overflow for centering windowed fullscreen
2024-05-05 20:22:58 +02:00
bohonghuang
23385231c6 [rlgl] Fix incorrect matrix multiplication order in rlMultMatrixf (#3935) 2024-05-05 20:19:25 +02:00
Ray
34d00d5217 Minor formatting tweaks 2024-05-05 19:46:31 +02:00
Ray
f1007554a0 Set default init values for random #3954 2024-05-01 22:58:33 +02:00
Ray
33b32ca53a Default shader attrib locations need to be exposed
They need to be exposed on `rlgl.h` header section (not implementation section) because with some specific use cases (custom config.h, rmodels module enabled), building fails otherwise.
2024-05-01 18:41:28 +02:00
Ray
c21edadab0 Update rprand.h 2024-05-01 18:39:38 +02:00
Ray
763129e96b Reviewed some warnings 2024-05-01 18:12:57 +02:00
github-actions[bot]
27a015d022 Update raylib_api.* by CI 2024-04-30 21:47:28 +00:00
UmgefallenesGlas
7246d798ad Changed one minor Comment (#3949) 2024-04-30 23:47:11 +02:00
Ray
b03c8ba945 WARNING: BREAKING: REDESIGN: SetTextLineSpacing()
Redesigned function to only consider separation between the end of vertical size of one line and the beginning of next line
2024-04-28 23:07:21 +02:00
Ray
e0027eb767 REVIEWED: DrawLine() to avoid pixel rounding issues #3931 2024-04-28 22:59:35 +02:00
github-actions[bot]
915dd95d88 Update raylib_api.* by CI 2024-04-28 20:39:44 +00:00
Tomas Fabrizio Orsi
80d318461f Made comments on raylib.h match those present in rcamera.h (#3942)
Signed-off-by: Tomas Fabrizio Orsi <torsi@fi.uba.ar>
2024-04-28 22:39:28 +02:00
OetkenPurveyorOfCode
f78721991f Use builtin_clz for clang on windows (#3939) 2024-04-28 20:29:45 +02:00
Tomas Fabrizio Orsi
10e702facd FIX: Added CAMERA_CUSTOM check in UpdateCamera(Camera *camera, int mode) (#3938)
Signed-off-by: Tomas Fabrizio Orsi <torsi@fi.uba.ar>
2024-04-28 20:28:19 +02:00
Ray
e47ebec661 FIX: Issue with texcoords loading for glTF 2024-04-24 17:02:03 +02:00
Ray
2e77443209 WARNING: Fix breaking issue (introduced some days ago) 2024-04-23 22:55:51 +02:00
Ray
f15455552d Review formatting 2024-04-23 19:38:45 +02:00
KotzaBoss
4b0e25d3af Add rlCullDistance variables/getters and rlSetClipPlanes function (#3912)
The `RL_CULL_DISTANCE_` definition remains as the initial value
of the variables.

Basic usage can be:
```c
#include <raylib.h>
#include <rlgl.h>

rlSetClipPlanes(RL_CULL_DISTANCE_NEAR, MY_CULL_DISTANCE_FAR);

if (must_reset_clip_planes)
    rlSetClipPlanes(RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR);
```
2024-04-23 14:24:37 +02:00
bohonghuang
d80febde7d [rlgl] Implement vertex normals for RLGL immediate drawing mode (#3866)
* Fix several non-functional `target_compile_definitions`

* Avoid hardcoding the default vertex attribute locations

* Implement functional `rlNormal3f`

* Add normal definitions for `DrawCube`

* Update the basic lighting example to use `DrawCube` and `DrawPlane`
2024-04-23 14:22:29 +02:00
freakmangd
e0f6faa151 [build.zig] Drop support for 0.11.0 and use more idiomatic build script code (#3927)
* Remove support for 0.11.0, and make build script more idiomatic
+ remove all 0.11.0 compatibility functions
+ remove most LazyPath .path variants
  + I didn't touch emscripten, I don't know if its relative or absolute
+ change all absolute paths to use .cwd_relative
+ only use the builder allocator
+ have local dependencies use the package manager
+ make adding raygui more flexible
+ use zig-cache for generated wayland files

* Remove support for 0.11.0 in examples/build.zig

* update examples further and add clarifying comment on addRaygui
2024-04-22 09:13:01 +02:00
Ray
3caa424ad4 Review formatting 2024-04-21 12:29:09 +02:00
Ray
cf47fbb20b REVIEWED: LoadImageRaw() #3926 2024-04-20 23:58:22 +02:00
Ray
8f24d86c1f REVIEWED: LoadImageRaw() #3926 2024-04-20 23:44:07 +02:00
Ray
f795941521 REVIEWED: rlSetVertexAttribute(), define last parameter as offset #3800 2024-04-20 23:37:31 +02:00
Ray
5cfcf13d4b REVIEWED: LoadGLTF(), support 2nd texture coordinates loading 2024-04-20 23:23:30 +02:00
Ray
e543b78bb7 REVIEWED: LoadGLTF(), support additional vertex attributes data formats #3890 2024-04-20 22:01:59 +02:00
Ray
6435ef43f5 REVIEWED: LoadGLTF(), JOINTS loading #3836
Support all JOINT formats supported by glTF specs
2024-04-20 21:22:49 +02:00
Ray
f6d85e5df7 Update project 2024-04-20 21:21:31 +02:00
Ray
77cabc8bf2 Update shapes_draw_rectangle_rounded.c 2024-04-20 20:32:37 +02:00
Ray
e85f245ad4 REVIEWED: Remove final punctuation in code comments 2024-04-20 20:31:06 +02:00
Ray
c1943f0f7c REVIEWED: Move some functions, made them static 2024-04-20 20:30:35 +02:00
Christian Haas
d80a622972 [raudio] Fix 3664: crash in raudio from multithreading issues (#3907)
* Flip release of buffer;

First it needs to be taken out of the processing chain, then it can be released. The inverse of the initialization.

* Add mutex locks to audio buffer functions; Separate those used from both threads

* Flip release of buffer;

First it needs to be taken out of the processing chain, then it can be released. The inverse of the initialization.

* Remove TODO marker; The buffer is in stopped state and its data won't be accessed

* Add mutex locks to music/stream functions directly operating on buffer

* Secure UpdateMusicStream/PlayMusicStream/UpdateAudioStream;

This change is twofold:
* Add locks to UpdateMusicStream/UpdateAudioStream (second one needed separation)
* Remove unnecessary hack to restart music - inlining the statements resulted in a no-op

Especially the second part made it easier to ensure thread-safety overall

* Remove redundant check; Already checked at beginning of function
2024-04-20 20:15:09 +02:00
Ray
d95d4d4ad5 Merge branch 'master' of https://github.com/raysan5/raylib 2024-04-20 19:59:41 +02:00
Ray
68201c10c2 Update models_cubicmap.c 2024-04-20 19:58:14 +02:00
Ray
41b0c5c4f9 REVIEWED: DrawRectangleLines() pixel offset
This could be actually very tricky and GPU/drivers dependant...
2024-04-20 19:58:10 +02:00
github-actions[bot]
349ff16600 Update raylib_api.* by CI 2024-04-20 17:54:14 +00:00
Ray
b51f4db8c2 REVIEWED: DrawRectangleLines() #3884
For consistency, now _almost_ all `Draw*Lines()` functions use `RL_LINES` mode for drawing. It solves the linked issue but it can have other implications, as mentioned in the WARNING comment in `DrawRectangleLines()`.

Side note: `DrawRectangleRoundedLines()` now should be reviewed for consistency.
2024-04-20 19:53:59 +02:00
Ray
29ce13b777 Code gardening
- Review formatting
 - Improve readability for some functions result return
 - Minimize early returns
 - Align LoadFileData() to UnloadFileData()
2024-04-20 13:53:13 +02:00
Ray
2754c80596 Added security checks #3924 2024-04-20 13:50:34 +02:00
Ray
a17a81f05b Review code formating 2024-04-19 21:13:52 +02:00
Ray
51486a0606 Update rtext.c 2024-04-19 21:13:36 +02:00
Ray
b88365fb01 Disable some font formats support 2024-04-19 21:13:28 +02:00
Rafael Bordoni
88f7762921 Fix window not initializing on primary monitor on GLFW backend (#3923)
The way the current code worked was by calling `GetCurrentMonitor()`,
which would always return the monitor at position (0,0). This isn't the
primary monitor on all platforms, on Linux in particular it isn't the
case.

This isn't the case on the SDL backend, after calling `InitWindow()` the
window would always show up on the primary monitor. Even on the GLFW
backend, if the full screen flag was set it would attempt to put it on
the primary monitor as it would call `glfwGetPrimaryMonitor()` to do it,
so for consistency's sake we should do it on windowed mode too.
2024-04-19 15:17:22 +02:00
Benji
b00e467494 Revert "Build specific example using -DBUILD_EXAMPLE cmake flag (#3921)" (#3922)
This reverts commit c1fd98591d.
2024-04-19 08:43:24 +02:00
Benji
c1fd98591d Build specific example using -DBUILD_EXAMPLE cmake flag (#3921) 2024-04-17 19:26:18 +02:00
Ray
112ce672e1 FIX: #3918 2024-04-17 19:12:47 +02:00
Ray
a6a08c75eb Update corrupted-header sounds #3554 2024-04-17 18:30:02 +02:00
Benji
4491ff0426 Replaced SQUAD quat interpolation with cubic hermite to align with gltf 2.0 spec (#3920) 2024-04-17 08:10:48 +02:00
Arthur
e42f9263b8 Fix GetKeyPressed for PLATFORM_DESKTOP_SDL (#3869)
The key handling in PLATFORM_DESKTOP_SDL was faulty in two ways, which
led to GetKeyPressed returning incorrect data.

CORE.Input.Keyboard.keyPressedQueue was updated only on SDL_TEXTINPUT,
meaning only text characters were registered as a pressed key, but not
function keys (eg. tab, backspace...). Also on such event, both
CORE.Input.Keyboard.keyPressedQueue and
CORE.Input.Keyboard.charPressedQueue were assigned the key's
corresponding codepoint, when CORE.Input.Keyboard.keyPressedQueue
should get the raylib keycode instead.

CORE.Input.Keyboard.keyPressedQueue is now updated on SDL_KEYDOWN event
instead.

Co-authored-by: Arthur <hi@thenightwat.ch>
2024-04-15 23:09:20 +02:00
Benji
4e37c8e370 Added missing interpolation types for GLTF animation channels (#3919) 2024-04-15 23:08:09 +02:00
veins1
289e7d3a6c Reset music.ctxType if loading wasn't succesful (#3917)
Fixes some crashes, e.g. calling StopMusicStream after trying to load Music from a non-existant .mp3 file
2024-04-14 00:15:50 +02:00
Dylan
583f81f458 Fix FileNotFound: .../src/raylib.h (#3915) 2024-04-13 23:35:23 +02:00
freakmangd
ba2a103011 [build.zig] Fix local dependency breakage (#3913)
* fix local dependency breakage

* revert accidental change in include path
2024-04-13 23:34:14 +02:00
Mute
214b1997a8 Changed RLGL_VERSION from "4.5" to "5.0 (#3914)
Line 110 of file rlgl.h is the one in question.
2024-04-13 23:33:21 +02:00
freakmangd
b3dfa2d8ab Update to latest zig and simplify build.zig (#3905)
* update to latest zig, and don't use srcdir

* preserve compatibility, simplify Child.run compatibility
2024-04-10 10:36:18 +02:00
Yousif
a4819f99cb Update shaders_hybrid_render.c (#3908)
Fix typo
2024-04-10 10:36:03 +02:00
Aria
a1f5e34d81 Update rcore_android.c (#3910)
add gamepad previous button state tracking to Android
2024-04-10 10:34:05 +02:00
Ray
04afba260f REVIEWED: Window positioning, avoid out-of-screen window-bar 2024-04-08 11:27:56 +02:00
Nikolas
892e57d46e Update raylib-zig version (#3902) 2024-04-07 23:03:39 +02:00
Belllg
3e658ef502 Update Makefile RAYLIB_VERSION (#3901)
Changed the raylib version from 4.2.0 to 5.1-dev, just like the raylib.h file
2024-04-07 14:48:32 +02:00
Ray
8bcf044983 Remove broken-link bindings #3899 2024-04-07 10:01:25 +02:00
Ray
aca9ab0ebb Update cgltf.h 2024-04-07 09:47:28 +02:00
jtainer
1b14c082ed Remove redundant axis length calculation (#3900) 2024-04-06 13:56:20 +02:00
iarkn
414229bcf9 Fix #3891 breaking builds for Zig v0.11.0 (#3896)
The changes brought by #3891 uses `std.process.Child.run` which was
renamed from `std.process.Child.exec` in Zig version 0.11.0. This commit
adds a version check to use the appropriate function names.

Additionally, the `linux_display_backend` configuration option is added
so users can set it when running `zig build` with the `-D` option or
when using raylib as a dependency.
2024-04-05 12:55:23 +02:00
Ray
890058abcd Update raylib.h 2024-04-04 13:18:28 +02:00
github-actions[bot]
1987c90c73 Update raylib_api.* by CI 2024-04-03 18:10:31 +00:00
Ray
d30cfea82d REVIEWED: GetScreenToWorldRayEx() 2024-04-03 20:10:15 +02:00
Rob Loach
9070eb9a13 Fix framerate recording for .gifs (#3894) 2024-04-03 12:10:52 +02:00
Ray
c9d71689ed Remove TABS 2024-04-02 09:40:19 +02:00
Ray
646d70e93a Remove trailing spaces 2024-04-02 09:38:06 +02:00
github-actions[bot]
1b047995d1 Update raylib_api.* by CI 2024-04-01 16:01:29 +00:00
Ray
fdf9ac66da Merge branch 'master' of https://github.com/raysan5/raylib 2024-04-01 18:01:02 +02:00
Ray
3b353da3ab Address parsing issue when generating XML #3893 2024-04-01 18:00:52 +02:00
Nikolas Mauropoulos
d374457040 Fixes zig build that was broken on #3863 (#3891)
* Fixes zig build that was broken on #3863

* Make this work with wayland
2024-03-30 19:36:30 +01:00
github-actions[bot]
7c75746b91 Update raylib_api.* by CI 2024-03-29 00:40:37 +00:00
MrMugame
eda239cc97 Fixing gamepad buttons not working in drm backend (#3888)
* Fixing gamepad buttons in drm backend

* Remove trailing spaces

* Axis enumeration now works properly
2024-03-29 01:40:20 +01:00
Ray
07128896af Update rcore_drm.c 2024-03-28 19:55:55 +01:00
MrMugame
30781c423b Organizing the drm backend to only use one api to allow for more devices (#3879)
* Updating rcore_drm.c to only use one api for input

* Change RPI log prefix to DRM

* Remove relative checking which is not supported currently

* Loop should continue on invalid event in drm backend

* Fixed and cleaned up PollKeyboardEvents() in drm backend
2024-03-28 13:14:21 +01:00
proberge-dev
b905dafca0 [rtextures] Fix LoadImageFromScreen scaling (#3881) 2024-03-26 08:47:25 +01:00
Ray
35252fceef Merge branch 'master' of https://github.com/raysan5/raylib 2024-03-21 15:43:08 +01:00
Ray
dcb9db5fe6 Update rcore.c 2024-03-21 15:43:00 +01:00
Kacper Zybała
9cf408f77c Remove redundant rlDisableVertexAttribute for SHADER_LOC_VERTEX_COLOR (#3871) 2024-03-18 18:37:09 +01:00
Ray
28c232d856 Update rcore_desktop.c 2024-03-18 09:13:34 +01:00
Jeffery Myers
9bb3d9977a Put GLFW in relative mouse mode when the cursor is disabled. (#3874) 2024-03-18 09:12:36 +01:00
Ray
d7ff0175c1 Fix #3876 and also rlgl review on #3783 2024-03-18 09:09:26 +01:00
Ray
8b0dd44316 Fix #3876 and also rlgl review on #3783 2024-03-18 09:08:51 +01:00
Alexandre Almeida
9a8d73e6c3 Fix GLFW runtime platform detection (#3863)
* Fix GLFW runtime platform detection

* Add libwayland-dev package to workflows

* Add libxkbcommon-dev package to workflows

* Add libwayland-bin package to codeql.yml

* Add libwayland-client0 and libwayland-cursor0 packages to codeql.yml

* Use libwayland-dev in codeql.yml

* Add libxkbcommon-dev to codeql.yml

* Remove libwayland-bin from linux.yml and linux_examples.yml (libwayland-dev includes it as a dependency)

---------

Co-authored-by: Ray <raysan5@gmail.com>
2024-03-14 16:54:39 +01:00
joyousblunder
42db6badd0 Update BINDINGS.md (#3868)
Odin's binding were bumped to 5.0 back in November 2023
2024-03-13 23:33:10 +01:00
Ray
17d631f508 Update codeql.yml 2024-03-12 22:51:16 +01:00
iP
1fad8277a3 optimisation of the "bone socket" tutorial (#3864)
Less matrix operations doing.
2024-03-10 21:49:04 +01:00
Peter0x44
f072497551 Implement IsCursorOnScreen for PLATFORM_DESKTOP_SDL (#3862)
I did some testing and this seems to work okay, but it *is* different to
GLFW. GLFW seems to lose "IsCursorOnScreen" for one frame upon pressing
alt+tab over the window, without a different window covering it. SDL
seems to have a more reasonable behavior for this case. Either way it's
an edge case and I don't know the exact way to fix, likely requires
internal GLFW changes.
2024-03-09 11:43:29 +01:00
Rob Loach
ba066656f7 [cmake] Disable SDL rlgl_standalone example (#3861)
* cmake: For SDL, disable rlgl_standalone

* cmake: Only build rlgl_standalone when on Desktop, and not shared libs
2024-03-08 12:33:40 +01:00
Ray
30604080ef Update rmodels.c 2024-03-07 12:33:45 +01:00
Ray
93a828f744 REVIEWED: GetMouseRay() functions rename #3830 2024-03-07 12:33:37 +01:00
github-actions[bot]
b1029a40b2 Update raylib_api.* by CI 2024-03-07 11:28:26 +00:00
aiafrasinei
3b7be85151 Screen space related functions consistency (#3830)
* Screen/world-space related functions rename

* Update raylib_api.* by CI

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-07 12:28:11 +01:00
Rob Loach
fccdfa7926 cmake: For SDL build, link the glfw dependency (#3860) 2024-03-07 12:11:46 +01:00
Ray
c1c9b69290 Implemented fix for #3859 2024-03-07 12:10:26 +01:00
Ray
1904873838 Merge branch 'master' of https://github.com/raysan5/raylib 2024-03-07 12:10:18 +01:00
Ray
68b553cfc1 Update raylib.h 2024-03-07 12:10:02 +01:00
Ray
c7b362d19d Update cmake.yml 2024-03-05 14:04:32 +01:00
Ray
38bdcafea1 Update cmake.yml 2024-03-05 14:02:57 +01:00
Ray
2114e48393 Update cmake.yml 2024-03-05 14:00:56 +01:00
Ray
36dabe485c Update cmake.yml 2024-03-05 13:59:36 +01:00
Ray
7584b6aa0b Update cmake.yml 2024-03-04 20:08:59 +01:00
Alexandre Almeida
85a46e42bd CMake: Remove USE_WAYLAND option (#3851)
* CMake: Remove USE_WAYLAND option

* Consistency fix

* Fix oversight
2024-03-04 19:59:26 +01:00
Ray
6e9dcdb599 Update linux_examples.yml 2024-03-04 19:59:04 +01:00
Ray
c970afeccd Update linux.yml 2024-03-04 19:58:49 +01:00
Caleb Barger
25caf14be8 Fix fix-build-paths (#3849) 2024-03-01 12:43:19 +01:00
Alexandre Almeida
dc1cec8bab Remove GLFW mouse passthrough hack and increase GLFW version in CMake (#3852) 2024-03-01 08:34:53 +01:00
Ray
449f7d3fa6 Merge branch 'master' of https://github.com/raysan5/raylib 2024-02-29 18:50:55 +01:00
Ray
fea3395fc1 Review formatting 2024-02-29 18:50:44 +01:00
github-actions[bot]
d3f2d94f23 Update raylib_api.* by CI 2024-02-29 17:40:30 +00:00
Ray
1e8450665c ADDED: New function ColorIsEqual() 2024-02-29 18:40:10 +01:00
mooff
94c79917e3 Fix SDL multitouch tracking (#3810)
The fingerId from SDL was used as an index into the CORE.Input.Touch
arrays, but it's an opaque / arbitrary int64, way bigger
than MAX_TOUCH_POINTS, so the first non-simulated touch event would segfault.
2024-02-29 18:30:38 +01:00
Alexandre Almeida
6589311a0b Update GLFW to 3.4 (#3827)
* Update GLFW to 3.4 (draft)

* Add _glfwConnectNull() function to rglfw.c

* Update rglfw.c

* Update Makefile

* Makefile: Replace USE_WAYLAND_DISPLAY with DISABLE_WAYLAND

* Revert "Makefile: Replace USE_WAYLAND_DISPLAY with DISABLE_WAYLAND"

This reverts commit 9e79abde78.

* GlfwImport.cmake: Replace GLFW_USE_WAYLAND with GLFW_BUILD_WAYLAND

* Update rglfw.c

* Output platform selected by GLFW to TRACELOG

* GLFW has removed Mir support
2024-02-29 18:29:32 +01:00
johann nadalutti
53221eb799 feat: vox_loader normals and new voxels shader (#3843) 2024-02-29 18:28:51 +01:00
Dalton Overmyer
077ab6d56b Add an example that generates a random sequence. (#3846) 2024-02-29 18:26:49 +01:00
Ray
ed9a6d862b Update rtextures.c 2024-02-28 16:27:55 +01:00
aiafrasinei
2aed94cfc2 Fix examples warnings for macos (#3842) 2024-02-27 22:15:09 +01:00
Laurentino Luna
f0807d2be1 Change sanitization check for ExportDataAsCode (#3837)
* Change sanitization check for `ExportDataAsCode`

I opted to use `isalnum` function since it should handle most cases. It
cannot however handle cases of files beginning with numbers.

* Update `ExportDataAsCode` condition

* Reinsert comment on `ExportDataAsCode`
2024-02-27 13:08:47 +01:00
Christian W. Zuckschwerdt
074fbb0264 Fix DRM cross-compile without sysroot (#3839) 2024-02-27 13:08:16 +01:00
Steve Biedermann
1fc4f4ac9c fix build paths (#3835) 2024-02-26 11:20:18 +01:00
Ray
7fae41b5c6 Update models_bone_socket.c 2024-02-26 11:03:12 +01:00
Ray
a6425fa1b9 Added note #3822 2024-02-26 11:03:09 +01:00
Ray
7d6e59170b Update rtextures.c 2024-02-26 10:49:04 +01:00
Ray
3086bf1668 Update models_bone_socket.c 2024-02-26 10:49:01 +01:00
Gary M
bd6c0bab44 add 16-bit unsigned short vec4 format for gltf joint loading (#3821) 2024-02-26 10:48:19 +01:00
Bowserinator
d919d457d3 Add Vector4 math functions & Vector2 variants of some Vector3 functions (#3828) 2024-02-26 10:41:21 +01:00
iP
2a263a09cc bone socket tutorial (#3833)
Tutorial on how to use bones as sockets to calculate the position of something.
2024-02-26 10:30:22 +01:00
Peter0x44
1df91e74b9 Fix building of raylib_opengl_interop on PLATFORM_DESKTOP_SDL (#3826)
I tested this with CMake. I don't know if the examples makefile
currently handles this case.
2024-02-26 10:29:21 +01:00
Gary M
53cfc7c965 assign format to cubemap (#3823) 2024-02-26 10:26:39 +01:00
Alex Macafee
6db5bb5ccd Update BINDINGS.md (#3829)
Raylib VAPI has been updated to support all features added by Raylib 5.0
2024-02-26 10:26:17 +01:00
Peter0x44
b86f78f6b1 Fix examples linking with CMake and -DPLATFORM=SDL (#3825)
Currently, every example fails linking likeso:

[  3%] Linking C executable audio_mixed_processor
/usr/bin/ld: ../raylib/libraylib.a(raudio.c.o): undefined reference to symbol 'exp@@GLIBC_2.29'
/usr/bin/ld: /usr/lib/libm.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

Apparently, linking libm explicitly is the solution.
2024-02-26 10:25:47 +01:00
4rk
c588a291e6 Add very little sanitization to indentifier names in ExportDataAsCode() (#3832) 2024-02-26 10:22:06 +01:00
github-actions[bot]
2a774a88f5 Update raylib_api.* by CI 2024-02-24 15:47:42 +00:00
GideonSerf
371d25c8c9 Gamepad rumble support with SDL2 (#3819)
* Added gamepad rumble to rcore_desktop.c and rcore_desktop_sdl.c
Still need to add to the rest of the platforms.

* Add SetGamepadVibration warnings to unimplemented platforms.

* Added MAX_GAMEPAD_VIBRATION_TIME
The rumble in SDL2 will continue for MAX_GAMEPAD_VIBRATION_TIME unless the user cancels it with a call to SetGamepadVibration(0.0f,0.0f,0.0f)

* Cast float duration value to Uint 32

* Changed defines from int to float and fixed typo

---------

Co-authored-by: Gideon Serfontein <gse@newspacesystems.com>
2024-02-24 16:47:27 +01:00
Abhishek Rathore
bda919033d Fixed typo in a comment (#3816) (#3817)
Fixed a grammatical error by removing "are" to change `... but some are have multiple purposes ...` to `... but some have multiple purposes ...` in `textures/textures_image_generation`
2024-02-23 19:17:33 +01:00
Ray
23616153d4 Update Makefile 2024-02-22 23:25:05 +01:00
Peter0x44
31c6a340ab Remove all uses of deps/mingw (#3805)
The purpose of this directory in GLFW is to provide some headers that
"mingw.org" doesn't. Raylib has long been unable to build with mingw.org
due to using certain symbols that aren't exposed in their headers.
(_ftelli64 and _access, among others.). Mingw-w64 already has the
necessary headers included, and doesn't need any of these external
implementations. For some reason, this also causes the following error
when building with Visual Studio's clang:

clang  -c rglfw.c -Wall -D_GNU_SOURCE -DPLATFORM_DESKTOP -DGRAPHICS_API_OPENGL_33 -Wno-missing-braces -Werror=pointer-arith -fno-strict-aliasing  -std=c99 -O1 -Werror=implicit-function-declaration -I. -Iexternal/glfw/include -Iexternal/glfw/deps/mingw
In file included from rglfw.c:61:
In file included from ./external/glfw/src/init.c:30:
In file included from ./external/glfw/src/internal.h:331:
In file included from ./external/glfw/src/platform.h:31:
In file included from ./external/glfw/src/win32_platform.h:70:
external/glfw/deps/mingw\xinput.h:227:26: error: a parameter list without types is only allowed in a function definition
  227 | void WINAPI XInputEnable(WINBOOL);
      |

If the last -Iexternal/glfw/deps/mingw is removed, the build works fine.

So, this workaround causes other problems, while not actually helping
raylib.

0bb605cd79/src/CMakeLists.txt (L272-L279)

GLFW's CMakeLists.txt first checks if either dinput.h or xinput.h are
provided by the toolchain, before telling the compiler to search for
headers in that directory. For EVERY compiler that can build raylib,
this is true.

In summary: This directory causes issues when building with some
compilers, and every toolchain that needs this workaround can't build
raylib anyway.
2024-02-22 23:06:22 +01:00
mooff
4f283a0789 Add CMake PLATFORM option for Desktop SDL (#3809) 2024-02-22 23:05:41 +01:00
Nikita Blizniuk
54e0af40c1 fixed loading GLTF animations with 1 frame (#3804) 2024-02-19 18:51:04 +01:00
Ray
77eeb0010e Updated workflows 2024-02-18 12:06:16 +01:00
Ray
e42e3188f5 Remove some unneeded line breaks 2024-02-18 11:59:40 +01:00
João Foscarini
c251e9309e Fix implicit conversion from float to double then back to float again (#3799) 2024-02-17 10:41:03 +01:00
Ray
dc7f81a7b0 Update workflows to use latest actions/upload-artifact 2024-02-13 16:15:18 +01:00
Ray
abe243d469 Update linux.yml 2024-02-13 16:13:46 +01:00
Ray
401c5a8638 Minor tweaks to avoid some CodeQL warnings 2024-02-13 15:58:02 +01:00
Ray
bb741f53a8 Update rtext.c 2024-02-13 10:43:24 +01:00
Mingjie Shen
6280771dad [rtext] Change strcpy to strncpy to fix buffer overflow (#3795) 2024-02-13 10:38:13 +01:00
Jeffery Myers
4cd71a9750 Fix warnings in raylib (#3793) 2024-02-10 20:02:05 +01:00
Ray
dd8b5613ca REVIEWED: DrawPixel() not drawing 2024-02-08 08:45:59 +01:00
Ray
8ba7c61625 Update README.md 2024-02-07 15:56:11 +01:00
Ray
e52ae870f2 Reverted Makefile GL_ENABLE_GET_PROC_ADDRESS #3713 2024-02-05 21:38:13 +01:00
Ray
ea31bd47e5 REVIEWED: PLATFORM_WEB build flags, added GL_ENABLE_GET_PROC_ADDRESS
Reviewed flags formating
2024-02-05 21:12:57 +01:00
Danil
6a8cc62b67 Fix GetCameraRight (#3784) 2024-02-05 20:53:14 +01:00
Ray
e9291fa4c7 Update rtext.c 2024-02-04 22:50:54 +01:00
Ray
c0c2e28c1b Merge branch 'master' of https://github.com/raysan5/raylib 2024-02-04 12:14:15 +01:00
Ray
615ee9d177 REVIEWED: rlLoadFramebuffer() 2024-02-04 12:13:56 +01:00
Ray
cd8da72fea Update rtext.c (#3777) (#3779) 2024-02-04 12:08:49 +01:00
github-actions[bot]
31ce1374e4 Update raylib_api.* by CI 2024-02-04 11:03:25 +00:00
Ray
80580746e5 Reorder functions 2024-02-04 12:02:58 +01:00
Ray
d34956b197 Merge branch 'master' of https://github.com/raysan5/raylib 2024-02-04 11:53:04 +01:00
Ray
c31559101a REVIEWED: rlLoadFramebuffer(), parameters not required 2024-02-04 11:52:49 +01:00
github-actions[bot]
250d89b621 Update raylib_api.* by CI 2024-02-04 10:37:24 +00:00
Luís Almeida
9a5dddc311 Added viewport independent raycast (#3709)
* added viewport independent raycast

* Renamed GetMouseRayEx to GetViewRay
2024-02-04 11:37:10 +01:00
Ray
f033b30703 Review formating and some defines naming consistency 2024-02-04 11:33:38 +01:00
oblerion
d91e9104aa [rcore] Fix GetFileNameWithoutExt() (#3771)
* Update rcore.c

fix [rcore] GetFileNameWithoutExt

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c

* Update rcore.c
2024-02-04 11:28:58 +01:00
A
a96b224b38 Add gamepad support to PLATFORM_DESKTOP_SDL (#3776)
Co-authored-by: Arthur <hi@thenightwat.ch>
2024-02-04 11:24:05 +01:00
Ray
868d515fbc Update rtext.c 2024-02-04 11:18:46 +01:00
Ray
eed56a45d6 REVIEWED: LoadFontDataBDF() name and formating 2024-02-04 11:10:46 +01:00
Stanley Fuller
0932cd3059 [rtext] Add BDF font support (#3735)
* Add BDF font support

* Include font ascent in glyph y-offset when loading BDF font
2024-02-03 19:28:12 +01:00
Brandon Baker
29ff658d92 Update BINDINGS.md (#3774)
Bump supported raylib version of Raylib-cs to 5.0
2024-02-02 18:06:30 +01:00
IoIxD
7ec43022c1 Fix segfault in ExportWaveAsCode (#3769)
`char *txtData = (char *)RL_CALLOC(waveDataSize * 6 + 2000, sizeof(char));`

assumes every chunk being added to txtData is 6 bytes. This is not always true, sometimes a newline is involved and the data becomes 12 bytes instead, and this can cause a random segfault.

This commit changes `6` to `12`, and explains why in the comment.
2024-02-01 21:16:57 +01:00
Marrony Neris
c0b081fac0 Fix MeasureTextEx() height calculation (#3770) 2024-02-01 21:14:22 +01:00
Ray
25306eae42 REVIEWED: Issue on parsing #3765 2024-02-01 00:05:30 +01:00
Ray
d79828076f REVIEWED: macOS issues #3767 2024-02-01 00:03:06 +01:00
Ray
deaffb0698 Review PR #3746 formating 2024-01-29 21:16:17 +01:00
Jeffery Myers
bebf9547bd [CORE,RLGL] Fix scale issues when ending a mode (#3746)
* Only restore GL scale back to screen scale if we are returning to a screen, not a render texture.

* blankspace

* reset back to default screen scale when ending a render texture since we are back on the default fbo
2024-01-29 21:10:23 +01:00
Brian E
812645b077 cleaned away unused macros in rcamera.h (#3762) 2024-01-28 13:49:07 +01:00
Alessandro Nikolaev
cf10cdd6b3 Added missing "standalone" functions to raudio.c & fixed return bug (#3760)
* Added GetFileNameWithoutExt, GetFileName & strprbrk to raudio.c

* Gave return values to SaveFileData & SaveFileText in raudio.c
2024-01-28 13:46:27 +01:00
veins1
f4add5f10d Fix rlSetUniformSampler (#3759)
Fix rlSetUniformSampler not setting sampler uniform if the same texture was already passed to a different sampler uniform
2024-01-28 13:45:19 +01:00
Ray
40f3df5b86 Update core_2d_camera_platformer.c 2024-01-24 21:17:11 +01:00
Victor Gallet
ff1eeafb95 Fix bug to retrieve material specular map in DrawMesh function, with incorrect index (#3758) 2024-01-23 12:37:54 +01:00
Idir Carlos Aliane
cb97a8063d [rtext.c] fixing some comments to align comments style (#3756) 2024-01-22 23:15:25 +01:00
Idir Carlos Aliane
6f1c31b25d Change some minor comments to align with comments style (#3755) 2024-01-22 21:26:18 +01:00
Idir Carlos Aliane
c133fee286 [raymath.h] Small code refactor (#3753)
* [raymath.h] Small refactor to avoid duplicated code

* Fixing some blank spaces to match same syle convention
2024-01-22 19:48:18 +01:00
Brian E
27645e16ab fixed small typo, replaced th with the (#3752) 2024-01-22 11:36:38 +01:00
Antonio Raúl
ef92ced370 fix CheckCollisionPointPoly (#3750) 2024-01-22 11:35:55 +01:00
Idir Carlos Aliane
68c32a4184 Fix typo in HISTORY.md (#3751)
There is a typo where 'undoubtdly' appears instead of 'undoubtedly'.
2024-01-22 07:58:47 +01:00
Alexandre Almeida
5c25913e09 Fix Android keycode translation and duplicate key constants (#3733)
* Fix Android keycode translation

* Simplify code a bit

* Rename KEYCODE_MAPPED_NUM to KEYCODE_MAP_SIZE

* Fix KEY_R and KEY_MENU duplicate

* Update raylib_api.* by CI

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-20 21:22:33 +01:00
John
192f7f1b29 [rcore rglfw] Feature Test Macros before include (#3737)
Move/Add Feature Test Macros before any includes.
See: [GNU Feature Test Macros](https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html)
> You should define these macros by using ‘#define’ preprocessor directives at the top of your source code files. These directives must come before any #include of a system header file. It is best to make them the very first thing in the file, preceded only by comments.

Alternative changes to rcore would be to change _POSIX_C_SOURCE to
200809L, which removes the need to define _XOPEN_SOURCE >= 500.

These changes allow for compilation with -std=c* (such as -std=c99)
without adding -D macros to the build step.

Co-authored-by: JayLCypher <jaylcypher@github.com>
2024-01-20 21:08:19 +01:00
Hongyu Ouyang
0a8165c0ac Make raylib/raygui work better on touchscreen (#3728)
* Fix that touch doesn't work for click/drag/raygui

* Add comments

* comments update
2024-01-20 21:05:30 +01:00
Anand Swaroop
b600786c52 Update BINDINGS.md (#3739) 2024-01-18 00:22:10 +01:00
Ray
c57b8d5a6a REVIEWED: ImageKernelConvolution(), formating and warnings 2024-01-15 20:32:46 +01:00
Blockguy24
d2b1256e5c Fix bounds check for ImageDrawRectangleRec (#3732) 2024-01-14 11:21:29 +01:00
Tobias Mock
02133092f8 Update OCaml bindings version (#3730) 2024-01-13 23:46:33 +01:00
Ray
cb2572fe07 Avoid asserts because could crash some decompressions https://github.com/raysan5/raygui/issues/364 2024-01-13 16:57:25 +01:00
Karl Zylinski
520c8cffb2 Simplified GetWindowScaleDPI() so it does not fetch the wrong DPI scale some times (Windows looks at center of window while the old raylib code looked on upper left corner of window, now it just uses the glfw function to fetch the window's current scaling). Also introduced a callback to update the CORE.Window.screenScaling when the content scaling updates, previously scaling did not work correctly on systems with multiple monitors that have different DPI scaling. (#3701) 2024-01-13 10:49:04 +01:00
Andrew Lee
b7141d556e Add shared library build option for build.zig and update to zig 0.12.0-dev.2139 (#3727)
* update build.zig to 0.12.0-dev.2139 and add shared lib option

* add no-sanitize workarounds
2024-01-13 10:46:53 +01:00
kolunmi
9d628d1d49 Enable animation names for the m3d model format. (#3714) 2024-01-11 19:49:25 +01:00
freakmangd
482722d881 Update to latest zig 0.12.0dev while keeping 0.11.0 compatibility (#3715)
* update build.zig for latest zig 0.12.0dev while still allowing 0.11.0

* update examples/build.zig and add nicer message for type mismatch
2024-01-11 19:48:37 +01:00
Lieven Petersen
a820c37ab2 implemented fill color TODO in ImageResizeCanvas() (#3720) 2024-01-11 19:48:14 +01:00
Le Juez Victor
746f129bfe Fix ImageDrawRectangleRec (#3721) 2024-01-11 19:37:42 +01:00
Hongyu Ouyang
64ba5cb570 Update a comment (#3724) 2024-01-11 19:33:24 +01:00
Tim Romero
2c124c96df [rtext] Adjust font atlas area calculation so padding area is not underestimated at small font sizes. (#3719) 2024-01-10 21:34:04 +01:00
Ray
be78255bea Update codeql.yml: Exclude src/external files 2024-01-08 01:13:44 +01:00
Alice Nyaa
be0ea89f83 Simplified for loop for some image manip functions (#3712) 2024-01-06 19:41:43 +01:00
Hongyu Ouyang
721e273547 Fix a bug in examples/shapes/shapes_following_eyes (#3710) 2024-01-06 11:32:10 +01:00
Ray
a4dc325a0c Reviewed Makefile SDL2 expected include/lib paths #3705 2024-01-05 22:51:46 +01:00
Ray
b4cb0f3e7d REVIEWED: LoadImageAnimFromMemory() #3704 2024-01-05 22:33:56 +01:00
Ray
e428ec940b Merge branch 'master' of https://github.com/raysan5/raylib 2024-01-05 22:33:22 +01:00
Ray
c95b71d40d Update raudio.c 2024-01-05 22:33:02 +01:00
Ray
3afb4dda97 Update raygui.h 2024-01-05 22:32:59 +01:00
ubkp
19bdcedf1c Hide unused warnings from stb_image_resize2.h (#3708) 2024-01-05 22:22:58 +01:00
Michael Scherbakow
eb6dcab308 Update raylib.zig version to 5.1-dev (#3698) 2024-01-04 10:51:53 +01:00
Ray
e46b6147fc Update copyright year to 2024 2024-01-03 14:16:39 +01:00
Ray
3f1e59a7cf Update copyright to 2024 2024-01-02 20:58:12 +01:00
seiren
0a25a3ed70 Update raylib_api.* by CI (#3692)
* wip: add parse.yml

* Temporarily force run

* Auto commit parse files

* Update raylib_api.* by CI

* Remove temporary setting

* format

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-31 15:06:46 +01:00
Kenta
710e811b27 Update BINDINGS.md (#3689)
Update Raylib.c3 to 5.0
2023-12-29 23:41:44 +01:00
Ray
1f3121d2fa Revert "Update raylib.h"
This reverts commit 7ea6adb29e.
2023-12-28 23:17:07 +01:00
Ray
dde738a2fd Merge branch 'master' of https://github.com/raysan5/raylib 2023-12-28 23:16:57 +01:00
ubkp
fd5e1e6afb [rtextures] Fix LoadImageAnimFromMemory() warning for fileData (#3686)
* Fix LoadImageAnimFromMemory() warning for fileData

* Add LoadImageAnimFromMemory() to raylib.h

* Fix missing ; on previous commit
2023-12-28 23:15:04 +01:00
ubkp
5b5a2d035d Fix TextReplace warning for const (#3687) 2023-12-28 23:13:47 +01:00
Ray
7ea6adb29e Update raylib.h 2023-12-28 22:10:10 +01:00
IoIxD
3fc43c1096 LoadImageAnimFromMemory (#3681) 2023-12-28 20:12:52 +01:00
maverikou
7cfdf33ff0 TextReplace const correctness (#3678)
* TextReplace const correctness

* cleanup
2023-12-28 20:09:49 +01:00
ubkp
43b4f90eb7 Fix SUPPORT_WINMM_HIGHRES_TIMER for PLATFORM_DESKTOP_SDL (#3679) 2023-12-28 20:08:04 +01:00
WisonYe
1727ddb9ea [ fix-crash-caused-by-zig-build ] - Fixed 'Illegal instruction' crash on 'rtextures' and 'raudio' model that caused by zig build. (#3682) 2023-12-28 15:41:33 +01:00
Jeffery Myers
ad64a43b34 [rshapes] Expose shapes drawing texture and rectangle (#3677)
* provide access to the shape texture so that shapes can be extended outside of raylib with the same optimizations as internal raylib functions.

* PR feedback, comply with C standards

* oops
2023-12-28 15:40:03 +01:00
Ray
99f22a47ff Update some versions BINDINGS.md 2023-12-25 14:44:49 +01:00
iacore
21bfd06570 Update BINDINGS.md (#3672)
Update zig libs version
2023-12-25 14:38:49 +01:00
Ray
36df9c5bd6 Update shaders_basic_pbr.c 2023-12-23 18:16:06 +01:00
Ray
e039a221a3 Review formating 2023-12-23 14:07:45 +01:00
Ray
706f74bce0 Update shaders_basic_pbr.c 2023-12-23 13:32:47 +01:00
Antonis Geralis
7ca95512d8 Review UnloadAutomationEventList (#3658)
* Review UnloadAutomationEventList

* Update raylib.h

* Update rcore.c

* Update core_automation_events.c

* Fix mistake
2023-12-23 12:14:39 +01:00
Ray
efe3510a9a REVIEWED: SDL text input to Unicode codepoints #3650
REVIEWED: GLFW naming conventions to reflect codepoints reading
2023-12-23 12:04:19 +01:00
Ray
1792bce292 REVIEWED: LoadTextureCubemap(), added mipmaps #3665 2023-12-23 11:26:23 +01:00
Tim Romero
f914020d45 VSCode sample project Mac fixup (#3666)
Change vscode config and makefile to add a missing IOKit framework reference and use whichever MacOSX sdk symlink is available
2023-12-23 11:22:16 +01:00
o3o
a06f3d0e34 Update BINDINGS.md (#3662)
Udated version of `bindbd-raylib3` to 5.0.0 (bind to raylib 5.0.0)
2023-12-22 17:40:57 +01:00
Ray
bb18018f29 REVIEWED: shaders_basic_pbr, added more comments 2023-12-21 21:32:53 +01:00
Ray
afbad4bbc6 Merge branch 'master' of https://github.com/raysan5/raylib 2023-12-21 21:32:04 +01:00
Ray
4805dddc18 Update shaders_deferred_render.c 2023-12-21 21:32:00 +01:00
glowiak
fbecab32e7 Add new COBOL binding (#3661) 2023-12-21 19:31:34 +01:00
Ray
68b6c79c3f Update rlgl.h 2023-12-20 01:03:52 +01:00
Ray
2fe68a8a12 REVIEWED PR deferred render 2023-12-20 00:51:51 +01:00
Jett
e71153258b fix for deferred rendering example. (#3655)
* fix for deferred rendering example.

* missed defines to build.
2023-12-20 00:27:59 +01:00
fubark
3f776df94e Update ray-cyber to 5.0 in BINDINGS.md (#3654) 2023-12-19 23:30:17 +01:00
Cinghy Creations
57a5ebe6c6 Don't use a separate thread when polling for gamepad events on DRM platforms (#3641) 2023-12-19 10:47:04 +01:00
kolunmi
8b5943d930 [rmodels] Set cgltf callbacks to use LoadFileData() and UnloadFileData() (#3652) 2023-12-19 10:38:57 +01:00
TheManTheMythTheGameDev
1fc3d9aeb2 Add shadowmapping example (#3653) 2023-12-19 10:37:41 +01:00
TheManTheMythTheGameDev
34a9163c52 Remove dependencies from PBR example (#3649)
* Remove dependencies from PBR example

* Reviewed example PR

---------

Co-authored-by: Ray <raysan5@gmail.com>
2023-12-19 10:36:03 +01:00
ubkp
9fcfc8d64b [rcore] Fix ShowCursor(), HideCursor() and review SetMouseCursor() for PLATFORM_WEB (#3647)
* Fix ShowCursor(), HideCursor() and review SetMouseCursor() for PLATFORM_WEB

* Add static to cursorLUT[]

* Re-review SetMouseCursor()
2023-12-17 13:46:21 +01:00
ubkp
2487174b48 Fix CORE.Input.Mouse.cursorHidden with callbacks for PLATFORM_WEB (#3644) 2023-12-16 18:25:55 +01:00
ubkp
0df78d4eeb Fix fullscreen known issue 1 for PLATFORM_WEB (#3642) 2023-12-16 18:22:02 +01:00
Ray
fd84ab3cf7 Bump CMake version required to avoid deprecated #3639 2023-12-15 19:17:44 +01:00
Ray
f3adde8bbd REVIEWED: DrawSplineLinear() to SUPPORT_SPLINE_MITERS 2023-12-15 18:40:19 +01:00
Toctave
0fc1765ff3 Implement miters in DrawSplineLinear (#3585)
* Implement miters in DrawSplineLinear

* Follow raylib style
2023-12-15 18:34:34 +01:00
Dongkun Lee
9de79861ea BM Font Extender (#3536)
* loadbmfont

* bmfontextender

* bm font

* Modify LoadBM Font

* Delete loadbmfontex.diff

* REVIEWED: `LoadBMFont()` PR

* Update rtext.c

* Update rtext.c

---------

Co-authored-by: Dongkun Lee <hope81dklee@outlook.com>
Co-authored-by: Ray <raysan5@gmail.com>
2023-12-15 18:32:01 +01:00
ubkp
e001f7e75e Add ToggleFullscreen() and required changes for PLATFORM_WEB (#3634) 2023-12-15 17:36:27 +01:00
devdad
9bdc217987 basic PBR example (#3621)
* basic pbr example

pbr implementation  includes rpbr.h and few shader files header only file, which self contain everything needed for pbr rendering. Few textures and one model of the car which is under free licence which is included inside basic_pbr.c example file  currently supported shader versions are 120 and 330 , version 100 has small issue which I have to resolve

* Unloading PBRMAterial

I forgot unloading PBRMaterial

* fix small issue with texOffset assigment.

value was Vector4 at first but I found out it would be unclear for and users, so I change to have two Vector2 instead, but forgot to assign offset .

* Changed size of textures and file name changed

Changed size of textures from 2048x2048 to 1024x1024 and file name changed to shaders_basic_pbr.c ,
Added the function PBRModel PBRModelLoadFromMesh(Mesh mesh);
but GenMeshPlane(2, 2.0, 3, 3) culdn't be used because it crash once GenMeshTangents() is used with that plane mesh
2023-12-15 17:13:44 +01:00
ubkp
489f0b93f9 [rcore] Add GetWindowPosition() implementation for PLATFORM_WEB and fixes #3636 style/format (#3637)
* Add GetWindowPosition() implementation for PLATFORM_WEB and fixes #3636 style/format

* Remove double space
2023-12-15 16:24:45 +01:00
Braedon Lewis
1e7b99562a Add new raylib-beef binding (#3640) 2023-12-15 16:23:35 +01:00
ubkp
10c82595b0 Add GetMonitorWidth() and GetMonitorHeight() implementations for PLATFORM_WEB (#3636) 2023-12-14 20:55:33 +01:00
Ray
38626dcffd REVIEWED: HighDPI support on Web platform #3372 -WIP-
NOTE: The code is commented until the build system gets updated to latest emscripten.
2023-12-14 15:32:53 +01:00
Ray
d29b36310f Merge branch 'master' of https://github.com/raysan5/raylib 2023-12-14 15:32:45 +01:00
Ray
88db11fda4 Update rtextures.c 2023-12-14 15:30:48 +01:00
Matthew Oros
cec2261e96 [rcore] Flip VR screens (#3633) 2023-12-13 21:24:24 +01:00
Matthew Oros
387506faab [rcore] Remove unused vScreenCenter (#3632) 2023-12-13 21:22:44 +01:00
Romash
222f6f7877 Fix box blur symmetry & simplify code (#3631) 2023-12-13 21:21:08 +01:00
Benjamin Schmid Ties
6083d2b9f3 fixed coding style in function TextToFloat (#3627)
* function to convert string to float

* fix code to match coding conventions
2023-12-13 21:20:13 +01:00
lipx
a57a0ecd96 Update audio_stream_effects.c (#3618)
* Update audio_stream_effects.c

This may slightly improve performance and be more welcoming for new users despite being an more advanced feature. 
void * usually throws an error in most compilers and it would be better to just avoid it.

Also added <stdbool.h> because booleans are, sometimes, not defined by <stddef.h>.

* Update audio_stream_effects.c
2023-12-13 21:19:14 +01:00
2Bear
9322ad0f9b Ignore compiled dll binaries. (#3628) 2023-12-12 23:05:14 +01:00
Ray
c5ebdb8ba7 REVIEWED: Issue in sequence generation #3612 2023-12-11 09:33:21 +01:00
Ray
6f3c87a999 Fix #3613 2023-12-11 09:21:30 +01:00
riadbettole
31d3ed97c7 Update audio_raw_stream.c (#3624)
AudioInputCallBack has this
    audioFrequency += 1.0f;
    audioFrequency -= 1.0f;

cancels out each others
2023-12-11 09:12:30 +01:00
ubkp
a2e45239c3 [rcore] Complement SetWindowState() and ClearWindowState() for PLATFORM_WEB (#3625)
* Complement SetWindowState() and ClearWindowState() for PLATFORM_WEB

* Add FLAG_WINDOW_RESIZABLE to SetWindowState() and ClearWindowState() for PLATFORM_WEB
2023-12-11 09:11:42 +01:00
ubkp
39457ace2f [rcore] Add ToggleBorderlessWindowed() implementation for PLATFORM_WEB (#3622)
* Add ToggleBorderlessWindowed() for PLATFORM_WEB

* Fix coding convention
2023-12-11 09:11:20 +01:00
ubkp
44eeda2475 Optimize gesture handling for PLATFORM_DRM (#3616) 2023-12-11 08:58:55 +01:00
ubkp
ed8a18ea64 [rcore] Fix real touch gestures for PLATFORM_DESKTOP_SDL (#3614)
* Fix touch gestures for PLATFORM_DESKTOP_SDL

* Complement note and optimization

* Events optimization

* Optimize gesture handling

* Reverts previous commit and fixes GESTURE_DRAG to not trigger GESTURE_SWIPE* when it ends

* Reapply previous gesture handling optimization also fixing GESTURE_DRAG to not trigger GESTURE_SWIPE* when it ends
2023-12-11 08:57:51 +01:00
Peter0x44
28bdaa2da6 Update projects/CMake/CMakeLists.txt to raylib 5.0 (#3623) 2023-12-11 08:29:19 +01:00
David Williams
032cc497ca Updating CMake version to 5.0 so libraries are correctly versioned (#3615) 2023-12-09 19:33:12 +01:00
ubkp
a9ba51aa72 [rcore] Fix IsMouseButtonUp() for PLATFORM_WEB and PLATFORM_DRM (#3611)
* Fix IsMouseButtonUp() for PLATFORM_WEB

* Fix IsMouseButtonUp() for PLATFORM_DRM
2023-12-07 19:53:27 +01:00
ubkp
ab9bddb3bd [rcore] Fix IsMouseButtonUp() and add touch events for PLATFORM_DESKTOP_SDL (#3610)
* Fix IsMouseButtonUp() and add touch events for PLATFORM_DESKTOP_SDL

* Fix coding convention
2023-12-07 19:53:02 +01:00
Kenneth M
8b33d1eeb9 Fix IsMouseButtonUp() (#3609) 2023-12-07 19:50:36 +01:00
lesleyrs
6b93180130 Fix for free camera mode (#3603)
* fix free and fp cam

* revert
2023-12-07 19:49:49 +01:00
ubkp
d99617d084 [rcore] Fix IsKeyPressedRepeat() for PLATFORM_DESKTOP_SDL (#3605)
* Fix IsKeyPressedRepeat() for PLATFORM_DESKTOP_SDL

* Fix missing space
2023-12-07 19:47:58 +01:00
ubkp
984e83c2d0 Fix GetKeyPressed and GetCharPressed for SDL (#3604) 2023-12-05 10:02:48 +01:00
Ray
731b210f51 REVIEWED: WARNING: LoadFontData() avoid fallback glyphs
This is a redesign on font loading, missing glyphs are skipped instead of falling back to font `.notdef` special character (usually "tofu" character).
It is changed because not all fonts support a fallback glyph.
One improvement could be allowing users to define a custom fallback character, for example `?` glyph.
2023-12-04 17:32:55 +01:00
Ray
a016b4ded2 REVIEWED: LoadFontData(), load image only if glyph has been found in font 2023-12-03 20:17:16 +01:00
Ray
84ae189953 Create raylib_1024x1024.png 2023-12-03 20:16:26 +01:00
Ray
26d61875ee Create raylib.icns 2023-12-03 20:16:23 +01:00
Ray
8a586249d7 Fix Wrong Makefile flag #3593 2023-12-03 20:16:19 +01:00
Ray
d0a783e362 Revert "Fix Windows Hardcoding (#3600)"
This reverts commit 4ae2af0bcc.
2023-12-03 20:08:48 +01:00
Ray
5aa84a34ea Revert "Fix warning while using external GLFW older than version 3.4.0 (#3599)"
This reverts commit f1b0d15813.
2023-12-03 20:06:34 +01:00
mr sihc
4ae2af0bcc Fix Windows Hardcoding (#3600)
Compiles on Linux & co. now
2023-12-03 19:55:16 +01:00
Marco Maia
f1b0d15813 Fix warning while using external GLFW older than version 3.4.0 (#3599)
Co-authored-by: Marco Maia <marco.maia@iarasystems.com.br>
2023-12-03 19:53:52 +01:00
Peter0x44
8ae804ff9a Fix cmake-built libraylib.a to properly include GLFW's object files (#3598)
I broke this in PR #3573 by accidentally removing too much
The examples still compiled fine so I didn't notice - my guess is that
cmake was still adding a separate link to glfw manually.
2023-12-03 19:53:11 +01:00
WIITD
dfb0ca43c5 Update raylib-freebasic binding (#3591) 2023-12-03 19:51:47 +01:00
ubkp
0748dc2d1e Remove a duplicated loop for PLATFORM_DRM (#3590) 2023-12-01 14:55:48 +01:00
Peter0x44
55e7d1aad1 Expose OpenGL take 2 (#3588)
For some reason, there are actually two macros needed to control this.
Yes, I tried with only one, both are needed
2023-11-30 22:43:02 +01:00
Peter0x44
ef5069862d Fix mistake in pr #3572 (#3587) 2023-11-30 20:07:50 +01:00
Ray
e9ddb15d9d REVIEWED: rlgl function description and comments 2023-11-30 19:04:38 +01:00
Ray
6b136fac67 ADDED: ExportMeshAsCode() 2023-11-30 13:01:19 +01:00
ubkp
e84099bfd4 Fix CheckCollisionCircleRec() (#3584) 2023-11-30 10:11:45 +01:00
ubkp
bd81bdc24a Fix IsKeyPressedRepeat() for PLATFORM_DRM direct input (#3583) 2023-11-30 10:09:57 +01:00
Peter0x44
e7a486fa81 Hide unneeded internal symbols when building raylib as an so or dylib (#3573) 2023-11-28 20:43:45 +01:00
RadsammyT
fe53ba80dd Fix typos in src/platforms/rcore_*.c (#3581) 2023-11-28 20:39:10 +01:00
ubkp
1906f1eddf Fix SetMousePosition() for SDL (#3580) 2023-11-28 20:37:04 +01:00
ubkp
811abcb19f Fix rcamera.h so mouse/keyboard and gamepad can coexist for input (#3579) 2023-11-27 16:36:09 +01:00
ubkp
c35c531551 Fix SetWindowIcon() for SDL (#3578) 2023-11-27 16:34:17 +01:00
Emmanuel Méra
fc4b0c9aec Corrected the path of android ndk toolchains for OSX platforms (#3574) 2023-11-25 19:11:29 +01:00
BLUELOVETH
dfa64f228a Update raylib_api.* (#3564) 2023-11-24 00:46:54 +01:00
Peter0x44
94aba23ef4 Expose glad functions when building raylib as a shared lib (#3572) 2023-11-24 00:41:44 +01:00
Danil
ada1d0fb8c BINDINGS: Add Raylib-CSharp-Vinculum (#3571) 2023-11-23 14:41:31 +01:00
Ray
a3a73b9332 REVIEWED: textures_image_kernel #3556
Added screenshot
2023-11-21 22:55:47 +01:00
Steven Schveighoffer
b122270aa3 Fix version info in rlgl.h (#3558) 2023-11-21 22:47:52 +01:00
Chris Warren-Smith
664d22967c Update bindings for SmallBASIC (#3562) 2023-11-21 21:59:09 +01:00
Jorge A. Gomes
b13f97575b Updated BINDINGS -> Python raylib-py v5.0.0beta1 (#3557)
Co-authored-by: Jorge A. Gomes <jorgegomes83@gmail.com>
2023-11-21 17:02:09 +01:00
Steven Schveighoffer
d409df0b61 Update raylib-d binding (#3561) 2023-11-21 16:58:08 +01:00
Ray
4dae94821b Merge branch 'master' of https://github.com/raysan5/raylib 2023-11-21 00:15:06 +01:00
Ray
299cd9b830 Update rcore.c 2023-11-21 00:14:42 +01:00
Ray
994c4f4bdf Update rcore_desktop_sdl.c 2023-11-20 23:21:04 +01:00
Sergey Zapunidi
ce26e26177 Added missing textures_image_kernel example in web makefile (#3555)
* Added missing textures_image_kernel example in web makefile

* Added missing --preload-file for textures_image_kernel

---------

Co-authored-by: zap <zap@physlab.ru>
2023-11-20 20:49:58 +01:00
Dmitry Matveyev
7e60227720 Update BINDINGS.md for Janet (#3553)
This PR updates the bindings https://github.com/janet-lang/jaylib/pull/54
2023-11-19 11:11:51 +01:00
Auz
ee9b44245f Update BINDINGS.md for Raylib.nelua (#3552)
Bumped version number and updated the link for Raylib.nelua
2023-11-19 11:01:10 +01:00
Ray
a91ebb7517 Update BINDINGS.md 2023-11-18 20:12:08 +01:00
Rob Loach
eccfaa5fcf BINDINGS: Update raylib-cpp support to raylib 5.0 (#3551)
[raylib-cpp](https://github.com/RobLoach/raylib-cpp) supports raylib 5.0.
2023-11-18 20:08:45 +01:00
Gunko Vadim
67035815aa Update pascal binding.md (#3548) 2023-11-18 20:08:08 +01:00
MrScautHD
0137efde7a Expanding Possibilities: Integrating Additional glTF / GLB Data Formats for Enhanced 3D Experiences (#3546)
* Add more gltf data formats

* Fix forgot to save bone ids

* Fix misstake

* Fix code format

* Removed useless formats
2023-11-18 20:07:30 +01:00
Alexandre Almeida
f6de0358e1 Disable unused miniaudio features (#3544)
* Disable unused miniaudio features

* Fix mistakes
2023-11-18 20:06:19 +01:00
Karim
21469e92b0 Image convolution function ImageKernelConvolution (#3528)
* Added image convultion ImageKernelConvolution

* comment changes

* spelling changes and change to kernel size

* removed kernel normalization inside function

* fix to formating
2023-11-18 20:05:45 +01:00
_Tradam
e41a0c9721 fix for running gles2 with sdl on desktop (#3542) 2023-11-18 20:03:13 +01:00
Jussi Viitala
25c6c12150 Added glsl 100 and 120 shaders to lightmap example. (#3543)
* Added glsl 100 and 120 shaders to lightmap example.

* Fixed lightmap example resource loading on web.
2023-11-18 20:02:33 +01:00
Dennis E. Hamilton
f607cac267 Preparing for 5.1-dev (#3550)
Adjusting raylib.h to reflect post-5.0 changes now.
2023-11-18 20:01:02 +01:00
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:

* 05f6c13d11

Currently, glfw3native.h of the internal GLFW is customized at
2feea87b61

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
David Reid
950f31e620 Update mini_al. 2017-12-06 18:48:47 +10:00
victorfisac
dd50348b4d Merge branch 'master' of https://github.com/raysan5/raylib 2017-09-02 08:25:38 +02:00
victorfisac
353912b215 Merge branch 'master' of https://github.com/raysan5/raylib 2017-08-27 12:48:51 +02:00
victorfisac
eb7b5e59bb Merge branch 'master' of https://github.com/raysan5/raylib 2017-07-15 16:05:00 +02:00
victorfisac
f9277f2163 Merge remote-tracking branch 'refs/remotes/raysan5/master' 2017-03-06 09:47:08 +01:00
victorfisac
ce56fcb1ed Merge remote-tracking branch 'refs/remotes/raysan5/master' 2016-02-26 14:32:30 +01:00
1560 changed files with 559734 additions and 253310 deletions

8
.github/FUNDING.yml vendored Normal file
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
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1 @@
blank_issues_enabled: false

View File

@@ -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.*

135
.github/workflows/analyze_codeql.yml vendored Normal file
View File

@@ -0,0 +1,135 @@
# 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: Analyze raylib with 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-latest' }}
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@v4
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 libwayland-dev libxkbcommon-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/**
-**/src/external/**
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@v4
with:
name: codeql-results
path: ${{ steps.step1.outputs.sarif-output }}
retention-days: 5

96
.github/workflows/build_android.yml vendored Normal file
View File

@@ -0,0 +1,96 @@
name: Build raylib - 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@v4
with:
name: ${{ env.RELEASE_NAME }}.tar.gz
path: ./build/${{ env.RELEASE_NAME }}.tar.gz
- name: Upload Artifact to Release
uses: softprops/action-gh-release@v1
with:
files: ./build/${{ env.RELEASE_NAME }}.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: github.event_name == 'release' && github.event.action == 'published'

111
.github/workflows/build_cmake.yml vendored Normal file
View File

@@ -0,0 +1,111 @@
name: Build raylib CMake - Windows+Linux
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@v4
- 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@v4
- 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 libwayland-dev libwayland-bin libxkbcommon-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

View File

@@ -0,0 +1,42 @@
name: Build raylib examples - Linux
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@v4
- 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 libwayland-dev libxkbcommon-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 ..

View File

@@ -0,0 +1,36 @@
name: Build raylib examples - Windows
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@v4
- 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

126
.github/workflows/build_linux.yml vendored Normal file
View File

@@ -0,0 +1,126 @@
name: Build raylib - 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
strategy:
fail-fast: false
max-parallel: 1
matrix:
include:
- bits: 32
ARCH: "i386"
ARCH_NAME: "i386"
COMPILER_PATH: "/usr/bin"
runner: "ubuntu-latest"
- bits: 64
ARCH: "x86_64"
ARCH_NAME: "amd64"
COMPILER_PATH: "/usr/bin"
runner: "ubuntu-latest"
- bits: 64
ARCH: "aarch64"
ARCH_NAME: "arm64"
COMPILER_PATH: "/usr/bin"
runner: "ubuntu-24.04-arm"
runs-on: ${{ matrix.runner }}
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 -y --no-install-recommends libglfw3 libglfw3-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libxext-dev libxfixes-dev libwayland-dev libxkbcommon-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
- name: Setup Environment (x86)
run : |
sudo apt-get install gcc-multilib
if: matrix.bits == 32 && matrix.ARCH == 'i386'
# TODO: Support 32bit (i386) static/shared library building
- name: Build Library (32-bit)
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 (64-bit x86)
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 && matrix.ARCH == 'x86_64'
- name: Build Library (64-bit ARM)
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 && matrix.ARCH == 'aarch64'
- 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@v4
with:
name: ${{ env.RELEASE_NAME }}.tar.gz
path: ./build/${{ env.RELEASE_NAME }}.tar.gz
- name: Upload Artifact to Release
uses: softprops/action-gh-release@v1
with:
files: ./build/${{ env.RELEASE_NAME }}.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: github.event_name == 'release' && github.event.action == 'published'

113
.github/workflows/build_macos.yml vendored Normal file
View File

@@ -0,0 +1,113 @@
name: Build raylib - 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@v4
with:
name: ${{ env.RELEASE_NAME }}.tar.gz
path: ./build/${{ env.RELEASE_NAME }}.tar.gz
- name: Upload Artifact to Release
uses: softprops/action-gh-release@v1
with:
files: ./build/${{ env.RELEASE_NAME }}.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: github.event_name == 'release' && github.event.action == 'published'

83
.github/workflows/build_webassembly.yml vendored Normal file
View File

@@ -0,0 +1,83 @@
name: Build raylib - 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@v14
with:
version: 3.1.71
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@v4
with:
name: ${{ env.RELEASE_NAME }}.zip
path: ./build/${{ env.RELEASE_NAME }}.zip
- name: Upload Artifact to Release
uses: softprops/action-gh-release@v1
with:
files: ./build/${{ env.RELEASE_NAME }}.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: github.event_name == 'release' && github.event.action == 'published'

154
.github/workflows/build_windows.yml vendored Normal file
View File

@@ -0,0 +1,154 @@
name: Build raylib - 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]
ziptarget: [ win32, win64, winarm64 ]
include:
- compiler: mingw-w64
ARCH: "i686"
WINDRES_ARCH: pe-i386
ziptarget: "win32"
- compiler: mingw-w64
ARCH: "x86_64"
WINDRES_ARCH: pe-x86-64
ziptarget: "win64"
- compiler: msvc16
ARCH: "x86"
VSARCHPATH: "Win32"
ziptarget: "win32"
- compiler: msvc16
ARCH: "x64"
VSARCHPATH: "x64"
ziptarget: "win64"
- compiler: msvc16
ARCH: "ARM64"
VSARCHPATH: "ARM64"
ziptarget: "winarm64"
exclude:
- compiler: mingw-w64
ziptarget: winarm64 # We don't build arm64 with mingw-w64 yet
env:
RELEASE_NAME: raylib-dev_${{ matrix.ziptarget }}_${{ 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 }}_${{ matrix.ziptarget }}_${{ 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@v2
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.arch == 'i686'
- 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.arch == 'x86_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@v4
with:
name: ${{ env.RELEASE_NAME }}.zip
path: ./build/${{ env.RELEASE_NAME }}.zip
- name: Upload Artifact to Release
uses: softprops/action-gh-release@v1
with:
files: ./build/${{ env.RELEASE_NAME }}.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: github.event_name == 'release' && github.event.action == 'published'

37
.github/workflows/parse_api.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: Parse raylib API
on:
workflow_dispatch:
push:
paths:
- "src/raylib.h"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Update parse files
working-directory: tools/parser
run: |
make raylib_api
mv raylib_api.* output
- name: Diff parse files
id: diff
run: |
git add -N parser
git diff --name-only --exit-code
continue-on-error: true
- name: Commit parse files
if: steps.diff.outcome == 'failure'
run: |
set -x
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add tools/parser
git commit -m "Update raylib_api.* by CI"
git push

72
.github/workflows/update_examples.yml vendored Normal file
View File

@@ -0,0 +1,72 @@
name: Update examples collection
on:
workflow_dispatch:
push:
paths:
- 'examples/**'
pull_request:
paths:
- 'examples/**'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup emsdk
uses: mymindstorm/setup-emsdk@v14
with:
version: 'latest'
actions-cache-folder: 'emsdk-cache'
- name: Clone raylib.com repo to update files
run: |
git clone https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/raysan5/raylib.com.git
shell: bash
- name: Build and run rexm tool (requires GNU Makefile)
# "rexm update" validates and updates all required examples in raylib and even raylib.com repos,
# note that it calls examples/Makefile.Web internally, so it requires [make] tool available
run: |
sudo apt-get update && sudo apt-get install -y libopengl0 libglu1-mesa libx11-dev libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libgl1-mesa-dev libglu1-mesa-dev
cd "${{ github.workspace }}/src"
make PLATFORM=PLATFORM_DESKTOP
sudo make install
make clean
make PLATFORM=PLATFORM_WEB
cd ../tools/rexm/
make
export REXM_EXAMPLES_BASE_PATH="${{ github.workspace }}/examples"
export REXM_EXAMPLES_WEB_PATH="${{ github.workspace }}/raylib.com/examples"
export REXM_EXAMPLES_TEMPLATE_FILE_PATH="${{ github.workspace }}/examples/examples_template.c"
export REXM_EXAMPLES_TEMPLATE_SCREENSHOT_PATH="${{ github.workspace }}/examples/examples_template.png"
export REXM_EXAMPLES_COLLECTION_FILE_PATH="${{ github.workspace }}/examples/examples_list.txt"
export REXM_EXAMPLES_VS2022_SLN_FILE="${{ github.workspace }}/projects/VS2022/raylib.sln"
export EMSDK_PATH="${{ github.workspace }}/emsdk-cache/emsdk-main"
./rexm update
shell: bash
- name: Commit changes to raylib repo (DISABLED)
if: github.event_name == 'push' && false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add -A
git commit -m "Update examples collection" || echo "git exited with code 1, nothing changed"
git push
shell: bash
- name: Push changes to raylib.com repo (DISABLED)
if: github.event_name == 'push' && false
run: |
cd raylib.com
git add -A
git commit -m "Update web examples" || echo "git exited with code 1, nothing changed"
git push origin
shell: bash

105
.gitignore vendored
View File

@@ -13,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
@@ -29,45 +30,40 @@ Thumbs.db
*.cache
*.ilk
*.log
.vs
[Bb]in
[Dd]ebug/
[Dd]ebug.win32/
*.sbr
*.sdf
obj/
[R]elease/
[Rr]elease.win32/
_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.*
*.dll
# Ignore all examples files
examples/*
# Unignore all examples dirs
!examples/*/
# Unignore all examples files with extension
!examples/*.c
!examples/*.lua
!examples/*.png
# Unignore examples Makefile
!examples/Makefile
# Emscripten
emsdk
# Ignore all games files
games/*
# Unignore all games dirs
!games/*/
# Unignore all games files with extension
!games/*.c
!games/*.lua
!games/*.png
# Unignore games makefile
!games/Makefile
# Ignore wasm data in examples/
examples/**/*.wasm
examples/**/*.data
examples/**/*.js
examples/**/*.html
# Ignore files build by xcode
*.mode*v*
@@ -83,33 +79,12 @@ xcschememanagement.plist
xcuserdata/
DerivedData/
# Visual Studio project
project/vs2015/*.db
project/vs2015/*.opendb
project/vs2015.UWP/packages
project/vs2015.UWP/*.db
!project/vs2015/raylib.sln
!project/vs2015/raylib/*.vcxproj
!project/vs2015/examples/*.vcxproj
!project/vs2017/raylib.sln
!project/vs2017/raylib/*.vcxproj
!project/vs2017/examples/*.vcxproj
!project/vs2015.UWP/raylib/*.vcxproj
!project/vs2015.UWP/*.sln
!project/vs2015.UWP/raylib.App.UWP/*.vcxproj
# VSCode project
.vscode
# Web examples
docs/examples/web/*.html
docs/examples/web/*/*.html
!docs/examples/web/loader.html
!docs/examples/web/core/loader.html
!docs/examples/web/shapes/loader.html
!docs/examples/web/text/loader.html
!docs/examples/web/textures/loader.html
!docs/examples/web/audio/loader.html
!docs/examples/web/physac/loader.html
!docs/examples/web/shaders/loader.html
!docs/examples/web/models/loader.html
# Jetbrains project
.idea/
cmake-build-*/
# CMake stuff
CMakeCache.txt
@@ -117,20 +92,30 @@ CMakeFiles
CMakeScripts
Testing
cmake_install.cmake
cmake_uninstall.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
build
!templates/android_project/Makefile
# Unignore These makefiles...
!examples/CMakeLists.txt
!games/CMakeLists.txt
# Ignore Android generated files and folders
templates/android_project/output
# Ignore GNU global tags
GPATH
GRTAGS
GTAGS
# Zig programming language
.zig-cache/
zig-cache/
zig-out/
build/
build-*/
docgen_tmp/
# Tools stuff
tools/parser/raylib_parser
tools/rexm/rexm.exe
tools/rexm/rexm
# CI
emsdk-cache/
raylib.com/

View File

@@ -1,62 +0,0 @@
language: c
dist: trusty
git:
depth: 3
# TODO we could use a 32 bit Docker container for running true 32-bit tests
# services: - docker
matrix:
include:
- os: linux
env: ARCH=i386
sudo: required
- os: linux
env: ARCH=amd64
sudo: required
- os: osx
env: ARCH=universal
before_script:
before_install:
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then
sudo apt-get install -y gcc-multilib
libasound2-dev:$ARCH
libxcursor-dev:$ARCH libxinerama-dev:$ARCH mesa-common-dev:$ARCH
libx11-dev:$ARCH libxrandr-dev:$ARCH libxi-dev:$ARCH
libgl1-mesa-dev:$ARCH libglu1-mesa-dev:$ARCH;
export RAYLIB_PACKAGE_SUFFIX="-Linux-$ARCH";
if [ "$ARCH" == "i386" ]; then export CFLAGS="-m32"; fi;
if [ "$ARCH" == "amd64" ]; then export CFLAGS="-m64"; fi;
if [ "$GLFW" == "SYSTEM" ]; then
wget 'http://ftp.de.debian.org/debian/pool/main/g/glfw3/libglfw3_3.2.1-1_amd64.deb';
wget 'http://ftp.de.debian.org/debian/pool/main/g/glfw3/libglfw3-dev_3.2.1-1_amd64.deb';
sudo dpkg -i libglfw3_3.2.1-1_amd64.deb libglfw3-dev_3.2.1-1_amd64.deb;
fi;
fi
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then
export RAYLIB_PACKAGE_SUFFIX="-macOS";
if [ "$GLFW" == "SYSTEM" ]; then brew update; brew install glfw; fi;
fi
- "$CC --version"
script:
- mkdir build
- cd build
- cmake -DMACOS_FATLIB=ON -DSTATIC_RAYLIB=ON -DSHARED_RAYLIB=ON -DBUILD_EXAMPLES=ON -DBUILD_GAMES=ON -DUSE_EXTERNAL_GLFW=IF_POSSIBLE ..
- make VERBOSE=1
- make package
deploy:
provider: releases
api_key:
secure: LvqUIAN/3dJul+Ra2iK3tSaNG5IwsNMmGIwVMy0DK5IBCxiQPBc9pWGiE30RTBPt6Z+N4BhMEE8DtUl+vnISlMoHWNIIhF2zwC66hs/F7zY7qEITMRSmfiLcqxQysknFOnJB06CATgXcFqlEo9j+t4abrG/f3qcb92J4O2uNz336Au2myTx93Q5MxbyA7KiUuEutFnb2dWiPCY4d+sGeXEfsiD2R7aj/8MaWOkoGdZVrTkI9juMgvpImkjQBArvqdjUMeT3MsRrwgOIq5v2GFV9dOl8k1WzPeT8B2JHh00ed/o1/wuFq/cLLOxtYo2+Pv3+xatOrlexoX0WkDm7C9/L1W5U4rLexU3CQ9mMBmHPnp6k/WXZ5QXEE4uUF0+LpN3XlIXzFpdZmZiVV8VLxg2WvyncMmivYiu7/MTkyfZxyKkzwl7sZZslzHA9kOGedGaN7b7/2B77OFHoQK8lKfdFml7jJnarh+89nenNZYMab0E8qkOJOyb2bYlDTa0/2nyxGiyymYgq6YHLNrDbhqB/1LzdgzjMliQ8ri5q9Ux2vjfcqOzhfAmcwFwnY/D6yXJWYi0DWpHZdpKl3du6dYDrypW91/yDWbwiJ/YhrE7ZunzrcB6GH/QkbuzWxdCth39rQAHih8DG01co/K3Gvi4yGjvIH5tFUpyEolMnpMiA=
file_glob: true
file: raylib-*.tar.gz
skip_cleanup: true
on:
repo: raysan5/raylib
branch: develop
tags: true

181
BINDINGS.md Normal file
View File

@@ -0,0 +1,181 @@
# raylib bindings and wrappers
Some people ported raylib to other languages in the 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 |
| :--------------------------------------------------------------------------------------- | :--------------: | :------------------------------------------------------------------: | :------------------: |
| [raylib](https://github.com/raysan5/raylib) | **5.5** | [C/C++](https://en.wikipedia.org/wiki/C_(programming_language)) | Zlib |
| [raylib-ada](https://github.com/Fabien-Chouteau/raylib-ada) | **5.5** | [Ada](https://en.wikipedia.org/wiki/Ada_(programming_language)) | MIT |
| [raylib-beef](https://github.com/Starpelly/raylib-beef) | **5.5** | [Beef](https://www.beeflang.org) | MIT |
| [raybit](https://github.com/Alex-Velez/raybit) | **5.0** | [Brainfuck](https://en.wikipedia.org/wiki/Brainfuck) | MIT |
| [raylib-c3](https://github.com/c3lang/vendor/tree/main/libraries/raylib55.c3l) | **5.5** | [C3](https://c3-lang.org) | MIT |
| [raylib-cs](https://github.com/raylib-cs/raylib-cs) | **5.5** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | Zlib |
| [Raylib-CsLo](https://github.com/NotNotTech/Raylib-CsLo) | 4.2 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 |
| [Raylib-CSharp-Vinculum](https://github.com/ZeroElectric/Raylib-CSharp-Vinculum) | **5.0** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MPL-2.0 |
| [Raylib-CSharp](https://github.com/MrScautHD/Raylib-CSharp) | **5.5** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | MIT |
| [Raylib-cs.BleedingEdge](https://github.com/danilwhale/Raylib-cs.BleedingEdge) | **5.6-dev** | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) | Zlib |
| [cl-raylib](https://github.com/longlene/cl-raylib) | 4.0 | [Common Lisp](https://common-lisp.net) | MIT |
| [claylib/wrap](https://github.com/defun-games/claylib) | 4.5 | [Common Lisp](https://common-lisp.net) | Zlib |
| [claw-raylib](https://github.com/bohonghuang/claw-raylib) | **auto** | [Common Lisp](https://common-lisp.net) | Apache-2.0 |
| [raylib](https://github.com/fosskers/raylib) | 5.5 | [Common Lisp](https://common-lisp.net) | MPL-2.0 |
| [chez-raylib](https://github.com/Yunoinsky/chez-raylib) | **auto** | [Chez Scheme](https://cisco.github.io/ChezScheme) | GPLv3 |
| [CLIPSraylib](https://github.com/mrryanjohnston/CLIPSraylib) | **auto** | [CLIPS](https://www.clipsrules.net/) | MIT |
| [raylib-cr](https://github.com/sol-vin/raylib-cr) | 4.6-dev (5e1a81) | [Crystal](https://crystal-lang.org) | Apache-2.0 |
| [ray-cyber](https://github.com/fubark/ray-cyber) | **5.0** | [Cyber](https://cyberscript.dev) | MIT |
| [dart-raylib](https://gitlab.com/wolfenrain/dart-raylib) | 4.0 | [Dart](https://dart.dev) | MIT |
| [bindbc-raylib3](https://github.com/o3o/bindbc-raylib3) | **5.0** | [D](https://dlang.org) | BSL-1.0 |
| [dray](https://github.com/redthing1/dray) | **5.0** | [D](https://dlang.org) | Apache-2.0 |
| [raylib-d](https://github.com/schveiguy/raylib-d) | **5.5** | [D](https://dlang.org) | Zlib |
| [rayex](https://github.com/shiryel/rayex) | 3.7 | [elixir](https://elixir-lang.org) | Apache-2.0 |
| [raylib-factor](https://github.com/factor/factor/blob/master/extra/raylib/raylib.factor) | 4.5 | [Factor](https://factorcode.org) | BSD |
| [raylib-freebasic](https://github.com/WIITD/raylib-freebasic) | **5.0** | [FreeBASIC](https://www.freebasic.net) | MIT |
| [fortran-raylib](https://github.com/interkosmos/fortran-raylib) | **5.5** | [Fortran](https://fortran-lang.org) | ISC |
| [raylib-go](https://github.com/gen2brain/raylib-go) | **5.5** | [Go](https://golang.org) | Zlib |
| [raylib-guile](https://github.com/petelliott/raylib-guile) | **auto** | [Guile](https://www.gnu.org/software/guile) | Zlib |
| [gforth-raylib](https://github.com/ArnautDaniel/gforth-raylib) | 3.5 | [Gforth](https://gforth.org) | **???** |
| [h-raylib](https://github.com/Anut-py/h-raylib) | **5.5-dev** | [Haskell](https://haskell.org) | Apache-2.0 |
| [raylib-hx](https://github.com/foreignsasquatch/raylib-hx) | 4.2 | [Haxe](https://haxe.org) | Zlib |
| [hb-raylib](https://github.com/MarcosLeonardoMendezGerencir/hb-raylib) | 3.5 | [Harbour](https://harbour.github.io) | MIT |
| [jaylib](https://github.com/janet-lang/jaylib) | **5.0** | [Janet](https://janet-lang.org) | MIT |
| [jaylib](https://github.com/electronstudio/jaylib/) | **5.5** | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | GPLv3+CE |
| [raylib-j](https://github.com/CreedVI/Raylib-J) | 4.0 | [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) | Zlib |
| [Raylib.jl](https://github.com/chengchingwen/Raylib.jl) | 4.2 | [Julia](https://julialang.org) | Zlib |
| [kaylib](https://github.com/electronstudio/kaylib) | 3.7 | [Kotlin/native](https://kotlinlang.org) | **???** |
| [KaylibKit](https://codeberg.org/Kenta/KaylibKit) | 4.5 | [Kotlin/native](https://kotlinlang.org) | Zlib |
| [raylib-lua](https://github.com/TSnake41/raylib-lua) | 5.0 | [Lua](http://www.lua.org) | ISC |
| [raylib-lua-bindings (WIP)](https://github.com/legendaryredfox/raylib-lua-bindings) | 5.5 | [Lua](http://www.lua.org) | ISC |
| [ReiLua](https://github.com/nullstare/ReiLua) | 5.5 | [Lua](http://www.lua.org) | MIT |
| [raylib-lua-sol](https://github.com/RobLoach/raylib-lua-sol) | 5.5 | [Lua](http://www.lua.org) | Zlib |
| [raylib-luajit](https://github.com/homma/raylib-luajit) | 5.5 | [Lua](http://www.lua.org) | MIT |
| [raylib-luajit-generated](https://github.com/james2doyle/raylib-luajit-generated) | 5.5 | [Lua](http://www.lua.org) | MIT |
| [raylib-matte](https://github.com/jcorks/raylib-matte) | 4.6-dev | [Matte](https://github.com/jcorks/matte) | **???** |
| [Raylib.nelua](https://github.com/AuzFox/Raylib.nelua) | **5.5** | [nelua](https://nelua.io) | Zlib |
| [raylib-bindings](https://github.com/vaiorabbit/raylib-bindings) | 5.6-dev | [Ruby](https://www.ruby-lang.org/en) | Zlib |
| [naylib](https://github.com/planetis-m/naylib) | **5.6-dev** | [Nim](https://nim-lang.org) | MIT |
| [node-raylib](https://github.com/RobLoach/node-raylib) | 4.5 | [Node.js](https://nodejs.org/en) | Zlib |
| [raylib-odin](https://github.com/odin-lang/Odin/tree/master/vendor/raylib) | **5.5** | [Odin](https://odin-lang.org) | BSD-3Clause |
| [raylib_odin_bindings](https://github.com/Deathbat2190/raylib_odin_bindings) | 4.0-dev | [Odin](https://odin-lang.org) | MIT |
| [raylib-ocaml](https://github.com/tjammer/raylib-ocaml) | **5.0** | [OCaml](https://ocaml.org) | MIT |
| [TurboRaylib](https://github.com/turborium/TurboRaylib) | 4.5 | [Object Pascal](https://en.wikipedia.org/wiki/Object_Pascal) | MIT |
| [Ray4Laz](https://github.com/GuvaCode/Ray4Laz) | **5.5** | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal) | Zlib |
| [Raylib.4.0.Pascal](https://github.com/sysrpl/Raylib.4.0.Pascal) | 4.0 | [Free Pascal](https://en.wikipedia.org/wiki/Free_Pascal) | Zlib |
| [pyraylib](https://github.com/Ho011/pyraylib) | 3.7 | [Python](https://www.python.org) | Zlib |
| [raylib-python-cffi](https://github.com/electronstudio/raylib-python-cffi) | **5.5** | [Python](https://www.python.org) | EPL-2.0 |
| [raylibpyctbg](https://github.com/overdev/raylibpyctbg) | 5.5 | [Python](https://www.python.org) | MIT |
| [raylib-py](https://github.com/overdev/raylib-py) | 5.5 | [Python](https://www.python.org) | MIT |
| [raylib-python-ctypes](https://github.com/sDos280/raylib-python-ctypes) | 4.6-dev | [Python](https://www.python.org) | MIT |
| [raylib-pkpy-bindings](https://github.com/blueloveTH/pkpy-bindings) | 5.1-dev | [pocketpy](https://pocketpy.dev) | MIT |
| [raylib-php](https://github.com/joseph-montanez/raylib-php) | 4.5 | [PHP](https://en.wikipedia.org/wiki/PHP) | Zlib |
| [raylib-phpcpp](https://github.com/oraoto/raylib-phpcpp) | 3.5 | [PHP](https://en.wikipedia.org/wiki/PHP) | Zlib |
| [raylibr](https://github.com/jeroenjanssens/raylibr) | 4.0 | [R](https://www.r-project.org) | MIT |
| [raylib-ffi](https://github.com/ewpratten/raylib-ffi) | 5.5 | [Rust](https://www.rust-lang.org) | GPLv3 |
| [raylib-rs](https://github.com/raylib-rs/raylib-rs) | **5.5** | [Rust](https://www.rust-lang.org) | Zlib |
| [raylib-ruby](https://github.com/wilsonsilva/raylib-ruby) | 4.5 | [Ruby](https://www.ruby-lang.org) | Zlib |
| [Relib](https://github.com/RedCubeDev-ByteSpace/Relib) | 3.5 | [ReCT](https://github.com/RedCubeDev-ByteSpace/ReCT) | **???** |
| [racket-raylib](https://github.com/eutro/racket-raylib) | **5.5** | [Racket](https://racket-lang.org) | MIT/Apache-2.0 |
| [raylib-swift](https://github.com/STREGAsGate/Raylib) | 4.0 | [Swift](https://swift.org) | MIT |
| [raylib-scopes](https://github.com/salotz/raylib-scopes) | auto | [Scopes](http://scopes.rocks) | MIT |
| [raylib-SmallBASIC](https://github.com/smallbasic/smallbasic.plugins/tree/master/raylib) | **5.5** | [SmallBASIC](https://github.com/smallbasic/SmallBASIC) | GPLv3 |
| [raylib-umka](https://github.com/robloach/raylib-umka) | 4.5 | [Umka](https://github.com/vtereshkov/umka-lang) | Zlib |
| [raylib-v](https://github.com/vlang/raylib) | 5.5 | [V](https://vlang.io) | MIT/Unlicense |
| [raylib.v](https://github.com/irishgreencitrus/raylib.v) | 4.2 | [V](https://vlang.io) | Zlib |
| [raylib-vapi](https://github.com/lxmcf/raylib-vapi) | **5.0** | [Vala](https://vala.dev) | Zlib |
| [raylib-wren](https://github.com/TSnake41/raylib-wren) | 4.5 | [Wren](http://wren.io) | ISC |
| [raylib-zig](https://github.com/raylib-zig/raylib-zig) | **5.6-dev** | [Zig](https://ziglang.org) | MIT |
| [raylib.zig](https://github.com/ryupold/raylib.zig) | **5.1-dev** | [Zig](https://ziglang.org) | MIT |
| [raylib-zig-bindings](https://github.com/L-Briand/raylib-zig-bindings) | **5.0** | [Zig](https://ziglang.org) | Zlib |
| [hare-raylib](https://git.sr.ht/~evantj/hare-raylib) | **auto** | [Hare](https://harelang.org) | Zlib |
| [raylib-sunder](https://github.com/ashn-dot-dev/raylib-sunder) | **auto** | [Sunder](https://github.com/ashn-dot-dev/sunder) | 0BSD |
| [raylib-bqn](https://github.com/Brian-ED/raylib-bqn) | **5.0** | [BQN](https://mlochbaum.github.io/BQN) | MIT |
| [rayjs](https://github.com/mode777/rayjs) | 4.6-dev | [QuickJS](https://bellard.org/quickjs) | MIT |
| [raylib-raku](https://github.com/vushu/raylib-raku) | **auto** | [Raku](https://www.raku.org) | Artistic License 2.0 |
| [Raylib.lean](https://github.com/KislyjKisel/Raylib.lean) | **5.5-dev** | [Lean4](https://lean-lang.org) | BSD-3-Clause |
| [raylib-cobol](https://codeberg.org/glowiak/raylib-cobol) | **auto** | [COBOL](https://gnucobol.sourceforge.io) | Public domain |
| [raylib-apl](https://github.com/Brian-ED/raylib-apl) | **5.0** | [Dyalog APL](https://www.dyalog.com/) | MIT |
| [raylib-jai](https://github.com/ahmedqarmout2/raylib-jai) | **5.5** | [Jai](https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md) | MIT |
| [fnl-raylib](https://github.com/0riginaln0/fnl-raylib) | **5.5** | [Fennel](https://fennel-lang.org/) | MIT |
| [Rayua](https://github.com/uiua-lang/rayua) | **5.5** | [Uiua](https://www.uiua.org/) | **???** |
### 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 paradigm.
| Name | raylib Version | Language | License |
| ---------------------------------------------------- | :------------: | :------------------------------------------: | :-----: |
| [raylib-cpp](https://github.com/robloach/raylib-cpp) | **5.5** | [C++](https://en.wikipedia.org/wiki/C%2B%2B) | Zlib |
| [claylib](https://github.com/defun-games/claylib) | 4.5 | [Common Lisp](https://common-lisp.net) | Zlib |
| [rayed-bqn](https://github.com/Brian-ED/rayed-bqn) | **5.0** | [BQN](https://mlochbaum.github.io/BQN) | MIT |
| [DOOR](https://github.com/RealDoigt/DOOR) | 4.0 | [D](https://dlang.org) | MIT |
| [Iris](https://github.com/Marcos-cat/iris) | **5.5** | [Uiua](https://www.uiua.org/) | MIT |
### 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 |
| ---------------------------------------------------------------------------------- | :------------: | :---------------------------------------------------------------------: |
| [raylib-cppsharp](https://github.com/phxvyper/raylib-cppsharp) | 2.5 | [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) |
| [RaylibFS](https://github.com/dallinbeutler/RaylibFS) | 2.5 | [F#](https://fsharp.org) |
| [raylib\*d](https://github.com/Sepheus/raylib_d) | 2.5 | [D](https://dlang.org) |
| [bindbc-raylib](https://github.com/o3o/bindbc-raylib) | 3.0 | [D](https://dlang.org) |
| [go-raylib](https://github.com/chunqian/go-raylib) | 3.5 | [Go](https://golang.org) |
| [raylib-goplus](https://github.com/Lachee/raylib-goplus) | 2.6-dev | [Go](https://golang.org) |
| [ray-go](https://github.com/hecate-tech/ray-go) | 2.6-dev | [Go](https://golang.org) |
| [raylib-luamore](https://github.com/HDPLocust/raylib-luamore) | 3.0 | [Lua](http://www.lua.org) |
| [LuaJIT-Raylib](https://github.com/Bambofy/LuaJIT-Raylib) | 2.6 | [Lua](http://www.lua.org) |
| [raylib-lua-sol](https://github.com/RobLoach/raylib-lua-sol) | 2.5 | [Lua](http://www.lua.org) |
| [raylib-lua-ffi](https://github.com/raysan5/raylib/issues/693) | 2.0 | [Lua](http://www.lua.org) |
| [raylib-lua](https://github.com/raysan5/raylib-lua) | 1.7 | [Lua](http://www.lua.org) |
| [raylib-nelua](https://github.com/Andre-LA/raylib-nelua) | 3.0 | [Nelua](https://nelua.io) |
| [raylib-nim](https://github.com/Skrylar/raylib-nim) | 2.0 | [Nim](https://nim-lang.org) |
| [raylib-Nim](https://gitlab.com/define-private-public/raylib-Nim) | 1.7 | [Nim](https://nim-lang.org) |
| [nim-raylib](https://github.com/tomc1998/nim-raylib) | 3.1-dev | [Nim](https://nim-lang.org) |
| [raylib-Forever](https://github.com/Guevara-chan/Raylib-Forever) | auto | [Nim](https://nim-lang.org) |
| [NimraylibNow!](https://github.com/greenfork/nimraylib_now) | 4.2 | [Nim](https://nim-lang.org) |
| [raylib-haskell](https://github.com/DevJac/raylib-haskell) | 2.0 | [Haskell](https://www.haskell.org) |
| [raylib-cr](https://github.com/AregevDev/raylib-cr) | 2.5-dev | [Crystal](https://crystal-lang.org) |
| [raylib.cr](https://github.com/sam0x17/raylib.cr) | 2.0 | [Crystal](https://crystal-lang.org) |
| [cray](https://gitlab.com/Zatherz/cray) | 1.8 | [Crystal](https://crystal-lang.org) |
| [raylib-pas](https://github.com/tazdij/raylib-pas) | 3.0 | [Pascal](https://en.wikipedia.org/wiki/Pascal*(programming*language)) |
| [raylib-pascal](https://github.com/drezgames/raylib-pascal) | 2.0 | [Pascal](https://en.wikipedia.org/wiki/Pascal*(programming*language)) |
| [Graphics-Raylib](https://github.com/athreef/Graphics-Raylib) | 1.4 | [Perl](https://www.perl.org) |
| [raylib-ruby](https://github.com/a0/raylib-ruby) | 2.6 | [Ruby](https://www.ruby-lang.org/en) |
| [raylib-ruby-ffi](https://github.com/D3nX/raylib-ruby-ffi) | 2.0 | [Ruby](https://www.ruby-lang.org/en) |
| [raylib-mruby](https://github.com/lihaochen910/raylib-mruby) | 2.5-dev | [mruby](https://github.com/mruby/mruby) |
| [raylib-java](https://github.com/XoanaIO/raylib-java) | 2.0 | [Java](https://en.wikipedia.org/wiki/Java*(programming_language)) |
| [clj-raylib](https://github.com/lsevero/clj-raylib) | 3.0 | [Clojure](https://clojure.org) |
| [QuickJS-raylib](https://github.com/sntg-p/QuickJS-raylib) | 3.0 | [QuickJS](https://bellard.org/quickjs) |
| [raylib-duktape](https://github.com/RobLoach/raylib-duktape) | 2.6 | [JavaScript (Duktape)](https://en.wikipedia.org/wiki/JavaScript) |
| [raylib-chaiscript](https://github.com/RobLoach/raylib-chaiscript) | 2.6 | [ChaiScript](http://chaiscript.com) |
| [raylib-squirrel](https://github.com/RobLoach/raylib-squirrel) | 2.5 | [Squirrel](http://www.squirrel-lang.org) |
| [racket-raylib-2d](https://github.com/arvyy/racket-raylib-2d) | 2.5 | [Racket](https://racket-lang.org) |
| [raylib-php-ffi](https://github.com/oraoto/raylib-php-ffi) | 2.4-dev | [PHP](https://en.wikipedia.org/wiki/PHP) |
| [raylib-haxe](https://github.com/ibilon/raylib-haxe) | 2.4 | [Haxe](https://haxe.org) |
| [ringraylib](https://github.com/ringpackages/ringraylib) | 2.6 | [Ring](http://ring-lang.sourceforge.net) |
| [raylib-scm](https://github.com/yashrk/raylib-scm) | 2.5 | [Chicken Scheme](https://www.call-cc.org) |
| [raylib-chibi](https://github.com/VincentToups/raylib-chibi) | 2.5 | [Chibi-Scheme](https://github.com/ashinn/chibi-scheme) |
| [raylib-gambit-scheme](https://github.com/georgjz/raylib-gambit-scheme) | 3.1-dev | [Gambit Scheme](https://github.com/gambit/gambit) |
| [Euraylib](https://github.com/gAndy50/Euraylib) | 3.0 | [Euphoria](https://openeuphoria.org) |
| [raylib-odin](https://github.com/kevinw/raylib-odin) | 3.0 | [Odin](https://odin-lang.org) |
| [vraylib](https://github.com/waotzi/vraylib) | 3.5 | [V](https://vlang.io) |
| [raylib-vala](https://code.guddler.uk/mart/raylibVapi) | 3.0 | [Vala](https://wiki.gnome.org/Projects/Vala) |
| [raylib-jai](https://github.com/kujukuju/raylib-jai) | 3.1-dev | [Jai](https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md) |
| [ray.zig](https://github.com/BitPuffin/zig-raylib-experiments) | 2.5 | [Zig](https://ziglang.org) |
| [raylib-Ada](https://github.com/mimo/raylib-Ada) | 3.0 | [Ada](https://www.adacore.com/about-ada) |
| [raykit](https://github.com/Gamerfiend/raykit) | **???** | [Kit](https://www.kitlang.org) |
| [ray.mod](https://github.com/bmx-ng/ray.mod) | 3.0 | [BlitzMax](https://blitzmax.org) |
| [raylib-mosaic](https://github.com/pluckyporcupine/raylib-mosaic) | 3.0 | [Mosaic](https://github.com/sal55/langs/tree/master/Mosaic) |
| [raylib-xdpw](https://github.com/vtereshkov/raylib-xdpw) | 2.6 | [XD Pascal](https://github.com/vtereshkov/xdpw) |
| [raylib-carp](https://github.com/sacredbirdman/raylib-carp) | 3.0 | [Carp](https://github.com/carp-lang/Carp) |
| [raylib-fb](https://github.com/IchMagBier/raylib-fb) | 3.0 | [FreeBasic](https://www.freebasic.net) |
| [raylib-purebasic](https://github.com/D-a-n-i-l-o/raylib-purebasic) | 3.0 | [PureBasic](https://www.purebasic.com) |
| [raylib-ats2](https://github.com/mephistopheles-8/raylib-ats2) | 3.0 | [ATS2](http://www.ats-lang.org) |
| [raylib-beef](https://github.com/M0n7y5/raylib-beef) | 3.0 | [Beef](https://www.beeflang.org) |
| [raylib-never](https://github.com/never-lang/raylib-never) | 3.0 | [Never](https://github.com/never-lang/never) |
| [raylib.cbl](https://github.com/Martinfx/Cobol/tree/master/OpenCobol/Games/raylib) | 2.0 | [COBOL](https://en.wikipedia.org/wiki/COBOL) |
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!

2007
CHANGELOG

File diff suppressed because it is too large Load Diff

71
CMakeLists.txt Executable file → Normal file
View File

@@ -1,35 +1,58 @@
cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 3.25)
#this change avoid the warning that appear when we include raylib using Cmake fatch content
project(raylib)
# Config options
set(BUILD_EXAMPLES ON CACHE BOOL "Build the examples.")
set(BUILD_GAMES ON CACHE BOOL "Build the example games.")
# Avoid excessive expansion of variables in conditionals. In particular, if
# "PLATFORM" is "DRM" then:
#
# 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)
if(CMAKE_VERSION VERSION_LESS "3.1")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
set(CMAKE_C_FLAGS "-std=gnu99 ${CMAKE_C_FLAGS}")
# Makes a hidden visibility preset on a static lib respected
# This is used to hide glfw's symbols from the library exports when building an so/dylib
# See https://cmake.org/cmake/help/latest/policy/CMP0063.html
cmake_policy(SET CMP0063 NEW)
# Directory for easier includes
# Anywhere you see include(...) you can check <root>/cmake for that file
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
# Sets compiler flags and language standard
include(CompilerFlags)
# Registers build options that are exposed to cmake
include(CMakeOptions.txt)
if (UNIX AND NOT APPLE AND NOT "${PLATFORM}" MATCHES "DRM")
if (NOT GLFW_BUILD_WAYLAND AND NOT GLFW_BUILD_X11)
MESSAGE(FATAL_ERROR "Cannot disable both Wayland and X11")
endif()
else()
set (CMAKE_C_STANDARD 99)
endif()
include(CheckCCompilerFlag)
foreach(option -Werror=pointer-arith;-Werror=implicit-function-declaration)
CHECK_C_COMPILER_FLAG("${option}" COMPILER_HAS_THOSE_TOGGLES)
set(outcome "Failed")
if(COMPILER_HAS_THOSE_TOGGLES)
set(CMAKE_C_FLAGS "${option} ${CMAKE_C_FLAGS}")
set(outcome "works")
endif()
message(STATUS "Testing if ${option} can be used -- ${outcome}")
endforeach()
# Main sources directory (the second parameter sets the output directory name to raylib)
add_subdirectory(src raylib)
add_subdirectory(src release)
# Uninstall target, only create when building raylib by itself
# Avoid conflicting target names when using raylib with other libraries
if(NOT TARGET uninstall AND PROJECT_IS_TOP_LEVEL)
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/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()
if (${BUILD_GAMES})
add_subdirectory(games)
endif()
enable_testing()

39
CMakeOptions.txt Normal file
View File

@@ -0,0 +1,39 @@
# ## Config options ###
include(CMakeDependentOption)
include(EnumOption)
if(EMSCRIPTEN)
# When configuring web builds with "emcmake cmake -B build -S .", set PLATFORM to Web by default
SET(PLATFORM Web CACHE STRING "Platform to build for.")
endif()
enum_option(PLATFORM "Desktop;Web;Android;Raspberry Pi;DRM;SDL" "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." ${PROJECT_IS_TOP_LEVEL})
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)
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")
# GLFW build options
option(GLFW_BUILD_WAYLAND "Build the bundled GLFW with Wayland support" OFF)
option(GLFW_BUILD_X11 "Build the bundled GLFW with X11 support" ON)
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")
include(ParseConfigHeader)
foreach(FLAG IN LISTS CONFIG_HEADER_FLAGS)
string(REGEX MATCH "([^=]+)=(.+)" _ ${FLAG})
cmake_dependent_option(${CMAKE_MATCH_1} "" ${CMAKE_MATCH_2} CUSTOMIZE_BUILD ${CMAKE_MATCH_2})
endforeach()

View File

@@ -2,141 +2,75 @@
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 tutorials/examples?
- `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.
Use your best judgment, and feel free to propose changes to this document in a pull request.
### 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 is not clearly useful, 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.
- 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.md)
- [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 anything.
[raylib Wiki](https://github.com/raysan5/raylib/wiki) contains some information about the library and is open to anyone to 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 to read, write and understand code.
more common in 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
### Using raylib develop branch
raylib [master branch](https://github.com/raysan5/raylib) contains the latest raylib release but all
the future work is always done on [develop branch](https://github.com/raysan5/raylib/tree/develop),
it's far ahead of master and I try to keep it always stable with latest library changes.
Please, if issuing a bug or sending a pull-request, verify that you're using develop branch.
Note that while using develop branch predefined Notepad++ building scripts could not work, in that case,
use provided [Makefile](https://github.com/raysan5/raylib/blob/develop/src/Makefile) or [CMake](https://github.com/raysan5/raylib/blob/develop/src/CMakeLists.txt) building systems.
> `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:
To open new issues 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.
- If applicable, 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 the module, just report the issue, I will review it.
- You can check other issues to see how is being done!
If don't know which module, just report the issue, I will review it.
- You can check other issues to see how it's being done!
### Sending a Pull-Request
To send a pull-request, first of all, make sure you're sending it to [develop branch](https://github.com/raysan5/raylib/tree/develop). Here are some other rules:
- 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-request, 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
- 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). The more platforms where you can test it, the better, but don't worry
if you cannot test all the platforms.
### raylib bindings
Some people ported raylib to other languages in form of bindings or wrappers to the library, here is a list with the ones I'm aware of:
- [raylib C/C++ version (default)](https://github.com/raysan5/raylib)
- [raylib Lua binding](https://github.com/raysan5/raylib-lua)
- [raylib Go binding](https://github.com/gen2brain/raylib-go)
- [raylib Nim binding](https://gitlab.com/define-private-public/raylib-Nim)
- [raylib Crystal binding](https://gitlab.com/Zatherz/cray)
- [raylib Perl wrapper](https://metacpan.org/pod/Graphics::Raylib)
- raylib Pascal binding with custom IDE (closed-source)
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 and I usually
provide the icon/logo for that new language binding.
### 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 forum](http://forum.raylib.com/) - A good place for discussions or to ask for help.
- [raylib gitter](https://gitter.im/raylib) - A direct communication channel for project discussions.
- [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! :)
----
Here is a list of raylib contributors, these people have invested part of their time
contributing (in some way or another) to make the raylib project better. Huge thanks to all of them!
- [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](https://github.com/anidealgift) for helping on raygui development and tools development (raygui_styler).
- [Victor Fisac](https://github.com/victorfisac) for developing physics raylib module (physac) and implementing PBR 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](https://github.com/paezao) for his help on OSX to solve High DPI display issue. Thanks Marcelo!
- [Ghassan Al-Mashareqa](https://github.com/ghassanpl) for his amazing contribution with raylib Lua module, I just work over his code to implement [rlua](https://github.com/raysan5/raylib/blob/master/src/rlua.h)
- [Teodor Stoenescu](https://github.com/teodor-stoenescu) for his improvements on OBJ object loading.
- [RDR8](https://github.com/RDR8) for helping with Linux build improvements
- [Saggi Mizrahi](https://github.com/ficoos) for multiple fixes on Linux and audio system
- [Daniel Lemos](https://github.com/xspager) for fixing issues on Linux games building
- [Joel Davis](https://github.com/joeld42) for adding raycast picking utilities and a [great example](https://github.com/raysan5/raylib/blob/master/examples/models/models_mesh_picking.c)
- [Richard Goodwin](https://github.com/AudioMorphology) for adding RPI touchscreen support
- [Milan Nikolic](https://github.com/gen2brain) for adding Android build support with custom standalone toolchain
- [Michael Vetter](https://github.com/jubalh) for improvements on build system and adding meson support for Linux
- [Wilhem Barbier](https://github.com/nounoursheureux) for adding Image generation functions and some fixes
- [Benjamin Summerton](https://github.com/define-private-public) for improving OSX building and his amazing work on CMake build sytem
- [MartinFX](https://github.com/Martinfx) for adding compilation support for FreeBSD OS
- [Wilhem Barbier](https://github.com/nounoursheureux) for supporting default shaders on shader loading, if shader not provided
- [Ahmad Fatoum](https://github.com/a3f) for implementing continuus integration support for raylib (Travis and AppVeyor) and greatly improving build system.
- [SamNChiet](https://github.com/SamNChiet) for his work on UWP inputs implementation.
- [David Reid](https://github.com/mackron) for a complete review of audio module to support his amazing mini_al audio library.
- [Kai](https://github.com/questor) for multiple code reviews and improvements.
Please, if I forget someone in this list, excuse me and write me an email to remind me to add you!

98
CONVENTIONS.md Normal file
View File

@@ -0,0 +1,98 @@
## C Coding Style Conventions
Here 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` (avoid `10.f`)
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
- Comments always start with space + capital letter and never end with a '.', place them **before** the line(s) they refer to
```c
// This is a comment in raylib or raylib examples
```
- 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 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
FAQ.md Normal file
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 at [`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 over 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 it 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 advanced 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 can 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 being 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 are 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).

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? SEO, style, code writting: https://github.com/raysan5/raylib.com
- 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.html) or contributing with [raylib patreon](https://www.patreon.com/raysan5). It will really motivate to continue improving this project...
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:ray@raylib.com "Ramon Santamaria - Ray San"

View File

@@ -1,118 +1,90 @@
<img src="https://github.com/raysan5/raylib/blob/master/logo/logo256x256.png" width=256>
![raylib logo](logo/raylib_256x256.png)
history
-------
introduction
------------
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.
I started developing videogames in 2006 and some years later I started teaching videogames development to young people with artistic profiles, most of students had never written a single line of code.
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!
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 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.
But WinBGI was not the clearest 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 lib, hardware accelerated, clear function names, quite organized, well structured,
plain C coding and, the most important, primarily intended to LEARN videogames programming.
So, I decided to create my own library, hardware accelerated, clear function names, quite organized, well structured, plain C coding and, most importantly, 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.
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.
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.
On April 2014, after 6 months of first raylib release, raylib 1.1 was 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.
- 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.
- [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.
Some other big changes of this new version have been the support for OGG file 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.
Lots of code changes and a 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/).
On September 2014, after 5 months 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 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.
It's been some months of really hard work to accommodate raylib to those new platforms while keeping it easy for the users. On Android, raylib manages internally the activity cycle, 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.
- A new display initialization system has been created to support multiple resolutions, adding black bars if required; the user only defines the desired screen size and it gets properly displayed.
Now raylib can easily deploy games to Android devices and Raspberry Pi (console mode).
- 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.
Lots of code changes and a 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).
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.
- 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 post-processing 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).
- 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.
New [gestures](https://github.com/raysan5/raylib/blob/develop/src/gestures.h) module simplifies gestures detection on Android and HTML5 programs.
- A brand new [camera](https://github.com/raysan5/raylib/blob/master/src/rcamera.h) 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/core_3d_camera_free.c) and [core_3d_camera_first_person.c](https://github.com/raysan5/raylib/blob/master/examples/core/core_3d_camera_first_person.c).
[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.
- 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/examples/shapes/raygui.h), the new immediate-mode GUI module offers a set of functions to create simple user interfaces, primarily intended for tools development. It's still in an 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.
Lots of code changes and a 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.
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.
- First big addition is a set of [Image manipulation functions](https://github.com/raysan5/raylib/blob/master/src/raylib.h#L1331) that have been added to crop, resize, colorize, flip, dither and even draw image-to-image or text-to-image. Now 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.
- 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.
- 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/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.
- [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/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.
- [gestures](https://github.com/raysan5/raylib/blob/master/src/rgestures.h) module has been redesigned and simplified, now it can process touch events from any source, including the mouse. This way, gestures system can be used on any platform providing a 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).
- 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.
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 users can save and load game data in a file (only some platforms are supported). A simple [easings](https://github.com/raysan5/raylib/blob/master/examples/shapes/reasings.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
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.
@@ -122,83 +94,431 @@ 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).
- 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 parameters, 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 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.
- 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 to 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.
- 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.
- 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 significantly 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.
- Audio chiptunes support and mixing channels: Added support for module audio music (.xm, .mod) loading and playing. Multiple mixing channels are now also supported. All these 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.
Other additions include a [2D camera system](https://github.com/raysan5/raylib/blob/master/examples/core/core_2d_rcamera.c), render textures for offline render (and most comprehensive [postprocessing](https://github.com/raysan5/raylib/blob/master/examples/shaders/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.
This new version is so massive that is difficult to list all the improvements, most of the raylib modules have been reviewed and [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.h) module has been completely redesigned to accommodate 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/develop/examples/rlgl_standalone.c) and [audio](https://github.com/raysan5/raylib/blob/develop/examples/audio_standalone.c) raylib modules as standalone libraries.
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/others/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:
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 commemorates 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.
- 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/develop/src/audio.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/develop/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!
- 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 completely self-contained, no external libraries are required anymore!
[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!
- [Physac](https://github.com/victorfisac/Physac) module has been moved to its own repository and it has been improved A LOT, actually, the 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.
- 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 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.
- 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.
Build system improvement. Added support for raylib dynamic library generation (raylib.dll) for users that prefer dynamic library linking. Also thinking on advanced users, it has been added pre-configured [Visual Studio C++ 2015 solution](https://github.com/raysan5/raylib/tree/master/projects/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:
On May 2017, around 6 months after raylib 1.6, comes another raylib installment, 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, funtions for VR simulation and much more... Just check [CHANGELOG](CHANGELOG) for a detailed list of additions!
- 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.
- Support of [configuration flags](https://github.com/raysan5/raylib/issues/200) on every raylib module. Advanced users can customize raylib just by choosing desired features, and 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.
- 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 compilation 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.
- New [examples](http://www.raylib.com/examples.html) and [sample games](http://www.raylib.com/games.html) added. All sample material has been reviewed, removing useless examples and adding more comprehensive ones; all material has been ported to the latest raylib version and tested on 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...
- Improved library consistency and organization in general. Functions and parameters have been renamed, some parts of the library have been cleaned and simplified, some functions have 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 timming improvements, public log system, rres file format support, automatic GIF recording...
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 learn videogames programming**. Enjoy it.
And here 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/develop/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.
- [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 purposes.
[Parametric mesh generation](https://github.com/raysan5/raylib/blob/develop/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.
- [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/develop/examples/models/models_material_pbr.c) is also provided for reference.
- PBR Materials support, a completely redesigned shaders and material system allows advanced 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/develop/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.
- 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 the 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/develop/src/rlgl.c) 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/develop/examples/others/rlgl_standalone.c). rlgl offers a pseudo-OpenGL 1.1 immediate-mode programming-style layer, with backends to multiple OpenGL versions.
- [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/develop/src/rlgl.c) 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.
- [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.
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 months since last raylib version was published, a lot of things have changed since then... This new raylib version represents an inflection point in the development of the library and so, we jump to a new major version... Here is the result of almost **5 years and thousands of hours of hard work**... here 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-dependent 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. Undoubtedly, 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, simplifying 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 provided 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, undoubtedly its development has exceeded any initial objective; raylib has become a simple and easy-to-use truly 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 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 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 behavior.
- **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 accommodate 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 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 received a big redesign and review, targeting portability, integration with other platforms and making it a perfect option for other programming [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 variable 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 easily hook their own memory allocation 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 reviewed 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 accommodate 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 accommodate 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 advanced 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 advanced 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, hiding, 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 different 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 the last raylib release and here is already a new one, this time with a bunch of internal redesigns and improvements. Surprisingly, on April 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 streaming 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**.
Besides 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 inflection 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 written 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 assisted game playing, in-game cinematics, speedruns, AI playing and more! Note this feature is still experimental.
- **Custom game-loop control**: As requested by some advanced users, **the game-loop control can be exposed** compiling raylib with the config flag: `SUPPORT_CUSTOM_FRAME_CONTROL`. It's intended for advanced users that want to control the events polling and also the timing 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!
Undoubtedly, **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 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 advanced 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 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 advanced 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 themselves.
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 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 humungous 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`... Undoubtedly, **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 alternative 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!
Undoubtedly, this is the **biggest raylib update in 10 years**. Many new features and improvements with a special focus on maintainability and long-term sustainability. **Undoubtedly, this is the raylib of the future**.
**Enjoy programming!** :)
notes on raylib 5.5
-------------------
One year after raylib 5.0 release, arrives `raylib 5.5`, the next big revision of the library. It's been **11 years** since raylib 1.0 release and in all this time it has never stopped growing and improving. With an outstanding number of new contributors and improvements, it's, again, the biggest raylib release to date.
Some numbers for this release:
- **+270** closed issues (for a TOTAL of **+1810**!)
- **+800** commits since previous RELEASE (for a TOTAL of **+7770**!)
- **+30** functions ADDED to raylib API (for a TOTAL of **580**!)
- **+110** functions REVIEWED with fixes and improvements
- **+140** new contributors (for a TOTAL of **+640**!)
Highlights for `raylib 5.5`:
- **`NEW` raylib pre-configured Windows package**: The new raylib **portable and self-contained Windows package** for `raylib 5.5`, intended for nobel devs that start in programming world, comes with one big addition: support for **C code building for Web platform with one-single-mouse-click!** For the last 10 years, the pre-configured raylib Windows package allowed to edit simple C projects on Notepad++ and easely compile Windows executables with an automatic script; this new release adds the possibility to compile the same C projects for Web platform with a simple mouse click. This new addition **greatly simplifies C to WebAssembly project building for new users**. The `raylib Windows Installer` package can be downloaded for free from [raylib on itch.io](https://raysan5.itch.io/raylib).
- **`NEW` raylib project creator tool**: A brand new tool developed to help raylib users to **setup new projects in a professional way**. `raylib project creator` generates a complete project structure with **multiple build systems ready-to-use** and **GitHub CI/CD actions pre-configured**. It only requires providing some C files and basic project parameters! The tools is [free and open-source](https://raysan5.itch.io/raylib-project-creator), and [it can be used online](https://raysan5.itch.io/raylib-project-creator)!.
- **`NEW` Platform backend supported: RGFW**: Thanks to the `rcore` platform-split implemented in `raylib 5.0`, **adding new platforms backends has been greatly simplified**, new backends can be added using provided template, self-contained in a single C module, completely portable. A new platform backend has been added: [`RGFW`](https://github.com/raysan5/raylib/blob/master/src/platforms/rcore_desktop_rgfw.c). `RGFW` is a **new single-file header-only portable library** ([`RGFW.h`](https://github.com/ColleagueRiley/RGFW)) intended for platform-functionality management (windowing and inputs); in this case for **desktop platforms** (Windows, Linux, macOS) but also for **Web platform**. It adds a new alternative to the already existing `GLFW` and `SDL` platform backends.
- **`NEW` Platform backend version supported: SDL3**: Previous `raylib 5.0` added support for `SDL2` library, and `raylib 5.5` not only improves SDL2 functionality, with several issues reviewed, but also adds support for the recently released big SDL update in years: [`SDL3`](https://wiki.libsdl.org/SDL3/FrontPage). Now users can **select at compile time the desired SDL version to use**, increasing the number of potential platforms supported in the future!
- **`NEW` Retro-console platforms supported: Dreamcast, N64, PSP, PSVita, PS4**: Thanks to the platform-split on `raylib 5.0`, **supporting new platform backends is easier than ever!** Along the raylib `rlgl` module support for the `OpenGL 1.1` graphics API, it opened the door to [**multiple homebrew retro-consoles backend implementations!**](https://github.com/raylib4Consoles) It's amazing to see raylib running on +20 year old consoles like [Dreamcast](https://github.com/raylib4Consoles/raylib4Dreamcast), [PSP](https://github.com/raylib4Consoles/raylib4Psp) or [PSVita](https://github.com/psp2dev/raylib4Vita), considering the hardware constraints of those platforms and proves **raylib outstanding versability!** Those additional platforms can be found in separate repositories and have been created by the amazing programmer Antonio Jose Ramos Marquez (@psxdev).
- **`NEW` GPU Skinning support**: After lots of requests for this feature, it has been finally added to raylib thanks to the contributor Daniel Holden (@orangeduck), probably the developer that has further pushed models animations with raylib, developing two amazing tools to visualize and test animations: [GenoView](https://github.com/orangeduck/GenoView) and [BVHView](https://github.com/orangeduck/BVHView). Adding GPU skinning was a tricky feature, considering it had to be **available for all raylib supported platforms**, including limited ones like Raspberry Pi with OpenGL ES 2.0, where some advance OpenGL features are not available (UBO, SSBO, Transform Feedback) but a multi-platform solution was found to make it possible. A new example, [`models_gpu_skinning`](https://github.com/raysan5/raylib/blob/master/examples/models/models_gpu_skinning.c) has been added to illustrate this new functionality. As an extra, previous existing CPU animation system has been greatly improved, multiplying performance by a factor (simplifiying required maths).
- **`NEW` [`raymath`](https://github.com/raysan5/raylib/blob/master/src/raymath.h) C++ operators**: After several requested for this feature, C++ math operators for `Vector2`, `Vector3`, `Vector4`, `Quaternion` and `Matrix` has been added to `raymath` as an extension to current implementation. Despite being only available for C++ because C does not support it, these operators **simplify C++ code when doing math operations**.
Beside those new big features, `raylib 5.5` comes with MANY other improvements:
- Normals support on batching system
- Clipboard images reading support
- CRC32/MD5/SHA1 hash computation
- Gamepad vibration support
- Improved font loading (no GPU required) with BDF fonts support
- Time-based camera movement
- Improved GLTF animations loading
...and [much much more](https://github.com/raysan5/raylib/blob/master/CHANGELOG), including **many functions reviews and new functions added!**
Make sure to check raylib [CHANGELOG](https://github.com/raysan5/raylib/blob/master/CHANGELOG) for a detailed list of changes!
To end with, I want to **thank all the contributors (+640!**) that along the years have **greatly improved raylib** and pushed it further and better day after day. Thanks to all of them, raylib is the amazing library it is today.
Last but not least, I want to thank **raylib sponsors and all the raylib community** for their support and continuous engagement with the library, creating and sharing amazing raylib projects on a daily basis. **Thanks for making raylib a great platform to enjoy games/tools/graphic programming!**
**After 11 years of development, `raylib 5.5` is the best raylib ever.**
**Enjoy programming with raylib!** :)

View File

@@ -1,8 +1,4 @@

This game sources are licensed under an unmodified zlib/libpng license,
which is an OSI-certified, BSD-like license:
Copyright (c) 2013-2017 Ramon Santamaria (@raysan5)
Copyright (c) 2013-2025 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.
@@ -17,4 +13,4 @@ applications, and to alter it and redistribute it freely, subject to the followi
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.
3. This notice may not be removed or altered from any source distribution.

View File

@@ -1,49 +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
------
The following fonts [provided with raylib](https://github.com/raysan5/raylib/tree/develop/examples/text/resources/fonts) 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
2d art
------
[scarfy spritesheet](https://github.com/raysan5/raylib/blob/develop/examples/textures/resources/scarfy.png) and [fudesumi image](https://github.com/raysan5/raylib/blob/develop/examples/textures/resources/fudesumi.png) have been created by [Eiden Marsal](https://www.artstation.com/artist/marshall_z) and licensed as [Creative Commons Attribution-NonCommercial 3.0](https://creativecommons.org/licenses/by-nc/3.0/legalcode)
3d models
---------
[dwarf 3d model and textures](https://github.com/raysan5/raylib/tree/develop/examples/models/resources/model) have been created by David Moreno and licensed as [Creative Commons Attribution-NonCommercial 3.0](https://creativecommons.org/licenses/by-nc/3.0/legalcode)

175
README.md
View File

@@ -1,84 +1,151 @@
<img align="left" 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">
**raylib is a simple and easy-to-use library to learn videogames programming.**
**raylib is a simple and easy-to-use library to enjoy videogames programming.**
raylib is highly inspired by Borland BGI graphics lib and by XNA framework.
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 could be useful for prototyping, tools development, graphic applications, embedded systems and education.
*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.html)
Ready to learn? Jump to [code examples!](https://www.raylib.com/examples.html)
[![Build Status](https://travis-ci.org/raysan5/raylib.svg?branch=develop)](https://travis-ci.org/raysan5/raylib)
[![https://ci.appveyor.com/api/projects/status/github/raysan5/raylib?svg=true](https://ci.appveyor.com/api/projects/status/github/raysan5/raylib?svg=true)](https://ci.appveyor.com/project/raysan5/raylib)
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/raylib/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![License](https://img.shields.io/badge/license-zlib%2Flibpng-blue.svg)](LICENSE.md)
[![Twitter URL](https://img.shields.io/twitter/url/http/shields.io.svg?style=social&label=Follow)](https://twitter.com/raysan5)
---
<br>
[![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/5.5)](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)
[![Discord Members](https://img.shields.io/discord/426912293134270465.svg?label=Discord&logo=discord)](https://discord.gg/raylib)
[![Reddit Static Badge](https://img.shields.io/badge/-r%2Fraylib-red?style=flat&logo=reddit&label=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)
[![Build Windows](https://github.com/raysan5/raylib/actions/workflows/build_windows.yml/badge.svg)](https://github.com/raysan5/raylib/actions/workflows/build_windows.yml)
[![Build Linux](https://github.com/raysan5/raylib/actions/workflows/build_linux.yml/badge.svg)](https://github.com/raysan5/raylib/actions/workflows/build_linux.yml)
[![Build macOS](https://github.com/raysan5/raylib/actions/workflows/build_macos.yml/badge.svg)](https://github.com/raysan5/raylib/actions/workflows/build_macos.yml)
[![Build WebAssembly](https://github.com/raysan5/raylib/actions/workflows/build_webassembly.yml/badge.svg)](https://github.com/raysan5/raylib/actions/workflows/build_webassembly.yml)
[![Build CMake](https://github.com/raysan5/raylib/actions/workflows/build_cmake.yml/badge.svg)](https://github.com/raysan5/raylib/actions/workflows/build_cmake.yml)
[![Build examples Windows](https://github.com/raysan5/raylib/actions/workflows/build_examples_windows.yml/badge.svg)](https://github.com/raysan5/raylib/actions/workflows/build_examples_windows.yml)
[![Build examples Linux](https://github.com/raysan5/raylib/actions/workflows/build_examples_linux.yml/badge.svg)](https://github.com/raysan5/raylib/actions/workflows/build_examples_linux.yml)
features
--------
- **NO external dependencies**, all required libraries are [included 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, FNT, BDF, sprite 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**
* Written in plain C code (C99) in PascalCase/camelCase notation
* Hardware accelerated with OpenGL (1.1, 2.1, 3.3 or ES2 - choose at compile)
* Unique OpenGL abstraction layer (usable as standalone module): [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.c)
* Powerful fonts module with SpriteFonts support (XNA fonts, AngelCode fonts, TTF)
* Outstanding texture formats support, including compressed formats (DXT, ETC, ASTC)
* Full 3d support for 3d Shapes, Models, Billboards, Heightmaps and more!
* Flexible Materials system, supporting classic maps and PBR maps
* 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, OGG, FLAC, XM, MOD)
* Multiple platforms support: Windows, Linux, FreeBSD, MacOS, UWP, Android, Raspberry Pi, HTML5.
* VR stereo rendering with configurable HMD device parameters
* NO external dependencies, all required libraries included with raylib
* Complete bindings to LUA ([raylib-lua](https://github.com/raysan5/raylib-lua)) and Go ([raylib-go](https://github.com/gen2brain/raylib-go))
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 core module the outstanding [GLFW3](http://www.glfw.org/) library. The best option I found for
multiplatform (Windows, Linux, Mac) window/context and input management (clean, focused, great license, well documented, modern, maintained, ...).
int main(void)
{
InitWindow(800, 450, "raylib [core] example - basic window");
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.
while (!WindowShouldClose())
{
BeginDrawing();
ClearBackground(RAYWHITE);
DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY);
EndDrawing();
}
*On Android, `native_app_glue module` (provided by Android NDK) and native Android libraries are used to manage window/context, inputs and activity life cycle.*
CloseWindow();
*On Raspberry Pi, Videocore API and EGL libraries are used for window/context management and raw inputs reading.*
return 0;
}
```
build and installation
----------------------
Binary releases for Windows, Linux and macOS are available at the [Github Releases](https://github.com/raysan5/raylib/releases) page. Raylib is also available via following package managers:
raylib binary releases for Windows, Linux, macOS, Android and HTML5 are available at the [Github Releases page](https://github.com/raysan5/raylib/releases).
* Homebrew: `brew install raylib`
raylib is also available via multiple package managers on multiple OS distributions.
To build raylib yourself, check out the [raylib Wiki](https://github.com/raysan5/raylib/wiki) for detailed instructions.
#### Installing and building raylib on multiple platforms
raylib has been developed using exclusively two tools:
[raylib Wiki](https://github.com/raysan5/raylib/wiki#development-platforms) contains detailed instructions on building and usage on multiple platforms.
* 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 recommended to develop with raylib, in fact, those are the tools my students use.
- [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)
contact
-------
*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.*
* 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)
* YouTube: [https://www.youtube.com/channel/raylib](https://www.youtube.com/channel/UC8WIBkhYb5sBNqXO1mZ7WSQ)
#### Setup raylib with multiple IDEs
If you are using raylib and you enjoy it, please, [let me know][raysan5].
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.
If you feel you can help, then, [helpme!](http://www.raylib.com/helpme.html)
[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 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.
Some additional documentation about raylib design can be found in [raylib GitHub Wiki](https://github.com/raysan5/raylib/wiki). Here are the relevant links:
- [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)
contact and networks
---------------------
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)! :)
- 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)
- BlueSky: [https://bsky.app/profile/raysan5](https://bsky.app/profile/raysan5.bsky.social)
- 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)
contributors
------------
<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
-------
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.md) for further details.
[raysan5]: mailto:ray@raylib.com "Ramon Santamaria - Ray San"
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.
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.

View File

@@ -1,17 +1,61 @@
roadmap
-------
# raylib roadmap
Current version of raylib is complete and functional but there is still a lot of room for improvement.
Here it is a wish-list with features and ideas to improve the library.
Here 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 that [raylib source code](https://github.com/raysan5/raylib/tree/develop/src) has some *TODO* marks around code 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.
- [GitHub PRs](https://github.com/raysan5/raylib/pulls) open with improvements to be reviewed.
- [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 6.0 wishlist](https://github.com/raysan5/raylib/discussions/4660)
- [raylib 5.0 wishlist](https://github.com/raysan5/raylib/discussions/2952)
- [raylib wishlist 2022](https://github.com/raysan5/raylib/discussions/2272)
- [raylib wishlist 2021](https://github.com/raysan5/raylib/discussions/1502)
_Current version of raylib is complete and functional but there is always room for improvements._
**raylib 5.x**
- [ ] `rcore`: Support additional platforms: iOS, consoles?
- [ ] `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
**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 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 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
**raylib 2.5**
- [x] Support Animated models
- [x] Support glTF models file format
- [x] Unicode support on text drawing
**raylib 2.0**
- [x] Removed external dependencies (GLFW3 and OpenAL)
- [x] Support TCC compiler (32bit and 64bit)
**raylib 1.x**
- [ ] Basic GPU stats sytem (memory, draws, time...)
- [ ] Improved custom file-format (.rres) and packaging tool
- [ ] Touch-based camera controls for Android
- [ ] Quaternions-based camera system
**raylib 1.8**
- [x] Improved Materials system with PBR support
- [x] Procedural image generation functions (spot, gradient, noise...)
@@ -22,7 +66,7 @@ Note that [raylib source code](https://github.com/raysan5/raylib/tree/develop/sr
- [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
@@ -31,7 +75,7 @@ Note that [raylib source code](https://github.com/raysan5/raylib/tree/develop/sr
**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] Support lighting: Omni, Directional and Spotlights
- [x] Redesign physics module (physac)
- [x] Chiptunes audio modules support
@@ -47,7 +91,3 @@ Note that [raylib source code](https://github.com/raysan5/raylib/tree/develop/sr
- [x] Redesign gestures module to be multiplatform
- [x] Module raymath as header-only and functions inline
- [x] Add Easings module (easings.h)
Any feature missing? Do you have a request? [Let me know!][raysan5]
[raysan5]: mailto:ray@raylib.com "Ramon Santamaria - Ray San"

View File

@@ -1,65 +0,0 @@
#os: Visual Studio 2015
clone_depth: 5
cache:
- C:\ProgramData\chocolatey\bin -> appveyor.yml
- C:\ProgramData\chocolatey\lib -> appveyor.yml
init:
- cmake -E remove c:\programdata\chocolatey\bin\cpack.exe
- set PATH=%PATH:C:\Program Files (x86)\Git\usr\bin;=%
- set PATH=%PATH:C:\Program Files\Git\usr\bin;=%
- if [%BITS%]==[32] set MINGW=C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32
- if [%BITS%]==[64] set MINGW=C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64
- if [%COMPILER%]==[mingw] set PATH=%MINGW%\bin;%PATH%
- set RAYLIB_PACKAGE_SUFFIX=-Win%BITS%-%COMPILER%
- set VERBOSE=1
environment:
matrix:
- compiler: mingw
bits: 32
examples: ON
- compiler: mingw
bits: 64
examples: ON
- compiler: msvc15
bits: 32
examples: OFF
- compiler: msvc15
bits: 64
examples: OFF
before_build:
- if [%compiler%]==[mingw] set CFLAGS=-m%BITS% & set LDFLAGS=-m%BITS% & set GENERATOR="MinGW Makefiles"
- if [%COMPILER%]==[msvc15] if [%BITS%]==[32] set GENERATOR="Visual Studio 14 2015"
- if [%COMPILER%]==[msvc15] if [%BITS%]==[64] set GENERATOR="Visual Studio 14 2015 Win64"
- mkdir build
- cd build
build_script:
- cmake -G %GENERATOR% -DSTATIC_RAYLIB=ON -DSHARED_RAYLIB=ON -DBUILD_EXAMPLES=%examples% -DBUILD_GAMES=%examples% ..
- cmake --build . --target install
after_build:
- cmake --build . --target package
before_test:
test_script:
artifacts:
- path: 'build\*.zip'
deploy:
- provider: GitHub
auth_token:
secure: OxKnnT3tlkPl9365cOO84rDWU4UkHIYJc0D3r3Tv7rB3HaR2BBhlhCnl7g3nuOJy
artifact: /.*\.zip/
draft: false
prerelease: false
force_update: true
on:
branch: develop
appveyor_repo_tag: true # deploy on tag push only

687
build.zig Normal file
View File

@@ -0,0 +1,687 @@
const std = @import("std");
const builtin = @import("builtin");
/// Minimum supported version of Zig
const min_ver = "0.15.1";
const emccOutputDir = "zig-out" ++ std.fs.path.sep_str ++ "htmlout" ++ std.fs.path.sep_str;
const emccOutputFile = "index.html";
comptime {
const order = std.SemanticVersion.order;
const parse = std.SemanticVersion.parse;
if (order(builtin.zig_version, parse(min_ver) catch unreachable) == .lt)
@compileError("Raylib requires zig version " ++ min_ver);
}
pub const emsdk = struct {
const zemscripten = @import("zemscripten");
pub fn shell(b: *std.Build) std.Build.LazyPath {
return b.dependency("raylib", .{}).path("src/shell.html");
}
pub const FlagsOptions = struct {
optimize: std.builtin.OptimizeMode,
asyncify: bool = true,
};
pub fn emccDefaultFlags(allocator: std.mem.Allocator, options: FlagsOptions) zemscripten.EmccFlags {
var emcc_flags = zemscripten.emccDefaultFlags(allocator, .{
.optimize = options.optimize,
.fsanitize = true,
});
if (options.asyncify)
emcc_flags.put("-sASYNCIFY", {}) catch unreachable;
return emcc_flags;
}
pub const SettingsOptions = struct {
optimize: std.builtin.OptimizeMode,
es3: bool = true,
emsdk_allocator: zemscripten.EmsdkAllocator = .emmalloc,
};
pub fn emccDefaultSettings(allocator: std.mem.Allocator, options: SettingsOptions) zemscripten.EmccSettings {
var emcc_settings = zemscripten.emccDefaultSettings(allocator, .{
.optimize = options.optimize,
.emsdk_allocator = options.emsdk_allocator,
});
if (options.es3)
emcc_settings.put("FULL_ES3", "1") catch unreachable;
emcc_settings.put("USE_GLFW", "3") catch unreachable;
emcc_settings.put("EXPORTED_RUNTIME_METHODS", "['requestFullscreen']") catch unreachable;
return emcc_settings;
}
pub fn emccStep(b: *std.Build, raylib: *std.Build.Step.Compile, wasm: *std.Build.Step.Compile, options: zemscripten.StepOptions) *std.Build.Step {
const activate_emsdk_step = zemscripten.activateEmsdkStep(b);
const emsdk_dep = b.dependency("emsdk", .{});
raylib.root_module.addIncludePath(emsdk_dep.path("upstream/emscripten/cache/sysroot/include"));
wasm.root_module.addIncludePath(emsdk_dep.path("upstream/emscripten/cache/sysroot/include"));
const emcc_step = zemscripten.emccStep(b, wasm, options);
emcc_step.dependOn(activate_emsdk_step);
return emcc_step;
}
pub fn emrunStep(
b: *std.Build,
html_path: []const u8,
extra_args: []const []const u8,
) *std.Build.Step {
return zemscripten.emrunStep(b, html_path, extra_args);
}
};
fn setDesktopPlatform(raylib: *std.Build.Step.Compile, platform: PlatformBackend) void {
switch (platform) {
.glfw => raylib.root_module.addCMacro("PLATFORM_DESKTOP_GLFW", ""),
.rgfw => raylib.root_module.addCMacro("PLATFORM_DESKTOP_RGFW", ""),
.sdl => raylib.root_module.addCMacro("PLATFORM_DESKTOP_SDL", ""),
.android => raylib.root_module.addCMacro("PLATFORM_ANDROID", ""),
else => {},
}
}
/// A list of all flags from `src/config.h` that one may override
const config_h_flags = outer: {
// Set this value higher if compile errors happen as `src/config.h` gets larger
@setEvalBranchQuota(1 << 20);
const config_h = @embedFile("src/config.h");
var flags: [std.mem.count(u8, config_h, "\n") + 1][]const u8 = undefined;
var i = 0;
var lines = std.mem.tokenizeScalar(u8, config_h, '\n');
while (lines.next()) |line| {
if (!std.mem.containsAtLeast(u8, line, 1, "SUPPORT")) continue;
if (std.mem.containsAtLeast(u8, line, 1, "MODULE")) continue;
if (std.mem.startsWith(u8, line, "//")) continue;
if (std.mem.startsWith(u8, line, "#if")) continue;
var flag = std.mem.trimLeft(u8, line, " \t"); // Trim whitespace
flag = flag["#define ".len - 1 ..]; // Remove #define
flag = std.mem.trimLeft(u8, flag, " \t"); // Trim whitespace
flag = flag[0 .. std.mem.indexOf(u8, flag, " ") orelse continue]; // Flag is only one word, so capture till space
flag = "-D" ++ flag; // Prepend with -D
flags[i] = flag;
i += 1;
}
// Uncomment this to check what flags normally get passed
//@compileLog(flags[0..i].*);
break :outer flags[0..i].*;
};
fn compileRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode, options: Options) !*std.Build.Step.Compile {
var raylib_flags_arr: std.ArrayList([]const u8) = .empty;
defer raylib_flags_arr.deinit(b.allocator);
const raylib = b.addLibrary(.{
.name = "raylib",
.linkage = options.linkage,
.root_module = b.createModule(.{
.optimize = optimize,
.target = target,
.link_libc = true,
}),
});
try raylib_flags_arr.appendSlice(
b.allocator,
&[_][]const u8{
"-std=gnu99",
"-D_GNU_SOURCE",
"-DGL_SILENCE_DEPRECATION=199309L",
"-fno-sanitize=undefined", // https://github.com/raysan5/raylib/issues/3674
},
);
if (options.linkage == .dynamic) {
try raylib_flags_arr.appendSlice(
b.allocator,
&[_][]const u8{
"-fPIC",
"-DBUILD_LIBTYPE_SHARED",
},
);
}
// Sets a flag indiciating the use of a custom `config.h`
try raylib_flags_arr.append(b.allocator, "-DEXTERNAL_CONFIG_FLAGS");
if (options.config.len > 0) {
// Splits a space-separated list of config flags into multiple flags
//
// Note: This means certain flags like `-x c++` won't be processed properly.
// `-xc++` or similar should be used when possible
var config_iter = std.mem.tokenizeScalar(u8, options.config, ' ');
// Apply config flags supplied by the user
while (config_iter.next()) |config_flag|
try raylib_flags_arr.append(b.allocator, config_flag);
// Apply all relevant configs from `src/config.h` *except* the user-specified ones
//
// Note: Currently using a suboptimal `O(m*n)` time algorithm where:
// `m` corresponds roughly to the number of lines in `src/config.h`
// `n` corresponds to the number of user-specified flags
outer: for (config_h_flags) |flag| {
// If a user already specified the flag, skip it
config_iter.reset();
while (config_iter.next()) |config_flag| {
// For a user-specified flag to match, it must share the same prefix and have the
// same length or be followed by an equals sign
if (!std.mem.startsWith(u8, config_flag, flag)) continue;
if (config_flag.len == flag.len or config_flag[flag.len] == '=') continue :outer;
}
// Otherwise, append default value from config.h to compile flags
try raylib_flags_arr.append(b.allocator, flag);
}
} else {
// Set default config if no custome config got set
try raylib_flags_arr.appendSlice(b.allocator, &config_h_flags);
}
// No GLFW required on PLATFORM_DRM
if (options.platform != .drm) {
raylib.addIncludePath(b.path("src/external/glfw/include"));
}
var c_source_files: std.ArrayList([]const u8) = try .initCapacity(b.allocator, 2);
c_source_files.appendSliceAssumeCapacity(&.{ "src/rcore.c", "src/utils.c" });
if (options.rshapes) {
try c_source_files.append(b.allocator, "src/rshapes.c");
try raylib_flags_arr.append(b.allocator, "-DSUPPORT_MODULE_RSHAPES");
}
if (options.rtextures) {
try c_source_files.append(b.allocator, "src/rtextures.c");
try raylib_flags_arr.append(b.allocator, "-DSUPPORT_MODULE_RTEXTURES");
}
if (options.rtext) {
try c_source_files.append(b.allocator, "src/rtext.c");
try raylib_flags_arr.append(b.allocator, "-DSUPPORT_MODULE_RTEXT");
}
if (options.rmodels) {
try c_source_files.append(b.allocator, "src/rmodels.c");
try raylib_flags_arr.append(b.allocator, "-DSUPPORT_MODULE_RMODELS");
}
if (options.raudio) {
try c_source_files.append(b.allocator, "src/raudio.c");
try raylib_flags_arr.append(b.allocator, "-DSUPPORT_MODULE_RAUDIO");
}
if (options.opengl_version != .auto) {
raylib.root_module.addCMacro(options.opengl_version.toCMacroStr(), "");
}
raylib.addIncludePath(b.path("src/platforms"));
switch (target.result.os.tag) {
.windows => {
switch (options.platform) {
.glfw => try c_source_files.append(b.allocator, "src/rglfw.c"),
.rgfw, .sdl, .drm, .android => {},
}
raylib.root_module.linkSystemLibrary("winmm", .{});
raylib.root_module.linkSystemLibrary("gdi32", .{});
raylib.root_module.linkSystemLibrary("opengl32", .{});
setDesktopPlatform(raylib, options.platform);
},
.linux => {
if (options.platform == .drm) {
if (options.opengl_version == .auto) {
raylib.root_module.linkSystemLibrary("GLESv2", .{});
raylib.root_module.addCMacro("GRAPHICS_API_OPENGL_ES2", "");
}
raylib.root_module.linkSystemLibrary("EGL", .{});
raylib.root_module.linkSystemLibrary("gbm", .{});
raylib.root_module.linkSystemLibrary("libdrm", .{ .use_pkg_config = .force });
raylib.root_module.addCMacro("PLATFORM_DRM", "");
raylib.root_module.addCMacro("EGL_NO_X11", "");
raylib.root_module.addCMacro("DEFAULT_BATCH_BUFFER_ELEMENT", "");
} else if (target.result.abi.isAndroid()) {
//these are the only tag options per https://developer.android.com/ndk/guides/other_build_systems
const hostTuple = switch (builtin.target.os.tag) {
.linux => "linux-x86_64",
.windows => "windows-x86_64",
.macos => "darwin-x86_64",
else => @panic("unsupported host OS"),
};
const androidTriple = switch (target.result.cpu.arch) {
.x86 => "i686-linux-android",
.x86_64 => "x86_64-linux-android",
.arm => "arm-linux-androideabi",
.aarch64 => "aarch64-linux-android",
.riscv64 => "riscv64-linux-android",
else => error.InvalidAndroidTarget,
} catch @panic("invalid android target!");
const androidNdkPathString: []const u8 = options.android_ndk;
if (androidNdkPathString.len < 1) @panic("no ndk path provided and ANDROID_NDK_HOME is not set");
const androidApiLevel: []const u8 = options.android_api_version;
const androidSysroot = try std.fs.path.join(b.allocator, &.{ androidNdkPathString, "/toolchains/llvm/prebuilt/", hostTuple, "/sysroot" });
const androidLibPath = try std.fs.path.join(b.allocator, &.{ androidSysroot, "/usr/lib/", androidTriple });
const androidApiSpecificPath = try std.fs.path.join(b.allocator, &.{ androidLibPath, androidApiLevel });
const androidIncludePath = try std.fs.path.join(b.allocator, &.{ androidSysroot, "/usr/include" });
const androidArchIncludePath = try std.fs.path.join(b.allocator, &.{ androidIncludePath, androidTriple });
const androidAsmPath = try std.fs.path.join(b.allocator, &.{ androidIncludePath, "/asm-generic" });
const androidGluePath = try std.fs.path.join(b.allocator, &.{ androidNdkPathString, "/sources/android/native_app_glue/" });
raylib.root_module.addLibraryPath(.{ .cwd_relative = androidLibPath });
raylib.root_module.addLibraryPath(.{ .cwd_relative = androidApiSpecificPath });
raylib.root_module.addSystemIncludePath(.{ .cwd_relative = androidIncludePath });
raylib.root_module.addSystemIncludePath(.{ .cwd_relative = androidArchIncludePath });
raylib.root_module.addSystemIncludePath(.{ .cwd_relative = androidAsmPath });
raylib.root_module.addSystemIncludePath(.{ .cwd_relative = androidGluePath });
var libcData: std.ArrayList(u8) = .empty;
var aw: std.Io.Writer.Allocating = .fromArrayList(b.allocator, &libcData);
try (std.zig.LibCInstallation{
.include_dir = androidIncludePath,
.sys_include_dir = androidIncludePath,
.crt_dir = androidApiSpecificPath,
}).render(&aw.writer);
const libcFile = b.addWriteFiles().add("android-libc.txt", try libcData.toOwnedSlice(b.allocator));
raylib.setLibCFile(libcFile);
if (options.opengl_version == .auto) {
raylib.root_module.linkSystemLibrary("GLESv2", .{});
raylib.root_module.addCMacro("GRAPHICS_API_OPENGL_ES2", "");
}
raylib.root_module.linkSystemLibrary("EGL", .{});
setDesktopPlatform(raylib, .android);
} else {
try c_source_files.append(b.allocator, "src/rglfw.c");
if (options.linux_display_backend == .X11 or options.linux_display_backend == .Both) {
raylib.root_module.addCMacro("_GLFW_X11", "");
raylib.root_module.linkSystemLibrary("GLX", .{});
raylib.root_module.linkSystemLibrary("X11", .{});
raylib.root_module.linkSystemLibrary("Xcursor", .{});
raylib.root_module.linkSystemLibrary("Xext", .{});
raylib.root_module.linkSystemLibrary("Xfixes", .{});
raylib.root_module.linkSystemLibrary("Xi", .{});
raylib.root_module.linkSystemLibrary("Xinerama", .{});
raylib.root_module.linkSystemLibrary("Xrandr", .{});
raylib.root_module.linkSystemLibrary("Xrender", .{});
}
if (options.linux_display_backend == .Wayland or options.linux_display_backend == .Both) {
_ = b.findProgram(&.{"wayland-scanner"}, &.{}) catch {
std.log.err(
\\ `wayland-scanner` may not be installed on the system.
\\ You can switch to X11 in your `build.zig` by changing `Options.linux_display_backend`
, .{});
@panic("`wayland-scanner` not found");
};
raylib.root_module.addCMacro("_GLFW_WAYLAND", "");
raylib.root_module.linkSystemLibrary("EGL", .{});
raylib.root_module.linkSystemLibrary("wayland-client", .{});
raylib.root_module.linkSystemLibrary("xkbcommon", .{});
waylandGenerate(b, raylib, "wayland.xml", "wayland-client-protocol");
waylandGenerate(b, raylib, "xdg-shell.xml", "xdg-shell-client-protocol");
waylandGenerate(b, raylib, "xdg-decoration-unstable-v1.xml", "xdg-decoration-unstable-v1-client-protocol");
waylandGenerate(b, raylib, "viewporter.xml", "viewporter-client-protocol");
waylandGenerate(b, raylib, "relative-pointer-unstable-v1.xml", "relative-pointer-unstable-v1-client-protocol");
waylandGenerate(b, raylib, "pointer-constraints-unstable-v1.xml", "pointer-constraints-unstable-v1-client-protocol");
waylandGenerate(b, raylib, "fractional-scale-v1.xml", "fractional-scale-v1-client-protocol");
waylandGenerate(b, raylib, "xdg-activation-v1.xml", "xdg-activation-v1-client-protocol");
waylandGenerate(b, raylib, "idle-inhibit-unstable-v1.xml", "idle-inhibit-unstable-v1-client-protocol");
}
setDesktopPlatform(raylib, options.platform);
}
},
.freebsd, .openbsd, .netbsd, .dragonfly => {
try c_source_files.append(b.allocator, "rglfw.c");
raylib.root_module.linkSystemLibrary("GL", .{});
raylib.root_module.linkSystemLibrary("rt", .{});
raylib.root_module.linkSystemLibrary("dl", .{});
raylib.root_module.linkSystemLibrary("m", .{});
raylib.root_module.linkSystemLibrary("X11", .{});
raylib.root_module.linkSystemLibrary("Xrandr", .{});
raylib.root_module.linkSystemLibrary("Xinerama", .{});
raylib.root_module.linkSystemLibrary("Xi", .{});
raylib.root_module.linkSystemLibrary("Xxf86vm", .{});
raylib.root_module.linkSystemLibrary("Xcursor", .{});
setDesktopPlatform(raylib, options.platform);
},
.macos => {
// Include xcode_frameworks for cross compilation
if (b.lazyDependency("xcode_frameworks", .{})) |dep| {
raylib.root_module.addSystemFrameworkPath(dep.path("Frameworks"));
raylib.root_module.addSystemIncludePath(dep.path("include"));
raylib.root_module.addLibraryPath(dep.path("lib"));
}
// On macos rglfw.c include Objective-C files.
try raylib_flags_arr.append(b.allocator, "-ObjC");
raylib.root_module.addCSourceFile(.{
.file = b.path("src/rglfw.c"),
.flags = raylib_flags_arr.items,
});
_ = raylib_flags_arr.pop();
raylib.root_module.linkFramework("Foundation", .{});
raylib.root_module.linkFramework("CoreServices", .{});
raylib.root_module.linkFramework("CoreGraphics", .{});
raylib.root_module.linkFramework("AppKit", .{});
raylib.root_module.linkFramework("IOKit", .{});
setDesktopPlatform(raylib, options.platform);
},
.emscripten => {
raylib.root_module.addCMacro("PLATFORM_WEB", "");
if (options.opengl_version == .auto) {
raylib.root_module.addCMacro("GRAPHICS_API_OPENGL_ES3", "");
}
},
else => {
@panic("Unsupported OS");
},
}
raylib.root_module.addCSourceFiles(.{
.files = c_source_files.items,
.flags = raylib_flags_arr.items,
});
return raylib;
}
pub fn addRaygui(b: *std.Build, raylib: *std.Build.Step.Compile, raygui_dep: *std.Build.Dependency, options: Options) void {
const raylib_dep = b.dependencyFromBuildZig(@This(), options);
var gen_step = b.addWriteFiles();
raylib.step.dependOn(&gen_step.step);
const raygui_c_path = gen_step.add("raygui.c", "#define RAYGUI_IMPLEMENTATION\n#include \"raygui.h\"\n");
raylib.root_module.addCSourceFile(.{ .file = raygui_c_path });
raylib.root_module.addIncludePath(raygui_dep.path("src"));
raylib.root_module.addIncludePath(raylib_dep.path("src"));
raylib.installHeader(raygui_dep.path("src/raygui.h"), "raygui.h");
}
pub const Options = struct {
raudio: bool = true,
rmodels: bool = true,
rshapes: bool = true,
rtext: bool = true,
rtextures: bool = true,
platform: PlatformBackend = .glfw,
linkage: std.builtin.LinkMode = .static,
linux_display_backend: LinuxDisplayBackend = .X11,
opengl_version: OpenglVersion = .auto,
android_ndk: []const u8 = "",
android_api_version: []const u8 = "35",
/// config should be a list of space-separated cflags, eg, "-DSUPPORT_CUSTOM_FRAME_CONTROL"
config: []const u8 = &.{},
const defaults = Options{};
pub fn getOptions(b: *std.Build) Options {
return .{
.platform = b.option(PlatformBackend, "platform", "Choose the platform backedn for desktop target") orelse defaults.platform,
.raudio = b.option(bool, "raudio", "Compile with audio support") orelse defaults.raudio,
.rmodels = b.option(bool, "rmodels", "Compile with models support") orelse defaults.rmodels,
.rtext = b.option(bool, "rtext", "Compile with text support") orelse defaults.rtext,
.rtextures = b.option(bool, "rtextures", "Compile with textures support") orelse defaults.rtextures,
.rshapes = b.option(bool, "rshapes", "Compile with shapes support") orelse defaults.rshapes,
.linkage = b.option(std.builtin.LinkMode, "linkage", "Compile as shared or static library") orelse defaults.linkage,
.linux_display_backend = b.option(LinuxDisplayBackend, "linux_display_backend", "Linux display backend to use") orelse defaults.linux_display_backend,
.opengl_version = b.option(OpenglVersion, "opengl_version", "OpenGL version to use") orelse defaults.opengl_version,
.config = b.option([]const u8, "config", "Compile with custom define macros overriding config.h") orelse &.{},
.android_ndk = b.option([]const u8, "android_ndk", "specify path to android ndk") orelse std.process.getEnvVarOwned(b.allocator, "ANDROID_NDK_HOME") catch "",
.android_api_version = b.option([]const u8, "android_api_version", "specify target android API level") orelse defaults.android_api_version,
};
}
};
pub const OpenglVersion = enum {
auto,
gl_1_1,
gl_2_1,
gl_3_3,
gl_4_3,
gles_2,
gles_3,
pub fn toCMacroStr(self: @This()) []const u8 {
switch (self) {
.auto => @panic("OpenglVersion.auto cannot be turned into a C macro string"),
.gl_1_1 => return "GRAPHICS_API_OPENGL_11",
.gl_2_1 => return "GRAPHICS_API_OPENGL_21",
.gl_3_3 => return "GRAPHICS_API_OPENGL_33",
.gl_4_3 => return "GRAPHICS_API_OPENGL_43",
.gles_2 => return "GRAPHICS_API_OPENGL_ES2",
.gles_3 => return "GRAPHICS_API_OPENGL_ES3",
}
}
};
pub const LinuxDisplayBackend = enum {
X11,
Wayland,
Both,
};
pub const PlatformBackend = enum {
glfw,
rgfw,
sdl,
drm,
android,
};
pub fn build(b: *std.Build) !void {
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
const lib = try compileRaylib(b, target, optimize, Options.getOptions(b));
lib.installHeader(b.path("src/raylib.h"), "raylib.h");
lib.installHeader(b.path("src/rcamera.h"), "rcamera.h");
lib.installHeader(b.path("src/raymath.h"), "raymath.h");
lib.installHeader(b.path("src/rlgl.h"), "rlgl.h");
b.installArtifact(lib);
const examples = b.step("examples", "Build/Install all examples");
examples.dependOn(try addExamples("audio", b, target, optimize, lib));
examples.dependOn(try addExamples("core", b, target, optimize, lib));
examples.dependOn(try addExamples("models", b, target, optimize, lib));
examples.dependOn(try addExamples("others", b, target, optimize, lib));
examples.dependOn(try addExamples("shaders", b, target, optimize, lib));
examples.dependOn(try addExamples("shapes", b, target, optimize, lib));
examples.dependOn(try addExamples("text", b, target, optimize, lib));
examples.dependOn(try addExamples("textures", b, target, optimize, lib));
}
fn addExamples(
comptime module: []const u8,
b: *std.Build,
target: std.Build.ResolvedTarget,
optimize: std.builtin.OptimizeMode,
raylib: *std.Build.Step.Compile,
) !*std.Build.Step {
const all = b.step(module, "All " ++ module ++ " examples");
const module_subpath = b.pathJoin(&.{ "examples", module });
var dir = try std.fs.cwd().openDir(b.pathFromRoot(module_subpath), .{ .iterate = true });
defer dir.close();
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 = b.pathJoin(&.{ module_subpath, entry.name });
// zig's mingw headers do not include pthread.h
if (std.mem.eql(u8, "core_loading_thread", name) and target.result.os.tag == .windows) continue;
const exe_mod = b.createModule(.{
.target = target,
.optimize = optimize,
});
exe_mod.addCSourceFile(.{ .file = b.path(path), .flags = &.{} });
exe_mod.linkLibrary(raylib);
const run_step = b.step(name, name);
if (target.result.os.tag == .emscripten) {
const wasm = b.addLibrary(.{
.name = name,
.linkage = .static,
.root_module = exe_mod,
});
if (std.mem.eql(u8, name, "rlgl_standalone")) {
//TODO: Make rlgl_standalone example work
continue;
}
if (std.mem.eql(u8, name, "raylib_opengl_interop")) {
//TODO: Make raylib_opengl_interop example work
continue;
}
const emcc_flags = emsdk.emccDefaultFlags(b.allocator, .{ .optimize = optimize });
const emcc_settings = emsdk.emccDefaultSettings(b.allocator, .{ .optimize = optimize });
const install_dir: std.Build.InstallDir = .{ .custom = "htmlout" };
const emcc_step = emsdk.emccStep(b, raylib, wasm, .{
.optimize = optimize,
.flags = emcc_flags,
.settings = emcc_settings,
.shell_file_path = b.path("src/shell.html"),
.embed_paths = &.{
.{
.src_path = b.pathJoin(&.{ module_subpath, "resources" }),
.virtual_path = "resources",
},
},
.install_dir = install_dir,
});
const html_filename = try std.fmt.allocPrint(b.allocator, "{s}.html", .{wasm.name});
const emrun_step = emsdk.emrunStep(
b,
b.getInstallPath(install_dir, html_filename),
&.{"--no_browser"},
);
emrun_step.dependOn(emcc_step);
run_step.dependOn(emrun_step);
all.dependOn(emcc_step);
} else {
// special examples that test using these external dependencies directly
// alongside raylib
if (std.mem.eql(u8, name, "rlgl_standalone")) {
exe_mod.addIncludePath(b.path("src"));
exe_mod.addIncludePath(b.path("src/external/glfw/include"));
if (!hasCSource(raylib.root_module, "rglfw.c")) {
exe_mod.addCSourceFile(.{ .file = b.path("src/rglfw.c"), .flags = &.{} });
}
}
if (std.mem.eql(u8, name, "raylib_opengl_interop")) {
exe_mod.addIncludePath(b.path("src/external"));
}
switch (target.result.os.tag) {
.windows => {
exe_mod.linkSystemLibrary("winmm", .{});
exe_mod.linkSystemLibrary("gdi32", .{});
exe_mod.linkSystemLibrary("opengl32", .{});
exe_mod.addCMacro("PLATFORM_DESKTOP", "");
},
.linux => {
exe_mod.linkSystemLibrary("GL", .{});
exe_mod.linkSystemLibrary("rt", .{});
exe_mod.linkSystemLibrary("dl", .{});
exe_mod.linkSystemLibrary("m", .{});
exe_mod.linkSystemLibrary("X11", .{});
exe_mod.addCMacro("PLATFORM_DESKTOP", "");
},
.macos => {
exe_mod.linkFramework("Foundation", .{});
exe_mod.linkFramework("Cocoa", .{});
exe_mod.linkFramework("OpenGL", .{});
exe_mod.linkFramework("CoreAudio", .{});
exe_mod.linkFramework("CoreVideo", .{});
exe_mod.linkFramework("IOKit", .{});
exe_mod.addCMacro("PLATFORM_DESKTOP", "");
},
else => {
@panic("Unsupported OS");
},
}
const exe = b.addExecutable(.{
.name = name,
.root_module = exe_mod,
});
const install_cmd = b.addInstallArtifact(exe, .{});
const run_cmd = b.addRunArtifact(exe);
run_cmd.cwd = b.path(module_subpath);
run_cmd.step.dependOn(&install_cmd.step);
run_step.dependOn(&run_cmd.step);
all.dependOn(&install_cmd.step);
}
}
return all;
}
fn waylandGenerate(
b: *std.Build,
raylib: *std.Build.Step.Compile,
comptime protocol: []const u8,
comptime basename: []const u8,
) void {
const waylandDir = "src/external/glfw/deps/wayland";
const protocolDir = b.pathJoin(&.{ waylandDir, protocol });
const clientHeader = basename ++ ".h";
const privateCode = basename ++ "-code.h";
const client_step = b.addSystemCommand(&.{ "wayland-scanner", "client-header" });
client_step.addFileArg(b.path(protocolDir));
raylib.root_module.addIncludePath(client_step.addOutputFileArg(clientHeader).dirname());
const private_step = b.addSystemCommand(&.{ "wayland-scanner", "private-code" });
private_step.addFileArg(b.path(protocolDir));
raylib.root_module.addIncludePath(private_step.addOutputFileArg(privateCode).dirname());
raylib.step.dependOn(&client_step.step);
raylib.step.dependOn(&private_step.step);
}
fn hasCSource(module: *std.Build.Module, name: []const u8) bool {
for (module.link_objects.items) |o| switch (o) {
.c_source_file => |c| if (switch (c.file) {
.src_path => |s| std.ascii.endsWithIgnoreCase(s.sub_path, name),
.generated, .cwd_relative, .dependency => false,
}) return true,
.c_source_files => |s| for (s.files) |c| if (std.ascii.endsWithIgnoreCase(c, name)) return true,
else => {},
};
return false;
}

31
build.zig.zon Normal file
View File

@@ -0,0 +1,31 @@
.{
.name = .raylib,
.version = "5.6.0-dev",
.minimum_zig_version = "0.15.1",
.fingerprint = 0x13035e5cb8bc1ac2, // Changing this has security and trust implications.
.dependencies = .{
.xcode_frameworks = .{
.url = "git+https://github.com/hexops/xcode-frameworks#9a45f3ac977fd25dff77e58c6de1870b6808c4a7",
.hash = "N-V-__8AABHMqAWYuRdIlflwi8gksPnlUMQBiSxAqQAAZFms",
.lazy = true,
},
.emsdk = .{
.url = "git+https://github.com/emscripten-core/emsdk#4.0.9",
.hash = "N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ",
},
.zemscripten = .{
.url = "git+https://github.com/zig-gamedev/zemscripten#3fa4b778852226c7346bdcc3c1486e875a9a6d02",
.hash = "zemscripten-0.2.0-dev-sRlDqApRAACspTbAZnuNKWIzfWzSYgYkb2nWAXZ-tqqt",
},
},
.paths = .{
"build.zig",
"build.zig.zon",
"src",
"examples",
"LICENSE",
},
}

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()

View File

@@ -0,0 +1,23 @@
# 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} PRIVATE "${variable}")
endif()
endfunction()
if(${CUSTOMIZE_BUILD})
target_compile_definitions("raylib" PRIVATE EXTERNAL_CONFIG_FLAGS)
foreach(FLAG IN LISTS CONFIG_HEADER_FLAGS)
string(REGEX MATCH "([^=]+)=(.+)" _ ${FLAG})
define_if("raylib" ${CMAKE_MATCH_1})
endforeach()
foreach(VALUE IN LISTS CONFIG_HEADER_VALUES)
target_compile_definitions("raylib" PRIVATE ${VALUE})
endforeach()
endif()

79
cmake/CompilerFlags.cmake Normal file
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
cmake/EnumOption.cmake Normal file
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
cmake/GlfwImport.cmake Normal file
View File

@@ -0,0 +1,36 @@
if(USE_EXTERNAL_GLFW STREQUAL "ON")
find_package(glfw3 3.4 REQUIRED)
elseif(USE_EXTERNAL_GLFW STREQUAL "IF_POSSIBLE")
find_package(glfw3 3.4 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_LIBRARY_TYPE "OBJECT" CACHE STRING "" FORCE)
add_subdirectory(external/glfw)
# Hide glfw's symbols when building a shared lib
if (BUILD_SHARED_LIBS)
set_property(TARGET glfw PROPERTY C_VISIBILITY_PRESET hidden)
endif()
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()

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
cmake/JoinPaths.cmake Normal file
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()

View File

@@ -0,0 +1,166 @@
# 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")
if(NOT GRAPHICS)
set(GRAPHICS "GRAPHICS_API_OPENGL_ES2")
endif()
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)
# NOTE: We remove '-Wl,--no-undefined' (set by default) as it conflicts with '-Wl,-undefined,dynamic_lookup' needed
# for compiling with the missing 'void main(void)' declaration in `android_main()`.
# We also remove other unnecessary or problematic flags.
string(REPLACE "-Wl,--no-undefined -Qunused-arguments" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
string(REPLACE "-static-libstdc++" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
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 OR NOT CMAKE_SYSROOT)
include_directories(/usr/include/libdrm)
endif ()
set(LIBS_PRIVATE ${GLESV2} ${EGL} ${DRM} ${GBM} atomic pthread m dl)
elseif ("${PLATFORM}" MATCHES "SDL")
# First, check if SDL is included as a subdirectory
if(TARGET SDL3::SDL3)
message(STATUS "Using SDL3 from subdirectory")
set(PLATFORM_CPP "PLATFORM_DESKTOP_SDL")
set(LIBS_PRIVATE SDL3::SDL3)
add_compile_definitions(USING_SDL3_PROJECT)
elseif(TARGET SDL2::SDL2)
message(STATUS "Using SDL2 from subdirectory")
set(PLATFORM_CPP "PLATFORM_DESKTOP_SDL")
set(LIBS_PRIVATE SDL2::SDL2)
add_compile_definitions(USING_SDL2_PROJECT)
else()
# No SDL added via add_subdirectory(), try find_package()
message(STATUS "No SDL target from subdirectory, searching via find_package()...")
# First try SDL3
find_package(SDL3 QUIET)
if(SDL3_FOUND)
message(STATUS "Found SDL3 via find_package()")
set(PLATFORM_CPP "PLATFORM_DESKTOP_SDL")
set(LIBS_PRIVATE SDL3::SDL3)
add_compile_definitions(USING_SDL3_PACKAGE)
else()
# Fallback to SDL2
find_package(SDL2 REQUIRED)
message(STATUS "Found SDL2 via find_package()")
set(PLATFORM_CPP "PLATFORM_DESKTOP_SDL")
set(LIBS_PRIVATE SDL2::SDL2)
add_compile_definitions(USING_SDL2_PACKAGE)
endif()
endif()
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 (NOT "${SUGGESTED_GRAPHICS}" STREQUAL "" 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 ()

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()

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)

View File

@@ -0,0 +1,17 @@
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/src/config.h" CONFIG_HEADER_CONTENT)
set(BLANK_OR_BACKSLASH_PATTERN "[ \t\r\n\\]")
set(VALID_IDENTIFIER_PATTERN "[A-Za-z_]+[A-Za-z_0-9]*")
set(VALID_VALUE_PATTERN [=["?[A-Za-z_0-9.-]+"?]=]) # not really correct but does the job since the config.h file hopefully will have been checked by a C preprocessor.
set(MACRO_REGEX "(//${BLANK_OR_BACKSLASH_PATTERN}*)?\#define${BLANK_OR_BACKSLASH_PATTERN}+(${VALID_IDENTIFIER_PATTERN})${BLANK_OR_BACKSLASH_PATTERN}+(${VALID_VALUE_PATTERN})")
string(REGEX MATCHALL ${MACRO_REGEX} MACRO_LIST ${CONFIG_HEADER_CONTENT})
set(CONFIG_HEADER_FLAGS ${MACRO_LIST})
list(FILTER CONFIG_HEADER_FLAGS INCLUDE REGEX "^.+SUPPORT_")
list(TRANSFORM CONFIG_HEADER_FLAGS REPLACE ${MACRO_REGEX} [[\2=OFF]] REGEX "^//")
list(TRANSFORM CONFIG_HEADER_FLAGS REPLACE ${MACRO_REGEX} [[\2=ON]])
set(CONFIG_HEADER_VALUES ${MACRO_LIST})
list(FILTER CONFIG_HEADER_VALUES EXCLUDE REGEX "(^.+SUPPORT_)|(^//)")
list(TRANSFORM CONFIG_HEADER_VALUES REPLACE ${MACRO_REGEX} [[\2=\3]])

View File

@@ -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
cmake/Uninstall.cmake Normal file
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()

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()

81
cmake/raylib-config.cmake Normal file
View File

@@ -0,0 +1,81 @@
# - Try to find raylib
# Options:
# raylib_USE_STATIC_LIBS - ON 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
option(raylib_USE_STATIC_LIBS "Use static libs" ON)
option(raylib_VERBOSE "Show raylib verbose messages" OFF)
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} ${raylib_DIR}/../../../include/
)
if (raylib_USE_STATIC_LIBS)
set(RAYLIB_NAMES libraylib.a raylib.lib)
else ()
set(RAYLIB_NAMES raylib)
endif ()
find_library(raylib_LIBRARY
NAMES ${RAYLIB_NAMES}
HINTS ${${XPREFIX}_LIBRARY_DIRS} ${raylib_DIR}/../../
)
set(raylib_LIBRARIES ${raylib_LIBRARY})
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()

View File

@@ -1,58 +1,176 @@
# Setup the project and settings
project(examples)
include("../utils.cmake")
# Directories that contain examples
set(example_dirs
audio
core
models
others
shaders
shapes
text
textures
)
# Make sure raylib has been built
# TODO `build` directory should maybe be something else...
# TODO place somewhere else?
include_directories("../build/release")
include_directories("../src/external")
include_directories("../src/external/glfw/include")
# Get the sources together
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)
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()
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})
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()
# Any any resources
file(GLOB resources ${example_dir}/resources/*)
list(APPEND example_resources ${resources})
endforeach ()
include(CheckIncludeFiles)
check_include_files(OVR_CAPI_GL.h HAVE_OCULUS_CAPI)
if(NOT HAVE_OCULUS_CAPI)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/oculus_rift.c)
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_view_depth.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")
# Since WASM is used, ALLOW_MEMORY_GROWTH has no extra overheads
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s WASM=1 -s ASYNCIFY -s ALLOW_MEMORY_GROWTH=1 --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)
elseif (NOT SUPPORT_GESTURES_SYSTEM)
# Items requiring gestures system
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/textures/textures_mouse_painting.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_basic_screen_manager.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_input_gestures_web.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_input_gestures.c)
endif ()
# The rlgl_standalone example only targets desktop, without shared libraries.
if (BUILD_SHARED_LIBS OR NOT ${PLATFORM} MATCHES "Desktop")
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c)
endif()
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/standard_lighting.c)
# The audio examples fail to link if raylib is built without raudio
if (NOT SUPPORT_MODULE_RAUDIO)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/audio/audio_mixed_processor.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/audio/audio_module_playing.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/audio/audio_music_stream.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/audio/audio_raw_stream.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/audio/audio_sound_loading.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/audio/audio_sound_multi.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/audio/audio_stream_effects.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/embedded_files_loading.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/textures/textures_sprite_button.c)
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/textures/textures_sprite_explosion.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})
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})
# Setup the example
add_executable(${example_name} ${example_source})
# Link the libraries
link_libraries_to_executable(${example_name})
endforeach()
target_link_libraries(${example_name} raylib)
if (NOT WIN32)
target_link_libraries(${example_name} m)
endif()
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/")

View File

@@ -1,8 +1,36 @@
#**************************************************************************************************
#
# raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5
# raylib makefile for multiple platforms
#
# Copyright (c) 2013-2018 Ramon Santamaria (@raysan5)
# This file supports building raylib examples for the following platforms:
#
# > PLATFORM_DESKTOP
# - Defaults to PLATFORM_DESKTOP_GLFW
# > PLATFORM_DESKTOP_GFLW (GLFW backend):
# - Windows (Win32, Win64)
# - Linux (X11/Wayland desktop mode)
# - macOS/OSX (x64, arm64)
# - FreeBSD, OpenBSD, NetBSD, DragonFly (X11 desktop)
# > PLATFORM_DESKTOP_SDL (SDL backend):
# - Windows (Win32, Win64)
# - Linux (X11/Wayland desktop mode)
# - Others (not tested)
# > PLATFORM_DESKTOP_RGFW (RGFW backend):
# - Windows (Win32, Win64)
# - Linux (X11 desktop mode)
# - macOS/OSX (x64, arm64 (not tested))
# - Others (not tested)
# > PLATFORM_WEB_RGFW:
# - HTML5 (WebAssembly)
# > PLATFORM_WEB:
# - HTML5 (WebAssembly)
# > PLATFORM_DRM:
# - Raspberry Pi 0-5 (DRM/KMS)
# - Linux DRM subsystem (KMS mode)
# > PLATFORM_ANDROID:
# - Android (ARM, ARM64)
#
# Copyright (c) 2013-2025 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.
@@ -23,228 +51,373 @@
.PHONY: all clean
# Define required raylib variables
# WARNING: To compile to HTML5, code must be redesigned to use emscripten.h and emscripten_set_main_loop()
PLATFORM ?= PLATFORM_DESKTOP
RAYLIB_PATH ?= ..
PROJECT_NAME ?= raylib_example
# Define required environment variables
#------------------------------------------------------------------------------------------------
# Define target platform: PLATFORM_DESKTOP, PLATFORM_DESKTOP_SDL, PLATFORM_DRM, PLATFORM_ANDROID, PLATFORM_WEB, PLATFORM_WEB_RGFW
PLATFORM ?= PLATFORM_DESKTOP
# Default path for raylib on Raspberry Pi, if installed in different path, update it!
ifeq ($(PLATFORM),PLATFORM_RPI)
RAYLIB_PATH ?= /home/pi/raylib
ifeq ($(PLATFORM),$(filter $(PLATFORM),PLATFORM_DESKTOP_GLFW PLATFORM_DESKTOP_SDL PLATFORM_DESKTOP_RGFW))
TARGET_PLATFORM := $(PLATFORM)
override PLATFORM = PLATFORM_DESKTOP
else
ifeq ($(PLATFORM), PLATFORM_DESKTOP)
TARGET_PLATFORM = PLATFORM_DESKTOP_GLFW
else
TARGET_PLATFORM = $(PLATFORM)
endif
endif
# Library type used for raylib: STATIC (.a) or SHARED (.so/.dll)
RAYLIB_LIBTYPE ?= STATIC
# Define required raylib variables
PROJECT_NAME ?= raylib_examples
RAYLIB_VERSION ?= 5.5.0
RAYLIB_PATH ?= ..
# Define raylib source code path
RAYLIB_SRC_PATH ?= ../src
# Locations of raylib.h and libraylib.a/libraylib.so
# NOTE: Those variables are only used for PLATFORM_OS: LINUX, BSD
DESTDIR ?= /usr/local
RAYLIB_INCLUDE_PATH ?= $(DESTDIR)/include
RAYLIB_LIB_PATH ?= $(DESTDIR)/lib
# Library type compilation: STATIC (.a) or SHARED (.so/.dll)
RAYLIB_LIBTYPE ?= STATIC
# Build mode for project: DEBUG or RELEASE
BUILD_MODE ?= RELEASE
# Use external GLFW library instead of rglfw module
USE_EXTERNAL_GLFW ?= FALSE
USE_EXTERNAL_GLFW ?= FALSE
# Use Wayland display server protocol on Linux desktop
# by default it uses X11 windowing system
USE_WAYLAND_DISPLAY ?= FALSE
# PLATFORM_DESKTOP_SDL: It requires SDL library to be provided externally
# WARNING: Library is not included in raylib, it MUST be configured by users
SDL_INCLUDE_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/include
SDL_LIBRARY_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/lib
SDL_LIBRARIES ?= -lSDL2 -lSDL2main
# NOTE: On PLATFORM_WEB OpenAL Soft backend is used by default (check raylib/src/Makefile)
# Use Wayland display server protocol on Linux desktop (by default it uses X11 windowing system)
# NOTE: This variable is only used for PLATFORM_OS: LINUX
USE_WAYLAND_DISPLAY ?= FALSE
# PLATFORM_WEB: Default properties
BUILD_WEB_ASYNCIFY ?= TRUE
BUILD_WEB_SHELL ?= $(RAYLIB_PATH)/src/minshell.html
BUILD_WEB_HEAP_SIZE ?= 134217728
BUILD_WEB_RESOURCES ?= TRUE
BUILD_WEB_RESOURCES_PATH ?= $(dir $<)resources@resources
# Use WebGL2 backend (OpenGL 3.0)
# WARNING: Requires raylib compiled with GRAPHICS_API_OPENGL_ES3
BUILD_WEB_WEBGL2 ?= FALSE
# Determine PLATFORM_OS in case PLATFORM_DESKTOP selected
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
# Determine PLATFORM_OS when required
ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW PLATFORM_DESKTOP_SDL PLATFORM_DESKTOP_RGFW PLATFORM_WEB PLATFORM_WEB_RGFW))
# No uname.exe on MinGW!, but OS=Windows_NT on Windows!
# ifeq ($(UNAME),Msys) -> Windows
ifeq ($(OS),Windows_NT)
PLATFORM_OS=WINDOWS
PLATFORM_OS = WINDOWS
else
UNAMEOS=$(shell uname)
UNAMEOS = $(shell uname)
ifeq ($(UNAMEOS),Linux)
PLATFORM_OS=LINUX
PLATFORM_OS = LINUX
endif
ifeq ($(UNAMEOS),FreeBSD)
PLATFORM_OS=FREEBSD
PLATFORM_OS = BSD
endif
ifeq ($(UNAMEOS),OpenBSD)
PLATFORM_OS = BSD
endif
ifeq ($(UNAMEOS),NetBSD)
PLATFORM_OS = BSD
endif
ifeq ($(UNAMEOS),DragonFly)
PLATFORM_OS = BSD
endif
ifeq ($(UNAMEOS),Darwin)
PLATFORM_OS=OSX
PLATFORM_OS = OSX
endif
endif
endif
ifeq ($(PLATFORM),PLATFORM_RPI)
UNAMEOS=$(shell uname)
ifeq ($(TARGET_PLATFORM),PLATFORM_DRM)
UNAMEOS = $(shell uname)
ifeq ($(UNAMEOS),Linux)
PLATFORM_OS=LINUX
PLATFORM_OS = LINUX
endif
endif
ifeq ($(PLATFORM),PLATFORM_WEB)
# Emscripten required variables
EMSDK_PATH = C:/emsdk
EMSCRIPTEN_VERSION = 1.37.28
CLANG_VERSION=e1.37.28_64bit
PYTHON_VERSION=2.7.5.3_64bit
NODE_VERSION=4.1.1_64bit
export PATH=$(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH)
EMSCRIPTEN=$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION)
# RAYLIB_PATH adjustment for LINUX platform
# TODO: Do we really need this?
ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW)
ifeq ($(PLATFORM_OS),LINUX)
RAYLIB_PREFIX ?= ..
RAYLIB_PATH = $(realpath $(RAYLIB_PREFIX))
endif
endif
RAYLIB_RELEASE_PATH ?= $(RAYLIB_PATH)/release/libs
# Default path for raylib on Raspberry Pi
ifeq ($(TARGET_PLATFORM),PLATFORM_DRM)
RAYLIB_PATH ?= /home/pi/raylib
endif
# Define raylib release directory for compiled library
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
RAYLIB_RELEASE_PATH ?= $(RAYLIB_PATH)/src
ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW))
ifeq ($(PLATFORM_OS),WINDOWS)
RAYLIB_RELEASE_PATH = $(RAYLIB_PATH)/release/libs/win32/mingw32
# Emscripten required variables
EMSDK_PATH ?= C:/raylib/emsdk
EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/upstream/emscripten
CLANG_PATH = $(EMSDK_PATH)/upstream/bin
PYTHON_PATH = $(EMSDK_PATH)/python/3.9.2-nuget_64bit
NODE_PATH = $(EMSDK_PATH)/node/20.18.0_64bit/bin
export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH):$$(PATH)
endif
ifeq ($(PLATFORM_OS),LINUX)
RAYLIB_RELEASE_PATH = $(RAYLIB_PATH)/release/libs/linux
endif
ifeq ($(PLATFORM_OS),OSX)
RAYLIB_RELEASE_PATH = $(RAYLIB_PATH)/release/libs/osx
endif
ifeq ($(PLATFORM_OS),FREEBSD)
RAYLIB_RELEASE_PATH = $(RAYLIB_PATH)/release/libs/freebsd
endif
endif
ifeq ($(PLATFORM),PLATFORM_RPI)
RAYLIB_RELEASE_PATH = $(RAYLIB_PATH)/release/libs/rpi
endif
ifeq ($(PLATFORM),PLATFORM_WEB)
RAYLIB_RELEASE_PATH = $(RAYLIB_PATH)/release/libs/html5
endif
# Define default C compiler: gcc
# NOTE: define g++ compiler if using C++
# Define default C compiler: CC
#------------------------------------------------------------------------------------------------
CC = gcc
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW)
ifeq ($(PLATFORM_OS),OSX)
# OSX default compiler
CC = clang
endif
ifeq ($(PLATFORM_OS),FREEBSD)
# FreeBSD default compiler
ifeq ($(PLATFORM_OS),BSD)
# FreeBSD, OpenBSD, NetBSD, DragonFly default compiler
CC = clang
endif
endif
ifeq ($(PLATFORM),PLATFORM_RPI)
ifeq ($(USE_RPI_CROSS_COMPILER),TRUE)
# Define RPI cross-compiler
#CC = armv6j-hardfloat-linux-gnueabi-gcc
CC = $(RPI_TOOLCHAIN)/bin/arm-linux-gnueabihf-gcc
endif
endif
ifeq ($(PLATFORM),PLATFORM_WEB)
ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW))
# HTML5 emscripten compiler
# WARNING: To compile to HTML5, code must be redesigned
# to use emscripten.h and emscripten_set_main_loop()
CC = emcc
endif
# Define default make program: Mingw32-make
MAKE = mingw32-make
# Define default make program: MAKE
#------------------------------------------------------------------------------------------------
MAKE ?= make
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
ifeq ($(PLATFORM_OS),LINUX)
MAKE = make
ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW)
ifeq ($(PLATFORM_OS),WINDOWS)
MAKE = mingw32-make
endif
endif
ifeq ($(TARGET_PLATFORM),PLATFORM_ANDROID)
MAKE = mingw32-make
endif
ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW))
ifeq ($(OS),Windows_NT)
MAKE = mingw32-make
else
EMMAKE != type emmake
ifneq (, $(EMMAKE))
MAKE = emmake make
else
MAKE = mingw32-make
endif
endif
endif
# Define compiler flags:
# Define compiler flags: CFLAGS
#------------------------------------------------------------------------------------------------
# -O1 defines optimization level
# -g enable debugging
# -g include debug information on compilation
# -s strip unnecessary data from build
# -Wall turns on most, but not all, compiler warnings
# -std=c99 defines C language mode (standard C from 1999 revision)
# -std=gnu99 defines C language mode (GNU C from 1999 revision)
# -fgnu89-inline declaring inline functions support (GCC optimized)
# -Wno-missing-braces ignore invalid warning (GCC bug 53119)
# -Wno-unused-value ignore unused return values of some functions (i.e. fread())
# -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec
CFLAGS += -O1 -s -Wall -std=c99 -D_DEFAULT_SOURCE -fgnu89-inline -Wno-missing-braces
CFLAGS = -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces -Wunused-result
ifeq ($(BUILD_MODE),DEBUG)
CFLAGS += -g -D_DEBUG
else
ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW))
ifeq ($(BUILD_WEB_ASYNCIFY),TRUE)
CFLAGS += -O3
else
CFLAGS += -Os
endif
else
CFLAGS += -O2
endif
endif
# Additional flags for compiler (if desired)
# -Wextra enables some extra warning flags that are not enabled by -Wall
# -Wmissing-prototypes warn if a global function is defined without a previous prototype declaration
# -Wstrict-prototypes warn if a function is declared or defined without specifying the argument types
# -Werror=implicit-function-declaration catch function calls without prior declaration
#CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
ifeq ($(PLATFORM_OS),WINDOWS)
# resources file contains windows exe icon
# -Wl,--subsystem,windows hides the console window
CFLAGS += $(RAYLIB_PATH)/src/resources -Wl,--subsystem,windows
endif
ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW)
ifeq ($(PLATFORM_OS),LINUX)
CFLAGS += -no-pie -D_DEFAULT_SOURCE
ifeq ($(RAYLIB_LIBTYPE),STATIC)
CFLAGS += -D_DEFAULT_SOURCE
endif
ifeq ($(RAYLIB_LIBTYPE),SHARED)
# Explicitly enable runtime link to libraylib.so
CFLAGS += -Wl,-rpath,$(RAYLIB_RELEASE_PATH)
endif
endif
endif
ifeq ($(PLATFORM),PLATFORM_RPI)
CFLAGS += -std=gnu99
endif
ifeq ($(PLATFORM),PLATFORM_WEB)
# -O2 # if used, also set --memory-init-file 0
# --memory-init-file 0 # to avoid an external memory initialization code file (.mem)
# -s ALLOW_MEMORY_GROWTH=1 # to allow memory resizing
# -s TOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB)
# -s USE_PTHREADS=1 # multithreading support
# -s WASM=1 # support Web Assembly (https://github.com/kripken/emscripten/wiki/WebAssembly)
# --preload-file resources # specify a resources folder for data compilation
CFLAGS += -s USE_GLFW=3 -s ASSERTIONS=1 -s WASM=1 --profiling --preload-file resources
# Define a custom shell .html and output extension
CFLAGS += --shell-file $(RAYLIB_PATH)\templates\web_shell\shell.html
EXT = .html
ifeq ($(TARGET_PLATFORM),PLATFORM_DRM)
CFLAGS += -std=gnu99 -DEGL_NO_X11
endif
# Define include paths for required headers
# NOTE: Several external required libraries (stb and others)
INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/release/include -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external
# Define include paths for required headers: INCLUDE_PATHS
# NOTE: Some external/extras libraries could be required (stb, easings...)
#------------------------------------------------------------------------------------------------
INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external $(EXTRA_INCLUDE_PATHS)
# Define additional directories containing required header files
ifeq ($(PLATFORM),PLATFORM_RPI)
# RPI requried libraries
INCLUDE_PATHS += -I/opt/vc/include
INCLUDE_PATHS += -I/opt/vc/include/interface/vmcs_host/linux
INCLUDE_PATHS += -I/opt/vc/include/interface/vcos/pthreads
endif
# Define library paths containing required libs
LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
ifeq ($(PLATFORM_OS),FREEBSD)
INCLUDE_PATHS += -I/usr/local/include
LDFLAGS += -L. -Lsrc -L/usr/local/lib
ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW)
ifeq ($(PLATFORM_OS),BSD)
INCLUDE_PATHS += -I$(RAYLIB_INCLUDE_PATH) -I/usr/pkg/include -I/usr/X11R7/include
endif
ifeq ($(PLATFORM_OS),LINUX)
INCLUDE_PATHS += -I$(RAYLIB_INCLUDE_PATH)
endif
endif
ifeq ($(PLATFORM),PLATFORM_RPI)
LDFLAGS += -L/opt/vc/lib
ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_SDL)
INCLUDE_PATHS += -I$(SDL_INCLUDE_PATH)
endif
ifeq ($(TARGET_PLATFORM),PLATFORM_DRM)
INCLUDE_PATHS += -I$(RAYLIB_INCLUDE_PATH)
INCLUDE_PATHS += -I/usr/include/libdrm
endif
# Define any libraries required on linking
# if you want to link libraries (libname.so or libname.a), use the -lname
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
# Define library paths containing required libs: LDFLAGS
#------------------------------------------------------------------------------------------------
LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src
ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW)
ifeq ($(PLATFORM_OS),WINDOWS)
# NOTE: The resource .rc file contains windows executable icon and properties
LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data
# -Wl,--subsystem,windows hides the console window
ifeq ($(BUILD_MODE), RELEASE)
LDFLAGS += -Wl,--subsystem,windows
endif
endif
ifeq ($(PLATFORM_OS),LINUX)
LDFLAGS += -L$(RAYLIB_LIB_PATH)
endif
ifeq ($(PLATFORM_OS),BSD)
LDFLAGS += -Lsrc -L$(RAYLIB_LIB_PATH)
endif
endif
ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_SDL)
ifeq ($(PLATFORM_OS),WINDOWS)
# NOTE: The resource .rc file contains windows executable icon and properties
LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data
# -Wl,--subsystem,windows hides the console window
ifeq ($(BUILD_MODE), RELEASE)
LDFLAGS += -Wl,--subsystem,windows
endif
endif
LDFLAGS += -L$(SDL_LIBRARY_PATH)
endif
ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW))
# -Os # size optimization
# -O2 # optimization level 2, if used, also set --memory-init-file 0
# -sUSE_GLFW=3 # Use glfw3 library (context/input management)
# -sALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL!
# -sTOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) (67108864 = 64MB)
# -sUSE_PTHREADS=1 # multithreading support
# -sWASM=0 # disable Web Assembly, emitted by default
# -sASYNCIFY # lets synchronous C/C++ code interact with asynchronous JS
# -sFORCE_FILESYSTEM=1 # force filesystem to load/save files data
# -sASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off)
# -sMINIFY_HTML=0 # minify generated html from shell.html
# --profiling # include information for code profiling
# --memory-init-file 0 # to avoid an external memory initialization code file (.mem)
# --preload-file resources # specify a resources folder for data compilation
# --source-map-base # allow debugging in browser with source map
# --shell-file shell.html # define a custom shell .html and output extension
LDFLAGS += -sTOTAL_MEMORY=$(BUILD_WEB_HEAP_SIZE) -sFORCE_FILESYSTEM=1 -sEXPORTED_RUNTIME_METHODS=ccall -sMINIFY_HTML=0
# Using GLFW3 library (instead of RGFW)
ifeq ($(TARGET_PLATFORM),PLATFORM_WEB)
LDFLAGS += -sUSE_GLFW=3
endif
# Build using asyncify
ifeq ($(BUILD_WEB_ASYNCIFY),TRUE)
LDFLAGS += -sASYNCIFY
endif
# NOTE: Flags required for WebGL 2.0 (OpenGL ES 3.0)
# WARNING: Requires raylib compiled with GRAPHICS_API_OPENGL_ES3
ifeq ($(BUILD_WEB_WEBGL2),TRUE)
LDFLAGS += -sMIN_WEBGL_VERSION=2 -sMAX_WEBGL_VERSION=2
endif
# Add resources building if required
ifeq ($(BUILD_WEB_RESOURCES),TRUE)
LDFLAGS += --preload-file $(BUILD_WEB_RESOURCES_PATH)
endif
# Add debug mode flags if required
ifeq ($(BUILD_MODE),DEBUG)
LDFLAGS += -sASSERTIONS=1 --profiling
endif
# Define a custom shell .html and output extension
LDFLAGS += --shell-file $(BUILD_WEB_SHELL)
EXT = .html
# NOTE: Simple raylib examples are compiled to be interpreter with asyncify, that way,
# we can compile same code for ALL platforms with no change required, but, working on bigger
# projects, code needs to be refactored to avoid a blocking while() loop, moving Update and Draw
# logic to a self contained function: UpdateDrawFrame(), check core_basic_window_web.c for reference.
endif
# Define libraries required on linking: LDLIBS
# NOTE: To link libraries (lib<name>.so or lib<name>.a), use -l<name>
#------------------------------------------------------------------------------------------------
ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW)
ifeq ($(PLATFORM_OS),WINDOWS)
# Libraries for Windows desktop compilation
LDLIBS = -lraylib -lopengl32 -lgdi32
# Required for physac examples
LDLIBS += -static -lpthread
# NOTE: WinMM library required to set high-res timer resolution
LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm
endif
ifeq ($(PLATFORM_OS),LINUX)
# Libraries for Debian GNU/Linux desktop compiling
# NOTE: Required packages: libegl1-mesa-dev
LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt
# On X11 requires also below libraries
LDLIBS += -lX11
# NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them
#LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor
# On Wayland windowing system, additional libraries requires
ifeq ($(USE_WAYLAND_DISPLAY),TRUE)
LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon
endif
# Explicit link to libc
ifeq ($(RAYLIB_LIBTYPE),SHARED)
LDLIBS += -lc
endif
# NOTE: On ARM 32bit arch, miniaudio requires atomics library
LDLIBS += -latomic
endif
ifeq ($(PLATFORM_OS),OSX)
# Libraries for OSX 10.9 desktop compiling
# NOTE: Required packages: libopenal-dev libegl1-mesa-dev
LDLIBS = -lraylib -framework OpenGL -framework OpenAL -framework Cocoa
LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo
endif
ifeq ($(PLATFORM_OS),FREEBSD)
# Libraries for FreeBSD desktop compiling
ifeq ($(PLATFORM_OS),BSD)
# Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling
# NOTE: Required packages: mesa-libs
LDLIBS = -lraylib -lGL -lpthread -lm
LDFLAGS += -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib
LDLIBS = -lraylib -lGL -lm -lpthread
# On XWindow requires also below libraries
LDLIBS += -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor
@@ -254,125 +427,306 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
LDLIBS += -lglfw
endif
endif
ifeq ($(PLATFORM),PLATFORM_RPI)
# Libraries for Raspberry Pi compiling
ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_SDL)
ifeq ($(PLATFORM_OS),WINDOWS)
# Libraries for Windows desktop compilation
LDLIBS = -lraylib $(SDL_LIBRARIES) -lopengl32 -lgdi32
endif
ifeq ($(PLATFORM_OS),LINUX)
# Libraries for Debian GNU/Linux desktop compiling
# NOTE: Required packages: libegl1-mesa-dev
LDLIBS = -lraylib $(SDL_LIBRARIES) -lGL -lm -lpthread -ldl -lrt
# On X11 requires also below libraries
LDLIBS += -lX11
# NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them
#LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor
# On Wayland windowing system, additional libraries requires
ifeq ($(USE_WAYLAND_DISPLAY),TRUE)
LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon
endif
# Explicit link to libc
ifeq ($(RAYLIB_LIBTYPE),SHARED)
LDLIBS += -lc
endif
# NOTE: On ARM 32bit arch, miniaudio requires atomics library
LDLIBS += -latomic
endif
endif
ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_RGFW)
ifeq ($(PLATFORM_OS),WINDOWS)
# Libraries for Windows desktop compilation
LDFLAGS += -L..\src
LDLIBS = -lraylib -lgdi32 -lwinmm -lopengl32
endif
ifeq ($(PLATFORM_OS),LINUX)
# Libraries for Debian GNU/Linux desktop compipling
# NOTE: Required packages: libegl1-mesa-dev
LDFLAGS += -L../src
LDLIBS = -lraylib -lGL -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -lm -lpthread -ldl -lrt
# Explicit link to libc
ifeq ($(RAYLIB_LIBTYPE),SHARED)
LDLIBS += -lc
endif
# NOTE: On ARM 32bit arch, miniaudio requires atomics library
LDLIBS += -latomic
endif
ifeq ($(PLATFORM_OS),OSX)
# Libraries for Debian GNU/Linux desktop compiling
# NOTE: Required packages: libegl1-mesa-dev
LDFLAGS += -L../src
LDLIBS = -lraylib -lm
LDLIBS += -framework Foundation -framework AppKit -framework IOKit -framework OpenGL -framework CoreVideo
endif
endif
ifeq ($(TARGET_PLATFORM),PLATFORM_DRM)
# Libraries for DRM compiling
# NOTE: Required packages: libasound2-dev (ALSA)
LDLIBS = -lraylib -lbrcmGLESv2 -lbrcmEGL -lpthread -lrt -lm -lbcm_host -ldl
LDLIBS = -lraylib -lGLESv2 -lEGL -lpthread -lrt -lm -lgbm -ldrm -ldl -latomic
endif
ifeq ($(PLATFORM),PLATFORM_WEB)
ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW))
# Libraries for web (HTML5) compiling
LDLIBS = $(RAYLIB_RELEASE_PATH)/libraylib.bc
LDLIBS = $(RAYLIB_RELEASE_PATH)/libraylib.web.a
endif
# Define all object files required
EXAMPLES = \
core/core_basic_window \
core/core_input_keys \
core/core_input_mouse \
core/core_mouse_wheel \
core/core_input_gamepad \
core/core_random_values \
core/core_color_select \
core/core_drop_files \
core/core_storage_values \
core/core_gestures_detection \
core/core_3d_mode \
core/core_3d_picking \
core/core_3d_camera_free \
core/core_3d_camera_first_person \
core/core_2d_camera \
core/core_world_screen \
core/core_vr_simulator \
shapes/shapes_logo_raylib \
shapes/shapes_basic_shapes \
shapes/shapes_colors_palette \
shapes/shapes_logo_raylib_anim \
shapes/shapes_lines_bezier \
textures/textures_logo_raylib \
textures/textures_image_loading \
textures/textures_rectangle \
textures/textures_srcrec_dstrec \
textures/textures_to_image \
textures/textures_raw_data \
textures/textures_particles_blending \
textures/textures_image_processing \
textures/textures_image_drawing \
textures/textures_image_generation \
textures/textures_image_text \
text/text_sprite_fonts \
text/text_bmfont_ttf \
text/text_raylib_fonts \
text/text_format_text \
text/text_writing_anim \
text/text_ttf_loading \
text/text_bmfont_unordered \
text/text_input_box \
models/models_geometric_shapes \
models/models_box_collisions \
models/models_billboard \
models/models_obj_loading \
models/models_heightmap \
models/models_cubicmap \
models/models_mesh_picking \
models/models_mesh_generation \
models/models_material_pbr \
models/models_skybox \
models/models_yaw_pitch_roll \
shaders/shaders_model_shader \
shaders/shaders_shapes_textures \
shaders/shaders_custom_uniform \
shaders/shaders_postprocessing \
audio/audio_sound_loading \
audio/audio_music_stream \
audio/audio_module_playing \
audio/audio_raw_stream \
physac/physics_demo \
physac/physics_friction \
physac/physics_movement \
physac/physics_restitution \
physac/physics_shatter \
CURRENT_MAKEFILE = $(lastword $(MAKEFILE_LIST))
# Define source code object files required
#------------------------------------------------------------------------------------------------
#EXAMPLES_LIST_START
CORE = \
core/core_2d_camera \
core/core_2d_camera_mouse_zoom \
core/core_2d_camera_platformer \
core/core_2d_camera_split_screen \
core/core_3d_camera_first_person \
core/core_3d_camera_fps \
core/core_3d_camera_free \
core/core_3d_camera_mode \
core/core_3d_camera_split_screen \
core/core_3d_picking \
core/core_automation_events \
core/core_basic_screen_manager \
core/core_basic_window \
core/core_custom_frame_control \
core/core_custom_logging \
core/core_drop_files \
core/core_high_dpi \
core/core_input_gamepad \
core/core_input_gestures \
core/core_input_gestures_testbed \
core/core_input_keys \
core/core_input_mouse \
core/core_input_mouse_wheel \
core/core_input_multitouch \
core/core_input_virtual_controls \
core/core_random_sequence \
core/core_random_values \
core/core_scissor_test \
core/core_smooth_pixelperfect \
core/core_storage_values \
core/core_vr_simulator \
core/core_window_flags \
core/core_window_letterbox \
core/core_window_should_close \
core/core_world_screen
SHAPES = \
shapes/shapes_basic_shapes \
shapes/shapes_bouncing_ball \
shapes/shapes_collision_area \
shapes/shapes_colors_palette \
shapes/shapes_digital_clock \
shapes/shapes_double_pendulum \
shapes/shapes_draw_circle_sector \
shapes/shapes_draw_rectangle_rounded \
shapes/shapes_draw_ring \
shapes/shapes_easings_ball_anim \
shapes/shapes_easings_box_anim \
shapes/shapes_easings_rectangle_array \
shapes/shapes_following_eyes \
shapes/shapes_lines_bezier \
shapes/shapes_logo_raylib \
shapes/shapes_logo_raylib_anim \
shapes/shapes_rectangle_advanced \
shapes/shapes_rectangle_scaling \
shapes/shapes_splines_drawing \
shapes/shapes_top_down_lights
TEXTURES = \
textures/textures_background_scrolling \
textures/textures_blend_modes \
textures/textures_bunnymark \
textures/textures_fog_of_war \
textures/textures_gif_player \
textures/textures_image_channel \
textures/textures_image_drawing \
textures/textures_image_generation \
textures/textures_image_kernel \
textures/textures_image_loading \
textures/textures_image_processing \
textures/textures_image_rotate \
textures/textures_image_text \
textures/textures_logo_raylib \
textures/textures_mouse_painting \
textures/textures_npatch_drawing \
textures/textures_particles_blending \
textures/textures_polygon_drawing \
textures/textures_raw_data \
textures/textures_sprite_anim \
textures/textures_sprite_button \
textures/textures_sprite_explosion \
textures/textures_srcrec_dstrec \
textures/textures_textured_curve \
textures/textures_tiled_drawing \
textures/textures_to_image
TEXT = \
text/text_3d_drawing \
text/text_codepoints_loading \
text/text_font_filters \
text/text_font_loading \
text/text_font_sdf \
text/text_font_spritefont \
text/text_format_text \
text/text_input_box \
text/text_rectangle_bounds \
text/text_sprite_fonts \
text/text_unicode_emojis \
text/text_unicode_ranges \
text/text_writing_anim
MODELS = \
models/models_animation \
models/models_billboard_rendering \
models/models_bone_socket \
models/models_box_collisions \
models/models_cubicmap \
models/models_draw_cube_texture \
models/models_first_person_maze \
models/models_geometric_shapes \
models/models_gpu_skinning \
models/models_heightmap \
models/models_loading \
models/models_loading_gltf \
models/models_loading_m3d \
models/models_loading_vox \
models/models_mesh_generation \
models/models_mesh_picking \
models/models_orthographic_projection \
models/models_point_rendering \
models/models_rlgl_solar_system \
models/models_skybox_rendering \
models/models_tesseract_view \
models/models_waving_cubes \
models/models_yaw_pitch_roll
SHADERS = \
shaders/shaders_basic_lighting \
shaders/shaders_basic_pbr \
shaders/shaders_custom_uniform \
shaders/shaders_deferred_render \
shaders/shaders_eratosthenes \
shaders/shaders_fog_rendering \
shaders/shaders_hot_reloading \
shaders/shaders_hybrid_render \
shaders/shaders_julia_set \
shaders/shaders_lightmap \
shaders/shaders_mesh_instancing \
shaders/shaders_model_shader \
shaders/shaders_multi_sample2d \
shaders/shaders_normal_map \
shaders/shaders_palette_switch \
shaders/shaders_postprocessing \
shaders/shaders_raymarching \
shaders/shaders_rounded_rectangle \
shaders/shaders_shadowmap \
shaders/shaders_shapes_textures \
shaders/shaders_simple_mask \
shaders/shaders_spotlight \
shaders/shaders_texture_outline \
shaders/shaders_texture_rendering \
shaders/shaders_texture_tiling \
shaders/shaders_texture_waves \
shaders/shaders_vertex_displacement \
shaders/shaders_view_depth \
shaders/shaders_write_depth
AUDIO = \
audio/audio_mixed_processor \
audio/audio_module_playing \
audio/audio_music_stream \
audio/audio_raw_stream \
audio/audio_sound_loading \
audio/audio_sound_multi \
audio/audio_sound_positioning \
audio/audio_stream_effects
OTHERS = \
others/easings_testbed \
others/embedded_files_loading \
others/raylib_opengl_interop \
others/raymath_vector_angle \
others/rlgl_compute_shader \
others/rlgl_standalone
#EXAMPLES_LIST_END
# Define processes to execute
#------------------------------------------------------------------------------------------------
# Default target entry
all: $(EXAMPLES)
all: $(CORE) $(SHAPES) $(TEXT) $(TEXTURES) $(MODELS) $(SHADERS) $(AUDIO)
core: $(CORE)
shapes: $(SHAPES)
textures: $(TEXTURES)
text: $(TEXT)
models: $(MODELS)
shaders: $(SHADERS)
audio: $(AUDIO)
# Generic compilation pattern
# NOTE: Examples must be ready for Android compilation!
%: %.c
ifeq ($(PLATFORM),PLATFORM_ANDROID)
ifeq ($(TARGET_PLATFORM),PLATFORM_ANDROID)
$(MAKE) -f Makefile.Android PROJECT_NAME=$@ PROJECT_SOURCE_FILES=$<
else ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW))
$(MAKE) -f Makefile.Web $@
else
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
endif
# fix dylib install path name for each executable (MAC)
fix_dylib:
ifeq ($(PLATFORM_OS),OSX)
find . -type f -perm +ugo+x -print0 | xargs -t -0 -R 1 -I file install_name_tool -change libglfw.3.0.dylib ../external/glfw3/lib/osx/libglfw.3.0.dylib file
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -D$(TARGET_PLATFORM)
endif
# Clean everything
clean:
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW)
ifeq ($(PLATFORM_OS),WINDOWS)
del *.o *.exe /s
endif
ifeq ($(PLATFORM_OS),BSD)
find . -type f -perm -ugo+x -delete
rm -fv *.o
endif
ifeq ($(PLATFORM_OS),LINUX)
find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -f
find . -type f -executable -delete
rm -fv *.o
endif
ifeq ($(PLATFORM_OS),OSX)
find . -type f -perm +ugo+x -delete
rm -f *.o
endif
endif
ifeq ($(PLATFORM),PLATFORM_RPI)
ifeq ($(TARGET_PLATFORM),PLATFORM_DRM)
find . -type f -executable -delete
rm -f *.o
rm -fv *.o
endif
ifeq ($(PLATFORM),PLATFORM_WEB)
del *.o *.html *.js
ifeq ($(TARGET_PLATFORM),$(filter $(TARGET_PLATFORM),PLATFORM_WEB PLATFORM_WEB_RGFW))
ifeq ($(PLATFORM_OS),WINDOWS)
del *.wasm *.html *.js *.data
else
rm -f */*.wasm */*.html */*.js */*.data
endif
endif
@echo Cleaning done

View File

@@ -2,7 +2,7 @@
#
# raylib makefile for Android project (APK building)
#
# Copyright (c) 2017 Ramon Santamaria (@raysan5)
# Copyright (c) 2017-2025 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.
@@ -22,74 +22,125 @@
#**************************************************************************************************
# Define required raylib variables
PLATFORM ?= PLATFORM_ANDROID
RAYLIB_PATH ?= ..\..
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
ANDROID_HOME = C:/android-sdk
ANDROID_NDK = C:/android-ndk
ANDROID_TOOLCHAIN = C:/android_toolchain_arm_api16
ANDROID_BUILD_TOOLS = $(ANDROID_HOME)/build-tools/26.0.2
ANDROID_PLATFORM_TOOLS = $(ANDROID_HOME)/platform-tools
JAVA_HOME = C:/PROGRA~1/Java/jdk1.8.0_144
# 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_PATH ?= android.$(PROJECT_NAME)
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
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)))
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\logo36x36.png
APP_ICON_MDPI ?= $(RAYLIB_PATH)\logo\logo48x48.png
APP_ICON_HDPI ?= $(RAYLIB_PATH)\logo\logo72x72.png
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
APP_KEYSTORE_PASS ?= raylib
# Library type used for raylib and OpenAL Soft: STATIC (.a) or SHARED (.so/.dll)
RAYLIB_LIBTYPE ?= STATIC
OPENAL_LIBTYPE ?= STATIC
RAYLIB_LIB_PATH = $(RAYLIB_PATH)\release\libs\android\armeabi-v7a
OPENAL_LIB_PATH = $(RAYLIB_PATH)\release\libs\android\armeabi-v7a
# 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/armeabi-v7a/libraylib.so
endif
ifeq ($(OPENAL_LIBTYPE),SHARED)
PROJECT_SHARED_LIBS += lib/armeabi-v7a/libopenal.so
PROJECT_SHARED_LIBS = lib/$(ANDROID_ARCH_NAME)/libraylib.so
endif
# Compiler and archiver
# NOTE: GCC is being deprectated in Android NDK r16
CC = $(ANDROID_TOOLCHAIN)/bin/arm-linux-androideabi-gcc
AR = $(ANDROID_TOOLCHAIN)/bin/arm-linux-androideabi-ar
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
CFLAGS = -std=c99 -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16
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__=16
CFLAGS += -DANDROID -DPLATFORM_ANDROID -D__ANDROID_API__=$(ANDROID_API_VERSION)
# Paths containing required header files
INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/release/include -I$(RAYLIB_PATH)/src/external/android/native_app_glue
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
@@ -97,17 +148,18 @@ LDFLAGS += -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl
# 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/armeabi-v7a
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 = -lraylib -lnative_app_glue -lopenal -llog -landroid -lEGL -lGLESv2 -lOpenSLES -latomic -lc -lm -ldl
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',
# NOTE: typing 'make' will invoke the default target entry called 'all'
# TODO: Use apksigner for APK signing, jarsigner is not recommended
all: create_temp_project_dirs \
copy_project_required_libs \
copy_project_resources \
@@ -115,7 +167,6 @@ all: create_temp_project_dirs \
generate_android_manifest \
generate_apk_keystore \
config_project_package \
compile_native_app_glue \
compile_project_code \
compile_project_class \
compile_project_class_dex \
@@ -123,16 +174,24 @@ all: create_temp_project_dirs \
sign_project_apk_package \
zipalign_project_apk_package
# WARNING: About build signing process:
# - If using apksigner, zipalign must be used before the APK file has been signed.
# - If using jarsigner (not recommended), zipalign must be used after the APK file has been signed.
# REF: https://developer.android.com/tools/zipalign
# REF: https://developer.android.com/tools/apksigner
# 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\armeabi-v7a mkdir $(PROJECT_BUILD_PATH)\lib\armeabi-v7a
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
@@ -142,64 +201,94 @@ create_temp_project_dirs:
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
if not exist $(PROJECT_BUILD_PATH)\obj\$(1) mkdir $(PROJECT_BUILD_PATH)\obj\$(1)
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 /Y $(RAYLIB_LIB_PATH)\libraylib.so $(PROJECT_BUILD_PATH)\lib\armeabi-v7a\libraylib.so
endif
ifeq ($(OPENAL_LIBTYPE),SHARED)
copy /Y $(OPENAL_LIB_PATH)\libopenal.so $(PROJECT_BUILD_PATH)\lib\armeabi-v7a\libopenal.so
$(COPY_COMMAND) $(RAYLIB_LIB_PATH)/libraylib.so $(PROJECT_BUILD_PATH)/lib/$(ANDROID_ARCH_NAME)/libraylib.so
endif
ifeq ($(RAYLIB_LIBTYPE),STATIC)
copy /Y $(RAYLIB_LIB_PATH)\libraylib.a $(PROJECT_BUILD_PATH)\lib\armeabi-v7a\libraylib.a
endif
ifeq ($(OPENAL_LIBTYPE),STATIC)
copy /Y $(OPENAL_LIB_PATH)\libopenal.a $(PROJECT_BUILD_PATH)\lib\armeabi-v7a\libopenal.a
$(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
# TODO: Review xcopy usage, it can not be found in some systems!
copy_project_resources:
copy $(APP_ICON_LDPI) $(PROJECT_BUILD_PATH)\res\drawable-ldpi\icon.png /Y
copy $(APP_ICON_MDPI) $(PROJECT_BUILD_PATH)\res\drawable-mdpi\icon.png /Y
copy $(APP_ICON_HDPI) $(PROJECT_BUILD_PATH)\res\drawable-hdpi\icon.png /Y
$(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 ($(OPENAL_LIBTYPE),SHARED)
@echo System.loadLibrary("openal"); >> $(PROJECT_BUILD_PATH)/src/com/$(APP_COMPANY_NAME)/$(APP_PRODUCT_NAME)/NativeLoader.java
endif
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="16" /^> >> $(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
@@ -215,25 +304,51 @@ generate_android_manifest:
@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:
if not exist $(PROJECT_BUILD_PATH)/$(PROJECT_NAME).keystore $(JAVA_HOME)/bin/keytool -genkeypair -validity 1000 -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
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-16/android.jar
$(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 $(RAYLIB_PATH)/src/external/android/native_app_glue/android_native_app_glue.c -o $(PROJECT_BUILD_PATH)/obj/native_app_glue.o $(CFLAGS)
$(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/armeabi-v7a/lib$(PROJECT_LIBRARY_NAME).so $(OBJS) -shared $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS)
$(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
@@ -242,7 +357,7 @@ $(PROJECT_BUILD_PATH)/obj/%.o:%.c
# 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-16/android.jar;$(PROJECT_BUILD_PATH)/obj -sourcepath $(PROJECT_BUILD_PATH)/src $(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
$(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)
@@ -253,8 +368,8 @@ compile_project_class_dex:
# 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-16/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/armeabi-v7a/lib$(PROJECT_LIBRARY_NAME).so $(PROJECT_SHARED_LIBS)
$(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:
@@ -267,7 +382,11 @@ zipalign_project_apk_package:
# Install $(PROJECT_NAME).apk to default emulator/device
# NOTE: Use -e (emulator) or -d (device) parameters if required
install:
$(ANDROID_PLATFORM_TOOLS)/adb install -r $(PROJECT_NAME).apk
$(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:
@@ -276,7 +395,7 @@ logcat:
# Install and monitorize $(PROJECT_NAME).apk to default emulator/device
deploy:
$(ANDROID_PLATFORM_TOOLS)/adb install -r $(PROJECT_NAME).apk
$(ANDROID_PLATFORM_TOOLS)/adb install $(PROJECT_NAME).apk
$(ANDROID_PLATFORM_TOOLS)/adb logcat -c
$(ANDROID_PLATFORM_TOOLS)/adb logcat raylib:V *:S
@@ -284,6 +403,10 @@ deploy:
# 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

1354
examples/Makefile.Web Normal file

File diff suppressed because it is too large Load Diff

239
examples/README.md Normal file
View File

@@ -0,0 +1,239 @@
## 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`)
- `make [module]/[name]` builds one examples for a particular module (e.g `make core/core_basic_window`)
### 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 COLLECTION [TOTAL: 160]
### category: core [35]
Examples using raylib[core](../src/rcore.c) 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 |
|-----------|--------|:-------------------:|:------------------:|:-----------------------:|:----------------------|
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [core_input_mouse](core/core_input_mouse.c) | <img src="core/core_input_mouse.png" alt="core_input_mouse" width="80"> | ⭐☆☆☆ | 1.0 | 5.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [core_input_gestures_testbed](core/core_input_gestures_testbed.c) | <img src="core/core_input_gestures_testbed.png" alt="core_input_gestures_testbed" width="80"> | ⭐⭐⭐☆ | 4.6 | 5.6 | [ubkp](https://github.com/ubkp) |
| [core_input_virtual_controls](core/core_input_virtual_controls.c) | <img src="core/core_input_virtual_controls.png" alt="core_input_virtual_controls" width="80"> | ⭐⭐☆☆ | 5.0 | 5.0 | [oblerion](https://github.com/oblerion) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [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 | [arvyy](https://github.com/arvyy) |
| [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) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [core_3d_camera_fps](core/core_3d_camera_fps.c) | <img src="core/core_3d_camera_fps.png" alt="core_3d_camera_fps" width="80"> | ⭐⭐⭐☆ | 5.5 | 5.5 | [Agnis Aldins](https://github.com/nezvers) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [core_random_sequence](core/core_random_sequence.c) | <img src="core/core_random_sequence.png" alt="core_random_sequence" width="80"> | ⭐☆☆☆ | 5.0 | 5.0 | [Dalton Overmyer](https://github.com/REDl3east) |
| [core_automation_events](core/core_automation_events.c) | <img src="core/core_automation_events.png" alt="core_automation_events" width="80"> | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) |
| [core_high_dpi](core/core_high_dpi.c) | <img src="core/core_high_dpi.png" alt="core_high_dpi" width="80"> | ⭐⭐☆☆ | 5.0 | 5.5 | [Jonathan Marler](https://github.com/marler8997) |
### category: shapes [20]
Examples using raylib shapes drawing functionality, provided by raylib [shapes](../src/rshapes.c) module.
| example | image | difficulty<br>level | version<br>created | last version<br>updated | original<br>developer |
|-----------|--------|:-------------------:|:------------------:|:-----------------------:|:----------------------|
| [shapes_basic_shapes](shapes/shapes_basic_shapes.c) | <img src="shapes/shapes_basic_shapes.png" alt="shapes_basic_shapes" width="80"> | ⭐☆☆☆ | 1.0 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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.0 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [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) |
| [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) |
| [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) |
| [shapes_rectangle_advanced](shapes/shapes_rectangle_advanced.c) | <img src="shapes/shapes_rectangle_advanced.png" alt="shapes_rectangle_advanced" width="80"> | ⭐⭐⭐⭐️ | 5.5 | 5.5 | [Everton Jr.](https://github.com/evertonse) |
| [shapes_splines_drawing](shapes/shapes_splines_drawing.c) | <img src="shapes/shapes_splines_drawing.png" alt="shapes_splines_drawing" width="80"> | ⭐⭐⭐☆ | 5.0 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) |
| [shapes_digital_clock](shapes/shapes_digital_clock.c) | <img src="shapes/shapes_digital_clock.png" alt="shapes_digital_clock" width="80"> | ⭐⭐☆☆ | 5.5 | 5.6 | [Hamza RAHAL](https://github.com/hmz-rhl) |
| [shapes_double_pendulum](shapes/shapes_double_pendulum.c) | <img src="shapes/shapes_double_pendulum.png" alt="shapes_double_pendulum" width="80"> | ⭐⭐☆☆ | 5.5 | 5.5 | [JoeCheong](https://github.com/Joecheong2006) |
### category: textures [26]
Examples using raylib textures functionality, including image/textures loading/generation and drawing, provided by raylib [textures](../src/rtextures.c) module.
| example | image | difficulty<br>level | version<br>created | last version<br>updated | original<br>developer |
|-----------|--------|:-------------------:|:------------------:|:-----------------------:|:----------------------|
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Wilhem Barbier](https://github.com/nounoursheureux) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [textures_bunnymark](textures/textures_bunnymark.c) | <img src="textures/textures_bunnymark.png" alt="textures_bunnymark" width="80"> | ⭐⭐⭐☆ | 1.6 | 2.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [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) |
| [textures_tiled_drawing](textures/textures_tiled_drawing.c) | <img src="textures/textures_tiled_drawing.png" alt="textures_tiled_drawing" width="80"> | ⭐⭐⭐☆ | 3.0 | 4.2 | [Vlad Adrian](https://github.com/demizdor) |
| [textures_polygon_drawing](textures/textures_polygon_drawing.c) | <img src="textures/textures_polygon_drawing.png" alt="textures_polygon_drawing" width="80"> | ⭐☆☆☆ | 3.7 | 3.7 | [Chris Camacho](https://github.com/chriscamacho) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [textures_image_kernel](textures/textures_image_kernel.c) | <img src="textures/textures_image_kernel.png" alt="textures_image_kernel" width="80"> | ⭐⭐⭐⭐️ | 1.3 | 1.3 | [Karim Salem](https://github.com/kimo-s) |
| [textures_image_channel](textures/textures_image_channel.c) | <img src="textures/textures_image_channel.png" alt="textures_image_channel" width="80"> | ⭐⭐☆☆ | 5.1 | 5.1 | [Bruno Cabral](https://github.com/brccabral) |
| [textures_image_rotate](textures/textures_image_rotate.c) | <img src="textures/textures_image_rotate.png" alt="textures_image_rotate" width="80"> | ⭐⭐☆☆ | 1.0 | 1.0 | [Ramon Santamaria](https://github.com/raysan5) |
| [textures_textured_curve](textures/textures_textured_curve.c) | <img src="textures/textures_textured_curve.png" alt="textures_textured_curve" width="80"> | ⭐⭐⭐☆ | 4.5 | 4.5 | [Jeffery Myers](https://github.com/JeffM2501) |
### category: text [13]
Examples using raylib text functionality, including sprite fonts loading/generation and text drawing, provided by raylib [text](../src/rtext.c) module.
| example | image | difficulty<br>level | version<br>created | last version<br>updated | original<br>developer |
|-----------|--------|:-------------------:|:------------------:|:-----------------------:|:----------------------|
| [text_sprite_fonts](text/text_sprite_fonts.c) | <img src="text/text_sprite_fonts.png" alt="text_sprite_fonts" width="80"> | ⭐☆☆☆ | 1.7 | 3.7 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [text_unicode_emojis](text/text_unicode_emojis.c) | <img src="text/text_unicode_emojis.png" alt="text_unicode_emojis" width="80"> | ⭐⭐⭐⭐️ | 2.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) |
| [text_unicode_ranges](text/text_unicode_ranges.c) | <img src="text/text_unicode_ranges.png" alt="text_unicode_ranges" width="80"> | ⭐⭐⭐⭐️ | 5.5 | 5.6 | [Vlad Adrian](https://github.com/demizdor) |
| [text_3d_drawing](text/text_3d_drawing.c) | <img src="text/text_3d_drawing.png" alt="text_3d_drawing" width="80"> | ⭐⭐⭐⭐️ | 3.5 | 4.0 | [Vlad Adrian](https://github.com/demizdor) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
### category: models [23]
Examples using raylib models functionality, including models loading/generation and drawing, provided by raylib [models](../src/rmodels.c) module.
| example | image | difficulty<br>level | version<br>created | last version<br>updated | original<br>developer |
|-----------|--------|:-------------------:|:------------------:|:-----------------------:|:----------------------|
| [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) |
| [models_billboard_rendering](models/models_billboard_rendering.c) | <img src="models/models_billboard_rendering.png" alt="models_billboard_rendering" width="80"> | ⭐⭐⭐☆ | 1.3 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [models_cubicmap](models/models_cubicmap.c) | <img src="models/models_cubicmap.png" alt="models_cubicmap" width="80"> | ⭐⭐☆☆ | 1.8 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [models_loading](models/models_loading.c) | <img src="models/models_loading.png" alt="models_loading" width="80"> | ⭐☆☆☆ | 2.0 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [models_loading_m3d](models/models_loading_m3d.c) | <img src="models/models_loading_m3d.png" alt="models_loading_m3d" width="80"> | ⭐⭐☆☆ | 4.5 | 4.5 | [bzt](https://github.com/bztsrc) |
| [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) |
| [models_point_rendering](models/models_point_rendering.c) | <img src="models/models_point_rendering.png" alt="models_point_rendering" width="80"> | ⭐⭐⭐☆ | 5.0 | 5.0 | [Reese Gallagher](https://github.com/satchelfrost) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [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) |
| [models_heightmap](models/models_heightmap.c) | <img src="models/models_heightmap.png" alt="models_heightmap" width="80"> | ⭐☆☆☆ | 1.8 | 3.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [models_skybox_rendering](models/models_skybox_rendering.c) | <img src="models/models_skybox_rendering.png" alt="models_skybox_rendering" width="80"> | ⭐⭐☆☆ | 1.8 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) |
| [models_draw_cube_texture](models/models_draw_cube_texture.c) | <img src="models/models_draw_cube_texture.png" alt="models_draw_cube_texture" width="80"> | ⭐⭐☆☆ | 4.5 | 4.5 | [Ramon Santamaria](https://github.com/raysan5) |
| [models_gpu_skinning](models/models_gpu_skinning.c) | <img src="models/models_gpu_skinning.png" alt="models_gpu_skinning" width="80"> | ⭐⭐⭐☆ | 4.5 | 4.5 | [Daniel Holden](https://github.com/orangeduck) |
| [models_bone_socket](models/models_bone_socket.c) | <img src="models/models_bone_socket.png" alt="models_bone_socket" width="80"> | ⭐⭐⭐⭐️ | 4.5 | 4.5 | [iP](https://github.com/ipzaur) |
| [models_tesseract_view](models/models_tesseract_view.c) | <img src="models/models_tesseract_view.png" alt="models_tesseract_view" width="80"> | ⭐⭐☆☆ | 5.6 | 5.6 | [Timothy van der Valk](https://github.com/arceryz) |
### category: shaders [29]
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 |
|-----------|--------|:-------------------:|:------------------:|:-----------------------:|:----------------------|
| [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/chriscamacho) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [shaders_postprocessing](shaders/shaders_postprocessing.c) | <img src="shaders/shaders_postprocessing.png" alt="shaders_postprocessing" width="80"> | ⭐⭐⭐☆ | 1.3 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [shaders_raymarching](shaders/shaders_raymarching.c) | <img src="shaders/shaders_raymarching.png" alt="shaders_raymarching" width="80"> | ⭐⭐⭐⭐️ | 2.0 | 4.2 | [Ramon Santamaria](https://github.com/raysan5) |
| [shaders_texture_rendering](shaders/shaders_texture_rendering.c) | <img src="shaders/shaders_texture_rendering.png" alt="shaders_texture_rendering" width="80"> | ⭐⭐☆☆ | 2.0 | 3.7 | [Michał Ciesielski](https://github.com/ciessielski) |
| [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 | [Serenity Skiff](https://github.com/GoldenThumbs) |
| [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) |
| [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 | [Josh Colclough](https://github.com/joshcol9232) |
| [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) |
| [shaders_fog_rendering](shaders/shaders_fog_rendering.c) | <img src="shaders/shaders_fog_rendering.png" alt="shaders_fog_rendering" width="80"> | ⭐⭐⭐☆ | 2.5 | 3.7 | [Chris Camacho](https://github.com/chriscamacho) |
| [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/chriscamacho) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [shaders_normal_map](shaders/shaders_normal_map.c) | <img src="shaders/shaders_normal_map.png" alt="shaders_normal_map" width="80"> | ⭐⭐⭐⭐️ | 5.6 | 5.6 | [Jeremy Montgomery](https://github.com/Sir_Irk) |
| [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/chriscamacho) |
| [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) |
| [shaders_hybrid_render](shaders/shaders_hybrid_render.c) | <img src="shaders/shaders_hybrid_render.png" alt="shaders_hybrid_render" width="80"> | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [Buğra Alptekin Sarı](https://github.com/BugraAlptekinSari) |
| [shaders_texture_tiling](shaders/shaders_texture_tiling.c) | <img src="shaders/shaders_texture_tiling.png" alt="shaders_texture_tiling" width="80"> | ⭐⭐☆☆ | 4.5 | 4.5 | [Luis Almeida](https://github.com/luis605) |
| [shaders_shadowmap](shaders/shaders_shadowmap.c) | <img src="shaders/shaders_shadowmap.png" alt="shaders_shadowmap" width="80"> | ⭐⭐⭐⭐️ | 5.0 | 5.0 | [TheManTheMythTheGameDev](https://github.com/TheManTheMythTheGameDev) |
| [shaders_vertex_displacement](shaders/shaders_vertex_displacement.c) | <img src="shaders/shaders_vertex_displacement.png" alt="shaders_vertex_displacement" width="80"> | ⭐⭐⭐☆ | 5.0 | 4.5 | [Alex ZH](https://github.com/ZzzhHe) |
| [shaders_write_depth](shaders/shaders_write_depth.c) | <img src="shaders/shaders_write_depth.png" alt="shaders_write_depth" width="80"> | ⭐⭐☆☆ | 4.2 | 4.2 | [Buğra Alptekin Sarı](https://github.com/BugraAlptekinSari) |
| [shaders_basic_pbr](shaders/shaders_basic_pbr.c) | <img src="shaders/shaders_basic_pbr.png" alt="shaders_basic_pbr" width="80"> | ⭐⭐⭐⭐️ | 5.0 | 5.1 | [Afan OLOVCIC](https://github.com/_DevDad) |
| [shaders_lightmap](shaders/shaders_lightmap.c) | <img src="shaders/shaders_lightmap.png" alt="shaders_lightmap" width="80"> | ⭐⭐⭐☆ | 4.5 | 4.5 | [Jussi Viitala](https://github.com/nullstare) |
| [shaders_rounded_rectangle](shaders/shaders_rounded_rectangle.c) | <img src="shaders/shaders_rounded_rectangle.png" alt="shaders_rounded_rectangle" width="80"> | ⭐⭐⭐☆ | 5.5 | 5.5 | [Anstro Pleuton](https://github.com/anstropleuton) |
| [shaders_view_depth](shaders/shaders_view_depth.c) | <img src="shaders/shaders_view_depth.png" alt="shaders_view_depth" width="80"> | ⭐⭐⭐☆ | 5.6 | 5.6 | [Luís Almeida](https://github.com/luis605) |
### category: audio [8]
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.
| example | image | difficulty<br>level | version<br>created | last version<br>updated | original<br>developer |
|-----------|--------|:-------------------:|:------------------:|:-----------------------:|:----------------------|
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [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 | [Ramon Santamaria](https://github.com/raysan5) |
| [audio_mixed_processor](audio/audio_mixed_processor.c) | <img src="audio/audio_mixed_processor.png" alt="audio_mixed_processor" width="80"> | ⭐⭐⭐⭐️ | 4.2 | 4.2 | [hkc](https://github.com/hatkidchan) |
| [audio_stream_effects](audio/audio_stream_effects.c) | <img src="audio/audio_stream_effects.png" alt="audio_stream_effects" width="80"> | ⭐⭐⭐⭐️ | 4.2 | 5.0 | [Ramon Santamaria](https://github.com/raysan5) |
| [audio_sound_multi](audio/audio_sound_multi.c) | <img src="audio/audio_sound_multi.png" alt="audio_sound_multi" width="80"> | ⭐⭐☆☆ | 4.6 | 4.6 | [Jeffery Myers](https://github.com/JeffM2501) |
| [audio_sound_positioning](audio/audio_sound_positioning.c) | <img src="audio/audio_sound_positioning.png" alt="audio_sound_positioning" width="80"> | ⭐⭐☆☆ | 5.5 | 5.5 | [Le Juez Victor](https://github.com/Bigfoot71) |
### category: others [6]
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 |
|-----------|--------|:-------------------:|:------------------:|:-----------------------:|:----------------------|
| [rlgl_standalone](others/rlgl_standalone.c) | <img src="others/rlgl_standalone.png" alt="rlgl_standalone" width="80"> | ⭐⭐⭐⭐️ | 1.6 | 4.0 | [Ramon Santamaria](https://github.com/raysan5) |
| [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) |
| [easings_testbed](others/easings_testbed.c) | <img src="others/easings_testbed.png" alt="easings_testbed" width="80"> | ⭐⭐⭐☆ | 2.5 | 3.0 | [Juan Miguel López](https://github.com/flashback-fx) |
| [raylib_opengl_interop](others/raylib_opengl_interop.c) | <img src="others/raylib_opengl_interop.png" alt="raylib_opengl_interop" width="80"> | ⭐⭐⭐⭐️ | 3.8 | 4.0 | [Stephan Soller](https://github.com/arkanis) |
| [embedded_files_loading](others/embedded_files_loading.c) | <img src="others/embedded_files_loading.png" alt="embedded_files_loading" width="80"> | ⭐⭐☆☆ | 3.0 | 3.5 | [Kristian Holmgren](https://github.com/defutura) |
| [raymath_vector_angle](others/raymath_vector_angle.c) | <img src="others/raymath_vector_angle.png" alt="raymath_vector_angle" width="80"> | ⭐⭐☆☆ | 1.0 | 4.6 | [Ramon Santamaria](https://github.com/raysan5) |
Some example missing? As always, contributions are welcome, feel free to send new examples!
Here is an[examples template](examples_template.c) with instructions to start with!

View File

@@ -0,0 +1,125 @@
/*******************************************************************************************
*
* raylib [audio] example - mixed audio processing
*
* Example complexity rating: [★★★★] 4/4
*
* 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-2025 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 - mixed audio processing");
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 - (int)(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

View File

@@ -1,13 +1,15 @@
/*******************************************************************************************
*
* raylib [audio] example - Module playing (streaming)
* raylib [audio] example - module playing (streaming)
*
* NOTE: This example requires OpenAL Soft library installed
* Example complexity rating: [★☆☆☆] 1/4
*
* 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.5
*
* 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-2025 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
@@ -23,38 +25,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/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 +74,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);
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;
}
}
//----------------------------------------------------------------------------------
@@ -113,29 +126,37 @@ int main()
BeginDrawing();
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.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 44 KiB

View File

@@ -1,37 +1,42 @@
/*******************************************************************************************
*
* raylib [audio] example - Music playing (streaming)
* raylib [audio] example - music streaming
*
* NOTE: This example requires OpenAL Soft library installed
* Example complexity rating: [★☆☆☆] 1/4
*
* 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.2
*
* 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-2025 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)");
InitWindow(screenWidth, screenHeight, "raylib [audio] example - music streaming");
InitAudioDevice(); // Initialize audio device
Music music = LoadMusicStream("resources/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 +44,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)*400;
// 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 +77,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 +97,4 @@ int main()
//--------------------------------------------------------------------------------------
return 0;
}
}

View File

@@ -1,13 +1,17 @@
/*******************************************************************************************
*
* raylib [audio] example - Raw audio streaming
* raylib [audio] example - raw audio streaming
*
* NOTE: This example requires OpenAL Soft library installed
* Example complexity rating: [★★★☆] 3/4
*
* 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)
* Example originally created with raylib 1.6, last time updated with raylib 4.2
*
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
* 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-2025 Ramon Santamaria (@raysan5) and James Hofmann (@triplefox)
*
********************************************************************************************/
@@ -15,39 +19,85 @@
#include <stdlib.h> // Required for: malloc(), free()
#include <math.h> // Required for: sinf()
#include <string.h> // Required for: memcpy()
#define MAX_SAMPLES 22050
#define MAX_SAMPLES 512
#define MAX_SAMPLES_PER_UPDATE 4096
int main()
// 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;
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
//--------------------------------------------------------------------------------------
int screenWidth = 800;
int screenHeight = 450;
const int screenWidth = 800;
const 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: 16bit-short, channels: 1-mono)
AudioStream stream = InitAudioStream(22050, 16, 1);
// Generate samples data from sine wave
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);
// TODO: Review data generation, it seems data is discontinued for loop,
// for that reason, there is a clip everytime audio stream is looped...
for (int i = 0; i < MAX_SAMPLES; i++)
{
data[i] = (short)(sinf(((2*PI*(float)i)/2)*DEG2RAD)*32000);
}
// 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)
int totalSamples = MAX_SAMPLES;
int samplesLeft = totalSamples;
// 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
@@ -58,24 +108,73 @@ int main()
{
// Update
//----------------------------------------------------------------------------------
// Refill audio stream if required
// NOTE: Every update we check if stream data has been already consumed and we update
// buffer with new data from the generated samples, we upload data at a rate (MAX_SAMPLES_PER_UPDATE),
// but notice that at some point we update < MAX_SAMPLES_PER_UPDATE data...
if (IsAudioBufferProcessed(stream))
{
int numSamples = 0;
if (samplesLeft >= MAX_SAMPLES_PER_UPDATE) numSamples = MAX_SAMPLES_PER_UPDATE;
else numSamples = samplesLeft;
mousePosition = GetMousePosition();
UpdateAudioStream(stream, data + (totalSamples - samplesLeft), numSamples);
samplesLeft -= numSamples;
// Reset samples feeding (loop audio)
if (samplesLeft <= 0) samplesLeft = totalSamples;
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
@@ -84,14 +183,15 @@ int main()
ClearBackground(RAYWHITE);
DrawText("SINE WAVE SHOULD BE PLAYING!", 240, 140, 20, LIGHTGRAY);
// NOTE: Draw a part of the sine wave (only screen width, proportional values)
for (int i = 0; i < GetScreenWidth(); i++)
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 = i;
position.y = 250 + 50*data[i]/32000;
position.x = (float)i;
position.y = 250 + 50*data[i*MAX_SAMPLES/screenWidth]/32000.0f;
DrawPixelV(position, RED);
}
@@ -102,13 +202,13 @@ int main()
// De-Initialization
//--------------------------------------------------------------------------------------
free(data); // Unload sine wave data
CloseAudioStream(stream); // Close raw audio stream and delete buffers from RAM
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;
}
}

View File

@@ -1,33 +1,38 @@
/*******************************************************************************************
*
* raylib [audio] example - Sound loading and playing
* raylib [audio] example - sound loading and playing
*
* NOTE: This example requires OpenAL Soft library installed
* Example complexity rating: [★☆☆☆] 1/4
*
* 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.1, last time updated with raylib 3.5
*
* 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-2025 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/sound.wav"); // Load WAV audio file
Sound fxOgg = LoadSound("resources/tanatana.ogg"); // Load OGG audio file
SetTargetFPS(60);
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 +51,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();

View File

@@ -0,0 +1,91 @@
/*******************************************************************************************
*
* raylib [audio] example - sound alias
*
* Example complexity rating: [★★☆☆] 2/4
*
* Example originally created with raylib 4.6, last time updated with raylib 4.6
*
* 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) 2023-2025 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 - sound alias");
InitAudioDevice(); // Initialize audio device
// Load audio file into the first slot as the 'source' sound,
// this sound owns the sample data
soundArray[0] = LoadSound("resources/sound.wav");
// Load an alias of the sound into slots 1-9. These do not own the sound data, but can be played
for (int i = 1; i < MAX_SOUNDS; i++) soundArray[i] = LoadSoundAlias(soundArray[0]);
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 the sound slot is out of bounds, go back to 0
if (currentSound >= MAX_SOUNDS) currentSound = 0;
// NOTE: Another approach 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

View File

@@ -0,0 +1,128 @@
/*******************************************************************************************
*
* raylib [audio] example - 3d sound positioning
*
* Example complexity rating: [★★☆☆] 2/4
*
* Example originally created with raylib 5.5, last time updated with raylib 5.5
*
* Example contributed by Le Juez Victor (@Bigfoot71) 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) 2025 Le Juez Victor (@Bigfoot71)
*
********************************************************************************************/
#include "raylib.h"
#include "raymath.h"
//------------------------------------------------------------------------------------
// Module Functions Declaration
//------------------------------------------------------------------------------------
static void SetSoundPosition(Camera listener, Sound sound, Vector3 position, float maxDist);
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [audio] example - 3d sound positioning");
InitAudioDevice();
Sound sound = LoadSound("resources/coin.wav");
Camera camera = {
.position = (Vector3) { 0, 5, 5 },
.target = (Vector3) { 0, 0, 0 },
.up = (Vector3) { 0, 1, 0 },
.fovy = 60,
.projection = CAMERA_PERSPECTIVE
};
DisableCursor();
SetTargetFPS(60);
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose())
{
// Update
//----------------------------------------------------------------------------------
UpdateCamera(&camera, CAMERA_FREE);
float th = GetTime();
Vector3 spherePos = {
.x = 5.0f*cosf(th),
.y = 0.0f,
.z = 5.0f*sinf(th)
};
SetSoundPosition(camera, sound, spherePos, 20.0f);
if (!IsSoundPlaying(sound)) PlaySound(sound);
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(RAYWHITE);
BeginMode3D(camera);
DrawGrid(10, 2);
DrawSphere(spherePos, 0.5f, RED);
EndMode3D();
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
UnloadSound(sound);
CloseAudioDevice(); // Close audio device
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
}
//------------------------------------------------------------------------------------
// Module Functions Definition
//------------------------------------------------------------------------------------
// Set sound 3d position
static void SetSoundPosition(Camera listener, Sound sound, Vector3 position, float maxDist)
{
// Calculate direction vector and distance between listener and sound source
Vector3 direction = Vector3Subtract(position, listener.position);
float distance = Vector3Length(direction);
// Apply logarithmic distance attenuation and clamp between 0-1
float attenuation = 1.0f/(1.0f + (distance/maxDist));
attenuation = Clamp(attenuation, 0.0f, 1.0f);
// Calculate normalized vectors for spatial positioning
Vector3 normalizedDirection = Vector3Normalize(direction);
Vector3 forward = Vector3Normalize(Vector3Subtract(listener.target, listener.position));
Vector3 right = Vector3Normalize(Vector3CrossProduct(listener.up, forward));
// Reduce volume for sounds behind the listener
float dotProduct = Vector3DotProduct(forward, normalizedDirection);
if (dotProduct < 0.0f) attenuation *= (1.0f + dotProduct*0.5f);
// Set stereo panning based on sound position relative to listener
float pan = 0.5f + 0.5f*Vector3DotProduct(normalizedDirection, right);
// Apply final sound properties
SetSoundVolume(sound, attenuation);
SetSoundPan(sound, pan);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,187 @@
/*******************************************************************************************
*
* raylib [audio] example - stream effects
*
* Example complexity rating: [★★★★] 4/4
*
* Example originally created with raylib 4.2, last time updated with raylib 5.0
*
* 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-2025 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
#include "raylib.h"
#include <stdlib.h> // Required for: NULL
//----------------------------------------------------------------------------------
// Global Variables Definition
//----------------------------------------------------------------------------------
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
// Converts the buffer data before using it
float *bufferData = (float *)buffer;
for (unsigned int i = 0; i < frames*2; i += 2)
{
const float l = bufferData[i];
const float r = bufferData[i + 1];
low[0] += k*(l - low[0]);
low[1] += k*(r - low[1]);
bufferData[i] = low[0];
bufferData[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

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.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,44 @@
::@echo off
:: .
:: Compile your examples for web using: build_example_web.bat <example_category>/<example_name>
:: .
SET "INPUT_FILE=%1"
:: Change delimiter for the FOR loop
FOR /f "tokens=1-10 delims=/" %%a IN ("%INPUT_FILE%") DO (
SET CATEGORY=%%a
SET FILENAME=%%b
)
:: > SETup required Environment
:: -------------------------------------
SET RAYLIB_PATH=C:\GitHub\raylib
SET EMSDK_PATH=C:\raylib\emsdk
SET COMPILER_PATH=C:\raylib\w64devkit\bin
ENV_SET PATH=%COMPILER_PATH%
SET MAKE=mingw32-make
echo
:: Set required web compilation options
:: -------------------------------------
::SET CC=%EMSDK_PATH%\upstream\emscripten\emcc
::SET CFLAGS=-Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces -Wunused-result -O3 -I. -Iexternal -I%RAYLIB_PATH%\src -I%RAYLIB_PATH%\external -DPLATFORM_WEB
::SET LDFLAGS=-L. -L$(RAYLIB_PATH)\src -sUSE_GLFW=3 -sEXPORTED_RUNTIME_METHODS=ccall -sASYNCIFY --shell-file %RAYLIB_PATH%\src\shell.html
::SET LDLIBS=%RAYLIB_PATH%\src\libraylib.web.a
echo
:: Clean latest build
:: ------------------------
cmd /c if exist %FILENAME%.html del /F %FILENAME%.html
cmd /c if exist %FILENAME%.wasm del /F %FILENAME%.wasm
cmd /c if exist %FILENAME%.js del /F %FILENAME%.js
cmd /c if exist %FILENAME%.data del /F %FILENAME%.data
echo
:: Setup emsdk environment
:: --------------------------
call %EMSDK_PATH%\emsdk_env.bat
echo on
:: Compile program
:: -----------------------
C:
cd %RAYLIB_PATH%\examples
%MAKE% -f Makefile.Web %CATEGORY%/%FILENAME% PLATFORM=PLATFORM_WEB -B
::%CC% -o %FILENAME%.html %FILENAME%.c %CFLAGS% %LDFLAGS% %LDLIBS% %RESOURCES%
cd ..
echo

View File

@@ -2,89 +2,94 @@
*
* raylib [core] example - 2d camera
*
* 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 complexity rating: [★★☆☆] 2/4
*
* Copyright (c) 2016 Ramon Santamaria (@raysan5)
* Example originally created with raylib 1.5, last time updated with raylib 3.0
*
* 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-2025 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
#include "raylib.h"
#include <math.h>
#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 += buildings[i].width;
buildColors[i] = (Color){ GetRandomValue(200, 240), GetRandomValue(200, 240), GetRandomValue(200, 250), 255 };
spacing += (int)buildings[i].width;
buildColors[i] = (Color){
(unsigned char)GetRandomValue(200, 240),
(unsigned char)GetRandomValue(200, 240),
(unsigned char)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);
// Uses log scaling to provide consistent zoom speed
camera.zoom = expf(logf(camera.zoom) + ((float)GetMouseWheelMove()*0.1f));
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 +99,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 +136,9 @@ int main()
}
// De-Initialization
//--------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}
}

View File

@@ -0,0 +1,146 @@
/*******************************************************************************************
*
* raylib [core] example - 2d camera mouse zoom
*
* Example complexity rating: [★★☆☆] 2/4
*
* Example originally created with raylib 4.2, last time updated with raylib 4.2
*
* 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) 2022-2025 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;
int zoomMode = 0; // 0-Mouse Wheel, 1-Mouse Move
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_ONE)) zoomMode = 0;
else if (IsKeyPressed(KEY_TWO)) zoomMode = 1;
// Translate based on mouse right click
if (IsMouseButtonDown(MOUSE_BUTTON_LEFT))
{
Vector2 delta = GetMouseDelta();
delta = Vector2Scale(delta, -1.0f/camera.zoom);
camera.target = Vector2Add(camera.target, delta);
}
if (zoomMode == 0)
{
// 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
// Uses log scaling to provide consistent zoom speed
float scale = 0.2f*wheel;
camera.zoom = Clamp(expf(logf(camera.zoom)+scale), 0.125f, 64.0f);
}
}
else
{
// Zoom based on mouse right click
if (IsMouseButtonPressed(MOUSE_BUTTON_RIGHT))
{
// 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;
}
if (IsMouseButtonDown(MOUSE_BUTTON_RIGHT))
{
// Zoom increment
// Uses log scaling to provide consistent zoom speed
float deltaX = GetMouseDelta().x;
float scale = 0.005f*deltaX;
camera.zoom = Clamp(expf(logf(camera.zoom)+scale), 0.125f, 64.0f);
}
}
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(RAYWHITE);
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(GetScreenWidth()/2, GetScreenHeight()/2, 50, MAROON);
EndMode2D();
// Draw mouse reference
//Vector2 mousePos = GetWorldToScreen2D(GetMousePosition(), camera)
DrawCircleV(GetMousePosition(), 4, DARKGRAY);
DrawTextEx(GetFontDefault(), TextFormat("[%i, %i]", GetMouseX(), GetMouseY()),
Vector2Add(GetMousePosition(), (Vector2){ -44, -24 }), 20, 2, BLACK);
DrawText("[1][2] Select mouse zoom mode (Wheel or Move)", 20, 20, 20, DARKGRAY);
if (zoomMode == 0) DrawText("Mouse left button drag to move, mouse wheel to zoom", 20, 50, 20, DARKGRAY);
else DrawText("Mouse left button drag to move, mouse press and move to zoom", 20, 50, 20, DARKGRAY);
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,306 @@
/*******************************************************************************************
*
* raylib [core] example - 2d camera platformer
*
* Example complexity rating: [★★★☆] 3/4
*
* 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-2025 arvyy (@arvyy)
*
********************************************************************************************/
#include "raylib.h"
#include "raymath.h"
#define G 400
#define PLAYER_JUMP_SPD 350.0f
#define PLAYER_HOR_SPD 200.0f
//----------------------------------------------------------------------------------
// Types and Structures Definition
//----------------------------------------------------------------------------------
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 platformer");
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.0f, 40.0f };
DrawRectangleRec(playerRect, RED);
DrawCircleV(player.position, 5.0f, GOLD);
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;
}
bool hitObstacle = false;
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 = true;
player->speed = 0.0f;
p->y = ei->rect.y;
break;
}
}
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

View File

@@ -0,0 +1,169 @@
/*******************************************************************************************
*
* raylib [core] example - 2d camera split screen
*
* Example complexity rating: [★★★★] 4/4
*
* 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-2025 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

View File

@@ -2,52 +2,143 @@
*
* raylib [core] example - 3d camera first person
*
* 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 complexity rating: [★★☆☆] 2/4
*
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
* 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-2025 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
#include "raylib.h"
#include "rcamera.h"
#define MAX_COLUMNS 20
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 first person");
// Define the camera to look into our 3d world (position, target, up vector)
Camera camera = {{ 4.0f, 2.0f, 4.0f }, { 0.0f, 1.8f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 60.0f };
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];
Vector3 positions[MAX_COLUMNS];
Color colors[MAX_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){ GetRandomValue(-15, 15), heights[i]/2, GetRandomValue(-15, 15) };
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 };
}
SetCameraMode(camera, CAMERA_FIRST_PERSON); // Set a first person camera mode
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
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
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
UpdateCamera(&camera); // Update camera
// 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 advanced camera controls, it's recommended 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
@@ -56,13 +147,13 @@ int main()
ClearBackground(RAYWHITE);
Begin3dMode(camera);
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++)
{
@@ -70,23 +161,48 @@ int main()
DrawCubeWires(positions[i], 2.0f, heights[i], 2.0f, MAROON);
}
End3dMode();
DrawRectangle( 10, 10, 220, 70, Fade(SKYBLUE, 0.5f));
DrawRectangleLines( 10, 10, 220, 70, BLUE);
// 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);
}
DrawText("First person camera default controls:", 20, 20, 10, BLACK);
DrawText("- Move with keys: W, A, S, D", 40, 40, 10, DARKGRAY);
DrawText("- Mouse move to look around", 40, 60, 10, DARKGRAY);
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;
}
}

View File

@@ -0,0 +1,330 @@
/*******************************************************************************************
*
* raylib [core] example - 3d first-person camera controller
*
* Example complexity rating: [★★★☆] 3/4
*
* Example originally created with raylib 5.5, last time updated with raylib 5.5
*
* Example contributed by Agnis Aldins (@nezvers) 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) 2025-2025 Agnis Aldins (@nezvers)
*
********************************************************************************************/
#include "raylib.h"
#include "raymath.h"
//----------------------------------------------------------------------------------
// Defines and Macros
//----------------------------------------------------------------------------------
// Movement constants
#define GRAVITY 32.0f
#define MAX_SPEED 20.0f
#define CROUCH_SPEED 5.0f
#define JUMP_FORCE 12.0f
#define MAX_ACCEL 150.0f
// Grounded drag
#define FRICTION 0.86f
// Increasing air drag, increases strafing speed
#define AIR_DRAG 0.98f
// Responsiveness for turning movement direction to looked direction
#define CONTROL 15.0f
#define CROUCH_HEIGHT 0.0f
#define STAND_HEIGHT 1.0f
#define BOTTOM_HEIGHT 0.5f
#define NORMALIZE_INPUT 0
//----------------------------------------------------------------------------------
// Types and Structures Definition
//----------------------------------------------------------------------------------
// Body structure
typedef struct {
Vector3 position;
Vector3 velocity;
Vector3 dir;
bool isGrounded;
} Body;
//----------------------------------------------------------------------------------
// Global Variables Definition
//----------------------------------------------------------------------------------
static Vector2 sensitivity = { 0.001f, 0.001f };
static Body player = { 0 };
static Vector2 lookRotation = { 0 };
static float headTimer = 0.0f;
static float walkLerp = 0.0f;
static float headLerp = STAND_HEIGHT;
static Vector2 lean = { 0 };
//----------------------------------------------------------------------------------
// Module Functions Declaration
//----------------------------------------------------------------------------------
static void DrawLevel(void);
static void UpdateCameraFPS(Camera *camera);
static void UpdateBody(Body *body, float rot, char side, char forward, bool jumpPressed, bool crouchHold);
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d first-person camera controller");
// Initialize camera variables
// NOTE: UpdateCameraFPS() takes care of the rest
Camera camera = { 0 };
camera.fovy = 60.0f;
camera.projection = CAMERA_PERSPECTIVE;
camera.position = (Vector3){
player.position.x,
player.position.y + (BOTTOM_HEIGHT + headLerp),
player.position.z,
};
UpdateCameraFPS(&camera); // Update camera parameters
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
//----------------------------------------------------------------------------------
Vector2 mouseDelta = GetMouseDelta();
lookRotation.x -= mouseDelta.x*sensitivity.x;
lookRotation.y += mouseDelta.y*sensitivity.y;
char sideway = (IsKeyDown(KEY_D) - IsKeyDown(KEY_A));
char forward = (IsKeyDown(KEY_W) - IsKeyDown(KEY_S));
bool crouching = IsKeyDown(KEY_LEFT_CONTROL);
UpdateBody(&player, lookRotation.x, sideway, forward, IsKeyPressed(KEY_SPACE), crouching);
float delta = GetFrameTime();
headLerp = Lerp(headLerp, (crouching ? CROUCH_HEIGHT : STAND_HEIGHT), 20.0f*delta);
camera.position = (Vector3){
player.position.x,
player.position.y + (BOTTOM_HEIGHT + headLerp),
player.position.z,
};
if (player.isGrounded && ((forward != 0) || (sideway != 0)))
{
headTimer += delta*3.0f;
walkLerp = Lerp(walkLerp, 1.0f, 10.0f*delta);
camera.fovy = Lerp(camera.fovy, 55.0f, 5.0f*delta);
}
else
{
walkLerp = Lerp(walkLerp, 0.0f, 10.0f*delta);
camera.fovy = Lerp(camera.fovy, 60.0f, 5.0f*delta);
}
lean.x = Lerp(lean.x, sideway*0.02f, 10.0f*delta);
lean.y = Lerp(lean.y, forward*0.015f, 10.0f*delta);
UpdateCameraFPS(&camera);
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(RAYWHITE);
BeginMode3D(camera);
DrawLevel();
EndMode3D();
// Draw info box
DrawRectangle(5, 5, 330, 75, Fade(SKYBLUE, 0.5f));
DrawRectangleLines(5, 5, 330, 75, 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(TextFormat("- Velocity Len: (%06.3f)", Vector2Length((Vector2){ player.velocity.x, player.velocity.z })), 15, 60, 10, BLACK);
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}
//----------------------------------------------------------------------------------
// Module Functions Definition
//----------------------------------------------------------------------------------
// Update body considering current world state
void UpdateBody(Body *body, float rot, char side, char forward, bool jumpPressed, bool crouchHold)
{
Vector2 input = (Vector2){ (float)side, (float)-forward };
#if defined(NORMALIZE_INPUT)
// Slow down diagonal movement
if ((side != 0) && (forward != 0)) input = Vector2Normalize(input);
#endif
float delta = GetFrameTime();
if (!body->isGrounded) body->velocity.y -= GRAVITY*delta;
if (body->isGrounded && jumpPressed)
{
body->velocity.y = JUMP_FORCE;
body->isGrounded = false;
// Sound can be played at this moment
//SetSoundPitch(fxJump, 1.0f + (GetRandomValue(-100, 100)*0.001));
//PlaySound(fxJump);
}
Vector3 front = (Vector3){ sin(rot), 0.f, cos(rot) };
Vector3 right = (Vector3){ cos(-rot), 0.f, sin(-rot) };
Vector3 desiredDir = (Vector3){ input.x*right.x + input.y*front.x, 0.0f, input.x*right.z + input.y*front.z, };
body->dir = Vector3Lerp(body->dir, desiredDir, CONTROL*delta);
float decel = (body->isGrounded ? FRICTION : AIR_DRAG);
Vector3 hvel = (Vector3){ body->velocity.x*decel, 0.0f, body->velocity.z*decel };
float hvelLength = Vector3Length(hvel); // Magnitude
if (hvelLength < (MAX_SPEED*0.01f)) hvel = (Vector3){ 0 };
// This is what creates strafing
float speed = Vector3DotProduct(hvel, body->dir);
// Whenever the amount of acceleration to add is clamped by the maximum acceleration constant,
// a Player can make the speed faster by bringing the direction closer to horizontal velocity angle
// More info here: https://youtu.be/v3zT3Z5apaM?t=165
float maxSpeed = (crouchHold? CROUCH_SPEED : MAX_SPEED);
float accel = Clamp(maxSpeed - speed, 0.f, MAX_ACCEL*delta);
hvel.x += body->dir.x*accel;
hvel.z += body->dir.z*accel;
body->velocity.x = hvel.x;
body->velocity.z = hvel.z;
body->position.x += body->velocity.x*delta;
body->position.y += body->velocity.y*delta;
body->position.z += body->velocity.z*delta;
// Fancy collision system against the floor
if (body->position.y <= 0.0f)
{
body->position.y = 0.0f;
body->velocity.y = 0.0f;
body->isGrounded = true; // Enable jumping
}
}
// Update camera for FPS behaviour
static void UpdateCameraFPS(Camera *camera)
{
const Vector3 up = (Vector3){ 0.0f, 1.0f, 0.0f };
const Vector3 targetOffset = (Vector3){ 0.0f, 0.0f, -1.0f };
// Left and right
Vector3 yaw = Vector3RotateByAxisAngle(targetOffset, up, lookRotation.x);
// Clamp view up
float maxAngleUp = Vector3Angle(up, yaw);
maxAngleUp -= 0.001f; // Avoid numerical errors
if ( -(lookRotation.y) > maxAngleUp) { lookRotation.y = -maxAngleUp; }
// Clamp view down
float maxAngleDown = Vector3Angle(Vector3Negate(up), yaw);
maxAngleDown *= -1.0f; // Downwards angle is negative
maxAngleDown += 0.001f; // Avoid numerical errors
if ( -(lookRotation.y) < maxAngleDown) { lookRotation.y = -maxAngleDown; }
// Up and down
Vector3 right = Vector3Normalize(Vector3CrossProduct(yaw, up));
// Rotate view vector around right axis
float pitchAngle = -lookRotation.y -
lean.y;
pitchAngle = Clamp(pitchAngle, -PI/2 + 0.0001f, PI/2 - 0.0001f); // Clamp angle so it doesn't go past straight up or straight down
Vector3 pitch = Vector3RotateByAxisAngle(yaw, right, pitchAngle);
// Head animation
// Rotate up direction around forward axis
float headSin = sin(headTimer*PI);
float headCos = cos(headTimer*PI);
const float stepRotation = 0.01f;
camera->up = Vector3RotateByAxisAngle(up, pitch, headSin*stepRotation + lean.x);
// Camera BOB
const float bobSide = 0.1f;
const float bobUp = 0.15f;
Vector3 bobbing = Vector3Scale(right, headSin*bobSide);
bobbing.y = fabsf(headCos*bobUp);
camera->position = Vector3Add(camera->position, Vector3Scale(bobbing, walkLerp));
camera->target = Vector3Add(camera->position, pitch);
}
// Draw game level
static void DrawLevel(void)
{
const int floorExtent = 25;
const float tileSize = 5.0f;
const Color tileColor1 = (Color){ 150, 200, 200, 255 };
// Floor tiles
for (int y = -floorExtent; y < floorExtent; y++)
{
for (int x = -floorExtent; x < floorExtent; x++)
{
if ((y & 1) && (x & 1))
{
DrawPlane((Vector3){ x*tileSize, 0.0f, y*tileSize}, (Vector2){ tileSize, tileSize }, tileColor1);
}
else if (!(y & 1) && !(x & 1))
{
DrawPlane((Vector3){ x*tileSize, 0.0f, y*tileSize}, (Vector2){ tileSize, tileSize }, LIGHTGRAY);
}
}
}
const Vector3 towerSize = (Vector3){ 16.0f, 32.0f, 16.0f };
const Color towerColor = (Color){ 150, 200, 200, 255 };
Vector3 towerPos = (Vector3){ 16.0f, 16.0f, 16.0f };
DrawCubeV(towerPos, towerSize, towerColor);
DrawCubeWiresV(towerPos, towerSize, DARKBLUE);
towerPos.x *= -1;
DrawCubeV(towerPos, towerSize, towerColor);
DrawCubeWiresV(towerPos, towerSize, DARKBLUE);
towerPos.z *= -1;
DrawCubeV(towerPos, towerSize, towerColor);
DrawCubeWiresV(towerPos, towerSize, DARKBLUE);
towerPos.x *= -1;
DrawCubeV(towerPos, towerSize, towerColor);
DrawCubeWiresV(towerPos, towerSize, DARKBLUE);
// Red sun
DrawSphere((Vector3){ 300.0f, 300.0f, 0.0f }, 100.0f, (Color){ 255, 0, 0, 255 });
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -1,35 +1,43 @@
/*******************************************************************************************
*
* raylib [core] example - Initialize 3d camera free
* raylib [core] example - 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 complexity rating: [★☆☆☆] 1/4
*
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
* 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-2025 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 +47,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 +58,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 +85,4 @@ int main()
//--------------------------------------------------------------------------------------
return 0;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -1,35 +1,43 @@
/*******************************************************************************************
*
* raylib [core] example - Initialize 3d mode
* raylib [core] example - 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 complexity rating: [] 1/4
*
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
* Example originally created with raylib 1.0, last time updated with raylib 1.0
*
* 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-2025 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 +54,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);

View File

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@@ -0,0 +1,176 @@
/*******************************************************************************************
*
* raylib [core] example - 3d camera split screen
*
* Example complexity rating: [★★★☆] 3/4
*
* 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-2025 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 things 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

View File

@@ -1,40 +1,45 @@
/*******************************************************************************************
*
* raylib [core] example - Picking in 3d mode
* raylib [core] example - 3d picking
*
* 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 complexity rating: [★★☆☆] 2/4
*
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
* Example originally created with raylib 1.3, last time updated with raylib 4.0
*
* 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-2025 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,16 +49,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))
{
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 = GetScreenToWorldRay(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;
}
//----------------------------------------------------------------------------------
@@ -63,9 +79,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);
@@ -77,16 +93,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);
@@ -100,4 +117,4 @@ int main()
//--------------------------------------------------------------------------------------
return 0;
}
}

View File

@@ -0,0 +1,340 @@
/*******************************************************************************************
*
* raylib [core] example - automation events
*
* Example complexity rating: [★★★☆] 3/4
*
* 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-2025 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
//----------------------------------------------------------------------------------
// Types and Structures Definition
//----------------------------------------------------------------------------------
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;
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;
}
//----------------------------------------------------------------------------------
// Events playing
// NOTE: Logic must be before Camera update because it depends on mouse-wheel value,
// that can be set by the played event... but some other inputs could be affected
//----------------------------------------------------------------------------------
if (eventPlaying)
{
// NOTE: Multiple events could be executed in a single frame
while (playFrameCounter == aelist.events[currentPlayFrame].frame)
{
PlayAutomationEvent(aelist.events[currentPlayFrame]);
currentPlayFrame++;
if (currentPlayFrame == aelist.count)
{
eventPlaying = false;
currentPlayFrame = 0;
playFrameCounter = 0;
TraceLog(LOG_INFO, "FINISH PLAYING!");
break;
}
}
playFrameCounter++;
}
//----------------------------------------------------------------------------------
// Update camera
//----------------------------------------------------------------------------------
camera.target = player.position;
camera.offset = (Vector2){ screenWidth/2.0f, screenHeight/2.0f };
float minX = 1000, minY = 1000, maxX = -1000, maxY = -1000;
// WARNING: On event replay, mouse-wheel internal value is set
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;
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;
//----------------------------------------------------------------------------------
// Events management
if (IsKeyPressed(KEY_S)) // Toggle events recording
{
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)) // Toggle events playing (WARNING: Starts next frame)
{
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 (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;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,47 +1,38 @@
/*******************************************************************************************
*
* raylib - Simple Game template
* raylib [core] example - basic screen manager
*
* <Game title>
* <Game description>
* Example complexity rating: [] 1/4
*
* This game has been created using raylib (www.raylib.com)
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
* NOTE: This example illustrates a very simple screen manager based on a states machines
*
* Copyright (c) 2014-2018 Ramon Santamaria (@raysan5)
* Example originally created with raylib 4.0, last time updated with raylib 4.0
*
* 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-2025 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
#include "raylib.h"
#if defined(PLATFORM_ANDROID)
#include "android_native_app_glue.h"
#endif
//----------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// Types and Structures Definition
//----------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
typedef enum GameScreen { LOGO = 0, TITLE, GAMEPLAY, ENDING } GameScreen;
//----------------------------------------------------------------------------------
// Main entry point
//----------------------------------------------------------------------------------
#if defined(PLATFORM_ANDROID)
void android_main(struct android_app *app)
#else
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main(void)
#endif
{
// Initialization
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
#if defined(PLATFORM_ANDROID)
InitWindow(screenWidth, screenHeight, app);
#else
InitWindow(screenWidth, screenHeight, "raylib template - simple game");
#endif
InitWindow(screenWidth, screenHeight, "raylib [core] example - basic screen manager");
GameScreen currentScreen = LOGO;
@@ -51,15 +42,15 @@ int main(void)
SetTargetFPS(60); // Set desired framerate (frames-per-second)
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
switch(currentScreen)
switch (currentScreen)
{
case LOGO:
case LOGO:
{
// TODO: Update LOGO screen variables here!
@@ -71,7 +62,7 @@ int main(void)
currentScreen = TITLE;
}
} break;
case TITLE:
case TITLE:
{
// TODO: Update TITLE screen variables here!
@@ -82,16 +73,16 @@ int main(void)
}
} break;
case GAMEPLAY:
{
{
// TODO: Update GAMEPLAY screen variables here!
// Press enter to change to ENDING screen
if (IsKeyPressed(KEY_ENTER) || IsGestureDetected(GESTURE_TAP))
{
currentScreen = ENDING;
}
}
} break;
case ENDING:
case ENDING:
{
// TODO: Update ENDING screen variables here!
@@ -99,66 +90,65 @@ int main(void)
if (IsKeyPressed(KEY_ENTER) || IsGestureDetected(GESTURE_TAP))
{
currentScreen = TITLE;
}
}
} break;
default: break;
}
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(RAYWHITE);
switch(currentScreen)
switch(currentScreen)
{
case LOGO:
case LOGO:
{
// TODO: Draw LOGO screen here!
DrawText("LOGO SCREEN", 20, 20, 40, LIGHTGRAY);
DrawText("WAIT for 2 SECONDS...", 290, 220, 20, GRAY);
} break;
case TITLE:
case TITLE:
{
// TODO: Draw TITLE screen here!
DrawRectangle(0, 0, screenWidth, screenHeight, GREEN);
DrawText("TITLE SCREEN", 20, 20, 40, DARKGREEN);
DrawText("PRESS ENTER or TAP to JUMP to GAMEPLAY SCREEN", 120, 220, 20, DARKGREEN);
} break;
case GAMEPLAY:
{
{
// TODO: Draw GAMEPLAY screen here!
DrawRectangle(0, 0, screenWidth, screenHeight, PURPLE);
DrawText("GAMEPLAY SCREEN", 20, 20, 40, MAROON);
DrawText("PRESS ENTER or TAP to JUMP to ENDING SCREEN", 130, 220, 20, MAROON);
} break;
case ENDING:
case ENDING:
{
// TODO: Draw ENDING screen here!
DrawRectangle(0, 0, screenWidth, screenHeight, BLUE);
DrawText("ENDING SCREEN", 20, 20, 40, DARKBLUE);
DrawText("PRESS ENTER or TAP to RETURN to TITLE SCREEN", 120, 220, 20, DARKBLUE);
} break;
default: break;
}
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
// TODO: Unload all loaded data (textures, fonts, audio) here!
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
#if !defined(PLATFORM_ANDROID)
return 0;
#endif
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,36 +1,46 @@
/*******************************************************************************************
*
* raylib [core] example - Basic window
* raylib [core] example - basic window
*
* Example complexity rating: [★☆☆☆] 1/4
*
* Welcome to raylib!
*
* To test examples, just press F6 and execute raylib_compile_execute script
* To test examples, just press F6 and execute 'raylib_compile_execute' script
* Note that compiled executable is placed in the same folder as .c file
*
* To test the examples on Web, press F6 and execute 'raylib_compile_execute_web' script
* Web version of the program is generated in the same folder as .c file
*
* You can find all basic examples on C:\raylib\raylib\examples folder or
* raylib official webpage: www.raylib.com
*
* Enjoy using raylib. :)
*
* 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) 2013-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) 2013-2025 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 - basic window");
SetTargetFPS(60);
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
@@ -54,7 +64,7 @@ int main()
}
// De-Initialization
//--------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------

Some files were not shown because too many files have changed in this diff Show More