* 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>
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.
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.
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.
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
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.
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.
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.
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.