Commit graph

2317 commits

Author SHA1 Message Date
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
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
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
74a3c514d2 Replaced withReadLock with resultWithReadLock in ScriptSignalQtProxy::findConnection 2023-05-19 00:17:35 +02:00
586bd7ffca Fixes for code review 2023-05-19 00:17:35 +02:00
e9bfdd49e8 Fix build error on Windows 2023-05-19 00:17:35 +02:00
979e9ff113 Added scoring system for determining overloaded function to call 2023-05-19 00:17:35 +02:00
8304a0c500 Fixed clearTimeout behavior when called with expired timer 2023-05-19 00:17:35 +02:00
e9984c72f0 Added QTimer* script data type and some nullptr checks 2023-05-19 00:17:35 +02:00
7a84f7ee4d Fix for crash on deleting caches 2023-05-19 00:17:35 +02:00
b00c1ae91b Fixes to scripting-related warnings (lambdas) 2023-05-19 00:17:35 +02:00
6f32173025 Fixes to most scripting-related warnings 2023-05-19 00:17:35 +02:00
a14c6444f1 Forgot to add ResourceScriptingInterface.cpp before 2023-05-19 00:17:35 +02:00
5a9b0ccfb0 Replaced regular mutex with a read write one to improve performance 2023-05-19 00:17:35 +02:00
ad57a5e6fd Fixed enums in scripting engine 2023-05-19 00:17:35 +02:00
0a3ec92031 Type registeration fixes for scripting engine 2023-05-19 00:17:35 +02:00
50a6a63cc3 Fixes to problems with meta-types 2023-05-19 00:17:35 +02:00
33c8607e15 Proper handling of enum classes for scripting 2023-05-19 00:17:35 +02:00
95434a26a8 Attempt to debug broken enums in scripting 2023-05-19 00:17:35 +02:00
ece2b8096b Fixed list item removal during access bug 2023-05-19 00:17:35 +02:00
4d61d4fe67 Disallowed incorrect Vec3 to float cast in script engine 2023-05-19 00:17:35 +02:00
c78ec80539 Fixed build error after rebase 2023-05-19 00:17:35 +02:00
Heather Anderson
457728cee1 dropped KALILA global script attributes 2023-05-19 00:17:35 +02:00
Heather Anderson
67260b92bd fix typo preventing methods from being discovered on scriptable objects when we're ignoring superclasses 2023-05-19 00:17:35 +02:00
Heather Anderson
a822110a62 identify the largest number of parameters any of our method overrides accept and discard script parameters beyond that count 2023-05-19 00:17:35 +02:00
Heather Anderson
0bce0668f7 minor tweaks in response to code review (very belated) and reported issues
- explicitly registering some enums with Qt at runtime (needed if they're function return values)
- replaced references to engine() with local variables if they already existed
2023-05-19 00:17:34 +02:00
Heather Anderson
55b5a2cd03 Continued tightening and testing of the scripting engine "glue" logic
- QObject wrappers will now be reused when asked to wrap the same QObject multiple times
- improved error reporting when we can't form a native call from script
- dropped support for having the existing QtScript logic handle Qt object transformations
- assuming that our code will handle all calls into native objects
- changing timer functions to use CTimer* publicly rather than casted QObject*
2023-05-19 00:17:34 +02:00
Heather Anderson
bc6eaf25dc first pass creating Qt <-> QtScript interface 2023-05-19 00:17:34 +02:00
Heather Anderson
bd04554150 changes from code review suggestions 2023-05-19 00:17:34 +02:00
Heather Anderson
70fbe76341 convert script engine variables from QSharedPointer to std::shared_ptr 2023-05-19 00:17:34 +02:00
Heather Anderson
82535cab90 more shifting around of ScriptEngineQtScript declaration 2023-05-19 00:17:34 +02:00
Heather Anderson
c9bf36e57b more simplification of ScriptEngineQtScript declarations 2023-05-19 00:17:34 +02:00
Heather Anderson
bd4a035ffb significant cleanup of ScriptEngineQtScript (which isn't exposed to the scripting engine and shouldn't be @jsdoc'ed) 2023-05-19 00:17:34 +02:00
Heather Anderson
ef16b83362 patch review and removal of unnecessary differences 2023-05-19 00:17:34 +02:00
Heather Anderson
86348b315e finished coding and smoketested ScriptContextQtAgent (required to get Scriptable functional for its users) 2023-05-19 00:17:34 +02:00
Heather Anderson
fb93e39f66 more code review using github compiler runs (hopefully the macos build will link with this) 2023-05-19 00:17:34 +02:00
Heather Anderson
227e899189 more code review using github compiler runs 2023-05-19 00:17:34 +02:00
Heather Anderson
16c2d76efa more debugging using github compiler runs 2023-05-19 00:17:34 +02:00
Heather Anderson
23edfa3747 more changes in response to build log on other compilers 2023-05-19 00:17:34 +02:00
Heather Anderson
23776abce3 changes in response to build log on other compilers 2023-05-19 00:17:34 +02:00
Heather Anderson
8581022a53 rework ScriptValue to act like a stack variable rather than a pointer 2023-05-19 00:17:34 +02:00
Heather Anderson
f209c5124d early smoketesting 2023-05-19 00:17:34 +02:00
Heather Anderson
5f2b2c90a2 added custom type support 2023-05-19 00:17:34 +02:00
Heather Anderson
45ef458af4 dropping dependencies from networking to script-engine by moving EntityScriptClient and LocationScriptingInterface 2023-05-19 00:17:33 +02:00
Heather Anderson
7964f06990 moving EntityItemID from script-engine to shared 2023-05-19 00:17:33 +02:00
Heather Anderson
665ea521e8 shifting classes around and adding static initializers to resolve dependencies on scripting-engine (and drop dependencies from scripting-engine) 2023-05-19 00:17:33 +02:00
Heather Anderson
1f4f458942 adding basic script-engine documentation 2023-05-19 00:17:33 +02:00
Heather Anderson
2dd9d784a9 working to clean up the QtScript implementation and move towards completion of the proxy interface 2023-05-19 00:17:33 +02:00
Heather Anderson
1e018dbc64 isolate calls to the QtScript libraries to an interface we control 2023-05-19 00:17:33 +02:00
Heather Anderson
713b29ee41 ensure all #include's to QtScript are labeled as such (easier to find) 2023-05-19 00:17:33 +02:00
d2a768c2f0 Renamed environment variables 2022-09-08 22:18:50 +02:00
9b6d202a21 Rebranding and fixing URLs 2022-09-08 22:10:13 +02:00
Dale Glass
8a12bf1749 Replace usage of deprecated QWheelEvent members 2022-06-10 00:46:19 +02:00
Dale Glass
efdc1e9058 Fix deprecated int to flags conversion 2022-06-10 00:46:19 +02:00
Dale Glass
45a3c89e17 Replace deprecated qVariantFromValue 2022-06-10 00:46:19 +02:00
Dale Glass
50e1399cb5 Fix new[]/delete mismatch warning 2022-06-10 00:46:19 +02:00
Dale Glass
a7f6fed937 Replace deprecated .toSet() 2022-06-10 00:46:19 +02:00
Dale Glass
87ba20ecb4 Only whitespace changes 2022-06-10 00:46:19 +02:00
c6f1e6410e Updated some URLs, rebranded documentation and changed default metaverse server address 2022-02-09 23:57:24 +01:00
Kalila
03b5b83b67
Merge pull request #1339 from odysseus654/pr/make_shared
Housekeeping: use of std::make_shared / QSharedPointer::create.
2021-12-09 17:14:04 -05:00
Dale Glass
d77c8bbe41 Fix warnings related to deprecated usage of multiple keys in QHash and QMap
This replaces those uses with QMultiHash and QMultiMap
2021-11-26 17:53:23 +01:00
Heather Anderson
bcce9a2091 convert explicit shared pointer creation (using "new") to make_shared where possible/appropriate 2021-09-11 15:15:04 -07:00
Heather Anderson
ab4d70760e review and cleanup of "#include <QtCore/QSharedPointer>" 2021-09-10 21:40:54 -07:00
Dale Glass
24b2cdfcd2 Fix QString::SplitBehavior deprecation, replace with Qt:: 2021-08-06 20:16:10 +02:00
Kalila
0193e0f4d6
Merge pull request #1244 from digisomni/fix/lookup-string-spaces
Add ability for 'handleLookupString' to have spaces.
2021-07-12 17:07:29 -04:00
David Rowe
89c527f0d8 Update Doxygen group tags to use /// format 2021-07-01 15:59:58 +12:00
Kalila
40f81e4866
Merge pull request #1223 from odysseus654/pr/scripting-docs
Ensuring minimal documentation for classes declared in script-engine
2021-06-29 19:09:26 -04:00
Kalila
b86e4b98a9
Merge pull request #1249 from digisomni/fix/docs-links-dev
Update user docs links "docs.vircadia.dev" -> "docs.vircadia.com".
2021-06-27 05:55:13 -04:00
David Rowe
e48e02d8c6 Fix JSDoc typo 2021-06-22 20:59:06 +12:00
Kalila L
90aaa85089 Update user docs links "docs.vircadia.dev" -> "docs.vircadia.com". 2021-06-21 12:01:37 -04:00
Kalila L
51e6468abd Rename 'URL_SCHEME_HIFI' -> 'URL_SCHEME_VIRCADIA'. 2021-06-11 17:04:16 -04:00
Kalila
d8a0d13812
Merge pull request #1206 from odysseus654/pr/drop-script-debugging
drop remaining references to QScriptEngineDebugger
2021-06-03 18:01:40 -04:00
Heather Anderson
259cd20b87 Ensuring minimal documentation for classes declared in script-engine 2021-05-29 22:50:39 -07:00
David Rowe
4d11d1d515 Convert all "/**jsdoc" occurrences to "/*@jsdoc" 2021-05-12 10:54:45 +12:00
Heather Anderson
04f8ccd2b0 drop remaining references to QScriptEngineDebugger 2021-05-08 20:31:03 -07:00
Julian Groß
ecb7c47f1a Rename fbx folder to model-serializers 2021-04-15 19:26:10 +02:00
Dale Glass
a51c5057ca Add virtual destructor to TreeNodeBase
Fixes #1131, possibly solves a crash on exit.
2021-03-30 17:14:45 +02:00
Kalila
58fde3c159
Merge pull request #1090 from digisomni/feature/expand-kick-functionality
Add improved functionality for `Users.kick` API.
2021-03-28 21:05:59 -04:00
Kalila L
cfac34bf7e CR. 2021-03-21 13:20:05 -04:00
Kalila
12d5687c6a
Update libraries/script-engine/src/UsersScriptingInterface.h
Co-authored-by: David Rowe <david@ctrlaltstudio.com>
2021-03-21 13:13:24 -04:00
Kalila L
f067feb37a Add docs for ban functionality. 2021-03-19 04:44:58 -04:00