Commit graph

4976 commits

Author SHA1 Message Date
Brad Hefta-Gaub
04471f1c88 Merge branch 'master' of https://github.com/highfidelity/hifi into simpleTestPR
Conflicts:
	interface/src/Application.cpp
2016-04-04 13:16:39 -07:00
Brad Hefta-Gaub
b3b5c5d1ea small change to trigger a build 2016-04-04 13:14:52 -07:00
Anthony J. Thibault
d7b13d226f Application: fix for jittery hands when moving.
The issue was that the hands are sampled in sensor coordinates.
But when the avatar is moved via physics, the sensor to world matrix
must be updated to move the hands in the world by the correct amount.
These new hand positions are then computed before IK is performed.
2016-04-04 12:36:18 -07:00
Brad Davis
d98abbc7df First pass at threaded texture transfers 2016-04-04 10:23:01 -07:00
Thijs Wenker
2be4097bc5 another 3.1.2.1 rollback 2016-04-04 17:36:43 +02:00
Thijs Wenker
142f37da1c fix accidentally violated style rule 3.1.2.1 2016-04-04 17:33:47 +02:00
Thijs Wenker
b2058376ba used "ReSharper C++" to fix some style and spelling in Application.(h|cpp) 2016-04-04 17:03:05 +02:00
Brad Hefta-Gaub
ecaaa34576 Merge pull request #7547 from howard-stearns/lock-trees-on-import-export
Lock trees on import export
2016-04-03 14:23:54 -07:00
Zach Pomerantz
5b9198ed3d Expose tex/model cache to js/qml 2016-04-01 19:52:43 -07:00
Seth Alves
5fa9f662fc Merge pull request #7542 from birarda/refresh-on-asset-connect
refresh/close the asset browser dialog on domain switch
2016-04-01 18:08:59 -07:00
Zach Pomerantz
d72c695417 Sanitize ResourceCache to expose to JS/QML
fix sanitize
2016-04-01 17:42:36 -07:00
howard-stearns
b5cbd7720e Lock entity tree on export, and clipboard on import. 2016-04-01 14:56:56 -07:00
Stephen Birarda
ee7bee95f8 use nodeActivated to trigger refresh of Asset Browser 2016-04-01 11:35:33 -07:00
Stephen Birarda
194226103c refresh the Asset Browser when switching domains 2016-04-01 11:13:59 -07:00
Anthony J. Thibault
3d43f73a88 Application: don't call Model::simulate on network thread.
This can cause a crash.

On startup the Application::processOctreeStats method on the network thread will call into entities entity->isReadyToComputeShape() (without a tree lock) and trigger Model::simulate.  Model is NOT thread safe.  This was leading to a single model to be initialized on two threads simultaneously.

This might be somewhat rare, I only caught it because I was running a debug build.
2016-03-31 17:57:20 -07:00
Brad Hefta-Gaub
b76f8509aa Merge branch 'master' of https://github.com/highfidelity/hifi into optimizeFindZones 2016-03-30 19:29:28 -07:00
Brad Hefta-Gaub
28978c8adb optimize checkEnterLeaveEntities() to do distance check and stationary checks less frequently 2016-03-30 17:49:30 -07:00
Brad Hefta-Gaub
f0cc8c0dd3 Merge pull request #7491 from jherico/oculus_release
Update to latest Oculus SDK, add input device support
2016-03-30 17:42:32 -07:00
Seth Alves
bb43347599 Merge branch 'master' of github.com:highfidelity/hifi into use-local-scripts 2016-03-30 13:33:59 -07:00
Brad Davis
f569cbf70e Add debugging output, fix timewarp 2016-03-30 10:40:32 -07:00
Brad Hefta-Gaub
d99dcf5450 Merge pull request #7487 from hyperlogic/tony/animated-culling
Improved render bounding boxes for animated models
2016-03-30 09:27:43 -07:00
Brad Hefta-Gaub
6fdedb8f34 Merge pull request #7508 from howard-stearns/import-export-parents
Make export/import and copy/paste be parent/child-clean.
2016-03-30 09:06:33 -07:00
Brad Hefta-Gaub
c64b2bb236 Merge pull request #7495 from Atlante45/fix/audio-client
Fix crash in Audio Client
2016-03-30 09:00:07 -07:00
howard-stearns
5381be6902 Whitespace 2016-03-29 17:06:19 -07:00
howard-stearns
4ebf816166 cleanup 2016-03-29 16:17:19 -07:00
howard-stearns
bcb729eac2 Abstract out globalizeProperties. 2016-03-29 15:21:06 -07:00
howard-stearns
4a28dadae5 Working, but not cleaned up. 2016-03-29 13:26:50 -07:00
Seth Alves
b88770228e convert running-scripts window to use local script files 2016-03-29 10:40:56 -07:00
howard-stearns
3f18e0cd09 Merge branch 'master' of https://github.com/highfidelity/hifi into import-export-parents 2016-03-29 09:20:07 -07:00
Howard Stearns
5db1c33e4d kill offsets 2016-03-29 09:18:29 -07:00
Anthony J. Thibault
940f3e636d Merge branch 'master' into tony/animated-culling 2016-03-28 19:58:38 -07:00
Anthony J. Thibault
115fd607a0 Address performance issues introduced with this PR.
* Prevent clusterMatrices from being invalidated and re-computed in each updateItem lambda.
  We do this by not setting _model->_needsUpdateClusterMatrices = true;
