Navigation Menu

Skip to content

Commit

Permalink
Fix missing item images clipping in formspecs (#8652)
Browse files Browse the repository at this point in the history
* Fix clipping of itemimage

* Code style

* More code styling
  • Loading branch information
pyrollo authored and SmallJoker committed Jul 26, 2019
1 parent a8446d2 commit c3daf2a
Showing 1 changed file with 24 additions and 3 deletions.
27 changes: 24 additions & 3 deletions src/client/hud.cpp
Expand Up @@ -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();

Expand All @@ -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);
Expand Down

0 comments on commit c3daf2a

Please sign in to comment.