Commit graph

35448 commits

Author SHA1 Message Date
8b1b40273b
Merge pull request #686 from JulianGro/discord-rpc
Discord rich presence support
2023-11-02 08:54:12 +01:00
bf8ad07b60 Moved archive download interface files and converted documetnation to doxygen 2023-11-01 19:51:21 +01:00
8332e41989 Remove File API and limit audio recording file location 2023-11-01 00:29:15 +01:00
6645763117 Replaced mutex locking with lock guard 2023-10-31 18:37:05 +01:00
7481130e61 Add a mutex to entity server script engine 2023-10-30 20:41:08 +01:00
7930bd86cc Place names with underscores are used and should be considered valid. 2023-10-30 19:02:15 +01:00
33bdd841c1 Fix entity server memory leak and improve performance 2023-10-30 18:40:04 +01:00
79cf24d30f
Merge pull request #645 from keeshii/feature/qml_entities
Added support for QML inside web-entities.
2023-10-19 22:46:07 +02:00
f04c3b5840
Make comment more coherent 2023-10-16 21:24:26 +02:00
8b648408fd Added distance-based LOD 2023-10-13 19:28:05 +02:00
keeshii
d3f652686e Added support for QML inside web-entities. 2023-10-10 18:48:39 +02:00
Dale Glass
babed47b6d Rewrite Dropbox URLs to force downloads, even if the user uses a preview URL 2023-09-18 23:21:38 +02:00
Dale Glass
0fb11f1dcb Fix loading avatars from Dropbox due to URLs containing parameters 2023-09-18 20:22:58 +02:00
9d6f08b908
Merge pull request #607 from rampa3/feature/mouse_look
Add mouse look script - continuation
2023-09-10 15:15:13 +02:00
87cb04d79e Added debug message for uncomressed texture on GLES 2023-09-04 23:16:11 +02:00
0f59059490 Initial support for HDR lightmaps 2023-09-03 17:03:20 +02:00
c49c947984 Fixed llack of precision in mouse look mode 2023-09-01 23:43:22 +02:00
1c71825953
Merge pull request #604 from overte-org/fix/flow
Fix issues with flow bones
2023-08-30 22:21:23 +02:00
6dc9c1a3f2
Merge pull request #574 from overte-org/fix/script_reload2
Fix most of the crash causes on script engine reload/shutdown
2023-08-29 23:48:32 +02:00
1ab46f68e3 Fixed entity script reloads 2023-08-28 23:34:19 +02:00
38d44d079c Fixed flow assignment operators 2023-08-27 23:06:53 +02:00
0c2fe4c81f Fixed flow on curved bones 2023-08-27 22:48:39 +02:00
8c87d6f835 Fixed flow bone scaling issue 2023-08-27 20:41:48 +02:00
e88ddc31aa Fix typos in MyAvatar set and get skeleton offset 2023-08-25 14:06:12 -03:00
13242611ea Fix jsDoc references to Vircadia platform/CDN 2023-08-25 13:58:45 -03:00
98282d1255 Add mouse look preference setting 2023-08-22 19:05:09 +02:00
Dale Glass
1efd8d27b9 Put require() in the global scope 2023-08-21 01:08:37 +02:00
9c78c8fb3a
Merge pull request #520 from overte-org/fix/script_crash
Added null pointer check for asQuickItem()
2023-08-18 20:50:47 +02:00
ae36233ff9 Fix QQuickItem pointers 2023-08-18 16:49:14 +02:00
166f7223d1 Fix most of the crash causes on script engine reload/shutdown 2023-08-18 12:12:17 +02:00
db1680c1ca Change profiling output file extension to CSV 2023-08-12 16:48:05 +02:00
a84c68f4ff Add JS profiling API 2023-08-12 16:18:40 +02:00
Dale Glass
7a91b74c94
Merge pull request #540 from overte-org/fix/entity_script_deadlock
Fixed deadlock when entity script engines are being reset.
2023-08-05 22:19:24 +02:00
74c5b6038f Lower inertia for more precise controls 2023-08-02 22:00:12 +02:00
4091557388 Fixed deadlock when entity script engines are being reset.
Co-authored-by: Julian Groß julian.g@posteo.de
2023-08-01 16:33:41 +02:00
790a55d093 Fixed interface scripts failing to shutdown and removed deprecated API signal 2023-07-20 00:15:00 +02:00
1e8d032ea3 Added null pointer check for asQuickItem() 2023-07-17 20:23:06 +02:00
Dale Glass
72137f52f7
Merge pull request #519 from overte-org/fix/script_debug
Fix script error logging
2023-07-16 23:21:26 +02:00
8dc776a73c Fix script error logging 2023-07-16 23:09:45 +02:00
Dale Glass
273d4a35a9 Store annotations before the crash handler initializes
The crash handler only accepts annotations after it's initializes, but
we may do that late and lose some possibly valuable information, or need
to structure things in an awkward manner.

