Skip to content
Permalink
Browse files

Fix missing item images clipping in formspecs (#8652)

* Fix clipping of itemimage

* Code style

* More code styling
  • Loading branch information...
pyrollo authored and SmallJoker committed Jul 26, 2019
1 parent a8446d2 commit c3daf2a8bed7eaa72f14d07c92b8ec61a994d6fa
Showing with 24 additions and 3 deletions.
  1. +24 −3 src/client/hud.cpp
@@ -649,10 +649,31 @@ void drawItemStack(video::IVideoDriver *driver,
core::rect<s32> oldViewPort = driver->getViewPort();
core::matrix4 oldProjMat = driver->getTransform(video::ETS_PROJECTION);
core::matrix4 oldViewMat = driver->getTransform(video::ETS_VIEW);
core::rect<s32> viewrect = rect;
if (clip)
viewrect.clipAgainst(*clip);

core::matrix4 ProjMatrix;
ProjMatrix.buildProjectionMatrixOrthoLH(2, 2, -1, 100);
ProjMatrix.buildProjectionMatrixOrthoLH(2.0f, 2.0f, -1.0f, 100.0f);

core::matrix4 ViewMatrix;
ViewMatrix.buildProjectionMatrixOrthoLH(
2.0f * viewrect.getWidth() / rect.getWidth(),
2.0f * viewrect.getHeight() / rect.getHeight(),
-1.0f,
100.0f);
ViewMatrix.setTranslation(core::vector3df(
1.0f * (rect.LowerRightCorner.X + rect.UpperLeftCorner.X -
viewrect.LowerRightCorner.X - viewrect.UpperLeftCorner.X) /
viewrect.getWidth(),
1.0f * (viewrect.LowerRightCorner.Y + viewrect.UpperLeftCorner.Y -
rect.LowerRightCorner.Y - rect.UpperLeftCorner.Y) /
viewrect.getHeight(),
0.0f));

driver->setTransform(video::ETS_PROJECTION, ProjMatrix);
driver->setTransform(video::ETS_VIEW, ProjMatrix);
driver->setTransform(video::ETS_VIEW, ViewMatrix);

core::matrix4 matrix;
matrix.makeIdentity();

@@ -662,7 +683,7 @@ void drawItemStack(video::IVideoDriver *driver,
}

driver->setTransform(video::ETS_WORLD, matrix);
driver->setViewPort(rect);
driver->setViewPort(viewrect);

video::SColor basecolor =
client->idef()->getItemstackColor(item, client);

0 comments on commit c3daf2a

Please sign in to comment.
You can’t perform that action at this time.