Drop obsolete methods

This commit is contained in:
number Zero 2017-08-16 16:53:51 +03:00
parent 3ac96d2670
commit c97a4f455f
2 changed files with 0 additions and 499 deletions

View File

@ -458,467 +458,6 @@ void RenderingEngine::_draw_scene(Camera *_camera, Client *_client, LocalPlayer
core->draw();
}
void RenderingEngine::draw_anaglyph_3d_mode()
{
/* preserve old setup*/
irr::core::vector3df oldPosition = camera->getCameraNode()->getPosition();
irr::core::vector3df oldTarget = camera->getCameraNode()->getTarget();
irr::core::matrix4 startMatrix =
camera->getCameraNode()->getAbsoluteTransformation();
irr::core::vector3df focusPoint =
(camera->getCameraNode()->getTarget() -
camera->getCameraNode()->getAbsolutePosition())
.setLength(1) +
camera->getCameraNode()->getAbsolutePosition();
// Left eye...
irr::core::vector3df leftEye;
irr::core::matrix4 leftMove;
leftMove.setTranslation(irr::core::vector3df(
-g_settings->getFloat("3d_paralax_strength"), 0.0f, 0.0f));
leftEye = (startMatrix * leftMove).getTranslation();
// clear the depth buffer, and color
driver->beginScene(true, true, irr::video::SColor(0, 200, 200, 255));
driver->getOverrideMaterial().Material.ColorMask = irr::video::ECP_RED;
driver->getOverrideMaterial().EnableFlags = irr::video::EMF_COLOR_MASK;
driver->getOverrideMaterial().EnablePasses =
irr::scene::ESNRP_SKY_BOX + irr::scene::ESNRP_SOLID +
irr::scene::ESNRP_TRANSPARENT +
irr::scene::ESNRP_TRANSPARENT_EFFECT + irr::scene::ESNRP_SHADOW;
camera->getCameraNode()->setPosition(leftEye);
camera->getCameraNode()->setTarget(focusPoint);
get_scene_manager()->drawAll();
driver->setTransform(video::ETS_WORLD, core::IdentityMatrix);
if (show_hud) {
hud->drawSelectionMesh();
if (draw_wield_tool)
camera->drawWieldedTool(&leftMove);
}
guienv->drawAll();
// Right eye...
irr::core::vector3df rightEye;
irr::core::matrix4 rightMove;
rightMove.setTranslation(irr::core::vector3df(
g_settings->getFloat("3d_paralax_strength"), 0.0f, 0.0f));
rightEye = (startMatrix * rightMove).getTranslation();
// clear the depth buffer
driver->clearZBuffer();
driver->getOverrideMaterial().Material.ColorMask =
irr::video::ECP_GREEN + irr::video::ECP_BLUE;
driver->getOverrideMaterial().EnableFlags = irr::video::EMF_COLOR_MASK;
driver->getOverrideMaterial().EnablePasses =
irr::scene::ESNRP_SKY_BOX + irr::scene::ESNRP_SOLID +
irr::scene::ESNRP_TRANSPARENT +
irr::scene::ESNRP_TRANSPARENT_EFFECT + irr::scene::ESNRP_SHADOW;
camera->getCameraNode()->setPosition(rightEye);
camera->getCameraNode()->setTarget(focusPoint);
get_scene_manager()->drawAll();
driver->setTransform(video::ETS_WORLD, core::IdentityMatrix);
if (show_hud) {
hud->drawSelectionMesh();
if (draw_wield_tool)
camera->drawWieldedTool(&rightMove);
}
guienv->drawAll();
driver->getOverrideMaterial().Material.ColorMask = irr::video::ECP_ALL;
driver->getOverrideMaterial().EnableFlags = 0;
driver->getOverrideMaterial().EnablePasses = 0;
camera->getCameraNode()->setPosition(oldPosition);
camera->getCameraNode()->setTarget(oldTarget);
}
void RenderingEngine::init_texture(const v2u32& size, video::ITexture ** texture, const char* name)
{
if (*texture)
driver->removeTexture(*texture);
*texture = driver->addRenderTargetTexture(
core::dimension2d<u32>(size.X, size.Y), name,
irr::video::ECF_A8R8G8B8);
}
void RenderingEngine::init_texture(irr::video::ITexture** texture, const char* name)
{
init_texture(screensize, texture, name);
}
video::ITexture *RenderingEngine::draw_image(parallax_sign psign,
const irr::core::matrix4 &startMatrix,
const irr::core::vector3df &focusPoint)
{
static video::ITexture *images[2] = {NULL, NULL};
static v2u32 last_screensize = v2u32(0, 0);
video::ITexture *image = NULL;
if (screensize != last_screensize) {
init_texture(&images[1], "mt_drawimage_img1");
init_texture(&images[0], "mt_drawimage_img2");
last_screensize = screensize;
}
if (psign == RIGHT)
image = images[1];
else
image = images[0];
driver->setRenderTarget(image, true, true,
irr::video::SColor(255, skycolor.getRed(), skycolor.getGreen(),
skycolor.getBlue()));
irr::core::vector3df eye_pos;
irr::core::matrix4 movement;
movement.setTranslation(irr::core::vector3df(
(int)psign * g_settings->getFloat("3d_paralax_strength"), 0.0f,
0.0f));
eye_pos = (startMatrix * movement).getTranslation();
// clear the depth buffer
driver->clearZBuffer();
camera->getCameraNode()->setPosition(eye_pos);
camera->getCameraNode()->setTarget(focusPoint);
get_scene_manager()->drawAll();
driver->setTransform(video::ETS_WORLD, core::IdentityMatrix);
if (show_hud) {
hud->drawSelectionMesh();
if (draw_wield_tool)
camera->drawWieldedTool(&movement);
}
guienv->drawAll();
/* switch back to real renderer */
driver->setRenderTarget(0, true, true,
irr::video::SColor(0, skycolor.getRed(), skycolor.getGreen(),
skycolor.getBlue()));
return image;
}
video::ITexture *RenderingEngine::draw_hud()
{
static video::ITexture *image = nullptr;
init_texture(&image, "mt_drawimage_hud");
driver->setRenderTarget(
image, true, true, irr::video::SColor(255, 0, 0, 0));
if (show_hud) {
if (draw_crosshair)
hud->drawCrosshair();
hud->drawHotbar(client->getPlayerItem());
hud->drawLuaElements(camera->getOffset());
camera->drawNametags();
guienv->drawAll();
}
driver->setRenderTarget(0, true, true,
irr::video::SColor(0, skycolor.getRed(), skycolor.getGreen(),
skycolor.getBlue()));
return image;
}
void RenderingEngine::draw_interlaced_3d_mode()
{
/* save current info */
irr::core::vector3df oldPosition = camera->getCameraNode()->getPosition();
irr::core::vector3df oldTarget = camera->getCameraNode()->getTarget();
irr::core::matrix4 startMatrix =
camera->getCameraNode()->getAbsoluteTransformation();
irr::core::vector3df focusPoint =
(camera->getCameraNode()->getTarget() -
camera->getCameraNode()->getAbsolutePosition())
.setLength(1) +
camera->getCameraNode()->getAbsolutePosition();
/* create left view */
video::ITexture *left_image = draw_image(LEFT, startMatrix, focusPoint);
// Right eye...
irr::core::vector3df rightEye;
irr::core::matrix4 rightMove;
rightMove.setTranslation(irr::core::vector3df(
g_settings->getFloat("3d_paralax_strength"), 0.0f, 0.0f));
rightEye = (startMatrix * rightMove).getTranslation();
// clear the depth buffer
driver->clearZBuffer();
camera->getCameraNode()->setPosition(rightEye);
camera->getCameraNode()->setTarget(focusPoint);
get_scene_manager()->drawAll();
driver->setTransform(video::ETS_WORLD, core::IdentityMatrix);
if (show_hud) {
hud->drawSelectionMesh();
if (draw_wield_tool)
camera->drawWieldedTool(&rightMove);
}
guienv->drawAll();
for (unsigned int i = 0; i < screensize.Y; i += 2) {
#if (IRRLICHT_VERSION_MAJOR >= 1) && (IRRLICHT_VERSION_MINOR >= 8)
driver->draw2DImage(left_image,
irr::core::position2d<s32>(0, i),
#else
driver->draw2DImage(left_image,
irr::core::position2d<s32>(0, screensize.Y - i),
#endif
irr::core::rect<s32>(0, i, screensize.X, i + 1), 0,
irr::video::SColor(255, 255, 255, 255), false);
}
/* cleanup */
camera->getCameraNode()->setPosition(oldPosition);
camera->getCameraNode()->setTarget(oldTarget);
}
void RenderingEngine::draw_sidebyside_3d_mode()
{
/* save current info */
irr::core::vector3df oldPosition = camera->getCameraNode()->getPosition();
irr::core::vector3df oldTarget = camera->getCameraNode()->getTarget();
irr::core::matrix4 startMatrix =
camera->getCameraNode()->getAbsoluteTransformation();
irr::core::vector3df focusPoint =
(camera->getCameraNode()->getTarget() -
camera->getCameraNode()->getAbsolutePosition())
.setLength(1) +
camera->getCameraNode()->getAbsolutePosition();
/* create left view */
video::ITexture *left_image = draw_image(LEFT, startMatrix, focusPoint);
/* create right view */
video::ITexture *right_image = draw_image(RIGHT, startMatrix, focusPoint);
/* create hud overlay */
video::ITexture *hudtexture = draw_hud();
driver->makeColorKeyTexture(
hudtexture, irr::video::SColor(255, 0, 0, 0));
// makeColorKeyTexture mirrors texture so we do it twice to get it right again
driver->makeColorKeyTexture(
hudtexture, irr::video::SColor(255, 0, 0, 0));
draw2DImageFilterScaled(driver, left_image,
irr::core::rect<s32>(0, 0, screensize.X / 2, screensize.Y),
irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0,
false);
draw2DImageFilterScaled(driver, hudtexture,
irr::core::rect<s32>(0, 0, screensize.X / 2, screensize.Y),
irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0,
true);
draw2DImageFilterScaled(driver, right_image,
irr::core::rect<s32>(
screensize.X / 2, 0, screensize.X, screensize.Y),
irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0,
false);
draw2DImageFilterScaled(driver, hudtexture,
irr::core::rect<s32>(
screensize.X / 2, 0, screensize.X, screensize.Y),
irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0,
true);
left_image = nullptr;
right_image = nullptr;
/* cleanup */
camera->getCameraNode()->setPosition(oldPosition);
camera->getCameraNode()->setTarget(oldTarget);
}
void RenderingEngine::draw_top_bottom_3d_mode()
{
/* save current info */
irr::core::vector3df oldPosition = camera->getCameraNode()->getPosition();
irr::core::vector3df oldTarget = camera->getCameraNode()->getTarget();
irr::core::matrix4 startMatrix =
camera->getCameraNode()->getAbsoluteTransformation();
irr::core::vector3df focusPoint =
(camera->getCameraNode()->getTarget() -
camera->getCameraNode()->getAbsolutePosition())
.setLength(1) +
camera->getCameraNode()->getAbsolutePosition();
/* create left view */
video::ITexture *left_image = draw_image(LEFT, startMatrix, focusPoint);
/* create right view */
video::ITexture *right_image = draw_image(RIGHT, startMatrix, focusPoint);
/* create hud overlay */
video::ITexture *hudtexture = draw_hud();
driver->makeColorKeyTexture(
hudtexture, irr::video::SColor(255, 0, 0, 0));
// makeColorKeyTexture mirrors texture so we do it twice to get it right again
driver->makeColorKeyTexture(
hudtexture, irr::video::SColor(255, 0, 0, 0));
draw2DImageFilterScaled(driver, left_image,
irr::core::rect<s32>(0, 0, screensize.X, screensize.Y / 2),
irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0,
false);
draw2DImageFilterScaled(driver, hudtexture,
irr::core::rect<s32>(0, 0, screensize.X, screensize.Y / 2),
irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0,
true);
draw2DImageFilterScaled(driver, right_image,
irr::core::rect<s32>(
0, screensize.Y / 2, screensize.X, screensize.Y),
irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0,
false);
draw2DImageFilterScaled(driver, hudtexture,
irr::core::rect<s32>(
0, screensize.Y / 2, screensize.X, screensize.Y),
irr::core::rect<s32>(0, 0, screensize.X, screensize.Y), 0, 0,
true);
left_image = NULL;
right_image = NULL;
/* cleanup */
camera->getCameraNode()->setPosition(oldPosition);
camera->getCameraNode()->setTarget(oldTarget);
}
void RenderingEngine::draw_pageflip_3d_mode()
{
#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8
errorstream << "Pageflip 3D mode is not supported"
<< " with your Irrlicht version!" << std::endl;
#else
/* preserve old setup*/
irr::core::vector3df oldPosition = camera->getCameraNode()->getPosition();
irr::core::vector3df oldTarget = camera->getCameraNode()->getTarget();
irr::core::matrix4 startMatrix =
camera->getCameraNode()->getAbsoluteTransformation();
irr::core::vector3df focusPoint =
(camera->getCameraNode()->getTarget() -
camera->getCameraNode()->getAbsolutePosition())
.setLength(1) +
camera->getCameraNode()->getAbsolutePosition();
// Left eye...
driver->setRenderTarget(irr::video::ERT_STEREO_LEFT_BUFFER);
irr::core::vector3df leftEye;
irr::core::matrix4 leftMove;
leftMove.setTranslation(irr::core::vector3df(
-g_settings->getFloat("3d_paralax_strength"), 0.0f, 0.0f));
leftEye = (startMatrix * leftMove).getTranslation();
// clear the depth buffer, and color
driver->beginScene(true, true, irr::video::SColor(200, 200, 200, 255));
camera->getCameraNode()->setPosition(leftEye);
camera->getCameraNode()->setTarget(focusPoint);
get_scene_manager()->drawAll();
driver->setTransform(video::ETS_WORLD, core::IdentityMatrix);
if (show_hud) {
hud->drawSelectionMesh();
if (draw_wield_tool)
camera->drawWieldedTool(&leftMove);
hud->drawHotbar(client->getPlayerItem());
hud->drawLuaElements(camera->getOffset());
camera->drawNametags();
}
guienv->drawAll();
// Right eye...
driver->setRenderTarget(irr::video::ERT_STEREO_RIGHT_BUFFER);
irr::core::vector3df rightEye;
irr::core::matrix4 rightMove;
rightMove.setTranslation(irr::core::vector3df(
g_settings->getFloat("3d_paralax_strength"), 0.0f, 0.0f));
rightEye = (startMatrix * rightMove).getTranslation();
// clear the depth buffer, and color
driver->beginScene(true, true, irr::video::SColor(200, 200, 200, 255));
camera->getCameraNode()->setPosition(rightEye);
camera->getCameraNode()->setTarget(focusPoint);
get_scene_manager()->drawAll();
driver->setTransform(video::ETS_WORLD, core::IdentityMatrix);
if (show_hud) {
hud->drawSelectionMesh();
if (draw_wield_tool)
camera->drawWieldedTool(&rightMove);
hud->drawHotbar(client->getPlayerItem());
hud->drawLuaElements(camera->getOffset());
camera->drawNametags();
}
guienv->drawAll();
camera->getCameraNode()->setPosition(oldPosition);
camera->getCameraNode()->setTarget(oldTarget);
#endif
}
// returns (size / coef), rounded upwards
inline int scaledown(int coef, int size)
{
return (size + coef - 1) / coef;
}
void RenderingEngine::draw_plain()
{
// Undersampling-specific stuff
static video::ITexture *image = NULL;
static v2u32 last_pixelated_size = v2u32(0, 0);
static thread_local int undersampling = g_settings->getU16("undersampling");
v2u32 pixelated_size;
v2u32 dest_size;
if (undersampling > 0) {
pixelated_size = v2u32(scaledown(undersampling, screensize.X),
scaledown(undersampling, screensize.Y));
dest_size = v2u32(undersampling * pixelated_size.X,
undersampling * pixelated_size.Y);
if (pixelated_size != last_pixelated_size) {
init_texture(pixelated_size, &image, "mt_drawimage_img1");
last_pixelated_size = pixelated_size;
}
driver->setRenderTarget(image, true, true, skycolor);
}
// Render
get_scene_manager()->drawAll();
driver->setTransform(video::ETS_WORLD, core::IdentityMatrix);
if (show_hud) {
hud->drawSelectionMesh();
if (draw_wield_tool) {
camera->drawWieldedTool();
}
}
// Upscale lowres render
if (undersampling > 0) {
driver->setRenderTarget(0, true, true);
driver->draw2DImage(image,
irr::core::rect<s32>(0, 0, dest_size.X, dest_size.Y),
irr::core::rect<s32>(0, 0, pixelated_size.X,
pixelated_size.Y));
}
}
const char *RenderingEngine::getVideoDriverName(irr::video::E_DRIVER_TYPE type)
{
static const char *driver_ids[] = {

View File

@ -132,13 +132,6 @@ public:
static std::vector<irr::video::E_DRIVER_TYPE> getSupportedVideoDrivers();
private:
enum parallax_sign
{
LEFT = -1,
RIGHT = 1,
EYECOUNT = 2
};
void _draw_load_screen(const std::wstring &text, gui::IGUIEnvironment *guienv,
ITextureSource *tsrc, float dtime = 0, int percent = 0,
bool clouds = true);
@ -148,39 +141,8 @@ private:
const v2u32 &screensize, const video::SColor &skycolor,
bool show_hud, bool show_minimap);
void draw_anaglyph_3d_mode();
void draw_interlaced_3d_mode();
void draw_sidebyside_3d_mode();
void draw_top_bottom_3d_mode();
void draw_pageflip_3d_mode();
void draw_plain();
void init_texture(const v2u32 &size, video::ITexture **texture, const char *name);
void init_texture(video::ITexture **texture, const char *name);
video::ITexture *draw_image(parallax_sign psign,
const irr::core::matrix4 &startMatrix,
const irr::core::vector3df &focusPoint);
video::ITexture *draw_hud();
std::unique_ptr<RenderingCore> core;
Camera *camera;
Client *client;
LocalPlayer *player;
Minimap *mapper;
Hud *hud;
v2u32 screensize;
video::SColor skycolor;
bool show_hud;
bool show_minimap;
bool draw_wield_tool;
bool draw_crosshair;
irr::IrrlichtDevice *m_device = nullptr;
irr::video::IVideoDriver *driver;
irr::scene::ISceneManager *smgr;
irr::gui::IGUIEnvironment *guienv;
static RenderingEngine *s_singleton;
};