* Prevent redundant work if Model::enqueueLocationChange is called multiple times per frame.
  We do this by introducing a preRenderLambdas map in the Application class.
  Instead of adding work directly to the scene PendingChanges queue Model::enqueueLocationChange
  adds a lambda to the Application preRenderLambdas map.  The Application ensures that only one lambda will
  be invoked for each model per frame.
2016-03-28 19:47:30 -07:00
Atlante45
807698f0bb Make svo loading use ResourceManager 2016-03-28 18:07:48 -07:00
Atlante45
238131014b Fix avatar manager naming 2016-03-28 15:00:36 -07:00
Atlante45
92ef8cafb1 Make sure pos/rot getters don't crash 2016-03-28 14:37:06 -07:00
howard-stearns
d07967d6d8 Merge branch 'master' of https://github.com/highfidelity/hifi into import-export-parents 2016-03-28 14:02:20 -07:00
howard-stearns
c6347eb92a checkpoint for debugging/comparing edit.js 2016-03-28 13:39:43 -07:00
Zach Pomerantz
7bcef1d319 Fallback display to last, then desktop 2016-03-28 12:54:38 -07:00
Zach Pomerantz
37a725b06d Fallback to desktop if display plugin fails 2016-03-28 12:12:52 -07:00
Brad Hefta-Gaub
f7e6f60e87 one more crack at fixing false deadlock 2016-03-25 19:04:01 -07:00
Brad Hefta-Gaub
fe31be71eb protect against unexpected rollover 2016-03-25 14:59:43 -07:00
Brad Hefta-Gaub
541c1e5c6f Merge branch 'master' of https://github.com/highfidelity/hifi into reduceFalsePositiveDeadlocks 2016-03-25 13:03:31 -07:00
Brad Hefta-Gaub
941821e2c7 add some extra debugging at deadlock detection to explain unreasonable numbers 2016-03-25 12:17:24 -07:00
Brad Hefta-Gaub
fb09ad51b3 CR feedback 2016-03-24 21:14:07 -07:00
Brad Hefta-Gaub
7de8a2267f one more try 2016-03-24 18:09:14 -07:00
Brad Davis
0ac70049c7 Merge pull request #7431 from hyperlogic/tony/vive-rendering-work
OpenVR rendering & Nsight instrumentation improvements
2016-03-24 17:44:30 -07:00
Brad Hefta-Gaub
cfaa97d8f3 one more try 2016-03-24 17:39:23 -07:00
Brad Hefta-Gaub
5b13ebf72b more mac build busters 2016-03-24 17:19:11 -07:00
Brad Hefta-Gaub
2b595fb329 break out thread safe moving average to get around unix build hell 2016-03-24 16:26:28 -07:00
Brad Hefta-Gaub
8691aa6905 fix unix build and CR feedback 2016-03-24 15:45:44 -07:00
Brad Davis
520cccb219 Make display plugin switching atomic from other threads 2016-03-24 15:19:46 -07:00
Brad Hefta-Gaub
deed643ca7 add additional tracking of max elapsed 2016-03-24 13:30:39 -07:00
Brad Hefta-Gaub
208b594ef8 make the deadlock watchdog more generous and add some logging so we can see heatbeats on slow machines 2016-03-24 12:37:07 -07:00
Brad Hefta-Gaub
2b0670718f Merge pull request #7449 from howard-stearns/report-previous-session-data
Report previous session data
2016-03-23 20:58:51 -07:00
Anthony J. Thibault
de3144cde5 Merge branch 'master' into tony/vive-rendering-work 2016-03-23 18:13:59 -07:00
Anthony J. Thibault
0ef5c45815 DeadlockWatchdogThread: bumped up age from 10 to 15 seconds.
This will, hopefully, prevent false positives from people loading content on slow PCs.
2016-03-23 17:59:54 -07:00
Howard Stearns
a393f36978 Forgot important comment. 2016-03-23 17:31:21 -07:00
Howard Stearns
c09c1438f8 ivar init order. 2016-03-23 17:28:54 -07:00
Philip Rosedale
e1f3665185 Merge pull request #7435 from hyperlogic/tony/all-jitter-must-die
MyAvatar: fix jitter in hands when moving
2016-03-23 17:28:47 -07:00
Anthony J. Thibault
cec6e7dd8d Application: reduced idle PROFILE_RANGE spam 2016-03-23 17:12:48 -07:00
howard-stearns
dbdf79f96f Restore whitespace so there aren't superfluous diffs. 2016-03-23 17:01:50 -07:00
howard-stearns
c435ca212a Report previous session time. 2016-03-23 16:59:17 -07:00
Anthony J. Thibault
0d37515784 Merge branch 'master' into tony/vive-rendering-work 2016-03-23 15:59:59 -07:00
howard-stearns
550738776c Pass whether or not previous session crashed to the UserActivityLogger. 2016-03-23 15:56:29 -07:00
Anthony J. Thibault
df187499ff MyAvatar: fix jitter in hands when moving
Store hand controller positions within the avatar in sensor space, not world space.
Before IK the sensorToWorld matrix is updated to reflect the world space motion of the
character controller during physics.  This ensures the IK hand targets move properly with the character.
2016-03-22 19:19:52 -07:00
Zach Pomerantz
9c11474dd7 Expose qApp->updateHeartbeat 2016-03-22 17:17:36 -07:00
Anthony Thibault
50ac101d56 Avatar and Rig NSIGHT instrumentation 2016-03-22 10:36:32 -07:00
Anthony Thibault
9faccabf0d Merge branch 'master' of https://github.com/highfidelity/hifi into tony/vive-rendering-work 2016-03-21 21:55:53 -07:00
Anthony Thibault
225c462685 Improved NSIGHT instrumentation
* Application::idle, physics and avatar processing are tracked
* Application::paintGL frameNumber payload is tracked
* OpenGLDisplayPlugin::present is profiled with corresponding frameNumber payload
* Added color and payload support to Nsight ProfileRange class.
2016-03-21 21:47:59 -07:00
Anthony J. Thibault
7cab8f63fb Merge branch 'master' of github.com:highfidelity/hifi into tony/no-locks-no-problem 2016-03-21 16:03:33 -07:00
Anthony J. Thibault
0f31c3da10 Application: guard idle from being called within paintGL() 2016-03-21 15:21:16 -07:00
Anthony J. Thibault
ce47f83288 Prevent deadlock if idle is called during rendering
This extraordinary event can occur if a MessageBox is popped up by the opengl driver.

