// Luanti // SPDX-License-Identifier: LGPL-2.1-or-later // Copyright (C) 2010-2013 celeron55, Perttu Ahola // Copyright (C) 2017 numzero, Lobachevskiy Vitaliy #include "core.h" #include "plain.h" #include "client/shadows/dynamicshadowsrender.h" #include "settings.h" RenderingCore::RenderingCore(IrrlichtDevice *_device, Client *_client, Hud *_hud, ShadowRenderer *_shadow_renderer, RenderPipeline *_pipeline, v2f _virtual_size_scale) : device(_device), client(_client), hud(_hud), shadow_renderer(_shadow_renderer), pipeline(_pipeline), virtual_size_scale(_virtual_size_scale) { } RenderingCore::~RenderingCore() { delete pipeline; delete shadow_renderer; } void RenderingCore::draw(video::SColor _skycolor, bool _show_hud, bool _draw_wield_tool, bool _draw_crosshair) { v2u32 screensize = device->getVideoDriver()->getScreenSize(); virtual_size = v2u32(screensize.X * virtual_size_scale.X, screensize.Y * virtual_size_scale.Y); PipelineContext context(device, client, hud, shadow_renderer, _skycolor, screensize); context.draw_crosshair = _draw_crosshair; context.draw_wield_tool = _draw_wield_tool; context.show_hud = _show_hud; pipeline->reset(context); pipeline->run(context); } v2u32 RenderingCore::getVirtualSize() const { return virtual_size; }