aboutsummaryrefslogtreecommitdiff
path: root/src/client/render/stereo.cpp
diff options
context:
space:
mode:
authorx2048 <codeforsmile@gmail.com>2022-09-06 08:25:18 +0200
committerGitHub <noreply@github.com>2022-09-06 08:25:18 +0200
commitff6dcfea82974df6db5a557e31aaddb6bdb7a71f (patch)
tree18bafaedcfdff36a0c0719653b99370b7434b344 /src/client/render/stereo.cpp
parent464043b8abdbd936640757604ecb21662592043b (diff)
downloadminetest-ff6dcfea82974df6db5a557e31aaddb6bdb7a71f.tar.xz
Implement rendering pipeline and post-processing (#12465)
Co-authored-by: Lars Mueller <appgurulars@gmx.de> Co-authored-by: sfan5 <sfan5@live.de> Co-authored-by: lhofhansl <lhofhansl@yahoo.com>
Diffstat (limited to 'src/client/render/stereo.cpp')
-rw-r--r--src/client/render/stereo.cpp33
1 files changed, 10 insertions, 23 deletions
diff --git a/src/client/render/stereo.cpp b/src/client/render/stereo.cpp
index 0f54e166e..8d8d62db1 100644
--- a/src/client/render/stereo.cpp
+++ b/src/client/render/stereo.cpp
@@ -19,42 +19,29 @@ with this program; if not, write to the Free Software Foundation, Inc.,
*/
#include "stereo.h"
+#include "client/client.h"
#include "client/camera.h"
#include "constants.h"
#include "settings.h"
-RenderingCoreStereo::RenderingCoreStereo(
- IrrlichtDevice *_device, Client *_client, Hud *_hud)
- : RenderingCore(_device, _client, _hud)
+OffsetCameraStep::OffsetCameraStep(float eye_offset)
{
- eye_offset = BS * g_settings->getFloat("3d_paralax_strength", -0.087f, 0.087f);
+ move.setTranslation(core::vector3df(eye_offset, 0.0f, 0.0f));
}
-void RenderingCoreStereo::beforeDraw()
-{
- cam = camera->getCameraNode();
- base_transform = cam->getRelativeTransformation();
-}
-void RenderingCoreStereo::useEye(bool right)
+OffsetCameraStep::OffsetCameraStep(bool right_eye)
{
- core::matrix4 move;
- move.setTranslation(
- core::vector3df(right ? eye_offset : -eye_offset, 0.0f, 0.0f));
- cam->setPosition((base_transform * move).getTranslation());
+ float eye_offset = BS * g_settings->getFloat("3d_paralax_strength", -0.087f, 0.087f) * (right_eye ? 1 : -1);
+ move.setTranslation(core::vector3df(eye_offset, 0.0f, 0.0f));
}
-void RenderingCoreStereo::resetEye()
+void OffsetCameraStep::reset(PipelineContext &context)
{
- cam->setPosition(base_transform.getTranslation());
+ base_transform = context.client->getCamera()->getCameraNode()->getRelativeTransformation();
}
-void RenderingCoreStereo::renderBothImages()
+void OffsetCameraStep::run(PipelineContext &context)
{
- useEye(false);
- draw3D();
- resetEye();
- useEye(true);
- draw3D();
- resetEye();
+ context.client->getCamera()->getCameraNode()->setPosition((base_transform * move).getTranslation());
}