Add a simple system to store annotations in memory until the crash handler
is running.
2023-07-16 21:51:36 +02:00
Dale Glass
c05fde3db4
Merge pull request #482 from daleglass-overte/crash-handler-on-server
Crash handler on server
2023-07-09 21:50:43 +02:00
2860650859 Truncate logs read by FileLogger 2023-07-09 21:01:23 +02:00
Dale Glass
441413020e Move crash handler to networking library.
Turns out dependencies just don't work out well otherwise.
2023-07-02 22:10:27 +02:00
Dale Glass
25755f9c88 Many improvements:
* Get crash settings in assignment clients
* Allow custom crash reporting URL and token
* Fix setting system -- the client's one doesn't belong in the server
* Lots more documentation

Commit just before moving things around.
2023-07-02 21:18:09 +02:00
ebedfa5a5a
Merge pull request #481 from overte-org/fix/thumbsticks
Fix thumbstick press issue
2023-06-27 21:16:20 +02:00
Dale Glass
4dcc2882fd Crash reporter moved to separate library
UAL moved back to networking
2023-06-26 23:12:32 +02:00
Dale Glass
6ec276c818 Initial reorganization 2023-06-26 23:12:32 +02:00
4e3bba047e
Merge pull request #463 from JulianGro/fbx_279
FBX: Fall back to old Metallic behaviour on files created with Blender 2.79 or older
2023-06-26 20:14:23 +02:00
284587913a FBX: Fallback to old behaviour on files created with Blender 2.79 or older 2023-06-25 23:35:08 +02:00
474f52a4f3 Fix thumbstick press issue for translation (not rotation yet) 2023-06-25 22:23:49 +02:00
Dale Glass
de706ab458 Rework crash reporting UI
* Encourage users running dev code to submit reports
* Change from "Disable" to "Enable"
* Always initialize Crashpad and just prevent uploads if disabled
* Fix menu not being in sync
* Add documentation
* Keep track of whether Crashpad initialized successfully
2023-06-25 20:14:13 +02:00
326b00cc09 Fix wrong syntax for JSDoc comments.
For reference, this is an internal syntax defined in tools/jsdoc/plugins/hifi.js
2023-06-09 13:59:49 +02:00
Dale Glass
0f158977fe
Merge pull request #443 from shocktail39/fix/drop-qtscript-from-cmake
remove qtscript from cmake dependencies
2023-06-04 11:42:30 -07:00
Dale Glass
ab7eebae31
Merge pull request #445 from daleglass-overte/fix-settings-reset
Fix resetting the settings
2023-06-04 11:41:22 -07:00
Dale Glass
32b9cc123c Fix resetting the settings
Also minor documentation improvements
2023-06-04 14:50:03 +02:00
da9b9f76af Hide QObject signals from script engine and switch off script memory reporting 2023-06-04 01:07:26 +02:00
8c9a88b2d9 Hide private methods from script engine 2023-06-04 00:29:14 +02:00
steve hocktail
e71f3c7990
remove qtscript from cmake dependencies 2023-06-03 15:44:53 -04:00
Dale Glass
dba38acb9f
Merge pull request #381 from JulianGro/pr/drop-wallet
Drop all dependencies on marketplace and wallet
2023-06-03 21:27:13 +02:00
514c63ed90 Fix prtotocol incompatilibility after removing wallet 2023-06-03 12:27:24 +02:00
e256599a15
Merge pull request #431 from overte-org/feature/IME
Japanese language support (and other IME probably)
2023-05-30 12:53:24 +02:00
Heather Anderson
60b8d41c16 stripping wallet/marketplace out 2023-05-28 15:12:21 +02:00
0f3dc71128 Comment on future IME improvements 2023-05-28 12:39:51 +02:00
6192416dce V8 related cleanup 2023-05-27 22:06:57 +02:00
b3997bff54
Merge pull request #409 from JulianGro/aarch64_node
Add Linux aarch64 node package
2023-05-27 18:49:50 +02:00
f783a80f34 Temporary IME position for QML GL widgets 2023-05-27 16:40:48 +02:00
db15ed2f13 Fixed contexts for V8 callbacks 2023-05-27 13:32:02 +02:00
17dc2decf6 Initial IME support 2023-05-27 00:08:24 +02:00
b79d31fd6c Include QQueue in ScriptEngineV8.h 2023-05-22 20:41:54 +02:00
ab21945a54 Fixed crashes that happened when clearing cache 2023-05-22 00:15:54 +02:00
f72e8948b0 Fixed entity script whitelist and a bug in makeError 2023-05-19 00:17:41 +02:00
8de1331fa5 V8 related cleanup 2023-05-19 00:17:41 +02:00
fe9babf02d Scripting-related cleanup 2023-05-19 00:17:41 +02:00
ba0e705b5a Fixed Script.resolvePath issue in modules 2023-05-19 00:17:41 +02:00
4107f40c7c Fixed XMLHttpRequest crash 2023-05-19 00:17:41 +02:00
48a3368b69 Minor fixes and XMLHTTPRequest debugging 2023-05-19 00:17:41 +02:00
d74089d7d8 Fixed parabola pointers, code cleanup 2023-05-19 00:17:41 +02:00
f79ec0f293 Work on script engine exceptions, cleanup 2023-05-19 00:17:41 +02:00
833bffc285 Added makeError and script value prototype getter 2023-05-19 00:17:41 +02:00
Dale Glass
13e22d4931 Fix override warnings 2023-05-19 00:17:41 +02:00
3c80411bf1 V8-related cleanup 2023-05-19 00:17:41 +02:00
30f4608c25 Removed script engine lambda 2023-05-19 00:17:41 +02:00
5050cc9a4e Code cleanup 2023-05-19 00:17:41 +02:00
a7229e9249 Scripting API cleanup and type conversion fixes 2023-05-19 00:17:41 +02:00
82e6cb9391 Added missing metatype registration 2023-05-19 00:17:41 +02:00
782c84b873 V8 memory leak fix and optimizations 2023-05-19 00:17:41 +02:00
eabc727bb7 V8 optimizations 2023-05-19 00:17:41 +02:00
a57c7a5e5b V8 heap object statistics 2023-05-19 00:17:41 +02:00
6466d39c05 V8 memory leak fixes 2023-05-19 00:17:41 +02:00
cd11066aa5 Added script value and script value proxy counters 2023-05-19 00:17:41 +02:00
42704ea4bc Work on fixing V8 memory leaks, memory leak test 2023-05-19 00:17:40 +02:00
56c3bad002 V8 memory usage statistics 2023-05-19 00:17:40 +02:00
fdd8cb290c Optimized getEntityProperties 2023-05-19 00:17:40 +02:00
c18fd9092e Fixed assert on ScriptValueV8Wrapper::construct 2023-05-19 00:17:40 +02:00
8b9cd84df7 vec3ToScriptValue optimizations 2023-05-19 00:17:40 +02:00
43939290b2 Revert "vec3FromScriptValue replacement attempt"
This reverts commit 584e4be0082c07c62b6ad1f17d4258878ce3223c.
2023-05-19 00:17:40 +02:00
dba0925a1c vec3FromScriptValue replacement attempt 2023-05-19 00:17:40 +02:00
3a207507bf Optimized EntityItemProperties::copyFromScriptValue 2023-05-19 00:17:40 +02:00
ec3e87da5c Added ScriptValue::getPropertyNames 2023-05-19 00:17:40 +02:00
e114d86871 Optimization of conversion of vec3 to/from script value 2023-05-19 00:17:40 +02:00
4062d80445 Added hash maps for faster property search on V8 callbacks 2023-05-19 00:17:40 +02:00
2a2cf3898b Work on porting laser pointers to local entities, removal of LaserPointer JS API 2023-05-19 00:17:40 +02:00
589ca2a399 Converted overlay getProperty calls to Entities.getEntityProperties 2023-05-19 00:17:40 +02:00
6c1fd88fb1 Fixed crash with asset scripting crash 2023-05-19 00:17:40 +02:00
e14ae4a96a Partial fix for asset scripting crash 2023-05-19 00:17:40 +02:00
e75c671a70 Fixed crash with Cameras app 2023-05-19 00:17:39 +02:00
8a2c055adc Removed 3D overlays functionality entirely 2023-05-19 00:17:39 +02:00
b52fe9a7d5 Fixed crash on starting in VR mode with V8 2023-05-19 00:17:39 +02:00
ceeac40ea8 Re-enabled WebRTC 2023-05-19 00:17:39 +02:00
819ebc9e49 Fixed events on V8 2023-05-19 00:17:39 +02:00
de75aa1794 Uncommented code that got commented out by accident 2023-05-19 00:17:39 +02:00
f241ede316 Initial fixes for building on Windows 2023-05-19 00:17:39 +02:00
Dale Glass
4d8a20aed7 Use logging categories everywhere in the base scripting engine code 2023-05-19 00:17:39 +02:00
Dale Glass
0fc2ab870a Add V8 logging category
Rename logging category to overte
Make all V8 code use logging categories
2023-05-19 00:17:39 +02:00
41760ee3ac Changed variable in ScriptObjectV8Proxy because it has to be stored as aligned pointer 2023-05-19 00:17:39 +02:00
Dale Glass
6ac2596293 Capture exceptions that happen in signals in ScriptEngine, add test 2023-05-19 00:17:39 +02:00
Dale Glass
acd19f7c40 Review fix: add flag to choose whether to abort script on exception 2023-05-19 00:17:39 +02:00
Dale Glass
aec756b0b9 Register metatypes, fixes warnings
Remove executeOnScriptThread from Script JS API -- seems unused, is marked deprecated, and for some reason
registration didn't resolve the warnings.
2023-05-19 00:17:39 +02:00
Dale Glass
8f82750f2a Initial implementation of raiseException and test 2023-05-19 00:17:39 +02:00
Dale Glass
cd02b22bd7 Don't crash in uncaughtException() if there isn't an exception 2023-05-19 00:17:39 +02:00
Dale Glass
cb0c62024d Throw the right exception class, and add the thrown value to it 2023-05-19 00:17:39 +02:00
Dale Glass
bb74c2ecc9 Allow accessing engine exceptions from ScriptManager 2023-05-19 00:17:39 +02:00
Dale Glass
de02da5fda Register more metatypes -- more work needed 2023-05-19 00:17:39 +02:00
Dale Glass
b1e2a94d71 Deduplicate QDebug output 2023-05-19 00:17:39 +02:00
Dale Glass
8d6270392d Make ScriptEngine a QObject instead of the derived class
Fix signal -- only needs to be in ScriptEngine
2023-05-19 00:17:39 +02:00
Dale Glass
67e7a7375a Further exception work on V8
* Get rid of maybeEmitUncaughtException
* Mostly get rid of makeError
* Introduce exception hierarchy, change exceptions to shared_ptr
* Simplify exception throwing code
2023-05-19 00:17:39 +02:00
Dale Glass
c0e62c5cc2 Initial exception handling
Make exception handling use the new ScriptException class.
Add exception signal
Throw exceptions in script evaluation
Remove references to ScriptManager from ScriptEngine
2023-05-19 00:17:39 +02:00
2bcd1106d1 Fixed ScriptObjectV8Proxy access after delete 2023-05-19 00:17:39 +02:00
27554da415 Addeed V8 getters/setters to ScriptVariantV8Proxy, fixed animation scripting 2023-05-19 00:17:39 +02:00
4e91765a3f Reverted change that broke AnimationObjec scripting interface 2023-05-19 00:17:38 +02:00
3be4fdc33d Fixed deadlock in updating animation state handlers 2023-05-19 00:17:38 +02:00
cae1e1195d V8 QObject pointer handling changes 2023-05-19 00:17:38 +02:00
5e5003ff03 Fixed crash on standing up from sit script 2023-05-19 00:17:38 +02:00
8e718262bd Fixed object containing UniquePersistent 2023-05-19 00:17:38 +02:00
acc658ee80 Fixed deadlock in Create App 2023-05-19 00:17:38 +02:00
ae7d229d0e Fix copyright headers 2023-05-19 00:17:38 +02:00
Dale Glass
02a0e33e95 Add NETWORKLESS_TEST_SCRIPT type to NetworkManager.
This is a slightly hacky way to make ScriptManager work without any
networking, and minimize the number of dependencies needed to run
a test.
2023-05-19 00:17:38 +02:00
12f239b18c Fix V8 memory leak and persistend handle problems 2023-05-19 00:17:38 +02:00
Dale Glass
84fd17cb66 Review fixes 2023-05-19 00:17:38 +02:00
Dale Glass
0f46fb9b4d Add a ScriptManagerScriptingInterface.cpp, will be useful later. 2023-05-19 00:17:38 +02:00
Dale Glass
a13723990e More Doxygen for ScriptEngine 2023-05-19 00:17:38 +02:00
Dale Glass
36cba56325 A bit more documentation 2023-05-19 00:17:38 +02:00
Dale Glass
4d70155e59 Create ScriptManagerScriptingInterface to move off the scripting API into its own class
Add a lot of documentation
2023-05-19 00:17:38 +02:00
Dale Glass
e35aa8046d Add more Doxygen docs
Doesn't work right in ScriptManager, looks like a conflict with JSDoc
2023-05-19 00:17:38 +02:00
887ebd5365 Removed deadlock in signal proxy disconnect again 2023-05-19 00:17:38 +02:00
d25e5491eb Fixed V8 crash with Create App 2023-05-19 00:17:38 +02:00
b554fc70ea Added script timers performance debugging 2023-05-19 00:17:38 +02:00
faf9b75487 Added signal time and call count debugging 2023-05-19 00:17:38 +02:00
1ad1aee11f Minor scripting-related fixes 2023-05-19 00:17:38 +02:00
5cf32a968c V8 fixes 2023-05-19 00:17:37 +02:00
f65e72c8f2 Listing objects and their properties on API debugger now works 2023-05-19 00:17:37 +02:00
37cc62d082 Fix problem with sit script 2023-05-19 00:17:37 +02:00
5809576577 Fixed Create App 2023-05-19 00:17:37 +02:00
c3417b807c Increased thread safety in V8 2023-05-19 00:17:37 +02:00
57a2dccc6a V8 bugfixes 2023-05-19 00:17:37 +02:00
89f29ce5ca Safer demarshal functions with no void pointers 2023-05-19 00:17:37 +02:00
acbec55b70 Further work on V8 2023-05-19 00:17:37 +02:00
b786ffccd5 Added more debug info to crash with signals 2023-05-19 00:17:37 +02:00
3e692a60b4 V8 fixes 2023-05-19 00:17:37 +02:00
3a5b927979 Functions connected to signals now use context that was active during connecting 2023-05-19 00:17:37 +02:00
044cd506a6 Script engine thread safety improvements 2023-05-19 00:17:37 +02:00
6bd8a8d503 V8 threading safetyu improvements 2023-05-19 00:17:37 +02:00
5099e68b56 V8 fixes, including calls and signals 2023-05-19 00:17:37 +02:00
a7b1fdcae6 Fixed convertJSObjectToVariant 2023-05-19 00:17:37 +02:00
539c2812c3 Fixed Window.location 2023-05-19 00:17:37 +02:00
66a87def43 Fixed script array to QVariant conversion 2023-05-19 00:17:37 +02:00
cb4dc4c7e8 Fixed location JS API 2023-05-19 00:17:37 +02:00
4f4c8931a9 V8 fixes, incl. enum API objects fix 2023-05-19 00:17:37 +02:00
4cfde4bcc1 Switched off animation handlers for now, because they deadlocked with V8 2023-05-19 00:17:37 +02:00
de91769e2f Fixed some V8 crashes 2023-05-19 00:17:37 +02:00
3f1a7605a5 Fixed build warnings 2023-05-19 00:17:37 +02:00
1550049b0c Fixed script value iterator and connect functionality 2023-05-19 00:17:37 +02:00
e786fd4864 Fixed Script.require 2023-05-19 00:17:37 +02:00
386242d9c7 Fixed adding properties to methods 2023-05-19 00:17:37 +02:00
076349a488 Re-enabled script module cache creation 2023-05-19 00:17:37 +02:00
Dale Glass
2960cc0284 Add missing override 2023-05-19 00:17:36 +02:00
Dale Glass
ac7ebe2888 Add hasProperty for checking whether a property exists 2023-05-19 00:17:36 +02:00
5f2c13da52 Added debug function to list object members 2023-05-19 00:17:36 +02:00
ed968e1ebd Further work on evaluateInClosure 2023-05-19 00:17:36 +02:00
70d4a43009 Fixed evaluateInClosure and other V8 stuff 2023-05-19 00:17:36 +02:00
cc20ced1ca Some V8 debuging messages 2023-05-19 00:17:36 +02:00
da458ccef9 Fixed getting current script name 2023-05-19 00:17:36 +02:00
6301d23c48 Fixed object deletion event, temporarily disabled watchdog log commands to make reading logs easier 2023-05-19 00:17:36 +02:00
0d454eb6e8 V8 fixes, including making debug console work 2023-05-19 00:17:36 +02:00
97137c7b13 More fixes for V8 2023-05-19 00:17:36 +02:00
2f9f78fb87 Fixed setting properties of ScriptObjectV8Proxy 2023-05-19 00:17:36 +02:00
0b8958204f Fixed vector math, added simple test for it 2023-05-19 00:17:36 +02:00
e680b5dc72 Fixed method calls 2023-05-19 00:17:36 +02:00
Dale Glass
640cee0360 Reduce V8 stack size to 256K. Otherwise the interface can be crashed with a stack overflow in a script. 2023-05-19 00:17:36 +02:00
be3d1713a8 Fixed C++ function calls for V8 2023-05-19 00:17:36 +02:00
abfcbb7588 Added V8 Locker for moving script engine to a new thread 2023-05-19 00:17:36 +02:00
827ddf5958 Added simple compile test function 2023-05-19 00:17:36 +02:00
Dale Glass
1a4eb3ac62 Keep return script value 2023-05-19 00:17:36 +02:00
Dale Glass
e5217c44f0 Build fixes 2023-05-19 00:17:36 +02:00
58a221541f Script engine new function fixes 2023-05-19 00:17:36 +02:00
a4c6930a50 Added context scopes 2023-05-19 00:17:36 +02:00
2b06c09318 Add V8 handle scopes 2023-05-19 00:17:36 +02:00
b4d21c38c3 Updated script isolation files 2023-05-19 00:17:36 +02:00
7e9ad39b32 Initial V8 support, not working yet 2023-05-19 00:17:36 +02:00
df507a741b Initial cmake files for V8 2023-05-19 00:17:36 +02:00