* removed AvatarData::avatarLock
* removed AvatarUpdate

This code was left over from an earlier avatar threading experiment.

Removed AvatarData avatarLock and AvatarUpdate class
2016-03-21 15:11:15 -07:00
Andrew Meadows
0a00436700 Merge pull request #7411 from ZappoMan/fixBlenderCrashRedux
Fix blender crash redux
2016-03-21 15:04:22 -07:00
Andrew Meadows
47c4b226ea Merge pull request #7395 from hyperlogic/tony/openvr-crash-on-exit
openvr crash on exit fix
2016-03-21 13:04:45 -07:00
Brad Hefta-Gaub
492e71345a Revert "Revert "Fix ModelBlender crash""
This reverts commit f274cdcc7f.
2016-03-21 11:42:25 -07:00
Brad Hefta-Gaub
f274cdcc7f Revert "Fix ModelBlender crash" 2016-03-21 10:47:31 -07:00
Andrew Meadows
d7d428d1b2 Merge pull request #7387 from ZappoMan/fixBlenderCrash
Fix ModelBlender crash
2016-03-21 09:14:11 -07:00
Anthony Thibault
5b2a050df7 display-plugins: Pulled getHeadPose into common base class.
* Moved getHeadPose and _headPoseCache out of each derived class and into HmdDisplayPlugin.
* updated comment in application.
2016-03-20 14:08:35 -07:00
Anthony Thibault
b71a56de38 Application: disable deadlock watchdog for debug builds
Cause it will cause a crash if you sit on a breakpoint for too long.
2016-03-20 12:18:33 -07:00
Anthony J. Thibault
960ffd9c9e DisplayPlugins: updateHeadPose() no longer returns a value.
Also, moved updateHeadPose so that the overlay and the main rendering use the same headPose.
Which should also be the same place the latencyMarker for the ovr_GetTrackingState is set.
2016-03-18 15:16:58 -07:00
Brad Hefta-Gaub
2ef5b3727e Merge branch 'master' of https://github.com/highfidelity/hifi into fixBlenderCrash 2016-03-18 14:04:45 -07:00
Anthony J. Thibault
d218ca4960 openvr: fix for crash on exit
Before this fix, a script could call into HMD.getHUDLookAtPosition2D() while the app was shutting down, which in turn would call
getHeadPose() on the currently active display plugin.  This call could cause a crash within the openvr plugin, because the SDK was either shutdown, or in the process of shutting down on the main thread.

