Working on cleaning up diff

This commit is contained in:
Brad Davis 2015-07-17 11:02:32 -07:00
parent 7f6bb552a3
commit ea74aac1d6
10 changed files with 52 additions and 164 deletions

View file

@ -849,20 +849,17 @@ void Application::initializeUi() {
offscreenUi->setBaseUrl(QUrl::fromLocalFile(PathUtils::resourcesPath() + "/qml/"));
offscreenUi->load("Root.qml");
offscreenUi->load("RootMenu.qml");
VrMenu::load();
VrMenu::executeQueuedLambdas();
offscreenUi->setMouseTranslator([=](const QPointF& pt) {
QPointF result = pt;
auto displayPlugin = getActiveDisplayPlugin();
if (displayPlugin->isHmd()) {
auto resultVec = _compositor.screenToOverlay(toGlm(pt));
result = QPointF(resultVec.x, resultVec.y);
} else if (displayPlugin->isStereo()) {
}
}
return result;
});
VrMenu::load();
VrMenu::executeQueuedLambdas();
offscreenUi->resume();
connect(_window, &MainWindow::windowGeometryChanged, [this](const QRect & r){
static qreal oldDevicePixelRatio = 0;
@ -1222,8 +1219,7 @@ bool Application::event(QEvent* event) {
bool Application::eventFilter(QObject* object, QEvent* event) {
if (event->type() == QEvent::ShortcutOverride) {
auto offscreenUi = DependencyManager::get<OffscreenUi>();
if (offscreenUi->shouldSwallowShortcut(event)) {
if (DependencyManager::get<OffscreenUi>()->shouldSwallowShortcut(event)) {
event->accept();
return true;
}
@ -1434,11 +1430,6 @@ void Application::keyPressEvent(QKeyEvent* event) {
case Qt::Key_J:
if (isShifted) {
_viewFrustum.setFocalLength(_viewFrustum.getFocalLength() - 0.1f);
#if 0
if (TV3DManager::isConnected()) {
TV3DManager::configureCamera(_myCamera, _glWidget->getDeviceWidth(), _glWidget->getDeviceHeight());
}
#endif
} else {
_myCamera.setEyeOffsetPosition(_myCamera.getEyeOffsetPosition() + glm::vec3(-0.001, 0, 0));
}
@ -1448,11 +1439,6 @@ void Application::keyPressEvent(QKeyEvent* event) {
case Qt::Key_M:
if (isShifted) {
_viewFrustum.setFocalLength(_viewFrustum.getFocalLength() + 0.1f);
#if 0
if (TV3DManager::isConnected()) {
TV3DManager::configureCamera(_myCamera, _glWidget->getDeviceWidth(), _glWidget->getDeviceHeight());
}
#endif
} else {
_myCamera.setEyeOffsetPosition(_myCamera.getEyeOffsetPosition() + glm::vec3(0.001, 0, 0));
}
@ -1615,11 +1601,11 @@ void Application::mouseMoveEvent(QMouseEvent* event, unsigned int deviceID) {
if (!_lastMouseMoveWasSimulated) {
_lastMouseMove = usecTimestampNow();
}
if (_aboutToQuit) {
return;
}
_entities.mouseMoveEvent(event, deviceID);
_controllerScriptingInterface.emitMouseMoveEvent(event, deviceID); // send events to any registered scripts
@ -2133,7 +2119,6 @@ void Application::init() {
DependencyManager::get<DialogsManager>()->toggleLoginDialog();
_environment.init();
Q_ASSERT(_offscreenContext->getContext() == QOpenGLContext::currentContext());
DependencyManager::get<DeferredLightingEffect>()->init(this);
DependencyManager::get<AmbientOcclusionEffect>()->init(this);
@ -2144,15 +2129,6 @@ void Application::init() {
_mirrorCamera.setMode(CAMERA_MODE_MIRROR);
#if 0
TV3DManager::connect();
if (TV3DManager::isConnected()) {
QMetaObject::invokeMethod(Menu::getInstance()->getActionForOption(MenuOption::Fullscreen),
"trigger",
Qt::QueuedConnection);
}
#endif
_timerStart.start();
_lastTimeUpdated.start();
@ -2287,16 +2263,13 @@ void Application::updateMyAvatarLookAtPosition() {
bool isLookingAtSomeone = false;
glm::vec3 lookAtSpot;
if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {
// When I am in mirror mode, just look right at the camera (myself)
lookAtSpot = _myCamera.getPosition();
#if 0
// FIXME is this really necessary?
// When I am in mirror mode, just look right at the camera (myself); don't switch gaze points because when physically
// looking in a mirror one's eyes appear steady.
if (isHMDMode()) {
lookAtSpot = _myCamera.getPosition() + OculusManager::getMidEyePosition();
if (!isHMDMode()) {
lookAtSpot = _myCamera.getPosition();
} else {
lookAtSpot = _myCamera.getPosition() + vec3(getHeadPose()[3]);
}
#endif
} else {
AvatarSharedPointer lookingAt = _myAvatar->getLookAtTargetAvatar().lock();
if (lookingAt && _myAvatar != lookingAt.get()) {
@ -2915,28 +2888,7 @@ bool Application::isHMDMode() const {
}
QRect Application::getDesirableApplicationGeometry() {
QRect applicationGeometry = getWindow()->geometry();
#if 0
// If our parent window is on the HMD, then don't use its geometry, instead use
// the "main screen" geometry.
HMDToolsDialog* hmdTools = DependencyManager::get<DialogsManager>()->getHMDToolsDialog();
if (hmdTools && hmdTools->hasHMDScreen()) {
QScreen* hmdScreen = hmdTools->getHMDScreen();
QWindow* appWindow = getWindow()->windowHandle();
QScreen* appScreen = appWindow->screen();
// if our app's screen is the hmd screen, we don't want to place the
// running scripts widget on it. So we need to pick a better screen.
// we will use the screen for the HMDTools since it's a guarenteed
// better screen.
if (appScreen == hmdScreen) {
QScreen* betterScreen = hmdTools->windowHandle()->screen();
applicationGeometry = betterScreen->geometry();
}
}
#endif
return applicationGeometry;
return getWindow()->geometry();
}
glm::vec3 Application::getSunDirection() {
@ -3313,7 +3265,8 @@ namespace render {
PerformanceTimer perfTimer("atmosphere");
PerformanceWarning warn(Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings),
"Application::displaySide() ... atmosphere...");
background->_environment->renderAtmospheres(batch, args->_viewFrustum->getPosition());
background->_environment->renderAtmospheres(batch, *(args->_viewFrustum));
}
}
@ -3332,6 +3285,7 @@ namespace render {
}
}
void Application::displaySide(RenderArgs* renderArgs, Camera& theCamera, bool selfAvatarOnly, bool billboard) {
// FIXME: This preRender call is temporary until we create a separate render::scene for the mirror rendering.
@ -3541,22 +3495,6 @@ void Application::setViewTransform(const Transform& view) {
_viewTransform = view;
}
//void Application::updateUntranslatedViewMatrix(const glm::vec3& viewMatrixTranslation) {
// glGetFloatv(GL_MODELVIEW_MATRIX, (GLfloat*)&_untranslatedViewMatrix);
// _viewMatrixTranslation = viewMatrixTranslation;
//}
//
//void Application::loadTranslatedViewMatrix(const glm::vec3& translation) {
// glLoadMatrixf((const GLfloat*)&_untranslatedViewMatrix);
// glTranslatef(translation.x + _viewMatrixTranslation.x, translation.y + _viewMatrixTranslation.y,
// translation.z + _viewMatrixTranslation.z);
//}
//
//void Application::getModelViewMatrix(glm::dmat4* modelViewMatrix) {
// (*modelViewMatrix) =_untranslatedViewMatrix;
// (*modelViewMatrix)[3] = _untranslatedViewMatrix * glm::vec4(_viewMatrixTranslation, 1);
//}
void Application::getModelViewMatrix(glm::dmat4* modelViewMatrix) {
(*modelViewMatrix) = glm::inverse(_displayViewFrustum.getView());
}
@ -3652,13 +3590,6 @@ void Application::resetSensors() {
getActiveDisplayPlugin()->resetSensors();
//_leapmotion.reset();
#if 0
QScreen* currentScreen = _window->windowHandle()->screen();
QWindow* mainWindow = _window->windowHandle();
QPoint windowCenter = mainWindow->geometry().center();
_glWidget->cursor().setPos(currentScreen, windowCenter);
#endif
_myAvatar->reset();
QMetaObject::invokeMethod(DependencyManager::get<AudioClient>().data(), "reset", Qt::QueuedConnection);
@ -4711,6 +4642,29 @@ qreal Application::getDevicePixelRatio() {
return _window ? _window->windowHandle()->devicePixelRatio() : 1.0;
}
mat4 Application::getEyeProjection(int eye) const {
if (isHMDMode()) {
return getActiveDisplayPlugin()->getProjection((Eye)eye, _viewFrustum.getProjection());
}
return _viewFrustum.getProjection();
}
mat4 Application::getEyePose(int eye) const {
if (isHMDMode()) {
return getActiveDisplayPlugin()->getEyePose((Eye)eye);
}
return mat4();
}
mat4 Application::getHeadPose() const {
if (isHMDMode()) {
return getActiveDisplayPlugin()->getHeadPose();
}
return mat4();
}
DisplayPlugin * Application::getActiveDisplayPlugin() {
if (nullptr == _displayPlugin) {
updateDisplayMode();
@ -4798,25 +4752,3 @@ GlWindow* Application::getVisibleWindow() {
return _glWindow;
}
mat4 Application::getEyeProjection(int eye) const {
if (isHMDMode()) {
return getActiveDisplayPlugin()->getProjection((Eye)eye, _viewFrustum.getProjection());
}
return _viewFrustum.getProjection();
}
mat4 Application::getEyePose(int eye) const {
if (isHMDMode()) {
return getActiveDisplayPlugin()->getEyePose((Eye)eye);
}
return mat4();
}
mat4 Application::getHeadPose() const {
if (isHMDMode()) {
return getActiveDisplayPlugin()->getHeadPose();
}
return mat4();
}

View file

@ -201,6 +201,7 @@ void ApplicationCompositor::displayOverlayTexture(RenderArgs* renderArgs) {
//Handle fading and deactivation/activation of UI
gpu::Batch batch;
renderArgs->_context->syncCache();
auto geometryCache = DependencyManager::get<GeometryCache>();
geometryCache->useSimpleDrawPipeline(batch);

View file

@ -57,11 +57,6 @@ void DialogsManager::showUpdateDialog() {
void DialogsManager::octreeStatsDetails() {
if (!_octreeStatsDialog) {
_octreeStatsDialog = new OctreeStatsDialog(qApp->getWindow(), qApp->getOcteeSceneStats());
#if 0
if (_hmdToolsDialog) {
_hmdToolsDialog->watchWindow(_octreeStatsDialog->windowHandle());
}
#endif
connect(_octreeStatsDialog, SIGNAL(closed()), _octreeStatsDialog, SLOT(deleteLater()));
_octreeStatsDialog->show();
}
@ -118,11 +113,6 @@ void DialogsManager::bandwidthDetails() {
if (! _bandwidthDialog) {
_bandwidthDialog = new BandwidthDialog(qApp->getWindow());
connect(_bandwidthDialog, SIGNAL(closed()), _bandwidthDialog, SLOT(deleteLater()));
#if 0
if (_hmdToolsDialog) {
_hmdToolsDialog->watchWindow(_bandwidthDialog->windowHandle());
}
#endif
_bandwidthDialog->show();
}
_bandwidthDialog->raise();
@ -143,29 +133,6 @@ void DialogsManager::toggleToolWindow() {
toolWindow->setVisible(!toolWindow->isVisible());
}
void DialogsManager::hmdTools(bool showTools) {
#if 0
if (showTools) {
if (!_hmdToolsDialog) {
maybeCreateDialog(_hmdToolsDialog);
connect(_hmdToolsDialog, SIGNAL(closed()), SLOT(hmdToolsClosed()));
}
_hmdToolsDialog->show();
_hmdToolsDialog->raise();
} else {
hmdToolsClosed();
}
qApp->getWindow()->activateWindow();
#endif
}
void DialogsManager::hmdToolsClosed() {
#if 0
Menu::getInstance()->getActionForOption(MenuOption::HMDTools)->setChecked(false);
_hmdToolsDialog->hide();
#endif
}
void DialogsManager::showScriptEditor() {
maybeCreateDialog(_scriptEditor);
_scriptEditor->show();

View file

@ -41,7 +41,6 @@ class DialogsManager : public QObject, public Dependency {
public:
QPointer<BandwidthDialog> getBandwidthDialog() const { return _bandwidthDialog; }
// QPointer<HMDToolsDialog> getHMDToolsDialog() const { return _hmdToolsDialog; }
QPointer<LodToolsDialog> getLodToolsDialog() const { return _lodToolsDialog; }
QPointer<OctreeStatsDialog> getOctreeStatsDialog() const { return _octreeStatsDialog; }
QPointer<PreferencesDialog> getPreferencesDialog() const { return _preferencesDialog; }
@ -58,7 +57,6 @@ public slots:
void editAnimations();
void bandwidthDetails();
void lodTools();
void hmdTools(bool showTools);
void showScriptEditor();
void showIRCLink();
void changeAvatarAppearance();
@ -69,7 +67,6 @@ public slots:
private slots:
void toggleToolWindow();
void hmdToolsClosed();
private:
DialogsManager() {}
@ -81,12 +78,6 @@ private:
Q_CHECK_PTR(parent);
member = new T(parent);
Q_CHECK_PTR(member);
#if 0
if (_hmdToolsDialog && member->windowHandle()) {
_hmdToolsDialog->watchWindow(member->windowHandle());
}
#endif
}
}
@ -97,7 +88,6 @@ private:
QPointer<CachesSizeDialog> _cachesSizeDialog;
QPointer<DiskCacheEditor> _diskCacheEditor;
QPointer<QMessageBox> _ircInfoBox;
// QPointer<HMDToolsDialog> _hmdToolsDialog;
QPointer<LodToolsDialog> _lodToolsDialog;
QPointer<LoginDialog> _loginDialog;
QPointer<OctreeStatsDialog> _octreeStatsDialog;

View file

@ -334,11 +334,12 @@ void DeferredLightingEffect::render(RenderArgs* args) {
batch._glUniformMatrix4fv(locations->invViewMat, 1, false, reinterpret_cast< const GLfloat* >(&invViewMat));
}
auto& viewFrustum = args->_viewFrustum;
float left, right, bottom, top, nearVal, farVal;
glm::vec4 nearClipPlane, farClipPlane;
viewFrustum->computeOffAxisFrustum(left, right, bottom, top, nearVal, farVal, nearClipPlane, farClipPlane);
args->_viewFrustum->computeOffAxisFrustum(left, right, bottom, top, nearVal, farVal, nearClipPlane, farClipPlane);
batch._glUniform1f(locations->nearLocation, nearVal);
float depthScale = (farVal - nearVal) / farVal;
batch._glUniform1f(locations->depthScale, depthScale);
@ -387,8 +388,8 @@ void DeferredLightingEffect::render(RenderArgs* args) {
// enlarge the scales slightly to account for tesselation
const float SCALE_EXPANSION = 0.05f;
const glm::vec3& eyePoint = viewFrustum->getPosition();
float nearRadius = glm::distance(eyePoint, viewFrustum->getNearTopLeft());
auto eyePoint = args->_viewFrustum->getPosition();
float nearRadius = glm::distance(eyePoint, args->_viewFrustum->getNearTopLeft());
auto geometryCache = DependencyManager::get<GeometryCache>();

View file

@ -101,17 +101,17 @@ void Environment::resetToDefault() {
_data[HifiSockAddr()][0];
}
void Environment::renderAtmospheres(gpu::Batch& batch, const glm::vec3& position) {
void Environment::renderAtmospheres(gpu::Batch& batch, ViewFrustum& camera) {
// get the lock for the duration of the call
QMutexLocker locker(&_mutex);
if (_environmentIsOverridden) {
renderAtmosphere(batch, position, _overrideData);
renderAtmosphere(batch, camera, _overrideData);
} else {
foreach (const ServerData& serverData, _data) {
// TODO: do something about EnvironmentData
foreach (const EnvironmentData& environmentData, serverData) {
renderAtmosphere(batch, position, environmentData);
renderAtmosphere(batch, camera, environmentData);
}
}
}
@ -234,14 +234,15 @@ int Environment::parseData(const HifiSockAddr& senderAddress, const QByteArray&
return bytesRead;
}
void Environment::renderAtmosphere(gpu::Batch& batch, const glm::vec3& position, const EnvironmentData& data) {
void Environment::renderAtmosphere(gpu::Batch& batch, ViewFrustum& camera, const EnvironmentData& data) {
glm::vec3 center = data.getAtmosphereCenter();
Transform transform;
transform.setTranslation(center);
batch.setModelTransform(transform);
glm::vec3 relativeCameraPos = position - center;
glm::vec3 relativeCameraPos = camera.getPosition() - center;
float height = glm::length(relativeCameraPos);
// use the appropriate shader depending on whether we're inside or outside

View file

@ -30,8 +30,7 @@ public:
void init();
void resetToDefault();
void renderAtmospheres();
void renderAtmospheres(gpu::Batch& batch, const glm::vec3& camera);
void renderAtmospheres(gpu::Batch& batch, ViewFrustum& camera);
void override(const EnvironmentData& overrideData) { _overrideData = overrideData; _environmentIsOverridden = true; }
void endOverride() { _environmentIsOverridden = false; }
@ -46,7 +45,7 @@ private:
bool findCapsulePenetration(const glm::vec3& start,
const glm::vec3& end, float radius, glm::vec3& penetration); // NOTE: Deprecated
void renderAtmosphere(gpu::Batch& batch, const glm::vec3& position, const EnvironmentData& data);
void renderAtmosphere(gpu::Batch& batch, ViewFrustum& camera, const EnvironmentData& data);
bool _initialized;

View file

@ -11,7 +11,6 @@
#define hifi_GlWindow_h
#include <mutex>
#include <QWindow>
class QOpenGLContext;
@ -25,7 +24,6 @@ public:
bool makeCurrent();
void doneCurrent();
void swapBuffers();
private:
std::once_flag _reportOnce;
QOpenGLContext* _context{ nullptr };

View file

@ -14,7 +14,6 @@
#include <QOpenGLDebugLogger>
#include <GLHelpers.cpp>
OffscreenGlCanvas::OffscreenGlCanvas() {
}
@ -38,6 +37,7 @@ void OffscreenGlCanvas::create(QOpenGLContext* sharedContext) {
_context.setFormat(getDefaultOpenGlSurfaceFormat());
}
_context.create();
_offscreenSurface.setFormat(_context.format());
_offscreenSurface.create();

View file

@ -13,7 +13,6 @@
#define hifi_OffscreenGlCanvas_h
#include <mutex>
#include <QOpenGLContext>
#include <QOffscreenSurface>