Commit Graph

852 Commits

Author SHA1 Message Date
Joseph Cloutier
d0e5eab1c5 Bug fix: unique argument was never checked.
Now it's once again possible to pass multiple copies of linker flags! I don't know why you'd want to do that.
2024-01-14 11:55:44 -05:00
player-03
55dfc267bb Merge branch '8.2.0-Dev' into ConfigData 2024-01-13 23:41:14 -05:00
Joseph Cloutier
6d437283af Merge branch 'develop' into 8.2.0-Dev 2024-01-13 23:35:33 -05:00
Joseph Cloutier
9718b8a454 Improve lime.tools.Platform type safety.
We shouldn't have to cast it every time!
2024-01-12 15:22:24 -05:00
Joseph Cloutier
31ad76f888 Reduce indentation in ProjectXMLParser.
It's more readable when there's more text and less whitespace onscreen.
2024-01-12 15:00:39 -05:00
Joseph Cloutier
6725825469 Initialize defines in HXProject.
This way, XML and HXP projects will use the same logic for `targetType`, among other things.
2024-01-12 14:49:42 -05:00
player-03
24bc9b2495 Merge pull request #1661 from tobil4sk/mingw-fixes-develop
Allow cross compiling Windows projects with MinGW
2024-01-12 13:56:37 -05:00
Josh Tynjala
b021dbeae7 lime display: if the project file is newer than an existing debug/release/final.hxml file, don't consider the .hxml file valid anymore
Code intelligence should always use the newest hxml content, so the fallback mode where the hxml content is generated, instead of loaded from an existing .hxml file, should be used when the project file is newer.

For instance, if the user changes any file/dir paths in their project file, continuing to use the existing .hxml file could lead to confusing error messages that still reference the old/cached file paths. It should always use the latest paths or other values from the project file. It should be considered a bug to use the old cached paths.

Previously, as a workaround, the user would need to clean or build their project again to get updated .hxml files. It might also require restarting their editor/IDE too. Bad developer experience when we can detect this case automatically.
2024-01-05 13:54:36 -08:00
player-03
79c4b05c06 Merge branch 'develop' into cffi-unicode-fixes 2024-01-05 00:03:31 -05:00
Joshua Granick
9b9faae177 Fix dynamic callback on HL (resolves issues in cURL) 2024-01-04 08:48:45 -08:00
Joshua Granick
88c2f6db98 Consistent return handling of HL CFFI string values 2024-01-03 21:37:19 -08:00
Joseph Cloutier
60064f55b3 Make AndroidManifest.xml more configurable.
Now if you need to add something to the `<application />` or `<activity />` tags, you can do it from project.xml. This will require new documentation, however.
2023-12-21 22:30:58 -05:00
Joseph Cloutier
8bdd93753d Standardize ConfigData's array logic. 2023-12-21 19:52:02 -05:00
Joseph Cloutier
8d3d123266 Add unique parameter to ConfigData.push(). 2023-12-21 17:18:54 -05:00
Joseph Cloutier
15e6dc5050 Remove duplicate code in ConfigData. 2023-12-21 01:14:57 -05:00
Joseph Cloutier
ca3012b877 Convert single to double quotes.
The convention, according to haxe-checkstyle, is to use double quotes unless single quotes are specifically required.
2023-12-20 23:03:02 -05:00
Joseph Cloutier
3cd308a6a8 Convert string literals to constant. 2023-12-20 22:55:25 -05:00
Joseph Cloutier
810e73d24d Restore anonymous function support to web workers.
Credit to StackOverflow user phnah for the new way to parse the string. This approach is much more robust.
2023-12-16 16:12:00 -05:00
player-03
c62ef3eb4a Add missing makePortable() call.
I guess I simply never tested that case.
2023-12-16 15:23:39 -05:00
andrew-git
c40ec312fc Joystick: add try/catch around navigator.getGamepads() because it might throw a JS SecurityError if we don't have permission to call it (#1728)
Fixes the following exception when we don't have permissions:

> Failed to execute 'getGamepads' on 'Navigator': Access to the feature "gamepad" is disallowed by permissions policy.

By catching the exception, it should now behave the same as older browsers, where navigator.getGamepads() doesn't exist at all.

In the future, it might make sense to set a flag if navigator.getGamepads() throws, and skip calling it more than once. However, we may want to listen for some kind of browser event that indicates that permission was granted later, and clear the flag when appropriate. Perhaps the gamepadconnected event?

---------

Co-authored-by: Josh Tynjala <joshtynjala@bowlerhat.dev>
2023-12-01 11:09:34 -08:00
Josh Tynjala
0a83f5c61f WindowsPlatform: Visual Studio HashLink/C build
Currently required to run in Visual Studio Developer command prompt
2023-11-17 15:15:21 -08:00
Josh Tynjala
beb8948983 HL/C on Windows with mingw 2023-11-02 14:17:35 -07:00
player-03
1a3a9bd5c5 Avoid integer overflow for long sounds.
Multiplying `dataLength * 8` produces a high number, which in the case of very long audio files can exceed the integer limit. Multiplying by 8.0 coerces to float, allowing much higher values.

