This commit is contained in:
Howard Stearns 2015-09-07 17:26:22 -07:00
parent efeaf21305
commit d472fd66ff
4 changed files with 8 additions and 29 deletions

View file

@ -3626,7 +3626,6 @@ void Application::renderRearViewMirror(RenderArgs* renderArgs, const QRect& regi
float fov = MIRROR_FIELD_OF_VIEW; float fov = MIRROR_FIELD_OF_VIEW;
// bool eyeRelativeCamera = false; // bool eyeRelativeCamera = false;
_myAvatar->startRenderCam(); //FIXME
if (billboard) { if (billboard) {
fov = BILLBOARD_FIELD_OF_VIEW; // degees fov = BILLBOARD_FIELD_OF_VIEW; // degees
_mirrorCamera.setPosition(_myAvatar->getPosition() + _mirrorCamera.setPosition(_myAvatar->getPosition() +
@ -3672,7 +3671,6 @@ void Application::renderRearViewMirror(RenderArgs* renderArgs, const QRect& regi
viewport = gpu::Vec4i(0, 0, width, height); viewport = gpu::Vec4i(0, 0, width, height);
} }
renderArgs->_viewport = viewport; renderArgs->_viewport = viewport;
_myAvatar->endRenderCam(); //FIXME
// render rear mirror view // render rear mirror view
displaySide(renderArgs, _mirrorCamera, true, billboard); displaySide(renderArgs, _mirrorCamera, true, billboard);

View file

@ -316,7 +316,7 @@ void Avatar::removeFromScene(AvatarSharedPointer self, std::shared_ptr<render::S
} }
void Avatar::render(RenderArgs* renderArgs, const glm::vec3& cameraPosition) { void Avatar::render(RenderArgs* renderArgs, const glm::vec3& cameraPosition) {
startRenderAv(); //FIXME startRender();
if (_referential) { if (_referential) {
_referential->update(); _referential->update();
} }
@ -391,7 +391,7 @@ void Avatar::render(RenderArgs* renderArgs, const glm::vec3& cameraPosition) {
} }
if (frustum->sphereInFrustum(getPosition(), boundingRadius) == ViewFrustum::OUTSIDE) { if (frustum->sphereInFrustum(getPosition(), boundingRadius) == ViewFrustum::OUTSIDE) {
endRenderAv(); //FIXME endRender();
return; return;
} }
@ -542,7 +542,7 @@ void Avatar::render(RenderArgs* renderArgs, const glm::vec3& cameraPosition) {
if (!isMyAvatar() || cameraMode != CAMERA_MODE_FIRST_PERSON) { if (!isMyAvatar() || cameraMode != CAMERA_MODE_FIRST_PERSON) {
renderDisplayName(batch, *renderArgs->_viewFrustum, renderArgs->_viewport); renderDisplayName(batch, *renderArgs->_viewFrustum, renderArgs->_viewport);
} }
endRenderAv(); //FIXME endRender();
} }
glm::quat Avatar::computeRotationFromBodyToWorldUp(float proportion) const { glm::quat Avatar::computeRotationFromBodyToWorldUp(float proportion) const {

View file

@ -135,7 +135,6 @@ void AvatarData::startCapture() {
void AvatarData::endCapture() { void AvatarData::endCapture() {
avatarLock.unlock(); avatarLock.unlock();
} }
void AvatarData::startUpdate() { void AvatarData::startUpdate() {
avatarLock.lock(); avatarLock.lock();
} }
@ -143,30 +142,14 @@ void AvatarData::endUpdate() {
avatarLock.unlock(); avatarLock.unlock();
} }
void AvatarData::startRenderRun() { void AvatarData::startRenderRun() {
_nextPending = true; // FIXME remove here and in .h // I'd like to get rid of this and just (un)lock at (end-)startRender.
//startRender(); // when on: smooth when startRenderCam off; mini-mirror judder (only, both axes) when startRenderCam on // But somehow that causes judder in rotations.
avatarLock.lock(); avatarLock.lock();
} }
void AvatarData::endRenderRun() { void AvatarData::endRenderRun() {
_nextPending = false; // FIXME remove here and in .h
//endRender();
avatarLock.unlock(); avatarLock.unlock();
} }
void AvatarData::startRenderAv() {
startRender(); // when on: small rotate judder in all views when starRenderCam off; big rotate judder in all views (and mini-mirror forward judder) when startRenderCam on
}
void AvatarData::endRenderAv() {
endRender();
}
void AvatarData::startRenderCam() {
//startRender();
}
void AvatarData::endRenderCam() {
//endRender();
}
void AvatarData::startRender() { void AvatarData::startRender() {
//avatarLock.lock();
_nextPending = true; // FIXME remove here and in .h
glm::vec3 pos = getPosition(); glm::vec3 pos = getPosition();
glm::quat rot = getOrientation(); glm::quat rot = getOrientation();
setPosition(_nextPosition, true); setPosition(_nextPosition, true);
@ -176,12 +159,10 @@ void AvatarData::startRender() {
_nextOrientation = rot; _nextOrientation = rot;
} }
void AvatarData::endRender() { void AvatarData::endRender() {
_nextPending = false; // FIXME remove here and in .h
setPosition(_nextPosition, true); setPosition(_nextPosition, true);
setOrientation(_nextOrientation, true); setOrientation(_nextOrientation, true);
updateAttitude(); updateAttitude();
_nextAllowed = true; _nextAllowed = true;
//avatarLock.unlock();
} }
float AvatarData::getTargetScale() const { float AvatarData::getTargetScale() const {

View file

@ -204,8 +204,9 @@ public:
void endCapture(); void endCapture();
void startUpdate(); // start/end of update iteration void startUpdate(); // start/end of update iteration
void endUpdate(); void endUpdate();
void startRender(); // start/end of rendering void startRender(); // start/end of rendering of this object
void startRenderRun(); void endRenderRun(); void startRenderAv(); void endRenderAv(); void startRenderCam(); void endRenderCam(); void startRenderRun(); // start/end of entire scene.
void endRenderRun();
void endRender(); void endRender();
virtual void updateAttitude() {} // Tell skeleton mesh about changes virtual void updateAttitude() {} // Tell skeleton mesh about changes
@ -371,7 +372,6 @@ protected:
glm::vec3 _nextPosition {}; glm::vec3 _nextPosition {};
glm::quat _nextOrientation {}; glm::quat _nextOrientation {};
bool _nextPending = false;
bool _nextAllowed = true; bool _nextAllowed = true;
// Body scale // Body scale