This fixes this by spliting the previous DisplayPlugin::getHeadPose(int) into two parts:

* updateHeadPose(int) which is only called once a frame and only by the main thread.
* getHeadPose() which is thread-safe and will return a cached copy of the hmd pose sampled by the last updateHeadPose.
2016-03-18 12:26:11 -07:00
Brad Hefta-Gaub
917c4644a5 make SkeletonModel be shared_ptr friendly as well 2016-03-17 18:03:49 -07:00
Brad Hefta-Gaub
edcf642410 Merge pull request #7374 from jherico/plugin_switch_crash
Reduce crashes on switching display plugins
2016-03-17 15:51:39 -07:00
Brad Hefta-Gaub
6f8f5ed15c Merge pull request #7382 from hyperlogic/tony/crash-fix-focus-out-event
Application: prevent crash on startup when "Crashed" dialog is shown
2016-03-17 15:51:15 -07:00
Bradley Austin Davis
d6d7e67ca3 Fix OpenVR shutdown crash 2016-03-17 14:37:43 -07:00
Anthony J. Thibault
a8bc8a7843 Application: prevent crash on startup when "Interface Crashed" dialog is shown.
If the application "Interface Crashed" dialog is shown at startup, it can cause Application to receive events before it has been fully constructed.
In this case the QMainWindow _window pointer is uninitialized, causing Menu::getInstance() to de-reference an invalid pointer.

The fix for this is three fold.

1. Construct the QMainWindow before calling setupEssentials (which in turn spawns the "Interface Crashed" dialog).
2. Change Menu::getInstance() from a static_cast to a dynamic_cast.  This will cause it to return a nullptr if [QMainWindow::menuBar()](http://doc.qt.io/qt-4.8/qmainwindow.html#menuBar) returns an instance of QMenuBar and not a ui::Menu instance.
3. In Application::event return false if Menu::getInstance() returns a nullptr.  This should prevent any code that relies on having a valid ui::Menu instance from running.
2016-03-17 12:13:01 -07:00
Bradley Austin Davis
1cf89f046c Fix off by one error 2016-03-17 10:13:52 -07:00
Bradley Austin Davis
7045680bc7 Reduce crashes on switching display plugins 2016-03-17 10:13:52 -07:00
Bradley Austin Davis
80e2025ebf Allow display plugin switching by keyboard 2016-03-16 18:28:48 -07:00
Andrew Meadows
6028c3e841 Merge pull request #7318 from birarda/atp
Asset Transfer Protocol Mappings
2016-03-15 16:52:36 -07:00
Stephen Birarda
0012967734 use curly braced initialization for consts 2016-03-15 14:38:41 -07:00
Atlante45
03efde5b3c Change text in case of drag and drop. 2016-03-15 13:53:13 -07:00
Atlante45
4265ddbd0e Can't drop fbx if you can't rez 2016-03-15 11:42:48 -07:00
Atlante45
4a90ec303c Fix drag&drop 2016-03-15 11:22:42 -07:00
Anthony J. Thibault
7539eec134 Application: fix third-person and fullscreen-mirror toggle 2016-03-15 10:11:56 -07:00
Stephen Birarda
72c64532f5 Merge branch 'master' of https://github.com/highfidelity/hifi into atp 2016-03-15 09:12:49 -07:00
Anthony Thibault
9fb897476e Application: fix for mouse control in third-person camera
Process the keyboard & mouse input plugin after the userInputMapper()->update().
2016-03-11 17:29:18 -08:00
Stephen Birarda
66e572f226 Merge branch 'master' of https://github.com/highfidelity/hifi into atp 2016-03-11 14:44:49 -08:00
Anthony Thibault
ab390f7d2e Merge branch 'master' into tony/smooth-hands 2016-03-11 10:06:31 -08:00