Fix FoV problems

experimental^2
number Zero 2017-10-13 02:14:53 +03:00
parent d02596d1fd
commit 6a3f1920dd
4 changed files with 9 additions and 2 deletions

View File

@ -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();
}

View File

@ -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; }
};

View File

@ -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);

View File

@ -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)