Commit Graph

606 Commits

Author SHA1 Message Date
Chris Speciale
bb3b31b08d ObjectPool: Write documentation 2024-04-12 06:35:09 -04:00
Josh Tynjala
5f63ef1ee3 ObjectPool: null safety because map exists() result with null key is unspecified 2024-03-21 10:10:25 -07:00
player-03
d0e2a34014 Merge pull request #1764 from player-03/AssetsMacro
Remove conditional compilation from `AssetsMacro` class.
2024-02-27 19:05:10 -05:00
Joseph Cloutier
2fd8817ed6 Exclude AssetMacro from doc builds. 2024-02-24 19:39:05 -05:00
Joseph Cloutier
adcccc863f Remove embedBytesHL() function.
This was likely added when `#if hl` began to fail, hiding the problem. With the issue fixed, there's no more need for a workaround.
2024-02-24 19:25:37 -05:00
Joseph Cloutier
95cef72616 Inline resourceName and resourceType.
Sure they're private, but even then they shouldn't be writable.
2024-02-24 19:13:49 -05:00
Joseph Cloutier
3b04a053b7 Simplify AssetsMacro.embedData(). 2024-02-24 19:11:32 -05:00
Joseph Cloutier
c11ae61a1b Replace #if html5 in AssetsMacro. 2024-02-24 19:05:51 -05:00
Joseph Cloutier
81e129f804 Replace #if !display in AssetsMacro.
And while I'm at it, the `if` statement doesn't need to span the whole function. It can be a simple guard clause.
2024-02-24 18:58:49 -05:00
Joseph Cloutier
929dd2b015 Use class reification for readability. 2024-02-24 18:29:23 -05:00
Josh Tynjala
458ee49fbd FileDialog: fix compilation error for sys.io.File on non-sys desktop targets 2024-02-12 09:48:47 -08:00
player-03
76437a3014 Don't set asset.id to an empty string.
The `Asset` constructor sets `asset.id` to the asset's path, a sensible default. Of course, if the asset has a name instead of a path, we have to use that instead. Or if the user specified an ID, that's even better.

We just don't want to default to `""`, since then a bunch of assets could have the same ID.

Resolves #1758.
2024-02-11 21:18:19 -05:00
player-03
e72db10900 Change "vcruntime.dll" to "vcruntime140.dll" per HashLink's makefile. 2024-02-04 18:00:43 -05:00
player-03
3cbafc4622 Fix filename typo.
Closes #1756.
2024-02-03 22:21:50 -05:00
Josh Tynjala
f8a70444f5 Some missing docs 2024-01-29 12:27:48 -08:00
Josh Tynjala
f2ef5d0082 add comment about cast 2024-01-22 10:43:33 -08:00
Timur
c58013c5e6 Fix "don't know how to cast array" error.
This can happen when compiling HL with `analyzer-optimize`.
2024-01-22 10:43:33 -08:00
player-03
f0aae1f8f2 Correctly check for errors in Haxelib.runProcess().
In safe mode, this function includes its own `try ... catch` block, so we don't need one here. Instead, we need to check if the output is null.
2024-01-21 14:11:51 -05:00
player-03
13865cbbc9 Make better use of getPath().
If you check `paths.exists()` first, then there's no benefit to calling `getPath(id)`: it always just returns `paths.get(id)`. It's more effective to let `getPath()` perform all of its checks.
2024-01-18 14:02:58 -05:00
player-03
558fd0791c Merge pull request #1700 from EliteMasterEric/bugfix/library-get-path
Always use `getPath` instead of `paths.get()` directly.
2024-01-18 13:57:13 -05:00
player-03
40d70d8e53 Use paths.get() when pathGroups was already checked. 2024-01-18 13:56:44 -05:00
player-03
a414f64173 Optimize CI workflow. (#1743)
See pull request for details. Summary:

* Reduce dependencies between CI jobs, allowing more of them to run in parallel.
* Use Linux for as many jobs as possible.
* Merge matching "-ndll" and "-samples" jobs. This way, the latter doesn't have to waste time recreating the former's environment, and the workflow summary is simplified. Downside: this delays package-haxelib.
* Update to a newer macOS version, as the old version massively slowed down Homebrew.
* Skip the HelloWorld test for Mac and iOS, as those two can build slowly under some circumstances, delaying package-haxelib. These could be restored later, if performance seems good enough.
* Add `HAXE_VERSION` environment variable, so future updates will only have to make one change. Unfortunately, doing the same for the Windows/Mac/Linux versions would severely hurt performance, so those remain hard-coded.
* Split up some steps within jobs for better organization.
2024-01-18 13:22:05 -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
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
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
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
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
Joshua Granick
2ccee960dc Rename Emscripten target to WebAssembly 2023-05-30 08:53:09 -07:00
Joshua Granick
b410a90121 Print http-server message, allow auto port finding starting at 3000 2023-05-30 08:52:38 -07:00
Joshua Granick
be19381999 Emscripten fixes 2023-05-30 08:46:52 -07:00
Joshua Granick
22abd30209 Improve error log on webassembly 2023-05-23 20:11:28 -07:00
Joshua Granick
6dee2204b0 Set webassembly, wasm, emscripten in Lime project XML parse 2023-05-23 19:51:37 -07:00