diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-10-27 01:33:43 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-10-27 01:33:43 +0300 |
commit | 839ac92f651d456db40ffaebefab87172fdeedba (patch) | |
tree | 0846e137ab735bca2cb36811efc9e549a1c3ccc3 /source/gameengine/Rasterizer | |
parent | 5d333f72c399443205b1b5fa26ccc12b2c31e62d (diff) |
added SetDisplayArea, GetDisplayArea was used in a confusing way
Diffstat (limited to 'source/gameengine/Rasterizer')
-rw-r--r-- | source/gameengine/Rasterizer/RAS_ICanvas.h | 6 | ||||
-rw-r--r-- | source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp | 46 |
2 files changed, 29 insertions, 23 deletions
diff --git a/source/gameengine/Rasterizer/RAS_ICanvas.h b/source/gameengine/Rasterizer/RAS_ICanvas.h index dae4fb3f4d2..a5ef18275ac 100644 --- a/source/gameengine/Rasterizer/RAS_ICanvas.h +++ b/source/gameengine/Rasterizer/RAS_ICanvas.h @@ -135,9 +135,9 @@ public: GetDisplayArea( ) const = 0; - virtual - RAS_Rect & - GetDisplayArea( + virtual + void + SetDisplayArea(RAS_Rect *rect ) = 0; /** diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp index d16348defb2..5b732e802f6 100644 --- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp +++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp @@ -386,6 +386,7 @@ void RAS_OpenGLRasterizer::EndFrame() void RAS_OpenGLRasterizer::SetRenderArea() { + RAS_Rect area; // only above/below stereo method needs viewport adjustment switch (m_stereomode) { @@ -394,19 +395,21 @@ void RAS_OpenGLRasterizer::SetRenderArea() { case RAS_STEREO_LEFTEYE: // upper half of window - m_2DCanvas->GetDisplayArea().SetLeft(0); - m_2DCanvas->GetDisplayArea().SetBottom(m_2DCanvas->GetHeight() - + area.SetLeft(0); + area.SetBottom(m_2DCanvas->GetHeight() - int(m_2DCanvas->GetHeight() - m_noOfScanlines) / 2); - m_2DCanvas->GetDisplayArea().SetRight(int(m_2DCanvas->GetWidth())); - m_2DCanvas->GetDisplayArea().SetTop(int(m_2DCanvas->GetHeight())); + area.SetRight(int(m_2DCanvas->GetWidth())); + area.SetTop(int(m_2DCanvas->GetHeight())); + m_2DCanvas->SetDisplayArea(&area); break; case RAS_STEREO_RIGHTEYE: // lower half of window - m_2DCanvas->GetDisplayArea().SetLeft(0); - m_2DCanvas->GetDisplayArea().SetBottom(0); - m_2DCanvas->GetDisplayArea().SetRight(int(m_2DCanvas->GetWidth())); - m_2DCanvas->GetDisplayArea().SetTop(int(m_2DCanvas->GetHeight() - m_noOfScanlines) / 2); + area.SetLeft(0); + area.SetBottom(0); + area.SetRight(int(m_2DCanvas->GetWidth())); + area.SetTop(int(m_2DCanvas->GetHeight() - m_noOfScanlines) / 2); + m_2DCanvas->SetDisplayArea(&area); break; } break; @@ -415,26 +418,29 @@ void RAS_OpenGLRasterizer::SetRenderArea() { case RAS_STEREO_LEFTEYE: // Left half of window - m_2DCanvas->GetDisplayArea().SetLeft(0); - m_2DCanvas->GetDisplayArea().SetBottom(0); - m_2DCanvas->GetDisplayArea().SetRight(m_2DCanvas->GetWidth()/2); - m_2DCanvas->GetDisplayArea().SetTop(m_2DCanvas->GetHeight()); + area.SetLeft(0); + area.SetBottom(0); + area.SetRight(m_2DCanvas->GetWidth()/2); + area.SetTop(m_2DCanvas->GetHeight()); + m_2DCanvas->SetDisplayArea(&area); break; case RAS_STEREO_RIGHTEYE: // Right half of window - m_2DCanvas->GetDisplayArea().SetLeft(m_2DCanvas->GetWidth()/2); - m_2DCanvas->GetDisplayArea().SetBottom(0); - m_2DCanvas->GetDisplayArea().SetRight(m_2DCanvas->GetWidth()); - m_2DCanvas->GetDisplayArea().SetTop(m_2DCanvas->GetHeight()); + area.SetLeft(m_2DCanvas->GetWidth()/2); + area.SetBottom(0); + area.SetRight(m_2DCanvas->GetWidth()); + area.SetTop(m_2DCanvas->GetHeight()); + m_2DCanvas->SetDisplayArea(&area); break; } break; default: // every available pixel - m_2DCanvas->GetDisplayArea().SetLeft(0); - m_2DCanvas->GetDisplayArea().SetBottom(0); - m_2DCanvas->GetDisplayArea().SetRight(int(m_2DCanvas->GetWidth())); - m_2DCanvas->GetDisplayArea().SetTop(int(m_2DCanvas->GetHeight())); + area.SetLeft(0); + area.SetBottom(0); + area.SetRight(int(m_2DCanvas->GetWidth())); + area.SetTop(int(m_2DCanvas->GetHeight())); + m_2DCanvas->SetDisplayArea(&area); break; } } |