Commit Graph

2149 Commits

Author SHA1 Message Date
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
Rob Loach
30ea4bdcce
Remove libraylib.a 2019-01-23 00:46:29 -05: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
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
raysan5
0d2cfce18e Review raudio comments 2019-01-19 16:51:41 +01:00
raysan5
d41e50f866 Allow ShowWindow usage ;) 2019-01-19 12:34:04 +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
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
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
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
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
35bcbd1b60
Merge pull request #718 from MarcoLizza/shaders-uniforms-array
Shaders uniforms array
2019-01-09 17:01:59 +01:00
Marco Lizza
73597332b6 Adding uniform array support for shaders. 2019-01-09 16:18:00 +01: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
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
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
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
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
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
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
788bb78989 Some tweaks 2018-12-20 10:40:28 +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
965a91cebb Support PIC image format loading 2018-12-18 18:18:40 +01:00
Ray
db96cf4a8b Corrected bug on OpenGL ES quads drawing 2018-12-18 16:52:18 +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
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
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
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
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
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
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
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
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
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
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
fc6f5a92f3 Reviewed functions definition 2018-10-24 22:24:59 +02: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
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
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
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
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
Michael Vetter
d8331bde3a Add FileExists() function 2018-10-14 14:21:02 +02:00
raysan5
68d2b0c071 Corrected description 2018-10-13 16:30:44 +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
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
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
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
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
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
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
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
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
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
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
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
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
raysan5
207b5a26b1 Create release directory if not exist 2018-08-25 18:25:51 +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
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
Oğuzhan Çankaya
2bef76735d
lerp for vector2 and float 2018-08-21 04:14:43 +03:00
Justin Clift
699cadcf98 Add the remaining numeric keypad keys, and a few other missing ones 2018-08-19 18:00:16 +01: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
b88bfa7267 Review PR formatting 2018-08-14 09:57:31 +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
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
Ray
7634cbeb22 Updated mini_al
Corrected issue with sound playing (pop sound at the end)
2018-08-08 18:26:05 +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
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
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
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
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
Pablo Marcos Oltra
8d134edaf7 Fix rlgl.h to be used as a standalone 2018-07-25 10:36:18 +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
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
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
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
98273f0152 Reviewed compilation options 2018-07-16 18:43:24 +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
0c631e6b5a Corrected comment 2018-07-15 21:24:59 +02:00
Ray
292499bdeb Reviewed LoadFontData() and GenImageFontAtlas() 2018-07-15 20:03:05 +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
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
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
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
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
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
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
276974de05 Removed function prototype
This function was added in text module as GenImageFontAtlas()
2018-07-02 16:39:04 +02: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
afe81d94ce Re-added: LoadFontEx() 2018-06-30 19:58:44 +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
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
0e135118fd Improved GenImageFontAtlas() 2018-06-21 00:18:13 +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
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
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
afc4181752 Work on ImageResizeCanvas() 2018-06-02 12:47:05 +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
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
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
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
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
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
aa76985c0d Review raylib version to 2.0
Review raylib_icon resource
2018-05-11 18:14:19 +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
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
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
3a803ac95e
Removed unnecesary define 2018-05-08 23:04:13 +02:00
Sherjil Ozair
8e9ff75f1c Use fabsf for floats, and avoid implicit type casting 2018-05-06 12:47:46 -04: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
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
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
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
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
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
3e0de31424
Merge pull request #504 from Martinfx/master
Fix potential bugs from static analysis
2018-04-02 18:10:38 +02:00
raysan5
375adf86a6 Review math usage to reduce temp variables 2018-04-02 15:16:45 +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
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
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
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
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
5ecee69088 Add 3d orthographic projection mode 2018-03-25 18:33:19 +02: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
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
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
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
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
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
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
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
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
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
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
36750ffb9a BREAKING CHANGE: Renamed function for consistency
Rename: GetHexValue() renamed to ColorToInt()
Added: ColorToHSV()
2018-02-12 11:55:22 +01:00
Ray
8af5f9dfe0 Avoid rendering SPACE character! 2018-02-12 11:25:00 +01:00
RDR8
f742f1289d
Update Makefile 2018-02-12 05:17:02 +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
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
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
raysan5
5437458469 Merge branch 'develop' of https://github.com/raysan5/raylib into develop 2018-02-04 13:46:45 +01:00
raysan5
3a11cc5e31 Incremeted version to align with CMake 2018-02-04 13:44:41 +01:00
Ahmad Fatoum
19f280f4b7
Bump version to 1.9.4 2018-02-04 13:36:08 +01:00
raysan5
6dc2f979cc Updated raylib version
Note that this version is under development and could be buggy on some
platforms...
2018-02-04 12:33:46 +01:00
raysan5
c32ed921a2 Security check in case window initialization fails 2018-02-04 12:31:16 +01:00
raysan5
70e0070a85 Reviewed window initialization
In case graphic device could not be created it returns false instead of
failing with an error tracelog (and consequently closing the program).
Window initialization success could be checked with new function
IsWindowReady()
2018-02-04 12:26:28 +01:00
Ahmad Fatoum
26c9176a14
Return false from InitWindow if glfwInit or glfwCreateWindow fails
You can't do much with raylib if glfwInit or glfwCreateWindow fails,
currently it just exits by means of TraceLog(LOG_ERROR.
User code, however, might want to fall back to a text-only UI
or display a warning if raylib can't be used.
2018-02-03 14:53:58 +01:00
Ahmad Fatoum
44cd4faf83
exit(3), don't crash, when glfwCreateWindow fails
glfwSetWindowPos was called on a NULL window, triggering an assert
inside GLFW. Check for failure and exit cleanly by means of
TraceLog(LOG_ERROR instead.
2018-02-03 14:46:26 +01:00
Ahmad Fatoum
7f5fa4d49c
CMake: Add tristate option for using system GLFW (#455)
-DWITH_SYSTEM_GLFW=ON: Link against system glfw and fail otherwise
-DWITH_SYSTEM_GLFW=OFF: Use embedded rglfw.c
-DWITH_SYSTEM_GLFW=IF_POSSIBLE: Probe for system glfw but fallback to
                                rglfw if unavailable

Also change Linux 64-bit CI build to install system glfw and use it,
so this doesn't bitrot.

Addresses #453.
2018-02-03 10:17:51 +01:00
Ahmad Fatoum
007ae1b7b3
CMake: Fix typo in MACOS_FATLIB 2018-02-03 09:38:57 +01:00
Ray San
d1ef6869a9 Added function DrawRectangleLinesEx() 2018-02-02 11:01:38 +01:00
Ray
58346414f7 Corrected typo 2018-01-31 15:32:40 +01:00
Ray
44c95af463 Added missing keys definitions 2018-01-31 14:08:08 +01:00
Ray
1ce8c80de9 Corrected several issues... 2018-01-28 16:52:18 +01:00
Ahmad Fatoum
f955b2255d
GLFW: Fix build error on Linux < v2.6.39
Cherry-pick from upstream glfw/glfw#1196
Found in CPANtesters test of Alien::raylib:
http://www.cpantesters.org/cpan/report/d956d128-0339-11e8-b0d1-b6c4abd39192
2018-01-27 14:53:04 +01:00
Ahmad Fatoum
7f7aac643a
CMake: Search dependencies and build pkg-config's Libs.private with it 2018-01-27 01:57:21 +01:00
Ahmad Fatoum
1093766669
CMake: remove OpenAL dependency 2018-01-27 01:05:17 +01:00
Ray
1d5fbef93d Clear fbo for drawing
Just in case ClearBackground() is not used after BeginTextureMode(), it clears fbo to color defined by previous ClearBackground()
2018-01-26 11:49:00 +01:00
Ahmad Fatoum
520f317a75
#include header for time() on Windows 2018-01-25 23:12:03 +01:00
Ahmad Fatoum
03ee03e2a6
#include header for glInsertEventMarkerEXT on macOS 2018-01-25 23:00:07 +01:00
Ahmad Fatoum
8be93762d9
Make function calls without prior declaration an error
which is the default behavior on C99 and up.
2018-01-25 22:34:29 +01:00
Ray
c2ec88f930 Support DEBUG library building 2018-01-25 10:07:51 +01:00
Ray
2dcaddc81c Review mipmaps generation issue
When changing image format, mipmaps are lost and regenerated from
scratch
2018-01-23 13:23:34 +01:00
Ray
04af83ff99 Improved pixel formats support
Review rlLoadTexture() function to make it simpler, now OpenGL texture
glInternalFormat, glFormat and glType are retrieved with new function
GetGlFormats()
2018-01-22 00:20:42 +01:00
Ray
8e0a277f7c Reviewed UWP branch integration 2018-01-19 12:02:15 +01:00
Ray
750323da53
Merge branch 'develop' into testing_uwp 2018-01-19 11:41:51 +01:00
Ahmad Fatoum
30ef3f3122
GCC/Clang: Treat void pointer arithmetic as error
As an extension, GNU C treats sizeof(void) as 1. MSVC doesn't.
Make it an error on GCC/Clang to avoid accidental MSVC breakage.
2018-01-18 13:22:41 +01:00
Ahmad Fatoum
a2edc9d641
MSVC: Fix void pointer arithmetic error
GNU C allows it as a compiler extension, but MSVC doesn't.
2018-01-18 13:20:13 +01:00
Ray
ce9f191f1b Added function: ImageMipmaps() 2018-01-18 00:23:45 +01:00
Ray
727cb1819b Reviewed VS2015 projects
- Support OpenGL 1.1 if selected macro
- Corrected MSVC compiler issues with (void *) data
- Removed raylib.dll project
- Created DEBUG_DLL and RELEASE_DLL configurations
2018-01-17 14:21:23 +01:00
Ray
c8e97df233 Reviewed function GenImagePerlinNoise()
Added support for noise image offset
2018-01-17 00:43:30 +01:00
Ray
dd3b3dbadb Redesigned rlLoadTexture()
- Added support for mipmap levels loading
- Removed internal function LoadTextureCompressed(), not required any
more...
2018-01-16 00:00:05 +01:00
-
230e78a23e Code tweak while using OpenAL backend 2018-01-15 13:54:25 +01:00
-
f2a675ae53 Reviewed Makefiles...
- Renamed VERSION to RAYLIB_VERSION
- Renamed API_VERSION to RAYLIB_API_VERSION
- Renamed RAYLIB_RELEASE to RAYLIB_RELEASE_PATH
- Support Web Assembly compilation on PLATFORM_WEB
2018-01-15 13:54:06 +01:00
Ray
278d8575bd Added new function: ImageAlphaCrop() 2018-01-11 10:22:32 +01:00
Ray
c37d2d448d Corrected issue with matrices
Matrix stack system should be reviewed but, in the meantime,
currentMatrix should be reseted in order of 3d to work
2018-01-08 01:03:04 +01:00
Ray
fcb0cae605 Use busy wait loop
If not using busy wait loop, linkage with WINMM in Windows platform is
required
2018-01-07 23:55:23 +01:00
Ray
4dcc02ff1e Launch draw call if buffer limits reached
Note that this solution is a temporal patch, not properly tested and
prone to fail, specially if matrix are pushed into the stack...
2018-01-07 23:54:11 +01:00
raysan5
e4be917d1b Added new image functions
- Added: ImageAlphaClear()
- Added: ImageAlphaPremultiply()
- Reorganized some functions
2018-01-07 00:51:26 +01:00
raysan5
b97134c3e1 Review float pixel format textures support 2018-01-06 18:17:38 +01:00
raysan5
7caa3201d5 Improved pixel formats support
- Renamed enum TextureFormat to PixelFormat for consistency
- Added support for pixel format UNCOMPRESSED_R32
- Using GetPixelDataSize() where required
2018-01-06 13:43:48 +01:00
raysan5
1f0f8c33fa Added function declaration 2018-01-06 02:51:28 +01:00
raysan5
7fa2861160 Added function: GetPixelDataSize()
Just found I need that function...
2018-01-06 02:50:20 +01:00
raysan5
0e48396369 Corrected issue with new functionality
Using default font texture as base white texture for rectangles reduces
draw calls considerably, actually, raygui can be drawn with a single
pass!
2018-01-06 02:44:47 +01:00
raysan5
b760f16f9b Reviewed framebuffers cleaning
Issues when dealing with FBOs
2018-01-06 02:43:38 +01:00
raysan5
1a82e1ab26 Added function GetFileName()
Review comments
2018-01-02 02:26:05 +01:00
raysan5
e1baae0249 Removed function DrawRectangleT()
Functionality integrated in DrawRectangle() and selectable with config
flag USE_DEFAULT_FONT_TEXTURE
2018-01-01 16:54:32 +01:00
raysan5
e69424c86f Reviewed text input 2017-12-31 23:50:22 +01:00
raysan5
e7cf03b1e4 Minor tweaks 2017-12-28 19:27:02 +01:00
raysan5
7965f983ba Support Wayland display on Linux desktop 2017-12-28 18:14:39 +01:00
raysan5
b19e155b34 Support UNCOMPRESSED_R32G32B32A32 texture format 2017-12-28 17:58:37 +01:00
raysan5
c93bca8c27 Review Makefile config flags
Support external GLFW usage
Renamed some flags for consistency
2017-12-28 17:58:09 +01:00
raysan5
0bd06eec51 Renamed function to SetTraceLog()
I think is clearer this way...
2017-12-24 16:49:54 +01:00
raysan5
e517d8fd16 Added function SetTraceLogTypes()
Trace log messages could be configured with this function to select wich
ones are shown
2017-12-24 16:47:33 +01:00
raysan5
e574428343 Some formatting tweaks 2017-12-24 16:12:52 +01:00
raysan5
f44dbf21cf Review physac timming system 2017-12-24 15:59:03 +01:00
Martinfx
9b7a24331d Added next bsd os 2017-12-23 18:12:19 +01:00
Ray San
00c34a035c Updated copyright year 2017-12-20 12:37:08 +01:00
Ray San
27c274bc3c Corrected issue with SaveImageAs()
That function depends on SavePNG() and forces platform check on textures
module, that behaviour should be changed, platform definition should be
only required on core module...
2017-12-20 12:36:47 +01:00
Ray San
e8bb53ed35 Corrected issue on OpenGL ES compilation 2017-12-20 12:35:12 +01:00
Ray San
61afd07bd7 Force OpenAL backend on some platforms
OpenAL audio backend is being forced on HTML5 and OSX
2017-12-20 12:34:18 +01:00
Ray San
1320044e94 Review code formatting 2017-12-20 11:37:43 +01:00