|
From: Lasse Kärkkäi. <tr...@us...> - 2011-03-13 00:50:48
|
Author: Lasse Karkkainen <tro...@tr...>
Date: Sat Mar 12 19:43:37 2011 +0100
Fix FarTransform
---
game/screen_sing.cc | 2 +-
game/screen_songs.cc | 2 +-
game/video_driver.cc | 6 +++---
game/video_driver.hh | 7 +------
4 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index 335fead..f4c0d0a 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -426,7 +426,7 @@ void ScreenSing::draw() {
// Rendering starts
{
- FarTransform ft;
+ Transform ft(farTransform());
double ar = arMax;
// Background image
if (m_background) {
diff --git a/game/screen_songs.cc b/game/screen_songs.cc
index 2bbc520..da69c36 100644
--- a/game/screen_songs.cc
+++ b/game/screen_songs.cc
@@ -148,7 +148,7 @@ void ScreenSongs::drawJukebox() {
void ScreenSongs::drawMultimedia() {
{
- FarTransform ft; // 3D effect
+ Transform ft(farTransform()); // 3D effect
double length = m_audio.getLength();
double time = clamp(m_audio.getPosition() - config["audio/video_delay"].f(), 0.0, length);
m_songbg_default->draw(); // Default bg
diff --git a/game/video_driver.cc b/game/video_driver.cc
index 356deaf..5d96406 100644
--- a/game/video_driver.cc
+++ b/game/video_driver.cc
@@ -328,11 +328,11 @@ Transform::~Transform() {
ScreenManager::getSingletonPtr()->window().updateTransforms();
}
-FarTransform::FarTransform() {
+glmath::mat4 farTransform() {
float z = far_ - 0.1f; // Very near the far plane but just a bit closer to avoid accidental clipping
float s = z / z0; // Scale the image so that it looks the same size
s *= 1.0 + 2.0 * getSeparation(); // A bit more for stereo3d (avoid black borders)
- glTranslatef(0.0f, 0.0f, -z + z0); // Very near the farplane
- glScalef(s, s, s);
+ using namespace glmath;
+ return translate(vec3(0.0f, 0.0f, -z + z0)) * scale(s); // Very near the farplane
}
diff --git a/game/video_driver.hh b/game/video_driver.hh
index 8bb7eef..c493035 100644
--- a/game/video_driver.hh
+++ b/game/video_driver.hh
@@ -21,12 +21,7 @@ private:
};
/// Performs a GL transform for displaying background image at far distance
-class FarTransform {
-public:
- FarTransform();
-private:
- glutil::PushMatrix pm;
-};
+glmath::mat4 farTransform();
/// handles the window
class Window {
|