Commit Graph

852 Commits

Author SHA1 Message Date
Joseph Cloutier
71442d09f4 Create a placeholder object to send Matrix3s to C++ code. 2024-05-29 20:00:23 -04:00
Joseph Cloutier
12ddca85d9 Implement AssetHelper.deleteStaleAssets(). 2024-05-28 19:33:30 -04:00
Joseph Cloutier
d3d476a1f5 Merge branch 'develop' into 8.2.0-Dev 2024-05-27 16:04:31 -04:00
Joseph Cloutier
1b8d7ac7fa Reduce indentation in ProjectXMLParser.
Whitespace changes interfere with merges, so this change must be applied manually first.
2024-05-27 15:58:20 -04:00
Beshoy Kamel
eabb10efbf Add Matrix4.createPerspective() (#1681)
* add createPerspective

I didn't find a createPerspective function so I tried to make one, but I don't really know if that will work.

* forgot something

* add doc

* I hope that's correct 

added zero to one mode, and -one to one mode variants

* fix missing import

* I keep forgetting shit

* change to exceptions

* Update Matrix4.hx

* remove `new`

* remove period

* final changes

* Follow formatting conventions.

* Avoid using `Math.pow()`.

Haxe is unable to optimize this function away. Also, it seems to be unable to return numbers smaller than 1e-7, so that's what I used in its place. Smaller constants can work, you just can't get them from `Math.pow()`.

* Fill in missing entries.

As per all the other "create" functions.

* Use guard clause for better readability.

* Fix duplicate assignment.

* Make `createPerspective()` public.

---------

Co-authored-by: player-03 <player3.14@gmail.com>
2024-05-27 15:36:44 -04:00
player-03
3078b7c1f6 Merge pull request #1787 from player-03/CFFI_haxelib_libpath
Fix error when locating Lime's bundled NDLLs.
2024-05-27 15:30:19 -04:00
player-03
d0b1f6b0df Merge pull request #1778 from UncertainProd/matrix-3-abstract
Make `Matrix3` an abstract over Float32Array (just like `Matrix4`)
2024-05-27 13:06:42 -04:00
Joseph Cloutier
166ac06e3e Store images as data when in a web worker.
More work may need to be done to transfer an image from a worker to the main thread, but this will at least prevent crashes.
2024-05-27 12:10:00 -04:00
UncertainProd
0f6d143790 Merge branch '8.2.0-Dev' of https://github.com/openfl/lime into matrix-3-abstract 2024-05-27 21:04:52 +05:30
Josh Tynjala
ac4039d849 ProjectXMLParser: handle Std.parseInt() returning null
Previously, null was propagated, which could lead to confusing errors from arithmetic operations. Now, it is ignored, and a warning is displayed that says where the invalid value can be found.
2024-05-22 09:10:04 -07:00
Joshua Granick
2dad602c0d ThreadPool: Crash fixes 2024-05-21 13:46:41 -07:00
player-03
a850b12fa0 Replace __findHaxelib() with a function that finds Lime's NDLL folder.
This is its only use case, so there's no need for an intermediate step of getting the library root. `haxelib path` does return the NDLL folder; the problem with the old implementation of `__findHaxelib()` was it got Lime's source folder instead.
2024-05-17 17:26:35 -04:00
player-03
4ce0a8302d Fix uninitialized variable. 2024-05-16 17:46:20 -04:00
player-03
3b115885f1 Use haxelib libpath when searching for NDLLs.
We could fall back to `haxelib path` for very old versions of Haxelib, but most likely even people stuck on Haxe 3 have updated Haxelib.

Also, `haxelib path` gave incorrect results in the first place, so falling back wouldn't do any good.
2024-05-16 17:40:49 -04:00
player-03
d2ea41570b Print an error message if the HXP project class doesn't match the file name.
This is required but not obvious, so we should spell it out.
2024-05-16 16:49:17 -04:00
Josh Tynjala
5381f96061 Allow cross-compiling to Linux cpp from other operating systems
Similar to #1661, except targeting Linux instead of Windows

On macOS, need to install https://github.com/messense/homebrew-macos-cross-toolchains

On Windows, I think it may be possible to get Linux compilers with Cygwin, but I haven't tried
2024-04-26 10:03:23 -07:00
UncertainProd
2138b7210a Merge branch 'develop' of https://github.com/UncertainProd/lime into matrix-3-abstract 2024-04-15 22:22:21 +05:30
Joseph Cloutier
657ad24682 Merge branch 'develop' into 8.2.0-Dev 2024-04-13 03:09:20 -04:00
Chris Speciale
bb3b31b08d ObjectPool: Write documentation 2024-04-12 06:35:09 -04:00
UncertainProd
45217685ec Make Matrix3 an abstract over Float32Array 2024-04-11 14:32:36 +05:30
Josh Tynjala
68169ea2d7 Added -nosign option for iOS to optionally skip codesigning (#1776)
This allows non-simulator builds on CI servers without setting up team-id/provisioning-profile/etc.

It also allows signing using a different method, if desired.

Co-Authored-By: mcagabe19@users.noreply.github.com
2024-04-09 09:01:51 -07:00
Joseph Cloutier
c50c30353a Include stack information for errors caught on another thread. 2024-04-02 03:44:12 -04:00
Josh Tynjala
83db8d8939 NativeWindow: call setTextInputEnabled(false) right away when window is created (closes openfl/openfl#2697)
We seem to have been assuming that it was false by default, but in SDL 2, it is true by default (planned to be false in SDL 3, apparently). It can cause weird behavior like IME popups appearing when holding down keys (something commonly done by users playing games, so we don't want that!). We want setTextInputEnabled(true) to happen only when an OpenFL TextField (or anything else that accepts text input) receives focus, and then cleared again when focus is lost.

This does not disable regular keyboard input. It is specifically related to what SDL considers text input, which is different, even if it uses the keyboard.
2024-04-01 12:20:25 -07:00
Joseph Cloutier
093cd6a592 Update ThreadPool constructor documentation (closes #1772). 2024-03-26 13:11:37 -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
win11
f59b669e46 make preserveDrawingBuffer configurable 2024-03-16 03:40:17 +03: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
Joseph Cloutier
f52b59bbff Merge branch 'develop' into 8.2.0-Dev 2024-02-05 14:46:33 -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
c3170a0577 Merge branch '8.2.0-Dev' into feature/hlc 2024-01-30 09:16:34 -08:00
Josh Tynjala
f8a70444f5 Some missing docs 2024-01-29 12:27:48 -08:00
player-03
bed2f7cdca Merge branch 'develop' into cffi-unicode-fixes 2024-01-27 21:33:36 -05: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
Joseph Cloutier
c3a7666062 Merge branch 'develop' into 8.2.0-Dev 2024-01-18 13:23:51 -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