diff --git a/src/client/render/core.cpp b/src/client/render/core.cpp index 74b85560..7a4230c8 100644 --- a/src/client/render/core.cpp +++ b/src/client/render/core.cpp @@ -31,6 +31,7 @@ RenderingCore::RenderingCore(IrrlichtDevice *_device, Client *_client, Hud *_hud mapper(client->getMinimap()), hud(_hud) { screensize = driver->getScreenSize(); + virtual_size = screensize; } RenderingCore::~RenderingCore() @@ -46,6 +47,7 @@ void RenderingCore::initialize() void RenderingCore::updateScreenSize() { + virtual_size = screensize; clearTextures(); initTextures(); } diff --git a/src/client/render/core.h b/src/client/render/core.h index 40f6ca1f..35def7f2 100644 --- a/src/client/render/core.h +++ b/src/client/render/core.h @@ -30,6 +30,7 @@ class RenderingCore { protected: v2u32 screensize; + v2u32 virtual_size; video::SColor skycolor; bool show_hud; bool show_minimap; @@ -69,4 +70,6 @@ public: void initialize(); void draw(video::SColor _skycolor, bool _show_hud, bool _show_minimap, bool _draw_wield_tool, bool _draw_crosshair); + + inline v2u32 getVirtualSize() const { return virtual_size; } }; diff --git a/src/client/render/sidebyside.cpp b/src/client/render/sidebyside.cpp index 7a04188c..2af09ee3 100644 --- a/src/client/render/sidebyside.cpp +++ b/src/client/render/sidebyside.cpp @@ -37,6 +37,7 @@ void RenderingCoreSideBySide::initTextures() image_size = {screensize.X / 2, screensize.Y}; rpos = v2s32(screensize.X / 2, 0); } + virtual_size = image_size; left = driver->addRenderTargetTexture( image_size, "3d_render_left", video::ECF_A8R8G8B8); right = driver->addRenderTargetTexture( @@ -51,7 +52,6 @@ void RenderingCoreSideBySide::clearTextures() void RenderingCoreSideBySide::drawAll() { - cam->setAspectRatio(1.0 * image_size.Width / image_size.Height); driver->OnResize(image_size); // HACK to make GUI smaller renderBothImages(); driver->OnResize(screensize); diff --git a/src/client/renderingengine.cpp b/src/client/renderingengine.cpp index 32502366..ae8d68b9 100644 --- a/src/client/renderingengine.cpp +++ b/src/client/renderingengine.cpp @@ -114,7 +114,9 @@ RenderingEngine::~RenderingEngine() v2u32 RenderingEngine::getWindowSize() const { - return driver->getCurrentRenderTargetSize(); // HACK + if (core) + return core->getVirtualSize(); + return m_device->getVideoDriver()->getScreenSize(); } void RenderingEngine::setResizable(bool resize)