introduce the concept of side thorugh out the rendering traversal

This commit is contained in:
Sam Gateau 2014-11-14 11:22:11 -08:00
parent f09b58c255
commit cc78000641
3 changed files with 8 additions and 23 deletions

View file

@ -724,7 +724,7 @@ void Application::paintGL() {
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
displaySide(RenderContext(*whichCamera));
displaySide(*whichCamera);
glPopMatrix();
if (Menu::getInstance()->isOptionChecked(MenuOption::FullscreenMirror)) {
@ -2874,16 +2874,12 @@ QImage Application::renderAvatarBillboard() {
return image;
}
//void Application::displaySide(Camera& whichCamera, bool selfAvatarOnly) {
void Application::displaySide(RenderContext& renderContext) {
void Application::displaySide(Camera& whichCamera, bool selfAvatarOnly, RenderArgs::RenderSide renderSide) {
PROFILE_RANGE(__FUNCTION__);
PerformanceTimer perfTimer("display");
PerformanceWarning warn(Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings), "Application::displaySide()");
// transform by eye offset
Camera& whichCamera = renderContext._whichCamera;
bool selfAvatarOnly = renderContext._selfAvatarOnly;
// load the view frustum
loadViewFrustum(whichCamera, _displayViewFrustum);
@ -3025,7 +3021,7 @@ void Application::displaySide(RenderContext& renderContext) {
PerformanceTimer perfTimer("entities");
PerformanceWarning warn(Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings),
"Application::displaySide() ... entities...");
_entities.render(RenderArgs::DEFAULT_RENDER_MODE, renderContext._renderSide);
_entities.render(RenderArgs::DEFAULT_RENDER_MODE, renderSide);
}
// render JS/scriptable overlays
@ -3270,7 +3266,7 @@ void Application::renderRearViewMirror(const QRect& region, bool billboard) {
_shadowMatrices[i] = glm::transpose(glm::transpose(_shadowMatrices[i]) * glm::translate(-delta));
}
displaySide(RenderContext(_mirrorCamera, true));
displaySide(_mirrorCamera, true);
// restore absolute translations
_myAvatar->getSkeletonModel().setTranslation(absoluteSkeletonTranslation);
@ -3284,7 +3280,7 @@ void Application::renderRearViewMirror(const QRect& region, bool billboard) {
_shadowMatrices[i] = savedShadowMatrices[i];
}
} else {
displaySide(RenderContext(_mirrorCamera, true));
displaySide(_mirrorCamera, true);
}
glPopMatrix();

View file

@ -262,19 +262,8 @@ public:
QImage renderAvatarBillboard();
struct RenderContext {
Camera& _whichCamera;
bool _selfAvatarOnly;
RenderArgs::RenderSide _renderSide;
RenderContext(Camera& whichCamera, bool selfAvatarOnly = false, RenderArgs::RenderSide renderSide = RenderArgs::MONO) :
_whichCamera(whichCamera),
_selfAvatarOnly(selfAvatarOnly),
_renderSide(renderSide) {
}
};
// void displaySide(Camera& whichCamera, bool selfAvatarOnly = false);
void displaySide(RenderContext& renderContext);
void displaySide(Camera& whichCamera, bool selfAvatarOnly = false, RenderArgs::RenderSide renderSide = RenderArgs::MONO);
/// Stores the current modelview matrix as the untranslated view matrix to use for transforms and the supplied vector as
/// the view matrix translation.

View file

@ -126,7 +126,7 @@ void TV3DManager::display(Camera& whichCamera) {
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
Application::getInstance()->displaySide(Application::RenderContext(whichCamera, false, RenderArgs::STEREO_LEFT));
Application::getInstance()->displaySide(whichCamera, false, RenderArgs::STEREO_LEFT);
if (displayOverlays) {
applicationOverlay.displayOverlayTexture3DTV(whichCamera, _aspect, fov);
@ -156,7 +156,7 @@ void TV3DManager::display(Camera& whichCamera) {
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
Application::getInstance()->displaySide(Application::RenderContext(whichCamera, false, RenderArgs::STEREO_RIGHT));
Application::getInstance()->displaySide(whichCamera, false, RenderArgs::STEREO_RIGHT);
if (displayOverlays) {
applicationOverlay.displayOverlayTexture3DTV(whichCamera, _aspect, fov);