An alternate solution is to divide first and multiply by 8 second, thus keeping the number from getting too large at any point. However, the purpose of the 8 is to convert `dataLength` from bytes to bits, so it's clearer if those two are close together.
2023-10-19 22:57:43 -04:00
Josh Tynjala
75bc87102b prepare for HL/C 2023-10-19 15:00:08 -07:00
Josh Tynjala
0528e3996f Assets: add removeLibrary() where unloading is optional (references #1718)
unloadLibrary() now calls removeLibrary() with true for unload to prevent code duplication
2023-10-18 09:19:25 -07:00
Josh Tynjala
667567f7bd WebAudioContext: add missing resume() field for non-html5 platforms to fix doc gen 2023-09-29 09:31:08 -07:00
UncertainProd
843e7fc873 Removed unused field hello in Float32Array.hx 2023-08-19 22:02:19 +05:30
player-03
3c245b5287 Make replaceVariable() account for properties.
Some useful information is only available as a property, not a field.
2023-08-18 16:20:01 -04:00
Joseph Cloutier
9a9b89ae06 Merge branch 'develop' into 8.2.0-Dev 2023-08-17 21:07:12 -04:00
Josh Tynjala
987e3dd425 Merge branch 'develop' into 8.1.0-Dev 2023-08-14 15:53:18 -07:00
Josh Tynjala
b6cfc7d812 HTTPRequest: fix missing response data for HTTP status codes (closes #1699)
Backends now return error and response data, but public API has not changed.

This allows OpenFL to expose URLLoader.data on IOErrorEvent.IO_ERROR to match the behavior of Flash
2023-08-11 13:43:16 -07:00
Joseph Cloutier
7348f62410 Work around fullPath() error/edge case.
Neko claims that the file passed to `fullPath()` must exist. Usually this isn't enforced, but apparently there are circumstances where it is.

c852db0004/libs/std/sys.c (L571)

I didn't take the time to pin down what those circumstances are. Instead I figured it was easiest to just rearrange some code to follow the rule.
2023-08-08 12:52:12 -04:00
player-03
51c9f861b3 Use enum abstract in Haxe 4.
Most of these warnings were fixed by merging the develop branch, but WorkOutput.hx is new in 8.2.0.
2023-08-01 13:44:18 -04:00
Joseph Cloutier
34a6b10064 Merge branch 'develop' into 8.2.0-Dev 2023-08-01 12:16:52 -04:00
Josh Tynjala
6cff64018a Add -npx flag for lime test electron to run the npx electron command instead of just electron.
This will prompt the user to install electron, if required. Saves a separate `npm install -g electron` command before testing.
2023-07-25 08:43:39 -07:00
EliteMasterEric
3c431559df Always use getPath instead of paths.get() directly. 2023-07-17 14:49:45 -04:00
player-03
828864063f Merge pull request #1694 from loudoweb/dev-fix-library-unload
clear cached files on library unload
2023-07-04 20:31:03 -04:00
player-03
8b27623afb Follow formatting conventions. 2023-07-04 20:30:33 -04:00
player-03
914009ddb3 Merge pull request #1680 from player-03/auto_formatting_error
Fix `WebGL2RenderContext` formatting.
2023-07-04 20:23:40 -04:00
Josh Tynjala
ef37cd9afb AIRHelper: needs .app file extension on macOS if AIR target is bundle 2023-06-29 10:25:38 -07:00
Josh Tynjala
2cd1dad5ed Merge branch 'develop' into 8.1.0-Dev 2023-06-09 11:12:43 -07:00
Josh Tynjala
01a04c4d48 Clipboard: (windows/mac) fix issue where requesting text from clipboard ignores clipboard contents, if user last modified the clipboard before app startup 2023-06-09 10:06:45 -07:00
player-03
71c1854779 Don't call Map.clear() in Haxe 3. 2023-06-06 21:55:37 -04:00
Josh Tynjala
9e2d431e2b Merge branch 'develop' into 8.1.0-Dev 2023-06-06 12:35:57 -07:00
Josh Tynjala
aebf139dc7 Fix window show/hide on desktop being incorrectly considered the same as app going into and out of the background/suspend on mobile
The app's Timers should still continue when a window is hidden. Especially since an app could have multiple windows, with some being shown and some being hidden. If only one were hidden, the other shown windows would clearly behave in a broken manner because the one hidden window would cause all app timers, even those associated with other windows, to be paused.

Introduces new WINDOW_SHOW AND WINDOW_HIDE events from C++ to Haxe, and new onShow and onHide events on Haxe Window.

Followup to 0918ee2381
2023-06-06 10:56:06 -07:00
Ludovic Bas
76c76652cc I don't know why the unload method was empty but now it clears all cached files when calling Assets.unloadLibrary(""); 2023-06-06 15:51:01 +02:00
Josh Tynjala
5a87d77897 Merge branch 'develop' into 8.1.0-Dev 2023-06-05 10:29:26 -07:00
Joshua Granick
35d1436dcd Revert WebAssembly improvements (moved to 8.1.0-Dev branch) 2023-05-30 09:03:18 -07:00
Joshua Granick
305c788ed7 Improve error log on webassembly 2023-05-30 08:53:52 -07:00
Joshua Granick
920eb77db4 Set webassembly, wasm, emscripten in Lime project XML parse 2023-05-30 08:53:25 -07:00