diff options
author | x2048 <codeforsmile@gmail.com> | 2022-09-06 08:25:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-06 08:25:18 +0200 |
commit | ff6dcfea82974df6db5a557e31aaddb6bdb7a71f (patch) | |
tree | 18bafaedcfdff36a0c0719653b99370b7434b344 /src/client/render/stereo.cpp | |
parent | 464043b8abdbd936640757604ecb21662592043b (diff) | |
download | minetest-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.cpp | 33 |
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()); } |