Commit graph

35149 commits

Author SHA1 Message Date
56ebe09998 V8 fixes, including making debug console work 2023-01-09 20:53:31 +01:00
2ec7ffeaff More fixes for V8 2023-01-09 20:53:31 +01:00
037011b2fe Fixed setting properties of ScriptObjectV8Proxy 2023-01-09 20:53:31 +01:00
4e4e695ca4 Fixed vector math, added simple test for it 2023-01-09 20:53:31 +01:00
a6de0f06d7 Fixed method calls 2023-01-09 20:53:31 +01:00
Dale Glass
d2effdf420 Reduce V8 stack size to 256K. Otherwise the interface can be crashed with a stack overflow in a script. 2023-01-09 20:53:31 +01:00
639e14fd94 Fixed C++ function calls for V8 2023-01-09 20:51:03 +01:00
bce869e456 Added V8 Locker for moving script engine to a new thread 2023-01-09 20:51:03 +01:00
4a18ca733b Added simple compile test function 2023-01-09 20:51:03 +01:00
Dale Glass
473a412e36 Keep return script value 2023-01-09 20:51:03 +01:00
Dale Glass
58eb72325c Build fixes 2023-01-09 20:51:03 +01:00
cb1044ed6a Script engine new function fixes 2023-01-09 20:51:03 +01:00
bcac3dbe55 Added context scopes 2023-01-09 20:51:03 +01:00
281874e32f Add V8 handle scopes 2023-01-09 20:51:03 +01:00
97459359de Updated script isolation files 2023-01-09 20:51:03 +01:00
fcd63b9f35 Initial V8 support, not working yet 2023-01-09 20:51:02 +01:00
309dd30107 Initial cmake files for V8 2023-01-09 20:51:02 +01:00
199e179b11 Replaced withReadLock with resultWithReadLock in ScriptSignalQtProxy::findConnection 2023-01-09 20:51:02 +01:00
19e5b099fb Fixes for code review 2023-01-09 20:51:02 +01:00
4a54a8025f Fix build error on Windows 2023-01-09 20:51:02 +01:00
38e7b5a8d2 Added scoring system for determining overloaded function to call 2023-01-09 20:51:02 +01:00
a14a1d384f Fixed clearTimeout behavior when called with expired timer 2023-01-09 20:51:02 +01:00
3f25799826 Added QTimer* script data type and some nullptr checks 2023-01-09 20:51:02 +01:00
aee6ac6b77 Fixed simplifiedNametag 2023-01-09 20:51:02 +01:00
9f3a79f597 Fix build error on MacOS 2023-01-09 20:51:02 +01:00
cd086b1ea5 Fix for crash on deleting caches 2023-01-09 20:51:02 +01:00
9276beae7e Fixes to scripting-related warnings (lambdas) 2023-01-09 20:51:02 +01:00
1110aac9d9 Fixes to most scripting-related warnings 2023-01-09 20:51:02 +01:00
0e0c2695bf Forgot to add ResourceScriptingInterface.cpp before 2023-01-09 20:51:02 +01:00
8ddfdacd2b Replaced regular mutex with a read write one to improve performance 2023-01-09 20:51:02 +01:00
3405b14ece Fixed enums in scripting engine 2023-01-09 20:51:02 +01:00
1f2042f826 Type registeration fixes for scripting engine 2023-01-09 20:51:02 +01:00
39fe4b619b Fixes to problems with meta-types 2023-01-09 20:51:01 +01:00
d95aa44c5d Proper handling of enum classes for scripting 2023-01-09 20:51:01 +01:00
4a9c64d3a7 Attempt to debug broken enums in scripting 2023-01-09 20:51:01 +01:00
454e26a91b Fixed list item removal during access bug 2023-01-09 20:51:01 +01:00
bb13d1c028 Disallowed incorrect Vec3 to float cast in script engine 2023-01-09 20:51:01 +01:00
79f9ebf77e Fixed build error after rebase 2023-01-09 20:51:01 +01:00
Heather Anderson
9d345b9434 fixed missing #include required by new template blockingInvokeMethod functions 2023-01-09 20:51:01 +01:00
Heather Anderson
03a97e5f36 dropped KALILA global script attributes 2023-01-09 20:51:01 +01:00
Heather Anderson
2becb4d662 dropped unused meta declaration 2023-01-09 20:51:01 +01:00
Heather Anderson
6d324ded2f remove requirement that ScriptManager::evaluate be meta-invokable 2023-01-09 20:51:01 +01:00
Heather Anderson
99f828d623 fix typo preventing methods from being discovered on scriptable objects when we're ignoring superclasses 2023-01-09 20:51:01 +01:00
Heather Anderson
72517798d6 identify the largest number of parameters any of our method overrides accept and discard script parameters beyond that count 2023-01-09 20:51:01 +01:00
Heather Anderson
3a6638f839 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-01-09 20:51:01 +01:00
Heather Anderson
c5cb959713 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-01-09 20:51:01 +01:00
Heather Anderson
8020d87ba5 not sure what would have broken this but... adding required windows dependencies for MIDI to operate 2023-01-09 20:51:01 +01:00
Heather Anderson
f2f681e1a0 first pass creating Qt <-> QtScript interface 2023-01-09 20:51:01 +01:00
Heather Anderson
8ae9d485a1 changes from code review suggestions 2023-01-09 20:51:01 +01:00
Heather Anderson
da860c41bf convert script engine variables from QSharedPointer to std::shared_ptr 2023-01-09 20:51:01 +01:00
Heather Anderson
d349ec3971 more shifting around of ScriptEngineQtScript declaration 2023-01-09 20:51:01 +01:00
Heather Anderson
37946493de more simplification of ScriptEngineQtScript declarations 2023-01-09 20:51:01 +01:00
Heather Anderson
414ae02514 significant cleanup of ScriptEngineQtScript (which isn't exposed to the scripting engine and shouldn't be @jsdoc'ed) 2023-01-09 20:51:01 +01:00
Heather Anderson
06b0ebefac patch review and removal of unnecessary differences 2023-01-09 20:51:00 +01:00
Heather Anderson
addcd08d1c finished coding and smoketested ScriptContextQtAgent (required to get Scriptable functional for its users) 2023-01-09 20:51:00 +01:00
Heather Anderson
e86b7c0d74 hopefully resolves the last reported link error on macos 2023-01-09 20:51:00 +01:00
Heather Anderson
4d7c38cd7d more code review using github compiler runs (hopefully the macos build will link with this) 2023-01-09 20:51:00 +01:00
Heather Anderson
fbbc0ffb19 more code review using github compiler runs 2023-01-09 20:51:00 +01:00
Heather Anderson
b5622cda90 more debugging using github compiler runs 2023-01-09 20:51:00 +01:00
Heather Anderson
43f0ff39cf more changes in response to build log on other compilers 2023-01-09 20:51:00 +01:00
Heather Anderson
4554fb4b84 changes in response to build log on other compilers 2023-01-09 20:51:00 +01:00
Heather Anderson
d7cf4ab738 rework ScriptValue to act like a stack variable rather than a pointer 2023-01-09 20:50:57 +01:00
Heather Anderson
351ae373e9 early smoketesting 2023-01-09 20:49:28 +01:00
Heather Anderson
3d8a8273d5 added custom type support 2023-01-09 20:49:28 +01:00
Heather Anderson
84892c3e89 dropping dependencies from networking to script-engine by moving EntityScriptClient and LocationScriptingInterface 2023-01-09 20:49:27 +01:00
Heather Anderson
5181071a74 moving EntityItemID from script-engine to shared 2023-01-09 20:49:27 +01:00
Heather Anderson
3085f7b9bd shifting classes around and adding static initializers to resolve dependencies on scripting-engine (and drop dependencies from scripting-engine) 2023-01-09 20:49:27 +01:00
Heather Anderson
060f29a0d4 adding basic script-engine documentation 2023-01-09 20:49:27 +01:00
Heather Anderson
79d339609f working to clean up the QtScript implementation and move towards completion of the proxy interface 2023-01-09 20:49:27 +01:00
Heather Anderson
d06093ae16 isolate calls to the QtScript libraries to an interface we control 2023-01-09 20:49:15 +01:00
Heather Anderson
a66d3a4fcb ensure all #include's to QtScript are labeled as such (easier to find) 2023-01-09 20:36:43 +01:00
f1d7421698 Workaround for Nvidia driver bug 2022-12-23 20:25:10 +01:00
Dale Glass
61fa164791
Merge pull request #221 from JulianGro/fbx_blender
Implement initial Blender FBX metallic support
2022-12-10 21:10:02 +01:00
Dale Glass
26fd8839a6
Merge pull request #269 from daleglass-overte/fix-uninitialized-blendtime
Fix "may be used uninitialized" warning for blendtime
2022-12-10 21:09:47 +01:00
20e673e364 Fixed weight comparison 2022-12-10 19:51:11 +01:00
088da60116 Added epsilon for dimensions of sphere in SphereCollapse 2022-12-10 17:07:31 +01:00
a5d12fc97d Made ExtractionMode::SphereCollapse fail more gracefully in case of incorrect data 2022-12-10 14:33:34 +01:00
Dale Glass
81b2af88ae Clear _meshStates after warning, not before.
Fixes #257
2022-12-03 00:51:06 +01:00
Dale Glass
b5c5c9ad3e Fix "may be used uninitialized" warning for blendtime 2022-12-03 00:33:22 +01:00
Dale Glass
9a80e696ed Fix warnings generated when building tests 2022-11-27 19:51:58 +01:00
Dale Glass
dd0439e40d Make the GLTF serializer count all other errors it detects 2022-11-26 14:49:54 +01:00
Dale Glass
cd132246e6 Fix crash with models from ReadyPlayerMe by adding extra validation.
This also adds test code for the GLTF loader.
2022-11-26 14:36:37 +01:00
Dale Glass
9a828077bd Add Overte e.V. copyright 2022-11-01 20:49:00 +01:00
Dale Glass
7d3b45753c Comment moved to header 2022-11-01 17:16:14 +01:00
Dale Glass
20548b7b24 Fix mysterious UUID issue
Turned out to be a remainant of previous code that stopped working
correctly due to the changes
2022-11-01 17:15:50 +01:00
Dale Glass
24d4f87341 Improve logging system termination. Send a signal and wait until done. 2022-11-01 17:15:16 +01:00
Dale Glass
d722650806 Don't forward a change to QSetting if the setting didn't change
This considerably reduces the number of disk writes
2022-11-01 17:14:10 +01:00
Dale Glass
f7ab2be173 Unimportant changes
Signals were made non-references for debugging, but that shouldn't
actually matter since Qt copies the parameters anyway.
2022-11-01 17:13:30 +01:00
Dale Glass
51e1df5e4c Improve logging, v3 2022-11-01 17:08:08 +01:00
Dale Glass
06d7b89455 Improve logging, forgotten commit 2022-11-01 17:07:02 +01:00
Dale Glass
b540c426c1 Use logging categories 2022-11-01 17:06:33 +01:00
Dale Glass
0e50b51a63 Improve documentation 2022-11-01 17:01:16 +01:00
Dale Glass
cdc15d7821 Improve settings system, by moving all writes to a thread
This should complete what was started in the HiFi days but didn't quite succeed.

Setting::Manager is now thread safe, and delegates all settings writes to a thread
that nothing waits on, which should ensure that settings don't degrade performance
even on slow storage devices.

Functions that weren't thread safe were removed from Setting::Manager, and it was
reduced to a key/value store.

Functions that modify state like beginGroup were implemented in the Settings class
instead, which should be created only in the context where it's needed. It will
forward all changes to the manager.

A few QSettings functions were left unimplemented because they're not used in
the code. They may be implemented later if there's a need.
2022-10-23 23:25:42 +02:00
Dale Glass
e960829112 Fix test for the master branch 2022-10-23 16:02:37 +02:00
Dale Glass
0896807ca5 Slight cleanup of tests, use friend class to avoid exposing test functions 2022-10-23 13:24:56 +02:00
Dale Glass
b5d9a4dbba Make test class a friend 2022-10-23 13:24:56 +02:00
Dale Glass
334317b175 Test suite for settings system
Proof of concept still. Adds a test-specific function in Setting::Manager.
2022-10-23 13:24:56 +02:00
a0c98d1c72 Implement initial Blender FBX metallic support 2022-10-14 18:48:31 +02:00
88046506c3 Renamed Metaverse Server to Directory Server/Services 2022-09-08 22:19:55 +02:00
614c6927b6 Replace non-existent HiFi content S3 URLs with placeholders 2022-09-08 22:19:54 +02:00