Commit Graph

701 Commits

Author SHA1 Message Date
Ray
40d6c15798 Addressed issue #1051
Allow frustrum culling near/far distance configuration at compile time.
2020-01-24 18:35:58 +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
Ray
22b7713287 IsFileExtension(): Review issue with no-extension files 2020-01-12 13:56:03 +01:00
Ray
fcf15fe8c0 Removed comment 2020-01-09 18:33:50 +01:00
Ray
358ca7595d Review IsFileExtension() to be case-insensitive 2020-01-09 10:43:21 +01:00
Ray
6d56c99a37 Reorganized some variables for consistency 2020-01-08 17:19:06 +01:00
raysan5
21c30f43d4 Update year to 2020 2020-01-05 20:01:54 +01:00
Ray
8473e94879 Add some comments on desktop multi-touch 2019-12-16 18:06:48 +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
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
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
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
416a52b5bc Minor comments tweak 2019-12-01 12:55:33 +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
ChrisDill
00c611a5fb [Core] Added ColorFromNormalized which is the reverse of ColorNormalize. (#1011) 2019-11-08 21:02:41 +01:00
Ray
39e22046c1 ClearDirectoryFiles(): Corrected issue #994 2019-10-25 14:29:12 +02:00
Ray
163a9e1f41 ClearDirectoryFiles() corrected bug 2019-10-23 00:46:41 +02:00
Ray
3c2ce77b7b ClearDirectoryFiles(): Corrected memory leak #991 2019-10-22 23:18:42 +02:00
Ray
c1d282d9e8 Corrected bug on no-extension 2019-10-21 17:37:43 +02:00
Ray
b75511248d Remove trailing spaces 2019-10-17 17:18:03 +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
raysan5
08165fed18 Review DecompressData() types, for consistency 2019-09-15 11:15:33 +02:00
Ray
4ccf1e61be Corect typo 2019-09-13 17:07:29 +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
d93f8eadf8 REVIEW: GetFileName(): Security checks 2019-09-08 01:11:53 +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
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
addbd88833 Expose scissor functionality 2019-08-26 21:09:03 +02:00
raysan5
20fa362700 Review comment 2019-08-21 18:59:15 +02:00
raysan5
3db13edd89 Support mouse cursor on RPI native
Reduced bunnymark limits
2019-08-20 20:39:22 +02:00
raysan5
ef3b01dffc RPI: Corrected issue when creating 3d projection view 2019-08-20 19:32:12 +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
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
Ray
b354c10072 ADDED: DirectoryExists()
ADDED: GetPrevDirectoryPath()
2019-08-07 00:26:33 +02:00
Ray
7c05e498fc Test Camera on Android
It can break building on that platform...
2019-07-24 22:39:33 +02:00
Ray
bc3983a3dd Solved issue #912 2019-07-22 21:15:25 +02:00
Leandro Gabriel
a4e307ed96 Fix typo in comment (onlyl -> only) 2019-06-24 16:06:02 +02:00
Ray
1b249ac1e1 Define some globals 2019-06-19 15:43:35 +02:00
Ray
f951f0c536 RENAMED: LoadDefaultFont() -> LoadFontDefault()
Renamed internal function for consistency with similar functions.
2019-06-16 23:42:51 +02: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
DarkElvenAngel
034e9ba1b8
Add files via upload 2019-06-10 17:09:53 -04:00
Mohamed Shazan
272d9d58e3 Add VS2017.ANGLE Project 2019-06-06 15:03:03 +05:30
Ray
f45691ca8d Rename function to follow javascript notation 2019-05-22 16:12:47 +02:00
Ray
be7e56f51e Move emscripten web shell to src 2019-05-22 10:40:51 +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
316b6aa181 Reverted change that breaks mouse on web 2019-05-20 17:21:46 +02:00
Ray
97c8a28aaa Remove trail spaces 2019-05-08 18:33:09 +02:00
Ray
afd90a5a56 Add comment tweak 2019-05-07 09:50:40 +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
fc56f8d9ef Work on touch_as_mouse input -WIP- 2019-05-02 09:46:01 +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
100c82e369 Review formatting to follow raylib style 2019-04-28 18:23:21 +02:00
Reece Mackie
a51f3be38f Fix web 2019-04-28 16:53:20 +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
Reece Mackie
e0580e6322 Fix merge 2019-04-27 21:59:01 +01: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
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
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
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
152b7471e9 Comment HiDPI window request
At least until a proper solution is found!
2019-04-22 18:46:05 +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
b8ada4b877 Review creation years 2019-04-08 12:25:13 +02:00
ChillerDragon
f21761fbbb Happy new year 2019 2019-04-07 17:49:12 +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
69656cb090 Added comment 2019-03-29 12:23:02 +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
7524fdc3e1 Review gestures disable flag 2019-03-25 12:30:20 +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
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
477ea4d660 Support external config flags 2019-03-12 16:00:26 +01:00
Ray
2e99c6cefb ADDED: IsWindowResized() 2019-03-04 22:58:20 +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
374811c440 Change ternary operator formatting 2019-02-22 13:13:11 +01:00
Ray
a886f5e743 Remove TABS 2019-02-22 12:12:21 +01: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
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
e996fe2ff5 ADDED: GetClipboardText(), SetClipboardText() 2019-02-11 18:03: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
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
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
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
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
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
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
raysan5
a41cc08f9b Support screenshots and GIF capturing on Android and Web 2019-01-05 18:03:09 +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
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
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
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
47358fe5ce Tweaks to support OpenGL ES 2.0 desktop 2018-12-24 17:09:46 +01:00
Ray
49055a9b17 Keep reviewing RPI keyboard input... 2018-12-19 15:31:20 +01:00
Ray
a22ee0c0e1 Review RPI keyboard inputs -WIP- 2018-12-18 19:11:12 +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
5ef4661216 Comments removed 2018-12-03 16:48:01 +01:00
Ray
1774260dab Some tweaks 2018-11-30 01:57:53 +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
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
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
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
fc1c9505ba Remove end-line spaces 2018-11-06 15:10:50 +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
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
72431c6c36 Code tweaks 2018-10-24 13:45:17 +02:00
Ray
b5bcf2c934 Review code formatting for RPI inputs 2018-10-22 11:48:16 +02:00
Berni8k
3d825eb973 Added RaspberryPi option to ignore duplicate touchscreens (On by default) 2018-10-21 15:06:40 +01: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
161b18edea Reviewed possible issue with external libs 2018-10-20 12:30:37 +02:00
Ray
764766bfb2 Some formatting tweaks 2018-10-18 16:00:11 +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
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
Ray
126ab49221 Minor tweaks 2018-10-10 23:55:36 +02:00
Ray
a511337ce8 ADDED: GetFileNameWithoutExt 2018-10-10 12:01:59 +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
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
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
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
abfbc42df7 PNG image size optimization 2018-09-25 12:53:31 +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
5b09630d45 Update mini_al to v0.8.8
Some minor tweaks around
2018-09-14 12:47:31 +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
Kim Kulling
b2cac82fa0 Fix compiler warings in texture.c and more. 2018-08-05 00:34:35 +02:00
Pablo Marcos Oltra
89cec68565 Prevent GLFW changing working dir to 'Resources' 2018-07-29 18:38:31 +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
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
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
raysan5
c6d188a09a Reviewed latest commit for Android gamepad support 2018-07-07 10:15:19 +02:00
Seth Archambault
f981daf1df Added SNES-style GAMEPAD SUPPORT 2018-07-06 13:33:46 -04: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
maficccc@gmail.com
59ebe1b7c3 Added support OpenBSD, NetBSD, DragonFly 2018-06-23 17:02:07 +02:00
Ray San
0c01c08718 Corrected issue, flag not supported...
...by emscripten glfw javascript implementation
2018-06-12 13:21:36 +02:00
Ray
9688c677de Review window creation hints 2018-06-02 18:26:57 +02:00
Ray
0b05169aa7 Some warnings review 2018-05-17 00:58:58 +02:00
Ray
1d3e4ef437 Corrected issue on file extension check 2018-05-17 00:04:12 +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
6045062a05 Renamed some functions
- Renamed Begin3dMode() --> BeginMode3D()
- Renamed Begin2dMode() --> BeginMode2D()
- Renamed End3dMode() --> EndMode3D()
- Renamed End2dMode() --> EndMode2D()
2018-05-04 16:54:05 +02:00
raysan5
dff1028466 Replaced ColorToFloat() by ColorNormalize() 2018-04-29 18:39:46 +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
76a6bf6c52 Review spacing for cosistency 2018-04-19 20:19:53 +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
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
Ray San
fe1c04d1b8 Removed old code 2018-04-03 12:42:28 +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
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
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
6c6d6776c0
Merge pull request #482 from a3f/master
raymath.h: Use C99 inline semantics
2018-03-15 12:27:40 +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
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
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
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
Ray
cd5e2e0f17 Corrected cursor issue for Wayland 2018-02-22 00:01:13 +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
d90a33b850 Some reviews for Android compilation 2018-02-11 01:48:53 +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
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
raysan5
3a11cc5e31 Incremeted version to align with CMake 2018-02-04 13:44:41 +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
Ray
1d5fbef93d Clear fbo for drawing
Just in case ClearBackground() is not used after BeginTextureMode(), it clears fbo to color defined by previous ClearBackground()
2018-01-26 11:49:00 +01:00
Ray
750323da53
Merge branch 'develop' into testing_uwp 2018-01-19 11:41:51 +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
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
e69424c86f Reviewed text input 2017-12-31 23:50:22 +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
Ray San
5290390494 Expose GetTime() function to users
Monotonic time since InitWindow() could be retrieved with this function.
2017-12-19 14:06:54 +01:00