Age | Commit message (Collapse) | Author |
|
This commit makes operator[] on Vector const and adds a write proxy to it. From
now on writes to Vectors need to happen through the .write proxy. So for
instance:
Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;
Failing to use the .write proxy will cause a compilation error.
In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.
_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
|
|
-Project/Editor settings now show tooltips properly
-Settings thar require restart now will show a restart warning
-Video driver is now visible all the time, can be changed easily
-Added function to request current video driver
|
|
|
|
|
|
|
|
Refactor WebAudio driver.
|
|
|
|
The increased build time is negligible in comparison to the decreased
file size.
|
|
Drop logic for non-existent 'profile' target
|
|
Facilitate using non-default filename extensions in HTML5 platform
|
|
Use local path for custom HTML5 shell export
|
|
|
|
Allows using startGame() with main packs exported as .zip, but also any
other custom extension, for example if a web game host does not allow
the .pck filename extension.
|
|
Fix keyboard focus lock-out with HTML5 canvas in iframe
|
|
Some web game hosts only allow certain filename extensions. If .wasm is
not allowed, this function allows overriding the WebAssembly filename
extension to work around that restriction.
|
|
|
|
|
|
Now generating mouse events from touch is optional (on by default) and it's performed by `InputDefault` instead of having each OS abstraction doing it. (*)
The translation algorithm waits for a touch index to be pressed and tracks it translating its events to mouse events until it is raised, while ignoring other pointers.
Furthermore, to avoid an stuck "touch mouse", since not all platforms may report touches raised when the window is unfocused, it checks if touches are still down by the time it's focused again and if so it resets the state of the emulated mouse.
*: In the case of Windows, since it already provides touch-to-mouse translation by itself, "echo" mouse events are filtered out to have it working like the rest.
On X11 a little hack has been needed to avoid a case of a spurious mouse motion event that is generated during touch interaction.
Plus: Improve/fix tracking of current mouse position.
** Summary of changes to settings: **
- `display/window/handheld/emulate_touchscreen` becomes `input/pointing_devices/emulate_touch_from_mouse`
- New setting: `input/pointing_devices/emulate_mouse_from_touch`
|
|
Handle directories in engine.js preloadFile()
|
|
Detect and configure JavaScript build per Emscripten configuration file
|
|
The URL parameter already has a slash, adding an extra one results in
an invalid resource path
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The messages generated by some assertions can be confusing to users.
|
|
|
|
Whether to use WebGL 1.0 or 2.0 can only be determined at runtime after
reading project settings, so check for the lower version.
The test is now in the HTML file, so if desired WebGL 2.0 can be
checked early by changing the behaviour there.
|
|
|
|
|
|
HTML5 HTTPClient fixes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Disable OpenSSL module in HTML5 platform by default
|
|
|
|
|
|
|
|
Emscripten's meta DCE changes in 1.37.27(/28?) make it impossible to
keep using --pre-js for this
|
|
'HTML5' is the platform tag, the 'JavaScript' tag indicates availability of
the JavaScript.eval singleton.
Also report texture compression support.
|
|
Build WebAssembly release module with -Os to decrease file size
|
|
|
|
|